Merge branch 'curl'
[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 static const char LOCATE_parser___parser_prod___ANode___parent[] = "parser_prod::ANode::parent";
4 val_t parser___parser_prod___ANode___parent(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_parser___parser_prod;
9 fra.me.line = 10;
10 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* parser/parser_prod.nit:10 */
17 fra.me.REG[0] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
18 stack_frame_head = fra.me.prev;
19 return fra.me.REG[0];
20 }
21 static const char LOCATE_parser___parser_prod___ANode___parent__eq[] = "parser_prod::ANode::parent=";
22 void parser___parser_prod___ANode___parent__eq(val_t p0, val_t p1){
23 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24 val_t tmp;
25 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26 fra.me.file = LOCATE_parser___parser_prod;
27 fra.me.line = 10;
28 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent__eq;
29 fra.me.has_broke = 0;
30 fra.me.REG_size = 2;
31 fra.me.nitni_local_ref_head = NULL;
32 fra.me.REG[0] = NIT_NULL;
33 fra.me.REG[1] = NIT_NULL;
34 fra.me.REG[0] = p0;
35 fra.me.REG[1] = p1;
36 /* parser/parser_prod.nit:10 */
37 ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]) = fra.me.REG[1];
38 stack_frame_head = fra.me.prev;
39 return;
40 }
41 static const char LOCATE_parser___parser_prod___ANode___remove_child[] = "parser_prod::ANode::remove_child";
42 void parser___parser_prod___ANode___remove_child(val_t p0, val_t p1){
43 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44 val_t tmp;
45 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46 fra.me.file = LOCATE_parser___parser_prod;
47 fra.me.line = 13;
48 fra.me.meth = LOCATE_parser___parser_prod___ANode___remove_child;
49 fra.me.has_broke = 0;
50 fra.me.REG_size = 2;
51 fra.me.nitni_local_ref_head = NULL;
52 fra.me.REG[0] = NIT_NULL;
53 fra.me.REG[1] = NIT_NULL;
54 fra.me.REG[0] = p0;
55 fra.me.REG[1] = p1;
56 /* parser/parser_prod.nit:16 */
57 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL);
58 stack_frame_head = fra.me.prev;
59 return;
60 }
61 static const char LOCATE_parser___parser_prod___ANode___replace_child[] = "parser_prod::ANode::replace_child";
62 void parser___parser_prod___ANode___replace_child(val_t p0, val_t p1, val_t p2){
63 struct {struct stack_frame_t me;} fra;
64 val_t tmp;
65 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
66 fra.me.file = LOCATE_parser___parser_prod;
67 fra.me.line = 19;
68 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_child;
69 fra.me.has_broke = 0;
70 fra.me.REG_size = 0;
71 fra.me.nitni_local_ref_head = NULL;
72 /* parser/parser_prod.nit:19 */
73 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 19);
74 stack_frame_head = fra.me.prev;
75 return;
76 }
77 static const char LOCATE_parser___parser_prod___ANode___replace_with[] = "parser_prod::ANode::replace_with";
78 void parser___parser_prod___ANode___replace_with(val_t p0, val_t p1){
79 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
80 val_t REGB0;
81 val_t REGB1;
82 val_t tmp;
83 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
84 fra.me.file = LOCATE_parser___parser_prod;
85 fra.me.line = 22;
86 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_with;
87 fra.me.has_broke = 0;
88 fra.me.REG_size = 3;
89 fra.me.nitni_local_ref_head = NULL;
90 fra.me.REG[0] = NIT_NULL;
91 fra.me.REG[1] = NIT_NULL;
92 fra.me.REG[2] = NIT_NULL;
93 fra.me.REG[0] = p0;
94 fra.me.REG[1] = p1;
95 /* parser/parser_prod.nit:25 */
96 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
97 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
98 if (UNTAG_Bool(REGB0)) {
99 } else {
100 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
101 if (UNTAG_Bool(REGB1)) {
102 REGB1 = TAG_Bool(0);
103 REGB0 = REGB1;
104 } else {
105 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
106 REGB0 = REGB1;
107 }
108 }
109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
110 if (UNTAG_Bool(REGB0)) {
111 /* parser/parser_prod.nit:26 */
112 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
113 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
114 if (UNTAG_Bool(REGB0)) {
115 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 26);
116 }
117 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
118 }
119 stack_frame_head = fra.me.prev;
120 return;
121 }
122 static const char LOCATE_parser___parser_prod___ANode___visit_all[] = "parser_prod::ANode::visit_all";
123 void parser___parser_prod___ANode___visit_all(val_t p0, val_t p1){
124 struct {struct stack_frame_t me;} fra;
125 val_t tmp;
126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
127 fra.me.file = LOCATE_parser___parser_prod;
128 fra.me.line = 30;
129 fra.me.meth = LOCATE_parser___parser_prod___ANode___visit_all;
130 fra.me.has_broke = 0;
131 fra.me.REG_size = 0;
132 fra.me.nitni_local_ref_head = NULL;
133 /* parser/parser_prod.nit:30 */
134 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 30);
135 stack_frame_head = fra.me.prev;
136 return;
137 }
138 static const char LOCATE_parser___parser_prod___Token___visit_all[] = "parser_prod::Token::(parser_prod::ANode::visit_all)";
139 void parser___parser_prod___Token___visit_all(val_t p0, val_t p1){
140 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
141 val_t tmp;
142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
143 fra.me.file = LOCATE_parser___parser_prod;
144 fra.me.line = 36;
145 fra.me.meth = LOCATE_parser___parser_prod___Token___visit_all;
146 fra.me.has_broke = 0;
147 fra.me.REG_size = 2;
148 fra.me.nitni_local_ref_head = NULL;
149 fra.me.REG[0] = NIT_NULL;
150 fra.me.REG[1] = NIT_NULL;
151 fra.me.REG[0] = p0;
152 fra.me.REG[1] = p1;
153 stack_frame_head = fra.me.prev;
154 return;
155 }
156 static const char LOCATE_parser___parser_prod___Token___replace_child[] = "parser_prod::Token::(parser_prod::ANode::replace_child)";
157 void parser___parser_prod___Token___replace_child(val_t p0, val_t p1, val_t p2){
158 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
159 val_t tmp;
160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
161 fra.me.file = LOCATE_parser___parser_prod;
162 fra.me.line = 37;
163 fra.me.meth = LOCATE_parser___parser_prod___Token___replace_child;
164 fra.me.has_broke = 0;
165 fra.me.REG_size = 3;
166 fra.me.nitni_local_ref_head = NULL;
167 fra.me.REG[0] = NIT_NULL;
168 fra.me.REG[1] = NIT_NULL;
169 fra.me.REG[2] = NIT_NULL;
170 fra.me.REG[0] = p0;
171 fra.me.REG[1] = p1;
172 fra.me.REG[2] = p2;
173 stack_frame_head = fra.me.prev;
174 return;
175 }
176 static const char LOCATE_parser___parser_prod___Prod___replace_with[] = "parser_prod::Prod::(parser_prod::ANode::replace_with)";
177 void parser___parser_prod___Prod___replace_with(val_t p0, val_t p1){
178 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
179 val_t REGB0;
180 val_t tmp;
181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
182 fra.me.file = LOCATE_parser___parser_prod;
183 fra.me.line = 41;
184 fra.me.meth = LOCATE_parser___parser_prod___Prod___replace_with;
185 fra.me.has_broke = 0;
186 fra.me.REG_size = 4;
187 fra.me.nitni_local_ref_head = NULL;
188 fra.me.REG[0] = NIT_NULL;
189 fra.me.REG[1] = NIT_NULL;
190 fra.me.REG[2] = NIT_NULL;
191 fra.me.REG[3] = NIT_NULL;
192 fra.me.REG[0] = p0;
193 fra.me.REG[1] = p1;
194 /* parser/parser_prod.nit:41 */
195 fra.me.REG[2] = fra.me.REG[0];
196 fra.me.REG[3] = fra.me.REG[1];
197 /* parser/parser_prod.nit:43 */
198 CALL_SUPER_parser___parser_prod___Prod___replace_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
199 /* parser/parser_prod.nit:44 */
200 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___Prod, ID_parser___parser_nodes___Prod)) /*cast Prod*/;
201 if (UNTAG_Bool(REGB0)) {
202 } else {
203 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 44);
204 }
205 /* parser/parser_prod.nit:45 */
206 fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
207 CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
208 stack_frame_head = fra.me.prev;
209 return;
210 }
211 static const char LOCATE_parser___parser_prod___Visitor___visit[] = "parser_prod::Visitor::visit";
212 void parser___parser_prod___Visitor___visit(val_t p0, val_t p1){
213 struct {struct stack_frame_t me;} fra;
214 val_t tmp;
215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
216 fra.me.file = LOCATE_parser___parser_prod;
217 fra.me.line = 51;
218 fra.me.meth = LOCATE_parser___parser_prod___Visitor___visit;
219 fra.me.has_broke = 0;
220 fra.me.REG_size = 0;
221 fra.me.nitni_local_ref_head = NULL;
222 /* parser/parser_prod.nit:51 */
223 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 51);
224 stack_frame_head = fra.me.prev;
225 return;
226 }
227 static const char LOCATE_parser___parser_prod___Visitor___enter_visit[] = "parser_prod::Visitor::enter_visit";
228 void parser___parser_prod___Visitor___enter_visit(val_t p0, val_t p1){
229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
230 val_t tmp;
231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
232 fra.me.file = LOCATE_parser___parser_prod;
233 fra.me.line = 55;
234 fra.me.meth = LOCATE_parser___parser_prod___Visitor___enter_visit;
235 fra.me.has_broke = 0;
236 fra.me.REG_size = 3;
237 fra.me.nitni_local_ref_head = NULL;
238 fra.me.REG[0] = NIT_NULL;
239 fra.me.REG[1] = NIT_NULL;
240 fra.me.REG[2] = NIT_NULL;
241 fra.me.REG[0] = p0;
242 fra.me.REG[1] = p1;
243 /* parser/parser_prod.nit:60 */
244 fra.me.REG[2] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
245 /* parser/parser_prod.nit:61 */
246 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
247 /* parser/parser_prod.nit:62 */
248 CALL_parser___parser_prod___Visitor___visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
249 /* parser/parser_prod.nit:63 */
250 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[2];
251 stack_frame_head = fra.me.prev;
252 return;
253 }
254 static const char LOCATE_parser___parser_prod___Visitor___current_node[] = "parser_prod::Visitor::current_node";
255 val_t parser___parser_prod___Visitor___current_node(val_t p0){
256 struct {struct stack_frame_t me;} fra;
257 val_t tmp;
258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
259 fra.me.file = LOCATE_parser___parser_prod;
260 fra.me.line = 66;
261 fra.me.meth = LOCATE_parser___parser_prod___Visitor___current_node;
262 fra.me.has_broke = 0;
263 fra.me.REG_size = 1;
264 fra.me.nitni_local_ref_head = NULL;
265 fra.me.REG[0] = NIT_NULL;
266 fra.me.REG[0] = p0;
267 /* parser/parser_prod.nit:66 */
268 fra.me.REG[0] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
269 stack_frame_head = fra.me.prev;
270 return fra.me.REG[0];
271 }
272 static const char LOCATE_parser___parser_prod___Visitor___init[] = "parser_prod::Visitor::init";
273 void parser___parser_prod___Visitor___init(val_t p0, int* init_table){
274 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_prod___Visitor].i;
275 struct {struct stack_frame_t me;} fra;
276 val_t tmp;
277 if (init_table[itpos0]) return;
278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
279 fra.me.file = LOCATE_parser___parser_prod;
280 fra.me.line = 0;
281 fra.me.meth = LOCATE_parser___parser_prod___Visitor___init;
282 fra.me.has_broke = 0;
283 fra.me.REG_size = 0;
284 fra.me.nitni_local_ref_head = NULL;
285 stack_frame_head = fra.me.prev;
286 init_table[itpos0] = 1;
287 return;
288 }
289 static const char LOCATE_parser___parser_prod___AModule___empty_init[] = "parser_prod::AModule::empty_init";
290 void parser___parser_prod___AModule___empty_init(val_t p0, int* init_table){
291 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
292 struct {struct stack_frame_t me;} fra;
293 val_t tmp;
294 if (init_table[itpos1]) return;
295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
296 fra.me.file = LOCATE_parser___parser_prod;
297 fra.me.line = 71;
298 fra.me.meth = LOCATE_parser___parser_prod___AModule___empty_init;
299 fra.me.has_broke = 0;
300 fra.me.REG_size = 1;
301 fra.me.nitni_local_ref_head = NULL;
302 fra.me.REG[0] = NIT_NULL;
303 fra.me.REG[0] = p0;
304 stack_frame_head = fra.me.prev;
305 init_table[itpos1] = 1;
306 return;
307 }
308 static const char LOCATE_parser___parser_prod___AModule___init_amodule[] = "parser_prod::AModule::init_amodule";
309 void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
310 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
311 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
312 val_t REGB0;
313 val_t REGB1;
314 val_t tmp;
315 if (init_table[itpos2]) return;
316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
317 fra.me.file = LOCATE_parser___parser_prod;
318 fra.me.line = 73;
319 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
320 fra.me.has_broke = 0;
321 fra.me.REG_size = 5;
322 fra.me.nitni_local_ref_head = NULL;
323 fra.me.REG[0] = NIT_NULL;
324 fra.me.REG[1] = NIT_NULL;
325 fra.me.REG[2] = NIT_NULL;
326 fra.me.REG[3] = NIT_NULL;
327 fra.me.REG[4] = NIT_NULL;
328 fra.me.REG[0] = p0;
329 fra.me.REG[1] = p1;
330 fra.me.REG[2] = p2;
331 fra.me.REG[3] = p3;
332 fra.me.REG[4] = p4;
333 /* parser/parser_prod.nit:80 */
334 CALL_parser___parser_prod___AModule___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
335 /* parser/parser_prod.nit:81 */
336 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
337 /* parser/parser_prod.nit:82 */
338 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
339 if (UNTAG_Bool(REGB0)) {
340 } else {
341 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
342 if (UNTAG_Bool(REGB1)) {
343 REGB1 = TAG_Bool(0);
344 REGB0 = REGB1;
345 } else {
346 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
347 REGB0 = REGB1;
348 }
349 }
350 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
351 if (UNTAG_Bool(REGB0)) {
352 /* parser/parser_prod.nit:83 */
353 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
354 if (UNTAG_Bool(REGB0)) {
355 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 83);
356 }
357 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
358 }
359 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));
360 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));
361 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___init_amodule_3));
362 stack_frame_head = fra.me.prev;
363 init_table[itpos2] = 1;
364 return;
365 }
366 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){
367 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
368 val_t REGB0;
369 fun_t CREG[1];
370 val_t tmp;
371 /* parser/parser_prod.nit:85 */
372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
373 fra.me.file = LOCATE_parser___parser_prod;
374 fra.me.line = 0;
375 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
376 fra.me.has_broke = 0;
377 fra.me.REG_size = 2;
378 fra.me.nitni_local_ref_head = NULL;
379 fra.me.REG[0] = NIT_NULL;
380 fra.me.REG[1] = NIT_NULL;
381 fra.me.closure_ctx = closctx_param;
382 fra.me.closure_funs = CREG;
383 fra.me.REG[0] = p0;
384 CREG[0] = clos_fun0;
385 /* parser/parser_prod.nit:86 */
386 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
387 if (UNTAG_Bool(REGB0)) {
388 } else {
389 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 86);
390 }
391 /* parser/parser_prod.nit:87 */
392 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0])!=NIT_NULL);
393 if (UNTAG_Bool(REGB0)) {
394 } else {
395 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 87);
396 }
397 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0]);
398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
399 /* parser/parser_prod.nit:88 */
400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
401 stack_frame_head = fra.me.prev;
402 return;
403 }
404 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){
405 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
406 val_t REGB0;
407 fun_t CREG[1];
408 val_t tmp;
409 /* parser/parser_prod.nit:90 */
410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
411 fra.me.file = LOCATE_parser___parser_prod;
412 fra.me.line = 0;
413 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
414 fra.me.has_broke = 0;
415 fra.me.REG_size = 2;
416 fra.me.nitni_local_ref_head = NULL;
417 fra.me.REG[0] = NIT_NULL;
418 fra.me.REG[1] = NIT_NULL;
419 fra.me.closure_ctx = closctx_param;
420 fra.me.closure_funs = CREG;
421 fra.me.REG[0] = p0;
422 CREG[0] = clos_fun0;
423 /* parser/parser_prod.nit:91 */
424 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
425 if (UNTAG_Bool(REGB0)) {
426 } else {
427 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 91);
428 }
429 /* parser/parser_prod.nit:92 */
430 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(closctx->REG[0])!=NIT_NULL);
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 92);
434 }
435 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(closctx->REG[0]);
436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
437 /* parser/parser_prod.nit:93 */
438 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
439 stack_frame_head = fra.me.prev;
440 return;
441 }
442 void OC_parser___parser_prod___AModule___init_amodule_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
443 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
444 val_t REGB0;
445 fun_t CREG[1];
446 val_t tmp;
447 /* parser/parser_prod.nit:95 */
448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
449 fra.me.file = LOCATE_parser___parser_prod;
450 fra.me.line = 0;
451 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
452 fra.me.has_broke = 0;
453 fra.me.REG_size = 2;
454 fra.me.nitni_local_ref_head = NULL;
455 fra.me.REG[0] = NIT_NULL;
456 fra.me.REG[1] = NIT_NULL;
457 fra.me.closure_ctx = closctx_param;
458 fra.me.closure_funs = CREG;
459 fra.me.REG[0] = p0;
460 CREG[0] = clos_fun0;
461 /* parser/parser_prod.nit:96 */
462 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
463 if (UNTAG_Bool(REGB0)) {
464 } else {
465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 96);
466 }
467 /* parser/parser_prod.nit:97 */
468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0])!=NIT_NULL);
469 if (UNTAG_Bool(REGB0)) {
470 } else {
471 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 97);
472 }
473 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0]);
474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
475 /* parser/parser_prod.nit:98 */
476 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
477 stack_frame_head = fra.me.prev;
478 return;
479 }
480 static const char LOCATE_parser___parser_prod___AModule___replace_child[] = "parser_prod::AModule::(parser_prod::ANode::replace_child)";
481 void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2){
482 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
483 val_t REGB0;
484 val_t REGB1;
485 val_t REGB2;
486 val_t REGB3;
487 val_t REGB4;
488 val_t tmp;
489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
490 fra.me.file = LOCATE_parser___parser_prod;
491 fra.me.line = 102;
492 fra.me.meth = LOCATE_parser___parser_prod___AModule___replace_child;
493 fra.me.has_broke = 0;
494 fra.me.REG_size = 4;
495 fra.me.nitni_local_ref_head = NULL;
496 fra.me.REG[0] = NIT_NULL;
497 fra.me.REG[1] = NIT_NULL;
498 fra.me.REG[2] = NIT_NULL;
499 fra.me.REG[3] = NIT_NULL;
500 fra.me.REG[0] = p0;
501 fra.me.REG[1] = p1;
502 fra.me.REG[2] = p2;
503 /* parser/parser_prod.nit:104 */
504 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
505 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
506 if (UNTAG_Bool(REGB0)) {
507 } else {
508 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
509 if (UNTAG_Bool(REGB1)) {
510 REGB1 = TAG_Bool(0);
511 REGB0 = REGB1;
512 } else {
513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
514 REGB0 = REGB1;
515 }
516 }
517 if (UNTAG_Bool(REGB0)) {
518 /* parser/parser_prod.nit:105 */
519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
520 if (UNTAG_Bool(REGB0)) {
521 } else {
522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
523 if (UNTAG_Bool(REGB1)) {
524 REGB1 = TAG_Bool(0);
525 REGB0 = REGB1;
526 } else {
527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
528 REGB0 = REGB1;
529 }
530 }
531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
532 if (UNTAG_Bool(REGB0)) {
533 /* parser/parser_prod.nit:106 */
534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
535 if (UNTAG_Bool(REGB0)) {
536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 106);
537 }
538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
539 /* parser/parser_prod.nit:107 */
540 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*/;
541 if (UNTAG_Bool(REGB0)) {
542 } else {
543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 107);
544 }
545 /* parser/parser_prod.nit:108 */
546 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[2];
547 } else {
548 /* parser/parser_prod.nit:110 */
549 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = NIT_NULL;
550 }
551 /* parser/parser_prod.nit:112 */
552 goto label1;
553 }
554 /* parser/parser_prod.nit:114 */
555 REGB0 = TAG_Int(0);
556 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
557 if (UNTAG_Bool(REGB1)) {
558 } else {
559 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 114);
560 }
561 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
562 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
563 /* ../lib/standard/kernel.nit:355 */
564 while(1) {
565 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
566 if (UNTAG_Bool(REGB2)) {
567 } else {
568 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
569 }
570 /* ../lib/standard/kernel.nit:235 */
571 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
572 /* ../lib/standard/kernel.nit:355 */
573 if (UNTAG_Bool(REGB2)) {
574 /* parser/parser_prod.nit:114 */
575 REGB2 = REGB0;
576 /* parser/parser_prod.nit:115 */
577 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
578 if (UNTAG_Bool(REGB3)) {
579 } else {
580 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 115);
581 }
582 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
583 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
584 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
585 if (UNTAG_Bool(REGB3)) {
586 } else {
587 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
588 if (UNTAG_Bool(REGB4)) {
589 REGB4 = TAG_Bool(0);
590 REGB3 = REGB4;
591 } else {
592 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
593 REGB3 = REGB4;
594 }
595 }
596 if (UNTAG_Bool(REGB3)) {
597 /* parser/parser_prod.nit:116 */
598 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
599 if (UNTAG_Bool(REGB3)) {
600 } else {
601 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
602 if (UNTAG_Bool(REGB4)) {
603 REGB4 = TAG_Bool(0);
604 REGB3 = REGB4;
605 } else {
606 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
607 REGB3 = REGB4;
608 }
609 }
610 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
611 if (UNTAG_Bool(REGB3)) {
612 /* parser/parser_prod.nit:117 */
613 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*/;
614 if (UNTAG_Bool(REGB3)) {
615 } else {
616 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 117);
617 }
618 /* parser/parser_prod.nit:118 */
619 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
620 if (UNTAG_Bool(REGB3)) {
621 } else {
622 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 118);
623 }
624 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
625 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
626 /* parser/parser_prod.nit:119 */
627 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
628 if (UNTAG_Bool(REGB3)) {
629 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 119);
630 }
631 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
632 } else {
633 /* parser/parser_prod.nit:121 */
634 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
635 if (UNTAG_Bool(REGB3)) {
636 } else {
637 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 121);
638 }
639 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
640 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
641 }
642 /* parser/parser_prod.nit:123 */
643 goto label1;
644 }
645 /* ../lib/standard/kernel.nit:357 */
646 REGB2 = TAG_Int(1);
647 /* ../lib/standard/kernel.nit:238 */
648 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
649 /* ../lib/standard/kernel.nit:357 */
650 REGB0 = REGB2;
651 } else {
652 /* ../lib/standard/kernel.nit:355 */
653 goto label2;
654 }
655 }
656 label2: while(0);
657 /* parser/parser_prod.nit:126 */
658 REGB0 = TAG_Int(0);
659 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
660 if (UNTAG_Bool(REGB1)) {
661 } else {
662 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 126);
663 }
664 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
665 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
666 /* ../lib/standard/kernel.nit:355 */
667 while(1) {
668 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
669 if (UNTAG_Bool(REGB2)) {
670 } else {
671 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
672 }
673 /* ../lib/standard/kernel.nit:235 */
674 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
675 /* ../lib/standard/kernel.nit:355 */
676 if (UNTAG_Bool(REGB2)) {
677 /* parser/parser_prod.nit:126 */
678 REGB2 = REGB0;
679 /* parser/parser_prod.nit:127 */
680 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
681 if (UNTAG_Bool(REGB3)) {
682 } else {
683 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 127);
684 }
685 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
686 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
687 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
688 if (UNTAG_Bool(REGB3)) {
689 } else {
690 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
691 if (UNTAG_Bool(REGB4)) {
692 REGB4 = TAG_Bool(0);
693 REGB3 = REGB4;
694 } else {
695 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
696 REGB3 = REGB4;
697 }
698 }
699 if (UNTAG_Bool(REGB3)) {
700 /* parser/parser_prod.nit:128 */
701 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
702 if (UNTAG_Bool(REGB3)) {
703 } else {
704 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
705 if (UNTAG_Bool(REGB4)) {
706 REGB4 = TAG_Bool(0);
707 REGB3 = REGB4;
708 } else {
709 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
710 REGB3 = REGB4;
711 }
712 }
713 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
714 if (UNTAG_Bool(REGB3)) {
715 /* parser/parser_prod.nit:129 */
716 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
717 if (UNTAG_Bool(REGB3)) {
718 } else {
719 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 129);
720 }
721 /* parser/parser_prod.nit:130 */
722 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
723 if (UNTAG_Bool(REGB3)) {
724 } else {
725 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 130);
726 }
727 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
728 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
729 /* parser/parser_prod.nit:131 */
730 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
731 if (UNTAG_Bool(REGB3)) {
732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 131);
733 }
734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
735 } else {
736 /* parser/parser_prod.nit:133 */
737 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
738 if (UNTAG_Bool(REGB3)) {
739 } else {
740 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 133);
741 }
742 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
743 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
744 }
745 /* parser/parser_prod.nit:135 */
746 goto label1;
747 }
748 /* ../lib/standard/kernel.nit:357 */
749 REGB2 = TAG_Int(1);
750 /* ../lib/standard/kernel.nit:238 */
751 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
752 /* ../lib/standard/kernel.nit:357 */
753 REGB0 = REGB2;
754 } else {
755 /* ../lib/standard/kernel.nit:355 */
756 goto label3;
757 }
758 }
759 label3: while(0);
760 /* parser/parser_prod.nit:138 */
761 REGB0 = TAG_Int(0);
762 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
763 if (UNTAG_Bool(REGB1)) {
764 } else {
765 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 138);
766 }
767 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
768 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
769 /* ../lib/standard/kernel.nit:355 */
770 while(1) {
771 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
772 if (UNTAG_Bool(REGB2)) {
773 } else {
774 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
775 }
776 /* ../lib/standard/kernel.nit:235 */
777 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
778 /* ../lib/standard/kernel.nit:355 */
779 if (UNTAG_Bool(REGB2)) {
780 /* parser/parser_prod.nit:138 */
781 REGB2 = REGB0;
782 /* parser/parser_prod.nit:139 */
783 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
784 if (UNTAG_Bool(REGB3)) {
785 } else {
786 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 139);
787 }
788 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
789 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
790 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
791 if (UNTAG_Bool(REGB3)) {
792 } else {
793 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
794 if (UNTAG_Bool(REGB4)) {
795 REGB4 = TAG_Bool(0);
796 REGB3 = REGB4;
797 } else {
798 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
799 REGB3 = REGB4;
800 }
801 }
802 if (UNTAG_Bool(REGB3)) {
803 /* parser/parser_prod.nit:140 */
804 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
805 if (UNTAG_Bool(REGB3)) {
806 } else {
807 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
808 if (UNTAG_Bool(REGB4)) {
809 REGB4 = TAG_Bool(0);
810 REGB3 = REGB4;
811 } else {
812 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
813 REGB3 = REGB4;
814 }
815 }
816 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
817 if (UNTAG_Bool(REGB3)) {
818 /* parser/parser_prod.nit:141 */
819 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*/;
820 if (UNTAG_Bool(REGB3)) {
821 } else {
822 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 141);
823 }
824 /* parser/parser_prod.nit:142 */
825 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
826 if (UNTAG_Bool(REGB3)) {
827 } else {
828 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 142);
829 }
830 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
831 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
832 /* parser/parser_prod.nit:143 */
833 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
834 if (UNTAG_Bool(REGB3)) {
835 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 143);
836 }
837 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
838 } else {
839 /* parser/parser_prod.nit:145 */
840 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
841 if (UNTAG_Bool(REGB3)) {
842 } else {
843 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 145);
844 }
845 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
846 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
847 }
848 /* parser/parser_prod.nit:147 */
849 goto label1;
850 }
851 /* ../lib/standard/kernel.nit:357 */
852 REGB2 = TAG_Int(1);
853 /* ../lib/standard/kernel.nit:238 */
854 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
855 /* ../lib/standard/kernel.nit:357 */
856 REGB0 = REGB2;
857 } else {
858 /* ../lib/standard/kernel.nit:355 */
859 goto label4;
860 }
861 }
862 label4: while(0);
863 label1: while(0);
864 stack_frame_head = fra.me.prev;
865 return;
866 }
867 static const char LOCATE_parser___parser_prod___AModule___visit_all[] = "parser_prod::AModule::(parser_prod::ANode::visit_all)";
868 void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
869 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
870 val_t REGB0;
871 val_t REGB1;
872 val_t tmp;
873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
874 fra.me.file = LOCATE_parser___parser_prod;
875 fra.me.line = 152;
876 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
877 fra.me.has_broke = 0;
878 fra.me.REG_size = 4;
879 fra.me.nitni_local_ref_head = NULL;
880 fra.me.REG[0] = NIT_NULL;
881 fra.me.REG[1] = NIT_NULL;
882 fra.me.REG[2] = NIT_NULL;
883 fra.me.REG[3] = NIT_NULL;
884 fra.me.REG[0] = p0;
885 fra.me.REG[1] = p1;
886 /* parser/parser_prod.nit:152 */
887 fra.me.REG[2] = fra.me.REG[0];
888 /* parser/parser_prod.nit:154 */
889 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
890 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
891 if (UNTAG_Bool(REGB0)) {
892 } else {
893 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
894 if (UNTAG_Bool(REGB1)) {
895 REGB1 = TAG_Bool(0);
896 REGB0 = REGB1;
897 } else {
898 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
899 REGB0 = REGB1;
900 }
901 }
902 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
903 if (UNTAG_Bool(REGB0)) {
904 /* parser/parser_prod.nit:155 */
905 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
906 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*/;
907 if (UNTAG_Bool(REGB0)) {
908 } else {
909 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 155);
910 }
911 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
912 }
913 /* parser/parser_prod.nit:157 */
914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2])!=NIT_NULL);
915 if (UNTAG_Bool(REGB0)) {
916 } else {
917 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 157);
918 }
919 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2]);
920 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));
921 /* parser/parser_prod.nit:160 */
922 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[2])!=NIT_NULL);
923 if (UNTAG_Bool(REGB0)) {
924 } else {
925 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 160);
926 }
927 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[2]);
928 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_2));
929 /* parser/parser_prod.nit:163 */
930 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2])!=NIT_NULL);
931 if (UNTAG_Bool(REGB0)) {
932 } else {
933 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 163);
934 }
935 fra.me.REG[2] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2]);
936 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_3));
937 stack_frame_head = fra.me.prev;
938 return;
939 }
940 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){
941 struct {struct stack_frame_t me;} fra;
942 fun_t CREG[1];
943 val_t tmp;
944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
945 fra.me.file = LOCATE_parser___parser_prod;
946 fra.me.line = 0;
947 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
948 fra.me.has_broke = 0;
949 fra.me.REG_size = 1;
950 fra.me.nitni_local_ref_head = NULL;
951 fra.me.REG[0] = NIT_NULL;
952 fra.me.closure_ctx = closctx_param;
953 fra.me.closure_funs = CREG;
954 fra.me.REG[0] = p0;
955 CREG[0] = clos_fun0;
956 /* parser/parser_prod.nit:158 */
957 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
958 stack_frame_head = fra.me.prev;
959 return;
960 }
961 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){
962 struct {struct stack_frame_t me;} fra;
963 fun_t CREG[1];
964 val_t tmp;
965 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
966 fra.me.file = LOCATE_parser___parser_prod;
967 fra.me.line = 0;
968 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
969 fra.me.has_broke = 0;
970 fra.me.REG_size = 1;
971 fra.me.nitni_local_ref_head = NULL;
972 fra.me.REG[0] = NIT_NULL;
973 fra.me.closure_ctx = closctx_param;
974 fra.me.closure_funs = CREG;
975 fra.me.REG[0] = p0;
976 CREG[0] = clos_fun0;
977 /* parser/parser_prod.nit:161 */
978 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
979 stack_frame_head = fra.me.prev;
980 return;
981 }
982 void OC_parser___parser_prod___AModule___visit_all_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
983 struct {struct stack_frame_t me;} fra;
984 fun_t CREG[1];
985 val_t tmp;
986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
987 fra.me.file = LOCATE_parser___parser_prod;
988 fra.me.line = 0;
989 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
990 fra.me.has_broke = 0;
991 fra.me.REG_size = 1;
992 fra.me.nitni_local_ref_head = NULL;
993 fra.me.REG[0] = NIT_NULL;
994 fra.me.closure_ctx = closctx_param;
995 fra.me.closure_funs = CREG;
996 fra.me.REG[0] = p0;
997 CREG[0] = clos_fun0;
998 /* parser/parser_prod.nit:164 */
999 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
1000 stack_frame_head = fra.me.prev;
1001 return;
1002 }
1003 static const char LOCATE_parser___parser_prod___AModuledecl___empty_init[] = "parser_prod::AModuledecl::empty_init";
1004 void parser___parser_prod___AModuledecl___empty_init(val_t p0, int* init_table){
1005 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
1006 struct {struct stack_frame_t me;} fra;
1007 val_t tmp;
1008 if (init_table[itpos3]) return;
1009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1010 fra.me.file = LOCATE_parser___parser_prod;
1011 fra.me.line = 169;
1012 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___empty_init;
1013 fra.me.has_broke = 0;
1014 fra.me.REG_size = 1;
1015 fra.me.nitni_local_ref_head = NULL;
1016 fra.me.REG[0] = NIT_NULL;
1017 fra.me.REG[0] = p0;
1018 stack_frame_head = fra.me.prev;
1019 init_table[itpos3] = 1;
1020 return;
1021 }
1022 static const char LOCATE_parser___parser_prod___AModuledecl___init_amoduledecl[] = "parser_prod::AModuledecl::init_amoduledecl";
1023 void parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1024 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
1025 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1026 val_t REGB0;
1027 val_t REGB1;
1028 val_t tmp;
1029 if (init_table[itpos4]) return;
1030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1031 fra.me.file = LOCATE_parser___parser_prod;
1032 fra.me.line = 171;
1033 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___init_amoduledecl;
1034 fra.me.has_broke = 0;
1035 fra.me.REG_size = 5;
1036 fra.me.nitni_local_ref_head = NULL;
1037 fra.me.REG[0] = NIT_NULL;
1038 fra.me.REG[1] = NIT_NULL;
1039 fra.me.REG[2] = NIT_NULL;
1040 fra.me.REG[3] = NIT_NULL;
1041 fra.me.REG[4] = NIT_NULL;
1042 fra.me.REG[0] = p0;
1043 fra.me.REG[1] = p1;
1044 fra.me.REG[2] = p2;
1045 fra.me.REG[3] = p3;
1046 /* parser/parser_prod.nit:171 */
1047 fra.me.REG[4] = fra.me.REG[0];
1048 /* parser/parser_prod.nit:177 */
1049 CALL_parser___parser_prod___AModuledecl___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1050 /* parser/parser_prod.nit:178 */
1051 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[4]) = fra.me.REG[1];
1052 /* parser/parser_prod.nit:179 */
1053 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1054 if (UNTAG_Bool(REGB0)) {
1055 } else {
1056 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1057 if (UNTAG_Bool(REGB1)) {
1058 REGB1 = TAG_Bool(0);
1059 REGB0 = REGB1;
1060 } else {
1061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1062 REGB0 = REGB1;
1063 }
1064 }
1065 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1066 if (UNTAG_Bool(REGB0)) {
1067 /* parser/parser_prod.nit:180 */
1068 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1069 if (UNTAG_Bool(REGB0)) {
1070 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 180);
1071 }
1072 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1073 }
1074 /* parser/parser_prod.nit:182 */
1075 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1076 if (UNTAG_Bool(REGB0)) {
1077 } else {
1078 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 182);
1079 }
1080 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[4]) = fra.me.REG[2];
1081 /* parser/parser_prod.nit:183 */
1082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1083 if (UNTAG_Bool(REGB0)) {
1084 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 183);
1085 }
1086 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1087 /* parser/parser_prod.nit:184 */
1088 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1089 if (UNTAG_Bool(REGB0)) {
1090 } else {
1091 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 184);
1092 }
1093 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[4]) = fra.me.REG[3];
1094 /* parser/parser_prod.nit:185 */
1095 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1096 if (UNTAG_Bool(REGB0)) {
1097 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 185);
1098 }
1099 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1100 stack_frame_head = fra.me.prev;
1101 init_table[itpos4] = 1;
1102 return;
1103 }
1104 static const char LOCATE_parser___parser_prod___AModuledecl___replace_child[] = "parser_prod::AModuledecl::(parser_prod::ANode::replace_child)";
1105 void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_t p2){
1106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1107 val_t REGB0;
1108 val_t REGB1;
1109 val_t tmp;
1110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1111 fra.me.file = LOCATE_parser___parser_prod;
1112 fra.me.line = 188;
1113 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___replace_child;
1114 fra.me.has_broke = 0;
1115 fra.me.REG_size = 4;
1116 fra.me.nitni_local_ref_head = NULL;
1117 fra.me.REG[0] = NIT_NULL;
1118 fra.me.REG[1] = NIT_NULL;
1119 fra.me.REG[2] = NIT_NULL;
1120 fra.me.REG[3] = NIT_NULL;
1121 fra.me.REG[0] = p0;
1122 fra.me.REG[1] = p1;
1123 fra.me.REG[2] = p2;
1124 /* parser/parser_prod.nit:190 */
1125 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
1126 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
1127 if (UNTAG_Bool(REGB0)) {
1128 } else {
1129 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1130 if (UNTAG_Bool(REGB1)) {
1131 REGB1 = TAG_Bool(0);
1132 REGB0 = REGB1;
1133 } else {
1134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1135 REGB0 = REGB1;
1136 }
1137 }
1138 if (UNTAG_Bool(REGB0)) {
1139 /* parser/parser_prod.nit:191 */
1140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1141 if (UNTAG_Bool(REGB0)) {
1142 } else {
1143 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1144 if (UNTAG_Bool(REGB1)) {
1145 REGB1 = TAG_Bool(0);
1146 REGB0 = REGB1;
1147 } else {
1148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1149 REGB0 = REGB1;
1150 }
1151 }
1152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1153 if (UNTAG_Bool(REGB0)) {
1154 /* parser/parser_prod.nit:192 */
1155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1156 if (UNTAG_Bool(REGB0)) {
1157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 192);
1158 }
1159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1160 /* parser/parser_prod.nit:193 */
1161 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*/;
1162 if (UNTAG_Bool(REGB0)) {
1163 } else {
1164 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 193);
1165 }
1166 /* parser/parser_prod.nit:194 */
1167 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[2];
1168 } else {
1169 /* parser/parser_prod.nit:196 */
1170 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = NIT_NULL;
1171 }
1172 /* parser/parser_prod.nit:198 */
1173 goto label1;
1174 }
1175 /* parser/parser_prod.nit:200 */
1176 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
1177 if (UNTAG_Bool(REGB0)) {
1178 } else {
1179 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 200);
1180 }
1181 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
1182 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1183 if (UNTAG_Bool(REGB0)) {
1184 } else {
1185 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1186 REGB0 = REGB1;
1187 }
1188 if (UNTAG_Bool(REGB0)) {
1189 /* parser/parser_prod.nit:201 */
1190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1191 if (UNTAG_Bool(REGB0)) {
1192 } else {
1193 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1194 if (UNTAG_Bool(REGB1)) {
1195 REGB1 = TAG_Bool(0);
1196 REGB0 = REGB1;
1197 } else {
1198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1199 REGB0 = REGB1;
1200 }
1201 }
1202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1203 if (UNTAG_Bool(REGB0)) {
1204 /* parser/parser_prod.nit:202 */
1205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1206 if (UNTAG_Bool(REGB0)) {
1207 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 202);
1208 }
1209 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1210 /* parser/parser_prod.nit:203 */
1211 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*/;
1212 if (UNTAG_Bool(REGB0)) {
1213 } else {
1214 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 203);
1215 }
1216 /* parser/parser_prod.nit:204 */
1217 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
1218 } else {
1219 /* parser/parser_prod.nit:206 */
1220 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 206);
1221 }
1222 /* parser/parser_prod.nit:208 */
1223 goto label1;
1224 }
1225 /* parser/parser_prod.nit:210 */
1226 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0])!=NIT_NULL);
1227 if (UNTAG_Bool(REGB0)) {
1228 } else {
1229 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 210);
1230 }
1231 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]);
1232 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1233 if (UNTAG_Bool(REGB0)) {
1234 } else {
1235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1236 REGB0 = REGB1;
1237 }
1238 if (UNTAG_Bool(REGB0)) {
1239 /* parser/parser_prod.nit:211 */
1240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1241 if (UNTAG_Bool(REGB0)) {
1242 } else {
1243 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1244 if (UNTAG_Bool(REGB1)) {
1245 REGB1 = TAG_Bool(0);
1246 REGB0 = REGB1;
1247 } else {
1248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1249 REGB0 = REGB1;
1250 }
1251 }
1252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1253 if (UNTAG_Bool(REGB0)) {
1254 /* parser/parser_prod.nit:212 */
1255 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1256 if (UNTAG_Bool(REGB0)) {
1257 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 212);
1258 }
1259 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1260 /* parser/parser_prod.nit:213 */
1261 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*/;
1262 if (UNTAG_Bool(REGB0)) {
1263 } else {
1264 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 213);
1265 }
1266 /* parser/parser_prod.nit:214 */
1267 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]) = fra.me.REG[2];
1268 } else {
1269 /* parser/parser_prod.nit:216 */
1270 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 216);
1271 }
1272 /* parser/parser_prod.nit:218 */
1273 goto label1;
1274 }
1275 label1: while(0);
1276 stack_frame_head = fra.me.prev;
1277 return;
1278 }
1279 static const char LOCATE_parser___parser_prod___AModuledecl___visit_all[] = "parser_prod::AModuledecl::(parser_prod::ANode::visit_all)";
1280 void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
1281 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1282 val_t REGB0;
1283 val_t REGB1;
1284 val_t tmp;
1285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1286 fra.me.file = LOCATE_parser___parser_prod;
1287 fra.me.line = 222;
1288 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___visit_all;
1289 fra.me.has_broke = 0;
1290 fra.me.REG_size = 4;
1291 fra.me.nitni_local_ref_head = NULL;
1292 fra.me.REG[0] = NIT_NULL;
1293 fra.me.REG[1] = NIT_NULL;
1294 fra.me.REG[2] = NIT_NULL;
1295 fra.me.REG[3] = NIT_NULL;
1296 fra.me.REG[0] = p0;
1297 fra.me.REG[1] = p1;
1298 /* parser/parser_prod.nit:222 */
1299 fra.me.REG[2] = fra.me.REG[0];
1300 /* parser/parser_prod.nit:224 */
1301 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1302 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1303 if (UNTAG_Bool(REGB0)) {
1304 } else {
1305 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1306 if (UNTAG_Bool(REGB1)) {
1307 REGB1 = TAG_Bool(0);
1308 REGB0 = REGB1;
1309 } else {
1310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1311 REGB0 = REGB1;
1312 }
1313 }
1314 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1315 if (UNTAG_Bool(REGB0)) {
1316 /* parser/parser_prod.nit:225 */
1317 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1318 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*/;
1319 if (UNTAG_Bool(REGB0)) {
1320 } else {
1321 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 225);
1322 }
1323 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1324 }
1325 /* parser/parser_prod.nit:227 */
1326 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2])!=NIT_NULL);
1327 if (UNTAG_Bool(REGB0)) {
1328 } else {
1329 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 227);
1330 }
1331 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2]);
1332 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1333 /* parser/parser_prod.nit:228 */
1334 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2])!=NIT_NULL);
1335 if (UNTAG_Bool(REGB0)) {
1336 } else {
1337 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 228);
1338 }
1339 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2]);
1340 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1341 stack_frame_head = fra.me.prev;
1342 return;
1343 }
1344 static const char LOCATE_parser___parser_prod___AStdImport___empty_init[] = "parser_prod::AStdImport::empty_init";
1345 void parser___parser_prod___AStdImport___empty_init(val_t p0, int* init_table){
1346 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1347 struct {struct stack_frame_t me;} fra;
1348 val_t tmp;
1349 if (init_table[itpos5]) return;
1350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1351 fra.me.file = LOCATE_parser___parser_prod;
1352 fra.me.line = 232;
1353 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___empty_init;
1354 fra.me.has_broke = 0;
1355 fra.me.REG_size = 1;
1356 fra.me.nitni_local_ref_head = NULL;
1357 fra.me.REG[0] = NIT_NULL;
1358 fra.me.REG[0] = p0;
1359 stack_frame_head = fra.me.prev;
1360 init_table[itpos5] = 1;
1361 return;
1362 }
1363 static const char LOCATE_parser___parser_prod___AStdImport___init_astdimport[] = "parser_prod::AStdImport::init_astdimport";
1364 void parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1365 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1366 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1367 val_t REGB0;
1368 val_t tmp;
1369 if (init_table[itpos6]) return;
1370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1371 fra.me.file = LOCATE_parser___parser_prod;
1372 fra.me.line = 234;
1373 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___init_astdimport;
1374 fra.me.has_broke = 0;
1375 fra.me.REG_size = 5;
1376 fra.me.nitni_local_ref_head = NULL;
1377 fra.me.REG[0] = NIT_NULL;
1378 fra.me.REG[1] = NIT_NULL;
1379 fra.me.REG[2] = NIT_NULL;
1380 fra.me.REG[3] = NIT_NULL;
1381 fra.me.REG[4] = NIT_NULL;
1382 fra.me.REG[0] = p0;
1383 fra.me.REG[1] = p1;
1384 fra.me.REG[2] = p2;
1385 fra.me.REG[3] = p3;
1386 /* parser/parser_prod.nit:234 */
1387 fra.me.REG[4] = fra.me.REG[0];
1388 /* parser/parser_prod.nit:240 */
1389 CALL_parser___parser_prod___AStdImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1390 /* parser/parser_prod.nit:241 */
1391 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1392 if (UNTAG_Bool(REGB0)) {
1393 } else {
1394 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 241);
1395 }
1396 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1397 /* parser/parser_prod.nit:242 */
1398 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1399 if (UNTAG_Bool(REGB0)) {
1400 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 242);
1401 }
1402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1403 /* parser/parser_prod.nit:243 */
1404 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1405 if (UNTAG_Bool(REGB0)) {
1406 } else {
1407 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 243);
1408 }
1409 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1410 /* parser/parser_prod.nit:244 */
1411 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1412 if (UNTAG_Bool(REGB0)) {
1413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 244);
1414 }
1415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1416 /* parser/parser_prod.nit:245 */
1417 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1418 if (UNTAG_Bool(REGB0)) {
1419 } else {
1420 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 245);
1421 }
1422 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[4]) = fra.me.REG[3];
1423 /* parser/parser_prod.nit:246 */
1424 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1425 if (UNTAG_Bool(REGB0)) {
1426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 246);
1427 }
1428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1429 stack_frame_head = fra.me.prev;
1430 init_table[itpos6] = 1;
1431 return;
1432 }
1433 static const char LOCATE_parser___parser_prod___AStdImport___replace_child[] = "parser_prod::AStdImport::(parser_prod::ANode::replace_child)";
1434 void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t p2){
1435 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1436 val_t REGB0;
1437 val_t REGB1;
1438 val_t tmp;
1439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1440 fra.me.file = LOCATE_parser___parser_prod;
1441 fra.me.line = 249;
1442 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___replace_child;
1443 fra.me.has_broke = 0;
1444 fra.me.REG_size = 4;
1445 fra.me.nitni_local_ref_head = NULL;
1446 fra.me.REG[0] = NIT_NULL;
1447 fra.me.REG[1] = NIT_NULL;
1448 fra.me.REG[2] = NIT_NULL;
1449 fra.me.REG[3] = NIT_NULL;
1450 fra.me.REG[0] = p0;
1451 fra.me.REG[1] = p1;
1452 fra.me.REG[2] = p2;
1453 /* parser/parser_prod.nit:251 */
1454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1455 if (UNTAG_Bool(REGB0)) {
1456 } else {
1457 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 251);
1458 }
1459 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1460 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1461 if (UNTAG_Bool(REGB0)) {
1462 } else {
1463 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1464 REGB0 = REGB1;
1465 }
1466 if (UNTAG_Bool(REGB0)) {
1467 /* parser/parser_prod.nit:252 */
1468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1469 if (UNTAG_Bool(REGB0)) {
1470 } else {
1471 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1472 if (UNTAG_Bool(REGB1)) {
1473 REGB1 = TAG_Bool(0);
1474 REGB0 = REGB1;
1475 } else {
1476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1477 REGB0 = REGB1;
1478 }
1479 }
1480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1481 if (UNTAG_Bool(REGB0)) {
1482 /* parser/parser_prod.nit:253 */
1483 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1484 if (UNTAG_Bool(REGB0)) {
1485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 253);
1486 }
1487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1488 /* parser/parser_prod.nit:254 */
1489 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*/;
1490 if (UNTAG_Bool(REGB0)) {
1491 } else {
1492 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 254);
1493 }
1494 /* parser/parser_prod.nit:255 */
1495 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1496 } else {
1497 /* parser/parser_prod.nit:257 */
1498 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 257);
1499 }
1500 /* parser/parser_prod.nit:259 */
1501 goto label1;
1502 }
1503 /* parser/parser_prod.nit:261 */
1504 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1505 if (UNTAG_Bool(REGB0)) {
1506 } else {
1507 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 261);
1508 }
1509 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1510 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1511 if (UNTAG_Bool(REGB0)) {
1512 } else {
1513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1514 REGB0 = REGB1;
1515 }
1516 if (UNTAG_Bool(REGB0)) {
1517 /* parser/parser_prod.nit:262 */
1518 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1519 if (UNTAG_Bool(REGB0)) {
1520 } else {
1521 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1522 if (UNTAG_Bool(REGB1)) {
1523 REGB1 = TAG_Bool(0);
1524 REGB0 = REGB1;
1525 } else {
1526 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1527 REGB0 = REGB1;
1528 }
1529 }
1530 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1531 if (UNTAG_Bool(REGB0)) {
1532 /* parser/parser_prod.nit:263 */
1533 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1534 if (UNTAG_Bool(REGB0)) {
1535 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 263);
1536 }
1537 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1538 /* parser/parser_prod.nit:264 */
1539 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*/;
1540 if (UNTAG_Bool(REGB0)) {
1541 } else {
1542 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 264);
1543 }
1544 /* parser/parser_prod.nit:265 */
1545 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1546 } else {
1547 /* parser/parser_prod.nit:267 */
1548 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 267);
1549 }
1550 /* parser/parser_prod.nit:269 */
1551 goto label1;
1552 }
1553 /* parser/parser_prod.nit:271 */
1554 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1555 if (UNTAG_Bool(REGB0)) {
1556 } else {
1557 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 271);
1558 }
1559 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1560 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1561 if (UNTAG_Bool(REGB0)) {
1562 } else {
1563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1564 REGB0 = REGB1;
1565 }
1566 if (UNTAG_Bool(REGB0)) {
1567 /* parser/parser_prod.nit:272 */
1568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1569 if (UNTAG_Bool(REGB0)) {
1570 } else {
1571 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1572 if (UNTAG_Bool(REGB1)) {
1573 REGB1 = TAG_Bool(0);
1574 REGB0 = REGB1;
1575 } else {
1576 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1577 REGB0 = REGB1;
1578 }
1579 }
1580 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1581 if (UNTAG_Bool(REGB0)) {
1582 /* parser/parser_prod.nit:273 */
1583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1584 if (UNTAG_Bool(REGB0)) {
1585 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 273);
1586 }
1587 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1588 /* parser/parser_prod.nit:274 */
1589 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*/;
1590 if (UNTAG_Bool(REGB0)) {
1591 } else {
1592 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 274);
1593 }
1594 /* parser/parser_prod.nit:275 */
1595 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]) = fra.me.REG[2];
1596 } else {
1597 /* parser/parser_prod.nit:277 */
1598 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 277);
1599 }
1600 /* parser/parser_prod.nit:279 */
1601 goto label1;
1602 }
1603 label1: while(0);
1604 stack_frame_head = fra.me.prev;
1605 return;
1606 }
1607 static const char LOCATE_parser___parser_prod___AStdImport___visit_all[] = "parser_prod::AStdImport::(parser_prod::ANode::visit_all)";
1608 void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
1609 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1610 val_t REGB0;
1611 val_t tmp;
1612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1613 fra.me.file = LOCATE_parser___parser_prod;
1614 fra.me.line = 283;
1615 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___visit_all;
1616 fra.me.has_broke = 0;
1617 fra.me.REG_size = 3;
1618 fra.me.nitni_local_ref_head = NULL;
1619 fra.me.REG[0] = NIT_NULL;
1620 fra.me.REG[1] = NIT_NULL;
1621 fra.me.REG[2] = NIT_NULL;
1622 fra.me.REG[0] = p0;
1623 fra.me.REG[1] = p1;
1624 /* parser/parser_prod.nit:285 */
1625 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1626 if (UNTAG_Bool(REGB0)) {
1627 } else {
1628 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 285);
1629 }
1630 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1631 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1632 /* parser/parser_prod.nit:286 */
1633 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1634 if (UNTAG_Bool(REGB0)) {
1635 } else {
1636 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 286);
1637 }
1638 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1639 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1640 /* parser/parser_prod.nit:287 */
1641 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1642 if (UNTAG_Bool(REGB0)) {
1643 } else {
1644 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 287);
1645 }
1646 fra.me.REG[0] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1647 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1648 stack_frame_head = fra.me.prev;
1649 return;
1650 }
1651 static const char LOCATE_parser___parser_prod___ANoImport___empty_init[] = "parser_prod::ANoImport::empty_init";
1652 void parser___parser_prod___ANoImport___empty_init(val_t p0, int* init_table){
1653 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1654 struct {struct stack_frame_t me;} fra;
1655 val_t tmp;
1656 if (init_table[itpos7]) return;
1657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1658 fra.me.file = LOCATE_parser___parser_prod;
1659 fra.me.line = 291;
1660 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___empty_init;
1661 fra.me.has_broke = 0;
1662 fra.me.REG_size = 1;
1663 fra.me.nitni_local_ref_head = NULL;
1664 fra.me.REG[0] = NIT_NULL;
1665 fra.me.REG[0] = p0;
1666 stack_frame_head = fra.me.prev;
1667 init_table[itpos7] = 1;
1668 return;
1669 }
1670 static const char LOCATE_parser___parser_prod___ANoImport___init_anoimport[] = "parser_prod::ANoImport::init_anoimport";
1671 void parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1672 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1673 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1674 val_t REGB0;
1675 val_t tmp;
1676 if (init_table[itpos8]) return;
1677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1678 fra.me.file = LOCATE_parser___parser_prod;
1679 fra.me.line = 293;
1680 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___init_anoimport;
1681 fra.me.has_broke = 0;
1682 fra.me.REG_size = 5;
1683 fra.me.nitni_local_ref_head = NULL;
1684 fra.me.REG[0] = NIT_NULL;
1685 fra.me.REG[1] = NIT_NULL;
1686 fra.me.REG[2] = NIT_NULL;
1687 fra.me.REG[3] = NIT_NULL;
1688 fra.me.REG[4] = NIT_NULL;
1689 fra.me.REG[0] = p0;
1690 fra.me.REG[1] = p1;
1691 fra.me.REG[2] = p2;
1692 fra.me.REG[3] = p3;
1693 /* parser/parser_prod.nit:293 */
1694 fra.me.REG[4] = fra.me.REG[0];
1695 /* parser/parser_prod.nit:299 */
1696 CALL_parser___parser_prod___ANoImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1697 /* parser/parser_prod.nit:300 */
1698 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1699 if (UNTAG_Bool(REGB0)) {
1700 } else {
1701 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 300);
1702 }
1703 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1704 /* parser/parser_prod.nit:301 */
1705 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1706 if (UNTAG_Bool(REGB0)) {
1707 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 301);
1708 }
1709 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1710 /* parser/parser_prod.nit:302 */
1711 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1712 if (UNTAG_Bool(REGB0)) {
1713 } else {
1714 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 302);
1715 }
1716 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1717 /* parser/parser_prod.nit:303 */
1718 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1719 if (UNTAG_Bool(REGB0)) {
1720 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 303);
1721 }
1722 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1723 /* parser/parser_prod.nit:304 */
1724 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1725 if (UNTAG_Bool(REGB0)) {
1726 } else {
1727 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 304);
1728 }
1729 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[4]) = fra.me.REG[3];
1730 /* parser/parser_prod.nit:305 */
1731 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1732 if (UNTAG_Bool(REGB0)) {
1733 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 305);
1734 }
1735 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1736 stack_frame_head = fra.me.prev;
1737 init_table[itpos8] = 1;
1738 return;
1739 }
1740 static const char LOCATE_parser___parser_prod___ANoImport___replace_child[] = "parser_prod::ANoImport::(parser_prod::ANode::replace_child)";
1741 void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t p2){
1742 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1743 val_t REGB0;
1744 val_t REGB1;
1745 val_t tmp;
1746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1747 fra.me.file = LOCATE_parser___parser_prod;
1748 fra.me.line = 308;
1749 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___replace_child;
1750 fra.me.has_broke = 0;
1751 fra.me.REG_size = 4;
1752 fra.me.nitni_local_ref_head = NULL;
1753 fra.me.REG[0] = NIT_NULL;
1754 fra.me.REG[1] = NIT_NULL;
1755 fra.me.REG[2] = NIT_NULL;
1756 fra.me.REG[3] = NIT_NULL;
1757 fra.me.REG[0] = p0;
1758 fra.me.REG[1] = p1;
1759 fra.me.REG[2] = p2;
1760 /* parser/parser_prod.nit:310 */
1761 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1762 if (UNTAG_Bool(REGB0)) {
1763 } else {
1764 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 310);
1765 }
1766 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1767 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1768 if (UNTAG_Bool(REGB0)) {
1769 } else {
1770 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1771 REGB0 = REGB1;
1772 }
1773 if (UNTAG_Bool(REGB0)) {
1774 /* parser/parser_prod.nit:311 */
1775 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1776 if (UNTAG_Bool(REGB0)) {
1777 } else {
1778 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1779 if (UNTAG_Bool(REGB1)) {
1780 REGB1 = TAG_Bool(0);
1781 REGB0 = REGB1;
1782 } else {
1783 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1784 REGB0 = REGB1;
1785 }
1786 }
1787 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1788 if (UNTAG_Bool(REGB0)) {
1789 /* parser/parser_prod.nit:312 */
1790 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1791 if (UNTAG_Bool(REGB0)) {
1792 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 312);
1793 }
1794 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1795 /* parser/parser_prod.nit:313 */
1796 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*/;
1797 if (UNTAG_Bool(REGB0)) {
1798 } else {
1799 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 313);
1800 }
1801 /* parser/parser_prod.nit:314 */
1802 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1803 } else {
1804 /* parser/parser_prod.nit:316 */
1805 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 316);
1806 }
1807 /* parser/parser_prod.nit:318 */
1808 goto label1;
1809 }
1810 /* parser/parser_prod.nit:320 */
1811 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1812 if (UNTAG_Bool(REGB0)) {
1813 } else {
1814 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 320);
1815 }
1816 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1817 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1818 if (UNTAG_Bool(REGB0)) {
1819 } else {
1820 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1821 REGB0 = REGB1;
1822 }
1823 if (UNTAG_Bool(REGB0)) {
1824 /* parser/parser_prod.nit:321 */
1825 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1826 if (UNTAG_Bool(REGB0)) {
1827 } else {
1828 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1829 if (UNTAG_Bool(REGB1)) {
1830 REGB1 = TAG_Bool(0);
1831 REGB0 = REGB1;
1832 } else {
1833 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1834 REGB0 = REGB1;
1835 }
1836 }
1837 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1838 if (UNTAG_Bool(REGB0)) {
1839 /* parser/parser_prod.nit:322 */
1840 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1841 if (UNTAG_Bool(REGB0)) {
1842 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 322);
1843 }
1844 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1845 /* parser/parser_prod.nit:323 */
1846 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*/;
1847 if (UNTAG_Bool(REGB0)) {
1848 } else {
1849 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 323);
1850 }
1851 /* parser/parser_prod.nit:324 */
1852 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1853 } else {
1854 /* parser/parser_prod.nit:326 */
1855 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 326);
1856 }
1857 /* parser/parser_prod.nit:328 */
1858 goto label1;
1859 }
1860 /* parser/parser_prod.nit:330 */
1861 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1862 if (UNTAG_Bool(REGB0)) {
1863 } else {
1864 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 330);
1865 }
1866 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1867 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1868 if (UNTAG_Bool(REGB0)) {
1869 } else {
1870 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1871 REGB0 = REGB1;
1872 }
1873 if (UNTAG_Bool(REGB0)) {
1874 /* parser/parser_prod.nit:331 */
1875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1876 if (UNTAG_Bool(REGB0)) {
1877 } else {
1878 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1879 if (UNTAG_Bool(REGB1)) {
1880 REGB1 = TAG_Bool(0);
1881 REGB0 = REGB1;
1882 } else {
1883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1884 REGB0 = REGB1;
1885 }
1886 }
1887 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1888 if (UNTAG_Bool(REGB0)) {
1889 /* parser/parser_prod.nit:332 */
1890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1891 if (UNTAG_Bool(REGB0)) {
1892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 332);
1893 }
1894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1895 /* parser/parser_prod.nit:333 */
1896 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*/;
1897 if (UNTAG_Bool(REGB0)) {
1898 } else {
1899 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 333);
1900 }
1901 /* parser/parser_prod.nit:334 */
1902 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
1903 } else {
1904 /* parser/parser_prod.nit:336 */
1905 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 336);
1906 }
1907 /* parser/parser_prod.nit:338 */
1908 goto label1;
1909 }
1910 label1: while(0);
1911 stack_frame_head = fra.me.prev;
1912 return;
1913 }
1914 static const char LOCATE_parser___parser_prod___ANoImport___visit_all[] = "parser_prod::ANoImport::(parser_prod::ANode::visit_all)";
1915 void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
1916 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1917 val_t REGB0;
1918 val_t tmp;
1919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1920 fra.me.file = LOCATE_parser___parser_prod;
1921 fra.me.line = 342;
1922 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___visit_all;
1923 fra.me.has_broke = 0;
1924 fra.me.REG_size = 3;
1925 fra.me.nitni_local_ref_head = NULL;
1926 fra.me.REG[0] = NIT_NULL;
1927 fra.me.REG[1] = NIT_NULL;
1928 fra.me.REG[2] = NIT_NULL;
1929 fra.me.REG[0] = p0;
1930 fra.me.REG[1] = p1;
1931 /* parser/parser_prod.nit:344 */
1932 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1933 if (UNTAG_Bool(REGB0)) {
1934 } else {
1935 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 344);
1936 }
1937 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1938 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1939 /* parser/parser_prod.nit:345 */
1940 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1941 if (UNTAG_Bool(REGB0)) {
1942 } else {
1943 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 345);
1944 }
1945 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1946 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1947 /* parser/parser_prod.nit:346 */
1948 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1949 if (UNTAG_Bool(REGB0)) {
1950 } else {
1951 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 346);
1952 }
1953 fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1954 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1955 stack_frame_head = fra.me.prev;
1956 return;
1957 }
1958 static const char LOCATE_parser___parser_prod___APublicVisibility___empty_init[] = "parser_prod::APublicVisibility::empty_init";
1959 void parser___parser_prod___APublicVisibility___empty_init(val_t p0, int* init_table){
1960 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
1961 struct {struct stack_frame_t me;} fra;
1962 val_t tmp;
1963 if (init_table[itpos9]) return;
1964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1965 fra.me.file = LOCATE_parser___parser_prod;
1966 fra.me.line = 350;
1967 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___empty_init;
1968 fra.me.has_broke = 0;
1969 fra.me.REG_size = 1;
1970 fra.me.nitni_local_ref_head = NULL;
1971 fra.me.REG[0] = NIT_NULL;
1972 fra.me.REG[0] = p0;
1973 stack_frame_head = fra.me.prev;
1974 init_table[itpos9] = 1;
1975 return;
1976 }
1977 static const char LOCATE_parser___parser_prod___APublicVisibility___init_apublicvisibility[] = "parser_prod::APublicVisibility::init_apublicvisibility";
1978 void parser___parser_prod___APublicVisibility___init_apublicvisibility(val_t p0, int* init_table){
1979 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
1980 struct {struct stack_frame_t me;} fra;
1981 val_t tmp;
1982 if (init_table[itpos10]) return;
1983 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1984 fra.me.file = LOCATE_parser___parser_prod;
1985 fra.me.line = 352;
1986 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___init_apublicvisibility;
1987 fra.me.has_broke = 0;
1988 fra.me.REG_size = 1;
1989 fra.me.nitni_local_ref_head = NULL;
1990 fra.me.REG[0] = NIT_NULL;
1991 fra.me.REG[0] = p0;
1992 /* parser/parser_prod.nit:354 */
1993 CALL_parser___parser_prod___APublicVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1994 stack_frame_head = fra.me.prev;
1995 init_table[itpos10] = 1;
1996 return;
1997 }
1998 static const char LOCATE_parser___parser_prod___APublicVisibility___replace_child[] = "parser_prod::APublicVisibility::(parser_prod::ANode::replace_child)";
1999 void parser___parser_prod___APublicVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2000 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2001 val_t tmp;
2002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2003 fra.me.file = LOCATE_parser___parser_prod;
2004 fra.me.line = 357;
2005 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___replace_child;
2006 fra.me.has_broke = 0;
2007 fra.me.REG_size = 3;
2008 fra.me.nitni_local_ref_head = NULL;
2009 fra.me.REG[0] = NIT_NULL;
2010 fra.me.REG[1] = NIT_NULL;
2011 fra.me.REG[2] = NIT_NULL;
2012 fra.me.REG[0] = p0;
2013 fra.me.REG[1] = p1;
2014 fra.me.REG[2] = p2;
2015 stack_frame_head = fra.me.prev;
2016 return;
2017 }
2018 static const char LOCATE_parser___parser_prod___APublicVisibility___visit_all[] = "parser_prod::APublicVisibility::(parser_prod::ANode::visit_all)";
2019 void parser___parser_prod___APublicVisibility___visit_all(val_t p0, val_t p1){
2020 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2021 val_t tmp;
2022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2023 fra.me.file = LOCATE_parser___parser_prod;
2024 fra.me.line = 361;
2025 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___visit_all;
2026 fra.me.has_broke = 0;
2027 fra.me.REG_size = 2;
2028 fra.me.nitni_local_ref_head = NULL;
2029 fra.me.REG[0] = NIT_NULL;
2030 fra.me.REG[1] = NIT_NULL;
2031 fra.me.REG[0] = p0;
2032 fra.me.REG[1] = p1;
2033 stack_frame_head = fra.me.prev;
2034 return;
2035 }
2036 static const char LOCATE_parser___parser_prod___APrivateVisibility___empty_init[] = "parser_prod::APrivateVisibility::empty_init";
2037 void parser___parser_prod___APrivateVisibility___empty_init(val_t p0, int* init_table){
2038 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
2039 struct {struct stack_frame_t me;} fra;
2040 val_t tmp;
2041 if (init_table[itpos11]) return;
2042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2043 fra.me.file = LOCATE_parser___parser_prod;
2044 fra.me.line = 366;
2045 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___empty_init;
2046 fra.me.has_broke = 0;
2047 fra.me.REG_size = 1;
2048 fra.me.nitni_local_ref_head = NULL;
2049 fra.me.REG[0] = NIT_NULL;
2050 fra.me.REG[0] = p0;
2051 stack_frame_head = fra.me.prev;
2052 init_table[itpos11] = 1;
2053 return;
2054 }
2055 static const char LOCATE_parser___parser_prod___APrivateVisibility___init_aprivatevisibility[] = "parser_prod::APrivateVisibility::init_aprivatevisibility";
2056 void parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0, val_t p1, int* init_table){
2057 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
2058 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2059 val_t REGB0;
2060 val_t tmp;
2061 if (init_table[itpos12]) return;
2062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2063 fra.me.file = LOCATE_parser___parser_prod;
2064 fra.me.line = 368;
2065 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___init_aprivatevisibility;
2066 fra.me.has_broke = 0;
2067 fra.me.REG_size = 3;
2068 fra.me.nitni_local_ref_head = NULL;
2069 fra.me.REG[0] = NIT_NULL;
2070 fra.me.REG[1] = NIT_NULL;
2071 fra.me.REG[2] = NIT_NULL;
2072 fra.me.REG[0] = p0;
2073 fra.me.REG[1] = p1;
2074 /* parser/parser_prod.nit:368 */
2075 fra.me.REG[2] = fra.me.REG[0];
2076 /* parser/parser_prod.nit:372 */
2077 CALL_parser___parser_prod___APrivateVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2078 /* parser/parser_prod.nit:373 */
2079 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2080 if (UNTAG_Bool(REGB0)) {
2081 } else {
2082 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 373);
2083 }
2084 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[2]) = fra.me.REG[1];
2085 /* parser/parser_prod.nit:374 */
2086 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2087 if (UNTAG_Bool(REGB0)) {
2088 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 374);
2089 }
2090 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2091 stack_frame_head = fra.me.prev;
2092 init_table[itpos12] = 1;
2093 return;
2094 }
2095 static const char LOCATE_parser___parser_prod___APrivateVisibility___replace_child[] = "parser_prod::APrivateVisibility::(parser_prod::ANode::replace_child)";
2096 void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2097 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2098 val_t REGB0;
2099 val_t REGB1;
2100 val_t tmp;
2101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2102 fra.me.file = LOCATE_parser___parser_prod;
2103 fra.me.line = 377;
2104 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___replace_child;
2105 fra.me.has_broke = 0;
2106 fra.me.REG_size = 4;
2107 fra.me.nitni_local_ref_head = NULL;
2108 fra.me.REG[0] = NIT_NULL;
2109 fra.me.REG[1] = NIT_NULL;
2110 fra.me.REG[2] = NIT_NULL;
2111 fra.me.REG[3] = NIT_NULL;
2112 fra.me.REG[0] = p0;
2113 fra.me.REG[1] = p1;
2114 fra.me.REG[2] = p2;
2115 /* parser/parser_prod.nit:379 */
2116 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
2117 if (UNTAG_Bool(REGB0)) {
2118 } else {
2119 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 379);
2120 }
2121 fra.me.REG[3] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
2122 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2123 if (UNTAG_Bool(REGB0)) {
2124 } else {
2125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2126 REGB0 = REGB1;
2127 }
2128 if (UNTAG_Bool(REGB0)) {
2129 /* parser/parser_prod.nit:380 */
2130 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2131 if (UNTAG_Bool(REGB0)) {
2132 } else {
2133 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2134 if (UNTAG_Bool(REGB1)) {
2135 REGB1 = TAG_Bool(0);
2136 REGB0 = REGB1;
2137 } else {
2138 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2139 REGB0 = REGB1;
2140 }
2141 }
2142 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2143 if (UNTAG_Bool(REGB0)) {
2144 /* parser/parser_prod.nit:381 */
2145 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2146 if (UNTAG_Bool(REGB0)) {
2147 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 381);
2148 }
2149 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2150 /* parser/parser_prod.nit:382 */
2151 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*/;
2152 if (UNTAG_Bool(REGB0)) {
2153 } else {
2154 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 382);
2155 }
2156 /* parser/parser_prod.nit:383 */
2157 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[2];
2158 } else {
2159 /* parser/parser_prod.nit:385 */
2160 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 385);
2161 }
2162 /* parser/parser_prod.nit:387 */
2163 goto label1;
2164 }
2165 label1: while(0);
2166 stack_frame_head = fra.me.prev;
2167 return;
2168 }
2169 static const char LOCATE_parser___parser_prod___APrivateVisibility___visit_all[] = "parser_prod::APrivateVisibility::(parser_prod::ANode::visit_all)";
2170 void parser___parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1){
2171 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2172 val_t REGB0;
2173 val_t tmp;
2174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2175 fra.me.file = LOCATE_parser___parser_prod;
2176 fra.me.line = 391;
2177 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___visit_all;
2178 fra.me.has_broke = 0;
2179 fra.me.REG_size = 2;
2180 fra.me.nitni_local_ref_head = NULL;
2181 fra.me.REG[0] = NIT_NULL;
2182 fra.me.REG[1] = NIT_NULL;
2183 fra.me.REG[0] = p0;
2184 fra.me.REG[1] = p1;
2185 /* parser/parser_prod.nit:393 */
2186 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
2187 if (UNTAG_Bool(REGB0)) {
2188 } else {
2189 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 393);
2190 }
2191 fra.me.REG[0] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
2192 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2193 stack_frame_head = fra.me.prev;
2194 return;
2195 }
2196 static const char LOCATE_parser___parser_prod___AProtectedVisibility___empty_init[] = "parser_prod::AProtectedVisibility::empty_init";
2197 void parser___parser_prod___AProtectedVisibility___empty_init(val_t p0, int* init_table){
2198 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
2199 struct {struct stack_frame_t me;} fra;
2200 val_t tmp;
2201 if (init_table[itpos13]) return;
2202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2203 fra.me.file = LOCATE_parser___parser_prod;
2204 fra.me.line = 397;
2205 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___empty_init;
2206 fra.me.has_broke = 0;
2207 fra.me.REG_size = 1;
2208 fra.me.nitni_local_ref_head = NULL;
2209 fra.me.REG[0] = NIT_NULL;
2210 fra.me.REG[0] = p0;
2211 stack_frame_head = fra.me.prev;
2212 init_table[itpos13] = 1;
2213 return;
2214 }
2215 static const char LOCATE_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility[] = "parser_prod::AProtectedVisibility::init_aprotectedvisibility";
2216 void parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0, val_t p1, int* init_table){
2217 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
2218 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2219 val_t REGB0;
2220 val_t tmp;
2221 if (init_table[itpos14]) return;
2222 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2223 fra.me.file = LOCATE_parser___parser_prod;
2224 fra.me.line = 399;
2225 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility;
2226 fra.me.has_broke = 0;
2227 fra.me.REG_size = 3;
2228 fra.me.nitni_local_ref_head = NULL;
2229 fra.me.REG[0] = NIT_NULL;
2230 fra.me.REG[1] = NIT_NULL;
2231 fra.me.REG[2] = NIT_NULL;
2232 fra.me.REG[0] = p0;
2233 fra.me.REG[1] = p1;
2234 /* parser/parser_prod.nit:399 */
2235 fra.me.REG[2] = fra.me.REG[0];
2236 /* parser/parser_prod.nit:403 */
2237 CALL_parser___parser_prod___AProtectedVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2238 /* parser/parser_prod.nit:404 */
2239 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2240 if (UNTAG_Bool(REGB0)) {
2241 } else {
2242 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 404);
2243 }
2244 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[2]) = fra.me.REG[1];
2245 /* parser/parser_prod.nit:405 */
2246 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2247 if (UNTAG_Bool(REGB0)) {
2248 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 405);
2249 }
2250 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2251 stack_frame_head = fra.me.prev;
2252 init_table[itpos14] = 1;
2253 return;
2254 }
2255 static const char LOCATE_parser___parser_prod___AProtectedVisibility___replace_child[] = "parser_prod::AProtectedVisibility::(parser_prod::ANode::replace_child)";
2256 void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2257 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2258 val_t REGB0;
2259 val_t REGB1;
2260 val_t tmp;
2261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2262 fra.me.file = LOCATE_parser___parser_prod;
2263 fra.me.line = 408;
2264 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___replace_child;
2265 fra.me.has_broke = 0;
2266 fra.me.REG_size = 4;
2267 fra.me.nitni_local_ref_head = NULL;
2268 fra.me.REG[0] = NIT_NULL;
2269 fra.me.REG[1] = NIT_NULL;
2270 fra.me.REG[2] = NIT_NULL;
2271 fra.me.REG[3] = NIT_NULL;
2272 fra.me.REG[0] = p0;
2273 fra.me.REG[1] = p1;
2274 fra.me.REG[2] = p2;
2275 /* parser/parser_prod.nit:410 */
2276 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2277 if (UNTAG_Bool(REGB0)) {
2278 } else {
2279 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 410);
2280 }
2281 fra.me.REG[3] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2282 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2283 if (UNTAG_Bool(REGB0)) {
2284 } else {
2285 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2286 REGB0 = REGB1;
2287 }
2288 if (UNTAG_Bool(REGB0)) {
2289 /* parser/parser_prod.nit:411 */
2290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2291 if (UNTAG_Bool(REGB0)) {
2292 } else {
2293 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2294 if (UNTAG_Bool(REGB1)) {
2295 REGB1 = TAG_Bool(0);
2296 REGB0 = REGB1;
2297 } else {
2298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2299 REGB0 = REGB1;
2300 }
2301 }
2302 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2303 if (UNTAG_Bool(REGB0)) {
2304 /* parser/parser_prod.nit:412 */
2305 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2306 if (UNTAG_Bool(REGB0)) {
2307 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 412);
2308 }
2309 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2310 /* parser/parser_prod.nit:413 */
2311 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*/;
2312 if (UNTAG_Bool(REGB0)) {
2313 } else {
2314 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 413);
2315 }
2316 /* parser/parser_prod.nit:414 */
2317 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[2];
2318 } else {
2319 /* parser/parser_prod.nit:416 */
2320 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 416);
2321 }
2322 /* parser/parser_prod.nit:418 */
2323 goto label1;
2324 }
2325 label1: while(0);
2326 stack_frame_head = fra.me.prev;
2327 return;
2328 }
2329 static const char LOCATE_parser___parser_prod___AProtectedVisibility___visit_all[] = "parser_prod::AProtectedVisibility::(parser_prod::ANode::visit_all)";
2330 void parser___parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1){
2331 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2332 val_t REGB0;
2333 val_t tmp;
2334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2335 fra.me.file = LOCATE_parser___parser_prod;
2336 fra.me.line = 422;
2337 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___visit_all;
2338 fra.me.has_broke = 0;
2339 fra.me.REG_size = 2;
2340 fra.me.nitni_local_ref_head = NULL;
2341 fra.me.REG[0] = NIT_NULL;
2342 fra.me.REG[1] = NIT_NULL;
2343 fra.me.REG[0] = p0;
2344 fra.me.REG[1] = p1;
2345 /* parser/parser_prod.nit:424 */
2346 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2347 if (UNTAG_Bool(REGB0)) {
2348 } else {
2349 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 424);
2350 }
2351 fra.me.REG[0] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2352 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2353 stack_frame_head = fra.me.prev;
2354 return;
2355 }
2356 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init[] = "parser_prod::AIntrudeVisibility::empty_init";
2357 void parser___parser_prod___AIntrudeVisibility___empty_init(val_t p0, int* init_table){
2358 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2359 struct {struct stack_frame_t me;} fra;
2360 val_t tmp;
2361 if (init_table[itpos15]) return;
2362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2363 fra.me.file = LOCATE_parser___parser_prod;
2364 fra.me.line = 428;
2365 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init;
2366 fra.me.has_broke = 0;
2367 fra.me.REG_size = 1;
2368 fra.me.nitni_local_ref_head = NULL;
2369 fra.me.REG[0] = NIT_NULL;
2370 fra.me.REG[0] = p0;
2371 stack_frame_head = fra.me.prev;
2372 init_table[itpos15] = 1;
2373 return;
2374 }
2375 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility[] = "parser_prod::AIntrudeVisibility::init_aintrudevisibility";
2376 void parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0, val_t p1, int* init_table){
2377 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2378 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2379 val_t REGB0;
2380 val_t tmp;
2381 if (init_table[itpos16]) return;
2382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2383 fra.me.file = LOCATE_parser___parser_prod;
2384 fra.me.line = 430;
2385 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility;
2386 fra.me.has_broke = 0;
2387 fra.me.REG_size = 3;
2388 fra.me.nitni_local_ref_head = NULL;
2389 fra.me.REG[0] = NIT_NULL;
2390 fra.me.REG[1] = NIT_NULL;
2391 fra.me.REG[2] = NIT_NULL;
2392 fra.me.REG[0] = p0;
2393 fra.me.REG[1] = p1;
2394 /* parser/parser_prod.nit:430 */
2395 fra.me.REG[2] = fra.me.REG[0];
2396 /* parser/parser_prod.nit:434 */
2397 CALL_parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2398 /* parser/parser_prod.nit:435 */
2399 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2400 if (UNTAG_Bool(REGB0)) {
2401 } else {
2402 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 435);
2403 }
2404 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[2]) = fra.me.REG[1];
2405 /* parser/parser_prod.nit:436 */
2406 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2407 if (UNTAG_Bool(REGB0)) {
2408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 436);
2409 }
2410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2411 stack_frame_head = fra.me.prev;
2412 init_table[itpos16] = 1;
2413 return;
2414 }
2415 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___replace_child[] = "parser_prod::AIntrudeVisibility::(parser_prod::ANode::replace_child)";
2416 void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2417 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2418 val_t REGB0;
2419 val_t REGB1;
2420 val_t tmp;
2421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2422 fra.me.file = LOCATE_parser___parser_prod;
2423 fra.me.line = 439;
2424 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___replace_child;
2425 fra.me.has_broke = 0;
2426 fra.me.REG_size = 4;
2427 fra.me.nitni_local_ref_head = NULL;
2428 fra.me.REG[0] = NIT_NULL;
2429 fra.me.REG[1] = NIT_NULL;
2430 fra.me.REG[2] = NIT_NULL;
2431 fra.me.REG[3] = NIT_NULL;
2432 fra.me.REG[0] = p0;
2433 fra.me.REG[1] = p1;
2434 fra.me.REG[2] = p2;
2435 /* parser/parser_prod.nit:441 */
2436 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2437 if (UNTAG_Bool(REGB0)) {
2438 } else {
2439 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 441);
2440 }
2441 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2442 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2443 if (UNTAG_Bool(REGB0)) {
2444 } else {
2445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2446 REGB0 = REGB1;
2447 }
2448 if (UNTAG_Bool(REGB0)) {
2449 /* parser/parser_prod.nit:442 */
2450 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2451 if (UNTAG_Bool(REGB0)) {
2452 } else {
2453 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2454 if (UNTAG_Bool(REGB1)) {
2455 REGB1 = TAG_Bool(0);
2456 REGB0 = REGB1;
2457 } else {
2458 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2459 REGB0 = REGB1;
2460 }
2461 }
2462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2463 if (UNTAG_Bool(REGB0)) {
2464 /* parser/parser_prod.nit:443 */
2465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2466 if (UNTAG_Bool(REGB0)) {
2467 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 443);
2468 }
2469 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2470 /* parser/parser_prod.nit:444 */
2471 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*/;
2472 if (UNTAG_Bool(REGB0)) {
2473 } else {
2474 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 444);
2475 }
2476 /* parser/parser_prod.nit:445 */
2477 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[2];
2478 } else {
2479 /* parser/parser_prod.nit:447 */
2480 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 447);
2481 }
2482 /* parser/parser_prod.nit:449 */
2483 goto label1;
2484 }
2485 label1: while(0);
2486 stack_frame_head = fra.me.prev;
2487 return;
2488 }
2489 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all[] = "parser_prod::AIntrudeVisibility::(parser_prod::ANode::visit_all)";
2490 void parser___parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1){
2491 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2492 val_t REGB0;
2493 val_t tmp;
2494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2495 fra.me.file = LOCATE_parser___parser_prod;
2496 fra.me.line = 453;
2497 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all;
2498 fra.me.has_broke = 0;
2499 fra.me.REG_size = 2;
2500 fra.me.nitni_local_ref_head = NULL;
2501 fra.me.REG[0] = NIT_NULL;
2502 fra.me.REG[1] = NIT_NULL;
2503 fra.me.REG[0] = p0;
2504 fra.me.REG[1] = p1;
2505 /* parser/parser_prod.nit:455 */
2506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2507 if (UNTAG_Bool(REGB0)) {
2508 } else {
2509 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 455);
2510 }
2511 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2512 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2513 stack_frame_head = fra.me.prev;
2514 return;
2515 }
2516 static const char LOCATE_parser___parser_prod___AStdClassdef___empty_init[] = "parser_prod::AStdClassdef::empty_init";
2517 void parser___parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table){
2518 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2519 struct {struct stack_frame_t me;} fra;
2520 val_t tmp;
2521 if (init_table[itpos17]) return;
2522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2523 fra.me.file = LOCATE_parser___parser_prod;
2524 fra.me.line = 459;
2525 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___empty_init;
2526 fra.me.has_broke = 0;
2527 fra.me.REG_size = 1;
2528 fra.me.nitni_local_ref_head = NULL;
2529 fra.me.REG[0] = NIT_NULL;
2530 fra.me.REG[0] = p0;
2531 stack_frame_head = fra.me.prev;
2532 init_table[itpos17] = 1;
2533 return;
2534 }
2535 static const char LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef[] = "parser_prod::AStdClassdef::init_astdclassdef";
2536 void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, val_t p10, int* init_table){
2537 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2538 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
2539 val_t REGB0;
2540 val_t REGB1;
2541 val_t tmp;
2542 if (init_table[itpos18]) return;
2543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2544 fra.me.file = LOCATE_parser___parser_prod;
2545 fra.me.line = 461;
2546 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2547 fra.me.has_broke = 0;
2548 fra.me.REG_size = 12;
2549 fra.me.nitni_local_ref_head = NULL;
2550 fra.me.REG[0] = NIT_NULL;
2551 fra.me.REG[1] = NIT_NULL;
2552 fra.me.REG[2] = NIT_NULL;
2553 fra.me.REG[3] = NIT_NULL;
2554 fra.me.REG[4] = NIT_NULL;
2555 fra.me.REG[5] = NIT_NULL;
2556 fra.me.REG[6] = NIT_NULL;
2557 fra.me.REG[7] = NIT_NULL;
2558 fra.me.REG[8] = NIT_NULL;
2559 fra.me.REG[9] = NIT_NULL;
2560 fra.me.REG[10] = NIT_NULL;
2561 fra.me.REG[11] = NIT_NULL;
2562 fra.me.REG[0] = p0;
2563 fra.me.REG[1] = p1;
2564 fra.me.REG[2] = p2;
2565 fra.me.REG[3] = p3;
2566 fra.me.REG[4] = p4;
2567 fra.me.REG[5] = p5;
2568 fra.me.REG[6] = p6;
2569 fra.me.REG[7] = p7;
2570 fra.me.REG[8] = p8;
2571 fra.me.REG[9] = p9;
2572 fra.me.REG[10] = p10;
2573 /* parser/parser_prod.nit:461 */
2574 fra.me.REG[11] = fra.me.REG[0];
2575 /* parser/parser_prod.nit:474 */
2576 CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
2577 /* parser/parser_prod.nit:475 */
2578 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
2579 /* parser/parser_prod.nit:476 */
2580 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2581 if (UNTAG_Bool(REGB0)) {
2582 } else {
2583 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2584 if (UNTAG_Bool(REGB1)) {
2585 REGB1 = TAG_Bool(0);
2586 REGB0 = REGB1;
2587 } else {
2588 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2589 REGB0 = REGB1;
2590 }
2591 }
2592 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2593 if (UNTAG_Bool(REGB0)) {
2594 /* parser/parser_prod.nit:477 */
2595 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2596 if (UNTAG_Bool(REGB0)) {
2597 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 477);
2598 }
2599 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
2600 }
2601 /* parser/parser_prod.nit:479 */
2602 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[2];
2603 /* parser/parser_prod.nit:480 */
2604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2605 if (UNTAG_Bool(REGB0)) {
2606 } else {
2607 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2608 if (UNTAG_Bool(REGB1)) {
2609 REGB1 = TAG_Bool(0);
2610 REGB0 = REGB1;
2611 } else {
2612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2613 REGB0 = REGB1;
2614 }
2615 }
2616 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2617 if (UNTAG_Bool(REGB0)) {
2618 /* parser/parser_prod.nit:481 */
2619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2620 if (UNTAG_Bool(REGB0)) {
2621 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 481);
2622 }
2623 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
2624 }
2625 /* parser/parser_prod.nit:483 */
2626 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
2627 if (UNTAG_Bool(REGB0)) {
2628 } else {
2629 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 483);
2630 }
2631 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[11]) = fra.me.REG[3];
2632 /* parser/parser_prod.nit:484 */
2633 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2634 if (UNTAG_Bool(REGB0)) {
2635 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 484);
2636 }
2637 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
2638 /* parser/parser_prod.nit:485 */
2639 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
2640 if (UNTAG_Bool(REGB0)) {
2641 } else {
2642 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 485);
2643 }
2644 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[11]) = fra.me.REG[4];
2645 /* parser/parser_prod.nit:486 */
2646 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2647 if (UNTAG_Bool(REGB0)) {
2648 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 486);
2649 }
2650 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
2651 /* parser/parser_prod.nit:487 */
2652 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[11]) = fra.me.REG[5];
2653 /* parser/parser_prod.nit:488 */
2654 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2655 if (UNTAG_Bool(REGB0)) {
2656 } else {
2657 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2658 if (UNTAG_Bool(REGB1)) {
2659 REGB1 = TAG_Bool(0);
2660 REGB0 = REGB1;
2661 } else {
2662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2663 REGB0 = REGB1;
2664 }
2665 }
2666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2667 if (UNTAG_Bool(REGB0)) {
2668 /* parser/parser_prod.nit:489 */
2669 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2670 if (UNTAG_Bool(REGB0)) {
2671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 489);
2672 }
2673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
2674 }
2675 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));
2676 /* parser/parser_prod.nit:496 */
2677 ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[11]) = fra.me.REG[7];
2678 /* parser/parser_prod.nit:497 */
2679 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2680 if (UNTAG_Bool(REGB0)) {
2681 } else {
2682 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2683 if (UNTAG_Bool(REGB1)) {
2684 REGB1 = TAG_Bool(0);
2685 REGB0 = REGB1;
2686 } else {
2687 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2688 REGB0 = REGB1;
2689 }
2690 }
2691 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2692 if (UNTAG_Bool(REGB0)) {
2693 /* parser/parser_prod.nit:498 */
2694 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2695 if (UNTAG_Bool(REGB0)) {
2696 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 498);
2697 }
2698 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
2699 }
2700 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_2));
2701 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[9])(fra.me.REG[9], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3));
2702 /* parser/parser_prod.nit:510 */
2703 REGB0 = TAG_Bool(fra.me.REG[10]!=NIT_NULL);
2704 if (UNTAG_Bool(REGB0)) {
2705 } else {
2706 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 510);
2707 }
2708 ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[11]) = fra.me.REG[10];
2709 /* parser/parser_prod.nit:511 */
2710 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
2711 if (UNTAG_Bool(REGB0)) {
2712 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 511);
2713 }
2714 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
2715 stack_frame_head = fra.me.prev;
2716 init_table[itpos18] = 1;
2717 return;
2718 }
2719 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){
2720 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2721 val_t REGB0;
2722 fun_t CREG[1];
2723 val_t tmp;
2724 /* parser/parser_prod.nit:491 */
2725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2726 fra.me.file = LOCATE_parser___parser_prod;
2727 fra.me.line = 0;
2728 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2729 fra.me.has_broke = 0;
2730 fra.me.REG_size = 2;
2731 fra.me.nitni_local_ref_head = NULL;
2732 fra.me.REG[0] = NIT_NULL;
2733 fra.me.REG[1] = NIT_NULL;
2734 fra.me.closure_ctx = closctx_param;
2735 fra.me.closure_funs = CREG;
2736 fra.me.REG[0] = p0;
2737 CREG[0] = clos_fun0;
2738 /* parser/parser_prod.nit:492 */
2739 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
2740 if (UNTAG_Bool(REGB0)) {
2741 } else {
2742 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 492);
2743 }
2744 /* parser/parser_prod.nit:493 */
2745 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[11])!=NIT_NULL);
2746 if (UNTAG_Bool(REGB0)) {
2747 } else {
2748 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 493);
2749 }
2750 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[11]);
2751 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2752 /* parser/parser_prod.nit:494 */
2753 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[11]);
2754 stack_frame_head = fra.me.prev;
2755 return;
2756 }
2757 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){
2758 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2759 val_t REGB0;
2760 fun_t CREG[1];
2761 val_t tmp;
2762 /* parser/parser_prod.nit:500 */
2763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2764 fra.me.file = LOCATE_parser___parser_prod;
2765 fra.me.line = 0;
2766 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2767 fra.me.has_broke = 0;
2768 fra.me.REG_size = 2;
2769 fra.me.nitni_local_ref_head = NULL;
2770 fra.me.REG[0] = NIT_NULL;
2771 fra.me.REG[1] = NIT_NULL;
2772 fra.me.closure_ctx = closctx_param;
2773 fra.me.closure_funs = CREG;
2774 fra.me.REG[0] = p0;
2775 CREG[0] = clos_fun0;
2776 /* parser/parser_prod.nit:501 */
2777 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
2778 if (UNTAG_Bool(REGB0)) {
2779 } else {
2780 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 501);
2781 }
2782 /* parser/parser_prod.nit:502 */
2783 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[11])!=NIT_NULL);
2784 if (UNTAG_Bool(REGB0)) {
2785 } else {
2786 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 502);
2787 }
2788 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[11]);
2789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2790 /* parser/parser_prod.nit:503 */
2791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[11]);
2792 stack_frame_head = fra.me.prev;
2793 return;
2794 }
2795 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){
2796 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2797 val_t REGB0;
2798 fun_t CREG[1];
2799 val_t tmp;
2800 /* parser/parser_prod.nit:505 */
2801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2802 fra.me.file = LOCATE_parser___parser_prod;
2803 fra.me.line = 0;
2804 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2805 fra.me.has_broke = 0;
2806 fra.me.REG_size = 2;
2807 fra.me.nitni_local_ref_head = NULL;
2808 fra.me.REG[0] = NIT_NULL;
2809 fra.me.REG[1] = NIT_NULL;
2810 fra.me.closure_ctx = closctx_param;
2811 fra.me.closure_funs = CREG;
2812 fra.me.REG[0] = p0;
2813 CREG[0] = clos_fun0;
2814 /* parser/parser_prod.nit:506 */
2815 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
2816 if (UNTAG_Bool(REGB0)) {
2817 } else {
2818 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 506);
2819 }
2820 /* parser/parser_prod.nit:507 */
2821 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[11])!=NIT_NULL);
2822 if (UNTAG_Bool(REGB0)) {
2823 } else {
2824 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 507);
2825 }
2826 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[11]);
2827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2828 /* parser/parser_prod.nit:508 */
2829 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[11]);
2830 stack_frame_head = fra.me.prev;
2831 return;
2832 }
2833 static const char LOCATE_parser___parser_prod___AStdClassdef___replace_child[] = "parser_prod::AStdClassdef::(parser_prod::ANode::replace_child)";
2834 void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2){
2835 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2836 val_t REGB0;
2837 val_t REGB1;
2838 val_t REGB2;
2839 val_t REGB3;
2840 val_t REGB4;
2841 val_t tmp;
2842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2843 fra.me.file = LOCATE_parser___parser_prod;
2844 fra.me.line = 514;
2845 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___replace_child;
2846 fra.me.has_broke = 0;
2847 fra.me.REG_size = 4;
2848 fra.me.nitni_local_ref_head = NULL;
2849 fra.me.REG[0] = NIT_NULL;
2850 fra.me.REG[1] = NIT_NULL;
2851 fra.me.REG[2] = NIT_NULL;
2852 fra.me.REG[3] = NIT_NULL;
2853 fra.me.REG[0] = p0;
2854 fra.me.REG[1] = p1;
2855 fra.me.REG[2] = p2;
2856 /* parser/parser_prod.nit:516 */
2857 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
2858 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2859 if (UNTAG_Bool(REGB0)) {
2860 } else {
2861 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2862 if (UNTAG_Bool(REGB1)) {
2863 REGB1 = TAG_Bool(0);
2864 REGB0 = REGB1;
2865 } else {
2866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2867 REGB0 = REGB1;
2868 }
2869 }
2870 if (UNTAG_Bool(REGB0)) {
2871 /* parser/parser_prod.nit:517 */
2872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2873 if (UNTAG_Bool(REGB0)) {
2874 } else {
2875 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2876 if (UNTAG_Bool(REGB1)) {
2877 REGB1 = TAG_Bool(0);
2878 REGB0 = REGB1;
2879 } else {
2880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2881 REGB0 = REGB1;
2882 }
2883 }
2884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2885 if (UNTAG_Bool(REGB0)) {
2886 /* parser/parser_prod.nit:518 */
2887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2888 if (UNTAG_Bool(REGB0)) {
2889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 518);
2890 }
2891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2892 /* parser/parser_prod.nit:519 */
2893 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*/;
2894 if (UNTAG_Bool(REGB0)) {
2895 } else {
2896 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 519);
2897 }
2898 /* parser/parser_prod.nit:520 */
2899 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
2900 } else {
2901 /* parser/parser_prod.nit:522 */
2902 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
2903 }
2904 /* parser/parser_prod.nit:524 */
2905 goto label1;
2906 }
2907 /* parser/parser_prod.nit:526 */
2908 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
2909 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2910 if (UNTAG_Bool(REGB0)) {
2911 } else {
2912 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2913 if (UNTAG_Bool(REGB1)) {
2914 REGB1 = TAG_Bool(0);
2915 REGB0 = REGB1;
2916 } else {
2917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2918 REGB0 = REGB1;
2919 }
2920 }
2921 if (UNTAG_Bool(REGB0)) {
2922 /* parser/parser_prod.nit:527 */
2923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2924 if (UNTAG_Bool(REGB0)) {
2925 } else {
2926 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2927 if (UNTAG_Bool(REGB1)) {
2928 REGB1 = TAG_Bool(0);
2929 REGB0 = REGB1;
2930 } else {
2931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2932 REGB0 = REGB1;
2933 }
2934 }
2935 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2936 if (UNTAG_Bool(REGB0)) {
2937 /* parser/parser_prod.nit:528 */
2938 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2939 if (UNTAG_Bool(REGB0)) {
2940 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 528);
2941 }
2942 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2943 /* parser/parser_prod.nit:529 */
2944 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*/;
2945 if (UNTAG_Bool(REGB0)) {
2946 } else {
2947 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 529);
2948 }
2949 /* parser/parser_prod.nit:530 */
2950 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
2951 } else {
2952 /* parser/parser_prod.nit:532 */
2953 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
2954 }
2955 /* parser/parser_prod.nit:534 */
2956 goto label1;
2957 }
2958 /* parser/parser_prod.nit:536 */
2959 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
2960 if (UNTAG_Bool(REGB0)) {
2961 } else {
2962 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 536);
2963 }
2964 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
2965 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2966 if (UNTAG_Bool(REGB0)) {
2967 } else {
2968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2969 REGB0 = REGB1;
2970 }
2971 if (UNTAG_Bool(REGB0)) {
2972 /* parser/parser_prod.nit:537 */
2973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2974 if (UNTAG_Bool(REGB0)) {
2975 } else {
2976 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2977 if (UNTAG_Bool(REGB1)) {
2978 REGB1 = TAG_Bool(0);
2979 REGB0 = REGB1;
2980 } else {
2981 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2982 REGB0 = REGB1;
2983 }
2984 }
2985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2986 if (UNTAG_Bool(REGB0)) {
2987 /* parser/parser_prod.nit:538 */
2988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2989 if (UNTAG_Bool(REGB0)) {
2990 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 538);
2991 }
2992 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2993 /* parser/parser_prod.nit:539 */
2994 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*/;
2995 if (UNTAG_Bool(REGB0)) {
2996 } else {
2997 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 539);
2998 }
2999 /* parser/parser_prod.nit:540 */
3000 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
3001 } else {
3002 /* parser/parser_prod.nit:542 */
3003 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 542);
3004 }
3005 /* parser/parser_prod.nit:544 */
3006 goto label1;
3007 }
3008 /* parser/parser_prod.nit:546 */
3009 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
3010 if (UNTAG_Bool(REGB0)) {
3011 } else {
3012 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 546);
3013 }
3014 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
3015 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3016 if (UNTAG_Bool(REGB0)) {
3017 } else {
3018 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3019 REGB0 = REGB1;
3020 }
3021 if (UNTAG_Bool(REGB0)) {
3022 /* parser/parser_prod.nit:547 */
3023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3024 if (UNTAG_Bool(REGB0)) {
3025 } else {
3026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3027 if (UNTAG_Bool(REGB1)) {
3028 REGB1 = TAG_Bool(0);
3029 REGB0 = REGB1;
3030 } else {
3031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3032 REGB0 = REGB1;
3033 }
3034 }
3035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3036 if (UNTAG_Bool(REGB0)) {
3037 /* parser/parser_prod.nit:548 */
3038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3039 if (UNTAG_Bool(REGB0)) {
3040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 548);
3041 }
3042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3043 /* parser/parser_prod.nit:549 */
3044 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*/;
3045 if (UNTAG_Bool(REGB0)) {
3046 } else {
3047 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 549);
3048 }
3049 /* parser/parser_prod.nit:550 */
3050 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
3051 } else {
3052 /* parser/parser_prod.nit:552 */
3053 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 552);
3054 }
3055 /* parser/parser_prod.nit:554 */
3056 goto label1;
3057 }
3058 /* parser/parser_prod.nit:556 */
3059 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
3060 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3061 if (UNTAG_Bool(REGB0)) {
3062 } else {
3063 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3064 if (UNTAG_Bool(REGB1)) {
3065 REGB1 = TAG_Bool(0);
3066 REGB0 = REGB1;
3067 } else {
3068 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3069 REGB0 = REGB1;
3070 }
3071 }
3072 if (UNTAG_Bool(REGB0)) {
3073 /* parser/parser_prod.nit:557 */
3074 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3075 if (UNTAG_Bool(REGB0)) {
3076 } else {
3077 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3078 if (UNTAG_Bool(REGB1)) {
3079 REGB1 = TAG_Bool(0);
3080 REGB0 = REGB1;
3081 } else {
3082 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3083 REGB0 = REGB1;
3084 }
3085 }
3086 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3087 if (UNTAG_Bool(REGB0)) {
3088 /* parser/parser_prod.nit:558 */
3089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3090 if (UNTAG_Bool(REGB0)) {
3091 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 558);
3092 }
3093 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3094 /* parser/parser_prod.nit:559 */
3095 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*/;
3096 if (UNTAG_Bool(REGB0)) {
3097 } else {
3098 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 559);
3099 }
3100 /* parser/parser_prod.nit:560 */
3101 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
3102 } else {
3103 /* parser/parser_prod.nit:562 */
3104 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
3105 }
3106 /* parser/parser_prod.nit:564 */
3107 goto label1;
3108 }
3109 /* parser/parser_prod.nit:566 */
3110 REGB0 = TAG_Int(0);
3111 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3112 if (UNTAG_Bool(REGB1)) {
3113 } else {
3114 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 566);
3115 }
3116 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3117 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3118 /* ../lib/standard/kernel.nit:355 */
3119 while(1) {
3120 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3121 if (UNTAG_Bool(REGB2)) {
3122 } else {
3123 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3124 }
3125 /* ../lib/standard/kernel.nit:235 */
3126 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3127 /* ../lib/standard/kernel.nit:355 */
3128 if (UNTAG_Bool(REGB2)) {
3129 /* parser/parser_prod.nit:566 */
3130 REGB2 = REGB0;
3131 /* parser/parser_prod.nit:567 */
3132 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3133 if (UNTAG_Bool(REGB3)) {
3134 } else {
3135 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 567);
3136 }
3137 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3138 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3139 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3140 if (UNTAG_Bool(REGB3)) {
3141 } else {
3142 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3143 if (UNTAG_Bool(REGB4)) {
3144 REGB4 = TAG_Bool(0);
3145 REGB3 = REGB4;
3146 } else {
3147 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3148 REGB3 = REGB4;
3149 }
3150 }
3151 if (UNTAG_Bool(REGB3)) {
3152 /* parser/parser_prod.nit:568 */
3153 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3154 if (UNTAG_Bool(REGB3)) {
3155 } else {
3156 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3157 if (UNTAG_Bool(REGB4)) {
3158 REGB4 = TAG_Bool(0);
3159 REGB3 = REGB4;
3160 } else {
3161 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3162 REGB3 = REGB4;
3163 }
3164 }
3165 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3166 if (UNTAG_Bool(REGB3)) {
3167 /* parser/parser_prod.nit:569 */
3168 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*/;
3169 if (UNTAG_Bool(REGB3)) {
3170 } else {
3171 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 569);
3172 }
3173 /* parser/parser_prod.nit:570 */
3174 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3175 if (UNTAG_Bool(REGB3)) {
3176 } else {
3177 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 570);
3178 }
3179 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3180 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3181 /* parser/parser_prod.nit:571 */
3182 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3183 if (UNTAG_Bool(REGB3)) {
3184 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 571);
3185 }
3186 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3187 } else {
3188 /* parser/parser_prod.nit:573 */
3189 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3190 if (UNTAG_Bool(REGB3)) {
3191 } else {
3192 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 573);
3193 }
3194 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3195 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3196 }
3197 /* parser/parser_prod.nit:575 */
3198 goto label1;
3199 }
3200 /* ../lib/standard/kernel.nit:357 */
3201 REGB2 = TAG_Int(1);
3202 /* ../lib/standard/kernel.nit:238 */
3203 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3204 /* ../lib/standard/kernel.nit:357 */
3205 REGB0 = REGB2;
3206 } else {
3207 /* ../lib/standard/kernel.nit:355 */
3208 goto label2;
3209 }
3210 }
3211 label2: while(0);
3212 /* parser/parser_prod.nit:578 */
3213 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[0]);
3214 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3215 if (UNTAG_Bool(REGB0)) {
3216 } else {
3217 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3218 if (UNTAG_Bool(REGB1)) {
3219 REGB1 = TAG_Bool(0);
3220 REGB0 = REGB1;
3221 } else {
3222 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3223 REGB0 = REGB1;
3224 }
3225 }
3226 if (UNTAG_Bool(REGB0)) {
3227 /* parser/parser_prod.nit:579 */
3228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3229 if (UNTAG_Bool(REGB0)) {
3230 } else {
3231 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3232 if (UNTAG_Bool(REGB1)) {
3233 REGB1 = TAG_Bool(0);
3234 REGB0 = REGB1;
3235 } else {
3236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3237 REGB0 = REGB1;
3238 }
3239 }
3240 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3241 if (UNTAG_Bool(REGB0)) {
3242 /* parser/parser_prod.nit:580 */
3243 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3244 if (UNTAG_Bool(REGB0)) {
3245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 580);
3246 }
3247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3248 /* parser/parser_prod.nit:581 */
3249 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
3250 if (UNTAG_Bool(REGB0)) {
3251 } else {
3252 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 581);
3253 }
3254 /* parser/parser_prod.nit:582 */
3255 ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[0]) = fra.me.REG[2];
3256 } else {
3257 /* parser/parser_prod.nit:584 */
3258 ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[0]) = NIT_NULL;
3259 }
3260 /* parser/parser_prod.nit:586 */
3261 goto label1;
3262 }
3263 /* parser/parser_prod.nit:588 */
3264 REGB0 = TAG_Int(0);
3265 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3266 if (UNTAG_Bool(REGB1)) {
3267 } else {
3268 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 588);
3269 }
3270 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3271 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3272 /* ../lib/standard/kernel.nit:355 */
3273 while(1) {
3274 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3275 if (UNTAG_Bool(REGB2)) {
3276 } else {
3277 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3278 }
3279 /* ../lib/standard/kernel.nit:235 */
3280 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3281 /* ../lib/standard/kernel.nit:355 */
3282 if (UNTAG_Bool(REGB2)) {
3283 /* parser/parser_prod.nit:588 */
3284 REGB2 = REGB0;
3285 /* parser/parser_prod.nit:589 */
3286 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3287 if (UNTAG_Bool(REGB3)) {
3288 } else {
3289 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 589);
3290 }
3291 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3292 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3293 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3294 if (UNTAG_Bool(REGB3)) {
3295 } else {
3296 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3297 if (UNTAG_Bool(REGB4)) {
3298 REGB4 = TAG_Bool(0);
3299 REGB3 = REGB4;
3300 } else {
3301 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3302 REGB3 = REGB4;
3303 }
3304 }
3305 if (UNTAG_Bool(REGB3)) {
3306 /* parser/parser_prod.nit:590 */
3307 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3308 if (UNTAG_Bool(REGB3)) {
3309 } else {
3310 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3311 if (UNTAG_Bool(REGB4)) {
3312 REGB4 = TAG_Bool(0);
3313 REGB3 = REGB4;
3314 } else {
3315 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3316 REGB3 = REGB4;
3317 }
3318 }
3319 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3320 if (UNTAG_Bool(REGB3)) {
3321 /* parser/parser_prod.nit:591 */
3322 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*/;
3323 if (UNTAG_Bool(REGB3)) {
3324 } else {
3325 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 591);
3326 }
3327 /* parser/parser_prod.nit:592 */
3328 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3329 if (UNTAG_Bool(REGB3)) {
3330 } else {
3331 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 592);
3332 }
3333 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3334 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3335 /* parser/parser_prod.nit:593 */
3336 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3337 if (UNTAG_Bool(REGB3)) {
3338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 593);
3339 }
3340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3341 } else {
3342 /* parser/parser_prod.nit:595 */
3343 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3344 if (UNTAG_Bool(REGB3)) {
3345 } else {
3346 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 595);
3347 }
3348 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3349 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3350 }
3351 /* parser/parser_prod.nit:597 */
3352 goto label1;
3353 }
3354 /* ../lib/standard/kernel.nit:357 */
3355 REGB2 = TAG_Int(1);
3356 /* ../lib/standard/kernel.nit:238 */
3357 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3358 /* ../lib/standard/kernel.nit:357 */
3359 REGB0 = REGB2;
3360 } else {
3361 /* ../lib/standard/kernel.nit:355 */
3362 goto label3;
3363 }
3364 }
3365 label3: while(0);
3366 /* parser/parser_prod.nit:600 */
3367 REGB0 = TAG_Int(0);
3368 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3369 if (UNTAG_Bool(REGB1)) {
3370 } else {
3371 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 600);
3372 }
3373 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3374 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3375 /* ../lib/standard/kernel.nit:355 */
3376 while(1) {
3377 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3378 if (UNTAG_Bool(REGB2)) {
3379 } else {
3380 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3381 }
3382 /* ../lib/standard/kernel.nit:235 */
3383 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3384 /* ../lib/standard/kernel.nit:355 */
3385 if (UNTAG_Bool(REGB2)) {
3386 /* parser/parser_prod.nit:600 */
3387 REGB2 = REGB0;
3388 /* parser/parser_prod.nit:601 */
3389 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3390 if (UNTAG_Bool(REGB3)) {
3391 } else {
3392 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 601);
3393 }
3394 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3395 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3396 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3397 if (UNTAG_Bool(REGB3)) {
3398 } else {
3399 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3400 if (UNTAG_Bool(REGB4)) {
3401 REGB4 = TAG_Bool(0);
3402 REGB3 = REGB4;
3403 } else {
3404 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3405 REGB3 = REGB4;
3406 }
3407 }
3408 if (UNTAG_Bool(REGB3)) {
3409 /* parser/parser_prod.nit:602 */
3410 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3411 if (UNTAG_Bool(REGB3)) {
3412 } else {
3413 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3414 if (UNTAG_Bool(REGB4)) {
3415 REGB4 = TAG_Bool(0);
3416 REGB3 = REGB4;
3417 } else {
3418 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3419 REGB3 = REGB4;
3420 }
3421 }
3422 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3423 if (UNTAG_Bool(REGB3)) {
3424 /* parser/parser_prod.nit:603 */
3425 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*/;
3426 if (UNTAG_Bool(REGB3)) {
3427 } else {
3428 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 603);
3429 }
3430 /* parser/parser_prod.nit:604 */
3431 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3432 if (UNTAG_Bool(REGB3)) {
3433 } else {
3434 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 604);
3435 }
3436 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3437 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3438 /* parser/parser_prod.nit:605 */
3439 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3440 if (UNTAG_Bool(REGB3)) {
3441 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 605);
3442 }
3443 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3444 } else {
3445 /* parser/parser_prod.nit:607 */
3446 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3447 if (UNTAG_Bool(REGB3)) {
3448 } else {
3449 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 607);
3450 }
3451 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3452 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3453 }
3454 /* parser/parser_prod.nit:609 */
3455 goto label1;
3456 }
3457 /* ../lib/standard/kernel.nit:357 */
3458 REGB2 = TAG_Int(1);
3459 /* ../lib/standard/kernel.nit:238 */
3460 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3461 /* ../lib/standard/kernel.nit:357 */
3462 REGB0 = REGB2;
3463 } else {
3464 /* ../lib/standard/kernel.nit:355 */
3465 goto label4;
3466 }
3467 }
3468 label4: while(0);
3469 /* parser/parser_prod.nit:612 */
3470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0])!=NIT_NULL);
3471 if (UNTAG_Bool(REGB0)) {
3472 } else {
3473 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 612);
3474 }
3475 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]);
3476 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3477 if (UNTAG_Bool(REGB0)) {
3478 } else {
3479 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3480 REGB0 = REGB1;
3481 }
3482 if (UNTAG_Bool(REGB0)) {
3483 /* parser/parser_prod.nit:613 */
3484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3485 if (UNTAG_Bool(REGB0)) {
3486 } else {
3487 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3488 if (UNTAG_Bool(REGB1)) {
3489 REGB1 = TAG_Bool(0);
3490 REGB0 = REGB1;
3491 } else {
3492 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3493 REGB0 = REGB1;
3494 }
3495 }
3496 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3497 if (UNTAG_Bool(REGB0)) {
3498 /* parser/parser_prod.nit:614 */
3499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3500 if (UNTAG_Bool(REGB0)) {
3501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 614);
3502 }
3503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3504 /* parser/parser_prod.nit:615 */
3505 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*/;
3506 if (UNTAG_Bool(REGB0)) {
3507 } else {
3508 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 615);
3509 }
3510 /* parser/parser_prod.nit:616 */
3511 ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
3512 } else {
3513 /* parser/parser_prod.nit:618 */
3514 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 618);
3515 }
3516 /* parser/parser_prod.nit:620 */
3517 goto label1;
3518 }
3519 label1: while(0);
3520 stack_frame_head = fra.me.prev;
3521 return;
3522 }
3523 static const char LOCATE_parser___parser_prod___AStdClassdef___visit_all[] = "parser_prod::AStdClassdef::(parser_prod::ANode::visit_all)";
3524 void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
3525 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3526 val_t REGB0;
3527 val_t REGB1;
3528 val_t tmp;
3529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3530 fra.me.file = LOCATE_parser___parser_prod;
3531 fra.me.line = 624;
3532 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3533 fra.me.has_broke = 0;
3534 fra.me.REG_size = 4;
3535 fra.me.nitni_local_ref_head = NULL;
3536 fra.me.REG[0] = NIT_NULL;
3537 fra.me.REG[1] = NIT_NULL;
3538 fra.me.REG[2] = NIT_NULL;
3539 fra.me.REG[3] = NIT_NULL;
3540 fra.me.REG[0] = p0;
3541 fra.me.REG[1] = p1;
3542 /* parser/parser_prod.nit:624 */
3543 fra.me.REG[2] = fra.me.REG[0];
3544 /* parser/parser_prod.nit:626 */
3545 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3546 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3547 if (UNTAG_Bool(REGB0)) {
3548 } else {
3549 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3550 if (UNTAG_Bool(REGB1)) {
3551 REGB1 = TAG_Bool(0);
3552 REGB0 = REGB1;
3553 } else {
3554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3555 REGB0 = REGB1;
3556 }
3557 }
3558 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3559 if (UNTAG_Bool(REGB0)) {
3560 /* parser/parser_prod.nit:627 */
3561 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3562 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*/;
3563 if (UNTAG_Bool(REGB0)) {
3564 } else {
3565 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 627);
3566 }
3567 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3568 }
3569 /* parser/parser_prod.nit:629 */
3570 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3571 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3572 if (UNTAG_Bool(REGB0)) {
3573 } else {
3574 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3575 if (UNTAG_Bool(REGB1)) {
3576 REGB1 = TAG_Bool(0);
3577 REGB0 = REGB1;
3578 } else {
3579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3580 REGB0 = REGB1;
3581 }
3582 }
3583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3584 if (UNTAG_Bool(REGB0)) {
3585 /* parser/parser_prod.nit:630 */
3586 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3587 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*/;
3588 if (UNTAG_Bool(REGB0)) {
3589 } else {
3590 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 630);
3591 }
3592 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3593 }
3594 /* parser/parser_prod.nit:632 */
3595 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
3596 if (UNTAG_Bool(REGB0)) {
3597 } else {
3598 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 632);
3599 }
3600 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2]);
3601 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3602 /* parser/parser_prod.nit:633 */
3603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2])!=NIT_NULL);
3604 if (UNTAG_Bool(REGB0)) {
3605 } else {
3606 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 633);
3607 }
3608 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2]);
3609 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3610 /* parser/parser_prod.nit:634 */
3611 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3612 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3613 if (UNTAG_Bool(REGB0)) {
3614 } else {
3615 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3616 if (UNTAG_Bool(REGB1)) {
3617 REGB1 = TAG_Bool(0);
3618 REGB0 = REGB1;
3619 } else {
3620 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3621 REGB0 = REGB1;
3622 }
3623 }
3624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3625 if (UNTAG_Bool(REGB0)) {
3626 /* parser/parser_prod.nit:635 */
3627 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3628 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*/;
3629 if (UNTAG_Bool(REGB0)) {
3630 } else {
3631 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 635);
3632 }
3633 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3634 }
3635 /* parser/parser_prod.nit:637 */
3636 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2])!=NIT_NULL);
3637 if (UNTAG_Bool(REGB0)) {
3638 } else {
3639 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 637);
3640 }
3641 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2]);
3642 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));
3643 /* parser/parser_prod.nit:640 */
3644 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[2]);
3645 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3646 if (UNTAG_Bool(REGB0)) {
3647 } else {
3648 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3649 if (UNTAG_Bool(REGB1)) {
3650 REGB1 = TAG_Bool(0);
3651 REGB0 = REGB1;
3652 } else {
3653 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3654 REGB0 = REGB1;
3655 }
3656 }
3657 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3658 if (UNTAG_Bool(REGB0)) {
3659 /* parser/parser_prod.nit:641 */
3660 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[2]);
3661 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
3662 if (UNTAG_Bool(REGB0)) {
3663 } else {
3664 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 641);
3665 }
3666 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3667 }
3668 /* parser/parser_prod.nit:643 */
3669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2])!=NIT_NULL);
3670 if (UNTAG_Bool(REGB0)) {
3671 } else {
3672 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 643);
3673 }
3674 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2]);
3675 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));
3676 /* parser/parser_prod.nit:646 */
3677 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
3678 if (UNTAG_Bool(REGB0)) {
3679 } else {
3680 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 646);
3681 }
3682 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2]);
3683 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_3));
3684 /* parser/parser_prod.nit:649 */
3685 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2])!=NIT_NULL);
3686 if (UNTAG_Bool(REGB0)) {
3687 } else {
3688 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 649);
3689 }
3690 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2]);
3691 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3692 stack_frame_head = fra.me.prev;
3693 return;
3694 }
3695 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){
3696 struct {struct stack_frame_t me;} fra;
3697 fun_t CREG[1];
3698 val_t tmp;
3699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3700 fra.me.file = LOCATE_parser___parser_prod;
3701 fra.me.line = 0;
3702 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3703 fra.me.has_broke = 0;
3704 fra.me.REG_size = 1;
3705 fra.me.nitni_local_ref_head = NULL;
3706 fra.me.REG[0] = NIT_NULL;
3707 fra.me.closure_ctx = closctx_param;
3708 fra.me.closure_funs = CREG;
3709 fra.me.REG[0] = p0;
3710 CREG[0] = clos_fun0;
3711 /* parser/parser_prod.nit:638 */
3712 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3713 stack_frame_head = fra.me.prev;
3714 return;
3715 }
3716 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){
3717 struct {struct stack_frame_t me;} fra;
3718 fun_t CREG[1];
3719 val_t tmp;
3720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3721 fra.me.file = LOCATE_parser___parser_prod;
3722 fra.me.line = 0;
3723 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3724 fra.me.has_broke = 0;
3725 fra.me.REG_size = 1;
3726 fra.me.nitni_local_ref_head = NULL;
3727 fra.me.REG[0] = NIT_NULL;
3728 fra.me.closure_ctx = closctx_param;
3729 fra.me.closure_funs = CREG;
3730 fra.me.REG[0] = p0;
3731 CREG[0] = clos_fun0;
3732 /* parser/parser_prod.nit:644 */
3733 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3734 stack_frame_head = fra.me.prev;
3735 return;
3736 }
3737 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){
3738 struct {struct stack_frame_t me;} fra;
3739 fun_t CREG[1];
3740 val_t tmp;
3741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3742 fra.me.file = LOCATE_parser___parser_prod;
3743 fra.me.line = 0;
3744 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3745 fra.me.has_broke = 0;
3746 fra.me.REG_size = 1;
3747 fra.me.nitni_local_ref_head = NULL;
3748 fra.me.REG[0] = NIT_NULL;
3749 fra.me.closure_ctx = closctx_param;
3750 fra.me.closure_funs = CREG;
3751 fra.me.REG[0] = p0;
3752 CREG[0] = clos_fun0;
3753 /* parser/parser_prod.nit:647 */
3754 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3755 stack_frame_head = fra.me.prev;
3756 return;
3757 }
3758 static const char LOCATE_parser___parser_prod___ATopClassdef___empty_init[] = "parser_prod::ATopClassdef::empty_init";
3759 void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table){
3760 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3761 struct {struct stack_frame_t me;} fra;
3762 val_t tmp;
3763 if (init_table[itpos19]) return;
3764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3765 fra.me.file = LOCATE_parser___parser_prod;
3766 fra.me.line = 653;
3767 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___empty_init;
3768 fra.me.has_broke = 0;
3769 fra.me.REG_size = 1;
3770 fra.me.nitni_local_ref_head = NULL;
3771 fra.me.REG[0] = NIT_NULL;
3772 fra.me.REG[0] = p0;
3773 stack_frame_head = fra.me.prev;
3774 init_table[itpos19] = 1;
3775 return;
3776 }
3777 static const char LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef[] = "parser_prod::ATopClassdef::init_atopclassdef";
3778 void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1, int* init_table){
3779 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3780 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3781 val_t tmp;
3782 if (init_table[itpos20]) return;
3783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3784 fra.me.file = LOCATE_parser___parser_prod;
3785 fra.me.line = 655;
3786 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3787 fra.me.has_broke = 0;
3788 fra.me.REG_size = 2;
3789 fra.me.nitni_local_ref_head = NULL;
3790 fra.me.REG[0] = NIT_NULL;
3791 fra.me.REG[1] = NIT_NULL;
3792 fra.me.REG[0] = p0;
3793 fra.me.REG[1] = p1;
3794 /* parser/parser_prod.nit:659 */
3795 CALL_parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3796 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));
3797 stack_frame_head = fra.me.prev;
3798 init_table[itpos20] = 1;
3799 return;
3800 }
3801 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){
3802 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3803 val_t REGB0;
3804 fun_t CREG[1];
3805 val_t tmp;
3806 /* parser/parser_prod.nit:660 */
3807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3808 fra.me.file = LOCATE_parser___parser_prod;
3809 fra.me.line = 0;
3810 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3811 fra.me.has_broke = 0;
3812 fra.me.REG_size = 2;
3813 fra.me.nitni_local_ref_head = NULL;
3814 fra.me.REG[0] = NIT_NULL;
3815 fra.me.REG[1] = NIT_NULL;
3816 fra.me.closure_ctx = closctx_param;
3817 fra.me.closure_funs = CREG;
3818 fra.me.REG[0] = p0;
3819 CREG[0] = clos_fun0;
3820 /* parser/parser_prod.nit:661 */
3821 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3822 if (UNTAG_Bool(REGB0)) {
3823 } else {
3824 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 661);
3825 }
3826 /* parser/parser_prod.nit:662 */
3827 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3828 if (UNTAG_Bool(REGB0)) {
3829 } else {
3830 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 662);
3831 }
3832 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
3833 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3834 /* parser/parser_prod.nit:663 */
3835 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3836 stack_frame_head = fra.me.prev;
3837 return;
3838 }
3839 static const char LOCATE_parser___parser_prod___ATopClassdef___replace_child[] = "parser_prod::ATopClassdef::(parser_prod::ANode::replace_child)";
3840 void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3841 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3842 val_t REGB0;
3843 val_t REGB1;
3844 val_t REGB2;
3845 val_t REGB3;
3846 val_t REGB4;
3847 val_t tmp;
3848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3849 fra.me.file = LOCATE_parser___parser_prod;
3850 fra.me.line = 667;
3851 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___replace_child;
3852 fra.me.has_broke = 0;
3853 fra.me.REG_size = 4;
3854 fra.me.nitni_local_ref_head = NULL;
3855 fra.me.REG[0] = NIT_NULL;
3856 fra.me.REG[1] = NIT_NULL;
3857 fra.me.REG[2] = NIT_NULL;
3858 fra.me.REG[3] = NIT_NULL;
3859 fra.me.REG[0] = p0;
3860 fra.me.REG[1] = p1;
3861 fra.me.REG[2] = p2;
3862 /* parser/parser_prod.nit:669 */
3863 REGB0 = TAG_Int(0);
3864 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3865 if (UNTAG_Bool(REGB1)) {
3866 } else {
3867 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 669);
3868 }
3869 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3870 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3871 /* ../lib/standard/kernel.nit:355 */
3872 while(1) {
3873 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3874 if (UNTAG_Bool(REGB2)) {
3875 } else {
3876 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3877 }
3878 /* ../lib/standard/kernel.nit:235 */
3879 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3880 /* ../lib/standard/kernel.nit:355 */
3881 if (UNTAG_Bool(REGB2)) {
3882 /* parser/parser_prod.nit:669 */
3883 REGB2 = REGB0;
3884 /* parser/parser_prod.nit:670 */
3885 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3886 if (UNTAG_Bool(REGB3)) {
3887 } else {
3888 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 670);
3889 }
3890 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3891 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3892 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3893 if (UNTAG_Bool(REGB3)) {
3894 } else {
3895 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3896 if (UNTAG_Bool(REGB4)) {
3897 REGB4 = TAG_Bool(0);
3898 REGB3 = REGB4;
3899 } else {
3900 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3901 REGB3 = REGB4;
3902 }
3903 }
3904 if (UNTAG_Bool(REGB3)) {
3905 /* parser/parser_prod.nit:671 */
3906 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3907 if (UNTAG_Bool(REGB3)) {
3908 } else {
3909 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3910 if (UNTAG_Bool(REGB4)) {
3911 REGB4 = TAG_Bool(0);
3912 REGB3 = REGB4;
3913 } else {
3914 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3915 REGB3 = REGB4;
3916 }
3917 }
3918 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3919 if (UNTAG_Bool(REGB3)) {
3920 /* parser/parser_prod.nit:672 */
3921 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*/;
3922 if (UNTAG_Bool(REGB3)) {
3923 } else {
3924 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 672);
3925 }
3926 /* parser/parser_prod.nit:673 */
3927 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3928 if (UNTAG_Bool(REGB3)) {
3929 } else {
3930 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 673);
3931 }
3932 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3933 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3934 /* parser/parser_prod.nit:674 */
3935 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3936 if (UNTAG_Bool(REGB3)) {
3937 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 674);
3938 }
3939 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3940 } else {
3941 /* parser/parser_prod.nit:676 */
3942 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3943 if (UNTAG_Bool(REGB3)) {
3944 } else {
3945 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 676);
3946 }
3947 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3948 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3949 }
3950 /* parser/parser_prod.nit:678 */
3951 goto label1;
3952 }
3953 /* ../lib/standard/kernel.nit:357 */
3954 REGB2 = TAG_Int(1);
3955 /* ../lib/standard/kernel.nit:238 */
3956 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3957 /* ../lib/standard/kernel.nit:357 */
3958 REGB0 = REGB2;
3959 } else {
3960 /* ../lib/standard/kernel.nit:355 */
3961 goto label2;
3962 }
3963 }
3964 label2: while(0);
3965 label1: while(0);
3966 stack_frame_head = fra.me.prev;
3967 return;
3968 }
3969 static const char LOCATE_parser___parser_prod___ATopClassdef___visit_all[] = "parser_prod::ATopClassdef::(parser_prod::ANode::visit_all)";
3970 void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
3971 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3972 val_t REGB0;
3973 val_t tmp;
3974 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3975 fra.me.file = LOCATE_parser___parser_prod;
3976 fra.me.line = 683;
3977 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3978 fra.me.has_broke = 0;
3979 fra.me.REG_size = 2;
3980 fra.me.nitni_local_ref_head = NULL;
3981 fra.me.REG[0] = NIT_NULL;
3982 fra.me.REG[1] = NIT_NULL;
3983 fra.me.REG[0] = p0;
3984 fra.me.REG[1] = p1;
3985 /* parser/parser_prod.nit:685 */
3986 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3987 if (UNTAG_Bool(REGB0)) {
3988 } else {
3989 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 685);
3990 }
3991 fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3992 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));
3993 stack_frame_head = fra.me.prev;
3994 return;
3995 }
3996 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){
3997 struct {struct stack_frame_t me;} fra;
3998 fun_t CREG[1];
3999 val_t tmp;
4000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4001 fra.me.file = LOCATE_parser___parser_prod;
4002 fra.me.line = 0;
4003 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
4004 fra.me.has_broke = 0;
4005 fra.me.REG_size = 1;
4006 fra.me.nitni_local_ref_head = NULL;
4007 fra.me.REG[0] = NIT_NULL;
4008 fra.me.closure_ctx = closctx_param;
4009 fra.me.closure_funs = CREG;
4010 fra.me.REG[0] = p0;
4011 CREG[0] = clos_fun0;
4012 /* parser/parser_prod.nit:686 */
4013 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4014 stack_frame_head = fra.me.prev;
4015 return;
4016 }
4017 static const char LOCATE_parser___parser_prod___AMainClassdef___empty_init[] = "parser_prod::AMainClassdef::empty_init";
4018 void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table){
4019 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
4020 struct {struct stack_frame_t me;} fra;
4021 val_t tmp;
4022 if (init_table[itpos21]) return;
4023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4024 fra.me.file = LOCATE_parser___parser_prod;
4025 fra.me.line = 691;
4026 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___empty_init;
4027 fra.me.has_broke = 0;
4028 fra.me.REG_size = 1;
4029 fra.me.nitni_local_ref_head = NULL;
4030 fra.me.REG[0] = NIT_NULL;
4031 fra.me.REG[0] = p0;
4032 stack_frame_head = fra.me.prev;
4033 init_table[itpos21] = 1;
4034 return;
4035 }
4036 static const char LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef[] = "parser_prod::AMainClassdef::init_amainclassdef";
4037 void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p1, int* init_table){
4038 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
4039 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4040 val_t tmp;
4041 if (init_table[itpos22]) return;
4042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4043 fra.me.file = LOCATE_parser___parser_prod;
4044 fra.me.line = 693;
4045 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
4046 fra.me.has_broke = 0;
4047 fra.me.REG_size = 2;
4048 fra.me.nitni_local_ref_head = NULL;
4049 fra.me.REG[0] = NIT_NULL;
4050 fra.me.REG[1] = NIT_NULL;
4051 fra.me.REG[0] = p0;
4052 fra.me.REG[1] = p1;
4053 /* parser/parser_prod.nit:697 */
4054 CALL_parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4055 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));
4056 stack_frame_head = fra.me.prev;
4057 init_table[itpos22] = 1;
4058 return;
4059 }
4060 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){
4061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4062 val_t REGB0;
4063 fun_t CREG[1];
4064 val_t tmp;
4065 /* parser/parser_prod.nit:698 */
4066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4067 fra.me.file = LOCATE_parser___parser_prod;
4068 fra.me.line = 0;
4069 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
4070 fra.me.has_broke = 0;
4071 fra.me.REG_size = 2;
4072 fra.me.nitni_local_ref_head = NULL;
4073 fra.me.REG[0] = NIT_NULL;
4074 fra.me.REG[1] = NIT_NULL;
4075 fra.me.closure_ctx = closctx_param;
4076 fra.me.closure_funs = CREG;
4077 fra.me.REG[0] = p0;
4078 CREG[0] = clos_fun0;
4079 /* parser/parser_prod.nit:699 */
4080 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
4081 if (UNTAG_Bool(REGB0)) {
4082 } else {
4083 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 699);
4084 }
4085 /* parser/parser_prod.nit:700 */
4086 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
4087 if (UNTAG_Bool(REGB0)) {
4088 } else {
4089 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 700);
4090 }
4091 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
4092 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4093 /* parser/parser_prod.nit:701 */
4094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
4095 stack_frame_head = fra.me.prev;
4096 return;
4097 }
4098 static const char LOCATE_parser___parser_prod___AMainClassdef___replace_child[] = "parser_prod::AMainClassdef::(parser_prod::ANode::replace_child)";
4099 void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, val_t p2){
4100 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4101 val_t REGB0;
4102 val_t REGB1;
4103 val_t REGB2;
4104 val_t REGB3;
4105 val_t REGB4;
4106 val_t tmp;
4107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4108 fra.me.file = LOCATE_parser___parser_prod;
4109 fra.me.line = 705;
4110 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___replace_child;
4111 fra.me.has_broke = 0;
4112 fra.me.REG_size = 4;
4113 fra.me.nitni_local_ref_head = NULL;
4114 fra.me.REG[0] = NIT_NULL;
4115 fra.me.REG[1] = NIT_NULL;
4116 fra.me.REG[2] = NIT_NULL;
4117 fra.me.REG[3] = NIT_NULL;
4118 fra.me.REG[0] = p0;
4119 fra.me.REG[1] = p1;
4120 fra.me.REG[2] = p2;
4121 /* parser/parser_prod.nit:707 */
4122 REGB0 = TAG_Int(0);
4123 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4124 if (UNTAG_Bool(REGB1)) {
4125 } else {
4126 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 707);
4127 }
4128 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4129 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4130 /* ../lib/standard/kernel.nit:355 */
4131 while(1) {
4132 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4133 if (UNTAG_Bool(REGB2)) {
4134 } else {
4135 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4136 }
4137 /* ../lib/standard/kernel.nit:235 */
4138 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4139 /* ../lib/standard/kernel.nit:355 */
4140 if (UNTAG_Bool(REGB2)) {
4141 /* parser/parser_prod.nit:707 */
4142 REGB2 = REGB0;
4143 /* parser/parser_prod.nit:708 */
4144 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4145 if (UNTAG_Bool(REGB3)) {
4146 } else {
4147 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 708);
4148 }
4149 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4150 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
4151 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4152 if (UNTAG_Bool(REGB3)) {
4153 } else {
4154 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4155 if (UNTAG_Bool(REGB4)) {
4156 REGB4 = TAG_Bool(0);
4157 REGB3 = REGB4;
4158 } else {
4159 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4160 REGB3 = REGB4;
4161 }
4162 }
4163 if (UNTAG_Bool(REGB3)) {
4164 /* parser/parser_prod.nit:709 */
4165 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4166 if (UNTAG_Bool(REGB3)) {
4167 } else {
4168 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4169 if (UNTAG_Bool(REGB4)) {
4170 REGB4 = TAG_Bool(0);
4171 REGB3 = REGB4;
4172 } else {
4173 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4174 REGB3 = REGB4;
4175 }
4176 }
4177 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4178 if (UNTAG_Bool(REGB3)) {
4179 /* parser/parser_prod.nit:710 */
4180 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*/;
4181 if (UNTAG_Bool(REGB3)) {
4182 } else {
4183 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 710);
4184 }
4185 /* parser/parser_prod.nit:711 */
4186 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4187 if (UNTAG_Bool(REGB3)) {
4188 } else {
4189 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 711);
4190 }
4191 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4192 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
4193 /* parser/parser_prod.nit:712 */
4194 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4195 if (UNTAG_Bool(REGB3)) {
4196 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 712);
4197 }
4198 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4199 } else {
4200 /* parser/parser_prod.nit:714 */
4201 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4202 if (UNTAG_Bool(REGB3)) {
4203 } else {
4204 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 714);
4205 }
4206 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4207 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
4208 }
4209 /* parser/parser_prod.nit:716 */
4210 goto label1;
4211 }
4212 /* ../lib/standard/kernel.nit:357 */
4213 REGB2 = TAG_Int(1);
4214 /* ../lib/standard/kernel.nit:238 */
4215 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
4216 /* ../lib/standard/kernel.nit:357 */
4217 REGB0 = REGB2;
4218 } else {
4219 /* ../lib/standard/kernel.nit:355 */
4220 goto label2;
4221 }
4222 }
4223 label2: while(0);
4224 label1: while(0);
4225 stack_frame_head = fra.me.prev;
4226 return;
4227 }
4228 static const char LOCATE_parser___parser_prod___AMainClassdef___visit_all[] = "parser_prod::AMainClassdef::(parser_prod::ANode::visit_all)";
4229 void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
4230 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4231 val_t REGB0;
4232 val_t tmp;
4233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4234 fra.me.file = LOCATE_parser___parser_prod;
4235 fra.me.line = 721;
4236 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
4237 fra.me.has_broke = 0;
4238 fra.me.REG_size = 2;
4239 fra.me.nitni_local_ref_head = NULL;
4240 fra.me.REG[0] = NIT_NULL;
4241 fra.me.REG[1] = NIT_NULL;
4242 fra.me.REG[0] = p0;
4243 fra.me.REG[1] = p1;
4244 /* parser/parser_prod.nit:723 */
4245 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4246 if (UNTAG_Bool(REGB0)) {
4247 } else {
4248 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 723);
4249 }
4250 fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4251 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));
4252 stack_frame_head = fra.me.prev;
4253 return;
4254 }
4255 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){
4256 struct {struct stack_frame_t me;} fra;
4257 fun_t CREG[1];
4258 val_t tmp;
4259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4260 fra.me.file = LOCATE_parser___parser_prod;
4261 fra.me.line = 0;
4262 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
4263 fra.me.has_broke = 0;
4264 fra.me.REG_size = 1;
4265 fra.me.nitni_local_ref_head = NULL;
4266 fra.me.REG[0] = NIT_NULL;
4267 fra.me.closure_ctx = closctx_param;
4268 fra.me.closure_funs = CREG;
4269 fra.me.REG[0] = p0;
4270 CREG[0] = clos_fun0;
4271 /* parser/parser_prod.nit:724 */
4272 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4273 stack_frame_head = fra.me.prev;
4274 return;
4275 }
4276 static const char LOCATE_parser___parser_prod___AConcreteClasskind___empty_init[] = "parser_prod::AConcreteClasskind::empty_init";
4277 void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table){
4278 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
4279 struct {struct stack_frame_t me;} fra;
4280 val_t tmp;
4281 if (init_table[itpos23]) return;
4282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4283 fra.me.file = LOCATE_parser___parser_prod;
4284 fra.me.line = 729;
4285 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___empty_init;
4286 fra.me.has_broke = 0;
4287 fra.me.REG_size = 1;
4288 fra.me.nitni_local_ref_head = NULL;
4289 fra.me.REG[0] = NIT_NULL;
4290 fra.me.REG[0] = p0;
4291 stack_frame_head = fra.me.prev;
4292 init_table[itpos23] = 1;
4293 return;
4294 }
4295 static const char LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind[] = "parser_prod::AConcreteClasskind::init_aconcreteclasskind";
4296 void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0, val_t p1, int* init_table){
4297 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
4298 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4299 val_t REGB0;
4300 val_t tmp;
4301 if (init_table[itpos24]) return;
4302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4303 fra.me.file = LOCATE_parser___parser_prod;
4304 fra.me.line = 731;
4305 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
4306 fra.me.has_broke = 0;
4307 fra.me.REG_size = 3;
4308 fra.me.nitni_local_ref_head = NULL;
4309 fra.me.REG[0] = NIT_NULL;
4310 fra.me.REG[1] = NIT_NULL;
4311 fra.me.REG[2] = NIT_NULL;
4312 fra.me.REG[0] = p0;
4313 fra.me.REG[1] = p1;
4314 /* parser/parser_prod.nit:731 */
4315 fra.me.REG[2] = fra.me.REG[0];
4316 /* parser/parser_prod.nit:735 */
4317 CALL_parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4318 /* parser/parser_prod.nit:736 */
4319 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4320 if (UNTAG_Bool(REGB0)) {
4321 } else {
4322 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 736);
4323 }
4324 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[2]) = fra.me.REG[1];
4325 /* parser/parser_prod.nit:737 */
4326 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4327 if (UNTAG_Bool(REGB0)) {
4328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 737);
4329 }
4330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4331 stack_frame_head = fra.me.prev;
4332 init_table[itpos24] = 1;
4333 return;
4334 }
4335 static const char LOCATE_parser___parser_prod___AConcreteClasskind___replace_child[] = "parser_prod::AConcreteClasskind::(parser_prod::ANode::replace_child)";
4336 void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4337 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4338 val_t REGB0;
4339 val_t REGB1;
4340 val_t tmp;
4341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4342 fra.me.file = LOCATE_parser___parser_prod;
4343 fra.me.line = 740;
4344 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___replace_child;
4345 fra.me.has_broke = 0;
4346 fra.me.REG_size = 4;
4347 fra.me.nitni_local_ref_head = NULL;
4348 fra.me.REG[0] = NIT_NULL;
4349 fra.me.REG[1] = NIT_NULL;
4350 fra.me.REG[2] = NIT_NULL;
4351 fra.me.REG[3] = NIT_NULL;
4352 fra.me.REG[0] = p0;
4353 fra.me.REG[1] = p1;
4354 fra.me.REG[2] = p2;
4355 /* parser/parser_prod.nit:742 */
4356 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4357 if (UNTAG_Bool(REGB0)) {
4358 } else {
4359 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 742);
4360 }
4361 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4362 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4363 if (UNTAG_Bool(REGB0)) {
4364 } else {
4365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4366 REGB0 = REGB1;
4367 }
4368 if (UNTAG_Bool(REGB0)) {
4369 /* parser/parser_prod.nit:743 */
4370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4371 if (UNTAG_Bool(REGB0)) {
4372 } else {
4373 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4374 if (UNTAG_Bool(REGB1)) {
4375 REGB1 = TAG_Bool(0);
4376 REGB0 = REGB1;
4377 } else {
4378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4379 REGB0 = REGB1;
4380 }
4381 }
4382 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4383 if (UNTAG_Bool(REGB0)) {
4384 /* parser/parser_prod.nit:744 */
4385 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4386 if (UNTAG_Bool(REGB0)) {
4387 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 744);
4388 }
4389 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4390 /* parser/parser_prod.nit:745 */
4391 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*/;
4392 if (UNTAG_Bool(REGB0)) {
4393 } else {
4394 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 745);
4395 }
4396 /* parser/parser_prod.nit:746 */
4397 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4398 } else {
4399 /* parser/parser_prod.nit:748 */
4400 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 748);
4401 }
4402 /* parser/parser_prod.nit:750 */
4403 goto label1;
4404 }
4405 label1: while(0);
4406 stack_frame_head = fra.me.prev;
4407 return;
4408 }
4409 static const char LOCATE_parser___parser_prod___AConcreteClasskind___visit_all[] = "parser_prod::AConcreteClasskind::(parser_prod::ANode::visit_all)";
4410 void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
4411 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4412 val_t REGB0;
4413 val_t tmp;
4414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4415 fra.me.file = LOCATE_parser___parser_prod;
4416 fra.me.line = 754;
4417 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___visit_all;
4418 fra.me.has_broke = 0;
4419 fra.me.REG_size = 2;
4420 fra.me.nitni_local_ref_head = NULL;
4421 fra.me.REG[0] = NIT_NULL;
4422 fra.me.REG[1] = NIT_NULL;
4423 fra.me.REG[0] = p0;
4424 fra.me.REG[1] = p1;
4425 /* parser/parser_prod.nit:756 */
4426 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4427 if (UNTAG_Bool(REGB0)) {
4428 } else {
4429 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 756);
4430 }
4431 fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4432 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4433 stack_frame_head = fra.me.prev;
4434 return;
4435 }
4436 static const char LOCATE_parser___parser_prod___AAbstractClasskind___empty_init[] = "parser_prod::AAbstractClasskind::empty_init";
4437 void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table){
4438 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4439 struct {struct stack_frame_t me;} fra;
4440 val_t tmp;
4441 if (init_table[itpos25]) return;
4442 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4443 fra.me.file = LOCATE_parser___parser_prod;
4444 fra.me.line = 760;
4445 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___empty_init;
4446 fra.me.has_broke = 0;
4447 fra.me.REG_size = 1;
4448 fra.me.nitni_local_ref_head = NULL;
4449 fra.me.REG[0] = NIT_NULL;
4450 fra.me.REG[0] = p0;
4451 stack_frame_head = fra.me.prev;
4452 init_table[itpos25] = 1;
4453 return;
4454 }
4455 static const char LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind[] = "parser_prod::AAbstractClasskind::init_aabstractclasskind";
4456 void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
4457 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4458 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4459 val_t REGB0;
4460 val_t tmp;
4461 if (init_table[itpos26]) return;
4462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4463 fra.me.file = LOCATE_parser___parser_prod;
4464 fra.me.line = 762;
4465 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
4466 fra.me.has_broke = 0;
4467 fra.me.REG_size = 4;
4468 fra.me.nitni_local_ref_head = NULL;
4469 fra.me.REG[0] = NIT_NULL;
4470 fra.me.REG[1] = NIT_NULL;
4471 fra.me.REG[2] = NIT_NULL;
4472 fra.me.REG[3] = NIT_NULL;
4473 fra.me.REG[0] = p0;
4474 fra.me.REG[1] = p1;
4475 fra.me.REG[2] = p2;
4476 /* parser/parser_prod.nit:762 */
4477 fra.me.REG[3] = fra.me.REG[0];
4478 /* parser/parser_prod.nit:767 */
4479 CALL_parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4480 /* parser/parser_prod.nit:768 */
4481 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4482 if (UNTAG_Bool(REGB0)) {
4483 } else {
4484 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 768);
4485 }
4486 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[3]) = fra.me.REG[1];
4487 /* parser/parser_prod.nit:769 */
4488 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4489 if (UNTAG_Bool(REGB0)) {
4490 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 769);
4491 }
4492 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4493 /* parser/parser_prod.nit:770 */
4494 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
4495 if (UNTAG_Bool(REGB0)) {
4496 } else {
4497 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 770);
4498 }
4499 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
4500 /* parser/parser_prod.nit:771 */
4501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4502 if (UNTAG_Bool(REGB0)) {
4503 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 771);
4504 }
4505 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4506 stack_frame_head = fra.me.prev;
4507 init_table[itpos26] = 1;
4508 return;
4509 }
4510 static const char LOCATE_parser___parser_prod___AAbstractClasskind___replace_child[] = "parser_prod::AAbstractClasskind::(parser_prod::ANode::replace_child)";
4511 void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4512 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4513 val_t REGB0;
4514 val_t REGB1;
4515 val_t tmp;
4516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4517 fra.me.file = LOCATE_parser___parser_prod;
4518 fra.me.line = 774;
4519 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___replace_child;
4520 fra.me.has_broke = 0;
4521 fra.me.REG_size = 4;
4522 fra.me.nitni_local_ref_head = NULL;
4523 fra.me.REG[0] = NIT_NULL;
4524 fra.me.REG[1] = NIT_NULL;
4525 fra.me.REG[2] = NIT_NULL;
4526 fra.me.REG[3] = NIT_NULL;
4527 fra.me.REG[0] = p0;
4528 fra.me.REG[1] = p1;
4529 fra.me.REG[2] = p2;
4530 /* parser/parser_prod.nit:776 */
4531 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4532 if (UNTAG_Bool(REGB0)) {
4533 } else {
4534 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 776);
4535 }
4536 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4537 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4538 if (UNTAG_Bool(REGB0)) {
4539 } else {
4540 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4541 REGB0 = REGB1;
4542 }
4543 if (UNTAG_Bool(REGB0)) {
4544 /* parser/parser_prod.nit:777 */
4545 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4546 if (UNTAG_Bool(REGB0)) {
4547 } else {
4548 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4549 if (UNTAG_Bool(REGB1)) {
4550 REGB1 = TAG_Bool(0);
4551 REGB0 = REGB1;
4552 } else {
4553 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4554 REGB0 = REGB1;
4555 }
4556 }
4557 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4558 if (UNTAG_Bool(REGB0)) {
4559 /* parser/parser_prod.nit:778 */
4560 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4561 if (UNTAG_Bool(REGB0)) {
4562 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 778);
4563 }
4564 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4565 /* parser/parser_prod.nit:779 */
4566 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*/;
4567 if (UNTAG_Bool(REGB0)) {
4568 } else {
4569 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 779);
4570 }
4571 /* parser/parser_prod.nit:780 */
4572 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
4573 } else {
4574 /* parser/parser_prod.nit:782 */
4575 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 782);
4576 }
4577 /* parser/parser_prod.nit:784 */
4578 goto label1;
4579 }
4580 /* parser/parser_prod.nit:786 */
4581 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4582 if (UNTAG_Bool(REGB0)) {
4583 } else {
4584 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 786);
4585 }
4586 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4587 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4588 if (UNTAG_Bool(REGB0)) {
4589 } else {
4590 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4591 REGB0 = REGB1;
4592 }
4593 if (UNTAG_Bool(REGB0)) {
4594 /* parser/parser_prod.nit:787 */
4595 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4596 if (UNTAG_Bool(REGB0)) {
4597 } else {
4598 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4599 if (UNTAG_Bool(REGB1)) {
4600 REGB1 = TAG_Bool(0);
4601 REGB0 = REGB1;
4602 } else {
4603 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4604 REGB0 = REGB1;
4605 }
4606 }
4607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4608 if (UNTAG_Bool(REGB0)) {
4609 /* parser/parser_prod.nit:788 */
4610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4611 if (UNTAG_Bool(REGB0)) {
4612 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 788);
4613 }
4614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4615 /* parser/parser_prod.nit:789 */
4616 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*/;
4617 if (UNTAG_Bool(REGB0)) {
4618 } else {
4619 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 789);
4620 }
4621 /* parser/parser_prod.nit:790 */
4622 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4623 } else {
4624 /* parser/parser_prod.nit:792 */
4625 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 792);
4626 }
4627 /* parser/parser_prod.nit:794 */
4628 goto label1;
4629 }
4630 label1: while(0);
4631 stack_frame_head = fra.me.prev;
4632 return;
4633 }
4634 static const char LOCATE_parser___parser_prod___AAbstractClasskind___visit_all[] = "parser_prod::AAbstractClasskind::(parser_prod::ANode::visit_all)";
4635 void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
4636 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4637 val_t REGB0;
4638 val_t tmp;
4639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4640 fra.me.file = LOCATE_parser___parser_prod;
4641 fra.me.line = 798;
4642 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___visit_all;
4643 fra.me.has_broke = 0;
4644 fra.me.REG_size = 3;
4645 fra.me.nitni_local_ref_head = NULL;
4646 fra.me.REG[0] = NIT_NULL;
4647 fra.me.REG[1] = NIT_NULL;
4648 fra.me.REG[2] = NIT_NULL;
4649 fra.me.REG[0] = p0;
4650 fra.me.REG[1] = p1;
4651 /* parser/parser_prod.nit:800 */
4652 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4653 if (UNTAG_Bool(REGB0)) {
4654 } else {
4655 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 800);
4656 }
4657 fra.me.REG[2] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4658 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4659 /* parser/parser_prod.nit:801 */
4660 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4661 if (UNTAG_Bool(REGB0)) {
4662 } else {
4663 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 801);
4664 }
4665 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4666 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4667 stack_frame_head = fra.me.prev;
4668 return;
4669 }
4670 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init[] = "parser_prod::AInterfaceClasskind::empty_init";
4671 void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table){
4672 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4673 struct {struct stack_frame_t me;} fra;
4674 val_t tmp;
4675 if (init_table[itpos27]) return;
4676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4677 fra.me.file = LOCATE_parser___parser_prod;
4678 fra.me.line = 805;
4679 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init;
4680 fra.me.has_broke = 0;
4681 fra.me.REG_size = 1;
4682 fra.me.nitni_local_ref_head = NULL;
4683 fra.me.REG[0] = NIT_NULL;
4684 fra.me.REG[0] = p0;
4685 stack_frame_head = fra.me.prev;
4686 init_table[itpos27] = 1;
4687 return;
4688 }
4689 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind[] = "parser_prod::AInterfaceClasskind::init_ainterfaceclasskind";
4690 void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0, val_t p1, int* init_table){
4691 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4692 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4693 val_t REGB0;
4694 val_t tmp;
4695 if (init_table[itpos28]) return;
4696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4697 fra.me.file = LOCATE_parser___parser_prod;
4698 fra.me.line = 807;
4699 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
4700 fra.me.has_broke = 0;
4701 fra.me.REG_size = 3;
4702 fra.me.nitni_local_ref_head = NULL;
4703 fra.me.REG[0] = NIT_NULL;
4704 fra.me.REG[1] = NIT_NULL;
4705 fra.me.REG[2] = NIT_NULL;
4706 fra.me.REG[0] = p0;
4707 fra.me.REG[1] = p1;
4708 /* parser/parser_prod.nit:807 */
4709 fra.me.REG[2] = fra.me.REG[0];
4710 /* parser/parser_prod.nit:811 */
4711 CALL_parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4712 /* parser/parser_prod.nit:812 */
4713 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4714 if (UNTAG_Bool(REGB0)) {
4715 } else {
4716 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 812);
4717 }
4718 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[2]) = fra.me.REG[1];
4719 /* parser/parser_prod.nit:813 */
4720 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4721 if (UNTAG_Bool(REGB0)) {
4722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 813);
4723 }
4724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4725 stack_frame_head = fra.me.prev;
4726 init_table[itpos28] = 1;
4727 return;
4728 }
4729 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child[] = "parser_prod::AInterfaceClasskind::(parser_prod::ANode::replace_child)";
4730 void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4731 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4732 val_t REGB0;
4733 val_t REGB1;
4734 val_t tmp;
4735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4736 fra.me.file = LOCATE_parser___parser_prod;
4737 fra.me.line = 816;
4738 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child;
4739 fra.me.has_broke = 0;
4740 fra.me.REG_size = 4;
4741 fra.me.nitni_local_ref_head = NULL;
4742 fra.me.REG[0] = NIT_NULL;
4743 fra.me.REG[1] = NIT_NULL;
4744 fra.me.REG[2] = NIT_NULL;
4745 fra.me.REG[3] = NIT_NULL;
4746 fra.me.REG[0] = p0;
4747 fra.me.REG[1] = p1;
4748 fra.me.REG[2] = p2;
4749 /* parser/parser_prod.nit:818 */
4750 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4751 if (UNTAG_Bool(REGB0)) {
4752 } else {
4753 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 818);
4754 }
4755 fra.me.REG[3] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4756 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4757 if (UNTAG_Bool(REGB0)) {
4758 } else {
4759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4760 REGB0 = REGB1;
4761 }
4762 if (UNTAG_Bool(REGB0)) {
4763 /* parser/parser_prod.nit:819 */
4764 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4765 if (UNTAG_Bool(REGB0)) {
4766 } else {
4767 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4768 if (UNTAG_Bool(REGB1)) {
4769 REGB1 = TAG_Bool(0);
4770 REGB0 = REGB1;
4771 } else {
4772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4773 REGB0 = REGB1;
4774 }
4775 }
4776 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4777 if (UNTAG_Bool(REGB0)) {
4778 /* parser/parser_prod.nit:820 */
4779 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4780 if (UNTAG_Bool(REGB0)) {
4781 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 820);
4782 }
4783 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4784 /* parser/parser_prod.nit:821 */
4785 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*/;
4786 if (UNTAG_Bool(REGB0)) {
4787 } else {
4788 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 821);
4789 }
4790 /* parser/parser_prod.nit:822 */
4791 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
4792 } else {
4793 /* parser/parser_prod.nit:824 */
4794 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 824);
4795 }
4796 /* parser/parser_prod.nit:826 */
4797 goto label1;
4798 }
4799 label1: while(0);
4800 stack_frame_head = fra.me.prev;
4801 return;
4802 }
4803 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all[] = "parser_prod::AInterfaceClasskind::(parser_prod::ANode::visit_all)";
4804 void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
4805 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4806 val_t REGB0;
4807 val_t tmp;
4808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4809 fra.me.file = LOCATE_parser___parser_prod;
4810 fra.me.line = 830;
4811 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all;
4812 fra.me.has_broke = 0;
4813 fra.me.REG_size = 2;
4814 fra.me.nitni_local_ref_head = NULL;
4815 fra.me.REG[0] = NIT_NULL;
4816 fra.me.REG[1] = NIT_NULL;
4817 fra.me.REG[0] = p0;
4818 fra.me.REG[1] = p1;
4819 /* parser/parser_prod.nit:832 */
4820 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4821 if (UNTAG_Bool(REGB0)) {
4822 } else {
4823 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 832);
4824 }
4825 fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4826 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4827 stack_frame_head = fra.me.prev;
4828 return;
4829 }
4830 static const char LOCATE_parser___parser_prod___AEnumClasskind___empty_init[] = "parser_prod::AEnumClasskind::empty_init";
4831 void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table){
4832 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4833 struct {struct stack_frame_t me;} fra;
4834 val_t tmp;
4835 if (init_table[itpos29]) return;
4836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4837 fra.me.file = LOCATE_parser___parser_prod;
4838 fra.me.line = 836;
4839 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___empty_init;
4840 fra.me.has_broke = 0;
4841 fra.me.REG_size = 1;
4842 fra.me.nitni_local_ref_head = NULL;
4843 fra.me.REG[0] = NIT_NULL;
4844 fra.me.REG[0] = p0;
4845 stack_frame_head = fra.me.prev;
4846 init_table[itpos29] = 1;
4847 return;
4848 }
4849 static const char LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind[] = "parser_prod::AEnumClasskind::init_aenumclasskind";
4850 void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t p1, int* init_table){
4851 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4852 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4853 val_t REGB0;
4854 val_t tmp;
4855 if (init_table[itpos30]) return;
4856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4857 fra.me.file = LOCATE_parser___parser_prod;
4858 fra.me.line = 838;
4859 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
4860 fra.me.has_broke = 0;
4861 fra.me.REG_size = 3;
4862 fra.me.nitni_local_ref_head = NULL;
4863 fra.me.REG[0] = NIT_NULL;
4864 fra.me.REG[1] = NIT_NULL;
4865 fra.me.REG[2] = NIT_NULL;
4866 fra.me.REG[0] = p0;
4867 fra.me.REG[1] = p1;
4868 /* parser/parser_prod.nit:838 */
4869 fra.me.REG[2] = fra.me.REG[0];
4870 /* parser/parser_prod.nit:842 */
4871 CALL_parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4872 /* parser/parser_prod.nit:843 */
4873 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4874 if (UNTAG_Bool(REGB0)) {
4875 } else {
4876 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 843);
4877 }
4878 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[2]) = fra.me.REG[1];
4879 /* parser/parser_prod.nit:844 */
4880 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4881 if (UNTAG_Bool(REGB0)) {
4882 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 844);
4883 }
4884 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4885 stack_frame_head = fra.me.prev;
4886 init_table[itpos30] = 1;
4887 return;
4888 }
4889 static const char LOCATE_parser___parser_prod___AEnumClasskind___replace_child[] = "parser_prod::AEnumClasskind::(parser_prod::ANode::replace_child)";
4890 void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4891 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4892 val_t REGB0;
4893 val_t REGB1;
4894 val_t tmp;
4895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4896 fra.me.file = LOCATE_parser___parser_prod;
4897 fra.me.line = 847;
4898 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___replace_child;
4899 fra.me.has_broke = 0;
4900 fra.me.REG_size = 4;
4901 fra.me.nitni_local_ref_head = NULL;
4902 fra.me.REG[0] = NIT_NULL;
4903 fra.me.REG[1] = NIT_NULL;
4904 fra.me.REG[2] = NIT_NULL;
4905 fra.me.REG[3] = NIT_NULL;
4906 fra.me.REG[0] = p0;
4907 fra.me.REG[1] = p1;
4908 fra.me.REG[2] = p2;
4909 /* parser/parser_prod.nit:849 */
4910 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4911 if (UNTAG_Bool(REGB0)) {
4912 } else {
4913 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 849);
4914 }
4915 fra.me.REG[3] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4916 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4917 if (UNTAG_Bool(REGB0)) {
4918 } else {
4919 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4920 REGB0 = REGB1;
4921 }
4922 if (UNTAG_Bool(REGB0)) {
4923 /* parser/parser_prod.nit:850 */
4924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4925 if (UNTAG_Bool(REGB0)) {
4926 } else {
4927 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4928 if (UNTAG_Bool(REGB1)) {
4929 REGB1 = TAG_Bool(0);
4930 REGB0 = REGB1;
4931 } else {
4932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4933 REGB0 = REGB1;
4934 }
4935 }
4936 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4937 if (UNTAG_Bool(REGB0)) {
4938 /* parser/parser_prod.nit:851 */
4939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4940 if (UNTAG_Bool(REGB0)) {
4941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 851);
4942 }
4943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4944 /* parser/parser_prod.nit:852 */
4945 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*/;
4946 if (UNTAG_Bool(REGB0)) {
4947 } else {
4948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 852);
4949 }
4950 /* parser/parser_prod.nit:853 */
4951 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
4952 } else {
4953 /* parser/parser_prod.nit:855 */
4954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 855);
4955 }
4956 /* parser/parser_prod.nit:857 */
4957 goto label1;
4958 }
4959 label1: while(0);
4960 stack_frame_head = fra.me.prev;
4961 return;
4962 }
4963 static const char LOCATE_parser___parser_prod___AEnumClasskind___visit_all[] = "parser_prod::AEnumClasskind::(parser_prod::ANode::visit_all)";
4964 void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
4965 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4966 val_t REGB0;
4967 val_t tmp;
4968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4969 fra.me.file = LOCATE_parser___parser_prod;
4970 fra.me.line = 861;
4971 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___visit_all;
4972 fra.me.has_broke = 0;
4973 fra.me.REG_size = 2;
4974 fra.me.nitni_local_ref_head = NULL;
4975 fra.me.REG[0] = NIT_NULL;
4976 fra.me.REG[1] = NIT_NULL;
4977 fra.me.REG[0] = p0;
4978 fra.me.REG[1] = p1;
4979 /* parser/parser_prod.nit:863 */
4980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4981 if (UNTAG_Bool(REGB0)) {
4982 } else {
4983 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 863);
4984 }
4985 fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4986 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4987 stack_frame_head = fra.me.prev;
4988 return;
4989 }
4990 static const char LOCATE_parser___parser_prod___AExternClasskind___empty_init[] = "parser_prod::AExternClasskind::empty_init";
4991 void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_table){
4992 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4993 struct {struct stack_frame_t me;} fra;
4994 val_t tmp;
4995 if (init_table[itpos31]) return;
4996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4997 fra.me.file = LOCATE_parser___parser_prod;
4998 fra.me.line = 867;
4999 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___empty_init;
5000 fra.me.has_broke = 0;
5001 fra.me.REG_size = 1;
5002 fra.me.nitni_local_ref_head = NULL;
5003 fra.me.REG[0] = NIT_NULL;
5004 fra.me.REG[0] = p0;
5005 stack_frame_head = fra.me.prev;
5006 init_table[itpos31] = 1;
5007 return;
5008 }
5009 static const char LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind[] = "parser_prod::AExternClasskind::init_aexternclasskind";
5010 void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, val_t p1, int* init_table){
5011 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
5012 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5013 val_t REGB0;
5014 val_t tmp;
5015 if (init_table[itpos32]) return;
5016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5017 fra.me.file = LOCATE_parser___parser_prod;
5018 fra.me.line = 869;
5019 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind;
5020 fra.me.has_broke = 0;
5021 fra.me.REG_size = 3;
5022 fra.me.nitni_local_ref_head = NULL;
5023 fra.me.REG[0] = NIT_NULL;
5024 fra.me.REG[1] = NIT_NULL;
5025 fra.me.REG[2] = NIT_NULL;
5026 fra.me.REG[0] = p0;
5027 fra.me.REG[1] = p1;
5028 /* parser/parser_prod.nit:869 */
5029 fra.me.REG[2] = fra.me.REG[0];
5030 /* parser/parser_prod.nit:873 */
5031 CALL_parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
5032 /* parser/parser_prod.nit:874 */
5033 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5034 if (UNTAG_Bool(REGB0)) {
5035 } else {
5036 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 874);
5037 }
5038 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2]) = fra.me.REG[1];
5039 /* parser/parser_prod.nit:875 */
5040 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5041 if (UNTAG_Bool(REGB0)) {
5042 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 875);
5043 }
5044 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5045 stack_frame_head = fra.me.prev;
5046 init_table[itpos32] = 1;
5047 return;
5048 }
5049 static const char LOCATE_parser___parser_prod___AExternClasskind___replace_child[] = "parser_prod::AExternClasskind::(parser_prod::ANode::replace_child)";
5050 void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1, val_t p2){
5051 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5052 val_t REGB0;
5053 val_t REGB1;
5054 val_t tmp;
5055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5056 fra.me.file = LOCATE_parser___parser_prod;
5057 fra.me.line = 878;
5058 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___replace_child;
5059 fra.me.has_broke = 0;
5060 fra.me.REG_size = 4;
5061 fra.me.nitni_local_ref_head = NULL;
5062 fra.me.REG[0] = NIT_NULL;
5063 fra.me.REG[1] = NIT_NULL;
5064 fra.me.REG[2] = NIT_NULL;
5065 fra.me.REG[3] = NIT_NULL;
5066 fra.me.REG[0] = p0;
5067 fra.me.REG[1] = p1;
5068 fra.me.REG[2] = p2;
5069 /* parser/parser_prod.nit:880 */
5070 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
5071 if (UNTAG_Bool(REGB0)) {
5072 } else {
5073 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 880);
5074 }
5075 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
5076 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5077 if (UNTAG_Bool(REGB0)) {
5078 } else {
5079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5080 REGB0 = REGB1;
5081 }
5082 if (UNTAG_Bool(REGB0)) {
5083 /* parser/parser_prod.nit:881 */
5084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5085 if (UNTAG_Bool(REGB0)) {
5086 } else {
5087 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5088 if (UNTAG_Bool(REGB1)) {
5089 REGB1 = TAG_Bool(0);
5090 REGB0 = REGB1;
5091 } else {
5092 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5093 REGB0 = REGB1;
5094 }
5095 }
5096 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5097 if (UNTAG_Bool(REGB0)) {
5098 /* parser/parser_prod.nit:882 */
5099 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5100 if (UNTAG_Bool(REGB0)) {
5101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 882);
5102 }
5103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5104 /* parser/parser_prod.nit:883 */
5105 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast TKwextern*/;
5106 if (UNTAG_Bool(REGB0)) {
5107 } else {
5108 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 883);
5109 }
5110 /* parser/parser_prod.nit:884 */
5111 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]) = fra.me.REG[2];
5112 } else {
5113 /* parser/parser_prod.nit:886 */
5114 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 886);
5115 }
5116 /* parser/parser_prod.nit:888 */
5117 goto label1;
5118 }
5119 label1: while(0);
5120 stack_frame_head = fra.me.prev;
5121 return;
5122 }
5123 static const char LOCATE_parser___parser_prod___AExternClasskind___visit_all[] = "parser_prod::AExternClasskind::(parser_prod::ANode::visit_all)";
5124 void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
5125 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5126 val_t REGB0;
5127 val_t tmp;
5128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5129 fra.me.file = LOCATE_parser___parser_prod;
5130 fra.me.line = 892;
5131 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___visit_all;
5132 fra.me.has_broke = 0;
5133 fra.me.REG_size = 2;
5134 fra.me.nitni_local_ref_head = NULL;
5135 fra.me.REG[0] = NIT_NULL;
5136 fra.me.REG[1] = NIT_NULL;
5137 fra.me.REG[0] = p0;
5138 fra.me.REG[1] = p1;
5139 /* parser/parser_prod.nit:894 */
5140 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
5141 if (UNTAG_Bool(REGB0)) {
5142 } else {
5143 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 894);
5144 }
5145 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
5146 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5147 stack_frame_head = fra.me.prev;
5148 return;
5149 }
5150 static const char LOCATE_parser___parser_prod___AFormaldef___empty_init[] = "parser_prod::AFormaldef::empty_init";
5151 void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
5152 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
5153 struct {struct stack_frame_t me;} fra;
5154 val_t tmp;
5155 if (init_table[itpos33]) return;
5156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5157 fra.me.file = LOCATE_parser___parser_prod;
5158 fra.me.line = 898;
5159 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___empty_init;
5160 fra.me.has_broke = 0;
5161 fra.me.REG_size = 1;
5162 fra.me.nitni_local_ref_head = NULL;
5163 fra.me.REG[0] = NIT_NULL;
5164 fra.me.REG[0] = p0;
5165 stack_frame_head = fra.me.prev;
5166 init_table[itpos33] = 1;
5167 return;
5168 }
5169 static const char LOCATE_parser___parser_prod___AFormaldef___init_aformaldef[] = "parser_prod::AFormaldef::init_aformaldef";
5170 void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, int* init_table){
5171 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
5172 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5173 val_t REGB0;
5174 val_t REGB1;
5175 val_t tmp;
5176 if (init_table[itpos34]) return;
5177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5178 fra.me.file = LOCATE_parser___parser_prod;
5179 fra.me.line = 900;
5180 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
5181 fra.me.has_broke = 0;
5182 fra.me.REG_size = 4;
5183 fra.me.nitni_local_ref_head = NULL;
5184 fra.me.REG[0] = NIT_NULL;
5185 fra.me.REG[1] = NIT_NULL;
5186 fra.me.REG[2] = NIT_NULL;
5187 fra.me.REG[3] = NIT_NULL;
5188 fra.me.REG[0] = p0;
5189 fra.me.REG[1] = p1;
5190 fra.me.REG[2] = p2;
5191 /* parser/parser_prod.nit:900 */
5192 fra.me.REG[3] = fra.me.REG[0];
5193 /* parser/parser_prod.nit:905 */
5194 CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
5195 /* parser/parser_prod.nit:906 */
5196 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5197 if (UNTAG_Bool(REGB0)) {
5198 } else {
5199 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 906);
5200 }
5201 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[3]) = fra.me.REG[1];
5202 /* parser/parser_prod.nit:907 */
5203 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5204 if (UNTAG_Bool(REGB0)) {
5205 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 907);
5206 }
5207 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5208 /* parser/parser_prod.nit:908 */
5209 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[3]) = fra.me.REG[2];
5210 /* parser/parser_prod.nit:909 */
5211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5212 if (UNTAG_Bool(REGB0)) {
5213 } else {
5214 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5215 if (UNTAG_Bool(REGB1)) {
5216 REGB1 = TAG_Bool(0);
5217 REGB0 = REGB1;
5218 } else {
5219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5220 REGB0 = REGB1;
5221 }
5222 }
5223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5224 if (UNTAG_Bool(REGB0)) {
5225 /* parser/parser_prod.nit:910 */
5226 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5227 if (UNTAG_Bool(REGB0)) {
5228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 910);
5229 }
5230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5231 }
5232 stack_frame_head = fra.me.prev;
5233 init_table[itpos34] = 1;
5234 return;
5235 }
5236 static const char LOCATE_parser___parser_prod___AFormaldef___replace_child[] = "parser_prod::AFormaldef::(parser_prod::ANode::replace_child)";
5237 void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
5238 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5239 val_t REGB0;
5240 val_t REGB1;
5241 val_t tmp;
5242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5243 fra.me.file = LOCATE_parser___parser_prod;
5244 fra.me.line = 914;
5245 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
5246 fra.me.has_broke = 0;
5247 fra.me.REG_size = 4;
5248 fra.me.nitni_local_ref_head = NULL;
5249 fra.me.REG[0] = NIT_NULL;
5250 fra.me.REG[1] = NIT_NULL;
5251 fra.me.REG[2] = NIT_NULL;
5252 fra.me.REG[3] = NIT_NULL;
5253 fra.me.REG[0] = p0;
5254 fra.me.REG[1] = p1;
5255 fra.me.REG[2] = p2;
5256 /* parser/parser_prod.nit:916 */
5257 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
5258 if (UNTAG_Bool(REGB0)) {
5259 } else {
5260 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 916);
5261 }
5262 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
5263 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5264 if (UNTAG_Bool(REGB0)) {
5265 } else {
5266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5267 REGB0 = REGB1;
5268 }
5269 if (UNTAG_Bool(REGB0)) {
5270 /* parser/parser_prod.nit:917 */
5271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5272 if (UNTAG_Bool(REGB0)) {
5273 } else {
5274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5275 if (UNTAG_Bool(REGB1)) {
5276 REGB1 = TAG_Bool(0);
5277 REGB0 = REGB1;
5278 } else {
5279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5280 REGB0 = REGB1;
5281 }
5282 }
5283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5284 if (UNTAG_Bool(REGB0)) {
5285 /* parser/parser_prod.nit:918 */
5286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5287 if (UNTAG_Bool(REGB0)) {
5288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 918);
5289 }
5290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5291 /* parser/parser_prod.nit:919 */
5292 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*/;
5293 if (UNTAG_Bool(REGB0)) {
5294 } else {
5295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 919);
5296 }
5297 /* parser/parser_prod.nit:920 */
5298 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
5299 } else {
5300 /* parser/parser_prod.nit:922 */
5301 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 922);
5302 }
5303 /* parser/parser_prod.nit:924 */
5304 goto label1;
5305 }
5306 /* parser/parser_prod.nit:926 */
5307 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
5308 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5309 if (UNTAG_Bool(REGB0)) {
5310 } else {
5311 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5312 if (UNTAG_Bool(REGB1)) {
5313 REGB1 = TAG_Bool(0);
5314 REGB0 = REGB1;
5315 } else {
5316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5317 REGB0 = REGB1;
5318 }
5319 }
5320 if (UNTAG_Bool(REGB0)) {
5321 /* parser/parser_prod.nit:927 */
5322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5323 if (UNTAG_Bool(REGB0)) {
5324 } else {
5325 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5326 if (UNTAG_Bool(REGB1)) {
5327 REGB1 = TAG_Bool(0);
5328 REGB0 = REGB1;
5329 } else {
5330 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5331 REGB0 = REGB1;
5332 }
5333 }
5334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5335 if (UNTAG_Bool(REGB0)) {
5336 /* parser/parser_prod.nit:928 */
5337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5338 if (UNTAG_Bool(REGB0)) {
5339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 928);
5340 }
5341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5342 /* parser/parser_prod.nit:929 */
5343 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*/;
5344 if (UNTAG_Bool(REGB0)) {
5345 } else {
5346 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 929);
5347 }
5348 /* parser/parser_prod.nit:930 */
5349 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
5350 } else {
5351 /* parser/parser_prod.nit:932 */
5352 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
5353 }
5354 /* parser/parser_prod.nit:934 */
5355 goto label1;
5356 }
5357 label1: while(0);
5358 stack_frame_head = fra.me.prev;
5359 return;
5360 }
5361 static const char LOCATE_parser___parser_prod___AFormaldef___visit_all[] = "parser_prod::AFormaldef::(parser_prod::ANode::visit_all)";
5362 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
5363 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5364 val_t REGB0;
5365 val_t REGB1;
5366 val_t tmp;
5367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5368 fra.me.file = LOCATE_parser___parser_prod;
5369 fra.me.line = 938;
5370 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
5371 fra.me.has_broke = 0;
5372 fra.me.REG_size = 4;
5373 fra.me.nitni_local_ref_head = NULL;
5374 fra.me.REG[0] = NIT_NULL;
5375 fra.me.REG[1] = NIT_NULL;
5376 fra.me.REG[2] = NIT_NULL;
5377 fra.me.REG[3] = NIT_NULL;
5378 fra.me.REG[0] = p0;
5379 fra.me.REG[1] = p1;
5380 /* parser/parser_prod.nit:938 */
5381 fra.me.REG[2] = fra.me.REG[0];
5382 /* parser/parser_prod.nit:940 */
5383 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
5384 if (UNTAG_Bool(REGB0)) {
5385 } else {
5386 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 940);
5387 }
5388 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
5389 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5390 /* parser/parser_prod.nit:941 */
5391 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
5392 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5393 if (UNTAG_Bool(REGB0)) {
5394 } else {
5395 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5396 if (UNTAG_Bool(REGB1)) {
5397 REGB1 = TAG_Bool(0);
5398 REGB0 = REGB1;
5399 } else {
5400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5401 REGB0 = REGB1;
5402 }
5403 }
5404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5405 if (UNTAG_Bool(REGB0)) {
5406 /* parser/parser_prod.nit:942 */
5407 fra.me.REG[2] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
5408 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*/;
5409 if (UNTAG_Bool(REGB0)) {
5410 } else {
5411 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 942);
5412 }
5413 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5414 }
5415 stack_frame_head = fra.me.prev;
5416 return;
5417 }
5418 static const char LOCATE_parser___parser_prod___ASuperclass___empty_init[] = "parser_prod::ASuperclass::empty_init";
5419 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
5420 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5421 struct {struct stack_frame_t me;} fra;
5422 val_t tmp;
5423 if (init_table[itpos35]) return;
5424 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5425 fra.me.file = LOCATE_parser___parser_prod;
5426 fra.me.line = 947;
5427 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
5428 fra.me.has_broke = 0;
5429 fra.me.REG_size = 1;
5430 fra.me.nitni_local_ref_head = NULL;
5431 fra.me.REG[0] = NIT_NULL;
5432 fra.me.REG[0] = p0;
5433 stack_frame_head = fra.me.prev;
5434 init_table[itpos35] = 1;
5435 return;
5436 }
5437 static const char LOCATE_parser___parser_prod___ASuperclass___init_asuperclass[] = "parser_prod::ASuperclass::init_asuperclass";
5438 void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
5439 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5440 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5441 val_t REGB0;
5442 val_t REGB1;
5443 val_t tmp;
5444 if (init_table[itpos36]) return;
5445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5446 fra.me.file = LOCATE_parser___parser_prod;
5447 fra.me.line = 949;
5448 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
5449 fra.me.has_broke = 0;
5450 fra.me.REG_size = 5;
5451 fra.me.nitni_local_ref_head = NULL;
5452 fra.me.REG[0] = NIT_NULL;
5453 fra.me.REG[1] = NIT_NULL;
5454 fra.me.REG[2] = NIT_NULL;
5455 fra.me.REG[3] = NIT_NULL;
5456 fra.me.REG[4] = NIT_NULL;
5457 fra.me.REG[0] = p0;
5458 fra.me.REG[1] = p1;
5459 fra.me.REG[2] = p2;
5460 fra.me.REG[3] = p3;
5461 /* parser/parser_prod.nit:949 */
5462 fra.me.REG[4] = fra.me.REG[0];
5463 /* parser/parser_prod.nit:955 */
5464 CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
5465 /* parser/parser_prod.nit:956 */
5466 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[4]) = fra.me.REG[1];
5467 /* parser/parser_prod.nit:957 */
5468 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5469 if (UNTAG_Bool(REGB0)) {
5470 } else {
5471 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5472 if (UNTAG_Bool(REGB1)) {
5473 REGB1 = TAG_Bool(0);
5474 REGB0 = REGB1;
5475 } else {
5476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5477 REGB0 = REGB1;
5478 }
5479 }
5480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5481 if (UNTAG_Bool(REGB0)) {
5482 /* parser/parser_prod.nit:958 */
5483 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5484 if (UNTAG_Bool(REGB0)) {
5485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 958);
5486 }
5487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5488 }
5489 /* parser/parser_prod.nit:960 */
5490 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
5491 /* parser/parser_prod.nit:961 */
5492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5493 if (UNTAG_Bool(REGB0)) {
5494 } else {
5495 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5496 if (UNTAG_Bool(REGB1)) {
5497 REGB1 = TAG_Bool(0);
5498 REGB0 = REGB1;
5499 } else {
5500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5501 REGB0 = REGB1;
5502 }
5503 }
5504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5505 if (UNTAG_Bool(REGB0)) {
5506 /* parser/parser_prod.nit:962 */
5507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5508 if (UNTAG_Bool(REGB0)) {
5509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 962);
5510 }
5511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5512 }
5513 /* parser/parser_prod.nit:964 */
5514 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
5515 if (UNTAG_Bool(REGB0)) {
5516 } else {
5517 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 964);
5518 }
5519 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[3];
5520 /* parser/parser_prod.nit:965 */
5521 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5522 if (UNTAG_Bool(REGB0)) {
5523 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 965);
5524 }
5525 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5526 stack_frame_head = fra.me.prev;
5527 init_table[itpos36] = 1;
5528 return;
5529 }
5530 static const char LOCATE_parser___parser_prod___ASuperclass___replace_child[] = "parser_prod::ASuperclass::(parser_prod::ANode::replace_child)";
5531 void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
5532 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5533 val_t REGB0;
5534 val_t REGB1;
5535 val_t tmp;
5536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5537 fra.me.file = LOCATE_parser___parser_prod;
5538 fra.me.line = 968;
5539 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
5540 fra.me.has_broke = 0;
5541 fra.me.REG_size = 4;
5542 fra.me.nitni_local_ref_head = NULL;
5543 fra.me.REG[0] = NIT_NULL;
5544 fra.me.REG[1] = NIT_NULL;
5545 fra.me.REG[2] = NIT_NULL;
5546 fra.me.REG[3] = NIT_NULL;
5547 fra.me.REG[0] = p0;
5548 fra.me.REG[1] = p1;
5549 fra.me.REG[2] = p2;
5550 /* parser/parser_prod.nit:970 */
5551 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
5552 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5553 if (UNTAG_Bool(REGB0)) {
5554 } else {
5555 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5556 if (UNTAG_Bool(REGB1)) {
5557 REGB1 = TAG_Bool(0);
5558 REGB0 = REGB1;
5559 } else {
5560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5561 REGB0 = REGB1;
5562 }
5563 }
5564 if (UNTAG_Bool(REGB0)) {
5565 /* parser/parser_prod.nit:971 */
5566 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5567 if (UNTAG_Bool(REGB0)) {
5568 } else {
5569 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5570 if (UNTAG_Bool(REGB1)) {
5571 REGB1 = TAG_Bool(0);
5572 REGB0 = REGB1;
5573 } else {
5574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5575 REGB0 = REGB1;
5576 }
5577 }
5578 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5579 if (UNTAG_Bool(REGB0)) {
5580 /* parser/parser_prod.nit:972 */
5581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5582 if (UNTAG_Bool(REGB0)) {
5583 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 972);
5584 }
5585 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5586 /* parser/parser_prod.nit:973 */
5587 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*/;
5588 if (UNTAG_Bool(REGB0)) {
5589 } else {
5590 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 973);
5591 }
5592 /* parser/parser_prod.nit:974 */
5593 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
5594 } else {
5595 /* parser/parser_prod.nit:976 */
5596 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
5597 }
5598 /* parser/parser_prod.nit:978 */
5599 goto label1;
5600 }
5601 /* parser/parser_prod.nit:980 */
5602 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
5603 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5604 if (UNTAG_Bool(REGB0)) {
5605 } else {
5606 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5607 if (UNTAG_Bool(REGB1)) {
5608 REGB1 = TAG_Bool(0);
5609 REGB0 = REGB1;
5610 } else {
5611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5612 REGB0 = REGB1;
5613 }
5614 }
5615 if (UNTAG_Bool(REGB0)) {
5616 /* parser/parser_prod.nit:981 */
5617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5618 if (UNTAG_Bool(REGB0)) {
5619 } else {
5620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5621 if (UNTAG_Bool(REGB1)) {
5622 REGB1 = TAG_Bool(0);
5623 REGB0 = REGB1;
5624 } else {
5625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5626 REGB0 = REGB1;
5627 }
5628 }
5629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5630 if (UNTAG_Bool(REGB0)) {
5631 /* parser/parser_prod.nit:982 */
5632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5633 if (UNTAG_Bool(REGB0)) {
5634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 982);
5635 }
5636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5637 /* parser/parser_prod.nit:983 */
5638 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*/;
5639 if (UNTAG_Bool(REGB0)) {
5640 } else {
5641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 983);
5642 }
5643 /* parser/parser_prod.nit:984 */
5644 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
5645 } else {
5646 /* parser/parser_prod.nit:986 */
5647 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
5648 }
5649 /* parser/parser_prod.nit:988 */
5650 goto label1;
5651 }
5652 /* parser/parser_prod.nit:990 */
5653 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
5654 if (UNTAG_Bool(REGB0)) {
5655 } else {
5656 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 990);
5657 }
5658 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
5659 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5660 if (UNTAG_Bool(REGB0)) {
5661 } else {
5662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5663 REGB0 = REGB1;
5664 }
5665 if (UNTAG_Bool(REGB0)) {
5666 /* parser/parser_prod.nit:991 */
5667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5668 if (UNTAG_Bool(REGB0)) {
5669 } else {
5670 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5671 if (UNTAG_Bool(REGB1)) {
5672 REGB1 = TAG_Bool(0);
5673 REGB0 = REGB1;
5674 } else {
5675 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5676 REGB0 = REGB1;
5677 }
5678 }
5679 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5680 if (UNTAG_Bool(REGB0)) {
5681 /* parser/parser_prod.nit:992 */
5682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5683 if (UNTAG_Bool(REGB0)) {
5684 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 992);
5685 }
5686 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5687 /* parser/parser_prod.nit:993 */
5688 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*/;
5689 if (UNTAG_Bool(REGB0)) {
5690 } else {
5691 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 993);
5692 }
5693 /* parser/parser_prod.nit:994 */
5694 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
5695 } else {
5696 /* parser/parser_prod.nit:996 */
5697 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 996);
5698 }
5699 /* parser/parser_prod.nit:998 */
5700 goto label1;
5701 }
5702 label1: while(0);
5703 stack_frame_head = fra.me.prev;
5704 return;
5705 }
5706 static const char LOCATE_parser___parser_prod___ASuperclass___visit_all[] = "parser_prod::ASuperclass::(parser_prod::ANode::visit_all)";
5707 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
5708 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5709 val_t REGB0;
5710 val_t REGB1;
5711 val_t tmp;
5712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5713 fra.me.file = LOCATE_parser___parser_prod;
5714 fra.me.line = 1002;
5715 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
5716 fra.me.has_broke = 0;
5717 fra.me.REG_size = 4;
5718 fra.me.nitni_local_ref_head = NULL;
5719 fra.me.REG[0] = NIT_NULL;
5720 fra.me.REG[1] = NIT_NULL;
5721 fra.me.REG[2] = NIT_NULL;
5722 fra.me.REG[3] = NIT_NULL;
5723 fra.me.REG[0] = p0;
5724 fra.me.REG[1] = p1;
5725 /* parser/parser_prod.nit:1002 */
5726 fra.me.REG[2] = fra.me.REG[0];
5727 /* parser/parser_prod.nit:1004 */
5728 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5729 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5730 if (UNTAG_Bool(REGB0)) {
5731 } else {
5732 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5733 if (UNTAG_Bool(REGB1)) {
5734 REGB1 = TAG_Bool(0);
5735 REGB0 = REGB1;
5736 } else {
5737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5738 REGB0 = REGB1;
5739 }
5740 }
5741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5742 if (UNTAG_Bool(REGB0)) {
5743 /* parser/parser_prod.nit:1005 */
5744 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5745 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*/;
5746 if (UNTAG_Bool(REGB0)) {
5747 } else {
5748 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1005);
5749 }
5750 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5751 }
5752 /* parser/parser_prod.nit:1007 */
5753 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5754 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5755 if (UNTAG_Bool(REGB0)) {
5756 } else {
5757 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5758 if (UNTAG_Bool(REGB1)) {
5759 REGB1 = TAG_Bool(0);
5760 REGB0 = REGB1;
5761 } else {
5762 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5763 REGB0 = REGB1;
5764 }
5765 }
5766 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5767 if (UNTAG_Bool(REGB0)) {
5768 /* parser/parser_prod.nit:1008 */
5769 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5770 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*/;
5771 if (UNTAG_Bool(REGB0)) {
5772 } else {
5773 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1008);
5774 }
5775 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5776 }
5777 /* parser/parser_prod.nit:1010 */
5778 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
5779 if (UNTAG_Bool(REGB0)) {
5780 } else {
5781 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 1010);
5782 }
5783 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
5784 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5785 stack_frame_head = fra.me.prev;
5786 return;
5787 }
5788 static const char LOCATE_parser___parser_prod___AAttrPropdef___empty_init[] = "parser_prod::AAttrPropdef::empty_init";
5789 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
5790 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5791 struct {struct stack_frame_t me;} fra;
5792 val_t tmp;
5793 if (init_table[itpos37]) return;
5794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5795 fra.me.file = LOCATE_parser___parser_prod;
5796 fra.me.line = 1014;
5797 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
5798 fra.me.has_broke = 0;
5799 fra.me.REG_size = 1;
5800 fra.me.nitni_local_ref_head = NULL;
5801 fra.me.REG[0] = NIT_NULL;
5802 fra.me.REG[0] = p0;
5803 stack_frame_head = fra.me.prev;
5804 init_table[itpos37] = 1;
5805 return;
5806 }
5807 static const char LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef[] = "parser_prod::AAttrPropdef::init_aattrpropdef";
5808 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){
5809 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5810 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
5811 val_t REGB0;
5812 val_t REGB1;
5813 val_t tmp;
5814 if (init_table[itpos38]) return;
5815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5816 fra.me.file = LOCATE_parser___parser_prod;
5817 fra.me.line = 1016;
5818 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
5819 fra.me.has_broke = 0;
5820 fra.me.REG_size = 12;
5821 fra.me.nitni_local_ref_head = NULL;
5822 fra.me.REG[0] = NIT_NULL;
5823 fra.me.REG[1] = NIT_NULL;
5824 fra.me.REG[2] = NIT_NULL;
5825 fra.me.REG[3] = NIT_NULL;
5826 fra.me.REG[4] = NIT_NULL;
5827 fra.me.REG[5] = NIT_NULL;
5828 fra.me.REG[6] = NIT_NULL;
5829 fra.me.REG[7] = NIT_NULL;
5830 fra.me.REG[8] = NIT_NULL;
5831 fra.me.REG[9] = NIT_NULL;
5832 fra.me.REG[10] = NIT_NULL;
5833 fra.me.REG[11] = NIT_NULL;
5834 fra.me.REG[0] = p0;
5835 fra.me.REG[1] = p1;
5836 fra.me.REG[2] = p2;
5837 fra.me.REG[3] = p3;
5838 fra.me.REG[4] = p4;
5839 fra.me.REG[5] = p5;
5840 fra.me.REG[6] = p6;
5841 fra.me.REG[7] = p7;
5842 fra.me.REG[8] = p8;
5843 fra.me.REG[9] = p9;
5844 fra.me.REG[10] = p10;
5845 /* parser/parser_prod.nit:1016 */
5846 fra.me.REG[11] = fra.me.REG[0];
5847 /* parser/parser_prod.nit:1029 */
5848 CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
5849 /* parser/parser_prod.nit:1030 */
5850 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
5851 /* parser/parser_prod.nit:1031 */
5852 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5853 if (UNTAG_Bool(REGB0)) {
5854 } else {
5855 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5856 if (UNTAG_Bool(REGB1)) {
5857 REGB1 = TAG_Bool(0);
5858 REGB0 = REGB1;
5859 } else {
5860 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5861 REGB0 = REGB1;
5862 }
5863 }
5864 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5865 if (UNTAG_Bool(REGB0)) {
5866 /* parser/parser_prod.nit:1032 */
5867 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5868 if (UNTAG_Bool(REGB0)) {
5869 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1032);
5870 }
5871 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
5872 }
5873 /* parser/parser_prod.nit:1034 */
5874 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[11]) = fra.me.REG[2];
5875 /* parser/parser_prod.nit:1035 */
5876 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5877 if (UNTAG_Bool(REGB0)) {
5878 } else {
5879 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5880 if (UNTAG_Bool(REGB1)) {
5881 REGB1 = TAG_Bool(0);
5882 REGB0 = REGB1;
5883 } else {
5884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5885 REGB0 = REGB1;
5886 }
5887 }
5888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5889 if (UNTAG_Bool(REGB0)) {
5890 /* parser/parser_prod.nit:1036 */
5891 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5892 if (UNTAG_Bool(REGB0)) {
5893 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1036);
5894 }
5895 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
5896 }
5897 /* parser/parser_prod.nit:1038 */
5898 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[11]) = fra.me.REG[3];
5899 /* parser/parser_prod.nit:1039 */
5900 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5901 if (UNTAG_Bool(REGB0)) {
5902 } else {
5903 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5904 if (UNTAG_Bool(REGB1)) {
5905 REGB1 = TAG_Bool(0);
5906 REGB0 = REGB1;
5907 } else {
5908 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5909 REGB0 = REGB1;
5910 }
5911 }
5912 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5913 if (UNTAG_Bool(REGB0)) {
5914 /* parser/parser_prod.nit:1040 */
5915 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5916 if (UNTAG_Bool(REGB0)) {
5917 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1040);
5918 }
5919 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
5920 }
5921 /* parser/parser_prod.nit:1042 */
5922 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[4];
5923 /* parser/parser_prod.nit:1043 */
5924 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5925 if (UNTAG_Bool(REGB0)) {
5926 } else {
5927 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5928 if (UNTAG_Bool(REGB1)) {
5929 REGB1 = TAG_Bool(0);
5930 REGB0 = REGB1;
5931 } else {
5932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5933 REGB0 = REGB1;
5934 }
5935 }
5936 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5937 if (UNTAG_Bool(REGB0)) {
5938 /* parser/parser_prod.nit:1044 */
5939 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5940 if (UNTAG_Bool(REGB0)) {
5941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1044);
5942 }
5943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
5944 }
5945 /* parser/parser_prod.nit:1046 */
5946 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
5947 if (UNTAG_Bool(REGB0)) {
5948 } else {
5949 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1046);
5950 }
5951 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[11]) = fra.me.REG[5];
5952 /* parser/parser_prod.nit:1047 */
5953 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5954 if (UNTAG_Bool(REGB0)) {
5955 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1047);
5956 }
5957 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
5958 /* parser/parser_prod.nit:1048 */
5959 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
5960 if (UNTAG_Bool(REGB0)) {
5961 } else {
5962 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1048);
5963 }
5964 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[11]) = fra.me.REG[6];
5965 /* parser/parser_prod.nit:1049 */
5966 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5967 if (UNTAG_Bool(REGB0)) {
5968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1049);
5969 }
5970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
5971 /* parser/parser_prod.nit:1050 */
5972 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[11]) = fra.me.REG[7];
5973 /* parser/parser_prod.nit:1051 */
5974 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5975 if (UNTAG_Bool(REGB0)) {
5976 } else {
5977 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5978 if (UNTAG_Bool(REGB1)) {
5979 REGB1 = TAG_Bool(0);
5980 REGB0 = REGB1;
5981 } else {
5982 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5983 REGB0 = REGB1;
5984 }
5985 }
5986 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5987 if (UNTAG_Bool(REGB0)) {
5988 /* parser/parser_prod.nit:1052 */
5989 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5990 if (UNTAG_Bool(REGB0)) {
5991 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1052);
5992 }
5993 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
5994 }
5995 /* parser/parser_prod.nit:1054 */
5996 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[11]) = fra.me.REG[8];
5997 /* parser/parser_prod.nit:1055 */
5998 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5999 if (UNTAG_Bool(REGB0)) {
6000 } else {
6001 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6002 if (UNTAG_Bool(REGB1)) {
6003 REGB1 = TAG_Bool(0);
6004 REGB0 = REGB1;
6005 } else {
6006 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6007 REGB0 = REGB1;
6008 }
6009 }
6010 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6011 if (UNTAG_Bool(REGB0)) {
6012 /* parser/parser_prod.nit:1056 */
6013 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6014 if (UNTAG_Bool(REGB0)) {
6015 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1056);
6016 }
6017 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
6018 }
6019 /* parser/parser_prod.nit:1058 */
6020 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[11]) = fra.me.REG[9];
6021 /* parser/parser_prod.nit:1059 */
6022 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
6023 if (UNTAG_Bool(REGB0)) {
6024 } else {
6025 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
6026 if (UNTAG_Bool(REGB1)) {
6027 REGB1 = TAG_Bool(0);
6028 REGB0 = REGB1;
6029 } else {
6030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
6031 REGB0 = REGB1;
6032 }
6033 }
6034 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6035 if (UNTAG_Bool(REGB0)) {
6036 /* parser/parser_prod.nit:1060 */
6037 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
6038 if (UNTAG_Bool(REGB0)) {
6039 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1060);
6040 }
6041 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11]);
6042 }
6043 /* parser/parser_prod.nit:1062 */
6044 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[11]) = fra.me.REG[10];
6045 /* parser/parser_prod.nit:1063 */
6046 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6047 if (UNTAG_Bool(REGB0)) {
6048 } else {
6049 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6050 if (UNTAG_Bool(REGB1)) {
6051 REGB1 = TAG_Bool(0);
6052 REGB0 = REGB1;
6053 } else {
6054 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6055 REGB0 = REGB1;
6056 }
6057 }
6058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6059 if (UNTAG_Bool(REGB0)) {
6060 /* parser/parser_prod.nit:1064 */
6061 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6062 if (UNTAG_Bool(REGB0)) {
6063 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1064);
6064 }
6065 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
6066 }
6067 stack_frame_head = fra.me.prev;
6068 init_table[itpos38] = 1;
6069 return;
6070 }
6071 static const char LOCATE_parser___parser_prod___AAttrPropdef___replace_child[] = "parser_prod::AAttrPropdef::(parser_prod::ANode::replace_child)";
6072 void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6073 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6074 val_t REGB0;
6075 val_t REGB1;
6076 val_t tmp;
6077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6078 fra.me.file = LOCATE_parser___parser_prod;
6079 fra.me.line = 1068;
6080 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
6081 fra.me.has_broke = 0;
6082 fra.me.REG_size = 4;
6083 fra.me.nitni_local_ref_head = NULL;
6084 fra.me.REG[0] = NIT_NULL;
6085 fra.me.REG[1] = NIT_NULL;
6086 fra.me.REG[2] = NIT_NULL;
6087 fra.me.REG[3] = NIT_NULL;
6088 fra.me.REG[0] = p0;
6089 fra.me.REG[1] = p1;
6090 fra.me.REG[2] = p2;
6091 /* parser/parser_prod.nit:1070 */
6092 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6093 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6094 if (UNTAG_Bool(REGB0)) {
6095 } else {
6096 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6097 if (UNTAG_Bool(REGB1)) {
6098 REGB1 = TAG_Bool(0);
6099 REGB0 = REGB1;
6100 } else {
6101 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6102 REGB0 = REGB1;
6103 }
6104 }
6105 if (UNTAG_Bool(REGB0)) {
6106 /* parser/parser_prod.nit:1071 */
6107 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6108 if (UNTAG_Bool(REGB0)) {
6109 } else {
6110 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6111 if (UNTAG_Bool(REGB1)) {
6112 REGB1 = TAG_Bool(0);
6113 REGB0 = REGB1;
6114 } else {
6115 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6116 REGB0 = REGB1;
6117 }
6118 }
6119 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6120 if (UNTAG_Bool(REGB0)) {
6121 /* parser/parser_prod.nit:1072 */
6122 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6123 if (UNTAG_Bool(REGB0)) {
6124 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1072);
6125 }
6126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6127 /* parser/parser_prod.nit:1073 */
6128 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*/;
6129 if (UNTAG_Bool(REGB0)) {
6130 } else {
6131 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1073);
6132 }
6133 /* parser/parser_prod.nit:1074 */
6134 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6135 } else {
6136 /* parser/parser_prod.nit:1076 */
6137 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6138 }
6139 /* parser/parser_prod.nit:1078 */
6140 goto label1;
6141 }
6142 /* parser/parser_prod.nit:1080 */
6143 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
6144 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6145 if (UNTAG_Bool(REGB0)) {
6146 } else {
6147 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6148 if (UNTAG_Bool(REGB1)) {
6149 REGB1 = TAG_Bool(0);
6150 REGB0 = REGB1;
6151 } else {
6152 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6153 REGB0 = REGB1;
6154 }
6155 }
6156 if (UNTAG_Bool(REGB0)) {
6157 /* parser/parser_prod.nit:1081 */
6158 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6159 if (UNTAG_Bool(REGB0)) {
6160 } else {
6161 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6162 if (UNTAG_Bool(REGB1)) {
6163 REGB1 = TAG_Bool(0);
6164 REGB0 = REGB1;
6165 } else {
6166 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6167 REGB0 = REGB1;
6168 }
6169 }
6170 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6171 if (UNTAG_Bool(REGB0)) {
6172 /* parser/parser_prod.nit:1082 */
6173 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6174 if (UNTAG_Bool(REGB0)) {
6175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1082);
6176 }
6177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6178 /* parser/parser_prod.nit:1083 */
6179 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*/;
6180 if (UNTAG_Bool(REGB0)) {
6181 } else {
6182 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1083);
6183 }
6184 /* parser/parser_prod.nit:1084 */
6185 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
6186 } else {
6187 /* parser/parser_prod.nit:1086 */
6188 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
6189 }
6190 /* parser/parser_prod.nit:1088 */
6191 goto label1;
6192 }
6193 /* parser/parser_prod.nit:1090 */
6194 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
6195 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6196 if (UNTAG_Bool(REGB0)) {
6197 } else {
6198 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6199 if (UNTAG_Bool(REGB1)) {
6200 REGB1 = TAG_Bool(0);
6201 REGB0 = REGB1;
6202 } else {
6203 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6204 REGB0 = REGB1;
6205 }
6206 }
6207 if (UNTAG_Bool(REGB0)) {
6208 /* parser/parser_prod.nit:1091 */
6209 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6210 if (UNTAG_Bool(REGB0)) {
6211 } else {
6212 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6213 if (UNTAG_Bool(REGB1)) {
6214 REGB1 = TAG_Bool(0);
6215 REGB0 = REGB1;
6216 } else {
6217 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6218 REGB0 = REGB1;
6219 }
6220 }
6221 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6222 if (UNTAG_Bool(REGB0)) {
6223 /* parser/parser_prod.nit:1092 */
6224 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6225 if (UNTAG_Bool(REGB0)) {
6226 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1092);
6227 }
6228 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6229 /* parser/parser_prod.nit:1093 */
6230 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*/;
6231 if (UNTAG_Bool(REGB0)) {
6232 } else {
6233 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1093);
6234 }
6235 /* parser/parser_prod.nit:1094 */
6236 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
6237 } else {
6238 /* parser/parser_prod.nit:1096 */
6239 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
6240 }
6241 /* parser/parser_prod.nit:1098 */
6242 goto label1;
6243 }
6244 /* parser/parser_prod.nit:1100 */
6245 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
6246 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6247 if (UNTAG_Bool(REGB0)) {
6248 } else {
6249 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6250 if (UNTAG_Bool(REGB1)) {
6251 REGB1 = TAG_Bool(0);
6252 REGB0 = REGB1;
6253 } else {
6254 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6255 REGB0 = REGB1;
6256 }
6257 }
6258 if (UNTAG_Bool(REGB0)) {
6259 /* parser/parser_prod.nit:1101 */
6260 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6261 if (UNTAG_Bool(REGB0)) {
6262 } else {
6263 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6264 if (UNTAG_Bool(REGB1)) {
6265 REGB1 = TAG_Bool(0);
6266 REGB0 = REGB1;
6267 } else {
6268 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6269 REGB0 = REGB1;
6270 }
6271 }
6272 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6273 if (UNTAG_Bool(REGB0)) {
6274 /* parser/parser_prod.nit:1102 */
6275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6276 if (UNTAG_Bool(REGB0)) {
6277 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1102);
6278 }
6279 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6280 /* parser/parser_prod.nit:1103 */
6281 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*/;
6282 if (UNTAG_Bool(REGB0)) {
6283 } else {
6284 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1103);
6285 }
6286 /* parser/parser_prod.nit:1104 */
6287 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6288 } else {
6289 /* parser/parser_prod.nit:1106 */
6290 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6291 }
6292 /* parser/parser_prod.nit:1108 */
6293 goto label1;
6294 }
6295 /* parser/parser_prod.nit:1110 */
6296 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
6297 if (UNTAG_Bool(REGB0)) {
6298 } else {
6299 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1110);
6300 }
6301 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
6302 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6303 if (UNTAG_Bool(REGB0)) {
6304 } else {
6305 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6306 REGB0 = REGB1;
6307 }
6308 if (UNTAG_Bool(REGB0)) {
6309 /* parser/parser_prod.nit:1111 */
6310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6311 if (UNTAG_Bool(REGB0)) {
6312 } else {
6313 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6314 if (UNTAG_Bool(REGB1)) {
6315 REGB1 = TAG_Bool(0);
6316 REGB0 = REGB1;
6317 } else {
6318 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6319 REGB0 = REGB1;
6320 }
6321 }
6322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6323 if (UNTAG_Bool(REGB0)) {
6324 /* parser/parser_prod.nit:1112 */
6325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6326 if (UNTAG_Bool(REGB0)) {
6327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1112);
6328 }
6329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6330 /* parser/parser_prod.nit:1113 */
6331 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*/;
6332 if (UNTAG_Bool(REGB0)) {
6333 } else {
6334 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1113);
6335 }
6336 /* parser/parser_prod.nit:1114 */
6337 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6338 } else {
6339 /* parser/parser_prod.nit:1116 */
6340 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1116);
6341 }
6342 /* parser/parser_prod.nit:1118 */
6343 goto label1;
6344 }
6345 /* parser/parser_prod.nit:1120 */
6346 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
6347 if (UNTAG_Bool(REGB0)) {
6348 } else {
6349 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1120);
6350 }
6351 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
6352 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6353 if (UNTAG_Bool(REGB0)) {
6354 } else {
6355 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6356 REGB0 = REGB1;
6357 }
6358 if (UNTAG_Bool(REGB0)) {
6359 /* parser/parser_prod.nit:1121 */
6360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6361 if (UNTAG_Bool(REGB0)) {
6362 } else {
6363 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6364 if (UNTAG_Bool(REGB1)) {
6365 REGB1 = TAG_Bool(0);
6366 REGB0 = REGB1;
6367 } else {
6368 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6369 REGB0 = REGB1;
6370 }
6371 }
6372 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6373 if (UNTAG_Bool(REGB0)) {
6374 /* parser/parser_prod.nit:1122 */
6375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6376 if (UNTAG_Bool(REGB0)) {
6377 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1122);
6378 }
6379 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6380 /* parser/parser_prod.nit:1123 */
6381 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*/;
6382 if (UNTAG_Bool(REGB0)) {
6383 } else {
6384 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1123);
6385 }
6386 /* parser/parser_prod.nit:1124 */
6387 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
6388 } else {
6389 /* parser/parser_prod.nit:1126 */
6390 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1126);
6391 }
6392 /* parser/parser_prod.nit:1128 */
6393 goto label1;
6394 }
6395 /* parser/parser_prod.nit:1130 */
6396 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
6397 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6398 if (UNTAG_Bool(REGB0)) {
6399 } else {
6400 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6401 if (UNTAG_Bool(REGB1)) {
6402 REGB1 = TAG_Bool(0);
6403 REGB0 = REGB1;
6404 } else {
6405 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6406 REGB0 = REGB1;
6407 }
6408 }
6409 if (UNTAG_Bool(REGB0)) {
6410 /* parser/parser_prod.nit:1131 */
6411 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6412 if (UNTAG_Bool(REGB0)) {
6413 } else {
6414 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6415 if (UNTAG_Bool(REGB1)) {
6416 REGB1 = TAG_Bool(0);
6417 REGB0 = REGB1;
6418 } else {
6419 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6420 REGB0 = REGB1;
6421 }
6422 }
6423 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6424 if (UNTAG_Bool(REGB0)) {
6425 /* parser/parser_prod.nit:1132 */
6426 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6427 if (UNTAG_Bool(REGB0)) {
6428 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1132);
6429 }
6430 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6431 /* parser/parser_prod.nit:1133 */
6432 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*/;
6433 if (UNTAG_Bool(REGB0)) {
6434 } else {
6435 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1133);
6436 }
6437 /* parser/parser_prod.nit:1134 */
6438 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
6439 } else {
6440 /* parser/parser_prod.nit:1136 */
6441 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
6442 }
6443 /* parser/parser_prod.nit:1138 */
6444 goto label1;
6445 }
6446 /* parser/parser_prod.nit:1140 */
6447 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
6448 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6449 if (UNTAG_Bool(REGB0)) {
6450 } else {
6451 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6452 if (UNTAG_Bool(REGB1)) {
6453 REGB1 = TAG_Bool(0);
6454 REGB0 = REGB1;
6455 } else {
6456 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6457 REGB0 = REGB1;
6458 }
6459 }
6460 if (UNTAG_Bool(REGB0)) {
6461 /* parser/parser_prod.nit:1141 */
6462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6463 if (UNTAG_Bool(REGB0)) {
6464 } else {
6465 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6466 if (UNTAG_Bool(REGB1)) {
6467 REGB1 = TAG_Bool(0);
6468 REGB0 = REGB1;
6469 } else {
6470 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6471 REGB0 = REGB1;
6472 }
6473 }
6474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6475 if (UNTAG_Bool(REGB0)) {
6476 /* parser/parser_prod.nit:1142 */
6477 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6478 if (UNTAG_Bool(REGB0)) {
6479 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1142);
6480 }
6481 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6482 /* parser/parser_prod.nit:1143 */
6483 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*/;
6484 if (UNTAG_Bool(REGB0)) {
6485 } else {
6486 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1143);
6487 }
6488 /* parser/parser_prod.nit:1144 */
6489 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
6490 } else {
6491 /* parser/parser_prod.nit:1146 */
6492 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
6493 }
6494 /* parser/parser_prod.nit:1148 */
6495 goto label1;
6496 }
6497 /* parser/parser_prod.nit:1150 */
6498 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
6499 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6500 if (UNTAG_Bool(REGB0)) {
6501 } else {
6502 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6503 if (UNTAG_Bool(REGB1)) {
6504 REGB1 = TAG_Bool(0);
6505 REGB0 = REGB1;
6506 } else {
6507 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6508 REGB0 = REGB1;
6509 }
6510 }
6511 if (UNTAG_Bool(REGB0)) {
6512 /* parser/parser_prod.nit:1151 */
6513 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6514 if (UNTAG_Bool(REGB0)) {
6515 } else {
6516 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6517 if (UNTAG_Bool(REGB1)) {
6518 REGB1 = TAG_Bool(0);
6519 REGB0 = REGB1;
6520 } else {
6521 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6522 REGB0 = REGB1;
6523 }
6524 }
6525 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6526 if (UNTAG_Bool(REGB0)) {
6527 /* parser/parser_prod.nit:1152 */
6528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6529 if (UNTAG_Bool(REGB0)) {
6530 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1152);
6531 }
6532 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6533 /* parser/parser_prod.nit:1153 */
6534 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*/;
6535 if (UNTAG_Bool(REGB0)) {
6536 } else {
6537 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1153);
6538 }
6539 /* parser/parser_prod.nit:1154 */
6540 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
6541 } else {
6542 /* parser/parser_prod.nit:1156 */
6543 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
6544 }
6545 /* parser/parser_prod.nit:1158 */
6546 goto label1;
6547 }
6548 /* parser/parser_prod.nit:1160 */
6549 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
6550 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6551 if (UNTAG_Bool(REGB0)) {
6552 } else {
6553 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6554 if (UNTAG_Bool(REGB1)) {
6555 REGB1 = TAG_Bool(0);
6556 REGB0 = REGB1;
6557 } else {
6558 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6559 REGB0 = REGB1;
6560 }
6561 }
6562 if (UNTAG_Bool(REGB0)) {
6563 /* parser/parser_prod.nit:1161 */
6564 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6565 if (UNTAG_Bool(REGB0)) {
6566 } else {
6567 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6568 if (UNTAG_Bool(REGB1)) {
6569 REGB1 = TAG_Bool(0);
6570 REGB0 = REGB1;
6571 } else {
6572 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6573 REGB0 = REGB1;
6574 }
6575 }
6576 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6577 if (UNTAG_Bool(REGB0)) {
6578 /* parser/parser_prod.nit:1162 */
6579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6580 if (UNTAG_Bool(REGB0)) {
6581 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1162);
6582 }
6583 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6584 /* parser/parser_prod.nit:1163 */
6585 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6586 if (UNTAG_Bool(REGB0)) {
6587 } else {
6588 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1163);
6589 }
6590 /* parser/parser_prod.nit:1164 */
6591 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
6592 } else {
6593 /* parser/parser_prod.nit:1166 */
6594 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
6595 }
6596 /* parser/parser_prod.nit:1168 */
6597 goto label1;
6598 }
6599 label1: while(0);
6600 stack_frame_head = fra.me.prev;
6601 return;
6602 }
6603 static const char LOCATE_parser___parser_prod___AAttrPropdef___visit_all[] = "parser_prod::AAttrPropdef::(parser_prod::ANode::visit_all)";
6604 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
6605 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6606 val_t REGB0;
6607 val_t REGB1;
6608 val_t tmp;
6609 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6610 fra.me.file = LOCATE_parser___parser_prod;
6611 fra.me.line = 1172;
6612 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
6613 fra.me.has_broke = 0;
6614 fra.me.REG_size = 4;
6615 fra.me.nitni_local_ref_head = NULL;
6616 fra.me.REG[0] = NIT_NULL;
6617 fra.me.REG[1] = NIT_NULL;
6618 fra.me.REG[2] = NIT_NULL;
6619 fra.me.REG[3] = NIT_NULL;
6620 fra.me.REG[0] = p0;
6621 fra.me.REG[1] = p1;
6622 /* parser/parser_prod.nit:1172 */
6623 fra.me.REG[2] = fra.me.REG[0];
6624 /* parser/parser_prod.nit:1174 */
6625 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6626 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6627 if (UNTAG_Bool(REGB0)) {
6628 } else {
6629 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6630 if (UNTAG_Bool(REGB1)) {
6631 REGB1 = TAG_Bool(0);
6632 REGB0 = REGB1;
6633 } else {
6634 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6635 REGB0 = REGB1;
6636 }
6637 }
6638 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6639 if (UNTAG_Bool(REGB0)) {
6640 /* parser/parser_prod.nit:1175 */
6641 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6642 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*/;
6643 if (UNTAG_Bool(REGB0)) {
6644 } else {
6645 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1175);
6646 }
6647 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6648 }
6649 /* parser/parser_prod.nit:1177 */
6650 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6651 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6652 if (UNTAG_Bool(REGB0)) {
6653 } else {
6654 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6655 if (UNTAG_Bool(REGB1)) {
6656 REGB1 = TAG_Bool(0);
6657 REGB0 = REGB1;
6658 } else {
6659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6660 REGB0 = REGB1;
6661 }
6662 }
6663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6664 if (UNTAG_Bool(REGB0)) {
6665 /* parser/parser_prod.nit:1178 */
6666 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6667 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*/;
6668 if (UNTAG_Bool(REGB0)) {
6669 } else {
6670 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1178);
6671 }
6672 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6673 }
6674 /* parser/parser_prod.nit:1180 */
6675 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6676 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6677 if (UNTAG_Bool(REGB0)) {
6678 } else {
6679 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6680 if (UNTAG_Bool(REGB1)) {
6681 REGB1 = TAG_Bool(0);
6682 REGB0 = REGB1;
6683 } else {
6684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6685 REGB0 = REGB1;
6686 }
6687 }
6688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6689 if (UNTAG_Bool(REGB0)) {
6690 /* parser/parser_prod.nit:1181 */
6691 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6692 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*/;
6693 if (UNTAG_Bool(REGB0)) {
6694 } else {
6695 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1181);
6696 }
6697 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6698 }
6699 /* parser/parser_prod.nit:1183 */
6700 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6701 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6702 if (UNTAG_Bool(REGB0)) {
6703 } else {
6704 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6705 if (UNTAG_Bool(REGB1)) {
6706 REGB1 = TAG_Bool(0);
6707 REGB0 = REGB1;
6708 } else {
6709 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6710 REGB0 = REGB1;
6711 }
6712 }
6713 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6714 if (UNTAG_Bool(REGB0)) {
6715 /* parser/parser_prod.nit:1184 */
6716 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6717 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*/;
6718 if (UNTAG_Bool(REGB0)) {
6719 } else {
6720 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1184);
6721 }
6722 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6723 }
6724 /* parser/parser_prod.nit:1186 */
6725 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
6726 if (UNTAG_Bool(REGB0)) {
6727 } else {
6728 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1186);
6729 }
6730 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
6731 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6732 /* parser/parser_prod.nit:1187 */
6733 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
6734 if (UNTAG_Bool(REGB0)) {
6735 } else {
6736 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1187);
6737 }
6738 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
6739 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6740 /* parser/parser_prod.nit:1188 */
6741 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6742 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6743 if (UNTAG_Bool(REGB0)) {
6744 } else {
6745 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6746 if (UNTAG_Bool(REGB1)) {
6747 REGB1 = TAG_Bool(0);
6748 REGB0 = REGB1;
6749 } else {
6750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6751 REGB0 = REGB1;
6752 }
6753 }
6754 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6755 if (UNTAG_Bool(REGB0)) {
6756 /* parser/parser_prod.nit:1189 */
6757 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6758 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*/;
6759 if (UNTAG_Bool(REGB0)) {
6760 } else {
6761 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1189);
6762 }
6763 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6764 }
6765 /* parser/parser_prod.nit:1191 */
6766 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6767 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6768 if (UNTAG_Bool(REGB0)) {
6769 } else {
6770 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6771 if (UNTAG_Bool(REGB1)) {
6772 REGB1 = TAG_Bool(0);
6773 REGB0 = REGB1;
6774 } else {
6775 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6776 REGB0 = REGB1;
6777 }
6778 }
6779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6780 if (UNTAG_Bool(REGB0)) {
6781 /* parser/parser_prod.nit:1192 */
6782 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6783 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*/;
6784 if (UNTAG_Bool(REGB0)) {
6785 } else {
6786 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1192);
6787 }
6788 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6789 }
6790 /* parser/parser_prod.nit:1194 */
6791 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6792 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6793 if (UNTAG_Bool(REGB0)) {
6794 } else {
6795 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6796 if (UNTAG_Bool(REGB1)) {
6797 REGB1 = TAG_Bool(0);
6798 REGB0 = REGB1;
6799 } else {
6800 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6801 REGB0 = REGB1;
6802 }
6803 }
6804 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6805 if (UNTAG_Bool(REGB0)) {
6806 /* parser/parser_prod.nit:1195 */
6807 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6808 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*/;
6809 if (UNTAG_Bool(REGB0)) {
6810 } else {
6811 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1195);
6812 }
6813 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6814 }
6815 /* parser/parser_prod.nit:1197 */
6816 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6817 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6818 if (UNTAG_Bool(REGB0)) {
6819 } else {
6820 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6821 if (UNTAG_Bool(REGB1)) {
6822 REGB1 = TAG_Bool(0);
6823 REGB0 = REGB1;
6824 } else {
6825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6826 REGB0 = REGB1;
6827 }
6828 }
6829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6830 if (UNTAG_Bool(REGB0)) {
6831 /* parser/parser_prod.nit:1198 */
6832 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6833 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6834 if (UNTAG_Bool(REGB0)) {
6835 } else {
6836 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1198);
6837 }
6838 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6839 }
6840 stack_frame_head = fra.me.prev;
6841 return;
6842 }
6843 static const char LOCATE_parser___parser_prod___AMethPropdef___empty_init[] = "parser_prod::AMethPropdef::empty_init";
6844 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
6845 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6846 struct {struct stack_frame_t me;} fra;
6847 val_t tmp;
6848 if (init_table[itpos39]) return;
6849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6850 fra.me.file = LOCATE_parser___parser_prod;
6851 fra.me.line = 1203;
6852 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
6853 fra.me.has_broke = 0;
6854 fra.me.REG_size = 1;
6855 fra.me.nitni_local_ref_head = NULL;
6856 fra.me.REG[0] = NIT_NULL;
6857 fra.me.REG[0] = p0;
6858 stack_frame_head = fra.me.prev;
6859 init_table[itpos39] = 1;
6860 return;
6861 }
6862 static const char LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef[] = "parser_prod::AMethPropdef::init_amethpropdef";
6863 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){
6864 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6865 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6866 val_t REGB0;
6867 val_t REGB1;
6868 val_t tmp;
6869 if (init_table[itpos40]) return;
6870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6871 fra.me.file = LOCATE_parser___parser_prod;
6872 fra.me.line = 1205;
6873 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
6874 fra.me.has_broke = 0;
6875 fra.me.REG_size = 7;
6876 fra.me.nitni_local_ref_head = NULL;
6877 fra.me.REG[0] = NIT_NULL;
6878 fra.me.REG[1] = NIT_NULL;
6879 fra.me.REG[2] = NIT_NULL;
6880 fra.me.REG[3] = NIT_NULL;
6881 fra.me.REG[4] = NIT_NULL;
6882 fra.me.REG[5] = NIT_NULL;
6883 fra.me.REG[6] = NIT_NULL;
6884 fra.me.REG[0] = p0;
6885 fra.me.REG[1] = p1;
6886 fra.me.REG[2] = p2;
6887 fra.me.REG[3] = p3;
6888 fra.me.REG[4] = p4;
6889 fra.me.REG[5] = p5;
6890 /* parser/parser_prod.nit:1205 */
6891 fra.me.REG[6] = fra.me.REG[0];
6892 /* parser/parser_prod.nit:1213 */
6893 CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
6894 /* parser/parser_prod.nit:1214 */
6895 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
6896 /* parser/parser_prod.nit:1215 */
6897 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6898 if (UNTAG_Bool(REGB0)) {
6899 } else {
6900 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6901 if (UNTAG_Bool(REGB1)) {
6902 REGB1 = TAG_Bool(0);
6903 REGB0 = REGB1;
6904 } else {
6905 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6906 REGB0 = REGB1;
6907 }
6908 }
6909 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6910 if (UNTAG_Bool(REGB0)) {
6911 /* parser/parser_prod.nit:1216 */
6912 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6913 if (UNTAG_Bool(REGB0)) {
6914 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1216);
6915 }
6916 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
6917 }
6918 /* parser/parser_prod.nit:1218 */
6919 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
6920 /* parser/parser_prod.nit:1219 */
6921 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6922 if (UNTAG_Bool(REGB0)) {
6923 } else {
6924 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6925 if (UNTAG_Bool(REGB1)) {
6926 REGB1 = TAG_Bool(0);
6927 REGB0 = REGB1;
6928 } else {
6929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6930 REGB0 = REGB1;
6931 }
6932 }
6933 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6934 if (UNTAG_Bool(REGB0)) {
6935 /* parser/parser_prod.nit:1220 */
6936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6937 if (UNTAG_Bool(REGB0)) {
6938 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1220);
6939 }
6940 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
6941 }
6942 /* parser/parser_prod.nit:1222 */
6943 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6944 if (UNTAG_Bool(REGB0)) {
6945 } else {
6946 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1222);
6947 }
6948 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
6949 /* parser/parser_prod.nit:1223 */
6950 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6951 if (UNTAG_Bool(REGB0)) {
6952 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1223);
6953 }
6954 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6955 /* parser/parser_prod.nit:1224 */
6956 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6957 if (UNTAG_Bool(REGB0)) {
6958 } else {
6959 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1224);
6960 }
6961 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
6962 /* parser/parser_prod.nit:1225 */
6963 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6964 if (UNTAG_Bool(REGB0)) {
6965 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1225);
6966 }
6967 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6968 /* parser/parser_prod.nit:1226 */
6969 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6970 if (UNTAG_Bool(REGB0)) {
6971 } else {
6972 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1226);
6973 }
6974 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
6975 /* parser/parser_prod.nit:1227 */
6976 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6977 if (UNTAG_Bool(REGB0)) {
6978 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1227);
6979 }
6980 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6981 stack_frame_head = fra.me.prev;
6982 init_table[itpos40] = 1;
6983 return;
6984 }
6985 static const char LOCATE_parser___parser_prod___AMethPropdef___replace_child[] = "parser_prod::AMethPropdef::(parser_prod::ANode::replace_child)";
6986 void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6987 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6988 val_t REGB0;
6989 val_t REGB1;
6990 val_t tmp;
6991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6992 fra.me.file = LOCATE_parser___parser_prod;
6993 fra.me.line = 1230;
6994 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
6995 fra.me.has_broke = 0;
6996 fra.me.REG_size = 4;
6997 fra.me.nitni_local_ref_head = NULL;
6998 fra.me.REG[0] = NIT_NULL;
6999 fra.me.REG[1] = NIT_NULL;
7000 fra.me.REG[2] = NIT_NULL;
7001 fra.me.REG[3] = NIT_NULL;
7002 fra.me.REG[0] = p0;
7003 fra.me.REG[1] = p1;
7004 fra.me.REG[2] = p2;
7005 /* parser/parser_prod.nit:1232 */
7006 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7007 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7008 if (UNTAG_Bool(REGB0)) {
7009 } else {
7010 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7011 if (UNTAG_Bool(REGB1)) {
7012 REGB1 = TAG_Bool(0);
7013 REGB0 = REGB1;
7014 } else {
7015 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7016 REGB0 = REGB1;
7017 }
7018 }
7019 if (UNTAG_Bool(REGB0)) {
7020 /* parser/parser_prod.nit:1233 */
7021 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7022 if (UNTAG_Bool(REGB0)) {
7023 } else {
7024 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7025 if (UNTAG_Bool(REGB1)) {
7026 REGB1 = TAG_Bool(0);
7027 REGB0 = REGB1;
7028 } else {
7029 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7030 REGB0 = REGB1;
7031 }
7032 }
7033 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7034 if (UNTAG_Bool(REGB0)) {
7035 /* parser/parser_prod.nit:1234 */
7036 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7037 if (UNTAG_Bool(REGB0)) {
7038 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1234);
7039 }
7040 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7041 /* parser/parser_prod.nit:1235 */
7042 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*/;
7043 if (UNTAG_Bool(REGB0)) {
7044 } else {
7045 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1235);
7046 }
7047 /* parser/parser_prod.nit:1236 */
7048 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7049 } else {
7050 /* parser/parser_prod.nit:1238 */
7051 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7052 }
7053 /* parser/parser_prod.nit:1240 */
7054 goto label1;
7055 }
7056 /* parser/parser_prod.nit:1242 */
7057 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7058 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7059 if (UNTAG_Bool(REGB0)) {
7060 } else {
7061 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7062 if (UNTAG_Bool(REGB1)) {
7063 REGB1 = TAG_Bool(0);
7064 REGB0 = REGB1;
7065 } else {
7066 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7067 REGB0 = REGB1;
7068 }
7069 }
7070 if (UNTAG_Bool(REGB0)) {
7071 /* parser/parser_prod.nit:1243 */
7072 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7073 if (UNTAG_Bool(REGB0)) {
7074 } else {
7075 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7076 if (UNTAG_Bool(REGB1)) {
7077 REGB1 = TAG_Bool(0);
7078 REGB0 = REGB1;
7079 } else {
7080 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7081 REGB0 = REGB1;
7082 }
7083 }
7084 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7085 if (UNTAG_Bool(REGB0)) {
7086 /* parser/parser_prod.nit:1244 */
7087 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7088 if (UNTAG_Bool(REGB0)) {
7089 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1244);
7090 }
7091 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7092 /* parser/parser_prod.nit:1245 */
7093 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*/;
7094 if (UNTAG_Bool(REGB0)) {
7095 } else {
7096 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1245);
7097 }
7098 /* parser/parser_prod.nit:1246 */
7099 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7100 } else {
7101 /* parser/parser_prod.nit:1248 */
7102 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7103 }
7104 /* parser/parser_prod.nit:1250 */
7105 goto label1;
7106 }
7107 /* parser/parser_prod.nit:1252 */
7108 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7109 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7110 if (UNTAG_Bool(REGB0)) {
7111 } else {
7112 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7113 if (UNTAG_Bool(REGB1)) {
7114 REGB1 = TAG_Bool(0);
7115 REGB0 = REGB1;
7116 } else {
7117 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7118 REGB0 = REGB1;
7119 }
7120 }
7121 if (UNTAG_Bool(REGB0)) {
7122 /* parser/parser_prod.nit:1253 */
7123 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7124 if (UNTAG_Bool(REGB0)) {
7125 } else {
7126 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7127 if (UNTAG_Bool(REGB1)) {
7128 REGB1 = TAG_Bool(0);
7129 REGB0 = REGB1;
7130 } else {
7131 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7132 REGB0 = REGB1;
7133 }
7134 }
7135 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7136 if (UNTAG_Bool(REGB0)) {
7137 /* parser/parser_prod.nit:1254 */
7138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7139 if (UNTAG_Bool(REGB0)) {
7140 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1254);
7141 }
7142 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7143 /* parser/parser_prod.nit:1255 */
7144 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*/;
7145 if (UNTAG_Bool(REGB0)) {
7146 } else {
7147 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1255);
7148 }
7149 /* parser/parser_prod.nit:1256 */
7150 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7151 } else {
7152 /* parser/parser_prod.nit:1258 */
7153 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1258);
7154 }
7155 /* parser/parser_prod.nit:1260 */
7156 goto label1;
7157 }
7158 /* parser/parser_prod.nit:1262 */
7159 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7160 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7161 if (UNTAG_Bool(REGB0)) {
7162 } else {
7163 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7164 if (UNTAG_Bool(REGB1)) {
7165 REGB1 = TAG_Bool(0);
7166 REGB0 = REGB1;
7167 } else {
7168 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7169 REGB0 = REGB1;
7170 }
7171 }
7172 if (UNTAG_Bool(REGB0)) {
7173 /* parser/parser_prod.nit:1263 */
7174 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7175 if (UNTAG_Bool(REGB0)) {
7176 } else {
7177 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7178 if (UNTAG_Bool(REGB1)) {
7179 REGB1 = TAG_Bool(0);
7180 REGB0 = REGB1;
7181 } else {
7182 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7183 REGB0 = REGB1;
7184 }
7185 }
7186 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7187 if (UNTAG_Bool(REGB0)) {
7188 /* parser/parser_prod.nit:1264 */
7189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7190 if (UNTAG_Bool(REGB0)) {
7191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1264);
7192 }
7193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7194 /* parser/parser_prod.nit:1265 */
7195 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*/;
7196 if (UNTAG_Bool(REGB0)) {
7197 } else {
7198 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1265);
7199 }
7200 /* parser/parser_prod.nit:1266 */
7201 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7202 } else {
7203 /* parser/parser_prod.nit:1268 */
7204 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1268);
7205 }
7206 /* parser/parser_prod.nit:1270 */
7207 goto label1;
7208 }
7209 /* parser/parser_prod.nit:1272 */
7210 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7211 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7212 if (UNTAG_Bool(REGB0)) {
7213 } else {
7214 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7215 if (UNTAG_Bool(REGB1)) {
7216 REGB1 = TAG_Bool(0);
7217 REGB0 = REGB1;
7218 } else {
7219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7220 REGB0 = REGB1;
7221 }
7222 }
7223 if (UNTAG_Bool(REGB0)) {
7224 /* parser/parser_prod.nit:1273 */
7225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7226 if (UNTAG_Bool(REGB0)) {
7227 } else {
7228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7229 if (UNTAG_Bool(REGB1)) {
7230 REGB1 = TAG_Bool(0);
7231 REGB0 = REGB1;
7232 } else {
7233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7234 REGB0 = REGB1;
7235 }
7236 }
7237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7238 if (UNTAG_Bool(REGB0)) {
7239 /* parser/parser_prod.nit:1274 */
7240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7241 if (UNTAG_Bool(REGB0)) {
7242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1274);
7243 }
7244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7245 /* parser/parser_prod.nit:1275 */
7246 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*/;
7247 if (UNTAG_Bool(REGB0)) {
7248 } else {
7249 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1275);
7250 }
7251 /* parser/parser_prod.nit:1276 */
7252 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7253 } else {
7254 /* parser/parser_prod.nit:1278 */
7255 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1278);
7256 }
7257 /* parser/parser_prod.nit:1280 */
7258 goto label1;
7259 }
7260 label1: while(0);
7261 stack_frame_head = fra.me.prev;
7262 return;
7263 }
7264 static const char LOCATE_parser___parser_prod___AMethPropdef___visit_all[] = "parser_prod::AMethPropdef::(parser_prod::ANode::visit_all)";
7265 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
7266 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7267 val_t REGB0;
7268 val_t REGB1;
7269 val_t tmp;
7270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7271 fra.me.file = LOCATE_parser___parser_prod;
7272 fra.me.line = 1284;
7273 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
7274 fra.me.has_broke = 0;
7275 fra.me.REG_size = 4;
7276 fra.me.nitni_local_ref_head = NULL;
7277 fra.me.REG[0] = NIT_NULL;
7278 fra.me.REG[1] = NIT_NULL;
7279 fra.me.REG[2] = NIT_NULL;
7280 fra.me.REG[3] = NIT_NULL;
7281 fra.me.REG[0] = p0;
7282 fra.me.REG[1] = p1;
7283 /* parser/parser_prod.nit:1284 */
7284 fra.me.REG[2] = fra.me.REG[0];
7285 /* parser/parser_prod.nit:1286 */
7286 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7287 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7288 if (UNTAG_Bool(REGB0)) {
7289 } else {
7290 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7291 if (UNTAG_Bool(REGB1)) {
7292 REGB1 = TAG_Bool(0);
7293 REGB0 = REGB1;
7294 } else {
7295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7296 REGB0 = REGB1;
7297 }
7298 }
7299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7300 if (UNTAG_Bool(REGB0)) {
7301 /* parser/parser_prod.nit:1287 */
7302 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7303 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*/;
7304 if (UNTAG_Bool(REGB0)) {
7305 } else {
7306 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1287);
7307 }
7308 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7309 }
7310 /* parser/parser_prod.nit:1289 */
7311 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7312 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7313 if (UNTAG_Bool(REGB0)) {
7314 } else {
7315 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7316 if (UNTAG_Bool(REGB1)) {
7317 REGB1 = TAG_Bool(0);
7318 REGB0 = REGB1;
7319 } else {
7320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7321 REGB0 = REGB1;
7322 }
7323 }
7324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7325 if (UNTAG_Bool(REGB0)) {
7326 /* parser/parser_prod.nit:1290 */
7327 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7328 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*/;
7329 if (UNTAG_Bool(REGB0)) {
7330 } else {
7331 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1290);
7332 }
7333 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7334 }
7335 /* parser/parser_prod.nit:1292 */
7336 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7337 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7338 /* parser/parser_prod.nit:1293 */
7339 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7340 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7341 /* parser/parser_prod.nit:1294 */
7342 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7343 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7344 stack_frame_head = fra.me.prev;
7345 return;
7346 }
7347 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init[] = "parser_prod::ADeferredMethPropdef::empty_init";
7348 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
7349 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
7350 struct {struct stack_frame_t me;} fra;
7351 val_t tmp;
7352 if (init_table[itpos41]) return;
7353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7354 fra.me.file = LOCATE_parser___parser_prod;
7355 fra.me.line = 1298;
7356 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
7357 fra.me.has_broke = 0;
7358 fra.me.REG_size = 1;
7359 fra.me.nitni_local_ref_head = NULL;
7360 fra.me.REG[0] = NIT_NULL;
7361 fra.me.REG[0] = p0;
7362 stack_frame_head = fra.me.prev;
7363 init_table[itpos41] = 1;
7364 return;
7365 }
7366 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef[] = "parser_prod::ADeferredMethPropdef::init_adeferredmethpropdef";
7367 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){
7368 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
7369 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7370 val_t REGB0;
7371 val_t REGB1;
7372 val_t tmp;
7373 if (init_table[itpos42]) return;
7374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7375 fra.me.file = LOCATE_parser___parser_prod;
7376 fra.me.line = 1300;
7377 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
7378 fra.me.has_broke = 0;
7379 fra.me.REG_size = 8;
7380 fra.me.nitni_local_ref_head = NULL;
7381 fra.me.REG[0] = NIT_NULL;
7382 fra.me.REG[1] = NIT_NULL;
7383 fra.me.REG[2] = NIT_NULL;
7384 fra.me.REG[3] = NIT_NULL;
7385 fra.me.REG[4] = NIT_NULL;
7386 fra.me.REG[5] = NIT_NULL;
7387 fra.me.REG[6] = NIT_NULL;
7388 fra.me.REG[7] = NIT_NULL;
7389 fra.me.REG[0] = p0;
7390 fra.me.REG[1] = p1;
7391 fra.me.REG[2] = p2;
7392 fra.me.REG[3] = p3;
7393 fra.me.REG[4] = p4;
7394 fra.me.REG[5] = p5;
7395 fra.me.REG[6] = p6;
7396 /* parser/parser_prod.nit:1300 */
7397 fra.me.REG[7] = fra.me.REG[0];
7398 /* parser/parser_prod.nit:1309 */
7399 CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7400 /* parser/parser_prod.nit:1310 */
7401 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7402 /* parser/parser_prod.nit:1311 */
7403 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7404 if (UNTAG_Bool(REGB0)) {
7405 } else {
7406 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7407 if (UNTAG_Bool(REGB1)) {
7408 REGB1 = TAG_Bool(0);
7409 REGB0 = REGB1;
7410 } else {
7411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7412 REGB0 = REGB1;
7413 }
7414 }
7415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7416 if (UNTAG_Bool(REGB0)) {
7417 /* parser/parser_prod.nit:1312 */
7418 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7419 if (UNTAG_Bool(REGB0)) {
7420 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1312);
7421 }
7422 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
7423 }
7424 /* parser/parser_prod.nit:1314 */
7425 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
7426 /* parser/parser_prod.nit:1315 */
7427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7428 if (UNTAG_Bool(REGB0)) {
7429 } else {
7430 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7431 if (UNTAG_Bool(REGB1)) {
7432 REGB1 = TAG_Bool(0);
7433 REGB0 = REGB1;
7434 } else {
7435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7436 REGB0 = REGB1;
7437 }
7438 }
7439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7440 if (UNTAG_Bool(REGB0)) {
7441 /* parser/parser_prod.nit:1316 */
7442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7443 if (UNTAG_Bool(REGB0)) {
7444 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1316);
7445 }
7446 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7447 }
7448 /* parser/parser_prod.nit:1318 */
7449 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7450 if (UNTAG_Bool(REGB0)) {
7451 } else {
7452 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1318);
7453 }
7454 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7455 /* parser/parser_prod.nit:1319 */
7456 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7457 if (UNTAG_Bool(REGB0)) {
7458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1319);
7459 }
7460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7461 /* parser/parser_prod.nit:1320 */
7462 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7463 if (UNTAG_Bool(REGB0)) {
7464 } else {
7465 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1320);
7466 }
7467 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7468 /* parser/parser_prod.nit:1321 */
7469 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7470 if (UNTAG_Bool(REGB0)) {
7471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1321);
7472 }
7473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7474 /* parser/parser_prod.nit:1322 */
7475 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7476 if (UNTAG_Bool(REGB0)) {
7477 } else {
7478 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1322);
7479 }
7480 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7481 /* parser/parser_prod.nit:1323 */
7482 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7483 if (UNTAG_Bool(REGB0)) {
7484 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1323);
7485 }
7486 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7487 /* parser/parser_prod.nit:1324 */
7488 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7489 if (UNTAG_Bool(REGB0)) {
7490 } else {
7491 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1324);
7492 }
7493 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7494 /* parser/parser_prod.nit:1325 */
7495 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7496 if (UNTAG_Bool(REGB0)) {
7497 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1325);
7498 }
7499 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7500 stack_frame_head = fra.me.prev;
7501 init_table[itpos42] = 1;
7502 return;
7503 }
7504 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child[] = "parser_prod::ADeferredMethPropdef::(parser_prod::ANode::replace_child)";
7505 void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7506 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7507 val_t REGB0;
7508 val_t REGB1;
7509 val_t tmp;
7510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7511 fra.me.file = LOCATE_parser___parser_prod;
7512 fra.me.line = 1328;
7513 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
7514 fra.me.has_broke = 0;
7515 fra.me.REG_size = 4;
7516 fra.me.nitni_local_ref_head = NULL;
7517 fra.me.REG[0] = NIT_NULL;
7518 fra.me.REG[1] = NIT_NULL;
7519 fra.me.REG[2] = NIT_NULL;
7520 fra.me.REG[3] = NIT_NULL;
7521 fra.me.REG[0] = p0;
7522 fra.me.REG[1] = p1;
7523 fra.me.REG[2] = p2;
7524 /* parser/parser_prod.nit:1330 */
7525 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7526 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7527 if (UNTAG_Bool(REGB0)) {
7528 } else {
7529 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7530 if (UNTAG_Bool(REGB1)) {
7531 REGB1 = TAG_Bool(0);
7532 REGB0 = REGB1;
7533 } else {
7534 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7535 REGB0 = REGB1;
7536 }
7537 }
7538 if (UNTAG_Bool(REGB0)) {
7539 /* parser/parser_prod.nit:1331 */
7540 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7541 if (UNTAG_Bool(REGB0)) {
7542 } else {
7543 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7544 if (UNTAG_Bool(REGB1)) {
7545 REGB1 = TAG_Bool(0);
7546 REGB0 = REGB1;
7547 } else {
7548 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7549 REGB0 = REGB1;
7550 }
7551 }
7552 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7553 if (UNTAG_Bool(REGB0)) {
7554 /* parser/parser_prod.nit:1332 */
7555 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7556 if (UNTAG_Bool(REGB0)) {
7557 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1332);
7558 }
7559 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7560 /* parser/parser_prod.nit:1333 */
7561 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*/;
7562 if (UNTAG_Bool(REGB0)) {
7563 } else {
7564 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1333);
7565 }
7566 /* parser/parser_prod.nit:1334 */
7567 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7568 } else {
7569 /* parser/parser_prod.nit:1336 */
7570 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7571 }
7572 /* parser/parser_prod.nit:1338 */
7573 goto label1;
7574 }
7575 /* parser/parser_prod.nit:1340 */
7576 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7577 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7578 if (UNTAG_Bool(REGB0)) {
7579 } else {
7580 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7581 if (UNTAG_Bool(REGB1)) {
7582 REGB1 = TAG_Bool(0);
7583 REGB0 = REGB1;
7584 } else {
7585 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7586 REGB0 = REGB1;
7587 }
7588 }
7589 if (UNTAG_Bool(REGB0)) {
7590 /* parser/parser_prod.nit:1341 */
7591 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7592 if (UNTAG_Bool(REGB0)) {
7593 } else {
7594 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7595 if (UNTAG_Bool(REGB1)) {
7596 REGB1 = TAG_Bool(0);
7597 REGB0 = REGB1;
7598 } else {
7599 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7600 REGB0 = REGB1;
7601 }
7602 }
7603 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7604 if (UNTAG_Bool(REGB0)) {
7605 /* parser/parser_prod.nit:1342 */
7606 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7607 if (UNTAG_Bool(REGB0)) {
7608 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1342);
7609 }
7610 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7611 /* parser/parser_prod.nit:1343 */
7612 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*/;
7613 if (UNTAG_Bool(REGB0)) {
7614 } else {
7615 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1343);
7616 }
7617 /* parser/parser_prod.nit:1344 */
7618 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7619 } else {
7620 /* parser/parser_prod.nit:1346 */
7621 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7622 }
7623 /* parser/parser_prod.nit:1348 */
7624 goto label1;
7625 }
7626 /* parser/parser_prod.nit:1350 */
7627 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7628 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7629 if (UNTAG_Bool(REGB0)) {
7630 } else {
7631 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7632 if (UNTAG_Bool(REGB1)) {
7633 REGB1 = TAG_Bool(0);
7634 REGB0 = REGB1;
7635 } else {
7636 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7637 REGB0 = REGB1;
7638 }
7639 }
7640 if (UNTAG_Bool(REGB0)) {
7641 /* parser/parser_prod.nit:1351 */
7642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7643 if (UNTAG_Bool(REGB0)) {
7644 } else {
7645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7646 if (UNTAG_Bool(REGB1)) {
7647 REGB1 = TAG_Bool(0);
7648 REGB0 = REGB1;
7649 } else {
7650 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7651 REGB0 = REGB1;
7652 }
7653 }
7654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7655 if (UNTAG_Bool(REGB0)) {
7656 /* parser/parser_prod.nit:1352 */
7657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7658 if (UNTAG_Bool(REGB0)) {
7659 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1352);
7660 }
7661 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7662 /* parser/parser_prod.nit:1353 */
7663 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*/;
7664 if (UNTAG_Bool(REGB0)) {
7665 } else {
7666 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1353);
7667 }
7668 /* parser/parser_prod.nit:1354 */
7669 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7670 } else {
7671 /* parser/parser_prod.nit:1356 */
7672 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1356);
7673 }
7674 /* parser/parser_prod.nit:1358 */
7675 goto label1;
7676 }
7677 /* parser/parser_prod.nit:1360 */
7678 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7679 if (UNTAG_Bool(REGB0)) {
7680 } else {
7681 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1360);
7682 }
7683 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
7684 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7685 if (UNTAG_Bool(REGB0)) {
7686 } else {
7687 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7688 REGB0 = REGB1;
7689 }
7690 if (UNTAG_Bool(REGB0)) {
7691 /* parser/parser_prod.nit:1361 */
7692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7693 if (UNTAG_Bool(REGB0)) {
7694 } else {
7695 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7696 if (UNTAG_Bool(REGB1)) {
7697 REGB1 = TAG_Bool(0);
7698 REGB0 = REGB1;
7699 } else {
7700 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7701 REGB0 = REGB1;
7702 }
7703 }
7704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7705 if (UNTAG_Bool(REGB0)) {
7706 /* parser/parser_prod.nit:1362 */
7707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7708 if (UNTAG_Bool(REGB0)) {
7709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1362);
7710 }
7711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7712 /* parser/parser_prod.nit:1363 */
7713 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*/;
7714 if (UNTAG_Bool(REGB0)) {
7715 } else {
7716 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1363);
7717 }
7718 /* parser/parser_prod.nit:1364 */
7719 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7720 } else {
7721 /* parser/parser_prod.nit:1366 */
7722 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1366);
7723 }
7724 /* parser/parser_prod.nit:1368 */
7725 goto label1;
7726 }
7727 /* parser/parser_prod.nit:1370 */
7728 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7729 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7730 if (UNTAG_Bool(REGB0)) {
7731 } else {
7732 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7733 if (UNTAG_Bool(REGB1)) {
7734 REGB1 = TAG_Bool(0);
7735 REGB0 = REGB1;
7736 } else {
7737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7738 REGB0 = REGB1;
7739 }
7740 }
7741 if (UNTAG_Bool(REGB0)) {
7742 /* parser/parser_prod.nit:1371 */
7743 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7744 if (UNTAG_Bool(REGB0)) {
7745 } else {
7746 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7747 if (UNTAG_Bool(REGB1)) {
7748 REGB1 = TAG_Bool(0);
7749 REGB0 = REGB1;
7750 } else {
7751 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7752 REGB0 = REGB1;
7753 }
7754 }
7755 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7756 if (UNTAG_Bool(REGB0)) {
7757 /* parser/parser_prod.nit:1372 */
7758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7759 if (UNTAG_Bool(REGB0)) {
7760 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1372);
7761 }
7762 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7763 /* parser/parser_prod.nit:1373 */
7764 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*/;
7765 if (UNTAG_Bool(REGB0)) {
7766 } else {
7767 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1373);
7768 }
7769 /* parser/parser_prod.nit:1374 */
7770 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7771 } else {
7772 /* parser/parser_prod.nit:1376 */
7773 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1376);
7774 }
7775 /* parser/parser_prod.nit:1378 */
7776 goto label1;
7777 }
7778 /* parser/parser_prod.nit:1380 */
7779 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7780 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7781 if (UNTAG_Bool(REGB0)) {
7782 } else {
7783 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7784 if (UNTAG_Bool(REGB1)) {
7785 REGB1 = TAG_Bool(0);
7786 REGB0 = REGB1;
7787 } else {
7788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7789 REGB0 = REGB1;
7790 }
7791 }
7792 if (UNTAG_Bool(REGB0)) {
7793 /* parser/parser_prod.nit:1381 */
7794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7795 if (UNTAG_Bool(REGB0)) {
7796 } else {
7797 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7798 if (UNTAG_Bool(REGB1)) {
7799 REGB1 = TAG_Bool(0);
7800 REGB0 = REGB1;
7801 } else {
7802 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7803 REGB0 = REGB1;
7804 }
7805 }
7806 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7807 if (UNTAG_Bool(REGB0)) {
7808 /* parser/parser_prod.nit:1382 */
7809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7810 if (UNTAG_Bool(REGB0)) {
7811 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1382);
7812 }
7813 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7814 /* parser/parser_prod.nit:1383 */
7815 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*/;
7816 if (UNTAG_Bool(REGB0)) {
7817 } else {
7818 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1383);
7819 }
7820 /* parser/parser_prod.nit:1384 */
7821 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7822 } else {
7823 /* parser/parser_prod.nit:1386 */
7824 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1386);
7825 }
7826 /* parser/parser_prod.nit:1388 */
7827 goto label1;
7828 }
7829 label1: while(0);
7830 stack_frame_head = fra.me.prev;
7831 return;
7832 }
7833 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all[] = "parser_prod::ADeferredMethPropdef::(parser_prod::ANode::visit_all)";
7834 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
7835 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7836 val_t REGB0;
7837 val_t REGB1;
7838 val_t tmp;
7839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7840 fra.me.file = LOCATE_parser___parser_prod;
7841 fra.me.line = 1392;
7842 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
7843 fra.me.has_broke = 0;
7844 fra.me.REG_size = 4;
7845 fra.me.nitni_local_ref_head = NULL;
7846 fra.me.REG[0] = NIT_NULL;
7847 fra.me.REG[1] = NIT_NULL;
7848 fra.me.REG[2] = NIT_NULL;
7849 fra.me.REG[3] = NIT_NULL;
7850 fra.me.REG[0] = p0;
7851 fra.me.REG[1] = p1;
7852 /* parser/parser_prod.nit:1392 */
7853 fra.me.REG[2] = fra.me.REG[0];
7854 /* parser/parser_prod.nit:1394 */
7855 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7856 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7857 if (UNTAG_Bool(REGB0)) {
7858 } else {
7859 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7860 if (UNTAG_Bool(REGB1)) {
7861 REGB1 = TAG_Bool(0);
7862 REGB0 = REGB1;
7863 } else {
7864 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7865 REGB0 = REGB1;
7866 }
7867 }
7868 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7869 if (UNTAG_Bool(REGB0)) {
7870 /* parser/parser_prod.nit:1395 */
7871 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7872 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*/;
7873 if (UNTAG_Bool(REGB0)) {
7874 } else {
7875 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1395);
7876 }
7877 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7878 }
7879 /* parser/parser_prod.nit:1397 */
7880 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7881 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7882 if (UNTAG_Bool(REGB0)) {
7883 } else {
7884 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7885 if (UNTAG_Bool(REGB1)) {
7886 REGB1 = TAG_Bool(0);
7887 REGB0 = REGB1;
7888 } else {
7889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7890 REGB0 = REGB1;
7891 }
7892 }
7893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7894 if (UNTAG_Bool(REGB0)) {
7895 /* parser/parser_prod.nit:1398 */
7896 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7897 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*/;
7898 if (UNTAG_Bool(REGB0)) {
7899 } else {
7900 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1398);
7901 }
7902 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7903 }
7904 /* parser/parser_prod.nit:1400 */
7905 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7906 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7907 /* parser/parser_prod.nit:1401 */
7908 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7909 if (UNTAG_Bool(REGB0)) {
7910 } else {
7911 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1401);
7912 }
7913 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
7914 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7915 /* parser/parser_prod.nit:1402 */
7916 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7917 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7918 /* parser/parser_prod.nit:1403 */
7919 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7920 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7921 stack_frame_head = fra.me.prev;
7922 return;
7923 }
7924 static const char LOCATE_parser___parser_prod___AInternMethPropdef___empty_init[] = "parser_prod::AInternMethPropdef::empty_init";
7925 void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
7926 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7927 struct {struct stack_frame_t me;} fra;
7928 val_t tmp;
7929 if (init_table[itpos43]) return;
7930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7931 fra.me.file = LOCATE_parser___parser_prod;
7932 fra.me.line = 1407;
7933 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
7934 fra.me.has_broke = 0;
7935 fra.me.REG_size = 1;
7936 fra.me.nitni_local_ref_head = NULL;
7937 fra.me.REG[0] = NIT_NULL;
7938 fra.me.REG[0] = p0;
7939 stack_frame_head = fra.me.prev;
7940 init_table[itpos43] = 1;
7941 return;
7942 }
7943 static const char LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef[] = "parser_prod::AInternMethPropdef::init_ainternmethpropdef";
7944 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){
7945 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7946 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7947 val_t REGB0;
7948 val_t REGB1;
7949 val_t tmp;
7950 if (init_table[itpos44]) return;
7951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7952 fra.me.file = LOCATE_parser___parser_prod;
7953 fra.me.line = 1409;
7954 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
7955 fra.me.has_broke = 0;
7956 fra.me.REG_size = 8;
7957 fra.me.nitni_local_ref_head = NULL;
7958 fra.me.REG[0] = NIT_NULL;
7959 fra.me.REG[1] = NIT_NULL;
7960 fra.me.REG[2] = NIT_NULL;
7961 fra.me.REG[3] = NIT_NULL;
7962 fra.me.REG[4] = NIT_NULL;
7963 fra.me.REG[5] = NIT_NULL;
7964 fra.me.REG[6] = NIT_NULL;
7965 fra.me.REG[7] = NIT_NULL;
7966 fra.me.REG[0] = p0;
7967 fra.me.REG[1] = p1;
7968 fra.me.REG[2] = p2;
7969 fra.me.REG[3] = p3;
7970 fra.me.REG[4] = p4;
7971 fra.me.REG[5] = p5;
7972 fra.me.REG[6] = p6;
7973 /* parser/parser_prod.nit:1409 */
7974 fra.me.REG[7] = fra.me.REG[0];
7975 /* parser/parser_prod.nit:1418 */
7976 CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7977 /* parser/parser_prod.nit:1419 */
7978 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7979 /* parser/parser_prod.nit:1420 */
7980 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7981 if (UNTAG_Bool(REGB0)) {
7982 } else {
7983 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7984 if (UNTAG_Bool(REGB1)) {
7985 REGB1 = TAG_Bool(0);
7986 REGB0 = REGB1;
7987 } else {
7988 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7989 REGB0 = REGB1;
7990 }
7991 }
7992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7993 if (UNTAG_Bool(REGB0)) {
7994 /* parser/parser_prod.nit:1421 */
7995 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7996 if (UNTAG_Bool(REGB0)) {
7997 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1421);
7998 }
7999 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
8000 }
8001 /* parser/parser_prod.nit:1423 */
8002 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
8003 /* parser/parser_prod.nit:1424 */
8004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8005 if (UNTAG_Bool(REGB0)) {
8006 } else {
8007 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8008 if (UNTAG_Bool(REGB1)) {
8009 REGB1 = TAG_Bool(0);
8010 REGB0 = REGB1;
8011 } else {
8012 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8013 REGB0 = REGB1;
8014 }
8015 }
8016 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8017 if (UNTAG_Bool(REGB0)) {
8018 /* parser/parser_prod.nit:1425 */
8019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8020 if (UNTAG_Bool(REGB0)) {
8021 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1425);
8022 }
8023 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
8024 }
8025 /* parser/parser_prod.nit:1427 */
8026 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8027 if (UNTAG_Bool(REGB0)) {
8028 } else {
8029 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1427);
8030 }
8031 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
8032 /* parser/parser_prod.nit:1428 */
8033 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8034 if (UNTAG_Bool(REGB0)) {
8035 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1428);
8036 }
8037 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
8038 /* parser/parser_prod.nit:1429 */
8039 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8040 if (UNTAG_Bool(REGB0)) {
8041 } else {
8042 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1429);
8043 }
8044 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
8045 /* parser/parser_prod.nit:1430 */
8046 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8047 if (UNTAG_Bool(REGB0)) {
8048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1430);
8049 }
8050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
8051 /* parser/parser_prod.nit:1431 */
8052 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8053 if (UNTAG_Bool(REGB0)) {
8054 } else {
8055 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1431);
8056 }
8057 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
8058 /* parser/parser_prod.nit:1432 */
8059 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8060 if (UNTAG_Bool(REGB0)) {
8061 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1432);
8062 }
8063 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
8064 /* parser/parser_prod.nit:1433 */
8065 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8066 if (UNTAG_Bool(REGB0)) {
8067 } else {
8068 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1433);
8069 }
8070 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
8071 /* parser/parser_prod.nit:1434 */
8072 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8073 if (UNTAG_Bool(REGB0)) {
8074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1434);
8075 }
8076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8077 stack_frame_head = fra.me.prev;
8078 init_table[itpos44] = 1;
8079 return;
8080 }
8081 static const char LOCATE_parser___parser_prod___AInternMethPropdef___replace_child[] = "parser_prod::AInternMethPropdef::(parser_prod::ANode::replace_child)";
8082 void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8083 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8084 val_t REGB0;
8085 val_t REGB1;
8086 val_t tmp;
8087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8088 fra.me.file = LOCATE_parser___parser_prod;
8089 fra.me.line = 1437;
8090 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
8091 fra.me.has_broke = 0;
8092 fra.me.REG_size = 4;
8093 fra.me.nitni_local_ref_head = NULL;
8094 fra.me.REG[0] = NIT_NULL;
8095 fra.me.REG[1] = NIT_NULL;
8096 fra.me.REG[2] = NIT_NULL;
8097 fra.me.REG[3] = NIT_NULL;
8098 fra.me.REG[0] = p0;
8099 fra.me.REG[1] = p1;
8100 fra.me.REG[2] = p2;
8101 /* parser/parser_prod.nit:1439 */
8102 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8103 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8104 if (UNTAG_Bool(REGB0)) {
8105 } else {
8106 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8107 if (UNTAG_Bool(REGB1)) {
8108 REGB1 = TAG_Bool(0);
8109 REGB0 = REGB1;
8110 } else {
8111 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8112 REGB0 = REGB1;
8113 }
8114 }
8115 if (UNTAG_Bool(REGB0)) {
8116 /* parser/parser_prod.nit:1440 */
8117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8118 if (UNTAG_Bool(REGB0)) {
8119 } else {
8120 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8121 if (UNTAG_Bool(REGB1)) {
8122 REGB1 = TAG_Bool(0);
8123 REGB0 = REGB1;
8124 } else {
8125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8126 REGB0 = REGB1;
8127 }
8128 }
8129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8130 if (UNTAG_Bool(REGB0)) {
8131 /* parser/parser_prod.nit:1441 */
8132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8133 if (UNTAG_Bool(REGB0)) {
8134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1441);
8135 }
8136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8137 /* parser/parser_prod.nit:1442 */
8138 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*/;
8139 if (UNTAG_Bool(REGB0)) {
8140 } else {
8141 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1442);
8142 }
8143 /* parser/parser_prod.nit:1443 */
8144 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8145 } else {
8146 /* parser/parser_prod.nit:1445 */
8147 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8148 }
8149 /* parser/parser_prod.nit:1447 */
8150 goto label1;
8151 }
8152 /* parser/parser_prod.nit:1449 */
8153 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8154 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8155 if (UNTAG_Bool(REGB0)) {
8156 } else {
8157 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8158 if (UNTAG_Bool(REGB1)) {
8159 REGB1 = TAG_Bool(0);
8160 REGB0 = REGB1;
8161 } else {
8162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8163 REGB0 = REGB1;
8164 }
8165 }
8166 if (UNTAG_Bool(REGB0)) {
8167 /* parser/parser_prod.nit:1450 */
8168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8169 if (UNTAG_Bool(REGB0)) {
8170 } else {
8171 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8172 if (UNTAG_Bool(REGB1)) {
8173 REGB1 = TAG_Bool(0);
8174 REGB0 = REGB1;
8175 } else {
8176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8177 REGB0 = REGB1;
8178 }
8179 }
8180 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8181 if (UNTAG_Bool(REGB0)) {
8182 /* parser/parser_prod.nit:1451 */
8183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8184 if (UNTAG_Bool(REGB0)) {
8185 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1451);
8186 }
8187 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8188 /* parser/parser_prod.nit:1452 */
8189 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*/;
8190 if (UNTAG_Bool(REGB0)) {
8191 } else {
8192 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1452);
8193 }
8194 /* parser/parser_prod.nit:1453 */
8195 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8196 } else {
8197 /* parser/parser_prod.nit:1455 */
8198 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8199 }
8200 /* parser/parser_prod.nit:1457 */
8201 goto label1;
8202 }
8203 /* parser/parser_prod.nit:1459 */
8204 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8205 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8206 if (UNTAG_Bool(REGB0)) {
8207 } else {
8208 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8209 if (UNTAG_Bool(REGB1)) {
8210 REGB1 = TAG_Bool(0);
8211 REGB0 = REGB1;
8212 } else {
8213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8214 REGB0 = REGB1;
8215 }
8216 }
8217 if (UNTAG_Bool(REGB0)) {
8218 /* parser/parser_prod.nit:1460 */
8219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8220 if (UNTAG_Bool(REGB0)) {
8221 } else {
8222 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8223 if (UNTAG_Bool(REGB1)) {
8224 REGB1 = TAG_Bool(0);
8225 REGB0 = REGB1;
8226 } else {
8227 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8228 REGB0 = REGB1;
8229 }
8230 }
8231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8232 if (UNTAG_Bool(REGB0)) {
8233 /* parser/parser_prod.nit:1461 */
8234 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8235 if (UNTAG_Bool(REGB0)) {
8236 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1461);
8237 }
8238 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8239 /* parser/parser_prod.nit:1462 */
8240 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*/;
8241 if (UNTAG_Bool(REGB0)) {
8242 } else {
8243 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1462);
8244 }
8245 /* parser/parser_prod.nit:1463 */
8246 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8247 } else {
8248 /* parser/parser_prod.nit:1465 */
8249 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1465);
8250 }
8251 /* parser/parser_prod.nit:1467 */
8252 goto label1;
8253 }
8254 /* parser/parser_prod.nit:1469 */
8255 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8256 if (UNTAG_Bool(REGB0)) {
8257 } else {
8258 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1469);
8259 }
8260 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
8261 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8262 if (UNTAG_Bool(REGB0)) {
8263 } else {
8264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8265 REGB0 = REGB1;
8266 }
8267 if (UNTAG_Bool(REGB0)) {
8268 /* parser/parser_prod.nit:1470 */
8269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8270 if (UNTAG_Bool(REGB0)) {
8271 } else {
8272 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8273 if (UNTAG_Bool(REGB1)) {
8274 REGB1 = TAG_Bool(0);
8275 REGB0 = REGB1;
8276 } else {
8277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8278 REGB0 = REGB1;
8279 }
8280 }
8281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8282 if (UNTAG_Bool(REGB0)) {
8283 /* parser/parser_prod.nit:1471 */
8284 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8285 if (UNTAG_Bool(REGB0)) {
8286 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1471);
8287 }
8288 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8289 /* parser/parser_prod.nit:1472 */
8290 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*/;
8291 if (UNTAG_Bool(REGB0)) {
8292 } else {
8293 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1472);
8294 }
8295 /* parser/parser_prod.nit:1473 */
8296 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8297 } else {
8298 /* parser/parser_prod.nit:1475 */
8299 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1475);
8300 }
8301 /* parser/parser_prod.nit:1477 */
8302 goto label1;
8303 }
8304 /* parser/parser_prod.nit:1479 */
8305 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8306 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8307 if (UNTAG_Bool(REGB0)) {
8308 } else {
8309 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8310 if (UNTAG_Bool(REGB1)) {
8311 REGB1 = TAG_Bool(0);
8312 REGB0 = REGB1;
8313 } else {
8314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8315 REGB0 = REGB1;
8316 }
8317 }
8318 if (UNTAG_Bool(REGB0)) {
8319 /* parser/parser_prod.nit:1480 */
8320 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8321 if (UNTAG_Bool(REGB0)) {
8322 } else {
8323 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8324 if (UNTAG_Bool(REGB1)) {
8325 REGB1 = TAG_Bool(0);
8326 REGB0 = REGB1;
8327 } else {
8328 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8329 REGB0 = REGB1;
8330 }
8331 }
8332 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8333 if (UNTAG_Bool(REGB0)) {
8334 /* parser/parser_prod.nit:1481 */
8335 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8336 if (UNTAG_Bool(REGB0)) {
8337 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1481);
8338 }
8339 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8340 /* parser/parser_prod.nit:1482 */
8341 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*/;
8342 if (UNTAG_Bool(REGB0)) {
8343 } else {
8344 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1482);
8345 }
8346 /* parser/parser_prod.nit:1483 */
8347 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8348 } else {
8349 /* parser/parser_prod.nit:1485 */
8350 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1485);
8351 }
8352 /* parser/parser_prod.nit:1487 */
8353 goto label1;
8354 }
8355 /* parser/parser_prod.nit:1489 */
8356 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8357 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8358 if (UNTAG_Bool(REGB0)) {
8359 } else {
8360 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8361 if (UNTAG_Bool(REGB1)) {
8362 REGB1 = TAG_Bool(0);
8363 REGB0 = REGB1;
8364 } else {
8365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8366 REGB0 = REGB1;
8367 }
8368 }
8369 if (UNTAG_Bool(REGB0)) {
8370 /* parser/parser_prod.nit:1490 */
8371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8372 if (UNTAG_Bool(REGB0)) {
8373 } else {
8374 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8375 if (UNTAG_Bool(REGB1)) {
8376 REGB1 = TAG_Bool(0);
8377 REGB0 = REGB1;
8378 } else {
8379 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8380 REGB0 = REGB1;
8381 }
8382 }
8383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8384 if (UNTAG_Bool(REGB0)) {
8385 /* parser/parser_prod.nit:1491 */
8386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8387 if (UNTAG_Bool(REGB0)) {
8388 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1491);
8389 }
8390 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8391 /* parser/parser_prod.nit:1492 */
8392 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*/;
8393 if (UNTAG_Bool(REGB0)) {
8394 } else {
8395 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1492);
8396 }
8397 /* parser/parser_prod.nit:1493 */
8398 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8399 } else {
8400 /* parser/parser_prod.nit:1495 */
8401 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1495);
8402 }
8403 /* parser/parser_prod.nit:1497 */
8404 goto label1;
8405 }
8406 label1: while(0);
8407 stack_frame_head = fra.me.prev;
8408 return;
8409 }
8410 static const char LOCATE_parser___parser_prod___AInternMethPropdef___visit_all[] = "parser_prod::AInternMethPropdef::(parser_prod::ANode::visit_all)";
8411 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
8412 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8413 val_t REGB0;
8414 val_t REGB1;
8415 val_t tmp;
8416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8417 fra.me.file = LOCATE_parser___parser_prod;
8418 fra.me.line = 1501;
8419 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
8420 fra.me.has_broke = 0;
8421 fra.me.REG_size = 4;
8422 fra.me.nitni_local_ref_head = NULL;
8423 fra.me.REG[0] = NIT_NULL;
8424 fra.me.REG[1] = NIT_NULL;
8425 fra.me.REG[2] = NIT_NULL;
8426 fra.me.REG[3] = NIT_NULL;
8427 fra.me.REG[0] = p0;
8428 fra.me.REG[1] = p1;
8429 /* parser/parser_prod.nit:1501 */
8430 fra.me.REG[2] = fra.me.REG[0];
8431 /* parser/parser_prod.nit:1503 */
8432 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8433 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8434 if (UNTAG_Bool(REGB0)) {
8435 } else {
8436 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8437 if (UNTAG_Bool(REGB1)) {
8438 REGB1 = TAG_Bool(0);
8439 REGB0 = REGB1;
8440 } else {
8441 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8442 REGB0 = REGB1;
8443 }
8444 }
8445 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8446 if (UNTAG_Bool(REGB0)) {
8447 /* parser/parser_prod.nit:1504 */
8448 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8449 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*/;
8450 if (UNTAG_Bool(REGB0)) {
8451 } else {
8452 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1504);
8453 }
8454 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8455 }
8456 /* parser/parser_prod.nit:1506 */
8457 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8458 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8459 if (UNTAG_Bool(REGB0)) {
8460 } else {
8461 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8462 if (UNTAG_Bool(REGB1)) {
8463 REGB1 = TAG_Bool(0);
8464 REGB0 = REGB1;
8465 } else {
8466 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8467 REGB0 = REGB1;
8468 }
8469 }
8470 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8471 if (UNTAG_Bool(REGB0)) {
8472 /* parser/parser_prod.nit:1507 */
8473 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8474 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*/;
8475 if (UNTAG_Bool(REGB0)) {
8476 } else {
8477 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1507);
8478 }
8479 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8480 }
8481 /* parser/parser_prod.nit:1509 */
8482 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8483 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8484 /* parser/parser_prod.nit:1510 */
8485 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8486 if (UNTAG_Bool(REGB0)) {
8487 } else {
8488 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1510);
8489 }
8490 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
8491 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8492 /* parser/parser_prod.nit:1511 */
8493 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8494 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8495 /* parser/parser_prod.nit:1512 */
8496 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8497 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8498 stack_frame_head = fra.me.prev;
8499 return;
8500 }
8501 static const char LOCATE_parser___parser_prod___AExternMethPropdef___empty_init[] = "parser_prod::AExternMethPropdef::empty_init";
8502 void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
8503 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
8504 struct {struct stack_frame_t me;} fra;
8505 val_t tmp;
8506 if (init_table[itpos45]) return;
8507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8508 fra.me.file = LOCATE_parser___parser_prod;
8509 fra.me.line = 1516;
8510 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
8511 fra.me.has_broke = 0;
8512 fra.me.REG_size = 1;
8513 fra.me.nitni_local_ref_head = NULL;
8514 fra.me.REG[0] = NIT_NULL;
8515 fra.me.REG[0] = p0;
8516 stack_frame_head = fra.me.prev;
8517 init_table[itpos45] = 1;
8518 return;
8519 }
8520 static const char LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef[] = "parser_prod::AExternMethPropdef::init_aexternmethpropdef";
8521 void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table){
8522 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
8523 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
8524 val_t REGB0;
8525 val_t REGB1;
8526 val_t tmp;
8527 if (init_table[itpos46]) return;
8528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8529 fra.me.file = LOCATE_parser___parser_prod;
8530 fra.me.line = 1518;
8531 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
8532 fra.me.has_broke = 0;
8533 fra.me.REG_size = 11;
8534 fra.me.nitni_local_ref_head = NULL;
8535 fra.me.REG[0] = NIT_NULL;
8536 fra.me.REG[1] = NIT_NULL;
8537 fra.me.REG[2] = NIT_NULL;
8538 fra.me.REG[3] = NIT_NULL;
8539 fra.me.REG[4] = NIT_NULL;
8540 fra.me.REG[5] = NIT_NULL;
8541 fra.me.REG[6] = NIT_NULL;
8542 fra.me.REG[7] = NIT_NULL;
8543 fra.me.REG[8] = NIT_NULL;
8544 fra.me.REG[9] = NIT_NULL;
8545 fra.me.REG[10] = NIT_NULL;
8546 fra.me.REG[0] = p0;
8547 fra.me.REG[1] = p1;
8548 fra.me.REG[2] = p2;
8549 fra.me.REG[3] = p3;
8550 fra.me.REG[4] = p4;
8551 fra.me.REG[5] = p5;
8552 fra.me.REG[6] = p6;
8553 fra.me.REG[7] = p7;
8554 fra.me.REG[8] = p8;
8555 fra.me.REG[9] = p9;
8556 /* parser/parser_prod.nit:1518 */
8557 fra.me.REG[10] = fra.me.REG[0];
8558 /* parser/parser_prod.nit:1530 */
8559 CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[10])(fra.me.REG[10], init_table);
8560 /* parser/parser_prod.nit:1531 */
8561 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[10]) = fra.me.REG[1];
8562 /* parser/parser_prod.nit:1532 */
8563 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8564 if (UNTAG_Bool(REGB0)) {
8565 } else {
8566 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8567 if (UNTAG_Bool(REGB1)) {
8568 REGB1 = TAG_Bool(0);
8569 REGB0 = REGB1;
8570 } else {
8571 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8572 REGB0 = REGB1;
8573 }
8574 }
8575 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8576 if (UNTAG_Bool(REGB0)) {
8577 /* parser/parser_prod.nit:1533 */
8578 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8579 if (UNTAG_Bool(REGB0)) {
8580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1533);
8581 }
8582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
8583 }
8584 /* parser/parser_prod.nit:1535 */
8585 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[10]) = fra.me.REG[2];
8586 /* parser/parser_prod.nit:1536 */
8587 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8588 if (UNTAG_Bool(REGB0)) {
8589 } else {
8590 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8591 if (UNTAG_Bool(REGB1)) {
8592 REGB1 = TAG_Bool(0);
8593 REGB0 = REGB1;
8594 } else {
8595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8596 REGB0 = REGB1;
8597 }
8598 }
8599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8600 if (UNTAG_Bool(REGB0)) {
8601 /* parser/parser_prod.nit:1537 */
8602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8603 if (UNTAG_Bool(REGB0)) {
8604 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1537);
8605 }
8606 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
8607 }
8608 /* parser/parser_prod.nit:1539 */
8609 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8610 if (UNTAG_Bool(REGB0)) {
8611 } else {
8612 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1539);
8613 }
8614 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[10]) = fra.me.REG[3];
8615 /* parser/parser_prod.nit:1540 */
8616 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8617 if (UNTAG_Bool(REGB0)) {
8618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1540);
8619 }
8620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
8621 /* parser/parser_prod.nit:1541 */
8622 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8623 if (UNTAG_Bool(REGB0)) {
8624 } else {
8625 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1541);
8626 }
8627 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[10]) = fra.me.REG[4];
8628 /* parser/parser_prod.nit:1542 */
8629 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8630 if (UNTAG_Bool(REGB0)) {
8631 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1542);
8632 }
8633 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
8634 /* parser/parser_prod.nit:1543 */
8635 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8636 if (UNTAG_Bool(REGB0)) {
8637 } else {
8638 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1543);
8639 }
8640 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[10]) = fra.me.REG[5];
8641 /* parser/parser_prod.nit:1544 */
8642 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8643 if (UNTAG_Bool(REGB0)) {
8644 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1544);
8645 }
8646 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
8647 /* parser/parser_prod.nit:1545 */
8648 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8649 if (UNTAG_Bool(REGB0)) {
8650 } else {
8651 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1545);
8652 }
8653 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[10]) = fra.me.REG[6];
8654 /* parser/parser_prod.nit:1546 */
8655 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8656 if (UNTAG_Bool(REGB0)) {
8657 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1546);
8658 }
8659 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
8660 /* parser/parser_prod.nit:1547 */
8661 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[10]) = fra.me.REG[7];
8662 /* parser/parser_prod.nit:1548 */
8663 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8664 if (UNTAG_Bool(REGB0)) {
8665 } else {
8666 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8667 if (UNTAG_Bool(REGB1)) {
8668 REGB1 = TAG_Bool(0);
8669 REGB0 = REGB1;
8670 } else {
8671 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8672 REGB0 = REGB1;
8673 }
8674 }
8675 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8676 if (UNTAG_Bool(REGB0)) {
8677 /* parser/parser_prod.nit:1549 */
8678 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8679 if (UNTAG_Bool(REGB0)) {
8680 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1549);
8681 }
8682 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
8683 }
8684 /* parser/parser_prod.nit:1551 */
8685 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[10]) = fra.me.REG[8];
8686 /* parser/parser_prod.nit:1552 */
8687 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8688 if (UNTAG_Bool(REGB0)) {
8689 } else {
8690 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8691 if (UNTAG_Bool(REGB1)) {
8692 REGB1 = TAG_Bool(0);
8693 REGB0 = REGB1;
8694 } else {
8695 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
8696 REGB0 = REGB1;
8697 }
8698 }
8699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8700 if (UNTAG_Bool(REGB0)) {
8701 /* parser/parser_prod.nit:1553 */
8702 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8703 if (UNTAG_Bool(REGB0)) {
8704 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1553);
8705 }
8706 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
8707 }
8708 /* parser/parser_prod.nit:1555 */
8709 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[10]) = fra.me.REG[9];
8710 /* parser/parser_prod.nit:1556 */
8711 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8712 if (UNTAG_Bool(REGB0)) {
8713 } else {
8714 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8715 if (UNTAG_Bool(REGB1)) {
8716 REGB1 = TAG_Bool(0);
8717 REGB0 = REGB1;
8718 } else {
8719 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
8720 REGB0 = REGB1;
8721 }
8722 }
8723 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8724 if (UNTAG_Bool(REGB0)) {
8725 /* parser/parser_prod.nit:1557 */
8726 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8727 if (UNTAG_Bool(REGB0)) {
8728 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1557);
8729 }
8730 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
8731 }
8732 stack_frame_head = fra.me.prev;
8733 init_table[itpos46] = 1;
8734 return;
8735 }
8736 static const char LOCATE_parser___parser_prod___AExternMethPropdef___replace_child[] = "parser_prod::AExternMethPropdef::(parser_prod::ANode::replace_child)";
8737 void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8738 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8739 val_t REGB0;
8740 val_t REGB1;
8741 val_t tmp;
8742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8743 fra.me.file = LOCATE_parser___parser_prod;
8744 fra.me.line = 1561;
8745 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
8746 fra.me.has_broke = 0;
8747 fra.me.REG_size = 4;
8748 fra.me.nitni_local_ref_head = NULL;
8749 fra.me.REG[0] = NIT_NULL;
8750 fra.me.REG[1] = NIT_NULL;
8751 fra.me.REG[2] = NIT_NULL;
8752 fra.me.REG[3] = NIT_NULL;
8753 fra.me.REG[0] = p0;
8754 fra.me.REG[1] = p1;
8755 fra.me.REG[2] = p2;
8756 /* parser/parser_prod.nit:1563 */
8757 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8758 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8759 if (UNTAG_Bool(REGB0)) {
8760 } else {
8761 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8762 if (UNTAG_Bool(REGB1)) {
8763 REGB1 = TAG_Bool(0);
8764 REGB0 = REGB1;
8765 } else {
8766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8767 REGB0 = REGB1;
8768 }
8769 }
8770 if (UNTAG_Bool(REGB0)) {
8771 /* parser/parser_prod.nit:1564 */
8772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8773 if (UNTAG_Bool(REGB0)) {
8774 } else {
8775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8776 if (UNTAG_Bool(REGB1)) {
8777 REGB1 = TAG_Bool(0);
8778 REGB0 = REGB1;
8779 } else {
8780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8781 REGB0 = REGB1;
8782 }
8783 }
8784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8785 if (UNTAG_Bool(REGB0)) {
8786 /* parser/parser_prod.nit:1565 */
8787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8788 if (UNTAG_Bool(REGB0)) {
8789 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1565);
8790 }
8791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8792 /* parser/parser_prod.nit:1566 */
8793 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*/;
8794 if (UNTAG_Bool(REGB0)) {
8795 } else {
8796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1566);
8797 }
8798 /* parser/parser_prod.nit:1567 */
8799 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8800 } else {
8801 /* parser/parser_prod.nit:1569 */
8802 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8803 }
8804 /* parser/parser_prod.nit:1571 */
8805 goto label1;
8806 }
8807 /* parser/parser_prod.nit:1573 */
8808 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8809 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8810 if (UNTAG_Bool(REGB0)) {
8811 } else {
8812 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8813 if (UNTAG_Bool(REGB1)) {
8814 REGB1 = TAG_Bool(0);
8815 REGB0 = REGB1;
8816 } else {
8817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8818 REGB0 = REGB1;
8819 }
8820 }
8821 if (UNTAG_Bool(REGB0)) {
8822 /* parser/parser_prod.nit:1574 */
8823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8824 if (UNTAG_Bool(REGB0)) {
8825 } else {
8826 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8827 if (UNTAG_Bool(REGB1)) {
8828 REGB1 = TAG_Bool(0);
8829 REGB0 = REGB1;
8830 } else {
8831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8832 REGB0 = REGB1;
8833 }
8834 }
8835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8836 if (UNTAG_Bool(REGB0)) {
8837 /* parser/parser_prod.nit:1575 */
8838 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8839 if (UNTAG_Bool(REGB0)) {
8840 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1575);
8841 }
8842 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8843 /* parser/parser_prod.nit:1576 */
8844 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*/;
8845 if (UNTAG_Bool(REGB0)) {
8846 } else {
8847 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1576);
8848 }
8849 /* parser/parser_prod.nit:1577 */
8850 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8851 } else {
8852 /* parser/parser_prod.nit:1579 */
8853 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8854 }
8855 /* parser/parser_prod.nit:1581 */
8856 goto label1;
8857 }
8858 /* parser/parser_prod.nit:1583 */
8859 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8860 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8861 if (UNTAG_Bool(REGB0)) {
8862 } else {
8863 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8864 if (UNTAG_Bool(REGB1)) {
8865 REGB1 = TAG_Bool(0);
8866 REGB0 = REGB1;
8867 } else {
8868 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8869 REGB0 = REGB1;
8870 }
8871 }
8872 if (UNTAG_Bool(REGB0)) {
8873 /* parser/parser_prod.nit:1584 */
8874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8875 if (UNTAG_Bool(REGB0)) {
8876 } else {
8877 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8878 if (UNTAG_Bool(REGB1)) {
8879 REGB1 = TAG_Bool(0);
8880 REGB0 = REGB1;
8881 } else {
8882 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8883 REGB0 = REGB1;
8884 }
8885 }
8886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8887 if (UNTAG_Bool(REGB0)) {
8888 /* parser/parser_prod.nit:1585 */
8889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8890 if (UNTAG_Bool(REGB0)) {
8891 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1585);
8892 }
8893 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8894 /* parser/parser_prod.nit:1586 */
8895 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*/;
8896 if (UNTAG_Bool(REGB0)) {
8897 } else {
8898 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1586);
8899 }
8900 /* parser/parser_prod.nit:1587 */
8901 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8902 } else {
8903 /* parser/parser_prod.nit:1589 */
8904 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1589);
8905 }
8906 /* parser/parser_prod.nit:1591 */
8907 goto label1;
8908 }
8909 /* parser/parser_prod.nit:1593 */
8910 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8911 if (UNTAG_Bool(REGB0)) {
8912 } else {
8913 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1593);
8914 }
8915 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8916 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8917 if (UNTAG_Bool(REGB0)) {
8918 } else {
8919 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8920 REGB0 = REGB1;
8921 }
8922 if (UNTAG_Bool(REGB0)) {
8923 /* parser/parser_prod.nit:1594 */
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(0);
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:1595 */
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, 1595);
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:1596 */
8945 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*/;
8946 if (UNTAG_Bool(REGB0)) {
8947 } else {
8948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1596);
8949 }
8950 /* parser/parser_prod.nit:1597 */
8951 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8952 } else {
8953 /* parser/parser_prod.nit:1599 */
8954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1599);
8955 }
8956 /* parser/parser_prod.nit:1601 */
8957 goto label1;
8958 }
8959 /* parser/parser_prod.nit:1603 */
8960 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(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(0);
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:1604 */
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(0);
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:1605 */
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, 1605);
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:1606 */
8996 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*/;
8997 if (UNTAG_Bool(REGB0)) {
8998 } else {
8999 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1606);
9000 }
9001 /* parser/parser_prod.nit:1607 */
9002 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9003 } else {
9004 /* parser/parser_prod.nit:1609 */
9005 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1609);
9006 }
9007 /* parser/parser_prod.nit:1611 */
9008 goto label1;
9009 }
9010 /* parser/parser_prod.nit:1613 */
9011 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9012 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9013 if (UNTAG_Bool(REGB0)) {
9014 } else {
9015 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9016 if (UNTAG_Bool(REGB1)) {
9017 REGB1 = TAG_Bool(0);
9018 REGB0 = REGB1;
9019 } else {
9020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9021 REGB0 = REGB1;
9022 }
9023 }
9024 if (UNTAG_Bool(REGB0)) {
9025 /* parser/parser_prod.nit:1614 */
9026 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9027 if (UNTAG_Bool(REGB0)) {
9028 } else {
9029 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9030 if (UNTAG_Bool(REGB1)) {
9031 REGB1 = TAG_Bool(0);
9032 REGB0 = REGB1;
9033 } else {
9034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9035 REGB0 = REGB1;
9036 }
9037 }
9038 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9039 if (UNTAG_Bool(REGB0)) {
9040 /* parser/parser_prod.nit:1615 */
9041 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9042 if (UNTAG_Bool(REGB0)) {
9043 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1615);
9044 }
9045 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9046 /* parser/parser_prod.nit:1616 */
9047 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*/;
9048 if (UNTAG_Bool(REGB0)) {
9049 } else {
9050 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1616);
9051 }
9052 /* parser/parser_prod.nit:1617 */
9053 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9054 } else {
9055 /* parser/parser_prod.nit:1619 */
9056 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1619);
9057 }
9058 /* parser/parser_prod.nit:1621 */
9059 goto label1;
9060 }
9061 /* parser/parser_prod.nit:1623 */
9062 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
9063 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9064 if (UNTAG_Bool(REGB0)) {
9065 } else {
9066 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9067 if (UNTAG_Bool(REGB1)) {
9068 REGB1 = TAG_Bool(0);
9069 REGB0 = REGB1;
9070 } else {
9071 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9072 REGB0 = REGB1;
9073 }
9074 }
9075 if (UNTAG_Bool(REGB0)) {
9076 /* parser/parser_prod.nit:1624 */
9077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9078 if (UNTAG_Bool(REGB0)) {
9079 } else {
9080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9081 if (UNTAG_Bool(REGB1)) {
9082 REGB1 = TAG_Bool(0);
9083 REGB0 = REGB1;
9084 } else {
9085 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9086 REGB0 = REGB1;
9087 }
9088 }
9089 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9090 if (UNTAG_Bool(REGB0)) {
9091 /* parser/parser_prod.nit:1625 */
9092 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9093 if (UNTAG_Bool(REGB0)) {
9094 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1625);
9095 }
9096 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9097 /* parser/parser_prod.nit:1626 */
9098 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*/;
9099 if (UNTAG_Bool(REGB0)) {
9100 } else {
9101 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1626);
9102 }
9103 /* parser/parser_prod.nit:1627 */
9104 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
9105 } else {
9106 /* parser/parser_prod.nit:1629 */
9107 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
9108 }
9109 /* parser/parser_prod.nit:1631 */
9110 goto label1;
9111 }
9112 /* parser/parser_prod.nit:1633 */
9113 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
9114 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9115 if (UNTAG_Bool(REGB0)) {
9116 } else {
9117 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9118 if (UNTAG_Bool(REGB1)) {
9119 REGB1 = TAG_Bool(0);
9120 REGB0 = REGB1;
9121 } else {
9122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9123 REGB0 = REGB1;
9124 }
9125 }
9126 if (UNTAG_Bool(REGB0)) {
9127 /* parser/parser_prod.nit:1634 */
9128 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9129 if (UNTAG_Bool(REGB0)) {
9130 } else {
9131 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9132 if (UNTAG_Bool(REGB1)) {
9133 REGB1 = TAG_Bool(0);
9134 REGB0 = REGB1;
9135 } else {
9136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9137 REGB0 = REGB1;
9138 }
9139 }
9140 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9141 if (UNTAG_Bool(REGB0)) {
9142 /* parser/parser_prod.nit:1635 */
9143 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9144 if (UNTAG_Bool(REGB0)) {
9145 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1635);
9146 }
9147 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9148 /* parser/parser_prod.nit:1636 */
9149 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
9150 if (UNTAG_Bool(REGB0)) {
9151 } else {
9152 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1636);
9153 }
9154 /* parser/parser_prod.nit:1637 */
9155 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
9156 } else {
9157 /* parser/parser_prod.nit:1639 */
9158 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
9159 }
9160 /* parser/parser_prod.nit:1641 */
9161 goto label1;
9162 }
9163 /* parser/parser_prod.nit:1643 */
9164 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]);
9165 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9166 if (UNTAG_Bool(REGB0)) {
9167 } else {
9168 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9169 if (UNTAG_Bool(REGB1)) {
9170 REGB1 = TAG_Bool(0);
9171 REGB0 = REGB1;
9172 } else {
9173 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9174 REGB0 = REGB1;
9175 }
9176 }
9177 if (UNTAG_Bool(REGB0)) {
9178 /* parser/parser_prod.nit:1644 */
9179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9180 if (UNTAG_Bool(REGB0)) {
9181 } else {
9182 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9183 if (UNTAG_Bool(REGB1)) {
9184 REGB1 = TAG_Bool(0);
9185 REGB0 = REGB1;
9186 } else {
9187 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9188 REGB0 = REGB1;
9189 }
9190 }
9191 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9192 if (UNTAG_Bool(REGB0)) {
9193 /* parser/parser_prod.nit:1645 */
9194 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9195 if (UNTAG_Bool(REGB0)) {
9196 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1645);
9197 }
9198 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9199 /* parser/parser_prod.nit:1646 */
9200 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
9201 if (UNTAG_Bool(REGB0)) {
9202 } else {
9203 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1646);
9204 }
9205 /* parser/parser_prod.nit:1647 */
9206 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = fra.me.REG[2];
9207 } else {
9208 /* parser/parser_prod.nit:1649 */
9209 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = NIT_NULL;
9210 }
9211 /* parser/parser_prod.nit:1651 */
9212 goto label1;
9213 }
9214 label1: while(0);
9215 stack_frame_head = fra.me.prev;
9216 return;
9217 }
9218 static const char LOCATE_parser___parser_prod___AExternMethPropdef___visit_all[] = "parser_prod::AExternMethPropdef::(parser_prod::ANode::visit_all)";
9219 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
9220 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9221 val_t REGB0;
9222 val_t REGB1;
9223 val_t tmp;
9224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9225 fra.me.file = LOCATE_parser___parser_prod;
9226 fra.me.line = 1655;
9227 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
9228 fra.me.has_broke = 0;
9229 fra.me.REG_size = 4;
9230 fra.me.nitni_local_ref_head = NULL;
9231 fra.me.REG[0] = NIT_NULL;
9232 fra.me.REG[1] = NIT_NULL;
9233 fra.me.REG[2] = NIT_NULL;
9234 fra.me.REG[3] = NIT_NULL;
9235 fra.me.REG[0] = p0;
9236 fra.me.REG[1] = p1;
9237 /* parser/parser_prod.nit:1655 */
9238 fra.me.REG[2] = fra.me.REG[0];
9239 /* parser/parser_prod.nit:1657 */
9240 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9241 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9242 if (UNTAG_Bool(REGB0)) {
9243 } else {
9244 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9245 if (UNTAG_Bool(REGB1)) {
9246 REGB1 = TAG_Bool(0);
9247 REGB0 = REGB1;
9248 } else {
9249 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9250 REGB0 = REGB1;
9251 }
9252 }
9253 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9254 if (UNTAG_Bool(REGB0)) {
9255 /* parser/parser_prod.nit:1658 */
9256 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9257 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*/;
9258 if (UNTAG_Bool(REGB0)) {
9259 } else {
9260 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1658);
9261 }
9262 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9263 }
9264 /* parser/parser_prod.nit:1660 */
9265 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9266 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9267 if (UNTAG_Bool(REGB0)) {
9268 } else {
9269 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9270 if (UNTAG_Bool(REGB1)) {
9271 REGB1 = TAG_Bool(0);
9272 REGB0 = REGB1;
9273 } else {
9274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9275 REGB0 = REGB1;
9276 }
9277 }
9278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9279 if (UNTAG_Bool(REGB0)) {
9280 /* parser/parser_prod.nit:1661 */
9281 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9282 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*/;
9283 if (UNTAG_Bool(REGB0)) {
9284 } else {
9285 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1661);
9286 }
9287 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9288 }
9289 /* parser/parser_prod.nit:1663 */
9290 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9291 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9292 /* parser/parser_prod.nit:1664 */
9293 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
9294 if (UNTAG_Bool(REGB0)) {
9295 } else {
9296 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1664);
9297 }
9298 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
9299 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9300 /* parser/parser_prod.nit:1665 */
9301 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9302 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9303 /* parser/parser_prod.nit:1666 */
9304 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9305 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9306 /* parser/parser_prod.nit:1667 */
9307 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
9308 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9309 if (UNTAG_Bool(REGB0)) {
9310 } else {
9311 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9312 if (UNTAG_Bool(REGB1)) {
9313 REGB1 = TAG_Bool(0);
9314 REGB0 = REGB1;
9315 } else {
9316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9317 REGB0 = REGB1;
9318 }
9319 }
9320 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9321 if (UNTAG_Bool(REGB0)) {
9322 /* parser/parser_prod.nit:1668 */
9323 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
9324 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
9325 if (UNTAG_Bool(REGB0)) {
9326 } else {
9327 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1668);
9328 }
9329 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9330 }
9331 /* parser/parser_prod.nit:1670 */
9332 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
9333 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
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(0);
9339 REGB0 = REGB1;
9340 } else {
9341 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9342 REGB0 = REGB1;
9343 }
9344 }
9345 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9346 if (UNTAG_Bool(REGB0)) {
9347 /* parser/parser_prod.nit:1671 */
9348 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
9349 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
9350 if (UNTAG_Bool(REGB0)) {
9351 } else {
9352 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1671);
9353 }
9354 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9355 }
9356 /* parser/parser_prod.nit:1673 */
9357 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
9358 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9359 if (UNTAG_Bool(REGB0)) {
9360 } else {
9361 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9362 if (UNTAG_Bool(REGB1)) {
9363 REGB1 = TAG_Bool(0);
9364 REGB0 = REGB1;
9365 } else {
9366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9367 REGB0 = REGB1;
9368 }
9369 }
9370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9371 if (UNTAG_Bool(REGB0)) {
9372 /* parser/parser_prod.nit:1674 */
9373 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
9374 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
9375 if (UNTAG_Bool(REGB0)) {
9376 } else {
9377 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1674);
9378 }
9379 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9380 }
9381 stack_frame_head = fra.me.prev;
9382 return;
9383 }
9384 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init[] = "parser_prod::AConcreteMethPropdef::empty_init";
9385 void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
9386 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
9387 struct {struct stack_frame_t me;} fra;
9388 val_t tmp;
9389 if (init_table[itpos47]) return;
9390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9391 fra.me.file = LOCATE_parser___parser_prod;
9392 fra.me.line = 1679;
9393 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
9394 fra.me.has_broke = 0;
9395 fra.me.REG_size = 1;
9396 fra.me.nitni_local_ref_head = NULL;
9397 fra.me.REG[0] = NIT_NULL;
9398 fra.me.REG[0] = p0;
9399 stack_frame_head = fra.me.prev;
9400 init_table[itpos47] = 1;
9401 return;
9402 }
9403 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef[] = "parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef";
9404 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){
9405 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
9406 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
9407 val_t REGB0;
9408 val_t REGB1;
9409 val_t tmp;
9410 if (init_table[itpos48]) return;
9411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9412 fra.me.file = LOCATE_parser___parser_prod;
9413 fra.me.line = 1681;
9414 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
9415 fra.me.has_broke = 0;
9416 fra.me.REG_size = 9;
9417 fra.me.nitni_local_ref_head = NULL;
9418 fra.me.REG[0] = NIT_NULL;
9419 fra.me.REG[1] = NIT_NULL;
9420 fra.me.REG[2] = NIT_NULL;
9421 fra.me.REG[3] = NIT_NULL;
9422 fra.me.REG[4] = NIT_NULL;
9423 fra.me.REG[5] = NIT_NULL;
9424 fra.me.REG[6] = NIT_NULL;
9425 fra.me.REG[7] = NIT_NULL;
9426 fra.me.REG[8] = NIT_NULL;
9427 fra.me.REG[0] = p0;
9428 fra.me.REG[1] = p1;
9429 fra.me.REG[2] = p2;
9430 fra.me.REG[3] = p3;
9431 fra.me.REG[4] = p4;
9432 fra.me.REG[5] = p5;
9433 fra.me.REG[6] = p6;
9434 fra.me.REG[7] = p7;
9435 /* parser/parser_prod.nit:1681 */
9436 fra.me.REG[8] = fra.me.REG[0];
9437 /* parser/parser_prod.nit:1691 */
9438 CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
9439 /* parser/parser_prod.nit:1692 */
9440 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
9441 /* parser/parser_prod.nit:1693 */
9442 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9443 if (UNTAG_Bool(REGB0)) {
9444 } else {
9445 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9446 if (UNTAG_Bool(REGB1)) {
9447 REGB1 = TAG_Bool(0);
9448 REGB0 = REGB1;
9449 } else {
9450 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9451 REGB0 = REGB1;
9452 }
9453 }
9454 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9455 if (UNTAG_Bool(REGB0)) {
9456 /* parser/parser_prod.nit:1694 */
9457 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9458 if (UNTAG_Bool(REGB0)) {
9459 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1694);
9460 }
9461 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
9462 }
9463 /* parser/parser_prod.nit:1696 */
9464 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
9465 /* parser/parser_prod.nit:1697 */
9466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9467 if (UNTAG_Bool(REGB0)) {
9468 } else {
9469 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9470 if (UNTAG_Bool(REGB1)) {
9471 REGB1 = TAG_Bool(0);
9472 REGB0 = REGB1;
9473 } else {
9474 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9475 REGB0 = REGB1;
9476 }
9477 }
9478 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9479 if (UNTAG_Bool(REGB0)) {
9480 /* parser/parser_prod.nit:1698 */
9481 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9482 if (UNTAG_Bool(REGB0)) {
9483 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1698);
9484 }
9485 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
9486 }
9487 /* parser/parser_prod.nit:1700 */
9488 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9489 if (UNTAG_Bool(REGB0)) {
9490 } else {
9491 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1700);
9492 }
9493 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
9494 /* parser/parser_prod.nit:1701 */
9495 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9496 if (UNTAG_Bool(REGB0)) {
9497 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1701);
9498 }
9499 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
9500 /* parser/parser_prod.nit:1702 */
9501 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9502 if (UNTAG_Bool(REGB0)) {
9503 } else {
9504 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1702);
9505 }
9506 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
9507 /* parser/parser_prod.nit:1703 */
9508 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9509 if (UNTAG_Bool(REGB0)) {
9510 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1703);
9511 }
9512 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
9513 /* parser/parser_prod.nit:1704 */
9514 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
9515 if (UNTAG_Bool(REGB0)) {
9516 } else {
9517 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1704);
9518 }
9519 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
9520 /* parser/parser_prod.nit:1705 */
9521 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9522 if (UNTAG_Bool(REGB0)) {
9523 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1705);
9524 }
9525 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
9526 /* parser/parser_prod.nit:1706 */
9527 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9528 if (UNTAG_Bool(REGB0)) {
9529 } else {
9530 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1706);
9531 }
9532 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
9533 /* parser/parser_prod.nit:1707 */
9534 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9535 if (UNTAG_Bool(REGB0)) {
9536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1707);
9537 }
9538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
9539 /* parser/parser_prod.nit:1708 */
9540 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
9541 /* parser/parser_prod.nit:1709 */
9542 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9543 if (UNTAG_Bool(REGB0)) {
9544 } else {
9545 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9546 if (UNTAG_Bool(REGB1)) {
9547 REGB1 = TAG_Bool(0);
9548 REGB0 = REGB1;
9549 } else {
9550 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9551 REGB0 = REGB1;
9552 }
9553 }
9554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9555 if (UNTAG_Bool(REGB0)) {
9556 /* parser/parser_prod.nit:1710 */
9557 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9558 if (UNTAG_Bool(REGB0)) {
9559 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1710);
9560 }
9561 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9562 }
9563 stack_frame_head = fra.me.prev;
9564 init_table[itpos48] = 1;
9565 return;
9566 }
9567 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child[] = "parser_prod::AConcreteMethPropdef::(parser_prod::ANode::replace_child)";
9568 void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9569 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9570 val_t REGB0;
9571 val_t REGB1;
9572 val_t tmp;
9573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9574 fra.me.file = LOCATE_parser___parser_prod;
9575 fra.me.line = 1714;
9576 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
9577 fra.me.has_broke = 0;
9578 fra.me.REG_size = 4;
9579 fra.me.nitni_local_ref_head = NULL;
9580 fra.me.REG[0] = NIT_NULL;
9581 fra.me.REG[1] = NIT_NULL;
9582 fra.me.REG[2] = NIT_NULL;
9583 fra.me.REG[3] = NIT_NULL;
9584 fra.me.REG[0] = p0;
9585 fra.me.REG[1] = p1;
9586 fra.me.REG[2] = p2;
9587 /* parser/parser_prod.nit:1716 */
9588 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9589 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9590 if (UNTAG_Bool(REGB0)) {
9591 } else {
9592 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9593 if (UNTAG_Bool(REGB1)) {
9594 REGB1 = TAG_Bool(0);
9595 REGB0 = REGB1;
9596 } else {
9597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9598 REGB0 = REGB1;
9599 }
9600 }
9601 if (UNTAG_Bool(REGB0)) {
9602 /* parser/parser_prod.nit:1717 */
9603 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9604 if (UNTAG_Bool(REGB0)) {
9605 } else {
9606 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9607 if (UNTAG_Bool(REGB1)) {
9608 REGB1 = TAG_Bool(0);
9609 REGB0 = REGB1;
9610 } else {
9611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9612 REGB0 = REGB1;
9613 }
9614 }
9615 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9616 if (UNTAG_Bool(REGB0)) {
9617 /* parser/parser_prod.nit:1718 */
9618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9619 if (UNTAG_Bool(REGB0)) {
9620 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1718);
9621 }
9622 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9623 /* parser/parser_prod.nit:1719 */
9624 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9625 if (UNTAG_Bool(REGB0)) {
9626 } else {
9627 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1719);
9628 }
9629 /* parser/parser_prod.nit:1720 */
9630 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9631 } else {
9632 /* parser/parser_prod.nit:1722 */
9633 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9634 }
9635 /* parser/parser_prod.nit:1724 */
9636 goto label1;
9637 }
9638 /* parser/parser_prod.nit:1726 */
9639 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9640 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9641 if (UNTAG_Bool(REGB0)) {
9642 } else {
9643 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9644 if (UNTAG_Bool(REGB1)) {
9645 REGB1 = TAG_Bool(0);
9646 REGB0 = REGB1;
9647 } else {
9648 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9649 REGB0 = REGB1;
9650 }
9651 }
9652 if (UNTAG_Bool(REGB0)) {
9653 /* parser/parser_prod.nit:1727 */
9654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9655 if (UNTAG_Bool(REGB0)) {
9656 } else {
9657 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9658 if (UNTAG_Bool(REGB1)) {
9659 REGB1 = TAG_Bool(0);
9660 REGB0 = REGB1;
9661 } else {
9662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9663 REGB0 = REGB1;
9664 }
9665 }
9666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9667 if (UNTAG_Bool(REGB0)) {
9668 /* parser/parser_prod.nit:1728 */
9669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9670 if (UNTAG_Bool(REGB0)) {
9671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1728);
9672 }
9673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9674 /* parser/parser_prod.nit:1729 */
9675 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9676 if (UNTAG_Bool(REGB0)) {
9677 } else {
9678 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1729);
9679 }
9680 /* parser/parser_prod.nit:1730 */
9681 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9682 } else {
9683 /* parser/parser_prod.nit:1732 */
9684 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9685 }
9686 /* parser/parser_prod.nit:1734 */
9687 goto label1;
9688 }
9689 /* parser/parser_prod.nit:1736 */
9690 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9691 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9692 if (UNTAG_Bool(REGB0)) {
9693 } else {
9694 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9695 if (UNTAG_Bool(REGB1)) {
9696 REGB1 = TAG_Bool(0);
9697 REGB0 = REGB1;
9698 } else {
9699 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9700 REGB0 = REGB1;
9701 }
9702 }
9703 if (UNTAG_Bool(REGB0)) {
9704 /* parser/parser_prod.nit:1737 */
9705 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9706 if (UNTAG_Bool(REGB0)) {
9707 } else {
9708 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9709 if (UNTAG_Bool(REGB1)) {
9710 REGB1 = TAG_Bool(0);
9711 REGB0 = REGB1;
9712 } else {
9713 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9714 REGB0 = REGB1;
9715 }
9716 }
9717 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9718 if (UNTAG_Bool(REGB0)) {
9719 /* parser/parser_prod.nit:1738 */
9720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9721 if (UNTAG_Bool(REGB0)) {
9722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1738);
9723 }
9724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9725 /* parser/parser_prod.nit:1739 */
9726 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
9727 if (UNTAG_Bool(REGB0)) {
9728 } else {
9729 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1739);
9730 }
9731 /* parser/parser_prod.nit:1740 */
9732 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9733 } else {
9734 /* parser/parser_prod.nit:1742 */
9735 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1742);
9736 }
9737 /* parser/parser_prod.nit:1744 */
9738 goto label1;
9739 }
9740 /* parser/parser_prod.nit:1746 */
9741 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
9742 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9743 if (UNTAG_Bool(REGB0)) {
9744 } else {
9745 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9746 if (UNTAG_Bool(REGB1)) {
9747 REGB1 = TAG_Bool(0);
9748 REGB0 = REGB1;
9749 } else {
9750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9751 REGB0 = REGB1;
9752 }
9753 }
9754 if (UNTAG_Bool(REGB0)) {
9755 /* parser/parser_prod.nit:1747 */
9756 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9757 if (UNTAG_Bool(REGB0)) {
9758 } else {
9759 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9760 if (UNTAG_Bool(REGB1)) {
9761 REGB1 = TAG_Bool(0);
9762 REGB0 = REGB1;
9763 } else {
9764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9765 REGB0 = REGB1;
9766 }
9767 }
9768 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9769 if (UNTAG_Bool(REGB0)) {
9770 /* parser/parser_prod.nit:1748 */
9771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9772 if (UNTAG_Bool(REGB0)) {
9773 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1748);
9774 }
9775 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9776 /* parser/parser_prod.nit:1749 */
9777 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*/;
9778 if (UNTAG_Bool(REGB0)) {
9779 } else {
9780 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1749);
9781 }
9782 /* parser/parser_prod.nit:1750 */
9783 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
9784 } else {
9785 /* parser/parser_prod.nit:1752 */
9786 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1752);
9787 }
9788 /* parser/parser_prod.nit:1754 */
9789 goto label1;
9790 }
9791 /* parser/parser_prod.nit:1756 */
9792 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9793 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9794 if (UNTAG_Bool(REGB0)) {
9795 } else {
9796 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9797 if (UNTAG_Bool(REGB1)) {
9798 REGB1 = TAG_Bool(0);
9799 REGB0 = REGB1;
9800 } else {
9801 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9802 REGB0 = REGB1;
9803 }
9804 }
9805 if (UNTAG_Bool(REGB0)) {
9806 /* parser/parser_prod.nit:1757 */
9807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9808 if (UNTAG_Bool(REGB0)) {
9809 } else {
9810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9811 if (UNTAG_Bool(REGB1)) {
9812 REGB1 = TAG_Bool(0);
9813 REGB0 = REGB1;
9814 } else {
9815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9816 REGB0 = REGB1;
9817 }
9818 }
9819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9820 if (UNTAG_Bool(REGB0)) {
9821 /* parser/parser_prod.nit:1758 */
9822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9823 if (UNTAG_Bool(REGB0)) {
9824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1758);
9825 }
9826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9827 /* parser/parser_prod.nit:1759 */
9828 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*/;
9829 if (UNTAG_Bool(REGB0)) {
9830 } else {
9831 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1759);
9832 }
9833 /* parser/parser_prod.nit:1760 */
9834 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9835 } else {
9836 /* parser/parser_prod.nit:1762 */
9837 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1762);
9838 }
9839 /* parser/parser_prod.nit:1764 */
9840 goto label1;
9841 }
9842 /* parser/parser_prod.nit:1766 */
9843 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9844 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9845 if (UNTAG_Bool(REGB0)) {
9846 } else {
9847 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9848 if (UNTAG_Bool(REGB1)) {
9849 REGB1 = TAG_Bool(0);
9850 REGB0 = REGB1;
9851 } else {
9852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9853 REGB0 = REGB1;
9854 }
9855 }
9856 if (UNTAG_Bool(REGB0)) {
9857 /* parser/parser_prod.nit:1767 */
9858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9859 if (UNTAG_Bool(REGB0)) {
9860 } else {
9861 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9862 if (UNTAG_Bool(REGB1)) {
9863 REGB1 = TAG_Bool(0);
9864 REGB0 = REGB1;
9865 } else {
9866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9867 REGB0 = REGB1;
9868 }
9869 }
9870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9871 if (UNTAG_Bool(REGB0)) {
9872 /* parser/parser_prod.nit:1768 */
9873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9874 if (UNTAG_Bool(REGB0)) {
9875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1768);
9876 }
9877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9878 /* parser/parser_prod.nit:1769 */
9879 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*/;
9880 if (UNTAG_Bool(REGB0)) {
9881 } else {
9882 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1769);
9883 }
9884 /* parser/parser_prod.nit:1770 */
9885 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9886 } else {
9887 /* parser/parser_prod.nit:1772 */
9888 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1772);
9889 }
9890 /* parser/parser_prod.nit:1774 */
9891 goto label1;
9892 }
9893 /* parser/parser_prod.nit:1776 */
9894 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9895 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9896 if (UNTAG_Bool(REGB0)) {
9897 } else {
9898 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9899 if (UNTAG_Bool(REGB1)) {
9900 REGB1 = TAG_Bool(0);
9901 REGB0 = REGB1;
9902 } else {
9903 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9904 REGB0 = REGB1;
9905 }
9906 }
9907 if (UNTAG_Bool(REGB0)) {
9908 /* parser/parser_prod.nit:1777 */
9909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9910 if (UNTAG_Bool(REGB0)) {
9911 } else {
9912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9913 if (UNTAG_Bool(REGB1)) {
9914 REGB1 = TAG_Bool(0);
9915 REGB0 = REGB1;
9916 } else {
9917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9918 REGB0 = REGB1;
9919 }
9920 }
9921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9922 if (UNTAG_Bool(REGB0)) {
9923 /* parser/parser_prod.nit:1778 */
9924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9925 if (UNTAG_Bool(REGB0)) {
9926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1778);
9927 }
9928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9929 /* parser/parser_prod.nit:1779 */
9930 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9931 if (UNTAG_Bool(REGB0)) {
9932 } else {
9933 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1779);
9934 }
9935 /* parser/parser_prod.nit:1780 */
9936 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9937 } else {
9938 /* parser/parser_prod.nit:1782 */
9939 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9940 }
9941 /* parser/parser_prod.nit:1784 */
9942 goto label1;
9943 }
9944 label1: while(0);
9945 stack_frame_head = fra.me.prev;
9946 return;
9947 }
9948 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all[] = "parser_prod::AConcreteMethPropdef::(parser_prod::ANode::visit_all)";
9949 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
9950 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9951 val_t REGB0;
9952 val_t REGB1;
9953 val_t tmp;
9954 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9955 fra.me.file = LOCATE_parser___parser_prod;
9956 fra.me.line = 1788;
9957 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
9958 fra.me.has_broke = 0;
9959 fra.me.REG_size = 4;
9960 fra.me.nitni_local_ref_head = NULL;
9961 fra.me.REG[0] = NIT_NULL;
9962 fra.me.REG[1] = NIT_NULL;
9963 fra.me.REG[2] = NIT_NULL;
9964 fra.me.REG[3] = NIT_NULL;
9965 fra.me.REG[0] = p0;
9966 fra.me.REG[1] = p1;
9967 /* parser/parser_prod.nit:1788 */
9968 fra.me.REG[2] = fra.me.REG[0];
9969 /* parser/parser_prod.nit:1790 */
9970 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9971 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9972 if (UNTAG_Bool(REGB0)) {
9973 } else {
9974 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9975 if (UNTAG_Bool(REGB1)) {
9976 REGB1 = TAG_Bool(0);
9977 REGB0 = REGB1;
9978 } else {
9979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9980 REGB0 = REGB1;
9981 }
9982 }
9983 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9984 if (UNTAG_Bool(REGB0)) {
9985 /* parser/parser_prod.nit:1791 */
9986 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9987 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*/;
9988 if (UNTAG_Bool(REGB0)) {
9989 } else {
9990 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1791);
9991 }
9992 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9993 }
9994 /* parser/parser_prod.nit:1793 */
9995 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9996 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9997 if (UNTAG_Bool(REGB0)) {
9998 } else {
9999 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10000 if (UNTAG_Bool(REGB1)) {
10001 REGB1 = TAG_Bool(0);
10002 REGB0 = REGB1;
10003 } else {
10004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10005 REGB0 = REGB1;
10006 }
10007 }
10008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10009 if (UNTAG_Bool(REGB0)) {
10010 /* parser/parser_prod.nit:1794 */
10011 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10012 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*/;
10013 if (UNTAG_Bool(REGB0)) {
10014 } else {
10015 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1794);
10016 }
10017 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10018 }
10019 /* parser/parser_prod.nit:1796 */
10020 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10021 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10022 /* parser/parser_prod.nit:1797 */
10023 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
10024 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10025 /* parser/parser_prod.nit:1798 */
10026 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10027 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10028 /* parser/parser_prod.nit:1799 */
10029 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10030 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10031 /* parser/parser_prod.nit:1800 */
10032 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10033 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10034 if (UNTAG_Bool(REGB0)) {
10035 } else {
10036 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10037 if (UNTAG_Bool(REGB1)) {
10038 REGB1 = TAG_Bool(0);
10039 REGB0 = REGB1;
10040 } else {
10041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10042 REGB0 = REGB1;
10043 }
10044 }
10045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10046 if (UNTAG_Bool(REGB0)) {
10047 /* parser/parser_prod.nit:1801 */
10048 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10049 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10050 if (UNTAG_Bool(REGB0)) {
10051 } else {
10052 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1801);
10053 }
10054 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10055 }
10056 stack_frame_head = fra.me.prev;
10057 return;
10058 }
10059 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init[] = "parser_prod::AConcreteInitPropdef::empty_init";
10060 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
10061 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
10062 struct {struct stack_frame_t me;} fra;
10063 val_t tmp;
10064 if (init_table[itpos49]) return;
10065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10066 fra.me.file = LOCATE_parser___parser_prod;
10067 fra.me.line = 1806;
10068 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
10069 fra.me.has_broke = 0;
10070 fra.me.REG_size = 1;
10071 fra.me.nitni_local_ref_head = NULL;
10072 fra.me.REG[0] = NIT_NULL;
10073 fra.me.REG[0] = p0;
10074 stack_frame_head = fra.me.prev;
10075 init_table[itpos49] = 1;
10076 return;
10077 }
10078 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef[] = "parser_prod::AConcreteInitPropdef::init_aconcreteinitpropdef";
10079 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){
10080 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
10081 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
10082 val_t REGB0;
10083 val_t REGB1;
10084 val_t tmp;
10085 if (init_table[itpos50]) return;
10086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10087 fra.me.file = LOCATE_parser___parser_prod;
10088 fra.me.line = 1808;
10089 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
10090 fra.me.has_broke = 0;
10091 fra.me.REG_size = 9;
10092 fra.me.nitni_local_ref_head = NULL;
10093 fra.me.REG[0] = NIT_NULL;
10094 fra.me.REG[1] = NIT_NULL;
10095 fra.me.REG[2] = NIT_NULL;
10096 fra.me.REG[3] = NIT_NULL;
10097 fra.me.REG[4] = NIT_NULL;
10098 fra.me.REG[5] = NIT_NULL;
10099 fra.me.REG[6] = NIT_NULL;
10100 fra.me.REG[7] = NIT_NULL;
10101 fra.me.REG[8] = NIT_NULL;
10102 fra.me.REG[0] = p0;
10103 fra.me.REG[1] = p1;
10104 fra.me.REG[2] = p2;
10105 fra.me.REG[3] = p3;
10106 fra.me.REG[4] = p4;
10107 fra.me.REG[5] = p5;
10108 fra.me.REG[6] = p6;
10109 fra.me.REG[7] = p7;
10110 /* parser/parser_prod.nit:1808 */
10111 fra.me.REG[8] = fra.me.REG[0];
10112 /* parser/parser_prod.nit:1818 */
10113 CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
10114 /* parser/parser_prod.nit:1819 */
10115 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
10116 /* parser/parser_prod.nit:1820 */
10117 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10118 if (UNTAG_Bool(REGB0)) {
10119 } else {
10120 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10121 if (UNTAG_Bool(REGB1)) {
10122 REGB1 = TAG_Bool(0);
10123 REGB0 = REGB1;
10124 } else {
10125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10126 REGB0 = REGB1;
10127 }
10128 }
10129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10130 if (UNTAG_Bool(REGB0)) {
10131 /* parser/parser_prod.nit:1821 */
10132 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10133 if (UNTAG_Bool(REGB0)) {
10134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1821);
10135 }
10136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
10137 }
10138 /* parser/parser_prod.nit:1823 */
10139 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
10140 /* parser/parser_prod.nit:1824 */
10141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10142 if (UNTAG_Bool(REGB0)) {
10143 } else {
10144 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10145 if (UNTAG_Bool(REGB1)) {
10146 REGB1 = TAG_Bool(0);
10147 REGB0 = REGB1;
10148 } else {
10149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10150 REGB0 = REGB1;
10151 }
10152 }
10153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10154 if (UNTAG_Bool(REGB0)) {
10155 /* parser/parser_prod.nit:1825 */
10156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10157 if (UNTAG_Bool(REGB0)) {
10158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1825);
10159 }
10160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
10161 }
10162 /* parser/parser_prod.nit:1827 */
10163 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10164 if (UNTAG_Bool(REGB0)) {
10165 } else {
10166 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1827);
10167 }
10168 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
10169 /* parser/parser_prod.nit:1828 */
10170 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10171 if (UNTAG_Bool(REGB0)) {
10172 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1828);
10173 }
10174 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
10175 /* parser/parser_prod.nit:1829 */
10176 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10177 if (UNTAG_Bool(REGB0)) {
10178 } else {
10179 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1829);
10180 }
10181 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[8]) = fra.me.REG[4];
10182 /* parser/parser_prod.nit:1830 */
10183 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10184 if (UNTAG_Bool(REGB0)) {
10185 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1830);
10186 }
10187 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
10188 /* parser/parser_prod.nit:1831 */
10189 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
10190 /* parser/parser_prod.nit:1832 */
10191 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10192 if (UNTAG_Bool(REGB0)) {
10193 } else {
10194 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10195 if (UNTAG_Bool(REGB1)) {
10196 REGB1 = TAG_Bool(0);
10197 REGB0 = REGB1;
10198 } else {
10199 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10200 REGB0 = REGB1;
10201 }
10202 }
10203 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10204 if (UNTAG_Bool(REGB0)) {
10205 /* parser/parser_prod.nit:1833 */
10206 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10207 if (UNTAG_Bool(REGB0)) {
10208 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1833);
10209 }
10210 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
10211 }
10212 /* parser/parser_prod.nit:1835 */
10213 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10214 if (UNTAG_Bool(REGB0)) {
10215 } else {
10216 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1835);
10217 }
10218 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
10219 /* parser/parser_prod.nit:1836 */
10220 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10221 if (UNTAG_Bool(REGB0)) {
10222 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1836);
10223 }
10224 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
10225 /* parser/parser_prod.nit:1837 */
10226 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
10227 /* parser/parser_prod.nit:1838 */
10228 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10229 if (UNTAG_Bool(REGB0)) {
10230 } else {
10231 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10232 if (UNTAG_Bool(REGB1)) {
10233 REGB1 = TAG_Bool(0);
10234 REGB0 = REGB1;
10235 } else {
10236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
10237 REGB0 = REGB1;
10238 }
10239 }
10240 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10241 if (UNTAG_Bool(REGB0)) {
10242 /* parser/parser_prod.nit:1839 */
10243 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10244 if (UNTAG_Bool(REGB0)) {
10245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1839);
10246 }
10247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
10248 }
10249 stack_frame_head = fra.me.prev;
10250 init_table[itpos50] = 1;
10251 return;
10252 }
10253 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child[] = "parser_prod::AConcreteInitPropdef::(parser_prod::ANode::replace_child)";
10254 void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
10255 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10256 val_t REGB0;
10257 val_t REGB1;
10258 val_t tmp;
10259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10260 fra.me.file = LOCATE_parser___parser_prod;
10261 fra.me.line = 1843;
10262 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
10263 fra.me.has_broke = 0;
10264 fra.me.REG_size = 4;
10265 fra.me.nitni_local_ref_head = NULL;
10266 fra.me.REG[0] = NIT_NULL;
10267 fra.me.REG[1] = NIT_NULL;
10268 fra.me.REG[2] = NIT_NULL;
10269 fra.me.REG[3] = NIT_NULL;
10270 fra.me.REG[0] = p0;
10271 fra.me.REG[1] = p1;
10272 fra.me.REG[2] = p2;
10273 /* parser/parser_prod.nit:1845 */
10274 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10275 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10276 if (UNTAG_Bool(REGB0)) {
10277 } else {
10278 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10279 if (UNTAG_Bool(REGB1)) {
10280 REGB1 = TAG_Bool(0);
10281 REGB0 = REGB1;
10282 } else {
10283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10284 REGB0 = REGB1;
10285 }
10286 }
10287 if (UNTAG_Bool(REGB0)) {
10288 /* parser/parser_prod.nit:1846 */
10289 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10290 if (UNTAG_Bool(REGB0)) {
10291 } else {
10292 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10293 if (UNTAG_Bool(REGB1)) {
10294 REGB1 = TAG_Bool(0);
10295 REGB0 = REGB1;
10296 } else {
10297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10298 REGB0 = REGB1;
10299 }
10300 }
10301 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10302 if (UNTAG_Bool(REGB0)) {
10303 /* parser/parser_prod.nit:1847 */
10304 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10305 if (UNTAG_Bool(REGB0)) {
10306 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1847);
10307 }
10308 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10309 /* parser/parser_prod.nit:1848 */
10310 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*/;
10311 if (UNTAG_Bool(REGB0)) {
10312 } else {
10313 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1848);
10314 }
10315 /* parser/parser_prod.nit:1849 */
10316 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10317 } else {
10318 /* parser/parser_prod.nit:1851 */
10319 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10320 }
10321 /* parser/parser_prod.nit:1853 */
10322 goto label1;
10323 }
10324 /* parser/parser_prod.nit:1855 */
10325 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10326 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10327 if (UNTAG_Bool(REGB0)) {
10328 } else {
10329 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10330 if (UNTAG_Bool(REGB1)) {
10331 REGB1 = TAG_Bool(0);
10332 REGB0 = REGB1;
10333 } else {
10334 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10335 REGB0 = REGB1;
10336 }
10337 }
10338 if (UNTAG_Bool(REGB0)) {
10339 /* parser/parser_prod.nit:1856 */
10340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10341 if (UNTAG_Bool(REGB0)) {
10342 } else {
10343 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10344 if (UNTAG_Bool(REGB1)) {
10345 REGB1 = TAG_Bool(0);
10346 REGB0 = REGB1;
10347 } else {
10348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10349 REGB0 = REGB1;
10350 }
10351 }
10352 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10353 if (UNTAG_Bool(REGB0)) {
10354 /* parser/parser_prod.nit:1857 */
10355 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10356 if (UNTAG_Bool(REGB0)) {
10357 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1857);
10358 }
10359 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10360 /* parser/parser_prod.nit:1858 */
10361 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*/;
10362 if (UNTAG_Bool(REGB0)) {
10363 } else {
10364 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1858);
10365 }
10366 /* parser/parser_prod.nit:1859 */
10367 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10368 } else {
10369 /* parser/parser_prod.nit:1861 */
10370 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10371 }
10372 /* parser/parser_prod.nit:1863 */
10373 goto label1;
10374 }
10375 /* parser/parser_prod.nit:1865 */
10376 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
10377 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10378 if (UNTAG_Bool(REGB0)) {
10379 } else {
10380 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10381 if (UNTAG_Bool(REGB1)) {
10382 REGB1 = TAG_Bool(0);
10383 REGB0 = REGB1;
10384 } else {
10385 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10386 REGB0 = REGB1;
10387 }
10388 }
10389 if (UNTAG_Bool(REGB0)) {
10390 /* parser/parser_prod.nit:1866 */
10391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10392 if (UNTAG_Bool(REGB0)) {
10393 } else {
10394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10395 if (UNTAG_Bool(REGB1)) {
10396 REGB1 = TAG_Bool(0);
10397 REGB0 = REGB1;
10398 } else {
10399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10400 REGB0 = REGB1;
10401 }
10402 }
10403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10404 if (UNTAG_Bool(REGB0)) {
10405 /* parser/parser_prod.nit:1867 */
10406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10407 if (UNTAG_Bool(REGB0)) {
10408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1867);
10409 }
10410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10411 /* parser/parser_prod.nit:1868 */
10412 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*/;
10413 if (UNTAG_Bool(REGB0)) {
10414 } else {
10415 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1868);
10416 }
10417 /* parser/parser_prod.nit:1869 */
10418 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10419 } else {
10420 /* parser/parser_prod.nit:1871 */
10421 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1871);
10422 }
10423 /* parser/parser_prod.nit:1873 */
10424 goto label1;
10425 }
10426 /* parser/parser_prod.nit:1875 */
10427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
10428 if (UNTAG_Bool(REGB0)) {
10429 } else {
10430 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1875);
10431 }
10432 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
10433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10434 if (UNTAG_Bool(REGB0)) {
10435 } else {
10436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10437 REGB0 = REGB1;
10438 }
10439 if (UNTAG_Bool(REGB0)) {
10440 /* parser/parser_prod.nit:1876 */
10441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10442 if (UNTAG_Bool(REGB0)) {
10443 } else {
10444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10445 if (UNTAG_Bool(REGB1)) {
10446 REGB1 = TAG_Bool(0);
10447 REGB0 = REGB1;
10448 } else {
10449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10450 REGB0 = REGB1;
10451 }
10452 }
10453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10454 if (UNTAG_Bool(REGB0)) {
10455 /* parser/parser_prod.nit:1877 */
10456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10457 if (UNTAG_Bool(REGB0)) {
10458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1877);
10459 }
10460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10461 /* parser/parser_prod.nit:1878 */
10462 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*/;
10463 if (UNTAG_Bool(REGB0)) {
10464 } else {
10465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1878);
10466 }
10467 /* parser/parser_prod.nit:1879 */
10468 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
10469 } else {
10470 /* parser/parser_prod.nit:1881 */
10471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1881);
10472 }
10473 /* parser/parser_prod.nit:1883 */
10474 goto label1;
10475 }
10476 /* parser/parser_prod.nit:1885 */
10477 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
10478 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10479 if (UNTAG_Bool(REGB0)) {
10480 } else {
10481 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10482 if (UNTAG_Bool(REGB1)) {
10483 REGB1 = TAG_Bool(0);
10484 REGB0 = REGB1;
10485 } else {
10486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10487 REGB0 = REGB1;
10488 }
10489 }
10490 if (UNTAG_Bool(REGB0)) {
10491 /* parser/parser_prod.nit:1886 */
10492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10493 if (UNTAG_Bool(REGB0)) {
10494 } else {
10495 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10496 if (UNTAG_Bool(REGB1)) {
10497 REGB1 = TAG_Bool(0);
10498 REGB0 = REGB1;
10499 } else {
10500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10501 REGB0 = REGB1;
10502 }
10503 }
10504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10505 if (UNTAG_Bool(REGB0)) {
10506 /* parser/parser_prod.nit:1887 */
10507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10508 if (UNTAG_Bool(REGB0)) {
10509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1887);
10510 }
10511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10512 /* parser/parser_prod.nit:1888 */
10513 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*/;
10514 if (UNTAG_Bool(REGB0)) {
10515 } else {
10516 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1888);
10517 }
10518 /* parser/parser_prod.nit:1889 */
10519 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
10520 } else {
10521 /* parser/parser_prod.nit:1891 */
10522 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
10523 }
10524 /* parser/parser_prod.nit:1893 */
10525 goto label1;
10526 }
10527 /* parser/parser_prod.nit:1895 */
10528 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
10529 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10530 if (UNTAG_Bool(REGB0)) {
10531 } else {
10532 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10533 if (UNTAG_Bool(REGB1)) {
10534 REGB1 = TAG_Bool(0);
10535 REGB0 = REGB1;
10536 } else {
10537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10538 REGB0 = REGB1;
10539 }
10540 }
10541 if (UNTAG_Bool(REGB0)) {
10542 /* parser/parser_prod.nit:1896 */
10543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10544 if (UNTAG_Bool(REGB0)) {
10545 } else {
10546 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10547 if (UNTAG_Bool(REGB1)) {
10548 REGB1 = TAG_Bool(0);
10549 REGB0 = REGB1;
10550 } else {
10551 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10552 REGB0 = REGB1;
10553 }
10554 }
10555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10556 if (UNTAG_Bool(REGB0)) {
10557 /* parser/parser_prod.nit:1897 */
10558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10559 if (UNTAG_Bool(REGB0)) {
10560 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1897);
10561 }
10562 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10563 /* parser/parser_prod.nit:1898 */
10564 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*/;
10565 if (UNTAG_Bool(REGB0)) {
10566 } else {
10567 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1898);
10568 }
10569 /* parser/parser_prod.nit:1899 */
10570 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10571 } else {
10572 /* parser/parser_prod.nit:1901 */
10573 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1901);
10574 }
10575 /* parser/parser_prod.nit:1903 */
10576 goto label1;
10577 }
10578 /* parser/parser_prod.nit:1905 */
10579 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
10580 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10581 if (UNTAG_Bool(REGB0)) {
10582 } else {
10583 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10584 if (UNTAG_Bool(REGB1)) {
10585 REGB1 = TAG_Bool(0);
10586 REGB0 = REGB1;
10587 } else {
10588 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10589 REGB0 = REGB1;
10590 }
10591 }
10592 if (UNTAG_Bool(REGB0)) {
10593 /* parser/parser_prod.nit:1906 */
10594 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10595 if (UNTAG_Bool(REGB0)) {
10596 } else {
10597 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10598 if (UNTAG_Bool(REGB1)) {
10599 REGB1 = TAG_Bool(0);
10600 REGB0 = REGB1;
10601 } else {
10602 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10603 REGB0 = REGB1;
10604 }
10605 }
10606 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10607 if (UNTAG_Bool(REGB0)) {
10608 /* parser/parser_prod.nit:1907 */
10609 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10610 if (UNTAG_Bool(REGB0)) {
10611 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1907);
10612 }
10613 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10614 /* parser/parser_prod.nit:1908 */
10615 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10616 if (UNTAG_Bool(REGB0)) {
10617 } else {
10618 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1908);
10619 }
10620 /* parser/parser_prod.nit:1909 */
10621 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10622 } else {
10623 /* parser/parser_prod.nit:1911 */
10624 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
10625 }
10626 /* parser/parser_prod.nit:1913 */
10627 goto label1;
10628 }
10629 label1: while(0);
10630 stack_frame_head = fra.me.prev;
10631 return;
10632 }
10633 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all[] = "parser_prod::AConcreteInitPropdef::(parser_prod::ANode::visit_all)";
10634 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
10635 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10636 val_t REGB0;
10637 val_t REGB1;
10638 val_t tmp;
10639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10640 fra.me.file = LOCATE_parser___parser_prod;
10641 fra.me.line = 1917;
10642 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
10643 fra.me.has_broke = 0;
10644 fra.me.REG_size = 4;
10645 fra.me.nitni_local_ref_head = NULL;
10646 fra.me.REG[0] = NIT_NULL;
10647 fra.me.REG[1] = NIT_NULL;
10648 fra.me.REG[2] = NIT_NULL;
10649 fra.me.REG[3] = NIT_NULL;
10650 fra.me.REG[0] = p0;
10651 fra.me.REG[1] = p1;
10652 /* parser/parser_prod.nit:1917 */
10653 fra.me.REG[2] = fra.me.REG[0];
10654 /* parser/parser_prod.nit:1919 */
10655 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10656 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10657 if (UNTAG_Bool(REGB0)) {
10658 } else {
10659 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10660 if (UNTAG_Bool(REGB1)) {
10661 REGB1 = TAG_Bool(0);
10662 REGB0 = REGB1;
10663 } else {
10664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10665 REGB0 = REGB1;
10666 }
10667 }
10668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10669 if (UNTAG_Bool(REGB0)) {
10670 /* parser/parser_prod.nit:1920 */
10671 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10672 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*/;
10673 if (UNTAG_Bool(REGB0)) {
10674 } else {
10675 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1920);
10676 }
10677 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10678 }
10679 /* parser/parser_prod.nit:1922 */
10680 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10681 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10682 if (UNTAG_Bool(REGB0)) {
10683 } else {
10684 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10685 if (UNTAG_Bool(REGB1)) {
10686 REGB1 = TAG_Bool(0);
10687 REGB0 = REGB1;
10688 } else {
10689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10690 REGB0 = REGB1;
10691 }
10692 }
10693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10694 if (UNTAG_Bool(REGB0)) {
10695 /* parser/parser_prod.nit:1923 */
10696 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10697 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*/;
10698 if (UNTAG_Bool(REGB0)) {
10699 } else {
10700 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1923);
10701 }
10702 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10703 }
10704 /* parser/parser_prod.nit:1925 */
10705 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10706 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10707 /* parser/parser_prod.nit:1926 */
10708 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
10709 if (UNTAG_Bool(REGB0)) {
10710 } else {
10711 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1926);
10712 }
10713 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
10714 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10715 /* parser/parser_prod.nit:1927 */
10716 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10717 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10718 if (UNTAG_Bool(REGB0)) {
10719 } else {
10720 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10721 if (UNTAG_Bool(REGB1)) {
10722 REGB1 = TAG_Bool(0);
10723 REGB0 = REGB1;
10724 } else {
10725 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10726 REGB0 = REGB1;
10727 }
10728 }
10729 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10730 if (UNTAG_Bool(REGB0)) {
10731 /* parser/parser_prod.nit:1928 */
10732 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10733 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*/;
10734 if (UNTAG_Bool(REGB0)) {
10735 } else {
10736 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1928);
10737 }
10738 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10739 }
10740 /* parser/parser_prod.nit:1930 */
10741 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10742 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10743 /* parser/parser_prod.nit:1931 */
10744 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10745 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10746 if (UNTAG_Bool(REGB0)) {
10747 } else {
10748 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10749 if (UNTAG_Bool(REGB1)) {
10750 REGB1 = TAG_Bool(0);
10751 REGB0 = REGB1;
10752 } else {
10753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10754 REGB0 = REGB1;
10755 }
10756 }
10757 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10758 if (UNTAG_Bool(REGB0)) {
10759 /* parser/parser_prod.nit:1932 */
10760 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10761 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10762 if (UNTAG_Bool(REGB0)) {
10763 } else {
10764 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1932);
10765 }
10766 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10767 }
10768 stack_frame_head = fra.me.prev;
10769 return;
10770 }
10771 static const char LOCATE_parser___parser_prod___AExternInitPropdef___empty_init[] = "parser_prod::AExternInitPropdef::empty_init";
10772 void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_table){
10773 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10774 struct {struct stack_frame_t me;} fra;
10775 val_t tmp;
10776 if (init_table[itpos51]) return;
10777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10778 fra.me.file = LOCATE_parser___parser_prod;
10779 fra.me.line = 1937;
10780 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___empty_init;
10781 fra.me.has_broke = 0;
10782 fra.me.REG_size = 1;
10783 fra.me.nitni_local_ref_head = NULL;
10784 fra.me.REG[0] = NIT_NULL;
10785 fra.me.REG[0] = p0;
10786 stack_frame_head = fra.me.prev;
10787 init_table[itpos51] = 1;
10788 return;
10789 }
10790 static const char LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef[] = "parser_prod::AExternInitPropdef::init_aexterninitpropdef";
10791 void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table){
10792 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10793 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
10794 val_t REGB0;
10795 val_t REGB1;
10796 val_t tmp;
10797 if (init_table[itpos52]) return;
10798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10799 fra.me.file = LOCATE_parser___parser_prod;
10800 fra.me.line = 1939;
10801 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
10802 fra.me.has_broke = 0;
10803 fra.me.REG_size = 11;
10804 fra.me.nitni_local_ref_head = NULL;
10805 fra.me.REG[0] = NIT_NULL;
10806 fra.me.REG[1] = NIT_NULL;
10807 fra.me.REG[2] = NIT_NULL;
10808 fra.me.REG[3] = NIT_NULL;
10809 fra.me.REG[4] = NIT_NULL;
10810 fra.me.REG[5] = NIT_NULL;
10811 fra.me.REG[6] = NIT_NULL;
10812 fra.me.REG[7] = NIT_NULL;
10813 fra.me.REG[8] = NIT_NULL;
10814 fra.me.REG[9] = NIT_NULL;
10815 fra.me.REG[10] = NIT_NULL;
10816 fra.me.REG[0] = p0;
10817 fra.me.REG[1] = p1;
10818 fra.me.REG[2] = p2;
10819 fra.me.REG[3] = p3;
10820 fra.me.REG[4] = p4;
10821 fra.me.REG[5] = p5;
10822 fra.me.REG[6] = p6;
10823 fra.me.REG[7] = p7;
10824 fra.me.REG[8] = p8;
10825 fra.me.REG[9] = p9;
10826 /* parser/parser_prod.nit:1939 */
10827 fra.me.REG[10] = fra.me.REG[0];
10828 /* parser/parser_prod.nit:1951 */
10829 CALL_parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[10])(fra.me.REG[10], init_table);
10830 /* parser/parser_prod.nit:1952 */
10831 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[10]) = fra.me.REG[1];
10832 /* parser/parser_prod.nit:1953 */
10833 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10834 if (UNTAG_Bool(REGB0)) {
10835 } else {
10836 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10837 if (UNTAG_Bool(REGB1)) {
10838 REGB1 = TAG_Bool(0);
10839 REGB0 = REGB1;
10840 } else {
10841 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10842 REGB0 = REGB1;
10843 }
10844 }
10845 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10846 if (UNTAG_Bool(REGB0)) {
10847 /* parser/parser_prod.nit:1954 */
10848 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10849 if (UNTAG_Bool(REGB0)) {
10850 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1954);
10851 }
10852 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
10853 }
10854 /* parser/parser_prod.nit:1956 */
10855 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[10]) = fra.me.REG[2];
10856 /* parser/parser_prod.nit:1957 */
10857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10858 if (UNTAG_Bool(REGB0)) {
10859 } else {
10860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10861 if (UNTAG_Bool(REGB1)) {
10862 REGB1 = TAG_Bool(0);
10863 REGB0 = REGB1;
10864 } else {
10865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10866 REGB0 = REGB1;
10867 }
10868 }
10869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10870 if (UNTAG_Bool(REGB0)) {
10871 /* parser/parser_prod.nit:1958 */
10872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10873 if (UNTAG_Bool(REGB0)) {
10874 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1958);
10875 }
10876 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
10877 }
10878 /* parser/parser_prod.nit:1960 */
10879 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10880 if (UNTAG_Bool(REGB0)) {
10881 } else {
10882 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1960);
10883 }
10884 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[10]) = fra.me.REG[3];
10885 /* parser/parser_prod.nit:1961 */
10886 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10887 if (UNTAG_Bool(REGB0)) {
10888 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1961);
10889 }
10890 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
10891 /* parser/parser_prod.nit:1962 */
10892 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10893 if (UNTAG_Bool(REGB0)) {
10894 } else {
10895 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1962);
10896 }
10897 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[10]) = fra.me.REG[4];
10898 /* parser/parser_prod.nit:1963 */
10899 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10900 if (UNTAG_Bool(REGB0)) {
10901 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1963);
10902 }
10903 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
10904 /* parser/parser_prod.nit:1964 */
10905 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[10]) = fra.me.REG[5];
10906 /* parser/parser_prod.nit:1965 */
10907 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10908 if (UNTAG_Bool(REGB0)) {
10909 } else {
10910 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10911 if (UNTAG_Bool(REGB1)) {
10912 REGB1 = TAG_Bool(0);
10913 REGB0 = REGB1;
10914 } else {
10915 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10916 REGB0 = REGB1;
10917 }
10918 }
10919 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10920 if (UNTAG_Bool(REGB0)) {
10921 /* parser/parser_prod.nit:1966 */
10922 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10923 if (UNTAG_Bool(REGB0)) {
10924 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1966);
10925 }
10926 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
10927 }
10928 /* parser/parser_prod.nit:1968 */
10929 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10930 if (UNTAG_Bool(REGB0)) {
10931 } else {
10932 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1968);
10933 }
10934 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[10]) = fra.me.REG[6];
10935 /* parser/parser_prod.nit:1969 */
10936 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10937 if (UNTAG_Bool(REGB0)) {
10938 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1969);
10939 }
10940 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
10941 /* parser/parser_prod.nit:1970 */
10942 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[10]) = fra.me.REG[7];
10943 /* parser/parser_prod.nit:1971 */
10944 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10945 if (UNTAG_Bool(REGB0)) {
10946 } else {
10947 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10948 if (UNTAG_Bool(REGB1)) {
10949 REGB1 = TAG_Bool(0);
10950 REGB0 = REGB1;
10951 } else {
10952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
10953 REGB0 = REGB1;
10954 }
10955 }
10956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10957 if (UNTAG_Bool(REGB0)) {
10958 /* parser/parser_prod.nit:1972 */
10959 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10960 if (UNTAG_Bool(REGB0)) {
10961 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1972);
10962 }
10963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10964 }
10965 /* parser/parser_prod.nit:1974 */
10966 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[10]) = fra.me.REG[8];
10967 /* parser/parser_prod.nit:1975 */
10968 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10969 if (UNTAG_Bool(REGB0)) {
10970 } else {
10971 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10972 if (UNTAG_Bool(REGB1)) {
10973 REGB1 = TAG_Bool(0);
10974 REGB0 = REGB1;
10975 } else {
10976 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
10977 REGB0 = REGB1;
10978 }
10979 }
10980 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10981 if (UNTAG_Bool(REGB0)) {
10982 /* parser/parser_prod.nit:1976 */
10983 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10984 if (UNTAG_Bool(REGB0)) {
10985 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1976);
10986 }
10987 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
10988 }
10989 /* parser/parser_prod.nit:1978 */
10990 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[10]) = fra.me.REG[9];
10991 /* parser/parser_prod.nit:1979 */
10992 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
10993 if (UNTAG_Bool(REGB0)) {
10994 } else {
10995 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
10996 if (UNTAG_Bool(REGB1)) {
10997 REGB1 = TAG_Bool(0);
10998 REGB0 = REGB1;
10999 } else {
11000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
11001 REGB0 = REGB1;
11002 }
11003 }
11004 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11005 if (UNTAG_Bool(REGB0)) {
11006 /* parser/parser_prod.nit:1980 */
11007 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
11008 if (UNTAG_Bool(REGB0)) {
11009 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1980);
11010 }
11011 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
11012 }
11013 stack_frame_head = fra.me.prev;
11014 init_table[itpos52] = 1;
11015 return;
11016 }
11017 static const char LOCATE_parser___parser_prod___AExternInitPropdef___replace_child[] = "parser_prod::AExternInitPropdef::(parser_prod::ANode::replace_child)";
11018 void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
11019 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11020 val_t REGB0;
11021 val_t REGB1;
11022 val_t tmp;
11023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11024 fra.me.file = LOCATE_parser___parser_prod;
11025 fra.me.line = 1984;
11026 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___replace_child;
11027 fra.me.has_broke = 0;
11028 fra.me.REG_size = 4;
11029 fra.me.nitni_local_ref_head = NULL;
11030 fra.me.REG[0] = NIT_NULL;
11031 fra.me.REG[1] = NIT_NULL;
11032 fra.me.REG[2] = NIT_NULL;
11033 fra.me.REG[3] = NIT_NULL;
11034 fra.me.REG[0] = p0;
11035 fra.me.REG[1] = p1;
11036 fra.me.REG[2] = p2;
11037 /* parser/parser_prod.nit:1986 */
11038 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
11039 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11040 if (UNTAG_Bool(REGB0)) {
11041 } else {
11042 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11043 if (UNTAG_Bool(REGB1)) {
11044 REGB1 = TAG_Bool(0);
11045 REGB0 = REGB1;
11046 } else {
11047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11048 REGB0 = REGB1;
11049 }
11050 }
11051 if (UNTAG_Bool(REGB0)) {
11052 /* parser/parser_prod.nit:1987 */
11053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11054 if (UNTAG_Bool(REGB0)) {
11055 } else {
11056 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11057 if (UNTAG_Bool(REGB1)) {
11058 REGB1 = TAG_Bool(0);
11059 REGB0 = REGB1;
11060 } else {
11061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11062 REGB0 = REGB1;
11063 }
11064 }
11065 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11066 if (UNTAG_Bool(REGB0)) {
11067 /* parser/parser_prod.nit:1988 */
11068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11069 if (UNTAG_Bool(REGB0)) {
11070 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1988);
11071 }
11072 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11073 /* parser/parser_prod.nit:1989 */
11074 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*/;
11075 if (UNTAG_Bool(REGB0)) {
11076 } else {
11077 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1989);
11078 }
11079 /* parser/parser_prod.nit:1990 */
11080 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
11081 } else {
11082 /* parser/parser_prod.nit:1992 */
11083 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
11084 }
11085 /* parser/parser_prod.nit:1994 */
11086 goto label1;
11087 }
11088 /* parser/parser_prod.nit:1996 */
11089 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11090 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11091 if (UNTAG_Bool(REGB0)) {
11092 } else {
11093 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11094 if (UNTAG_Bool(REGB1)) {
11095 REGB1 = TAG_Bool(0);
11096 REGB0 = REGB1;
11097 } else {
11098 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11099 REGB0 = REGB1;
11100 }
11101 }
11102 if (UNTAG_Bool(REGB0)) {
11103 /* parser/parser_prod.nit:1997 */
11104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11105 if (UNTAG_Bool(REGB0)) {
11106 } else {
11107 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11108 if (UNTAG_Bool(REGB1)) {
11109 REGB1 = TAG_Bool(0);
11110 REGB0 = REGB1;
11111 } else {
11112 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11113 REGB0 = REGB1;
11114 }
11115 }
11116 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11117 if (UNTAG_Bool(REGB0)) {
11118 /* parser/parser_prod.nit:1998 */
11119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11120 if (UNTAG_Bool(REGB0)) {
11121 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1998);
11122 }
11123 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11124 /* parser/parser_prod.nit:1999 */
11125 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*/;
11126 if (UNTAG_Bool(REGB0)) {
11127 } else {
11128 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1999);
11129 }
11130 /* parser/parser_prod.nit:2000 */
11131 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11132 } else {
11133 /* parser/parser_prod.nit:2002 */
11134 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11135 }
11136 /* parser/parser_prod.nit:2004 */
11137 goto label1;
11138 }
11139 /* parser/parser_prod.nit:2006 */
11140 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
11141 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11142 if (UNTAG_Bool(REGB0)) {
11143 } else {
11144 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11145 if (UNTAG_Bool(REGB1)) {
11146 REGB1 = TAG_Bool(0);
11147 REGB0 = REGB1;
11148 } else {
11149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11150 REGB0 = REGB1;
11151 }
11152 }
11153 if (UNTAG_Bool(REGB0)) {
11154 /* parser/parser_prod.nit:2007 */
11155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11156 if (UNTAG_Bool(REGB0)) {
11157 } else {
11158 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11159 if (UNTAG_Bool(REGB1)) {
11160 REGB1 = TAG_Bool(0);
11161 REGB0 = REGB1;
11162 } else {
11163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11164 REGB0 = REGB1;
11165 }
11166 }
11167 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11168 if (UNTAG_Bool(REGB0)) {
11169 /* parser/parser_prod.nit:2008 */
11170 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11171 if (UNTAG_Bool(REGB0)) {
11172 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2008);
11173 }
11174 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11175 /* parser/parser_prod.nit:2009 */
11176 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*/;
11177 if (UNTAG_Bool(REGB0)) {
11178 } else {
11179 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2009);
11180 }
11181 /* parser/parser_prod.nit:2010 */
11182 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11183 } else {
11184 /* parser/parser_prod.nit:2012 */
11185 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2012);
11186 }
11187 /* parser/parser_prod.nit:2014 */
11188 goto label1;
11189 }
11190 /* parser/parser_prod.nit:2016 */
11191 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
11192 if (UNTAG_Bool(REGB0)) {
11193 } else {
11194 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2016);
11195 }
11196 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
11197 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11198 if (UNTAG_Bool(REGB0)) {
11199 } else {
11200 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11201 REGB0 = REGB1;
11202 }
11203 if (UNTAG_Bool(REGB0)) {
11204 /* parser/parser_prod.nit:2017 */
11205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11206 if (UNTAG_Bool(REGB0)) {
11207 } else {
11208 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11209 if (UNTAG_Bool(REGB1)) {
11210 REGB1 = TAG_Bool(0);
11211 REGB0 = REGB1;
11212 } else {
11213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11214 REGB0 = REGB1;
11215 }
11216 }
11217 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11218 if (UNTAG_Bool(REGB0)) {
11219 /* parser/parser_prod.nit:2018 */
11220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11221 if (UNTAG_Bool(REGB0)) {
11222 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2018);
11223 }
11224 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11225 /* parser/parser_prod.nit:2019 */
11226 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*/;
11227 if (UNTAG_Bool(REGB0)) {
11228 } else {
11229 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2019);
11230 }
11231 /* parser/parser_prod.nit:2020 */
11232 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
11233 } else {
11234 /* parser/parser_prod.nit:2022 */
11235 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2022);
11236 }
11237 /* parser/parser_prod.nit:2024 */
11238 goto label1;
11239 }
11240 /* parser/parser_prod.nit:2026 */
11241 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
11242 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11243 if (UNTAG_Bool(REGB0)) {
11244 } else {
11245 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11246 if (UNTAG_Bool(REGB1)) {
11247 REGB1 = TAG_Bool(0);
11248 REGB0 = REGB1;
11249 } else {
11250 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11251 REGB0 = REGB1;
11252 }
11253 }
11254 if (UNTAG_Bool(REGB0)) {
11255 /* parser/parser_prod.nit:2027 */
11256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11257 if (UNTAG_Bool(REGB0)) {
11258 } else {
11259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11260 if (UNTAG_Bool(REGB1)) {
11261 REGB1 = TAG_Bool(0);
11262 REGB0 = REGB1;
11263 } else {
11264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11265 REGB0 = REGB1;
11266 }
11267 }
11268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11269 if (UNTAG_Bool(REGB0)) {
11270 /* parser/parser_prod.nit:2028 */
11271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11272 if (UNTAG_Bool(REGB0)) {
11273 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2028);
11274 }
11275 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11276 /* parser/parser_prod.nit:2029 */
11277 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*/;
11278 if (UNTAG_Bool(REGB0)) {
11279 } else {
11280 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2029);
11281 }
11282 /* parser/parser_prod.nit:2030 */
11283 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
11284 } else {
11285 /* parser/parser_prod.nit:2032 */
11286 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
11287 }
11288 /* parser/parser_prod.nit:2034 */
11289 goto label1;
11290 }
11291 /* parser/parser_prod.nit:2036 */
11292 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
11293 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11294 if (UNTAG_Bool(REGB0)) {
11295 } else {
11296 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11297 if (UNTAG_Bool(REGB1)) {
11298 REGB1 = TAG_Bool(0);
11299 REGB0 = REGB1;
11300 } else {
11301 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11302 REGB0 = REGB1;
11303 }
11304 }
11305 if (UNTAG_Bool(REGB0)) {
11306 /* parser/parser_prod.nit:2037 */
11307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11308 if (UNTAG_Bool(REGB0)) {
11309 } else {
11310 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11311 if (UNTAG_Bool(REGB1)) {
11312 REGB1 = TAG_Bool(0);
11313 REGB0 = REGB1;
11314 } else {
11315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11316 REGB0 = REGB1;
11317 }
11318 }
11319 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11320 if (UNTAG_Bool(REGB0)) {
11321 /* parser/parser_prod.nit:2038 */
11322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11323 if (UNTAG_Bool(REGB0)) {
11324 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2038);
11325 }
11326 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11327 /* parser/parser_prod.nit:2039 */
11328 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*/;
11329 if (UNTAG_Bool(REGB0)) {
11330 } else {
11331 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2039);
11332 }
11333 /* parser/parser_prod.nit:2040 */
11334 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
11335 } else {
11336 /* parser/parser_prod.nit:2042 */
11337 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2042);
11338 }
11339 /* parser/parser_prod.nit:2044 */
11340 goto label1;
11341 }
11342 /* parser/parser_prod.nit:2046 */
11343 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
11344 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11345 if (UNTAG_Bool(REGB0)) {
11346 } else {
11347 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11348 if (UNTAG_Bool(REGB1)) {
11349 REGB1 = TAG_Bool(0);
11350 REGB0 = REGB1;
11351 } else {
11352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11353 REGB0 = REGB1;
11354 }
11355 }
11356 if (UNTAG_Bool(REGB0)) {
11357 /* parser/parser_prod.nit:2047 */
11358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11359 if (UNTAG_Bool(REGB0)) {
11360 } else {
11361 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11362 if (UNTAG_Bool(REGB1)) {
11363 REGB1 = TAG_Bool(0);
11364 REGB0 = REGB1;
11365 } else {
11366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11367 REGB0 = REGB1;
11368 }
11369 }
11370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11371 if (UNTAG_Bool(REGB0)) {
11372 /* parser/parser_prod.nit:2048 */
11373 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11374 if (UNTAG_Bool(REGB0)) {
11375 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2048);
11376 }
11377 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11378 /* parser/parser_prod.nit:2049 */
11379 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*/;
11380 if (UNTAG_Bool(REGB0)) {
11381 } else {
11382 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2049);
11383 }
11384 /* parser/parser_prod.nit:2050 */
11385 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
11386 } else {
11387 /* parser/parser_prod.nit:2052 */
11388 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
11389 }
11390 /* parser/parser_prod.nit:2054 */
11391 goto label1;
11392 }
11393 /* parser/parser_prod.nit:2056 */
11394 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
11395 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11396 if (UNTAG_Bool(REGB0)) {
11397 } else {
11398 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11399 if (UNTAG_Bool(REGB1)) {
11400 REGB1 = TAG_Bool(0);
11401 REGB0 = REGB1;
11402 } else {
11403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11404 REGB0 = REGB1;
11405 }
11406 }
11407 if (UNTAG_Bool(REGB0)) {
11408 /* parser/parser_prod.nit:2057 */
11409 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11410 if (UNTAG_Bool(REGB0)) {
11411 } else {
11412 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11413 if (UNTAG_Bool(REGB1)) {
11414 REGB1 = TAG_Bool(0);
11415 REGB0 = REGB1;
11416 } else {
11417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11418 REGB0 = REGB1;
11419 }
11420 }
11421 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11422 if (UNTAG_Bool(REGB0)) {
11423 /* parser/parser_prod.nit:2058 */
11424 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11425 if (UNTAG_Bool(REGB0)) {
11426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2058);
11427 }
11428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11429 /* parser/parser_prod.nit:2059 */
11430 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
11431 if (UNTAG_Bool(REGB0)) {
11432 } else {
11433 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2059);
11434 }
11435 /* parser/parser_prod.nit:2060 */
11436 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
11437 } else {
11438 /* parser/parser_prod.nit:2062 */
11439 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
11440 }
11441 /* parser/parser_prod.nit:2064 */
11442 goto label1;
11443 }
11444 /* parser/parser_prod.nit:2066 */
11445 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]);
11446 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11447 if (UNTAG_Bool(REGB0)) {
11448 } else {
11449 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11450 if (UNTAG_Bool(REGB1)) {
11451 REGB1 = TAG_Bool(0);
11452 REGB0 = REGB1;
11453 } else {
11454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11455 REGB0 = REGB1;
11456 }
11457 }
11458 if (UNTAG_Bool(REGB0)) {
11459 /* parser/parser_prod.nit:2067 */
11460 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11461 if (UNTAG_Bool(REGB0)) {
11462 } else {
11463 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11464 if (UNTAG_Bool(REGB1)) {
11465 REGB1 = TAG_Bool(0);
11466 REGB0 = REGB1;
11467 } else {
11468 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11469 REGB0 = REGB1;
11470 }
11471 }
11472 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11473 if (UNTAG_Bool(REGB0)) {
11474 /* parser/parser_prod.nit:2068 */
11475 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11476 if (UNTAG_Bool(REGB0)) {
11477 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2068);
11478 }
11479 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11480 /* parser/parser_prod.nit:2069 */
11481 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
11482 if (UNTAG_Bool(REGB0)) {
11483 } else {
11484 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2069);
11485 }
11486 /* parser/parser_prod.nit:2070 */
11487 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = fra.me.REG[2];
11488 } else {
11489 /* parser/parser_prod.nit:2072 */
11490 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = NIT_NULL;
11491 }
11492 /* parser/parser_prod.nit:2074 */
11493 goto label1;
11494 }
11495 label1: while(0);
11496 stack_frame_head = fra.me.prev;
11497 return;
11498 }
11499 static const char LOCATE_parser___parser_prod___AExternInitPropdef___visit_all[] = "parser_prod::AExternInitPropdef::(parser_prod::ANode::visit_all)";
11500 void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
11501 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11502 val_t REGB0;
11503 val_t REGB1;
11504 val_t tmp;
11505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11506 fra.me.file = LOCATE_parser___parser_prod;
11507 fra.me.line = 2078;
11508 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___visit_all;
11509 fra.me.has_broke = 0;
11510 fra.me.REG_size = 4;
11511 fra.me.nitni_local_ref_head = NULL;
11512 fra.me.REG[0] = NIT_NULL;
11513 fra.me.REG[1] = NIT_NULL;
11514 fra.me.REG[2] = NIT_NULL;
11515 fra.me.REG[3] = NIT_NULL;
11516 fra.me.REG[0] = p0;
11517 fra.me.REG[1] = p1;
11518 /* parser/parser_prod.nit:2078 */
11519 fra.me.REG[2] = fra.me.REG[0];
11520 /* parser/parser_prod.nit:2080 */
11521 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11522 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11523 if (UNTAG_Bool(REGB0)) {
11524 } else {
11525 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11526 if (UNTAG_Bool(REGB1)) {
11527 REGB1 = TAG_Bool(0);
11528 REGB0 = REGB1;
11529 } else {
11530 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11531 REGB0 = REGB1;
11532 }
11533 }
11534 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11535 if (UNTAG_Bool(REGB0)) {
11536 /* parser/parser_prod.nit:2081 */
11537 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11538 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*/;
11539 if (UNTAG_Bool(REGB0)) {
11540 } else {
11541 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2081);
11542 }
11543 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11544 }
11545 /* parser/parser_prod.nit:2083 */
11546 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11547 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11548 if (UNTAG_Bool(REGB0)) {
11549 } else {
11550 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11551 if (UNTAG_Bool(REGB1)) {
11552 REGB1 = TAG_Bool(0);
11553 REGB0 = REGB1;
11554 } else {
11555 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11556 REGB0 = REGB1;
11557 }
11558 }
11559 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11560 if (UNTAG_Bool(REGB0)) {
11561 /* parser/parser_prod.nit:2084 */
11562 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11563 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*/;
11564 if (UNTAG_Bool(REGB0)) {
11565 } else {
11566 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2084);
11567 }
11568 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11569 }
11570 /* parser/parser_prod.nit:2086 */
11571 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
11572 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11573 /* parser/parser_prod.nit:2087 */
11574 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2])!=NIT_NULL);
11575 if (UNTAG_Bool(REGB0)) {
11576 } else {
11577 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2087);
11578 }
11579 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2]);
11580 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11581 /* parser/parser_prod.nit:2088 */
11582 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
11583 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11584 if (UNTAG_Bool(REGB0)) {
11585 } else {
11586 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11587 if (UNTAG_Bool(REGB1)) {
11588 REGB1 = TAG_Bool(0);
11589 REGB0 = REGB1;
11590 } else {
11591 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11592 REGB0 = REGB1;
11593 }
11594 }
11595 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11596 if (UNTAG_Bool(REGB0)) {
11597 /* parser/parser_prod.nit:2089 */
11598 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
11599 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*/;
11600 if (UNTAG_Bool(REGB0)) {
11601 } else {
11602 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2089);
11603 }
11604 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11605 }
11606 /* parser/parser_prod.nit:2091 */
11607 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
11608 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11609 /* parser/parser_prod.nit:2092 */
11610 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
11611 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11612 if (UNTAG_Bool(REGB0)) {
11613 } else {
11614 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11615 if (UNTAG_Bool(REGB1)) {
11616 REGB1 = TAG_Bool(0);
11617 REGB0 = REGB1;
11618 } else {
11619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11620 REGB0 = REGB1;
11621 }
11622 }
11623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11624 if (UNTAG_Bool(REGB0)) {
11625 /* parser/parser_prod.nit:2093 */
11626 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
11627 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
11628 if (UNTAG_Bool(REGB0)) {
11629 } else {
11630 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2093);
11631 }
11632 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11633 }
11634 /* parser/parser_prod.nit:2095 */
11635 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
11636 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11637 if (UNTAG_Bool(REGB0)) {
11638 } else {
11639 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11640 if (UNTAG_Bool(REGB1)) {
11641 REGB1 = TAG_Bool(0);
11642 REGB0 = REGB1;
11643 } else {
11644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11645 REGB0 = REGB1;
11646 }
11647 }
11648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11649 if (UNTAG_Bool(REGB0)) {
11650 /* parser/parser_prod.nit:2096 */
11651 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
11652 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
11653 if (UNTAG_Bool(REGB0)) {
11654 } else {
11655 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2096);
11656 }
11657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11658 }
11659 /* parser/parser_prod.nit:2098 */
11660 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
11661 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11662 if (UNTAG_Bool(REGB0)) {
11663 } else {
11664 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11665 if (UNTAG_Bool(REGB1)) {
11666 REGB1 = TAG_Bool(0);
11667 REGB0 = REGB1;
11668 } else {
11669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11670 REGB0 = REGB1;
11671 }
11672 }
11673 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11674 if (UNTAG_Bool(REGB0)) {
11675 /* parser/parser_prod.nit:2099 */
11676 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
11677 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
11678 if (UNTAG_Bool(REGB0)) {
11679 } else {
11680 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2099);
11681 }
11682 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11683 }
11684 stack_frame_head = fra.me.prev;
11685 return;
11686 }
11687 static const char LOCATE_parser___parser_prod___AMainMethPropdef___empty_init[] = "parser_prod::AMainMethPropdef::empty_init";
11688 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
11689 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
11690 struct {struct stack_frame_t me;} fra;
11691 val_t tmp;
11692 if (init_table[itpos53]) return;
11693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11694 fra.me.file = LOCATE_parser___parser_prod;
11695 fra.me.line = 2104;
11696 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
11697 fra.me.has_broke = 0;
11698 fra.me.REG_size = 1;
11699 fra.me.nitni_local_ref_head = NULL;
11700 fra.me.REG[0] = NIT_NULL;
11701 fra.me.REG[0] = p0;
11702 stack_frame_head = fra.me.prev;
11703 init_table[itpos53] = 1;
11704 return;
11705 }
11706 static const char LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef[] = "parser_prod::AMainMethPropdef::init_amainmethpropdef";
11707 void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
11708 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
11709 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11710 val_t REGB0;
11711 val_t REGB1;
11712 val_t tmp;
11713 if (init_table[itpos54]) return;
11714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11715 fra.me.file = LOCATE_parser___parser_prod;
11716 fra.me.line = 2106;
11717 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
11718 fra.me.has_broke = 0;
11719 fra.me.REG_size = 3;
11720 fra.me.nitni_local_ref_head = NULL;
11721 fra.me.REG[0] = NIT_NULL;
11722 fra.me.REG[1] = NIT_NULL;
11723 fra.me.REG[2] = NIT_NULL;
11724 fra.me.REG[0] = p0;
11725 fra.me.REG[1] = p1;
11726 fra.me.REG[2] = p2;
11727 /* parser/parser_prod.nit:2111 */
11728 CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11729 /* parser/parser_prod.nit:2112 */
11730 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
11731 /* parser/parser_prod.nit:2113 */
11732 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11733 if (UNTAG_Bool(REGB0)) {
11734 } else {
11735 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11736 if (UNTAG_Bool(REGB1)) {
11737 REGB1 = TAG_Bool(0);
11738 REGB0 = REGB1;
11739 } else {
11740 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11741 REGB0 = REGB1;
11742 }
11743 }
11744 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11745 if (UNTAG_Bool(REGB0)) {
11746 /* parser/parser_prod.nit:2114 */
11747 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11748 if (UNTAG_Bool(REGB0)) {
11749 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2114);
11750 }
11751 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11752 }
11753 /* parser/parser_prod.nit:2116 */
11754 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11755 /* parser/parser_prod.nit:2117 */
11756 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11757 if (UNTAG_Bool(REGB0)) {
11758 } else {
11759 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11760 if (UNTAG_Bool(REGB1)) {
11761 REGB1 = TAG_Bool(0);
11762 REGB0 = REGB1;
11763 } else {
11764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11765 REGB0 = REGB1;
11766 }
11767 }
11768 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11769 if (UNTAG_Bool(REGB0)) {
11770 /* parser/parser_prod.nit:2118 */
11771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11772 if (UNTAG_Bool(REGB0)) {
11773 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2118);
11774 }
11775 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11776 }
11777 stack_frame_head = fra.me.prev;
11778 init_table[itpos54] = 1;
11779 return;
11780 }
11781 static const char LOCATE_parser___parser_prod___AMainMethPropdef___replace_child[] = "parser_prod::AMainMethPropdef::(parser_prod::ANode::replace_child)";
11782 void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
11783 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11784 val_t REGB0;
11785 val_t REGB1;
11786 val_t tmp;
11787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11788 fra.me.file = LOCATE_parser___parser_prod;
11789 fra.me.line = 2122;
11790 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
11791 fra.me.has_broke = 0;
11792 fra.me.REG_size = 4;
11793 fra.me.nitni_local_ref_head = NULL;
11794 fra.me.REG[0] = NIT_NULL;
11795 fra.me.REG[1] = NIT_NULL;
11796 fra.me.REG[2] = NIT_NULL;
11797 fra.me.REG[3] = NIT_NULL;
11798 fra.me.REG[0] = p0;
11799 fra.me.REG[1] = p1;
11800 fra.me.REG[2] = p2;
11801 /* parser/parser_prod.nit:2124 */
11802 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11803 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11804 if (UNTAG_Bool(REGB0)) {
11805 } else {
11806 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11807 if (UNTAG_Bool(REGB1)) {
11808 REGB1 = TAG_Bool(0);
11809 REGB0 = REGB1;
11810 } else {
11811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11812 REGB0 = REGB1;
11813 }
11814 }
11815 if (UNTAG_Bool(REGB0)) {
11816 /* parser/parser_prod.nit:2125 */
11817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11818 if (UNTAG_Bool(REGB0)) {
11819 } else {
11820 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11821 if (UNTAG_Bool(REGB1)) {
11822 REGB1 = TAG_Bool(0);
11823 REGB0 = REGB1;
11824 } else {
11825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11826 REGB0 = REGB1;
11827 }
11828 }
11829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11830 if (UNTAG_Bool(REGB0)) {
11831 /* parser/parser_prod.nit:2126 */
11832 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11833 if (UNTAG_Bool(REGB0)) {
11834 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2126);
11835 }
11836 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11837 /* parser/parser_prod.nit:2127 */
11838 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*/;
11839 if (UNTAG_Bool(REGB0)) {
11840 } else {
11841 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2127);
11842 }
11843 /* parser/parser_prod.nit:2128 */
11844 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11845 } else {
11846 /* parser/parser_prod.nit:2130 */
11847 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11848 }
11849 /* parser/parser_prod.nit:2132 */
11850 goto label1;
11851 }
11852 /* parser/parser_prod.nit:2134 */
11853 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
11854 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11855 if (UNTAG_Bool(REGB0)) {
11856 } else {
11857 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11858 if (UNTAG_Bool(REGB1)) {
11859 REGB1 = TAG_Bool(0);
11860 REGB0 = REGB1;
11861 } else {
11862 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11863 REGB0 = REGB1;
11864 }
11865 }
11866 if (UNTAG_Bool(REGB0)) {
11867 /* parser/parser_prod.nit:2135 */
11868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11869 if (UNTAG_Bool(REGB0)) {
11870 } else {
11871 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11872 if (UNTAG_Bool(REGB1)) {
11873 REGB1 = TAG_Bool(0);
11874 REGB0 = REGB1;
11875 } else {
11876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11877 REGB0 = REGB1;
11878 }
11879 }
11880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11881 if (UNTAG_Bool(REGB0)) {
11882 /* parser/parser_prod.nit:2136 */
11883 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11884 if (UNTAG_Bool(REGB0)) {
11885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2136);
11886 }
11887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11888 /* parser/parser_prod.nit:2137 */
11889 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11890 if (UNTAG_Bool(REGB0)) {
11891 } else {
11892 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2137);
11893 }
11894 /* parser/parser_prod.nit:2138 */
11895 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11896 } else {
11897 /* parser/parser_prod.nit:2140 */
11898 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
11899 }
11900 /* parser/parser_prod.nit:2142 */
11901 goto label1;
11902 }
11903 label1: while(0);
11904 stack_frame_head = fra.me.prev;
11905 return;
11906 }
11907 static const char LOCATE_parser___parser_prod___AMainMethPropdef___visit_all[] = "parser_prod::AMainMethPropdef::(parser_prod::ANode::visit_all)";
11908 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
11909 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11910 val_t REGB0;
11911 val_t REGB1;
11912 val_t tmp;
11913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11914 fra.me.file = LOCATE_parser___parser_prod;
11915 fra.me.line = 2146;
11916 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
11917 fra.me.has_broke = 0;
11918 fra.me.REG_size = 4;
11919 fra.me.nitni_local_ref_head = NULL;
11920 fra.me.REG[0] = NIT_NULL;
11921 fra.me.REG[1] = NIT_NULL;
11922 fra.me.REG[2] = NIT_NULL;
11923 fra.me.REG[3] = NIT_NULL;
11924 fra.me.REG[0] = p0;
11925 fra.me.REG[1] = p1;
11926 /* parser/parser_prod.nit:2146 */
11927 fra.me.REG[2] = fra.me.REG[0];
11928 /* parser/parser_prod.nit:2148 */
11929 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11930 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11931 if (UNTAG_Bool(REGB0)) {
11932 } else {
11933 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11934 if (UNTAG_Bool(REGB1)) {
11935 REGB1 = TAG_Bool(0);
11936 REGB0 = REGB1;
11937 } else {
11938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11939 REGB0 = REGB1;
11940 }
11941 }
11942 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11943 if (UNTAG_Bool(REGB0)) {
11944 /* parser/parser_prod.nit:2149 */
11945 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11946 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*/;
11947 if (UNTAG_Bool(REGB0)) {
11948 } else {
11949 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2149);
11950 }
11951 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11952 }
11953 /* parser/parser_prod.nit:2151 */
11954 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11955 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11956 if (UNTAG_Bool(REGB0)) {
11957 } else {
11958 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11959 if (UNTAG_Bool(REGB1)) {
11960 REGB1 = TAG_Bool(0);
11961 REGB0 = REGB1;
11962 } else {
11963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11964 REGB0 = REGB1;
11965 }
11966 }
11967 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11968 if (UNTAG_Bool(REGB0)) {
11969 /* parser/parser_prod.nit:2152 */
11970 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11971 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11972 if (UNTAG_Bool(REGB0)) {
11973 } else {
11974 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2152);
11975 }
11976 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11977 }
11978 stack_frame_head = fra.me.prev;
11979 return;
11980 }
11981 static const char LOCATE_parser___parser_prod___ATypePropdef___empty_init[] = "parser_prod::ATypePropdef::empty_init";
11982 void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
11983 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11984 struct {struct stack_frame_t me;} fra;
11985 val_t tmp;
11986 if (init_table[itpos55]) return;
11987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11988 fra.me.file = LOCATE_parser___parser_prod;
11989 fra.me.line = 2157;
11990 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
11991 fra.me.has_broke = 0;
11992 fra.me.REG_size = 1;
11993 fra.me.nitni_local_ref_head = NULL;
11994 fra.me.REG[0] = NIT_NULL;
11995 fra.me.REG[0] = p0;
11996 stack_frame_head = fra.me.prev;
11997 init_table[itpos55] = 1;
11998 return;
11999 }
12000 static const char LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef[] = "parser_prod::ATypePropdef::init_atypepropdef";
12001 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){
12002 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
12003 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
12004 val_t REGB0;
12005 val_t REGB1;
12006 val_t tmp;
12007 if (init_table[itpos56]) return;
12008 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12009 fra.me.file = LOCATE_parser___parser_prod;
12010 fra.me.line = 2159;
12011 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
12012 fra.me.has_broke = 0;
12013 fra.me.REG_size = 8;
12014 fra.me.nitni_local_ref_head = NULL;
12015 fra.me.REG[0] = NIT_NULL;
12016 fra.me.REG[1] = NIT_NULL;
12017 fra.me.REG[2] = NIT_NULL;
12018 fra.me.REG[3] = NIT_NULL;
12019 fra.me.REG[4] = NIT_NULL;
12020 fra.me.REG[5] = NIT_NULL;
12021 fra.me.REG[6] = NIT_NULL;
12022 fra.me.REG[7] = NIT_NULL;
12023 fra.me.REG[0] = p0;
12024 fra.me.REG[1] = p1;
12025 fra.me.REG[2] = p2;
12026 fra.me.REG[3] = p3;
12027 fra.me.REG[4] = p4;
12028 fra.me.REG[5] = p5;
12029 fra.me.REG[6] = p6;
12030 /* parser/parser_prod.nit:2159 */
12031 fra.me.REG[7] = fra.me.REG[0];
12032 /* parser/parser_prod.nit:2168 */
12033 CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
12034 /* parser/parser_prod.nit:2169 */
12035 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
12036 /* parser/parser_prod.nit:2170 */
12037 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12038 if (UNTAG_Bool(REGB0)) {
12039 } else {
12040 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12041 if (UNTAG_Bool(REGB1)) {
12042 REGB1 = TAG_Bool(0);
12043 REGB0 = REGB1;
12044 } else {
12045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12046 REGB0 = REGB1;
12047 }
12048 }
12049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12050 if (UNTAG_Bool(REGB0)) {
12051 /* parser/parser_prod.nit:2171 */
12052 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12053 if (UNTAG_Bool(REGB0)) {
12054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2171);
12055 }
12056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
12057 }
12058 /* parser/parser_prod.nit:2173 */
12059 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
12060 /* parser/parser_prod.nit:2174 */
12061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12062 if (UNTAG_Bool(REGB0)) {
12063 } else {
12064 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12065 if (UNTAG_Bool(REGB1)) {
12066 REGB1 = TAG_Bool(0);
12067 REGB0 = REGB1;
12068 } else {
12069 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12070 REGB0 = REGB1;
12071 }
12072 }
12073 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12074 if (UNTAG_Bool(REGB0)) {
12075 /* parser/parser_prod.nit:2175 */
12076 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12077 if (UNTAG_Bool(REGB0)) {
12078 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2175);
12079 }
12080 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
12081 }
12082 /* parser/parser_prod.nit:2177 */
12083 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
12084 if (UNTAG_Bool(REGB0)) {
12085 } else {
12086 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2177);
12087 }
12088 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
12089 /* parser/parser_prod.nit:2178 */
12090 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12091 if (UNTAG_Bool(REGB0)) {
12092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2178);
12093 }
12094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
12095 /* parser/parser_prod.nit:2179 */
12096 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
12097 if (UNTAG_Bool(REGB0)) {
12098 } else {
12099 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2179);
12100 }
12101 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[7]) = fra.me.REG[4];
12102 /* parser/parser_prod.nit:2180 */
12103 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
12104 if (UNTAG_Bool(REGB0)) {
12105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2180);
12106 }
12107 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
12108 /* parser/parser_prod.nit:2181 */
12109 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
12110 if (UNTAG_Bool(REGB0)) {
12111 } else {
12112 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2181);
12113 }
12114 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[7]) = fra.me.REG[5];
12115 /* parser/parser_prod.nit:2182 */
12116 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
12117 if (UNTAG_Bool(REGB0)) {
12118 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2182);
12119 }
12120 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
12121 /* parser/parser_prod.nit:2183 */
12122 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
12123 if (UNTAG_Bool(REGB0)) {
12124 } else {
12125 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2183);
12126 }
12127 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[7]) = fra.me.REG[6];
12128 /* parser/parser_prod.nit:2184 */
12129 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
12130 if (UNTAG_Bool(REGB0)) {
12131 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2184);
12132 }
12133 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
12134 stack_frame_head = fra.me.prev;
12135 init_table[itpos56] = 1;
12136 return;
12137 }
12138 static const char LOCATE_parser___parser_prod___ATypePropdef___replace_child[] = "parser_prod::ATypePropdef::(parser_prod::ANode::replace_child)";
12139 void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
12140 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12141 val_t REGB0;
12142 val_t REGB1;
12143 val_t tmp;
12144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12145 fra.me.file = LOCATE_parser___parser_prod;
12146 fra.me.line = 2187;
12147 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
12148 fra.me.has_broke = 0;
12149 fra.me.REG_size = 4;
12150 fra.me.nitni_local_ref_head = NULL;
12151 fra.me.REG[0] = NIT_NULL;
12152 fra.me.REG[1] = NIT_NULL;
12153 fra.me.REG[2] = NIT_NULL;
12154 fra.me.REG[3] = NIT_NULL;
12155 fra.me.REG[0] = p0;
12156 fra.me.REG[1] = p1;
12157 fra.me.REG[2] = p2;
12158 /* parser/parser_prod.nit:2189 */
12159 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
12160 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12161 if (UNTAG_Bool(REGB0)) {
12162 } else {
12163 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12164 if (UNTAG_Bool(REGB1)) {
12165 REGB1 = TAG_Bool(0);
12166 REGB0 = REGB1;
12167 } else {
12168 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12169 REGB0 = REGB1;
12170 }
12171 }
12172 if (UNTAG_Bool(REGB0)) {
12173 /* parser/parser_prod.nit:2190 */
12174 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12175 if (UNTAG_Bool(REGB0)) {
12176 } else {
12177 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12178 if (UNTAG_Bool(REGB1)) {
12179 REGB1 = TAG_Bool(0);
12180 REGB0 = REGB1;
12181 } else {
12182 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12183 REGB0 = REGB1;
12184 }
12185 }
12186 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12187 if (UNTAG_Bool(REGB0)) {
12188 /* parser/parser_prod.nit:2191 */
12189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12190 if (UNTAG_Bool(REGB0)) {
12191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2191);
12192 }
12193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12194 /* parser/parser_prod.nit:2192 */
12195 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*/;
12196 if (UNTAG_Bool(REGB0)) {
12197 } else {
12198 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2192);
12199 }
12200 /* parser/parser_prod.nit:2193 */
12201 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
12202 } else {
12203 /* parser/parser_prod.nit:2195 */
12204 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
12205 }
12206 /* parser/parser_prod.nit:2197 */
12207 goto label1;
12208 }
12209 /* parser/parser_prod.nit:2199 */
12210 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
12211 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12212 if (UNTAG_Bool(REGB0)) {
12213 } else {
12214 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12215 if (UNTAG_Bool(REGB1)) {
12216 REGB1 = TAG_Bool(0);
12217 REGB0 = REGB1;
12218 } else {
12219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12220 REGB0 = REGB1;
12221 }
12222 }
12223 if (UNTAG_Bool(REGB0)) {
12224 /* parser/parser_prod.nit:2200 */
12225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12226 if (UNTAG_Bool(REGB0)) {
12227 } else {
12228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12229 if (UNTAG_Bool(REGB1)) {
12230 REGB1 = TAG_Bool(0);
12231 REGB0 = REGB1;
12232 } else {
12233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12234 REGB0 = REGB1;
12235 }
12236 }
12237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12238 if (UNTAG_Bool(REGB0)) {
12239 /* parser/parser_prod.nit:2201 */
12240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12241 if (UNTAG_Bool(REGB0)) {
12242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2201);
12243 }
12244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12245 /* parser/parser_prod.nit:2202 */
12246 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*/;
12247 if (UNTAG_Bool(REGB0)) {
12248 } else {
12249 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2202);
12250 }
12251 /* parser/parser_prod.nit:2203 */
12252 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12253 } else {
12254 /* parser/parser_prod.nit:2205 */
12255 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12256 }
12257 /* parser/parser_prod.nit:2207 */
12258 goto label1;
12259 }
12260 /* parser/parser_prod.nit:2209 */
12261 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
12262 if (UNTAG_Bool(REGB0)) {
12263 } else {
12264 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2209);
12265 }
12266 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
12267 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12268 if (UNTAG_Bool(REGB0)) {
12269 } else {
12270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12271 REGB0 = REGB1;
12272 }
12273 if (UNTAG_Bool(REGB0)) {
12274 /* parser/parser_prod.nit:2210 */
12275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12276 if (UNTAG_Bool(REGB0)) {
12277 } else {
12278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12279 if (UNTAG_Bool(REGB1)) {
12280 REGB1 = TAG_Bool(0);
12281 REGB0 = REGB1;
12282 } else {
12283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12284 REGB0 = REGB1;
12285 }
12286 }
12287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12288 if (UNTAG_Bool(REGB0)) {
12289 /* parser/parser_prod.nit:2211 */
12290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12291 if (UNTAG_Bool(REGB0)) {
12292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2211);
12293 }
12294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12295 /* parser/parser_prod.nit:2212 */
12296 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*/;
12297 if (UNTAG_Bool(REGB0)) {
12298 } else {
12299 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2212);
12300 }
12301 /* parser/parser_prod.nit:2213 */
12302 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
12303 } else {
12304 /* parser/parser_prod.nit:2215 */
12305 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2215);
12306 }
12307 /* parser/parser_prod.nit:2217 */
12308 goto label1;
12309 }
12310 /* parser/parser_prod.nit:2219 */
12311 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
12312 if (UNTAG_Bool(REGB0)) {
12313 } else {
12314 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2219);
12315 }
12316 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
12317 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12318 if (UNTAG_Bool(REGB0)) {
12319 } else {
12320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12321 REGB0 = REGB1;
12322 }
12323 if (UNTAG_Bool(REGB0)) {
12324 /* parser/parser_prod.nit:2220 */
12325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12326 if (UNTAG_Bool(REGB0)) {
12327 } else {
12328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12329 if (UNTAG_Bool(REGB1)) {
12330 REGB1 = TAG_Bool(0);
12331 REGB0 = REGB1;
12332 } else {
12333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12334 REGB0 = REGB1;
12335 }
12336 }
12337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12338 if (UNTAG_Bool(REGB0)) {
12339 /* parser/parser_prod.nit:2221 */
12340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12341 if (UNTAG_Bool(REGB0)) {
12342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2221);
12343 }
12344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12345 /* parser/parser_prod.nit:2222 */
12346 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*/;
12347 if (UNTAG_Bool(REGB0)) {
12348 } else {
12349 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2222);
12350 }
12351 /* parser/parser_prod.nit:2223 */
12352 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
12353 } else {
12354 /* parser/parser_prod.nit:2225 */
12355 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2225);
12356 }
12357 /* parser/parser_prod.nit:2227 */
12358 goto label1;
12359 }
12360 /* parser/parser_prod.nit:2229 */
12361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
12362 if (UNTAG_Bool(REGB0)) {
12363 } else {
12364 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2229);
12365 }
12366 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
12367 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12368 if (UNTAG_Bool(REGB0)) {
12369 } else {
12370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12371 REGB0 = REGB1;
12372 }
12373 if (UNTAG_Bool(REGB0)) {
12374 /* parser/parser_prod.nit:2230 */
12375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12376 if (UNTAG_Bool(REGB0)) {
12377 } else {
12378 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12379 if (UNTAG_Bool(REGB1)) {
12380 REGB1 = TAG_Bool(0);
12381 REGB0 = REGB1;
12382 } else {
12383 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12384 REGB0 = REGB1;
12385 }
12386 }
12387 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12388 if (UNTAG_Bool(REGB0)) {
12389 /* parser/parser_prod.nit:2231 */
12390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12391 if (UNTAG_Bool(REGB0)) {
12392 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2231);
12393 }
12394 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12395 /* parser/parser_prod.nit:2232 */
12396 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*/;
12397 if (UNTAG_Bool(REGB0)) {
12398 } else {
12399 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2232);
12400 }
12401 /* parser/parser_prod.nit:2233 */
12402 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
12403 } else {
12404 /* parser/parser_prod.nit:2235 */
12405 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2235);
12406 }
12407 /* parser/parser_prod.nit:2237 */
12408 goto label1;
12409 }
12410 /* parser/parser_prod.nit:2239 */
12411 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
12412 if (UNTAG_Bool(REGB0)) {
12413 } else {
12414 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2239);
12415 }
12416 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
12417 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12418 if (UNTAG_Bool(REGB0)) {
12419 } else {
12420 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12421 REGB0 = REGB1;
12422 }
12423 if (UNTAG_Bool(REGB0)) {
12424 /* parser/parser_prod.nit:2240 */
12425 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12426 if (UNTAG_Bool(REGB0)) {
12427 } else {
12428 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12429 if (UNTAG_Bool(REGB1)) {
12430 REGB1 = TAG_Bool(0);
12431 REGB0 = REGB1;
12432 } else {
12433 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12434 REGB0 = REGB1;
12435 }
12436 }
12437 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12438 if (UNTAG_Bool(REGB0)) {
12439 /* parser/parser_prod.nit:2241 */
12440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12441 if (UNTAG_Bool(REGB0)) {
12442 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2241);
12443 }
12444 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12445 /* parser/parser_prod.nit:2242 */
12446 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*/;
12447 if (UNTAG_Bool(REGB0)) {
12448 } else {
12449 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2242);
12450 }
12451 /* parser/parser_prod.nit:2243 */
12452 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
12453 } else {
12454 /* parser/parser_prod.nit:2245 */
12455 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2245);
12456 }
12457 /* parser/parser_prod.nit:2247 */
12458 goto label1;
12459 }
12460 label1: while(0);
12461 stack_frame_head = fra.me.prev;
12462 return;
12463 }
12464 static const char LOCATE_parser___parser_prod___ATypePropdef___visit_all[] = "parser_prod::ATypePropdef::(parser_prod::ANode::visit_all)";
12465 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
12466 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12467 val_t REGB0;
12468 val_t REGB1;
12469 val_t tmp;
12470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12471 fra.me.file = LOCATE_parser___parser_prod;
12472 fra.me.line = 2251;
12473 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
12474 fra.me.has_broke = 0;
12475 fra.me.REG_size = 4;
12476 fra.me.nitni_local_ref_head = NULL;
12477 fra.me.REG[0] = NIT_NULL;
12478 fra.me.REG[1] = NIT_NULL;
12479 fra.me.REG[2] = NIT_NULL;
12480 fra.me.REG[3] = NIT_NULL;
12481 fra.me.REG[0] = p0;
12482 fra.me.REG[1] = p1;
12483 /* parser/parser_prod.nit:2251 */
12484 fra.me.REG[2] = fra.me.REG[0];
12485 /* parser/parser_prod.nit:2253 */
12486 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
12487 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12488 if (UNTAG_Bool(REGB0)) {
12489 } else {
12490 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12491 if (UNTAG_Bool(REGB1)) {
12492 REGB1 = TAG_Bool(0);
12493 REGB0 = REGB1;
12494 } else {
12495 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12496 REGB0 = REGB1;
12497 }
12498 }
12499 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12500 if (UNTAG_Bool(REGB0)) {
12501 /* parser/parser_prod.nit:2254 */
12502 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
12503 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*/;
12504 if (UNTAG_Bool(REGB0)) {
12505 } else {
12506 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2254);
12507 }
12508 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12509 }
12510 /* parser/parser_prod.nit:2256 */
12511 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
12512 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12513 if (UNTAG_Bool(REGB0)) {
12514 } else {
12515 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12516 if (UNTAG_Bool(REGB1)) {
12517 REGB1 = TAG_Bool(0);
12518 REGB0 = REGB1;
12519 } else {
12520 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12521 REGB0 = REGB1;
12522 }
12523 }
12524 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12525 if (UNTAG_Bool(REGB0)) {
12526 /* parser/parser_prod.nit:2257 */
12527 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
12528 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*/;
12529 if (UNTAG_Bool(REGB0)) {
12530 } else {
12531 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2257);
12532 }
12533 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12534 }
12535 /* parser/parser_prod.nit:2259 */
12536 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
12537 if (UNTAG_Bool(REGB0)) {
12538 } else {
12539 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2259);
12540 }
12541 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
12542 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12543 /* parser/parser_prod.nit:2260 */
12544 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
12545 if (UNTAG_Bool(REGB0)) {
12546 } else {
12547 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2260);
12548 }
12549 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
12550 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12551 /* parser/parser_prod.nit:2261 */
12552 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
12553 if (UNTAG_Bool(REGB0)) {
12554 } else {
12555 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2261);
12556 }
12557 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
12558 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12559 /* parser/parser_prod.nit:2262 */
12560 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
12561 if (UNTAG_Bool(REGB0)) {
12562 } else {
12563 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2262);
12564 }
12565 fra.me.REG[2] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
12566 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12567 stack_frame_head = fra.me.prev;
12568 return;
12569 }
12570 static const char LOCATE_parser___parser_prod___AReadAble___empty_init[] = "parser_prod::AReadAble::empty_init";
12571 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
12572 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
12573 struct {struct stack_frame_t me;} fra;
12574 val_t tmp;
12575 if (init_table[itpos57]) return;
12576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12577 fra.me.file = LOCATE_parser___parser_prod;
12578 fra.me.line = 2266;
12579 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
12580 fra.me.has_broke = 0;
12581 fra.me.REG_size = 1;
12582 fra.me.nitni_local_ref_head = NULL;
12583 fra.me.REG[0] = NIT_NULL;
12584 fra.me.REG[0] = p0;
12585 stack_frame_head = fra.me.prev;
12586 init_table[itpos57] = 1;
12587 return;
12588 }
12589 static const char LOCATE_parser___parser_prod___AReadAble___init_areadable[] = "parser_prod::AReadAble::init_areadable";
12590 void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
12591 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
12592 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12593 val_t REGB0;
12594 val_t REGB1;
12595 val_t tmp;
12596 if (init_table[itpos58]) return;
12597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12598 fra.me.file = LOCATE_parser___parser_prod;
12599 fra.me.line = 2268;
12600 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
12601 fra.me.has_broke = 0;
12602 fra.me.REG_size = 4;
12603 fra.me.nitni_local_ref_head = NULL;
12604 fra.me.REG[0] = NIT_NULL;
12605 fra.me.REG[1] = NIT_NULL;
12606 fra.me.REG[2] = NIT_NULL;
12607 fra.me.REG[3] = NIT_NULL;
12608 fra.me.REG[0] = p0;
12609 fra.me.REG[1] = p1;
12610 fra.me.REG[2] = p2;
12611 /* parser/parser_prod.nit:2268 */
12612 fra.me.REG[3] = fra.me.REG[0];
12613 /* parser/parser_prod.nit:2273 */
12614 CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
12615 /* parser/parser_prod.nit:2274 */
12616 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
12617 /* parser/parser_prod.nit:2275 */
12618 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12619 if (UNTAG_Bool(REGB0)) {
12620 } else {
12621 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12622 if (UNTAG_Bool(REGB1)) {
12623 REGB1 = TAG_Bool(0);
12624 REGB0 = REGB1;
12625 } else {
12626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12627 REGB0 = REGB1;
12628 }
12629 }
12630 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12631 if (UNTAG_Bool(REGB0)) {
12632 /* parser/parser_prod.nit:2276 */
12633 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12634 if (UNTAG_Bool(REGB0)) {
12635 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2276);
12636 }
12637 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12638 }
12639 /* parser/parser_prod.nit:2278 */
12640 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
12641 if (UNTAG_Bool(REGB0)) {
12642 } else {
12643 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2278);
12644 }
12645 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
12646 /* parser/parser_prod.nit:2279 */
12647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12648 if (UNTAG_Bool(REGB0)) {
12649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2279);
12650 }
12651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
12652 stack_frame_head = fra.me.prev;
12653 init_table[itpos58] = 1;
12654 return;
12655 }
12656 static const char LOCATE_parser___parser_prod___AReadAble___replace_child[] = "parser_prod::AReadAble::(parser_prod::ANode::replace_child)";
12657 void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
12658 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12659 val_t REGB0;
12660 val_t REGB1;
12661 val_t tmp;
12662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12663 fra.me.file = LOCATE_parser___parser_prod;
12664 fra.me.line = 2282;
12665 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
12666 fra.me.has_broke = 0;
12667 fra.me.REG_size = 4;
12668 fra.me.nitni_local_ref_head = NULL;
12669 fra.me.REG[0] = NIT_NULL;
12670 fra.me.REG[1] = NIT_NULL;
12671 fra.me.REG[2] = NIT_NULL;
12672 fra.me.REG[3] = NIT_NULL;
12673 fra.me.REG[0] = p0;
12674 fra.me.REG[1] = p1;
12675 fra.me.REG[2] = p2;
12676 /* parser/parser_prod.nit:2284 */
12677 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12678 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12679 if (UNTAG_Bool(REGB0)) {
12680 } else {
12681 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12682 if (UNTAG_Bool(REGB1)) {
12683 REGB1 = TAG_Bool(0);
12684 REGB0 = REGB1;
12685 } else {
12686 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12687 REGB0 = REGB1;
12688 }
12689 }
12690 if (UNTAG_Bool(REGB0)) {
12691 /* parser/parser_prod.nit:2285 */
12692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12693 if (UNTAG_Bool(REGB0)) {
12694 } else {
12695 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12696 if (UNTAG_Bool(REGB1)) {
12697 REGB1 = TAG_Bool(0);
12698 REGB0 = REGB1;
12699 } else {
12700 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12701 REGB0 = REGB1;
12702 }
12703 }
12704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12705 if (UNTAG_Bool(REGB0)) {
12706 /* parser/parser_prod.nit:2286 */
12707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12708 if (UNTAG_Bool(REGB0)) {
12709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2286);
12710 }
12711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12712 /* parser/parser_prod.nit:2287 */
12713 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*/;
12714 if (UNTAG_Bool(REGB0)) {
12715 } else {
12716 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2287);
12717 }
12718 /* parser/parser_prod.nit:2288 */
12719 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12720 } else {
12721 /* parser/parser_prod.nit:2290 */
12722 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12723 }
12724 /* parser/parser_prod.nit:2292 */
12725 goto label1;
12726 }
12727 /* parser/parser_prod.nit:2294 */
12728 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
12729 if (UNTAG_Bool(REGB0)) {
12730 } else {
12731 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2294);
12732 }
12733 fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
12734 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12735 if (UNTAG_Bool(REGB0)) {
12736 } else {
12737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12738 REGB0 = REGB1;
12739 }
12740 if (UNTAG_Bool(REGB0)) {
12741 /* parser/parser_prod.nit:2295 */
12742 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12743 if (UNTAG_Bool(REGB0)) {
12744 } else {
12745 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12746 if (UNTAG_Bool(REGB1)) {
12747 REGB1 = TAG_Bool(0);
12748 REGB0 = REGB1;
12749 } else {
12750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12751 REGB0 = REGB1;
12752 }
12753 }
12754 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12755 if (UNTAG_Bool(REGB0)) {
12756 /* parser/parser_prod.nit:2296 */
12757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12758 if (UNTAG_Bool(REGB0)) {
12759 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2296);
12760 }
12761 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12762 /* parser/parser_prod.nit:2297 */
12763 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*/;
12764 if (UNTAG_Bool(REGB0)) {
12765 } else {
12766 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2297);
12767 }
12768 /* parser/parser_prod.nit:2298 */
12769 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
12770 } else {
12771 /* parser/parser_prod.nit:2300 */
12772 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2300);
12773 }
12774 /* parser/parser_prod.nit:2302 */
12775 goto label1;
12776 }
12777 label1: while(0);
12778 stack_frame_head = fra.me.prev;
12779 return;
12780 }
12781 static const char LOCATE_parser___parser_prod___AReadAble___visit_all[] = "parser_prod::AReadAble::(parser_prod::ANode::visit_all)";
12782 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
12783 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12784 val_t REGB0;
12785 val_t REGB1;
12786 val_t tmp;
12787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12788 fra.me.file = LOCATE_parser___parser_prod;
12789 fra.me.line = 2306;
12790 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
12791 fra.me.has_broke = 0;
12792 fra.me.REG_size = 4;
12793 fra.me.nitni_local_ref_head = NULL;
12794 fra.me.REG[0] = NIT_NULL;
12795 fra.me.REG[1] = NIT_NULL;
12796 fra.me.REG[2] = NIT_NULL;
12797 fra.me.REG[3] = NIT_NULL;
12798 fra.me.REG[0] = p0;
12799 fra.me.REG[1] = p1;
12800 /* parser/parser_prod.nit:2306 */
12801 fra.me.REG[2] = fra.me.REG[0];
12802 /* parser/parser_prod.nit:2308 */
12803 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12804 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12805 if (UNTAG_Bool(REGB0)) {
12806 } else {
12807 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12808 if (UNTAG_Bool(REGB1)) {
12809 REGB1 = TAG_Bool(0);
12810 REGB0 = REGB1;
12811 } else {
12812 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12813 REGB0 = REGB1;
12814 }
12815 }
12816 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12817 if (UNTAG_Bool(REGB0)) {
12818 /* parser/parser_prod.nit:2309 */
12819 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12820 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*/;
12821 if (UNTAG_Bool(REGB0)) {
12822 } else {
12823 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2309);
12824 }
12825 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12826 }
12827 /* parser/parser_prod.nit:2311 */
12828 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
12829 if (UNTAG_Bool(REGB0)) {
12830 } else {
12831 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2311);
12832 }
12833 fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
12834 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12835 stack_frame_head = fra.me.prev;
12836 return;
12837 }
12838 static const char LOCATE_parser___parser_prod___AWriteAble___empty_init[] = "parser_prod::AWriteAble::empty_init";
12839 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
12840 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12841 struct {struct stack_frame_t me;} fra;
12842 val_t tmp;
12843 if (init_table[itpos59]) return;
12844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12845 fra.me.file = LOCATE_parser___parser_prod;
12846 fra.me.line = 2315;
12847 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
12848 fra.me.has_broke = 0;
12849 fra.me.REG_size = 1;
12850 fra.me.nitni_local_ref_head = NULL;
12851 fra.me.REG[0] = NIT_NULL;
12852 fra.me.REG[0] = p0;
12853 stack_frame_head = fra.me.prev;
12854 init_table[itpos59] = 1;
12855 return;
12856 }
12857 static const char LOCATE_parser___parser_prod___AWriteAble___init_awriteable[] = "parser_prod::AWriteAble::init_awriteable";
12858 void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
12859 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12860 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
12861 val_t REGB0;
12862 val_t REGB1;
12863 val_t tmp;
12864 if (init_table[itpos60]) return;
12865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12866 fra.me.file = LOCATE_parser___parser_prod;
12867 fra.me.line = 2317;
12868 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
12869 fra.me.has_broke = 0;
12870 fra.me.REG_size = 5;
12871 fra.me.nitni_local_ref_head = NULL;
12872 fra.me.REG[0] = NIT_NULL;
12873 fra.me.REG[1] = NIT_NULL;
12874 fra.me.REG[2] = NIT_NULL;
12875 fra.me.REG[3] = NIT_NULL;
12876 fra.me.REG[4] = NIT_NULL;
12877 fra.me.REG[0] = p0;
12878 fra.me.REG[1] = p1;
12879 fra.me.REG[2] = p2;
12880 fra.me.REG[3] = p3;
12881 /* parser/parser_prod.nit:2317 */
12882 fra.me.REG[4] = fra.me.REG[0];
12883 /* parser/parser_prod.nit:2323 */
12884 CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
12885 /* parser/parser_prod.nit:2324 */
12886 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
12887 /* parser/parser_prod.nit:2325 */
12888 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12889 if (UNTAG_Bool(REGB0)) {
12890 } else {
12891 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12892 if (UNTAG_Bool(REGB1)) {
12893 REGB1 = TAG_Bool(0);
12894 REGB0 = REGB1;
12895 } else {
12896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12897 REGB0 = REGB1;
12898 }
12899 }
12900 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12901 if (UNTAG_Bool(REGB0)) {
12902 /* parser/parser_prod.nit:2326 */
12903 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12904 if (UNTAG_Bool(REGB0)) {
12905 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2326);
12906 }
12907 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
12908 }
12909 /* parser/parser_prod.nit:2328 */
12910 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
12911 /* parser/parser_prod.nit:2329 */
12912 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12913 if (UNTAG_Bool(REGB0)) {
12914 } else {
12915 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12916 if (UNTAG_Bool(REGB1)) {
12917 REGB1 = TAG_Bool(0);
12918 REGB0 = REGB1;
12919 } else {
12920 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12921 REGB0 = REGB1;
12922 }
12923 }
12924 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12925 if (UNTAG_Bool(REGB0)) {
12926 /* parser/parser_prod.nit:2330 */
12927 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12928 if (UNTAG_Bool(REGB0)) {
12929 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2330);
12930 }
12931 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
12932 }
12933 /* parser/parser_prod.nit:2332 */
12934 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
12935 if (UNTAG_Bool(REGB0)) {
12936 } else {
12937 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2332);
12938 }
12939 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
12940 /* parser/parser_prod.nit:2333 */
12941 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12942 if (UNTAG_Bool(REGB0)) {
12943 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2333);
12944 }
12945 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
12946 stack_frame_head = fra.me.prev;
12947 init_table[itpos60] = 1;
12948 return;
12949 }
12950 static const char LOCATE_parser___parser_prod___AWriteAble___replace_child[] = "parser_prod::AWriteAble::(parser_prod::ANode::replace_child)";
12951 void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
12952 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12953 val_t REGB0;
12954 val_t REGB1;
12955 val_t tmp;
12956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12957 fra.me.file = LOCATE_parser___parser_prod;
12958 fra.me.line = 2336;
12959 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
12960 fra.me.has_broke = 0;
12961 fra.me.REG_size = 4;
12962 fra.me.nitni_local_ref_head = NULL;
12963 fra.me.REG[0] = NIT_NULL;
12964 fra.me.REG[1] = NIT_NULL;
12965 fra.me.REG[2] = NIT_NULL;
12966 fra.me.REG[3] = NIT_NULL;
12967 fra.me.REG[0] = p0;
12968 fra.me.REG[1] = p1;
12969 fra.me.REG[2] = p2;
12970 /* parser/parser_prod.nit:2338 */
12971 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12972 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12973 if (UNTAG_Bool(REGB0)) {
12974 } else {
12975 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12976 if (UNTAG_Bool(REGB1)) {
12977 REGB1 = TAG_Bool(0);
12978 REGB0 = REGB1;
12979 } else {
12980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12981 REGB0 = REGB1;
12982 }
12983 }
12984 if (UNTAG_Bool(REGB0)) {
12985 /* parser/parser_prod.nit:2339 */
12986 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12987 if (UNTAG_Bool(REGB0)) {
12988 } else {
12989 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12990 if (UNTAG_Bool(REGB1)) {
12991 REGB1 = TAG_Bool(0);
12992 REGB0 = REGB1;
12993 } else {
12994 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12995 REGB0 = REGB1;
12996 }
12997 }
12998 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12999 if (UNTAG_Bool(REGB0)) {
13000 /* parser/parser_prod.nit:2340 */
13001 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13002 if (UNTAG_Bool(REGB0)) {
13003 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2340);
13004 }
13005 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13006 /* parser/parser_prod.nit:2341 */
13007 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*/;
13008 if (UNTAG_Bool(REGB0)) {
13009 } else {
13010 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2341);
13011 }
13012 /* parser/parser_prod.nit:2342 */
13013 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
13014 } else {
13015 /* parser/parser_prod.nit:2344 */
13016 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
13017 }
13018 /* parser/parser_prod.nit:2346 */
13019 goto label1;
13020 }
13021 /* parser/parser_prod.nit:2348 */
13022 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
13023 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
13024 if (UNTAG_Bool(REGB0)) {
13025 } else {
13026 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13027 if (UNTAG_Bool(REGB1)) {
13028 REGB1 = TAG_Bool(0);
13029 REGB0 = REGB1;
13030 } else {
13031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13032 REGB0 = REGB1;
13033 }
13034 }
13035 if (UNTAG_Bool(REGB0)) {
13036 /* parser/parser_prod.nit:2349 */
13037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13038 if (UNTAG_Bool(REGB0)) {
13039 } else {
13040 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13041 if (UNTAG_Bool(REGB1)) {
13042 REGB1 = TAG_Bool(0);
13043 REGB0 = REGB1;
13044 } else {
13045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13046 REGB0 = REGB1;
13047 }
13048 }
13049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13050 if (UNTAG_Bool(REGB0)) {
13051 /* parser/parser_prod.nit:2350 */
13052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13053 if (UNTAG_Bool(REGB0)) {
13054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2350);
13055 }
13056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13057 /* parser/parser_prod.nit:2351 */
13058 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*/;
13059 if (UNTAG_Bool(REGB0)) {
13060 } else {
13061 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2351);
13062 }
13063 /* parser/parser_prod.nit:2352 */
13064 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
13065 } else {
13066 /* parser/parser_prod.nit:2354 */
13067 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
13068 }
13069 /* parser/parser_prod.nit:2356 */
13070 goto label1;
13071 }
13072 /* parser/parser_prod.nit:2358 */
13073 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
13074 if (UNTAG_Bool(REGB0)) {
13075 } else {
13076 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2358);
13077 }
13078 fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
13079 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13080 if (UNTAG_Bool(REGB0)) {
13081 } else {
13082 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13083 REGB0 = REGB1;
13084 }
13085 if (UNTAG_Bool(REGB0)) {
13086 /* parser/parser_prod.nit:2359 */
13087 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13088 if (UNTAG_Bool(REGB0)) {
13089 } else {
13090 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13091 if (UNTAG_Bool(REGB1)) {
13092 REGB1 = TAG_Bool(0);
13093 REGB0 = REGB1;
13094 } else {
13095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13096 REGB0 = REGB1;
13097 }
13098 }
13099 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13100 if (UNTAG_Bool(REGB0)) {
13101 /* parser/parser_prod.nit:2360 */
13102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13103 if (UNTAG_Bool(REGB0)) {
13104 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2360);
13105 }
13106 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13107 /* parser/parser_prod.nit:2361 */
13108 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*/;
13109 if (UNTAG_Bool(REGB0)) {
13110 } else {
13111 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2361);
13112 }
13113 /* parser/parser_prod.nit:2362 */
13114 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
13115 } else {
13116 /* parser/parser_prod.nit:2364 */
13117 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2364);
13118 }
13119 /* parser/parser_prod.nit:2366 */
13120 goto label1;
13121 }
13122 label1: while(0);
13123 stack_frame_head = fra.me.prev;
13124 return;
13125 }
13126 static const char LOCATE_parser___parser_prod___AWriteAble___visit_all[] = "parser_prod::AWriteAble::(parser_prod::ANode::visit_all)";
13127 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
13128 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13129 val_t REGB0;
13130 val_t REGB1;
13131 val_t tmp;
13132 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13133 fra.me.file = LOCATE_parser___parser_prod;
13134 fra.me.line = 2370;
13135 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
13136 fra.me.has_broke = 0;
13137 fra.me.REG_size = 4;
13138 fra.me.nitni_local_ref_head = NULL;
13139 fra.me.REG[0] = NIT_NULL;
13140 fra.me.REG[1] = NIT_NULL;
13141 fra.me.REG[2] = NIT_NULL;
13142 fra.me.REG[3] = NIT_NULL;
13143 fra.me.REG[0] = p0;
13144 fra.me.REG[1] = p1;
13145 /* parser/parser_prod.nit:2370 */
13146 fra.me.REG[2] = fra.me.REG[0];
13147 /* parser/parser_prod.nit:2372 */
13148 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
13149 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13150 if (UNTAG_Bool(REGB0)) {
13151 } else {
13152 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13153 if (UNTAG_Bool(REGB1)) {
13154 REGB1 = TAG_Bool(0);
13155 REGB0 = REGB1;
13156 } else {
13157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
13158 REGB0 = REGB1;
13159 }
13160 }
13161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13162 if (UNTAG_Bool(REGB0)) {
13163 /* parser/parser_prod.nit:2373 */
13164 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
13165 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*/;
13166 if (UNTAG_Bool(REGB0)) {
13167 } else {
13168 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2373);
13169 }
13170 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13171 }
13172 /* parser/parser_prod.nit:2375 */
13173 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
13174 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13175 if (UNTAG_Bool(REGB0)) {
13176 } else {
13177 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13178 if (UNTAG_Bool(REGB1)) {
13179 REGB1 = TAG_Bool(0);
13180 REGB0 = REGB1;
13181 } else {
13182 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
13183 REGB0 = REGB1;
13184 }
13185 }
13186 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13187 if (UNTAG_Bool(REGB0)) {
13188 /* parser/parser_prod.nit:2376 */
13189 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
13190 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*/;
13191 if (UNTAG_Bool(REGB0)) {
13192 } else {
13193 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2376);
13194 }
13195 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13196 }
13197 /* parser/parser_prod.nit:2378 */
13198 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
13199 if (UNTAG_Bool(REGB0)) {
13200 } else {
13201 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2378);
13202 }
13203 fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
13204 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13205 stack_frame_head = fra.me.prev;
13206 return;
13207 }
13208 static const char LOCATE_parser___parser_prod___AIdMethid___empty_init[] = "parser_prod::AIdMethid::empty_init";
13209 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
13210 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
13211 struct {struct stack_frame_t me;} fra;
13212 val_t tmp;
13213 if (init_table[itpos61]) return;
13214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13215 fra.me.file = LOCATE_parser___parser_prod;
13216 fra.me.line = 2382;
13217 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
13218 fra.me.has_broke = 0;
13219 fra.me.REG_size = 1;
13220 fra.me.nitni_local_ref_head = NULL;
13221 fra.me.REG[0] = NIT_NULL;
13222 fra.me.REG[0] = p0;
13223 stack_frame_head = fra.me.prev;
13224 init_table[itpos61] = 1;
13225 return;
13226 }
13227 static const char LOCATE_parser___parser_prod___AIdMethid___init_aidmethid[] = "parser_prod::AIdMethid::init_aidmethid";
13228 void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
13229 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
13230 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13231 val_t REGB0;
13232 val_t tmp;
13233 if (init_table[itpos62]) return;
13234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13235 fra.me.file = LOCATE_parser___parser_prod;
13236 fra.me.line = 2384;
13237 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
13238 fra.me.has_broke = 0;
13239 fra.me.REG_size = 3;
13240 fra.me.nitni_local_ref_head = NULL;
13241 fra.me.REG[0] = NIT_NULL;
13242 fra.me.REG[1] = NIT_NULL;
13243 fra.me.REG[2] = NIT_NULL;
13244 fra.me.REG[0] = p0;
13245 fra.me.REG[1] = p1;
13246 /* parser/parser_prod.nit:2384 */
13247 fra.me.REG[2] = fra.me.REG[0];
13248 /* parser/parser_prod.nit:2388 */
13249 CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13250 /* parser/parser_prod.nit:2389 */
13251 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13252 if (UNTAG_Bool(REGB0)) {
13253 } else {
13254 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2389);
13255 }
13256 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
13257 /* parser/parser_prod.nit:2390 */
13258 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13259 if (UNTAG_Bool(REGB0)) {
13260 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2390);
13261 }
13262 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13263 stack_frame_head = fra.me.prev;
13264 init_table[itpos62] = 1;
13265 return;
13266 }
13267 static const char LOCATE_parser___parser_prod___AIdMethid___replace_child[] = "parser_prod::AIdMethid::(parser_prod::ANode::replace_child)";
13268 void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
13269 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13270 val_t REGB0;
13271 val_t REGB1;
13272 val_t tmp;
13273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13274 fra.me.file = LOCATE_parser___parser_prod;
13275 fra.me.line = 2393;
13276 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
13277 fra.me.has_broke = 0;
13278 fra.me.REG_size = 4;
13279 fra.me.nitni_local_ref_head = NULL;
13280 fra.me.REG[0] = NIT_NULL;
13281 fra.me.REG[1] = NIT_NULL;
13282 fra.me.REG[2] = NIT_NULL;
13283 fra.me.REG[3] = NIT_NULL;
13284 fra.me.REG[0] = p0;
13285 fra.me.REG[1] = p1;
13286 fra.me.REG[2] = p2;
13287 /* parser/parser_prod.nit:2395 */
13288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13289 if (UNTAG_Bool(REGB0)) {
13290 } else {
13291 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2395);
13292 }
13293 fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
13294 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13295 if (UNTAG_Bool(REGB0)) {
13296 } else {
13297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13298 REGB0 = REGB1;
13299 }
13300 if (UNTAG_Bool(REGB0)) {
13301 /* parser/parser_prod.nit:2396 */
13302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13303 if (UNTAG_Bool(REGB0)) {
13304 } else {
13305 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13306 if (UNTAG_Bool(REGB1)) {
13307 REGB1 = TAG_Bool(0);
13308 REGB0 = REGB1;
13309 } else {
13310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13311 REGB0 = REGB1;
13312 }
13313 }
13314 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13315 if (UNTAG_Bool(REGB0)) {
13316 /* parser/parser_prod.nit:2397 */
13317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13318 if (UNTAG_Bool(REGB0)) {
13319 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2397);
13320 }
13321 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13322 /* parser/parser_prod.nit:2398 */
13323 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*/;
13324 if (UNTAG_Bool(REGB0)) {
13325 } else {
13326 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2398);
13327 }
13328 /* parser/parser_prod.nit:2399 */
13329 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
13330 } else {
13331 /* parser/parser_prod.nit:2401 */
13332 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2401);
13333 }
13334 /* parser/parser_prod.nit:2403 */
13335 goto label1;
13336 }
13337 label1: while(0);
13338 stack_frame_head = fra.me.prev;
13339 return;
13340 }
13341 static const char LOCATE_parser___parser_prod___AIdMethid___visit_all[] = "parser_prod::AIdMethid::(parser_prod::ANode::visit_all)";
13342 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
13343 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13344 val_t REGB0;
13345 val_t tmp;
13346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13347 fra.me.file = LOCATE_parser___parser_prod;
13348 fra.me.line = 2407;
13349 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
13350 fra.me.has_broke = 0;
13351 fra.me.REG_size = 2;
13352 fra.me.nitni_local_ref_head = NULL;
13353 fra.me.REG[0] = NIT_NULL;
13354 fra.me.REG[1] = NIT_NULL;
13355 fra.me.REG[0] = p0;
13356 fra.me.REG[1] = p1;
13357 /* parser/parser_prod.nit:2409 */
13358 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13359 if (UNTAG_Bool(REGB0)) {
13360 } else {
13361 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2409);
13362 }
13363 fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
13364 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13365 stack_frame_head = fra.me.prev;
13366 return;
13367 }
13368 static const char LOCATE_parser___parser_prod___APlusMethid___empty_init[] = "parser_prod::APlusMethid::empty_init";
13369 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
13370 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
13371 struct {struct stack_frame_t me;} fra;
13372 val_t tmp;
13373 if (init_table[itpos63]) return;
13374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13375 fra.me.file = LOCATE_parser___parser_prod;
13376 fra.me.line = 2413;
13377 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
13378 fra.me.has_broke = 0;
13379 fra.me.REG_size = 1;
13380 fra.me.nitni_local_ref_head = NULL;
13381 fra.me.REG[0] = NIT_NULL;
13382 fra.me.REG[0] = p0;
13383 stack_frame_head = fra.me.prev;
13384 init_table[itpos63] = 1;
13385 return;
13386 }
13387 static const char LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid[] = "parser_prod::APlusMethid::init_aplusmethid";
13388 void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
13389 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
13390 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13391 val_t REGB0;
13392 val_t tmp;
13393 if (init_table[itpos64]) return;
13394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13395 fra.me.file = LOCATE_parser___parser_prod;
13396 fra.me.line = 2415;
13397 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
13398 fra.me.has_broke = 0;
13399 fra.me.REG_size = 3;
13400 fra.me.nitni_local_ref_head = NULL;
13401 fra.me.REG[0] = NIT_NULL;
13402 fra.me.REG[1] = NIT_NULL;
13403 fra.me.REG[2] = NIT_NULL;
13404 fra.me.REG[0] = p0;
13405 fra.me.REG[1] = p1;
13406 /* parser/parser_prod.nit:2415 */
13407 fra.me.REG[2] = fra.me.REG[0];
13408 /* parser/parser_prod.nit:2419 */
13409 CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13410 /* parser/parser_prod.nit:2420 */
13411 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13412 if (UNTAG_Bool(REGB0)) {
13413 } else {
13414 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2420);
13415 }
13416 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
13417 /* parser/parser_prod.nit:2421 */
13418 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13419 if (UNTAG_Bool(REGB0)) {
13420 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2421);
13421 }
13422 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13423 stack_frame_head = fra.me.prev;
13424 init_table[itpos64] = 1;
13425 return;
13426 }
13427 static const char LOCATE_parser___parser_prod___APlusMethid___replace_child[] = "parser_prod::APlusMethid::(parser_prod::ANode::replace_child)";
13428 void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
13429 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13430 val_t REGB0;
13431 val_t REGB1;
13432 val_t tmp;
13433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13434 fra.me.file = LOCATE_parser___parser_prod;
13435 fra.me.line = 2424;
13436 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
13437 fra.me.has_broke = 0;
13438 fra.me.REG_size = 4;
13439 fra.me.nitni_local_ref_head = NULL;
13440 fra.me.REG[0] = NIT_NULL;
13441 fra.me.REG[1] = NIT_NULL;
13442 fra.me.REG[2] = NIT_NULL;
13443 fra.me.REG[3] = NIT_NULL;
13444 fra.me.REG[0] = p0;
13445 fra.me.REG[1] = p1;
13446 fra.me.REG[2] = p2;
13447 /* parser/parser_prod.nit:2426 */
13448 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
13449 if (UNTAG_Bool(REGB0)) {
13450 } else {
13451 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2426);
13452 }
13453 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
13454 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13455 if (UNTAG_Bool(REGB0)) {
13456 } else {
13457 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13458 REGB0 = REGB1;
13459 }
13460 if (UNTAG_Bool(REGB0)) {
13461 /* parser/parser_prod.nit:2427 */
13462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13463 if (UNTAG_Bool(REGB0)) {
13464 } else {
13465 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13466 if (UNTAG_Bool(REGB1)) {
13467 REGB1 = TAG_Bool(0);
13468 REGB0 = REGB1;
13469 } else {
13470 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13471 REGB0 = REGB1;
13472 }
13473 }
13474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13475 if (UNTAG_Bool(REGB0)) {
13476 /* parser/parser_prod.nit:2428 */
13477 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13478 if (UNTAG_Bool(REGB0)) {
13479 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2428);
13480 }
13481 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13482 /* parser/parser_prod.nit:2429 */
13483 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*/;
13484 if (UNTAG_Bool(REGB0)) {
13485 } else {
13486 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2429);
13487 }
13488 /* parser/parser_prod.nit:2430 */
13489 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
13490 } else {
13491 /* parser/parser_prod.nit:2432 */
13492 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2432);
13493 }
13494 /* parser/parser_prod.nit:2434 */
13495 goto label1;
13496 }
13497 label1: while(0);
13498 stack_frame_head = fra.me.prev;
13499 return;
13500 }
13501 static const char LOCATE_parser___parser_prod___APlusMethid___visit_all[] = "parser_prod::APlusMethid::(parser_prod::ANode::visit_all)";
13502 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
13503 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13504 val_t REGB0;
13505 val_t tmp;
13506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13507 fra.me.file = LOCATE_parser___parser_prod;
13508 fra.me.line = 2438;
13509 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
13510 fra.me.has_broke = 0;
13511 fra.me.REG_size = 2;
13512 fra.me.nitni_local_ref_head = NULL;
13513 fra.me.REG[0] = NIT_NULL;
13514 fra.me.REG[1] = NIT_NULL;
13515 fra.me.REG[0] = p0;
13516 fra.me.REG[1] = p1;
13517 /* parser/parser_prod.nit:2440 */
13518 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
13519 if (UNTAG_Bool(REGB0)) {
13520 } else {
13521 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2440);
13522 }
13523 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
13524 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13525 stack_frame_head = fra.me.prev;
13526 return;
13527 }
13528 static const char LOCATE_parser___parser_prod___AMinusMethid___empty_init[] = "parser_prod::AMinusMethid::empty_init";
13529 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
13530 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
13531 struct {struct stack_frame_t me;} fra;
13532 val_t tmp;
13533 if (init_table[itpos65]) return;
13534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13535 fra.me.file = LOCATE_parser___parser_prod;
13536 fra.me.line = 2444;
13537 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
13538 fra.me.has_broke = 0;
13539 fra.me.REG_size = 1;
13540 fra.me.nitni_local_ref_head = NULL;
13541 fra.me.REG[0] = NIT_NULL;
13542 fra.me.REG[0] = p0;
13543 stack_frame_head = fra.me.prev;
13544 init_table[itpos65] = 1;
13545 return;
13546 }
13547 static const char LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid[] = "parser_prod::AMinusMethid::init_aminusmethid";
13548 void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
13549 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
13550 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13551 val_t REGB0;
13552 val_t tmp;
13553 if (init_table[itpos66]) return;
13554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13555 fra.me.file = LOCATE_parser___parser_prod;
13556 fra.me.line = 2446;
13557 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
13558 fra.me.has_broke = 0;
13559 fra.me.REG_size = 3;
13560 fra.me.nitni_local_ref_head = NULL;
13561 fra.me.REG[0] = NIT_NULL;
13562 fra.me.REG[1] = NIT_NULL;
13563 fra.me.REG[2] = NIT_NULL;
13564 fra.me.REG[0] = p0;
13565 fra.me.REG[1] = p1;
13566 /* parser/parser_prod.nit:2446 */
13567 fra.me.REG[2] = fra.me.REG[0];
13568 /* parser/parser_prod.nit:2450 */
13569 CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13570 /* parser/parser_prod.nit:2451 */
13571 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13572 if (UNTAG_Bool(REGB0)) {
13573 } else {
13574 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2451);
13575 }
13576 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
13577 /* parser/parser_prod.nit:2452 */
13578 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13579 if (UNTAG_Bool(REGB0)) {
13580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2452);
13581 }
13582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13583 stack_frame_head = fra.me.prev;
13584 init_table[itpos66] = 1;
13585 return;
13586 }
13587 static const char LOCATE_parser___parser_prod___AMinusMethid___replace_child[] = "parser_prod::AMinusMethid::(parser_prod::ANode::replace_child)";
13588 void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
13589 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13590 val_t REGB0;
13591 val_t REGB1;
13592 val_t tmp;
13593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13594 fra.me.file = LOCATE_parser___parser_prod;
13595 fra.me.line = 2455;
13596 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
13597 fra.me.has_broke = 0;
13598 fra.me.REG_size = 4;
13599 fra.me.nitni_local_ref_head = NULL;
13600 fra.me.REG[0] = NIT_NULL;
13601 fra.me.REG[1] = NIT_NULL;
13602 fra.me.REG[2] = NIT_NULL;
13603 fra.me.REG[3] = NIT_NULL;
13604 fra.me.REG[0] = p0;
13605 fra.me.REG[1] = p1;
13606 fra.me.REG[2] = p2;
13607 /* parser/parser_prod.nit:2457 */
13608 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
13609 if (UNTAG_Bool(REGB0)) {
13610 } else {
13611 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2457);
13612 }
13613 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
13614 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13615 if (UNTAG_Bool(REGB0)) {
13616 } else {
13617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13618 REGB0 = REGB1;
13619 }
13620 if (UNTAG_Bool(REGB0)) {
13621 /* parser/parser_prod.nit:2458 */
13622 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13623 if (UNTAG_Bool(REGB0)) {
13624 } else {
13625 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13626 if (UNTAG_Bool(REGB1)) {
13627 REGB1 = TAG_Bool(0);
13628 REGB0 = REGB1;
13629 } else {
13630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13631 REGB0 = REGB1;
13632 }
13633 }
13634 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13635 if (UNTAG_Bool(REGB0)) {
13636 /* parser/parser_prod.nit:2459 */
13637 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13638 if (UNTAG_Bool(REGB0)) {
13639 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2459);
13640 }
13641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13642 /* parser/parser_prod.nit:2460 */
13643 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*/;
13644 if (UNTAG_Bool(REGB0)) {
13645 } else {
13646 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2460);
13647 }
13648 /* parser/parser_prod.nit:2461 */
13649 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
13650 } else {
13651 /* parser/parser_prod.nit:2463 */
13652 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2463);
13653 }
13654 /* parser/parser_prod.nit:2465 */
13655 goto label1;
13656 }
13657 label1: while(0);
13658 stack_frame_head = fra.me.prev;
13659 return;
13660 }
13661 static const char LOCATE_parser___parser_prod___AMinusMethid___visit_all[] = "parser_prod::AMinusMethid::(parser_prod::ANode::visit_all)";
13662 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
13663 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13664 val_t REGB0;
13665 val_t tmp;
13666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13667 fra.me.file = LOCATE_parser___parser_prod;
13668 fra.me.line = 2469;
13669 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
13670 fra.me.has_broke = 0;
13671 fra.me.REG_size = 2;
13672 fra.me.nitni_local_ref_head = NULL;
13673 fra.me.REG[0] = NIT_NULL;
13674 fra.me.REG[1] = NIT_NULL;
13675 fra.me.REG[0] = p0;
13676 fra.me.REG[1] = p1;
13677 /* parser/parser_prod.nit:2471 */
13678 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
13679 if (UNTAG_Bool(REGB0)) {
13680 } else {
13681 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2471);
13682 }
13683 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
13684 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13685 stack_frame_head = fra.me.prev;
13686 return;
13687 }
13688 static const char LOCATE_parser___parser_prod___AStarMethid___empty_init[] = "parser_prod::AStarMethid::empty_init";
13689 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
13690 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
13691 struct {struct stack_frame_t me;} fra;
13692 val_t tmp;
13693 if (init_table[itpos67]) return;
13694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13695 fra.me.file = LOCATE_parser___parser_prod;
13696 fra.me.line = 2475;
13697 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
13698 fra.me.has_broke = 0;
13699 fra.me.REG_size = 1;
13700 fra.me.nitni_local_ref_head = NULL;
13701 fra.me.REG[0] = NIT_NULL;
13702 fra.me.REG[0] = p0;
13703 stack_frame_head = fra.me.prev;
13704 init_table[itpos67] = 1;
13705 return;
13706 }
13707 static const char LOCATE_parser___parser_prod___AStarMethid___init_astarmethid[] = "parser_prod::AStarMethid::init_astarmethid";
13708 void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
13709 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
13710 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13711 val_t REGB0;
13712 val_t tmp;
13713 if (init_table[itpos68]) return;
13714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13715 fra.me.file = LOCATE_parser___parser_prod;
13716 fra.me.line = 2477;
13717 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
13718 fra.me.has_broke = 0;
13719 fra.me.REG_size = 3;
13720 fra.me.nitni_local_ref_head = NULL;
13721 fra.me.REG[0] = NIT_NULL;
13722 fra.me.REG[1] = NIT_NULL;
13723 fra.me.REG[2] = NIT_NULL;
13724 fra.me.REG[0] = p0;
13725 fra.me.REG[1] = p1;
13726 /* parser/parser_prod.nit:2477 */
13727 fra.me.REG[2] = fra.me.REG[0];
13728 /* parser/parser_prod.nit:2481 */
13729 CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13730 /* parser/parser_prod.nit:2482 */
13731 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13732 if (UNTAG_Bool(REGB0)) {
13733 } else {
13734 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2482);
13735 }
13736 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
13737 /* parser/parser_prod.nit:2483 */
13738 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13739 if (UNTAG_Bool(REGB0)) {
13740 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2483);
13741 }
13742 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13743 stack_frame_head = fra.me.prev;
13744 init_table[itpos68] = 1;
13745 return;
13746 }
13747 static const char LOCATE_parser___parser_prod___AStarMethid___replace_child[] = "parser_prod::AStarMethid::(parser_prod::ANode::replace_child)";
13748 void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
13749 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13750 val_t REGB0;
13751 val_t REGB1;
13752 val_t tmp;
13753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13754 fra.me.file = LOCATE_parser___parser_prod;
13755 fra.me.line = 2486;
13756 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
13757 fra.me.has_broke = 0;
13758 fra.me.REG_size = 4;
13759 fra.me.nitni_local_ref_head = NULL;
13760 fra.me.REG[0] = NIT_NULL;
13761 fra.me.REG[1] = NIT_NULL;
13762 fra.me.REG[2] = NIT_NULL;
13763 fra.me.REG[3] = NIT_NULL;
13764 fra.me.REG[0] = p0;
13765 fra.me.REG[1] = p1;
13766 fra.me.REG[2] = p2;
13767 /* parser/parser_prod.nit:2488 */
13768 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
13769 if (UNTAG_Bool(REGB0)) {
13770 } else {
13771 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2488);
13772 }
13773 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
13774 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13775 if (UNTAG_Bool(REGB0)) {
13776 } else {
13777 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13778 REGB0 = REGB1;
13779 }
13780 if (UNTAG_Bool(REGB0)) {
13781 /* parser/parser_prod.nit:2489 */
13782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13783 if (UNTAG_Bool(REGB0)) {
13784 } else {
13785 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13786 if (UNTAG_Bool(REGB1)) {
13787 REGB1 = TAG_Bool(0);
13788 REGB0 = REGB1;
13789 } else {
13790 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13791 REGB0 = REGB1;
13792 }
13793 }
13794 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13795 if (UNTAG_Bool(REGB0)) {
13796 /* parser/parser_prod.nit:2490 */
13797 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13798 if (UNTAG_Bool(REGB0)) {
13799 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2490);
13800 }
13801 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13802 /* parser/parser_prod.nit:2491 */
13803 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*/;
13804 if (UNTAG_Bool(REGB0)) {
13805 } else {
13806 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2491);
13807 }
13808 /* parser/parser_prod.nit:2492 */
13809 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
13810 } else {
13811 /* parser/parser_prod.nit:2494 */
13812 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2494);
13813 }
13814 /* parser/parser_prod.nit:2496 */
13815 goto label1;
13816 }
13817 label1: while(0);
13818 stack_frame_head = fra.me.prev;
13819 return;
13820 }
13821 static const char LOCATE_parser___parser_prod___AStarMethid___visit_all[] = "parser_prod::AStarMethid::(parser_prod::ANode::visit_all)";
13822 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
13823 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13824 val_t REGB0;
13825 val_t tmp;
13826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13827 fra.me.file = LOCATE_parser___parser_prod;
13828 fra.me.line = 2500;
13829 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
13830 fra.me.has_broke = 0;
13831 fra.me.REG_size = 2;
13832 fra.me.nitni_local_ref_head = NULL;
13833 fra.me.REG[0] = NIT_NULL;
13834 fra.me.REG[1] = NIT_NULL;
13835 fra.me.REG[0] = p0;
13836 fra.me.REG[1] = p1;
13837 /* parser/parser_prod.nit:2502 */
13838 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
13839 if (UNTAG_Bool(REGB0)) {
13840 } else {
13841 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2502);
13842 }
13843 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
13844 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13845 stack_frame_head = fra.me.prev;
13846 return;
13847 }
13848 static const char LOCATE_parser___parser_prod___ASlashMethid___empty_init[] = "parser_prod::ASlashMethid::empty_init";
13849 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
13850 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13851 struct {struct stack_frame_t me;} fra;
13852 val_t tmp;
13853 if (init_table[itpos69]) return;
13854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13855 fra.me.file = LOCATE_parser___parser_prod;
13856 fra.me.line = 2506;
13857 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
13858 fra.me.has_broke = 0;
13859 fra.me.REG_size = 1;
13860 fra.me.nitni_local_ref_head = NULL;
13861 fra.me.REG[0] = NIT_NULL;
13862 fra.me.REG[0] = p0;
13863 stack_frame_head = fra.me.prev;
13864 init_table[itpos69] = 1;
13865 return;
13866 }
13867 static const char LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid[] = "parser_prod::ASlashMethid::init_aslashmethid";
13868 void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
13869 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13870 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13871 val_t REGB0;
13872 val_t tmp;
13873 if (init_table[itpos70]) return;
13874 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13875 fra.me.file = LOCATE_parser___parser_prod;
13876 fra.me.line = 2508;
13877 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
13878 fra.me.has_broke = 0;
13879 fra.me.REG_size = 3;
13880 fra.me.nitni_local_ref_head = NULL;
13881 fra.me.REG[0] = NIT_NULL;
13882 fra.me.REG[1] = NIT_NULL;
13883 fra.me.REG[2] = NIT_NULL;
13884 fra.me.REG[0] = p0;
13885 fra.me.REG[1] = p1;
13886 /* parser/parser_prod.nit:2508 */
13887 fra.me.REG[2] = fra.me.REG[0];
13888 /* parser/parser_prod.nit:2512 */
13889 CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13890 /* parser/parser_prod.nit:2513 */
13891 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13892 if (UNTAG_Bool(REGB0)) {
13893 } else {
13894 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2513);
13895 }
13896 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
13897 /* parser/parser_prod.nit:2514 */
13898 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13899 if (UNTAG_Bool(REGB0)) {
13900 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2514);
13901 }
13902 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13903 stack_frame_head = fra.me.prev;
13904 init_table[itpos70] = 1;
13905 return;
13906 }
13907 static const char LOCATE_parser___parser_prod___ASlashMethid___replace_child[] = "parser_prod::ASlashMethid::(parser_prod::ANode::replace_child)";
13908 void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
13909 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13910 val_t REGB0;
13911 val_t REGB1;
13912 val_t tmp;
13913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13914 fra.me.file = LOCATE_parser___parser_prod;
13915 fra.me.line = 2517;
13916 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
13917 fra.me.has_broke = 0;
13918 fra.me.REG_size = 4;
13919 fra.me.nitni_local_ref_head = NULL;
13920 fra.me.REG[0] = NIT_NULL;
13921 fra.me.REG[1] = NIT_NULL;
13922 fra.me.REG[2] = NIT_NULL;
13923 fra.me.REG[3] = NIT_NULL;
13924 fra.me.REG[0] = p0;
13925 fra.me.REG[1] = p1;
13926 fra.me.REG[2] = p2;
13927 /* parser/parser_prod.nit:2519 */
13928 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13929 if (UNTAG_Bool(REGB0)) {
13930 } else {
13931 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2519);
13932 }
13933 fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13934 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13935 if (UNTAG_Bool(REGB0)) {
13936 } else {
13937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13938 REGB0 = REGB1;
13939 }
13940 if (UNTAG_Bool(REGB0)) {
13941 /* parser/parser_prod.nit:2520 */
13942 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13943 if (UNTAG_Bool(REGB0)) {
13944 } else {
13945 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13946 if (UNTAG_Bool(REGB1)) {
13947 REGB1 = TAG_Bool(0);
13948 REGB0 = REGB1;
13949 } else {
13950 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13951 REGB0 = REGB1;
13952 }
13953 }
13954 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13955 if (UNTAG_Bool(REGB0)) {
13956 /* parser/parser_prod.nit:2521 */
13957 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13958 if (UNTAG_Bool(REGB0)) {
13959 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2521);
13960 }
13961 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13962 /* parser/parser_prod.nit:2522 */
13963 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*/;
13964 if (UNTAG_Bool(REGB0)) {
13965 } else {
13966 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2522);
13967 }
13968 /* parser/parser_prod.nit:2523 */
13969 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
13970 } else {
13971 /* parser/parser_prod.nit:2525 */
13972 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2525);
13973 }
13974 /* parser/parser_prod.nit:2527 */
13975 goto label1;
13976 }
13977 label1: while(0);
13978 stack_frame_head = fra.me.prev;
13979 return;
13980 }
13981 static const char LOCATE_parser___parser_prod___ASlashMethid___visit_all[] = "parser_prod::ASlashMethid::(parser_prod::ANode::visit_all)";
13982 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
13983 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13984 val_t REGB0;
13985 val_t tmp;
13986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13987 fra.me.file = LOCATE_parser___parser_prod;
13988 fra.me.line = 2531;
13989 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
13990 fra.me.has_broke = 0;
13991 fra.me.REG_size = 2;
13992 fra.me.nitni_local_ref_head = NULL;
13993 fra.me.REG[0] = NIT_NULL;
13994 fra.me.REG[1] = NIT_NULL;
13995 fra.me.REG[0] = p0;
13996 fra.me.REG[1] = p1;
13997 /* parser/parser_prod.nit:2533 */
13998 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13999 if (UNTAG_Bool(REGB0)) {
14000 } else {
14001 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2533);
14002 }
14003 fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
14004 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14005 stack_frame_head = fra.me.prev;
14006 return;
14007 }
14008 static const char LOCATE_parser___parser_prod___APercentMethid___empty_init[] = "parser_prod::APercentMethid::empty_init";
14009 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
14010 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
14011 struct {struct stack_frame_t me;} fra;
14012 val_t tmp;
14013 if (init_table[itpos71]) return;
14014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14015 fra.me.file = LOCATE_parser___parser_prod;
14016 fra.me.line = 2537;
14017 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
14018 fra.me.has_broke = 0;
14019 fra.me.REG_size = 1;
14020 fra.me.nitni_local_ref_head = NULL;
14021 fra.me.REG[0] = NIT_NULL;
14022 fra.me.REG[0] = p0;
14023 stack_frame_head = fra.me.prev;
14024 init_table[itpos71] = 1;
14025 return;
14026 }
14027 static const char LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid[] = "parser_prod::APercentMethid::init_apercentmethid";
14028 void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
14029 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
14030 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14031 val_t REGB0;
14032 val_t tmp;
14033 if (init_table[itpos72]) return;
14034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14035 fra.me.file = LOCATE_parser___parser_prod;
14036 fra.me.line = 2539;
14037 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
14038 fra.me.has_broke = 0;
14039 fra.me.REG_size = 3;
14040 fra.me.nitni_local_ref_head = NULL;
14041 fra.me.REG[0] = NIT_NULL;
14042 fra.me.REG[1] = NIT_NULL;
14043 fra.me.REG[2] = NIT_NULL;
14044 fra.me.REG[0] = p0;
14045 fra.me.REG[1] = p1;
14046 /* parser/parser_prod.nit:2539 */
14047 fra.me.REG[2] = fra.me.REG[0];
14048 /* parser/parser_prod.nit:2543 */
14049 CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14050 /* parser/parser_prod.nit:2544 */
14051 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14052 if (UNTAG_Bool(REGB0)) {
14053 } else {
14054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2544);
14055 }
14056 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
14057 /* parser/parser_prod.nit:2545 */
14058 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14059 if (UNTAG_Bool(REGB0)) {
14060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2545);
14061 }
14062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14063 stack_frame_head = fra.me.prev;
14064 init_table[itpos72] = 1;
14065 return;
14066 }
14067 static const char LOCATE_parser___parser_prod___APercentMethid___replace_child[] = "parser_prod::APercentMethid::(parser_prod::ANode::replace_child)";
14068 void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
14069 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14070 val_t REGB0;
14071 val_t REGB1;
14072 val_t tmp;
14073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14074 fra.me.file = LOCATE_parser___parser_prod;
14075 fra.me.line = 2548;
14076 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
14077 fra.me.has_broke = 0;
14078 fra.me.REG_size = 4;
14079 fra.me.nitni_local_ref_head = NULL;
14080 fra.me.REG[0] = NIT_NULL;
14081 fra.me.REG[1] = NIT_NULL;
14082 fra.me.REG[2] = NIT_NULL;
14083 fra.me.REG[3] = NIT_NULL;
14084 fra.me.REG[0] = p0;
14085 fra.me.REG[1] = p1;
14086 fra.me.REG[2] = p2;
14087 /* parser/parser_prod.nit:2550 */
14088 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
14089 if (UNTAG_Bool(REGB0)) {
14090 } else {
14091 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2550);
14092 }
14093 fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
14094 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14095 if (UNTAG_Bool(REGB0)) {
14096 } else {
14097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14098 REGB0 = REGB1;
14099 }
14100 if (UNTAG_Bool(REGB0)) {
14101 /* parser/parser_prod.nit:2551 */
14102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14103 if (UNTAG_Bool(REGB0)) {
14104 } else {
14105 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14106 if (UNTAG_Bool(REGB1)) {
14107 REGB1 = TAG_Bool(0);
14108 REGB0 = REGB1;
14109 } else {
14110 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14111 REGB0 = REGB1;
14112 }
14113 }
14114 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14115 if (UNTAG_Bool(REGB0)) {
14116 /* parser/parser_prod.nit:2552 */
14117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14118 if (UNTAG_Bool(REGB0)) {
14119 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2552);
14120 }
14121 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14122 /* parser/parser_prod.nit:2553 */
14123 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*/;
14124 if (UNTAG_Bool(REGB0)) {
14125 } else {
14126 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2553);
14127 }
14128 /* parser/parser_prod.nit:2554 */
14129 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
14130 } else {
14131 /* parser/parser_prod.nit:2556 */
14132 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2556);
14133 }
14134 /* parser/parser_prod.nit:2558 */
14135 goto label1;
14136 }
14137 label1: while(0);
14138 stack_frame_head = fra.me.prev;
14139 return;
14140 }
14141 static const char LOCATE_parser___parser_prod___APercentMethid___visit_all[] = "parser_prod::APercentMethid::(parser_prod::ANode::visit_all)";
14142 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
14143 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14144 val_t REGB0;
14145 val_t tmp;
14146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14147 fra.me.file = LOCATE_parser___parser_prod;
14148 fra.me.line = 2562;
14149 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
14150 fra.me.has_broke = 0;
14151 fra.me.REG_size = 2;
14152 fra.me.nitni_local_ref_head = NULL;
14153 fra.me.REG[0] = NIT_NULL;
14154 fra.me.REG[1] = NIT_NULL;
14155 fra.me.REG[0] = p0;
14156 fra.me.REG[1] = p1;
14157 /* parser/parser_prod.nit:2564 */
14158 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
14159 if (UNTAG_Bool(REGB0)) {
14160 } else {
14161 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2564);
14162 }
14163 fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
14164 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14165 stack_frame_head = fra.me.prev;
14166 return;
14167 }
14168 static const char LOCATE_parser___parser_prod___AEqMethid___empty_init[] = "parser_prod::AEqMethid::empty_init";
14169 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
14170 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
14171 struct {struct stack_frame_t me;} fra;
14172 val_t tmp;
14173 if (init_table[itpos73]) return;
14174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14175 fra.me.file = LOCATE_parser___parser_prod;
14176 fra.me.line = 2568;
14177 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
14178 fra.me.has_broke = 0;
14179 fra.me.REG_size = 1;
14180 fra.me.nitni_local_ref_head = NULL;
14181 fra.me.REG[0] = NIT_NULL;
14182 fra.me.REG[0] = p0;
14183 stack_frame_head = fra.me.prev;
14184 init_table[itpos73] = 1;
14185 return;
14186 }
14187 static const char LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid[] = "parser_prod::AEqMethid::init_aeqmethid";
14188 void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
14189 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
14190 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14191 val_t REGB0;
14192 val_t tmp;
14193 if (init_table[itpos74]) return;
14194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14195 fra.me.file = LOCATE_parser___parser_prod;
14196 fra.me.line = 2570;
14197 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
14198 fra.me.has_broke = 0;
14199 fra.me.REG_size = 3;
14200 fra.me.nitni_local_ref_head = NULL;
14201 fra.me.REG[0] = NIT_NULL;
14202 fra.me.REG[1] = NIT_NULL;
14203 fra.me.REG[2] = NIT_NULL;
14204 fra.me.REG[0] = p0;
14205 fra.me.REG[1] = p1;
14206 /* parser/parser_prod.nit:2570 */
14207 fra.me.REG[2] = fra.me.REG[0];
14208 /* parser/parser_prod.nit:2574 */
14209 CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14210 /* parser/parser_prod.nit:2575 */
14211 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14212 if (UNTAG_Bool(REGB0)) {
14213 } else {
14214 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2575);
14215 }
14216 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
14217 /* parser/parser_prod.nit:2576 */
14218 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14219 if (UNTAG_Bool(REGB0)) {
14220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2576);
14221 }
14222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14223 stack_frame_head = fra.me.prev;
14224 init_table[itpos74] = 1;
14225 return;
14226 }
14227 static const char LOCATE_parser___parser_prod___AEqMethid___replace_child[] = "parser_prod::AEqMethid::(parser_prod::ANode::replace_child)";
14228 void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
14229 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14230 val_t REGB0;
14231 val_t REGB1;
14232 val_t tmp;
14233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14234 fra.me.file = LOCATE_parser___parser_prod;
14235 fra.me.line = 2579;
14236 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
14237 fra.me.has_broke = 0;
14238 fra.me.REG_size = 4;
14239 fra.me.nitni_local_ref_head = NULL;
14240 fra.me.REG[0] = NIT_NULL;
14241 fra.me.REG[1] = NIT_NULL;
14242 fra.me.REG[2] = NIT_NULL;
14243 fra.me.REG[3] = NIT_NULL;
14244 fra.me.REG[0] = p0;
14245 fra.me.REG[1] = p1;
14246 fra.me.REG[2] = p2;
14247 /* parser/parser_prod.nit:2581 */
14248 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
14249 if (UNTAG_Bool(REGB0)) {
14250 } else {
14251 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2581);
14252 }
14253 fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
14254 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14255 if (UNTAG_Bool(REGB0)) {
14256 } else {
14257 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14258 REGB0 = REGB1;
14259 }
14260 if (UNTAG_Bool(REGB0)) {
14261 /* parser/parser_prod.nit:2582 */
14262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14263 if (UNTAG_Bool(REGB0)) {
14264 } else {
14265 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14266 if (UNTAG_Bool(REGB1)) {
14267 REGB1 = TAG_Bool(0);
14268 REGB0 = REGB1;
14269 } else {
14270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14271 REGB0 = REGB1;
14272 }
14273 }
14274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14275 if (UNTAG_Bool(REGB0)) {
14276 /* parser/parser_prod.nit:2583 */
14277 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14278 if (UNTAG_Bool(REGB0)) {
14279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2583);
14280 }
14281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14282 /* parser/parser_prod.nit:2584 */
14283 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*/;
14284 if (UNTAG_Bool(REGB0)) {
14285 } else {
14286 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2584);
14287 }
14288 /* parser/parser_prod.nit:2585 */
14289 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
14290 } else {
14291 /* parser/parser_prod.nit:2587 */
14292 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2587);
14293 }
14294 /* parser/parser_prod.nit:2589 */
14295 goto label1;
14296 }
14297 label1: while(0);
14298 stack_frame_head = fra.me.prev;
14299 return;
14300 }
14301 static const char LOCATE_parser___parser_prod___AEqMethid___visit_all[] = "parser_prod::AEqMethid::(parser_prod::ANode::visit_all)";
14302 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
14303 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14304 val_t REGB0;
14305 val_t tmp;
14306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14307 fra.me.file = LOCATE_parser___parser_prod;
14308 fra.me.line = 2593;
14309 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
14310 fra.me.has_broke = 0;
14311 fra.me.REG_size = 2;
14312 fra.me.nitni_local_ref_head = NULL;
14313 fra.me.REG[0] = NIT_NULL;
14314 fra.me.REG[1] = NIT_NULL;
14315 fra.me.REG[0] = p0;
14316 fra.me.REG[1] = p1;
14317 /* parser/parser_prod.nit:2595 */
14318 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
14319 if (UNTAG_Bool(REGB0)) {
14320 } else {
14321 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2595);
14322 }
14323 fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
14324 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14325 stack_frame_head = fra.me.prev;
14326 return;
14327 }
14328 static const char LOCATE_parser___parser_prod___ANeMethid___empty_init[] = "parser_prod::ANeMethid::empty_init";
14329 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
14330 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
14331 struct {struct stack_frame_t me;} fra;
14332 val_t tmp;
14333 if (init_table[itpos75]) return;
14334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14335 fra.me.file = LOCATE_parser___parser_prod;
14336 fra.me.line = 2599;
14337 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___empty_init;
14338 fra.me.has_broke = 0;
14339 fra.me.REG_size = 1;
14340 fra.me.nitni_local_ref_head = NULL;
14341 fra.me.REG[0] = NIT_NULL;
14342 fra.me.REG[0] = p0;
14343 stack_frame_head = fra.me.prev;
14344 init_table[itpos75] = 1;
14345 return;
14346 }
14347 static const char LOCATE_parser___parser_prod___ANeMethid___init_anemethid[] = "parser_prod::ANeMethid::init_anemethid";
14348 void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
14349 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
14350 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14351 val_t REGB0;
14352 val_t tmp;
14353 if (init_table[itpos76]) return;
14354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14355 fra.me.file = LOCATE_parser___parser_prod;
14356 fra.me.line = 2601;
14357 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
14358 fra.me.has_broke = 0;
14359 fra.me.REG_size = 3;
14360 fra.me.nitni_local_ref_head = NULL;
14361 fra.me.REG[0] = NIT_NULL;
14362 fra.me.REG[1] = NIT_NULL;
14363 fra.me.REG[2] = NIT_NULL;
14364 fra.me.REG[0] = p0;
14365 fra.me.REG[1] = p1;
14366 /* parser/parser_prod.nit:2601 */
14367 fra.me.REG[2] = fra.me.REG[0];
14368 /* parser/parser_prod.nit:2605 */
14369 CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14370 /* parser/parser_prod.nit:2606 */
14371 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14372 if (UNTAG_Bool(REGB0)) {
14373 } else {
14374 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2606);
14375 }
14376 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
14377 /* parser/parser_prod.nit:2607 */
14378 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14379 if (UNTAG_Bool(REGB0)) {
14380 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2607);
14381 }
14382 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14383 stack_frame_head = fra.me.prev;
14384 init_table[itpos76] = 1;
14385 return;
14386 }
14387 static const char LOCATE_parser___parser_prod___ANeMethid___replace_child[] = "parser_prod::ANeMethid::(parser_prod::ANode::replace_child)";
14388 void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
14389 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14390 val_t REGB0;
14391 val_t REGB1;
14392 val_t tmp;
14393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14394 fra.me.file = LOCATE_parser___parser_prod;
14395 fra.me.line = 2610;
14396 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___replace_child;
14397 fra.me.has_broke = 0;
14398 fra.me.REG_size = 4;
14399 fra.me.nitni_local_ref_head = NULL;
14400 fra.me.REG[0] = NIT_NULL;
14401 fra.me.REG[1] = NIT_NULL;
14402 fra.me.REG[2] = NIT_NULL;
14403 fra.me.REG[3] = NIT_NULL;
14404 fra.me.REG[0] = p0;
14405 fra.me.REG[1] = p1;
14406 fra.me.REG[2] = p2;
14407 /* parser/parser_prod.nit:2612 */
14408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
14409 if (UNTAG_Bool(REGB0)) {
14410 } else {
14411 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2612);
14412 }
14413 fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
14414 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14415 if (UNTAG_Bool(REGB0)) {
14416 } else {
14417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14418 REGB0 = REGB1;
14419 }
14420 if (UNTAG_Bool(REGB0)) {
14421 /* parser/parser_prod.nit:2613 */
14422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14423 if (UNTAG_Bool(REGB0)) {
14424 } else {
14425 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14426 if (UNTAG_Bool(REGB1)) {
14427 REGB1 = TAG_Bool(0);
14428 REGB0 = REGB1;
14429 } else {
14430 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14431 REGB0 = REGB1;
14432 }
14433 }
14434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14435 if (UNTAG_Bool(REGB0)) {
14436 /* parser/parser_prod.nit:2614 */
14437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14438 if (UNTAG_Bool(REGB0)) {
14439 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2614);
14440 }
14441 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14442 /* parser/parser_prod.nit:2615 */
14443 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*/;
14444 if (UNTAG_Bool(REGB0)) {
14445 } else {
14446 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2615);
14447 }
14448 /* parser/parser_prod.nit:2616 */
14449 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
14450 } else {
14451 /* parser/parser_prod.nit:2618 */
14452 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2618);
14453 }
14454 /* parser/parser_prod.nit:2620 */
14455 goto label1;
14456 }
14457 label1: while(0);
14458 stack_frame_head = fra.me.prev;
14459 return;
14460 }
14461 static const char LOCATE_parser___parser_prod___ANeMethid___visit_all[] = "parser_prod::ANeMethid::(parser_prod::ANode::visit_all)";
14462 void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
14463 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14464 val_t REGB0;
14465 val_t tmp;
14466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14467 fra.me.file = LOCATE_parser___parser_prod;
14468 fra.me.line = 2624;
14469 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___visit_all;
14470 fra.me.has_broke = 0;
14471 fra.me.REG_size = 2;
14472 fra.me.nitni_local_ref_head = NULL;
14473 fra.me.REG[0] = NIT_NULL;
14474 fra.me.REG[1] = NIT_NULL;
14475 fra.me.REG[0] = p0;
14476 fra.me.REG[1] = p1;
14477 /* parser/parser_prod.nit:2626 */
14478 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
14479 if (UNTAG_Bool(REGB0)) {
14480 } else {
14481 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2626);
14482 }
14483 fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
14484 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14485 stack_frame_head = fra.me.prev;
14486 return;
14487 }
14488 static const char LOCATE_parser___parser_prod___ALeMethid___empty_init[] = "parser_prod::ALeMethid::empty_init";
14489 void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
14490 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
14491 struct {struct stack_frame_t me;} fra;
14492 val_t tmp;
14493 if (init_table[itpos77]) return;
14494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14495 fra.me.file = LOCATE_parser___parser_prod;
14496 fra.me.line = 2630;
14497 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___empty_init;
14498 fra.me.has_broke = 0;
14499 fra.me.REG_size = 1;
14500 fra.me.nitni_local_ref_head = NULL;
14501 fra.me.REG[0] = NIT_NULL;
14502 fra.me.REG[0] = p0;
14503 stack_frame_head = fra.me.prev;
14504 init_table[itpos77] = 1;
14505 return;
14506 }
14507 static const char LOCATE_parser___parser_prod___ALeMethid___init_alemethid[] = "parser_prod::ALeMethid::init_alemethid";
14508 void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
14509 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
14510 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14511 val_t REGB0;
14512 val_t tmp;
14513 if (init_table[itpos78]) return;
14514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14515 fra.me.file = LOCATE_parser___parser_prod;
14516 fra.me.line = 2632;
14517 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
14518 fra.me.has_broke = 0;
14519 fra.me.REG_size = 3;
14520 fra.me.nitni_local_ref_head = NULL;
14521 fra.me.REG[0] = NIT_NULL;
14522 fra.me.REG[1] = NIT_NULL;
14523 fra.me.REG[2] = NIT_NULL;
14524 fra.me.REG[0] = p0;
14525 fra.me.REG[1] = p1;
14526 /* parser/parser_prod.nit:2632 */
14527 fra.me.REG[2] = fra.me.REG[0];
14528 /* parser/parser_prod.nit:2636 */
14529 CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14530 /* parser/parser_prod.nit:2637 */
14531 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14532 if (UNTAG_Bool(REGB0)) {
14533 } else {
14534 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2637);
14535 }
14536 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
14537 /* parser/parser_prod.nit:2638 */
14538 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14539 if (UNTAG_Bool(REGB0)) {
14540 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2638);
14541 }
14542 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14543 stack_frame_head = fra.me.prev;
14544 init_table[itpos78] = 1;
14545 return;
14546 }
14547 static const char LOCATE_parser___parser_prod___ALeMethid___replace_child[] = "parser_prod::ALeMethid::(parser_prod::ANode::replace_child)";
14548 void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
14549 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14550 val_t REGB0;
14551 val_t REGB1;
14552 val_t tmp;
14553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14554 fra.me.file = LOCATE_parser___parser_prod;
14555 fra.me.line = 2641;
14556 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___replace_child;
14557 fra.me.has_broke = 0;
14558 fra.me.REG_size = 4;
14559 fra.me.nitni_local_ref_head = NULL;
14560 fra.me.REG[0] = NIT_NULL;
14561 fra.me.REG[1] = NIT_NULL;
14562 fra.me.REG[2] = NIT_NULL;
14563 fra.me.REG[3] = NIT_NULL;
14564 fra.me.REG[0] = p0;
14565 fra.me.REG[1] = p1;
14566 fra.me.REG[2] = p2;
14567 /* parser/parser_prod.nit:2643 */
14568 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
14569 if (UNTAG_Bool(REGB0)) {
14570 } else {
14571 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2643);
14572 }
14573 fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
14574 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14575 if (UNTAG_Bool(REGB0)) {
14576 } else {
14577 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14578 REGB0 = REGB1;
14579 }
14580 if (UNTAG_Bool(REGB0)) {
14581 /* parser/parser_prod.nit:2644 */
14582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14583 if (UNTAG_Bool(REGB0)) {
14584 } else {
14585 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14586 if (UNTAG_Bool(REGB1)) {
14587 REGB1 = TAG_Bool(0);
14588 REGB0 = REGB1;
14589 } else {
14590 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14591 REGB0 = REGB1;
14592 }
14593 }
14594 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14595 if (UNTAG_Bool(REGB0)) {
14596 /* parser/parser_prod.nit:2645 */
14597 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14598 if (UNTAG_Bool(REGB0)) {
14599 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2645);
14600 }
14601 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14602 /* parser/parser_prod.nit:2646 */
14603 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*/;
14604 if (UNTAG_Bool(REGB0)) {
14605 } else {
14606 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2646);
14607 }
14608 /* parser/parser_prod.nit:2647 */
14609 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
14610 } else {
14611 /* parser/parser_prod.nit:2649 */
14612 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2649);
14613 }
14614 /* parser/parser_prod.nit:2651 */
14615 goto label1;
14616 }
14617 label1: while(0);
14618 stack_frame_head = fra.me.prev;
14619 return;
14620 }
14621 static const char LOCATE_parser___parser_prod___ALeMethid___visit_all[] = "parser_prod::ALeMethid::(parser_prod::ANode::visit_all)";
14622 void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
14623 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14624 val_t REGB0;
14625 val_t tmp;
14626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14627 fra.me.file = LOCATE_parser___parser_prod;
14628 fra.me.line = 2655;
14629 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___visit_all;
14630 fra.me.has_broke = 0;
14631 fra.me.REG_size = 2;
14632 fra.me.nitni_local_ref_head = NULL;
14633 fra.me.REG[0] = NIT_NULL;
14634 fra.me.REG[1] = NIT_NULL;
14635 fra.me.REG[0] = p0;
14636 fra.me.REG[1] = p1;
14637 /* parser/parser_prod.nit:2657 */
14638 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
14639 if (UNTAG_Bool(REGB0)) {
14640 } else {
14641 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2657);
14642 }
14643 fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
14644 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14645 stack_frame_head = fra.me.prev;
14646 return;
14647 }
14648 static const char LOCATE_parser___parser_prod___AGeMethid___empty_init[] = "parser_prod::AGeMethid::empty_init";
14649 void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
14650 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
14651 struct {struct stack_frame_t me;} fra;
14652 val_t tmp;
14653 if (init_table[itpos79]) return;
14654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14655 fra.me.file = LOCATE_parser___parser_prod;
14656 fra.me.line = 2661;
14657 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___empty_init;
14658 fra.me.has_broke = 0;
14659 fra.me.REG_size = 1;
14660 fra.me.nitni_local_ref_head = NULL;
14661 fra.me.REG[0] = NIT_NULL;
14662 fra.me.REG[0] = p0;
14663 stack_frame_head = fra.me.prev;
14664 init_table[itpos79] = 1;
14665 return;
14666 }
14667 static const char LOCATE_parser___parser_prod___AGeMethid___init_agemethid[] = "parser_prod::AGeMethid::init_agemethid";
14668 void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
14669 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
14670 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14671 val_t REGB0;
14672 val_t tmp;
14673 if (init_table[itpos80]) return;
14674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14675 fra.me.file = LOCATE_parser___parser_prod;
14676 fra.me.line = 2663;
14677 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
14678 fra.me.has_broke = 0;
14679 fra.me.REG_size = 3;
14680 fra.me.nitni_local_ref_head = NULL;
14681 fra.me.REG[0] = NIT_NULL;
14682 fra.me.REG[1] = NIT_NULL;
14683 fra.me.REG[2] = NIT_NULL;
14684 fra.me.REG[0] = p0;
14685 fra.me.REG[1] = p1;
14686 /* parser/parser_prod.nit:2663 */
14687 fra.me.REG[2] = fra.me.REG[0];
14688 /* parser/parser_prod.nit:2667 */
14689 CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14690 /* parser/parser_prod.nit:2668 */
14691 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14692 if (UNTAG_Bool(REGB0)) {
14693 } else {
14694 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2668);
14695 }
14696 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
14697 /* parser/parser_prod.nit:2669 */
14698 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14699 if (UNTAG_Bool(REGB0)) {
14700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2669);
14701 }
14702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14703 stack_frame_head = fra.me.prev;
14704 init_table[itpos80] = 1;
14705 return;
14706 }
14707 static const char LOCATE_parser___parser_prod___AGeMethid___replace_child[] = "parser_prod::AGeMethid::(parser_prod::ANode::replace_child)";
14708 void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
14709 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14710 val_t REGB0;
14711 val_t REGB1;
14712 val_t tmp;
14713 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14714 fra.me.file = LOCATE_parser___parser_prod;
14715 fra.me.line = 2672;
14716 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___replace_child;
14717 fra.me.has_broke = 0;
14718 fra.me.REG_size = 4;
14719 fra.me.nitni_local_ref_head = NULL;
14720 fra.me.REG[0] = NIT_NULL;
14721 fra.me.REG[1] = NIT_NULL;
14722 fra.me.REG[2] = NIT_NULL;
14723 fra.me.REG[3] = NIT_NULL;
14724 fra.me.REG[0] = p0;
14725 fra.me.REG[1] = p1;
14726 fra.me.REG[2] = p2;
14727 /* parser/parser_prod.nit:2674 */
14728 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
14729 if (UNTAG_Bool(REGB0)) {
14730 } else {
14731 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2674);
14732 }
14733 fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
14734 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14735 if (UNTAG_Bool(REGB0)) {
14736 } else {
14737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14738 REGB0 = REGB1;
14739 }
14740 if (UNTAG_Bool(REGB0)) {
14741 /* parser/parser_prod.nit:2675 */
14742 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14743 if (UNTAG_Bool(REGB0)) {
14744 } else {
14745 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14746 if (UNTAG_Bool(REGB1)) {
14747 REGB1 = TAG_Bool(0);
14748 REGB0 = REGB1;
14749 } else {
14750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14751 REGB0 = REGB1;
14752 }
14753 }
14754 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14755 if (UNTAG_Bool(REGB0)) {
14756 /* parser/parser_prod.nit:2676 */
14757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14758 if (UNTAG_Bool(REGB0)) {
14759 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2676);
14760 }
14761 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14762 /* parser/parser_prod.nit:2677 */
14763 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*/;
14764 if (UNTAG_Bool(REGB0)) {
14765 } else {
14766 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2677);
14767 }
14768 /* parser/parser_prod.nit:2678 */
14769 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
14770 } else {
14771 /* parser/parser_prod.nit:2680 */
14772 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2680);
14773 }
14774 /* parser/parser_prod.nit:2682 */
14775 goto label1;
14776 }
14777 label1: while(0);
14778 stack_frame_head = fra.me.prev;
14779 return;
14780 }
14781 static const char LOCATE_parser___parser_prod___AGeMethid___visit_all[] = "parser_prod::AGeMethid::(parser_prod::ANode::visit_all)";
14782 void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
14783 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14784 val_t REGB0;
14785 val_t tmp;
14786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14787 fra.me.file = LOCATE_parser___parser_prod;
14788 fra.me.line = 2686;
14789 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___visit_all;
14790 fra.me.has_broke = 0;
14791 fra.me.REG_size = 2;
14792 fra.me.nitni_local_ref_head = NULL;
14793 fra.me.REG[0] = NIT_NULL;
14794 fra.me.REG[1] = NIT_NULL;
14795 fra.me.REG[0] = p0;
14796 fra.me.REG[1] = p1;
14797 /* parser/parser_prod.nit:2688 */
14798 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
14799 if (UNTAG_Bool(REGB0)) {
14800 } else {
14801 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2688);
14802 }
14803 fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
14804 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14805 stack_frame_head = fra.me.prev;
14806 return;
14807 }
14808 static const char LOCATE_parser___parser_prod___ALtMethid___empty_init[] = "parser_prod::ALtMethid::empty_init";
14809 void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
14810 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
14811 struct {struct stack_frame_t me;} fra;
14812 val_t tmp;
14813 if (init_table[itpos81]) return;
14814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14815 fra.me.file = LOCATE_parser___parser_prod;
14816 fra.me.line = 2692;
14817 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___empty_init;
14818 fra.me.has_broke = 0;
14819 fra.me.REG_size = 1;
14820 fra.me.nitni_local_ref_head = NULL;
14821 fra.me.REG[0] = NIT_NULL;
14822 fra.me.REG[0] = p0;
14823 stack_frame_head = fra.me.prev;
14824 init_table[itpos81] = 1;
14825 return;
14826 }
14827 static const char LOCATE_parser___parser_prod___ALtMethid___init_altmethid[] = "parser_prod::ALtMethid::init_altmethid";
14828 void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
14829 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
14830 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14831 val_t REGB0;
14832 val_t tmp;
14833 if (init_table[itpos82]) return;
14834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14835 fra.me.file = LOCATE_parser___parser_prod;
14836 fra.me.line = 2694;
14837 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
14838 fra.me.has_broke = 0;
14839 fra.me.REG_size = 3;
14840 fra.me.nitni_local_ref_head = NULL;
14841 fra.me.REG[0] = NIT_NULL;
14842 fra.me.REG[1] = NIT_NULL;
14843 fra.me.REG[2] = NIT_NULL;
14844 fra.me.REG[0] = p0;
14845 fra.me.REG[1] = p1;
14846 /* parser/parser_prod.nit:2694 */
14847 fra.me.REG[2] = fra.me.REG[0];
14848 /* parser/parser_prod.nit:2698 */
14849 CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14850 /* parser/parser_prod.nit:2699 */
14851 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14852 if (UNTAG_Bool(REGB0)) {
14853 } else {
14854 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2699);
14855 }
14856 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
14857 /* parser/parser_prod.nit:2700 */
14858 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14859 if (UNTAG_Bool(REGB0)) {
14860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2700);
14861 }
14862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14863 stack_frame_head = fra.me.prev;
14864 init_table[itpos82] = 1;
14865 return;
14866 }
14867 static const char LOCATE_parser___parser_prod___ALtMethid___replace_child[] = "parser_prod::ALtMethid::(parser_prod::ANode::replace_child)";
14868 void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
14869 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14870 val_t REGB0;
14871 val_t REGB1;
14872 val_t tmp;
14873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14874 fra.me.file = LOCATE_parser___parser_prod;
14875 fra.me.line = 2703;
14876 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___replace_child;
14877 fra.me.has_broke = 0;
14878 fra.me.REG_size = 4;
14879 fra.me.nitni_local_ref_head = NULL;
14880 fra.me.REG[0] = NIT_NULL;
14881 fra.me.REG[1] = NIT_NULL;
14882 fra.me.REG[2] = NIT_NULL;
14883 fra.me.REG[3] = NIT_NULL;
14884 fra.me.REG[0] = p0;
14885 fra.me.REG[1] = p1;
14886 fra.me.REG[2] = p2;
14887 /* parser/parser_prod.nit:2705 */
14888 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
14889 if (UNTAG_Bool(REGB0)) {
14890 } else {
14891 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2705);
14892 }
14893 fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14894 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14895 if (UNTAG_Bool(REGB0)) {
14896 } else {
14897 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14898 REGB0 = REGB1;
14899 }
14900 if (UNTAG_Bool(REGB0)) {
14901 /* parser/parser_prod.nit:2706 */
14902 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14903 if (UNTAG_Bool(REGB0)) {
14904 } else {
14905 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14906 if (UNTAG_Bool(REGB1)) {
14907 REGB1 = TAG_Bool(0);
14908 REGB0 = REGB1;
14909 } else {
14910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14911 REGB0 = REGB1;
14912 }
14913 }
14914 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14915 if (UNTAG_Bool(REGB0)) {
14916 /* parser/parser_prod.nit:2707 */
14917 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14918 if (UNTAG_Bool(REGB0)) {
14919 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2707);
14920 }
14921 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14922 /* parser/parser_prod.nit:2708 */
14923 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*/;
14924 if (UNTAG_Bool(REGB0)) {
14925 } else {
14926 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2708);
14927 }
14928 /* parser/parser_prod.nit:2709 */
14929 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
14930 } else {
14931 /* parser/parser_prod.nit:2711 */
14932 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2711);
14933 }
14934 /* parser/parser_prod.nit:2713 */
14935 goto label1;
14936 }
14937 label1: while(0);
14938 stack_frame_head = fra.me.prev;
14939 return;
14940 }
14941 static const char LOCATE_parser___parser_prod___ALtMethid___visit_all[] = "parser_prod::ALtMethid::(parser_prod::ANode::visit_all)";
14942 void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
14943 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14944 val_t REGB0;
14945 val_t tmp;
14946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14947 fra.me.file = LOCATE_parser___parser_prod;
14948 fra.me.line = 2717;
14949 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___visit_all;
14950 fra.me.has_broke = 0;
14951 fra.me.REG_size = 2;
14952 fra.me.nitni_local_ref_head = NULL;
14953 fra.me.REG[0] = NIT_NULL;
14954 fra.me.REG[1] = NIT_NULL;
14955 fra.me.REG[0] = p0;
14956 fra.me.REG[1] = p1;
14957 /* parser/parser_prod.nit:2719 */
14958 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
14959 if (UNTAG_Bool(REGB0)) {
14960 } else {
14961 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2719);
14962 }
14963 fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14964 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14965 stack_frame_head = fra.me.prev;
14966 return;
14967 }
14968 static const char LOCATE_parser___parser_prod___AGtMethid___empty_init[] = "parser_prod::AGtMethid::empty_init";
14969 void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
14970 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14971 struct {struct stack_frame_t me;} fra;
14972 val_t tmp;
14973 if (init_table[itpos83]) return;
14974 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14975 fra.me.file = LOCATE_parser___parser_prod;
14976 fra.me.line = 2723;
14977 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___empty_init;
14978 fra.me.has_broke = 0;
14979 fra.me.REG_size = 1;
14980 fra.me.nitni_local_ref_head = NULL;
14981 fra.me.REG[0] = NIT_NULL;
14982 fra.me.REG[0] = p0;
14983 stack_frame_head = fra.me.prev;
14984 init_table[itpos83] = 1;
14985 return;
14986 }
14987 static const char LOCATE_parser___parser_prod___AGtMethid___init_agtmethid[] = "parser_prod::AGtMethid::init_agtmethid";
14988 void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
14989 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14990 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14991 val_t REGB0;
14992 val_t tmp;
14993 if (init_table[itpos84]) return;
14994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14995 fra.me.file = LOCATE_parser___parser_prod;
14996 fra.me.line = 2725;
14997 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
14998 fra.me.has_broke = 0;
14999 fra.me.REG_size = 3;
15000 fra.me.nitni_local_ref_head = NULL;
15001 fra.me.REG[0] = NIT_NULL;
15002 fra.me.REG[1] = NIT_NULL;
15003 fra.me.REG[2] = NIT_NULL;
15004 fra.me.REG[0] = p0;
15005 fra.me.REG[1] = p1;
15006 /* parser/parser_prod.nit:2725 */
15007 fra.me.REG[2] = fra.me.REG[0];
15008 /* parser/parser_prod.nit:2729 */
15009 CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15010 /* parser/parser_prod.nit:2730 */
15011 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15012 if (UNTAG_Bool(REGB0)) {
15013 } else {
15014 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2730);
15015 }
15016 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
15017 /* parser/parser_prod.nit:2731 */
15018 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15019 if (UNTAG_Bool(REGB0)) {
15020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2731);
15021 }
15022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15023 stack_frame_head = fra.me.prev;
15024 init_table[itpos84] = 1;
15025 return;
15026 }
15027 static const char LOCATE_parser___parser_prod___AGtMethid___replace_child[] = "parser_prod::AGtMethid::(parser_prod::ANode::replace_child)";
15028 void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
15029 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15030 val_t REGB0;
15031 val_t REGB1;
15032 val_t tmp;
15033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15034 fra.me.file = LOCATE_parser___parser_prod;
15035 fra.me.line = 2734;
15036 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___replace_child;
15037 fra.me.has_broke = 0;
15038 fra.me.REG_size = 4;
15039 fra.me.nitni_local_ref_head = NULL;
15040 fra.me.REG[0] = NIT_NULL;
15041 fra.me.REG[1] = NIT_NULL;
15042 fra.me.REG[2] = NIT_NULL;
15043 fra.me.REG[3] = NIT_NULL;
15044 fra.me.REG[0] = p0;
15045 fra.me.REG[1] = p1;
15046 fra.me.REG[2] = p2;
15047 /* parser/parser_prod.nit:2736 */
15048 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
15049 if (UNTAG_Bool(REGB0)) {
15050 } else {
15051 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2736);
15052 }
15053 fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
15054 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15055 if (UNTAG_Bool(REGB0)) {
15056 } else {
15057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15058 REGB0 = REGB1;
15059 }
15060 if (UNTAG_Bool(REGB0)) {
15061 /* parser/parser_prod.nit:2737 */
15062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15063 if (UNTAG_Bool(REGB0)) {
15064 } else {
15065 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15066 if (UNTAG_Bool(REGB1)) {
15067 REGB1 = TAG_Bool(0);
15068 REGB0 = REGB1;
15069 } else {
15070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15071 REGB0 = REGB1;
15072 }
15073 }
15074 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15075 if (UNTAG_Bool(REGB0)) {
15076 /* parser/parser_prod.nit:2738 */
15077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15078 if (UNTAG_Bool(REGB0)) {
15079 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2738);
15080 }
15081 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15082 /* parser/parser_prod.nit:2739 */
15083 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*/;
15084 if (UNTAG_Bool(REGB0)) {
15085 } else {
15086 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2739);
15087 }
15088 /* parser/parser_prod.nit:2740 */
15089 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
15090 } else {
15091 /* parser/parser_prod.nit:2742 */
15092 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2742);
15093 }
15094 /* parser/parser_prod.nit:2744 */
15095 goto label1;
15096 }
15097 label1: while(0);
15098 stack_frame_head = fra.me.prev;
15099 return;
15100 }
15101 static const char LOCATE_parser___parser_prod___AGtMethid___visit_all[] = "parser_prod::AGtMethid::(parser_prod::ANode::visit_all)";
15102 void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
15103 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15104 val_t REGB0;
15105 val_t tmp;
15106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15107 fra.me.file = LOCATE_parser___parser_prod;
15108 fra.me.line = 2748;
15109 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___visit_all;
15110 fra.me.has_broke = 0;
15111 fra.me.REG_size = 2;
15112 fra.me.nitni_local_ref_head = NULL;
15113 fra.me.REG[0] = NIT_NULL;
15114 fra.me.REG[1] = NIT_NULL;
15115 fra.me.REG[0] = p0;
15116 fra.me.REG[1] = p1;
15117 /* parser/parser_prod.nit:2750 */
15118 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
15119 if (UNTAG_Bool(REGB0)) {
15120 } else {
15121 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2750);
15122 }
15123 fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
15124 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15125 stack_frame_head = fra.me.prev;
15126 return;
15127 }
15128 static const char LOCATE_parser___parser_prod___ALlMethid___empty_init[] = "parser_prod::ALlMethid::empty_init";
15129 void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
15130 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
15131 struct {struct stack_frame_t me;} fra;
15132 val_t tmp;
15133 if (init_table[itpos85]) return;
15134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15135 fra.me.file = LOCATE_parser___parser_prod;
15136 fra.me.line = 2754;
15137 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___empty_init;
15138 fra.me.has_broke = 0;
15139 fra.me.REG_size = 1;
15140 fra.me.nitni_local_ref_head = NULL;
15141 fra.me.REG[0] = NIT_NULL;
15142 fra.me.REG[0] = p0;
15143 stack_frame_head = fra.me.prev;
15144 init_table[itpos85] = 1;
15145 return;
15146 }
15147 static const char LOCATE_parser___parser_prod___ALlMethid___init_allmethid[] = "parser_prod::ALlMethid::init_allmethid";
15148 void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
15149 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
15150 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15151 val_t REGB0;
15152 val_t tmp;
15153 if (init_table[itpos86]) return;
15154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15155 fra.me.file = LOCATE_parser___parser_prod;
15156 fra.me.line = 2756;
15157 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
15158 fra.me.has_broke = 0;
15159 fra.me.REG_size = 3;
15160 fra.me.nitni_local_ref_head = NULL;
15161 fra.me.REG[0] = NIT_NULL;
15162 fra.me.REG[1] = NIT_NULL;
15163 fra.me.REG[2] = NIT_NULL;
15164 fra.me.REG[0] = p0;
15165 fra.me.REG[1] = p1;
15166 /* parser/parser_prod.nit:2756 */
15167 fra.me.REG[2] = fra.me.REG[0];
15168 /* parser/parser_prod.nit:2760 */
15169 CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15170 /* parser/parser_prod.nit:2761 */
15171 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15172 if (UNTAG_Bool(REGB0)) {
15173 } else {
15174 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2761);
15175 }
15176 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
15177 /* parser/parser_prod.nit:2762 */
15178 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15179 if (UNTAG_Bool(REGB0)) {
15180 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2762);
15181 }
15182 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15183 stack_frame_head = fra.me.prev;
15184 init_table[itpos86] = 1;
15185 return;
15186 }
15187 static const char LOCATE_parser___parser_prod___ALlMethid___replace_child[] = "parser_prod::ALlMethid::(parser_prod::ANode::replace_child)";
15188 void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
15189 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15190 val_t REGB0;
15191 val_t REGB1;
15192 val_t tmp;
15193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15194 fra.me.file = LOCATE_parser___parser_prod;
15195 fra.me.line = 2765;
15196 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___replace_child;
15197 fra.me.has_broke = 0;
15198 fra.me.REG_size = 4;
15199 fra.me.nitni_local_ref_head = NULL;
15200 fra.me.REG[0] = NIT_NULL;
15201 fra.me.REG[1] = NIT_NULL;
15202 fra.me.REG[2] = NIT_NULL;
15203 fra.me.REG[3] = NIT_NULL;
15204 fra.me.REG[0] = p0;
15205 fra.me.REG[1] = p1;
15206 fra.me.REG[2] = p2;
15207 /* parser/parser_prod.nit:2767 */
15208 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
15209 if (UNTAG_Bool(REGB0)) {
15210 } else {
15211 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2767);
15212 }
15213 fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
15214 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15215 if (UNTAG_Bool(REGB0)) {
15216 } else {
15217 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15218 REGB0 = REGB1;
15219 }
15220 if (UNTAG_Bool(REGB0)) {
15221 /* parser/parser_prod.nit:2768 */
15222 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15223 if (UNTAG_Bool(REGB0)) {
15224 } else {
15225 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15226 if (UNTAG_Bool(REGB1)) {
15227 REGB1 = TAG_Bool(0);
15228 REGB0 = REGB1;
15229 } else {
15230 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15231 REGB0 = REGB1;
15232 }
15233 }
15234 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15235 if (UNTAG_Bool(REGB0)) {
15236 /* parser/parser_prod.nit:2769 */
15237 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15238 if (UNTAG_Bool(REGB0)) {
15239 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2769);
15240 }
15241 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15242 /* parser/parser_prod.nit:2770 */
15243 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*/;
15244 if (UNTAG_Bool(REGB0)) {
15245 } else {
15246 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2770);
15247 }
15248 /* parser/parser_prod.nit:2771 */
15249 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
15250 } else {
15251 /* parser/parser_prod.nit:2773 */
15252 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2773);
15253 }
15254 /* parser/parser_prod.nit:2775 */
15255 goto label1;
15256 }
15257 label1: while(0);
15258 stack_frame_head = fra.me.prev;
15259 return;
15260 }
15261 static const char LOCATE_parser___parser_prod___ALlMethid___visit_all[] = "parser_prod::ALlMethid::(parser_prod::ANode::visit_all)";
15262 void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
15263 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15264 val_t REGB0;
15265 val_t tmp;
15266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15267 fra.me.file = LOCATE_parser___parser_prod;
15268 fra.me.line = 2779;
15269 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___visit_all;
15270 fra.me.has_broke = 0;
15271 fra.me.REG_size = 2;
15272 fra.me.nitni_local_ref_head = NULL;
15273 fra.me.REG[0] = NIT_NULL;
15274 fra.me.REG[1] = NIT_NULL;
15275 fra.me.REG[0] = p0;
15276 fra.me.REG[1] = p1;
15277 /* parser/parser_prod.nit:2781 */
15278 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
15279 if (UNTAG_Bool(REGB0)) {
15280 } else {
15281 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2781);
15282 }
15283 fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
15284 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15285 stack_frame_head = fra.me.prev;
15286 return;
15287 }
15288 static const char LOCATE_parser___parser_prod___AGgMethid___empty_init[] = "parser_prod::AGgMethid::empty_init";
15289 void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
15290 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
15291 struct {struct stack_frame_t me;} fra;
15292 val_t tmp;
15293 if (init_table[itpos87]) return;
15294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15295 fra.me.file = LOCATE_parser___parser_prod;
15296 fra.me.line = 2785;
15297 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___empty_init;
15298 fra.me.has_broke = 0;
15299 fra.me.REG_size = 1;
15300 fra.me.nitni_local_ref_head = NULL;
15301 fra.me.REG[0] = NIT_NULL;
15302 fra.me.REG[0] = p0;
15303 stack_frame_head = fra.me.prev;
15304 init_table[itpos87] = 1;
15305 return;
15306 }
15307 static const char LOCATE_parser___parser_prod___AGgMethid___init_aggmethid[] = "parser_prod::AGgMethid::init_aggmethid";
15308 void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
15309 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
15310 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15311 val_t REGB0;
15312 val_t tmp;
15313 if (init_table[itpos88]) return;
15314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15315 fra.me.file = LOCATE_parser___parser_prod;
15316 fra.me.line = 2787;
15317 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
15318 fra.me.has_broke = 0;
15319 fra.me.REG_size = 3;
15320 fra.me.nitni_local_ref_head = NULL;
15321 fra.me.REG[0] = NIT_NULL;
15322 fra.me.REG[1] = NIT_NULL;
15323 fra.me.REG[2] = NIT_NULL;
15324 fra.me.REG[0] = p0;
15325 fra.me.REG[1] = p1;
15326 /* parser/parser_prod.nit:2787 */
15327 fra.me.REG[2] = fra.me.REG[0];
15328 /* parser/parser_prod.nit:2791 */
15329 CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15330 /* parser/parser_prod.nit:2792 */
15331 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15332 if (UNTAG_Bool(REGB0)) {
15333 } else {
15334 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2792);
15335 }
15336 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
15337 /* parser/parser_prod.nit:2793 */
15338 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15339 if (UNTAG_Bool(REGB0)) {
15340 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2793);
15341 }
15342 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15343 stack_frame_head = fra.me.prev;
15344 init_table[itpos88] = 1;
15345 return;
15346 }
15347 static const char LOCATE_parser___parser_prod___AGgMethid___replace_child[] = "parser_prod::AGgMethid::(parser_prod::ANode::replace_child)";
15348 void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
15349 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15350 val_t REGB0;
15351 val_t REGB1;
15352 val_t tmp;
15353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15354 fra.me.file = LOCATE_parser___parser_prod;
15355 fra.me.line = 2796;
15356 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___replace_child;
15357 fra.me.has_broke = 0;
15358 fra.me.REG_size = 4;
15359 fra.me.nitni_local_ref_head = NULL;
15360 fra.me.REG[0] = NIT_NULL;
15361 fra.me.REG[1] = NIT_NULL;
15362 fra.me.REG[2] = NIT_NULL;
15363 fra.me.REG[3] = NIT_NULL;
15364 fra.me.REG[0] = p0;
15365 fra.me.REG[1] = p1;
15366 fra.me.REG[2] = p2;
15367 /* parser/parser_prod.nit:2798 */
15368 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
15369 if (UNTAG_Bool(REGB0)) {
15370 } else {
15371 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2798);
15372 }
15373 fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
15374 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15375 if (UNTAG_Bool(REGB0)) {
15376 } else {
15377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15378 REGB0 = REGB1;
15379 }
15380 if (UNTAG_Bool(REGB0)) {
15381 /* parser/parser_prod.nit:2799 */
15382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15383 if (UNTAG_Bool(REGB0)) {
15384 } else {
15385 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15386 if (UNTAG_Bool(REGB1)) {
15387 REGB1 = TAG_Bool(0);
15388 REGB0 = REGB1;
15389 } else {
15390 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15391 REGB0 = REGB1;
15392 }
15393 }
15394 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15395 if (UNTAG_Bool(REGB0)) {
15396 /* parser/parser_prod.nit:2800 */
15397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15398 if (UNTAG_Bool(REGB0)) {
15399 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2800);
15400 }
15401 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15402 /* parser/parser_prod.nit:2801 */
15403 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*/;
15404 if (UNTAG_Bool(REGB0)) {
15405 } else {
15406 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2801);
15407 }
15408 /* parser/parser_prod.nit:2802 */
15409 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
15410 } else {
15411 /* parser/parser_prod.nit:2804 */
15412 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2804);
15413 }
15414 /* parser/parser_prod.nit:2806 */
15415 goto label1;
15416 }
15417 label1: while(0);
15418 stack_frame_head = fra.me.prev;
15419 return;
15420 }
15421 static const char LOCATE_parser___parser_prod___AGgMethid___visit_all[] = "parser_prod::AGgMethid::(parser_prod::ANode::visit_all)";
15422 void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
15423 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15424 val_t REGB0;
15425 val_t tmp;
15426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15427 fra.me.file = LOCATE_parser___parser_prod;
15428 fra.me.line = 2810;
15429 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___visit_all;
15430 fra.me.has_broke = 0;
15431 fra.me.REG_size = 2;
15432 fra.me.nitni_local_ref_head = NULL;
15433 fra.me.REG[0] = NIT_NULL;
15434 fra.me.REG[1] = NIT_NULL;
15435 fra.me.REG[0] = p0;
15436 fra.me.REG[1] = p1;
15437 /* parser/parser_prod.nit:2812 */
15438 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
15439 if (UNTAG_Bool(REGB0)) {
15440 } else {
15441 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2812);
15442 }
15443 fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
15444 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15445 stack_frame_head = fra.me.prev;
15446 return;
15447 }
15448 static const char LOCATE_parser___parser_prod___ABraMethid___empty_init[] = "parser_prod::ABraMethid::empty_init";
15449 void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
15450 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
15451 struct {struct stack_frame_t me;} fra;
15452 val_t tmp;
15453 if (init_table[itpos89]) return;
15454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15455 fra.me.file = LOCATE_parser___parser_prod;
15456 fra.me.line = 2816;
15457 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___empty_init;
15458 fra.me.has_broke = 0;
15459 fra.me.REG_size = 1;
15460 fra.me.nitni_local_ref_head = NULL;
15461 fra.me.REG[0] = NIT_NULL;
15462 fra.me.REG[0] = p0;
15463 stack_frame_head = fra.me.prev;
15464 init_table[itpos89] = 1;
15465 return;
15466 }
15467 static const char LOCATE_parser___parser_prod___ABraMethid___init_abramethid[] = "parser_prod::ABraMethid::init_abramethid";
15468 void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
15469 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
15470 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15471 val_t REGB0;
15472 val_t tmp;
15473 if (init_table[itpos90]) return;
15474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15475 fra.me.file = LOCATE_parser___parser_prod;
15476 fra.me.line = 2818;
15477 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
15478 fra.me.has_broke = 0;
15479 fra.me.REG_size = 4;
15480 fra.me.nitni_local_ref_head = NULL;
15481 fra.me.REG[0] = NIT_NULL;
15482 fra.me.REG[1] = NIT_NULL;
15483 fra.me.REG[2] = NIT_NULL;
15484 fra.me.REG[3] = NIT_NULL;
15485 fra.me.REG[0] = p0;
15486 fra.me.REG[1] = p1;
15487 fra.me.REG[2] = p2;
15488 /* parser/parser_prod.nit:2818 */
15489 fra.me.REG[3] = fra.me.REG[0];
15490 /* parser/parser_prod.nit:2823 */
15491 CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
15492 /* parser/parser_prod.nit:2824 */
15493 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15494 if (UNTAG_Bool(REGB0)) {
15495 } else {
15496 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2824);
15497 }
15498 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
15499 /* parser/parser_prod.nit:2825 */
15500 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15501 if (UNTAG_Bool(REGB0)) {
15502 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2825);
15503 }
15504 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15505 /* parser/parser_prod.nit:2826 */
15506 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15507 if (UNTAG_Bool(REGB0)) {
15508 } else {
15509 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2826);
15510 }
15511 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
15512 /* parser/parser_prod.nit:2827 */
15513 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15514 if (UNTAG_Bool(REGB0)) {
15515 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2827);
15516 }
15517 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15518 stack_frame_head = fra.me.prev;
15519 init_table[itpos90] = 1;
15520 return;
15521 }
15522 static const char LOCATE_parser___parser_prod___ABraMethid___replace_child[] = "parser_prod::ABraMethid::(parser_prod::ANode::replace_child)";
15523 void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
15524 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15525 val_t REGB0;
15526 val_t REGB1;
15527 val_t tmp;
15528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15529 fra.me.file = LOCATE_parser___parser_prod;
15530 fra.me.line = 2830;
15531 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
15532 fra.me.has_broke = 0;
15533 fra.me.REG_size = 4;
15534 fra.me.nitni_local_ref_head = NULL;
15535 fra.me.REG[0] = NIT_NULL;
15536 fra.me.REG[1] = NIT_NULL;
15537 fra.me.REG[2] = NIT_NULL;
15538 fra.me.REG[3] = NIT_NULL;
15539 fra.me.REG[0] = p0;
15540 fra.me.REG[1] = p1;
15541 fra.me.REG[2] = p2;
15542 /* parser/parser_prod.nit:2832 */
15543 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15544 if (UNTAG_Bool(REGB0)) {
15545 } else {
15546 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2832);
15547 }
15548 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
15549 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15550 if (UNTAG_Bool(REGB0)) {
15551 } else {
15552 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15553 REGB0 = REGB1;
15554 }
15555 if (UNTAG_Bool(REGB0)) {
15556 /* parser/parser_prod.nit:2833 */
15557 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15558 if (UNTAG_Bool(REGB0)) {
15559 } else {
15560 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15561 if (UNTAG_Bool(REGB1)) {
15562 REGB1 = TAG_Bool(0);
15563 REGB0 = REGB1;
15564 } else {
15565 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15566 REGB0 = REGB1;
15567 }
15568 }
15569 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15570 if (UNTAG_Bool(REGB0)) {
15571 /* parser/parser_prod.nit:2834 */
15572 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15573 if (UNTAG_Bool(REGB0)) {
15574 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2834);
15575 }
15576 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15577 /* parser/parser_prod.nit:2835 */
15578 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*/;
15579 if (UNTAG_Bool(REGB0)) {
15580 } else {
15581 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2835);
15582 }
15583 /* parser/parser_prod.nit:2836 */
15584 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
15585 } else {
15586 /* parser/parser_prod.nit:2838 */
15587 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2838);
15588 }
15589 /* parser/parser_prod.nit:2840 */
15590 goto label1;
15591 }
15592 /* parser/parser_prod.nit:2842 */
15593 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15594 if (UNTAG_Bool(REGB0)) {
15595 } else {
15596 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2842);
15597 }
15598 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
15599 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15600 if (UNTAG_Bool(REGB0)) {
15601 } else {
15602 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15603 REGB0 = REGB1;
15604 }
15605 if (UNTAG_Bool(REGB0)) {
15606 /* parser/parser_prod.nit:2843 */
15607 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15608 if (UNTAG_Bool(REGB0)) {
15609 } else {
15610 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15611 if (UNTAG_Bool(REGB1)) {
15612 REGB1 = TAG_Bool(0);
15613 REGB0 = REGB1;
15614 } else {
15615 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15616 REGB0 = REGB1;
15617 }
15618 }
15619 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15620 if (UNTAG_Bool(REGB0)) {
15621 /* parser/parser_prod.nit:2844 */
15622 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15623 if (UNTAG_Bool(REGB0)) {
15624 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2844);
15625 }
15626 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15627 /* parser/parser_prod.nit:2845 */
15628 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*/;
15629 if (UNTAG_Bool(REGB0)) {
15630 } else {
15631 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2845);
15632 }
15633 /* parser/parser_prod.nit:2846 */
15634 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
15635 } else {
15636 /* parser/parser_prod.nit:2848 */
15637 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2848);
15638 }
15639 /* parser/parser_prod.nit:2850 */
15640 goto label1;
15641 }
15642 label1: while(0);
15643 stack_frame_head = fra.me.prev;
15644 return;
15645 }
15646 static const char LOCATE_parser___parser_prod___ABraMethid___visit_all[] = "parser_prod::ABraMethid::(parser_prod::ANode::visit_all)";
15647 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
15648 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15649 val_t REGB0;
15650 val_t tmp;
15651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15652 fra.me.file = LOCATE_parser___parser_prod;
15653 fra.me.line = 2854;
15654 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
15655 fra.me.has_broke = 0;
15656 fra.me.REG_size = 3;
15657 fra.me.nitni_local_ref_head = NULL;
15658 fra.me.REG[0] = NIT_NULL;
15659 fra.me.REG[1] = NIT_NULL;
15660 fra.me.REG[2] = NIT_NULL;
15661 fra.me.REG[0] = p0;
15662 fra.me.REG[1] = p1;
15663 /* parser/parser_prod.nit:2856 */
15664 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15665 if (UNTAG_Bool(REGB0)) {
15666 } else {
15667 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2856);
15668 }
15669 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
15670 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15671 /* parser/parser_prod.nit:2857 */
15672 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15673 if (UNTAG_Bool(REGB0)) {
15674 } else {
15675 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2857);
15676 }
15677 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
15678 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15679 stack_frame_head = fra.me.prev;
15680 return;
15681 }
15682 static const char LOCATE_parser___parser_prod___AStarshipMethid___empty_init[] = "parser_prod::AStarshipMethid::empty_init";
15683 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
15684 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
15685 struct {struct stack_frame_t me;} fra;
15686 val_t tmp;
15687 if (init_table[itpos91]) return;
15688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15689 fra.me.file = LOCATE_parser___parser_prod;
15690 fra.me.line = 2861;
15691 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
15692 fra.me.has_broke = 0;
15693 fra.me.REG_size = 1;
15694 fra.me.nitni_local_ref_head = NULL;
15695 fra.me.REG[0] = NIT_NULL;
15696 fra.me.REG[0] = p0;
15697 stack_frame_head = fra.me.prev;
15698 init_table[itpos91] = 1;
15699 return;
15700 }
15701 static const char LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid[] = "parser_prod::AStarshipMethid::init_astarshipmethid";
15702 void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
15703 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
15704 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15705 val_t REGB0;
15706 val_t tmp;
15707 if (init_table[itpos92]) return;
15708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15709 fra.me.file = LOCATE_parser___parser_prod;
15710 fra.me.line = 2863;
15711 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
15712 fra.me.has_broke = 0;
15713 fra.me.REG_size = 3;
15714 fra.me.nitni_local_ref_head = NULL;
15715 fra.me.REG[0] = NIT_NULL;
15716 fra.me.REG[1] = NIT_NULL;
15717 fra.me.REG[2] = NIT_NULL;
15718 fra.me.REG[0] = p0;
15719 fra.me.REG[1] = p1;
15720 /* parser/parser_prod.nit:2863 */
15721 fra.me.REG[2] = fra.me.REG[0];
15722 /* parser/parser_prod.nit:2867 */
15723 CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15724 /* parser/parser_prod.nit:2868 */
15725 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15726 if (UNTAG_Bool(REGB0)) {
15727 } else {
15728 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2868);
15729 }
15730 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
15731 /* parser/parser_prod.nit:2869 */
15732 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15733 if (UNTAG_Bool(REGB0)) {
15734 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2869);
15735 }
15736 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15737 stack_frame_head = fra.me.prev;
15738 init_table[itpos92] = 1;
15739 return;
15740 }
15741 static const char LOCATE_parser___parser_prod___AStarshipMethid___replace_child[] = "parser_prod::AStarshipMethid::(parser_prod::ANode::replace_child)";
15742 void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
15743 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15744 val_t REGB0;
15745 val_t REGB1;
15746 val_t tmp;
15747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15748 fra.me.file = LOCATE_parser___parser_prod;
15749 fra.me.line = 2872;
15750 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
15751 fra.me.has_broke = 0;
15752 fra.me.REG_size = 4;
15753 fra.me.nitni_local_ref_head = NULL;
15754 fra.me.REG[0] = NIT_NULL;
15755 fra.me.REG[1] = NIT_NULL;
15756 fra.me.REG[2] = NIT_NULL;
15757 fra.me.REG[3] = NIT_NULL;
15758 fra.me.REG[0] = p0;
15759 fra.me.REG[1] = p1;
15760 fra.me.REG[2] = p2;
15761 /* parser/parser_prod.nit:2874 */
15762 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
15763 if (UNTAG_Bool(REGB0)) {
15764 } else {
15765 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2874);
15766 }
15767 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
15768 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15769 if (UNTAG_Bool(REGB0)) {
15770 } else {
15771 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15772 REGB0 = REGB1;
15773 }
15774 if (UNTAG_Bool(REGB0)) {
15775 /* parser/parser_prod.nit:2875 */
15776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15777 if (UNTAG_Bool(REGB0)) {
15778 } else {
15779 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15780 if (UNTAG_Bool(REGB1)) {
15781 REGB1 = TAG_Bool(0);
15782 REGB0 = REGB1;
15783 } else {
15784 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15785 REGB0 = REGB1;
15786 }
15787 }
15788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15789 if (UNTAG_Bool(REGB0)) {
15790 /* parser/parser_prod.nit:2876 */
15791 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15792 if (UNTAG_Bool(REGB0)) {
15793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2876);
15794 }
15795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15796 /* parser/parser_prod.nit:2877 */
15797 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*/;
15798 if (UNTAG_Bool(REGB0)) {
15799 } else {
15800 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2877);
15801 }
15802 /* parser/parser_prod.nit:2878 */
15803 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
15804 } else {
15805 /* parser/parser_prod.nit:2880 */
15806 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2880);
15807 }
15808 /* parser/parser_prod.nit:2882 */
15809 goto label1;
15810 }
15811 label1: while(0);
15812 stack_frame_head = fra.me.prev;
15813 return;
15814 }
15815 static const char LOCATE_parser___parser_prod___AStarshipMethid___visit_all[] = "parser_prod::AStarshipMethid::(parser_prod::ANode::visit_all)";
15816 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
15817 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15818 val_t REGB0;
15819 val_t tmp;
15820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15821 fra.me.file = LOCATE_parser___parser_prod;
15822 fra.me.line = 2886;
15823 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
15824 fra.me.has_broke = 0;
15825 fra.me.REG_size = 2;
15826 fra.me.nitni_local_ref_head = NULL;
15827 fra.me.REG[0] = NIT_NULL;
15828 fra.me.REG[1] = NIT_NULL;
15829 fra.me.REG[0] = p0;
15830 fra.me.REG[1] = p1;
15831 /* parser/parser_prod.nit:2888 */
15832 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
15833 if (UNTAG_Bool(REGB0)) {
15834 } else {
15835 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2888);
15836 }
15837 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
15838 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15839 stack_frame_head = fra.me.prev;
15840 return;
15841 }
15842 static const char LOCATE_parser___parser_prod___AAssignMethid___empty_init[] = "parser_prod::AAssignMethid::empty_init";
15843 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
15844 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
15845 struct {struct stack_frame_t me;} fra;
15846 val_t tmp;
15847 if (init_table[itpos93]) return;
15848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15849 fra.me.file = LOCATE_parser___parser_prod;
15850 fra.me.line = 2892;
15851 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
15852 fra.me.has_broke = 0;
15853 fra.me.REG_size = 1;
15854 fra.me.nitni_local_ref_head = NULL;
15855 fra.me.REG[0] = NIT_NULL;
15856 fra.me.REG[0] = p0;
15857 stack_frame_head = fra.me.prev;
15858 init_table[itpos93] = 1;
15859 return;
15860 }
15861 static const char LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid[] = "parser_prod::AAssignMethid::init_aassignmethid";
15862 void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
15863 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
15864 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15865 val_t REGB0;
15866 val_t tmp;
15867 if (init_table[itpos94]) return;
15868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15869 fra.me.file = LOCATE_parser___parser_prod;
15870 fra.me.line = 2894;
15871 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
15872 fra.me.has_broke = 0;
15873 fra.me.REG_size = 4;
15874 fra.me.nitni_local_ref_head = NULL;
15875 fra.me.REG[0] = NIT_NULL;
15876 fra.me.REG[1] = NIT_NULL;
15877 fra.me.REG[2] = NIT_NULL;
15878 fra.me.REG[3] = NIT_NULL;
15879 fra.me.REG[0] = p0;
15880 fra.me.REG[1] = p1;
15881 fra.me.REG[2] = p2;
15882 /* parser/parser_prod.nit:2894 */
15883 fra.me.REG[3] = fra.me.REG[0];
15884 /* parser/parser_prod.nit:2899 */
15885 CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
15886 /* parser/parser_prod.nit:2900 */
15887 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15888 if (UNTAG_Bool(REGB0)) {
15889 } else {
15890 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2900);
15891 }
15892 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
15893 /* parser/parser_prod.nit:2901 */
15894 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15895 if (UNTAG_Bool(REGB0)) {
15896 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2901);
15897 }
15898 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15899 /* parser/parser_prod.nit:2902 */
15900 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15901 if (UNTAG_Bool(REGB0)) {
15902 } else {
15903 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2902);
15904 }
15905 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
15906 /* parser/parser_prod.nit:2903 */
15907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15908 if (UNTAG_Bool(REGB0)) {
15909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2903);
15910 }
15911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15912 stack_frame_head = fra.me.prev;
15913 init_table[itpos94] = 1;
15914 return;
15915 }
15916 static const char LOCATE_parser___parser_prod___AAssignMethid___replace_child[] = "parser_prod::AAssignMethid::(parser_prod::ANode::replace_child)";
15917 void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
15918 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15919 val_t REGB0;
15920 val_t REGB1;
15921 val_t tmp;
15922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15923 fra.me.file = LOCATE_parser___parser_prod;
15924 fra.me.line = 2906;
15925 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
15926 fra.me.has_broke = 0;
15927 fra.me.REG_size = 4;
15928 fra.me.nitni_local_ref_head = NULL;
15929 fra.me.REG[0] = NIT_NULL;
15930 fra.me.REG[1] = NIT_NULL;
15931 fra.me.REG[2] = NIT_NULL;
15932 fra.me.REG[3] = NIT_NULL;
15933 fra.me.REG[0] = p0;
15934 fra.me.REG[1] = p1;
15935 fra.me.REG[2] = p2;
15936 /* parser/parser_prod.nit:2908 */
15937 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
15938 if (UNTAG_Bool(REGB0)) {
15939 } else {
15940 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2908);
15941 }
15942 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
15943 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15944 if (UNTAG_Bool(REGB0)) {
15945 } else {
15946 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15947 REGB0 = REGB1;
15948 }
15949 if (UNTAG_Bool(REGB0)) {
15950 /* parser/parser_prod.nit:2909 */
15951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15952 if (UNTAG_Bool(REGB0)) {
15953 } else {
15954 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15955 if (UNTAG_Bool(REGB1)) {
15956 REGB1 = TAG_Bool(0);
15957 REGB0 = REGB1;
15958 } else {
15959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15960 REGB0 = REGB1;
15961 }
15962 }
15963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15964 if (UNTAG_Bool(REGB0)) {
15965 /* parser/parser_prod.nit:2910 */
15966 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15967 if (UNTAG_Bool(REGB0)) {
15968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2910);
15969 }
15970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15971 /* parser/parser_prod.nit:2911 */
15972 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*/;
15973 if (UNTAG_Bool(REGB0)) {
15974 } else {
15975 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2911);
15976 }
15977 /* parser/parser_prod.nit:2912 */
15978 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
15979 } else {
15980 /* parser/parser_prod.nit:2914 */
15981 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2914);
15982 }
15983 /* parser/parser_prod.nit:2916 */
15984 goto label1;
15985 }
15986 /* parser/parser_prod.nit:2918 */
15987 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15988 if (UNTAG_Bool(REGB0)) {
15989 } else {
15990 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2918);
15991 }
15992 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15993 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15994 if (UNTAG_Bool(REGB0)) {
15995 } else {
15996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15997 REGB0 = REGB1;
15998 }
15999 if (UNTAG_Bool(REGB0)) {
16000 /* parser/parser_prod.nit:2919 */
16001 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16002 if (UNTAG_Bool(REGB0)) {
16003 } else {
16004 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16005 if (UNTAG_Bool(REGB1)) {
16006 REGB1 = TAG_Bool(0);
16007 REGB0 = REGB1;
16008 } else {
16009 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16010 REGB0 = REGB1;
16011 }
16012 }
16013 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16014 if (UNTAG_Bool(REGB0)) {
16015 /* parser/parser_prod.nit:2920 */
16016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16017 if (UNTAG_Bool(REGB0)) {
16018 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2920);
16019 }
16020 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16021 /* parser/parser_prod.nit:2921 */
16022 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*/;
16023 if (UNTAG_Bool(REGB0)) {
16024 } else {
16025 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2921);
16026 }
16027 /* parser/parser_prod.nit:2922 */
16028 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
16029 } else {
16030 /* parser/parser_prod.nit:2924 */
16031 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2924);
16032 }
16033 /* parser/parser_prod.nit:2926 */
16034 goto label1;
16035 }
16036 label1: while(0);
16037 stack_frame_head = fra.me.prev;
16038 return;
16039 }
16040 static const char LOCATE_parser___parser_prod___AAssignMethid___visit_all[] = "parser_prod::AAssignMethid::(parser_prod::ANode::visit_all)";
16041 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
16042 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16043 val_t REGB0;
16044 val_t tmp;
16045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16046 fra.me.file = LOCATE_parser___parser_prod;
16047 fra.me.line = 2930;
16048 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
16049 fra.me.has_broke = 0;
16050 fra.me.REG_size = 3;
16051 fra.me.nitni_local_ref_head = NULL;
16052 fra.me.REG[0] = NIT_NULL;
16053 fra.me.REG[1] = NIT_NULL;
16054 fra.me.REG[2] = NIT_NULL;
16055 fra.me.REG[0] = p0;
16056 fra.me.REG[1] = p1;
16057 /* parser/parser_prod.nit:2932 */
16058 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
16059 if (UNTAG_Bool(REGB0)) {
16060 } else {
16061 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2932);
16062 }
16063 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
16064 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16065 /* parser/parser_prod.nit:2933 */
16066 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
16067 if (UNTAG_Bool(REGB0)) {
16068 } else {
16069 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2933);
16070 }
16071 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
16072 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16073 stack_frame_head = fra.me.prev;
16074 return;
16075 }
16076 static const char LOCATE_parser___parser_prod___ABraassignMethid___empty_init[] = "parser_prod::ABraassignMethid::empty_init";
16077 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
16078 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
16079 struct {struct stack_frame_t me;} fra;
16080 val_t tmp;
16081 if (init_table[itpos95]) return;
16082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16083 fra.me.file = LOCATE_parser___parser_prod;
16084 fra.me.line = 2937;
16085 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
16086 fra.me.has_broke = 0;
16087 fra.me.REG_size = 1;
16088 fra.me.nitni_local_ref_head = NULL;
16089 fra.me.REG[0] = NIT_NULL;
16090 fra.me.REG[0] = p0;
16091 stack_frame_head = fra.me.prev;
16092 init_table[itpos95] = 1;
16093 return;
16094 }
16095 static const char LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid[] = "parser_prod::ABraassignMethid::init_abraassignmethid";
16096 void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
16097 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
16098 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16099 val_t REGB0;
16100 val_t tmp;
16101 if (init_table[itpos96]) return;
16102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16103 fra.me.file = LOCATE_parser___parser_prod;
16104 fra.me.line = 2939;
16105 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
16106 fra.me.has_broke = 0;
16107 fra.me.REG_size = 5;
16108 fra.me.nitni_local_ref_head = NULL;
16109 fra.me.REG[0] = NIT_NULL;
16110 fra.me.REG[1] = NIT_NULL;
16111 fra.me.REG[2] = NIT_NULL;
16112 fra.me.REG[3] = NIT_NULL;
16113 fra.me.REG[4] = NIT_NULL;
16114 fra.me.REG[0] = p0;
16115 fra.me.REG[1] = p1;
16116 fra.me.REG[2] = p2;
16117 fra.me.REG[3] = p3;
16118 /* parser/parser_prod.nit:2939 */
16119 fra.me.REG[4] = fra.me.REG[0];
16120 /* parser/parser_prod.nit:2945 */
16121 CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
16122 /* parser/parser_prod.nit:2946 */
16123 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16124 if (UNTAG_Bool(REGB0)) {
16125 } else {
16126 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2946);
16127 }
16128 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
16129 /* parser/parser_prod.nit:2947 */
16130 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16131 if (UNTAG_Bool(REGB0)) {
16132 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2947);
16133 }
16134 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16135 /* parser/parser_prod.nit:2948 */
16136 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16137 if (UNTAG_Bool(REGB0)) {
16138 } else {
16139 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2948);
16140 }
16141 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
16142 /* parser/parser_prod.nit:2949 */
16143 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16144 if (UNTAG_Bool(REGB0)) {
16145 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2949);
16146 }
16147 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16148 /* parser/parser_prod.nit:2950 */
16149 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
16150 if (UNTAG_Bool(REGB0)) {
16151 } else {
16152 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2950);
16153 }
16154 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
16155 /* parser/parser_prod.nit:2951 */
16156 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16157 if (UNTAG_Bool(REGB0)) {
16158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2951);
16159 }
16160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16161 stack_frame_head = fra.me.prev;
16162 init_table[itpos96] = 1;
16163 return;
16164 }
16165 static const char LOCATE_parser___parser_prod___ABraassignMethid___replace_child[] = "parser_prod::ABraassignMethid::(parser_prod::ANode::replace_child)";
16166 void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
16167 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16168 val_t REGB0;
16169 val_t REGB1;
16170 val_t tmp;
16171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16172 fra.me.file = LOCATE_parser___parser_prod;
16173 fra.me.line = 2954;
16174 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
16175 fra.me.has_broke = 0;
16176 fra.me.REG_size = 4;
16177 fra.me.nitni_local_ref_head = NULL;
16178 fra.me.REG[0] = NIT_NULL;
16179 fra.me.REG[1] = NIT_NULL;
16180 fra.me.REG[2] = NIT_NULL;
16181 fra.me.REG[3] = NIT_NULL;
16182 fra.me.REG[0] = p0;
16183 fra.me.REG[1] = p1;
16184 fra.me.REG[2] = p2;
16185 /* parser/parser_prod.nit:2956 */
16186 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
16187 if (UNTAG_Bool(REGB0)) {
16188 } else {
16189 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2956);
16190 }
16191 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
16192 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16193 if (UNTAG_Bool(REGB0)) {
16194 } else {
16195 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16196 REGB0 = REGB1;
16197 }
16198 if (UNTAG_Bool(REGB0)) {
16199 /* parser/parser_prod.nit:2957 */
16200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16201 if (UNTAG_Bool(REGB0)) {
16202 } else {
16203 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16204 if (UNTAG_Bool(REGB1)) {
16205 REGB1 = TAG_Bool(0);
16206 REGB0 = REGB1;
16207 } else {
16208 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16209 REGB0 = REGB1;
16210 }
16211 }
16212 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16213 if (UNTAG_Bool(REGB0)) {
16214 /* parser/parser_prod.nit:2958 */
16215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16216 if (UNTAG_Bool(REGB0)) {
16217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2958);
16218 }
16219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16220 /* parser/parser_prod.nit:2959 */
16221 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*/;
16222 if (UNTAG_Bool(REGB0)) {
16223 } else {
16224 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2959);
16225 }
16226 /* parser/parser_prod.nit:2960 */
16227 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
16228 } else {
16229 /* parser/parser_prod.nit:2962 */
16230 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2962);
16231 }
16232 /* parser/parser_prod.nit:2964 */
16233 goto label1;
16234 }
16235 /* parser/parser_prod.nit:2966 */
16236 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
16237 if (UNTAG_Bool(REGB0)) {
16238 } else {
16239 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2966);
16240 }
16241 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
16242 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16243 if (UNTAG_Bool(REGB0)) {
16244 } else {
16245 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16246 REGB0 = REGB1;
16247 }
16248 if (UNTAG_Bool(REGB0)) {
16249 /* parser/parser_prod.nit:2967 */
16250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16251 if (UNTAG_Bool(REGB0)) {
16252 } else {
16253 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16254 if (UNTAG_Bool(REGB1)) {
16255 REGB1 = TAG_Bool(0);
16256 REGB0 = REGB1;
16257 } else {
16258 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16259 REGB0 = REGB1;
16260 }
16261 }
16262 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16263 if (UNTAG_Bool(REGB0)) {
16264 /* parser/parser_prod.nit:2968 */
16265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16266 if (UNTAG_Bool(REGB0)) {
16267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2968);
16268 }
16269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16270 /* parser/parser_prod.nit:2969 */
16271 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*/;
16272 if (UNTAG_Bool(REGB0)) {
16273 } else {
16274 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2969);
16275 }
16276 /* parser/parser_prod.nit:2970 */
16277 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
16278 } else {
16279 /* parser/parser_prod.nit:2972 */
16280 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2972);
16281 }
16282 /* parser/parser_prod.nit:2974 */
16283 goto label1;
16284 }
16285 /* parser/parser_prod.nit:2976 */
16286 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
16287 if (UNTAG_Bool(REGB0)) {
16288 } else {
16289 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2976);
16290 }
16291 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
16292 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16293 if (UNTAG_Bool(REGB0)) {
16294 } else {
16295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16296 REGB0 = REGB1;
16297 }
16298 if (UNTAG_Bool(REGB0)) {
16299 /* parser/parser_prod.nit:2977 */
16300 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16301 if (UNTAG_Bool(REGB0)) {
16302 } else {
16303 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16304 if (UNTAG_Bool(REGB1)) {
16305 REGB1 = TAG_Bool(0);
16306 REGB0 = REGB1;
16307 } else {
16308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16309 REGB0 = REGB1;
16310 }
16311 }
16312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16313 if (UNTAG_Bool(REGB0)) {
16314 /* parser/parser_prod.nit:2978 */
16315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16316 if (UNTAG_Bool(REGB0)) {
16317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2978);
16318 }
16319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16320 /* parser/parser_prod.nit:2979 */
16321 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*/;
16322 if (UNTAG_Bool(REGB0)) {
16323 } else {
16324 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2979);
16325 }
16326 /* parser/parser_prod.nit:2980 */
16327 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
16328 } else {
16329 /* parser/parser_prod.nit:2982 */
16330 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2982);
16331 }
16332 /* parser/parser_prod.nit:2984 */
16333 goto label1;
16334 }
16335 label1: while(0);
16336 stack_frame_head = fra.me.prev;
16337 return;
16338 }
16339 static const char LOCATE_parser___parser_prod___ABraassignMethid___visit_all[] = "parser_prod::ABraassignMethid::(parser_prod::ANode::visit_all)";
16340 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
16341 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16342 val_t REGB0;
16343 val_t tmp;
16344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16345 fra.me.file = LOCATE_parser___parser_prod;
16346 fra.me.line = 2988;
16347 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
16348 fra.me.has_broke = 0;
16349 fra.me.REG_size = 3;
16350 fra.me.nitni_local_ref_head = NULL;
16351 fra.me.REG[0] = NIT_NULL;
16352 fra.me.REG[1] = NIT_NULL;
16353 fra.me.REG[2] = NIT_NULL;
16354 fra.me.REG[0] = p0;
16355 fra.me.REG[1] = p1;
16356 /* parser/parser_prod.nit:2990 */
16357 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
16358 if (UNTAG_Bool(REGB0)) {
16359 } else {
16360 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2990);
16361 }
16362 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
16363 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16364 /* parser/parser_prod.nit:2991 */
16365 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
16366 if (UNTAG_Bool(REGB0)) {
16367 } else {
16368 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2991);
16369 }
16370 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
16371 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16372 /* parser/parser_prod.nit:2992 */
16373 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
16374 if (UNTAG_Bool(REGB0)) {
16375 } else {
16376 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2992);
16377 }
16378 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
16379 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16380 stack_frame_head = fra.me.prev;
16381 return;
16382 }
16383 static const char LOCATE_parser___parser_prod___ASignature___empty_init[] = "parser_prod::ASignature::empty_init";
16384 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
16385 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
16386 struct {struct stack_frame_t me;} fra;
16387 val_t tmp;
16388 if (init_table[itpos97]) return;
16389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16390 fra.me.file = LOCATE_parser___parser_prod;
16391 fra.me.line = 2996;
16392 fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
16393 fra.me.has_broke = 0;
16394 fra.me.REG_size = 1;
16395 fra.me.nitni_local_ref_head = NULL;
16396 fra.me.REG[0] = NIT_NULL;
16397 fra.me.REG[0] = p0;
16398 stack_frame_head = fra.me.prev;
16399 init_table[itpos97] = 1;
16400 return;
16401 }
16402 static const char LOCATE_parser___parser_prod___ASignature___init_asignature[] = "parser_prod::ASignature::init_asignature";
16403 void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
16404 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
16405 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16406 val_t REGB0;
16407 val_t REGB1;
16408 val_t tmp;
16409 if (init_table[itpos98]) return;
16410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16411 fra.me.file = LOCATE_parser___parser_prod;
16412 fra.me.line = 2998;
16413 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
16414 fra.me.has_broke = 0;
16415 fra.me.REG_size = 6;
16416 fra.me.nitni_local_ref_head = NULL;
16417 fra.me.REG[0] = NIT_NULL;
16418 fra.me.REG[1] = NIT_NULL;
16419 fra.me.REG[2] = NIT_NULL;
16420 fra.me.REG[3] = NIT_NULL;
16421 fra.me.REG[4] = NIT_NULL;
16422 fra.me.REG[5] = NIT_NULL;
16423 fra.me.REG[0] = p0;
16424 fra.me.REG[1] = p1;
16425 fra.me.REG[2] = p2;
16426 fra.me.REG[3] = p3;
16427 fra.me.REG[4] = p4;
16428 fra.me.REG[5] = p5;
16429 /* parser/parser_prod.nit:3006 */
16430 CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16431 /* parser/parser_prod.nit:3007 */
16432 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[1];
16433 /* parser/parser_prod.nit:3008 */
16434 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16435 if (UNTAG_Bool(REGB0)) {
16436 } else {
16437 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16438 if (UNTAG_Bool(REGB1)) {
16439 REGB1 = TAG_Bool(0);
16440 REGB0 = REGB1;
16441 } else {
16442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
16443 REGB0 = REGB1;
16444 }
16445 }
16446 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16447 if (UNTAG_Bool(REGB0)) {
16448 /* parser/parser_prod.nit:3009 */
16449 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16450 if (UNTAG_Bool(REGB0)) {
16451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3009);
16452 }
16453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16454 }
16455 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_1));
16456 /* parser/parser_prod.nit:3016 */
16457 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[3];
16458 /* parser/parser_prod.nit:3017 */
16459 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16460 if (UNTAG_Bool(REGB0)) {
16461 } else {
16462 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16463 if (UNTAG_Bool(REGB1)) {
16464 REGB1 = TAG_Bool(0);
16465 REGB0 = REGB1;
16466 } else {
16467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16468 REGB0 = REGB1;
16469 }
16470 }
16471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16472 if (UNTAG_Bool(REGB0)) {
16473 /* parser/parser_prod.nit:3018 */
16474 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16475 if (UNTAG_Bool(REGB0)) {
16476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3018);
16477 }
16478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16479 }
16480 /* parser/parser_prod.nit:3020 */
16481 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[4];
16482 /* parser/parser_prod.nit:3021 */
16483 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16484 if (UNTAG_Bool(REGB0)) {
16485 } else {
16486 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16487 if (UNTAG_Bool(REGB1)) {
16488 REGB1 = TAG_Bool(0);
16489 REGB0 = REGB1;
16490 } else {
16491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
16492 REGB0 = REGB1;
16493 }
16494 }
16495 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16496 if (UNTAG_Bool(REGB0)) {
16497 /* parser/parser_prod.nit:3022 */
16498 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16499 if (UNTAG_Bool(REGB0)) {
16500 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3022);
16501 }
16502 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
16503 }
16504 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_2));
16505 stack_frame_head = fra.me.prev;
16506 init_table[itpos98] = 1;
16507 return;
16508 }
16509 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){
16510 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16511 val_t REGB0;
16512 fun_t CREG[1];
16513 val_t tmp;
16514 /* parser/parser_prod.nit:3011 */
16515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16516 fra.me.file = LOCATE_parser___parser_prod;
16517 fra.me.line = 0;
16518 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
16519 fra.me.has_broke = 0;
16520 fra.me.REG_size = 2;
16521 fra.me.nitni_local_ref_head = NULL;
16522 fra.me.REG[0] = NIT_NULL;
16523 fra.me.REG[1] = NIT_NULL;
16524 fra.me.closure_ctx = closctx_param;
16525 fra.me.closure_funs = CREG;
16526 fra.me.REG[0] = p0;
16527 CREG[0] = clos_fun0;
16528 /* parser/parser_prod.nit:3012 */
16529 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
16530 if (UNTAG_Bool(REGB0)) {
16531 } else {
16532 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3012);
16533 }
16534 /* parser/parser_prod.nit:3013 */
16535 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
16536 if (UNTAG_Bool(REGB0)) {
16537 } else {
16538 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3013);
16539 }
16540 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
16541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16542 /* parser/parser_prod.nit:3014 */
16543 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
16544 stack_frame_head = fra.me.prev;
16545 return;
16546 }
16547 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){
16548 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16549 val_t REGB0;
16550 fun_t CREG[1];
16551 val_t tmp;
16552 /* parser/parser_prod.nit:3024 */
16553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16554 fra.me.file = LOCATE_parser___parser_prod;
16555 fra.me.line = 0;
16556 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
16557 fra.me.has_broke = 0;
16558 fra.me.REG_size = 2;
16559 fra.me.nitni_local_ref_head = NULL;
16560 fra.me.REG[0] = NIT_NULL;
16561 fra.me.REG[1] = NIT_NULL;
16562 fra.me.closure_ctx = closctx_param;
16563 fra.me.closure_funs = CREG;
16564 fra.me.REG[0] = p0;
16565 CREG[0] = clos_fun0;
16566 /* parser/parser_prod.nit:3025 */
16567 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
16568 if (UNTAG_Bool(REGB0)) {
16569 } else {
16570 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3025);
16571 }
16572 /* parser/parser_prod.nit:3026 */
16573 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
16574 if (UNTAG_Bool(REGB0)) {
16575 } else {
16576 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3026);
16577 }
16578 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
16579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16580 /* parser/parser_prod.nit:3027 */
16581 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
16582 stack_frame_head = fra.me.prev;
16583 return;
16584 }
16585 static const char LOCATE_parser___parser_prod___ASignature___replace_child[] = "parser_prod::ASignature::(parser_prod::ANode::replace_child)";
16586 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
16587 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16588 val_t REGB0;
16589 val_t REGB1;
16590 val_t REGB2;
16591 val_t REGB3;
16592 val_t REGB4;
16593 val_t tmp;
16594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16595 fra.me.file = LOCATE_parser___parser_prod;
16596 fra.me.line = 3031;
16597 fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
16598 fra.me.has_broke = 0;
16599 fra.me.REG_size = 4;
16600 fra.me.nitni_local_ref_head = NULL;
16601 fra.me.REG[0] = NIT_NULL;
16602 fra.me.REG[1] = NIT_NULL;
16603 fra.me.REG[2] = NIT_NULL;
16604 fra.me.REG[3] = NIT_NULL;
16605 fra.me.REG[0] = p0;
16606 fra.me.REG[1] = p1;
16607 fra.me.REG[2] = p2;
16608 /* parser/parser_prod.nit:3033 */
16609 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]);
16610 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16611 if (UNTAG_Bool(REGB0)) {
16612 } else {
16613 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16614 if (UNTAG_Bool(REGB1)) {
16615 REGB1 = TAG_Bool(0);
16616 REGB0 = REGB1;
16617 } else {
16618 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16619 REGB0 = REGB1;
16620 }
16621 }
16622 if (UNTAG_Bool(REGB0)) {
16623 /* parser/parser_prod.nit:3034 */
16624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16625 if (UNTAG_Bool(REGB0)) {
16626 } else {
16627 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16628 if (UNTAG_Bool(REGB1)) {
16629 REGB1 = TAG_Bool(0);
16630 REGB0 = REGB1;
16631 } else {
16632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16633 REGB0 = REGB1;
16634 }
16635 }
16636 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16637 if (UNTAG_Bool(REGB0)) {
16638 /* parser/parser_prod.nit:3035 */
16639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16640 if (UNTAG_Bool(REGB0)) {
16641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3035);
16642 }
16643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16644 /* parser/parser_prod.nit:3036 */
16645 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
16646 if (UNTAG_Bool(REGB0)) {
16647 } else {
16648 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3036);
16649 }
16650 /* parser/parser_prod.nit:3037 */
16651 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[2];
16652 } else {
16653 /* parser/parser_prod.nit:3039 */
16654 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = NIT_NULL;
16655 }
16656 /* parser/parser_prod.nit:3041 */
16657 goto label1;
16658 }
16659 /* parser/parser_prod.nit:3043 */
16660 REGB0 = TAG_Int(0);
16661 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
16662 if (UNTAG_Bool(REGB1)) {
16663 } else {
16664 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3043);
16665 }
16666 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16667 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
16668 /* ../lib/standard/kernel.nit:355 */
16669 while(1) {
16670 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16671 if (UNTAG_Bool(REGB2)) {
16672 } else {
16673 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16674 }
16675 /* ../lib/standard/kernel.nit:235 */
16676 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16677 /* ../lib/standard/kernel.nit:355 */
16678 if (UNTAG_Bool(REGB2)) {
16679 /* parser/parser_prod.nit:3043 */
16680 REGB2 = REGB0;
16681 /* parser/parser_prod.nit:3044 */
16682 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
16683 if (UNTAG_Bool(REGB3)) {
16684 } else {
16685 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3044);
16686 }
16687 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16688 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16689 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16690 if (UNTAG_Bool(REGB3)) {
16691 } else {
16692 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16693 if (UNTAG_Bool(REGB4)) {
16694 REGB4 = TAG_Bool(0);
16695 REGB3 = REGB4;
16696 } else {
16697 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16698 REGB3 = REGB4;
16699 }
16700 }
16701 if (UNTAG_Bool(REGB3)) {
16702 /* parser/parser_prod.nit:3045 */
16703 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16704 if (UNTAG_Bool(REGB3)) {
16705 } else {
16706 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16707 if (UNTAG_Bool(REGB4)) {
16708 REGB4 = TAG_Bool(0);
16709 REGB3 = REGB4;
16710 } else {
16711 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16712 REGB3 = REGB4;
16713 }
16714 }
16715 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16716 if (UNTAG_Bool(REGB3)) {
16717 /* parser/parser_prod.nit:3046 */
16718 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*/;
16719 if (UNTAG_Bool(REGB3)) {
16720 } else {
16721 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3046);
16722 }
16723 /* parser/parser_prod.nit:3047 */
16724 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
16725 if (UNTAG_Bool(REGB3)) {
16726 } else {
16727 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3047);
16728 }
16729 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16730 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16731 /* parser/parser_prod.nit:3048 */
16732 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16733 if (UNTAG_Bool(REGB3)) {
16734 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3048);
16735 }
16736 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16737 } else {
16738 /* parser/parser_prod.nit:3050 */
16739 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
16740 if (UNTAG_Bool(REGB3)) {
16741 } else {
16742 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3050);
16743 }
16744 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16745 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16746 }
16747 /* parser/parser_prod.nit:3052 */
16748 goto label1;
16749 }
16750 /* ../lib/standard/kernel.nit:357 */
16751 REGB2 = TAG_Int(1);
16752 /* ../lib/standard/kernel.nit:238 */
16753 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16754 /* ../lib/standard/kernel.nit:357 */
16755 REGB0 = REGB2;
16756 } else {
16757 /* ../lib/standard/kernel.nit:355 */
16758 goto label2;
16759 }
16760 }
16761 label2: while(0);
16762 /* parser/parser_prod.nit:3055 */
16763 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]);
16764 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16765 if (UNTAG_Bool(REGB0)) {
16766 } else {
16767 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16768 if (UNTAG_Bool(REGB1)) {
16769 REGB1 = TAG_Bool(0);
16770 REGB0 = REGB1;
16771 } else {
16772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16773 REGB0 = REGB1;
16774 }
16775 }
16776 if (UNTAG_Bool(REGB0)) {
16777 /* parser/parser_prod.nit:3056 */
16778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16779 if (UNTAG_Bool(REGB0)) {
16780 } else {
16781 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16782 if (UNTAG_Bool(REGB1)) {
16783 REGB1 = TAG_Bool(0);
16784 REGB0 = REGB1;
16785 } else {
16786 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16787 REGB0 = REGB1;
16788 }
16789 }
16790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16791 if (UNTAG_Bool(REGB0)) {
16792 /* parser/parser_prod.nit:3057 */
16793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16794 if (UNTAG_Bool(REGB0)) {
16795 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3057);
16796 }
16797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16798 /* parser/parser_prod.nit:3058 */
16799 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
16800 if (UNTAG_Bool(REGB0)) {
16801 } else {
16802 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3058);
16803 }
16804 /* parser/parser_prod.nit:3059 */
16805 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
16806 } else {
16807 /* parser/parser_prod.nit:3061 */
16808 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = NIT_NULL;
16809 }
16810 /* parser/parser_prod.nit:3063 */
16811 goto label1;
16812 }
16813 /* parser/parser_prod.nit:3065 */
16814 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
16815 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16816 if (UNTAG_Bool(REGB0)) {
16817 } else {
16818 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16819 if (UNTAG_Bool(REGB1)) {
16820 REGB1 = TAG_Bool(0);
16821 REGB0 = REGB1;
16822 } else {
16823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16824 REGB0 = REGB1;
16825 }
16826 }
16827 if (UNTAG_Bool(REGB0)) {
16828 /* parser/parser_prod.nit:3066 */
16829 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16830 if (UNTAG_Bool(REGB0)) {
16831 } else {
16832 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16833 if (UNTAG_Bool(REGB1)) {
16834 REGB1 = TAG_Bool(0);
16835 REGB0 = REGB1;
16836 } else {
16837 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16838 REGB0 = REGB1;
16839 }
16840 }
16841 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16842 if (UNTAG_Bool(REGB0)) {
16843 /* parser/parser_prod.nit:3067 */
16844 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16845 if (UNTAG_Bool(REGB0)) {
16846 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3067);
16847 }
16848 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16849 /* parser/parser_prod.nit:3068 */
16850 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*/;
16851 if (UNTAG_Bool(REGB0)) {
16852 } else {
16853 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3068);
16854 }
16855 /* parser/parser_prod.nit:3069 */
16856 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
16857 } else {
16858 /* parser/parser_prod.nit:3071 */
16859 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
16860 }
16861 /* parser/parser_prod.nit:3073 */
16862 goto label1;
16863 }
16864 /* parser/parser_prod.nit:3075 */
16865 REGB0 = TAG_Int(0);
16866 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16867 if (UNTAG_Bool(REGB1)) {
16868 } else {
16869 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3075);
16870 }
16871 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16872 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
16873 /* ../lib/standard/kernel.nit:355 */
16874 while(1) {
16875 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16876 if (UNTAG_Bool(REGB2)) {
16877 } else {
16878 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16879 }
16880 /* ../lib/standard/kernel.nit:235 */
16881 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16882 /* ../lib/standard/kernel.nit:355 */
16883 if (UNTAG_Bool(REGB2)) {
16884 /* parser/parser_prod.nit:3075 */
16885 REGB2 = REGB0;
16886 /* parser/parser_prod.nit:3076 */
16887 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16888 if (UNTAG_Bool(REGB3)) {
16889 } else {
16890 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3076);
16891 }
16892 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16893 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16894 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16895 if (UNTAG_Bool(REGB3)) {
16896 } else {
16897 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16898 if (UNTAG_Bool(REGB4)) {
16899 REGB4 = TAG_Bool(0);
16900 REGB3 = REGB4;
16901 } else {
16902 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16903 REGB3 = REGB4;
16904 }
16905 }
16906 if (UNTAG_Bool(REGB3)) {
16907 /* parser/parser_prod.nit:3077 */
16908 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16909 if (UNTAG_Bool(REGB3)) {
16910 } else {
16911 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16912 if (UNTAG_Bool(REGB4)) {
16913 REGB4 = TAG_Bool(0);
16914 REGB3 = REGB4;
16915 } else {
16916 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16917 REGB3 = REGB4;
16918 }
16919 }
16920 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16921 if (UNTAG_Bool(REGB3)) {
16922 /* parser/parser_prod.nit:3078 */
16923 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*/;
16924 if (UNTAG_Bool(REGB3)) {
16925 } else {
16926 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3078);
16927 }
16928 /* parser/parser_prod.nit:3079 */
16929 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16930 if (UNTAG_Bool(REGB3)) {
16931 } else {
16932 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3079);
16933 }
16934 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16935 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16936 /* parser/parser_prod.nit:3080 */
16937 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16938 if (UNTAG_Bool(REGB3)) {
16939 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3080);
16940 }
16941 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16942 } else {
16943 /* parser/parser_prod.nit:3082 */
16944 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16945 if (UNTAG_Bool(REGB3)) {
16946 } else {
16947 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3082);
16948 }
16949 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16950 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16951 }
16952 /* parser/parser_prod.nit:3084 */
16953 goto label1;
16954 }
16955 /* ../lib/standard/kernel.nit:357 */
16956 REGB2 = TAG_Int(1);
16957 /* ../lib/standard/kernel.nit:238 */
16958 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16959 /* ../lib/standard/kernel.nit:357 */
16960 REGB0 = REGB2;
16961 } else {
16962 /* ../lib/standard/kernel.nit:355 */
16963 goto label3;
16964 }
16965 }
16966 label3: while(0);
16967 label1: while(0);
16968 stack_frame_head = fra.me.prev;
16969 return;
16970 }
16971 static const char LOCATE_parser___parser_prod___ASignature___visit_all[] = "parser_prod::ASignature::(parser_prod::ANode::visit_all)";
16972 void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
16973 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16974 val_t REGB0;
16975 val_t REGB1;
16976 val_t tmp;
16977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16978 fra.me.file = LOCATE_parser___parser_prod;
16979 fra.me.line = 3089;
16980 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16981 fra.me.has_broke = 0;
16982 fra.me.REG_size = 4;
16983 fra.me.nitni_local_ref_head = NULL;
16984 fra.me.REG[0] = NIT_NULL;
16985 fra.me.REG[1] = NIT_NULL;
16986 fra.me.REG[2] = NIT_NULL;
16987 fra.me.REG[3] = NIT_NULL;
16988 fra.me.REG[0] = p0;
16989 fra.me.REG[1] = p1;
16990 /* parser/parser_prod.nit:3089 */
16991 fra.me.REG[2] = fra.me.REG[0];
16992 /* parser/parser_prod.nit:3091 */
16993 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
16994 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16995 if (UNTAG_Bool(REGB0)) {
16996 } else {
16997 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16998 if (UNTAG_Bool(REGB1)) {
16999 REGB1 = TAG_Bool(0);
17000 REGB0 = REGB1;
17001 } else {
17002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17003 REGB0 = REGB1;
17004 }
17005 }
17006 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17007 if (UNTAG_Bool(REGB0)) {
17008 /* parser/parser_prod.nit:3092 */
17009 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
17010 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
17011 if (UNTAG_Bool(REGB0)) {
17012 } else {
17013 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3092);
17014 }
17015 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17016 }
17017 /* parser/parser_prod.nit:3094 */
17018 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
17019 if (UNTAG_Bool(REGB0)) {
17020 } else {
17021 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3094);
17022 }
17023 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
17024 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));
17025 /* parser/parser_prod.nit:3097 */
17026 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
17027 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17028 if (UNTAG_Bool(REGB0)) {
17029 } else {
17030 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17031 if (UNTAG_Bool(REGB1)) {
17032 REGB1 = TAG_Bool(0);
17033 REGB0 = REGB1;
17034 } else {
17035 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17036 REGB0 = REGB1;
17037 }
17038 }
17039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17040 if (UNTAG_Bool(REGB0)) {
17041 /* parser/parser_prod.nit:3098 */
17042 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
17043 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
17044 if (UNTAG_Bool(REGB0)) {
17045 } else {
17046 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3098);
17047 }
17048 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17049 }
17050 /* parser/parser_prod.nit:3100 */
17051 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
17052 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17053 if (UNTAG_Bool(REGB0)) {
17054 } else {
17055 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17056 if (UNTAG_Bool(REGB1)) {
17057 REGB1 = TAG_Bool(0);
17058 REGB0 = REGB1;
17059 } else {
17060 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17061 REGB0 = REGB1;
17062 }
17063 }
17064 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17065 if (UNTAG_Bool(REGB0)) {
17066 /* parser/parser_prod.nit:3101 */
17067 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
17068 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*/;
17069 if (UNTAG_Bool(REGB0)) {
17070 } else {
17071 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3101);
17072 }
17073 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17074 }
17075 /* parser/parser_prod.nit:3103 */
17076 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
17077 if (UNTAG_Bool(REGB0)) {
17078 } else {
17079 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3103);
17080 }
17081 fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
17082 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));
17083 stack_frame_head = fra.me.prev;
17084 return;
17085 }
17086 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){
17087 struct {struct stack_frame_t me;} fra;
17088 fun_t CREG[1];
17089 val_t tmp;
17090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17091 fra.me.file = LOCATE_parser___parser_prod;
17092 fra.me.line = 0;
17093 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
17094 fra.me.has_broke = 0;
17095 fra.me.REG_size = 1;
17096 fra.me.nitni_local_ref_head = NULL;
17097 fra.me.REG[0] = NIT_NULL;
17098 fra.me.closure_ctx = closctx_param;
17099 fra.me.closure_funs = CREG;
17100 fra.me.REG[0] = p0;
17101 CREG[0] = clos_fun0;
17102 /* parser/parser_prod.nit:3095 */
17103 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17104 stack_frame_head = fra.me.prev;
17105 return;
17106 }
17107 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){
17108 struct {struct stack_frame_t me;} fra;
17109 fun_t CREG[1];
17110 val_t tmp;
17111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17112 fra.me.file = LOCATE_parser___parser_prod;
17113 fra.me.line = 0;
17114 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
17115 fra.me.has_broke = 0;
17116 fra.me.REG_size = 1;
17117 fra.me.nitni_local_ref_head = NULL;
17118 fra.me.REG[0] = NIT_NULL;
17119 fra.me.closure_ctx = closctx_param;
17120 fra.me.closure_funs = CREG;
17121 fra.me.REG[0] = p0;
17122 CREG[0] = clos_fun0;
17123 /* parser/parser_prod.nit:3104 */
17124 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17125 stack_frame_head = fra.me.prev;
17126 return;
17127 }
17128 static const char LOCATE_parser___parser_prod___AParam___empty_init[] = "parser_prod::AParam::empty_init";
17129 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
17130 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
17131 struct {struct stack_frame_t me;} fra;
17132 val_t tmp;
17133 if (init_table[itpos99]) return;
17134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17135 fra.me.file = LOCATE_parser___parser_prod;
17136 fra.me.line = 3109;
17137 fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
17138 fra.me.has_broke = 0;
17139 fra.me.REG_size = 1;
17140 fra.me.nitni_local_ref_head = NULL;
17141 fra.me.REG[0] = NIT_NULL;
17142 fra.me.REG[0] = p0;
17143 stack_frame_head = fra.me.prev;
17144 init_table[itpos99] = 1;
17145 return;
17146 }
17147 static const char LOCATE_parser___parser_prod___AParam___init_aparam[] = "parser_prod::AParam::init_aparam";
17148 void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17149 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
17150 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17151 val_t REGB0;
17152 val_t REGB1;
17153 val_t tmp;
17154 if (init_table[itpos100]) return;
17155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17156 fra.me.file = LOCATE_parser___parser_prod;
17157 fra.me.line = 3111;
17158 fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
17159 fra.me.has_broke = 0;
17160 fra.me.REG_size = 5;
17161 fra.me.nitni_local_ref_head = NULL;
17162 fra.me.REG[0] = NIT_NULL;
17163 fra.me.REG[1] = NIT_NULL;
17164 fra.me.REG[2] = NIT_NULL;
17165 fra.me.REG[3] = NIT_NULL;
17166 fra.me.REG[4] = NIT_NULL;
17167 fra.me.REG[0] = p0;
17168 fra.me.REG[1] = p1;
17169 fra.me.REG[2] = p2;
17170 fra.me.REG[3] = p3;
17171 /* parser/parser_prod.nit:3111 */
17172 fra.me.REG[4] = fra.me.REG[0];
17173 /* parser/parser_prod.nit:3117 */
17174 CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
17175 /* parser/parser_prod.nit:3118 */
17176 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17177 if (UNTAG_Bool(REGB0)) {
17178 } else {
17179 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3118);
17180 }
17181 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[4]) = fra.me.REG[1];
17182 /* parser/parser_prod.nit:3119 */
17183 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17184 if (UNTAG_Bool(REGB0)) {
17185 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3119);
17186 }
17187 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17188 /* parser/parser_prod.nit:3120 */
17189 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[4]) = fra.me.REG[2];
17190 /* parser/parser_prod.nit:3121 */
17191 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17192 if (UNTAG_Bool(REGB0)) {
17193 } else {
17194 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17195 if (UNTAG_Bool(REGB1)) {
17196 REGB1 = TAG_Bool(0);
17197 REGB0 = REGB1;
17198 } else {
17199 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17200 REGB0 = REGB1;
17201 }
17202 }
17203 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17204 if (UNTAG_Bool(REGB0)) {
17205 /* parser/parser_prod.nit:3122 */
17206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17207 if (UNTAG_Bool(REGB0)) {
17208 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3122);
17209 }
17210 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17211 }
17212 /* parser/parser_prod.nit:3124 */
17213 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[4]) = fra.me.REG[3];
17214 /* parser/parser_prod.nit:3125 */
17215 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17216 if (UNTAG_Bool(REGB0)) {
17217 } else {
17218 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17219 if (UNTAG_Bool(REGB1)) {
17220 REGB1 = TAG_Bool(0);
17221 REGB0 = REGB1;
17222 } else {
17223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17224 REGB0 = REGB1;
17225 }
17226 }
17227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17228 if (UNTAG_Bool(REGB0)) {
17229 /* parser/parser_prod.nit:3126 */
17230 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17231 if (UNTAG_Bool(REGB0)) {
17232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3126);
17233 }
17234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17235 }
17236 stack_frame_head = fra.me.prev;
17237 init_table[itpos100] = 1;
17238 return;
17239 }
17240 static const char LOCATE_parser___parser_prod___AParam___replace_child[] = "parser_prod::AParam::(parser_prod::ANode::replace_child)";
17241 void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
17242 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17243 val_t REGB0;
17244 val_t REGB1;
17245 val_t tmp;
17246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17247 fra.me.file = LOCATE_parser___parser_prod;
17248 fra.me.line = 3130;
17249 fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
17250 fra.me.has_broke = 0;
17251 fra.me.REG_size = 4;
17252 fra.me.nitni_local_ref_head = NULL;
17253 fra.me.REG[0] = NIT_NULL;
17254 fra.me.REG[1] = NIT_NULL;
17255 fra.me.REG[2] = NIT_NULL;
17256 fra.me.REG[3] = NIT_NULL;
17257 fra.me.REG[0] = p0;
17258 fra.me.REG[1] = p1;
17259 fra.me.REG[2] = p2;
17260 /* parser/parser_prod.nit:3132 */
17261 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
17262 if (UNTAG_Bool(REGB0)) {
17263 } else {
17264 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3132);
17265 }
17266 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
17267 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17268 if (UNTAG_Bool(REGB0)) {
17269 } else {
17270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17271 REGB0 = REGB1;
17272 }
17273 if (UNTAG_Bool(REGB0)) {
17274 /* parser/parser_prod.nit:3133 */
17275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17276 if (UNTAG_Bool(REGB0)) {
17277 } else {
17278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17279 if (UNTAG_Bool(REGB1)) {
17280 REGB1 = TAG_Bool(0);
17281 REGB0 = REGB1;
17282 } else {
17283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17284 REGB0 = REGB1;
17285 }
17286 }
17287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17288 if (UNTAG_Bool(REGB0)) {
17289 /* parser/parser_prod.nit:3134 */
17290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17291 if (UNTAG_Bool(REGB0)) {
17292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3134);
17293 }
17294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17295 /* parser/parser_prod.nit:3135 */
17296 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*/;
17297 if (UNTAG_Bool(REGB0)) {
17298 } else {
17299 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3135);
17300 }
17301 /* parser/parser_prod.nit:3136 */
17302 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
17303 } else {
17304 /* parser/parser_prod.nit:3138 */
17305 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3138);
17306 }
17307 /* parser/parser_prod.nit:3140 */
17308 goto label1;
17309 }
17310 /* parser/parser_prod.nit:3142 */
17311 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
17312 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17313 if (UNTAG_Bool(REGB0)) {
17314 } else {
17315 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17316 if (UNTAG_Bool(REGB1)) {
17317 REGB1 = TAG_Bool(0);
17318 REGB0 = REGB1;
17319 } else {
17320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17321 REGB0 = REGB1;
17322 }
17323 }
17324 if (UNTAG_Bool(REGB0)) {
17325 /* parser/parser_prod.nit:3143 */
17326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17327 if (UNTAG_Bool(REGB0)) {
17328 } else {
17329 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17330 if (UNTAG_Bool(REGB1)) {
17331 REGB1 = TAG_Bool(0);
17332 REGB0 = REGB1;
17333 } else {
17334 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17335 REGB0 = REGB1;
17336 }
17337 }
17338 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17339 if (UNTAG_Bool(REGB0)) {
17340 /* parser/parser_prod.nit:3144 */
17341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17342 if (UNTAG_Bool(REGB0)) {
17343 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3144);
17344 }
17345 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17346 /* parser/parser_prod.nit:3145 */
17347 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*/;
17348 if (UNTAG_Bool(REGB0)) {
17349 } else {
17350 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3145);
17351 }
17352 /* parser/parser_prod.nit:3146 */
17353 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
17354 } else {
17355 /* parser/parser_prod.nit:3148 */
17356 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
17357 }
17358 /* parser/parser_prod.nit:3150 */
17359 goto label1;
17360 }
17361 /* parser/parser_prod.nit:3152 */
17362 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
17363 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17364 if (UNTAG_Bool(REGB0)) {
17365 } else {
17366 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17367 if (UNTAG_Bool(REGB1)) {
17368 REGB1 = TAG_Bool(0);
17369 REGB0 = REGB1;
17370 } else {
17371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17372 REGB0 = REGB1;
17373 }
17374 }
17375 if (UNTAG_Bool(REGB0)) {
17376 /* parser/parser_prod.nit:3153 */
17377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17378 if (UNTAG_Bool(REGB0)) {
17379 } else {
17380 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17381 if (UNTAG_Bool(REGB1)) {
17382 REGB1 = TAG_Bool(0);
17383 REGB0 = REGB1;
17384 } else {
17385 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17386 REGB0 = REGB1;
17387 }
17388 }
17389 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17390 if (UNTAG_Bool(REGB0)) {
17391 /* parser/parser_prod.nit:3154 */
17392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17393 if (UNTAG_Bool(REGB0)) {
17394 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3154);
17395 }
17396 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17397 /* parser/parser_prod.nit:3155 */
17398 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*/;
17399 if (UNTAG_Bool(REGB0)) {
17400 } else {
17401 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3155);
17402 }
17403 /* parser/parser_prod.nit:3156 */
17404 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
17405 } else {
17406 /* parser/parser_prod.nit:3158 */
17407 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
17408 }
17409 /* parser/parser_prod.nit:3160 */
17410 goto label1;
17411 }
17412 label1: while(0);
17413 stack_frame_head = fra.me.prev;
17414 return;
17415 }
17416 static const char LOCATE_parser___parser_prod___AParam___visit_all[] = "parser_prod::AParam::(parser_prod::ANode::visit_all)";
17417 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
17418 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17419 val_t REGB0;
17420 val_t REGB1;
17421 val_t tmp;
17422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17423 fra.me.file = LOCATE_parser___parser_prod;
17424 fra.me.line = 3164;
17425 fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
17426 fra.me.has_broke = 0;
17427 fra.me.REG_size = 4;
17428 fra.me.nitni_local_ref_head = NULL;
17429 fra.me.REG[0] = NIT_NULL;
17430 fra.me.REG[1] = NIT_NULL;
17431 fra.me.REG[2] = NIT_NULL;
17432 fra.me.REG[3] = NIT_NULL;
17433 fra.me.REG[0] = p0;
17434 fra.me.REG[1] = p1;
17435 /* parser/parser_prod.nit:3164 */
17436 fra.me.REG[2] = fra.me.REG[0];
17437 /* parser/parser_prod.nit:3166 */
17438 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
17439 if (UNTAG_Bool(REGB0)) {
17440 } else {
17441 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3166);
17442 }
17443 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
17444 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17445 /* parser/parser_prod.nit:3167 */
17446 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
17447 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17448 if (UNTAG_Bool(REGB0)) {
17449 } else {
17450 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17451 if (UNTAG_Bool(REGB1)) {
17452 REGB1 = TAG_Bool(0);
17453 REGB0 = REGB1;
17454 } else {
17455 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17456 REGB0 = REGB1;
17457 }
17458 }
17459 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17460 if (UNTAG_Bool(REGB0)) {
17461 /* parser/parser_prod.nit:3168 */
17462 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
17463 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*/;
17464 if (UNTAG_Bool(REGB0)) {
17465 } else {
17466 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3168);
17467 }
17468 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17469 }
17470 /* parser/parser_prod.nit:3170 */
17471 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
17472 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17473 if (UNTAG_Bool(REGB0)) {
17474 } else {
17475 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17476 if (UNTAG_Bool(REGB1)) {
17477 REGB1 = TAG_Bool(0);
17478 REGB0 = REGB1;
17479 } else {
17480 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17481 REGB0 = REGB1;
17482 }
17483 }
17484 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17485 if (UNTAG_Bool(REGB0)) {
17486 /* parser/parser_prod.nit:3171 */
17487 fra.me.REG[2] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
17488 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*/;
17489 if (UNTAG_Bool(REGB0)) {
17490 } else {
17491 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3171);
17492 }
17493 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17494 }
17495 stack_frame_head = fra.me.prev;
17496 return;
17497 }
17498 static const char LOCATE_parser___parser_prod___AClosureDecl___empty_init[] = "parser_prod::AClosureDecl::empty_init";
17499 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
17500 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
17501 struct {struct stack_frame_t me;} fra;
17502 val_t tmp;
17503 if (init_table[itpos101]) return;
17504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17505 fra.me.file = LOCATE_parser___parser_prod;
17506 fra.me.line = 3176;
17507 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
17508 fra.me.has_broke = 0;
17509 fra.me.REG_size = 1;
17510 fra.me.nitni_local_ref_head = NULL;
17511 fra.me.REG[0] = NIT_NULL;
17512 fra.me.REG[0] = p0;
17513 stack_frame_head = fra.me.prev;
17514 init_table[itpos101] = 1;
17515 return;
17516 }
17517 static const char LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl[] = "parser_prod::AClosureDecl::init_aclosuredecl";
17518 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){
17519 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
17520 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17521 val_t REGB0;
17522 val_t REGB1;
17523 val_t tmp;
17524 if (init_table[itpos102]) return;
17525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17526 fra.me.file = LOCATE_parser___parser_prod;
17527 fra.me.line = 3178;
17528 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
17529 fra.me.has_broke = 0;
17530 fra.me.REG_size = 7;
17531 fra.me.nitni_local_ref_head = NULL;
17532 fra.me.REG[0] = NIT_NULL;
17533 fra.me.REG[1] = NIT_NULL;
17534 fra.me.REG[2] = NIT_NULL;
17535 fra.me.REG[3] = NIT_NULL;
17536 fra.me.REG[4] = NIT_NULL;
17537 fra.me.REG[5] = NIT_NULL;
17538 fra.me.REG[6] = NIT_NULL;
17539 fra.me.REG[0] = p0;
17540 fra.me.REG[1] = p1;
17541 fra.me.REG[2] = p2;
17542 fra.me.REG[3] = p3;
17543 fra.me.REG[4] = p4;
17544 fra.me.REG[5] = p5;
17545 /* parser/parser_prod.nit:3178 */
17546 fra.me.REG[6] = fra.me.REG[0];
17547 /* parser/parser_prod.nit:3186 */
17548 CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
17549 /* parser/parser_prod.nit:3187 */
17550 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
17551 /* parser/parser_prod.nit:3188 */
17552 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17553 if (UNTAG_Bool(REGB0)) {
17554 } else {
17555 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17556 if (UNTAG_Bool(REGB1)) {
17557 REGB1 = TAG_Bool(0);
17558 REGB0 = REGB1;
17559 } else {
17560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17561 REGB0 = REGB1;
17562 }
17563 }
17564 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17565 if (UNTAG_Bool(REGB0)) {
17566 /* parser/parser_prod.nit:3189 */
17567 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17568 if (UNTAG_Bool(REGB0)) {
17569 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3189);
17570 }
17571 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
17572 }
17573 /* parser/parser_prod.nit:3191 */
17574 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17575 if (UNTAG_Bool(REGB0)) {
17576 } else {
17577 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3191);
17578 }
17579 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
17580 /* parser/parser_prod.nit:3192 */
17581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17582 if (UNTAG_Bool(REGB0)) {
17583 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3192);
17584 }
17585 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17586 /* parser/parser_prod.nit:3193 */
17587 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
17588 if (UNTAG_Bool(REGB0)) {
17589 } else {
17590 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3193);
17591 }
17592 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
17593 /* parser/parser_prod.nit:3194 */
17594 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17595 if (UNTAG_Bool(REGB0)) {
17596 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3194);
17597 }
17598 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17599 /* parser/parser_prod.nit:3195 */
17600 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
17601 if (UNTAG_Bool(REGB0)) {
17602 } else {
17603 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3195);
17604 }
17605 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
17606 /* parser/parser_prod.nit:3196 */
17607 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17608 if (UNTAG_Bool(REGB0)) {
17609 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3196);
17610 }
17611 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
17612 /* parser/parser_prod.nit:3197 */
17613 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
17614 /* parser/parser_prod.nit:3198 */
17615 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
17616 if (UNTAG_Bool(REGB0)) {
17617 } else {
17618 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
17619 if (UNTAG_Bool(REGB1)) {
17620 REGB1 = TAG_Bool(0);
17621 REGB0 = REGB1;
17622 } else {
17623 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
17624 REGB0 = REGB1;
17625 }
17626 }
17627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17628 if (UNTAG_Bool(REGB0)) {
17629 /* parser/parser_prod.nit:3199 */
17630 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
17631 if (UNTAG_Bool(REGB0)) {
17632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3199);
17633 }
17634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
17635 }
17636 stack_frame_head = fra.me.prev;
17637 init_table[itpos102] = 1;
17638 return;
17639 }
17640 static const char LOCATE_parser___parser_prod___AClosureDecl___replace_child[] = "parser_prod::AClosureDecl::(parser_prod::ANode::replace_child)";
17641 void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
17642 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17643 val_t REGB0;
17644 val_t REGB1;
17645 val_t tmp;
17646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17647 fra.me.file = LOCATE_parser___parser_prod;
17648 fra.me.line = 3203;
17649 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
17650 fra.me.has_broke = 0;
17651 fra.me.REG_size = 4;
17652 fra.me.nitni_local_ref_head = NULL;
17653 fra.me.REG[0] = NIT_NULL;
17654 fra.me.REG[1] = NIT_NULL;
17655 fra.me.REG[2] = NIT_NULL;
17656 fra.me.REG[3] = NIT_NULL;
17657 fra.me.REG[0] = p0;
17658 fra.me.REG[1] = p1;
17659 fra.me.REG[2] = p2;
17660 /* parser/parser_prod.nit:3205 */
17661 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
17662 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17663 if (UNTAG_Bool(REGB0)) {
17664 } else {
17665 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17666 if (UNTAG_Bool(REGB1)) {
17667 REGB1 = TAG_Bool(0);
17668 REGB0 = REGB1;
17669 } else {
17670 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17671 REGB0 = REGB1;
17672 }
17673 }
17674 if (UNTAG_Bool(REGB0)) {
17675 /* parser/parser_prod.nit:3206 */
17676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17677 if (UNTAG_Bool(REGB0)) {
17678 } else {
17679 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17680 if (UNTAG_Bool(REGB1)) {
17681 REGB1 = TAG_Bool(0);
17682 REGB0 = REGB1;
17683 } else {
17684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17685 REGB0 = REGB1;
17686 }
17687 }
17688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17689 if (UNTAG_Bool(REGB0)) {
17690 /* parser/parser_prod.nit:3207 */
17691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17692 if (UNTAG_Bool(REGB0)) {
17693 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3207);
17694 }
17695 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17696 /* parser/parser_prod.nit:3208 */
17697 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*/;
17698 if (UNTAG_Bool(REGB0)) {
17699 } else {
17700 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3208);
17701 }
17702 /* parser/parser_prod.nit:3209 */
17703 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
17704 } else {
17705 /* parser/parser_prod.nit:3211 */
17706 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
17707 }
17708 /* parser/parser_prod.nit:3213 */
17709 goto label1;
17710 }
17711 /* parser/parser_prod.nit:3215 */
17712 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
17713 if (UNTAG_Bool(REGB0)) {
17714 } else {
17715 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3215);
17716 }
17717 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
17718 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17719 if (UNTAG_Bool(REGB0)) {
17720 } else {
17721 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17722 REGB0 = REGB1;
17723 }
17724 if (UNTAG_Bool(REGB0)) {
17725 /* parser/parser_prod.nit:3216 */
17726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17727 if (UNTAG_Bool(REGB0)) {
17728 } else {
17729 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17730 if (UNTAG_Bool(REGB1)) {
17731 REGB1 = TAG_Bool(0);
17732 REGB0 = REGB1;
17733 } else {
17734 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17735 REGB0 = REGB1;
17736 }
17737 }
17738 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17739 if (UNTAG_Bool(REGB0)) {
17740 /* parser/parser_prod.nit:3217 */
17741 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17742 if (UNTAG_Bool(REGB0)) {
17743 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3217);
17744 }
17745 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17746 /* parser/parser_prod.nit:3218 */
17747 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*/;
17748 if (UNTAG_Bool(REGB0)) {
17749 } else {
17750 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3218);
17751 }
17752 /* parser/parser_prod.nit:3219 */
17753 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
17754 } else {
17755 /* parser/parser_prod.nit:3221 */
17756 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3221);
17757 }
17758 /* parser/parser_prod.nit:3223 */
17759 goto label1;
17760 }
17761 /* parser/parser_prod.nit:3225 */
17762 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
17763 if (UNTAG_Bool(REGB0)) {
17764 } else {
17765 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3225);
17766 }
17767 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
17768 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17769 if (UNTAG_Bool(REGB0)) {
17770 } else {
17771 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17772 REGB0 = REGB1;
17773 }
17774 if (UNTAG_Bool(REGB0)) {
17775 /* parser/parser_prod.nit:3226 */
17776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17777 if (UNTAG_Bool(REGB0)) {
17778 } else {
17779 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17780 if (UNTAG_Bool(REGB1)) {
17781 REGB1 = TAG_Bool(0);
17782 REGB0 = REGB1;
17783 } else {
17784 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17785 REGB0 = REGB1;
17786 }
17787 }
17788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17789 if (UNTAG_Bool(REGB0)) {
17790 /* parser/parser_prod.nit:3227 */
17791 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17792 if (UNTAG_Bool(REGB0)) {
17793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3227);
17794 }
17795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17796 /* parser/parser_prod.nit:3228 */
17797 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*/;
17798 if (UNTAG_Bool(REGB0)) {
17799 } else {
17800 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3228);
17801 }
17802 /* parser/parser_prod.nit:3229 */
17803 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
17804 } else {
17805 /* parser/parser_prod.nit:3231 */
17806 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3231);
17807 }
17808 /* parser/parser_prod.nit:3233 */
17809 goto label1;
17810 }
17811 /* parser/parser_prod.nit:3235 */
17812 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
17813 if (UNTAG_Bool(REGB0)) {
17814 } else {
17815 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3235);
17816 }
17817 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
17818 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17819 if (UNTAG_Bool(REGB0)) {
17820 } else {
17821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17822 REGB0 = REGB1;
17823 }
17824 if (UNTAG_Bool(REGB0)) {
17825 /* parser/parser_prod.nit:3236 */
17826 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17827 if (UNTAG_Bool(REGB0)) {
17828 } else {
17829 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17830 if (UNTAG_Bool(REGB1)) {
17831 REGB1 = TAG_Bool(0);
17832 REGB0 = REGB1;
17833 } else {
17834 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17835 REGB0 = REGB1;
17836 }
17837 }
17838 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17839 if (UNTAG_Bool(REGB0)) {
17840 /* parser/parser_prod.nit:3237 */
17841 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17842 if (UNTAG_Bool(REGB0)) {
17843 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3237);
17844 }
17845 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17846 /* parser/parser_prod.nit:3238 */
17847 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*/;
17848 if (UNTAG_Bool(REGB0)) {
17849 } else {
17850 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3238);
17851 }
17852 /* parser/parser_prod.nit:3239 */
17853 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
17854 } else {
17855 /* parser/parser_prod.nit:3241 */
17856 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3241);
17857 }
17858 /* parser/parser_prod.nit:3243 */
17859 goto label1;
17860 }
17861 /* parser/parser_prod.nit:3245 */
17862 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
17863 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17864 if (UNTAG_Bool(REGB0)) {
17865 } else {
17866 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17867 if (UNTAG_Bool(REGB1)) {
17868 REGB1 = TAG_Bool(0);
17869 REGB0 = REGB1;
17870 } else {
17871 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17872 REGB0 = REGB1;
17873 }
17874 }
17875 if (UNTAG_Bool(REGB0)) {
17876 /* parser/parser_prod.nit:3246 */
17877 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17878 if (UNTAG_Bool(REGB0)) {
17879 } else {
17880 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17881 if (UNTAG_Bool(REGB1)) {
17882 REGB1 = TAG_Bool(0);
17883 REGB0 = REGB1;
17884 } else {
17885 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17886 REGB0 = REGB1;
17887 }
17888 }
17889 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17890 if (UNTAG_Bool(REGB0)) {
17891 /* parser/parser_prod.nit:3247 */
17892 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17893 if (UNTAG_Bool(REGB0)) {
17894 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3247);
17895 }
17896 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17897 /* parser/parser_prod.nit:3248 */
17898 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17899 if (UNTAG_Bool(REGB0)) {
17900 } else {
17901 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3248);
17902 }
17903 /* parser/parser_prod.nit:3249 */
17904 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17905 } else {
17906 /* parser/parser_prod.nit:3251 */
17907 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
17908 }
17909 /* parser/parser_prod.nit:3253 */
17910 goto label1;
17911 }
17912 label1: while(0);
17913 stack_frame_head = fra.me.prev;
17914 return;
17915 }
17916 static const char LOCATE_parser___parser_prod___AClosureDecl___visit_all[] = "parser_prod::AClosureDecl::(parser_prod::ANode::visit_all)";
17917 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
17918 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17919 val_t REGB0;
17920 val_t REGB1;
17921 val_t tmp;
17922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17923 fra.me.file = LOCATE_parser___parser_prod;
17924 fra.me.line = 3257;
17925 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
17926 fra.me.has_broke = 0;
17927 fra.me.REG_size = 4;
17928 fra.me.nitni_local_ref_head = NULL;
17929 fra.me.REG[0] = NIT_NULL;
17930 fra.me.REG[1] = NIT_NULL;
17931 fra.me.REG[2] = NIT_NULL;
17932 fra.me.REG[3] = NIT_NULL;
17933 fra.me.REG[0] = p0;
17934 fra.me.REG[1] = p1;
17935 /* parser/parser_prod.nit:3257 */
17936 fra.me.REG[2] = fra.me.REG[0];
17937 /* parser/parser_prod.nit:3259 */
17938 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
17939 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17940 if (UNTAG_Bool(REGB0)) {
17941 } else {
17942 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17943 if (UNTAG_Bool(REGB1)) {
17944 REGB1 = TAG_Bool(0);
17945 REGB0 = REGB1;
17946 } else {
17947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17948 REGB0 = REGB1;
17949 }
17950 }
17951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17952 if (UNTAG_Bool(REGB0)) {
17953 /* parser/parser_prod.nit:3260 */
17954 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
17955 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*/;
17956 if (UNTAG_Bool(REGB0)) {
17957 } else {
17958 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3260);
17959 }
17960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17961 }
17962 /* parser/parser_prod.nit:3262 */
17963 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
17964 if (UNTAG_Bool(REGB0)) {
17965 } else {
17966 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3262);
17967 }
17968 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
17969 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17970 /* parser/parser_prod.nit:3263 */
17971 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
17972 if (UNTAG_Bool(REGB0)) {
17973 } else {
17974 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3263);
17975 }
17976 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
17977 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17978 /* parser/parser_prod.nit:3264 */
17979 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
17980 if (UNTAG_Bool(REGB0)) {
17981 } else {
17982 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3264);
17983 }
17984 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
17985 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17986 /* parser/parser_prod.nit:3265 */
17987 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
17988 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17989 if (UNTAG_Bool(REGB0)) {
17990 } else {
17991 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17992 if (UNTAG_Bool(REGB1)) {
17993 REGB1 = TAG_Bool(0);
17994 REGB0 = REGB1;
17995 } else {
17996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17997 REGB0 = REGB1;
17998 }
17999 }
18000 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18001 if (UNTAG_Bool(REGB0)) {
18002 /* parser/parser_prod.nit:3266 */
18003 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
18004 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18005 if (UNTAG_Bool(REGB0)) {
18006 } else {
18007 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3266);
18008 }
18009 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18010 }
18011 stack_frame_head = fra.me.prev;
18012 return;
18013 }
18014 static const char LOCATE_parser___parser_prod___AType___empty_init[] = "parser_prod::AType::empty_init";
18015 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
18016 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
18017 struct {struct stack_frame_t me;} fra;
18018 val_t tmp;
18019 if (init_table[itpos103]) return;
18020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18021 fra.me.file = LOCATE_parser___parser_prod;
18022 fra.me.line = 3271;
18023 fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
18024 fra.me.has_broke = 0;
18025 fra.me.REG_size = 1;
18026 fra.me.nitni_local_ref_head = NULL;
18027 fra.me.REG[0] = NIT_NULL;
18028 fra.me.REG[0] = p0;
18029 stack_frame_head = fra.me.prev;
18030 init_table[itpos103] = 1;
18031 return;
18032 }
18033 static const char LOCATE_parser___parser_prod___AType___init_atype[] = "parser_prod::AType::init_atype";
18034 void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18035 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
18036 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
18037 val_t REGB0;
18038 val_t REGB1;
18039 val_t tmp;
18040 if (init_table[itpos104]) return;
18041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18042 fra.me.file = LOCATE_parser___parser_prod;
18043 fra.me.line = 3273;
18044 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
18045 fra.me.has_broke = 0;
18046 fra.me.REG_size = 5;
18047 fra.me.nitni_local_ref_head = NULL;
18048 fra.me.REG[0] = NIT_NULL;
18049 fra.me.REG[1] = NIT_NULL;
18050 fra.me.REG[2] = NIT_NULL;
18051 fra.me.REG[3] = NIT_NULL;
18052 fra.me.REG[4] = NIT_NULL;
18053 fra.me.REG[0] = p0;
18054 fra.me.REG[1] = p1;
18055 fra.me.REG[2] = p2;
18056 fra.me.REG[3] = p3;
18057 /* parser/parser_prod.nit:3273 */
18058 fra.me.REG[4] = fra.me.REG[0];
18059 /* parser/parser_prod.nit:3279 */
18060 CALL_parser___parser_prod___AType___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
18061 /* parser/parser_prod.nit:3280 */
18062 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[4]) = fra.me.REG[1];
18063 /* parser/parser_prod.nit:3281 */
18064 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18065 if (UNTAG_Bool(REGB0)) {
18066 } else {
18067 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18068 if (UNTAG_Bool(REGB1)) {
18069 REGB1 = TAG_Bool(0);
18070 REGB0 = REGB1;
18071 } else {
18072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
18073 REGB0 = REGB1;
18074 }
18075 }
18076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18077 if (UNTAG_Bool(REGB0)) {
18078 /* parser/parser_prod.nit:3282 */
18079 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18080 if (UNTAG_Bool(REGB0)) {
18081 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3282);
18082 }
18083 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
18084 }
18085 /* parser/parser_prod.nit:3284 */
18086 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18087 if (UNTAG_Bool(REGB0)) {
18088 } else {
18089 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3284);
18090 }
18091 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[4]) = fra.me.REG[2];
18092 /* parser/parser_prod.nit:3285 */
18093 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18094 if (UNTAG_Bool(REGB0)) {
18095 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3285);
18096 }
18097 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
18098 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));
18099 stack_frame_head = fra.me.prev;
18100 init_table[itpos104] = 1;
18101 return;
18102 }
18103 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){
18104 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18105 val_t REGB0;
18106 fun_t CREG[1];
18107 val_t tmp;
18108 /* parser/parser_prod.nit:3286 */
18109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18110 fra.me.file = LOCATE_parser___parser_prod;
18111 fra.me.line = 0;
18112 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
18113 fra.me.has_broke = 0;
18114 fra.me.REG_size = 2;
18115 fra.me.nitni_local_ref_head = NULL;
18116 fra.me.REG[0] = NIT_NULL;
18117 fra.me.REG[1] = NIT_NULL;
18118 fra.me.closure_ctx = closctx_param;
18119 fra.me.closure_funs = CREG;
18120 fra.me.REG[0] = p0;
18121 CREG[0] = clos_fun0;
18122 /* parser/parser_prod.nit:3287 */
18123 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
18124 if (UNTAG_Bool(REGB0)) {
18125 } else {
18126 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3287);
18127 }
18128 /* parser/parser_prod.nit:3288 */
18129 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4])!=NIT_NULL);
18130 if (UNTAG_Bool(REGB0)) {
18131 } else {
18132 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3288);
18133 }
18134 fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4]);
18135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18136 /* parser/parser_prod.nit:3289 */
18137 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
18138 stack_frame_head = fra.me.prev;
18139 return;
18140 }
18141 static const char LOCATE_parser___parser_prod___AType___replace_child[] = "parser_prod::AType::(parser_prod::ANode::replace_child)";
18142 void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
18143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18144 val_t REGB0;
18145 val_t REGB1;
18146 val_t REGB2;
18147 val_t REGB3;
18148 val_t REGB4;
18149 val_t tmp;
18150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18151 fra.me.file = LOCATE_parser___parser_prod;
18152 fra.me.line = 3293;
18153 fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
18154 fra.me.has_broke = 0;
18155 fra.me.REG_size = 4;
18156 fra.me.nitni_local_ref_head = NULL;
18157 fra.me.REG[0] = NIT_NULL;
18158 fra.me.REG[1] = NIT_NULL;
18159 fra.me.REG[2] = NIT_NULL;
18160 fra.me.REG[3] = NIT_NULL;
18161 fra.me.REG[0] = p0;
18162 fra.me.REG[1] = p1;
18163 fra.me.REG[2] = p2;
18164 /* parser/parser_prod.nit:3295 */
18165 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
18166 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18167 if (UNTAG_Bool(REGB0)) {
18168 } else {
18169 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18170 if (UNTAG_Bool(REGB1)) {
18171 REGB1 = TAG_Bool(0);
18172 REGB0 = REGB1;
18173 } else {
18174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18175 REGB0 = REGB1;
18176 }
18177 }
18178 if (UNTAG_Bool(REGB0)) {
18179 /* parser/parser_prod.nit:3296 */
18180 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18181 if (UNTAG_Bool(REGB0)) {
18182 } else {
18183 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18184 if (UNTAG_Bool(REGB1)) {
18185 REGB1 = TAG_Bool(0);
18186 REGB0 = REGB1;
18187 } else {
18188 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18189 REGB0 = REGB1;
18190 }
18191 }
18192 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18193 if (UNTAG_Bool(REGB0)) {
18194 /* parser/parser_prod.nit:3297 */
18195 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18196 if (UNTAG_Bool(REGB0)) {
18197 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3297);
18198 }
18199 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18200 /* parser/parser_prod.nit:3298 */
18201 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*/;
18202 if (UNTAG_Bool(REGB0)) {
18203 } else {
18204 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3298);
18205 }
18206 /* parser/parser_prod.nit:3299 */
18207 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
18208 } else {
18209 /* parser/parser_prod.nit:3301 */
18210 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
18211 }
18212 /* parser/parser_prod.nit:3303 */
18213 goto label1;
18214 }
18215 /* parser/parser_prod.nit:3305 */
18216 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
18217 if (UNTAG_Bool(REGB0)) {
18218 } else {
18219 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3305);
18220 }
18221 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
18222 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18223 if (UNTAG_Bool(REGB0)) {
18224 } else {
18225 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18226 REGB0 = REGB1;
18227 }
18228 if (UNTAG_Bool(REGB0)) {
18229 /* parser/parser_prod.nit:3306 */
18230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18231 if (UNTAG_Bool(REGB0)) {
18232 } else {
18233 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18234 if (UNTAG_Bool(REGB1)) {
18235 REGB1 = TAG_Bool(0);
18236 REGB0 = REGB1;
18237 } else {
18238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18239 REGB0 = REGB1;
18240 }
18241 }
18242 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18243 if (UNTAG_Bool(REGB0)) {
18244 /* parser/parser_prod.nit:3307 */
18245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18246 if (UNTAG_Bool(REGB0)) {
18247 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3307);
18248 }
18249 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18250 /* parser/parser_prod.nit:3308 */
18251 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*/;
18252 if (UNTAG_Bool(REGB0)) {
18253 } else {
18254 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3308);
18255 }
18256 /* parser/parser_prod.nit:3309 */
18257 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
18258 } else {
18259 /* parser/parser_prod.nit:3311 */
18260 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3311);
18261 }
18262 /* parser/parser_prod.nit:3313 */
18263 goto label1;
18264 }
18265 /* parser/parser_prod.nit:3315 */
18266 REGB0 = TAG_Int(0);
18267 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
18268 if (UNTAG_Bool(REGB1)) {
18269 } else {
18270 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3315);
18271 }
18272 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
18273 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
18274 /* ../lib/standard/kernel.nit:355 */
18275 while(1) {
18276 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
18277 if (UNTAG_Bool(REGB2)) {
18278 } else {
18279 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
18280 }
18281 /* ../lib/standard/kernel.nit:235 */
18282 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
18283 /* ../lib/standard/kernel.nit:355 */
18284 if (UNTAG_Bool(REGB2)) {
18285 /* parser/parser_prod.nit:3315 */
18286 REGB2 = REGB0;
18287 /* parser/parser_prod.nit:3316 */
18288 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
18289 if (UNTAG_Bool(REGB3)) {
18290 } else {
18291 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3316);
18292 }
18293 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
18294 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
18295 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18296 if (UNTAG_Bool(REGB3)) {
18297 } else {
18298 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18299 if (UNTAG_Bool(REGB4)) {
18300 REGB4 = TAG_Bool(0);
18301 REGB3 = REGB4;
18302 } else {
18303 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18304 REGB3 = REGB4;
18305 }
18306 }
18307 if (UNTAG_Bool(REGB3)) {
18308 /* parser/parser_prod.nit:3317 */
18309 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18310 if (UNTAG_Bool(REGB3)) {
18311 } else {
18312 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18313 if (UNTAG_Bool(REGB4)) {
18314 REGB4 = TAG_Bool(0);
18315 REGB3 = REGB4;
18316 } else {
18317 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18318 REGB3 = REGB4;
18319 }
18320 }
18321 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
18322 if (UNTAG_Bool(REGB3)) {
18323 /* parser/parser_prod.nit:3318 */
18324 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*/;
18325 if (UNTAG_Bool(REGB3)) {
18326 } else {
18327 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3318);
18328 }
18329 /* parser/parser_prod.nit:3319 */
18330 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
18331 if (UNTAG_Bool(REGB3)) {
18332 } else {
18333 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3319);
18334 }
18335 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
18336 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
18337 /* parser/parser_prod.nit:3320 */
18338 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18339 if (UNTAG_Bool(REGB3)) {
18340 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3320);
18341 }
18342 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18343 } else {
18344 /* parser/parser_prod.nit:3322 */
18345 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
18346 if (UNTAG_Bool(REGB3)) {
18347 } else {
18348 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3322);
18349 }
18350 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
18351 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
18352 }
18353 /* parser/parser_prod.nit:3324 */
18354 goto label1;
18355 }
18356 /* ../lib/standard/kernel.nit:357 */
18357 REGB2 = TAG_Int(1);
18358 /* ../lib/standard/kernel.nit:238 */
18359 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
18360 /* ../lib/standard/kernel.nit:357 */
18361 REGB0 = REGB2;
18362 } else {
18363 /* ../lib/standard/kernel.nit:355 */
18364 goto label2;
18365 }
18366 }
18367 label2: while(0);
18368 label1: while(0);
18369 stack_frame_head = fra.me.prev;
18370 return;
18371 }
18372 static const char LOCATE_parser___parser_prod___AType___visit_all[] = "parser_prod::AType::(parser_prod::ANode::visit_all)";
18373 void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
18374 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18375 val_t REGB0;
18376 val_t REGB1;
18377 val_t tmp;
18378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18379 fra.me.file = LOCATE_parser___parser_prod;
18380 fra.me.line = 3329;
18381 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
18382 fra.me.has_broke = 0;
18383 fra.me.REG_size = 4;
18384 fra.me.nitni_local_ref_head = NULL;
18385 fra.me.REG[0] = NIT_NULL;
18386 fra.me.REG[1] = NIT_NULL;
18387 fra.me.REG[2] = NIT_NULL;
18388 fra.me.REG[3] = NIT_NULL;
18389 fra.me.REG[0] = p0;
18390 fra.me.REG[1] = p1;
18391 /* parser/parser_prod.nit:3329 */
18392 fra.me.REG[2] = fra.me.REG[0];
18393 /* parser/parser_prod.nit:3331 */
18394 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
18395 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18396 if (UNTAG_Bool(REGB0)) {
18397 } else {
18398 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18399 if (UNTAG_Bool(REGB1)) {
18400 REGB1 = TAG_Bool(0);
18401 REGB0 = REGB1;
18402 } else {
18403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18404 REGB0 = REGB1;
18405 }
18406 }
18407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18408 if (UNTAG_Bool(REGB0)) {
18409 /* parser/parser_prod.nit:3332 */
18410 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
18411 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*/;
18412 if (UNTAG_Bool(REGB0)) {
18413 } else {
18414 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3332);
18415 }
18416 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18417 }
18418 /* parser/parser_prod.nit:3334 */
18419 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
18420 if (UNTAG_Bool(REGB0)) {
18421 } else {
18422 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3334);
18423 }
18424 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
18425 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18426 /* parser/parser_prod.nit:3335 */
18427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
18428 if (UNTAG_Bool(REGB0)) {
18429 } else {
18430 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3335);
18431 }
18432 fra.me.REG[2] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
18433 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));
18434 stack_frame_head = fra.me.prev;
18435 return;
18436 }
18437 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){
18438 struct {struct stack_frame_t me;} fra;
18439 fun_t CREG[1];
18440 val_t tmp;
18441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18442 fra.me.file = LOCATE_parser___parser_prod;
18443 fra.me.line = 0;
18444 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
18445 fra.me.has_broke = 0;
18446 fra.me.REG_size = 1;
18447 fra.me.nitni_local_ref_head = NULL;
18448 fra.me.REG[0] = NIT_NULL;
18449 fra.me.closure_ctx = closctx_param;
18450 fra.me.closure_funs = CREG;
18451 fra.me.REG[0] = p0;
18452 CREG[0] = clos_fun0;
18453 /* parser/parser_prod.nit:3336 */
18454 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
18455 stack_frame_head = fra.me.prev;
18456 return;
18457 }
18458 static const char LOCATE_parser___parser_prod___ALabel___empty_init[] = "parser_prod::ALabel::empty_init";
18459 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
18460 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
18461 struct {struct stack_frame_t me;} fra;
18462 val_t tmp;
18463 if (init_table[itpos105]) return;
18464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18465 fra.me.file = LOCATE_parser___parser_prod;
18466 fra.me.line = 3341;
18467 fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
18468 fra.me.has_broke = 0;
18469 fra.me.REG_size = 1;
18470 fra.me.nitni_local_ref_head = NULL;
18471 fra.me.REG[0] = NIT_NULL;
18472 fra.me.REG[0] = p0;
18473 stack_frame_head = fra.me.prev;
18474 init_table[itpos105] = 1;
18475 return;
18476 }
18477 static const char LOCATE_parser___parser_prod___ALabel___init_alabel[] = "parser_prod::ALabel::init_alabel";
18478 void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
18479 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
18480 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18481 val_t REGB0;
18482 val_t tmp;
18483 if (init_table[itpos106]) return;
18484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18485 fra.me.file = LOCATE_parser___parser_prod;
18486 fra.me.line = 3343;
18487 fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
18488 fra.me.has_broke = 0;
18489 fra.me.REG_size = 4;
18490 fra.me.nitni_local_ref_head = NULL;
18491 fra.me.REG[0] = NIT_NULL;
18492 fra.me.REG[1] = NIT_NULL;
18493 fra.me.REG[2] = NIT_NULL;
18494 fra.me.REG[3] = NIT_NULL;
18495 fra.me.REG[0] = p0;
18496 fra.me.REG[1] = p1;
18497 fra.me.REG[2] = p2;
18498 /* parser/parser_prod.nit:3343 */
18499 fra.me.REG[3] = fra.me.REG[0];
18500 /* parser/parser_prod.nit:3348 */
18501 CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
18502 /* parser/parser_prod.nit:3349 */
18503 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18504 if (UNTAG_Bool(REGB0)) {
18505 } else {
18506 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3349);
18507 }
18508 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
18509 /* parser/parser_prod.nit:3350 */
18510 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18511 if (UNTAG_Bool(REGB0)) {
18512 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3350);
18513 }
18514 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18515 /* parser/parser_prod.nit:3351 */
18516 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18517 if (UNTAG_Bool(REGB0)) {
18518 } else {
18519 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3351);
18520 }
18521 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
18522 /* parser/parser_prod.nit:3352 */
18523 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18524 if (UNTAG_Bool(REGB0)) {
18525 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3352);
18526 }
18527 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
18528 stack_frame_head = fra.me.prev;
18529 init_table[itpos106] = 1;
18530 return;
18531 }
18532 static const char LOCATE_parser___parser_prod___ALabel___replace_child[] = "parser_prod::ALabel::(parser_prod::ANode::replace_child)";
18533 void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
18534 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18535 val_t REGB0;
18536 val_t REGB1;
18537 val_t tmp;
18538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18539 fra.me.file = LOCATE_parser___parser_prod;
18540 fra.me.line = 3355;
18541 fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
18542 fra.me.has_broke = 0;
18543 fra.me.REG_size = 4;
18544 fra.me.nitni_local_ref_head = NULL;
18545 fra.me.REG[0] = NIT_NULL;
18546 fra.me.REG[1] = NIT_NULL;
18547 fra.me.REG[2] = NIT_NULL;
18548 fra.me.REG[3] = NIT_NULL;
18549 fra.me.REG[0] = p0;
18550 fra.me.REG[1] = p1;
18551 fra.me.REG[2] = p2;
18552 /* parser/parser_prod.nit:3357 */
18553 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
18554 if (UNTAG_Bool(REGB0)) {
18555 } else {
18556 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3357);
18557 }
18558 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
18559 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18560 if (UNTAG_Bool(REGB0)) {
18561 } else {
18562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18563 REGB0 = REGB1;
18564 }
18565 if (UNTAG_Bool(REGB0)) {
18566 /* parser/parser_prod.nit:3358 */
18567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18568 if (UNTAG_Bool(REGB0)) {
18569 } else {
18570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18571 if (UNTAG_Bool(REGB1)) {
18572 REGB1 = TAG_Bool(0);
18573 REGB0 = REGB1;
18574 } else {
18575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18576 REGB0 = REGB1;
18577 }
18578 }
18579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18580 if (UNTAG_Bool(REGB0)) {
18581 /* parser/parser_prod.nit:3359 */
18582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18583 if (UNTAG_Bool(REGB0)) {
18584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3359);
18585 }
18586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18587 /* parser/parser_prod.nit:3360 */
18588 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*/;
18589 if (UNTAG_Bool(REGB0)) {
18590 } else {
18591 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3360);
18592 }
18593 /* parser/parser_prod.nit:3361 */
18594 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
18595 } else {
18596 /* parser/parser_prod.nit:3363 */
18597 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3363);
18598 }
18599 /* parser/parser_prod.nit:3365 */
18600 goto label1;
18601 }
18602 /* parser/parser_prod.nit:3367 */
18603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
18604 if (UNTAG_Bool(REGB0)) {
18605 } else {
18606 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3367);
18607 }
18608 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
18609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18610 if (UNTAG_Bool(REGB0)) {
18611 } else {
18612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18613 REGB0 = REGB1;
18614 }
18615 if (UNTAG_Bool(REGB0)) {
18616 /* parser/parser_prod.nit:3368 */
18617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18618 if (UNTAG_Bool(REGB0)) {
18619 } else {
18620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18621 if (UNTAG_Bool(REGB1)) {
18622 REGB1 = TAG_Bool(0);
18623 REGB0 = REGB1;
18624 } else {
18625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18626 REGB0 = REGB1;
18627 }
18628 }
18629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18630 if (UNTAG_Bool(REGB0)) {
18631 /* parser/parser_prod.nit:3369 */
18632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18633 if (UNTAG_Bool(REGB0)) {
18634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3369);
18635 }
18636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18637 /* parser/parser_prod.nit:3370 */
18638 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*/;
18639 if (UNTAG_Bool(REGB0)) {
18640 } else {
18641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3370);
18642 }
18643 /* parser/parser_prod.nit:3371 */
18644 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
18645 } else {
18646 /* parser/parser_prod.nit:3373 */
18647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3373);
18648 }
18649 /* parser/parser_prod.nit:3375 */
18650 goto label1;
18651 }
18652 label1: while(0);
18653 stack_frame_head = fra.me.prev;
18654 return;
18655 }
18656 static const char LOCATE_parser___parser_prod___ALabel___visit_all[] = "parser_prod::ALabel::(parser_prod::ANode::visit_all)";
18657 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
18658 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18659 val_t REGB0;
18660 val_t tmp;
18661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18662 fra.me.file = LOCATE_parser___parser_prod;
18663 fra.me.line = 3379;
18664 fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
18665 fra.me.has_broke = 0;
18666 fra.me.REG_size = 3;
18667 fra.me.nitni_local_ref_head = NULL;
18668 fra.me.REG[0] = NIT_NULL;
18669 fra.me.REG[1] = NIT_NULL;
18670 fra.me.REG[2] = NIT_NULL;
18671 fra.me.REG[0] = p0;
18672 fra.me.REG[1] = p1;
18673 /* parser/parser_prod.nit:3381 */
18674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
18675 if (UNTAG_Bool(REGB0)) {
18676 } else {
18677 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3381);
18678 }
18679 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
18680 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18681 /* parser/parser_prod.nit:3382 */
18682 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
18683 if (UNTAG_Bool(REGB0)) {
18684 } else {
18685 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3382);
18686 }
18687 fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
18688 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18689 stack_frame_head = fra.me.prev;
18690 return;
18691 }
18692 static const char LOCATE_parser___parser_prod___ABlockExpr___empty_init[] = "parser_prod::ABlockExpr::empty_init";
18693 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
18694 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
18695 struct {struct stack_frame_t me;} fra;
18696 val_t tmp;
18697 if (init_table[itpos107]) return;
18698 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18699 fra.me.file = LOCATE_parser___parser_prod;
18700 fra.me.line = 3386;
18701 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
18702 fra.me.has_broke = 0;
18703 fra.me.REG_size = 1;
18704 fra.me.nitni_local_ref_head = NULL;
18705 fra.me.REG[0] = NIT_NULL;
18706 fra.me.REG[0] = p0;
18707 stack_frame_head = fra.me.prev;
18708 init_table[itpos107] = 1;
18709 return;
18710 }
18711 static const char LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr[] = "parser_prod::ABlockExpr::init_ablockexpr";
18712 void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, val_t p2, int* init_table){
18713 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
18714 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18715 val_t REGB0;
18716 val_t REGB1;
18717 val_t tmp;
18718 if (init_table[itpos108]) return;
18719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18720 fra.me.file = LOCATE_parser___parser_prod;
18721 fra.me.line = 3388;
18722 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
18723 fra.me.has_broke = 0;
18724 fra.me.REG_size = 3;
18725 fra.me.nitni_local_ref_head = NULL;
18726 fra.me.REG[0] = NIT_NULL;
18727 fra.me.REG[1] = NIT_NULL;
18728 fra.me.REG[2] = NIT_NULL;
18729 fra.me.REG[0] = p0;
18730 fra.me.REG[1] = p1;
18731 fra.me.REG[2] = p2;
18732 /* parser/parser_prod.nit:3393 */
18733 CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18734 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));
18735 /* parser/parser_prod.nit:3399 */
18736 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
18737 /* parser/parser_prod.nit:3400 */
18738 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18739 if (UNTAG_Bool(REGB0)) {
18740 } else {
18741 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18742 if (UNTAG_Bool(REGB1)) {
18743 REGB1 = TAG_Bool(0);
18744 REGB0 = REGB1;
18745 } else {
18746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18747 REGB0 = REGB1;
18748 }
18749 }
18750 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18751 if (UNTAG_Bool(REGB0)) {
18752 /* parser/parser_prod.nit:3401 */
18753 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18754 if (UNTAG_Bool(REGB0)) {
18755 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3401);
18756 }
18757 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18758 }
18759 stack_frame_head = fra.me.prev;
18760 init_table[itpos108] = 1;
18761 return;
18762 }
18763 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){
18764 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18765 val_t REGB0;
18766 fun_t CREG[1];
18767 val_t tmp;
18768 /* parser/parser_prod.nit:3394 */
18769 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18770 fra.me.file = LOCATE_parser___parser_prod;
18771 fra.me.line = 0;
18772 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
18773 fra.me.has_broke = 0;
18774 fra.me.REG_size = 2;
18775 fra.me.nitni_local_ref_head = NULL;
18776 fra.me.REG[0] = NIT_NULL;
18777 fra.me.REG[1] = NIT_NULL;
18778 fra.me.closure_ctx = closctx_param;
18779 fra.me.closure_funs = CREG;
18780 fra.me.REG[0] = p0;
18781 CREG[0] = clos_fun0;
18782 /* parser/parser_prod.nit:3395 */
18783 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18784 if (UNTAG_Bool(REGB0)) {
18785 } else {
18786 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3395);
18787 }
18788 /* parser/parser_prod.nit:3396 */
18789 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
18790 if (UNTAG_Bool(REGB0)) {
18791 } else {
18792 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3396);
18793 }
18794 fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
18795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18796 /* parser/parser_prod.nit:3397 */
18797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
18798 stack_frame_head = fra.me.prev;
18799 return;
18800 }
18801 static const char LOCATE_parser___parser_prod___ABlockExpr___replace_child[] = "parser_prod::ABlockExpr::(parser_prod::ANode::replace_child)";
18802 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
18803 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18804 val_t REGB0;
18805 val_t REGB1;
18806 val_t REGB2;
18807 val_t REGB3;
18808 val_t REGB4;
18809 val_t tmp;
18810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18811 fra.me.file = LOCATE_parser___parser_prod;
18812 fra.me.line = 3405;
18813 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
18814 fra.me.has_broke = 0;
18815 fra.me.REG_size = 4;
18816 fra.me.nitni_local_ref_head = NULL;
18817 fra.me.REG[0] = NIT_NULL;
18818 fra.me.REG[1] = NIT_NULL;
18819 fra.me.REG[2] = NIT_NULL;
18820 fra.me.REG[3] = NIT_NULL;
18821 fra.me.REG[0] = p0;
18822 fra.me.REG[1] = p1;
18823 fra.me.REG[2] = p2;
18824 /* parser/parser_prod.nit:3407 */
18825 REGB0 = TAG_Int(0);
18826 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18827 if (UNTAG_Bool(REGB1)) {
18828 } else {
18829 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3407);
18830 }
18831 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18832 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
18833 /* ../lib/standard/kernel.nit:355 */
18834 while(1) {
18835 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
18836 if (UNTAG_Bool(REGB2)) {
18837 } else {
18838 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
18839 }
18840 /* ../lib/standard/kernel.nit:235 */
18841 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
18842 /* ../lib/standard/kernel.nit:355 */
18843 if (UNTAG_Bool(REGB2)) {
18844 /* parser/parser_prod.nit:3407 */
18845 REGB2 = REGB0;
18846 /* parser/parser_prod.nit:3408 */
18847 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18848 if (UNTAG_Bool(REGB3)) {
18849 } else {
18850 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3408);
18851 }
18852 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18853 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
18854 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18855 if (UNTAG_Bool(REGB3)) {
18856 } else {
18857 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18858 if (UNTAG_Bool(REGB4)) {
18859 REGB4 = TAG_Bool(0);
18860 REGB3 = REGB4;
18861 } else {
18862 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18863 REGB3 = REGB4;
18864 }
18865 }
18866 if (UNTAG_Bool(REGB3)) {
18867 /* parser/parser_prod.nit:3409 */
18868 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18869 if (UNTAG_Bool(REGB3)) {
18870 } else {
18871 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18872 if (UNTAG_Bool(REGB4)) {
18873 REGB4 = TAG_Bool(0);
18874 REGB3 = REGB4;
18875 } else {
18876 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18877 REGB3 = REGB4;
18878 }
18879 }
18880 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
18881 if (UNTAG_Bool(REGB3)) {
18882 /* parser/parser_prod.nit:3410 */
18883 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*/;
18884 if (UNTAG_Bool(REGB3)) {
18885 } else {
18886 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3410);
18887 }
18888 /* parser/parser_prod.nit:3411 */
18889 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18890 if (UNTAG_Bool(REGB3)) {
18891 } else {
18892 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3411);
18893 }
18894 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18895 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
18896 /* parser/parser_prod.nit:3412 */
18897 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18898 if (UNTAG_Bool(REGB3)) {
18899 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3412);
18900 }
18901 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18902 } else {
18903 /* parser/parser_prod.nit:3414 */
18904 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18905 if (UNTAG_Bool(REGB3)) {
18906 } else {
18907 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3414);
18908 }
18909 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18910 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
18911 }
18912 /* parser/parser_prod.nit:3416 */
18913 goto label1;
18914 }
18915 /* ../lib/standard/kernel.nit:357 */
18916 REGB2 = TAG_Int(1);
18917 /* ../lib/standard/kernel.nit:238 */
18918 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
18919 /* ../lib/standard/kernel.nit:357 */
18920 REGB0 = REGB2;
18921 } else {
18922 /* ../lib/standard/kernel.nit:355 */
18923 goto label2;
18924 }
18925 }
18926 label2: while(0);
18927 /* parser/parser_prod.nit:3419 */
18928 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]);
18929 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18930 if (UNTAG_Bool(REGB0)) {
18931 } else {
18932 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18933 if (UNTAG_Bool(REGB1)) {
18934 REGB1 = TAG_Bool(0);
18935 REGB0 = REGB1;
18936 } else {
18937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18938 REGB0 = REGB1;
18939 }
18940 }
18941 if (UNTAG_Bool(REGB0)) {
18942 /* parser/parser_prod.nit:3420 */
18943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18944 if (UNTAG_Bool(REGB0)) {
18945 } else {
18946 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18947 if (UNTAG_Bool(REGB1)) {
18948 REGB1 = TAG_Bool(0);
18949 REGB0 = REGB1;
18950 } else {
18951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18952 REGB0 = REGB1;
18953 }
18954 }
18955 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18956 if (UNTAG_Bool(REGB0)) {
18957 /* parser/parser_prod.nit:3421 */
18958 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18959 if (UNTAG_Bool(REGB0)) {
18960 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3421);
18961 }
18962 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18963 /* parser/parser_prod.nit:3422 */
18964 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*/;
18965 if (UNTAG_Bool(REGB0)) {
18966 } else {
18967 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3422);
18968 }
18969 /* parser/parser_prod.nit:3423 */
18970 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
18971 } else {
18972 /* parser/parser_prod.nit:3425 */
18973 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = NIT_NULL;
18974 }
18975 /* parser/parser_prod.nit:3427 */
18976 goto label1;
18977 }
18978 label1: while(0);
18979 stack_frame_head = fra.me.prev;
18980 return;
18981 }
18982 static const char LOCATE_parser___parser_prod___ABlockExpr___visit_all[] = "parser_prod::ABlockExpr::(parser_prod::ANode::visit_all)";
18983 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
18984 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18985 val_t REGB0;
18986 val_t REGB1;
18987 val_t tmp;
18988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18989 fra.me.file = LOCATE_parser___parser_prod;
18990 fra.me.line = 3431;
18991 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
18992 fra.me.has_broke = 0;
18993 fra.me.REG_size = 4;
18994 fra.me.nitni_local_ref_head = NULL;
18995 fra.me.REG[0] = NIT_NULL;
18996 fra.me.REG[1] = NIT_NULL;
18997 fra.me.REG[2] = NIT_NULL;
18998 fra.me.REG[3] = NIT_NULL;
18999 fra.me.REG[0] = p0;
19000 fra.me.REG[1] = p1;
19001 /* parser/parser_prod.nit:3431 */
19002 fra.me.REG[2] = fra.me.REG[0];
19003 /* parser/parser_prod.nit:3433 */
19004 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
19005 if (UNTAG_Bool(REGB0)) {
19006 } else {
19007 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3433);
19008 }
19009 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2]);
19010 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___visit_all_1));
19011 /* parser/parser_prod.nit:3436 */
19012 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
19013 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19014 if (UNTAG_Bool(REGB0)) {
19015 } else {
19016 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19017 if (UNTAG_Bool(REGB1)) {
19018 REGB1 = TAG_Bool(0);
19019 REGB0 = REGB1;
19020 } else {
19021 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19022 REGB0 = REGB1;
19023 }
19024 }
19025 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19026 if (UNTAG_Bool(REGB0)) {
19027 /* parser/parser_prod.nit:3437 */
19028 fra.me.REG[2] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
19029 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*/;
19030 if (UNTAG_Bool(REGB0)) {
19031 } else {
19032 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3437);
19033 }
19034 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19035 }
19036 stack_frame_head = fra.me.prev;
19037 return;
19038 }
19039 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){
19040 struct {struct stack_frame_t me;} fra;
19041 fun_t CREG[1];
19042 val_t tmp;
19043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19044 fra.me.file = LOCATE_parser___parser_prod;
19045 fra.me.line = 0;
19046 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
19047 fra.me.has_broke = 0;
19048 fra.me.REG_size = 1;
19049 fra.me.nitni_local_ref_head = NULL;
19050 fra.me.REG[0] = NIT_NULL;
19051 fra.me.closure_ctx = closctx_param;
19052 fra.me.closure_funs = CREG;
19053 fra.me.REG[0] = p0;
19054 CREG[0] = clos_fun0;
19055 /* parser/parser_prod.nit:3434 */
19056 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
19057 stack_frame_head = fra.me.prev;
19058 return;
19059 }
19060 static const char LOCATE_parser___parser_prod___AVardeclExpr___empty_init[] = "parser_prod::AVardeclExpr::empty_init";
19061 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
19062 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
19063 struct {struct stack_frame_t me;} fra;
19064 val_t tmp;
19065 if (init_table[itpos109]) return;
19066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19067 fra.me.file = LOCATE_parser___parser_prod;
19068 fra.me.line = 3442;
19069 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
19070 fra.me.has_broke = 0;
19071 fra.me.REG_size = 1;
19072 fra.me.nitni_local_ref_head = NULL;
19073 fra.me.REG[0] = NIT_NULL;
19074 fra.me.REG[0] = p0;
19075 stack_frame_head = fra.me.prev;
19076 init_table[itpos109] = 1;
19077 return;
19078 }
19079 static const char LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr[] = "parser_prod::AVardeclExpr::init_avardeclexpr";
19080 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){
19081 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
19082 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
19083 val_t REGB0;
19084 val_t REGB1;
19085 val_t tmp;
19086 if (init_table[itpos110]) return;
19087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19088 fra.me.file = LOCATE_parser___parser_prod;
19089 fra.me.line = 3444;
19090 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
19091 fra.me.has_broke = 0;
19092 fra.me.REG_size = 7;
19093 fra.me.nitni_local_ref_head = NULL;
19094 fra.me.REG[0] = NIT_NULL;
19095 fra.me.REG[1] = NIT_NULL;
19096 fra.me.REG[2] = NIT_NULL;
19097 fra.me.REG[3] = NIT_NULL;
19098 fra.me.REG[4] = NIT_NULL;
19099 fra.me.REG[5] = NIT_NULL;
19100 fra.me.REG[6] = NIT_NULL;
19101 fra.me.REG[0] = p0;
19102 fra.me.REG[1] = p1;
19103 fra.me.REG[2] = p2;
19104 fra.me.REG[3] = p3;
19105 fra.me.REG[4] = p4;
19106 fra.me.REG[5] = p5;
19107 /* parser/parser_prod.nit:3444 */
19108 fra.me.REG[6] = fra.me.REG[0];
19109 /* parser/parser_prod.nit:3452 */
19110 CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
19111 /* parser/parser_prod.nit:3453 */
19112 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19113 if (UNTAG_Bool(REGB0)) {
19114 } else {
19115 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3453);
19116 }
19117 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[6]) = fra.me.REG[1];
19118 /* parser/parser_prod.nit:3454 */
19119 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19120 if (UNTAG_Bool(REGB0)) {
19121 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3454);
19122 }
19123 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
19124 /* parser/parser_prod.nit:3455 */
19125 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19126 if (UNTAG_Bool(REGB0)) {
19127 } else {
19128 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3455);
19129 }
19130 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
19131 /* parser/parser_prod.nit:3456 */
19132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19133 if (UNTAG_Bool(REGB0)) {
19134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3456);
19135 }
19136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
19137 /* parser/parser_prod.nit:3457 */
19138 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[6]) = fra.me.REG[3];
19139 /* parser/parser_prod.nit:3458 */
19140 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19141 if (UNTAG_Bool(REGB0)) {
19142 } else {
19143 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19144 if (UNTAG_Bool(REGB1)) {
19145 REGB1 = TAG_Bool(0);
19146 REGB0 = REGB1;
19147 } else {
19148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19149 REGB0 = REGB1;
19150 }
19151 }
19152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19153 if (UNTAG_Bool(REGB0)) {
19154 /* parser/parser_prod.nit:3459 */
19155 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19156 if (UNTAG_Bool(REGB0)) {
19157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3459);
19158 }
19159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
19160 }
19161 /* parser/parser_prod.nit:3461 */
19162 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
19163 /* parser/parser_prod.nit:3462 */
19164 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19165 if (UNTAG_Bool(REGB0)) {
19166 } else {
19167 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19168 if (UNTAG_Bool(REGB1)) {
19169 REGB1 = TAG_Bool(0);
19170 REGB0 = REGB1;
19171 } else {
19172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
19173 REGB0 = REGB1;
19174 }
19175 }
19176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19177 if (UNTAG_Bool(REGB0)) {
19178 /* parser/parser_prod.nit:3463 */
19179 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19180 if (UNTAG_Bool(REGB0)) {
19181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3463);
19182 }
19183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
19184 }
19185 /* parser/parser_prod.nit:3465 */
19186 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[6]) = fra.me.REG[5];
19187 /* parser/parser_prod.nit:3466 */
19188 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19189 if (UNTAG_Bool(REGB0)) {
19190 } else {
19191 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19192 if (UNTAG_Bool(REGB1)) {
19193 REGB1 = TAG_Bool(0);
19194 REGB0 = REGB1;
19195 } else {
19196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
19197 REGB0 = REGB1;
19198 }
19199 }
19200 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19201 if (UNTAG_Bool(REGB0)) {
19202 /* parser/parser_prod.nit:3467 */
19203 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19204 if (UNTAG_Bool(REGB0)) {
19205 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3467);
19206 }
19207 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
19208 }
19209 stack_frame_head = fra.me.prev;
19210 init_table[itpos110] = 1;
19211 return;
19212 }
19213 static const char LOCATE_parser___parser_prod___AVardeclExpr___replace_child[] = "parser_prod::AVardeclExpr::(parser_prod::ANode::replace_child)";
19214 void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
19215 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19216 val_t REGB0;
19217 val_t REGB1;
19218 val_t tmp;
19219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19220 fra.me.file = LOCATE_parser___parser_prod;
19221 fra.me.line = 3471;
19222 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
19223 fra.me.has_broke = 0;
19224 fra.me.REG_size = 4;
19225 fra.me.nitni_local_ref_head = NULL;
19226 fra.me.REG[0] = NIT_NULL;
19227 fra.me.REG[1] = NIT_NULL;
19228 fra.me.REG[2] = NIT_NULL;
19229 fra.me.REG[3] = NIT_NULL;
19230 fra.me.REG[0] = p0;
19231 fra.me.REG[1] = p1;
19232 fra.me.REG[2] = p2;
19233 /* parser/parser_prod.nit:3473 */
19234 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
19235 if (UNTAG_Bool(REGB0)) {
19236 } else {
19237 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3473);
19238 }
19239 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
19240 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19241 if (UNTAG_Bool(REGB0)) {
19242 } else {
19243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19244 REGB0 = REGB1;
19245 }
19246 if (UNTAG_Bool(REGB0)) {
19247 /* parser/parser_prod.nit:3474 */
19248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19249 if (UNTAG_Bool(REGB0)) {
19250 } else {
19251 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19252 if (UNTAG_Bool(REGB1)) {
19253 REGB1 = TAG_Bool(0);
19254 REGB0 = REGB1;
19255 } else {
19256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19257 REGB0 = REGB1;
19258 }
19259 }
19260 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19261 if (UNTAG_Bool(REGB0)) {
19262 /* parser/parser_prod.nit:3475 */
19263 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19264 if (UNTAG_Bool(REGB0)) {
19265 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3475);
19266 }
19267 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19268 /* parser/parser_prod.nit:3476 */
19269 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*/;
19270 if (UNTAG_Bool(REGB0)) {
19271 } else {
19272 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3476);
19273 }
19274 /* parser/parser_prod.nit:3477 */
19275 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
19276 } else {
19277 /* parser/parser_prod.nit:3479 */
19278 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3479);
19279 }
19280 /* parser/parser_prod.nit:3481 */
19281 goto label1;
19282 }
19283 /* parser/parser_prod.nit:3483 */
19284 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
19285 if (UNTAG_Bool(REGB0)) {
19286 } else {
19287 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3483);
19288 }
19289 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
19290 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19291 if (UNTAG_Bool(REGB0)) {
19292 } else {
19293 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19294 REGB0 = REGB1;
19295 }
19296 if (UNTAG_Bool(REGB0)) {
19297 /* parser/parser_prod.nit:3484 */
19298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19299 if (UNTAG_Bool(REGB0)) {
19300 } else {
19301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19302 if (UNTAG_Bool(REGB1)) {
19303 REGB1 = TAG_Bool(0);
19304 REGB0 = REGB1;
19305 } else {
19306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19307 REGB0 = REGB1;
19308 }
19309 }
19310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19311 if (UNTAG_Bool(REGB0)) {
19312 /* parser/parser_prod.nit:3485 */
19313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19314 if (UNTAG_Bool(REGB0)) {
19315 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3485);
19316 }
19317 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19318 /* parser/parser_prod.nit:3486 */
19319 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*/;
19320 if (UNTAG_Bool(REGB0)) {
19321 } else {
19322 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3486);
19323 }
19324 /* parser/parser_prod.nit:3487 */
19325 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
19326 } else {
19327 /* parser/parser_prod.nit:3489 */
19328 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3489);
19329 }
19330 /* parser/parser_prod.nit:3491 */
19331 goto label1;
19332 }
19333 /* parser/parser_prod.nit:3493 */
19334 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
19335 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19336 if (UNTAG_Bool(REGB0)) {
19337 } else {
19338 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19339 if (UNTAG_Bool(REGB1)) {
19340 REGB1 = TAG_Bool(0);
19341 REGB0 = REGB1;
19342 } else {
19343 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19344 REGB0 = REGB1;
19345 }
19346 }
19347 if (UNTAG_Bool(REGB0)) {
19348 /* parser/parser_prod.nit:3494 */
19349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19350 if (UNTAG_Bool(REGB0)) {
19351 } else {
19352 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19353 if (UNTAG_Bool(REGB1)) {
19354 REGB1 = TAG_Bool(0);
19355 REGB0 = REGB1;
19356 } else {
19357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19358 REGB0 = REGB1;
19359 }
19360 }
19361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19362 if (UNTAG_Bool(REGB0)) {
19363 /* parser/parser_prod.nit:3495 */
19364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19365 if (UNTAG_Bool(REGB0)) {
19366 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3495);
19367 }
19368 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19369 /* parser/parser_prod.nit:3496 */
19370 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*/;
19371 if (UNTAG_Bool(REGB0)) {
19372 } else {
19373 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3496);
19374 }
19375 /* parser/parser_prod.nit:3497 */
19376 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
19377 } else {
19378 /* parser/parser_prod.nit:3499 */
19379 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
19380 }
19381 /* parser/parser_prod.nit:3501 */
19382 goto label1;
19383 }
19384 /* parser/parser_prod.nit:3503 */
19385 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
19386 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19387 if (UNTAG_Bool(REGB0)) {
19388 } else {
19389 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19390 if (UNTAG_Bool(REGB1)) {
19391 REGB1 = TAG_Bool(0);
19392 REGB0 = REGB1;
19393 } else {
19394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19395 REGB0 = REGB1;
19396 }
19397 }
19398 if (UNTAG_Bool(REGB0)) {
19399 /* parser/parser_prod.nit:3504 */
19400 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19401 if (UNTAG_Bool(REGB0)) {
19402 } else {
19403 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19404 if (UNTAG_Bool(REGB1)) {
19405 REGB1 = TAG_Bool(0);
19406 REGB0 = REGB1;
19407 } else {
19408 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19409 REGB0 = REGB1;
19410 }
19411 }
19412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19413 if (UNTAG_Bool(REGB0)) {
19414 /* parser/parser_prod.nit:3505 */
19415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19416 if (UNTAG_Bool(REGB0)) {
19417 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3505);
19418 }
19419 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19420 /* parser/parser_prod.nit:3506 */
19421 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*/;
19422 if (UNTAG_Bool(REGB0)) {
19423 } else {
19424 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3506);
19425 }
19426 /* parser/parser_prod.nit:3507 */
19427 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
19428 } else {
19429 /* parser/parser_prod.nit:3509 */
19430 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
19431 }
19432 /* parser/parser_prod.nit:3511 */
19433 goto label1;
19434 }
19435 /* parser/parser_prod.nit:3513 */
19436 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
19437 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19438 if (UNTAG_Bool(REGB0)) {
19439 } else {
19440 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19441 if (UNTAG_Bool(REGB1)) {
19442 REGB1 = TAG_Bool(0);
19443 REGB0 = REGB1;
19444 } else {
19445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19446 REGB0 = REGB1;
19447 }
19448 }
19449 if (UNTAG_Bool(REGB0)) {
19450 /* parser/parser_prod.nit:3514 */
19451 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19452 if (UNTAG_Bool(REGB0)) {
19453 } else {
19454 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19455 if (UNTAG_Bool(REGB1)) {
19456 REGB1 = TAG_Bool(0);
19457 REGB0 = REGB1;
19458 } else {
19459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19460 REGB0 = REGB1;
19461 }
19462 }
19463 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19464 if (UNTAG_Bool(REGB0)) {
19465 /* parser/parser_prod.nit:3515 */
19466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19467 if (UNTAG_Bool(REGB0)) {
19468 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3515);
19469 }
19470 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19471 /* parser/parser_prod.nit:3516 */
19472 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19473 if (UNTAG_Bool(REGB0)) {
19474 } else {
19475 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3516);
19476 }
19477 /* parser/parser_prod.nit:3517 */
19478 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19479 } else {
19480 /* parser/parser_prod.nit:3519 */
19481 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19482 }
19483 /* parser/parser_prod.nit:3521 */
19484 goto label1;
19485 }
19486 label1: while(0);
19487 stack_frame_head = fra.me.prev;
19488 return;
19489 }
19490 static const char LOCATE_parser___parser_prod___AVardeclExpr___visit_all[] = "parser_prod::AVardeclExpr::(parser_prod::ANode::visit_all)";
19491 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
19492 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19493 val_t REGB0;
19494 val_t REGB1;
19495 val_t tmp;
19496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19497 fra.me.file = LOCATE_parser___parser_prod;
19498 fra.me.line = 3525;
19499 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
19500 fra.me.has_broke = 0;
19501 fra.me.REG_size = 4;
19502 fra.me.nitni_local_ref_head = NULL;
19503 fra.me.REG[0] = NIT_NULL;
19504 fra.me.REG[1] = NIT_NULL;
19505 fra.me.REG[2] = NIT_NULL;
19506 fra.me.REG[3] = NIT_NULL;
19507 fra.me.REG[0] = p0;
19508 fra.me.REG[1] = p1;
19509 /* parser/parser_prod.nit:3525 */
19510 fra.me.REG[2] = fra.me.REG[0];
19511 /* parser/parser_prod.nit:3527 */
19512 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
19513 if (UNTAG_Bool(REGB0)) {
19514 } else {
19515 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3527);
19516 }
19517 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
19518 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19519 /* parser/parser_prod.nit:3528 */
19520 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
19521 if (UNTAG_Bool(REGB0)) {
19522 } else {
19523 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3528);
19524 }
19525 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
19526 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19527 /* parser/parser_prod.nit:3529 */
19528 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
19529 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19530 if (UNTAG_Bool(REGB0)) {
19531 } else {
19532 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19533 if (UNTAG_Bool(REGB1)) {
19534 REGB1 = TAG_Bool(0);
19535 REGB0 = REGB1;
19536 } else {
19537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19538 REGB0 = REGB1;
19539 }
19540 }
19541 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19542 if (UNTAG_Bool(REGB0)) {
19543 /* parser/parser_prod.nit:3530 */
19544 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
19545 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*/;
19546 if (UNTAG_Bool(REGB0)) {
19547 } else {
19548 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3530);
19549 }
19550 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19551 }
19552 /* parser/parser_prod.nit:3532 */
19553 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
19554 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19555 if (UNTAG_Bool(REGB0)) {
19556 } else {
19557 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19558 if (UNTAG_Bool(REGB1)) {
19559 REGB1 = TAG_Bool(0);
19560 REGB0 = REGB1;
19561 } else {
19562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19563 REGB0 = REGB1;
19564 }
19565 }
19566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19567 if (UNTAG_Bool(REGB0)) {
19568 /* parser/parser_prod.nit:3533 */
19569 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
19570 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*/;
19571 if (UNTAG_Bool(REGB0)) {
19572 } else {
19573 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3533);
19574 }
19575 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19576 }
19577 /* parser/parser_prod.nit:3535 */
19578 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
19579 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19580 if (UNTAG_Bool(REGB0)) {
19581 } else {
19582 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19583 if (UNTAG_Bool(REGB1)) {
19584 REGB1 = TAG_Bool(0);
19585 REGB0 = REGB1;
19586 } else {
19587 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19588 REGB0 = REGB1;
19589 }
19590 }
19591 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19592 if (UNTAG_Bool(REGB0)) {
19593 /* parser/parser_prod.nit:3536 */
19594 fra.me.REG[2] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
19595 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19596 if (UNTAG_Bool(REGB0)) {
19597 } else {
19598 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3536);
19599 }
19600 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19601 }
19602 stack_frame_head = fra.me.prev;
19603 return;
19604 }
19605 static const char LOCATE_parser___parser_prod___AReturnExpr___empty_init[] = "parser_prod::AReturnExpr::empty_init";
19606 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
19607 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
19608 struct {struct stack_frame_t me;} fra;
19609 val_t tmp;
19610 if (init_table[itpos111]) return;
19611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19612 fra.me.file = LOCATE_parser___parser_prod;
19613 fra.me.line = 3541;
19614 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
19615 fra.me.has_broke = 0;
19616 fra.me.REG_size = 1;
19617 fra.me.nitni_local_ref_head = NULL;
19618 fra.me.REG[0] = NIT_NULL;
19619 fra.me.REG[0] = p0;
19620 stack_frame_head = fra.me.prev;
19621 init_table[itpos111] = 1;
19622 return;
19623 }
19624 static const char LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr[] = "parser_prod::AReturnExpr::init_areturnexpr";
19625 void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
19626 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
19627 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19628 val_t REGB0;
19629 val_t REGB1;
19630 val_t tmp;
19631 if (init_table[itpos112]) return;
19632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19633 fra.me.file = LOCATE_parser___parser_prod;
19634 fra.me.line = 3543;
19635 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
19636 fra.me.has_broke = 0;
19637 fra.me.REG_size = 3;
19638 fra.me.nitni_local_ref_head = NULL;
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 fra.me.REG[2] = p2;
19645 /* parser/parser_prod.nit:3548 */
19646 CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19647 /* parser/parser_prod.nit:3549 */
19648 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
19649 /* parser/parser_prod.nit:3550 */
19650 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19651 if (UNTAG_Bool(REGB0)) {
19652 } else {
19653 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19654 if (UNTAG_Bool(REGB1)) {
19655 REGB1 = TAG_Bool(0);
19656 REGB0 = REGB1;
19657 } else {
19658 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
19659 REGB0 = REGB1;
19660 }
19661 }
19662 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19663 if (UNTAG_Bool(REGB0)) {
19664 /* parser/parser_prod.nit:3551 */
19665 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19666 if (UNTAG_Bool(REGB0)) {
19667 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3551);
19668 }
19669 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19670 }
19671 /* parser/parser_prod.nit:3553 */
19672 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19673 /* parser/parser_prod.nit:3554 */
19674 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19675 if (UNTAG_Bool(REGB0)) {
19676 } else {
19677 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19678 if (UNTAG_Bool(REGB1)) {
19679 REGB1 = TAG_Bool(0);
19680 REGB0 = REGB1;
19681 } else {
19682 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19683 REGB0 = REGB1;
19684 }
19685 }
19686 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19687 if (UNTAG_Bool(REGB0)) {
19688 /* parser/parser_prod.nit:3555 */
19689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19690 if (UNTAG_Bool(REGB0)) {
19691 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3555);
19692 }
19693 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19694 }
19695 stack_frame_head = fra.me.prev;
19696 init_table[itpos112] = 1;
19697 return;
19698 }
19699 static const char LOCATE_parser___parser_prod___AReturnExpr___replace_child[] = "parser_prod::AReturnExpr::(parser_prod::ANode::replace_child)";
19700 void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
19701 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19702 val_t REGB0;
19703 val_t REGB1;
19704 val_t tmp;
19705 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19706 fra.me.file = LOCATE_parser___parser_prod;
19707 fra.me.line = 3559;
19708 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
19709 fra.me.has_broke = 0;
19710 fra.me.REG_size = 4;
19711 fra.me.nitni_local_ref_head = NULL;
19712 fra.me.REG[0] = NIT_NULL;
19713 fra.me.REG[1] = NIT_NULL;
19714 fra.me.REG[2] = NIT_NULL;
19715 fra.me.REG[3] = NIT_NULL;
19716 fra.me.REG[0] = p0;
19717 fra.me.REG[1] = p1;
19718 fra.me.REG[2] = p2;
19719 /* parser/parser_prod.nit:3561 */
19720 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
19721 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19722 if (UNTAG_Bool(REGB0)) {
19723 } else {
19724 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19725 if (UNTAG_Bool(REGB1)) {
19726 REGB1 = TAG_Bool(0);
19727 REGB0 = REGB1;
19728 } else {
19729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19730 REGB0 = REGB1;
19731 }
19732 }
19733 if (UNTAG_Bool(REGB0)) {
19734 /* parser/parser_prod.nit:3562 */
19735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19736 if (UNTAG_Bool(REGB0)) {
19737 } else {
19738 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19739 if (UNTAG_Bool(REGB1)) {
19740 REGB1 = TAG_Bool(0);
19741 REGB0 = REGB1;
19742 } else {
19743 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19744 REGB0 = REGB1;
19745 }
19746 }
19747 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19748 if (UNTAG_Bool(REGB0)) {
19749 /* parser/parser_prod.nit:3563 */
19750 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19751 if (UNTAG_Bool(REGB0)) {
19752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3563);
19753 }
19754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19755 /* parser/parser_prod.nit:3564 */
19756 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*/;
19757 if (UNTAG_Bool(REGB0)) {
19758 } else {
19759 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3564);
19760 }
19761 /* parser/parser_prod.nit:3565 */
19762 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
19763 } else {
19764 /* parser/parser_prod.nit:3567 */
19765 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
19766 }
19767 /* parser/parser_prod.nit:3569 */
19768 goto label1;
19769 }
19770 /* parser/parser_prod.nit:3571 */
19771 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
19772 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19773 if (UNTAG_Bool(REGB0)) {
19774 } else {
19775 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19776 if (UNTAG_Bool(REGB1)) {
19777 REGB1 = TAG_Bool(0);
19778 REGB0 = REGB1;
19779 } else {
19780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19781 REGB0 = REGB1;
19782 }
19783 }
19784 if (UNTAG_Bool(REGB0)) {
19785 /* parser/parser_prod.nit:3572 */
19786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19787 if (UNTAG_Bool(REGB0)) {
19788 } else {
19789 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19790 if (UNTAG_Bool(REGB1)) {
19791 REGB1 = TAG_Bool(0);
19792 REGB0 = REGB1;
19793 } else {
19794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19795 REGB0 = REGB1;
19796 }
19797 }
19798 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19799 if (UNTAG_Bool(REGB0)) {
19800 /* parser/parser_prod.nit:3573 */
19801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19802 if (UNTAG_Bool(REGB0)) {
19803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3573);
19804 }
19805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19806 /* parser/parser_prod.nit:3574 */
19807 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19808 if (UNTAG_Bool(REGB0)) {
19809 } else {
19810 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3574);
19811 }
19812 /* parser/parser_prod.nit:3575 */
19813 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19814 } else {
19815 /* parser/parser_prod.nit:3577 */
19816 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19817 }
19818 /* parser/parser_prod.nit:3579 */
19819 goto label1;
19820 }
19821 label1: while(0);
19822 stack_frame_head = fra.me.prev;
19823 return;
19824 }
19825 static const char LOCATE_parser___parser_prod___AReturnExpr___visit_all[] = "parser_prod::AReturnExpr::(parser_prod::ANode::visit_all)";
19826 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
19827 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19828 val_t REGB0;
19829 val_t REGB1;
19830 val_t tmp;
19831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19832 fra.me.file = LOCATE_parser___parser_prod;
19833 fra.me.line = 3583;
19834 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
19835 fra.me.has_broke = 0;
19836 fra.me.REG_size = 4;
19837 fra.me.nitni_local_ref_head = NULL;
19838 fra.me.REG[0] = NIT_NULL;
19839 fra.me.REG[1] = NIT_NULL;
19840 fra.me.REG[2] = NIT_NULL;
19841 fra.me.REG[3] = NIT_NULL;
19842 fra.me.REG[0] = p0;
19843 fra.me.REG[1] = p1;
19844 /* parser/parser_prod.nit:3583 */
19845 fra.me.REG[2] = fra.me.REG[0];
19846 /* parser/parser_prod.nit:3585 */
19847 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
19848 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19849 if (UNTAG_Bool(REGB0)) {
19850 } else {
19851 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19852 if (UNTAG_Bool(REGB1)) {
19853 REGB1 = TAG_Bool(0);
19854 REGB0 = REGB1;
19855 } else {
19856 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19857 REGB0 = REGB1;
19858 }
19859 }
19860 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19861 if (UNTAG_Bool(REGB0)) {
19862 /* parser/parser_prod.nit:3586 */
19863 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
19864 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*/;
19865 if (UNTAG_Bool(REGB0)) {
19866 } else {
19867 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3586);
19868 }
19869 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19870 }
19871 /* parser/parser_prod.nit:3588 */
19872 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
19873 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19874 if (UNTAG_Bool(REGB0)) {
19875 } else {
19876 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19877 if (UNTAG_Bool(REGB1)) {
19878 REGB1 = TAG_Bool(0);
19879 REGB0 = REGB1;
19880 } else {
19881 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19882 REGB0 = REGB1;
19883 }
19884 }
19885 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19886 if (UNTAG_Bool(REGB0)) {
19887 /* parser/parser_prod.nit:3589 */
19888 fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
19889 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19890 if (UNTAG_Bool(REGB0)) {
19891 } else {
19892 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3589);
19893 }
19894 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19895 }
19896 stack_frame_head = fra.me.prev;
19897 return;
19898 }
19899 static const char LOCATE_parser___parser_prod___ABreakExpr___empty_init[] = "parser_prod::ABreakExpr::empty_init";
19900 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
19901 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
19902 struct {struct stack_frame_t me;} fra;
19903 val_t tmp;
19904 if (init_table[itpos113]) return;
19905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19906 fra.me.file = LOCATE_parser___parser_prod;
19907 fra.me.line = 3594;
19908 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
19909 fra.me.has_broke = 0;
19910 fra.me.REG_size = 1;
19911 fra.me.nitni_local_ref_head = NULL;
19912 fra.me.REG[0] = NIT_NULL;
19913 fra.me.REG[0] = p0;
19914 stack_frame_head = fra.me.prev;
19915 init_table[itpos113] = 1;
19916 return;
19917 }
19918 static const char LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr[] = "parser_prod::ABreakExpr::init_abreakexpr";
19919 void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19920 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
19921 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
19922 val_t REGB0;
19923 val_t REGB1;
19924 val_t tmp;
19925 if (init_table[itpos114]) return;
19926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19927 fra.me.file = LOCATE_parser___parser_prod;
19928 fra.me.line = 3596;
19929 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
19930 fra.me.has_broke = 0;
19931 fra.me.REG_size = 5;
19932 fra.me.nitni_local_ref_head = NULL;
19933 fra.me.REG[0] = NIT_NULL;
19934 fra.me.REG[1] = NIT_NULL;
19935 fra.me.REG[2] = NIT_NULL;
19936 fra.me.REG[3] = NIT_NULL;
19937 fra.me.REG[4] = NIT_NULL;
19938 fra.me.REG[0] = p0;
19939 fra.me.REG[1] = p1;
19940 fra.me.REG[2] = p2;
19941 fra.me.REG[3] = p3;
19942 /* parser/parser_prod.nit:3596 */
19943 fra.me.REG[4] = fra.me.REG[0];
19944 /* parser/parser_prod.nit:3602 */
19945 CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
19946 /* parser/parser_prod.nit:3603 */
19947 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19948 if (UNTAG_Bool(REGB0)) {
19949 } else {
19950 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3603);
19951 }
19952 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
19953 /* parser/parser_prod.nit:3604 */
19954 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19955 if (UNTAG_Bool(REGB0)) {
19956 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3604);
19957 }
19958 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
19959 /* parser/parser_prod.nit:3605 */
19960 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
19961 /* parser/parser_prod.nit:3606 */
19962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19963 if (UNTAG_Bool(REGB0)) {
19964 } else {
19965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19966 if (UNTAG_Bool(REGB1)) {
19967 REGB1 = TAG_Bool(0);
19968 REGB0 = REGB1;
19969 } else {
19970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19971 REGB0 = REGB1;
19972 }
19973 }
19974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19975 if (UNTAG_Bool(REGB0)) {
19976 /* parser/parser_prod.nit:3607 */
19977 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19978 if (UNTAG_Bool(REGB0)) {
19979 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3607);
19980 }
19981 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
19982 }
19983 /* parser/parser_prod.nit:3609 */
19984 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
19985 /* parser/parser_prod.nit:3610 */
19986 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19987 if (UNTAG_Bool(REGB0)) {
19988 } else {
19989 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19990 if (UNTAG_Bool(REGB1)) {
19991 REGB1 = TAG_Bool(0);
19992 REGB0 = REGB1;
19993 } else {
19994 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19995 REGB0 = REGB1;
19996 }
19997 }
19998 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19999 if (UNTAG_Bool(REGB0)) {
20000 /* parser/parser_prod.nit:3611 */
20001 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20002 if (UNTAG_Bool(REGB0)) {
20003 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3611);
20004 }
20005 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
20006 }
20007 stack_frame_head = fra.me.prev;
20008 init_table[itpos114] = 1;
20009 return;
20010 }
20011 static const char LOCATE_parser___parser_prod___ABreakExpr___replace_child[] = "parser_prod::ABreakExpr::(parser_prod::ANode::replace_child)";
20012 void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
20013 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20014 val_t REGB0;
20015 val_t REGB1;
20016 val_t tmp;
20017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20018 fra.me.file = LOCATE_parser___parser_prod;
20019 fra.me.line = 3615;
20020 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
20021 fra.me.has_broke = 0;
20022 fra.me.REG_size = 4;
20023 fra.me.nitni_local_ref_head = NULL;
20024 fra.me.REG[0] = NIT_NULL;
20025 fra.me.REG[1] = NIT_NULL;
20026 fra.me.REG[2] = NIT_NULL;
20027 fra.me.REG[3] = NIT_NULL;
20028 fra.me.REG[0] = p0;
20029 fra.me.REG[1] = p1;
20030 fra.me.REG[2] = p2;
20031 /* parser/parser_prod.nit:3617 */
20032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
20033 if (UNTAG_Bool(REGB0)) {
20034 } else {
20035 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3617);
20036 }
20037 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
20038 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20039 if (UNTAG_Bool(REGB0)) {
20040 } else {
20041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20042 REGB0 = REGB1;
20043 }
20044 if (UNTAG_Bool(REGB0)) {
20045 /* parser/parser_prod.nit:3618 */
20046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20047 if (UNTAG_Bool(REGB0)) {
20048 } else {
20049 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20050 if (UNTAG_Bool(REGB1)) {
20051 REGB1 = TAG_Bool(0);
20052 REGB0 = REGB1;
20053 } else {
20054 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20055 REGB0 = REGB1;
20056 }
20057 }
20058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20059 if (UNTAG_Bool(REGB0)) {
20060 /* parser/parser_prod.nit:3619 */
20061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20062 if (UNTAG_Bool(REGB0)) {
20063 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3619);
20064 }
20065 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20066 /* parser/parser_prod.nit:3620 */
20067 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*/;
20068 if (UNTAG_Bool(REGB0)) {
20069 } else {
20070 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3620);
20071 }
20072 /* parser/parser_prod.nit:3621 */
20073 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
20074 } else {
20075 /* parser/parser_prod.nit:3623 */
20076 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3623);
20077 }
20078 /* parser/parser_prod.nit:3625 */
20079 goto label1;
20080 }
20081 /* parser/parser_prod.nit:3627 */
20082 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20083 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20084 if (UNTAG_Bool(REGB0)) {
20085 } else {
20086 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20087 if (UNTAG_Bool(REGB1)) {
20088 REGB1 = TAG_Bool(0);
20089 REGB0 = REGB1;
20090 } else {
20091 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20092 REGB0 = REGB1;
20093 }
20094 }
20095 if (UNTAG_Bool(REGB0)) {
20096 /* parser/parser_prod.nit:3628 */
20097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20098 if (UNTAG_Bool(REGB0)) {
20099 } else {
20100 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20101 if (UNTAG_Bool(REGB1)) {
20102 REGB1 = TAG_Bool(0);
20103 REGB0 = REGB1;
20104 } else {
20105 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20106 REGB0 = REGB1;
20107 }
20108 }
20109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20110 if (UNTAG_Bool(REGB0)) {
20111 /* parser/parser_prod.nit:3629 */
20112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20113 if (UNTAG_Bool(REGB0)) {
20114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3629);
20115 }
20116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20117 /* parser/parser_prod.nit:3630 */
20118 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*/;
20119 if (UNTAG_Bool(REGB0)) {
20120 } else {
20121 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3630);
20122 }
20123 /* parser/parser_prod.nit:3631 */
20124 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20125 } else {
20126 /* parser/parser_prod.nit:3633 */
20127 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20128 }
20129 /* parser/parser_prod.nit:3635 */
20130 goto label1;
20131 }
20132 /* parser/parser_prod.nit:3637 */
20133 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
20134 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20135 if (UNTAG_Bool(REGB0)) {
20136 } else {
20137 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20138 if (UNTAG_Bool(REGB1)) {
20139 REGB1 = TAG_Bool(0);
20140 REGB0 = REGB1;
20141 } else {
20142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20143 REGB0 = REGB1;
20144 }
20145 }
20146 if (UNTAG_Bool(REGB0)) {
20147 /* parser/parser_prod.nit:3638 */
20148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20149 if (UNTAG_Bool(REGB0)) {
20150 } else {
20151 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20152 if (UNTAG_Bool(REGB1)) {
20153 REGB1 = TAG_Bool(0);
20154 REGB0 = REGB1;
20155 } else {
20156 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20157 REGB0 = REGB1;
20158 }
20159 }
20160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20161 if (UNTAG_Bool(REGB0)) {
20162 /* parser/parser_prod.nit:3639 */
20163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20164 if (UNTAG_Bool(REGB0)) {
20165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3639);
20166 }
20167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20168 /* parser/parser_prod.nit:3640 */
20169 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20170 if (UNTAG_Bool(REGB0)) {
20171 } else {
20172 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3640);
20173 }
20174 /* parser/parser_prod.nit:3641 */
20175 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20176 } else {
20177 /* parser/parser_prod.nit:3643 */
20178 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
20179 }
20180 /* parser/parser_prod.nit:3645 */
20181 goto label1;
20182 }
20183 label1: while(0);
20184 stack_frame_head = fra.me.prev;
20185 return;
20186 }
20187 static const char LOCATE_parser___parser_prod___ABreakExpr___visit_all[] = "parser_prod::ABreakExpr::(parser_prod::ANode::visit_all)";
20188 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
20189 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20190 val_t REGB0;
20191 val_t REGB1;
20192 val_t tmp;
20193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20194 fra.me.file = LOCATE_parser___parser_prod;
20195 fra.me.line = 3649;
20196 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
20197 fra.me.has_broke = 0;
20198 fra.me.REG_size = 4;
20199 fra.me.nitni_local_ref_head = NULL;
20200 fra.me.REG[0] = NIT_NULL;
20201 fra.me.REG[1] = NIT_NULL;
20202 fra.me.REG[2] = NIT_NULL;
20203 fra.me.REG[3] = NIT_NULL;
20204 fra.me.REG[0] = p0;
20205 fra.me.REG[1] = p1;
20206 /* parser/parser_prod.nit:3649 */
20207 fra.me.REG[2] = fra.me.REG[0];
20208 /* parser/parser_prod.nit:3651 */
20209 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
20210 if (UNTAG_Bool(REGB0)) {
20211 } else {
20212 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3651);
20213 }
20214 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
20215 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20216 /* parser/parser_prod.nit:3652 */
20217 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20218 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20219 if (UNTAG_Bool(REGB0)) {
20220 } else {
20221 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20222 if (UNTAG_Bool(REGB1)) {
20223 REGB1 = TAG_Bool(0);
20224 REGB0 = REGB1;
20225 } else {
20226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20227 REGB0 = REGB1;
20228 }
20229 }
20230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20231 if (UNTAG_Bool(REGB0)) {
20232 /* parser/parser_prod.nit:3653 */
20233 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20234 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*/;
20235 if (UNTAG_Bool(REGB0)) {
20236 } else {
20237 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3653);
20238 }
20239 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20240 }
20241 /* parser/parser_prod.nit:3655 */
20242 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
20243 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20244 if (UNTAG_Bool(REGB0)) {
20245 } else {
20246 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20247 if (UNTAG_Bool(REGB1)) {
20248 REGB1 = TAG_Bool(0);
20249 REGB0 = REGB1;
20250 } else {
20251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20252 REGB0 = REGB1;
20253 }
20254 }
20255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20256 if (UNTAG_Bool(REGB0)) {
20257 /* parser/parser_prod.nit:3656 */
20258 fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
20259 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20260 if (UNTAG_Bool(REGB0)) {
20261 } else {
20262 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3656);
20263 }
20264 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20265 }
20266 stack_frame_head = fra.me.prev;
20267 return;
20268 }
20269 static const char LOCATE_parser___parser_prod___AAbortExpr___empty_init[] = "parser_prod::AAbortExpr::empty_init";
20270 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
20271 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
20272 struct {struct stack_frame_t me;} fra;
20273 val_t tmp;
20274 if (init_table[itpos115]) return;
20275 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20276 fra.me.file = LOCATE_parser___parser_prod;
20277 fra.me.line = 3661;
20278 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
20279 fra.me.has_broke = 0;
20280 fra.me.REG_size = 1;
20281 fra.me.nitni_local_ref_head = NULL;
20282 fra.me.REG[0] = NIT_NULL;
20283 fra.me.REG[0] = p0;
20284 stack_frame_head = fra.me.prev;
20285 init_table[itpos115] = 1;
20286 return;
20287 }
20288 static const char LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr[] = "parser_prod::AAbortExpr::init_aabortexpr";
20289 void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
20290 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
20291 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20292 val_t REGB0;
20293 val_t tmp;
20294 if (init_table[itpos116]) return;
20295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20296 fra.me.file = LOCATE_parser___parser_prod;
20297 fra.me.line = 3663;
20298 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
20299 fra.me.has_broke = 0;
20300 fra.me.REG_size = 3;
20301 fra.me.nitni_local_ref_head = NULL;
20302 fra.me.REG[0] = NIT_NULL;
20303 fra.me.REG[1] = NIT_NULL;
20304 fra.me.REG[2] = NIT_NULL;
20305 fra.me.REG[0] = p0;
20306 fra.me.REG[1] = p1;
20307 /* parser/parser_prod.nit:3663 */
20308 fra.me.REG[2] = fra.me.REG[0];
20309 /* parser/parser_prod.nit:3667 */
20310 CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
20311 /* parser/parser_prod.nit:3668 */
20312 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20313 if (UNTAG_Bool(REGB0)) {
20314 } else {
20315 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3668);
20316 }
20317 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
20318 /* parser/parser_prod.nit:3669 */
20319 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20320 if (UNTAG_Bool(REGB0)) {
20321 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3669);
20322 }
20323 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20324 stack_frame_head = fra.me.prev;
20325 init_table[itpos116] = 1;
20326 return;
20327 }
20328 static const char LOCATE_parser___parser_prod___AAbortExpr___replace_child[] = "parser_prod::AAbortExpr::(parser_prod::ANode::replace_child)";
20329 void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
20330 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20331 val_t REGB0;
20332 val_t REGB1;
20333 val_t tmp;
20334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20335 fra.me.file = LOCATE_parser___parser_prod;
20336 fra.me.line = 3672;
20337 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
20338 fra.me.has_broke = 0;
20339 fra.me.REG_size = 4;
20340 fra.me.nitni_local_ref_head = NULL;
20341 fra.me.REG[0] = NIT_NULL;
20342 fra.me.REG[1] = NIT_NULL;
20343 fra.me.REG[2] = NIT_NULL;
20344 fra.me.REG[3] = NIT_NULL;
20345 fra.me.REG[0] = p0;
20346 fra.me.REG[1] = p1;
20347 fra.me.REG[2] = p2;
20348 /* parser/parser_prod.nit:3674 */
20349 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
20350 if (UNTAG_Bool(REGB0)) {
20351 } else {
20352 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3674);
20353 }
20354 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
20355 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20356 if (UNTAG_Bool(REGB0)) {
20357 } else {
20358 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20359 REGB0 = REGB1;
20360 }
20361 if (UNTAG_Bool(REGB0)) {
20362 /* parser/parser_prod.nit:3675 */
20363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20364 if (UNTAG_Bool(REGB0)) {
20365 } else {
20366 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20367 if (UNTAG_Bool(REGB1)) {
20368 REGB1 = TAG_Bool(0);
20369 REGB0 = REGB1;
20370 } else {
20371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20372 REGB0 = REGB1;
20373 }
20374 }
20375 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20376 if (UNTAG_Bool(REGB0)) {
20377 /* parser/parser_prod.nit:3676 */
20378 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20379 if (UNTAG_Bool(REGB0)) {
20380 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3676);
20381 }
20382 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20383 /* parser/parser_prod.nit:3677 */
20384 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*/;
20385 if (UNTAG_Bool(REGB0)) {
20386 } else {
20387 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3677);
20388 }
20389 /* parser/parser_prod.nit:3678 */
20390 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
20391 } else {
20392 /* parser/parser_prod.nit:3680 */
20393 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3680);
20394 }
20395 /* parser/parser_prod.nit:3682 */
20396 goto label1;
20397 }
20398 label1: while(0);
20399 stack_frame_head = fra.me.prev;
20400 return;
20401 }
20402 static const char LOCATE_parser___parser_prod___AAbortExpr___visit_all[] = "parser_prod::AAbortExpr::(parser_prod::ANode::visit_all)";
20403 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
20404 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20405 val_t REGB0;
20406 val_t tmp;
20407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20408 fra.me.file = LOCATE_parser___parser_prod;
20409 fra.me.line = 3686;
20410 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
20411 fra.me.has_broke = 0;
20412 fra.me.REG_size = 2;
20413 fra.me.nitni_local_ref_head = NULL;
20414 fra.me.REG[0] = NIT_NULL;
20415 fra.me.REG[1] = NIT_NULL;
20416 fra.me.REG[0] = p0;
20417 fra.me.REG[1] = p1;
20418 /* parser/parser_prod.nit:3688 */
20419 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
20420 if (UNTAG_Bool(REGB0)) {
20421 } else {
20422 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3688);
20423 }
20424 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
20425 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20426 stack_frame_head = fra.me.prev;
20427 return;
20428 }
20429 static const char LOCATE_parser___parser_prod___AContinueExpr___empty_init[] = "parser_prod::AContinueExpr::empty_init";
20430 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
20431 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
20432 struct {struct stack_frame_t me;} fra;
20433 val_t tmp;
20434 if (init_table[itpos117]) return;
20435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20436 fra.me.file = LOCATE_parser___parser_prod;
20437 fra.me.line = 3692;
20438 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
20439 fra.me.has_broke = 0;
20440 fra.me.REG_size = 1;
20441 fra.me.nitni_local_ref_head = NULL;
20442 fra.me.REG[0] = NIT_NULL;
20443 fra.me.REG[0] = p0;
20444 stack_frame_head = fra.me.prev;
20445 init_table[itpos117] = 1;
20446 return;
20447 }
20448 static const char LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr[] = "parser_prod::AContinueExpr::init_acontinueexpr";
20449 void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
20450 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
20451 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20452 val_t REGB0;
20453 val_t REGB1;
20454 val_t tmp;
20455 if (init_table[itpos118]) return;
20456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20457 fra.me.file = LOCATE_parser___parser_prod;
20458 fra.me.line = 3694;
20459 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
20460 fra.me.has_broke = 0;
20461 fra.me.REG_size = 4;
20462 fra.me.nitni_local_ref_head = NULL;
20463 fra.me.REG[0] = NIT_NULL;
20464 fra.me.REG[1] = NIT_NULL;
20465 fra.me.REG[2] = NIT_NULL;
20466 fra.me.REG[3] = NIT_NULL;
20467 fra.me.REG[0] = p0;
20468 fra.me.REG[1] = p1;
20469 fra.me.REG[2] = p2;
20470 fra.me.REG[3] = p3;
20471 /* parser/parser_prod.nit:3700 */
20472 CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20473 /* parser/parser_prod.nit:3701 */
20474 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
20475 /* parser/parser_prod.nit:3702 */
20476 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20477 if (UNTAG_Bool(REGB0)) {
20478 } else {
20479 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20480 if (UNTAG_Bool(REGB1)) {
20481 REGB1 = TAG_Bool(0);
20482 REGB0 = REGB1;
20483 } else {
20484 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
20485 REGB0 = REGB1;
20486 }
20487 }
20488 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20489 if (UNTAG_Bool(REGB0)) {
20490 /* parser/parser_prod.nit:3703 */
20491 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20492 if (UNTAG_Bool(REGB0)) {
20493 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3703);
20494 }
20495 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20496 }
20497 /* parser/parser_prod.nit:3705 */
20498 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20499 /* parser/parser_prod.nit:3706 */
20500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20501 if (UNTAG_Bool(REGB0)) {
20502 } else {
20503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20504 if (UNTAG_Bool(REGB1)) {
20505 REGB1 = TAG_Bool(0);
20506 REGB0 = REGB1;
20507 } else {
20508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20509 REGB0 = REGB1;
20510 }
20511 }
20512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20513 if (UNTAG_Bool(REGB0)) {
20514 /* parser/parser_prod.nit:3707 */
20515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20516 if (UNTAG_Bool(REGB0)) {
20517 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3707);
20518 }
20519 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20520 }
20521 /* parser/parser_prod.nit:3709 */
20522 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
20523 /* parser/parser_prod.nit:3710 */
20524 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20525 if (UNTAG_Bool(REGB0)) {
20526 } else {
20527 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20528 if (UNTAG_Bool(REGB1)) {
20529 REGB1 = TAG_Bool(0);
20530 REGB0 = REGB1;
20531 } else {
20532 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20533 REGB0 = REGB1;
20534 }
20535 }
20536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20537 if (UNTAG_Bool(REGB0)) {
20538 /* parser/parser_prod.nit:3711 */
20539 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20540 if (UNTAG_Bool(REGB0)) {
20541 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3711);
20542 }
20543 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
20544 }
20545 stack_frame_head = fra.me.prev;
20546 init_table[itpos118] = 1;
20547 return;
20548 }
20549 static const char LOCATE_parser___parser_prod___AContinueExpr___replace_child[] = "parser_prod::AContinueExpr::(parser_prod::ANode::replace_child)";
20550 void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
20551 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20552 val_t REGB0;
20553 val_t REGB1;
20554 val_t tmp;
20555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20556 fra.me.file = LOCATE_parser___parser_prod;
20557 fra.me.line = 3715;
20558 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
20559 fra.me.has_broke = 0;
20560 fra.me.REG_size = 4;
20561 fra.me.nitni_local_ref_head = NULL;
20562 fra.me.REG[0] = NIT_NULL;
20563 fra.me.REG[1] = NIT_NULL;
20564 fra.me.REG[2] = NIT_NULL;
20565 fra.me.REG[3] = NIT_NULL;
20566 fra.me.REG[0] = p0;
20567 fra.me.REG[1] = p1;
20568 fra.me.REG[2] = p2;
20569 /* parser/parser_prod.nit:3717 */
20570 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
20571 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20572 if (UNTAG_Bool(REGB0)) {
20573 } else {
20574 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20575 if (UNTAG_Bool(REGB1)) {
20576 REGB1 = TAG_Bool(0);
20577 REGB0 = REGB1;
20578 } else {
20579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20580 REGB0 = REGB1;
20581 }
20582 }
20583 if (UNTAG_Bool(REGB0)) {
20584 /* parser/parser_prod.nit:3718 */
20585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20586 if (UNTAG_Bool(REGB0)) {
20587 } else {
20588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20589 if (UNTAG_Bool(REGB1)) {
20590 REGB1 = TAG_Bool(0);
20591 REGB0 = REGB1;
20592 } else {
20593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20594 REGB0 = REGB1;
20595 }
20596 }
20597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20598 if (UNTAG_Bool(REGB0)) {
20599 /* parser/parser_prod.nit:3719 */
20600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20601 if (UNTAG_Bool(REGB0)) {
20602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3719);
20603 }
20604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20605 /* parser/parser_prod.nit:3720 */
20606 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*/;
20607 if (UNTAG_Bool(REGB0)) {
20608 } else {
20609 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3720);
20610 }
20611 /* parser/parser_prod.nit:3721 */
20612 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
20613 } else {
20614 /* parser/parser_prod.nit:3723 */
20615 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
20616 }
20617 /* parser/parser_prod.nit:3725 */
20618 goto label1;
20619 }
20620 /* parser/parser_prod.nit:3727 */
20621 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20622 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20623 if (UNTAG_Bool(REGB0)) {
20624 } else {
20625 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20626 if (UNTAG_Bool(REGB1)) {
20627 REGB1 = TAG_Bool(0);
20628 REGB0 = REGB1;
20629 } else {
20630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20631 REGB0 = REGB1;
20632 }
20633 }
20634 if (UNTAG_Bool(REGB0)) {
20635 /* parser/parser_prod.nit:3728 */
20636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20637 if (UNTAG_Bool(REGB0)) {
20638 } else {
20639 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20640 if (UNTAG_Bool(REGB1)) {
20641 REGB1 = TAG_Bool(0);
20642 REGB0 = REGB1;
20643 } else {
20644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20645 REGB0 = REGB1;
20646 }
20647 }
20648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20649 if (UNTAG_Bool(REGB0)) {
20650 /* parser/parser_prod.nit:3729 */
20651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20652 if (UNTAG_Bool(REGB0)) {
20653 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3729);
20654 }
20655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20656 /* parser/parser_prod.nit:3730 */
20657 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*/;
20658 if (UNTAG_Bool(REGB0)) {
20659 } else {
20660 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3730);
20661 }
20662 /* parser/parser_prod.nit:3731 */
20663 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20664 } else {
20665 /* parser/parser_prod.nit:3733 */
20666 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20667 }
20668 /* parser/parser_prod.nit:3735 */
20669 goto label1;
20670 }
20671 /* parser/parser_prod.nit:3737 */
20672 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
20673 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20674 if (UNTAG_Bool(REGB0)) {
20675 } else {
20676 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20677 if (UNTAG_Bool(REGB1)) {
20678 REGB1 = TAG_Bool(0);
20679 REGB0 = REGB1;
20680 } else {
20681 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20682 REGB0 = REGB1;
20683 }
20684 }
20685 if (UNTAG_Bool(REGB0)) {
20686 /* parser/parser_prod.nit:3738 */
20687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20688 if (UNTAG_Bool(REGB0)) {
20689 } else {
20690 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20691 if (UNTAG_Bool(REGB1)) {
20692 REGB1 = TAG_Bool(0);
20693 REGB0 = REGB1;
20694 } else {
20695 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20696 REGB0 = REGB1;
20697 }
20698 }
20699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20700 if (UNTAG_Bool(REGB0)) {
20701 /* parser/parser_prod.nit:3739 */
20702 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20703 if (UNTAG_Bool(REGB0)) {
20704 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3739);
20705 }
20706 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20707 /* parser/parser_prod.nit:3740 */
20708 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20709 if (UNTAG_Bool(REGB0)) {
20710 } else {
20711 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3740);
20712 }
20713 /* parser/parser_prod.nit:3741 */
20714 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20715 } else {
20716 /* parser/parser_prod.nit:3743 */
20717 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
20718 }
20719 /* parser/parser_prod.nit:3745 */
20720 goto label1;
20721 }
20722 label1: while(0);
20723 stack_frame_head = fra.me.prev;
20724 return;
20725 }
20726 static const char LOCATE_parser___parser_prod___AContinueExpr___visit_all[] = "parser_prod::AContinueExpr::(parser_prod::ANode::visit_all)";
20727 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
20728 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20729 val_t REGB0;
20730 val_t REGB1;
20731 val_t tmp;
20732 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20733 fra.me.file = LOCATE_parser___parser_prod;
20734 fra.me.line = 3749;
20735 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
20736 fra.me.has_broke = 0;
20737 fra.me.REG_size = 4;
20738 fra.me.nitni_local_ref_head = NULL;
20739 fra.me.REG[0] = NIT_NULL;
20740 fra.me.REG[1] = NIT_NULL;
20741 fra.me.REG[2] = NIT_NULL;
20742 fra.me.REG[3] = NIT_NULL;
20743 fra.me.REG[0] = p0;
20744 fra.me.REG[1] = p1;
20745 /* parser/parser_prod.nit:3749 */
20746 fra.me.REG[2] = fra.me.REG[0];
20747 /* parser/parser_prod.nit:3751 */
20748 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
20749 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20750 if (UNTAG_Bool(REGB0)) {
20751 } else {
20752 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20753 if (UNTAG_Bool(REGB1)) {
20754 REGB1 = TAG_Bool(0);
20755 REGB0 = REGB1;
20756 } else {
20757 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20758 REGB0 = REGB1;
20759 }
20760 }
20761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20762 if (UNTAG_Bool(REGB0)) {
20763 /* parser/parser_prod.nit:3752 */
20764 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
20765 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*/;
20766 if (UNTAG_Bool(REGB0)) {
20767 } else {
20768 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3752);
20769 }
20770 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20771 }
20772 /* parser/parser_prod.nit:3754 */
20773 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20774 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20775 if (UNTAG_Bool(REGB0)) {
20776 } else {
20777 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20778 if (UNTAG_Bool(REGB1)) {
20779 REGB1 = TAG_Bool(0);
20780 REGB0 = REGB1;
20781 } else {
20782 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20783 REGB0 = REGB1;
20784 }
20785 }
20786 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20787 if (UNTAG_Bool(REGB0)) {
20788 /* parser/parser_prod.nit:3755 */
20789 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20790 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*/;
20791 if (UNTAG_Bool(REGB0)) {
20792 } else {
20793 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3755);
20794 }
20795 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20796 }
20797 /* parser/parser_prod.nit:3757 */
20798 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
20799 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20800 if (UNTAG_Bool(REGB0)) {
20801 } else {
20802 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20803 if (UNTAG_Bool(REGB1)) {
20804 REGB1 = TAG_Bool(0);
20805 REGB0 = REGB1;
20806 } else {
20807 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20808 REGB0 = REGB1;
20809 }
20810 }
20811 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20812 if (UNTAG_Bool(REGB0)) {
20813 /* parser/parser_prod.nit:3758 */
20814 fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
20815 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20816 if (UNTAG_Bool(REGB0)) {
20817 } else {
20818 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3758);
20819 }
20820 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20821 }
20822 stack_frame_head = fra.me.prev;
20823 return;
20824 }
20825 static const char LOCATE_parser___parser_prod___ADoExpr___empty_init[] = "parser_prod::ADoExpr::empty_init";
20826 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
20827 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
20828 struct {struct stack_frame_t me;} fra;
20829 val_t tmp;
20830 if (init_table[itpos119]) return;
20831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20832 fra.me.file = LOCATE_parser___parser_prod;
20833 fra.me.line = 3763;
20834 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
20835 fra.me.has_broke = 0;
20836 fra.me.REG_size = 1;
20837 fra.me.nitni_local_ref_head = NULL;
20838 fra.me.REG[0] = NIT_NULL;
20839 fra.me.REG[0] = p0;
20840 stack_frame_head = fra.me.prev;
20841 init_table[itpos119] = 1;
20842 return;
20843 }
20844 static const char LOCATE_parser___parser_prod___ADoExpr___init_adoexpr[] = "parser_prod::ADoExpr::init_adoexpr";
20845 void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
20846 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
20847 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20848 val_t REGB0;
20849 val_t REGB1;
20850 val_t tmp;
20851 if (init_table[itpos120]) return;
20852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20853 fra.me.file = LOCATE_parser___parser_prod;
20854 fra.me.line = 3765;
20855 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
20856 fra.me.has_broke = 0;
20857 fra.me.REG_size = 5;
20858 fra.me.nitni_local_ref_head = NULL;
20859 fra.me.REG[0] = NIT_NULL;
20860 fra.me.REG[1] = NIT_NULL;
20861 fra.me.REG[2] = NIT_NULL;
20862 fra.me.REG[3] = NIT_NULL;
20863 fra.me.REG[4] = NIT_NULL;
20864 fra.me.REG[0] = p0;
20865 fra.me.REG[1] = p1;
20866 fra.me.REG[2] = p2;
20867 fra.me.REG[3] = p3;
20868 /* parser/parser_prod.nit:3765 */
20869 fra.me.REG[4] = fra.me.REG[0];
20870 /* parser/parser_prod.nit:3771 */
20871 CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
20872 /* parser/parser_prod.nit:3772 */
20873 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20874 if (UNTAG_Bool(REGB0)) {
20875 } else {
20876 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3772);
20877 }
20878 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
20879 /* parser/parser_prod.nit:3773 */
20880 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20881 if (UNTAG_Bool(REGB0)) {
20882 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3773);
20883 }
20884 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
20885 /* parser/parser_prod.nit:3774 */
20886 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
20887 /* parser/parser_prod.nit:3775 */
20888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20889 if (UNTAG_Bool(REGB0)) {
20890 } else {
20891 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20892 if (UNTAG_Bool(REGB1)) {
20893 REGB1 = TAG_Bool(0);
20894 REGB0 = REGB1;
20895 } else {
20896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20897 REGB0 = REGB1;
20898 }
20899 }
20900 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20901 if (UNTAG_Bool(REGB0)) {
20902 /* parser/parser_prod.nit:3776 */
20903 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20904 if (UNTAG_Bool(REGB0)) {
20905 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3776);
20906 }
20907 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
20908 }
20909 /* parser/parser_prod.nit:3778 */
20910 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
20911 /* parser/parser_prod.nit:3779 */
20912 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20913 if (UNTAG_Bool(REGB0)) {
20914 } else {
20915 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20916 if (UNTAG_Bool(REGB1)) {
20917 REGB1 = TAG_Bool(0);
20918 REGB0 = REGB1;
20919 } else {
20920 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20921 REGB0 = REGB1;
20922 }
20923 }
20924 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20925 if (UNTAG_Bool(REGB0)) {
20926 /* parser/parser_prod.nit:3780 */
20927 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20928 if (UNTAG_Bool(REGB0)) {
20929 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3780);
20930 }
20931 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
20932 }
20933 stack_frame_head = fra.me.prev;
20934 init_table[itpos120] = 1;
20935 return;
20936 }
20937 static const char LOCATE_parser___parser_prod___ADoExpr___replace_child[] = "parser_prod::ADoExpr::(parser_prod::ANode::replace_child)";
20938 void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
20939 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20940 val_t REGB0;
20941 val_t REGB1;
20942 val_t tmp;
20943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20944 fra.me.file = LOCATE_parser___parser_prod;
20945 fra.me.line = 3784;
20946 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
20947 fra.me.has_broke = 0;
20948 fra.me.REG_size = 4;
20949 fra.me.nitni_local_ref_head = NULL;
20950 fra.me.REG[0] = NIT_NULL;
20951 fra.me.REG[1] = NIT_NULL;
20952 fra.me.REG[2] = NIT_NULL;
20953 fra.me.REG[3] = NIT_NULL;
20954 fra.me.REG[0] = p0;
20955 fra.me.REG[1] = p1;
20956 fra.me.REG[2] = p2;
20957 /* parser/parser_prod.nit:3786 */
20958 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20959 if (UNTAG_Bool(REGB0)) {
20960 } else {
20961 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3786);
20962 }
20963 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
20964 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20965 if (UNTAG_Bool(REGB0)) {
20966 } else {
20967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20968 REGB0 = REGB1;
20969 }
20970 if (UNTAG_Bool(REGB0)) {
20971 /* parser/parser_prod.nit:3787 */
20972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20973 if (UNTAG_Bool(REGB0)) {
20974 } else {
20975 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20976 if (UNTAG_Bool(REGB1)) {
20977 REGB1 = TAG_Bool(0);
20978 REGB0 = REGB1;
20979 } else {
20980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20981 REGB0 = REGB1;
20982 }
20983 }
20984 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20985 if (UNTAG_Bool(REGB0)) {
20986 /* parser/parser_prod.nit:3788 */
20987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20988 if (UNTAG_Bool(REGB0)) {
20989 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3788);
20990 }
20991 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20992 /* parser/parser_prod.nit:3789 */
20993 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*/;
20994 if (UNTAG_Bool(REGB0)) {
20995 } else {
20996 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3789);
20997 }
20998 /* parser/parser_prod.nit:3790 */
20999 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
21000 } else {
21001 /* parser/parser_prod.nit:3792 */
21002 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3792);
21003 }
21004 /* parser/parser_prod.nit:3794 */
21005 goto label1;
21006 }
21007 /* parser/parser_prod.nit:3796 */
21008 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
21009 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21010 if (UNTAG_Bool(REGB0)) {
21011 } else {
21012 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21013 if (UNTAG_Bool(REGB1)) {
21014 REGB1 = TAG_Bool(0);
21015 REGB0 = REGB1;
21016 } else {
21017 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21018 REGB0 = REGB1;
21019 }
21020 }
21021 if (UNTAG_Bool(REGB0)) {
21022 /* parser/parser_prod.nit:3797 */
21023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21024 if (UNTAG_Bool(REGB0)) {
21025 } else {
21026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21027 if (UNTAG_Bool(REGB1)) {
21028 REGB1 = TAG_Bool(0);
21029 REGB0 = REGB1;
21030 } else {
21031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21032 REGB0 = REGB1;
21033 }
21034 }
21035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21036 if (UNTAG_Bool(REGB0)) {
21037 /* parser/parser_prod.nit:3798 */
21038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21039 if (UNTAG_Bool(REGB0)) {
21040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3798);
21041 }
21042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21043 /* parser/parser_prod.nit:3799 */
21044 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21045 if (UNTAG_Bool(REGB0)) {
21046 } else {
21047 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3799);
21048 }
21049 /* parser/parser_prod.nit:3800 */
21050 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21051 } else {
21052 /* parser/parser_prod.nit:3802 */
21053 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21054 }
21055 /* parser/parser_prod.nit:3804 */
21056 goto label1;
21057 }
21058 /* parser/parser_prod.nit:3806 */
21059 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21060 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21061 if (UNTAG_Bool(REGB0)) {
21062 } else {
21063 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21064 if (UNTAG_Bool(REGB1)) {
21065 REGB1 = TAG_Bool(0);
21066 REGB0 = REGB1;
21067 } else {
21068 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21069 REGB0 = REGB1;
21070 }
21071 }
21072 if (UNTAG_Bool(REGB0)) {
21073 /* parser/parser_prod.nit:3807 */
21074 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21075 if (UNTAG_Bool(REGB0)) {
21076 } else {
21077 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21078 if (UNTAG_Bool(REGB1)) {
21079 REGB1 = TAG_Bool(0);
21080 REGB0 = REGB1;
21081 } else {
21082 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21083 REGB0 = REGB1;
21084 }
21085 }
21086 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21087 if (UNTAG_Bool(REGB0)) {
21088 /* parser/parser_prod.nit:3808 */
21089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21090 if (UNTAG_Bool(REGB0)) {
21091 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3808);
21092 }
21093 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21094 /* parser/parser_prod.nit:3809 */
21095 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*/;
21096 if (UNTAG_Bool(REGB0)) {
21097 } else {
21098 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3809);
21099 }
21100 /* parser/parser_prod.nit:3810 */
21101 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21102 } else {
21103 /* parser/parser_prod.nit:3812 */
21104 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21105 }
21106 /* parser/parser_prod.nit:3814 */
21107 goto label1;
21108 }
21109 label1: while(0);
21110 stack_frame_head = fra.me.prev;
21111 return;
21112 }
21113 static const char LOCATE_parser___parser_prod___ADoExpr___visit_all[] = "parser_prod::ADoExpr::(parser_prod::ANode::visit_all)";
21114 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
21115 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21116 val_t REGB0;
21117 val_t REGB1;
21118 val_t tmp;
21119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21120 fra.me.file = LOCATE_parser___parser_prod;
21121 fra.me.line = 3818;
21122 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
21123 fra.me.has_broke = 0;
21124 fra.me.REG_size = 4;
21125 fra.me.nitni_local_ref_head = NULL;
21126 fra.me.REG[0] = NIT_NULL;
21127 fra.me.REG[1] = NIT_NULL;
21128 fra.me.REG[2] = NIT_NULL;
21129 fra.me.REG[3] = NIT_NULL;
21130 fra.me.REG[0] = p0;
21131 fra.me.REG[1] = p1;
21132 /* parser/parser_prod.nit:3818 */
21133 fra.me.REG[2] = fra.me.REG[0];
21134 /* parser/parser_prod.nit:3820 */
21135 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
21136 if (UNTAG_Bool(REGB0)) {
21137 } else {
21138 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3820);
21139 }
21140 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
21141 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21142 /* parser/parser_prod.nit:3821 */
21143 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
21144 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21145 if (UNTAG_Bool(REGB0)) {
21146 } else {
21147 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21148 if (UNTAG_Bool(REGB1)) {
21149 REGB1 = TAG_Bool(0);
21150 REGB0 = REGB1;
21151 } else {
21152 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21153 REGB0 = REGB1;
21154 }
21155 }
21156 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21157 if (UNTAG_Bool(REGB0)) {
21158 /* parser/parser_prod.nit:3822 */
21159 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
21160 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*/;
21161 if (UNTAG_Bool(REGB0)) {
21162 } else {
21163 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3822);
21164 }
21165 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21166 }
21167 /* parser/parser_prod.nit:3824 */
21168 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21169 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21170 if (UNTAG_Bool(REGB0)) {
21171 } else {
21172 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21173 if (UNTAG_Bool(REGB1)) {
21174 REGB1 = TAG_Bool(0);
21175 REGB0 = REGB1;
21176 } else {
21177 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21178 REGB0 = REGB1;
21179 }
21180 }
21181 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21182 if (UNTAG_Bool(REGB0)) {
21183 /* parser/parser_prod.nit:3825 */
21184 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21185 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*/;
21186 if (UNTAG_Bool(REGB0)) {
21187 } else {
21188 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3825);
21189 }
21190 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21191 }
21192 stack_frame_head = fra.me.prev;
21193 return;
21194 }
21195 static const char LOCATE_parser___parser_prod___AIfExpr___empty_init[] = "parser_prod::AIfExpr::empty_init";
21196 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
21197 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
21198 struct {struct stack_frame_t me;} fra;
21199 val_t tmp;
21200 if (init_table[itpos121]) return;
21201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21202 fra.me.file = LOCATE_parser___parser_prod;
21203 fra.me.line = 3830;
21204 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
21205 fra.me.has_broke = 0;
21206 fra.me.REG_size = 1;
21207 fra.me.nitni_local_ref_head = NULL;
21208 fra.me.REG[0] = NIT_NULL;
21209 fra.me.REG[0] = p0;
21210 stack_frame_head = fra.me.prev;
21211 init_table[itpos121] = 1;
21212 return;
21213 }
21214 static const char LOCATE_parser___parser_prod___AIfExpr___init_aifexpr[] = "parser_prod::AIfExpr::init_aifexpr";
21215 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){
21216 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
21217 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
21218 val_t REGB0;
21219 val_t REGB1;
21220 val_t tmp;
21221 if (init_table[itpos122]) return;
21222 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21223 fra.me.file = LOCATE_parser___parser_prod;
21224 fra.me.line = 3832;
21225 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
21226 fra.me.has_broke = 0;
21227 fra.me.REG_size = 6;
21228 fra.me.nitni_local_ref_head = NULL;
21229 fra.me.REG[0] = NIT_NULL;
21230 fra.me.REG[1] = NIT_NULL;
21231 fra.me.REG[2] = NIT_NULL;
21232 fra.me.REG[3] = NIT_NULL;
21233 fra.me.REG[4] = NIT_NULL;
21234 fra.me.REG[5] = NIT_NULL;
21235 fra.me.REG[0] = p0;
21236 fra.me.REG[1] = p1;
21237 fra.me.REG[2] = p2;
21238 fra.me.REG[3] = p3;
21239 fra.me.REG[4] = p4;
21240 /* parser/parser_prod.nit:3832 */
21241 fra.me.REG[5] = fra.me.REG[0];
21242 /* parser/parser_prod.nit:3839 */
21243 CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
21244 /* parser/parser_prod.nit:3840 */
21245 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21246 if (UNTAG_Bool(REGB0)) {
21247 } else {
21248 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3840);
21249 }
21250 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
21251 /* parser/parser_prod.nit:3841 */
21252 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21253 if (UNTAG_Bool(REGB0)) {
21254 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3841);
21255 }
21256 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
21257 /* parser/parser_prod.nit:3842 */
21258 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21259 if (UNTAG_Bool(REGB0)) {
21260 } else {
21261 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3842);
21262 }
21263 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
21264 /* parser/parser_prod.nit:3843 */
21265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21266 if (UNTAG_Bool(REGB0)) {
21267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3843);
21268 }
21269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
21270 /* parser/parser_prod.nit:3844 */
21271 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
21272 /* parser/parser_prod.nit:3845 */
21273 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21274 if (UNTAG_Bool(REGB0)) {
21275 } else {
21276 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21277 if (UNTAG_Bool(REGB1)) {
21278 REGB1 = TAG_Bool(0);
21279 REGB0 = REGB1;
21280 } else {
21281 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21282 REGB0 = REGB1;
21283 }
21284 }
21285 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21286 if (UNTAG_Bool(REGB0)) {
21287 /* parser/parser_prod.nit:3846 */
21288 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21289 if (UNTAG_Bool(REGB0)) {
21290 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3846);
21291 }
21292 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
21293 }
21294 /* parser/parser_prod.nit:3848 */
21295 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
21296 /* parser/parser_prod.nit:3849 */
21297 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21298 if (UNTAG_Bool(REGB0)) {
21299 } else {
21300 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21301 if (UNTAG_Bool(REGB1)) {
21302 REGB1 = TAG_Bool(0);
21303 REGB0 = REGB1;
21304 } else {
21305 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
21306 REGB0 = REGB1;
21307 }
21308 }
21309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21310 if (UNTAG_Bool(REGB0)) {
21311 /* parser/parser_prod.nit:3850 */
21312 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21313 if (UNTAG_Bool(REGB0)) {
21314 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3850);
21315 }
21316 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
21317 }
21318 stack_frame_head = fra.me.prev;
21319 init_table[itpos122] = 1;
21320 return;
21321 }
21322 static const char LOCATE_parser___parser_prod___AIfExpr___replace_child[] = "parser_prod::AIfExpr::(parser_prod::ANode::replace_child)";
21323 void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
21324 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21325 val_t REGB0;
21326 val_t REGB1;
21327 val_t tmp;
21328 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21329 fra.me.file = LOCATE_parser___parser_prod;
21330 fra.me.line = 3854;
21331 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
21332 fra.me.has_broke = 0;
21333 fra.me.REG_size = 4;
21334 fra.me.nitni_local_ref_head = NULL;
21335 fra.me.REG[0] = NIT_NULL;
21336 fra.me.REG[1] = NIT_NULL;
21337 fra.me.REG[2] = NIT_NULL;
21338 fra.me.REG[3] = NIT_NULL;
21339 fra.me.REG[0] = p0;
21340 fra.me.REG[1] = p1;
21341 fra.me.REG[2] = p2;
21342 /* parser/parser_prod.nit:3856 */
21343 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
21344 if (UNTAG_Bool(REGB0)) {
21345 } else {
21346 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3856);
21347 }
21348 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
21349 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21350 if (UNTAG_Bool(REGB0)) {
21351 } else {
21352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21353 REGB0 = REGB1;
21354 }
21355 if (UNTAG_Bool(REGB0)) {
21356 /* parser/parser_prod.nit:3857 */
21357 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21358 if (UNTAG_Bool(REGB0)) {
21359 } else {
21360 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21361 if (UNTAG_Bool(REGB1)) {
21362 REGB1 = TAG_Bool(0);
21363 REGB0 = REGB1;
21364 } else {
21365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21366 REGB0 = REGB1;
21367 }
21368 }
21369 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21370 if (UNTAG_Bool(REGB0)) {
21371 /* parser/parser_prod.nit:3858 */
21372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21373 if (UNTAG_Bool(REGB0)) {
21374 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3858);
21375 }
21376 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21377 /* parser/parser_prod.nit:3859 */
21378 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*/;
21379 if (UNTAG_Bool(REGB0)) {
21380 } else {
21381 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3859);
21382 }
21383 /* parser/parser_prod.nit:3860 */
21384 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
21385 } else {
21386 /* parser/parser_prod.nit:3862 */
21387 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3862);
21388 }
21389 /* parser/parser_prod.nit:3864 */
21390 goto label1;
21391 }
21392 /* parser/parser_prod.nit:3866 */
21393 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21394 if (UNTAG_Bool(REGB0)) {
21395 } else {
21396 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3866);
21397 }
21398 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
21399 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21400 if (UNTAG_Bool(REGB0)) {
21401 } else {
21402 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21403 REGB0 = REGB1;
21404 }
21405 if (UNTAG_Bool(REGB0)) {
21406 /* parser/parser_prod.nit:3867 */
21407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21408 if (UNTAG_Bool(REGB0)) {
21409 } else {
21410 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21411 if (UNTAG_Bool(REGB1)) {
21412 REGB1 = TAG_Bool(0);
21413 REGB0 = REGB1;
21414 } else {
21415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21416 REGB0 = REGB1;
21417 }
21418 }
21419 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21420 if (UNTAG_Bool(REGB0)) {
21421 /* parser/parser_prod.nit:3868 */
21422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21423 if (UNTAG_Bool(REGB0)) {
21424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3868);
21425 }
21426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21427 /* parser/parser_prod.nit:3869 */
21428 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21429 if (UNTAG_Bool(REGB0)) {
21430 } else {
21431 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3869);
21432 }
21433 /* parser/parser_prod.nit:3870 */
21434 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21435 } else {
21436 /* parser/parser_prod.nit:3872 */
21437 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3872);
21438 }
21439 /* parser/parser_prod.nit:3874 */
21440 goto label1;
21441 }
21442 /* parser/parser_prod.nit:3876 */
21443 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
21444 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21445 if (UNTAG_Bool(REGB0)) {
21446 } else {
21447 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21448 if (UNTAG_Bool(REGB1)) {
21449 REGB1 = TAG_Bool(0);
21450 REGB0 = REGB1;
21451 } else {
21452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21453 REGB0 = REGB1;
21454 }
21455 }
21456 if (UNTAG_Bool(REGB0)) {
21457 /* parser/parser_prod.nit:3877 */
21458 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21459 if (UNTAG_Bool(REGB0)) {
21460 } else {
21461 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21462 if (UNTAG_Bool(REGB1)) {
21463 REGB1 = TAG_Bool(0);
21464 REGB0 = REGB1;
21465 } else {
21466 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21467 REGB0 = REGB1;
21468 }
21469 }
21470 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21471 if (UNTAG_Bool(REGB0)) {
21472 /* parser/parser_prod.nit:3878 */
21473 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21474 if (UNTAG_Bool(REGB0)) {
21475 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3878);
21476 }
21477 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21478 /* parser/parser_prod.nit:3879 */
21479 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21480 if (UNTAG_Bool(REGB0)) {
21481 } else {
21482 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3879);
21483 }
21484 /* parser/parser_prod.nit:3880 */
21485 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
21486 } else {
21487 /* parser/parser_prod.nit:3882 */
21488 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
21489 }
21490 /* parser/parser_prod.nit:3884 */
21491 goto label1;
21492 }
21493 /* parser/parser_prod.nit:3886 */
21494 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
21495 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21496 if (UNTAG_Bool(REGB0)) {
21497 } else {
21498 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21499 if (UNTAG_Bool(REGB1)) {
21500 REGB1 = TAG_Bool(0);
21501 REGB0 = REGB1;
21502 } else {
21503 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21504 REGB0 = REGB1;
21505 }
21506 }
21507 if (UNTAG_Bool(REGB0)) {
21508 /* parser/parser_prod.nit:3887 */
21509 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21510 if (UNTAG_Bool(REGB0)) {
21511 } else {
21512 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21513 if (UNTAG_Bool(REGB1)) {
21514 REGB1 = TAG_Bool(0);
21515 REGB0 = REGB1;
21516 } else {
21517 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21518 REGB0 = REGB1;
21519 }
21520 }
21521 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21522 if (UNTAG_Bool(REGB0)) {
21523 /* parser/parser_prod.nit:3888 */
21524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21525 if (UNTAG_Bool(REGB0)) {
21526 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3888);
21527 }
21528 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21529 /* parser/parser_prod.nit:3889 */
21530 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21531 if (UNTAG_Bool(REGB0)) {
21532 } else {
21533 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3889);
21534 }
21535 /* parser/parser_prod.nit:3890 */
21536 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
21537 } else {
21538 /* parser/parser_prod.nit:3892 */
21539 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
21540 }
21541 /* parser/parser_prod.nit:3894 */
21542 goto label1;
21543 }
21544 label1: while(0);
21545 stack_frame_head = fra.me.prev;
21546 return;
21547 }
21548 static const char LOCATE_parser___parser_prod___AIfExpr___visit_all[] = "parser_prod::AIfExpr::(parser_prod::ANode::visit_all)";
21549 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
21550 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21551 val_t REGB0;
21552 val_t REGB1;
21553 val_t tmp;
21554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21555 fra.me.file = LOCATE_parser___parser_prod;
21556 fra.me.line = 3898;
21557 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
21558 fra.me.has_broke = 0;
21559 fra.me.REG_size = 4;
21560 fra.me.nitni_local_ref_head = NULL;
21561 fra.me.REG[0] = NIT_NULL;
21562 fra.me.REG[1] = NIT_NULL;
21563 fra.me.REG[2] = NIT_NULL;
21564 fra.me.REG[3] = NIT_NULL;
21565 fra.me.REG[0] = p0;
21566 fra.me.REG[1] = p1;
21567 /* parser/parser_prod.nit:3898 */
21568 fra.me.REG[2] = fra.me.REG[0];
21569 /* parser/parser_prod.nit:3900 */
21570 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
21571 if (UNTAG_Bool(REGB0)) {
21572 } else {
21573 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3900);
21574 }
21575 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
21576 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21577 /* parser/parser_prod.nit:3901 */
21578 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
21579 if (UNTAG_Bool(REGB0)) {
21580 } else {
21581 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3901);
21582 }
21583 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
21584 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21585 /* parser/parser_prod.nit:3902 */
21586 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
21587 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21588 if (UNTAG_Bool(REGB0)) {
21589 } else {
21590 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21591 if (UNTAG_Bool(REGB1)) {
21592 REGB1 = TAG_Bool(0);
21593 REGB0 = REGB1;
21594 } else {
21595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21596 REGB0 = REGB1;
21597 }
21598 }
21599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21600 if (UNTAG_Bool(REGB0)) {
21601 /* parser/parser_prod.nit:3903 */
21602 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
21603 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*/;
21604 if (UNTAG_Bool(REGB0)) {
21605 } else {
21606 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3903);
21607 }
21608 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21609 }
21610 /* parser/parser_prod.nit:3905 */
21611 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
21612 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21613 if (UNTAG_Bool(REGB0)) {
21614 } else {
21615 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21616 if (UNTAG_Bool(REGB1)) {
21617 REGB1 = TAG_Bool(0);
21618 REGB0 = REGB1;
21619 } else {
21620 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21621 REGB0 = REGB1;
21622 }
21623 }
21624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21625 if (UNTAG_Bool(REGB0)) {
21626 /* parser/parser_prod.nit:3906 */
21627 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
21628 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21629 if (UNTAG_Bool(REGB0)) {
21630 } else {
21631 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3906);
21632 }
21633 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21634 }
21635 stack_frame_head = fra.me.prev;
21636 return;
21637 }
21638 static const char LOCATE_parser___parser_prod___AIfexprExpr___empty_init[] = "parser_prod::AIfexprExpr::empty_init";
21639 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
21640 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
21641 struct {struct stack_frame_t me;} fra;
21642 val_t tmp;
21643 if (init_table[itpos123]) return;
21644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21645 fra.me.file = LOCATE_parser___parser_prod;
21646 fra.me.line = 3911;
21647 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
21648 fra.me.has_broke = 0;
21649 fra.me.REG_size = 1;
21650 fra.me.nitni_local_ref_head = NULL;
21651 fra.me.REG[0] = NIT_NULL;
21652 fra.me.REG[0] = p0;
21653 stack_frame_head = fra.me.prev;
21654 init_table[itpos123] = 1;
21655 return;
21656 }
21657 static const char LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr[] = "parser_prod::AIfexprExpr::init_aifexprexpr";
21658 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){
21659 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
21660 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
21661 val_t REGB0;
21662 val_t tmp;
21663 if (init_table[itpos124]) return;
21664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21665 fra.me.file = LOCATE_parser___parser_prod;
21666 fra.me.line = 3913;
21667 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
21668 fra.me.has_broke = 0;
21669 fra.me.REG_size = 8;
21670 fra.me.nitni_local_ref_head = NULL;
21671 fra.me.REG[0] = NIT_NULL;
21672 fra.me.REG[1] = NIT_NULL;
21673 fra.me.REG[2] = NIT_NULL;
21674 fra.me.REG[3] = NIT_NULL;
21675 fra.me.REG[4] = NIT_NULL;
21676 fra.me.REG[5] = NIT_NULL;
21677 fra.me.REG[6] = NIT_NULL;
21678 fra.me.REG[7] = NIT_NULL;
21679 fra.me.REG[0] = p0;
21680 fra.me.REG[1] = p1;
21681 fra.me.REG[2] = p2;
21682 fra.me.REG[3] = p3;
21683 fra.me.REG[4] = p4;
21684 fra.me.REG[5] = p5;
21685 fra.me.REG[6] = p6;
21686 /* parser/parser_prod.nit:3913 */
21687 fra.me.REG[7] = fra.me.REG[0];
21688 /* parser/parser_prod.nit:3922 */
21689 CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
21690 /* parser/parser_prod.nit:3923 */
21691 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21692 if (UNTAG_Bool(REGB0)) {
21693 } else {
21694 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3923);
21695 }
21696 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
21697 /* parser/parser_prod.nit:3924 */
21698 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21699 if (UNTAG_Bool(REGB0)) {
21700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3924);
21701 }
21702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
21703 /* parser/parser_prod.nit:3925 */
21704 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21705 if (UNTAG_Bool(REGB0)) {
21706 } else {
21707 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3925);
21708 }
21709 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
21710 /* parser/parser_prod.nit:3926 */
21711 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21712 if (UNTAG_Bool(REGB0)) {
21713 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3926);
21714 }
21715 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
21716 /* parser/parser_prod.nit:3927 */
21717 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21718 if (UNTAG_Bool(REGB0)) {
21719 } else {
21720 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3927);
21721 }
21722 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
21723 /* parser/parser_prod.nit:3928 */
21724 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21725 if (UNTAG_Bool(REGB0)) {
21726 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3928);
21727 }
21728 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
21729 /* parser/parser_prod.nit:3929 */
21730 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
21731 if (UNTAG_Bool(REGB0)) {
21732 } else {
21733 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3929);
21734 }
21735 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
21736 /* parser/parser_prod.nit:3930 */
21737 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21738 if (UNTAG_Bool(REGB0)) {
21739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3930);
21740 }
21741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
21742 /* parser/parser_prod.nit:3931 */
21743 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
21744 if (UNTAG_Bool(REGB0)) {
21745 } else {
21746 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3931);
21747 }
21748 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
21749 /* parser/parser_prod.nit:3932 */
21750 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21751 if (UNTAG_Bool(REGB0)) {
21752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3932);
21753 }
21754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
21755 /* parser/parser_prod.nit:3933 */
21756 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
21757 if (UNTAG_Bool(REGB0)) {
21758 } else {
21759 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3933);
21760 }
21761 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
21762 /* parser/parser_prod.nit:3934 */
21763 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
21764 if (UNTAG_Bool(REGB0)) {
21765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3934);
21766 }
21767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
21768 stack_frame_head = fra.me.prev;
21769 init_table[itpos124] = 1;
21770 return;
21771 }
21772 static const char LOCATE_parser___parser_prod___AIfexprExpr___replace_child[] = "parser_prod::AIfexprExpr::(parser_prod::ANode::replace_child)";
21773 void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
21774 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21775 val_t REGB0;
21776 val_t REGB1;
21777 val_t tmp;
21778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21779 fra.me.file = LOCATE_parser___parser_prod;
21780 fra.me.line = 3937;
21781 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
21782 fra.me.has_broke = 0;
21783 fra.me.REG_size = 4;
21784 fra.me.nitni_local_ref_head = NULL;
21785 fra.me.REG[0] = NIT_NULL;
21786 fra.me.REG[1] = NIT_NULL;
21787 fra.me.REG[2] = NIT_NULL;
21788 fra.me.REG[3] = NIT_NULL;
21789 fra.me.REG[0] = p0;
21790 fra.me.REG[1] = p1;
21791 fra.me.REG[2] = p2;
21792 /* parser/parser_prod.nit:3939 */
21793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
21794 if (UNTAG_Bool(REGB0)) {
21795 } else {
21796 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3939);
21797 }
21798 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
21799 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21800 if (UNTAG_Bool(REGB0)) {
21801 } else {
21802 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21803 REGB0 = REGB1;
21804 }
21805 if (UNTAG_Bool(REGB0)) {
21806 /* parser/parser_prod.nit:3940 */
21807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21808 if (UNTAG_Bool(REGB0)) {
21809 } else {
21810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21811 if (UNTAG_Bool(REGB1)) {
21812 REGB1 = TAG_Bool(0);
21813 REGB0 = REGB1;
21814 } else {
21815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21816 REGB0 = REGB1;
21817 }
21818 }
21819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21820 if (UNTAG_Bool(REGB0)) {
21821 /* parser/parser_prod.nit:3941 */
21822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21823 if (UNTAG_Bool(REGB0)) {
21824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3941);
21825 }
21826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21827 /* parser/parser_prod.nit:3942 */
21828 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*/;
21829 if (UNTAG_Bool(REGB0)) {
21830 } else {
21831 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3942);
21832 }
21833 /* parser/parser_prod.nit:3943 */
21834 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
21835 } else {
21836 /* parser/parser_prod.nit:3945 */
21837 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3945);
21838 }
21839 /* parser/parser_prod.nit:3947 */
21840 goto label1;
21841 }
21842 /* parser/parser_prod.nit:3949 */
21843 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21844 if (UNTAG_Bool(REGB0)) {
21845 } else {
21846 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3949);
21847 }
21848 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
21849 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21850 if (UNTAG_Bool(REGB0)) {
21851 } else {
21852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21853 REGB0 = REGB1;
21854 }
21855 if (UNTAG_Bool(REGB0)) {
21856 /* parser/parser_prod.nit:3950 */
21857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21858 if (UNTAG_Bool(REGB0)) {
21859 } else {
21860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21861 if (UNTAG_Bool(REGB1)) {
21862 REGB1 = TAG_Bool(0);
21863 REGB0 = REGB1;
21864 } else {
21865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21866 REGB0 = REGB1;
21867 }
21868 }
21869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21870 if (UNTAG_Bool(REGB0)) {
21871 /* parser/parser_prod.nit:3951 */
21872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21873 if (UNTAG_Bool(REGB0)) {
21874 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3951);
21875 }
21876 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21877 /* parser/parser_prod.nit:3952 */
21878 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21879 if (UNTAG_Bool(REGB0)) {
21880 } else {
21881 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3952);
21882 }
21883 /* parser/parser_prod.nit:3953 */
21884 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21885 } else {
21886 /* parser/parser_prod.nit:3955 */
21887 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3955);
21888 }
21889 /* parser/parser_prod.nit:3957 */
21890 goto label1;
21891 }
21892 /* parser/parser_prod.nit:3959 */
21893 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
21894 if (UNTAG_Bool(REGB0)) {
21895 } else {
21896 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3959);
21897 }
21898 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
21899 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21900 if (UNTAG_Bool(REGB0)) {
21901 } else {
21902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21903 REGB0 = REGB1;
21904 }
21905 if (UNTAG_Bool(REGB0)) {
21906 /* parser/parser_prod.nit:3960 */
21907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21908 if (UNTAG_Bool(REGB0)) {
21909 } else {
21910 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21911 if (UNTAG_Bool(REGB1)) {
21912 REGB1 = TAG_Bool(0);
21913 REGB0 = REGB1;
21914 } else {
21915 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21916 REGB0 = REGB1;
21917 }
21918 }
21919 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21920 if (UNTAG_Bool(REGB0)) {
21921 /* parser/parser_prod.nit:3961 */
21922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21923 if (UNTAG_Bool(REGB0)) {
21924 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3961);
21925 }
21926 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21927 /* parser/parser_prod.nit:3962 */
21928 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*/;
21929 if (UNTAG_Bool(REGB0)) {
21930 } else {
21931 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3962);
21932 }
21933 /* parser/parser_prod.nit:3963 */
21934 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
21935 } else {
21936 /* parser/parser_prod.nit:3965 */
21937 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3965);
21938 }
21939 /* parser/parser_prod.nit:3967 */
21940 goto label1;
21941 }
21942 /* parser/parser_prod.nit:3969 */
21943 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
21944 if (UNTAG_Bool(REGB0)) {
21945 } else {
21946 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3969);
21947 }
21948 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
21949 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21950 if (UNTAG_Bool(REGB0)) {
21951 } else {
21952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21953 REGB0 = REGB1;
21954 }
21955 if (UNTAG_Bool(REGB0)) {
21956 /* parser/parser_prod.nit:3970 */
21957 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21958 if (UNTAG_Bool(REGB0)) {
21959 } else {
21960 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21961 if (UNTAG_Bool(REGB1)) {
21962 REGB1 = TAG_Bool(0);
21963 REGB0 = REGB1;
21964 } else {
21965 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21966 REGB0 = REGB1;
21967 }
21968 }
21969 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21970 if (UNTAG_Bool(REGB0)) {
21971 /* parser/parser_prod.nit:3971 */
21972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21973 if (UNTAG_Bool(REGB0)) {
21974 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3971);
21975 }
21976 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21977 /* parser/parser_prod.nit:3972 */
21978 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21979 if (UNTAG_Bool(REGB0)) {
21980 } else {
21981 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3972);
21982 }
21983 /* parser/parser_prod.nit:3973 */
21984 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
21985 } else {
21986 /* parser/parser_prod.nit:3975 */
21987 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3975);
21988 }
21989 /* parser/parser_prod.nit:3977 */
21990 goto label1;
21991 }
21992 /* parser/parser_prod.nit:3979 */
21993 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
21994 if (UNTAG_Bool(REGB0)) {
21995 } else {
21996 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3979);
21997 }
21998 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
21999 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22000 if (UNTAG_Bool(REGB0)) {
22001 } else {
22002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22003 REGB0 = REGB1;
22004 }
22005 if (UNTAG_Bool(REGB0)) {
22006 /* parser/parser_prod.nit:3980 */
22007 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22008 if (UNTAG_Bool(REGB0)) {
22009 } else {
22010 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22011 if (UNTAG_Bool(REGB1)) {
22012 REGB1 = TAG_Bool(0);
22013 REGB0 = REGB1;
22014 } else {
22015 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22016 REGB0 = REGB1;
22017 }
22018 }
22019 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22020 if (UNTAG_Bool(REGB0)) {
22021 /* parser/parser_prod.nit:3981 */
22022 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22023 if (UNTAG_Bool(REGB0)) {
22024 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3981);
22025 }
22026 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22027 /* parser/parser_prod.nit:3982 */
22028 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*/;
22029 if (UNTAG_Bool(REGB0)) {
22030 } else {
22031 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3982);
22032 }
22033 /* parser/parser_prod.nit:3983 */
22034 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
22035 } else {
22036 /* parser/parser_prod.nit:3985 */
22037 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3985);
22038 }
22039 /* parser/parser_prod.nit:3987 */
22040 goto label1;
22041 }
22042 /* parser/parser_prod.nit:3989 */
22043 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
22044 if (UNTAG_Bool(REGB0)) {
22045 } else {
22046 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3989);
22047 }
22048 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
22049 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22050 if (UNTAG_Bool(REGB0)) {
22051 } else {
22052 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22053 REGB0 = REGB1;
22054 }
22055 if (UNTAG_Bool(REGB0)) {
22056 /* parser/parser_prod.nit:3990 */
22057 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22058 if (UNTAG_Bool(REGB0)) {
22059 } else {
22060 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22061 if (UNTAG_Bool(REGB1)) {
22062 REGB1 = TAG_Bool(0);
22063 REGB0 = REGB1;
22064 } else {
22065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22066 REGB0 = REGB1;
22067 }
22068 }
22069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22070 if (UNTAG_Bool(REGB0)) {
22071 /* parser/parser_prod.nit:3991 */
22072 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22073 if (UNTAG_Bool(REGB0)) {
22074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3991);
22075 }
22076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22077 /* parser/parser_prod.nit:3992 */
22078 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22079 if (UNTAG_Bool(REGB0)) {
22080 } else {
22081 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3992);
22082 }
22083 /* parser/parser_prod.nit:3993 */
22084 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
22085 } else {
22086 /* parser/parser_prod.nit:3995 */
22087 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3995);
22088 }
22089 /* parser/parser_prod.nit:3997 */
22090 goto label1;
22091 }
22092 label1: while(0);
22093 stack_frame_head = fra.me.prev;
22094 return;
22095 }
22096 static const char LOCATE_parser___parser_prod___AIfexprExpr___visit_all[] = "parser_prod::AIfexprExpr::(parser_prod::ANode::visit_all)";
22097 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
22098 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22099 val_t REGB0;
22100 val_t tmp;
22101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22102 fra.me.file = LOCATE_parser___parser_prod;
22103 fra.me.line = 4001;
22104 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
22105 fra.me.has_broke = 0;
22106 fra.me.REG_size = 3;
22107 fra.me.nitni_local_ref_head = NULL;
22108 fra.me.REG[0] = NIT_NULL;
22109 fra.me.REG[1] = NIT_NULL;
22110 fra.me.REG[2] = NIT_NULL;
22111 fra.me.REG[0] = p0;
22112 fra.me.REG[1] = p1;
22113 /* parser/parser_prod.nit:4003 */
22114 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
22115 if (UNTAG_Bool(REGB0)) {
22116 } else {
22117 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 4003);
22118 }
22119 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
22120 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22121 /* parser/parser_prod.nit:4004 */
22122 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22123 if (UNTAG_Bool(REGB0)) {
22124 } else {
22125 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4004);
22126 }
22127 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
22128 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22129 /* parser/parser_prod.nit:4005 */
22130 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
22131 if (UNTAG_Bool(REGB0)) {
22132 } else {
22133 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 4005);
22134 }
22135 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
22136 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22137 /* parser/parser_prod.nit:4006 */
22138 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
22139 if (UNTAG_Bool(REGB0)) {
22140 } else {
22141 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 4006);
22142 }
22143 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
22144 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22145 /* parser/parser_prod.nit:4007 */
22146 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
22147 if (UNTAG_Bool(REGB0)) {
22148 } else {
22149 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 4007);
22150 }
22151 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
22152 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22153 /* parser/parser_prod.nit:4008 */
22154 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
22155 if (UNTAG_Bool(REGB0)) {
22156 } else {
22157 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 4008);
22158 }
22159 fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
22160 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22161 stack_frame_head = fra.me.prev;
22162 return;
22163 }
22164 static const char LOCATE_parser___parser_prod___AWhileExpr___empty_init[] = "parser_prod::AWhileExpr::empty_init";
22165 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
22166 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
22167 struct {struct stack_frame_t me;} fra;
22168 val_t tmp;
22169 if (init_table[itpos125]) return;
22170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22171 fra.me.file = LOCATE_parser___parser_prod;
22172 fra.me.line = 4012;
22173 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
22174 fra.me.has_broke = 0;
22175 fra.me.REG_size = 1;
22176 fra.me.nitni_local_ref_head = NULL;
22177 fra.me.REG[0] = NIT_NULL;
22178 fra.me.REG[0] = p0;
22179 stack_frame_head = fra.me.prev;
22180 init_table[itpos125] = 1;
22181 return;
22182 }
22183 static const char LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr[] = "parser_prod::AWhileExpr::init_awhileexpr";
22184 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){
22185 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
22186 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22187 val_t REGB0;
22188 val_t REGB1;
22189 val_t tmp;
22190 if (init_table[itpos126]) return;
22191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22192 fra.me.file = LOCATE_parser___parser_prod;
22193 fra.me.line = 4014;
22194 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
22195 fra.me.has_broke = 0;
22196 fra.me.REG_size = 7;
22197 fra.me.nitni_local_ref_head = NULL;
22198 fra.me.REG[0] = NIT_NULL;
22199 fra.me.REG[1] = NIT_NULL;
22200 fra.me.REG[2] = NIT_NULL;
22201 fra.me.REG[3] = NIT_NULL;
22202 fra.me.REG[4] = NIT_NULL;
22203 fra.me.REG[5] = NIT_NULL;
22204 fra.me.REG[6] = NIT_NULL;
22205 fra.me.REG[0] = p0;
22206 fra.me.REG[1] = p1;
22207 fra.me.REG[2] = p2;
22208 fra.me.REG[3] = p3;
22209 fra.me.REG[4] = p4;
22210 fra.me.REG[5] = p5;
22211 /* parser/parser_prod.nit:4014 */
22212 fra.me.REG[6] = fra.me.REG[0];
22213 /* parser/parser_prod.nit:4022 */
22214 CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
22215 /* parser/parser_prod.nit:4023 */
22216 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22217 if (UNTAG_Bool(REGB0)) {
22218 } else {
22219 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4023);
22220 }
22221 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
22222 /* parser/parser_prod.nit:4024 */
22223 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22224 if (UNTAG_Bool(REGB0)) {
22225 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4024);
22226 }
22227 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
22228 /* parser/parser_prod.nit:4025 */
22229 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22230 if (UNTAG_Bool(REGB0)) {
22231 } else {
22232 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4025);
22233 }
22234 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
22235 /* parser/parser_prod.nit:4026 */
22236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22237 if (UNTAG_Bool(REGB0)) {
22238 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4026);
22239 }
22240 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
22241 /* parser/parser_prod.nit:4027 */
22242 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
22243 if (UNTAG_Bool(REGB0)) {
22244 } else {
22245 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4027);
22246 }
22247 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
22248 /* parser/parser_prod.nit:4028 */
22249 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22250 if (UNTAG_Bool(REGB0)) {
22251 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4028);
22252 }
22253 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
22254 /* parser/parser_prod.nit:4029 */
22255 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
22256 /* parser/parser_prod.nit:4030 */
22257 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22258 if (UNTAG_Bool(REGB0)) {
22259 } else {
22260 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22261 if (UNTAG_Bool(REGB1)) {
22262 REGB1 = TAG_Bool(0);
22263 REGB0 = REGB1;
22264 } else {
22265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
22266 REGB0 = REGB1;
22267 }
22268 }
22269 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22270 if (UNTAG_Bool(REGB0)) {
22271 /* parser/parser_prod.nit:4031 */
22272 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22273 if (UNTAG_Bool(REGB0)) {
22274 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4031);
22275 }
22276 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
22277 }
22278 /* parser/parser_prod.nit:4033 */
22279 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
22280 /* parser/parser_prod.nit:4034 */
22281 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22282 if (UNTAG_Bool(REGB0)) {
22283 } else {
22284 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22285 if (UNTAG_Bool(REGB1)) {
22286 REGB1 = TAG_Bool(0);
22287 REGB0 = REGB1;
22288 } else {
22289 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
22290 REGB0 = REGB1;
22291 }
22292 }
22293 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22294 if (UNTAG_Bool(REGB0)) {
22295 /* parser/parser_prod.nit:4035 */
22296 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22297 if (UNTAG_Bool(REGB0)) {
22298 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4035);
22299 }
22300 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
22301 }
22302 stack_frame_head = fra.me.prev;
22303 init_table[itpos126] = 1;
22304 return;
22305 }
22306 static const char LOCATE_parser___parser_prod___AWhileExpr___replace_child[] = "parser_prod::AWhileExpr::(parser_prod::ANode::replace_child)";
22307 void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
22308 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22309 val_t REGB0;
22310 val_t REGB1;
22311 val_t tmp;
22312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22313 fra.me.file = LOCATE_parser___parser_prod;
22314 fra.me.line = 4039;
22315 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
22316 fra.me.has_broke = 0;
22317 fra.me.REG_size = 4;
22318 fra.me.nitni_local_ref_head = NULL;
22319 fra.me.REG[0] = NIT_NULL;
22320 fra.me.REG[1] = NIT_NULL;
22321 fra.me.REG[2] = NIT_NULL;
22322 fra.me.REG[3] = NIT_NULL;
22323 fra.me.REG[0] = p0;
22324 fra.me.REG[1] = p1;
22325 fra.me.REG[2] = p2;
22326 /* parser/parser_prod.nit:4041 */
22327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
22328 if (UNTAG_Bool(REGB0)) {
22329 } else {
22330 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 4041);
22331 }
22332 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
22333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22334 if (UNTAG_Bool(REGB0)) {
22335 } else {
22336 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22337 REGB0 = REGB1;
22338 }
22339 if (UNTAG_Bool(REGB0)) {
22340 /* parser/parser_prod.nit:4042 */
22341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22342 if (UNTAG_Bool(REGB0)) {
22343 } else {
22344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22345 if (UNTAG_Bool(REGB1)) {
22346 REGB1 = TAG_Bool(0);
22347 REGB0 = REGB1;
22348 } else {
22349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22350 REGB0 = REGB1;
22351 }
22352 }
22353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22354 if (UNTAG_Bool(REGB0)) {
22355 /* parser/parser_prod.nit:4043 */
22356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22357 if (UNTAG_Bool(REGB0)) {
22358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4043);
22359 }
22360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22361 /* parser/parser_prod.nit:4044 */
22362 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*/;
22363 if (UNTAG_Bool(REGB0)) {
22364 } else {
22365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4044);
22366 }
22367 /* parser/parser_prod.nit:4045 */
22368 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
22369 } else {
22370 /* parser/parser_prod.nit:4047 */
22371 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4047);
22372 }
22373 /* parser/parser_prod.nit:4049 */
22374 goto label1;
22375 }
22376 /* parser/parser_prod.nit:4051 */
22377 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22378 if (UNTAG_Bool(REGB0)) {
22379 } else {
22380 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4051);
22381 }
22382 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
22383 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22384 if (UNTAG_Bool(REGB0)) {
22385 } else {
22386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22387 REGB0 = REGB1;
22388 }
22389 if (UNTAG_Bool(REGB0)) {
22390 /* parser/parser_prod.nit:4052 */
22391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22392 if (UNTAG_Bool(REGB0)) {
22393 } else {
22394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22395 if (UNTAG_Bool(REGB1)) {
22396 REGB1 = TAG_Bool(0);
22397 REGB0 = REGB1;
22398 } else {
22399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22400 REGB0 = REGB1;
22401 }
22402 }
22403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22404 if (UNTAG_Bool(REGB0)) {
22405 /* parser/parser_prod.nit:4053 */
22406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22407 if (UNTAG_Bool(REGB0)) {
22408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4053);
22409 }
22410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22411 /* parser/parser_prod.nit:4054 */
22412 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22413 if (UNTAG_Bool(REGB0)) {
22414 } else {
22415 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4054);
22416 }
22417 /* parser/parser_prod.nit:4055 */
22418 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22419 } else {
22420 /* parser/parser_prod.nit:4057 */
22421 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4057);
22422 }
22423 /* parser/parser_prod.nit:4059 */
22424 goto label1;
22425 }
22426 /* parser/parser_prod.nit:4061 */
22427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
22428 if (UNTAG_Bool(REGB0)) {
22429 } else {
22430 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4061);
22431 }
22432 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
22433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22434 if (UNTAG_Bool(REGB0)) {
22435 } else {
22436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22437 REGB0 = REGB1;
22438 }
22439 if (UNTAG_Bool(REGB0)) {
22440 /* parser/parser_prod.nit:4062 */
22441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22442 if (UNTAG_Bool(REGB0)) {
22443 } else {
22444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22445 if (UNTAG_Bool(REGB1)) {
22446 REGB1 = TAG_Bool(0);
22447 REGB0 = REGB1;
22448 } else {
22449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22450 REGB0 = REGB1;
22451 }
22452 }
22453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22454 if (UNTAG_Bool(REGB0)) {
22455 /* parser/parser_prod.nit:4063 */
22456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22457 if (UNTAG_Bool(REGB0)) {
22458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4063);
22459 }
22460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22461 /* parser/parser_prod.nit:4064 */
22462 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*/;
22463 if (UNTAG_Bool(REGB0)) {
22464 } else {
22465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4064);
22466 }
22467 /* parser/parser_prod.nit:4065 */
22468 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
22469 } else {
22470 /* parser/parser_prod.nit:4067 */
22471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4067);
22472 }
22473 /* parser/parser_prod.nit:4069 */
22474 goto label1;
22475 }
22476 /* parser/parser_prod.nit:4071 */
22477 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
22478 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22479 if (UNTAG_Bool(REGB0)) {
22480 } else {
22481 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22482 if (UNTAG_Bool(REGB1)) {
22483 REGB1 = TAG_Bool(0);
22484 REGB0 = REGB1;
22485 } else {
22486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22487 REGB0 = REGB1;
22488 }
22489 }
22490 if (UNTAG_Bool(REGB0)) {
22491 /* parser/parser_prod.nit:4072 */
22492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22493 if (UNTAG_Bool(REGB0)) {
22494 } else {
22495 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22496 if (UNTAG_Bool(REGB1)) {
22497 REGB1 = TAG_Bool(0);
22498 REGB0 = REGB1;
22499 } else {
22500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22501 REGB0 = REGB1;
22502 }
22503 }
22504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22505 if (UNTAG_Bool(REGB0)) {
22506 /* parser/parser_prod.nit:4073 */
22507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22508 if (UNTAG_Bool(REGB0)) {
22509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4073);
22510 }
22511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22512 /* parser/parser_prod.nit:4074 */
22513 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22514 if (UNTAG_Bool(REGB0)) {
22515 } else {
22516 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4074);
22517 }
22518 /* parser/parser_prod.nit:4075 */
22519 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22520 } else {
22521 /* parser/parser_prod.nit:4077 */
22522 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22523 }
22524 /* parser/parser_prod.nit:4079 */
22525 goto label1;
22526 }
22527 /* parser/parser_prod.nit:4081 */
22528 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22529 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22530 if (UNTAG_Bool(REGB0)) {
22531 } else {
22532 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22533 if (UNTAG_Bool(REGB1)) {
22534 REGB1 = TAG_Bool(0);
22535 REGB0 = REGB1;
22536 } else {
22537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22538 REGB0 = REGB1;
22539 }
22540 }
22541 if (UNTAG_Bool(REGB0)) {
22542 /* parser/parser_prod.nit:4082 */
22543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22544 if (UNTAG_Bool(REGB0)) {
22545 } else {
22546 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22547 if (UNTAG_Bool(REGB1)) {
22548 REGB1 = TAG_Bool(0);
22549 REGB0 = REGB1;
22550 } else {
22551 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22552 REGB0 = REGB1;
22553 }
22554 }
22555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22556 if (UNTAG_Bool(REGB0)) {
22557 /* parser/parser_prod.nit:4083 */
22558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22559 if (UNTAG_Bool(REGB0)) {
22560 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4083);
22561 }
22562 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22563 /* parser/parser_prod.nit:4084 */
22564 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*/;
22565 if (UNTAG_Bool(REGB0)) {
22566 } else {
22567 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4084);
22568 }
22569 /* parser/parser_prod.nit:4085 */
22570 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22571 } else {
22572 /* parser/parser_prod.nit:4087 */
22573 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22574 }
22575 /* parser/parser_prod.nit:4089 */
22576 goto label1;
22577 }
22578 label1: while(0);
22579 stack_frame_head = fra.me.prev;
22580 return;
22581 }
22582 static const char LOCATE_parser___parser_prod___AWhileExpr___visit_all[] = "parser_prod::AWhileExpr::(parser_prod::ANode::visit_all)";
22583 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
22584 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22585 val_t REGB0;
22586 val_t REGB1;
22587 val_t tmp;
22588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22589 fra.me.file = LOCATE_parser___parser_prod;
22590 fra.me.line = 4093;
22591 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
22592 fra.me.has_broke = 0;
22593 fra.me.REG_size = 4;
22594 fra.me.nitni_local_ref_head = NULL;
22595 fra.me.REG[0] = NIT_NULL;
22596 fra.me.REG[1] = NIT_NULL;
22597 fra.me.REG[2] = NIT_NULL;
22598 fra.me.REG[3] = NIT_NULL;
22599 fra.me.REG[0] = p0;
22600 fra.me.REG[1] = p1;
22601 /* parser/parser_prod.nit:4093 */
22602 fra.me.REG[2] = fra.me.REG[0];
22603 /* parser/parser_prod.nit:4095 */
22604 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
22605 if (UNTAG_Bool(REGB0)) {
22606 } else {
22607 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 4095);
22608 }
22609 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
22610 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22611 /* parser/parser_prod.nit:4096 */
22612 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
22613 if (UNTAG_Bool(REGB0)) {
22614 } else {
22615 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4096);
22616 }
22617 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
22618 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22619 /* parser/parser_prod.nit:4097 */
22620 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
22621 if (UNTAG_Bool(REGB0)) {
22622 } else {
22623 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4097);
22624 }
22625 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
22626 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22627 /* parser/parser_prod.nit:4098 */
22628 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
22629 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22630 if (UNTAG_Bool(REGB0)) {
22631 } else {
22632 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22633 if (UNTAG_Bool(REGB1)) {
22634 REGB1 = TAG_Bool(0);
22635 REGB0 = REGB1;
22636 } else {
22637 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22638 REGB0 = REGB1;
22639 }
22640 }
22641 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22642 if (UNTAG_Bool(REGB0)) {
22643 /* parser/parser_prod.nit:4099 */
22644 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
22645 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*/;
22646 if (UNTAG_Bool(REGB0)) {
22647 } else {
22648 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4099);
22649 }
22650 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22651 }
22652 /* parser/parser_prod.nit:4101 */
22653 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22654 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22655 if (UNTAG_Bool(REGB0)) {
22656 } else {
22657 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22658 if (UNTAG_Bool(REGB1)) {
22659 REGB1 = TAG_Bool(0);
22660 REGB0 = REGB1;
22661 } else {
22662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22663 REGB0 = REGB1;
22664 }
22665 }
22666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22667 if (UNTAG_Bool(REGB0)) {
22668 /* parser/parser_prod.nit:4102 */
22669 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22670 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*/;
22671 if (UNTAG_Bool(REGB0)) {
22672 } else {
22673 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4102);
22674 }
22675 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22676 }
22677 stack_frame_head = fra.me.prev;
22678 return;
22679 }
22680 static const char LOCATE_parser___parser_prod___ALoopExpr___empty_init[] = "parser_prod::ALoopExpr::empty_init";
22681 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
22682 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
22683 struct {struct stack_frame_t me;} fra;
22684 val_t tmp;
22685 if (init_table[itpos127]) return;
22686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22687 fra.me.file = LOCATE_parser___parser_prod;
22688 fra.me.line = 4107;
22689 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
22690 fra.me.has_broke = 0;
22691 fra.me.REG_size = 1;
22692 fra.me.nitni_local_ref_head = NULL;
22693 fra.me.REG[0] = NIT_NULL;
22694 fra.me.REG[0] = p0;
22695 stack_frame_head = fra.me.prev;
22696 init_table[itpos127] = 1;
22697 return;
22698 }
22699 static const char LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr[] = "parser_prod::ALoopExpr::init_aloopexpr";
22700 void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
22701 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
22702 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
22703 val_t REGB0;
22704 val_t REGB1;
22705 val_t tmp;
22706 if (init_table[itpos128]) return;
22707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22708 fra.me.file = LOCATE_parser___parser_prod;
22709 fra.me.line = 4109;
22710 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
22711 fra.me.has_broke = 0;
22712 fra.me.REG_size = 5;
22713 fra.me.nitni_local_ref_head = NULL;
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[3] = NIT_NULL;
22718 fra.me.REG[4] = NIT_NULL;
22719 fra.me.REG[0] = p0;
22720 fra.me.REG[1] = p1;
22721 fra.me.REG[2] = p2;
22722 fra.me.REG[3] = p3;
22723 /* parser/parser_prod.nit:4109 */
22724 fra.me.REG[4] = fra.me.REG[0];
22725 /* parser/parser_prod.nit:4115 */
22726 CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
22727 /* parser/parser_prod.nit:4116 */
22728 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22729 if (UNTAG_Bool(REGB0)) {
22730 } else {
22731 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4116);
22732 }
22733 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
22734 /* parser/parser_prod.nit:4117 */
22735 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22736 if (UNTAG_Bool(REGB0)) {
22737 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4117);
22738 }
22739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
22740 /* parser/parser_prod.nit:4118 */
22741 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
22742 /* parser/parser_prod.nit:4119 */
22743 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22744 if (UNTAG_Bool(REGB0)) {
22745 } else {
22746 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22747 if (UNTAG_Bool(REGB1)) {
22748 REGB1 = TAG_Bool(0);
22749 REGB0 = REGB1;
22750 } else {
22751 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22752 REGB0 = REGB1;
22753 }
22754 }
22755 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22756 if (UNTAG_Bool(REGB0)) {
22757 /* parser/parser_prod.nit:4120 */
22758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22759 if (UNTAG_Bool(REGB0)) {
22760 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4120);
22761 }
22762 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
22763 }
22764 /* parser/parser_prod.nit:4122 */
22765 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
22766 /* parser/parser_prod.nit:4123 */
22767 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22768 if (UNTAG_Bool(REGB0)) {
22769 } else {
22770 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22771 if (UNTAG_Bool(REGB1)) {
22772 REGB1 = TAG_Bool(0);
22773 REGB0 = REGB1;
22774 } else {
22775 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22776 REGB0 = REGB1;
22777 }
22778 }
22779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22780 if (UNTAG_Bool(REGB0)) {
22781 /* parser/parser_prod.nit:4124 */
22782 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22783 if (UNTAG_Bool(REGB0)) {
22784 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4124);
22785 }
22786 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
22787 }
22788 stack_frame_head = fra.me.prev;
22789 init_table[itpos128] = 1;
22790 return;
22791 }
22792 static const char LOCATE_parser___parser_prod___ALoopExpr___replace_child[] = "parser_prod::ALoopExpr::(parser_prod::ANode::replace_child)";
22793 void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
22794 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22795 val_t REGB0;
22796 val_t REGB1;
22797 val_t tmp;
22798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22799 fra.me.file = LOCATE_parser___parser_prod;
22800 fra.me.line = 4128;
22801 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
22802 fra.me.has_broke = 0;
22803 fra.me.REG_size = 4;
22804 fra.me.nitni_local_ref_head = NULL;
22805 fra.me.REG[0] = NIT_NULL;
22806 fra.me.REG[1] = NIT_NULL;
22807 fra.me.REG[2] = NIT_NULL;
22808 fra.me.REG[3] = NIT_NULL;
22809 fra.me.REG[0] = p0;
22810 fra.me.REG[1] = p1;
22811 fra.me.REG[2] = p2;
22812 /* parser/parser_prod.nit:4130 */
22813 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
22814 if (UNTAG_Bool(REGB0)) {
22815 } else {
22816 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4130);
22817 }
22818 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
22819 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22820 if (UNTAG_Bool(REGB0)) {
22821 } else {
22822 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22823 REGB0 = REGB1;
22824 }
22825 if (UNTAG_Bool(REGB0)) {
22826 /* parser/parser_prod.nit:4131 */
22827 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22828 if (UNTAG_Bool(REGB0)) {
22829 } else {
22830 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22831 if (UNTAG_Bool(REGB1)) {
22832 REGB1 = TAG_Bool(0);
22833 REGB0 = REGB1;
22834 } else {
22835 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22836 REGB0 = REGB1;
22837 }
22838 }
22839 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22840 if (UNTAG_Bool(REGB0)) {
22841 /* parser/parser_prod.nit:4132 */
22842 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22843 if (UNTAG_Bool(REGB0)) {
22844 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4132);
22845 }
22846 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22847 /* parser/parser_prod.nit:4133 */
22848 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*/;
22849 if (UNTAG_Bool(REGB0)) {
22850 } else {
22851 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4133);
22852 }
22853 /* parser/parser_prod.nit:4134 */
22854 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
22855 } else {
22856 /* parser/parser_prod.nit:4136 */
22857 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4136);
22858 }
22859 /* parser/parser_prod.nit:4138 */
22860 goto label1;
22861 }
22862 /* parser/parser_prod.nit:4140 */
22863 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
22864 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22865 if (UNTAG_Bool(REGB0)) {
22866 } else {
22867 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22868 if (UNTAG_Bool(REGB1)) {
22869 REGB1 = TAG_Bool(0);
22870 REGB0 = REGB1;
22871 } else {
22872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22873 REGB0 = REGB1;
22874 }
22875 }
22876 if (UNTAG_Bool(REGB0)) {
22877 /* parser/parser_prod.nit:4141 */
22878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22879 if (UNTAG_Bool(REGB0)) {
22880 } else {
22881 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22882 if (UNTAG_Bool(REGB1)) {
22883 REGB1 = TAG_Bool(0);
22884 REGB0 = REGB1;
22885 } else {
22886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22887 REGB0 = REGB1;
22888 }
22889 }
22890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22891 if (UNTAG_Bool(REGB0)) {
22892 /* parser/parser_prod.nit:4142 */
22893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22894 if (UNTAG_Bool(REGB0)) {
22895 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4142);
22896 }
22897 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22898 /* parser/parser_prod.nit:4143 */
22899 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22900 if (UNTAG_Bool(REGB0)) {
22901 } else {
22902 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4143);
22903 }
22904 /* parser/parser_prod.nit:4144 */
22905 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22906 } else {
22907 /* parser/parser_prod.nit:4146 */
22908 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22909 }
22910 /* parser/parser_prod.nit:4148 */
22911 goto label1;
22912 }
22913 /* parser/parser_prod.nit:4150 */
22914 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22915 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22916 if (UNTAG_Bool(REGB0)) {
22917 } else {
22918 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22919 if (UNTAG_Bool(REGB1)) {
22920 REGB1 = TAG_Bool(0);
22921 REGB0 = REGB1;
22922 } else {
22923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22924 REGB0 = REGB1;
22925 }
22926 }
22927 if (UNTAG_Bool(REGB0)) {
22928 /* parser/parser_prod.nit:4151 */
22929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22930 if (UNTAG_Bool(REGB0)) {
22931 } else {
22932 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22933 if (UNTAG_Bool(REGB1)) {
22934 REGB1 = TAG_Bool(0);
22935 REGB0 = REGB1;
22936 } else {
22937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22938 REGB0 = REGB1;
22939 }
22940 }
22941 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22942 if (UNTAG_Bool(REGB0)) {
22943 /* parser/parser_prod.nit:4152 */
22944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22945 if (UNTAG_Bool(REGB0)) {
22946 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4152);
22947 }
22948 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22949 /* parser/parser_prod.nit:4153 */
22950 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*/;
22951 if (UNTAG_Bool(REGB0)) {
22952 } else {
22953 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4153);
22954 }
22955 /* parser/parser_prod.nit:4154 */
22956 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22957 } else {
22958 /* parser/parser_prod.nit:4156 */
22959 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22960 }
22961 /* parser/parser_prod.nit:4158 */
22962 goto label1;
22963 }
22964 label1: while(0);
22965 stack_frame_head = fra.me.prev;
22966 return;
22967 }
22968 static const char LOCATE_parser___parser_prod___ALoopExpr___visit_all[] = "parser_prod::ALoopExpr::(parser_prod::ANode::visit_all)";
22969 void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
22970 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22971 val_t REGB0;
22972 val_t REGB1;
22973 val_t tmp;
22974 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22975 fra.me.file = LOCATE_parser___parser_prod;
22976 fra.me.line = 4162;
22977 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___visit_all;
22978 fra.me.has_broke = 0;
22979 fra.me.REG_size = 4;
22980 fra.me.nitni_local_ref_head = NULL;
22981 fra.me.REG[0] = NIT_NULL;
22982 fra.me.REG[1] = NIT_NULL;
22983 fra.me.REG[2] = NIT_NULL;
22984 fra.me.REG[3] = NIT_NULL;
22985 fra.me.REG[0] = p0;
22986 fra.me.REG[1] = p1;
22987 /* parser/parser_prod.nit:4162 */
22988 fra.me.REG[2] = fra.me.REG[0];
22989 /* parser/parser_prod.nit:4164 */
22990 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
22991 if (UNTAG_Bool(REGB0)) {
22992 } else {
22993 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4164);
22994 }
22995 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2]);
22996 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22997 /* parser/parser_prod.nit:4165 */
22998 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
22999 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23000 if (UNTAG_Bool(REGB0)) {
23001 } else {
23002 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23003 if (UNTAG_Bool(REGB1)) {
23004 REGB1 = TAG_Bool(0);
23005 REGB0 = REGB1;
23006 } else {
23007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23008 REGB0 = REGB1;
23009 }
23010 }
23011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23012 if (UNTAG_Bool(REGB0)) {
23013 /* parser/parser_prod.nit:4166 */
23014 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
23015 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*/;
23016 if (UNTAG_Bool(REGB0)) {
23017 } else {
23018 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4166);
23019 }
23020 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23021 }
23022 /* parser/parser_prod.nit:4168 */
23023 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
23024 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23025 if (UNTAG_Bool(REGB0)) {
23026 } else {
23027 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23028 if (UNTAG_Bool(REGB1)) {
23029 REGB1 = TAG_Bool(0);
23030 REGB0 = REGB1;
23031 } else {
23032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23033 REGB0 = REGB1;
23034 }
23035 }
23036 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23037 if (UNTAG_Bool(REGB0)) {
23038 /* parser/parser_prod.nit:4169 */
23039 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
23040 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*/;
23041 if (UNTAG_Bool(REGB0)) {
23042 } else {
23043 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4169);
23044 }
23045 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23046 }
23047 stack_frame_head = fra.me.prev;
23048 return;
23049 }
23050 static const char LOCATE_parser___parser_prod___AForExpr___empty_init[] = "parser_prod::AForExpr::empty_init";
23051 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
23052 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
23053 struct {struct stack_frame_t me;} fra;
23054 val_t tmp;
23055 if (init_table[itpos129]) return;
23056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23057 fra.me.file = LOCATE_parser___parser_prod;
23058 fra.me.line = 4174;
23059 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
23060 fra.me.has_broke = 0;
23061 fra.me.REG_size = 1;
23062 fra.me.nitni_local_ref_head = NULL;
23063 fra.me.REG[0] = NIT_NULL;
23064 fra.me.REG[0] = p0;
23065 stack_frame_head = fra.me.prev;
23066 init_table[itpos129] = 1;
23067 return;
23068 }
23069 static const char LOCATE_parser___parser_prod___AForExpr___init_aforexpr[] = "parser_prod::AForExpr::init_aforexpr";
23070 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){
23071 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
23072 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
23073 val_t REGB0;
23074 val_t REGB1;
23075 val_t tmp;
23076 if (init_table[itpos130]) return;
23077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23078 fra.me.file = LOCATE_parser___parser_prod;
23079 fra.me.line = 4176;
23080 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
23081 fra.me.has_broke = 0;
23082 fra.me.REG_size = 8;
23083 fra.me.nitni_local_ref_head = NULL;
23084 fra.me.REG[0] = NIT_NULL;
23085 fra.me.REG[1] = NIT_NULL;
23086 fra.me.REG[2] = NIT_NULL;
23087 fra.me.REG[3] = NIT_NULL;
23088 fra.me.REG[4] = NIT_NULL;
23089 fra.me.REG[5] = NIT_NULL;
23090 fra.me.REG[6] = NIT_NULL;
23091 fra.me.REG[7] = NIT_NULL;
23092 fra.me.REG[0] = p0;
23093 fra.me.REG[1] = p1;
23094 fra.me.REG[2] = p2;
23095 fra.me.REG[3] = p3;
23096 fra.me.REG[4] = p4;
23097 fra.me.REG[5] = p5;
23098 fra.me.REG[6] = p6;
23099 /* parser/parser_prod.nit:4176 */
23100 fra.me.REG[7] = fra.me.REG[0];
23101 /* parser/parser_prod.nit:4185 */
23102 CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
23103 /* parser/parser_prod.nit:4186 */
23104 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23105 if (UNTAG_Bool(REGB0)) {
23106 } else {
23107 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4186);
23108 }
23109 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
23110 /* parser/parser_prod.nit:4187 */
23111 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23112 if (UNTAG_Bool(REGB0)) {
23113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4187);
23114 }
23115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
23116 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));
23117 /* parser/parser_prod.nit:4193 */
23118 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
23119 if (UNTAG_Bool(REGB0)) {
23120 } else {
23121 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4193);
23122 }
23123 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
23124 /* parser/parser_prod.nit:4194 */
23125 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23126 if (UNTAG_Bool(REGB0)) {
23127 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4194);
23128 }
23129 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
23130 /* parser/parser_prod.nit:4195 */
23131 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
23132 if (UNTAG_Bool(REGB0)) {
23133 } else {
23134 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4195);
23135 }
23136 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
23137 /* parser/parser_prod.nit:4196 */
23138 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23139 if (UNTAG_Bool(REGB0)) {
23140 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4196);
23141 }
23142 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
23143 /* parser/parser_prod.nit:4197 */
23144 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
23145 /* parser/parser_prod.nit:4198 */
23146 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23147 if (UNTAG_Bool(REGB0)) {
23148 } else {
23149 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23150 if (UNTAG_Bool(REGB1)) {
23151 REGB1 = TAG_Bool(0);
23152 REGB0 = REGB1;
23153 } else {
23154 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
23155 REGB0 = REGB1;
23156 }
23157 }
23158 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23159 if (UNTAG_Bool(REGB0)) {
23160 /* parser/parser_prod.nit:4199 */
23161 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23162 if (UNTAG_Bool(REGB0)) {
23163 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4199);
23164 }
23165 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
23166 }
23167 /* parser/parser_prod.nit:4201 */
23168 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
23169 /* parser/parser_prod.nit:4202 */
23170 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
23171 if (UNTAG_Bool(REGB0)) {
23172 } else {
23173 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
23174 if (UNTAG_Bool(REGB1)) {
23175 REGB1 = TAG_Bool(0);
23176 REGB0 = REGB1;
23177 } else {
23178 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
23179 REGB0 = REGB1;
23180 }
23181 }
23182 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23183 if (UNTAG_Bool(REGB0)) {
23184 /* parser/parser_prod.nit:4203 */
23185 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
23186 if (UNTAG_Bool(REGB0)) {
23187 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4203);
23188 }
23189 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
23190 }
23191 stack_frame_head = fra.me.prev;
23192 init_table[itpos130] = 1;
23193 return;
23194 }
23195 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){
23196 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23197 val_t REGB0;
23198 fun_t CREG[1];
23199 val_t tmp;
23200 /* parser/parser_prod.nit:4188 */
23201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23202 fra.me.file = LOCATE_parser___parser_prod;
23203 fra.me.line = 0;
23204 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
23205 fra.me.has_broke = 0;
23206 fra.me.REG_size = 2;
23207 fra.me.nitni_local_ref_head = NULL;
23208 fra.me.REG[0] = NIT_NULL;
23209 fra.me.REG[1] = NIT_NULL;
23210 fra.me.closure_ctx = closctx_param;
23211 fra.me.closure_funs = CREG;
23212 fra.me.REG[0] = p0;
23213 CREG[0] = clos_fun0;
23214 /* parser/parser_prod.nit:4189 */
23215 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
23216 if (UNTAG_Bool(REGB0)) {
23217 } else {
23218 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4189);
23219 }
23220 /* parser/parser_prod.nit:4190 */
23221 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
23222 if (UNTAG_Bool(REGB0)) {
23223 } else {
23224 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4190);
23225 }
23226 fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
23227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23228 /* parser/parser_prod.nit:4191 */
23229 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
23230 stack_frame_head = fra.me.prev;
23231 return;
23232 }
23233 static const char LOCATE_parser___parser_prod___AForExpr___replace_child[] = "parser_prod::AForExpr::(parser_prod::ANode::replace_child)";
23234 void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
23235 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23236 val_t REGB0;
23237 val_t REGB1;
23238 val_t REGB2;
23239 val_t REGB3;
23240 val_t REGB4;
23241 val_t tmp;
23242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23243 fra.me.file = LOCATE_parser___parser_prod;
23244 fra.me.line = 4207;
23245 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
23246 fra.me.has_broke = 0;
23247 fra.me.REG_size = 4;
23248 fra.me.nitni_local_ref_head = NULL;
23249 fra.me.REG[0] = NIT_NULL;
23250 fra.me.REG[1] = NIT_NULL;
23251 fra.me.REG[2] = NIT_NULL;
23252 fra.me.REG[3] = NIT_NULL;
23253 fra.me.REG[0] = p0;
23254 fra.me.REG[1] = p1;
23255 fra.me.REG[2] = p2;
23256 /* parser/parser_prod.nit:4209 */
23257 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
23258 if (UNTAG_Bool(REGB0)) {
23259 } else {
23260 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4209);
23261 }
23262 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
23263 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23264 if (UNTAG_Bool(REGB0)) {
23265 } else {
23266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23267 REGB0 = REGB1;
23268 }
23269 if (UNTAG_Bool(REGB0)) {
23270 /* parser/parser_prod.nit:4210 */
23271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23272 if (UNTAG_Bool(REGB0)) {
23273 } else {
23274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23275 if (UNTAG_Bool(REGB1)) {
23276 REGB1 = TAG_Bool(0);
23277 REGB0 = REGB1;
23278 } else {
23279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23280 REGB0 = REGB1;
23281 }
23282 }
23283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23284 if (UNTAG_Bool(REGB0)) {
23285 /* parser/parser_prod.nit:4211 */
23286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23287 if (UNTAG_Bool(REGB0)) {
23288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4211);
23289 }
23290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23291 /* parser/parser_prod.nit:4212 */
23292 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*/;
23293 if (UNTAG_Bool(REGB0)) {
23294 } else {
23295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4212);
23296 }
23297 /* parser/parser_prod.nit:4213 */
23298 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
23299 } else {
23300 /* parser/parser_prod.nit:4215 */
23301 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4215);
23302 }
23303 /* parser/parser_prod.nit:4217 */
23304 goto label1;
23305 }
23306 /* parser/parser_prod.nit:4219 */
23307 REGB0 = TAG_Int(0);
23308 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
23309 if (UNTAG_Bool(REGB1)) {
23310 } else {
23311 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4219);
23312 }
23313 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
23314 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
23315 /* ../lib/standard/kernel.nit:355 */
23316 while(1) {
23317 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
23318 if (UNTAG_Bool(REGB2)) {
23319 } else {
23320 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
23321 }
23322 /* ../lib/standard/kernel.nit:235 */
23323 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
23324 /* ../lib/standard/kernel.nit:355 */
23325 if (UNTAG_Bool(REGB2)) {
23326 /* parser/parser_prod.nit:4219 */
23327 REGB2 = REGB0;
23328 /* parser/parser_prod.nit:4220 */
23329 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
23330 if (UNTAG_Bool(REGB3)) {
23331 } else {
23332 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4220);
23333 }
23334 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
23335 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
23336 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23337 if (UNTAG_Bool(REGB3)) {
23338 } else {
23339 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23340 if (UNTAG_Bool(REGB4)) {
23341 REGB4 = TAG_Bool(0);
23342 REGB3 = REGB4;
23343 } else {
23344 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23345 REGB3 = REGB4;
23346 }
23347 }
23348 if (UNTAG_Bool(REGB3)) {
23349 /* parser/parser_prod.nit:4221 */
23350 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23351 if (UNTAG_Bool(REGB3)) {
23352 } else {
23353 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23354 if (UNTAG_Bool(REGB4)) {
23355 REGB4 = TAG_Bool(0);
23356 REGB3 = REGB4;
23357 } else {
23358 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23359 REGB3 = REGB4;
23360 }
23361 }
23362 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
23363 if (UNTAG_Bool(REGB3)) {
23364 /* parser/parser_prod.nit:4222 */
23365 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*/;
23366 if (UNTAG_Bool(REGB3)) {
23367 } else {
23368 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4222);
23369 }
23370 /* parser/parser_prod.nit:4223 */
23371 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
23372 if (UNTAG_Bool(REGB3)) {
23373 } else {
23374 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4223);
23375 }
23376 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
23377 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
23378 /* parser/parser_prod.nit:4224 */
23379 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23380 if (UNTAG_Bool(REGB3)) {
23381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4224);
23382 }
23383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23384 } else {
23385 /* parser/parser_prod.nit:4226 */
23386 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
23387 if (UNTAG_Bool(REGB3)) {
23388 } else {
23389 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4226);
23390 }
23391 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
23392 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
23393 }
23394 /* parser/parser_prod.nit:4228 */
23395 goto label1;
23396 }
23397 /* ../lib/standard/kernel.nit:357 */
23398 REGB2 = TAG_Int(1);
23399 /* ../lib/standard/kernel.nit:238 */
23400 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
23401 /* ../lib/standard/kernel.nit:357 */
23402 REGB0 = REGB2;
23403 } else {
23404 /* ../lib/standard/kernel.nit:355 */
23405 goto label2;
23406 }
23407 }
23408 label2: while(0);
23409 /* parser/parser_prod.nit:4231 */
23410 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23411 if (UNTAG_Bool(REGB0)) {
23412 } else {
23413 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4231);
23414 }
23415 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
23416 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23417 if (UNTAG_Bool(REGB0)) {
23418 } else {
23419 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23420 REGB0 = REGB1;
23421 }
23422 if (UNTAG_Bool(REGB0)) {
23423 /* parser/parser_prod.nit:4232 */
23424 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23425 if (UNTAG_Bool(REGB0)) {
23426 } else {
23427 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23428 if (UNTAG_Bool(REGB1)) {
23429 REGB1 = TAG_Bool(0);
23430 REGB0 = REGB1;
23431 } else {
23432 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23433 REGB0 = REGB1;
23434 }
23435 }
23436 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23437 if (UNTAG_Bool(REGB0)) {
23438 /* parser/parser_prod.nit:4233 */
23439 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23440 if (UNTAG_Bool(REGB0)) {
23441 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4233);
23442 }
23443 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23444 /* parser/parser_prod.nit:4234 */
23445 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23446 if (UNTAG_Bool(REGB0)) {
23447 } else {
23448 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4234);
23449 }
23450 /* parser/parser_prod.nit:4235 */
23451 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23452 } else {
23453 /* parser/parser_prod.nit:4237 */
23454 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4237);
23455 }
23456 /* parser/parser_prod.nit:4239 */
23457 goto label1;
23458 }
23459 /* parser/parser_prod.nit:4241 */
23460 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
23461 if (UNTAG_Bool(REGB0)) {
23462 } else {
23463 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4241);
23464 }
23465 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
23466 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23467 if (UNTAG_Bool(REGB0)) {
23468 } else {
23469 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23470 REGB0 = REGB1;
23471 }
23472 if (UNTAG_Bool(REGB0)) {
23473 /* parser/parser_prod.nit:4242 */
23474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23475 if (UNTAG_Bool(REGB0)) {
23476 } else {
23477 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23478 if (UNTAG_Bool(REGB1)) {
23479 REGB1 = TAG_Bool(0);
23480 REGB0 = REGB1;
23481 } else {
23482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23483 REGB0 = REGB1;
23484 }
23485 }
23486 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23487 if (UNTAG_Bool(REGB0)) {
23488 /* parser/parser_prod.nit:4243 */
23489 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23490 if (UNTAG_Bool(REGB0)) {
23491 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4243);
23492 }
23493 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23494 /* parser/parser_prod.nit:4244 */
23495 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*/;
23496 if (UNTAG_Bool(REGB0)) {
23497 } else {
23498 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4244);
23499 }
23500 /* parser/parser_prod.nit:4245 */
23501 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
23502 } else {
23503 /* parser/parser_prod.nit:4247 */
23504 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4247);
23505 }
23506 /* parser/parser_prod.nit:4249 */
23507 goto label1;
23508 }
23509 /* parser/parser_prod.nit:4251 */
23510 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
23511 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23512 if (UNTAG_Bool(REGB0)) {
23513 } else {
23514 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23515 if (UNTAG_Bool(REGB1)) {
23516 REGB1 = TAG_Bool(0);
23517 REGB0 = REGB1;
23518 } else {
23519 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23520 REGB0 = REGB1;
23521 }
23522 }
23523 if (UNTAG_Bool(REGB0)) {
23524 /* parser/parser_prod.nit:4252 */
23525 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23526 if (UNTAG_Bool(REGB0)) {
23527 } else {
23528 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23529 if (UNTAG_Bool(REGB1)) {
23530 REGB1 = TAG_Bool(0);
23531 REGB0 = REGB1;
23532 } else {
23533 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23534 REGB0 = REGB1;
23535 }
23536 }
23537 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23538 if (UNTAG_Bool(REGB0)) {
23539 /* parser/parser_prod.nit:4253 */
23540 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23541 if (UNTAG_Bool(REGB0)) {
23542 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4253);
23543 }
23544 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23545 /* parser/parser_prod.nit:4254 */
23546 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23547 if (UNTAG_Bool(REGB0)) {
23548 } else {
23549 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4254);
23550 }
23551 /* parser/parser_prod.nit:4255 */
23552 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
23553 } else {
23554 /* parser/parser_prod.nit:4257 */
23555 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
23556 }
23557 /* parser/parser_prod.nit:4259 */
23558 goto label1;
23559 }
23560 /* parser/parser_prod.nit:4261 */
23561 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
23562 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23563 if (UNTAG_Bool(REGB0)) {
23564 } else {
23565 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23566 if (UNTAG_Bool(REGB1)) {
23567 REGB1 = TAG_Bool(0);
23568 REGB0 = REGB1;
23569 } else {
23570 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23571 REGB0 = REGB1;
23572 }
23573 }
23574 if (UNTAG_Bool(REGB0)) {
23575 /* parser/parser_prod.nit:4262 */
23576 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23577 if (UNTAG_Bool(REGB0)) {
23578 } else {
23579 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23580 if (UNTAG_Bool(REGB1)) {
23581 REGB1 = TAG_Bool(0);
23582 REGB0 = REGB1;
23583 } else {
23584 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23585 REGB0 = REGB1;
23586 }
23587 }
23588 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23589 if (UNTAG_Bool(REGB0)) {
23590 /* parser/parser_prod.nit:4263 */
23591 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23592 if (UNTAG_Bool(REGB0)) {
23593 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4263);
23594 }
23595 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23596 /* parser/parser_prod.nit:4264 */
23597 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*/;
23598 if (UNTAG_Bool(REGB0)) {
23599 } else {
23600 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4264);
23601 }
23602 /* parser/parser_prod.nit:4265 */
23603 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
23604 } else {
23605 /* parser/parser_prod.nit:4267 */
23606 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
23607 }
23608 /* parser/parser_prod.nit:4269 */
23609 goto label1;
23610 }
23611 label1: while(0);
23612 stack_frame_head = fra.me.prev;
23613 return;
23614 }
23615 static const char LOCATE_parser___parser_prod___AForExpr___visit_all[] = "parser_prod::AForExpr::(parser_prod::ANode::visit_all)";
23616 void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
23617 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23618 val_t REGB0;
23619 val_t REGB1;
23620 val_t tmp;
23621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23622 fra.me.file = LOCATE_parser___parser_prod;
23623 fra.me.line = 4273;
23624 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
23625 fra.me.has_broke = 0;
23626 fra.me.REG_size = 4;
23627 fra.me.nitni_local_ref_head = NULL;
23628 fra.me.REG[0] = NIT_NULL;
23629 fra.me.REG[1] = NIT_NULL;
23630 fra.me.REG[2] = NIT_NULL;
23631 fra.me.REG[3] = NIT_NULL;
23632 fra.me.REG[0] = p0;
23633 fra.me.REG[1] = p1;
23634 /* parser/parser_prod.nit:4273 */
23635 fra.me.REG[2] = fra.me.REG[0];
23636 /* parser/parser_prod.nit:4275 */
23637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
23638 if (UNTAG_Bool(REGB0)) {
23639 } else {
23640 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4275);
23641 }
23642 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
23643 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23644 /* parser/parser_prod.nit:4276 */
23645 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
23646 if (UNTAG_Bool(REGB0)) {
23647 } else {
23648 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4276);
23649 }
23650 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
23651 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));
23652 /* parser/parser_prod.nit:4279 */
23653 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
23654 if (UNTAG_Bool(REGB0)) {
23655 } else {
23656 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4279);
23657 }
23658 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
23659 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23660 /* parser/parser_prod.nit:4280 */
23661 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
23662 if (UNTAG_Bool(REGB0)) {
23663 } else {
23664 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4280);
23665 }
23666 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
23667 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23668 /* parser/parser_prod.nit:4281 */
23669 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
23670 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23671 if (UNTAG_Bool(REGB0)) {
23672 } else {
23673 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23674 if (UNTAG_Bool(REGB1)) {
23675 REGB1 = TAG_Bool(0);
23676 REGB0 = REGB1;
23677 } else {
23678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23679 REGB0 = REGB1;
23680 }
23681 }
23682 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23683 if (UNTAG_Bool(REGB0)) {
23684 /* parser/parser_prod.nit:4282 */
23685 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
23686 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*/;
23687 if (UNTAG_Bool(REGB0)) {
23688 } else {
23689 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4282);
23690 }
23691 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23692 }
23693 /* parser/parser_prod.nit:4284 */
23694 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
23695 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23696 if (UNTAG_Bool(REGB0)) {
23697 } else {
23698 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23699 if (UNTAG_Bool(REGB1)) {
23700 REGB1 = TAG_Bool(0);
23701 REGB0 = REGB1;
23702 } else {
23703 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23704 REGB0 = REGB1;
23705 }
23706 }
23707 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23708 if (UNTAG_Bool(REGB0)) {
23709 /* parser/parser_prod.nit:4285 */
23710 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
23711 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*/;
23712 if (UNTAG_Bool(REGB0)) {
23713 } else {
23714 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4285);
23715 }
23716 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23717 }
23718 stack_frame_head = fra.me.prev;
23719 return;
23720 }
23721 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){
23722 struct {struct stack_frame_t me;} fra;
23723 fun_t CREG[1];
23724 val_t tmp;
23725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23726 fra.me.file = LOCATE_parser___parser_prod;
23727 fra.me.line = 0;
23728 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
23729 fra.me.has_broke = 0;
23730 fra.me.REG_size = 1;
23731 fra.me.nitni_local_ref_head = NULL;
23732 fra.me.REG[0] = NIT_NULL;
23733 fra.me.closure_ctx = closctx_param;
23734 fra.me.closure_funs = CREG;
23735 fra.me.REG[0] = p0;
23736 CREG[0] = clos_fun0;
23737 /* parser/parser_prod.nit:4277 */
23738 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
23739 stack_frame_head = fra.me.prev;
23740 return;
23741 }
23742 static const char LOCATE_parser___parser_prod___AAssertExpr___empty_init[] = "parser_prod::AAssertExpr::empty_init";
23743 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
23744 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
23745 struct {struct stack_frame_t me;} fra;
23746 val_t tmp;
23747 if (init_table[itpos131]) return;
23748 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23749 fra.me.file = LOCATE_parser___parser_prod;
23750 fra.me.line = 4290;
23751 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
23752 fra.me.has_broke = 0;
23753 fra.me.REG_size = 1;
23754 fra.me.nitni_local_ref_head = NULL;
23755 fra.me.REG[0] = NIT_NULL;
23756 fra.me.REG[0] = p0;
23757 stack_frame_head = fra.me.prev;
23758 init_table[itpos131] = 1;
23759 return;
23760 }
23761 static const char LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr[] = "parser_prod::AAssertExpr::init_aassertexpr";
23762 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){
23763 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
23764 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23765 val_t REGB0;
23766 val_t REGB1;
23767 val_t tmp;
23768 if (init_table[itpos132]) return;
23769 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23770 fra.me.file = LOCATE_parser___parser_prod;
23771 fra.me.line = 4292;
23772 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
23773 fra.me.has_broke = 0;
23774 fra.me.REG_size = 6;
23775 fra.me.nitni_local_ref_head = NULL;
23776 fra.me.REG[0] = NIT_NULL;
23777 fra.me.REG[1] = NIT_NULL;
23778 fra.me.REG[2] = NIT_NULL;
23779 fra.me.REG[3] = NIT_NULL;
23780 fra.me.REG[4] = NIT_NULL;
23781 fra.me.REG[5] = NIT_NULL;
23782 fra.me.REG[0] = p0;
23783 fra.me.REG[1] = p1;
23784 fra.me.REG[2] = p2;
23785 fra.me.REG[3] = p3;
23786 fra.me.REG[4] = p4;
23787 /* parser/parser_prod.nit:4292 */
23788 fra.me.REG[5] = fra.me.REG[0];
23789 /* parser/parser_prod.nit:4299 */
23790 CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
23791 /* parser/parser_prod.nit:4300 */
23792 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23793 if (UNTAG_Bool(REGB0)) {
23794 } else {
23795 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4300);
23796 }
23797 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
23798 /* parser/parser_prod.nit:4301 */
23799 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23800 if (UNTAG_Bool(REGB0)) {
23801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4301);
23802 }
23803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
23804 /* parser/parser_prod.nit:4302 */
23805 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
23806 /* parser/parser_prod.nit:4303 */
23807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23808 if (UNTAG_Bool(REGB0)) {
23809 } else {
23810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23811 if (UNTAG_Bool(REGB1)) {
23812 REGB1 = TAG_Bool(0);
23813 REGB0 = REGB1;
23814 } else {
23815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23816 REGB0 = REGB1;
23817 }
23818 }
23819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23820 if (UNTAG_Bool(REGB0)) {
23821 /* parser/parser_prod.nit:4304 */
23822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23823 if (UNTAG_Bool(REGB0)) {
23824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4304);
23825 }
23826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
23827 }
23828 /* parser/parser_prod.nit:4306 */
23829 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
23830 if (UNTAG_Bool(REGB0)) {
23831 } else {
23832 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4306);
23833 }
23834 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
23835 /* parser/parser_prod.nit:4307 */
23836 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23837 if (UNTAG_Bool(REGB0)) {
23838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4307);
23839 }
23840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
23841 /* parser/parser_prod.nit:4308 */
23842 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
23843 /* parser/parser_prod.nit:4309 */
23844 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23845 if (UNTAG_Bool(REGB0)) {
23846 } else {
23847 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23848 if (UNTAG_Bool(REGB1)) {
23849 REGB1 = TAG_Bool(0);
23850 REGB0 = REGB1;
23851 } else {
23852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
23853 REGB0 = REGB1;
23854 }
23855 }
23856 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23857 if (UNTAG_Bool(REGB0)) {
23858 /* parser/parser_prod.nit:4310 */
23859 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23860 if (UNTAG_Bool(REGB0)) {
23861 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4310);
23862 }
23863 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
23864 }
23865 stack_frame_head = fra.me.prev;
23866 init_table[itpos132] = 1;
23867 return;
23868 }
23869 static const char LOCATE_parser___parser_prod___AAssertExpr___replace_child[] = "parser_prod::AAssertExpr::(parser_prod::ANode::replace_child)";
23870 void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
23871 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23872 val_t REGB0;
23873 val_t REGB1;
23874 val_t tmp;
23875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23876 fra.me.file = LOCATE_parser___parser_prod;
23877 fra.me.line = 4314;
23878 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
23879 fra.me.has_broke = 0;
23880 fra.me.REG_size = 4;
23881 fra.me.nitni_local_ref_head = NULL;
23882 fra.me.REG[0] = NIT_NULL;
23883 fra.me.REG[1] = NIT_NULL;
23884 fra.me.REG[2] = NIT_NULL;
23885 fra.me.REG[3] = NIT_NULL;
23886 fra.me.REG[0] = p0;
23887 fra.me.REG[1] = p1;
23888 fra.me.REG[2] = p2;
23889 /* parser/parser_prod.nit:4316 */
23890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
23891 if (UNTAG_Bool(REGB0)) {
23892 } else {
23893 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4316);
23894 }
23895 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
23896 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23897 if (UNTAG_Bool(REGB0)) {
23898 } else {
23899 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23900 REGB0 = REGB1;
23901 }
23902 if (UNTAG_Bool(REGB0)) {
23903 /* parser/parser_prod.nit:4317 */
23904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23905 if (UNTAG_Bool(REGB0)) {
23906 } else {
23907 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23908 if (UNTAG_Bool(REGB1)) {
23909 REGB1 = TAG_Bool(0);
23910 REGB0 = REGB1;
23911 } else {
23912 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23913 REGB0 = REGB1;
23914 }
23915 }
23916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23917 if (UNTAG_Bool(REGB0)) {
23918 /* parser/parser_prod.nit:4318 */
23919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23920 if (UNTAG_Bool(REGB0)) {
23921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4318);
23922 }
23923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23924 /* parser/parser_prod.nit:4319 */
23925 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*/;
23926 if (UNTAG_Bool(REGB0)) {
23927 } else {
23928 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4319);
23929 }
23930 /* parser/parser_prod.nit:4320 */
23931 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
23932 } else {
23933 /* parser/parser_prod.nit:4322 */
23934 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4322);
23935 }
23936 /* parser/parser_prod.nit:4324 */
23937 goto label1;
23938 }
23939 /* parser/parser_prod.nit:4326 */
23940 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
23941 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23942 if (UNTAG_Bool(REGB0)) {
23943 } else {
23944 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23945 if (UNTAG_Bool(REGB1)) {
23946 REGB1 = TAG_Bool(0);
23947 REGB0 = REGB1;
23948 } else {
23949 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23950 REGB0 = REGB1;
23951 }
23952 }
23953 if (UNTAG_Bool(REGB0)) {
23954 /* parser/parser_prod.nit:4327 */
23955 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23956 if (UNTAG_Bool(REGB0)) {
23957 } else {
23958 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23959 if (UNTAG_Bool(REGB1)) {
23960 REGB1 = TAG_Bool(0);
23961 REGB0 = REGB1;
23962 } else {
23963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23964 REGB0 = REGB1;
23965 }
23966 }
23967 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23968 if (UNTAG_Bool(REGB0)) {
23969 /* parser/parser_prod.nit:4328 */
23970 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23971 if (UNTAG_Bool(REGB0)) {
23972 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4328);
23973 }
23974 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23975 /* parser/parser_prod.nit:4329 */
23976 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*/;
23977 if (UNTAG_Bool(REGB0)) {
23978 } else {
23979 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4329);
23980 }
23981 /* parser/parser_prod.nit:4330 */
23982 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
23983 } else {
23984 /* parser/parser_prod.nit:4332 */
23985 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
23986 }
23987 /* parser/parser_prod.nit:4334 */
23988 goto label1;
23989 }
23990 /* parser/parser_prod.nit:4336 */
23991 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23992 if (UNTAG_Bool(REGB0)) {
23993 } else {
23994 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4336);
23995 }
23996 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
23997 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23998 if (UNTAG_Bool(REGB0)) {
23999 } else {
24000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24001 REGB0 = REGB1;
24002 }
24003 if (UNTAG_Bool(REGB0)) {
24004 /* parser/parser_prod.nit:4337 */
24005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24006 if (UNTAG_Bool(REGB0)) {
24007 } else {
24008 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24009 if (UNTAG_Bool(REGB1)) {
24010 REGB1 = TAG_Bool(0);
24011 REGB0 = REGB1;
24012 } else {
24013 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24014 REGB0 = REGB1;
24015 }
24016 }
24017 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24018 if (UNTAG_Bool(REGB0)) {
24019 /* parser/parser_prod.nit:4338 */
24020 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24021 if (UNTAG_Bool(REGB0)) {
24022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4338);
24023 }
24024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24025 /* parser/parser_prod.nit:4339 */
24026 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24027 if (UNTAG_Bool(REGB0)) {
24028 } else {
24029 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4339);
24030 }
24031 /* parser/parser_prod.nit:4340 */
24032 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24033 } else {
24034 /* parser/parser_prod.nit:4342 */
24035 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4342);
24036 }
24037 /* parser/parser_prod.nit:4344 */
24038 goto label1;
24039 }
24040 /* parser/parser_prod.nit:4346 */
24041 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
24042 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
24043 if (UNTAG_Bool(REGB0)) {
24044 } else {
24045 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24046 if (UNTAG_Bool(REGB1)) {
24047 REGB1 = TAG_Bool(0);
24048 REGB0 = REGB1;
24049 } else {
24050 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24051 REGB0 = REGB1;
24052 }
24053 }
24054 if (UNTAG_Bool(REGB0)) {
24055 /* parser/parser_prod.nit:4347 */
24056 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24057 if (UNTAG_Bool(REGB0)) {
24058 } else {
24059 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24060 if (UNTAG_Bool(REGB1)) {
24061 REGB1 = TAG_Bool(0);
24062 REGB0 = REGB1;
24063 } else {
24064 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24065 REGB0 = REGB1;
24066 }
24067 }
24068 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24069 if (UNTAG_Bool(REGB0)) {
24070 /* parser/parser_prod.nit:4348 */
24071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24072 if (UNTAG_Bool(REGB0)) {
24073 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4348);
24074 }
24075 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24076 /* parser/parser_prod.nit:4349 */
24077 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24078 if (UNTAG_Bool(REGB0)) {
24079 } else {
24080 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4349);
24081 }
24082 /* parser/parser_prod.nit:4350 */
24083 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
24084 } else {
24085 /* parser/parser_prod.nit:4352 */
24086 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
24087 }
24088 /* parser/parser_prod.nit:4354 */
24089 goto label1;
24090 }
24091 label1: while(0);
24092 stack_frame_head = fra.me.prev;
24093 return;
24094 }
24095 static const char LOCATE_parser___parser_prod___AAssertExpr___visit_all[] = "parser_prod::AAssertExpr::(parser_prod::ANode::visit_all)";
24096 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
24097 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24098 val_t REGB0;
24099 val_t REGB1;
24100 val_t tmp;
24101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24102 fra.me.file = LOCATE_parser___parser_prod;
24103 fra.me.line = 4358;
24104 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
24105 fra.me.has_broke = 0;
24106 fra.me.REG_size = 4;
24107 fra.me.nitni_local_ref_head = NULL;
24108 fra.me.REG[0] = NIT_NULL;
24109 fra.me.REG[1] = NIT_NULL;
24110 fra.me.REG[2] = NIT_NULL;
24111 fra.me.REG[3] = NIT_NULL;
24112 fra.me.REG[0] = p0;
24113 fra.me.REG[1] = p1;
24114 /* parser/parser_prod.nit:4358 */
24115 fra.me.REG[2] = fra.me.REG[0];
24116 /* parser/parser_prod.nit:4360 */
24117 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
24118 if (UNTAG_Bool(REGB0)) {
24119 } else {
24120 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4360);
24121 }
24122 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
24123 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24124 /* parser/parser_prod.nit:4361 */
24125 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
24126 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24127 if (UNTAG_Bool(REGB0)) {
24128 } else {
24129 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24130 if (UNTAG_Bool(REGB1)) {
24131 REGB1 = TAG_Bool(0);
24132 REGB0 = REGB1;
24133 } else {
24134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24135 REGB0 = REGB1;
24136 }
24137 }
24138 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24139 if (UNTAG_Bool(REGB0)) {
24140 /* parser/parser_prod.nit:4362 */
24141 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
24142 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*/;
24143 if (UNTAG_Bool(REGB0)) {
24144 } else {
24145 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4362);
24146 }
24147 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24148 }
24149 /* parser/parser_prod.nit:4364 */
24150 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
24151 if (UNTAG_Bool(REGB0)) {
24152 } else {
24153 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4364);
24154 }
24155 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
24156 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24157 /* parser/parser_prod.nit:4365 */
24158 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
24159 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24160 if (UNTAG_Bool(REGB0)) {
24161 } else {
24162 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24163 if (UNTAG_Bool(REGB1)) {
24164 REGB1 = TAG_Bool(0);
24165 REGB0 = REGB1;
24166 } else {
24167 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24168 REGB0 = REGB1;
24169 }
24170 }
24171 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24172 if (UNTAG_Bool(REGB0)) {
24173 /* parser/parser_prod.nit:4366 */
24174 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
24175 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24176 if (UNTAG_Bool(REGB0)) {
24177 } else {
24178 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4366);
24179 }
24180 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24181 }
24182 stack_frame_head = fra.me.prev;
24183 return;
24184 }
24185 static const char LOCATE_parser___parser_prod___AOnceExpr___empty_init[] = "parser_prod::AOnceExpr::empty_init";
24186 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
24187 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
24188 struct {struct stack_frame_t me;} fra;
24189 val_t tmp;
24190 if (init_table[itpos133]) return;
24191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24192 fra.me.file = LOCATE_parser___parser_prod;
24193 fra.me.line = 4371;
24194 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
24195 fra.me.has_broke = 0;
24196 fra.me.REG_size = 1;
24197 fra.me.nitni_local_ref_head = NULL;
24198 fra.me.REG[0] = NIT_NULL;
24199 fra.me.REG[0] = p0;
24200 stack_frame_head = fra.me.prev;
24201 init_table[itpos133] = 1;
24202 return;
24203 }
24204 static const char LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr[] = "parser_prod::AOnceExpr::init_aonceexpr";
24205 void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24206 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
24207 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24208 val_t REGB0;
24209 val_t tmp;
24210 if (init_table[itpos134]) return;
24211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24212 fra.me.file = LOCATE_parser___parser_prod;
24213 fra.me.line = 4373;
24214 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
24215 fra.me.has_broke = 0;
24216 fra.me.REG_size = 4;
24217 fra.me.nitni_local_ref_head = NULL;
24218 fra.me.REG[0] = NIT_NULL;
24219 fra.me.REG[1] = NIT_NULL;
24220 fra.me.REG[2] = NIT_NULL;
24221 fra.me.REG[3] = NIT_NULL;
24222 fra.me.REG[0] = p0;
24223 fra.me.REG[1] = p1;
24224 fra.me.REG[2] = p2;
24225 /* parser/parser_prod.nit:4373 */
24226 fra.me.REG[3] = fra.me.REG[0];
24227 /* parser/parser_prod.nit:4378 */
24228 CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24229 /* parser/parser_prod.nit:4379 */
24230 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24231 if (UNTAG_Bool(REGB0)) {
24232 } else {
24233 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4379);
24234 }
24235 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
24236 /* parser/parser_prod.nit:4380 */
24237 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24238 if (UNTAG_Bool(REGB0)) {
24239 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4380);
24240 }
24241 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24242 /* parser/parser_prod.nit:4381 */
24243 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24244 if (UNTAG_Bool(REGB0)) {
24245 } else {
24246 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4381);
24247 }
24248 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
24249 /* parser/parser_prod.nit:4382 */
24250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24251 if (UNTAG_Bool(REGB0)) {
24252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4382);
24253 }
24254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24255 stack_frame_head = fra.me.prev;
24256 init_table[itpos134] = 1;
24257 return;
24258 }
24259 static const char LOCATE_parser___parser_prod___AOnceExpr___replace_child[] = "parser_prod::AOnceExpr::(parser_prod::ANode::replace_child)";
24260 void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
24261 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24262 val_t REGB0;
24263 val_t REGB1;
24264 val_t tmp;
24265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24266 fra.me.file = LOCATE_parser___parser_prod;
24267 fra.me.line = 4385;
24268 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
24269 fra.me.has_broke = 0;
24270 fra.me.REG_size = 4;
24271 fra.me.nitni_local_ref_head = NULL;
24272 fra.me.REG[0] = NIT_NULL;
24273 fra.me.REG[1] = NIT_NULL;
24274 fra.me.REG[2] = NIT_NULL;
24275 fra.me.REG[3] = NIT_NULL;
24276 fra.me.REG[0] = p0;
24277 fra.me.REG[1] = p1;
24278 fra.me.REG[2] = p2;
24279 /* parser/parser_prod.nit:4387 */
24280 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
24281 if (UNTAG_Bool(REGB0)) {
24282 } else {
24283 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4387);
24284 }
24285 fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
24286 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24287 if (UNTAG_Bool(REGB0)) {
24288 } else {
24289 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24290 REGB0 = REGB1;
24291 }
24292 if (UNTAG_Bool(REGB0)) {
24293 /* parser/parser_prod.nit:4388 */
24294 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24295 if (UNTAG_Bool(REGB0)) {
24296 } else {
24297 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24298 if (UNTAG_Bool(REGB1)) {
24299 REGB1 = TAG_Bool(0);
24300 REGB0 = REGB1;
24301 } else {
24302 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24303 REGB0 = REGB1;
24304 }
24305 }
24306 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24307 if (UNTAG_Bool(REGB0)) {
24308 /* parser/parser_prod.nit:4389 */
24309 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24310 if (UNTAG_Bool(REGB0)) {
24311 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4389);
24312 }
24313 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24314 /* parser/parser_prod.nit:4390 */
24315 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*/;
24316 if (UNTAG_Bool(REGB0)) {
24317 } else {
24318 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4390);
24319 }
24320 /* parser/parser_prod.nit:4391 */
24321 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
24322 } else {
24323 /* parser/parser_prod.nit:4393 */
24324 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4393);
24325 }
24326 /* parser/parser_prod.nit:4395 */
24327 goto label1;
24328 }
24329 /* parser/parser_prod.nit:4397 */
24330 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24331 if (UNTAG_Bool(REGB0)) {
24332 } else {
24333 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4397);
24334 }
24335 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
24336 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24337 if (UNTAG_Bool(REGB0)) {
24338 } else {
24339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24340 REGB0 = REGB1;
24341 }
24342 if (UNTAG_Bool(REGB0)) {
24343 /* parser/parser_prod.nit:4398 */
24344 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24345 if (UNTAG_Bool(REGB0)) {
24346 } else {
24347 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24348 if (UNTAG_Bool(REGB1)) {
24349 REGB1 = TAG_Bool(0);
24350 REGB0 = REGB1;
24351 } else {
24352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24353 REGB0 = REGB1;
24354 }
24355 }
24356 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24357 if (UNTAG_Bool(REGB0)) {
24358 /* parser/parser_prod.nit:4399 */
24359 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24360 if (UNTAG_Bool(REGB0)) {
24361 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4399);
24362 }
24363 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24364 /* parser/parser_prod.nit:4400 */
24365 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24366 if (UNTAG_Bool(REGB0)) {
24367 } else {
24368 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4400);
24369 }
24370 /* parser/parser_prod.nit:4401 */
24371 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24372 } else {
24373 /* parser/parser_prod.nit:4403 */
24374 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4403);
24375 }
24376 /* parser/parser_prod.nit:4405 */
24377 goto label1;
24378 }
24379 label1: while(0);
24380 stack_frame_head = fra.me.prev;
24381 return;
24382 }
24383 static const char LOCATE_parser___parser_prod___AOnceExpr___visit_all[] = "parser_prod::AOnceExpr::(parser_prod::ANode::visit_all)";
24384 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
24385 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24386 val_t REGB0;
24387 val_t tmp;
24388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24389 fra.me.file = LOCATE_parser___parser_prod;
24390 fra.me.line = 4409;
24391 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
24392 fra.me.has_broke = 0;
24393 fra.me.REG_size = 3;
24394 fra.me.nitni_local_ref_head = NULL;
24395 fra.me.REG[0] = NIT_NULL;
24396 fra.me.REG[1] = NIT_NULL;
24397 fra.me.REG[2] = NIT_NULL;
24398 fra.me.REG[0] = p0;
24399 fra.me.REG[1] = p1;
24400 /* parser/parser_prod.nit:4411 */
24401 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
24402 if (UNTAG_Bool(REGB0)) {
24403 } else {
24404 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4411);
24405 }
24406 fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
24407 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24408 /* parser/parser_prod.nit:4412 */
24409 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____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, 4412);
24413 }
24414 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
24415 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24416 stack_frame_head = fra.me.prev;
24417 return;
24418 }
24419 static const char LOCATE_parser___parser_prod___ASendExpr___empty_init[] = "parser_prod::ASendExpr::empty_init";
24420 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
24421 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
24422 struct {struct stack_frame_t me;} fra;
24423 val_t tmp;
24424 if (init_table[itpos135]) return;
24425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24426 fra.me.file = LOCATE_parser___parser_prod;
24427 fra.me.line = 4416;
24428 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
24429 fra.me.has_broke = 0;
24430 fra.me.REG_size = 1;
24431 fra.me.nitni_local_ref_head = NULL;
24432 fra.me.REG[0] = NIT_NULL;
24433 fra.me.REG[0] = p0;
24434 stack_frame_head = fra.me.prev;
24435 init_table[itpos135] = 1;
24436 return;
24437 }
24438 static const char LOCATE_parser___parser_prod___ASendExpr___init_asendexpr[] = "parser_prod::ASendExpr::init_asendexpr";
24439 void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
24440 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
24441 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24442 val_t REGB0;
24443 val_t tmp;
24444 if (init_table[itpos136]) return;
24445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24446 fra.me.file = LOCATE_parser___parser_prod;
24447 fra.me.line = 4418;
24448 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
24449 fra.me.has_broke = 0;
24450 fra.me.REG_size = 3;
24451 fra.me.nitni_local_ref_head = NULL;
24452 fra.me.REG[0] = NIT_NULL;
24453 fra.me.REG[1] = NIT_NULL;
24454 fra.me.REG[2] = NIT_NULL;
24455 fra.me.REG[0] = p0;
24456 fra.me.REG[1] = p1;
24457 /* parser/parser_prod.nit:4418 */
24458 fra.me.REG[2] = fra.me.REG[0];
24459 /* parser/parser_prod.nit:4422 */
24460 CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
24461 /* parser/parser_prod.nit:4423 */
24462 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24463 if (UNTAG_Bool(REGB0)) {
24464 } else {
24465 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4423);
24466 }
24467 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
24468 /* parser/parser_prod.nit:4424 */
24469 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24470 if (UNTAG_Bool(REGB0)) {
24471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4424);
24472 }
24473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24474 stack_frame_head = fra.me.prev;
24475 init_table[itpos136] = 1;
24476 return;
24477 }
24478 static const char LOCATE_parser___parser_prod___ASendExpr___replace_child[] = "parser_prod::ASendExpr::(parser_prod::ANode::replace_child)";
24479 void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
24480 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24481 val_t REGB0;
24482 val_t REGB1;
24483 val_t tmp;
24484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24485 fra.me.file = LOCATE_parser___parser_prod;
24486 fra.me.line = 4427;
24487 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
24488 fra.me.has_broke = 0;
24489 fra.me.REG_size = 4;
24490 fra.me.nitni_local_ref_head = NULL;
24491 fra.me.REG[0] = NIT_NULL;
24492 fra.me.REG[1] = NIT_NULL;
24493 fra.me.REG[2] = NIT_NULL;
24494 fra.me.REG[3] = NIT_NULL;
24495 fra.me.REG[0] = p0;
24496 fra.me.REG[1] = p1;
24497 fra.me.REG[2] = p2;
24498 /* parser/parser_prod.nit:4429 */
24499 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24500 if (UNTAG_Bool(REGB0)) {
24501 } else {
24502 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4429);
24503 }
24504 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24505 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24506 if (UNTAG_Bool(REGB0)) {
24507 } else {
24508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24509 REGB0 = REGB1;
24510 }
24511 if (UNTAG_Bool(REGB0)) {
24512 /* parser/parser_prod.nit:4430 */
24513 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24514 if (UNTAG_Bool(REGB0)) {
24515 } else {
24516 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24517 if (UNTAG_Bool(REGB1)) {
24518 REGB1 = TAG_Bool(0);
24519 REGB0 = REGB1;
24520 } else {
24521 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24522 REGB0 = REGB1;
24523 }
24524 }
24525 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24526 if (UNTAG_Bool(REGB0)) {
24527 /* parser/parser_prod.nit:4431 */
24528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24529 if (UNTAG_Bool(REGB0)) {
24530 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4431);
24531 }
24532 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24533 /* parser/parser_prod.nit:4432 */
24534 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24535 if (UNTAG_Bool(REGB0)) {
24536 } else {
24537 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4432);
24538 }
24539 /* parser/parser_prod.nit:4433 */
24540 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24541 } else {
24542 /* parser/parser_prod.nit:4435 */
24543 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4435);
24544 }
24545 /* parser/parser_prod.nit:4437 */
24546 goto label1;
24547 }
24548 label1: while(0);
24549 stack_frame_head = fra.me.prev;
24550 return;
24551 }
24552 static const char LOCATE_parser___parser_prod___ASendExpr___visit_all[] = "parser_prod::ASendExpr::(parser_prod::ANode::visit_all)";
24553 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
24554 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24555 val_t REGB0;
24556 val_t tmp;
24557 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24558 fra.me.file = LOCATE_parser___parser_prod;
24559 fra.me.line = 4441;
24560 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
24561 fra.me.has_broke = 0;
24562 fra.me.REG_size = 2;
24563 fra.me.nitni_local_ref_head = NULL;
24564 fra.me.REG[0] = NIT_NULL;
24565 fra.me.REG[1] = NIT_NULL;
24566 fra.me.REG[0] = p0;
24567 fra.me.REG[1] = p1;
24568 /* parser/parser_prod.nit:4443 */
24569 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24570 if (UNTAG_Bool(REGB0)) {
24571 } else {
24572 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4443);
24573 }
24574 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24575 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24576 stack_frame_head = fra.me.prev;
24577 return;
24578 }
24579 static const char LOCATE_parser___parser_prod___ABinopExpr___empty_init[] = "parser_prod::ABinopExpr::empty_init";
24580 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
24581 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
24582 struct {struct stack_frame_t me;} fra;
24583 val_t tmp;
24584 if (init_table[itpos137]) return;
24585 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24586 fra.me.file = LOCATE_parser___parser_prod;
24587 fra.me.line = 4447;
24588 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
24589 fra.me.has_broke = 0;
24590 fra.me.REG_size = 1;
24591 fra.me.nitni_local_ref_head = NULL;
24592 fra.me.REG[0] = NIT_NULL;
24593 fra.me.REG[0] = p0;
24594 stack_frame_head = fra.me.prev;
24595 init_table[itpos137] = 1;
24596 return;
24597 }
24598 static const char LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr[] = "parser_prod::ABinopExpr::init_abinopexpr";
24599 void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24600 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
24601 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24602 val_t REGB0;
24603 val_t tmp;
24604 if (init_table[itpos138]) return;
24605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24606 fra.me.file = LOCATE_parser___parser_prod;
24607 fra.me.line = 4449;
24608 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
24609 fra.me.has_broke = 0;
24610 fra.me.REG_size = 4;
24611 fra.me.nitni_local_ref_head = NULL;
24612 fra.me.REG[0] = NIT_NULL;
24613 fra.me.REG[1] = NIT_NULL;
24614 fra.me.REG[2] = NIT_NULL;
24615 fra.me.REG[3] = NIT_NULL;
24616 fra.me.REG[0] = p0;
24617 fra.me.REG[1] = p1;
24618 fra.me.REG[2] = p2;
24619 /* parser/parser_prod.nit:4449 */
24620 fra.me.REG[3] = fra.me.REG[0];
24621 /* parser/parser_prod.nit:4454 */
24622 CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24623 /* parser/parser_prod.nit:4455 */
24624 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24625 if (UNTAG_Bool(REGB0)) {
24626 } else {
24627 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4455);
24628 }
24629 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24630 /* parser/parser_prod.nit:4456 */
24631 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24632 if (UNTAG_Bool(REGB0)) {
24633 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4456);
24634 }
24635 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24636 /* parser/parser_prod.nit:4457 */
24637 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24638 if (UNTAG_Bool(REGB0)) {
24639 } else {
24640 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4457);
24641 }
24642 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24643 /* parser/parser_prod.nit:4458 */
24644 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24645 if (UNTAG_Bool(REGB0)) {
24646 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4458);
24647 }
24648 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24649 stack_frame_head = fra.me.prev;
24650 init_table[itpos138] = 1;
24651 return;
24652 }
24653 static const char LOCATE_parser___parser_prod___ABinopExpr___replace_child[] = "parser_prod::ABinopExpr::(parser_prod::ANode::replace_child)";
24654 void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
24655 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24656 val_t REGB0;
24657 val_t REGB1;
24658 val_t tmp;
24659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24660 fra.me.file = LOCATE_parser___parser_prod;
24661 fra.me.line = 4461;
24662 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
24663 fra.me.has_broke = 0;
24664 fra.me.REG_size = 4;
24665 fra.me.nitni_local_ref_head = NULL;
24666 fra.me.REG[0] = NIT_NULL;
24667 fra.me.REG[1] = NIT_NULL;
24668 fra.me.REG[2] = NIT_NULL;
24669 fra.me.REG[3] = NIT_NULL;
24670 fra.me.REG[0] = p0;
24671 fra.me.REG[1] = p1;
24672 fra.me.REG[2] = p2;
24673 /* parser/parser_prod.nit:4463 */
24674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24675 if (UNTAG_Bool(REGB0)) {
24676 } else {
24677 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4463);
24678 }
24679 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24680 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24681 if (UNTAG_Bool(REGB0)) {
24682 } else {
24683 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24684 REGB0 = REGB1;
24685 }
24686 if (UNTAG_Bool(REGB0)) {
24687 /* parser/parser_prod.nit:4464 */
24688 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24689 if (UNTAG_Bool(REGB0)) {
24690 } else {
24691 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24692 if (UNTAG_Bool(REGB1)) {
24693 REGB1 = TAG_Bool(0);
24694 REGB0 = REGB1;
24695 } else {
24696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24697 REGB0 = REGB1;
24698 }
24699 }
24700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24701 if (UNTAG_Bool(REGB0)) {
24702 /* parser/parser_prod.nit:4465 */
24703 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24704 if (UNTAG_Bool(REGB0)) {
24705 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4465);
24706 }
24707 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24708 /* parser/parser_prod.nit:4466 */
24709 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24710 if (UNTAG_Bool(REGB0)) {
24711 } else {
24712 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4466);
24713 }
24714 /* parser/parser_prod.nit:4467 */
24715 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24716 } else {
24717 /* parser/parser_prod.nit:4469 */
24718 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4469);
24719 }
24720 /* parser/parser_prod.nit:4471 */
24721 goto label1;
24722 }
24723 /* parser/parser_prod.nit:4473 */
24724 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24725 if (UNTAG_Bool(REGB0)) {
24726 } else {
24727 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4473);
24728 }
24729 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24730 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24731 if (UNTAG_Bool(REGB0)) {
24732 } else {
24733 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24734 REGB0 = REGB1;
24735 }
24736 if (UNTAG_Bool(REGB0)) {
24737 /* parser/parser_prod.nit:4474 */
24738 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24739 if (UNTAG_Bool(REGB0)) {
24740 } else {
24741 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24742 if (UNTAG_Bool(REGB1)) {
24743 REGB1 = TAG_Bool(0);
24744 REGB0 = REGB1;
24745 } else {
24746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24747 REGB0 = REGB1;
24748 }
24749 }
24750 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24751 if (UNTAG_Bool(REGB0)) {
24752 /* parser/parser_prod.nit:4475 */
24753 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24754 if (UNTAG_Bool(REGB0)) {
24755 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4475);
24756 }
24757 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24758 /* parser/parser_prod.nit:4476 */
24759 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24760 if (UNTAG_Bool(REGB0)) {
24761 } else {
24762 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4476);
24763 }
24764 /* parser/parser_prod.nit:4477 */
24765 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24766 } else {
24767 /* parser/parser_prod.nit:4479 */
24768 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4479);
24769 }
24770 /* parser/parser_prod.nit:4481 */
24771 goto label1;
24772 }
24773 label1: while(0);
24774 stack_frame_head = fra.me.prev;
24775 return;
24776 }
24777 static const char LOCATE_parser___parser_prod___ABinopExpr___visit_all[] = "parser_prod::ABinopExpr::(parser_prod::ANode::visit_all)";
24778 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
24779 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24780 val_t REGB0;
24781 val_t tmp;
24782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24783 fra.me.file = LOCATE_parser___parser_prod;
24784 fra.me.line = 4485;
24785 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
24786 fra.me.has_broke = 0;
24787 fra.me.REG_size = 3;
24788 fra.me.nitni_local_ref_head = NULL;
24789 fra.me.REG[0] = NIT_NULL;
24790 fra.me.REG[1] = NIT_NULL;
24791 fra.me.REG[2] = NIT_NULL;
24792 fra.me.REG[0] = p0;
24793 fra.me.REG[1] = p1;
24794 /* parser/parser_prod.nit:4487 */
24795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24796 if (UNTAG_Bool(REGB0)) {
24797 } else {
24798 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4487);
24799 }
24800 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24802 /* parser/parser_prod.nit:4488 */
24803 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24804 if (UNTAG_Bool(REGB0)) {
24805 } else {
24806 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4488);
24807 }
24808 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24809 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24810 stack_frame_head = fra.me.prev;
24811 return;
24812 }
24813 static const char LOCATE_parser___parser_prod___AOrExpr___empty_init[] = "parser_prod::AOrExpr::empty_init";
24814 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
24815 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
24816 struct {struct stack_frame_t me;} fra;
24817 val_t tmp;
24818 if (init_table[itpos139]) return;
24819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24820 fra.me.file = LOCATE_parser___parser_prod;
24821 fra.me.line = 4492;
24822 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
24823 fra.me.has_broke = 0;
24824 fra.me.REG_size = 1;
24825 fra.me.nitni_local_ref_head = NULL;
24826 fra.me.REG[0] = NIT_NULL;
24827 fra.me.REG[0] = p0;
24828 stack_frame_head = fra.me.prev;
24829 init_table[itpos139] = 1;
24830 return;
24831 }
24832 static const char LOCATE_parser___parser_prod___AOrExpr___init_aorexpr[] = "parser_prod::AOrExpr::init_aorexpr";
24833 void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24834 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
24835 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24836 val_t REGB0;
24837 val_t tmp;
24838 if (init_table[itpos140]) return;
24839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24840 fra.me.file = LOCATE_parser___parser_prod;
24841 fra.me.line = 4494;
24842 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
24843 fra.me.has_broke = 0;
24844 fra.me.REG_size = 4;
24845 fra.me.nitni_local_ref_head = NULL;
24846 fra.me.REG[0] = NIT_NULL;
24847 fra.me.REG[1] = NIT_NULL;
24848 fra.me.REG[2] = NIT_NULL;
24849 fra.me.REG[3] = NIT_NULL;
24850 fra.me.REG[0] = p0;
24851 fra.me.REG[1] = p1;
24852 fra.me.REG[2] = p2;
24853 /* parser/parser_prod.nit:4494 */
24854 fra.me.REG[3] = fra.me.REG[0];
24855 /* parser/parser_prod.nit:4499 */
24856 CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24857 /* parser/parser_prod.nit:4500 */
24858 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24859 if (UNTAG_Bool(REGB0)) {
24860 } else {
24861 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4500);
24862 }
24863 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24864 /* parser/parser_prod.nit:4501 */
24865 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24866 if (UNTAG_Bool(REGB0)) {
24867 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4501);
24868 }
24869 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24870 /* parser/parser_prod.nit:4502 */
24871 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24872 if (UNTAG_Bool(REGB0)) {
24873 } else {
24874 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4502);
24875 }
24876 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24877 /* parser/parser_prod.nit:4503 */
24878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24879 if (UNTAG_Bool(REGB0)) {
24880 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4503);
24881 }
24882 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24883 stack_frame_head = fra.me.prev;
24884 init_table[itpos140] = 1;
24885 return;
24886 }
24887 static const char LOCATE_parser___parser_prod___AOrExpr___replace_child[] = "parser_prod::AOrExpr::(parser_prod::ANode::replace_child)";
24888 void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
24889 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24890 val_t REGB0;
24891 val_t REGB1;
24892 val_t tmp;
24893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24894 fra.me.file = LOCATE_parser___parser_prod;
24895 fra.me.line = 4506;
24896 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
24897 fra.me.has_broke = 0;
24898 fra.me.REG_size = 4;
24899 fra.me.nitni_local_ref_head = NULL;
24900 fra.me.REG[0] = NIT_NULL;
24901 fra.me.REG[1] = NIT_NULL;
24902 fra.me.REG[2] = NIT_NULL;
24903 fra.me.REG[3] = NIT_NULL;
24904 fra.me.REG[0] = p0;
24905 fra.me.REG[1] = p1;
24906 fra.me.REG[2] = p2;
24907 /* parser/parser_prod.nit:4508 */
24908 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24909 if (UNTAG_Bool(REGB0)) {
24910 } else {
24911 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4508);
24912 }
24913 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
24914 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24915 if (UNTAG_Bool(REGB0)) {
24916 } else {
24917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24918 REGB0 = REGB1;
24919 }
24920 if (UNTAG_Bool(REGB0)) {
24921 /* parser/parser_prod.nit:4509 */
24922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24923 if (UNTAG_Bool(REGB0)) {
24924 } else {
24925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24926 if (UNTAG_Bool(REGB1)) {
24927 REGB1 = TAG_Bool(0);
24928 REGB0 = REGB1;
24929 } else {
24930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24931 REGB0 = REGB1;
24932 }
24933 }
24934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24935 if (UNTAG_Bool(REGB0)) {
24936 /* parser/parser_prod.nit:4510 */
24937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24938 if (UNTAG_Bool(REGB0)) {
24939 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4510);
24940 }
24941 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24942 /* parser/parser_prod.nit:4511 */
24943 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24944 if (UNTAG_Bool(REGB0)) {
24945 } else {
24946 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4511);
24947 }
24948 /* parser/parser_prod.nit:4512 */
24949 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24950 } else {
24951 /* parser/parser_prod.nit:4514 */
24952 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4514);
24953 }
24954 /* parser/parser_prod.nit:4516 */
24955 goto label1;
24956 }
24957 /* parser/parser_prod.nit:4518 */
24958 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24959 if (UNTAG_Bool(REGB0)) {
24960 } else {
24961 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4518);
24962 }
24963 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
24964 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24965 if (UNTAG_Bool(REGB0)) {
24966 } else {
24967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24968 REGB0 = REGB1;
24969 }
24970 if (UNTAG_Bool(REGB0)) {
24971 /* parser/parser_prod.nit:4519 */
24972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24973 if (UNTAG_Bool(REGB0)) {
24974 } else {
24975 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24976 if (UNTAG_Bool(REGB1)) {
24977 REGB1 = TAG_Bool(0);
24978 REGB0 = REGB1;
24979 } else {
24980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24981 REGB0 = REGB1;
24982 }
24983 }
24984 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24985 if (UNTAG_Bool(REGB0)) {
24986 /* parser/parser_prod.nit:4520 */
24987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24988 if (UNTAG_Bool(REGB0)) {
24989 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4520);
24990 }
24991 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24992 /* parser/parser_prod.nit:4521 */
24993 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24994 if (UNTAG_Bool(REGB0)) {
24995 } else {
24996 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4521);
24997 }
24998 /* parser/parser_prod.nit:4522 */
24999 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25000 } else {
25001 /* parser/parser_prod.nit:4524 */
25002 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4524);
25003 }
25004 /* parser/parser_prod.nit:4526 */
25005 goto label1;
25006 }
25007 label1: while(0);
25008 stack_frame_head = fra.me.prev;
25009 return;
25010 }
25011 static const char LOCATE_parser___parser_prod___AOrExpr___visit_all[] = "parser_prod::AOrExpr::(parser_prod::ANode::visit_all)";
25012 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
25013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25014 val_t REGB0;
25015 val_t tmp;
25016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25017 fra.me.file = LOCATE_parser___parser_prod;
25018 fra.me.line = 4530;
25019 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
25020 fra.me.has_broke = 0;
25021 fra.me.REG_size = 3;
25022 fra.me.nitni_local_ref_head = NULL;
25023 fra.me.REG[0] = NIT_NULL;
25024 fra.me.REG[1] = NIT_NULL;
25025 fra.me.REG[2] = NIT_NULL;
25026 fra.me.REG[0] = p0;
25027 fra.me.REG[1] = p1;
25028 /* parser/parser_prod.nit:4532 */
25029 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25030 if (UNTAG_Bool(REGB0)) {
25031 } else {
25032 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4532);
25033 }
25034 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
25035 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25036 /* parser/parser_prod.nit:4533 */
25037 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25038 if (UNTAG_Bool(REGB0)) {
25039 } else {
25040 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4533);
25041 }
25042 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
25043 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25044 stack_frame_head = fra.me.prev;
25045 return;
25046 }
25047 static const char LOCATE_parser___parser_prod___AAndExpr___empty_init[] = "parser_prod::AAndExpr::empty_init";
25048 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
25049 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
25050 struct {struct stack_frame_t me;} fra;
25051 val_t tmp;
25052 if (init_table[itpos141]) return;
25053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25054 fra.me.file = LOCATE_parser___parser_prod;
25055 fra.me.line = 4537;
25056 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
25057 fra.me.has_broke = 0;
25058 fra.me.REG_size = 1;
25059 fra.me.nitni_local_ref_head = NULL;
25060 fra.me.REG[0] = NIT_NULL;
25061 fra.me.REG[0] = p0;
25062 stack_frame_head = fra.me.prev;
25063 init_table[itpos141] = 1;
25064 return;
25065 }
25066 static const char LOCATE_parser___parser_prod___AAndExpr___init_aandexpr[] = "parser_prod::AAndExpr::init_aandexpr";
25067 void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25068 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
25069 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25070 val_t REGB0;
25071 val_t tmp;
25072 if (init_table[itpos142]) return;
25073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25074 fra.me.file = LOCATE_parser___parser_prod;
25075 fra.me.line = 4539;
25076 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
25077 fra.me.has_broke = 0;
25078 fra.me.REG_size = 4;
25079 fra.me.nitni_local_ref_head = NULL;
25080 fra.me.REG[0] = NIT_NULL;
25081 fra.me.REG[1] = NIT_NULL;
25082 fra.me.REG[2] = NIT_NULL;
25083 fra.me.REG[3] = NIT_NULL;
25084 fra.me.REG[0] = p0;
25085 fra.me.REG[1] = p1;
25086 fra.me.REG[2] = p2;
25087 /* parser/parser_prod.nit:4539 */
25088 fra.me.REG[3] = fra.me.REG[0];
25089 /* parser/parser_prod.nit:4544 */
25090 CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25091 /* parser/parser_prod.nit:4545 */
25092 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25093 if (UNTAG_Bool(REGB0)) {
25094 } else {
25095 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4545);
25096 }
25097 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25098 /* parser/parser_prod.nit:4546 */
25099 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25100 if (UNTAG_Bool(REGB0)) {
25101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4546);
25102 }
25103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25104 /* parser/parser_prod.nit:4547 */
25105 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25106 if (UNTAG_Bool(REGB0)) {
25107 } else {
25108 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4547);
25109 }
25110 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25111 /* parser/parser_prod.nit:4548 */
25112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25113 if (UNTAG_Bool(REGB0)) {
25114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4548);
25115 }
25116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25117 stack_frame_head = fra.me.prev;
25118 init_table[itpos142] = 1;
25119 return;
25120 }
25121 static const char LOCATE_parser___parser_prod___AAndExpr___replace_child[] = "parser_prod::AAndExpr::(parser_prod::ANode::replace_child)";
25122 void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
25123 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25124 val_t REGB0;
25125 val_t REGB1;
25126 val_t tmp;
25127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25128 fra.me.file = LOCATE_parser___parser_prod;
25129 fra.me.line = 4551;
25130 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
25131 fra.me.has_broke = 0;
25132 fra.me.REG_size = 4;
25133 fra.me.nitni_local_ref_head = NULL;
25134 fra.me.REG[0] = NIT_NULL;
25135 fra.me.REG[1] = NIT_NULL;
25136 fra.me.REG[2] = NIT_NULL;
25137 fra.me.REG[3] = NIT_NULL;
25138 fra.me.REG[0] = p0;
25139 fra.me.REG[1] = p1;
25140 fra.me.REG[2] = p2;
25141 /* parser/parser_prod.nit:4553 */
25142 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25143 if (UNTAG_Bool(REGB0)) {
25144 } else {
25145 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4553);
25146 }
25147 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
25148 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25149 if (UNTAG_Bool(REGB0)) {
25150 } else {
25151 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25152 REGB0 = REGB1;
25153 }
25154 if (UNTAG_Bool(REGB0)) {
25155 /* parser/parser_prod.nit:4554 */
25156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25157 if (UNTAG_Bool(REGB0)) {
25158 } else {
25159 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25160 if (UNTAG_Bool(REGB1)) {
25161 REGB1 = TAG_Bool(0);
25162 REGB0 = REGB1;
25163 } else {
25164 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25165 REGB0 = REGB1;
25166 }
25167 }
25168 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25169 if (UNTAG_Bool(REGB0)) {
25170 /* parser/parser_prod.nit:4555 */
25171 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25172 if (UNTAG_Bool(REGB0)) {
25173 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4555);
25174 }
25175 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25176 /* parser/parser_prod.nit:4556 */
25177 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25178 if (UNTAG_Bool(REGB0)) {
25179 } else {
25180 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4556);
25181 }
25182 /* parser/parser_prod.nit:4557 */
25183 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25184 } else {
25185 /* parser/parser_prod.nit:4559 */
25186 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4559);
25187 }
25188 /* parser/parser_prod.nit:4561 */
25189 goto label1;
25190 }
25191 /* parser/parser_prod.nit:4563 */
25192 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25193 if (UNTAG_Bool(REGB0)) {
25194 } else {
25195 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4563);
25196 }
25197 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
25198 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25199 if (UNTAG_Bool(REGB0)) {
25200 } else {
25201 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25202 REGB0 = REGB1;
25203 }
25204 if (UNTAG_Bool(REGB0)) {
25205 /* parser/parser_prod.nit:4564 */
25206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25207 if (UNTAG_Bool(REGB0)) {
25208 } else {
25209 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25210 if (UNTAG_Bool(REGB1)) {
25211 REGB1 = TAG_Bool(0);
25212 REGB0 = REGB1;
25213 } else {
25214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25215 REGB0 = REGB1;
25216 }
25217 }
25218 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25219 if (UNTAG_Bool(REGB0)) {
25220 /* parser/parser_prod.nit:4565 */
25221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25222 if (UNTAG_Bool(REGB0)) {
25223 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4565);
25224 }
25225 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25226 /* parser/parser_prod.nit:4566 */
25227 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25228 if (UNTAG_Bool(REGB0)) {
25229 } else {
25230 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4566);
25231 }
25232 /* parser/parser_prod.nit:4567 */
25233 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25234 } else {
25235 /* parser/parser_prod.nit:4569 */
25236 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4569);
25237 }
25238 /* parser/parser_prod.nit:4571 */
25239 goto label1;
25240 }
25241 label1: while(0);
25242 stack_frame_head = fra.me.prev;
25243 return;
25244 }
25245 static const char LOCATE_parser___parser_prod___AAndExpr___visit_all[] = "parser_prod::AAndExpr::(parser_prod::ANode::visit_all)";
25246 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
25247 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25248 val_t REGB0;
25249 val_t tmp;
25250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25251 fra.me.file = LOCATE_parser___parser_prod;
25252 fra.me.line = 4575;
25253 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
25254 fra.me.has_broke = 0;
25255 fra.me.REG_size = 3;
25256 fra.me.nitni_local_ref_head = NULL;
25257 fra.me.REG[0] = NIT_NULL;
25258 fra.me.REG[1] = NIT_NULL;
25259 fra.me.REG[2] = NIT_NULL;
25260 fra.me.REG[0] = p0;
25261 fra.me.REG[1] = p1;
25262 /* parser/parser_prod.nit:4577 */
25263 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25264 if (UNTAG_Bool(REGB0)) {
25265 } else {
25266 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4577);
25267 }
25268 fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
25269 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25270 /* parser/parser_prod.nit:4578 */
25271 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25272 if (UNTAG_Bool(REGB0)) {
25273 } else {
25274 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4578);
25275 }
25276 fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
25277 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25278 stack_frame_head = fra.me.prev;
25279 return;
25280 }
25281 static const char LOCATE_parser___parser_prod___AOrElseExpr___empty_init[] = "parser_prod::AOrElseExpr::empty_init";
25282 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
25283 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
25284 struct {struct stack_frame_t me;} fra;
25285 val_t tmp;
25286 if (init_table[itpos143]) return;
25287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25288 fra.me.file = LOCATE_parser___parser_prod;
25289 fra.me.line = 4582;
25290 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
25291 fra.me.has_broke = 0;
25292 fra.me.REG_size = 1;
25293 fra.me.nitni_local_ref_head = NULL;
25294 fra.me.REG[0] = NIT_NULL;
25295 fra.me.REG[0] = p0;
25296 stack_frame_head = fra.me.prev;
25297 init_table[itpos143] = 1;
25298 return;
25299 }
25300 static const char LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr[] = "parser_prod::AOrElseExpr::init_aorelseexpr";
25301 void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25302 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
25303 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25304 val_t REGB0;
25305 val_t tmp;
25306 if (init_table[itpos144]) return;
25307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25308 fra.me.file = LOCATE_parser___parser_prod;
25309 fra.me.line = 4584;
25310 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
25311 fra.me.has_broke = 0;
25312 fra.me.REG_size = 4;
25313 fra.me.nitni_local_ref_head = NULL;
25314 fra.me.REG[0] = NIT_NULL;
25315 fra.me.REG[1] = NIT_NULL;
25316 fra.me.REG[2] = NIT_NULL;
25317 fra.me.REG[3] = NIT_NULL;
25318 fra.me.REG[0] = p0;
25319 fra.me.REG[1] = p1;
25320 fra.me.REG[2] = p2;
25321 /* parser/parser_prod.nit:4584 */
25322 fra.me.REG[3] = fra.me.REG[0];
25323 /* parser/parser_prod.nit:4589 */
25324 CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25325 /* parser/parser_prod.nit:4590 */
25326 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25327 if (UNTAG_Bool(REGB0)) {
25328 } else {
25329 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4590);
25330 }
25331 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25332 /* parser/parser_prod.nit:4591 */
25333 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25334 if (UNTAG_Bool(REGB0)) {
25335 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4591);
25336 }
25337 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25338 /* parser/parser_prod.nit:4592 */
25339 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25340 if (UNTAG_Bool(REGB0)) {
25341 } else {
25342 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4592);
25343 }
25344 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25345 /* parser/parser_prod.nit:4593 */
25346 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25347 if (UNTAG_Bool(REGB0)) {
25348 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4593);
25349 }
25350 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25351 stack_frame_head = fra.me.prev;
25352 init_table[itpos144] = 1;
25353 return;
25354 }
25355 static const char LOCATE_parser___parser_prod___AOrElseExpr___replace_child[] = "parser_prod::AOrElseExpr::(parser_prod::ANode::replace_child)";
25356 void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
25357 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25358 val_t REGB0;
25359 val_t REGB1;
25360 val_t tmp;
25361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25362 fra.me.file = LOCATE_parser___parser_prod;
25363 fra.me.line = 4596;
25364 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
25365 fra.me.has_broke = 0;
25366 fra.me.REG_size = 4;
25367 fra.me.nitni_local_ref_head = NULL;
25368 fra.me.REG[0] = NIT_NULL;
25369 fra.me.REG[1] = NIT_NULL;
25370 fra.me.REG[2] = NIT_NULL;
25371 fra.me.REG[3] = NIT_NULL;
25372 fra.me.REG[0] = p0;
25373 fra.me.REG[1] = p1;
25374 fra.me.REG[2] = p2;
25375 /* parser/parser_prod.nit:4598 */
25376 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25377 if (UNTAG_Bool(REGB0)) {
25378 } else {
25379 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4598);
25380 }
25381 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
25382 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25383 if (UNTAG_Bool(REGB0)) {
25384 } else {
25385 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25386 REGB0 = REGB1;
25387 }
25388 if (UNTAG_Bool(REGB0)) {
25389 /* parser/parser_prod.nit:4599 */
25390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25391 if (UNTAG_Bool(REGB0)) {
25392 } else {
25393 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25394 if (UNTAG_Bool(REGB1)) {
25395 REGB1 = TAG_Bool(0);
25396 REGB0 = REGB1;
25397 } else {
25398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25399 REGB0 = REGB1;
25400 }
25401 }
25402 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25403 if (UNTAG_Bool(REGB0)) {
25404 /* parser/parser_prod.nit:4600 */
25405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25406 if (UNTAG_Bool(REGB0)) {
25407 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4600);
25408 }
25409 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25410 /* parser/parser_prod.nit:4601 */
25411 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25412 if (UNTAG_Bool(REGB0)) {
25413 } else {
25414 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4601);
25415 }
25416 /* parser/parser_prod.nit:4602 */
25417 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25418 } else {
25419 /* parser/parser_prod.nit:4604 */
25420 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4604);
25421 }
25422 /* parser/parser_prod.nit:4606 */
25423 goto label1;
25424 }
25425 /* parser/parser_prod.nit:4608 */
25426 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25427 if (UNTAG_Bool(REGB0)) {
25428 } else {
25429 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4608);
25430 }
25431 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
25432 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25433 if (UNTAG_Bool(REGB0)) {
25434 } else {
25435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25436 REGB0 = REGB1;
25437 }
25438 if (UNTAG_Bool(REGB0)) {
25439 /* parser/parser_prod.nit:4609 */
25440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25441 if (UNTAG_Bool(REGB0)) {
25442 } else {
25443 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25444 if (UNTAG_Bool(REGB1)) {
25445 REGB1 = TAG_Bool(0);
25446 REGB0 = REGB1;
25447 } else {
25448 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25449 REGB0 = REGB1;
25450 }
25451 }
25452 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25453 if (UNTAG_Bool(REGB0)) {
25454 /* parser/parser_prod.nit:4610 */
25455 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25456 if (UNTAG_Bool(REGB0)) {
25457 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4610);
25458 }
25459 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25460 /* parser/parser_prod.nit:4611 */
25461 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25462 if (UNTAG_Bool(REGB0)) {
25463 } else {
25464 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4611);
25465 }
25466 /* parser/parser_prod.nit:4612 */
25467 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25468 } else {
25469 /* parser/parser_prod.nit:4614 */
25470 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4614);
25471 }
25472 /* parser/parser_prod.nit:4616 */
25473 goto label1;
25474 }
25475 label1: while(0);
25476 stack_frame_head = fra.me.prev;
25477 return;
25478 }
25479 static const char LOCATE_parser___parser_prod___AOrElseExpr___visit_all[] = "parser_prod::AOrElseExpr::(parser_prod::ANode::visit_all)";
25480 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
25481 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25482 val_t REGB0;
25483 val_t tmp;
25484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25485 fra.me.file = LOCATE_parser___parser_prod;
25486 fra.me.line = 4620;
25487 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
25488 fra.me.has_broke = 0;
25489 fra.me.REG_size = 3;
25490 fra.me.nitni_local_ref_head = NULL;
25491 fra.me.REG[0] = NIT_NULL;
25492 fra.me.REG[1] = NIT_NULL;
25493 fra.me.REG[2] = NIT_NULL;
25494 fra.me.REG[0] = p0;
25495 fra.me.REG[1] = p1;
25496 /* parser/parser_prod.nit:4622 */
25497 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25498 if (UNTAG_Bool(REGB0)) {
25499 } else {
25500 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4622);
25501 }
25502 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
25503 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25504 /* parser/parser_prod.nit:4623 */
25505 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25506 if (UNTAG_Bool(REGB0)) {
25507 } else {
25508 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4623);
25509 }
25510 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
25511 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25512 stack_frame_head = fra.me.prev;
25513 return;
25514 }
25515 static const char LOCATE_parser___parser_prod___ANotExpr___empty_init[] = "parser_prod::ANotExpr::empty_init";
25516 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
25517 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
25518 struct {struct stack_frame_t me;} fra;
25519 val_t tmp;
25520 if (init_table[itpos145]) return;
25521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25522 fra.me.file = LOCATE_parser___parser_prod;
25523 fra.me.line = 4627;
25524 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
25525 fra.me.has_broke = 0;
25526 fra.me.REG_size = 1;
25527 fra.me.nitni_local_ref_head = NULL;
25528 fra.me.REG[0] = NIT_NULL;
25529 fra.me.REG[0] = p0;
25530 stack_frame_head = fra.me.prev;
25531 init_table[itpos145] = 1;
25532 return;
25533 }
25534 static const char LOCATE_parser___parser_prod___ANotExpr___init_anotexpr[] = "parser_prod::ANotExpr::init_anotexpr";
25535 void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25536 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
25537 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25538 val_t REGB0;
25539 val_t tmp;
25540 if (init_table[itpos146]) return;
25541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25542 fra.me.file = LOCATE_parser___parser_prod;
25543 fra.me.line = 4629;
25544 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
25545 fra.me.has_broke = 0;
25546 fra.me.REG_size = 4;
25547 fra.me.nitni_local_ref_head = NULL;
25548 fra.me.REG[0] = NIT_NULL;
25549 fra.me.REG[1] = NIT_NULL;
25550 fra.me.REG[2] = NIT_NULL;
25551 fra.me.REG[3] = NIT_NULL;
25552 fra.me.REG[0] = p0;
25553 fra.me.REG[1] = p1;
25554 fra.me.REG[2] = p2;
25555 /* parser/parser_prod.nit:4629 */
25556 fra.me.REG[3] = fra.me.REG[0];
25557 /* parser/parser_prod.nit:4634 */
25558 CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25559 /* parser/parser_prod.nit:4635 */
25560 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25561 if (UNTAG_Bool(REGB0)) {
25562 } else {
25563 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4635);
25564 }
25565 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
25566 /* parser/parser_prod.nit:4636 */
25567 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25568 if (UNTAG_Bool(REGB0)) {
25569 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4636);
25570 }
25571 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25572 /* parser/parser_prod.nit:4637 */
25573 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25574 if (UNTAG_Bool(REGB0)) {
25575 } else {
25576 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4637);
25577 }
25578 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
25579 /* parser/parser_prod.nit:4638 */
25580 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25581 if (UNTAG_Bool(REGB0)) {
25582 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4638);
25583 }
25584 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25585 stack_frame_head = fra.me.prev;
25586 init_table[itpos146] = 1;
25587 return;
25588 }
25589 static const char LOCATE_parser___parser_prod___ANotExpr___replace_child[] = "parser_prod::ANotExpr::(parser_prod::ANode::replace_child)";
25590 void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
25591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25592 val_t REGB0;
25593 val_t REGB1;
25594 val_t tmp;
25595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25596 fra.me.file = LOCATE_parser___parser_prod;
25597 fra.me.line = 4641;
25598 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
25599 fra.me.has_broke = 0;
25600 fra.me.REG_size = 4;
25601 fra.me.nitni_local_ref_head = NULL;
25602 fra.me.REG[0] = NIT_NULL;
25603 fra.me.REG[1] = NIT_NULL;
25604 fra.me.REG[2] = NIT_NULL;
25605 fra.me.REG[3] = NIT_NULL;
25606 fra.me.REG[0] = p0;
25607 fra.me.REG[1] = p1;
25608 fra.me.REG[2] = p2;
25609 /* parser/parser_prod.nit:4643 */
25610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
25611 if (UNTAG_Bool(REGB0)) {
25612 } else {
25613 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4643);
25614 }
25615 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
25616 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25617 if (UNTAG_Bool(REGB0)) {
25618 } else {
25619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25620 REGB0 = REGB1;
25621 }
25622 if (UNTAG_Bool(REGB0)) {
25623 /* parser/parser_prod.nit:4644 */
25624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25625 if (UNTAG_Bool(REGB0)) {
25626 } else {
25627 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25628 if (UNTAG_Bool(REGB1)) {
25629 REGB1 = TAG_Bool(0);
25630 REGB0 = REGB1;
25631 } else {
25632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25633 REGB0 = REGB1;
25634 }
25635 }
25636 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25637 if (UNTAG_Bool(REGB0)) {
25638 /* parser/parser_prod.nit:4645 */
25639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25640 if (UNTAG_Bool(REGB0)) {
25641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4645);
25642 }
25643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25644 /* parser/parser_prod.nit:4646 */
25645 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*/;
25646 if (UNTAG_Bool(REGB0)) {
25647 } else {
25648 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4646);
25649 }
25650 /* parser/parser_prod.nit:4647 */
25651 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
25652 } else {
25653 /* parser/parser_prod.nit:4649 */
25654 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4649);
25655 }
25656 /* parser/parser_prod.nit:4651 */
25657 goto label1;
25658 }
25659 /* parser/parser_prod.nit:4653 */
25660 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25661 if (UNTAG_Bool(REGB0)) {
25662 } else {
25663 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4653);
25664 }
25665 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
25666 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25667 if (UNTAG_Bool(REGB0)) {
25668 } else {
25669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25670 REGB0 = REGB1;
25671 }
25672 if (UNTAG_Bool(REGB0)) {
25673 /* parser/parser_prod.nit:4654 */
25674 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25675 if (UNTAG_Bool(REGB0)) {
25676 } else {
25677 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25678 if (UNTAG_Bool(REGB1)) {
25679 REGB1 = TAG_Bool(0);
25680 REGB0 = REGB1;
25681 } else {
25682 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25683 REGB0 = REGB1;
25684 }
25685 }
25686 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25687 if (UNTAG_Bool(REGB0)) {
25688 /* parser/parser_prod.nit:4655 */
25689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25690 if (UNTAG_Bool(REGB0)) {
25691 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4655);
25692 }
25693 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25694 /* parser/parser_prod.nit:4656 */
25695 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25696 if (UNTAG_Bool(REGB0)) {
25697 } else {
25698 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4656);
25699 }
25700 /* parser/parser_prod.nit:4657 */
25701 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25702 } else {
25703 /* parser/parser_prod.nit:4659 */
25704 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4659);
25705 }
25706 /* parser/parser_prod.nit:4661 */
25707 goto label1;
25708 }
25709 label1: while(0);
25710 stack_frame_head = fra.me.prev;
25711 return;
25712 }
25713 static const char LOCATE_parser___parser_prod___ANotExpr___visit_all[] = "parser_prod::ANotExpr::(parser_prod::ANode::visit_all)";
25714 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
25715 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25716 val_t REGB0;
25717 val_t tmp;
25718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25719 fra.me.file = LOCATE_parser___parser_prod;
25720 fra.me.line = 4665;
25721 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
25722 fra.me.has_broke = 0;
25723 fra.me.REG_size = 3;
25724 fra.me.nitni_local_ref_head = NULL;
25725 fra.me.REG[0] = NIT_NULL;
25726 fra.me.REG[1] = NIT_NULL;
25727 fra.me.REG[2] = NIT_NULL;
25728 fra.me.REG[0] = p0;
25729 fra.me.REG[1] = p1;
25730 /* parser/parser_prod.nit:4667 */
25731 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
25732 if (UNTAG_Bool(REGB0)) {
25733 } else {
25734 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4667);
25735 }
25736 fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
25737 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25738 /* parser/parser_prod.nit:4668 */
25739 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25740 if (UNTAG_Bool(REGB0)) {
25741 } else {
25742 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4668);
25743 }
25744 fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
25745 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25746 stack_frame_head = fra.me.prev;
25747 return;
25748 }
25749 static const char LOCATE_parser___parser_prod___AEqExpr___empty_init[] = "parser_prod::AEqExpr::empty_init";
25750 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
25751 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
25752 struct {struct stack_frame_t me;} fra;
25753 val_t tmp;
25754 if (init_table[itpos147]) return;
25755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25756 fra.me.file = LOCATE_parser___parser_prod;
25757 fra.me.line = 4672;
25758 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
25759 fra.me.has_broke = 0;
25760 fra.me.REG_size = 1;
25761 fra.me.nitni_local_ref_head = NULL;
25762 fra.me.REG[0] = NIT_NULL;
25763 fra.me.REG[0] = p0;
25764 stack_frame_head = fra.me.prev;
25765 init_table[itpos147] = 1;
25766 return;
25767 }
25768 static const char LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr[] = "parser_prod::AEqExpr::init_aeqexpr";
25769 void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25770 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
25771 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25772 val_t REGB0;
25773 val_t tmp;
25774 if (init_table[itpos148]) return;
25775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25776 fra.me.file = LOCATE_parser___parser_prod;
25777 fra.me.line = 4674;
25778 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
25779 fra.me.has_broke = 0;
25780 fra.me.REG_size = 4;
25781 fra.me.nitni_local_ref_head = NULL;
25782 fra.me.REG[0] = NIT_NULL;
25783 fra.me.REG[1] = NIT_NULL;
25784 fra.me.REG[2] = NIT_NULL;
25785 fra.me.REG[3] = NIT_NULL;
25786 fra.me.REG[0] = p0;
25787 fra.me.REG[1] = p1;
25788 fra.me.REG[2] = p2;
25789 /* parser/parser_prod.nit:4674 */
25790 fra.me.REG[3] = fra.me.REG[0];
25791 /* parser/parser_prod.nit:4679 */
25792 CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25793 /* parser/parser_prod.nit:4680 */
25794 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25795 if (UNTAG_Bool(REGB0)) {
25796 } else {
25797 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4680);
25798 }
25799 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25800 /* parser/parser_prod.nit:4681 */
25801 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25802 if (UNTAG_Bool(REGB0)) {
25803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4681);
25804 }
25805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25806 /* parser/parser_prod.nit:4682 */
25807 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25808 if (UNTAG_Bool(REGB0)) {
25809 } else {
25810 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4682);
25811 }
25812 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25813 /* parser/parser_prod.nit:4683 */
25814 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25815 if (UNTAG_Bool(REGB0)) {
25816 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4683);
25817 }
25818 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25819 stack_frame_head = fra.me.prev;
25820 init_table[itpos148] = 1;
25821 return;
25822 }
25823 static const char LOCATE_parser___parser_prod___AEqExpr___replace_child[] = "parser_prod::AEqExpr::(parser_prod::ANode::replace_child)";
25824 void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
25825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25826 val_t REGB0;
25827 val_t REGB1;
25828 val_t tmp;
25829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25830 fra.me.file = LOCATE_parser___parser_prod;
25831 fra.me.line = 4686;
25832 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
25833 fra.me.has_broke = 0;
25834 fra.me.REG_size = 4;
25835 fra.me.nitni_local_ref_head = NULL;
25836 fra.me.REG[0] = NIT_NULL;
25837 fra.me.REG[1] = NIT_NULL;
25838 fra.me.REG[2] = NIT_NULL;
25839 fra.me.REG[3] = NIT_NULL;
25840 fra.me.REG[0] = p0;
25841 fra.me.REG[1] = p1;
25842 fra.me.REG[2] = p2;
25843 /* parser/parser_prod.nit:4688 */
25844 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25845 if (UNTAG_Bool(REGB0)) {
25846 } else {
25847 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4688);
25848 }
25849 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25850 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25851 if (UNTAG_Bool(REGB0)) {
25852 } else {
25853 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25854 REGB0 = REGB1;
25855 }
25856 if (UNTAG_Bool(REGB0)) {
25857 /* parser/parser_prod.nit:4689 */
25858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25859 if (UNTAG_Bool(REGB0)) {
25860 } else {
25861 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25862 if (UNTAG_Bool(REGB1)) {
25863 REGB1 = TAG_Bool(0);
25864 REGB0 = REGB1;
25865 } else {
25866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25867 REGB0 = REGB1;
25868 }
25869 }
25870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25871 if (UNTAG_Bool(REGB0)) {
25872 /* parser/parser_prod.nit:4690 */
25873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25874 if (UNTAG_Bool(REGB0)) {
25875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4690);
25876 }
25877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25878 /* parser/parser_prod.nit:4691 */
25879 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25880 if (UNTAG_Bool(REGB0)) {
25881 } else {
25882 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4691);
25883 }
25884 /* parser/parser_prod.nit:4692 */
25885 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25886 } else {
25887 /* parser/parser_prod.nit:4694 */
25888 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4694);
25889 }
25890 /* parser/parser_prod.nit:4696 */
25891 goto label1;
25892 }
25893 /* parser/parser_prod.nit:4698 */
25894 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25895 if (UNTAG_Bool(REGB0)) {
25896 } else {
25897 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4698);
25898 }
25899 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25900 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25901 if (UNTAG_Bool(REGB0)) {
25902 } else {
25903 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25904 REGB0 = REGB1;
25905 }
25906 if (UNTAG_Bool(REGB0)) {
25907 /* parser/parser_prod.nit:4699 */
25908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25909 if (UNTAG_Bool(REGB0)) {
25910 } else {
25911 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25912 if (UNTAG_Bool(REGB1)) {
25913 REGB1 = TAG_Bool(0);
25914 REGB0 = REGB1;
25915 } else {
25916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25917 REGB0 = REGB1;
25918 }
25919 }
25920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25921 if (UNTAG_Bool(REGB0)) {
25922 /* parser/parser_prod.nit:4700 */
25923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25924 if (UNTAG_Bool(REGB0)) {
25925 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4700);
25926 }
25927 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25928 /* parser/parser_prod.nit:4701 */
25929 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25930 if (UNTAG_Bool(REGB0)) {
25931 } else {
25932 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4701);
25933 }
25934 /* parser/parser_prod.nit:4702 */
25935 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25936 } else {
25937 /* parser/parser_prod.nit:4704 */
25938 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4704);
25939 }
25940 /* parser/parser_prod.nit:4706 */
25941 goto label1;
25942 }
25943 label1: while(0);
25944 stack_frame_head = fra.me.prev;
25945 return;
25946 }
25947 static const char LOCATE_parser___parser_prod___AEqExpr___visit_all[] = "parser_prod::AEqExpr::(parser_prod::ANode::visit_all)";
25948 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
25949 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25950 val_t REGB0;
25951 val_t tmp;
25952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25953 fra.me.file = LOCATE_parser___parser_prod;
25954 fra.me.line = 4710;
25955 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
25956 fra.me.has_broke = 0;
25957 fra.me.REG_size = 3;
25958 fra.me.nitni_local_ref_head = NULL;
25959 fra.me.REG[0] = NIT_NULL;
25960 fra.me.REG[1] = NIT_NULL;
25961 fra.me.REG[2] = NIT_NULL;
25962 fra.me.REG[0] = p0;
25963 fra.me.REG[1] = p1;
25964 /* parser/parser_prod.nit:4712 */
25965 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25966 if (UNTAG_Bool(REGB0)) {
25967 } else {
25968 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4712);
25969 }
25970 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25971 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25972 /* parser/parser_prod.nit:4713 */
25973 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25974 if (UNTAG_Bool(REGB0)) {
25975 } else {
25976 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4713);
25977 }
25978 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25979 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25980 stack_frame_head = fra.me.prev;
25981 return;
25982 }
25983 static const char LOCATE_parser___parser_prod___AEeExpr___empty_init[] = "parser_prod::AEeExpr::empty_init";
25984 void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
25985 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
25986 struct {struct stack_frame_t me;} fra;
25987 val_t tmp;
25988 if (init_table[itpos149]) return;
25989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25990 fra.me.file = LOCATE_parser___parser_prod;
25991 fra.me.line = 4717;
25992 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
25993 fra.me.has_broke = 0;
25994 fra.me.REG_size = 1;
25995 fra.me.nitni_local_ref_head = NULL;
25996 fra.me.REG[0] = NIT_NULL;
25997 fra.me.REG[0] = p0;
25998 stack_frame_head = fra.me.prev;
25999 init_table[itpos149] = 1;
26000 return;
26001 }
26002 static const char LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr[] = "parser_prod::AEeExpr::init_aeeexpr";
26003 void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26004 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
26005 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26006 val_t REGB0;
26007 val_t tmp;
26008 if (init_table[itpos150]) return;
26009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26010 fra.me.file = LOCATE_parser___parser_prod;
26011 fra.me.line = 4719;
26012 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
26013 fra.me.has_broke = 0;
26014 fra.me.REG_size = 4;
26015 fra.me.nitni_local_ref_head = NULL;
26016 fra.me.REG[0] = NIT_NULL;
26017 fra.me.REG[1] = NIT_NULL;
26018 fra.me.REG[2] = NIT_NULL;
26019 fra.me.REG[3] = NIT_NULL;
26020 fra.me.REG[0] = p0;
26021 fra.me.REG[1] = p1;
26022 fra.me.REG[2] = p2;
26023 /* parser/parser_prod.nit:4719 */
26024 fra.me.REG[3] = fra.me.REG[0];
26025 /* parser/parser_prod.nit:4724 */
26026 CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26027 /* parser/parser_prod.nit:4725 */
26028 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26029 if (UNTAG_Bool(REGB0)) {
26030 } else {
26031 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4725);
26032 }
26033 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26034 /* parser/parser_prod.nit:4726 */
26035 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26036 if (UNTAG_Bool(REGB0)) {
26037 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4726);
26038 }
26039 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26040 /* parser/parser_prod.nit:4727 */
26041 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26042 if (UNTAG_Bool(REGB0)) {
26043 } else {
26044 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4727);
26045 }
26046 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26047 /* parser/parser_prod.nit:4728 */
26048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26049 if (UNTAG_Bool(REGB0)) {
26050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4728);
26051 }
26052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26053 stack_frame_head = fra.me.prev;
26054 init_table[itpos150] = 1;
26055 return;
26056 }
26057 static const char LOCATE_parser___parser_prod___AEeExpr___replace_child[] = "parser_prod::AEeExpr::(parser_prod::ANode::replace_child)";
26058 void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
26059 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26060 val_t REGB0;
26061 val_t REGB1;
26062 val_t tmp;
26063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26064 fra.me.file = LOCATE_parser___parser_prod;
26065 fra.me.line = 4731;
26066 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
26067 fra.me.has_broke = 0;
26068 fra.me.REG_size = 4;
26069 fra.me.nitni_local_ref_head = NULL;
26070 fra.me.REG[0] = NIT_NULL;
26071 fra.me.REG[1] = NIT_NULL;
26072 fra.me.REG[2] = NIT_NULL;
26073 fra.me.REG[3] = NIT_NULL;
26074 fra.me.REG[0] = p0;
26075 fra.me.REG[1] = p1;
26076 fra.me.REG[2] = p2;
26077 /* parser/parser_prod.nit:4733 */
26078 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26079 if (UNTAG_Bool(REGB0)) {
26080 } else {
26081 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4733);
26082 }
26083 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
26084 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26085 if (UNTAG_Bool(REGB0)) {
26086 } else {
26087 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26088 REGB0 = REGB1;
26089 }
26090 if (UNTAG_Bool(REGB0)) {
26091 /* parser/parser_prod.nit:4734 */
26092 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26093 if (UNTAG_Bool(REGB0)) {
26094 } else {
26095 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26096 if (UNTAG_Bool(REGB1)) {
26097 REGB1 = TAG_Bool(0);
26098 REGB0 = REGB1;
26099 } else {
26100 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26101 REGB0 = REGB1;
26102 }
26103 }
26104 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26105 if (UNTAG_Bool(REGB0)) {
26106 /* parser/parser_prod.nit:4735 */
26107 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26108 if (UNTAG_Bool(REGB0)) {
26109 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4735);
26110 }
26111 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26112 /* parser/parser_prod.nit:4736 */
26113 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26114 if (UNTAG_Bool(REGB0)) {
26115 } else {
26116 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4736);
26117 }
26118 /* parser/parser_prod.nit:4737 */
26119 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26120 } else {
26121 /* parser/parser_prod.nit:4739 */
26122 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4739);
26123 }
26124 /* parser/parser_prod.nit:4741 */
26125 goto label1;
26126 }
26127 /* parser/parser_prod.nit:4743 */
26128 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26129 if (UNTAG_Bool(REGB0)) {
26130 } else {
26131 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4743);
26132 }
26133 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
26134 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26135 if (UNTAG_Bool(REGB0)) {
26136 } else {
26137 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26138 REGB0 = REGB1;
26139 }
26140 if (UNTAG_Bool(REGB0)) {
26141 /* parser/parser_prod.nit:4744 */
26142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26143 if (UNTAG_Bool(REGB0)) {
26144 } else {
26145 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26146 if (UNTAG_Bool(REGB1)) {
26147 REGB1 = TAG_Bool(0);
26148 REGB0 = REGB1;
26149 } else {
26150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26151 REGB0 = REGB1;
26152 }
26153 }
26154 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26155 if (UNTAG_Bool(REGB0)) {
26156 /* parser/parser_prod.nit:4745 */
26157 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26158 if (UNTAG_Bool(REGB0)) {
26159 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4745);
26160 }
26161 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26162 /* parser/parser_prod.nit:4746 */
26163 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26164 if (UNTAG_Bool(REGB0)) {
26165 } else {
26166 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4746);
26167 }
26168 /* parser/parser_prod.nit:4747 */
26169 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26170 } else {
26171 /* parser/parser_prod.nit:4749 */
26172 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4749);
26173 }
26174 /* parser/parser_prod.nit:4751 */
26175 goto label1;
26176 }
26177 label1: while(0);
26178 stack_frame_head = fra.me.prev;
26179 return;
26180 }
26181 static const char LOCATE_parser___parser_prod___AEeExpr___visit_all[] = "parser_prod::AEeExpr::(parser_prod::ANode::visit_all)";
26182 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
26183 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26184 val_t REGB0;
26185 val_t tmp;
26186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26187 fra.me.file = LOCATE_parser___parser_prod;
26188 fra.me.line = 4755;
26189 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
26190 fra.me.has_broke = 0;
26191 fra.me.REG_size = 3;
26192 fra.me.nitni_local_ref_head = NULL;
26193 fra.me.REG[0] = NIT_NULL;
26194 fra.me.REG[1] = NIT_NULL;
26195 fra.me.REG[2] = NIT_NULL;
26196 fra.me.REG[0] = p0;
26197 fra.me.REG[1] = p1;
26198 /* parser/parser_prod.nit:4757 */
26199 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26200 if (UNTAG_Bool(REGB0)) {
26201 } else {
26202 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4757);
26203 }
26204 fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
26205 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26206 /* parser/parser_prod.nit:4758 */
26207 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26208 if (UNTAG_Bool(REGB0)) {
26209 } else {
26210 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4758);
26211 }
26212 fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
26213 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26214 stack_frame_head = fra.me.prev;
26215 return;
26216 }
26217 static const char LOCATE_parser___parser_prod___ANeExpr___empty_init[] = "parser_prod::ANeExpr::empty_init";
26218 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
26219 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
26220 struct {struct stack_frame_t me;} fra;
26221 val_t tmp;
26222 if (init_table[itpos151]) return;
26223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26224 fra.me.file = LOCATE_parser___parser_prod;
26225 fra.me.line = 4762;
26226 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
26227 fra.me.has_broke = 0;
26228 fra.me.REG_size = 1;
26229 fra.me.nitni_local_ref_head = NULL;
26230 fra.me.REG[0] = NIT_NULL;
26231 fra.me.REG[0] = p0;
26232 stack_frame_head = fra.me.prev;
26233 init_table[itpos151] = 1;
26234 return;
26235 }
26236 static const char LOCATE_parser___parser_prod___ANeExpr___init_aneexpr[] = "parser_prod::ANeExpr::init_aneexpr";
26237 void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26238 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
26239 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26240 val_t REGB0;
26241 val_t tmp;
26242 if (init_table[itpos152]) return;
26243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26244 fra.me.file = LOCATE_parser___parser_prod;
26245 fra.me.line = 4764;
26246 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
26247 fra.me.has_broke = 0;
26248 fra.me.REG_size = 4;
26249 fra.me.nitni_local_ref_head = NULL;
26250 fra.me.REG[0] = NIT_NULL;
26251 fra.me.REG[1] = NIT_NULL;
26252 fra.me.REG[2] = NIT_NULL;
26253 fra.me.REG[3] = NIT_NULL;
26254 fra.me.REG[0] = p0;
26255 fra.me.REG[1] = p1;
26256 fra.me.REG[2] = p2;
26257 /* parser/parser_prod.nit:4764 */
26258 fra.me.REG[3] = fra.me.REG[0];
26259 /* parser/parser_prod.nit:4769 */
26260 CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26261 /* parser/parser_prod.nit:4770 */
26262 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26263 if (UNTAG_Bool(REGB0)) {
26264 } else {
26265 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4770);
26266 }
26267 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26268 /* parser/parser_prod.nit:4771 */
26269 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26270 if (UNTAG_Bool(REGB0)) {
26271 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4771);
26272 }
26273 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26274 /* parser/parser_prod.nit:4772 */
26275 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26276 if (UNTAG_Bool(REGB0)) {
26277 } else {
26278 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4772);
26279 }
26280 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26281 /* parser/parser_prod.nit:4773 */
26282 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26283 if (UNTAG_Bool(REGB0)) {
26284 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4773);
26285 }
26286 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26287 stack_frame_head = fra.me.prev;
26288 init_table[itpos152] = 1;
26289 return;
26290 }
26291 static const char LOCATE_parser___parser_prod___ANeExpr___replace_child[] = "parser_prod::ANeExpr::(parser_prod::ANode::replace_child)";
26292 void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
26293 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26294 val_t REGB0;
26295 val_t REGB1;
26296 val_t tmp;
26297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26298 fra.me.file = LOCATE_parser___parser_prod;
26299 fra.me.line = 4776;
26300 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
26301 fra.me.has_broke = 0;
26302 fra.me.REG_size = 4;
26303 fra.me.nitni_local_ref_head = NULL;
26304 fra.me.REG[0] = NIT_NULL;
26305 fra.me.REG[1] = NIT_NULL;
26306 fra.me.REG[2] = NIT_NULL;
26307 fra.me.REG[3] = NIT_NULL;
26308 fra.me.REG[0] = p0;
26309 fra.me.REG[1] = p1;
26310 fra.me.REG[2] = p2;
26311 /* parser/parser_prod.nit:4778 */
26312 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26313 if (UNTAG_Bool(REGB0)) {
26314 } else {
26315 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4778);
26316 }
26317 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26318 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26319 if (UNTAG_Bool(REGB0)) {
26320 } else {
26321 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26322 REGB0 = REGB1;
26323 }
26324 if (UNTAG_Bool(REGB0)) {
26325 /* parser/parser_prod.nit:4779 */
26326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26327 if (UNTAG_Bool(REGB0)) {
26328 } else {
26329 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26330 if (UNTAG_Bool(REGB1)) {
26331 REGB1 = TAG_Bool(0);
26332 REGB0 = REGB1;
26333 } else {
26334 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26335 REGB0 = REGB1;
26336 }
26337 }
26338 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26339 if (UNTAG_Bool(REGB0)) {
26340 /* parser/parser_prod.nit:4780 */
26341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26342 if (UNTAG_Bool(REGB0)) {
26343 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4780);
26344 }
26345 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26346 /* parser/parser_prod.nit:4781 */
26347 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26348 if (UNTAG_Bool(REGB0)) {
26349 } else {
26350 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4781);
26351 }
26352 /* parser/parser_prod.nit:4782 */
26353 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26354 } else {
26355 /* parser/parser_prod.nit:4784 */
26356 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4784);
26357 }
26358 /* parser/parser_prod.nit:4786 */
26359 goto label1;
26360 }
26361 /* parser/parser_prod.nit:4788 */
26362 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26363 if (UNTAG_Bool(REGB0)) {
26364 } else {
26365 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4788);
26366 }
26367 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26368 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26369 if (UNTAG_Bool(REGB0)) {
26370 } else {
26371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26372 REGB0 = REGB1;
26373 }
26374 if (UNTAG_Bool(REGB0)) {
26375 /* parser/parser_prod.nit:4789 */
26376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26377 if (UNTAG_Bool(REGB0)) {
26378 } else {
26379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26380 if (UNTAG_Bool(REGB1)) {
26381 REGB1 = TAG_Bool(0);
26382 REGB0 = REGB1;
26383 } else {
26384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26385 REGB0 = REGB1;
26386 }
26387 }
26388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26389 if (UNTAG_Bool(REGB0)) {
26390 /* parser/parser_prod.nit:4790 */
26391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26392 if (UNTAG_Bool(REGB0)) {
26393 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4790);
26394 }
26395 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26396 /* parser/parser_prod.nit:4791 */
26397 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26398 if (UNTAG_Bool(REGB0)) {
26399 } else {
26400 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4791);
26401 }
26402 /* parser/parser_prod.nit:4792 */
26403 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26404 } else {
26405 /* parser/parser_prod.nit:4794 */
26406 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4794);
26407 }
26408 /* parser/parser_prod.nit:4796 */
26409 goto label1;
26410 }
26411 label1: while(0);
26412 stack_frame_head = fra.me.prev;
26413 return;
26414 }
26415 static const char LOCATE_parser___parser_prod___ANeExpr___visit_all[] = "parser_prod::ANeExpr::(parser_prod::ANode::visit_all)";
26416 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
26417 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26418 val_t REGB0;
26419 val_t tmp;
26420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26421 fra.me.file = LOCATE_parser___parser_prod;
26422 fra.me.line = 4800;
26423 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
26424 fra.me.has_broke = 0;
26425 fra.me.REG_size = 3;
26426 fra.me.nitni_local_ref_head = NULL;
26427 fra.me.REG[0] = NIT_NULL;
26428 fra.me.REG[1] = NIT_NULL;
26429 fra.me.REG[2] = NIT_NULL;
26430 fra.me.REG[0] = p0;
26431 fra.me.REG[1] = p1;
26432 /* parser/parser_prod.nit:4802 */
26433 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26434 if (UNTAG_Bool(REGB0)) {
26435 } else {
26436 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4802);
26437 }
26438 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26439 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26440 /* parser/parser_prod.nit:4803 */
26441 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26442 if (UNTAG_Bool(REGB0)) {
26443 } else {
26444 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4803);
26445 }
26446 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26447 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26448 stack_frame_head = fra.me.prev;
26449 return;
26450 }
26451 static const char LOCATE_parser___parser_prod___ALtExpr___empty_init[] = "parser_prod::ALtExpr::empty_init";
26452 void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
26453 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
26454 struct {struct stack_frame_t me;} fra;
26455 val_t tmp;
26456 if (init_table[itpos153]) return;
26457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26458 fra.me.file = LOCATE_parser___parser_prod;
26459 fra.me.line = 4807;
26460 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
26461 fra.me.has_broke = 0;
26462 fra.me.REG_size = 1;
26463 fra.me.nitni_local_ref_head = NULL;
26464 fra.me.REG[0] = NIT_NULL;
26465 fra.me.REG[0] = p0;
26466 stack_frame_head = fra.me.prev;
26467 init_table[itpos153] = 1;
26468 return;
26469 }
26470 static const char LOCATE_parser___parser_prod___ALtExpr___init_altexpr[] = "parser_prod::ALtExpr::init_altexpr";
26471 void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26472 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
26473 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26474 val_t REGB0;
26475 val_t tmp;
26476 if (init_table[itpos154]) return;
26477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26478 fra.me.file = LOCATE_parser___parser_prod;
26479 fra.me.line = 4809;
26480 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
26481 fra.me.has_broke = 0;
26482 fra.me.REG_size = 4;
26483 fra.me.nitni_local_ref_head = NULL;
26484 fra.me.REG[0] = NIT_NULL;
26485 fra.me.REG[1] = NIT_NULL;
26486 fra.me.REG[2] = NIT_NULL;
26487 fra.me.REG[3] = NIT_NULL;
26488 fra.me.REG[0] = p0;
26489 fra.me.REG[1] = p1;
26490 fra.me.REG[2] = p2;
26491 /* parser/parser_prod.nit:4809 */
26492 fra.me.REG[3] = fra.me.REG[0];
26493 /* parser/parser_prod.nit:4814 */
26494 CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26495 /* parser/parser_prod.nit:4815 */
26496 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26497 if (UNTAG_Bool(REGB0)) {
26498 } else {
26499 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4815);
26500 }
26501 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26502 /* parser/parser_prod.nit:4816 */
26503 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26504 if (UNTAG_Bool(REGB0)) {
26505 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4816);
26506 }
26507 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26508 /* parser/parser_prod.nit:4817 */
26509 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26510 if (UNTAG_Bool(REGB0)) {
26511 } else {
26512 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4817);
26513 }
26514 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26515 /* parser/parser_prod.nit:4818 */
26516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26517 if (UNTAG_Bool(REGB0)) {
26518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4818);
26519 }
26520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26521 stack_frame_head = fra.me.prev;
26522 init_table[itpos154] = 1;
26523 return;
26524 }
26525 static const char LOCATE_parser___parser_prod___ALtExpr___replace_child[] = "parser_prod::ALtExpr::(parser_prod::ANode::replace_child)";
26526 void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
26527 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26528 val_t REGB0;
26529 val_t REGB1;
26530 val_t tmp;
26531 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26532 fra.me.file = LOCATE_parser___parser_prod;
26533 fra.me.line = 4821;
26534 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
26535 fra.me.has_broke = 0;
26536 fra.me.REG_size = 4;
26537 fra.me.nitni_local_ref_head = NULL;
26538 fra.me.REG[0] = NIT_NULL;
26539 fra.me.REG[1] = NIT_NULL;
26540 fra.me.REG[2] = NIT_NULL;
26541 fra.me.REG[3] = NIT_NULL;
26542 fra.me.REG[0] = p0;
26543 fra.me.REG[1] = p1;
26544 fra.me.REG[2] = p2;
26545 /* parser/parser_prod.nit:4823 */
26546 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26547 if (UNTAG_Bool(REGB0)) {
26548 } else {
26549 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4823);
26550 }
26551 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26552 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26553 if (UNTAG_Bool(REGB0)) {
26554 } else {
26555 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26556 REGB0 = REGB1;
26557 }
26558 if (UNTAG_Bool(REGB0)) {
26559 /* parser/parser_prod.nit:4824 */
26560 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26561 if (UNTAG_Bool(REGB0)) {
26562 } else {
26563 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26564 if (UNTAG_Bool(REGB1)) {
26565 REGB1 = TAG_Bool(0);
26566 REGB0 = REGB1;
26567 } else {
26568 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26569 REGB0 = REGB1;
26570 }
26571 }
26572 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26573 if (UNTAG_Bool(REGB0)) {
26574 /* parser/parser_prod.nit:4825 */
26575 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26576 if (UNTAG_Bool(REGB0)) {
26577 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4825);
26578 }
26579 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26580 /* parser/parser_prod.nit:4826 */
26581 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26582 if (UNTAG_Bool(REGB0)) {
26583 } else {
26584 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4826);
26585 }
26586 /* parser/parser_prod.nit:4827 */
26587 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26588 } else {
26589 /* parser/parser_prod.nit:4829 */
26590 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4829);
26591 }
26592 /* parser/parser_prod.nit:4831 */
26593 goto label1;
26594 }
26595 /* parser/parser_prod.nit:4833 */
26596 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26597 if (UNTAG_Bool(REGB0)) {
26598 } else {
26599 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4833);
26600 }
26601 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26602 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26603 if (UNTAG_Bool(REGB0)) {
26604 } else {
26605 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26606 REGB0 = REGB1;
26607 }
26608 if (UNTAG_Bool(REGB0)) {
26609 /* parser/parser_prod.nit:4834 */
26610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26611 if (UNTAG_Bool(REGB0)) {
26612 } else {
26613 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26614 if (UNTAG_Bool(REGB1)) {
26615 REGB1 = TAG_Bool(0);
26616 REGB0 = REGB1;
26617 } else {
26618 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26619 REGB0 = REGB1;
26620 }
26621 }
26622 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26623 if (UNTAG_Bool(REGB0)) {
26624 /* parser/parser_prod.nit:4835 */
26625 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26626 if (UNTAG_Bool(REGB0)) {
26627 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4835);
26628 }
26629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26630 /* parser/parser_prod.nit:4836 */
26631 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26632 if (UNTAG_Bool(REGB0)) {
26633 } else {
26634 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4836);
26635 }
26636 /* parser/parser_prod.nit:4837 */
26637 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26638 } else {
26639 /* parser/parser_prod.nit:4839 */
26640 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4839);
26641 }
26642 /* parser/parser_prod.nit:4841 */
26643 goto label1;
26644 }
26645 label1: while(0);
26646 stack_frame_head = fra.me.prev;
26647 return;
26648 }
26649 static const char LOCATE_parser___parser_prod___ALtExpr___visit_all[] = "parser_prod::ALtExpr::(parser_prod::ANode::visit_all)";
26650 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
26651 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26652 val_t REGB0;
26653 val_t tmp;
26654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26655 fra.me.file = LOCATE_parser___parser_prod;
26656 fra.me.line = 4845;
26657 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
26658 fra.me.has_broke = 0;
26659 fra.me.REG_size = 3;
26660 fra.me.nitni_local_ref_head = NULL;
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[0] = p0;
26665 fra.me.REG[1] = p1;
26666 /* parser/parser_prod.nit:4847 */
26667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26668 if (UNTAG_Bool(REGB0)) {
26669 } else {
26670 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4847);
26671 }
26672 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26673 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26674 /* parser/parser_prod.nit:4848 */
26675 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26676 if (UNTAG_Bool(REGB0)) {
26677 } else {
26678 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4848);
26679 }
26680 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26681 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26682 stack_frame_head = fra.me.prev;
26683 return;
26684 }
26685 static const char LOCATE_parser___parser_prod___ALeExpr___empty_init[] = "parser_prod::ALeExpr::empty_init";
26686 void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
26687 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
26688 struct {struct stack_frame_t me;} fra;
26689 val_t tmp;
26690 if (init_table[itpos155]) return;
26691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26692 fra.me.file = LOCATE_parser___parser_prod;
26693 fra.me.line = 4852;
26694 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
26695 fra.me.has_broke = 0;
26696 fra.me.REG_size = 1;
26697 fra.me.nitni_local_ref_head = NULL;
26698 fra.me.REG[0] = NIT_NULL;
26699 fra.me.REG[0] = p0;
26700 stack_frame_head = fra.me.prev;
26701 init_table[itpos155] = 1;
26702 return;
26703 }
26704 static const char LOCATE_parser___parser_prod___ALeExpr___init_aleexpr[] = "parser_prod::ALeExpr::init_aleexpr";
26705 void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26706 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
26707 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26708 val_t REGB0;
26709 val_t tmp;
26710 if (init_table[itpos156]) return;
26711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26712 fra.me.file = LOCATE_parser___parser_prod;
26713 fra.me.line = 4854;
26714 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
26715 fra.me.has_broke = 0;
26716 fra.me.REG_size = 4;
26717 fra.me.nitni_local_ref_head = NULL;
26718 fra.me.REG[0] = NIT_NULL;
26719 fra.me.REG[1] = NIT_NULL;
26720 fra.me.REG[2] = NIT_NULL;
26721 fra.me.REG[3] = NIT_NULL;
26722 fra.me.REG[0] = p0;
26723 fra.me.REG[1] = p1;
26724 fra.me.REG[2] = p2;
26725 /* parser/parser_prod.nit:4854 */
26726 fra.me.REG[3] = fra.me.REG[0];
26727 /* parser/parser_prod.nit:4859 */
26728 CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26729 /* parser/parser_prod.nit:4860 */
26730 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26731 if (UNTAG_Bool(REGB0)) {
26732 } else {
26733 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4860);
26734 }
26735 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26736 /* parser/parser_prod.nit:4861 */
26737 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26738 if (UNTAG_Bool(REGB0)) {
26739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4861);
26740 }
26741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26742 /* parser/parser_prod.nit:4862 */
26743 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26744 if (UNTAG_Bool(REGB0)) {
26745 } else {
26746 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4862);
26747 }
26748 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26749 /* parser/parser_prod.nit:4863 */
26750 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26751 if (UNTAG_Bool(REGB0)) {
26752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4863);
26753 }
26754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26755 stack_frame_head = fra.me.prev;
26756 init_table[itpos156] = 1;
26757 return;
26758 }
26759 static const char LOCATE_parser___parser_prod___ALeExpr___replace_child[] = "parser_prod::ALeExpr::(parser_prod::ANode::replace_child)";
26760 void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
26761 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26762 val_t REGB0;
26763 val_t REGB1;
26764 val_t tmp;
26765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26766 fra.me.file = LOCATE_parser___parser_prod;
26767 fra.me.line = 4866;
26768 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
26769 fra.me.has_broke = 0;
26770 fra.me.REG_size = 4;
26771 fra.me.nitni_local_ref_head = NULL;
26772 fra.me.REG[0] = NIT_NULL;
26773 fra.me.REG[1] = NIT_NULL;
26774 fra.me.REG[2] = NIT_NULL;
26775 fra.me.REG[3] = NIT_NULL;
26776 fra.me.REG[0] = p0;
26777 fra.me.REG[1] = p1;
26778 fra.me.REG[2] = p2;
26779 /* parser/parser_prod.nit:4868 */
26780 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26781 if (UNTAG_Bool(REGB0)) {
26782 } else {
26783 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4868);
26784 }
26785 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26786 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26787 if (UNTAG_Bool(REGB0)) {
26788 } else {
26789 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26790 REGB0 = REGB1;
26791 }
26792 if (UNTAG_Bool(REGB0)) {
26793 /* parser/parser_prod.nit:4869 */
26794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26795 if (UNTAG_Bool(REGB0)) {
26796 } else {
26797 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26798 if (UNTAG_Bool(REGB1)) {
26799 REGB1 = TAG_Bool(0);
26800 REGB0 = REGB1;
26801 } else {
26802 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26803 REGB0 = REGB1;
26804 }
26805 }
26806 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26807 if (UNTAG_Bool(REGB0)) {
26808 /* parser/parser_prod.nit:4870 */
26809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26810 if (UNTAG_Bool(REGB0)) {
26811 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4870);
26812 }
26813 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26814 /* parser/parser_prod.nit:4871 */
26815 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26816 if (UNTAG_Bool(REGB0)) {
26817 } else {
26818 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4871);
26819 }
26820 /* parser/parser_prod.nit:4872 */
26821 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26822 } else {
26823 /* parser/parser_prod.nit:4874 */
26824 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4874);
26825 }
26826 /* parser/parser_prod.nit:4876 */
26827 goto label1;
26828 }
26829 /* parser/parser_prod.nit:4878 */
26830 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26831 if (UNTAG_Bool(REGB0)) {
26832 } else {
26833 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4878);
26834 }
26835 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26836 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26837 if (UNTAG_Bool(REGB0)) {
26838 } else {
26839 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26840 REGB0 = REGB1;
26841 }
26842 if (UNTAG_Bool(REGB0)) {
26843 /* parser/parser_prod.nit:4879 */
26844 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26845 if (UNTAG_Bool(REGB0)) {
26846 } else {
26847 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26848 if (UNTAG_Bool(REGB1)) {
26849 REGB1 = TAG_Bool(0);
26850 REGB0 = REGB1;
26851 } else {
26852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26853 REGB0 = REGB1;
26854 }
26855 }
26856 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26857 if (UNTAG_Bool(REGB0)) {
26858 /* parser/parser_prod.nit:4880 */
26859 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26860 if (UNTAG_Bool(REGB0)) {
26861 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4880);
26862 }
26863 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26864 /* parser/parser_prod.nit:4881 */
26865 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26866 if (UNTAG_Bool(REGB0)) {
26867 } else {
26868 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4881);
26869 }
26870 /* parser/parser_prod.nit:4882 */
26871 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26872 } else {
26873 /* parser/parser_prod.nit:4884 */
26874 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4884);
26875 }
26876 /* parser/parser_prod.nit:4886 */
26877 goto label1;
26878 }
26879 label1: while(0);
26880 stack_frame_head = fra.me.prev;
26881 return;
26882 }
26883 static const char LOCATE_parser___parser_prod___ALeExpr___visit_all[] = "parser_prod::ALeExpr::(parser_prod::ANode::visit_all)";
26884 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
26885 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26886 val_t REGB0;
26887 val_t tmp;
26888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26889 fra.me.file = LOCATE_parser___parser_prod;
26890 fra.me.line = 4890;
26891 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
26892 fra.me.has_broke = 0;
26893 fra.me.REG_size = 3;
26894 fra.me.nitni_local_ref_head = NULL;
26895 fra.me.REG[0] = NIT_NULL;
26896 fra.me.REG[1] = NIT_NULL;
26897 fra.me.REG[2] = NIT_NULL;
26898 fra.me.REG[0] = p0;
26899 fra.me.REG[1] = p1;
26900 /* parser/parser_prod.nit:4892 */
26901 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26902 if (UNTAG_Bool(REGB0)) {
26903 } else {
26904 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4892);
26905 }
26906 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26907 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26908 /* parser/parser_prod.nit:4893 */
26909 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26910 if (UNTAG_Bool(REGB0)) {
26911 } else {
26912 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4893);
26913 }
26914 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26915 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26916 stack_frame_head = fra.me.prev;
26917 return;
26918 }
26919 static const char LOCATE_parser___parser_prod___ALlExpr___empty_init[] = "parser_prod::ALlExpr::empty_init";
26920 void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
26921 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
26922 struct {struct stack_frame_t me;} fra;
26923 val_t tmp;
26924 if (init_table[itpos157]) return;
26925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26926 fra.me.file = LOCATE_parser___parser_prod;
26927 fra.me.line = 4897;
26928 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
26929 fra.me.has_broke = 0;
26930 fra.me.REG_size = 1;
26931 fra.me.nitni_local_ref_head = NULL;
26932 fra.me.REG[0] = NIT_NULL;
26933 fra.me.REG[0] = p0;
26934 stack_frame_head = fra.me.prev;
26935 init_table[itpos157] = 1;
26936 return;
26937 }
26938 static const char LOCATE_parser___parser_prod___ALlExpr___init_allexpr[] = "parser_prod::ALlExpr::init_allexpr";
26939 void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26940 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
26941 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26942 val_t REGB0;
26943 val_t tmp;
26944 if (init_table[itpos158]) return;
26945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26946 fra.me.file = LOCATE_parser___parser_prod;
26947 fra.me.line = 4899;
26948 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
26949 fra.me.has_broke = 0;
26950 fra.me.REG_size = 4;
26951 fra.me.nitni_local_ref_head = NULL;
26952 fra.me.REG[0] = NIT_NULL;
26953 fra.me.REG[1] = NIT_NULL;
26954 fra.me.REG[2] = NIT_NULL;
26955 fra.me.REG[3] = NIT_NULL;
26956 fra.me.REG[0] = p0;
26957 fra.me.REG[1] = p1;
26958 fra.me.REG[2] = p2;
26959 /* parser/parser_prod.nit:4899 */
26960 fra.me.REG[3] = fra.me.REG[0];
26961 /* parser/parser_prod.nit:4904 */
26962 CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26963 /* parser/parser_prod.nit:4905 */
26964 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26965 if (UNTAG_Bool(REGB0)) {
26966 } else {
26967 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4905);
26968 }
26969 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26970 /* parser/parser_prod.nit:4906 */
26971 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26972 if (UNTAG_Bool(REGB0)) {
26973 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4906);
26974 }
26975 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26976 /* parser/parser_prod.nit:4907 */
26977 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26978 if (UNTAG_Bool(REGB0)) {
26979 } else {
26980 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4907);
26981 }
26982 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26983 /* parser/parser_prod.nit:4908 */
26984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26985 if (UNTAG_Bool(REGB0)) {
26986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4908);
26987 }
26988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26989 stack_frame_head = fra.me.prev;
26990 init_table[itpos158] = 1;
26991 return;
26992 }
26993 static const char LOCATE_parser___parser_prod___ALlExpr___replace_child[] = "parser_prod::ALlExpr::(parser_prod::ANode::replace_child)";
26994 void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
26995 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26996 val_t REGB0;
26997 val_t REGB1;
26998 val_t tmp;
26999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27000 fra.me.file = LOCATE_parser___parser_prod;
27001 fra.me.line = 4911;
27002 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
27003 fra.me.has_broke = 0;
27004 fra.me.REG_size = 4;
27005 fra.me.nitni_local_ref_head = NULL;
27006 fra.me.REG[0] = NIT_NULL;
27007 fra.me.REG[1] = NIT_NULL;
27008 fra.me.REG[2] = NIT_NULL;
27009 fra.me.REG[3] = NIT_NULL;
27010 fra.me.REG[0] = p0;
27011 fra.me.REG[1] = p1;
27012 fra.me.REG[2] = p2;
27013 /* parser/parser_prod.nit:4913 */
27014 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27015 if (UNTAG_Bool(REGB0)) {
27016 } else {
27017 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4913);
27018 }
27019 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27020 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27021 if (UNTAG_Bool(REGB0)) {
27022 } else {
27023 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27024 REGB0 = REGB1;
27025 }
27026 if (UNTAG_Bool(REGB0)) {
27027 /* parser/parser_prod.nit:4914 */
27028 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27029 if (UNTAG_Bool(REGB0)) {
27030 } else {
27031 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27032 if (UNTAG_Bool(REGB1)) {
27033 REGB1 = TAG_Bool(0);
27034 REGB0 = REGB1;
27035 } else {
27036 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27037 REGB0 = REGB1;
27038 }
27039 }
27040 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27041 if (UNTAG_Bool(REGB0)) {
27042 /* parser/parser_prod.nit:4915 */
27043 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27044 if (UNTAG_Bool(REGB0)) {
27045 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4915);
27046 }
27047 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27048 /* parser/parser_prod.nit:4916 */
27049 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27050 if (UNTAG_Bool(REGB0)) {
27051 } else {
27052 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4916);
27053 }
27054 /* parser/parser_prod.nit:4917 */
27055 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27056 } else {
27057 /* parser/parser_prod.nit:4919 */
27058 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4919);
27059 }
27060 /* parser/parser_prod.nit:4921 */
27061 goto label1;
27062 }
27063 /* parser/parser_prod.nit:4923 */
27064 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27065 if (UNTAG_Bool(REGB0)) {
27066 } else {
27067 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4923);
27068 }
27069 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27070 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27071 if (UNTAG_Bool(REGB0)) {
27072 } else {
27073 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27074 REGB0 = REGB1;
27075 }
27076 if (UNTAG_Bool(REGB0)) {
27077 /* parser/parser_prod.nit:4924 */
27078 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27079 if (UNTAG_Bool(REGB0)) {
27080 } else {
27081 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27082 if (UNTAG_Bool(REGB1)) {
27083 REGB1 = TAG_Bool(0);
27084 REGB0 = REGB1;
27085 } else {
27086 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27087 REGB0 = REGB1;
27088 }
27089 }
27090 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27091 if (UNTAG_Bool(REGB0)) {
27092 /* parser/parser_prod.nit:4925 */
27093 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27094 if (UNTAG_Bool(REGB0)) {
27095 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4925);
27096 }
27097 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27098 /* parser/parser_prod.nit:4926 */
27099 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27100 if (UNTAG_Bool(REGB0)) {
27101 } else {
27102 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4926);
27103 }
27104 /* parser/parser_prod.nit:4927 */
27105 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27106 } else {
27107 /* parser/parser_prod.nit:4929 */
27108 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4929);
27109 }
27110 /* parser/parser_prod.nit:4931 */
27111 goto label1;
27112 }
27113 label1: while(0);
27114 stack_frame_head = fra.me.prev;
27115 return;
27116 }
27117 static const char LOCATE_parser___parser_prod___ALlExpr___visit_all[] = "parser_prod::ALlExpr::(parser_prod::ANode::visit_all)";
27118 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
27119 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27120 val_t REGB0;
27121 val_t tmp;
27122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27123 fra.me.file = LOCATE_parser___parser_prod;
27124 fra.me.line = 4935;
27125 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
27126 fra.me.has_broke = 0;
27127 fra.me.REG_size = 3;
27128 fra.me.nitni_local_ref_head = NULL;
27129 fra.me.REG[0] = NIT_NULL;
27130 fra.me.REG[1] = NIT_NULL;
27131 fra.me.REG[2] = NIT_NULL;
27132 fra.me.REG[0] = p0;
27133 fra.me.REG[1] = p1;
27134 /* parser/parser_prod.nit:4937 */
27135 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27136 if (UNTAG_Bool(REGB0)) {
27137 } else {
27138 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4937);
27139 }
27140 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27141 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27142 /* parser/parser_prod.nit:4938 */
27143 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27144 if (UNTAG_Bool(REGB0)) {
27145 } else {
27146 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4938);
27147 }
27148 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27149 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27150 stack_frame_head = fra.me.prev;
27151 return;
27152 }
27153 static const char LOCATE_parser___parser_prod___AGtExpr___empty_init[] = "parser_prod::AGtExpr::empty_init";
27154 void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
27155 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
27156 struct {struct stack_frame_t me;} fra;
27157 val_t tmp;
27158 if (init_table[itpos159]) return;
27159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27160 fra.me.file = LOCATE_parser___parser_prod;
27161 fra.me.line = 4942;
27162 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
27163 fra.me.has_broke = 0;
27164 fra.me.REG_size = 1;
27165 fra.me.nitni_local_ref_head = NULL;
27166 fra.me.REG[0] = NIT_NULL;
27167 fra.me.REG[0] = p0;
27168 stack_frame_head = fra.me.prev;
27169 init_table[itpos159] = 1;
27170 return;
27171 }
27172 static const char LOCATE_parser___parser_prod___AGtExpr___init_agtexpr[] = "parser_prod::AGtExpr::init_agtexpr";
27173 void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27174 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
27175 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27176 val_t REGB0;
27177 val_t tmp;
27178 if (init_table[itpos160]) return;
27179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27180 fra.me.file = LOCATE_parser___parser_prod;
27181 fra.me.line = 4944;
27182 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
27183 fra.me.has_broke = 0;
27184 fra.me.REG_size = 4;
27185 fra.me.nitni_local_ref_head = NULL;
27186 fra.me.REG[0] = NIT_NULL;
27187 fra.me.REG[1] = NIT_NULL;
27188 fra.me.REG[2] = NIT_NULL;
27189 fra.me.REG[3] = NIT_NULL;
27190 fra.me.REG[0] = p0;
27191 fra.me.REG[1] = p1;
27192 fra.me.REG[2] = p2;
27193 /* parser/parser_prod.nit:4944 */
27194 fra.me.REG[3] = fra.me.REG[0];
27195 /* parser/parser_prod.nit:4949 */
27196 CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27197 /* parser/parser_prod.nit:4950 */
27198 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27199 if (UNTAG_Bool(REGB0)) {
27200 } else {
27201 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4950);
27202 }
27203 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27204 /* parser/parser_prod.nit:4951 */
27205 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27206 if (UNTAG_Bool(REGB0)) {
27207 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4951);
27208 }
27209 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27210 /* parser/parser_prod.nit:4952 */
27211 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27212 if (UNTAG_Bool(REGB0)) {
27213 } else {
27214 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4952);
27215 }
27216 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27217 /* parser/parser_prod.nit:4953 */
27218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27219 if (UNTAG_Bool(REGB0)) {
27220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4953);
27221 }
27222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27223 stack_frame_head = fra.me.prev;
27224 init_table[itpos160] = 1;
27225 return;
27226 }
27227 static const char LOCATE_parser___parser_prod___AGtExpr___replace_child[] = "parser_prod::AGtExpr::(parser_prod::ANode::replace_child)";
27228 void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
27229 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27230 val_t REGB0;
27231 val_t REGB1;
27232 val_t tmp;
27233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27234 fra.me.file = LOCATE_parser___parser_prod;
27235 fra.me.line = 4956;
27236 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
27237 fra.me.has_broke = 0;
27238 fra.me.REG_size = 4;
27239 fra.me.nitni_local_ref_head = NULL;
27240 fra.me.REG[0] = NIT_NULL;
27241 fra.me.REG[1] = NIT_NULL;
27242 fra.me.REG[2] = NIT_NULL;
27243 fra.me.REG[3] = NIT_NULL;
27244 fra.me.REG[0] = p0;
27245 fra.me.REG[1] = p1;
27246 fra.me.REG[2] = p2;
27247 /* parser/parser_prod.nit:4958 */
27248 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27249 if (UNTAG_Bool(REGB0)) {
27250 } else {
27251 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4958);
27252 }
27253 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27254 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27255 if (UNTAG_Bool(REGB0)) {
27256 } else {
27257 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27258 REGB0 = REGB1;
27259 }
27260 if (UNTAG_Bool(REGB0)) {
27261 /* parser/parser_prod.nit:4959 */
27262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27263 if (UNTAG_Bool(REGB0)) {
27264 } else {
27265 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27266 if (UNTAG_Bool(REGB1)) {
27267 REGB1 = TAG_Bool(0);
27268 REGB0 = REGB1;
27269 } else {
27270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27271 REGB0 = REGB1;
27272 }
27273 }
27274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27275 if (UNTAG_Bool(REGB0)) {
27276 /* parser/parser_prod.nit:4960 */
27277 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27278 if (UNTAG_Bool(REGB0)) {
27279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4960);
27280 }
27281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27282 /* parser/parser_prod.nit:4961 */
27283 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27284 if (UNTAG_Bool(REGB0)) {
27285 } else {
27286 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4961);
27287 }
27288 /* parser/parser_prod.nit:4962 */
27289 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27290 } else {
27291 /* parser/parser_prod.nit:4964 */
27292 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4964);
27293 }
27294 /* parser/parser_prod.nit:4966 */
27295 goto label1;
27296 }
27297 /* parser/parser_prod.nit:4968 */
27298 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27299 if (UNTAG_Bool(REGB0)) {
27300 } else {
27301 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4968);
27302 }
27303 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27304 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27305 if (UNTAG_Bool(REGB0)) {
27306 } else {
27307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27308 REGB0 = REGB1;
27309 }
27310 if (UNTAG_Bool(REGB0)) {
27311 /* parser/parser_prod.nit:4969 */
27312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27313 if (UNTAG_Bool(REGB0)) {
27314 } else {
27315 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27316 if (UNTAG_Bool(REGB1)) {
27317 REGB1 = TAG_Bool(0);
27318 REGB0 = REGB1;
27319 } else {
27320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27321 REGB0 = REGB1;
27322 }
27323 }
27324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27325 if (UNTAG_Bool(REGB0)) {
27326 /* parser/parser_prod.nit:4970 */
27327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27328 if (UNTAG_Bool(REGB0)) {
27329 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4970);
27330 }
27331 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27332 /* parser/parser_prod.nit:4971 */
27333 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27334 if (UNTAG_Bool(REGB0)) {
27335 } else {
27336 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4971);
27337 }
27338 /* parser/parser_prod.nit:4972 */
27339 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27340 } else {
27341 /* parser/parser_prod.nit:4974 */
27342 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4974);
27343 }
27344 /* parser/parser_prod.nit:4976 */
27345 goto label1;
27346 }
27347 label1: while(0);
27348 stack_frame_head = fra.me.prev;
27349 return;
27350 }
27351 static const char LOCATE_parser___parser_prod___AGtExpr___visit_all[] = "parser_prod::AGtExpr::(parser_prod::ANode::visit_all)";
27352 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
27353 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27354 val_t REGB0;
27355 val_t tmp;
27356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27357 fra.me.file = LOCATE_parser___parser_prod;
27358 fra.me.line = 4980;
27359 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
27360 fra.me.has_broke = 0;
27361 fra.me.REG_size = 3;
27362 fra.me.nitni_local_ref_head = NULL;
27363 fra.me.REG[0] = NIT_NULL;
27364 fra.me.REG[1] = NIT_NULL;
27365 fra.me.REG[2] = NIT_NULL;
27366 fra.me.REG[0] = p0;
27367 fra.me.REG[1] = p1;
27368 /* parser/parser_prod.nit:4982 */
27369 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27370 if (UNTAG_Bool(REGB0)) {
27371 } else {
27372 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4982);
27373 }
27374 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27375 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27376 /* parser/parser_prod.nit:4983 */
27377 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27378 if (UNTAG_Bool(REGB0)) {
27379 } else {
27380 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4983);
27381 }
27382 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27383 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27384 stack_frame_head = fra.me.prev;
27385 return;
27386 }
27387 static const char LOCATE_parser___parser_prod___AGeExpr___empty_init[] = "parser_prod::AGeExpr::empty_init";
27388 void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
27389 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
27390 struct {struct stack_frame_t me;} fra;
27391 val_t tmp;
27392 if (init_table[itpos161]) return;
27393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27394 fra.me.file = LOCATE_parser___parser_prod;
27395 fra.me.line = 4987;
27396 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
27397 fra.me.has_broke = 0;
27398 fra.me.REG_size = 1;
27399 fra.me.nitni_local_ref_head = NULL;
27400 fra.me.REG[0] = NIT_NULL;
27401 fra.me.REG[0] = p0;
27402 stack_frame_head = fra.me.prev;
27403 init_table[itpos161] = 1;
27404 return;
27405 }
27406 static const char LOCATE_parser___parser_prod___AGeExpr___init_ageexpr[] = "parser_prod::AGeExpr::init_ageexpr";
27407 void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27408 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
27409 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27410 val_t REGB0;
27411 val_t tmp;
27412 if (init_table[itpos162]) return;
27413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27414 fra.me.file = LOCATE_parser___parser_prod;
27415 fra.me.line = 4989;
27416 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
27417 fra.me.has_broke = 0;
27418 fra.me.REG_size = 4;
27419 fra.me.nitni_local_ref_head = NULL;
27420 fra.me.REG[0] = NIT_NULL;
27421 fra.me.REG[1] = NIT_NULL;
27422 fra.me.REG[2] = NIT_NULL;
27423 fra.me.REG[3] = NIT_NULL;
27424 fra.me.REG[0] = p0;
27425 fra.me.REG[1] = p1;
27426 fra.me.REG[2] = p2;
27427 /* parser/parser_prod.nit:4989 */
27428 fra.me.REG[3] = fra.me.REG[0];
27429 /* parser/parser_prod.nit:4994 */
27430 CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27431 /* parser/parser_prod.nit:4995 */
27432 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27433 if (UNTAG_Bool(REGB0)) {
27434 } else {
27435 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4995);
27436 }
27437 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27438 /* parser/parser_prod.nit:4996 */
27439 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27440 if (UNTAG_Bool(REGB0)) {
27441 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4996);
27442 }
27443 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27444 /* parser/parser_prod.nit:4997 */
27445 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27446 if (UNTAG_Bool(REGB0)) {
27447 } else {
27448 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4997);
27449 }
27450 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27451 /* parser/parser_prod.nit:4998 */
27452 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27453 if (UNTAG_Bool(REGB0)) {
27454 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4998);
27455 }
27456 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27457 stack_frame_head = fra.me.prev;
27458 init_table[itpos162] = 1;
27459 return;
27460 }
27461 static const char LOCATE_parser___parser_prod___AGeExpr___replace_child[] = "parser_prod::AGeExpr::(parser_prod::ANode::replace_child)";
27462 void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
27463 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27464 val_t REGB0;
27465 val_t REGB1;
27466 val_t tmp;
27467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27468 fra.me.file = LOCATE_parser___parser_prod;
27469 fra.me.line = 5001;
27470 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
27471 fra.me.has_broke = 0;
27472 fra.me.REG_size = 4;
27473 fra.me.nitni_local_ref_head = NULL;
27474 fra.me.REG[0] = NIT_NULL;
27475 fra.me.REG[1] = NIT_NULL;
27476 fra.me.REG[2] = NIT_NULL;
27477 fra.me.REG[3] = NIT_NULL;
27478 fra.me.REG[0] = p0;
27479 fra.me.REG[1] = p1;
27480 fra.me.REG[2] = p2;
27481 /* parser/parser_prod.nit:5003 */
27482 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27483 if (UNTAG_Bool(REGB0)) {
27484 } else {
27485 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5003);
27486 }
27487 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27488 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27489 if (UNTAG_Bool(REGB0)) {
27490 } else {
27491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27492 REGB0 = REGB1;
27493 }
27494 if (UNTAG_Bool(REGB0)) {
27495 /* parser/parser_prod.nit:5004 */
27496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27497 if (UNTAG_Bool(REGB0)) {
27498 } else {
27499 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27500 if (UNTAG_Bool(REGB1)) {
27501 REGB1 = TAG_Bool(0);
27502 REGB0 = REGB1;
27503 } else {
27504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27505 REGB0 = REGB1;
27506 }
27507 }
27508 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27509 if (UNTAG_Bool(REGB0)) {
27510 /* parser/parser_prod.nit:5005 */
27511 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27512 if (UNTAG_Bool(REGB0)) {
27513 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5005);
27514 }
27515 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27516 /* parser/parser_prod.nit:5006 */
27517 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27518 if (UNTAG_Bool(REGB0)) {
27519 } else {
27520 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5006);
27521 }
27522 /* parser/parser_prod.nit:5007 */
27523 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27524 } else {
27525 /* parser/parser_prod.nit:5009 */
27526 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5009);
27527 }
27528 /* parser/parser_prod.nit:5011 */
27529 goto label1;
27530 }
27531 /* parser/parser_prod.nit:5013 */
27532 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27533 if (UNTAG_Bool(REGB0)) {
27534 } else {
27535 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5013);
27536 }
27537 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27538 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27539 if (UNTAG_Bool(REGB0)) {
27540 } else {
27541 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27542 REGB0 = REGB1;
27543 }
27544 if (UNTAG_Bool(REGB0)) {
27545 /* parser/parser_prod.nit:5014 */
27546 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27547 if (UNTAG_Bool(REGB0)) {
27548 } else {
27549 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27550 if (UNTAG_Bool(REGB1)) {
27551 REGB1 = TAG_Bool(0);
27552 REGB0 = REGB1;
27553 } else {
27554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27555 REGB0 = REGB1;
27556 }
27557 }
27558 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27559 if (UNTAG_Bool(REGB0)) {
27560 /* parser/parser_prod.nit:5015 */
27561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27562 if (UNTAG_Bool(REGB0)) {
27563 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5015);
27564 }
27565 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27566 /* parser/parser_prod.nit:5016 */
27567 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27568 if (UNTAG_Bool(REGB0)) {
27569 } else {
27570 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5016);
27571 }
27572 /* parser/parser_prod.nit:5017 */
27573 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27574 } else {
27575 /* parser/parser_prod.nit:5019 */
27576 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5019);
27577 }
27578 /* parser/parser_prod.nit:5021 */
27579 goto label1;
27580 }
27581 label1: while(0);
27582 stack_frame_head = fra.me.prev;
27583 return;
27584 }
27585 static const char LOCATE_parser___parser_prod___AGeExpr___visit_all[] = "parser_prod::AGeExpr::(parser_prod::ANode::visit_all)";
27586 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
27587 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27588 val_t REGB0;
27589 val_t tmp;
27590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27591 fra.me.file = LOCATE_parser___parser_prod;
27592 fra.me.line = 5025;
27593 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
27594 fra.me.has_broke = 0;
27595 fra.me.REG_size = 3;
27596 fra.me.nitni_local_ref_head = NULL;
27597 fra.me.REG[0] = NIT_NULL;
27598 fra.me.REG[1] = NIT_NULL;
27599 fra.me.REG[2] = NIT_NULL;
27600 fra.me.REG[0] = p0;
27601 fra.me.REG[1] = p1;
27602 /* parser/parser_prod.nit:5027 */
27603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27604 if (UNTAG_Bool(REGB0)) {
27605 } else {
27606 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5027);
27607 }
27608 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27609 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27610 /* parser/parser_prod.nit:5028 */
27611 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27612 if (UNTAG_Bool(REGB0)) {
27613 } else {
27614 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5028);
27615 }
27616 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27617 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27618 stack_frame_head = fra.me.prev;
27619 return;
27620 }
27621 static const char LOCATE_parser___parser_prod___AGgExpr___empty_init[] = "parser_prod::AGgExpr::empty_init";
27622 void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
27623 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
27624 struct {struct stack_frame_t me;} fra;
27625 val_t tmp;
27626 if (init_table[itpos163]) return;
27627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27628 fra.me.file = LOCATE_parser___parser_prod;
27629 fra.me.line = 5032;
27630 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
27631 fra.me.has_broke = 0;
27632 fra.me.REG_size = 1;
27633 fra.me.nitni_local_ref_head = NULL;
27634 fra.me.REG[0] = NIT_NULL;
27635 fra.me.REG[0] = p0;
27636 stack_frame_head = fra.me.prev;
27637 init_table[itpos163] = 1;
27638 return;
27639 }
27640 static const char LOCATE_parser___parser_prod___AGgExpr___init_aggexpr[] = "parser_prod::AGgExpr::init_aggexpr";
27641 void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27642 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
27643 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27644 val_t REGB0;
27645 val_t tmp;
27646 if (init_table[itpos164]) return;
27647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27648 fra.me.file = LOCATE_parser___parser_prod;
27649 fra.me.line = 5034;
27650 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
27651 fra.me.has_broke = 0;
27652 fra.me.REG_size = 4;
27653 fra.me.nitni_local_ref_head = NULL;
27654 fra.me.REG[0] = NIT_NULL;
27655 fra.me.REG[1] = NIT_NULL;
27656 fra.me.REG[2] = NIT_NULL;
27657 fra.me.REG[3] = NIT_NULL;
27658 fra.me.REG[0] = p0;
27659 fra.me.REG[1] = p1;
27660 fra.me.REG[2] = p2;
27661 /* parser/parser_prod.nit:5034 */
27662 fra.me.REG[3] = fra.me.REG[0];
27663 /* parser/parser_prod.nit:5039 */
27664 CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27665 /* parser/parser_prod.nit:5040 */
27666 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27667 if (UNTAG_Bool(REGB0)) {
27668 } else {
27669 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5040);
27670 }
27671 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27672 /* parser/parser_prod.nit:5041 */
27673 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27674 if (UNTAG_Bool(REGB0)) {
27675 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5041);
27676 }
27677 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27678 /* parser/parser_prod.nit:5042 */
27679 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27680 if (UNTAG_Bool(REGB0)) {
27681 } else {
27682 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5042);
27683 }
27684 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27685 /* parser/parser_prod.nit:5043 */
27686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27687 if (UNTAG_Bool(REGB0)) {
27688 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5043);
27689 }
27690 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27691 stack_frame_head = fra.me.prev;
27692 init_table[itpos164] = 1;
27693 return;
27694 }
27695 static const char LOCATE_parser___parser_prod___AGgExpr___replace_child[] = "parser_prod::AGgExpr::(parser_prod::ANode::replace_child)";
27696 void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
27697 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27698 val_t REGB0;
27699 val_t REGB1;
27700 val_t tmp;
27701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27702 fra.me.file = LOCATE_parser___parser_prod;
27703 fra.me.line = 5046;
27704 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
27705 fra.me.has_broke = 0;
27706 fra.me.REG_size = 4;
27707 fra.me.nitni_local_ref_head = NULL;
27708 fra.me.REG[0] = NIT_NULL;
27709 fra.me.REG[1] = NIT_NULL;
27710 fra.me.REG[2] = NIT_NULL;
27711 fra.me.REG[3] = NIT_NULL;
27712 fra.me.REG[0] = p0;
27713 fra.me.REG[1] = p1;
27714 fra.me.REG[2] = p2;
27715 /* parser/parser_prod.nit:5048 */
27716 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27717 if (UNTAG_Bool(REGB0)) {
27718 } else {
27719 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5048);
27720 }
27721 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27722 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27723 if (UNTAG_Bool(REGB0)) {
27724 } else {
27725 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27726 REGB0 = REGB1;
27727 }
27728 if (UNTAG_Bool(REGB0)) {
27729 /* parser/parser_prod.nit:5049 */
27730 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27731 if (UNTAG_Bool(REGB0)) {
27732 } else {
27733 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27734 if (UNTAG_Bool(REGB1)) {
27735 REGB1 = TAG_Bool(0);
27736 REGB0 = REGB1;
27737 } else {
27738 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27739 REGB0 = REGB1;
27740 }
27741 }
27742 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27743 if (UNTAG_Bool(REGB0)) {
27744 /* parser/parser_prod.nit:5050 */
27745 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27746 if (UNTAG_Bool(REGB0)) {
27747 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5050);
27748 }
27749 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27750 /* parser/parser_prod.nit:5051 */
27751 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27752 if (UNTAG_Bool(REGB0)) {
27753 } else {
27754 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5051);
27755 }
27756 /* parser/parser_prod.nit:5052 */
27757 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27758 } else {
27759 /* parser/parser_prod.nit:5054 */
27760 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5054);
27761 }
27762 /* parser/parser_prod.nit:5056 */
27763 goto label1;
27764 }
27765 /* parser/parser_prod.nit:5058 */
27766 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27767 if (UNTAG_Bool(REGB0)) {
27768 } else {
27769 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5058);
27770 }
27771 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27772 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27773 if (UNTAG_Bool(REGB0)) {
27774 } else {
27775 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27776 REGB0 = REGB1;
27777 }
27778 if (UNTAG_Bool(REGB0)) {
27779 /* parser/parser_prod.nit:5059 */
27780 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27781 if (UNTAG_Bool(REGB0)) {
27782 } else {
27783 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27784 if (UNTAG_Bool(REGB1)) {
27785 REGB1 = TAG_Bool(0);
27786 REGB0 = REGB1;
27787 } else {
27788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27789 REGB0 = REGB1;
27790 }
27791 }
27792 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27793 if (UNTAG_Bool(REGB0)) {
27794 /* parser/parser_prod.nit:5060 */
27795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27796 if (UNTAG_Bool(REGB0)) {
27797 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5060);
27798 }
27799 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27800 /* parser/parser_prod.nit:5061 */
27801 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27802 if (UNTAG_Bool(REGB0)) {
27803 } else {
27804 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5061);
27805 }
27806 /* parser/parser_prod.nit:5062 */
27807 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27808 } else {
27809 /* parser/parser_prod.nit:5064 */
27810 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5064);
27811 }
27812 /* parser/parser_prod.nit:5066 */
27813 goto label1;
27814 }
27815 label1: while(0);
27816 stack_frame_head = fra.me.prev;
27817 return;
27818 }
27819 static const char LOCATE_parser___parser_prod___AGgExpr___visit_all[] = "parser_prod::AGgExpr::(parser_prod::ANode::visit_all)";
27820 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
27821 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27822 val_t REGB0;
27823 val_t tmp;
27824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27825 fra.me.file = LOCATE_parser___parser_prod;
27826 fra.me.line = 5070;
27827 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
27828 fra.me.has_broke = 0;
27829 fra.me.REG_size = 3;
27830 fra.me.nitni_local_ref_head = NULL;
27831 fra.me.REG[0] = NIT_NULL;
27832 fra.me.REG[1] = NIT_NULL;
27833 fra.me.REG[2] = NIT_NULL;
27834 fra.me.REG[0] = p0;
27835 fra.me.REG[1] = p1;
27836 /* parser/parser_prod.nit:5072 */
27837 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27838 if (UNTAG_Bool(REGB0)) {
27839 } else {
27840 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5072);
27841 }
27842 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27843 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27844 /* parser/parser_prod.nit:5073 */
27845 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27846 if (UNTAG_Bool(REGB0)) {
27847 } else {
27848 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5073);
27849 }
27850 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27851 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27852 stack_frame_head = fra.me.prev;
27853 return;
27854 }
27855 static const char LOCATE_parser___parser_prod___AIsaExpr___empty_init[] = "parser_prod::AIsaExpr::empty_init";
27856 void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
27857 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
27858 struct {struct stack_frame_t me;} fra;
27859 val_t tmp;
27860 if (init_table[itpos165]) return;
27861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27862 fra.me.file = LOCATE_parser___parser_prod;
27863 fra.me.line = 5077;
27864 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
27865 fra.me.has_broke = 0;
27866 fra.me.REG_size = 1;
27867 fra.me.nitni_local_ref_head = NULL;
27868 fra.me.REG[0] = NIT_NULL;
27869 fra.me.REG[0] = p0;
27870 stack_frame_head = fra.me.prev;
27871 init_table[itpos165] = 1;
27872 return;
27873 }
27874 static const char LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr[] = "parser_prod::AIsaExpr::init_aisaexpr";
27875 void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27876 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
27877 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27878 val_t REGB0;
27879 val_t tmp;
27880 if (init_table[itpos166]) return;
27881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27882 fra.me.file = LOCATE_parser___parser_prod;
27883 fra.me.line = 5079;
27884 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
27885 fra.me.has_broke = 0;
27886 fra.me.REG_size = 4;
27887 fra.me.nitni_local_ref_head = NULL;
27888 fra.me.REG[0] = NIT_NULL;
27889 fra.me.REG[1] = NIT_NULL;
27890 fra.me.REG[2] = NIT_NULL;
27891 fra.me.REG[3] = NIT_NULL;
27892 fra.me.REG[0] = p0;
27893 fra.me.REG[1] = p1;
27894 fra.me.REG[2] = p2;
27895 /* parser/parser_prod.nit:5079 */
27896 fra.me.REG[3] = fra.me.REG[0];
27897 /* parser/parser_prod.nit:5084 */
27898 CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27899 /* parser/parser_prod.nit:5085 */
27900 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27901 if (UNTAG_Bool(REGB0)) {
27902 } else {
27903 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5085);
27904 }
27905 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27906 /* parser/parser_prod.nit:5086 */
27907 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27908 if (UNTAG_Bool(REGB0)) {
27909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5086);
27910 }
27911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27912 /* parser/parser_prod.nit:5087 */
27913 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27914 if (UNTAG_Bool(REGB0)) {
27915 } else {
27916 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5087);
27917 }
27918 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
27919 /* parser/parser_prod.nit:5088 */
27920 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27921 if (UNTAG_Bool(REGB0)) {
27922 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5088);
27923 }
27924 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27925 stack_frame_head = fra.me.prev;
27926 init_table[itpos166] = 1;
27927 return;
27928 }
27929 static const char LOCATE_parser___parser_prod___AIsaExpr___replace_child[] = "parser_prod::AIsaExpr::(parser_prod::ANode::replace_child)";
27930 void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
27931 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27932 val_t REGB0;
27933 val_t REGB1;
27934 val_t tmp;
27935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27936 fra.me.file = LOCATE_parser___parser_prod;
27937 fra.me.line = 5091;
27938 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
27939 fra.me.has_broke = 0;
27940 fra.me.REG_size = 4;
27941 fra.me.nitni_local_ref_head = NULL;
27942 fra.me.REG[0] = NIT_NULL;
27943 fra.me.REG[1] = NIT_NULL;
27944 fra.me.REG[2] = NIT_NULL;
27945 fra.me.REG[3] = NIT_NULL;
27946 fra.me.REG[0] = p0;
27947 fra.me.REG[1] = p1;
27948 fra.me.REG[2] = p2;
27949 /* parser/parser_prod.nit:5093 */
27950 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27951 if (UNTAG_Bool(REGB0)) {
27952 } else {
27953 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5093);
27954 }
27955 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
27956 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27957 if (UNTAG_Bool(REGB0)) {
27958 } else {
27959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27960 REGB0 = REGB1;
27961 }
27962 if (UNTAG_Bool(REGB0)) {
27963 /* parser/parser_prod.nit:5094 */
27964 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27965 if (UNTAG_Bool(REGB0)) {
27966 } else {
27967 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27968 if (UNTAG_Bool(REGB1)) {
27969 REGB1 = TAG_Bool(0);
27970 REGB0 = REGB1;
27971 } else {
27972 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27973 REGB0 = REGB1;
27974 }
27975 }
27976 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27977 if (UNTAG_Bool(REGB0)) {
27978 /* parser/parser_prod.nit:5095 */
27979 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27980 if (UNTAG_Bool(REGB0)) {
27981 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5095);
27982 }
27983 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27984 /* parser/parser_prod.nit:5096 */
27985 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27986 if (UNTAG_Bool(REGB0)) {
27987 } else {
27988 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5096);
27989 }
27990 /* parser/parser_prod.nit:5097 */
27991 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27992 } else {
27993 /* parser/parser_prod.nit:5099 */
27994 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5099);
27995 }
27996 /* parser/parser_prod.nit:5101 */
27997 goto label1;
27998 }
27999 /* parser/parser_prod.nit:5103 */
28000 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
28001 if (UNTAG_Bool(REGB0)) {
28002 } else {
28003 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5103);
28004 }
28005 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
28006 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28007 if (UNTAG_Bool(REGB0)) {
28008 } else {
28009 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28010 REGB0 = REGB1;
28011 }
28012 if (UNTAG_Bool(REGB0)) {
28013 /* parser/parser_prod.nit:5104 */
28014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28015 if (UNTAG_Bool(REGB0)) {
28016 } else {
28017 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28018 if (UNTAG_Bool(REGB1)) {
28019 REGB1 = TAG_Bool(0);
28020 REGB0 = REGB1;
28021 } else {
28022 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28023 REGB0 = REGB1;
28024 }
28025 }
28026 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28027 if (UNTAG_Bool(REGB0)) {
28028 /* parser/parser_prod.nit:5105 */
28029 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28030 if (UNTAG_Bool(REGB0)) {
28031 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5105);
28032 }
28033 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28034 /* parser/parser_prod.nit:5106 */
28035 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*/;
28036 if (UNTAG_Bool(REGB0)) {
28037 } else {
28038 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5106);
28039 }
28040 /* parser/parser_prod.nit:5107 */
28041 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
28042 } else {
28043 /* parser/parser_prod.nit:5109 */
28044 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5109);
28045 }
28046 /* parser/parser_prod.nit:5111 */
28047 goto label1;
28048 }
28049 label1: while(0);
28050 stack_frame_head = fra.me.prev;
28051 return;
28052 }
28053 static const char LOCATE_parser___parser_prod___AIsaExpr___visit_all[] = "parser_prod::AIsaExpr::(parser_prod::ANode::visit_all)";
28054 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
28055 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28056 val_t REGB0;
28057 val_t tmp;
28058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28059 fra.me.file = LOCATE_parser___parser_prod;
28060 fra.me.line = 5115;
28061 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
28062 fra.me.has_broke = 0;
28063 fra.me.REG_size = 3;
28064 fra.me.nitni_local_ref_head = NULL;
28065 fra.me.REG[0] = NIT_NULL;
28066 fra.me.REG[1] = NIT_NULL;
28067 fra.me.REG[2] = NIT_NULL;
28068 fra.me.REG[0] = p0;
28069 fra.me.REG[1] = p1;
28070 /* parser/parser_prod.nit:5117 */
28071 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28072 if (UNTAG_Bool(REGB0)) {
28073 } else {
28074 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5117);
28075 }
28076 fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
28077 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28078 /* parser/parser_prod.nit:5118 */
28079 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
28080 if (UNTAG_Bool(REGB0)) {
28081 } else {
28082 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5118);
28083 }
28084 fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
28085 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28086 stack_frame_head = fra.me.prev;
28087 return;
28088 }
28089 static const char LOCATE_parser___parser_prod___APlusExpr___empty_init[] = "parser_prod::APlusExpr::empty_init";
28090 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
28091 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
28092 struct {struct stack_frame_t me;} fra;
28093 val_t tmp;
28094 if (init_table[itpos167]) return;
28095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28096 fra.me.file = LOCATE_parser___parser_prod;
28097 fra.me.line = 5122;
28098 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
28099 fra.me.has_broke = 0;
28100 fra.me.REG_size = 1;
28101 fra.me.nitni_local_ref_head = NULL;
28102 fra.me.REG[0] = NIT_NULL;
28103 fra.me.REG[0] = p0;
28104 stack_frame_head = fra.me.prev;
28105 init_table[itpos167] = 1;
28106 return;
28107 }
28108 static const char LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr[] = "parser_prod::APlusExpr::init_aplusexpr";
28109 void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28110 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
28111 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28112 val_t REGB0;
28113 val_t tmp;
28114 if (init_table[itpos168]) return;
28115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28116 fra.me.file = LOCATE_parser___parser_prod;
28117 fra.me.line = 5124;
28118 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
28119 fra.me.has_broke = 0;
28120 fra.me.REG_size = 4;
28121 fra.me.nitni_local_ref_head = NULL;
28122 fra.me.REG[0] = NIT_NULL;
28123 fra.me.REG[1] = NIT_NULL;
28124 fra.me.REG[2] = NIT_NULL;
28125 fra.me.REG[3] = NIT_NULL;
28126 fra.me.REG[0] = p0;
28127 fra.me.REG[1] = p1;
28128 fra.me.REG[2] = p2;
28129 /* parser/parser_prod.nit:5124 */
28130 fra.me.REG[3] = fra.me.REG[0];
28131 /* parser/parser_prod.nit:5129 */
28132 CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28133 /* parser/parser_prod.nit:5130 */
28134 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28135 if (UNTAG_Bool(REGB0)) {
28136 } else {
28137 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5130);
28138 }
28139 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28140 /* parser/parser_prod.nit:5131 */
28141 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28142 if (UNTAG_Bool(REGB0)) {
28143 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5131);
28144 }
28145 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28146 /* parser/parser_prod.nit:5132 */
28147 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28148 if (UNTAG_Bool(REGB0)) {
28149 } else {
28150 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5132);
28151 }
28152 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28153 /* parser/parser_prod.nit:5133 */
28154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28155 if (UNTAG_Bool(REGB0)) {
28156 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5133);
28157 }
28158 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28159 stack_frame_head = fra.me.prev;
28160 init_table[itpos168] = 1;
28161 return;
28162 }
28163 static const char LOCATE_parser___parser_prod___APlusExpr___replace_child[] = "parser_prod::APlusExpr::(parser_prod::ANode::replace_child)";
28164 void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
28165 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28166 val_t REGB0;
28167 val_t REGB1;
28168 val_t tmp;
28169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28170 fra.me.file = LOCATE_parser___parser_prod;
28171 fra.me.line = 5136;
28172 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
28173 fra.me.has_broke = 0;
28174 fra.me.REG_size = 4;
28175 fra.me.nitni_local_ref_head = NULL;
28176 fra.me.REG[0] = NIT_NULL;
28177 fra.me.REG[1] = NIT_NULL;
28178 fra.me.REG[2] = NIT_NULL;
28179 fra.me.REG[3] = NIT_NULL;
28180 fra.me.REG[0] = p0;
28181 fra.me.REG[1] = p1;
28182 fra.me.REG[2] = p2;
28183 /* parser/parser_prod.nit:5138 */
28184 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28185 if (UNTAG_Bool(REGB0)) {
28186 } else {
28187 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5138);
28188 }
28189 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28190 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28191 if (UNTAG_Bool(REGB0)) {
28192 } else {
28193 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28194 REGB0 = REGB1;
28195 }
28196 if (UNTAG_Bool(REGB0)) {
28197 /* parser/parser_prod.nit:5139 */
28198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28199 if (UNTAG_Bool(REGB0)) {
28200 } else {
28201 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28202 if (UNTAG_Bool(REGB1)) {
28203 REGB1 = TAG_Bool(0);
28204 REGB0 = REGB1;
28205 } else {
28206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28207 REGB0 = REGB1;
28208 }
28209 }
28210 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28211 if (UNTAG_Bool(REGB0)) {
28212 /* parser/parser_prod.nit:5140 */
28213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28214 if (UNTAG_Bool(REGB0)) {
28215 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5140);
28216 }
28217 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28218 /* parser/parser_prod.nit:5141 */
28219 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28220 if (UNTAG_Bool(REGB0)) {
28221 } else {
28222 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5141);
28223 }
28224 /* parser/parser_prod.nit:5142 */
28225 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28226 } else {
28227 /* parser/parser_prod.nit:5144 */
28228 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5144);
28229 }
28230 /* parser/parser_prod.nit:5146 */
28231 goto label1;
28232 }
28233 /* parser/parser_prod.nit:5148 */
28234 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28235 if (UNTAG_Bool(REGB0)) {
28236 } else {
28237 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5148);
28238 }
28239 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28240 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28241 if (UNTAG_Bool(REGB0)) {
28242 } else {
28243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28244 REGB0 = REGB1;
28245 }
28246 if (UNTAG_Bool(REGB0)) {
28247 /* parser/parser_prod.nit:5149 */
28248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28249 if (UNTAG_Bool(REGB0)) {
28250 } else {
28251 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28252 if (UNTAG_Bool(REGB1)) {
28253 REGB1 = TAG_Bool(0);
28254 REGB0 = REGB1;
28255 } else {
28256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28257 REGB0 = REGB1;
28258 }
28259 }
28260 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28261 if (UNTAG_Bool(REGB0)) {
28262 /* parser/parser_prod.nit:5150 */
28263 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28264 if (UNTAG_Bool(REGB0)) {
28265 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5150);
28266 }
28267 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28268 /* parser/parser_prod.nit:5151 */
28269 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28270 if (UNTAG_Bool(REGB0)) {
28271 } else {
28272 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5151);
28273 }
28274 /* parser/parser_prod.nit:5152 */
28275 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28276 } else {
28277 /* parser/parser_prod.nit:5154 */
28278 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5154);
28279 }
28280 /* parser/parser_prod.nit:5156 */
28281 goto label1;
28282 }
28283 label1: while(0);
28284 stack_frame_head = fra.me.prev;
28285 return;
28286 }
28287 static const char LOCATE_parser___parser_prod___APlusExpr___visit_all[] = "parser_prod::APlusExpr::(parser_prod::ANode::visit_all)";
28288 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
28289 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28290 val_t REGB0;
28291 val_t tmp;
28292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28293 fra.me.file = LOCATE_parser___parser_prod;
28294 fra.me.line = 5160;
28295 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
28296 fra.me.has_broke = 0;
28297 fra.me.REG_size = 3;
28298 fra.me.nitni_local_ref_head = NULL;
28299 fra.me.REG[0] = NIT_NULL;
28300 fra.me.REG[1] = NIT_NULL;
28301 fra.me.REG[2] = NIT_NULL;
28302 fra.me.REG[0] = p0;
28303 fra.me.REG[1] = p1;
28304 /* parser/parser_prod.nit:5162 */
28305 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28306 if (UNTAG_Bool(REGB0)) {
28307 } else {
28308 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5162);
28309 }
28310 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28311 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28312 /* parser/parser_prod.nit:5163 */
28313 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28314 if (UNTAG_Bool(REGB0)) {
28315 } else {
28316 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5163);
28317 }
28318 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28319 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28320 stack_frame_head = fra.me.prev;
28321 return;
28322 }
28323 static const char LOCATE_parser___parser_prod___AMinusExpr___empty_init[] = "parser_prod::AMinusExpr::empty_init";
28324 void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
28325 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
28326 struct {struct stack_frame_t me;} fra;
28327 val_t tmp;
28328 if (init_table[itpos169]) return;
28329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28330 fra.me.file = LOCATE_parser___parser_prod;
28331 fra.me.line = 5167;
28332 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
28333 fra.me.has_broke = 0;
28334 fra.me.REG_size = 1;
28335 fra.me.nitni_local_ref_head = NULL;
28336 fra.me.REG[0] = NIT_NULL;
28337 fra.me.REG[0] = p0;
28338 stack_frame_head = fra.me.prev;
28339 init_table[itpos169] = 1;
28340 return;
28341 }
28342 static const char LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr[] = "parser_prod::AMinusExpr::init_aminusexpr";
28343 void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28344 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
28345 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28346 val_t REGB0;
28347 val_t tmp;
28348 if (init_table[itpos170]) return;
28349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28350 fra.me.file = LOCATE_parser___parser_prod;
28351 fra.me.line = 5169;
28352 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
28353 fra.me.has_broke = 0;
28354 fra.me.REG_size = 4;
28355 fra.me.nitni_local_ref_head = NULL;
28356 fra.me.REG[0] = NIT_NULL;
28357 fra.me.REG[1] = NIT_NULL;
28358 fra.me.REG[2] = NIT_NULL;
28359 fra.me.REG[3] = NIT_NULL;
28360 fra.me.REG[0] = p0;
28361 fra.me.REG[1] = p1;
28362 fra.me.REG[2] = p2;
28363 /* parser/parser_prod.nit:5169 */
28364 fra.me.REG[3] = fra.me.REG[0];
28365 /* parser/parser_prod.nit:5174 */
28366 CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28367 /* parser/parser_prod.nit:5175 */
28368 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28369 if (UNTAG_Bool(REGB0)) {
28370 } else {
28371 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5175);
28372 }
28373 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28374 /* parser/parser_prod.nit:5176 */
28375 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28376 if (UNTAG_Bool(REGB0)) {
28377 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5176);
28378 }
28379 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28380 /* parser/parser_prod.nit:5177 */
28381 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28382 if (UNTAG_Bool(REGB0)) {
28383 } else {
28384 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5177);
28385 }
28386 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28387 /* parser/parser_prod.nit:5178 */
28388 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28389 if (UNTAG_Bool(REGB0)) {
28390 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5178);
28391 }
28392 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28393 stack_frame_head = fra.me.prev;
28394 init_table[itpos170] = 1;
28395 return;
28396 }
28397 static const char LOCATE_parser___parser_prod___AMinusExpr___replace_child[] = "parser_prod::AMinusExpr::(parser_prod::ANode::replace_child)";
28398 void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
28399 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28400 val_t REGB0;
28401 val_t REGB1;
28402 val_t tmp;
28403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28404 fra.me.file = LOCATE_parser___parser_prod;
28405 fra.me.line = 5181;
28406 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
28407 fra.me.has_broke = 0;
28408 fra.me.REG_size = 4;
28409 fra.me.nitni_local_ref_head = NULL;
28410 fra.me.REG[0] = NIT_NULL;
28411 fra.me.REG[1] = NIT_NULL;
28412 fra.me.REG[2] = NIT_NULL;
28413 fra.me.REG[3] = NIT_NULL;
28414 fra.me.REG[0] = p0;
28415 fra.me.REG[1] = p1;
28416 fra.me.REG[2] = p2;
28417 /* parser/parser_prod.nit:5183 */
28418 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28419 if (UNTAG_Bool(REGB0)) {
28420 } else {
28421 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5183);
28422 }
28423 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28424 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28425 if (UNTAG_Bool(REGB0)) {
28426 } else {
28427 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28428 REGB0 = REGB1;
28429 }
28430 if (UNTAG_Bool(REGB0)) {
28431 /* parser/parser_prod.nit:5184 */
28432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28433 if (UNTAG_Bool(REGB0)) {
28434 } else {
28435 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28436 if (UNTAG_Bool(REGB1)) {
28437 REGB1 = TAG_Bool(0);
28438 REGB0 = REGB1;
28439 } else {
28440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28441 REGB0 = REGB1;
28442 }
28443 }
28444 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28445 if (UNTAG_Bool(REGB0)) {
28446 /* parser/parser_prod.nit:5185 */
28447 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28448 if (UNTAG_Bool(REGB0)) {
28449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5185);
28450 }
28451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28452 /* parser/parser_prod.nit:5186 */
28453 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28454 if (UNTAG_Bool(REGB0)) {
28455 } else {
28456 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5186);
28457 }
28458 /* parser/parser_prod.nit:5187 */
28459 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28460 } else {
28461 /* parser/parser_prod.nit:5189 */
28462 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5189);
28463 }
28464 /* parser/parser_prod.nit:5191 */
28465 goto label1;
28466 }
28467 /* parser/parser_prod.nit:5193 */
28468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28469 if (UNTAG_Bool(REGB0)) {
28470 } else {
28471 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5193);
28472 }
28473 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28474 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28475 if (UNTAG_Bool(REGB0)) {
28476 } else {
28477 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28478 REGB0 = REGB1;
28479 }
28480 if (UNTAG_Bool(REGB0)) {
28481 /* parser/parser_prod.nit:5194 */
28482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28483 if (UNTAG_Bool(REGB0)) {
28484 } else {
28485 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28486 if (UNTAG_Bool(REGB1)) {
28487 REGB1 = TAG_Bool(0);
28488 REGB0 = REGB1;
28489 } else {
28490 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28491 REGB0 = REGB1;
28492 }
28493 }
28494 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28495 if (UNTAG_Bool(REGB0)) {
28496 /* parser/parser_prod.nit:5195 */
28497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28498 if (UNTAG_Bool(REGB0)) {
28499 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5195);
28500 }
28501 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28502 /* parser/parser_prod.nit:5196 */
28503 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28504 if (UNTAG_Bool(REGB0)) {
28505 } else {
28506 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5196);
28507 }
28508 /* parser/parser_prod.nit:5197 */
28509 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28510 } else {
28511 /* parser/parser_prod.nit:5199 */
28512 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5199);
28513 }
28514 /* parser/parser_prod.nit:5201 */
28515 goto label1;
28516 }
28517 label1: while(0);
28518 stack_frame_head = fra.me.prev;
28519 return;
28520 }
28521 static const char LOCATE_parser___parser_prod___AMinusExpr___visit_all[] = "parser_prod::AMinusExpr::(parser_prod::ANode::visit_all)";
28522 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
28523 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28524 val_t REGB0;
28525 val_t tmp;
28526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28527 fra.me.file = LOCATE_parser___parser_prod;
28528 fra.me.line = 5205;
28529 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
28530 fra.me.has_broke = 0;
28531 fra.me.REG_size = 3;
28532 fra.me.nitni_local_ref_head = NULL;
28533 fra.me.REG[0] = NIT_NULL;
28534 fra.me.REG[1] = NIT_NULL;
28535 fra.me.REG[2] = NIT_NULL;
28536 fra.me.REG[0] = p0;
28537 fra.me.REG[1] = p1;
28538 /* parser/parser_prod.nit:5207 */
28539 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28540 if (UNTAG_Bool(REGB0)) {
28541 } else {
28542 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5207);
28543 }
28544 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28545 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28546 /* parser/parser_prod.nit:5208 */
28547 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28548 if (UNTAG_Bool(REGB0)) {
28549 } else {
28550 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5208);
28551 }
28552 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28553 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28554 stack_frame_head = fra.me.prev;
28555 return;
28556 }
28557 static const char LOCATE_parser___parser_prod___AStarshipExpr___empty_init[] = "parser_prod::AStarshipExpr::empty_init";
28558 void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
28559 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
28560 struct {struct stack_frame_t me;} fra;
28561 val_t tmp;
28562 if (init_table[itpos171]) return;
28563 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28564 fra.me.file = LOCATE_parser___parser_prod;
28565 fra.me.line = 5212;
28566 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
28567 fra.me.has_broke = 0;
28568 fra.me.REG_size = 1;
28569 fra.me.nitni_local_ref_head = NULL;
28570 fra.me.REG[0] = NIT_NULL;
28571 fra.me.REG[0] = p0;
28572 stack_frame_head = fra.me.prev;
28573 init_table[itpos171] = 1;
28574 return;
28575 }
28576 static const char LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr[] = "parser_prod::AStarshipExpr::init_astarshipexpr";
28577 void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28578 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
28579 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28580 val_t REGB0;
28581 val_t tmp;
28582 if (init_table[itpos172]) return;
28583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28584 fra.me.file = LOCATE_parser___parser_prod;
28585 fra.me.line = 5214;
28586 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
28587 fra.me.has_broke = 0;
28588 fra.me.REG_size = 4;
28589 fra.me.nitni_local_ref_head = NULL;
28590 fra.me.REG[0] = NIT_NULL;
28591 fra.me.REG[1] = NIT_NULL;
28592 fra.me.REG[2] = NIT_NULL;
28593 fra.me.REG[3] = NIT_NULL;
28594 fra.me.REG[0] = p0;
28595 fra.me.REG[1] = p1;
28596 fra.me.REG[2] = p2;
28597 /* parser/parser_prod.nit:5214 */
28598 fra.me.REG[3] = fra.me.REG[0];
28599 /* parser/parser_prod.nit:5219 */
28600 CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28601 /* parser/parser_prod.nit:5220 */
28602 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28603 if (UNTAG_Bool(REGB0)) {
28604 } else {
28605 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5220);
28606 }
28607 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28608 /* parser/parser_prod.nit:5221 */
28609 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28610 if (UNTAG_Bool(REGB0)) {
28611 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5221);
28612 }
28613 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28614 /* parser/parser_prod.nit:5222 */
28615 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28616 if (UNTAG_Bool(REGB0)) {
28617 } else {
28618 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5222);
28619 }
28620 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28621 /* parser/parser_prod.nit:5223 */
28622 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28623 if (UNTAG_Bool(REGB0)) {
28624 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5223);
28625 }
28626 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28627 stack_frame_head = fra.me.prev;
28628 init_table[itpos172] = 1;
28629 return;
28630 }
28631 static const char LOCATE_parser___parser_prod___AStarshipExpr___replace_child[] = "parser_prod::AStarshipExpr::(parser_prod::ANode::replace_child)";
28632 void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
28633 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28634 val_t REGB0;
28635 val_t REGB1;
28636 val_t tmp;
28637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28638 fra.me.file = LOCATE_parser___parser_prod;
28639 fra.me.line = 5226;
28640 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
28641 fra.me.has_broke = 0;
28642 fra.me.REG_size = 4;
28643 fra.me.nitni_local_ref_head = NULL;
28644 fra.me.REG[0] = NIT_NULL;
28645 fra.me.REG[1] = NIT_NULL;
28646 fra.me.REG[2] = NIT_NULL;
28647 fra.me.REG[3] = NIT_NULL;
28648 fra.me.REG[0] = p0;
28649 fra.me.REG[1] = p1;
28650 fra.me.REG[2] = p2;
28651 /* parser/parser_prod.nit:5228 */
28652 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28653 if (UNTAG_Bool(REGB0)) {
28654 } else {
28655 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5228);
28656 }
28657 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28658 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28659 if (UNTAG_Bool(REGB0)) {
28660 } else {
28661 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28662 REGB0 = REGB1;
28663 }
28664 if (UNTAG_Bool(REGB0)) {
28665 /* parser/parser_prod.nit:5229 */
28666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28667 if (UNTAG_Bool(REGB0)) {
28668 } else {
28669 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28670 if (UNTAG_Bool(REGB1)) {
28671 REGB1 = TAG_Bool(0);
28672 REGB0 = REGB1;
28673 } else {
28674 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28675 REGB0 = REGB1;
28676 }
28677 }
28678 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28679 if (UNTAG_Bool(REGB0)) {
28680 /* parser/parser_prod.nit:5230 */
28681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28682 if (UNTAG_Bool(REGB0)) {
28683 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5230);
28684 }
28685 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28686 /* parser/parser_prod.nit:5231 */
28687 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28688 if (UNTAG_Bool(REGB0)) {
28689 } else {
28690 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5231);
28691 }
28692 /* parser/parser_prod.nit:5232 */
28693 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28694 } else {
28695 /* parser/parser_prod.nit:5234 */
28696 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5234);
28697 }
28698 /* parser/parser_prod.nit:5236 */
28699 goto label1;
28700 }
28701 /* parser/parser_prod.nit:5238 */
28702 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28703 if (UNTAG_Bool(REGB0)) {
28704 } else {
28705 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5238);
28706 }
28707 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28708 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28709 if (UNTAG_Bool(REGB0)) {
28710 } else {
28711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28712 REGB0 = REGB1;
28713 }
28714 if (UNTAG_Bool(REGB0)) {
28715 /* parser/parser_prod.nit:5239 */
28716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28717 if (UNTAG_Bool(REGB0)) {
28718 } else {
28719 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28720 if (UNTAG_Bool(REGB1)) {
28721 REGB1 = TAG_Bool(0);
28722 REGB0 = REGB1;
28723 } else {
28724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28725 REGB0 = REGB1;
28726 }
28727 }
28728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28729 if (UNTAG_Bool(REGB0)) {
28730 /* parser/parser_prod.nit:5240 */
28731 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28732 if (UNTAG_Bool(REGB0)) {
28733 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5240);
28734 }
28735 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28736 /* parser/parser_prod.nit:5241 */
28737 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28738 if (UNTAG_Bool(REGB0)) {
28739 } else {
28740 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5241);
28741 }
28742 /* parser/parser_prod.nit:5242 */
28743 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28744 } else {
28745 /* parser/parser_prod.nit:5244 */
28746 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5244);
28747 }
28748 /* parser/parser_prod.nit:5246 */
28749 goto label1;
28750 }
28751 label1: while(0);
28752 stack_frame_head = fra.me.prev;
28753 return;
28754 }
28755 static const char LOCATE_parser___parser_prod___AStarshipExpr___visit_all[] = "parser_prod::AStarshipExpr::(parser_prod::ANode::visit_all)";
28756 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
28757 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28758 val_t REGB0;
28759 val_t tmp;
28760 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28761 fra.me.file = LOCATE_parser___parser_prod;
28762 fra.me.line = 5250;
28763 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
28764 fra.me.has_broke = 0;
28765 fra.me.REG_size = 3;
28766 fra.me.nitni_local_ref_head = NULL;
28767 fra.me.REG[0] = NIT_NULL;
28768 fra.me.REG[1] = NIT_NULL;
28769 fra.me.REG[2] = NIT_NULL;
28770 fra.me.REG[0] = p0;
28771 fra.me.REG[1] = p1;
28772 /* parser/parser_prod.nit:5252 */
28773 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28774 if (UNTAG_Bool(REGB0)) {
28775 } else {
28776 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5252);
28777 }
28778 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28779 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28780 /* parser/parser_prod.nit:5253 */
28781 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28782 if (UNTAG_Bool(REGB0)) {
28783 } else {
28784 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5253);
28785 }
28786 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28787 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28788 stack_frame_head = fra.me.prev;
28789 return;
28790 }
28791 static const char LOCATE_parser___parser_prod___AStarExpr___empty_init[] = "parser_prod::AStarExpr::empty_init";
28792 void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
28793 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
28794 struct {struct stack_frame_t me;} fra;
28795 val_t tmp;
28796 if (init_table[itpos173]) return;
28797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28798 fra.me.file = LOCATE_parser___parser_prod;
28799 fra.me.line = 5257;
28800 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
28801 fra.me.has_broke = 0;
28802 fra.me.REG_size = 1;
28803 fra.me.nitni_local_ref_head = NULL;
28804 fra.me.REG[0] = NIT_NULL;
28805 fra.me.REG[0] = p0;
28806 stack_frame_head = fra.me.prev;
28807 init_table[itpos173] = 1;
28808 return;
28809 }
28810 static const char LOCATE_parser___parser_prod___AStarExpr___init_astarexpr[] = "parser_prod::AStarExpr::init_astarexpr";
28811 void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28812 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
28813 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28814 val_t REGB0;
28815 val_t tmp;
28816 if (init_table[itpos174]) return;
28817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28818 fra.me.file = LOCATE_parser___parser_prod;
28819 fra.me.line = 5259;
28820 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
28821 fra.me.has_broke = 0;
28822 fra.me.REG_size = 4;
28823 fra.me.nitni_local_ref_head = NULL;
28824 fra.me.REG[0] = NIT_NULL;
28825 fra.me.REG[1] = NIT_NULL;
28826 fra.me.REG[2] = NIT_NULL;
28827 fra.me.REG[3] = NIT_NULL;
28828 fra.me.REG[0] = p0;
28829 fra.me.REG[1] = p1;
28830 fra.me.REG[2] = p2;
28831 /* parser/parser_prod.nit:5259 */
28832 fra.me.REG[3] = fra.me.REG[0];
28833 /* parser/parser_prod.nit:5264 */
28834 CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28835 /* parser/parser_prod.nit:5265 */
28836 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28837 if (UNTAG_Bool(REGB0)) {
28838 } else {
28839 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5265);
28840 }
28841 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28842 /* parser/parser_prod.nit:5266 */
28843 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28844 if (UNTAG_Bool(REGB0)) {
28845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5266);
28846 }
28847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28848 /* parser/parser_prod.nit:5267 */
28849 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28850 if (UNTAG_Bool(REGB0)) {
28851 } else {
28852 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5267);
28853 }
28854 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28855 /* parser/parser_prod.nit:5268 */
28856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28857 if (UNTAG_Bool(REGB0)) {
28858 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5268);
28859 }
28860 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28861 stack_frame_head = fra.me.prev;
28862 init_table[itpos174] = 1;
28863 return;
28864 }
28865 static const char LOCATE_parser___parser_prod___AStarExpr___replace_child[] = "parser_prod::AStarExpr::(parser_prod::ANode::replace_child)";
28866 void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
28867 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28868 val_t REGB0;
28869 val_t REGB1;
28870 val_t tmp;
28871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28872 fra.me.file = LOCATE_parser___parser_prod;
28873 fra.me.line = 5271;
28874 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
28875 fra.me.has_broke = 0;
28876 fra.me.REG_size = 4;
28877 fra.me.nitni_local_ref_head = NULL;
28878 fra.me.REG[0] = NIT_NULL;
28879 fra.me.REG[1] = NIT_NULL;
28880 fra.me.REG[2] = NIT_NULL;
28881 fra.me.REG[3] = NIT_NULL;
28882 fra.me.REG[0] = p0;
28883 fra.me.REG[1] = p1;
28884 fra.me.REG[2] = p2;
28885 /* parser/parser_prod.nit:5273 */
28886 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28887 if (UNTAG_Bool(REGB0)) {
28888 } else {
28889 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5273);
28890 }
28891 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28892 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28893 if (UNTAG_Bool(REGB0)) {
28894 } else {
28895 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28896 REGB0 = REGB1;
28897 }
28898 if (UNTAG_Bool(REGB0)) {
28899 /* parser/parser_prod.nit:5274 */
28900 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28901 if (UNTAG_Bool(REGB0)) {
28902 } else {
28903 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28904 if (UNTAG_Bool(REGB1)) {
28905 REGB1 = TAG_Bool(0);
28906 REGB0 = REGB1;
28907 } else {
28908 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28909 REGB0 = REGB1;
28910 }
28911 }
28912 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28913 if (UNTAG_Bool(REGB0)) {
28914 /* parser/parser_prod.nit:5275 */
28915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28916 if (UNTAG_Bool(REGB0)) {
28917 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5275);
28918 }
28919 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28920 /* parser/parser_prod.nit:5276 */
28921 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28922 if (UNTAG_Bool(REGB0)) {
28923 } else {
28924 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5276);
28925 }
28926 /* parser/parser_prod.nit:5277 */
28927 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28928 } else {
28929 /* parser/parser_prod.nit:5279 */
28930 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5279);
28931 }
28932 /* parser/parser_prod.nit:5281 */
28933 goto label1;
28934 }
28935 /* parser/parser_prod.nit:5283 */
28936 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28937 if (UNTAG_Bool(REGB0)) {
28938 } else {
28939 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5283);
28940 }
28941 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28942 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28943 if (UNTAG_Bool(REGB0)) {
28944 } else {
28945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28946 REGB0 = REGB1;
28947 }
28948 if (UNTAG_Bool(REGB0)) {
28949 /* parser/parser_prod.nit:5284 */
28950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28951 if (UNTAG_Bool(REGB0)) {
28952 } else {
28953 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28954 if (UNTAG_Bool(REGB1)) {
28955 REGB1 = TAG_Bool(0);
28956 REGB0 = REGB1;
28957 } else {
28958 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28959 REGB0 = REGB1;
28960 }
28961 }
28962 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28963 if (UNTAG_Bool(REGB0)) {
28964 /* parser/parser_prod.nit:5285 */
28965 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28966 if (UNTAG_Bool(REGB0)) {
28967 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5285);
28968 }
28969 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28970 /* parser/parser_prod.nit:5286 */
28971 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28972 if (UNTAG_Bool(REGB0)) {
28973 } else {
28974 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5286);
28975 }
28976 /* parser/parser_prod.nit:5287 */
28977 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28978 } else {
28979 /* parser/parser_prod.nit:5289 */
28980 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5289);
28981 }
28982 /* parser/parser_prod.nit:5291 */
28983 goto label1;
28984 }
28985 label1: while(0);
28986 stack_frame_head = fra.me.prev;
28987 return;
28988 }
28989 static const char LOCATE_parser___parser_prod___AStarExpr___visit_all[] = "parser_prod::AStarExpr::(parser_prod::ANode::visit_all)";
28990 void parser___parser_prod___AStarExpr___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 = 5295;
28997 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
28998 fra.me.has_broke = 0;
28999 fra.me.REG_size = 3;
29000 fra.me.nitni_local_ref_head = NULL;
29001 fra.me.REG[0] = NIT_NULL;
29002 fra.me.REG[1] = NIT_NULL;
29003 fra.me.REG[2] = NIT_NULL;
29004 fra.me.REG[0] = p0;
29005 fra.me.REG[1] = p1;
29006 /* parser/parser_prod.nit:5297 */
29007 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29008 if (UNTAG_Bool(REGB0)) {
29009 } else {
29010 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5297);
29011 }
29012 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29013 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29014 /* parser/parser_prod.nit:5298 */
29015 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29016 if (UNTAG_Bool(REGB0)) {
29017 } else {
29018 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5298);
29019 }
29020 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29021 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29022 stack_frame_head = fra.me.prev;
29023 return;
29024 }
29025 static const char LOCATE_parser___parser_prod___ASlashExpr___empty_init[] = "parser_prod::ASlashExpr::empty_init";
29026 void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
29027 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
29028 struct {struct stack_frame_t me;} fra;
29029 val_t tmp;
29030 if (init_table[itpos175]) return;
29031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29032 fra.me.file = LOCATE_parser___parser_prod;
29033 fra.me.line = 5302;
29034 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
29035 fra.me.has_broke = 0;
29036 fra.me.REG_size = 1;
29037 fra.me.nitni_local_ref_head = NULL;
29038 fra.me.REG[0] = NIT_NULL;
29039 fra.me.REG[0] = p0;
29040 stack_frame_head = fra.me.prev;
29041 init_table[itpos175] = 1;
29042 return;
29043 }
29044 static const char LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr[] = "parser_prod::ASlashExpr::init_aslashexpr";
29045 void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29046 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
29047 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29048 val_t REGB0;
29049 val_t tmp;
29050 if (init_table[itpos176]) return;
29051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29052 fra.me.file = LOCATE_parser___parser_prod;
29053 fra.me.line = 5304;
29054 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
29055 fra.me.has_broke = 0;
29056 fra.me.REG_size = 4;
29057 fra.me.nitni_local_ref_head = NULL;
29058 fra.me.REG[0] = NIT_NULL;
29059 fra.me.REG[1] = NIT_NULL;
29060 fra.me.REG[2] = NIT_NULL;
29061 fra.me.REG[3] = NIT_NULL;
29062 fra.me.REG[0] = p0;
29063 fra.me.REG[1] = p1;
29064 fra.me.REG[2] = p2;
29065 /* parser/parser_prod.nit:5304 */
29066 fra.me.REG[3] = fra.me.REG[0];
29067 /* parser/parser_prod.nit:5309 */
29068 CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29069 /* parser/parser_prod.nit:5310 */
29070 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29071 if (UNTAG_Bool(REGB0)) {
29072 } else {
29073 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5310);
29074 }
29075 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29076 /* parser/parser_prod.nit:5311 */
29077 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29078 if (UNTAG_Bool(REGB0)) {
29079 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5311);
29080 }
29081 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29082 /* parser/parser_prod.nit:5312 */
29083 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29084 if (UNTAG_Bool(REGB0)) {
29085 } else {
29086 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5312);
29087 }
29088 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
29089 /* parser/parser_prod.nit:5313 */
29090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29091 if (UNTAG_Bool(REGB0)) {
29092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5313);
29093 }
29094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29095 stack_frame_head = fra.me.prev;
29096 init_table[itpos176] = 1;
29097 return;
29098 }
29099 static const char LOCATE_parser___parser_prod___ASlashExpr___replace_child[] = "parser_prod::ASlashExpr::(parser_prod::ANode::replace_child)";
29100 void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
29101 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29102 val_t REGB0;
29103 val_t REGB1;
29104 val_t tmp;
29105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29106 fra.me.file = LOCATE_parser___parser_prod;
29107 fra.me.line = 5316;
29108 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
29109 fra.me.has_broke = 0;
29110 fra.me.REG_size = 4;
29111 fra.me.nitni_local_ref_head = NULL;
29112 fra.me.REG[0] = NIT_NULL;
29113 fra.me.REG[1] = NIT_NULL;
29114 fra.me.REG[2] = NIT_NULL;
29115 fra.me.REG[3] = NIT_NULL;
29116 fra.me.REG[0] = p0;
29117 fra.me.REG[1] = p1;
29118 fra.me.REG[2] = p2;
29119 /* parser/parser_prod.nit:5318 */
29120 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29121 if (UNTAG_Bool(REGB0)) {
29122 } else {
29123 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5318);
29124 }
29125 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29126 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29127 if (UNTAG_Bool(REGB0)) {
29128 } else {
29129 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29130 REGB0 = REGB1;
29131 }
29132 if (UNTAG_Bool(REGB0)) {
29133 /* parser/parser_prod.nit:5319 */
29134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29135 if (UNTAG_Bool(REGB0)) {
29136 } else {
29137 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29138 if (UNTAG_Bool(REGB1)) {
29139 REGB1 = TAG_Bool(0);
29140 REGB0 = REGB1;
29141 } else {
29142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29143 REGB0 = REGB1;
29144 }
29145 }
29146 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29147 if (UNTAG_Bool(REGB0)) {
29148 /* parser/parser_prod.nit:5320 */
29149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29150 if (UNTAG_Bool(REGB0)) {
29151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5320);
29152 }
29153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29154 /* parser/parser_prod.nit:5321 */
29155 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29156 if (UNTAG_Bool(REGB0)) {
29157 } else {
29158 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5321);
29159 }
29160 /* parser/parser_prod.nit:5322 */
29161 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29162 } else {
29163 /* parser/parser_prod.nit:5324 */
29164 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5324);
29165 }
29166 /* parser/parser_prod.nit:5326 */
29167 goto label1;
29168 }
29169 /* parser/parser_prod.nit:5328 */
29170 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29171 if (UNTAG_Bool(REGB0)) {
29172 } else {
29173 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5328);
29174 }
29175 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29176 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29177 if (UNTAG_Bool(REGB0)) {
29178 } else {
29179 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29180 REGB0 = REGB1;
29181 }
29182 if (UNTAG_Bool(REGB0)) {
29183 /* parser/parser_prod.nit:5329 */
29184 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29185 if (UNTAG_Bool(REGB0)) {
29186 } else {
29187 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29188 if (UNTAG_Bool(REGB1)) {
29189 REGB1 = TAG_Bool(0);
29190 REGB0 = REGB1;
29191 } else {
29192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29193 REGB0 = REGB1;
29194 }
29195 }
29196 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29197 if (UNTAG_Bool(REGB0)) {
29198 /* parser/parser_prod.nit:5330 */
29199 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29200 if (UNTAG_Bool(REGB0)) {
29201 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5330);
29202 }
29203 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29204 /* parser/parser_prod.nit:5331 */
29205 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29206 if (UNTAG_Bool(REGB0)) {
29207 } else {
29208 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5331);
29209 }
29210 /* parser/parser_prod.nit:5332 */
29211 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
29212 } else {
29213 /* parser/parser_prod.nit:5334 */
29214 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5334);
29215 }
29216 /* parser/parser_prod.nit:5336 */
29217 goto label1;
29218 }
29219 label1: while(0);
29220 stack_frame_head = fra.me.prev;
29221 return;
29222 }
29223 static const char LOCATE_parser___parser_prod___ASlashExpr___visit_all[] = "parser_prod::ASlashExpr::(parser_prod::ANode::visit_all)";
29224 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
29225 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29226 val_t REGB0;
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 = 5340;
29231 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
29232 fra.me.has_broke = 0;
29233 fra.me.REG_size = 3;
29234 fra.me.nitni_local_ref_head = NULL;
29235 fra.me.REG[0] = NIT_NULL;
29236 fra.me.REG[1] = NIT_NULL;
29237 fra.me.REG[2] = NIT_NULL;
29238 fra.me.REG[0] = p0;
29239 fra.me.REG[1] = p1;
29240 /* parser/parser_prod.nit:5342 */
29241 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29242 if (UNTAG_Bool(REGB0)) {
29243 } else {
29244 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5342);
29245 }
29246 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29247 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29248 /* parser/parser_prod.nit:5343 */
29249 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29250 if (UNTAG_Bool(REGB0)) {
29251 } else {
29252 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5343);
29253 }
29254 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29255 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29256 stack_frame_head = fra.me.prev;
29257 return;
29258 }
29259 static const char LOCATE_parser___parser_prod___APercentExpr___empty_init[] = "parser_prod::APercentExpr::empty_init";
29260 void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
29261 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
29262 struct {struct stack_frame_t me;} fra;
29263 val_t tmp;
29264 if (init_table[itpos177]) return;
29265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29266 fra.me.file = LOCATE_parser___parser_prod;
29267 fra.me.line = 5347;
29268 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
29269 fra.me.has_broke = 0;
29270 fra.me.REG_size = 1;
29271 fra.me.nitni_local_ref_head = NULL;
29272 fra.me.REG[0] = NIT_NULL;
29273 fra.me.REG[0] = p0;
29274 stack_frame_head = fra.me.prev;
29275 init_table[itpos177] = 1;
29276 return;
29277 }
29278 static const char LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr[] = "parser_prod::APercentExpr::init_apercentexpr";
29279 void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29280 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
29281 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29282 val_t REGB0;
29283 val_t tmp;
29284 if (init_table[itpos178]) return;
29285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29286 fra.me.file = LOCATE_parser___parser_prod;
29287 fra.me.line = 5349;
29288 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
29289 fra.me.has_broke = 0;
29290 fra.me.REG_size = 4;
29291 fra.me.nitni_local_ref_head = NULL;
29292 fra.me.REG[0] = NIT_NULL;
29293 fra.me.REG[1] = NIT_NULL;
29294 fra.me.REG[2] = NIT_NULL;
29295 fra.me.REG[3] = NIT_NULL;
29296 fra.me.REG[0] = p0;
29297 fra.me.REG[1] = p1;
29298 fra.me.REG[2] = p2;
29299 /* parser/parser_prod.nit:5349 */
29300 fra.me.REG[3] = fra.me.REG[0];
29301 /* parser/parser_prod.nit:5354 */
29302 CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29303 /* parser/parser_prod.nit:5355 */
29304 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29305 if (UNTAG_Bool(REGB0)) {
29306 } else {
29307 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5355);
29308 }
29309 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29310 /* parser/parser_prod.nit:5356 */
29311 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29312 if (UNTAG_Bool(REGB0)) {
29313 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5356);
29314 }
29315 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29316 /* parser/parser_prod.nit:5357 */
29317 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29318 if (UNTAG_Bool(REGB0)) {
29319 } else {
29320 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5357);
29321 }
29322 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
29323 /* parser/parser_prod.nit:5358 */
29324 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29325 if (UNTAG_Bool(REGB0)) {
29326 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5358);
29327 }
29328 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29329 stack_frame_head = fra.me.prev;
29330 init_table[itpos178] = 1;
29331 return;
29332 }
29333 static const char LOCATE_parser___parser_prod___APercentExpr___replace_child[] = "parser_prod::APercentExpr::(parser_prod::ANode::replace_child)";
29334 void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
29335 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29336 val_t REGB0;
29337 val_t REGB1;
29338 val_t tmp;
29339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29340 fra.me.file = LOCATE_parser___parser_prod;
29341 fra.me.line = 5361;
29342 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
29343 fra.me.has_broke = 0;
29344 fra.me.REG_size = 4;
29345 fra.me.nitni_local_ref_head = NULL;
29346 fra.me.REG[0] = NIT_NULL;
29347 fra.me.REG[1] = NIT_NULL;
29348 fra.me.REG[2] = NIT_NULL;
29349 fra.me.REG[3] = NIT_NULL;
29350 fra.me.REG[0] = p0;
29351 fra.me.REG[1] = p1;
29352 fra.me.REG[2] = p2;
29353 /* parser/parser_prod.nit:5363 */
29354 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29355 if (UNTAG_Bool(REGB0)) {
29356 } else {
29357 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5363);
29358 }
29359 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29360 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29361 if (UNTAG_Bool(REGB0)) {
29362 } else {
29363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29364 REGB0 = REGB1;
29365 }
29366 if (UNTAG_Bool(REGB0)) {
29367 /* parser/parser_prod.nit:5364 */
29368 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29369 if (UNTAG_Bool(REGB0)) {
29370 } else {
29371 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29372 if (UNTAG_Bool(REGB1)) {
29373 REGB1 = TAG_Bool(0);
29374 REGB0 = REGB1;
29375 } else {
29376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29377 REGB0 = REGB1;
29378 }
29379 }
29380 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29381 if (UNTAG_Bool(REGB0)) {
29382 /* parser/parser_prod.nit:5365 */
29383 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29384 if (UNTAG_Bool(REGB0)) {
29385 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5365);
29386 }
29387 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29388 /* parser/parser_prod.nit:5366 */
29389 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29390 if (UNTAG_Bool(REGB0)) {
29391 } else {
29392 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5366);
29393 }
29394 /* parser/parser_prod.nit:5367 */
29395 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29396 } else {
29397 /* parser/parser_prod.nit:5369 */
29398 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5369);
29399 }
29400 /* parser/parser_prod.nit:5371 */
29401 goto label1;
29402 }
29403 /* parser/parser_prod.nit:5373 */
29404 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29405 if (UNTAG_Bool(REGB0)) {
29406 } else {
29407 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5373);
29408 }
29409 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29410 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29411 if (UNTAG_Bool(REGB0)) {
29412 } else {
29413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29414 REGB0 = REGB1;
29415 }
29416 if (UNTAG_Bool(REGB0)) {
29417 /* parser/parser_prod.nit:5374 */
29418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29419 if (UNTAG_Bool(REGB0)) {
29420 } else {
29421 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29422 if (UNTAG_Bool(REGB1)) {
29423 REGB1 = TAG_Bool(0);
29424 REGB0 = REGB1;
29425 } else {
29426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29427 REGB0 = REGB1;
29428 }
29429 }
29430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29431 if (UNTAG_Bool(REGB0)) {
29432 /* parser/parser_prod.nit:5375 */
29433 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29434 if (UNTAG_Bool(REGB0)) {
29435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5375);
29436 }
29437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29438 /* parser/parser_prod.nit:5376 */
29439 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29440 if (UNTAG_Bool(REGB0)) {
29441 } else {
29442 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5376);
29443 }
29444 /* parser/parser_prod.nit:5377 */
29445 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
29446 } else {
29447 /* parser/parser_prod.nit:5379 */
29448 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5379);
29449 }
29450 /* parser/parser_prod.nit:5381 */
29451 goto label1;
29452 }
29453 label1: while(0);
29454 stack_frame_head = fra.me.prev;
29455 return;
29456 }
29457 static const char LOCATE_parser___parser_prod___APercentExpr___visit_all[] = "parser_prod::APercentExpr::(parser_prod::ANode::visit_all)";
29458 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
29459 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29460 val_t REGB0;
29461 val_t tmp;
29462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29463 fra.me.file = LOCATE_parser___parser_prod;
29464 fra.me.line = 5385;
29465 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
29466 fra.me.has_broke = 0;
29467 fra.me.REG_size = 3;
29468 fra.me.nitni_local_ref_head = NULL;
29469 fra.me.REG[0] = NIT_NULL;
29470 fra.me.REG[1] = NIT_NULL;
29471 fra.me.REG[2] = NIT_NULL;
29472 fra.me.REG[0] = p0;
29473 fra.me.REG[1] = p1;
29474 /* parser/parser_prod.nit:5387 */
29475 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29476 if (UNTAG_Bool(REGB0)) {
29477 } else {
29478 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5387);
29479 }
29480 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29481 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29482 /* parser/parser_prod.nit:5388 */
29483 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29484 if (UNTAG_Bool(REGB0)) {
29485 } else {
29486 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5388);
29487 }
29488 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29489 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29490 stack_frame_head = fra.me.prev;
29491 return;
29492 }
29493 static const char LOCATE_parser___parser_prod___AUminusExpr___empty_init[] = "parser_prod::AUminusExpr::empty_init";
29494 void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
29495 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
29496 struct {struct stack_frame_t me;} fra;
29497 val_t tmp;
29498 if (init_table[itpos179]) return;
29499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29500 fra.me.file = LOCATE_parser___parser_prod;
29501 fra.me.line = 5392;
29502 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
29503 fra.me.has_broke = 0;
29504 fra.me.REG_size = 1;
29505 fra.me.nitni_local_ref_head = NULL;
29506 fra.me.REG[0] = NIT_NULL;
29507 fra.me.REG[0] = p0;
29508 stack_frame_head = fra.me.prev;
29509 init_table[itpos179] = 1;
29510 return;
29511 }
29512 static const char LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr[] = "parser_prod::AUminusExpr::init_auminusexpr";
29513 void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29514 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
29515 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29516 val_t REGB0;
29517 val_t tmp;
29518 if (init_table[itpos180]) return;
29519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29520 fra.me.file = LOCATE_parser___parser_prod;
29521 fra.me.line = 5394;
29522 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
29523 fra.me.has_broke = 0;
29524 fra.me.REG_size = 4;
29525 fra.me.nitni_local_ref_head = NULL;
29526 fra.me.REG[0] = NIT_NULL;
29527 fra.me.REG[1] = NIT_NULL;
29528 fra.me.REG[2] = NIT_NULL;
29529 fra.me.REG[3] = NIT_NULL;
29530 fra.me.REG[0] = p0;
29531 fra.me.REG[1] = p1;
29532 fra.me.REG[2] = p2;
29533 /* parser/parser_prod.nit:5394 */
29534 fra.me.REG[3] = fra.me.REG[0];
29535 /* parser/parser_prod.nit:5399 */
29536 CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29537 /* parser/parser_prod.nit:5400 */
29538 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29539 if (UNTAG_Bool(REGB0)) {
29540 } else {
29541 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5400);
29542 }
29543 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
29544 /* parser/parser_prod.nit:5401 */
29545 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29546 if (UNTAG_Bool(REGB0)) {
29547 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5401);
29548 }
29549 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29550 /* parser/parser_prod.nit:5402 */
29551 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29552 if (UNTAG_Bool(REGB0)) {
29553 } else {
29554 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5402);
29555 }
29556 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
29557 /* parser/parser_prod.nit:5403 */
29558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29559 if (UNTAG_Bool(REGB0)) {
29560 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5403);
29561 }
29562 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29563 stack_frame_head = fra.me.prev;
29564 init_table[itpos180] = 1;
29565 return;
29566 }
29567 static const char LOCATE_parser___parser_prod___AUminusExpr___replace_child[] = "parser_prod::AUminusExpr::(parser_prod::ANode::replace_child)";
29568 void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
29569 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29570 val_t REGB0;
29571 val_t REGB1;
29572 val_t tmp;
29573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29574 fra.me.file = LOCATE_parser___parser_prod;
29575 fra.me.line = 5406;
29576 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
29577 fra.me.has_broke = 0;
29578 fra.me.REG_size = 4;
29579 fra.me.nitni_local_ref_head = NULL;
29580 fra.me.REG[0] = NIT_NULL;
29581 fra.me.REG[1] = NIT_NULL;
29582 fra.me.REG[2] = NIT_NULL;
29583 fra.me.REG[3] = NIT_NULL;
29584 fra.me.REG[0] = p0;
29585 fra.me.REG[1] = p1;
29586 fra.me.REG[2] = p2;
29587 /* parser/parser_prod.nit:5408 */
29588 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
29589 if (UNTAG_Bool(REGB0)) {
29590 } else {
29591 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5408);
29592 }
29593 fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
29594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29595 if (UNTAG_Bool(REGB0)) {
29596 } else {
29597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29598 REGB0 = REGB1;
29599 }
29600 if (UNTAG_Bool(REGB0)) {
29601 /* parser/parser_prod.nit:5409 */
29602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29603 if (UNTAG_Bool(REGB0)) {
29604 } else {
29605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29606 if (UNTAG_Bool(REGB1)) {
29607 REGB1 = TAG_Bool(0);
29608 REGB0 = REGB1;
29609 } else {
29610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29611 REGB0 = REGB1;
29612 }
29613 }
29614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29615 if (UNTAG_Bool(REGB0)) {
29616 /* parser/parser_prod.nit:5410 */
29617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29618 if (UNTAG_Bool(REGB0)) {
29619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5410);
29620 }
29621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29622 /* parser/parser_prod.nit:5411 */
29623 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*/;
29624 if (UNTAG_Bool(REGB0)) {
29625 } else {
29626 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5411);
29627 }
29628 /* parser/parser_prod.nit:5412 */
29629 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
29630 } else {
29631 /* parser/parser_prod.nit:5414 */
29632 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5414);
29633 }
29634 /* parser/parser_prod.nit:5416 */
29635 goto label1;
29636 }
29637 /* parser/parser_prod.nit:5418 */
29638 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29639 if (UNTAG_Bool(REGB0)) {
29640 } else {
29641 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5418);
29642 }
29643 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29644 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29645 if (UNTAG_Bool(REGB0)) {
29646 } else {
29647 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29648 REGB0 = REGB1;
29649 }
29650 if (UNTAG_Bool(REGB0)) {
29651 /* parser/parser_prod.nit:5419 */
29652 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29653 if (UNTAG_Bool(REGB0)) {
29654 } else {
29655 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29656 if (UNTAG_Bool(REGB1)) {
29657 REGB1 = TAG_Bool(0);
29658 REGB0 = REGB1;
29659 } else {
29660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29661 REGB0 = REGB1;
29662 }
29663 }
29664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29665 if (UNTAG_Bool(REGB0)) {
29666 /* parser/parser_prod.nit:5420 */
29667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29668 if (UNTAG_Bool(REGB0)) {
29669 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5420);
29670 }
29671 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29672 /* parser/parser_prod.nit:5421 */
29673 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29674 if (UNTAG_Bool(REGB0)) {
29675 } else {
29676 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5421);
29677 }
29678 /* parser/parser_prod.nit:5422 */
29679 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29680 } else {
29681 /* parser/parser_prod.nit:5424 */
29682 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5424);
29683 }
29684 /* parser/parser_prod.nit:5426 */
29685 goto label1;
29686 }
29687 label1: while(0);
29688 stack_frame_head = fra.me.prev;
29689 return;
29690 }
29691 static const char LOCATE_parser___parser_prod___AUminusExpr___visit_all[] = "parser_prod::AUminusExpr::(parser_prod::ANode::visit_all)";
29692 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
29693 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29694 val_t REGB0;
29695 val_t tmp;
29696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29697 fra.me.file = LOCATE_parser___parser_prod;
29698 fra.me.line = 5430;
29699 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
29700 fra.me.has_broke = 0;
29701 fra.me.REG_size = 3;
29702 fra.me.nitni_local_ref_head = NULL;
29703 fra.me.REG[0] = NIT_NULL;
29704 fra.me.REG[1] = NIT_NULL;
29705 fra.me.REG[2] = NIT_NULL;
29706 fra.me.REG[0] = p0;
29707 fra.me.REG[1] = p1;
29708 /* parser/parser_prod.nit:5432 */
29709 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
29710 if (UNTAG_Bool(REGB0)) {
29711 } else {
29712 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5432);
29713 }
29714 fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
29715 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29716 /* parser/parser_prod.nit:5433 */
29717 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29718 if (UNTAG_Bool(REGB0)) {
29719 } else {
29720 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5433);
29721 }
29722 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29723 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29724 stack_frame_head = fra.me.prev;
29725 return;
29726 }
29727 static const char LOCATE_parser___parser_prod___ANewExpr___empty_init[] = "parser_prod::ANewExpr::empty_init";
29728 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
29729 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
29730 struct {struct stack_frame_t me;} fra;
29731 val_t tmp;
29732 if (init_table[itpos181]) return;
29733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29734 fra.me.file = LOCATE_parser___parser_prod;
29735 fra.me.line = 5437;
29736 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
29737 fra.me.has_broke = 0;
29738 fra.me.REG_size = 1;
29739 fra.me.nitni_local_ref_head = NULL;
29740 fra.me.REG[0] = NIT_NULL;
29741 fra.me.REG[0] = p0;
29742 stack_frame_head = fra.me.prev;
29743 init_table[itpos181] = 1;
29744 return;
29745 }
29746 static const char LOCATE_parser___parser_prod___ANewExpr___init_anewexpr[] = "parser_prod::ANewExpr::init_anewexpr";
29747 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){
29748 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
29749 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29750 val_t REGB0;
29751 val_t REGB1;
29752 val_t tmp;
29753 if (init_table[itpos182]) return;
29754 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29755 fra.me.file = LOCATE_parser___parser_prod;
29756 fra.me.line = 5439;
29757 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
29758 fra.me.has_broke = 0;
29759 fra.me.REG_size = 6;
29760 fra.me.nitni_local_ref_head = NULL;
29761 fra.me.REG[0] = NIT_NULL;
29762 fra.me.REG[1] = NIT_NULL;
29763 fra.me.REG[2] = NIT_NULL;
29764 fra.me.REG[3] = NIT_NULL;
29765 fra.me.REG[4] = NIT_NULL;
29766 fra.me.REG[5] = NIT_NULL;
29767 fra.me.REG[0] = p0;
29768 fra.me.REG[1] = p1;
29769 fra.me.REG[2] = p2;
29770 fra.me.REG[3] = p3;
29771 fra.me.REG[4] = p4;
29772 /* parser/parser_prod.nit:5439 */
29773 fra.me.REG[5] = fra.me.REG[0];
29774 /* parser/parser_prod.nit:5446 */
29775 CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29776 /* parser/parser_prod.nit:5447 */
29777 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29778 if (UNTAG_Bool(REGB0)) {
29779 } else {
29780 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5447);
29781 }
29782 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
29783 /* parser/parser_prod.nit:5448 */
29784 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29785 if (UNTAG_Bool(REGB0)) {
29786 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5448);
29787 }
29788 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29789 /* parser/parser_prod.nit:5449 */
29790 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29791 if (UNTAG_Bool(REGB0)) {
29792 } else {
29793 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5449);
29794 }
29795 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
29796 /* parser/parser_prod.nit:5450 */
29797 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29798 if (UNTAG_Bool(REGB0)) {
29799 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5450);
29800 }
29801 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29802 /* parser/parser_prod.nit:5451 */
29803 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
29804 /* parser/parser_prod.nit:5452 */
29805 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29806 if (UNTAG_Bool(REGB0)) {
29807 } else {
29808 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29809 if (UNTAG_Bool(REGB1)) {
29810 REGB1 = TAG_Bool(0);
29811 REGB0 = REGB1;
29812 } else {
29813 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
29814 REGB0 = REGB1;
29815 }
29816 }
29817 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29818 if (UNTAG_Bool(REGB0)) {
29819 /* parser/parser_prod.nit:5453 */
29820 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29821 if (UNTAG_Bool(REGB0)) {
29822 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5453);
29823 }
29824 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
29825 }
29826 /* parser/parser_prod.nit:5455 */
29827 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29828 if (UNTAG_Bool(REGB0)) {
29829 } else {
29830 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5455);
29831 }
29832 ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[5]) = fra.me.REG[4];
29833 /* parser/parser_prod.nit:5456 */
29834 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29835 if (UNTAG_Bool(REGB0)) {
29836 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5456);
29837 }
29838 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
29839 stack_frame_head = fra.me.prev;
29840 init_table[itpos182] = 1;
29841 return;
29842 }
29843 static const char LOCATE_parser___parser_prod___ANewExpr___replace_child[] = "parser_prod::ANewExpr::(parser_prod::ANode::replace_child)";
29844 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
29845 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29846 val_t REGB0;
29847 val_t REGB1;
29848 val_t tmp;
29849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29850 fra.me.file = LOCATE_parser___parser_prod;
29851 fra.me.line = 5459;
29852 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
29853 fra.me.has_broke = 0;
29854 fra.me.REG_size = 4;
29855 fra.me.nitni_local_ref_head = NULL;
29856 fra.me.REG[0] = NIT_NULL;
29857 fra.me.REG[1] = NIT_NULL;
29858 fra.me.REG[2] = NIT_NULL;
29859 fra.me.REG[3] = NIT_NULL;
29860 fra.me.REG[0] = p0;
29861 fra.me.REG[1] = p1;
29862 fra.me.REG[2] = p2;
29863 /* parser/parser_prod.nit:5461 */
29864 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
29865 if (UNTAG_Bool(REGB0)) {
29866 } else {
29867 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5461);
29868 }
29869 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
29870 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29871 if (UNTAG_Bool(REGB0)) {
29872 } else {
29873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29874 REGB0 = REGB1;
29875 }
29876 if (UNTAG_Bool(REGB0)) {
29877 /* parser/parser_prod.nit:5462 */
29878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29879 if (UNTAG_Bool(REGB0)) {
29880 } else {
29881 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29882 if (UNTAG_Bool(REGB1)) {
29883 REGB1 = TAG_Bool(0);
29884 REGB0 = REGB1;
29885 } else {
29886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29887 REGB0 = REGB1;
29888 }
29889 }
29890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29891 if (UNTAG_Bool(REGB0)) {
29892 /* parser/parser_prod.nit:5463 */
29893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29894 if (UNTAG_Bool(REGB0)) {
29895 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5463);
29896 }
29897 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29898 /* parser/parser_prod.nit:5464 */
29899 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*/;
29900 if (UNTAG_Bool(REGB0)) {
29901 } else {
29902 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5464);
29903 }
29904 /* parser/parser_prod.nit:5465 */
29905 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
29906 } else {
29907 /* parser/parser_prod.nit:5467 */
29908 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5467);
29909 }
29910 /* parser/parser_prod.nit:5469 */
29911 goto label1;
29912 }
29913 /* parser/parser_prod.nit:5471 */
29914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
29915 if (UNTAG_Bool(REGB0)) {
29916 } else {
29917 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5471);
29918 }
29919 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
29920 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29921 if (UNTAG_Bool(REGB0)) {
29922 } else {
29923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29924 REGB0 = REGB1;
29925 }
29926 if (UNTAG_Bool(REGB0)) {
29927 /* parser/parser_prod.nit:5472 */
29928 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29929 if (UNTAG_Bool(REGB0)) {
29930 } else {
29931 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29932 if (UNTAG_Bool(REGB1)) {
29933 REGB1 = TAG_Bool(0);
29934 REGB0 = REGB1;
29935 } else {
29936 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29937 REGB0 = REGB1;
29938 }
29939 }
29940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29941 if (UNTAG_Bool(REGB0)) {
29942 /* parser/parser_prod.nit:5473 */
29943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29944 if (UNTAG_Bool(REGB0)) {
29945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5473);
29946 }
29947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29948 /* parser/parser_prod.nit:5474 */
29949 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*/;
29950 if (UNTAG_Bool(REGB0)) {
29951 } else {
29952 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5474);
29953 }
29954 /* parser/parser_prod.nit:5475 */
29955 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
29956 } else {
29957 /* parser/parser_prod.nit:5477 */
29958 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5477);
29959 }
29960 /* parser/parser_prod.nit:5479 */
29961 goto label1;
29962 }
29963 /* parser/parser_prod.nit:5481 */
29964 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
29965 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29966 if (UNTAG_Bool(REGB0)) {
29967 } else {
29968 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29969 if (UNTAG_Bool(REGB1)) {
29970 REGB1 = TAG_Bool(0);
29971 REGB0 = REGB1;
29972 } else {
29973 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29974 REGB0 = REGB1;
29975 }
29976 }
29977 if (UNTAG_Bool(REGB0)) {
29978 /* parser/parser_prod.nit:5482 */
29979 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29980 if (UNTAG_Bool(REGB0)) {
29981 } else {
29982 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29983 if (UNTAG_Bool(REGB1)) {
29984 REGB1 = TAG_Bool(0);
29985 REGB0 = REGB1;
29986 } else {
29987 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29988 REGB0 = REGB1;
29989 }
29990 }
29991 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29992 if (UNTAG_Bool(REGB0)) {
29993 /* parser/parser_prod.nit:5483 */
29994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29995 if (UNTAG_Bool(REGB0)) {
29996 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5483);
29997 }
29998 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29999 /* parser/parser_prod.nit:5484 */
30000 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*/;
30001 if (UNTAG_Bool(REGB0)) {
30002 } else {
30003 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5484);
30004 }
30005 /* parser/parser_prod.nit:5485 */
30006 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30007 } else {
30008 /* parser/parser_prod.nit:5487 */
30009 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
30010 }
30011 /* parser/parser_prod.nit:5489 */
30012 goto label1;
30013 }
30014 /* parser/parser_prod.nit:5491 */
30015 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30016 if (UNTAG_Bool(REGB0)) {
30017 } else {
30018 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5491);
30019 }
30020 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
30021 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30022 if (UNTAG_Bool(REGB0)) {
30023 } else {
30024 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30025 REGB0 = REGB1;
30026 }
30027 if (UNTAG_Bool(REGB0)) {
30028 /* parser/parser_prod.nit:5492 */
30029 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30030 if (UNTAG_Bool(REGB0)) {
30031 } else {
30032 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30033 if (UNTAG_Bool(REGB1)) {
30034 REGB1 = TAG_Bool(0);
30035 REGB0 = REGB1;
30036 } else {
30037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30038 REGB0 = REGB1;
30039 }
30040 }
30041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30042 if (UNTAG_Bool(REGB0)) {
30043 /* parser/parser_prod.nit:5493 */
30044 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30045 if (UNTAG_Bool(REGB0)) {
30046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5493);
30047 }
30048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30049 /* parser/parser_prod.nit:5494 */
30050 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
30051 if (UNTAG_Bool(REGB0)) {
30052 } else {
30053 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5494);
30054 }
30055 /* parser/parser_prod.nit:5495 */
30056 ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
30057 } else {
30058 /* parser/parser_prod.nit:5497 */
30059 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5497);
30060 }
30061 /* parser/parser_prod.nit:5499 */
30062 goto label1;
30063 }
30064 label1: while(0);
30065 stack_frame_head = fra.me.prev;
30066 return;
30067 }
30068 static const char LOCATE_parser___parser_prod___ANewExpr___visit_all[] = "parser_prod::ANewExpr::(parser_prod::ANode::visit_all)";
30069 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
30070 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30071 val_t REGB0;
30072 val_t REGB1;
30073 val_t tmp;
30074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30075 fra.me.file = LOCATE_parser___parser_prod;
30076 fra.me.line = 5503;
30077 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
30078 fra.me.has_broke = 0;
30079 fra.me.REG_size = 4;
30080 fra.me.nitni_local_ref_head = NULL;
30081 fra.me.REG[0] = NIT_NULL;
30082 fra.me.REG[1] = NIT_NULL;
30083 fra.me.REG[2] = NIT_NULL;
30084 fra.me.REG[3] = NIT_NULL;
30085 fra.me.REG[0] = p0;
30086 fra.me.REG[1] = p1;
30087 /* parser/parser_prod.nit:5503 */
30088 fra.me.REG[2] = fra.me.REG[0];
30089 /* parser/parser_prod.nit:5505 */
30090 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
30091 if (UNTAG_Bool(REGB0)) {
30092 } else {
30093 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5505);
30094 }
30095 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
30096 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30097 /* parser/parser_prod.nit:5506 */
30098 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
30099 if (UNTAG_Bool(REGB0)) {
30100 } else {
30101 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5506);
30102 }
30103 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
30104 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30105 /* parser/parser_prod.nit:5507 */
30106 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
30107 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30108 if (UNTAG_Bool(REGB0)) {
30109 } else {
30110 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30111 if (UNTAG_Bool(REGB1)) {
30112 REGB1 = TAG_Bool(0);
30113 REGB0 = REGB1;
30114 } else {
30115 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
30116 REGB0 = REGB1;
30117 }
30118 }
30119 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30120 if (UNTAG_Bool(REGB0)) {
30121 /* parser/parser_prod.nit:5508 */
30122 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
30123 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*/;
30124 if (UNTAG_Bool(REGB0)) {
30125 } else {
30126 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5508);
30127 }
30128 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30129 }
30130 /* parser/parser_prod.nit:5510 */
30131 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
30132 if (UNTAG_Bool(REGB0)) {
30133 } else {
30134 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5510);
30135 }
30136 fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
30137 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30138 stack_frame_head = fra.me.prev;
30139 return;
30140 }
30141 static const char LOCATE_parser___parser_prod___AAttrExpr___empty_init[] = "parser_prod::AAttrExpr::empty_init";
30142 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
30143 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
30144 struct {struct stack_frame_t me;} fra;
30145 val_t tmp;
30146 if (init_table[itpos183]) return;
30147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30148 fra.me.file = LOCATE_parser___parser_prod;
30149 fra.me.line = 5514;
30150 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
30151 fra.me.has_broke = 0;
30152 fra.me.REG_size = 1;
30153 fra.me.nitni_local_ref_head = NULL;
30154 fra.me.REG[0] = NIT_NULL;
30155 fra.me.REG[0] = p0;
30156 stack_frame_head = fra.me.prev;
30157 init_table[itpos183] = 1;
30158 return;
30159 }
30160 static const char LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr[] = "parser_prod::AAttrExpr::init_aattrexpr";
30161 void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
30162 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
30163 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30164 val_t REGB0;
30165 val_t tmp;
30166 if (init_table[itpos184]) return;
30167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30168 fra.me.file = LOCATE_parser___parser_prod;
30169 fra.me.line = 5516;
30170 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
30171 fra.me.has_broke = 0;
30172 fra.me.REG_size = 4;
30173 fra.me.nitni_local_ref_head = NULL;
30174 fra.me.REG[0] = NIT_NULL;
30175 fra.me.REG[1] = NIT_NULL;
30176 fra.me.REG[2] = NIT_NULL;
30177 fra.me.REG[3] = NIT_NULL;
30178 fra.me.REG[0] = p0;
30179 fra.me.REG[1] = p1;
30180 fra.me.REG[2] = p2;
30181 /* parser/parser_prod.nit:5516 */
30182 fra.me.REG[3] = fra.me.REG[0];
30183 /* parser/parser_prod.nit:5521 */
30184 CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
30185 /* parser/parser_prod.nit:5522 */
30186 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30187 if (UNTAG_Bool(REGB0)) {
30188 } else {
30189 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5522);
30190 }
30191 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
30192 /* parser/parser_prod.nit:5523 */
30193 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30194 if (UNTAG_Bool(REGB0)) {
30195 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5523);
30196 }
30197 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30198 /* parser/parser_prod.nit:5524 */
30199 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30200 if (UNTAG_Bool(REGB0)) {
30201 } else {
30202 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5524);
30203 }
30204 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
30205 /* parser/parser_prod.nit:5525 */
30206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30207 if (UNTAG_Bool(REGB0)) {
30208 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5525);
30209 }
30210 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
30211 stack_frame_head = fra.me.prev;
30212 init_table[itpos184] = 1;
30213 return;
30214 }
30215 static const char LOCATE_parser___parser_prod___AAttrExpr___replace_child[] = "parser_prod::AAttrExpr::(parser_prod::ANode::replace_child)";
30216 void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
30217 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30218 val_t REGB0;
30219 val_t REGB1;
30220 val_t tmp;
30221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30222 fra.me.file = LOCATE_parser___parser_prod;
30223 fra.me.line = 5528;
30224 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
30225 fra.me.has_broke = 0;
30226 fra.me.REG_size = 4;
30227 fra.me.nitni_local_ref_head = NULL;
30228 fra.me.REG[0] = NIT_NULL;
30229 fra.me.REG[1] = NIT_NULL;
30230 fra.me.REG[2] = NIT_NULL;
30231 fra.me.REG[3] = NIT_NULL;
30232 fra.me.REG[0] = p0;
30233 fra.me.REG[1] = p1;
30234 fra.me.REG[2] = p2;
30235 /* parser/parser_prod.nit:5530 */
30236 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30237 if (UNTAG_Bool(REGB0)) {
30238 } else {
30239 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5530);
30240 }
30241 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30242 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30243 if (UNTAG_Bool(REGB0)) {
30244 } else {
30245 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30246 REGB0 = REGB1;
30247 }
30248 if (UNTAG_Bool(REGB0)) {
30249 /* parser/parser_prod.nit:5531 */
30250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30251 if (UNTAG_Bool(REGB0)) {
30252 } else {
30253 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30254 if (UNTAG_Bool(REGB1)) {
30255 REGB1 = TAG_Bool(0);
30256 REGB0 = REGB1;
30257 } else {
30258 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30259 REGB0 = REGB1;
30260 }
30261 }
30262 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30263 if (UNTAG_Bool(REGB0)) {
30264 /* parser/parser_prod.nit:5532 */
30265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30266 if (UNTAG_Bool(REGB0)) {
30267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5532);
30268 }
30269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30270 /* parser/parser_prod.nit:5533 */
30271 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30272 if (UNTAG_Bool(REGB0)) {
30273 } else {
30274 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5533);
30275 }
30276 /* parser/parser_prod.nit:5534 */
30277 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30278 } else {
30279 /* parser/parser_prod.nit:5536 */
30280 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5536);
30281 }
30282 /* parser/parser_prod.nit:5538 */
30283 goto label1;
30284 }
30285 /* parser/parser_prod.nit:5540 */
30286 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30287 if (UNTAG_Bool(REGB0)) {
30288 } else {
30289 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5540);
30290 }
30291 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30292 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30293 if (UNTAG_Bool(REGB0)) {
30294 } else {
30295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30296 REGB0 = REGB1;
30297 }
30298 if (UNTAG_Bool(REGB0)) {
30299 /* parser/parser_prod.nit:5541 */
30300 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30301 if (UNTAG_Bool(REGB0)) {
30302 } else {
30303 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30304 if (UNTAG_Bool(REGB1)) {
30305 REGB1 = TAG_Bool(0);
30306 REGB0 = REGB1;
30307 } else {
30308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30309 REGB0 = REGB1;
30310 }
30311 }
30312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30313 if (UNTAG_Bool(REGB0)) {
30314 /* parser/parser_prod.nit:5542 */
30315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30316 if (UNTAG_Bool(REGB0)) {
30317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5542);
30318 }
30319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30320 /* parser/parser_prod.nit:5543 */
30321 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*/;
30322 if (UNTAG_Bool(REGB0)) {
30323 } else {
30324 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5543);
30325 }
30326 /* parser/parser_prod.nit:5544 */
30327 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30328 } else {
30329 /* parser/parser_prod.nit:5546 */
30330 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5546);
30331 }
30332 /* parser/parser_prod.nit:5548 */
30333 goto label1;
30334 }
30335 label1: while(0);
30336 stack_frame_head = fra.me.prev;
30337 return;
30338 }
30339 static const char LOCATE_parser___parser_prod___AAttrExpr___visit_all[] = "parser_prod::AAttrExpr::(parser_prod::ANode::visit_all)";
30340 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
30341 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30342 val_t REGB0;
30343 val_t tmp;
30344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30345 fra.me.file = LOCATE_parser___parser_prod;
30346 fra.me.line = 5552;
30347 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
30348 fra.me.has_broke = 0;
30349 fra.me.REG_size = 3;
30350 fra.me.nitni_local_ref_head = NULL;
30351 fra.me.REG[0] = NIT_NULL;
30352 fra.me.REG[1] = NIT_NULL;
30353 fra.me.REG[2] = NIT_NULL;
30354 fra.me.REG[0] = p0;
30355 fra.me.REG[1] = p1;
30356 /* parser/parser_prod.nit:5554 */
30357 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30358 if (UNTAG_Bool(REGB0)) {
30359 } else {
30360 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5554);
30361 }
30362 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30363 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30364 /* parser/parser_prod.nit:5555 */
30365 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30366 if (UNTAG_Bool(REGB0)) {
30367 } else {
30368 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5555);
30369 }
30370 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30371 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30372 stack_frame_head = fra.me.prev;
30373 return;
30374 }
30375 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init[] = "parser_prod::AAttrAssignExpr::empty_init";
30376 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
30377 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
30378 struct {struct stack_frame_t me;} fra;
30379 val_t tmp;
30380 if (init_table[itpos185]) return;
30381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30382 fra.me.file = LOCATE_parser___parser_prod;
30383 fra.me.line = 5559;
30384 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
30385 fra.me.has_broke = 0;
30386 fra.me.REG_size = 1;
30387 fra.me.nitni_local_ref_head = NULL;
30388 fra.me.REG[0] = NIT_NULL;
30389 fra.me.REG[0] = p0;
30390 stack_frame_head = fra.me.prev;
30391 init_table[itpos185] = 1;
30392 return;
30393 }
30394 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr[] = "parser_prod::AAttrAssignExpr::init_aattrassignexpr";
30395 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){
30396 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
30397 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30398 val_t REGB0;
30399 val_t tmp;
30400 if (init_table[itpos186]) return;
30401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30402 fra.me.file = LOCATE_parser___parser_prod;
30403 fra.me.line = 5561;
30404 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
30405 fra.me.has_broke = 0;
30406 fra.me.REG_size = 6;
30407 fra.me.nitni_local_ref_head = NULL;
30408 fra.me.REG[0] = NIT_NULL;
30409 fra.me.REG[1] = NIT_NULL;
30410 fra.me.REG[2] = NIT_NULL;
30411 fra.me.REG[3] = NIT_NULL;
30412 fra.me.REG[4] = NIT_NULL;
30413 fra.me.REG[5] = NIT_NULL;
30414 fra.me.REG[0] = p0;
30415 fra.me.REG[1] = p1;
30416 fra.me.REG[2] = p2;
30417 fra.me.REG[3] = p3;
30418 fra.me.REG[4] = p4;
30419 /* parser/parser_prod.nit:5561 */
30420 fra.me.REG[5] = fra.me.REG[0];
30421 /* parser/parser_prod.nit:5568 */
30422 CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
30423 /* parser/parser_prod.nit:5569 */
30424 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30425 if (UNTAG_Bool(REGB0)) {
30426 } else {
30427 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5569);
30428 }
30429 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
30430 /* parser/parser_prod.nit:5570 */
30431 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30432 if (UNTAG_Bool(REGB0)) {
30433 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5570);
30434 }
30435 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
30436 /* parser/parser_prod.nit:5571 */
30437 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30438 if (UNTAG_Bool(REGB0)) {
30439 } else {
30440 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5571);
30441 }
30442 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
30443 /* parser/parser_prod.nit:5572 */
30444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30445 if (UNTAG_Bool(REGB0)) {
30446 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5572);
30447 }
30448 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
30449 /* parser/parser_prod.nit:5573 */
30450 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
30451 if (UNTAG_Bool(REGB0)) {
30452 } else {
30453 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5573);
30454 }
30455 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
30456 /* parser/parser_prod.nit:5574 */
30457 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30458 if (UNTAG_Bool(REGB0)) {
30459 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5574);
30460 }
30461 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
30462 /* parser/parser_prod.nit:5575 */
30463 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
30464 if (UNTAG_Bool(REGB0)) {
30465 } else {
30466 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5575);
30467 }
30468 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
30469 /* parser/parser_prod.nit:5576 */
30470 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
30471 if (UNTAG_Bool(REGB0)) {
30472 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5576);
30473 }
30474 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
30475 stack_frame_head = fra.me.prev;
30476 init_table[itpos186] = 1;
30477 return;
30478 }
30479 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child[] = "parser_prod::AAttrAssignExpr::(parser_prod::ANode::replace_child)";
30480 void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
30481 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30482 val_t REGB0;
30483 val_t REGB1;
30484 val_t tmp;
30485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30486 fra.me.file = LOCATE_parser___parser_prod;
30487 fra.me.line = 5579;
30488 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
30489 fra.me.has_broke = 0;
30490 fra.me.REG_size = 4;
30491 fra.me.nitni_local_ref_head = NULL;
30492 fra.me.REG[0] = NIT_NULL;
30493 fra.me.REG[1] = NIT_NULL;
30494 fra.me.REG[2] = NIT_NULL;
30495 fra.me.REG[3] = NIT_NULL;
30496 fra.me.REG[0] = p0;
30497 fra.me.REG[1] = p1;
30498 fra.me.REG[2] = p2;
30499 /* parser/parser_prod.nit:5581 */
30500 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30501 if (UNTAG_Bool(REGB0)) {
30502 } else {
30503 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5581);
30504 }
30505 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30506 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30507 if (UNTAG_Bool(REGB0)) {
30508 } else {
30509 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30510 REGB0 = REGB1;
30511 }
30512 if (UNTAG_Bool(REGB0)) {
30513 /* parser/parser_prod.nit:5582 */
30514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30515 if (UNTAG_Bool(REGB0)) {
30516 } else {
30517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30518 if (UNTAG_Bool(REGB1)) {
30519 REGB1 = TAG_Bool(0);
30520 REGB0 = REGB1;
30521 } else {
30522 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30523 REGB0 = REGB1;
30524 }
30525 }
30526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30527 if (UNTAG_Bool(REGB0)) {
30528 /* parser/parser_prod.nit:5583 */
30529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30530 if (UNTAG_Bool(REGB0)) {
30531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5583);
30532 }
30533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30534 /* parser/parser_prod.nit:5584 */
30535 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30536 if (UNTAG_Bool(REGB0)) {
30537 } else {
30538 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5584);
30539 }
30540 /* parser/parser_prod.nit:5585 */
30541 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30542 } else {
30543 /* parser/parser_prod.nit:5587 */
30544 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5587);
30545 }
30546 /* parser/parser_prod.nit:5589 */
30547 goto label1;
30548 }
30549 /* parser/parser_prod.nit:5591 */
30550 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30551 if (UNTAG_Bool(REGB0)) {
30552 } else {
30553 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5591);
30554 }
30555 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30556 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30557 if (UNTAG_Bool(REGB0)) {
30558 } else {
30559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30560 REGB0 = REGB1;
30561 }
30562 if (UNTAG_Bool(REGB0)) {
30563 /* parser/parser_prod.nit:5592 */
30564 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30565 if (UNTAG_Bool(REGB0)) {
30566 } else {
30567 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30568 if (UNTAG_Bool(REGB1)) {
30569 REGB1 = TAG_Bool(0);
30570 REGB0 = REGB1;
30571 } else {
30572 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30573 REGB0 = REGB1;
30574 }
30575 }
30576 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30577 if (UNTAG_Bool(REGB0)) {
30578 /* parser/parser_prod.nit:5593 */
30579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30580 if (UNTAG_Bool(REGB0)) {
30581 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5593);
30582 }
30583 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30584 /* parser/parser_prod.nit:5594 */
30585 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*/;
30586 if (UNTAG_Bool(REGB0)) {
30587 } else {
30588 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5594);
30589 }
30590 /* parser/parser_prod.nit:5595 */
30591 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30592 } else {
30593 /* parser/parser_prod.nit:5597 */
30594 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5597);
30595 }
30596 /* parser/parser_prod.nit:5599 */
30597 goto label1;
30598 }
30599 /* parser/parser_prod.nit:5601 */
30600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
30601 if (UNTAG_Bool(REGB0)) {
30602 } else {
30603 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5601);
30604 }
30605 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
30606 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30607 if (UNTAG_Bool(REGB0)) {
30608 } else {
30609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30610 REGB0 = REGB1;
30611 }
30612 if (UNTAG_Bool(REGB0)) {
30613 /* parser/parser_prod.nit:5602 */
30614 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30615 if (UNTAG_Bool(REGB0)) {
30616 } else {
30617 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30618 if (UNTAG_Bool(REGB1)) {
30619 REGB1 = TAG_Bool(0);
30620 REGB0 = REGB1;
30621 } else {
30622 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30623 REGB0 = REGB1;
30624 }
30625 }
30626 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30627 if (UNTAG_Bool(REGB0)) {
30628 /* parser/parser_prod.nit:5603 */
30629 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30630 if (UNTAG_Bool(REGB0)) {
30631 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5603);
30632 }
30633 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30634 /* parser/parser_prod.nit:5604 */
30635 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*/;
30636 if (UNTAG_Bool(REGB0)) {
30637 } else {
30638 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5604);
30639 }
30640 /* parser/parser_prod.nit:5605 */
30641 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
30642 } else {
30643 /* parser/parser_prod.nit:5607 */
30644 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5607);
30645 }
30646 /* parser/parser_prod.nit:5609 */
30647 goto label1;
30648 }
30649 /* parser/parser_prod.nit:5611 */
30650 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30651 if (UNTAG_Bool(REGB0)) {
30652 } else {
30653 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5611);
30654 }
30655 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
30656 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30657 if (UNTAG_Bool(REGB0)) {
30658 } else {
30659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30660 REGB0 = REGB1;
30661 }
30662 if (UNTAG_Bool(REGB0)) {
30663 /* parser/parser_prod.nit:5612 */
30664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30665 if (UNTAG_Bool(REGB0)) {
30666 } else {
30667 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30668 if (UNTAG_Bool(REGB1)) {
30669 REGB1 = TAG_Bool(0);
30670 REGB0 = REGB1;
30671 } else {
30672 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30673 REGB0 = REGB1;
30674 }
30675 }
30676 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30677 if (UNTAG_Bool(REGB0)) {
30678 /* parser/parser_prod.nit:5613 */
30679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30680 if (UNTAG_Bool(REGB0)) {
30681 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5613);
30682 }
30683 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30684 /* parser/parser_prod.nit:5614 */
30685 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30686 if (UNTAG_Bool(REGB0)) {
30687 } else {
30688 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5614);
30689 }
30690 /* parser/parser_prod.nit:5615 */
30691 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
30692 } else {
30693 /* parser/parser_prod.nit:5617 */
30694 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5617);
30695 }
30696 /* parser/parser_prod.nit:5619 */
30697 goto label1;
30698 }
30699 label1: while(0);
30700 stack_frame_head = fra.me.prev;
30701 return;
30702 }
30703 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all[] = "parser_prod::AAttrAssignExpr::(parser_prod::ANode::visit_all)";
30704 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
30705 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30706 val_t REGB0;
30707 val_t tmp;
30708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30709 fra.me.file = LOCATE_parser___parser_prod;
30710 fra.me.line = 5623;
30711 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
30712 fra.me.has_broke = 0;
30713 fra.me.REG_size = 3;
30714 fra.me.nitni_local_ref_head = NULL;
30715 fra.me.REG[0] = NIT_NULL;
30716 fra.me.REG[1] = NIT_NULL;
30717 fra.me.REG[2] = NIT_NULL;
30718 fra.me.REG[0] = p0;
30719 fra.me.REG[1] = p1;
30720 /* parser/parser_prod.nit:5625 */
30721 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30722 if (UNTAG_Bool(REGB0)) {
30723 } else {
30724 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5625);
30725 }
30726 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30727 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30728 /* parser/parser_prod.nit:5626 */
30729 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30730 if (UNTAG_Bool(REGB0)) {
30731 } else {
30732 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5626);
30733 }
30734 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30735 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30736 /* parser/parser_prod.nit:5627 */
30737 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
30738 if (UNTAG_Bool(REGB0)) {
30739 } else {
30740 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5627);
30741 }
30742 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
30743 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30744 /* parser/parser_prod.nit:5628 */
30745 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30746 if (UNTAG_Bool(REGB0)) {
30747 } else {
30748 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5628);
30749 }
30750 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
30751 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30752 stack_frame_head = fra.me.prev;
30753 return;
30754 }
30755 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init[] = "parser_prod::AAttrReassignExpr::empty_init";
30756 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
30757 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
30758 struct {struct stack_frame_t me;} fra;
30759 val_t tmp;
30760 if (init_table[itpos187]) return;
30761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30762 fra.me.file = LOCATE_parser___parser_prod;
30763 fra.me.line = 5632;
30764 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
30765 fra.me.has_broke = 0;
30766 fra.me.REG_size = 1;
30767 fra.me.nitni_local_ref_head = NULL;
30768 fra.me.REG[0] = NIT_NULL;
30769 fra.me.REG[0] = p0;
30770 stack_frame_head = fra.me.prev;
30771 init_table[itpos187] = 1;
30772 return;
30773 }
30774 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr[] = "parser_prod::AAttrReassignExpr::init_aattrreassignexpr";
30775 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){
30776 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
30777 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30778 val_t REGB0;
30779 val_t tmp;
30780 if (init_table[itpos188]) return;
30781 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30782 fra.me.file = LOCATE_parser___parser_prod;
30783 fra.me.line = 5634;
30784 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
30785 fra.me.has_broke = 0;
30786 fra.me.REG_size = 6;
30787 fra.me.nitni_local_ref_head = NULL;
30788 fra.me.REG[0] = NIT_NULL;
30789 fra.me.REG[1] = NIT_NULL;
30790 fra.me.REG[2] = NIT_NULL;
30791 fra.me.REG[3] = NIT_NULL;
30792 fra.me.REG[4] = NIT_NULL;
30793 fra.me.REG[5] = NIT_NULL;
30794 fra.me.REG[0] = p0;
30795 fra.me.REG[1] = p1;
30796 fra.me.REG[2] = p2;
30797 fra.me.REG[3] = p3;
30798 fra.me.REG[4] = p4;
30799 /* parser/parser_prod.nit:5634 */
30800 fra.me.REG[5] = fra.me.REG[0];
30801 /* parser/parser_prod.nit:5641 */
30802 CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
30803 /* parser/parser_prod.nit:5642 */
30804 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30805 if (UNTAG_Bool(REGB0)) {
30806 } else {
30807 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5642);
30808 }
30809 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
30810 /* parser/parser_prod.nit:5643 */
30811 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30812 if (UNTAG_Bool(REGB0)) {
30813 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5643);
30814 }
30815 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
30816 /* parser/parser_prod.nit:5644 */
30817 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30818 if (UNTAG_Bool(REGB0)) {
30819 } else {
30820 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5644);
30821 }
30822 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
30823 /* parser/parser_prod.nit:5645 */
30824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30825 if (UNTAG_Bool(REGB0)) {
30826 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5645);
30827 }
30828 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
30829 /* parser/parser_prod.nit:5646 */
30830 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
30831 if (UNTAG_Bool(REGB0)) {
30832 } else {
30833 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5646);
30834 }
30835 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
30836 /* parser/parser_prod.nit:5647 */
30837 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30838 if (UNTAG_Bool(REGB0)) {
30839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5647);
30840 }
30841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
30842 /* parser/parser_prod.nit:5648 */
30843 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
30844 if (UNTAG_Bool(REGB0)) {
30845 } else {
30846 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5648);
30847 }
30848 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
30849 /* parser/parser_prod.nit:5649 */
30850 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
30851 if (UNTAG_Bool(REGB0)) {
30852 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5649);
30853 }
30854 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
30855 stack_frame_head = fra.me.prev;
30856 init_table[itpos188] = 1;
30857 return;
30858 }
30859 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child[] = "parser_prod::AAttrReassignExpr::(parser_prod::ANode::replace_child)";
30860 void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
30861 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30862 val_t REGB0;
30863 val_t REGB1;
30864 val_t tmp;
30865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30866 fra.me.file = LOCATE_parser___parser_prod;
30867 fra.me.line = 5652;
30868 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
30869 fra.me.has_broke = 0;
30870 fra.me.REG_size = 4;
30871 fra.me.nitni_local_ref_head = NULL;
30872 fra.me.REG[0] = NIT_NULL;
30873 fra.me.REG[1] = NIT_NULL;
30874 fra.me.REG[2] = NIT_NULL;
30875 fra.me.REG[3] = NIT_NULL;
30876 fra.me.REG[0] = p0;
30877 fra.me.REG[1] = p1;
30878 fra.me.REG[2] = p2;
30879 /* parser/parser_prod.nit:5654 */
30880 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30881 if (UNTAG_Bool(REGB0)) {
30882 } else {
30883 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5654);
30884 }
30885 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30886 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30887 if (UNTAG_Bool(REGB0)) {
30888 } else {
30889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30890 REGB0 = REGB1;
30891 }
30892 if (UNTAG_Bool(REGB0)) {
30893 /* parser/parser_prod.nit:5655 */
30894 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30895 if (UNTAG_Bool(REGB0)) {
30896 } else {
30897 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30898 if (UNTAG_Bool(REGB1)) {
30899 REGB1 = TAG_Bool(0);
30900 REGB0 = REGB1;
30901 } else {
30902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30903 REGB0 = REGB1;
30904 }
30905 }
30906 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30907 if (UNTAG_Bool(REGB0)) {
30908 /* parser/parser_prod.nit:5656 */
30909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30910 if (UNTAG_Bool(REGB0)) {
30911 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5656);
30912 }
30913 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30914 /* parser/parser_prod.nit:5657 */
30915 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30916 if (UNTAG_Bool(REGB0)) {
30917 } else {
30918 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5657);
30919 }
30920 /* parser/parser_prod.nit:5658 */
30921 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30922 } else {
30923 /* parser/parser_prod.nit:5660 */
30924 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5660);
30925 }
30926 /* parser/parser_prod.nit:5662 */
30927 goto label1;
30928 }
30929 /* parser/parser_prod.nit:5664 */
30930 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30931 if (UNTAG_Bool(REGB0)) {
30932 } else {
30933 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5664);
30934 }
30935 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30936 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30937 if (UNTAG_Bool(REGB0)) {
30938 } else {
30939 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30940 REGB0 = REGB1;
30941 }
30942 if (UNTAG_Bool(REGB0)) {
30943 /* parser/parser_prod.nit:5665 */
30944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30945 if (UNTAG_Bool(REGB0)) {
30946 } else {
30947 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30948 if (UNTAG_Bool(REGB1)) {
30949 REGB1 = TAG_Bool(0);
30950 REGB0 = REGB1;
30951 } else {
30952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30953 REGB0 = REGB1;
30954 }
30955 }
30956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30957 if (UNTAG_Bool(REGB0)) {
30958 /* parser/parser_prod.nit:5666 */
30959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30960 if (UNTAG_Bool(REGB0)) {
30961 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5666);
30962 }
30963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30964 /* parser/parser_prod.nit:5667 */
30965 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*/;
30966 if (UNTAG_Bool(REGB0)) {
30967 } else {
30968 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5667);
30969 }
30970 /* parser/parser_prod.nit:5668 */
30971 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30972 } else {
30973 /* parser/parser_prod.nit:5670 */
30974 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5670);
30975 }
30976 /* parser/parser_prod.nit:5672 */
30977 goto label1;
30978 }
30979 /* parser/parser_prod.nit:5674 */
30980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
30981 if (UNTAG_Bool(REGB0)) {
30982 } else {
30983 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5674);
30984 }
30985 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
30986 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30987 if (UNTAG_Bool(REGB0)) {
30988 } else {
30989 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30990 REGB0 = REGB1;
30991 }
30992 if (UNTAG_Bool(REGB0)) {
30993 /* parser/parser_prod.nit:5675 */
30994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30995 if (UNTAG_Bool(REGB0)) {
30996 } else {
30997 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30998 if (UNTAG_Bool(REGB1)) {
30999 REGB1 = TAG_Bool(0);
31000 REGB0 = REGB1;
31001 } else {
31002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31003 REGB0 = REGB1;
31004 }
31005 }
31006 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31007 if (UNTAG_Bool(REGB0)) {
31008 /* parser/parser_prod.nit:5676 */
31009 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31010 if (UNTAG_Bool(REGB0)) {
31011 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5676);
31012 }
31013 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31014 /* parser/parser_prod.nit:5677 */
31015 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*/;
31016 if (UNTAG_Bool(REGB0)) {
31017 } else {
31018 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5677);
31019 }
31020 /* parser/parser_prod.nit:5678 */
31021 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
31022 } else {
31023 /* parser/parser_prod.nit:5680 */
31024 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5680);
31025 }
31026 /* parser/parser_prod.nit:5682 */
31027 goto label1;
31028 }
31029 /* parser/parser_prod.nit:5684 */
31030 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31031 if (UNTAG_Bool(REGB0)) {
31032 } else {
31033 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5684);
31034 }
31035 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31036 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31037 if (UNTAG_Bool(REGB0)) {
31038 } else {
31039 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31040 REGB0 = REGB1;
31041 }
31042 if (UNTAG_Bool(REGB0)) {
31043 /* parser/parser_prod.nit:5685 */
31044 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31045 if (UNTAG_Bool(REGB0)) {
31046 } else {
31047 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31048 if (UNTAG_Bool(REGB1)) {
31049 REGB1 = TAG_Bool(0);
31050 REGB0 = REGB1;
31051 } else {
31052 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31053 REGB0 = REGB1;
31054 }
31055 }
31056 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31057 if (UNTAG_Bool(REGB0)) {
31058 /* parser/parser_prod.nit:5686 */
31059 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31060 if (UNTAG_Bool(REGB0)) {
31061 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5686);
31062 }
31063 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31064 /* parser/parser_prod.nit:5687 */
31065 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31066 if (UNTAG_Bool(REGB0)) {
31067 } else {
31068 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5687);
31069 }
31070 /* parser/parser_prod.nit:5688 */
31071 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31072 } else {
31073 /* parser/parser_prod.nit:5690 */
31074 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5690);
31075 }
31076 /* parser/parser_prod.nit:5692 */
31077 goto label1;
31078 }
31079 label1: while(0);
31080 stack_frame_head = fra.me.prev;
31081 return;
31082 }
31083 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all[] = "parser_prod::AAttrReassignExpr::(parser_prod::ANode::visit_all)";
31084 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
31085 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31086 val_t REGB0;
31087 val_t tmp;
31088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31089 fra.me.file = LOCATE_parser___parser_prod;
31090 fra.me.line = 5696;
31091 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
31092 fra.me.has_broke = 0;
31093 fra.me.REG_size = 3;
31094 fra.me.nitni_local_ref_head = NULL;
31095 fra.me.REG[0] = NIT_NULL;
31096 fra.me.REG[1] = NIT_NULL;
31097 fra.me.REG[2] = NIT_NULL;
31098 fra.me.REG[0] = p0;
31099 fra.me.REG[1] = p1;
31100 /* parser/parser_prod.nit:5698 */
31101 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31102 if (UNTAG_Bool(REGB0)) {
31103 } else {
31104 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5698);
31105 }
31106 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
31107 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31108 /* parser/parser_prod.nit:5699 */
31109 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31110 if (UNTAG_Bool(REGB0)) {
31111 } else {
31112 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5699);
31113 }
31114 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
31115 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31116 /* parser/parser_prod.nit:5700 */
31117 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31118 if (UNTAG_Bool(REGB0)) {
31119 } else {
31120 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5700);
31121 }
31122 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31123 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31124 /* parser/parser_prod.nit:5701 */
31125 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31126 if (UNTAG_Bool(REGB0)) {
31127 } else {
31128 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5701);
31129 }
31130 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31131 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31132 stack_frame_head = fra.me.prev;
31133 return;
31134 }
31135 static const char LOCATE_parser___parser_prod___ACallExpr___empty_init[] = "parser_prod::ACallExpr::empty_init";
31136 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
31137 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
31138 struct {struct stack_frame_t me;} fra;
31139 val_t tmp;
31140 if (init_table[itpos189]) return;
31141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31142 fra.me.file = LOCATE_parser___parser_prod;
31143 fra.me.line = 5705;
31144 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
31145 fra.me.has_broke = 0;
31146 fra.me.REG_size = 1;
31147 fra.me.nitni_local_ref_head = NULL;
31148 fra.me.REG[0] = NIT_NULL;
31149 fra.me.REG[0] = p0;
31150 stack_frame_head = fra.me.prev;
31151 init_table[itpos189] = 1;
31152 return;
31153 }
31154 static const char LOCATE_parser___parser_prod___ACallExpr___init_acallexpr[] = "parser_prod::ACallExpr::init_acallexpr";
31155 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){
31156 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
31157 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31158 val_t REGB0;
31159 val_t tmp;
31160 if (init_table[itpos190]) return;
31161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31162 fra.me.file = LOCATE_parser___parser_prod;
31163 fra.me.line = 5707;
31164 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
31165 fra.me.has_broke = 0;
31166 fra.me.REG_size = 6;
31167 fra.me.nitni_local_ref_head = NULL;
31168 fra.me.REG[0] = NIT_NULL;
31169 fra.me.REG[1] = NIT_NULL;
31170 fra.me.REG[2] = NIT_NULL;
31171 fra.me.REG[3] = NIT_NULL;
31172 fra.me.REG[4] = NIT_NULL;
31173 fra.me.REG[5] = NIT_NULL;
31174 fra.me.REG[0] = p0;
31175 fra.me.REG[1] = p1;
31176 fra.me.REG[2] = p2;
31177 fra.me.REG[3] = p3;
31178 fra.me.REG[4] = p4;
31179 /* parser/parser_prod.nit:5707 */
31180 fra.me.REG[5] = fra.me.REG[0];
31181 /* parser/parser_prod.nit:5714 */
31182 CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
31183 /* parser/parser_prod.nit:5715 */
31184 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31185 if (UNTAG_Bool(REGB0)) {
31186 } else {
31187 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5715);
31188 }
31189 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
31190 /* parser/parser_prod.nit:5716 */
31191 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31192 if (UNTAG_Bool(REGB0)) {
31193 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5716);
31194 }
31195 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
31196 /* parser/parser_prod.nit:5717 */
31197 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31198 if (UNTAG_Bool(REGB0)) {
31199 } else {
31200 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5717);
31201 }
31202 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
31203 /* parser/parser_prod.nit:5718 */
31204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31205 if (UNTAG_Bool(REGB0)) {
31206 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5718);
31207 }
31208 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
31209 /* parser/parser_prod.nit:5719 */
31210 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31211 if (UNTAG_Bool(REGB0)) {
31212 } else {
31213 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5719);
31214 }
31215 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[3];
31216 /* parser/parser_prod.nit:5720 */
31217 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31218 if (UNTAG_Bool(REGB0)) {
31219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5720);
31220 }
31221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
31222 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_1));
31223 stack_frame_head = fra.me.prev;
31224 init_table[itpos190] = 1;
31225 return;
31226 }
31227 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){
31228 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31229 val_t REGB0;
31230 fun_t CREG[1];
31231 val_t tmp;
31232 /* parser/parser_prod.nit:5721 */
31233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31234 fra.me.file = LOCATE_parser___parser_prod;
31235 fra.me.line = 0;
31236 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
31237 fra.me.has_broke = 0;
31238 fra.me.REG_size = 2;
31239 fra.me.nitni_local_ref_head = NULL;
31240 fra.me.REG[0] = NIT_NULL;
31241 fra.me.REG[1] = NIT_NULL;
31242 fra.me.closure_ctx = closctx_param;
31243 fra.me.closure_funs = CREG;
31244 fra.me.REG[0] = p0;
31245 CREG[0] = clos_fun0;
31246 /* parser/parser_prod.nit:5722 */
31247 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
31248 if (UNTAG_Bool(REGB0)) {
31249 } else {
31250 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5722);
31251 }
31252 /* parser/parser_prod.nit:5723 */
31253 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
31254 if (UNTAG_Bool(REGB0)) {
31255 } else {
31256 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5723);
31257 }
31258 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
31259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31260 /* parser/parser_prod.nit:5724 */
31261 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
31262 stack_frame_head = fra.me.prev;
31263 return;
31264 }
31265 static const char LOCATE_parser___parser_prod___ACallExpr___replace_child[] = "parser_prod::ACallExpr::(parser_prod::ANode::replace_child)";
31266 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
31267 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31268 val_t REGB0;
31269 val_t REGB1;
31270 val_t REGB2;
31271 val_t REGB3;
31272 val_t REGB4;
31273 val_t tmp;
31274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31275 fra.me.file = LOCATE_parser___parser_prod;
31276 fra.me.line = 5728;
31277 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
31278 fra.me.has_broke = 0;
31279 fra.me.REG_size = 4;
31280 fra.me.nitni_local_ref_head = NULL;
31281 fra.me.REG[0] = NIT_NULL;
31282 fra.me.REG[1] = NIT_NULL;
31283 fra.me.REG[2] = NIT_NULL;
31284 fra.me.REG[3] = NIT_NULL;
31285 fra.me.REG[0] = p0;
31286 fra.me.REG[1] = p1;
31287 fra.me.REG[2] = p2;
31288 /* parser/parser_prod.nit:5730 */
31289 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31290 if (UNTAG_Bool(REGB0)) {
31291 } else {
31292 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5730);
31293 }
31294 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31295 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31296 if (UNTAG_Bool(REGB0)) {
31297 } else {
31298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31299 REGB0 = REGB1;
31300 }
31301 if (UNTAG_Bool(REGB0)) {
31302 /* parser/parser_prod.nit:5731 */
31303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31304 if (UNTAG_Bool(REGB0)) {
31305 } else {
31306 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31307 if (UNTAG_Bool(REGB1)) {
31308 REGB1 = TAG_Bool(0);
31309 REGB0 = REGB1;
31310 } else {
31311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31312 REGB0 = REGB1;
31313 }
31314 }
31315 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31316 if (UNTAG_Bool(REGB0)) {
31317 /* parser/parser_prod.nit:5732 */
31318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31319 if (UNTAG_Bool(REGB0)) {
31320 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5732);
31321 }
31322 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31323 /* parser/parser_prod.nit:5733 */
31324 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31325 if (UNTAG_Bool(REGB0)) {
31326 } else {
31327 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5733);
31328 }
31329 /* parser/parser_prod.nit:5734 */
31330 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31331 } else {
31332 /* parser/parser_prod.nit:5736 */
31333 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5736);
31334 }
31335 /* parser/parser_prod.nit:5738 */
31336 goto label1;
31337 }
31338 /* parser/parser_prod.nit:5740 */
31339 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31340 if (UNTAG_Bool(REGB0)) {
31341 } else {
31342 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5740);
31343 }
31344 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31345 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31346 if (UNTAG_Bool(REGB0)) {
31347 } else {
31348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31349 REGB0 = REGB1;
31350 }
31351 if (UNTAG_Bool(REGB0)) {
31352 /* parser/parser_prod.nit:5741 */
31353 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31354 if (UNTAG_Bool(REGB0)) {
31355 } else {
31356 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31357 if (UNTAG_Bool(REGB1)) {
31358 REGB1 = TAG_Bool(0);
31359 REGB0 = REGB1;
31360 } else {
31361 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31362 REGB0 = REGB1;
31363 }
31364 }
31365 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31366 if (UNTAG_Bool(REGB0)) {
31367 /* parser/parser_prod.nit:5742 */
31368 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31369 if (UNTAG_Bool(REGB0)) {
31370 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5742);
31371 }
31372 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31373 /* parser/parser_prod.nit:5743 */
31374 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*/;
31375 if (UNTAG_Bool(REGB0)) {
31376 } else {
31377 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5743);
31378 }
31379 /* parser/parser_prod.nit:5744 */
31380 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31381 } else {
31382 /* parser/parser_prod.nit:5746 */
31383 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5746);
31384 }
31385 /* parser/parser_prod.nit:5748 */
31386 goto label1;
31387 }
31388 /* parser/parser_prod.nit:5750 */
31389 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31390 if (UNTAG_Bool(REGB0)) {
31391 } else {
31392 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5750);
31393 }
31394 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31395 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31396 if (UNTAG_Bool(REGB0)) {
31397 } else {
31398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31399 REGB0 = REGB1;
31400 }
31401 if (UNTAG_Bool(REGB0)) {
31402 /* parser/parser_prod.nit:5751 */
31403 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31404 if (UNTAG_Bool(REGB0)) {
31405 } else {
31406 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31407 if (UNTAG_Bool(REGB1)) {
31408 REGB1 = TAG_Bool(0);
31409 REGB0 = REGB1;
31410 } else {
31411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31412 REGB0 = REGB1;
31413 }
31414 }
31415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31416 if (UNTAG_Bool(REGB0)) {
31417 /* parser/parser_prod.nit:5752 */
31418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31419 if (UNTAG_Bool(REGB0)) {
31420 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5752);
31421 }
31422 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31423 /* parser/parser_prod.nit:5753 */
31424 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
31425 if (UNTAG_Bool(REGB0)) {
31426 } else {
31427 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5753);
31428 }
31429 /* parser/parser_prod.nit:5754 */
31430 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
31431 } else {
31432 /* parser/parser_prod.nit:5756 */
31433 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5756);
31434 }
31435 /* parser/parser_prod.nit:5758 */
31436 goto label1;
31437 }
31438 /* parser/parser_prod.nit:5760 */
31439 REGB0 = TAG_Int(0);
31440 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31441 if (UNTAG_Bool(REGB1)) {
31442 } else {
31443 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5760);
31444 }
31445 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31446 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31447 /* ../lib/standard/kernel.nit:355 */
31448 while(1) {
31449 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31450 if (UNTAG_Bool(REGB2)) {
31451 } else {
31452 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31453 }
31454 /* ../lib/standard/kernel.nit:235 */
31455 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31456 /* ../lib/standard/kernel.nit:355 */
31457 if (UNTAG_Bool(REGB2)) {
31458 /* parser/parser_prod.nit:5760 */
31459 REGB2 = REGB0;
31460 /* parser/parser_prod.nit:5761 */
31461 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31462 if (UNTAG_Bool(REGB3)) {
31463 } else {
31464 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5761);
31465 }
31466 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31467 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31468 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31469 if (UNTAG_Bool(REGB3)) {
31470 } else {
31471 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31472 if (UNTAG_Bool(REGB4)) {
31473 REGB4 = TAG_Bool(0);
31474 REGB3 = REGB4;
31475 } else {
31476 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31477 REGB3 = REGB4;
31478 }
31479 }
31480 if (UNTAG_Bool(REGB3)) {
31481 /* parser/parser_prod.nit:5762 */
31482 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31483 if (UNTAG_Bool(REGB3)) {
31484 } else {
31485 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31486 if (UNTAG_Bool(REGB4)) {
31487 REGB4 = TAG_Bool(0);
31488 REGB3 = REGB4;
31489 } else {
31490 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31491 REGB3 = REGB4;
31492 }
31493 }
31494 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31495 if (UNTAG_Bool(REGB3)) {
31496 /* parser/parser_prod.nit:5763 */
31497 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*/;
31498 if (UNTAG_Bool(REGB3)) {
31499 } else {
31500 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5763);
31501 }
31502 /* parser/parser_prod.nit:5764 */
31503 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31504 if (UNTAG_Bool(REGB3)) {
31505 } else {
31506 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5764);
31507 }
31508 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31509 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31510 /* parser/parser_prod.nit:5765 */
31511 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31512 if (UNTAG_Bool(REGB3)) {
31513 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5765);
31514 }
31515 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31516 } else {
31517 /* parser/parser_prod.nit:5767 */
31518 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31519 if (UNTAG_Bool(REGB3)) {
31520 } else {
31521 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5767);
31522 }
31523 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31524 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31525 }
31526 /* parser/parser_prod.nit:5769 */
31527 goto label1;
31528 }
31529 /* ../lib/standard/kernel.nit:357 */
31530 REGB2 = TAG_Int(1);
31531 /* ../lib/standard/kernel.nit:238 */
31532 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31533 /* ../lib/standard/kernel.nit:357 */
31534 REGB0 = REGB2;
31535 } else {
31536 /* ../lib/standard/kernel.nit:355 */
31537 goto label2;
31538 }
31539 }
31540 label2: while(0);
31541 label1: while(0);
31542 stack_frame_head = fra.me.prev;
31543 return;
31544 }
31545 static const char LOCATE_parser___parser_prod___ACallExpr___visit_all[] = "parser_prod::ACallExpr::(parser_prod::ANode::visit_all)";
31546 void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
31547 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31548 val_t REGB0;
31549 val_t tmp;
31550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31551 fra.me.file = LOCATE_parser___parser_prod;
31552 fra.me.line = 5774;
31553 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
31554 fra.me.has_broke = 0;
31555 fra.me.REG_size = 3;
31556 fra.me.nitni_local_ref_head = NULL;
31557 fra.me.REG[0] = NIT_NULL;
31558 fra.me.REG[1] = NIT_NULL;
31559 fra.me.REG[2] = NIT_NULL;
31560 fra.me.REG[0] = p0;
31561 fra.me.REG[1] = p1;
31562 /* parser/parser_prod.nit:5776 */
31563 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31564 if (UNTAG_Bool(REGB0)) {
31565 } else {
31566 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5776);
31567 }
31568 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31569 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31570 /* parser/parser_prod.nit:5777 */
31571 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31572 if (UNTAG_Bool(REGB0)) {
31573 } else {
31574 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5777);
31575 }
31576 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31577 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31578 /* parser/parser_prod.nit:5778 */
31579 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31580 if (UNTAG_Bool(REGB0)) {
31581 } else {
31582 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5778);
31583 }
31584 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31585 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31586 /* parser/parser_prod.nit:5779 */
31587 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31588 if (UNTAG_Bool(REGB0)) {
31589 } else {
31590 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5779);
31591 }
31592 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31593 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_1));
31594 stack_frame_head = fra.me.prev;
31595 return;
31596 }
31597 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){
31598 struct {struct stack_frame_t me;} fra;
31599 fun_t CREG[1];
31600 val_t tmp;
31601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31602 fra.me.file = LOCATE_parser___parser_prod;
31603 fra.me.line = 0;
31604 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
31605 fra.me.has_broke = 0;
31606 fra.me.REG_size = 1;
31607 fra.me.nitni_local_ref_head = NULL;
31608 fra.me.REG[0] = NIT_NULL;
31609 fra.me.closure_ctx = closctx_param;
31610 fra.me.closure_funs = CREG;
31611 fra.me.REG[0] = p0;
31612 CREG[0] = clos_fun0;
31613 /* parser/parser_prod.nit:5780 */
31614 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31615 stack_frame_head = fra.me.prev;
31616 return;
31617 }
31618 static const char LOCATE_parser___parser_prod___ACallAssignExpr___empty_init[] = "parser_prod::ACallAssignExpr::empty_init";
31619 void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
31620 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
31621 struct {struct stack_frame_t me;} fra;
31622 val_t tmp;
31623 if (init_table[itpos191]) return;
31624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31625 fra.me.file = LOCATE_parser___parser_prod;
31626 fra.me.line = 5785;
31627 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
31628 fra.me.has_broke = 0;
31629 fra.me.REG_size = 1;
31630 fra.me.nitni_local_ref_head = NULL;
31631 fra.me.REG[0] = NIT_NULL;
31632 fra.me.REG[0] = p0;
31633 stack_frame_head = fra.me.prev;
31634 init_table[itpos191] = 1;
31635 return;
31636 }
31637 static const char LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr[] = "parser_prod::ACallAssignExpr::init_acallassignexpr";
31638 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){
31639 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
31640 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
31641 val_t REGB0;
31642 val_t tmp;
31643 if (init_table[itpos192]) return;
31644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31645 fra.me.file = LOCATE_parser___parser_prod;
31646 fra.me.line = 5787;
31647 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
31648 fra.me.has_broke = 0;
31649 fra.me.REG_size = 7;
31650 fra.me.nitni_local_ref_head = NULL;
31651 fra.me.REG[0] = NIT_NULL;
31652 fra.me.REG[1] = NIT_NULL;
31653 fra.me.REG[2] = NIT_NULL;
31654 fra.me.REG[3] = NIT_NULL;
31655 fra.me.REG[4] = NIT_NULL;
31656 fra.me.REG[5] = NIT_NULL;
31657 fra.me.REG[6] = NIT_NULL;
31658 fra.me.REG[0] = p0;
31659 fra.me.REG[1] = p1;
31660 fra.me.REG[2] = p2;
31661 fra.me.REG[3] = p3;
31662 fra.me.REG[4] = p4;
31663 fra.me.REG[5] = p5;
31664 /* parser/parser_prod.nit:5787 */
31665 fra.me.REG[6] = fra.me.REG[0];
31666 /* parser/parser_prod.nit:5795 */
31667 CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
31668 /* parser/parser_prod.nit:5796 */
31669 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31670 if (UNTAG_Bool(REGB0)) {
31671 } else {
31672 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5796);
31673 }
31674 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
31675 /* parser/parser_prod.nit:5797 */
31676 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31677 if (UNTAG_Bool(REGB0)) {
31678 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5797);
31679 }
31680 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
31681 /* parser/parser_prod.nit:5798 */
31682 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31683 if (UNTAG_Bool(REGB0)) {
31684 } else {
31685 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5798);
31686 }
31687 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
31688 /* parser/parser_prod.nit:5799 */
31689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31690 if (UNTAG_Bool(REGB0)) {
31691 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5799);
31692 }
31693 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
31694 /* parser/parser_prod.nit:5800 */
31695 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31696 if (UNTAG_Bool(REGB0)) {
31697 } else {
31698 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5800);
31699 }
31700 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
31701 /* parser/parser_prod.nit:5801 */
31702 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31703 if (UNTAG_Bool(REGB0)) {
31704 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5801);
31705 }
31706 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
31707 /* parser/parser_prod.nit:5802 */
31708 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31709 if (UNTAG_Bool(REGB0)) {
31710 } else {
31711 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5802);
31712 }
31713 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
31714 /* parser/parser_prod.nit:5803 */
31715 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31716 if (UNTAG_Bool(REGB0)) {
31717 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5803);
31718 }
31719 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
31720 /* parser/parser_prod.nit:5804 */
31721 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
31722 if (UNTAG_Bool(REGB0)) {
31723 } else {
31724 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5804);
31725 }
31726 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
31727 /* parser/parser_prod.nit:5805 */
31728 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
31729 if (UNTAG_Bool(REGB0)) {
31730 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5805);
31731 }
31732 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
31733 stack_frame_head = fra.me.prev;
31734 init_table[itpos192] = 1;
31735 return;
31736 }
31737 static const char LOCATE_parser___parser_prod___ACallAssignExpr___replace_child[] = "parser_prod::ACallAssignExpr::(parser_prod::ANode::replace_child)";
31738 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31739 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31740 val_t REGB0;
31741 val_t REGB1;
31742 val_t tmp;
31743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31744 fra.me.file = LOCATE_parser___parser_prod;
31745 fra.me.line = 5808;
31746 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
31747 fra.me.has_broke = 0;
31748 fra.me.REG_size = 4;
31749 fra.me.nitni_local_ref_head = NULL;
31750 fra.me.REG[0] = NIT_NULL;
31751 fra.me.REG[1] = NIT_NULL;
31752 fra.me.REG[2] = NIT_NULL;
31753 fra.me.REG[3] = NIT_NULL;
31754 fra.me.REG[0] = p0;
31755 fra.me.REG[1] = p1;
31756 fra.me.REG[2] = p2;
31757 /* parser/parser_prod.nit:5810 */
31758 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31759 if (UNTAG_Bool(REGB0)) {
31760 } else {
31761 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5810);
31762 }
31763 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31764 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31765 if (UNTAG_Bool(REGB0)) {
31766 } else {
31767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31768 REGB0 = REGB1;
31769 }
31770 if (UNTAG_Bool(REGB0)) {
31771 /* parser/parser_prod.nit:5811 */
31772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31773 if (UNTAG_Bool(REGB0)) {
31774 } else {
31775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31776 if (UNTAG_Bool(REGB1)) {
31777 REGB1 = TAG_Bool(0);
31778 REGB0 = REGB1;
31779 } else {
31780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31781 REGB0 = REGB1;
31782 }
31783 }
31784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31785 if (UNTAG_Bool(REGB0)) {
31786 /* parser/parser_prod.nit:5812 */
31787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31788 if (UNTAG_Bool(REGB0)) {
31789 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5812);
31790 }
31791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31792 /* parser/parser_prod.nit:5813 */
31793 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31794 if (UNTAG_Bool(REGB0)) {
31795 } else {
31796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5813);
31797 }
31798 /* parser/parser_prod.nit:5814 */
31799 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31800 } else {
31801 /* parser/parser_prod.nit:5816 */
31802 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5816);
31803 }
31804 /* parser/parser_prod.nit:5818 */
31805 goto label1;
31806 }
31807 /* parser/parser_prod.nit:5820 */
31808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31809 if (UNTAG_Bool(REGB0)) {
31810 } else {
31811 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5820);
31812 }
31813 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31814 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31815 if (UNTAG_Bool(REGB0)) {
31816 } else {
31817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31818 REGB0 = REGB1;
31819 }
31820 if (UNTAG_Bool(REGB0)) {
31821 /* parser/parser_prod.nit:5821 */
31822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31823 if (UNTAG_Bool(REGB0)) {
31824 } else {
31825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31826 if (UNTAG_Bool(REGB1)) {
31827 REGB1 = TAG_Bool(0);
31828 REGB0 = REGB1;
31829 } else {
31830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31831 REGB0 = REGB1;
31832 }
31833 }
31834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31835 if (UNTAG_Bool(REGB0)) {
31836 /* parser/parser_prod.nit:5822 */
31837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31838 if (UNTAG_Bool(REGB0)) {
31839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5822);
31840 }
31841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31842 /* parser/parser_prod.nit:5823 */
31843 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*/;
31844 if (UNTAG_Bool(REGB0)) {
31845 } else {
31846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5823);
31847 }
31848 /* parser/parser_prod.nit:5824 */
31849 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31850 } else {
31851 /* parser/parser_prod.nit:5826 */
31852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5826);
31853 }
31854 /* parser/parser_prod.nit:5828 */
31855 goto label1;
31856 }
31857 /* parser/parser_prod.nit:5830 */
31858 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31859 if (UNTAG_Bool(REGB0)) {
31860 } else {
31861 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5830);
31862 }
31863 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31864 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31865 if (UNTAG_Bool(REGB0)) {
31866 } else {
31867 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31868 REGB0 = REGB1;
31869 }
31870 if (UNTAG_Bool(REGB0)) {
31871 /* parser/parser_prod.nit:5831 */
31872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31873 if (UNTAG_Bool(REGB0)) {
31874 } else {
31875 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31876 if (UNTAG_Bool(REGB1)) {
31877 REGB1 = TAG_Bool(0);
31878 REGB0 = REGB1;
31879 } else {
31880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31881 REGB0 = REGB1;
31882 }
31883 }
31884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31885 if (UNTAG_Bool(REGB0)) {
31886 /* parser/parser_prod.nit:5832 */
31887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31888 if (UNTAG_Bool(REGB0)) {
31889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5832);
31890 }
31891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31892 /* parser/parser_prod.nit:5833 */
31893 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
31894 if (UNTAG_Bool(REGB0)) {
31895 } else {
31896 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5833);
31897 }
31898 /* parser/parser_prod.nit:5834 */
31899 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
31900 } else {
31901 /* parser/parser_prod.nit:5836 */
31902 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5836);
31903 }
31904 /* parser/parser_prod.nit:5838 */
31905 goto label1;
31906 }
31907 /* parser/parser_prod.nit:5840 */
31908 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31909 if (UNTAG_Bool(REGB0)) {
31910 } else {
31911 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5840);
31912 }
31913 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31914 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31915 if (UNTAG_Bool(REGB0)) {
31916 } else {
31917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31918 REGB0 = REGB1;
31919 }
31920 if (UNTAG_Bool(REGB0)) {
31921 /* parser/parser_prod.nit:5841 */
31922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31923 if (UNTAG_Bool(REGB0)) {
31924 } else {
31925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31926 if (UNTAG_Bool(REGB1)) {
31927 REGB1 = TAG_Bool(0);
31928 REGB0 = REGB1;
31929 } else {
31930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31931 REGB0 = REGB1;
31932 }
31933 }
31934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31935 if (UNTAG_Bool(REGB0)) {
31936 /* parser/parser_prod.nit:5842 */
31937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31938 if (UNTAG_Bool(REGB0)) {
31939 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5842);
31940 }
31941 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31942 /* parser/parser_prod.nit:5843 */
31943 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*/;
31944 if (UNTAG_Bool(REGB0)) {
31945 } else {
31946 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5843);
31947 }
31948 /* parser/parser_prod.nit:5844 */
31949 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
31950 } else {
31951 /* parser/parser_prod.nit:5846 */
31952 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5846);
31953 }
31954 /* parser/parser_prod.nit:5848 */
31955 goto label1;
31956 }
31957 /* parser/parser_prod.nit:5850 */
31958 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31959 if (UNTAG_Bool(REGB0)) {
31960 } else {
31961 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5850);
31962 }
31963 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31964 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31965 if (UNTAG_Bool(REGB0)) {
31966 } else {
31967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31968 REGB0 = REGB1;
31969 }
31970 if (UNTAG_Bool(REGB0)) {
31971 /* parser/parser_prod.nit:5851 */
31972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31973 if (UNTAG_Bool(REGB0)) {
31974 } else {
31975 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31976 if (UNTAG_Bool(REGB1)) {
31977 REGB1 = TAG_Bool(0);
31978 REGB0 = REGB1;
31979 } else {
31980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31981 REGB0 = REGB1;
31982 }
31983 }
31984 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31985 if (UNTAG_Bool(REGB0)) {
31986 /* parser/parser_prod.nit:5852 */
31987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31988 if (UNTAG_Bool(REGB0)) {
31989 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5852);
31990 }
31991 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31992 /* parser/parser_prod.nit:5853 */
31993 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31994 if (UNTAG_Bool(REGB0)) {
31995 } else {
31996 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5853);
31997 }
31998 /* parser/parser_prod.nit:5854 */
31999 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32000 } else {
32001 /* parser/parser_prod.nit:5856 */
32002 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5856);
32003 }
32004 /* parser/parser_prod.nit:5858 */
32005 goto label1;
32006 }
32007 label1: while(0);
32008 stack_frame_head = fra.me.prev;
32009 return;
32010 }
32011 static const char LOCATE_parser___parser_prod___ACallAssignExpr___visit_all[] = "parser_prod::ACallAssignExpr::(parser_prod::ANode::visit_all)";
32012 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
32013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32014 val_t REGB0;
32015 val_t tmp;
32016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32017 fra.me.file = LOCATE_parser___parser_prod;
32018 fra.me.line = 5862;
32019 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
32020 fra.me.has_broke = 0;
32021 fra.me.REG_size = 3;
32022 fra.me.nitni_local_ref_head = NULL;
32023 fra.me.REG[0] = NIT_NULL;
32024 fra.me.REG[1] = NIT_NULL;
32025 fra.me.REG[2] = NIT_NULL;
32026 fra.me.REG[0] = p0;
32027 fra.me.REG[1] = p1;
32028 /* parser/parser_prod.nit:5864 */
32029 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32030 if (UNTAG_Bool(REGB0)) {
32031 } else {
32032 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5864);
32033 }
32034 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32035 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32036 /* parser/parser_prod.nit:5865 */
32037 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32038 if (UNTAG_Bool(REGB0)) {
32039 } else {
32040 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5865);
32041 }
32042 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
32043 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32044 /* parser/parser_prod.nit:5866 */
32045 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32046 if (UNTAG_Bool(REGB0)) {
32047 } else {
32048 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5866);
32049 }
32050 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
32051 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32052 /* parser/parser_prod.nit:5867 */
32053 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32054 if (UNTAG_Bool(REGB0)) {
32055 } else {
32056 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5867);
32057 }
32058 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32059 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32060 /* parser/parser_prod.nit:5868 */
32061 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32062 if (UNTAG_Bool(REGB0)) {
32063 } else {
32064 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5868);
32065 }
32066 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32067 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32068 stack_frame_head = fra.me.prev;
32069 return;
32070 }
32071 static const char LOCATE_parser___parser_prod___ACallReassignExpr___empty_init[] = "parser_prod::ACallReassignExpr::empty_init";
32072 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
32073 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
32074 struct {struct stack_frame_t me;} fra;
32075 val_t tmp;
32076 if (init_table[itpos193]) return;
32077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32078 fra.me.file = LOCATE_parser___parser_prod;
32079 fra.me.line = 5872;
32080 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
32081 fra.me.has_broke = 0;
32082 fra.me.REG_size = 1;
32083 fra.me.nitni_local_ref_head = NULL;
32084 fra.me.REG[0] = NIT_NULL;
32085 fra.me.REG[0] = p0;
32086 stack_frame_head = fra.me.prev;
32087 init_table[itpos193] = 1;
32088 return;
32089 }
32090 static const char LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr[] = "parser_prod::ACallReassignExpr::init_acallreassignexpr";
32091 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){
32092 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
32093 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
32094 val_t REGB0;
32095 val_t tmp;
32096 if (init_table[itpos194]) return;
32097 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32098 fra.me.file = LOCATE_parser___parser_prod;
32099 fra.me.line = 5874;
32100 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
32101 fra.me.has_broke = 0;
32102 fra.me.REG_size = 7;
32103 fra.me.nitni_local_ref_head = NULL;
32104 fra.me.REG[0] = NIT_NULL;
32105 fra.me.REG[1] = NIT_NULL;
32106 fra.me.REG[2] = NIT_NULL;
32107 fra.me.REG[3] = NIT_NULL;
32108 fra.me.REG[4] = NIT_NULL;
32109 fra.me.REG[5] = NIT_NULL;
32110 fra.me.REG[6] = NIT_NULL;
32111 fra.me.REG[0] = p0;
32112 fra.me.REG[1] = p1;
32113 fra.me.REG[2] = p2;
32114 fra.me.REG[3] = p3;
32115 fra.me.REG[4] = p4;
32116 fra.me.REG[5] = p5;
32117 /* parser/parser_prod.nit:5874 */
32118 fra.me.REG[6] = fra.me.REG[0];
32119 /* parser/parser_prod.nit:5882 */
32120 CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
32121 /* parser/parser_prod.nit:5883 */
32122 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32123 if (UNTAG_Bool(REGB0)) {
32124 } else {
32125 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5883);
32126 }
32127 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
32128 /* parser/parser_prod.nit:5884 */
32129 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32130 if (UNTAG_Bool(REGB0)) {
32131 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5884);
32132 }
32133 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
32134 /* parser/parser_prod.nit:5885 */
32135 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32136 if (UNTAG_Bool(REGB0)) {
32137 } else {
32138 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5885);
32139 }
32140 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
32141 /* parser/parser_prod.nit:5886 */
32142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32143 if (UNTAG_Bool(REGB0)) {
32144 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5886);
32145 }
32146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
32147 /* parser/parser_prod.nit:5887 */
32148 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32149 if (UNTAG_Bool(REGB0)) {
32150 } else {
32151 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5887);
32152 }
32153 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
32154 /* parser/parser_prod.nit:5888 */
32155 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32156 if (UNTAG_Bool(REGB0)) {
32157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5888);
32158 }
32159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
32160 /* parser/parser_prod.nit:5889 */
32161 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
32162 if (UNTAG_Bool(REGB0)) {
32163 } else {
32164 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5889);
32165 }
32166 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
32167 /* parser/parser_prod.nit:5890 */
32168 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
32169 if (UNTAG_Bool(REGB0)) {
32170 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5890);
32171 }
32172 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
32173 /* parser/parser_prod.nit:5891 */
32174 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
32175 if (UNTAG_Bool(REGB0)) {
32176 } else {
32177 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5891);
32178 }
32179 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
32180 /* parser/parser_prod.nit:5892 */
32181 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
32182 if (UNTAG_Bool(REGB0)) {
32183 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5892);
32184 }
32185 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
32186 stack_frame_head = fra.me.prev;
32187 init_table[itpos194] = 1;
32188 return;
32189 }
32190 static const char LOCATE_parser___parser_prod___ACallReassignExpr___replace_child[] = "parser_prod::ACallReassignExpr::(parser_prod::ANode::replace_child)";
32191 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32192 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32193 val_t REGB0;
32194 val_t REGB1;
32195 val_t tmp;
32196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32197 fra.me.file = LOCATE_parser___parser_prod;
32198 fra.me.line = 5895;
32199 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
32200 fra.me.has_broke = 0;
32201 fra.me.REG_size = 4;
32202 fra.me.nitni_local_ref_head = NULL;
32203 fra.me.REG[0] = NIT_NULL;
32204 fra.me.REG[1] = NIT_NULL;
32205 fra.me.REG[2] = NIT_NULL;
32206 fra.me.REG[3] = NIT_NULL;
32207 fra.me.REG[0] = p0;
32208 fra.me.REG[1] = p1;
32209 fra.me.REG[2] = p2;
32210 /* parser/parser_prod.nit:5897 */
32211 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32212 if (UNTAG_Bool(REGB0)) {
32213 } else {
32214 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5897);
32215 }
32216 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32217 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32218 if (UNTAG_Bool(REGB0)) {
32219 } else {
32220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32221 REGB0 = REGB1;
32222 }
32223 if (UNTAG_Bool(REGB0)) {
32224 /* parser/parser_prod.nit:5898 */
32225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32226 if (UNTAG_Bool(REGB0)) {
32227 } else {
32228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32229 if (UNTAG_Bool(REGB1)) {
32230 REGB1 = TAG_Bool(0);
32231 REGB0 = REGB1;
32232 } else {
32233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32234 REGB0 = REGB1;
32235 }
32236 }
32237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32238 if (UNTAG_Bool(REGB0)) {
32239 /* parser/parser_prod.nit:5899 */
32240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32241 if (UNTAG_Bool(REGB0)) {
32242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5899);
32243 }
32244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32245 /* parser/parser_prod.nit:5900 */
32246 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32247 if (UNTAG_Bool(REGB0)) {
32248 } else {
32249 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5900);
32250 }
32251 /* parser/parser_prod.nit:5901 */
32252 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32253 } else {
32254 /* parser/parser_prod.nit:5903 */
32255 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5903);
32256 }
32257 /* parser/parser_prod.nit:5905 */
32258 goto label1;
32259 }
32260 /* parser/parser_prod.nit:5907 */
32261 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32262 if (UNTAG_Bool(REGB0)) {
32263 } else {
32264 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5907);
32265 }
32266 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
32267 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32268 if (UNTAG_Bool(REGB0)) {
32269 } else {
32270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32271 REGB0 = REGB1;
32272 }
32273 if (UNTAG_Bool(REGB0)) {
32274 /* parser/parser_prod.nit:5908 */
32275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32276 if (UNTAG_Bool(REGB0)) {
32277 } else {
32278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32279 if (UNTAG_Bool(REGB1)) {
32280 REGB1 = TAG_Bool(0);
32281 REGB0 = REGB1;
32282 } else {
32283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32284 REGB0 = REGB1;
32285 }
32286 }
32287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32288 if (UNTAG_Bool(REGB0)) {
32289 /* parser/parser_prod.nit:5909 */
32290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32291 if (UNTAG_Bool(REGB0)) {
32292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5909);
32293 }
32294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32295 /* parser/parser_prod.nit:5910 */
32296 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*/;
32297 if (UNTAG_Bool(REGB0)) {
32298 } else {
32299 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5910);
32300 }
32301 /* parser/parser_prod.nit:5911 */
32302 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32303 } else {
32304 /* parser/parser_prod.nit:5913 */
32305 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5913);
32306 }
32307 /* parser/parser_prod.nit:5915 */
32308 goto label1;
32309 }
32310 /* parser/parser_prod.nit:5917 */
32311 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32312 if (UNTAG_Bool(REGB0)) {
32313 } else {
32314 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5917);
32315 }
32316 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
32317 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32318 if (UNTAG_Bool(REGB0)) {
32319 } else {
32320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32321 REGB0 = REGB1;
32322 }
32323 if (UNTAG_Bool(REGB0)) {
32324 /* parser/parser_prod.nit:5918 */
32325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32326 if (UNTAG_Bool(REGB0)) {
32327 } else {
32328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32329 if (UNTAG_Bool(REGB1)) {
32330 REGB1 = TAG_Bool(0);
32331 REGB0 = REGB1;
32332 } else {
32333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32334 REGB0 = REGB1;
32335 }
32336 }
32337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32338 if (UNTAG_Bool(REGB0)) {
32339 /* parser/parser_prod.nit:5919 */
32340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32341 if (UNTAG_Bool(REGB0)) {
32342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5919);
32343 }
32344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32345 /* parser/parser_prod.nit:5920 */
32346 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
32347 if (UNTAG_Bool(REGB0)) {
32348 } else {
32349 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5920);
32350 }
32351 /* parser/parser_prod.nit:5921 */
32352 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
32353 } else {
32354 /* parser/parser_prod.nit:5923 */
32355 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5923);
32356 }
32357 /* parser/parser_prod.nit:5925 */
32358 goto label1;
32359 }
32360 /* parser/parser_prod.nit:5927 */
32361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32362 if (UNTAG_Bool(REGB0)) {
32363 } else {
32364 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5927);
32365 }
32366 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32367 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32368 if (UNTAG_Bool(REGB0)) {
32369 } else {
32370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32371 REGB0 = REGB1;
32372 }
32373 if (UNTAG_Bool(REGB0)) {
32374 /* parser/parser_prod.nit:5928 */
32375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32376 if (UNTAG_Bool(REGB0)) {
32377 } else {
32378 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32379 if (UNTAG_Bool(REGB1)) {
32380 REGB1 = TAG_Bool(0);
32381 REGB0 = REGB1;
32382 } else {
32383 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32384 REGB0 = REGB1;
32385 }
32386 }
32387 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32388 if (UNTAG_Bool(REGB0)) {
32389 /* parser/parser_prod.nit:5929 */
32390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32391 if (UNTAG_Bool(REGB0)) {
32392 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5929);
32393 }
32394 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32395 /* parser/parser_prod.nit:5930 */
32396 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*/;
32397 if (UNTAG_Bool(REGB0)) {
32398 } else {
32399 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5930);
32400 }
32401 /* parser/parser_prod.nit:5931 */
32402 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
32403 } else {
32404 /* parser/parser_prod.nit:5933 */
32405 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5933);
32406 }
32407 /* parser/parser_prod.nit:5935 */
32408 goto label1;
32409 }
32410 /* parser/parser_prod.nit:5937 */
32411 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32412 if (UNTAG_Bool(REGB0)) {
32413 } else {
32414 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5937);
32415 }
32416 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
32417 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32418 if (UNTAG_Bool(REGB0)) {
32419 } else {
32420 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32421 REGB0 = REGB1;
32422 }
32423 if (UNTAG_Bool(REGB0)) {
32424 /* parser/parser_prod.nit:5938 */
32425 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32426 if (UNTAG_Bool(REGB0)) {
32427 } else {
32428 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32429 if (UNTAG_Bool(REGB1)) {
32430 REGB1 = TAG_Bool(0);
32431 REGB0 = REGB1;
32432 } else {
32433 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32434 REGB0 = REGB1;
32435 }
32436 }
32437 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32438 if (UNTAG_Bool(REGB0)) {
32439 /* parser/parser_prod.nit:5939 */
32440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32441 if (UNTAG_Bool(REGB0)) {
32442 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5939);
32443 }
32444 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32445 /* parser/parser_prod.nit:5940 */
32446 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32447 if (UNTAG_Bool(REGB0)) {
32448 } else {
32449 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5940);
32450 }
32451 /* parser/parser_prod.nit:5941 */
32452 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32453 } else {
32454 /* parser/parser_prod.nit:5943 */
32455 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5943);
32456 }
32457 /* parser/parser_prod.nit:5945 */
32458 goto label1;
32459 }
32460 label1: while(0);
32461 stack_frame_head = fra.me.prev;
32462 return;
32463 }
32464 static const char LOCATE_parser___parser_prod___ACallReassignExpr___visit_all[] = "parser_prod::ACallReassignExpr::(parser_prod::ANode::visit_all)";
32465 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
32466 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32467 val_t REGB0;
32468 val_t tmp;
32469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32470 fra.me.file = LOCATE_parser___parser_prod;
32471 fra.me.line = 5949;
32472 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
32473 fra.me.has_broke = 0;
32474 fra.me.REG_size = 3;
32475 fra.me.nitni_local_ref_head = NULL;
32476 fra.me.REG[0] = NIT_NULL;
32477 fra.me.REG[1] = NIT_NULL;
32478 fra.me.REG[2] = NIT_NULL;
32479 fra.me.REG[0] = p0;
32480 fra.me.REG[1] = p1;
32481 /* parser/parser_prod.nit:5951 */
32482 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32483 if (UNTAG_Bool(REGB0)) {
32484 } else {
32485 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5951);
32486 }
32487 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32488 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32489 /* parser/parser_prod.nit:5952 */
32490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32491 if (UNTAG_Bool(REGB0)) {
32492 } else {
32493 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5952);
32494 }
32495 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
32496 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32497 /* parser/parser_prod.nit:5953 */
32498 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32499 if (UNTAG_Bool(REGB0)) {
32500 } else {
32501 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5953);
32502 }
32503 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
32504 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32505 /* parser/parser_prod.nit:5954 */
32506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32507 if (UNTAG_Bool(REGB0)) {
32508 } else {
32509 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5954);
32510 }
32511 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32512 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32513 /* parser/parser_prod.nit:5955 */
32514 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32515 if (UNTAG_Bool(REGB0)) {
32516 } else {
32517 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5955);
32518 }
32519 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
32520 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32521 stack_frame_head = fra.me.prev;
32522 return;
32523 }
32524 static const char LOCATE_parser___parser_prod___ASuperExpr___empty_init[] = "parser_prod::ASuperExpr::empty_init";
32525 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
32526 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
32527 struct {struct stack_frame_t me;} fra;
32528 val_t tmp;
32529 if (init_table[itpos195]) return;
32530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32531 fra.me.file = LOCATE_parser___parser_prod;
32532 fra.me.line = 5959;
32533 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
32534 fra.me.has_broke = 0;
32535 fra.me.REG_size = 1;
32536 fra.me.nitni_local_ref_head = NULL;
32537 fra.me.REG[0] = NIT_NULL;
32538 fra.me.REG[0] = p0;
32539 stack_frame_head = fra.me.prev;
32540 init_table[itpos195] = 1;
32541 return;
32542 }
32543 static const char LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr[] = "parser_prod::ASuperExpr::init_asuperexpr";
32544 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32545 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
32546 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32547 val_t REGB0;
32548 val_t REGB1;
32549 val_t tmp;
32550 if (init_table[itpos196]) return;
32551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32552 fra.me.file = LOCATE_parser___parser_prod;
32553 fra.me.line = 5961;
32554 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
32555 fra.me.has_broke = 0;
32556 fra.me.REG_size = 5;
32557 fra.me.nitni_local_ref_head = NULL;
32558 fra.me.REG[0] = NIT_NULL;
32559 fra.me.REG[1] = NIT_NULL;
32560 fra.me.REG[2] = NIT_NULL;
32561 fra.me.REG[3] = NIT_NULL;
32562 fra.me.REG[4] = NIT_NULL;
32563 fra.me.REG[0] = p0;
32564 fra.me.REG[1] = p1;
32565 fra.me.REG[2] = p2;
32566 fra.me.REG[3] = p3;
32567 /* parser/parser_prod.nit:5961 */
32568 fra.me.REG[4] = fra.me.REG[0];
32569 /* parser/parser_prod.nit:5967 */
32570 CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32571 /* parser/parser_prod.nit:5968 */
32572 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
32573 /* parser/parser_prod.nit:5969 */
32574 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32575 if (UNTAG_Bool(REGB0)) {
32576 } else {
32577 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32578 if (UNTAG_Bool(REGB1)) {
32579 REGB1 = TAG_Bool(0);
32580 REGB0 = REGB1;
32581 } else {
32582 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
32583 REGB0 = REGB1;
32584 }
32585 }
32586 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32587 if (UNTAG_Bool(REGB0)) {
32588 /* parser/parser_prod.nit:5970 */
32589 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32590 if (UNTAG_Bool(REGB0)) {
32591 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5970);
32592 }
32593 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32594 }
32595 /* parser/parser_prod.nit:5972 */
32596 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32597 if (UNTAG_Bool(REGB0)) {
32598 } else {
32599 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5972);
32600 }
32601 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
32602 /* parser/parser_prod.nit:5973 */
32603 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32604 if (UNTAG_Bool(REGB0)) {
32605 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5973);
32606 }
32607 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
32608 /* parser/parser_prod.nit:5974 */
32609 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32610 if (UNTAG_Bool(REGB0)) {
32611 } else {
32612 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5974);
32613 }
32614 ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
32615 /* parser/parser_prod.nit:5975 */
32616 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32617 if (UNTAG_Bool(REGB0)) {
32618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5975);
32619 }
32620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
32621 stack_frame_head = fra.me.prev;
32622 init_table[itpos196] = 1;
32623 return;
32624 }
32625 static const char LOCATE_parser___parser_prod___ASuperExpr___replace_child[] = "parser_prod::ASuperExpr::(parser_prod::ANode::replace_child)";
32626 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
32627 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32628 val_t REGB0;
32629 val_t REGB1;
32630 val_t tmp;
32631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32632 fra.me.file = LOCATE_parser___parser_prod;
32633 fra.me.line = 5978;
32634 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
32635 fra.me.has_broke = 0;
32636 fra.me.REG_size = 4;
32637 fra.me.nitni_local_ref_head = NULL;
32638 fra.me.REG[0] = NIT_NULL;
32639 fra.me.REG[1] = NIT_NULL;
32640 fra.me.REG[2] = NIT_NULL;
32641 fra.me.REG[3] = NIT_NULL;
32642 fra.me.REG[0] = p0;
32643 fra.me.REG[1] = p1;
32644 fra.me.REG[2] = p2;
32645 /* parser/parser_prod.nit:5980 */
32646 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
32647 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32648 if (UNTAG_Bool(REGB0)) {
32649 } else {
32650 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32651 if (UNTAG_Bool(REGB1)) {
32652 REGB1 = TAG_Bool(0);
32653 REGB0 = REGB1;
32654 } else {
32655 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32656 REGB0 = REGB1;
32657 }
32658 }
32659 if (UNTAG_Bool(REGB0)) {
32660 /* parser/parser_prod.nit:5981 */
32661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32662 if (UNTAG_Bool(REGB0)) {
32663 } else {
32664 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32665 if (UNTAG_Bool(REGB1)) {
32666 REGB1 = TAG_Bool(0);
32667 REGB0 = REGB1;
32668 } else {
32669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32670 REGB0 = REGB1;
32671 }
32672 }
32673 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32674 if (UNTAG_Bool(REGB0)) {
32675 /* parser/parser_prod.nit:5982 */
32676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32677 if (UNTAG_Bool(REGB0)) {
32678 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5982);
32679 }
32680 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32681 /* parser/parser_prod.nit:5983 */
32682 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*/;
32683 if (UNTAG_Bool(REGB0)) {
32684 } else {
32685 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5983);
32686 }
32687 /* parser/parser_prod.nit:5984 */
32688 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
32689 } else {
32690 /* parser/parser_prod.nit:5986 */
32691 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
32692 }
32693 /* parser/parser_prod.nit:5988 */
32694 goto label1;
32695 }
32696 /* parser/parser_prod.nit:5990 */
32697 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
32698 if (UNTAG_Bool(REGB0)) {
32699 } else {
32700 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5990);
32701 }
32702 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
32703 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32704 if (UNTAG_Bool(REGB0)) {
32705 } else {
32706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32707 REGB0 = REGB1;
32708 }
32709 if (UNTAG_Bool(REGB0)) {
32710 /* parser/parser_prod.nit:5991 */
32711 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32712 if (UNTAG_Bool(REGB0)) {
32713 } else {
32714 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32715 if (UNTAG_Bool(REGB1)) {
32716 REGB1 = TAG_Bool(0);
32717 REGB0 = REGB1;
32718 } else {
32719 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32720 REGB0 = REGB1;
32721 }
32722 }
32723 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32724 if (UNTAG_Bool(REGB0)) {
32725 /* parser/parser_prod.nit:5992 */
32726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32727 if (UNTAG_Bool(REGB0)) {
32728 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5992);
32729 }
32730 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32731 /* parser/parser_prod.nit:5993 */
32732 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*/;
32733 if (UNTAG_Bool(REGB0)) {
32734 } else {
32735 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5993);
32736 }
32737 /* parser/parser_prod.nit:5994 */
32738 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
32739 } else {
32740 /* parser/parser_prod.nit:5996 */
32741 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5996);
32742 }
32743 /* parser/parser_prod.nit:5998 */
32744 goto label1;
32745 }
32746 /* parser/parser_prod.nit:6000 */
32747 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32748 if (UNTAG_Bool(REGB0)) {
32749 } else {
32750 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6000);
32751 }
32752 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
32753 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32754 if (UNTAG_Bool(REGB0)) {
32755 } else {
32756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32757 REGB0 = REGB1;
32758 }
32759 if (UNTAG_Bool(REGB0)) {
32760 /* parser/parser_prod.nit:6001 */
32761 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32762 if (UNTAG_Bool(REGB0)) {
32763 } else {
32764 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32765 if (UNTAG_Bool(REGB1)) {
32766 REGB1 = TAG_Bool(0);
32767 REGB0 = REGB1;
32768 } else {
32769 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32770 REGB0 = REGB1;
32771 }
32772 }
32773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32774 if (UNTAG_Bool(REGB0)) {
32775 /* parser/parser_prod.nit:6002 */
32776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32777 if (UNTAG_Bool(REGB0)) {
32778 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6002);
32779 }
32780 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32781 /* parser/parser_prod.nit:6003 */
32782 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
32783 if (UNTAG_Bool(REGB0)) {
32784 } else {
32785 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6003);
32786 }
32787 /* parser/parser_prod.nit:6004 */
32788 ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
32789 } else {
32790 /* parser/parser_prod.nit:6006 */
32791 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6006);
32792 }
32793 /* parser/parser_prod.nit:6008 */
32794 goto label1;
32795 }
32796 label1: while(0);
32797 stack_frame_head = fra.me.prev;
32798 return;
32799 }
32800 static const char LOCATE_parser___parser_prod___ASuperExpr___visit_all[] = "parser_prod::ASuperExpr::(parser_prod::ANode::visit_all)";
32801 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
32802 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32803 val_t REGB0;
32804 val_t REGB1;
32805 val_t tmp;
32806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32807 fra.me.file = LOCATE_parser___parser_prod;
32808 fra.me.line = 6012;
32809 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
32810 fra.me.has_broke = 0;
32811 fra.me.REG_size = 4;
32812 fra.me.nitni_local_ref_head = NULL;
32813 fra.me.REG[0] = NIT_NULL;
32814 fra.me.REG[1] = NIT_NULL;
32815 fra.me.REG[2] = NIT_NULL;
32816 fra.me.REG[3] = NIT_NULL;
32817 fra.me.REG[0] = p0;
32818 fra.me.REG[1] = p1;
32819 /* parser/parser_prod.nit:6012 */
32820 fra.me.REG[2] = fra.me.REG[0];
32821 /* parser/parser_prod.nit:6014 */
32822 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
32823 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32824 if (UNTAG_Bool(REGB0)) {
32825 } else {
32826 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32827 if (UNTAG_Bool(REGB1)) {
32828 REGB1 = TAG_Bool(0);
32829 REGB0 = REGB1;
32830 } else {
32831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
32832 REGB0 = REGB1;
32833 }
32834 }
32835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32836 if (UNTAG_Bool(REGB0)) {
32837 /* parser/parser_prod.nit:6015 */
32838 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
32839 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*/;
32840 if (UNTAG_Bool(REGB0)) {
32841 } else {
32842 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6015);
32843 }
32844 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
32845 }
32846 /* parser/parser_prod.nit:6017 */
32847 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
32848 if (UNTAG_Bool(REGB0)) {
32849 } else {
32850 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 6017);
32851 }
32852 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
32853 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
32854 /* parser/parser_prod.nit:6018 */
32855 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
32856 if (UNTAG_Bool(REGB0)) {
32857 } else {
32858 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6018);
32859 }
32860 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
32861 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32862 stack_frame_head = fra.me.prev;
32863 return;
32864 }
32865 static const char LOCATE_parser___parser_prod___AInitExpr___empty_init[] = "parser_prod::AInitExpr::empty_init";
32866 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
32867 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
32868 struct {struct stack_frame_t me;} fra;
32869 val_t tmp;
32870 if (init_table[itpos197]) return;
32871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32872 fra.me.file = LOCATE_parser___parser_prod;
32873 fra.me.line = 6022;
32874 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
32875 fra.me.has_broke = 0;
32876 fra.me.REG_size = 1;
32877 fra.me.nitni_local_ref_head = NULL;
32878 fra.me.REG[0] = NIT_NULL;
32879 fra.me.REG[0] = p0;
32880 stack_frame_head = fra.me.prev;
32881 init_table[itpos197] = 1;
32882 return;
32883 }
32884 static const char LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr[] = "parser_prod::AInitExpr::init_ainitexpr";
32885 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32886 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
32887 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32888 val_t REGB0;
32889 val_t tmp;
32890 if (init_table[itpos198]) return;
32891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32892 fra.me.file = LOCATE_parser___parser_prod;
32893 fra.me.line = 6024;
32894 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
32895 fra.me.has_broke = 0;
32896 fra.me.REG_size = 5;
32897 fra.me.nitni_local_ref_head = NULL;
32898 fra.me.REG[0] = NIT_NULL;
32899 fra.me.REG[1] = NIT_NULL;
32900 fra.me.REG[2] = NIT_NULL;
32901 fra.me.REG[3] = NIT_NULL;
32902 fra.me.REG[4] = NIT_NULL;
32903 fra.me.REG[0] = p0;
32904 fra.me.REG[1] = p1;
32905 fra.me.REG[2] = p2;
32906 fra.me.REG[3] = p3;
32907 /* parser/parser_prod.nit:6024 */
32908 fra.me.REG[4] = fra.me.REG[0];
32909 /* parser/parser_prod.nit:6030 */
32910 CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32911 /* parser/parser_prod.nit:6031 */
32912 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32913 if (UNTAG_Bool(REGB0)) {
32914 } else {
32915 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6031);
32916 }
32917 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
32918 /* parser/parser_prod.nit:6032 */
32919 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32920 if (UNTAG_Bool(REGB0)) {
32921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6032);
32922 }
32923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32924 /* parser/parser_prod.nit:6033 */
32925 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32926 if (UNTAG_Bool(REGB0)) {
32927 } else {
32928 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6033);
32929 }
32930 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
32931 /* parser/parser_prod.nit:6034 */
32932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32933 if (UNTAG_Bool(REGB0)) {
32934 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6034);
32935 }
32936 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
32937 /* parser/parser_prod.nit:6035 */
32938 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32939 if (UNTAG_Bool(REGB0)) {
32940 } else {
32941 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6035);
32942 }
32943 ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
32944 /* parser/parser_prod.nit:6036 */
32945 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32946 if (UNTAG_Bool(REGB0)) {
32947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6036);
32948 }
32949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
32950 stack_frame_head = fra.me.prev;
32951 init_table[itpos198] = 1;
32952 return;
32953 }
32954 static const char LOCATE_parser___parser_prod___AInitExpr___replace_child[] = "parser_prod::AInitExpr::(parser_prod::ANode::replace_child)";
32955 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
32956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32957 val_t REGB0;
32958 val_t REGB1;
32959 val_t tmp;
32960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32961 fra.me.file = LOCATE_parser___parser_prod;
32962 fra.me.line = 6039;
32963 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
32964 fra.me.has_broke = 0;
32965 fra.me.REG_size = 4;
32966 fra.me.nitni_local_ref_head = NULL;
32967 fra.me.REG[0] = NIT_NULL;
32968 fra.me.REG[1] = NIT_NULL;
32969 fra.me.REG[2] = NIT_NULL;
32970 fra.me.REG[3] = NIT_NULL;
32971 fra.me.REG[0] = p0;
32972 fra.me.REG[1] = p1;
32973 fra.me.REG[2] = p2;
32974 /* parser/parser_prod.nit:6041 */
32975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32976 if (UNTAG_Bool(REGB0)) {
32977 } else {
32978 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6041);
32979 }
32980 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32981 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32982 if (UNTAG_Bool(REGB0)) {
32983 } else {
32984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32985 REGB0 = REGB1;
32986 }
32987 if (UNTAG_Bool(REGB0)) {
32988 /* parser/parser_prod.nit:6042 */
32989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32990 if (UNTAG_Bool(REGB0)) {
32991 } else {
32992 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32993 if (UNTAG_Bool(REGB1)) {
32994 REGB1 = TAG_Bool(0);
32995 REGB0 = REGB1;
32996 } else {
32997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32998 REGB0 = REGB1;
32999 }
33000 }
33001 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33002 if (UNTAG_Bool(REGB0)) {
33003 /* parser/parser_prod.nit:6043 */
33004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33005 if (UNTAG_Bool(REGB0)) {
33006 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6043);
33007 }
33008 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33009 /* parser/parser_prod.nit:6044 */
33010 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33011 if (UNTAG_Bool(REGB0)) {
33012 } else {
33013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6044);
33014 }
33015 /* parser/parser_prod.nit:6045 */
33016 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33017 } else {
33018 /* parser/parser_prod.nit:6047 */
33019 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6047);
33020 }
33021 /* parser/parser_prod.nit:6049 */
33022 goto label1;
33023 }
33024 /* parser/parser_prod.nit:6051 */
33025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
33026 if (UNTAG_Bool(REGB0)) {
33027 } else {
33028 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 6051);
33029 }
33030 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
33031 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33032 if (UNTAG_Bool(REGB0)) {
33033 } else {
33034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33035 REGB0 = REGB1;
33036 }
33037 if (UNTAG_Bool(REGB0)) {
33038 /* parser/parser_prod.nit:6052 */
33039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33040 if (UNTAG_Bool(REGB0)) {
33041 } else {
33042 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33043 if (UNTAG_Bool(REGB1)) {
33044 REGB1 = TAG_Bool(0);
33045 REGB0 = REGB1;
33046 } else {
33047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33048 REGB0 = REGB1;
33049 }
33050 }
33051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33052 if (UNTAG_Bool(REGB0)) {
33053 /* parser/parser_prod.nit:6053 */
33054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33055 if (UNTAG_Bool(REGB0)) {
33056 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6053);
33057 }
33058 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33059 /* parser/parser_prod.nit:6054 */
33060 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*/;
33061 if (UNTAG_Bool(REGB0)) {
33062 } else {
33063 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6054);
33064 }
33065 /* parser/parser_prod.nit:6055 */
33066 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
33067 } else {
33068 /* parser/parser_prod.nit:6057 */
33069 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6057);
33070 }
33071 /* parser/parser_prod.nit:6059 */
33072 goto label1;
33073 }
33074 /* parser/parser_prod.nit:6061 */
33075 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33076 if (UNTAG_Bool(REGB0)) {
33077 } else {
33078 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6061);
33079 }
33080 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
33081 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33082 if (UNTAG_Bool(REGB0)) {
33083 } else {
33084 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33085 REGB0 = REGB1;
33086 }
33087 if (UNTAG_Bool(REGB0)) {
33088 /* parser/parser_prod.nit:6062 */
33089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33090 if (UNTAG_Bool(REGB0)) {
33091 } else {
33092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33093 if (UNTAG_Bool(REGB1)) {
33094 REGB1 = TAG_Bool(0);
33095 REGB0 = REGB1;
33096 } else {
33097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33098 REGB0 = REGB1;
33099 }
33100 }
33101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33102 if (UNTAG_Bool(REGB0)) {
33103 /* parser/parser_prod.nit:6063 */
33104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33105 if (UNTAG_Bool(REGB0)) {
33106 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6063);
33107 }
33108 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33109 /* parser/parser_prod.nit:6064 */
33110 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33111 if (UNTAG_Bool(REGB0)) {
33112 } else {
33113 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6064);
33114 }
33115 /* parser/parser_prod.nit:6065 */
33116 ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33117 } else {
33118 /* parser/parser_prod.nit:6067 */
33119 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6067);
33120 }
33121 /* parser/parser_prod.nit:6069 */
33122 goto label1;
33123 }
33124 label1: while(0);
33125 stack_frame_head = fra.me.prev;
33126 return;
33127 }
33128 static const char LOCATE_parser___parser_prod___AInitExpr___visit_all[] = "parser_prod::AInitExpr::(parser_prod::ANode::visit_all)";
33129 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
33130 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33131 val_t REGB0;
33132 val_t tmp;
33133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33134 fra.me.file = LOCATE_parser___parser_prod;
33135 fra.me.line = 6073;
33136 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
33137 fra.me.has_broke = 0;
33138 fra.me.REG_size = 3;
33139 fra.me.nitni_local_ref_head = NULL;
33140 fra.me.REG[0] = NIT_NULL;
33141 fra.me.REG[1] = NIT_NULL;
33142 fra.me.REG[2] = NIT_NULL;
33143 fra.me.REG[0] = p0;
33144 fra.me.REG[1] = p1;
33145 /* parser/parser_prod.nit:6075 */
33146 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33147 if (UNTAG_Bool(REGB0)) {
33148 } else {
33149 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6075);
33150 }
33151 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33152 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33153 /* parser/parser_prod.nit:6076 */
33154 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
33155 if (UNTAG_Bool(REGB0)) {
33156 } else {
33157 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 6076);
33158 }
33159 fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
33160 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33161 /* parser/parser_prod.nit:6077 */
33162 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33163 if (UNTAG_Bool(REGB0)) {
33164 } else {
33165 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6077);
33166 }
33167 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
33168 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33169 stack_frame_head = fra.me.prev;
33170 return;
33171 }
33172 static const char LOCATE_parser___parser_prod___ABraExpr___empty_init[] = "parser_prod::ABraExpr::empty_init";
33173 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
33174 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
33175 struct {struct stack_frame_t me;} fra;
33176 val_t tmp;
33177 if (init_table[itpos199]) return;
33178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33179 fra.me.file = LOCATE_parser___parser_prod;
33180 fra.me.line = 6081;
33181 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
33182 fra.me.has_broke = 0;
33183 fra.me.REG_size = 1;
33184 fra.me.nitni_local_ref_head = NULL;
33185 fra.me.REG[0] = NIT_NULL;
33186 fra.me.REG[0] = p0;
33187 stack_frame_head = fra.me.prev;
33188 init_table[itpos199] = 1;
33189 return;
33190 }
33191 static const char LOCATE_parser___parser_prod___ABraExpr___init_abraexpr[] = "parser_prod::ABraExpr::init_abraexpr";
33192 void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
33193 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
33194 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33195 val_t REGB0;
33196 val_t tmp;
33197 if (init_table[itpos200]) return;
33198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33199 fra.me.file = LOCATE_parser___parser_prod;
33200 fra.me.line = 6083;
33201 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
33202 fra.me.has_broke = 0;
33203 fra.me.REG_size = 5;
33204 fra.me.nitni_local_ref_head = NULL;
33205 fra.me.REG[0] = NIT_NULL;
33206 fra.me.REG[1] = NIT_NULL;
33207 fra.me.REG[2] = NIT_NULL;
33208 fra.me.REG[3] = NIT_NULL;
33209 fra.me.REG[4] = NIT_NULL;
33210 fra.me.REG[0] = p0;
33211 fra.me.REG[1] = p1;
33212 fra.me.REG[2] = p2;
33213 fra.me.REG[3] = p3;
33214 /* parser/parser_prod.nit:6083 */
33215 fra.me.REG[4] = fra.me.REG[0];
33216 /* parser/parser_prod.nit:6089 */
33217 CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
33218 /* parser/parser_prod.nit:6090 */
33219 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33220 if (UNTAG_Bool(REGB0)) {
33221 } else {
33222 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6090);
33223 }
33224 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
33225 /* parser/parser_prod.nit:6091 */
33226 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33227 if (UNTAG_Bool(REGB0)) {
33228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6091);
33229 }
33230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
33231 /* parser/parser_prod.nit:6092 */
33232 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33233 if (UNTAG_Bool(REGB0)) {
33234 } else {
33235 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6092);
33236 }
33237 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
33238 /* parser/parser_prod.nit:6093 */
33239 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33240 if (UNTAG_Bool(REGB0)) {
33241 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6093);
33242 }
33243 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
33244 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_1));
33245 stack_frame_head = fra.me.prev;
33246 init_table[itpos200] = 1;
33247 return;
33248 }
33249 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){
33250 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33251 val_t REGB0;
33252 fun_t CREG[1];
33253 val_t tmp;
33254 /* parser/parser_prod.nit:6094 */
33255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33256 fra.me.file = LOCATE_parser___parser_prod;
33257 fra.me.line = 0;
33258 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
33259 fra.me.has_broke = 0;
33260 fra.me.REG_size = 2;
33261 fra.me.nitni_local_ref_head = NULL;
33262 fra.me.REG[0] = NIT_NULL;
33263 fra.me.REG[1] = NIT_NULL;
33264 fra.me.closure_ctx = closctx_param;
33265 fra.me.closure_funs = CREG;
33266 fra.me.REG[0] = p0;
33267 CREG[0] = clos_fun0;
33268 /* parser/parser_prod.nit:6095 */
33269 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
33270 if (UNTAG_Bool(REGB0)) {
33271 } else {
33272 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6095);
33273 }
33274 /* parser/parser_prod.nit:6096 */
33275 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
33276 if (UNTAG_Bool(REGB0)) {
33277 } else {
33278 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6096);
33279 }
33280 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
33281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33282 /* parser/parser_prod.nit:6097 */
33283 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
33284 stack_frame_head = fra.me.prev;
33285 return;
33286 }
33287 static const char LOCATE_parser___parser_prod___ABraExpr___replace_child[] = "parser_prod::ABraExpr::(parser_prod::ANode::replace_child)";
33288 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
33289 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33290 val_t REGB0;
33291 val_t REGB1;
33292 val_t REGB2;
33293 val_t REGB3;
33294 val_t REGB4;
33295 val_t tmp;
33296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33297 fra.me.file = LOCATE_parser___parser_prod;
33298 fra.me.line = 6101;
33299 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
33300 fra.me.has_broke = 0;
33301 fra.me.REG_size = 4;
33302 fra.me.nitni_local_ref_head = NULL;
33303 fra.me.REG[0] = NIT_NULL;
33304 fra.me.REG[1] = NIT_NULL;
33305 fra.me.REG[2] = NIT_NULL;
33306 fra.me.REG[3] = NIT_NULL;
33307 fra.me.REG[0] = p0;
33308 fra.me.REG[1] = p1;
33309 fra.me.REG[2] = p2;
33310 /* parser/parser_prod.nit:6103 */
33311 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33312 if (UNTAG_Bool(REGB0)) {
33313 } else {
33314 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6103);
33315 }
33316 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33317 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33318 if (UNTAG_Bool(REGB0)) {
33319 } else {
33320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33321 REGB0 = REGB1;
33322 }
33323 if (UNTAG_Bool(REGB0)) {
33324 /* parser/parser_prod.nit:6104 */
33325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33326 if (UNTAG_Bool(REGB0)) {
33327 } else {
33328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33329 if (UNTAG_Bool(REGB1)) {
33330 REGB1 = TAG_Bool(0);
33331 REGB0 = REGB1;
33332 } else {
33333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33334 REGB0 = REGB1;
33335 }
33336 }
33337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33338 if (UNTAG_Bool(REGB0)) {
33339 /* parser/parser_prod.nit:6105 */
33340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33341 if (UNTAG_Bool(REGB0)) {
33342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6105);
33343 }
33344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33345 /* parser/parser_prod.nit:6106 */
33346 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33347 if (UNTAG_Bool(REGB0)) {
33348 } else {
33349 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6106);
33350 }
33351 /* parser/parser_prod.nit:6107 */
33352 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33353 } else {
33354 /* parser/parser_prod.nit:6109 */
33355 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6109);
33356 }
33357 /* parser/parser_prod.nit:6111 */
33358 goto label1;
33359 }
33360 /* parser/parser_prod.nit:6113 */
33361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33362 if (UNTAG_Bool(REGB0)) {
33363 } else {
33364 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6113);
33365 }
33366 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33367 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33368 if (UNTAG_Bool(REGB0)) {
33369 } else {
33370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33371 REGB0 = REGB1;
33372 }
33373 if (UNTAG_Bool(REGB0)) {
33374 /* parser/parser_prod.nit:6114 */
33375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33376 if (UNTAG_Bool(REGB0)) {
33377 } else {
33378 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33379 if (UNTAG_Bool(REGB1)) {
33380 REGB1 = TAG_Bool(0);
33381 REGB0 = REGB1;
33382 } else {
33383 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33384 REGB0 = REGB1;
33385 }
33386 }
33387 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33388 if (UNTAG_Bool(REGB0)) {
33389 /* parser/parser_prod.nit:6115 */
33390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33391 if (UNTAG_Bool(REGB0)) {
33392 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6115);
33393 }
33394 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33395 /* parser/parser_prod.nit:6116 */
33396 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33397 if (UNTAG_Bool(REGB0)) {
33398 } else {
33399 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6116);
33400 }
33401 /* parser/parser_prod.nit:6117 */
33402 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33403 } else {
33404 /* parser/parser_prod.nit:6119 */
33405 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6119);
33406 }
33407 /* parser/parser_prod.nit:6121 */
33408 goto label1;
33409 }
33410 /* parser/parser_prod.nit:6123 */
33411 REGB0 = TAG_Int(0);
33412 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33413 if (UNTAG_Bool(REGB1)) {
33414 } else {
33415 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6123);
33416 }
33417 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
33418 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33419 /* ../lib/standard/kernel.nit:355 */
33420 while(1) {
33421 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33422 if (UNTAG_Bool(REGB2)) {
33423 } else {
33424 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33425 }
33426 /* ../lib/standard/kernel.nit:235 */
33427 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33428 /* ../lib/standard/kernel.nit:355 */
33429 if (UNTAG_Bool(REGB2)) {
33430 /* parser/parser_prod.nit:6123 */
33431 REGB2 = REGB0;
33432 /* parser/parser_prod.nit:6124 */
33433 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33434 if (UNTAG_Bool(REGB3)) {
33435 } else {
33436 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6124);
33437 }
33438 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
33439 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33440 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33441 if (UNTAG_Bool(REGB3)) {
33442 } else {
33443 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33444 if (UNTAG_Bool(REGB4)) {
33445 REGB4 = TAG_Bool(0);
33446 REGB3 = REGB4;
33447 } else {
33448 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33449 REGB3 = REGB4;
33450 }
33451 }
33452 if (UNTAG_Bool(REGB3)) {
33453 /* parser/parser_prod.nit:6125 */
33454 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33455 if (UNTAG_Bool(REGB3)) {
33456 } else {
33457 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33458 if (UNTAG_Bool(REGB4)) {
33459 REGB4 = TAG_Bool(0);
33460 REGB3 = REGB4;
33461 } else {
33462 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33463 REGB3 = REGB4;
33464 }
33465 }
33466 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33467 if (UNTAG_Bool(REGB3)) {
33468 /* parser/parser_prod.nit:6126 */
33469 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*/;
33470 if (UNTAG_Bool(REGB3)) {
33471 } else {
33472 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6126);
33473 }
33474 /* parser/parser_prod.nit:6127 */
33475 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33476 if (UNTAG_Bool(REGB3)) {
33477 } else {
33478 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6127);
33479 }
33480 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
33481 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33482 /* parser/parser_prod.nit:6128 */
33483 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33484 if (UNTAG_Bool(REGB3)) {
33485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6128);
33486 }
33487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33488 } else {
33489 /* parser/parser_prod.nit:6130 */
33490 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33491 if (UNTAG_Bool(REGB3)) {
33492 } else {
33493 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6130);
33494 }
33495 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
33496 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33497 }
33498 /* parser/parser_prod.nit:6132 */
33499 goto label1;
33500 }
33501 /* ../lib/standard/kernel.nit:357 */
33502 REGB2 = TAG_Int(1);
33503 /* ../lib/standard/kernel.nit:238 */
33504 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33505 /* ../lib/standard/kernel.nit:357 */
33506 REGB0 = REGB2;
33507 } else {
33508 /* ../lib/standard/kernel.nit:355 */
33509 goto label2;
33510 }
33511 }
33512 label2: while(0);
33513 label1: while(0);
33514 stack_frame_head = fra.me.prev;
33515 return;
33516 }
33517 static const char LOCATE_parser___parser_prod___ABraExpr___visit_all[] = "parser_prod::ABraExpr::(parser_prod::ANode::visit_all)";
33518 void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
33519 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33520 val_t REGB0;
33521 val_t tmp;
33522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33523 fra.me.file = LOCATE_parser___parser_prod;
33524 fra.me.line = 6137;
33525 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
33526 fra.me.has_broke = 0;
33527 fra.me.REG_size = 3;
33528 fra.me.nitni_local_ref_head = NULL;
33529 fra.me.REG[0] = NIT_NULL;
33530 fra.me.REG[1] = NIT_NULL;
33531 fra.me.REG[2] = NIT_NULL;
33532 fra.me.REG[0] = p0;
33533 fra.me.REG[1] = p1;
33534 /* parser/parser_prod.nit:6139 */
33535 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33536 if (UNTAG_Bool(REGB0)) {
33537 } else {
33538 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6139);
33539 }
33540 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33541 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33542 /* parser/parser_prod.nit:6140 */
33543 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33544 if (UNTAG_Bool(REGB0)) {
33545 } else {
33546 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6140);
33547 }
33548 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33549 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33550 /* parser/parser_prod.nit:6141 */
33551 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33552 if (UNTAG_Bool(REGB0)) {
33553 } else {
33554 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6141);
33555 }
33556 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
33557 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_1));
33558 stack_frame_head = fra.me.prev;
33559 return;
33560 }
33561 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){
33562 struct {struct stack_frame_t me;} fra;
33563 fun_t CREG[1];
33564 val_t tmp;
33565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33566 fra.me.file = LOCATE_parser___parser_prod;
33567 fra.me.line = 0;
33568 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
33569 fra.me.has_broke = 0;
33570 fra.me.REG_size = 1;
33571 fra.me.nitni_local_ref_head = NULL;
33572 fra.me.REG[0] = NIT_NULL;
33573 fra.me.closure_ctx = closctx_param;
33574 fra.me.closure_funs = CREG;
33575 fra.me.REG[0] = p0;
33576 CREG[0] = clos_fun0;
33577 /* parser/parser_prod.nit:6142 */
33578 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33579 stack_frame_head = fra.me.prev;
33580 return;
33581 }
33582 static const char LOCATE_parser___parser_prod___ABraAssignExpr___empty_init[] = "parser_prod::ABraAssignExpr::empty_init";
33583 void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
33584 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
33585 struct {struct stack_frame_t me;} fra;
33586 val_t tmp;
33587 if (init_table[itpos201]) return;
33588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33589 fra.me.file = LOCATE_parser___parser_prod;
33590 fra.me.line = 6147;
33591 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
33592 fra.me.has_broke = 0;
33593 fra.me.REG_size = 1;
33594 fra.me.nitni_local_ref_head = NULL;
33595 fra.me.REG[0] = NIT_NULL;
33596 fra.me.REG[0] = p0;
33597 stack_frame_head = fra.me.prev;
33598 init_table[itpos201] = 1;
33599 return;
33600 }
33601 static const char LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr[] = "parser_prod::ABraAssignExpr::init_abraassignexpr";
33602 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){
33603 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
33604 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33605 val_t REGB0;
33606 val_t tmp;
33607 if (init_table[itpos202]) return;
33608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33609 fra.me.file = LOCATE_parser___parser_prod;
33610 fra.me.line = 6149;
33611 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
33612 fra.me.has_broke = 0;
33613 fra.me.REG_size = 6;
33614 fra.me.nitni_local_ref_head = NULL;
33615 fra.me.REG[0] = NIT_NULL;
33616 fra.me.REG[1] = NIT_NULL;
33617 fra.me.REG[2] = NIT_NULL;
33618 fra.me.REG[3] = NIT_NULL;
33619 fra.me.REG[4] = NIT_NULL;
33620 fra.me.REG[5] = NIT_NULL;
33621 fra.me.REG[0] = p0;
33622 fra.me.REG[1] = p1;
33623 fra.me.REG[2] = p2;
33624 fra.me.REG[3] = p3;
33625 fra.me.REG[4] = p4;
33626 /* parser/parser_prod.nit:6149 */
33627 fra.me.REG[5] = fra.me.REG[0];
33628 /* parser/parser_prod.nit:6156 */
33629 CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
33630 /* parser/parser_prod.nit:6157 */
33631 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33632 if (UNTAG_Bool(REGB0)) {
33633 } else {
33634 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6157);
33635 }
33636 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
33637 /* parser/parser_prod.nit:6158 */
33638 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33639 if (UNTAG_Bool(REGB0)) {
33640 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6158);
33641 }
33642 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
33643 /* parser/parser_prod.nit:6159 */
33644 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33645 if (UNTAG_Bool(REGB0)) {
33646 } else {
33647 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6159);
33648 }
33649 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
33650 /* parser/parser_prod.nit:6160 */
33651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33652 if (UNTAG_Bool(REGB0)) {
33653 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
33654 }
33655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
33656 /* parser/parser_prod.nit:6161 */
33657 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33658 if (UNTAG_Bool(REGB0)) {
33659 } else {
33660 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6161);
33661 }
33662 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
33663 /* parser/parser_prod.nit:6162 */
33664 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33665 if (UNTAG_Bool(REGB0)) {
33666 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6162);
33667 }
33668 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
33669 /* parser/parser_prod.nit:6163 */
33670 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33671 if (UNTAG_Bool(REGB0)) {
33672 } else {
33673 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6163);
33674 }
33675 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
33676 /* parser/parser_prod.nit:6164 */
33677 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33678 if (UNTAG_Bool(REGB0)) {
33679 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6164);
33680 }
33681 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
33682 stack_frame_head = fra.me.prev;
33683 init_table[itpos202] = 1;
33684 return;
33685 }
33686 static const char LOCATE_parser___parser_prod___ABraAssignExpr___replace_child[] = "parser_prod::ABraAssignExpr::(parser_prod::ANode::replace_child)";
33687 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33688 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33689 val_t REGB0;
33690 val_t REGB1;
33691 val_t tmp;
33692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33693 fra.me.file = LOCATE_parser___parser_prod;
33694 fra.me.line = 6167;
33695 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
33696 fra.me.has_broke = 0;
33697 fra.me.REG_size = 4;
33698 fra.me.nitni_local_ref_head = NULL;
33699 fra.me.REG[0] = NIT_NULL;
33700 fra.me.REG[1] = NIT_NULL;
33701 fra.me.REG[2] = NIT_NULL;
33702 fra.me.REG[3] = NIT_NULL;
33703 fra.me.REG[0] = p0;
33704 fra.me.REG[1] = p1;
33705 fra.me.REG[2] = p2;
33706 /* parser/parser_prod.nit:6169 */
33707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33708 if (UNTAG_Bool(REGB0)) {
33709 } else {
33710 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6169);
33711 }
33712 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33713 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33714 if (UNTAG_Bool(REGB0)) {
33715 } else {
33716 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33717 REGB0 = REGB1;
33718 }
33719 if (UNTAG_Bool(REGB0)) {
33720 /* parser/parser_prod.nit:6170 */
33721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33722 if (UNTAG_Bool(REGB0)) {
33723 } else {
33724 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33725 if (UNTAG_Bool(REGB1)) {
33726 REGB1 = TAG_Bool(0);
33727 REGB0 = REGB1;
33728 } else {
33729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33730 REGB0 = REGB1;
33731 }
33732 }
33733 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33734 if (UNTAG_Bool(REGB0)) {
33735 /* parser/parser_prod.nit:6171 */
33736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33737 if (UNTAG_Bool(REGB0)) {
33738 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6171);
33739 }
33740 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33741 /* parser/parser_prod.nit:6172 */
33742 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33743 if (UNTAG_Bool(REGB0)) {
33744 } else {
33745 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6172);
33746 }
33747 /* parser/parser_prod.nit:6173 */
33748 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33749 } else {
33750 /* parser/parser_prod.nit:6175 */
33751 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6175);
33752 }
33753 /* parser/parser_prod.nit:6177 */
33754 goto label1;
33755 }
33756 /* parser/parser_prod.nit:6179 */
33757 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33758 if (UNTAG_Bool(REGB0)) {
33759 } else {
33760 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6179);
33761 }
33762 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33763 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33764 if (UNTAG_Bool(REGB0)) {
33765 } else {
33766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33767 REGB0 = REGB1;
33768 }
33769 if (UNTAG_Bool(REGB0)) {
33770 /* parser/parser_prod.nit:6180 */
33771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33772 if (UNTAG_Bool(REGB0)) {
33773 } else {
33774 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33775 if (UNTAG_Bool(REGB1)) {
33776 REGB1 = TAG_Bool(0);
33777 REGB0 = REGB1;
33778 } else {
33779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33780 REGB0 = REGB1;
33781 }
33782 }
33783 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33784 if (UNTAG_Bool(REGB0)) {
33785 /* parser/parser_prod.nit:6181 */
33786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33787 if (UNTAG_Bool(REGB0)) {
33788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6181);
33789 }
33790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33791 /* parser/parser_prod.nit:6182 */
33792 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33793 if (UNTAG_Bool(REGB0)) {
33794 } else {
33795 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6182);
33796 }
33797 /* parser/parser_prod.nit:6183 */
33798 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33799 } else {
33800 /* parser/parser_prod.nit:6185 */
33801 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6185);
33802 }
33803 /* parser/parser_prod.nit:6187 */
33804 goto label1;
33805 }
33806 /* parser/parser_prod.nit:6189 */
33807 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33808 if (UNTAG_Bool(REGB0)) {
33809 } else {
33810 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6189);
33811 }
33812 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33813 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33814 if (UNTAG_Bool(REGB0)) {
33815 } else {
33816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33817 REGB0 = REGB1;
33818 }
33819 if (UNTAG_Bool(REGB0)) {
33820 /* parser/parser_prod.nit:6190 */
33821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33822 if (UNTAG_Bool(REGB0)) {
33823 } else {
33824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33825 if (UNTAG_Bool(REGB1)) {
33826 REGB1 = TAG_Bool(0);
33827 REGB0 = REGB1;
33828 } else {
33829 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33830 REGB0 = REGB1;
33831 }
33832 }
33833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33834 if (UNTAG_Bool(REGB0)) {
33835 /* parser/parser_prod.nit:6191 */
33836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33837 if (UNTAG_Bool(REGB0)) {
33838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6191);
33839 }
33840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33841 /* parser/parser_prod.nit:6192 */
33842 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*/;
33843 if (UNTAG_Bool(REGB0)) {
33844 } else {
33845 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6192);
33846 }
33847 /* parser/parser_prod.nit:6193 */
33848 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
33849 } else {
33850 /* parser/parser_prod.nit:6195 */
33851 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6195);
33852 }
33853 /* parser/parser_prod.nit:6197 */
33854 goto label1;
33855 }
33856 /* parser/parser_prod.nit:6199 */
33857 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33858 if (UNTAG_Bool(REGB0)) {
33859 } else {
33860 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6199);
33861 }
33862 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33863 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33864 if (UNTAG_Bool(REGB0)) {
33865 } else {
33866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33867 REGB0 = REGB1;
33868 }
33869 if (UNTAG_Bool(REGB0)) {
33870 /* parser/parser_prod.nit:6200 */
33871 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33872 if (UNTAG_Bool(REGB0)) {
33873 } else {
33874 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33875 if (UNTAG_Bool(REGB1)) {
33876 REGB1 = TAG_Bool(0);
33877 REGB0 = REGB1;
33878 } else {
33879 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33880 REGB0 = REGB1;
33881 }
33882 }
33883 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33884 if (UNTAG_Bool(REGB0)) {
33885 /* parser/parser_prod.nit:6201 */
33886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33887 if (UNTAG_Bool(REGB0)) {
33888 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6201);
33889 }
33890 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33891 /* parser/parser_prod.nit:6202 */
33892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33893 if (UNTAG_Bool(REGB0)) {
33894 } else {
33895 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6202);
33896 }
33897 /* parser/parser_prod.nit:6203 */
33898 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33899 } else {
33900 /* parser/parser_prod.nit:6205 */
33901 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6205);
33902 }
33903 /* parser/parser_prod.nit:6207 */
33904 goto label1;
33905 }
33906 label1: while(0);
33907 stack_frame_head = fra.me.prev;
33908 return;
33909 }
33910 static const char LOCATE_parser___parser_prod___ABraAssignExpr___visit_all[] = "parser_prod::ABraAssignExpr::(parser_prod::ANode::visit_all)";
33911 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
33912 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33913 val_t REGB0;
33914 val_t tmp;
33915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33916 fra.me.file = LOCATE_parser___parser_prod;
33917 fra.me.line = 6211;
33918 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
33919 fra.me.has_broke = 0;
33920 fra.me.REG_size = 3;
33921 fra.me.nitni_local_ref_head = NULL;
33922 fra.me.REG[0] = NIT_NULL;
33923 fra.me.REG[1] = NIT_NULL;
33924 fra.me.REG[2] = NIT_NULL;
33925 fra.me.REG[0] = p0;
33926 fra.me.REG[1] = p1;
33927 /* parser/parser_prod.nit:6213 */
33928 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33929 if (UNTAG_Bool(REGB0)) {
33930 } else {
33931 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6213);
33932 }
33933 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33934 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33935 /* parser/parser_prod.nit:6214 */
33936 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33937 if (UNTAG_Bool(REGB0)) {
33938 } else {
33939 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6214);
33940 }
33941 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33942 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33943 /* parser/parser_prod.nit:6215 */
33944 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33945 if (UNTAG_Bool(REGB0)) {
33946 } else {
33947 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6215);
33948 }
33949 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33950 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33951 /* parser/parser_prod.nit:6216 */
33952 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33953 if (UNTAG_Bool(REGB0)) {
33954 } else {
33955 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6216);
33956 }
33957 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33958 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33959 stack_frame_head = fra.me.prev;
33960 return;
33961 }
33962 static const char LOCATE_parser___parser_prod___ABraReassignExpr___empty_init[] = "parser_prod::ABraReassignExpr::empty_init";
33963 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
33964 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33965 struct {struct stack_frame_t me;} fra;
33966 val_t tmp;
33967 if (init_table[itpos203]) return;
33968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33969 fra.me.file = LOCATE_parser___parser_prod;
33970 fra.me.line = 6220;
33971 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
33972 fra.me.has_broke = 0;
33973 fra.me.REG_size = 1;
33974 fra.me.nitni_local_ref_head = NULL;
33975 fra.me.REG[0] = NIT_NULL;
33976 fra.me.REG[0] = p0;
33977 stack_frame_head = fra.me.prev;
33978 init_table[itpos203] = 1;
33979 return;
33980 }
33981 static const char LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr[] = "parser_prod::ABraReassignExpr::init_abrareassignexpr";
33982 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){
33983 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33984 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33985 val_t REGB0;
33986 val_t tmp;
33987 if (init_table[itpos204]) return;
33988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33989 fra.me.file = LOCATE_parser___parser_prod;
33990 fra.me.line = 6222;
33991 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
33992 fra.me.has_broke = 0;
33993 fra.me.REG_size = 6;
33994 fra.me.nitni_local_ref_head = NULL;
33995 fra.me.REG[0] = NIT_NULL;
33996 fra.me.REG[1] = NIT_NULL;
33997 fra.me.REG[2] = NIT_NULL;
33998 fra.me.REG[3] = NIT_NULL;
33999 fra.me.REG[4] = NIT_NULL;
34000 fra.me.REG[5] = NIT_NULL;
34001 fra.me.REG[0] = p0;
34002 fra.me.REG[1] = p1;
34003 fra.me.REG[2] = p2;
34004 fra.me.REG[3] = p3;
34005 fra.me.REG[4] = p4;
34006 /* parser/parser_prod.nit:6222 */
34007 fra.me.REG[5] = fra.me.REG[0];
34008 /* parser/parser_prod.nit:6229 */
34009 CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
34010 /* parser/parser_prod.nit:6230 */
34011 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34012 if (UNTAG_Bool(REGB0)) {
34013 } else {
34014 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6230);
34015 }
34016 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
34017 /* parser/parser_prod.nit:6231 */
34018 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34019 if (UNTAG_Bool(REGB0)) {
34020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6231);
34021 }
34022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
34023 /* parser/parser_prod.nit:6232 */
34024 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34025 if (UNTAG_Bool(REGB0)) {
34026 } else {
34027 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6232);
34028 }
34029 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
34030 /* parser/parser_prod.nit:6233 */
34031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34032 if (UNTAG_Bool(REGB0)) {
34033 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6233);
34034 }
34035 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
34036 /* parser/parser_prod.nit:6234 */
34037 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34038 if (UNTAG_Bool(REGB0)) {
34039 } else {
34040 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6234);
34041 }
34042 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
34043 /* parser/parser_prod.nit:6235 */
34044 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34045 if (UNTAG_Bool(REGB0)) {
34046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6235);
34047 }
34048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
34049 /* parser/parser_prod.nit:6236 */
34050 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
34051 if (UNTAG_Bool(REGB0)) {
34052 } else {
34053 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6236);
34054 }
34055 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
34056 /* parser/parser_prod.nit:6237 */
34057 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
34058 if (UNTAG_Bool(REGB0)) {
34059 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6237);
34060 }
34061 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
34062 stack_frame_head = fra.me.prev;
34063 init_table[itpos204] = 1;
34064 return;
34065 }
34066 static const char LOCATE_parser___parser_prod___ABraReassignExpr___replace_child[] = "parser_prod::ABraReassignExpr::(parser_prod::ANode::replace_child)";
34067 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34068 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34069 val_t REGB0;
34070 val_t REGB1;
34071 val_t tmp;
34072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34073 fra.me.file = LOCATE_parser___parser_prod;
34074 fra.me.line = 6240;
34075 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
34076 fra.me.has_broke = 0;
34077 fra.me.REG_size = 4;
34078 fra.me.nitni_local_ref_head = NULL;
34079 fra.me.REG[0] = NIT_NULL;
34080 fra.me.REG[1] = NIT_NULL;
34081 fra.me.REG[2] = NIT_NULL;
34082 fra.me.REG[3] = NIT_NULL;
34083 fra.me.REG[0] = p0;
34084 fra.me.REG[1] = p1;
34085 fra.me.REG[2] = p2;
34086 /* parser/parser_prod.nit:6242 */
34087 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34088 if (UNTAG_Bool(REGB0)) {
34089 } else {
34090 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6242);
34091 }
34092 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
34093 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34094 if (UNTAG_Bool(REGB0)) {
34095 } else {
34096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34097 REGB0 = REGB1;
34098 }
34099 if (UNTAG_Bool(REGB0)) {
34100 /* parser/parser_prod.nit:6243 */
34101 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34102 if (UNTAG_Bool(REGB0)) {
34103 } else {
34104 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34105 if (UNTAG_Bool(REGB1)) {
34106 REGB1 = TAG_Bool(0);
34107 REGB0 = REGB1;
34108 } else {
34109 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34110 REGB0 = REGB1;
34111 }
34112 }
34113 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34114 if (UNTAG_Bool(REGB0)) {
34115 /* parser/parser_prod.nit:6244 */
34116 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34117 if (UNTAG_Bool(REGB0)) {
34118 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6244);
34119 }
34120 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34121 /* parser/parser_prod.nit:6245 */
34122 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34123 if (UNTAG_Bool(REGB0)) {
34124 } else {
34125 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6245);
34126 }
34127 /* parser/parser_prod.nit:6246 */
34128 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34129 } else {
34130 /* parser/parser_prod.nit:6248 */
34131 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6248);
34132 }
34133 /* parser/parser_prod.nit:6250 */
34134 goto label1;
34135 }
34136 /* parser/parser_prod.nit:6252 */
34137 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34138 if (UNTAG_Bool(REGB0)) {
34139 } else {
34140 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6252);
34141 }
34142 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
34143 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34144 if (UNTAG_Bool(REGB0)) {
34145 } else {
34146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34147 REGB0 = REGB1;
34148 }
34149 if (UNTAG_Bool(REGB0)) {
34150 /* parser/parser_prod.nit:6253 */
34151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34152 if (UNTAG_Bool(REGB0)) {
34153 } else {
34154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34155 if (UNTAG_Bool(REGB1)) {
34156 REGB1 = TAG_Bool(0);
34157 REGB0 = REGB1;
34158 } else {
34159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34160 REGB0 = REGB1;
34161 }
34162 }
34163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34164 if (UNTAG_Bool(REGB0)) {
34165 /* parser/parser_prod.nit:6254 */
34166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34167 if (UNTAG_Bool(REGB0)) {
34168 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6254);
34169 }
34170 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34171 /* parser/parser_prod.nit:6255 */
34172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
34173 if (UNTAG_Bool(REGB0)) {
34174 } else {
34175 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6255);
34176 }
34177 /* parser/parser_prod.nit:6256 */
34178 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
34179 } else {
34180 /* parser/parser_prod.nit:6258 */
34181 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6258);
34182 }
34183 /* parser/parser_prod.nit:6260 */
34184 goto label1;
34185 }
34186 /* parser/parser_prod.nit:6262 */
34187 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
34188 if (UNTAG_Bool(REGB0)) {
34189 } else {
34190 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6262);
34191 }
34192 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
34193 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34194 if (UNTAG_Bool(REGB0)) {
34195 } else {
34196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34197 REGB0 = REGB1;
34198 }
34199 if (UNTAG_Bool(REGB0)) {
34200 /* parser/parser_prod.nit:6263 */
34201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34202 if (UNTAG_Bool(REGB0)) {
34203 } else {
34204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34205 if (UNTAG_Bool(REGB1)) {
34206 REGB1 = TAG_Bool(0);
34207 REGB0 = REGB1;
34208 } else {
34209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34210 REGB0 = REGB1;
34211 }
34212 }
34213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34214 if (UNTAG_Bool(REGB0)) {
34215 /* parser/parser_prod.nit:6264 */
34216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34217 if (UNTAG_Bool(REGB0)) {
34218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6264);
34219 }
34220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34221 /* parser/parser_prod.nit:6265 */
34222 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*/;
34223 if (UNTAG_Bool(REGB0)) {
34224 } else {
34225 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6265);
34226 }
34227 /* parser/parser_prod.nit:6266 */
34228 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
34229 } else {
34230 /* parser/parser_prod.nit:6268 */
34231 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6268);
34232 }
34233 /* parser/parser_prod.nit:6270 */
34234 goto label1;
34235 }
34236 /* parser/parser_prod.nit:6272 */
34237 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34238 if (UNTAG_Bool(REGB0)) {
34239 } else {
34240 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6272);
34241 }
34242 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
34243 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34244 if (UNTAG_Bool(REGB0)) {
34245 } else {
34246 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34247 REGB0 = REGB1;
34248 }
34249 if (UNTAG_Bool(REGB0)) {
34250 /* parser/parser_prod.nit:6273 */
34251 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34252 if (UNTAG_Bool(REGB0)) {
34253 } else {
34254 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34255 if (UNTAG_Bool(REGB1)) {
34256 REGB1 = TAG_Bool(0);
34257 REGB0 = REGB1;
34258 } else {
34259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34260 REGB0 = REGB1;
34261 }
34262 }
34263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34264 if (UNTAG_Bool(REGB0)) {
34265 /* parser/parser_prod.nit:6274 */
34266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34267 if (UNTAG_Bool(REGB0)) {
34268 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6274);
34269 }
34270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34271 /* parser/parser_prod.nit:6275 */
34272 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34273 if (UNTAG_Bool(REGB0)) {
34274 } else {
34275 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6275);
34276 }
34277 /* parser/parser_prod.nit:6276 */
34278 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
34279 } else {
34280 /* parser/parser_prod.nit:6278 */
34281 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6278);
34282 }
34283 /* parser/parser_prod.nit:6280 */
34284 goto label1;
34285 }
34286 label1: while(0);
34287 stack_frame_head = fra.me.prev;
34288 return;
34289 }
34290 static const char LOCATE_parser___parser_prod___ABraReassignExpr___visit_all[] = "parser_prod::ABraReassignExpr::(parser_prod::ANode::visit_all)";
34291 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
34292 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34293 val_t REGB0;
34294 val_t tmp;
34295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34296 fra.me.file = LOCATE_parser___parser_prod;
34297 fra.me.line = 6284;
34298 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
34299 fra.me.has_broke = 0;
34300 fra.me.REG_size = 3;
34301 fra.me.nitni_local_ref_head = NULL;
34302 fra.me.REG[0] = NIT_NULL;
34303 fra.me.REG[1] = NIT_NULL;
34304 fra.me.REG[2] = NIT_NULL;
34305 fra.me.REG[0] = p0;
34306 fra.me.REG[1] = p1;
34307 /* parser/parser_prod.nit:6286 */
34308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34309 if (UNTAG_Bool(REGB0)) {
34310 } else {
34311 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6286);
34312 }
34313 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
34314 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34315 /* parser/parser_prod.nit:6287 */
34316 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34317 if (UNTAG_Bool(REGB0)) {
34318 } else {
34319 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6287);
34320 }
34321 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
34322 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34323 /* parser/parser_prod.nit:6288 */
34324 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
34325 if (UNTAG_Bool(REGB0)) {
34326 } else {
34327 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6288);
34328 }
34329 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
34330 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34331 /* parser/parser_prod.nit:6289 */
34332 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34333 if (UNTAG_Bool(REGB0)) {
34334 } else {
34335 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6289);
34336 }
34337 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
34338 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34339 stack_frame_head = fra.me.prev;
34340 return;
34341 }
34342 static const char LOCATE_parser___parser_prod___AClosureCallExpr___empty_init[] = "parser_prod::AClosureCallExpr::empty_init";
34343 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
34344 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
34345 struct {struct stack_frame_t me;} fra;
34346 val_t tmp;
34347 if (init_table[itpos205]) return;
34348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34349 fra.me.file = LOCATE_parser___parser_prod;
34350 fra.me.line = 6293;
34351 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
34352 fra.me.has_broke = 0;
34353 fra.me.REG_size = 1;
34354 fra.me.nitni_local_ref_head = NULL;
34355 fra.me.REG[0] = NIT_NULL;
34356 fra.me.REG[0] = p0;
34357 stack_frame_head = fra.me.prev;
34358 init_table[itpos205] = 1;
34359 return;
34360 }
34361 static const char LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr[] = "parser_prod::AClosureCallExpr::init_aclosurecallexpr";
34362 void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34363 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
34364 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34365 val_t REGB0;
34366 val_t tmp;
34367 if (init_table[itpos206]) return;
34368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34369 fra.me.file = LOCATE_parser___parser_prod;
34370 fra.me.line = 6295;
34371 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
34372 fra.me.has_broke = 0;
34373 fra.me.REG_size = 5;
34374 fra.me.nitni_local_ref_head = NULL;
34375 fra.me.REG[0] = NIT_NULL;
34376 fra.me.REG[1] = NIT_NULL;
34377 fra.me.REG[2] = NIT_NULL;
34378 fra.me.REG[3] = NIT_NULL;
34379 fra.me.REG[4] = NIT_NULL;
34380 fra.me.REG[0] = p0;
34381 fra.me.REG[1] = p1;
34382 fra.me.REG[2] = p2;
34383 fra.me.REG[3] = p3;
34384 /* parser/parser_prod.nit:6295 */
34385 fra.me.REG[4] = fra.me.REG[0];
34386 /* parser/parser_prod.nit:6301 */
34387 CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34388 /* parser/parser_prod.nit:6302 */
34389 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34390 if (UNTAG_Bool(REGB0)) {
34391 } else {
34392 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6302);
34393 }
34394 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34395 /* parser/parser_prod.nit:6303 */
34396 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34397 if (UNTAG_Bool(REGB0)) {
34398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6303);
34399 }
34400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34401 /* parser/parser_prod.nit:6304 */
34402 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34403 if (UNTAG_Bool(REGB0)) {
34404 } else {
34405 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6304);
34406 }
34407 ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
34408 /* parser/parser_prod.nit:6305 */
34409 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34410 if (UNTAG_Bool(REGB0)) {
34411 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6305);
34412 }
34413 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34414 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
34415 stack_frame_head = fra.me.prev;
34416 init_table[itpos206] = 1;
34417 return;
34418 }
34419 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){
34420 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34421 val_t REGB0;
34422 fun_t CREG[1];
34423 val_t tmp;
34424 /* parser/parser_prod.nit:6306 */
34425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34426 fra.me.file = LOCATE_parser___parser_prod;
34427 fra.me.line = 0;
34428 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
34429 fra.me.has_broke = 0;
34430 fra.me.REG_size = 2;
34431 fra.me.nitni_local_ref_head = NULL;
34432 fra.me.REG[0] = NIT_NULL;
34433 fra.me.REG[1] = NIT_NULL;
34434 fra.me.closure_ctx = closctx_param;
34435 fra.me.closure_funs = CREG;
34436 fra.me.REG[0] = p0;
34437 CREG[0] = clos_fun0;
34438 /* parser/parser_prod.nit:6307 */
34439 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
34440 if (UNTAG_Bool(REGB0)) {
34441 } else {
34442 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6307);
34443 }
34444 /* parser/parser_prod.nit:6308 */
34445 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
34446 if (UNTAG_Bool(REGB0)) {
34447 } else {
34448 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6308);
34449 }
34450 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
34451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34452 /* parser/parser_prod.nit:6309 */
34453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
34454 stack_frame_head = fra.me.prev;
34455 return;
34456 }
34457 static const char LOCATE_parser___parser_prod___AClosureCallExpr___replace_child[] = "parser_prod::AClosureCallExpr::(parser_prod::ANode::replace_child)";
34458 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
34459 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34460 val_t REGB0;
34461 val_t REGB1;
34462 val_t REGB2;
34463 val_t REGB3;
34464 val_t REGB4;
34465 val_t tmp;
34466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34467 fra.me.file = LOCATE_parser___parser_prod;
34468 fra.me.line = 6313;
34469 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
34470 fra.me.has_broke = 0;
34471 fra.me.REG_size = 4;
34472 fra.me.nitni_local_ref_head = NULL;
34473 fra.me.REG[0] = NIT_NULL;
34474 fra.me.REG[1] = NIT_NULL;
34475 fra.me.REG[2] = NIT_NULL;
34476 fra.me.REG[3] = NIT_NULL;
34477 fra.me.REG[0] = p0;
34478 fra.me.REG[1] = p1;
34479 fra.me.REG[2] = p2;
34480 /* parser/parser_prod.nit:6315 */
34481 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34482 if (UNTAG_Bool(REGB0)) {
34483 } else {
34484 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6315);
34485 }
34486 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
34487 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34488 if (UNTAG_Bool(REGB0)) {
34489 } else {
34490 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34491 REGB0 = REGB1;
34492 }
34493 if (UNTAG_Bool(REGB0)) {
34494 /* parser/parser_prod.nit:6316 */
34495 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34496 if (UNTAG_Bool(REGB0)) {
34497 } else {
34498 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34499 if (UNTAG_Bool(REGB1)) {
34500 REGB1 = TAG_Bool(0);
34501 REGB0 = REGB1;
34502 } else {
34503 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34504 REGB0 = REGB1;
34505 }
34506 }
34507 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34508 if (UNTAG_Bool(REGB0)) {
34509 /* parser/parser_prod.nit:6317 */
34510 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34511 if (UNTAG_Bool(REGB0)) {
34512 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6317);
34513 }
34514 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34515 /* parser/parser_prod.nit:6318 */
34516 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*/;
34517 if (UNTAG_Bool(REGB0)) {
34518 } else {
34519 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6318);
34520 }
34521 /* parser/parser_prod.nit:6319 */
34522 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34523 } else {
34524 /* parser/parser_prod.nit:6321 */
34525 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6321);
34526 }
34527 /* parser/parser_prod.nit:6323 */
34528 goto label1;
34529 }
34530 /* parser/parser_prod.nit:6325 */
34531 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34532 if (UNTAG_Bool(REGB0)) {
34533 } else {
34534 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6325);
34535 }
34536 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34537 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34538 if (UNTAG_Bool(REGB0)) {
34539 } else {
34540 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34541 REGB0 = REGB1;
34542 }
34543 if (UNTAG_Bool(REGB0)) {
34544 /* parser/parser_prod.nit:6326 */
34545 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34546 if (UNTAG_Bool(REGB0)) {
34547 } else {
34548 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34549 if (UNTAG_Bool(REGB1)) {
34550 REGB1 = TAG_Bool(0);
34551 REGB0 = REGB1;
34552 } else {
34553 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34554 REGB0 = REGB1;
34555 }
34556 }
34557 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34558 if (UNTAG_Bool(REGB0)) {
34559 /* parser/parser_prod.nit:6327 */
34560 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34561 if (UNTAG_Bool(REGB0)) {
34562 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6327);
34563 }
34564 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34565 /* parser/parser_prod.nit:6328 */
34566 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
34567 if (UNTAG_Bool(REGB0)) {
34568 } else {
34569 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6328);
34570 }
34571 /* parser/parser_prod.nit:6329 */
34572 ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
34573 } else {
34574 /* parser/parser_prod.nit:6331 */
34575 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6331);
34576 }
34577 /* parser/parser_prod.nit:6333 */
34578 goto label1;
34579 }
34580 /* parser/parser_prod.nit:6335 */
34581 REGB0 = TAG_Int(0);
34582 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34583 if (UNTAG_Bool(REGB1)) {
34584 } else {
34585 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6335);
34586 }
34587 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34588 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
34589 /* ../lib/standard/kernel.nit:355 */
34590 while(1) {
34591 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
34592 if (UNTAG_Bool(REGB2)) {
34593 } else {
34594 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
34595 }
34596 /* ../lib/standard/kernel.nit:235 */
34597 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
34598 /* ../lib/standard/kernel.nit:355 */
34599 if (UNTAG_Bool(REGB2)) {
34600 /* parser/parser_prod.nit:6335 */
34601 REGB2 = REGB0;
34602 /* parser/parser_prod.nit:6336 */
34603 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34604 if (UNTAG_Bool(REGB3)) {
34605 } else {
34606 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6336);
34607 }
34608 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34609 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
34610 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34611 if (UNTAG_Bool(REGB3)) {
34612 } else {
34613 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34614 if (UNTAG_Bool(REGB4)) {
34615 REGB4 = TAG_Bool(0);
34616 REGB3 = REGB4;
34617 } else {
34618 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34619 REGB3 = REGB4;
34620 }
34621 }
34622 if (UNTAG_Bool(REGB3)) {
34623 /* parser/parser_prod.nit:6337 */
34624 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34625 if (UNTAG_Bool(REGB3)) {
34626 } else {
34627 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34628 if (UNTAG_Bool(REGB4)) {
34629 REGB4 = TAG_Bool(0);
34630 REGB3 = REGB4;
34631 } else {
34632 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34633 REGB3 = REGB4;
34634 }
34635 }
34636 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
34637 if (UNTAG_Bool(REGB3)) {
34638 /* parser/parser_prod.nit:6338 */
34639 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*/;
34640 if (UNTAG_Bool(REGB3)) {
34641 } else {
34642 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6338);
34643 }
34644 /* parser/parser_prod.nit:6339 */
34645 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34646 if (UNTAG_Bool(REGB3)) {
34647 } else {
34648 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6339);
34649 }
34650 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34651 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
34652 /* parser/parser_prod.nit:6340 */
34653 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34654 if (UNTAG_Bool(REGB3)) {
34655 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6340);
34656 }
34657 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34658 } else {
34659 /* parser/parser_prod.nit:6342 */
34660 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34661 if (UNTAG_Bool(REGB3)) {
34662 } else {
34663 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6342);
34664 }
34665 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34666 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
34667 }
34668 /* parser/parser_prod.nit:6344 */
34669 goto label1;
34670 }
34671 /* ../lib/standard/kernel.nit:357 */
34672 REGB2 = TAG_Int(1);
34673 /* ../lib/standard/kernel.nit:238 */
34674 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
34675 /* ../lib/standard/kernel.nit:357 */
34676 REGB0 = REGB2;
34677 } else {
34678 /* ../lib/standard/kernel.nit:355 */
34679 goto label2;
34680 }
34681 }
34682 label2: while(0);
34683 label1: while(0);
34684 stack_frame_head = fra.me.prev;
34685 return;
34686 }
34687 static const char LOCATE_parser___parser_prod___AClosureCallExpr___visit_all[] = "parser_prod::AClosureCallExpr::(parser_prod::ANode::visit_all)";
34688 void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
34689 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34690 val_t REGB0;
34691 val_t tmp;
34692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34693 fra.me.file = LOCATE_parser___parser_prod;
34694 fra.me.line = 6349;
34695 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
34696 fra.me.has_broke = 0;
34697 fra.me.REG_size = 3;
34698 fra.me.nitni_local_ref_head = NULL;
34699 fra.me.REG[0] = NIT_NULL;
34700 fra.me.REG[1] = NIT_NULL;
34701 fra.me.REG[2] = NIT_NULL;
34702 fra.me.REG[0] = p0;
34703 fra.me.REG[1] = p1;
34704 /* parser/parser_prod.nit:6351 */
34705 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34706 if (UNTAG_Bool(REGB0)) {
34707 } else {
34708 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6351);
34709 }
34710 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
34711 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34712 /* parser/parser_prod.nit:6352 */
34713 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34714 if (UNTAG_Bool(REGB0)) {
34715 } else {
34716 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6352);
34717 }
34718 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34719 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34720 /* parser/parser_prod.nit:6353 */
34721 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34722 if (UNTAG_Bool(REGB0)) {
34723 } else {
34724 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6353);
34725 }
34726 fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34727 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_1));
34728 stack_frame_head = fra.me.prev;
34729 return;
34730 }
34731 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){
34732 struct {struct stack_frame_t me;} fra;
34733 fun_t CREG[1];
34734 val_t tmp;
34735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34736 fra.me.file = LOCATE_parser___parser_prod;
34737 fra.me.line = 0;
34738 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
34739 fra.me.has_broke = 0;
34740 fra.me.REG_size = 1;
34741 fra.me.nitni_local_ref_head = NULL;
34742 fra.me.REG[0] = NIT_NULL;
34743 fra.me.closure_ctx = closctx_param;
34744 fra.me.closure_funs = CREG;
34745 fra.me.REG[0] = p0;
34746 CREG[0] = clos_fun0;
34747 /* parser/parser_prod.nit:6354 */
34748 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34749 stack_frame_head = fra.me.prev;
34750 return;
34751 }
34752 static const char LOCATE_parser___parser_prod___AVarExpr___empty_init[] = "parser_prod::AVarExpr::empty_init";
34753 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
34754 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
34755 struct {struct stack_frame_t me;} fra;
34756 val_t tmp;
34757 if (init_table[itpos207]) return;
34758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34759 fra.me.file = LOCATE_parser___parser_prod;
34760 fra.me.line = 6359;
34761 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
34762 fra.me.has_broke = 0;
34763 fra.me.REG_size = 1;
34764 fra.me.nitni_local_ref_head = NULL;
34765 fra.me.REG[0] = NIT_NULL;
34766 fra.me.REG[0] = p0;
34767 stack_frame_head = fra.me.prev;
34768 init_table[itpos207] = 1;
34769 return;
34770 }
34771 static const char LOCATE_parser___parser_prod___AVarExpr___init_avarexpr[] = "parser_prod::AVarExpr::init_avarexpr";
34772 void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
34773 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
34774 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34775 val_t REGB0;
34776 val_t tmp;
34777 if (init_table[itpos208]) return;
34778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34779 fra.me.file = LOCATE_parser___parser_prod;
34780 fra.me.line = 6361;
34781 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
34782 fra.me.has_broke = 0;
34783 fra.me.REG_size = 3;
34784 fra.me.nitni_local_ref_head = NULL;
34785 fra.me.REG[0] = NIT_NULL;
34786 fra.me.REG[1] = NIT_NULL;
34787 fra.me.REG[2] = NIT_NULL;
34788 fra.me.REG[0] = p0;
34789 fra.me.REG[1] = p1;
34790 /* parser/parser_prod.nit:6361 */
34791 fra.me.REG[2] = fra.me.REG[0];
34792 /* parser/parser_prod.nit:6365 */
34793 CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
34794 /* parser/parser_prod.nit:6366 */
34795 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34796 if (UNTAG_Bool(REGB0)) {
34797 } else {
34798 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6366);
34799 }
34800 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
34801 /* parser/parser_prod.nit:6367 */
34802 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34803 if (UNTAG_Bool(REGB0)) {
34804 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6367);
34805 }
34806 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34807 stack_frame_head = fra.me.prev;
34808 init_table[itpos208] = 1;
34809 return;
34810 }
34811 static const char LOCATE_parser___parser_prod___AVarExpr___replace_child[] = "parser_prod::AVarExpr::(parser_prod::ANode::replace_child)";
34812 void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
34813 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34814 val_t REGB0;
34815 val_t REGB1;
34816 val_t tmp;
34817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34818 fra.me.file = LOCATE_parser___parser_prod;
34819 fra.me.line = 6370;
34820 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
34821 fra.me.has_broke = 0;
34822 fra.me.REG_size = 4;
34823 fra.me.nitni_local_ref_head = NULL;
34824 fra.me.REG[0] = NIT_NULL;
34825 fra.me.REG[1] = NIT_NULL;
34826 fra.me.REG[2] = NIT_NULL;
34827 fra.me.REG[3] = NIT_NULL;
34828 fra.me.REG[0] = p0;
34829 fra.me.REG[1] = p1;
34830 fra.me.REG[2] = p2;
34831 /* parser/parser_prod.nit:6372 */
34832 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34833 if (UNTAG_Bool(REGB0)) {
34834 } else {
34835 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6372);
34836 }
34837 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34838 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34839 if (UNTAG_Bool(REGB0)) {
34840 } else {
34841 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34842 REGB0 = REGB1;
34843 }
34844 if (UNTAG_Bool(REGB0)) {
34845 /* parser/parser_prod.nit:6373 */
34846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34847 if (UNTAG_Bool(REGB0)) {
34848 } else {
34849 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34850 if (UNTAG_Bool(REGB1)) {
34851 REGB1 = TAG_Bool(0);
34852 REGB0 = REGB1;
34853 } else {
34854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34855 REGB0 = REGB1;
34856 }
34857 }
34858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34859 if (UNTAG_Bool(REGB0)) {
34860 /* parser/parser_prod.nit:6374 */
34861 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34862 if (UNTAG_Bool(REGB0)) {
34863 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6374);
34864 }
34865 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34866 /* parser/parser_prod.nit:6375 */
34867 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*/;
34868 if (UNTAG_Bool(REGB0)) {
34869 } else {
34870 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6375);
34871 }
34872 /* parser/parser_prod.nit:6376 */
34873 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34874 } else {
34875 /* parser/parser_prod.nit:6378 */
34876 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6378);
34877 }
34878 /* parser/parser_prod.nit:6380 */
34879 goto label1;
34880 }
34881 label1: while(0);
34882 stack_frame_head = fra.me.prev;
34883 return;
34884 }
34885 static const char LOCATE_parser___parser_prod___AVarExpr___visit_all[] = "parser_prod::AVarExpr::(parser_prod::ANode::visit_all)";
34886 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
34887 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34888 val_t REGB0;
34889 val_t tmp;
34890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34891 fra.me.file = LOCATE_parser___parser_prod;
34892 fra.me.line = 6384;
34893 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
34894 fra.me.has_broke = 0;
34895 fra.me.REG_size = 2;
34896 fra.me.nitni_local_ref_head = NULL;
34897 fra.me.REG[0] = NIT_NULL;
34898 fra.me.REG[1] = NIT_NULL;
34899 fra.me.REG[0] = p0;
34900 fra.me.REG[1] = p1;
34901 /* parser/parser_prod.nit:6386 */
34902 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34903 if (UNTAG_Bool(REGB0)) {
34904 } else {
34905 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6386);
34906 }
34907 fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34908 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34909 stack_frame_head = fra.me.prev;
34910 return;
34911 }
34912 static const char LOCATE_parser___parser_prod___AVarAssignExpr___empty_init[] = "parser_prod::AVarAssignExpr::empty_init";
34913 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
34914 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34915 struct {struct stack_frame_t me;} fra;
34916 val_t tmp;
34917 if (init_table[itpos209]) return;
34918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34919 fra.me.file = LOCATE_parser___parser_prod;
34920 fra.me.line = 6390;
34921 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
34922 fra.me.has_broke = 0;
34923 fra.me.REG_size = 1;
34924 fra.me.nitni_local_ref_head = NULL;
34925 fra.me.REG[0] = NIT_NULL;
34926 fra.me.REG[0] = p0;
34927 stack_frame_head = fra.me.prev;
34928 init_table[itpos209] = 1;
34929 return;
34930 }
34931 static const char LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr[] = "parser_prod::AVarAssignExpr::init_avarassignexpr";
34932 void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34933 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34934 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34935 val_t REGB0;
34936 val_t tmp;
34937 if (init_table[itpos210]) return;
34938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34939 fra.me.file = LOCATE_parser___parser_prod;
34940 fra.me.line = 6392;
34941 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
34942 fra.me.has_broke = 0;
34943 fra.me.REG_size = 5;
34944 fra.me.nitni_local_ref_head = NULL;
34945 fra.me.REG[0] = NIT_NULL;
34946 fra.me.REG[1] = NIT_NULL;
34947 fra.me.REG[2] = NIT_NULL;
34948 fra.me.REG[3] = NIT_NULL;
34949 fra.me.REG[4] = NIT_NULL;
34950 fra.me.REG[0] = p0;
34951 fra.me.REG[1] = p1;
34952 fra.me.REG[2] = p2;
34953 fra.me.REG[3] = p3;
34954 /* parser/parser_prod.nit:6392 */
34955 fra.me.REG[4] = fra.me.REG[0];
34956 /* parser/parser_prod.nit:6398 */
34957 CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34958 /* parser/parser_prod.nit:6399 */
34959 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34960 if (UNTAG_Bool(REGB0)) {
34961 } else {
34962 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6399);
34963 }
34964 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34965 /* parser/parser_prod.nit:6400 */
34966 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34967 if (UNTAG_Bool(REGB0)) {
34968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6400);
34969 }
34970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34971 /* parser/parser_prod.nit:6401 */
34972 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34973 if (UNTAG_Bool(REGB0)) {
34974 } else {
34975 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6401);
34976 }
34977 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
34978 /* parser/parser_prod.nit:6402 */
34979 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34980 if (UNTAG_Bool(REGB0)) {
34981 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6402);
34982 }
34983 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34984 /* parser/parser_prod.nit:6403 */
34985 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34986 if (UNTAG_Bool(REGB0)) {
34987 } else {
34988 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6403);
34989 }
34990 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
34991 /* parser/parser_prod.nit:6404 */
34992 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34993 if (UNTAG_Bool(REGB0)) {
34994 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6404);
34995 }
34996 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34997 stack_frame_head = fra.me.prev;
34998 init_table[itpos210] = 1;
34999 return;
35000 }
35001 static const char LOCATE_parser___parser_prod___AVarAssignExpr___replace_child[] = "parser_prod::AVarAssignExpr::(parser_prod::ANode::replace_child)";
35002 void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
35003 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35004 val_t REGB0;
35005 val_t REGB1;
35006 val_t tmp;
35007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35008 fra.me.file = LOCATE_parser___parser_prod;
35009 fra.me.line = 6407;
35010 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
35011 fra.me.has_broke = 0;
35012 fra.me.REG_size = 4;
35013 fra.me.nitni_local_ref_head = NULL;
35014 fra.me.REG[0] = NIT_NULL;
35015 fra.me.REG[1] = NIT_NULL;
35016 fra.me.REG[2] = NIT_NULL;
35017 fra.me.REG[3] = NIT_NULL;
35018 fra.me.REG[0] = p0;
35019 fra.me.REG[1] = p1;
35020 fra.me.REG[2] = p2;
35021 /* parser/parser_prod.nit:6409 */
35022 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35023 if (UNTAG_Bool(REGB0)) {
35024 } else {
35025 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6409);
35026 }
35027 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
35028 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35029 if (UNTAG_Bool(REGB0)) {
35030 } else {
35031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35032 REGB0 = REGB1;
35033 }
35034 if (UNTAG_Bool(REGB0)) {
35035 /* parser/parser_prod.nit:6410 */
35036 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35037 if (UNTAG_Bool(REGB0)) {
35038 } else {
35039 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35040 if (UNTAG_Bool(REGB1)) {
35041 REGB1 = TAG_Bool(0);
35042 REGB0 = REGB1;
35043 } else {
35044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35045 REGB0 = REGB1;
35046 }
35047 }
35048 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35049 if (UNTAG_Bool(REGB0)) {
35050 /* parser/parser_prod.nit:6411 */
35051 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35052 if (UNTAG_Bool(REGB0)) {
35053 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6411);
35054 }
35055 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35056 /* parser/parser_prod.nit:6412 */
35057 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*/;
35058 if (UNTAG_Bool(REGB0)) {
35059 } else {
35060 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6412);
35061 }
35062 /* parser/parser_prod.nit:6413 */
35063 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
35064 } else {
35065 /* parser/parser_prod.nit:6415 */
35066 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6415);
35067 }
35068 /* parser/parser_prod.nit:6417 */
35069 goto label1;
35070 }
35071 /* parser/parser_prod.nit:6419 */
35072 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
35073 if (UNTAG_Bool(REGB0)) {
35074 } else {
35075 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6419);
35076 }
35077 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
35078 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35079 if (UNTAG_Bool(REGB0)) {
35080 } else {
35081 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35082 REGB0 = REGB1;
35083 }
35084 if (UNTAG_Bool(REGB0)) {
35085 /* parser/parser_prod.nit:6420 */
35086 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35087 if (UNTAG_Bool(REGB0)) {
35088 } else {
35089 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35090 if (UNTAG_Bool(REGB1)) {
35091 REGB1 = TAG_Bool(0);
35092 REGB0 = REGB1;
35093 } else {
35094 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35095 REGB0 = REGB1;
35096 }
35097 }
35098 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35099 if (UNTAG_Bool(REGB0)) {
35100 /* parser/parser_prod.nit:6421 */
35101 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35102 if (UNTAG_Bool(REGB0)) {
35103 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6421);
35104 }
35105 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35106 /* parser/parser_prod.nit:6422 */
35107 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*/;
35108 if (UNTAG_Bool(REGB0)) {
35109 } else {
35110 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6422);
35111 }
35112 /* parser/parser_prod.nit:6423 */
35113 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
35114 } else {
35115 /* parser/parser_prod.nit:6425 */
35116 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6425);
35117 }
35118 /* parser/parser_prod.nit:6427 */
35119 goto label1;
35120 }
35121 /* parser/parser_prod.nit:6429 */
35122 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35123 if (UNTAG_Bool(REGB0)) {
35124 } else {
35125 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6429);
35126 }
35127 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
35128 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35129 if (UNTAG_Bool(REGB0)) {
35130 } else {
35131 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35132 REGB0 = REGB1;
35133 }
35134 if (UNTAG_Bool(REGB0)) {
35135 /* parser/parser_prod.nit:6430 */
35136 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35137 if (UNTAG_Bool(REGB0)) {
35138 } else {
35139 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35140 if (UNTAG_Bool(REGB1)) {
35141 REGB1 = TAG_Bool(0);
35142 REGB0 = REGB1;
35143 } else {
35144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35145 REGB0 = REGB1;
35146 }
35147 }
35148 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35149 if (UNTAG_Bool(REGB0)) {
35150 /* parser/parser_prod.nit:6431 */
35151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35152 if (UNTAG_Bool(REGB0)) {
35153 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6431);
35154 }
35155 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35156 /* parser/parser_prod.nit:6432 */
35157 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35158 if (UNTAG_Bool(REGB0)) {
35159 } else {
35160 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6432);
35161 }
35162 /* parser/parser_prod.nit:6433 */
35163 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
35164 } else {
35165 /* parser/parser_prod.nit:6435 */
35166 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6435);
35167 }
35168 /* parser/parser_prod.nit:6437 */
35169 goto label1;
35170 }
35171 label1: while(0);
35172 stack_frame_head = fra.me.prev;
35173 return;
35174 }
35175 static const char LOCATE_parser___parser_prod___AVarAssignExpr___visit_all[] = "parser_prod::AVarAssignExpr::(parser_prod::ANode::visit_all)";
35176 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
35177 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35178 val_t REGB0;
35179 val_t tmp;
35180 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35181 fra.me.file = LOCATE_parser___parser_prod;
35182 fra.me.line = 6441;
35183 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
35184 fra.me.has_broke = 0;
35185 fra.me.REG_size = 3;
35186 fra.me.nitni_local_ref_head = NULL;
35187 fra.me.REG[0] = NIT_NULL;
35188 fra.me.REG[1] = NIT_NULL;
35189 fra.me.REG[2] = NIT_NULL;
35190 fra.me.REG[0] = p0;
35191 fra.me.REG[1] = p1;
35192 /* parser/parser_prod.nit:6443 */
35193 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35194 if (UNTAG_Bool(REGB0)) {
35195 } else {
35196 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6443);
35197 }
35198 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
35199 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35200 /* parser/parser_prod.nit:6444 */
35201 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
35202 if (UNTAG_Bool(REGB0)) {
35203 } else {
35204 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6444);
35205 }
35206 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
35207 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35208 /* parser/parser_prod.nit:6445 */
35209 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35210 if (UNTAG_Bool(REGB0)) {
35211 } else {
35212 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6445);
35213 }
35214 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
35215 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35216 stack_frame_head = fra.me.prev;
35217 return;
35218 }
35219 static const char LOCATE_parser___parser_prod___AVarReassignExpr___empty_init[] = "parser_prod::AVarReassignExpr::empty_init";
35220 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
35221 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
35222 struct {struct stack_frame_t me;} fra;
35223 val_t tmp;
35224 if (init_table[itpos211]) return;
35225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35226 fra.me.file = LOCATE_parser___parser_prod;
35227 fra.me.line = 6449;
35228 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
35229 fra.me.has_broke = 0;
35230 fra.me.REG_size = 1;
35231 fra.me.nitni_local_ref_head = NULL;
35232 fra.me.REG[0] = NIT_NULL;
35233 fra.me.REG[0] = p0;
35234 stack_frame_head = fra.me.prev;
35235 init_table[itpos211] = 1;
35236 return;
35237 }
35238 static const char LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr[] = "parser_prod::AVarReassignExpr::init_avarreassignexpr";
35239 void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
35240 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
35241 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
35242 val_t REGB0;
35243 val_t tmp;
35244 if (init_table[itpos212]) return;
35245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35246 fra.me.file = LOCATE_parser___parser_prod;
35247 fra.me.line = 6451;
35248 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
35249 fra.me.has_broke = 0;
35250 fra.me.REG_size = 5;
35251 fra.me.nitni_local_ref_head = NULL;
35252 fra.me.REG[0] = NIT_NULL;
35253 fra.me.REG[1] = NIT_NULL;
35254 fra.me.REG[2] = NIT_NULL;
35255 fra.me.REG[3] = NIT_NULL;
35256 fra.me.REG[4] = NIT_NULL;
35257 fra.me.REG[0] = p0;
35258 fra.me.REG[1] = p1;
35259 fra.me.REG[2] = p2;
35260 fra.me.REG[3] = p3;
35261 /* parser/parser_prod.nit:6451 */
35262 fra.me.REG[4] = fra.me.REG[0];
35263 /* parser/parser_prod.nit:6457 */
35264 CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
35265 /* parser/parser_prod.nit:6458 */
35266 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35267 if (UNTAG_Bool(REGB0)) {
35268 } else {
35269 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6458);
35270 }
35271 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
35272 /* parser/parser_prod.nit:6459 */
35273 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35274 if (UNTAG_Bool(REGB0)) {
35275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6459);
35276 }
35277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
35278 /* parser/parser_prod.nit:6460 */
35279 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35280 if (UNTAG_Bool(REGB0)) {
35281 } else {
35282 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6460);
35283 }
35284 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
35285 /* parser/parser_prod.nit:6461 */
35286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35287 if (UNTAG_Bool(REGB0)) {
35288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6461);
35289 }
35290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
35291 /* parser/parser_prod.nit:6462 */
35292 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
35293 if (UNTAG_Bool(REGB0)) {
35294 } else {
35295 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6462);
35296 }
35297 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
35298 /* parser/parser_prod.nit:6463 */
35299 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35300 if (UNTAG_Bool(REGB0)) {
35301 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6463);
35302 }
35303 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
35304 stack_frame_head = fra.me.prev;
35305 init_table[itpos212] = 1;
35306 return;
35307 }
35308 static const char LOCATE_parser___parser_prod___AVarReassignExpr___replace_child[] = "parser_prod::AVarReassignExpr::(parser_prod::ANode::replace_child)";
35309 void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
35310 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35311 val_t REGB0;
35312 val_t REGB1;
35313 val_t tmp;
35314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35315 fra.me.file = LOCATE_parser___parser_prod;
35316 fra.me.line = 6466;
35317 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
35318 fra.me.has_broke = 0;
35319 fra.me.REG_size = 4;
35320 fra.me.nitni_local_ref_head = NULL;
35321 fra.me.REG[0] = NIT_NULL;
35322 fra.me.REG[1] = NIT_NULL;
35323 fra.me.REG[2] = NIT_NULL;
35324 fra.me.REG[3] = NIT_NULL;
35325 fra.me.REG[0] = p0;
35326 fra.me.REG[1] = p1;
35327 fra.me.REG[2] = p2;
35328 /* parser/parser_prod.nit:6468 */
35329 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35330 if (UNTAG_Bool(REGB0)) {
35331 } else {
35332 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6468);
35333 }
35334 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
35335 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35336 if (UNTAG_Bool(REGB0)) {
35337 } else {
35338 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35339 REGB0 = REGB1;
35340 }
35341 if (UNTAG_Bool(REGB0)) {
35342 /* parser/parser_prod.nit:6469 */
35343 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35344 if (UNTAG_Bool(REGB0)) {
35345 } else {
35346 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35347 if (UNTAG_Bool(REGB1)) {
35348 REGB1 = TAG_Bool(0);
35349 REGB0 = REGB1;
35350 } else {
35351 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35352 REGB0 = REGB1;
35353 }
35354 }
35355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35356 if (UNTAG_Bool(REGB0)) {
35357 /* parser/parser_prod.nit:6470 */
35358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35359 if (UNTAG_Bool(REGB0)) {
35360 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6470);
35361 }
35362 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35363 /* parser/parser_prod.nit:6471 */
35364 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*/;
35365 if (UNTAG_Bool(REGB0)) {
35366 } else {
35367 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6471);
35368 }
35369 /* parser/parser_prod.nit:6472 */
35370 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
35371 } else {
35372 /* parser/parser_prod.nit:6474 */
35373 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6474);
35374 }
35375 /* parser/parser_prod.nit:6476 */
35376 goto label1;
35377 }
35378 /* parser/parser_prod.nit:6478 */
35379 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
35380 if (UNTAG_Bool(REGB0)) {
35381 } else {
35382 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6478);
35383 }
35384 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
35385 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35386 if (UNTAG_Bool(REGB0)) {
35387 } else {
35388 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35389 REGB0 = REGB1;
35390 }
35391 if (UNTAG_Bool(REGB0)) {
35392 /* parser/parser_prod.nit:6479 */
35393 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35394 if (UNTAG_Bool(REGB0)) {
35395 } else {
35396 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35397 if (UNTAG_Bool(REGB1)) {
35398 REGB1 = TAG_Bool(0);
35399 REGB0 = REGB1;
35400 } else {
35401 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35402 REGB0 = REGB1;
35403 }
35404 }
35405 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35406 if (UNTAG_Bool(REGB0)) {
35407 /* parser/parser_prod.nit:6480 */
35408 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35409 if (UNTAG_Bool(REGB0)) {
35410 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6480);
35411 }
35412 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35413 /* parser/parser_prod.nit:6481 */
35414 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*/;
35415 if (UNTAG_Bool(REGB0)) {
35416 } else {
35417 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6481);
35418 }
35419 /* parser/parser_prod.nit:6482 */
35420 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
35421 } else {
35422 /* parser/parser_prod.nit:6484 */
35423 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6484);
35424 }
35425 /* parser/parser_prod.nit:6486 */
35426 goto label1;
35427 }
35428 /* parser/parser_prod.nit:6488 */
35429 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35430 if (UNTAG_Bool(REGB0)) {
35431 } else {
35432 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6488);
35433 }
35434 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
35435 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35436 if (UNTAG_Bool(REGB0)) {
35437 } else {
35438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35439 REGB0 = REGB1;
35440 }
35441 if (UNTAG_Bool(REGB0)) {
35442 /* parser/parser_prod.nit:6489 */
35443 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35444 if (UNTAG_Bool(REGB0)) {
35445 } else {
35446 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35447 if (UNTAG_Bool(REGB1)) {
35448 REGB1 = TAG_Bool(0);
35449 REGB0 = REGB1;
35450 } else {
35451 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35452 REGB0 = REGB1;
35453 }
35454 }
35455 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35456 if (UNTAG_Bool(REGB0)) {
35457 /* parser/parser_prod.nit:6490 */
35458 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35459 if (UNTAG_Bool(REGB0)) {
35460 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6490);
35461 }
35462 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35463 /* parser/parser_prod.nit:6491 */
35464 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35465 if (UNTAG_Bool(REGB0)) {
35466 } else {
35467 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6491);
35468 }
35469 /* parser/parser_prod.nit:6492 */
35470 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
35471 } else {
35472 /* parser/parser_prod.nit:6494 */
35473 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6494);
35474 }
35475 /* parser/parser_prod.nit:6496 */
35476 goto label1;
35477 }
35478 label1: while(0);
35479 stack_frame_head = fra.me.prev;
35480 return;
35481 }
35482 static const char LOCATE_parser___parser_prod___AVarReassignExpr___visit_all[] = "parser_prod::AVarReassignExpr::(parser_prod::ANode::visit_all)";
35483 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
35484 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35485 val_t REGB0;
35486 val_t tmp;
35487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35488 fra.me.file = LOCATE_parser___parser_prod;
35489 fra.me.line = 6500;
35490 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
35491 fra.me.has_broke = 0;
35492 fra.me.REG_size = 3;
35493 fra.me.nitni_local_ref_head = NULL;
35494 fra.me.REG[0] = NIT_NULL;
35495 fra.me.REG[1] = NIT_NULL;
35496 fra.me.REG[2] = NIT_NULL;
35497 fra.me.REG[0] = p0;
35498 fra.me.REG[1] = p1;
35499 /* parser/parser_prod.nit:6502 */
35500 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35501 if (UNTAG_Bool(REGB0)) {
35502 } else {
35503 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6502);
35504 }
35505 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
35506 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35507 /* parser/parser_prod.nit:6503 */
35508 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
35509 if (UNTAG_Bool(REGB0)) {
35510 } else {
35511 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6503);
35512 }
35513 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
35514 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35515 /* parser/parser_prod.nit:6504 */
35516 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35517 if (UNTAG_Bool(REGB0)) {
35518 } else {
35519 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6504);
35520 }
35521 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
35522 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35523 stack_frame_head = fra.me.prev;
35524 return;
35525 }
35526 static const char LOCATE_parser___parser_prod___ARangeExpr___empty_init[] = "parser_prod::ARangeExpr::empty_init";
35527 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
35528 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
35529 struct {struct stack_frame_t me;} fra;
35530 val_t tmp;
35531 if (init_table[itpos213]) return;
35532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35533 fra.me.file = LOCATE_parser___parser_prod;
35534 fra.me.line = 6508;
35535 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
35536 fra.me.has_broke = 0;
35537 fra.me.REG_size = 1;
35538 fra.me.nitni_local_ref_head = NULL;
35539 fra.me.REG[0] = NIT_NULL;
35540 fra.me.REG[0] = p0;
35541 stack_frame_head = fra.me.prev;
35542 init_table[itpos213] = 1;
35543 return;
35544 }
35545 static const char LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr[] = "parser_prod::ARangeExpr::init_arangeexpr";
35546 void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
35547 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
35548 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35549 val_t REGB0;
35550 val_t tmp;
35551 if (init_table[itpos214]) return;
35552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35553 fra.me.file = LOCATE_parser___parser_prod;
35554 fra.me.line = 6510;
35555 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
35556 fra.me.has_broke = 0;
35557 fra.me.REG_size = 4;
35558 fra.me.nitni_local_ref_head = NULL;
35559 fra.me.REG[0] = NIT_NULL;
35560 fra.me.REG[1] = NIT_NULL;
35561 fra.me.REG[2] = NIT_NULL;
35562 fra.me.REG[3] = NIT_NULL;
35563 fra.me.REG[0] = p0;
35564 fra.me.REG[1] = p1;
35565 fra.me.REG[2] = p2;
35566 /* parser/parser_prod.nit:6510 */
35567 fra.me.REG[3] = fra.me.REG[0];
35568 /* parser/parser_prod.nit:6515 */
35569 CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
35570 /* parser/parser_prod.nit:6516 */
35571 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35572 if (UNTAG_Bool(REGB0)) {
35573 } else {
35574 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6516);
35575 }
35576 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
35577 /* parser/parser_prod.nit:6517 */
35578 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35579 if (UNTAG_Bool(REGB0)) {
35580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6517);
35581 }
35582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
35583 /* parser/parser_prod.nit:6518 */
35584 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35585 if (UNTAG_Bool(REGB0)) {
35586 } else {
35587 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6518);
35588 }
35589 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
35590 /* parser/parser_prod.nit:6519 */
35591 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35592 if (UNTAG_Bool(REGB0)) {
35593 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6519);
35594 }
35595 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35596 stack_frame_head = fra.me.prev;
35597 init_table[itpos214] = 1;
35598 return;
35599 }
35600 static const char LOCATE_parser___parser_prod___ARangeExpr___replace_child[] = "parser_prod::ARangeExpr::(parser_prod::ANode::replace_child)";
35601 void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35602 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35603 val_t REGB0;
35604 val_t REGB1;
35605 val_t tmp;
35606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35607 fra.me.file = LOCATE_parser___parser_prod;
35608 fra.me.line = 6522;
35609 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
35610 fra.me.has_broke = 0;
35611 fra.me.REG_size = 4;
35612 fra.me.nitni_local_ref_head = NULL;
35613 fra.me.REG[0] = NIT_NULL;
35614 fra.me.REG[1] = NIT_NULL;
35615 fra.me.REG[2] = NIT_NULL;
35616 fra.me.REG[3] = NIT_NULL;
35617 fra.me.REG[0] = p0;
35618 fra.me.REG[1] = p1;
35619 fra.me.REG[2] = p2;
35620 /* parser/parser_prod.nit:6524 */
35621 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35622 if (UNTAG_Bool(REGB0)) {
35623 } else {
35624 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6524);
35625 }
35626 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35627 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35628 if (UNTAG_Bool(REGB0)) {
35629 } else {
35630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35631 REGB0 = REGB1;
35632 }
35633 if (UNTAG_Bool(REGB0)) {
35634 /* parser/parser_prod.nit:6525 */
35635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35636 if (UNTAG_Bool(REGB0)) {
35637 } else {
35638 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35639 if (UNTAG_Bool(REGB1)) {
35640 REGB1 = TAG_Bool(0);
35641 REGB0 = REGB1;
35642 } else {
35643 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35644 REGB0 = REGB1;
35645 }
35646 }
35647 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35648 if (UNTAG_Bool(REGB0)) {
35649 /* parser/parser_prod.nit:6526 */
35650 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35651 if (UNTAG_Bool(REGB0)) {
35652 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6526);
35653 }
35654 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35655 /* parser/parser_prod.nit:6527 */
35656 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35657 if (UNTAG_Bool(REGB0)) {
35658 } else {
35659 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6527);
35660 }
35661 /* parser/parser_prod.nit:6528 */
35662 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35663 } else {
35664 /* parser/parser_prod.nit:6530 */
35665 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6530);
35666 }
35667 /* parser/parser_prod.nit:6532 */
35668 goto label1;
35669 }
35670 /* parser/parser_prod.nit:6534 */
35671 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35672 if (UNTAG_Bool(REGB0)) {
35673 } else {
35674 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6534);
35675 }
35676 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35677 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35678 if (UNTAG_Bool(REGB0)) {
35679 } else {
35680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35681 REGB0 = REGB1;
35682 }
35683 if (UNTAG_Bool(REGB0)) {
35684 /* parser/parser_prod.nit:6535 */
35685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35686 if (UNTAG_Bool(REGB0)) {
35687 } else {
35688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35689 if (UNTAG_Bool(REGB1)) {
35690 REGB1 = TAG_Bool(0);
35691 REGB0 = REGB1;
35692 } else {
35693 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35694 REGB0 = REGB1;
35695 }
35696 }
35697 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35698 if (UNTAG_Bool(REGB0)) {
35699 /* parser/parser_prod.nit:6536 */
35700 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35701 if (UNTAG_Bool(REGB0)) {
35702 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6536);
35703 }
35704 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35705 /* parser/parser_prod.nit:6537 */
35706 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35707 if (UNTAG_Bool(REGB0)) {
35708 } else {
35709 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6537);
35710 }
35711 /* parser/parser_prod.nit:6538 */
35712 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35713 } else {
35714 /* parser/parser_prod.nit:6540 */
35715 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6540);
35716 }
35717 /* parser/parser_prod.nit:6542 */
35718 goto label1;
35719 }
35720 label1: while(0);
35721 stack_frame_head = fra.me.prev;
35722 return;
35723 }
35724 static const char LOCATE_parser___parser_prod___ARangeExpr___visit_all[] = "parser_prod::ARangeExpr::(parser_prod::ANode::visit_all)";
35725 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
35726 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35727 val_t REGB0;
35728 val_t tmp;
35729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35730 fra.me.file = LOCATE_parser___parser_prod;
35731 fra.me.line = 6546;
35732 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
35733 fra.me.has_broke = 0;
35734 fra.me.REG_size = 3;
35735 fra.me.nitni_local_ref_head = NULL;
35736 fra.me.REG[0] = NIT_NULL;
35737 fra.me.REG[1] = NIT_NULL;
35738 fra.me.REG[2] = NIT_NULL;
35739 fra.me.REG[0] = p0;
35740 fra.me.REG[1] = p1;
35741 /* parser/parser_prod.nit:6548 */
35742 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35743 if (UNTAG_Bool(REGB0)) {
35744 } else {
35745 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6548);
35746 }
35747 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35748 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35749 /* parser/parser_prod.nit:6549 */
35750 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35751 if (UNTAG_Bool(REGB0)) {
35752 } else {
35753 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6549);
35754 }
35755 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35756 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35757 stack_frame_head = fra.me.prev;
35758 return;
35759 }
35760 static const char LOCATE_parser___parser_prod___ACrangeExpr___empty_init[] = "parser_prod::ACrangeExpr::empty_init";
35761 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
35762 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
35763 struct {struct stack_frame_t me;} fra;
35764 val_t tmp;
35765 if (init_table[itpos215]) return;
35766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35767 fra.me.file = LOCATE_parser___parser_prod;
35768 fra.me.line = 6553;
35769 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
35770 fra.me.has_broke = 0;
35771 fra.me.REG_size = 1;
35772 fra.me.nitni_local_ref_head = NULL;
35773 fra.me.REG[0] = NIT_NULL;
35774 fra.me.REG[0] = p0;
35775 stack_frame_head = fra.me.prev;
35776 init_table[itpos215] = 1;
35777 return;
35778 }
35779 static const char LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr[] = "parser_prod::ACrangeExpr::init_acrangeexpr";
35780 void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
35781 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
35782 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35783 val_t REGB0;
35784 val_t tmp;
35785 if (init_table[itpos216]) return;
35786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35787 fra.me.file = LOCATE_parser___parser_prod;
35788 fra.me.line = 6555;
35789 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
35790 fra.me.has_broke = 0;
35791 fra.me.REG_size = 6;
35792 fra.me.nitni_local_ref_head = NULL;
35793 fra.me.REG[0] = NIT_NULL;
35794 fra.me.REG[1] = NIT_NULL;
35795 fra.me.REG[2] = NIT_NULL;
35796 fra.me.REG[3] = NIT_NULL;
35797 fra.me.REG[4] = NIT_NULL;
35798 fra.me.REG[5] = NIT_NULL;
35799 fra.me.REG[0] = p0;
35800 fra.me.REG[1] = p1;
35801 fra.me.REG[2] = p2;
35802 fra.me.REG[3] = p3;
35803 fra.me.REG[4] = p4;
35804 /* parser/parser_prod.nit:6555 */
35805 fra.me.REG[5] = fra.me.REG[0];
35806 /* parser/parser_prod.nit:6562 */
35807 CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
35808 /* parser/parser_prod.nit:6563 */
35809 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35810 if (UNTAG_Bool(REGB0)) {
35811 } else {
35812 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6563);
35813 }
35814 ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[5]) = fra.me.REG[1];
35815 /* parser/parser_prod.nit:6564 */
35816 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35817 if (UNTAG_Bool(REGB0)) {
35818 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6564);
35819 }
35820 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
35821 /* parser/parser_prod.nit:6565 */
35822 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35823 if (UNTAG_Bool(REGB0)) {
35824 } else {
35825 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6565);
35826 }
35827 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
35828 /* parser/parser_prod.nit:6566 */
35829 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35830 if (UNTAG_Bool(REGB0)) {
35831 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6566);
35832 }
35833 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
35834 /* parser/parser_prod.nit:6567 */
35835 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
35836 if (UNTAG_Bool(REGB0)) {
35837 } else {
35838 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6567);
35839 }
35840 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[5]) = fra.me.REG[3];
35841 /* parser/parser_prod.nit:6568 */
35842 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35843 if (UNTAG_Bool(REGB0)) {
35844 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6568);
35845 }
35846 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
35847 /* parser/parser_prod.nit:6569 */
35848 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
35849 if (UNTAG_Bool(REGB0)) {
35850 } else {
35851 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6569);
35852 }
35853 ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[5]) = fra.me.REG[4];
35854 /* parser/parser_prod.nit:6570 */
35855 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35856 if (UNTAG_Bool(REGB0)) {
35857 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6570);
35858 }
35859 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
35860 stack_frame_head = fra.me.prev;
35861 init_table[itpos216] = 1;
35862 return;
35863 }
35864 static const char LOCATE_parser___parser_prod___ACrangeExpr___replace_child[] = "parser_prod::ACrangeExpr::(parser_prod::ANode::replace_child)";
35865 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35866 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35867 val_t REGB0;
35868 val_t REGB1;
35869 val_t tmp;
35870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35871 fra.me.file = LOCATE_parser___parser_prod;
35872 fra.me.line = 6573;
35873 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
35874 fra.me.has_broke = 0;
35875 fra.me.REG_size = 4;
35876 fra.me.nitni_local_ref_head = NULL;
35877 fra.me.REG[0] = NIT_NULL;
35878 fra.me.REG[1] = NIT_NULL;
35879 fra.me.REG[2] = NIT_NULL;
35880 fra.me.REG[3] = NIT_NULL;
35881 fra.me.REG[0] = p0;
35882 fra.me.REG[1] = p1;
35883 fra.me.REG[2] = p2;
35884 /* parser/parser_prod.nit:6575 */
35885 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
35886 if (UNTAG_Bool(REGB0)) {
35887 } else {
35888 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6575);
35889 }
35890 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
35891 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35892 if (UNTAG_Bool(REGB0)) {
35893 } else {
35894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35895 REGB0 = REGB1;
35896 }
35897 if (UNTAG_Bool(REGB0)) {
35898 /* parser/parser_prod.nit:6576 */
35899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35900 if (UNTAG_Bool(REGB0)) {
35901 } else {
35902 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35903 if (UNTAG_Bool(REGB1)) {
35904 REGB1 = TAG_Bool(0);
35905 REGB0 = REGB1;
35906 } else {
35907 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35908 REGB0 = REGB1;
35909 }
35910 }
35911 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35912 if (UNTAG_Bool(REGB0)) {
35913 /* parser/parser_prod.nit:6577 */
35914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35915 if (UNTAG_Bool(REGB0)) {
35916 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6577);
35917 }
35918 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35919 /* parser/parser_prod.nit:6578 */
35920 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*/;
35921 if (UNTAG_Bool(REGB0)) {
35922 } else {
35923 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6578);
35924 }
35925 /* parser/parser_prod.nit:6579 */
35926 ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
35927 } else {
35928 /* parser/parser_prod.nit:6581 */
35929 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6581);
35930 }
35931 /* parser/parser_prod.nit:6583 */
35932 goto label1;
35933 }
35934 /* parser/parser_prod.nit:6585 */
35935 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35936 if (UNTAG_Bool(REGB0)) {
35937 } else {
35938 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6585);
35939 }
35940 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35941 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35942 if (UNTAG_Bool(REGB0)) {
35943 } else {
35944 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35945 REGB0 = REGB1;
35946 }
35947 if (UNTAG_Bool(REGB0)) {
35948 /* parser/parser_prod.nit:6586 */
35949 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35950 if (UNTAG_Bool(REGB0)) {
35951 } else {
35952 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35953 if (UNTAG_Bool(REGB1)) {
35954 REGB1 = TAG_Bool(0);
35955 REGB0 = REGB1;
35956 } else {
35957 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35958 REGB0 = REGB1;
35959 }
35960 }
35961 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35962 if (UNTAG_Bool(REGB0)) {
35963 /* parser/parser_prod.nit:6587 */
35964 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35965 if (UNTAG_Bool(REGB0)) {
35966 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6587);
35967 }
35968 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35969 /* parser/parser_prod.nit:6588 */
35970 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35971 if (UNTAG_Bool(REGB0)) {
35972 } else {
35973 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6588);
35974 }
35975 /* parser/parser_prod.nit:6589 */
35976 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35977 } else {
35978 /* parser/parser_prod.nit:6591 */
35979 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6591);
35980 }
35981 /* parser/parser_prod.nit:6593 */
35982 goto label1;
35983 }
35984 /* parser/parser_prod.nit:6595 */
35985 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35986 if (UNTAG_Bool(REGB0)) {
35987 } else {
35988 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6595);
35989 }
35990 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35991 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35992 if (UNTAG_Bool(REGB0)) {
35993 } else {
35994 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35995 REGB0 = REGB1;
35996 }
35997 if (UNTAG_Bool(REGB0)) {
35998 /* parser/parser_prod.nit:6596 */
35999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36000 if (UNTAG_Bool(REGB0)) {
36001 } else {
36002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36003 if (UNTAG_Bool(REGB1)) {
36004 REGB1 = TAG_Bool(0);
36005 REGB0 = REGB1;
36006 } else {
36007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36008 REGB0 = REGB1;
36009 }
36010 }
36011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36012 if (UNTAG_Bool(REGB0)) {
36013 /* parser/parser_prod.nit:6597 */
36014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36015 if (UNTAG_Bool(REGB0)) {
36016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6597);
36017 }
36018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36019 /* parser/parser_prod.nit:6598 */
36020 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36021 if (UNTAG_Bool(REGB0)) {
36022 } else {
36023 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6598);
36024 }
36025 /* parser/parser_prod.nit:6599 */
36026 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
36027 } else {
36028 /* parser/parser_prod.nit:6601 */
36029 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6601);
36030 }
36031 /* parser/parser_prod.nit:6603 */
36032 goto label1;
36033 }
36034 /* parser/parser_prod.nit:6605 */
36035 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
36036 if (UNTAG_Bool(REGB0)) {
36037 } else {
36038 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6605);
36039 }
36040 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
36041 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36042 if (UNTAG_Bool(REGB0)) {
36043 } else {
36044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36045 REGB0 = REGB1;
36046 }
36047 if (UNTAG_Bool(REGB0)) {
36048 /* parser/parser_prod.nit:6606 */
36049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36050 if (UNTAG_Bool(REGB0)) {
36051 } else {
36052 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36053 if (UNTAG_Bool(REGB1)) {
36054 REGB1 = TAG_Bool(0);
36055 REGB0 = REGB1;
36056 } else {
36057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36058 REGB0 = REGB1;
36059 }
36060 }
36061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36062 if (UNTAG_Bool(REGB0)) {
36063 /* parser/parser_prod.nit:6607 */
36064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36065 if (UNTAG_Bool(REGB0)) {
36066 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6607);
36067 }
36068 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36069 /* parser/parser_prod.nit:6608 */
36070 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*/;
36071 if (UNTAG_Bool(REGB0)) {
36072 } else {
36073 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6608);
36074 }
36075 /* parser/parser_prod.nit:6609 */
36076 ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
36077 } else {
36078 /* parser/parser_prod.nit:6611 */
36079 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6611);
36080 }
36081 /* parser/parser_prod.nit:6613 */
36082 goto label1;
36083 }
36084 label1: while(0);
36085 stack_frame_head = fra.me.prev;
36086 return;
36087 }
36088 static const char LOCATE_parser___parser_prod___ACrangeExpr___visit_all[] = "parser_prod::ACrangeExpr::(parser_prod::ANode::visit_all)";
36089 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
36090 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36091 val_t REGB0;
36092 val_t tmp;
36093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36094 fra.me.file = LOCATE_parser___parser_prod;
36095 fra.me.line = 6617;
36096 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
36097 fra.me.has_broke = 0;
36098 fra.me.REG_size = 3;
36099 fra.me.nitni_local_ref_head = NULL;
36100 fra.me.REG[0] = NIT_NULL;
36101 fra.me.REG[1] = NIT_NULL;
36102 fra.me.REG[2] = NIT_NULL;
36103 fra.me.REG[0] = p0;
36104 fra.me.REG[1] = p1;
36105 /* parser/parser_prod.nit:6619 */
36106 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
36107 if (UNTAG_Bool(REGB0)) {
36108 } else {
36109 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6619);
36110 }
36111 fra.me.REG[2] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
36112 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36113 /* parser/parser_prod.nit:6620 */
36114 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36115 if (UNTAG_Bool(REGB0)) {
36116 } else {
36117 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6620);
36118 }
36119 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
36120 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36121 /* parser/parser_prod.nit:6621 */
36122 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
36123 if (UNTAG_Bool(REGB0)) {
36124 } else {
36125 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6621);
36126 }
36127 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
36128 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36129 /* parser/parser_prod.nit:6622 */
36130 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
36131 if (UNTAG_Bool(REGB0)) {
36132 } else {
36133 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6622);
36134 }
36135 fra.me.REG[0] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
36136 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36137 stack_frame_head = fra.me.prev;
36138 return;
36139 }
36140 static const char LOCATE_parser___parser_prod___AOrangeExpr___empty_init[] = "parser_prod::AOrangeExpr::empty_init";
36141 void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
36142 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
36143 struct {struct stack_frame_t me;} fra;
36144 val_t tmp;
36145 if (init_table[itpos217]) return;
36146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36147 fra.me.file = LOCATE_parser___parser_prod;
36148 fra.me.line = 6626;
36149 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
36150 fra.me.has_broke = 0;
36151 fra.me.REG_size = 1;
36152 fra.me.nitni_local_ref_head = NULL;
36153 fra.me.REG[0] = NIT_NULL;
36154 fra.me.REG[0] = p0;
36155 stack_frame_head = fra.me.prev;
36156 init_table[itpos217] = 1;
36157 return;
36158 }
36159 static const char LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr[] = "parser_prod::AOrangeExpr::init_aorangeexpr";
36160 void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
36161 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
36162 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
36163 val_t REGB0;
36164 val_t tmp;
36165 if (init_table[itpos218]) return;
36166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36167 fra.me.file = LOCATE_parser___parser_prod;
36168 fra.me.line = 6628;
36169 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
36170 fra.me.has_broke = 0;
36171 fra.me.REG_size = 6;
36172 fra.me.nitni_local_ref_head = NULL;
36173 fra.me.REG[0] = NIT_NULL;
36174 fra.me.REG[1] = NIT_NULL;
36175 fra.me.REG[2] = NIT_NULL;
36176 fra.me.REG[3] = NIT_NULL;
36177 fra.me.REG[4] = NIT_NULL;
36178 fra.me.REG[5] = NIT_NULL;
36179 fra.me.REG[0] = p0;
36180 fra.me.REG[1] = p1;
36181 fra.me.REG[2] = p2;
36182 fra.me.REG[3] = p3;
36183 fra.me.REG[4] = p4;
36184 /* parser/parser_prod.nit:6628 */
36185 fra.me.REG[5] = fra.me.REG[0];
36186 /* parser/parser_prod.nit:6635 */
36187 CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
36188 /* parser/parser_prod.nit:6636 */
36189 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36190 if (UNTAG_Bool(REGB0)) {
36191 } else {
36192 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6636);
36193 }
36194 ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[5]) = fra.me.REG[1];
36195 /* parser/parser_prod.nit:6637 */
36196 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36197 if (UNTAG_Bool(REGB0)) {
36198 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6637);
36199 }
36200 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
36201 /* parser/parser_prod.nit:6638 */
36202 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36203 if (UNTAG_Bool(REGB0)) {
36204 } else {
36205 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6638);
36206 }
36207 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
36208 /* parser/parser_prod.nit:6639 */
36209 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36210 if (UNTAG_Bool(REGB0)) {
36211 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6639);
36212 }
36213 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
36214 /* parser/parser_prod.nit:6640 */
36215 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36216 if (UNTAG_Bool(REGB0)) {
36217 } else {
36218 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6640);
36219 }
36220 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[5]) = fra.me.REG[3];
36221 /* parser/parser_prod.nit:6641 */
36222 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36223 if (UNTAG_Bool(REGB0)) {
36224 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6641);
36225 }
36226 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
36227 /* parser/parser_prod.nit:6642 */
36228 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
36229 if (UNTAG_Bool(REGB0)) {
36230 } else {
36231 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6642);
36232 }
36233 ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[5]) = fra.me.REG[4];
36234 /* parser/parser_prod.nit:6643 */
36235 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
36236 if (UNTAG_Bool(REGB0)) {
36237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6643);
36238 }
36239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
36240 stack_frame_head = fra.me.prev;
36241 init_table[itpos218] = 1;
36242 return;
36243 }
36244 static const char LOCATE_parser___parser_prod___AOrangeExpr___replace_child[] = "parser_prod::AOrangeExpr::(parser_prod::ANode::replace_child)";
36245 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
36246 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36247 val_t REGB0;
36248 val_t REGB1;
36249 val_t tmp;
36250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36251 fra.me.file = LOCATE_parser___parser_prod;
36252 fra.me.line = 6646;
36253 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
36254 fra.me.has_broke = 0;
36255 fra.me.REG_size = 4;
36256 fra.me.nitni_local_ref_head = NULL;
36257 fra.me.REG[0] = NIT_NULL;
36258 fra.me.REG[1] = NIT_NULL;
36259 fra.me.REG[2] = NIT_NULL;
36260 fra.me.REG[3] = NIT_NULL;
36261 fra.me.REG[0] = p0;
36262 fra.me.REG[1] = p1;
36263 fra.me.REG[2] = p2;
36264 /* parser/parser_prod.nit:6648 */
36265 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
36266 if (UNTAG_Bool(REGB0)) {
36267 } else {
36268 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6648);
36269 }
36270 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
36271 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36272 if (UNTAG_Bool(REGB0)) {
36273 } else {
36274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36275 REGB0 = REGB1;
36276 }
36277 if (UNTAG_Bool(REGB0)) {
36278 /* parser/parser_prod.nit:6649 */
36279 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36280 if (UNTAG_Bool(REGB0)) {
36281 } else {
36282 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36283 if (UNTAG_Bool(REGB1)) {
36284 REGB1 = TAG_Bool(0);
36285 REGB0 = REGB1;
36286 } else {
36287 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36288 REGB0 = REGB1;
36289 }
36290 }
36291 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36292 if (UNTAG_Bool(REGB0)) {
36293 /* parser/parser_prod.nit:6650 */
36294 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36295 if (UNTAG_Bool(REGB0)) {
36296 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6650);
36297 }
36298 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36299 /* parser/parser_prod.nit:6651 */
36300 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*/;
36301 if (UNTAG_Bool(REGB0)) {
36302 } else {
36303 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6651);
36304 }
36305 /* parser/parser_prod.nit:6652 */
36306 ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
36307 } else {
36308 /* parser/parser_prod.nit:6654 */
36309 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6654);
36310 }
36311 /* parser/parser_prod.nit:6656 */
36312 goto label1;
36313 }
36314 /* parser/parser_prod.nit:6658 */
36315 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36316 if (UNTAG_Bool(REGB0)) {
36317 } else {
36318 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6658);
36319 }
36320 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
36321 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36322 if (UNTAG_Bool(REGB0)) {
36323 } else {
36324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36325 REGB0 = REGB1;
36326 }
36327 if (UNTAG_Bool(REGB0)) {
36328 /* parser/parser_prod.nit:6659 */
36329 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36330 if (UNTAG_Bool(REGB0)) {
36331 } else {
36332 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36333 if (UNTAG_Bool(REGB1)) {
36334 REGB1 = TAG_Bool(0);
36335 REGB0 = REGB1;
36336 } else {
36337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36338 REGB0 = REGB1;
36339 }
36340 }
36341 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36342 if (UNTAG_Bool(REGB0)) {
36343 /* parser/parser_prod.nit:6660 */
36344 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36345 if (UNTAG_Bool(REGB0)) {
36346 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6660);
36347 }
36348 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36349 /* parser/parser_prod.nit:6661 */
36350 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36351 if (UNTAG_Bool(REGB0)) {
36352 } else {
36353 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6661);
36354 }
36355 /* parser/parser_prod.nit:6662 */
36356 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36357 } else {
36358 /* parser/parser_prod.nit:6664 */
36359 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6664);
36360 }
36361 /* parser/parser_prod.nit:6666 */
36362 goto label1;
36363 }
36364 /* parser/parser_prod.nit:6668 */
36365 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
36366 if (UNTAG_Bool(REGB0)) {
36367 } else {
36368 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6668);
36369 }
36370 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
36371 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36372 if (UNTAG_Bool(REGB0)) {
36373 } else {
36374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36375 REGB0 = REGB1;
36376 }
36377 if (UNTAG_Bool(REGB0)) {
36378 /* parser/parser_prod.nit:6669 */
36379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36380 if (UNTAG_Bool(REGB0)) {
36381 } else {
36382 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36383 if (UNTAG_Bool(REGB1)) {
36384 REGB1 = TAG_Bool(0);
36385 REGB0 = REGB1;
36386 } else {
36387 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36388 REGB0 = REGB1;
36389 }
36390 }
36391 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36392 if (UNTAG_Bool(REGB0)) {
36393 /* parser/parser_prod.nit:6670 */
36394 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36395 if (UNTAG_Bool(REGB0)) {
36396 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6670);
36397 }
36398 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36399 /* parser/parser_prod.nit:6671 */
36400 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36401 if (UNTAG_Bool(REGB0)) {
36402 } else {
36403 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6671);
36404 }
36405 /* parser/parser_prod.nit:6672 */
36406 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
36407 } else {
36408 /* parser/parser_prod.nit:6674 */
36409 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6674);
36410 }
36411 /* parser/parser_prod.nit:6676 */
36412 goto label1;
36413 }
36414 /* parser/parser_prod.nit:6678 */
36415 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
36416 if (UNTAG_Bool(REGB0)) {
36417 } else {
36418 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6678);
36419 }
36420 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
36421 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36422 if (UNTAG_Bool(REGB0)) {
36423 } else {
36424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36425 REGB0 = REGB1;
36426 }
36427 if (UNTAG_Bool(REGB0)) {
36428 /* parser/parser_prod.nit:6679 */
36429 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36430 if (UNTAG_Bool(REGB0)) {
36431 } else {
36432 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36433 if (UNTAG_Bool(REGB1)) {
36434 REGB1 = TAG_Bool(0);
36435 REGB0 = REGB1;
36436 } else {
36437 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36438 REGB0 = REGB1;
36439 }
36440 }
36441 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36442 if (UNTAG_Bool(REGB0)) {
36443 /* parser/parser_prod.nit:6680 */
36444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36445 if (UNTAG_Bool(REGB0)) {
36446 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6680);
36447 }
36448 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36449 /* parser/parser_prod.nit:6681 */
36450 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*/;
36451 if (UNTAG_Bool(REGB0)) {
36452 } else {
36453 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6681);
36454 }
36455 /* parser/parser_prod.nit:6682 */
36456 ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
36457 } else {
36458 /* parser/parser_prod.nit:6684 */
36459 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6684);
36460 }
36461 /* parser/parser_prod.nit:6686 */
36462 goto label1;
36463 }
36464 label1: while(0);
36465 stack_frame_head = fra.me.prev;
36466 return;
36467 }
36468 static const char LOCATE_parser___parser_prod___AOrangeExpr___visit_all[] = "parser_prod::AOrangeExpr::(parser_prod::ANode::visit_all)";
36469 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
36470 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36471 val_t REGB0;
36472 val_t tmp;
36473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36474 fra.me.file = LOCATE_parser___parser_prod;
36475 fra.me.line = 6690;
36476 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
36477 fra.me.has_broke = 0;
36478 fra.me.REG_size = 3;
36479 fra.me.nitni_local_ref_head = NULL;
36480 fra.me.REG[0] = NIT_NULL;
36481 fra.me.REG[1] = NIT_NULL;
36482 fra.me.REG[2] = NIT_NULL;
36483 fra.me.REG[0] = p0;
36484 fra.me.REG[1] = p1;
36485 /* parser/parser_prod.nit:6692 */
36486 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
36487 if (UNTAG_Bool(REGB0)) {
36488 } else {
36489 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6692);
36490 }
36491 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
36492 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36493 /* parser/parser_prod.nit:6693 */
36494 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36495 if (UNTAG_Bool(REGB0)) {
36496 } else {
36497 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6693);
36498 }
36499 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
36500 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36501 /* parser/parser_prod.nit:6694 */
36502 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
36503 if (UNTAG_Bool(REGB0)) {
36504 } else {
36505 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6694);
36506 }
36507 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
36508 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36509 /* parser/parser_prod.nit:6695 */
36510 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
36511 if (UNTAG_Bool(REGB0)) {
36512 } else {
36513 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6695);
36514 }
36515 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
36516 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36517 stack_frame_head = fra.me.prev;
36518 return;
36519 }
36520 static const char LOCATE_parser___parser_prod___AArrayExpr___empty_init[] = "parser_prod::AArrayExpr::empty_init";
36521 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
36522 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
36523 struct {struct stack_frame_t me;} fra;
36524 val_t tmp;
36525 if (init_table[itpos219]) return;
36526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36527 fra.me.file = LOCATE_parser___parser_prod;
36528 fra.me.line = 6699;
36529 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
36530 fra.me.has_broke = 0;
36531 fra.me.REG_size = 1;
36532 fra.me.nitni_local_ref_head = NULL;
36533 fra.me.REG[0] = NIT_NULL;
36534 fra.me.REG[0] = p0;
36535 stack_frame_head = fra.me.prev;
36536 init_table[itpos219] = 1;
36537 return;
36538 }
36539 static const char LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr[] = "parser_prod::AArrayExpr::init_aarrayexpr";
36540 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
36541 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
36542 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36543 val_t REGB0;
36544 val_t tmp;
36545 if (init_table[itpos220]) return;
36546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36547 fra.me.file = LOCATE_parser___parser_prod;
36548 fra.me.line = 6701;
36549 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
36550 fra.me.has_broke = 0;
36551 fra.me.REG_size = 3;
36552 fra.me.nitni_local_ref_head = NULL;
36553 fra.me.REG[0] = NIT_NULL;
36554 fra.me.REG[1] = NIT_NULL;
36555 fra.me.REG[2] = NIT_NULL;
36556 fra.me.REG[0] = p0;
36557 fra.me.REG[1] = p1;
36558 /* parser/parser_prod.nit:6701 */
36559 fra.me.REG[2] = fra.me.REG[0];
36560 /* parser/parser_prod.nit:6705 */
36561 CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36562 /* parser/parser_prod.nit:6706 */
36563 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36564 if (UNTAG_Bool(REGB0)) {
36565 } else {
36566 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6706);
36567 }
36568 ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[2]) = fra.me.REG[1];
36569 /* parser/parser_prod.nit:6707 */
36570 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36571 if (UNTAG_Bool(REGB0)) {
36572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6707);
36573 }
36574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36575 stack_frame_head = fra.me.prev;
36576 init_table[itpos220] = 1;
36577 return;
36578 }
36579 static const char LOCATE_parser___parser_prod___AArrayExpr___replace_child[] = "parser_prod::AArrayExpr::(parser_prod::ANode::replace_child)";
36580 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
36581 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36582 val_t REGB0;
36583 val_t REGB1;
36584 val_t tmp;
36585 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36586 fra.me.file = LOCATE_parser___parser_prod;
36587 fra.me.line = 6710;
36588 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
36589 fra.me.has_broke = 0;
36590 fra.me.REG_size = 4;
36591 fra.me.nitni_local_ref_head = NULL;
36592 fra.me.REG[0] = NIT_NULL;
36593 fra.me.REG[1] = NIT_NULL;
36594 fra.me.REG[2] = NIT_NULL;
36595 fra.me.REG[3] = NIT_NULL;
36596 fra.me.REG[0] = p0;
36597 fra.me.REG[1] = p1;
36598 fra.me.REG[2] = p2;
36599 /* parser/parser_prod.nit:6712 */
36600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36601 if (UNTAG_Bool(REGB0)) {
36602 } else {
36603 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6712);
36604 }
36605 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36606 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36607 if (UNTAG_Bool(REGB0)) {
36608 } else {
36609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36610 REGB0 = REGB1;
36611 }
36612 if (UNTAG_Bool(REGB0)) {
36613 /* parser/parser_prod.nit:6713 */
36614 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36615 if (UNTAG_Bool(REGB0)) {
36616 } else {
36617 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36618 if (UNTAG_Bool(REGB1)) {
36619 REGB1 = TAG_Bool(0);
36620 REGB0 = REGB1;
36621 } else {
36622 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36623 REGB0 = REGB1;
36624 }
36625 }
36626 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36627 if (UNTAG_Bool(REGB0)) {
36628 /* parser/parser_prod.nit:6714 */
36629 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36630 if (UNTAG_Bool(REGB0)) {
36631 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6714);
36632 }
36633 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36634 /* parser/parser_prod.nit:6715 */
36635 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
36636 if (UNTAG_Bool(REGB0)) {
36637 } else {
36638 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6715);
36639 }
36640 /* parser/parser_prod.nit:6716 */
36641 ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[2];
36642 } else {
36643 /* parser/parser_prod.nit:6718 */
36644 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6718);
36645 }
36646 /* parser/parser_prod.nit:6720 */
36647 goto label1;
36648 }
36649 label1: while(0);
36650 stack_frame_head = fra.me.prev;
36651 return;
36652 }
36653 static const char LOCATE_parser___parser_prod___AArrayExpr___visit_all[] = "parser_prod::AArrayExpr::(parser_prod::ANode::visit_all)";
36654 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
36655 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36656 val_t REGB0;
36657 val_t tmp;
36658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36659 fra.me.file = LOCATE_parser___parser_prod;
36660 fra.me.line = 6724;
36661 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
36662 fra.me.has_broke = 0;
36663 fra.me.REG_size = 2;
36664 fra.me.nitni_local_ref_head = NULL;
36665 fra.me.REG[0] = NIT_NULL;
36666 fra.me.REG[1] = NIT_NULL;
36667 fra.me.REG[0] = p0;
36668 fra.me.REG[1] = p1;
36669 /* parser/parser_prod.nit:6726 */
36670 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36671 if (UNTAG_Bool(REGB0)) {
36672 } else {
36673 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6726);
36674 }
36675 fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36676 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36677 stack_frame_head = fra.me.prev;
36678 return;
36679 }
36680 static const char LOCATE_parser___parser_prod___ASelfExpr___empty_init[] = "parser_prod::ASelfExpr::empty_init";
36681 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
36682 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
36683 struct {struct stack_frame_t me;} fra;
36684 val_t tmp;
36685 if (init_table[itpos221]) return;
36686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36687 fra.me.file = LOCATE_parser___parser_prod;
36688 fra.me.line = 6730;
36689 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
36690 fra.me.has_broke = 0;
36691 fra.me.REG_size = 1;
36692 fra.me.nitni_local_ref_head = NULL;
36693 fra.me.REG[0] = NIT_NULL;
36694 fra.me.REG[0] = p0;
36695 stack_frame_head = fra.me.prev;
36696 init_table[itpos221] = 1;
36697 return;
36698 }
36699 static const char LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr[] = "parser_prod::ASelfExpr::init_aselfexpr";
36700 void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
36701 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
36702 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36703 val_t REGB0;
36704 val_t tmp;
36705 if (init_table[itpos222]) return;
36706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36707 fra.me.file = LOCATE_parser___parser_prod;
36708 fra.me.line = 6732;
36709 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
36710 fra.me.has_broke = 0;
36711 fra.me.REG_size = 3;
36712 fra.me.nitni_local_ref_head = NULL;
36713 fra.me.REG[0] = NIT_NULL;
36714 fra.me.REG[1] = NIT_NULL;
36715 fra.me.REG[2] = NIT_NULL;
36716 fra.me.REG[0] = p0;
36717 fra.me.REG[1] = p1;
36718 /* parser/parser_prod.nit:6732 */
36719 fra.me.REG[2] = fra.me.REG[0];
36720 /* parser/parser_prod.nit:6736 */
36721 CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36722 /* parser/parser_prod.nit:6737 */
36723 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36724 if (UNTAG_Bool(REGB0)) {
36725 } else {
36726 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6737);
36727 }
36728 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]) = fra.me.REG[1];
36729 /* parser/parser_prod.nit:6738 */
36730 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36731 if (UNTAG_Bool(REGB0)) {
36732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6738);
36733 }
36734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36735 stack_frame_head = fra.me.prev;
36736 init_table[itpos222] = 1;
36737 return;
36738 }
36739 static const char LOCATE_parser___parser_prod___ASelfExpr___replace_child[] = "parser_prod::ASelfExpr::(parser_prod::ANode::replace_child)";
36740 void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
36741 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36742 val_t REGB0;
36743 val_t REGB1;
36744 val_t tmp;
36745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36746 fra.me.file = LOCATE_parser___parser_prod;
36747 fra.me.line = 6741;
36748 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
36749 fra.me.has_broke = 0;
36750 fra.me.REG_size = 4;
36751 fra.me.nitni_local_ref_head = NULL;
36752 fra.me.REG[0] = NIT_NULL;
36753 fra.me.REG[1] = NIT_NULL;
36754 fra.me.REG[2] = NIT_NULL;
36755 fra.me.REG[3] = NIT_NULL;
36756 fra.me.REG[0] = p0;
36757 fra.me.REG[1] = p1;
36758 fra.me.REG[2] = p2;
36759 /* parser/parser_prod.nit:6743 */
36760 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
36761 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
36762 if (UNTAG_Bool(REGB0)) {
36763 } else {
36764 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36765 if (UNTAG_Bool(REGB1)) {
36766 REGB1 = TAG_Bool(0);
36767 REGB0 = REGB1;
36768 } else {
36769 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36770 REGB0 = REGB1;
36771 }
36772 }
36773 if (UNTAG_Bool(REGB0)) {
36774 /* parser/parser_prod.nit:6744 */
36775 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36776 if (UNTAG_Bool(REGB0)) {
36777 } else {
36778 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36779 if (UNTAG_Bool(REGB1)) {
36780 REGB1 = TAG_Bool(0);
36781 REGB0 = REGB1;
36782 } else {
36783 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36784 REGB0 = REGB1;
36785 }
36786 }
36787 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36788 if (UNTAG_Bool(REGB0)) {
36789 /* parser/parser_prod.nit:6745 */
36790 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36791 if (UNTAG_Bool(REGB0)) {
36792 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6745);
36793 }
36794 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36795 /* parser/parser_prod.nit:6746 */
36796 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*/;
36797 if (UNTAG_Bool(REGB0)) {
36798 } else {
36799 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6746);
36800 }
36801 /* parser/parser_prod.nit:6747 */
36802 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
36803 } else {
36804 /* parser/parser_prod.nit:6749 */
36805 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6749);
36806 }
36807 /* parser/parser_prod.nit:6751 */
36808 goto label1;
36809 }
36810 label1: while(0);
36811 stack_frame_head = fra.me.prev;
36812 return;
36813 }
36814 static const char LOCATE_parser___parser_prod___ASelfExpr___visit_all[] = "parser_prod::ASelfExpr::(parser_prod::ANode::visit_all)";
36815 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
36816 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36817 val_t tmp;
36818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36819 fra.me.file = LOCATE_parser___parser_prod;
36820 fra.me.line = 6755;
36821 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
36822 fra.me.has_broke = 0;
36823 fra.me.REG_size = 2;
36824 fra.me.nitni_local_ref_head = NULL;
36825 fra.me.REG[0] = NIT_NULL;
36826 fra.me.REG[1] = NIT_NULL;
36827 fra.me.REG[0] = p0;
36828 fra.me.REG[1] = p1;
36829 /* parser/parser_prod.nit:6757 */
36830 fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
36831 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36832 stack_frame_head = fra.me.prev;
36833 return;
36834 }
36835 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init[] = "parser_prod::AImplicitSelfExpr::empty_init";
36836 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
36837 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
36838 struct {struct stack_frame_t me;} fra;
36839 val_t tmp;
36840 if (init_table[itpos223]) return;
36841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36842 fra.me.file = LOCATE_parser___parser_prod;
36843 fra.me.line = 6761;
36844 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
36845 fra.me.has_broke = 0;
36846 fra.me.REG_size = 1;
36847 fra.me.nitni_local_ref_head = NULL;
36848 fra.me.REG[0] = NIT_NULL;
36849 fra.me.REG[0] = p0;
36850 stack_frame_head = fra.me.prev;
36851 init_table[itpos223] = 1;
36852 return;
36853 }
36854 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr[] = "parser_prod::AImplicitSelfExpr::init_aimplicitselfexpr";
36855 void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
36856 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
36857 struct {struct stack_frame_t me;} fra;
36858 val_t tmp;
36859 if (init_table[itpos224]) return;
36860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36861 fra.me.file = LOCATE_parser___parser_prod;
36862 fra.me.line = 6763;
36863 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
36864 fra.me.has_broke = 0;
36865 fra.me.REG_size = 1;
36866 fra.me.nitni_local_ref_head = NULL;
36867 fra.me.REG[0] = NIT_NULL;
36868 fra.me.REG[0] = p0;
36869 /* parser/parser_prod.nit:6765 */
36870 CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36871 stack_frame_head = fra.me.prev;
36872 init_table[itpos224] = 1;
36873 return;
36874 }
36875 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child[] = "parser_prod::AImplicitSelfExpr::(parser_prod::ANode::replace_child)";
36876 void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
36877 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36878 val_t tmp;
36879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36880 fra.me.file = LOCATE_parser___parser_prod;
36881 fra.me.line = 6768;
36882 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
36883 fra.me.has_broke = 0;
36884 fra.me.REG_size = 3;
36885 fra.me.nitni_local_ref_head = NULL;
36886 fra.me.REG[0] = NIT_NULL;
36887 fra.me.REG[1] = NIT_NULL;
36888 fra.me.REG[2] = NIT_NULL;
36889 fra.me.REG[0] = p0;
36890 fra.me.REG[1] = p1;
36891 fra.me.REG[2] = p2;
36892 stack_frame_head = fra.me.prev;
36893 return;
36894 }
36895 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all[] = "parser_prod::AImplicitSelfExpr::(parser_prod::ANode::visit_all)";
36896 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
36897 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36898 val_t tmp;
36899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36900 fra.me.file = LOCATE_parser___parser_prod;
36901 fra.me.line = 6772;
36902 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
36903 fra.me.has_broke = 0;
36904 fra.me.REG_size = 2;
36905 fra.me.nitni_local_ref_head = NULL;
36906 fra.me.REG[0] = NIT_NULL;
36907 fra.me.REG[1] = NIT_NULL;
36908 fra.me.REG[0] = p0;
36909 fra.me.REG[1] = p1;
36910 stack_frame_head = fra.me.prev;
36911 return;
36912 }
36913 static const char LOCATE_parser___parser_prod___ATrueExpr___empty_init[] = "parser_prod::ATrueExpr::empty_init";
36914 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
36915 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
36916 struct {struct stack_frame_t me;} fra;
36917 val_t tmp;
36918 if (init_table[itpos225]) return;
36919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36920 fra.me.file = LOCATE_parser___parser_prod;
36921 fra.me.line = 6777;
36922 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
36923 fra.me.has_broke = 0;
36924 fra.me.REG_size = 1;
36925 fra.me.nitni_local_ref_head = NULL;
36926 fra.me.REG[0] = NIT_NULL;
36927 fra.me.REG[0] = p0;
36928 stack_frame_head = fra.me.prev;
36929 init_table[itpos225] = 1;
36930 return;
36931 }
36932 static const char LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr[] = "parser_prod::ATrueExpr::init_atrueexpr";
36933 void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
36934 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
36935 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36936 val_t REGB0;
36937 val_t tmp;
36938 if (init_table[itpos226]) return;
36939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36940 fra.me.file = LOCATE_parser___parser_prod;
36941 fra.me.line = 6779;
36942 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
36943 fra.me.has_broke = 0;
36944 fra.me.REG_size = 3;
36945 fra.me.nitni_local_ref_head = NULL;
36946 fra.me.REG[0] = NIT_NULL;
36947 fra.me.REG[1] = NIT_NULL;
36948 fra.me.REG[2] = NIT_NULL;
36949 fra.me.REG[0] = p0;
36950 fra.me.REG[1] = p1;
36951 /* parser/parser_prod.nit:6779 */
36952 fra.me.REG[2] = fra.me.REG[0];
36953 /* parser/parser_prod.nit:6783 */
36954 CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36955 /* parser/parser_prod.nit:6784 */
36956 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36957 if (UNTAG_Bool(REGB0)) {
36958 } else {
36959 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6784);
36960 }
36961 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]) = fra.me.REG[1];
36962 /* parser/parser_prod.nit:6785 */
36963 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36964 if (UNTAG_Bool(REGB0)) {
36965 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6785);
36966 }
36967 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36968 stack_frame_head = fra.me.prev;
36969 init_table[itpos226] = 1;
36970 return;
36971 }
36972 static const char LOCATE_parser___parser_prod___ATrueExpr___replace_child[] = "parser_prod::ATrueExpr::(parser_prod::ANode::replace_child)";
36973 void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
36974 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36975 val_t REGB0;
36976 val_t REGB1;
36977 val_t tmp;
36978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36979 fra.me.file = LOCATE_parser___parser_prod;
36980 fra.me.line = 6788;
36981 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
36982 fra.me.has_broke = 0;
36983 fra.me.REG_size = 4;
36984 fra.me.nitni_local_ref_head = NULL;
36985 fra.me.REG[0] = NIT_NULL;
36986 fra.me.REG[1] = NIT_NULL;
36987 fra.me.REG[2] = NIT_NULL;
36988 fra.me.REG[3] = NIT_NULL;
36989 fra.me.REG[0] = p0;
36990 fra.me.REG[1] = p1;
36991 fra.me.REG[2] = p2;
36992 /* parser/parser_prod.nit:6790 */
36993 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
36994 if (UNTAG_Bool(REGB0)) {
36995 } else {
36996 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6790);
36997 }
36998 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
36999 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37000 if (UNTAG_Bool(REGB0)) {
37001 } else {
37002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37003 REGB0 = REGB1;
37004 }
37005 if (UNTAG_Bool(REGB0)) {
37006 /* parser/parser_prod.nit:6791 */
37007 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37008 if (UNTAG_Bool(REGB0)) {
37009 } else {
37010 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37011 if (UNTAG_Bool(REGB1)) {
37012 REGB1 = TAG_Bool(0);
37013 REGB0 = REGB1;
37014 } else {
37015 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37016 REGB0 = REGB1;
37017 }
37018 }
37019 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37020 if (UNTAG_Bool(REGB0)) {
37021 /* parser/parser_prod.nit:6792 */
37022 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37023 if (UNTAG_Bool(REGB0)) {
37024 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6792);
37025 }
37026 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37027 /* parser/parser_prod.nit:6793 */
37028 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*/;
37029 if (UNTAG_Bool(REGB0)) {
37030 } else {
37031 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6793);
37032 }
37033 /* parser/parser_prod.nit:6794 */
37034 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
37035 } else {
37036 /* parser/parser_prod.nit:6796 */
37037 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6796);
37038 }
37039 /* parser/parser_prod.nit:6798 */
37040 goto label1;
37041 }
37042 label1: while(0);
37043 stack_frame_head = fra.me.prev;
37044 return;
37045 }
37046 static const char LOCATE_parser___parser_prod___ATrueExpr___visit_all[] = "parser_prod::ATrueExpr::(parser_prod::ANode::visit_all)";
37047 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
37048 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37049 val_t REGB0;
37050 val_t tmp;
37051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37052 fra.me.file = LOCATE_parser___parser_prod;
37053 fra.me.line = 6802;
37054 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
37055 fra.me.has_broke = 0;
37056 fra.me.REG_size = 2;
37057 fra.me.nitni_local_ref_head = NULL;
37058 fra.me.REG[0] = NIT_NULL;
37059 fra.me.REG[1] = NIT_NULL;
37060 fra.me.REG[0] = p0;
37061 fra.me.REG[1] = p1;
37062 /* parser/parser_prod.nit:6804 */
37063 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
37064 if (UNTAG_Bool(REGB0)) {
37065 } else {
37066 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6804);
37067 }
37068 fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
37069 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37070 stack_frame_head = fra.me.prev;
37071 return;
37072 }
37073 static const char LOCATE_parser___parser_prod___AFalseExpr___empty_init[] = "parser_prod::AFalseExpr::empty_init";
37074 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
37075 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
37076 struct {struct stack_frame_t me;} fra;
37077 val_t tmp;
37078 if (init_table[itpos227]) return;
37079 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37080 fra.me.file = LOCATE_parser___parser_prod;
37081 fra.me.line = 6808;
37082 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
37083 fra.me.has_broke = 0;
37084 fra.me.REG_size = 1;
37085 fra.me.nitni_local_ref_head = NULL;
37086 fra.me.REG[0] = NIT_NULL;
37087 fra.me.REG[0] = p0;
37088 stack_frame_head = fra.me.prev;
37089 init_table[itpos227] = 1;
37090 return;
37091 }
37092 static const char LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr[] = "parser_prod::AFalseExpr::init_afalseexpr";
37093 void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
37094 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
37095 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37096 val_t REGB0;
37097 val_t tmp;
37098 if (init_table[itpos228]) return;
37099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37100 fra.me.file = LOCATE_parser___parser_prod;
37101 fra.me.line = 6810;
37102 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
37103 fra.me.has_broke = 0;
37104 fra.me.REG_size = 3;
37105 fra.me.nitni_local_ref_head = NULL;
37106 fra.me.REG[0] = NIT_NULL;
37107 fra.me.REG[1] = NIT_NULL;
37108 fra.me.REG[2] = NIT_NULL;
37109 fra.me.REG[0] = p0;
37110 fra.me.REG[1] = p1;
37111 /* parser/parser_prod.nit:6810 */
37112 fra.me.REG[2] = fra.me.REG[0];
37113 /* parser/parser_prod.nit:6814 */
37114 CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37115 /* parser/parser_prod.nit:6815 */
37116 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37117 if (UNTAG_Bool(REGB0)) {
37118 } else {
37119 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6815);
37120 }
37121 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]) = fra.me.REG[1];
37122 /* parser/parser_prod.nit:6816 */
37123 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37124 if (UNTAG_Bool(REGB0)) {
37125 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6816);
37126 }
37127 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37128 stack_frame_head = fra.me.prev;
37129 init_table[itpos228] = 1;
37130 return;
37131 }
37132 static const char LOCATE_parser___parser_prod___AFalseExpr___replace_child[] = "parser_prod::AFalseExpr::(parser_prod::ANode::replace_child)";
37133 void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
37134 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37135 val_t REGB0;
37136 val_t REGB1;
37137 val_t tmp;
37138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37139 fra.me.file = LOCATE_parser___parser_prod;
37140 fra.me.line = 6819;
37141 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
37142 fra.me.has_broke = 0;
37143 fra.me.REG_size = 4;
37144 fra.me.nitni_local_ref_head = NULL;
37145 fra.me.REG[0] = NIT_NULL;
37146 fra.me.REG[1] = NIT_NULL;
37147 fra.me.REG[2] = NIT_NULL;
37148 fra.me.REG[3] = NIT_NULL;
37149 fra.me.REG[0] = p0;
37150 fra.me.REG[1] = p1;
37151 fra.me.REG[2] = p2;
37152 /* parser/parser_prod.nit:6821 */
37153 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
37154 if (UNTAG_Bool(REGB0)) {
37155 } else {
37156 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6821);
37157 }
37158 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
37159 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37160 if (UNTAG_Bool(REGB0)) {
37161 } else {
37162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37163 REGB0 = REGB1;
37164 }
37165 if (UNTAG_Bool(REGB0)) {
37166 /* parser/parser_prod.nit:6822 */
37167 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37168 if (UNTAG_Bool(REGB0)) {
37169 } else {
37170 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37171 if (UNTAG_Bool(REGB1)) {
37172 REGB1 = TAG_Bool(0);
37173 REGB0 = REGB1;
37174 } else {
37175 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37176 REGB0 = REGB1;
37177 }
37178 }
37179 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37180 if (UNTAG_Bool(REGB0)) {
37181 /* parser/parser_prod.nit:6823 */
37182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37183 if (UNTAG_Bool(REGB0)) {
37184 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6823);
37185 }
37186 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37187 /* parser/parser_prod.nit:6824 */
37188 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*/;
37189 if (UNTAG_Bool(REGB0)) {
37190 } else {
37191 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6824);
37192 }
37193 /* parser/parser_prod.nit:6825 */
37194 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
37195 } else {
37196 /* parser/parser_prod.nit:6827 */
37197 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6827);
37198 }
37199 /* parser/parser_prod.nit:6829 */
37200 goto label1;
37201 }
37202 label1: while(0);
37203 stack_frame_head = fra.me.prev;
37204 return;
37205 }
37206 static const char LOCATE_parser___parser_prod___AFalseExpr___visit_all[] = "parser_prod::AFalseExpr::(parser_prod::ANode::visit_all)";
37207 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
37208 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37209 val_t REGB0;
37210 val_t tmp;
37211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37212 fra.me.file = LOCATE_parser___parser_prod;
37213 fra.me.line = 6833;
37214 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
37215 fra.me.has_broke = 0;
37216 fra.me.REG_size = 2;
37217 fra.me.nitni_local_ref_head = NULL;
37218 fra.me.REG[0] = NIT_NULL;
37219 fra.me.REG[1] = NIT_NULL;
37220 fra.me.REG[0] = p0;
37221 fra.me.REG[1] = p1;
37222 /* parser/parser_prod.nit:6835 */
37223 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
37224 if (UNTAG_Bool(REGB0)) {
37225 } else {
37226 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6835);
37227 }
37228 fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
37229 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37230 stack_frame_head = fra.me.prev;
37231 return;
37232 }
37233 static const char LOCATE_parser___parser_prod___ANullExpr___empty_init[] = "parser_prod::ANullExpr::empty_init";
37234 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
37235 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
37236 struct {struct stack_frame_t me;} fra;
37237 val_t tmp;
37238 if (init_table[itpos229]) return;
37239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37240 fra.me.file = LOCATE_parser___parser_prod;
37241 fra.me.line = 6839;
37242 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
37243 fra.me.has_broke = 0;
37244 fra.me.REG_size = 1;
37245 fra.me.nitni_local_ref_head = NULL;
37246 fra.me.REG[0] = NIT_NULL;
37247 fra.me.REG[0] = p0;
37248 stack_frame_head = fra.me.prev;
37249 init_table[itpos229] = 1;
37250 return;
37251 }
37252 static const char LOCATE_parser___parser_prod___ANullExpr___init_anullexpr[] = "parser_prod::ANullExpr::init_anullexpr";
37253 void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
37254 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
37255 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37256 val_t REGB0;
37257 val_t tmp;
37258 if (init_table[itpos230]) return;
37259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37260 fra.me.file = LOCATE_parser___parser_prod;
37261 fra.me.line = 6841;
37262 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
37263 fra.me.has_broke = 0;
37264 fra.me.REG_size = 3;
37265 fra.me.nitni_local_ref_head = NULL;
37266 fra.me.REG[0] = NIT_NULL;
37267 fra.me.REG[1] = NIT_NULL;
37268 fra.me.REG[2] = NIT_NULL;
37269 fra.me.REG[0] = p0;
37270 fra.me.REG[1] = p1;
37271 /* parser/parser_prod.nit:6841 */
37272 fra.me.REG[2] = fra.me.REG[0];
37273 /* parser/parser_prod.nit:6845 */
37274 CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37275 /* parser/parser_prod.nit:6846 */
37276 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37277 if (UNTAG_Bool(REGB0)) {
37278 } else {
37279 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6846);
37280 }
37281 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]) = fra.me.REG[1];
37282 /* parser/parser_prod.nit:6847 */
37283 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37284 if (UNTAG_Bool(REGB0)) {
37285 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6847);
37286 }
37287 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37288 stack_frame_head = fra.me.prev;
37289 init_table[itpos230] = 1;
37290 return;
37291 }
37292 static const char LOCATE_parser___parser_prod___ANullExpr___replace_child[] = "parser_prod::ANullExpr::(parser_prod::ANode::replace_child)";
37293 void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
37294 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37295 val_t REGB0;
37296 val_t REGB1;
37297 val_t tmp;
37298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37299 fra.me.file = LOCATE_parser___parser_prod;
37300 fra.me.line = 6850;
37301 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
37302 fra.me.has_broke = 0;
37303 fra.me.REG_size = 4;
37304 fra.me.nitni_local_ref_head = NULL;
37305 fra.me.REG[0] = NIT_NULL;
37306 fra.me.REG[1] = NIT_NULL;
37307 fra.me.REG[2] = NIT_NULL;
37308 fra.me.REG[3] = NIT_NULL;
37309 fra.me.REG[0] = p0;
37310 fra.me.REG[1] = p1;
37311 fra.me.REG[2] = p2;
37312 /* parser/parser_prod.nit:6852 */
37313 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
37314 if (UNTAG_Bool(REGB0)) {
37315 } else {
37316 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6852);
37317 }
37318 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
37319 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37320 if (UNTAG_Bool(REGB0)) {
37321 } else {
37322 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37323 REGB0 = REGB1;
37324 }
37325 if (UNTAG_Bool(REGB0)) {
37326 /* parser/parser_prod.nit:6853 */
37327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37328 if (UNTAG_Bool(REGB0)) {
37329 } else {
37330 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37331 if (UNTAG_Bool(REGB1)) {
37332 REGB1 = TAG_Bool(0);
37333 REGB0 = REGB1;
37334 } else {
37335 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37336 REGB0 = REGB1;
37337 }
37338 }
37339 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37340 if (UNTAG_Bool(REGB0)) {
37341 /* parser/parser_prod.nit:6854 */
37342 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37343 if (UNTAG_Bool(REGB0)) {
37344 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6854);
37345 }
37346 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37347 /* parser/parser_prod.nit:6855 */
37348 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*/;
37349 if (UNTAG_Bool(REGB0)) {
37350 } else {
37351 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6855);
37352 }
37353 /* parser/parser_prod.nit:6856 */
37354 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
37355 } else {
37356 /* parser/parser_prod.nit:6858 */
37357 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6858);
37358 }
37359 /* parser/parser_prod.nit:6860 */
37360 goto label1;
37361 }
37362 label1: while(0);
37363 stack_frame_head = fra.me.prev;
37364 return;
37365 }
37366 static const char LOCATE_parser___parser_prod___ANullExpr___visit_all[] = "parser_prod::ANullExpr::(parser_prod::ANode::visit_all)";
37367 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
37368 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37369 val_t REGB0;
37370 val_t tmp;
37371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37372 fra.me.file = LOCATE_parser___parser_prod;
37373 fra.me.line = 6864;
37374 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
37375 fra.me.has_broke = 0;
37376 fra.me.REG_size = 2;
37377 fra.me.nitni_local_ref_head = NULL;
37378 fra.me.REG[0] = NIT_NULL;
37379 fra.me.REG[1] = NIT_NULL;
37380 fra.me.REG[0] = p0;
37381 fra.me.REG[1] = p1;
37382 /* parser/parser_prod.nit:6866 */
37383 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
37384 if (UNTAG_Bool(REGB0)) {
37385 } else {
37386 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6866);
37387 }
37388 fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
37389 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37390 stack_frame_head = fra.me.prev;
37391 return;
37392 }
37393 static const char LOCATE_parser___parser_prod___AIntExpr___empty_init[] = "parser_prod::AIntExpr::empty_init";
37394 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
37395 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
37396 struct {struct stack_frame_t me;} fra;
37397 val_t tmp;
37398 if (init_table[itpos231]) return;
37399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37400 fra.me.file = LOCATE_parser___parser_prod;
37401 fra.me.line = 6870;
37402 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
37403 fra.me.has_broke = 0;
37404 fra.me.REG_size = 1;
37405 fra.me.nitni_local_ref_head = NULL;
37406 fra.me.REG[0] = NIT_NULL;
37407 fra.me.REG[0] = p0;
37408 stack_frame_head = fra.me.prev;
37409 init_table[itpos231] = 1;
37410 return;
37411 }
37412 static const char LOCATE_parser___parser_prod___AIntExpr___init_aintexpr[] = "parser_prod::AIntExpr::init_aintexpr";
37413 void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
37414 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
37415 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37416 val_t REGB0;
37417 val_t tmp;
37418 if (init_table[itpos232]) return;
37419 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37420 fra.me.file = LOCATE_parser___parser_prod;
37421 fra.me.line = 6872;
37422 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
37423 fra.me.has_broke = 0;
37424 fra.me.REG_size = 3;
37425 fra.me.nitni_local_ref_head = NULL;
37426 fra.me.REG[0] = NIT_NULL;
37427 fra.me.REG[1] = NIT_NULL;
37428 fra.me.REG[2] = NIT_NULL;
37429 fra.me.REG[0] = p0;
37430 fra.me.REG[1] = p1;
37431 /* parser/parser_prod.nit:6872 */
37432 fra.me.REG[2] = fra.me.REG[0];
37433 /* parser/parser_prod.nit:6876 */
37434 CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37435 /* parser/parser_prod.nit:6877 */
37436 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37437 if (UNTAG_Bool(REGB0)) {
37438 } else {
37439 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6877);
37440 }
37441 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]) = fra.me.REG[1];
37442 /* parser/parser_prod.nit:6878 */
37443 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37444 if (UNTAG_Bool(REGB0)) {
37445 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6878);
37446 }
37447 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37448 stack_frame_head = fra.me.prev;
37449 init_table[itpos232] = 1;
37450 return;
37451 }
37452 static const char LOCATE_parser___parser_prod___AIntExpr___replace_child[] = "parser_prod::AIntExpr::(parser_prod::ANode::replace_child)";
37453 void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
37454 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37455 val_t REGB0;
37456 val_t REGB1;
37457 val_t tmp;
37458 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37459 fra.me.file = LOCATE_parser___parser_prod;
37460 fra.me.line = 6881;
37461 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
37462 fra.me.has_broke = 0;
37463 fra.me.REG_size = 4;
37464 fra.me.nitni_local_ref_head = NULL;
37465 fra.me.REG[0] = NIT_NULL;
37466 fra.me.REG[1] = NIT_NULL;
37467 fra.me.REG[2] = NIT_NULL;
37468 fra.me.REG[3] = NIT_NULL;
37469 fra.me.REG[0] = p0;
37470 fra.me.REG[1] = p1;
37471 fra.me.REG[2] = p2;
37472 /* parser/parser_prod.nit:6883 */
37473 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
37474 if (UNTAG_Bool(REGB0)) {
37475 } else {
37476 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6883);
37477 }
37478 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
37479 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37480 if (UNTAG_Bool(REGB0)) {
37481 } else {
37482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37483 REGB0 = REGB1;
37484 }
37485 if (UNTAG_Bool(REGB0)) {
37486 /* parser/parser_prod.nit:6884 */
37487 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37488 if (UNTAG_Bool(REGB0)) {
37489 } else {
37490 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37491 if (UNTAG_Bool(REGB1)) {
37492 REGB1 = TAG_Bool(0);
37493 REGB0 = REGB1;
37494 } else {
37495 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37496 REGB0 = REGB1;
37497 }
37498 }
37499 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37500 if (UNTAG_Bool(REGB0)) {
37501 /* parser/parser_prod.nit:6885 */
37502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37503 if (UNTAG_Bool(REGB0)) {
37504 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6885);
37505 }
37506 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37507 /* parser/parser_prod.nit:6886 */
37508 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*/;
37509 if (UNTAG_Bool(REGB0)) {
37510 } else {
37511 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6886);
37512 }
37513 /* parser/parser_prod.nit:6887 */
37514 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
37515 } else {
37516 /* parser/parser_prod.nit:6889 */
37517 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6889);
37518 }
37519 /* parser/parser_prod.nit:6891 */
37520 goto label1;
37521 }
37522 label1: while(0);
37523 stack_frame_head = fra.me.prev;
37524 return;
37525 }
37526 static const char LOCATE_parser___parser_prod___AIntExpr___visit_all[] = "parser_prod::AIntExpr::(parser_prod::ANode::visit_all)";
37527 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
37528 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37529 val_t REGB0;
37530 val_t tmp;
37531 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37532 fra.me.file = LOCATE_parser___parser_prod;
37533 fra.me.line = 6895;
37534 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
37535 fra.me.has_broke = 0;
37536 fra.me.REG_size = 2;
37537 fra.me.nitni_local_ref_head = NULL;
37538 fra.me.REG[0] = NIT_NULL;
37539 fra.me.REG[1] = NIT_NULL;
37540 fra.me.REG[0] = p0;
37541 fra.me.REG[1] = p1;
37542 /* parser/parser_prod.nit:6897 */
37543 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
37544 if (UNTAG_Bool(REGB0)) {
37545 } else {
37546 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6897);
37547 }
37548 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
37549 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37550 stack_frame_head = fra.me.prev;
37551 return;
37552 }
37553 static const char LOCATE_parser___parser_prod___AFloatExpr___empty_init[] = "parser_prod::AFloatExpr::empty_init";
37554 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
37555 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
37556 struct {struct stack_frame_t me;} fra;
37557 val_t tmp;
37558 if (init_table[itpos233]) return;
37559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37560 fra.me.file = LOCATE_parser___parser_prod;
37561 fra.me.line = 6901;
37562 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
37563 fra.me.has_broke = 0;
37564 fra.me.REG_size = 1;
37565 fra.me.nitni_local_ref_head = NULL;
37566 fra.me.REG[0] = NIT_NULL;
37567 fra.me.REG[0] = p0;
37568 stack_frame_head = fra.me.prev;
37569 init_table[itpos233] = 1;
37570 return;
37571 }
37572 static const char LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr[] = "parser_prod::AFloatExpr::init_afloatexpr";
37573 void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
37574 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
37575 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37576 val_t REGB0;
37577 val_t tmp;
37578 if (init_table[itpos234]) return;
37579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37580 fra.me.file = LOCATE_parser___parser_prod;
37581 fra.me.line = 6903;
37582 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
37583 fra.me.has_broke = 0;
37584 fra.me.REG_size = 3;
37585 fra.me.nitni_local_ref_head = NULL;
37586 fra.me.REG[0] = NIT_NULL;
37587 fra.me.REG[1] = NIT_NULL;
37588 fra.me.REG[2] = NIT_NULL;
37589 fra.me.REG[0] = p0;
37590 fra.me.REG[1] = p1;
37591 /* parser/parser_prod.nit:6903 */
37592 fra.me.REG[2] = fra.me.REG[0];
37593 /* parser/parser_prod.nit:6907 */
37594 CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37595 /* parser/parser_prod.nit:6908 */
37596 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37597 if (UNTAG_Bool(REGB0)) {
37598 } else {
37599 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6908);
37600 }
37601 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]) = fra.me.REG[1];
37602 /* parser/parser_prod.nit:6909 */
37603 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37604 if (UNTAG_Bool(REGB0)) {
37605 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6909);
37606 }
37607 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37608 stack_frame_head = fra.me.prev;
37609 init_table[itpos234] = 1;
37610 return;
37611 }
37612 static const char LOCATE_parser___parser_prod___AFloatExpr___replace_child[] = "parser_prod::AFloatExpr::(parser_prod::ANode::replace_child)";
37613 void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
37614 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37615 val_t REGB0;
37616 val_t REGB1;
37617 val_t tmp;
37618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37619 fra.me.file = LOCATE_parser___parser_prod;
37620 fra.me.line = 6912;
37621 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
37622 fra.me.has_broke = 0;
37623 fra.me.REG_size = 4;
37624 fra.me.nitni_local_ref_head = NULL;
37625 fra.me.REG[0] = NIT_NULL;
37626 fra.me.REG[1] = NIT_NULL;
37627 fra.me.REG[2] = NIT_NULL;
37628 fra.me.REG[3] = NIT_NULL;
37629 fra.me.REG[0] = p0;
37630 fra.me.REG[1] = p1;
37631 fra.me.REG[2] = p2;
37632 /* parser/parser_prod.nit:6914 */
37633 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
37634 if (UNTAG_Bool(REGB0)) {
37635 } else {
37636 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6914);
37637 }
37638 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
37639 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37640 if (UNTAG_Bool(REGB0)) {
37641 } else {
37642 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37643 REGB0 = REGB1;
37644 }
37645 if (UNTAG_Bool(REGB0)) {
37646 /* parser/parser_prod.nit:6915 */
37647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37648 if (UNTAG_Bool(REGB0)) {
37649 } else {
37650 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37651 if (UNTAG_Bool(REGB1)) {
37652 REGB1 = TAG_Bool(0);
37653 REGB0 = REGB1;
37654 } else {
37655 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37656 REGB0 = REGB1;
37657 }
37658 }
37659 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37660 if (UNTAG_Bool(REGB0)) {
37661 /* parser/parser_prod.nit:6916 */
37662 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37663 if (UNTAG_Bool(REGB0)) {
37664 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6916);
37665 }
37666 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37667 /* parser/parser_prod.nit:6917 */
37668 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*/;
37669 if (UNTAG_Bool(REGB0)) {
37670 } else {
37671 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6917);
37672 }
37673 /* parser/parser_prod.nit:6918 */
37674 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
37675 } else {
37676 /* parser/parser_prod.nit:6920 */
37677 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6920);
37678 }
37679 /* parser/parser_prod.nit:6922 */
37680 goto label1;
37681 }
37682 label1: while(0);
37683 stack_frame_head = fra.me.prev;
37684 return;
37685 }
37686 static const char LOCATE_parser___parser_prod___AFloatExpr___visit_all[] = "parser_prod::AFloatExpr::(parser_prod::ANode::visit_all)";
37687 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
37688 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37689 val_t REGB0;
37690 val_t tmp;
37691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37692 fra.me.file = LOCATE_parser___parser_prod;
37693 fra.me.line = 6926;
37694 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
37695 fra.me.has_broke = 0;
37696 fra.me.REG_size = 2;
37697 fra.me.nitni_local_ref_head = NULL;
37698 fra.me.REG[0] = NIT_NULL;
37699 fra.me.REG[1] = NIT_NULL;
37700 fra.me.REG[0] = p0;
37701 fra.me.REG[1] = p1;
37702 /* parser/parser_prod.nit:6928 */
37703 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
37704 if (UNTAG_Bool(REGB0)) {
37705 } else {
37706 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6928);
37707 }
37708 fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
37709 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37710 stack_frame_head = fra.me.prev;
37711 return;
37712 }
37713 static const char LOCATE_parser___parser_prod___ACharExpr___empty_init[] = "parser_prod::ACharExpr::empty_init";
37714 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
37715 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
37716 struct {struct stack_frame_t me;} fra;
37717 val_t tmp;
37718 if (init_table[itpos235]) return;
37719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37720 fra.me.file = LOCATE_parser___parser_prod;
37721 fra.me.line = 6932;
37722 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
37723 fra.me.has_broke = 0;
37724 fra.me.REG_size = 1;
37725 fra.me.nitni_local_ref_head = NULL;
37726 fra.me.REG[0] = NIT_NULL;
37727 fra.me.REG[0] = p0;
37728 stack_frame_head = fra.me.prev;
37729 init_table[itpos235] = 1;
37730 return;
37731 }
37732 static const char LOCATE_parser___parser_prod___ACharExpr___init_acharexpr[] = "parser_prod::ACharExpr::init_acharexpr";
37733 void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
37734 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
37735 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37736 val_t REGB0;
37737 val_t tmp;
37738 if (init_table[itpos236]) return;
37739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37740 fra.me.file = LOCATE_parser___parser_prod;
37741 fra.me.line = 6934;
37742 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
37743 fra.me.has_broke = 0;
37744 fra.me.REG_size = 3;
37745 fra.me.nitni_local_ref_head = NULL;
37746 fra.me.REG[0] = NIT_NULL;
37747 fra.me.REG[1] = NIT_NULL;
37748 fra.me.REG[2] = NIT_NULL;
37749 fra.me.REG[0] = p0;
37750 fra.me.REG[1] = p1;
37751 /* parser/parser_prod.nit:6934 */
37752 fra.me.REG[2] = fra.me.REG[0];
37753 /* parser/parser_prod.nit:6938 */
37754 CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37755 /* parser/parser_prod.nit:6939 */
37756 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37757 if (UNTAG_Bool(REGB0)) {
37758 } else {
37759 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6939);
37760 }
37761 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]) = fra.me.REG[1];
37762 /* parser/parser_prod.nit:6940 */
37763 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37764 if (UNTAG_Bool(REGB0)) {
37765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6940);
37766 }
37767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37768 stack_frame_head = fra.me.prev;
37769 init_table[itpos236] = 1;
37770 return;
37771 }
37772 static const char LOCATE_parser___parser_prod___ACharExpr___replace_child[] = "parser_prod::ACharExpr::(parser_prod::ANode::replace_child)";
37773 void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
37774 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37775 val_t REGB0;
37776 val_t REGB1;
37777 val_t tmp;
37778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37779 fra.me.file = LOCATE_parser___parser_prod;
37780 fra.me.line = 6943;
37781 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
37782 fra.me.has_broke = 0;
37783 fra.me.REG_size = 4;
37784 fra.me.nitni_local_ref_head = NULL;
37785 fra.me.REG[0] = NIT_NULL;
37786 fra.me.REG[1] = NIT_NULL;
37787 fra.me.REG[2] = NIT_NULL;
37788 fra.me.REG[3] = NIT_NULL;
37789 fra.me.REG[0] = p0;
37790 fra.me.REG[1] = p1;
37791 fra.me.REG[2] = p2;
37792 /* parser/parser_prod.nit:6945 */
37793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
37794 if (UNTAG_Bool(REGB0)) {
37795 } else {
37796 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6945);
37797 }
37798 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
37799 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37800 if (UNTAG_Bool(REGB0)) {
37801 } else {
37802 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37803 REGB0 = REGB1;
37804 }
37805 if (UNTAG_Bool(REGB0)) {
37806 /* parser/parser_prod.nit:6946 */
37807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37808 if (UNTAG_Bool(REGB0)) {
37809 } else {
37810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37811 if (UNTAG_Bool(REGB1)) {
37812 REGB1 = TAG_Bool(0);
37813 REGB0 = REGB1;
37814 } else {
37815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37816 REGB0 = REGB1;
37817 }
37818 }
37819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37820 if (UNTAG_Bool(REGB0)) {
37821 /* parser/parser_prod.nit:6947 */
37822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37823 if (UNTAG_Bool(REGB0)) {
37824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6947);
37825 }
37826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37827 /* parser/parser_prod.nit:6948 */
37828 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*/;
37829 if (UNTAG_Bool(REGB0)) {
37830 } else {
37831 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6948);
37832 }
37833 /* parser/parser_prod.nit:6949 */
37834 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
37835 } else {
37836 /* parser/parser_prod.nit:6951 */
37837 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6951);
37838 }
37839 /* parser/parser_prod.nit:6953 */
37840 goto label1;
37841 }
37842 label1: while(0);
37843 stack_frame_head = fra.me.prev;
37844 return;
37845 }
37846 static const char LOCATE_parser___parser_prod___ACharExpr___visit_all[] = "parser_prod::ACharExpr::(parser_prod::ANode::visit_all)";
37847 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
37848 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37849 val_t REGB0;
37850 val_t tmp;
37851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37852 fra.me.file = LOCATE_parser___parser_prod;
37853 fra.me.line = 6957;
37854 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
37855 fra.me.has_broke = 0;
37856 fra.me.REG_size = 2;
37857 fra.me.nitni_local_ref_head = NULL;
37858 fra.me.REG[0] = NIT_NULL;
37859 fra.me.REG[1] = NIT_NULL;
37860 fra.me.REG[0] = p0;
37861 fra.me.REG[1] = p1;
37862 /* parser/parser_prod.nit:6959 */
37863 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
37864 if (UNTAG_Bool(REGB0)) {
37865 } else {
37866 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6959);
37867 }
37868 fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
37869 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37870 stack_frame_head = fra.me.prev;
37871 return;
37872 }
37873 static const char LOCATE_parser___parser_prod___AStringExpr___empty_init[] = "parser_prod::AStringExpr::empty_init";
37874 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
37875 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
37876 struct {struct stack_frame_t me;} fra;
37877 val_t tmp;
37878 if (init_table[itpos237]) return;
37879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37880 fra.me.file = LOCATE_parser___parser_prod;
37881 fra.me.line = 6963;
37882 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
37883 fra.me.has_broke = 0;
37884 fra.me.REG_size = 1;
37885 fra.me.nitni_local_ref_head = NULL;
37886 fra.me.REG[0] = NIT_NULL;
37887 fra.me.REG[0] = p0;
37888 stack_frame_head = fra.me.prev;
37889 init_table[itpos237] = 1;
37890 return;
37891 }
37892 static const char LOCATE_parser___parser_prod___AStringExpr___init_astringexpr[] = "parser_prod::AStringExpr::init_astringexpr";
37893 void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
37894 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
37895 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37896 val_t REGB0;
37897 val_t tmp;
37898 if (init_table[itpos238]) return;
37899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37900 fra.me.file = LOCATE_parser___parser_prod;
37901 fra.me.line = 6965;
37902 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
37903 fra.me.has_broke = 0;
37904 fra.me.REG_size = 3;
37905 fra.me.nitni_local_ref_head = NULL;
37906 fra.me.REG[0] = NIT_NULL;
37907 fra.me.REG[1] = NIT_NULL;
37908 fra.me.REG[2] = NIT_NULL;
37909 fra.me.REG[0] = p0;
37910 fra.me.REG[1] = p1;
37911 /* parser/parser_prod.nit:6965 */
37912 fra.me.REG[2] = fra.me.REG[0];
37913 /* parser/parser_prod.nit:6969 */
37914 CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37915 /* parser/parser_prod.nit:6970 */
37916 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37917 if (UNTAG_Bool(REGB0)) {
37918 } else {
37919 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6970);
37920 }
37921 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37922 /* parser/parser_prod.nit:6971 */
37923 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37924 if (UNTAG_Bool(REGB0)) {
37925 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6971);
37926 }
37927 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37928 stack_frame_head = fra.me.prev;
37929 init_table[itpos238] = 1;
37930 return;
37931 }
37932 static const char LOCATE_parser___parser_prod___AStringExpr___replace_child[] = "parser_prod::AStringExpr::(parser_prod::ANode::replace_child)";
37933 void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37934 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37935 val_t REGB0;
37936 val_t REGB1;
37937 val_t tmp;
37938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37939 fra.me.file = LOCATE_parser___parser_prod;
37940 fra.me.line = 6974;
37941 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
37942 fra.me.has_broke = 0;
37943 fra.me.REG_size = 4;
37944 fra.me.nitni_local_ref_head = NULL;
37945 fra.me.REG[0] = NIT_NULL;
37946 fra.me.REG[1] = NIT_NULL;
37947 fra.me.REG[2] = NIT_NULL;
37948 fra.me.REG[3] = NIT_NULL;
37949 fra.me.REG[0] = p0;
37950 fra.me.REG[1] = p1;
37951 fra.me.REG[2] = p2;
37952 /* parser/parser_prod.nit:6976 */
37953 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37954 if (UNTAG_Bool(REGB0)) {
37955 } else {
37956 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6976);
37957 }
37958 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
37959 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37960 if (UNTAG_Bool(REGB0)) {
37961 } else {
37962 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37963 REGB0 = REGB1;
37964 }
37965 if (UNTAG_Bool(REGB0)) {
37966 /* parser/parser_prod.nit:6977 */
37967 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37968 if (UNTAG_Bool(REGB0)) {
37969 } else {
37970 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37971 if (UNTAG_Bool(REGB1)) {
37972 REGB1 = TAG_Bool(0);
37973 REGB0 = REGB1;
37974 } else {
37975 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37976 REGB0 = REGB1;
37977 }
37978 }
37979 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37980 if (UNTAG_Bool(REGB0)) {
37981 /* parser/parser_prod.nit:6978 */
37982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37983 if (UNTAG_Bool(REGB0)) {
37984 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6978);
37985 }
37986 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37987 /* parser/parser_prod.nit:6979 */
37988 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*/;
37989 if (UNTAG_Bool(REGB0)) {
37990 } else {
37991 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6979);
37992 }
37993 /* parser/parser_prod.nit:6980 */
37994 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37995 } else {
37996 /* parser/parser_prod.nit:6982 */
37997 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6982);
37998 }
37999 /* parser/parser_prod.nit:6984 */
38000 goto label1;
38001 }
38002 label1: while(0);
38003 stack_frame_head = fra.me.prev;
38004 return;
38005 }
38006 static const char LOCATE_parser___parser_prod___AStringExpr___visit_all[] = "parser_prod::AStringExpr::(parser_prod::ANode::visit_all)";
38007 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
38008 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38009 val_t REGB0;
38010 val_t tmp;
38011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38012 fra.me.file = LOCATE_parser___parser_prod;
38013 fra.me.line = 6988;
38014 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
38015 fra.me.has_broke = 0;
38016 fra.me.REG_size = 2;
38017 fra.me.nitni_local_ref_head = NULL;
38018 fra.me.REG[0] = NIT_NULL;
38019 fra.me.REG[1] = NIT_NULL;
38020 fra.me.REG[0] = p0;
38021 fra.me.REG[1] = p1;
38022 /* parser/parser_prod.nit:6990 */
38023 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38024 if (UNTAG_Bool(REGB0)) {
38025 } else {
38026 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6990);
38027 }
38028 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
38029 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38030 stack_frame_head = fra.me.prev;
38031 return;
38032 }
38033 static const char LOCATE_parser___parser_prod___AStartStringExpr___empty_init[] = "parser_prod::AStartStringExpr::empty_init";
38034 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
38035 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
38036 struct {struct stack_frame_t me;} fra;
38037 val_t tmp;
38038 if (init_table[itpos239]) return;
38039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38040 fra.me.file = LOCATE_parser___parser_prod;
38041 fra.me.line = 6994;
38042 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___empty_init;
38043 fra.me.has_broke = 0;
38044 fra.me.REG_size = 1;
38045 fra.me.nitni_local_ref_head = NULL;
38046 fra.me.REG[0] = NIT_NULL;
38047 fra.me.REG[0] = p0;
38048 stack_frame_head = fra.me.prev;
38049 init_table[itpos239] = 1;
38050 return;
38051 }
38052 static const char LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr[] = "parser_prod::AStartStringExpr::init_astartstringexpr";
38053 void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
38054 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
38055 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38056 val_t REGB0;
38057 val_t tmp;
38058 if (init_table[itpos240]) return;
38059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38060 fra.me.file = LOCATE_parser___parser_prod;
38061 fra.me.line = 6996;
38062 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
38063 fra.me.has_broke = 0;
38064 fra.me.REG_size = 3;
38065 fra.me.nitni_local_ref_head = NULL;
38066 fra.me.REG[0] = NIT_NULL;
38067 fra.me.REG[1] = NIT_NULL;
38068 fra.me.REG[2] = NIT_NULL;
38069 fra.me.REG[0] = p0;
38070 fra.me.REG[1] = p1;
38071 /* parser/parser_prod.nit:6996 */
38072 fra.me.REG[2] = fra.me.REG[0];
38073 /* parser/parser_prod.nit:7000 */
38074 CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38075 /* parser/parser_prod.nit:7001 */
38076 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38077 if (UNTAG_Bool(REGB0)) {
38078 } else {
38079 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7001);
38080 }
38081 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
38082 /* parser/parser_prod.nit:7002 */
38083 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38084 if (UNTAG_Bool(REGB0)) {
38085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7002);
38086 }
38087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38088 stack_frame_head = fra.me.prev;
38089 init_table[itpos240] = 1;
38090 return;
38091 }
38092 static const char LOCATE_parser___parser_prod___AStartStringExpr___replace_child[] = "parser_prod::AStartStringExpr::(parser_prod::ANode::replace_child)";
38093 void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
38094 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38095 val_t REGB0;
38096 val_t REGB1;
38097 val_t tmp;
38098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38099 fra.me.file = LOCATE_parser___parser_prod;
38100 fra.me.line = 7005;
38101 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___replace_child;
38102 fra.me.has_broke = 0;
38103 fra.me.REG_size = 4;
38104 fra.me.nitni_local_ref_head = NULL;
38105 fra.me.REG[0] = NIT_NULL;
38106 fra.me.REG[1] = NIT_NULL;
38107 fra.me.REG[2] = NIT_NULL;
38108 fra.me.REG[3] = NIT_NULL;
38109 fra.me.REG[0] = p0;
38110 fra.me.REG[1] = p1;
38111 fra.me.REG[2] = p2;
38112 /* parser/parser_prod.nit:7007 */
38113 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38114 if (UNTAG_Bool(REGB0)) {
38115 } else {
38116 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7007);
38117 }
38118 fra.me.REG[3] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
38119 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38120 if (UNTAG_Bool(REGB0)) {
38121 } else {
38122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38123 REGB0 = REGB1;
38124 }
38125 if (UNTAG_Bool(REGB0)) {
38126 /* parser/parser_prod.nit:7008 */
38127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38128 if (UNTAG_Bool(REGB0)) {
38129 } else {
38130 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38131 if (UNTAG_Bool(REGB1)) {
38132 REGB1 = TAG_Bool(0);
38133 REGB0 = REGB1;
38134 } else {
38135 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38136 REGB0 = REGB1;
38137 }
38138 }
38139 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38140 if (UNTAG_Bool(REGB0)) {
38141 /* parser/parser_prod.nit:7009 */
38142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38143 if (UNTAG_Bool(REGB0)) {
38144 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7009);
38145 }
38146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38147 /* parser/parser_prod.nit:7010 */
38148 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*/;
38149 if (UNTAG_Bool(REGB0)) {
38150 } else {
38151 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7010);
38152 }
38153 /* parser/parser_prod.nit:7011 */
38154 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
38155 } else {
38156 /* parser/parser_prod.nit:7013 */
38157 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7013);
38158 }
38159 /* parser/parser_prod.nit:7015 */
38160 goto label1;
38161 }
38162 label1: while(0);
38163 stack_frame_head = fra.me.prev;
38164 return;
38165 }
38166 static const char LOCATE_parser___parser_prod___AStartStringExpr___visit_all[] = "parser_prod::AStartStringExpr::(parser_prod::ANode::visit_all)";
38167 void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
38168 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38169 val_t REGB0;
38170 val_t tmp;
38171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38172 fra.me.file = LOCATE_parser___parser_prod;
38173 fra.me.line = 7019;
38174 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___visit_all;
38175 fra.me.has_broke = 0;
38176 fra.me.REG_size = 2;
38177 fra.me.nitni_local_ref_head = NULL;
38178 fra.me.REG[0] = NIT_NULL;
38179 fra.me.REG[1] = NIT_NULL;
38180 fra.me.REG[0] = p0;
38181 fra.me.REG[1] = p1;
38182 /* parser/parser_prod.nit:7021 */
38183 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38184 if (UNTAG_Bool(REGB0)) {
38185 } else {
38186 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7021);
38187 }
38188 fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
38189 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38190 stack_frame_head = fra.me.prev;
38191 return;
38192 }
38193 static const char LOCATE_parser___parser_prod___AMidStringExpr___empty_init[] = "parser_prod::AMidStringExpr::empty_init";
38194 void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
38195 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
38196 struct {struct stack_frame_t me;} fra;
38197 val_t tmp;
38198 if (init_table[itpos241]) return;
38199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38200 fra.me.file = LOCATE_parser___parser_prod;
38201 fra.me.line = 7025;
38202 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___empty_init;
38203 fra.me.has_broke = 0;
38204 fra.me.REG_size = 1;
38205 fra.me.nitni_local_ref_head = NULL;
38206 fra.me.REG[0] = NIT_NULL;
38207 fra.me.REG[0] = p0;
38208 stack_frame_head = fra.me.prev;
38209 init_table[itpos241] = 1;
38210 return;
38211 }
38212 static const char LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr[] = "parser_prod::AMidStringExpr::init_amidstringexpr";
38213 void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
38214 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
38215 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38216 val_t REGB0;
38217 val_t tmp;
38218 if (init_table[itpos242]) return;
38219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38220 fra.me.file = LOCATE_parser___parser_prod;
38221 fra.me.line = 7027;
38222 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
38223 fra.me.has_broke = 0;
38224 fra.me.REG_size = 3;
38225 fra.me.nitni_local_ref_head = NULL;
38226 fra.me.REG[0] = NIT_NULL;
38227 fra.me.REG[1] = NIT_NULL;
38228 fra.me.REG[2] = NIT_NULL;
38229 fra.me.REG[0] = p0;
38230 fra.me.REG[1] = p1;
38231 /* parser/parser_prod.nit:7027 */
38232 fra.me.REG[2] = fra.me.REG[0];
38233 /* parser/parser_prod.nit:7031 */
38234 CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38235 /* parser/parser_prod.nit:7032 */
38236 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38237 if (UNTAG_Bool(REGB0)) {
38238 } else {
38239 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7032);
38240 }
38241 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
38242 /* parser/parser_prod.nit:7033 */
38243 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38244 if (UNTAG_Bool(REGB0)) {
38245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7033);
38246 }
38247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38248 stack_frame_head = fra.me.prev;
38249 init_table[itpos242] = 1;
38250 return;
38251 }
38252 static const char LOCATE_parser___parser_prod___AMidStringExpr___replace_child[] = "parser_prod::AMidStringExpr::(parser_prod::ANode::replace_child)";
38253 void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
38254 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38255 val_t REGB0;
38256 val_t REGB1;
38257 val_t tmp;
38258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38259 fra.me.file = LOCATE_parser___parser_prod;
38260 fra.me.line = 7036;
38261 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___replace_child;
38262 fra.me.has_broke = 0;
38263 fra.me.REG_size = 4;
38264 fra.me.nitni_local_ref_head = NULL;
38265 fra.me.REG[0] = NIT_NULL;
38266 fra.me.REG[1] = NIT_NULL;
38267 fra.me.REG[2] = NIT_NULL;
38268 fra.me.REG[3] = NIT_NULL;
38269 fra.me.REG[0] = p0;
38270 fra.me.REG[1] = p1;
38271 fra.me.REG[2] = p2;
38272 /* parser/parser_prod.nit:7038 */
38273 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38274 if (UNTAG_Bool(REGB0)) {
38275 } else {
38276 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7038);
38277 }
38278 fra.me.REG[3] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
38279 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38280 if (UNTAG_Bool(REGB0)) {
38281 } else {
38282 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38283 REGB0 = REGB1;
38284 }
38285 if (UNTAG_Bool(REGB0)) {
38286 /* parser/parser_prod.nit:7039 */
38287 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38288 if (UNTAG_Bool(REGB0)) {
38289 } else {
38290 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38291 if (UNTAG_Bool(REGB1)) {
38292 REGB1 = TAG_Bool(0);
38293 REGB0 = REGB1;
38294 } else {
38295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38296 REGB0 = REGB1;
38297 }
38298 }
38299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38300 if (UNTAG_Bool(REGB0)) {
38301 /* parser/parser_prod.nit:7040 */
38302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38303 if (UNTAG_Bool(REGB0)) {
38304 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7040);
38305 }
38306 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38307 /* parser/parser_prod.nit:7041 */
38308 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*/;
38309 if (UNTAG_Bool(REGB0)) {
38310 } else {
38311 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7041);
38312 }
38313 /* parser/parser_prod.nit:7042 */
38314 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
38315 } else {
38316 /* parser/parser_prod.nit:7044 */
38317 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7044);
38318 }
38319 /* parser/parser_prod.nit:7046 */
38320 goto label1;
38321 }
38322 label1: while(0);
38323 stack_frame_head = fra.me.prev;
38324 return;
38325 }
38326 static const char LOCATE_parser___parser_prod___AMidStringExpr___visit_all[] = "parser_prod::AMidStringExpr::(parser_prod::ANode::visit_all)";
38327 void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
38328 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38329 val_t REGB0;
38330 val_t tmp;
38331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38332 fra.me.file = LOCATE_parser___parser_prod;
38333 fra.me.line = 7050;
38334 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___visit_all;
38335 fra.me.has_broke = 0;
38336 fra.me.REG_size = 2;
38337 fra.me.nitni_local_ref_head = NULL;
38338 fra.me.REG[0] = NIT_NULL;
38339 fra.me.REG[1] = NIT_NULL;
38340 fra.me.REG[0] = p0;
38341 fra.me.REG[1] = p1;
38342 /* parser/parser_prod.nit:7052 */
38343 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38344 if (UNTAG_Bool(REGB0)) {
38345 } else {
38346 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7052);
38347 }
38348 fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
38349 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38350 stack_frame_head = fra.me.prev;
38351 return;
38352 }
38353 static const char LOCATE_parser___parser_prod___AEndStringExpr___empty_init[] = "parser_prod::AEndStringExpr::empty_init";
38354 void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
38355 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
38356 struct {struct stack_frame_t me;} fra;
38357 val_t tmp;
38358 if (init_table[itpos243]) return;
38359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38360 fra.me.file = LOCATE_parser___parser_prod;
38361 fra.me.line = 7056;
38362 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___empty_init;
38363 fra.me.has_broke = 0;
38364 fra.me.REG_size = 1;
38365 fra.me.nitni_local_ref_head = NULL;
38366 fra.me.REG[0] = NIT_NULL;
38367 fra.me.REG[0] = p0;
38368 stack_frame_head = fra.me.prev;
38369 init_table[itpos243] = 1;
38370 return;
38371 }
38372 static const char LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr[] = "parser_prod::AEndStringExpr::init_aendstringexpr";
38373 void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
38374 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
38375 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38376 val_t REGB0;
38377 val_t tmp;
38378 if (init_table[itpos244]) return;
38379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38380 fra.me.file = LOCATE_parser___parser_prod;
38381 fra.me.line = 7058;
38382 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
38383 fra.me.has_broke = 0;
38384 fra.me.REG_size = 3;
38385 fra.me.nitni_local_ref_head = NULL;
38386 fra.me.REG[0] = NIT_NULL;
38387 fra.me.REG[1] = NIT_NULL;
38388 fra.me.REG[2] = NIT_NULL;
38389 fra.me.REG[0] = p0;
38390 fra.me.REG[1] = p1;
38391 /* parser/parser_prod.nit:7058 */
38392 fra.me.REG[2] = fra.me.REG[0];
38393 /* parser/parser_prod.nit:7062 */
38394 CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38395 /* parser/parser_prod.nit:7063 */
38396 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38397 if (UNTAG_Bool(REGB0)) {
38398 } else {
38399 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7063);
38400 }
38401 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
38402 /* parser/parser_prod.nit:7064 */
38403 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38404 if (UNTAG_Bool(REGB0)) {
38405 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7064);
38406 }
38407 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38408 stack_frame_head = fra.me.prev;
38409 init_table[itpos244] = 1;
38410 return;
38411 }
38412 static const char LOCATE_parser___parser_prod___AEndStringExpr___replace_child[] = "parser_prod::AEndStringExpr::(parser_prod::ANode::replace_child)";
38413 void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
38414 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38415 val_t REGB0;
38416 val_t REGB1;
38417 val_t tmp;
38418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38419 fra.me.file = LOCATE_parser___parser_prod;
38420 fra.me.line = 7067;
38421 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___replace_child;
38422 fra.me.has_broke = 0;
38423 fra.me.REG_size = 4;
38424 fra.me.nitni_local_ref_head = NULL;
38425 fra.me.REG[0] = NIT_NULL;
38426 fra.me.REG[1] = NIT_NULL;
38427 fra.me.REG[2] = NIT_NULL;
38428 fra.me.REG[3] = NIT_NULL;
38429 fra.me.REG[0] = p0;
38430 fra.me.REG[1] = p1;
38431 fra.me.REG[2] = p2;
38432 /* parser/parser_prod.nit:7069 */
38433 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38434 if (UNTAG_Bool(REGB0)) {
38435 } else {
38436 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7069);
38437 }
38438 fra.me.REG[3] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
38439 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38440 if (UNTAG_Bool(REGB0)) {
38441 } else {
38442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38443 REGB0 = REGB1;
38444 }
38445 if (UNTAG_Bool(REGB0)) {
38446 /* parser/parser_prod.nit:7070 */
38447 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38448 if (UNTAG_Bool(REGB0)) {
38449 } else {
38450 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38451 if (UNTAG_Bool(REGB1)) {
38452 REGB1 = TAG_Bool(0);
38453 REGB0 = REGB1;
38454 } else {
38455 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38456 REGB0 = REGB1;
38457 }
38458 }
38459 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38460 if (UNTAG_Bool(REGB0)) {
38461 /* parser/parser_prod.nit:7071 */
38462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38463 if (UNTAG_Bool(REGB0)) {
38464 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7071);
38465 }
38466 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38467 /* parser/parser_prod.nit:7072 */
38468 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*/;
38469 if (UNTAG_Bool(REGB0)) {
38470 } else {
38471 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7072);
38472 }
38473 /* parser/parser_prod.nit:7073 */
38474 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
38475 } else {
38476 /* parser/parser_prod.nit:7075 */
38477 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7075);
38478 }
38479 /* parser/parser_prod.nit:7077 */
38480 goto label1;
38481 }
38482 label1: while(0);
38483 stack_frame_head = fra.me.prev;
38484 return;
38485 }
38486 static const char LOCATE_parser___parser_prod___AEndStringExpr___visit_all[] = "parser_prod::AEndStringExpr::(parser_prod::ANode::visit_all)";
38487 void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
38488 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38489 val_t REGB0;
38490 val_t tmp;
38491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38492 fra.me.file = LOCATE_parser___parser_prod;
38493 fra.me.line = 7081;
38494 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___visit_all;
38495 fra.me.has_broke = 0;
38496 fra.me.REG_size = 2;
38497 fra.me.nitni_local_ref_head = NULL;
38498 fra.me.REG[0] = NIT_NULL;
38499 fra.me.REG[1] = NIT_NULL;
38500 fra.me.REG[0] = p0;
38501 fra.me.REG[1] = p1;
38502 /* parser/parser_prod.nit:7083 */
38503 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
38504 if (UNTAG_Bool(REGB0)) {
38505 } else {
38506 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7083);
38507 }
38508 fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
38509 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38510 stack_frame_head = fra.me.prev;
38511 return;
38512 }
38513 static const char LOCATE_parser___parser_prod___ASuperstringExpr___empty_init[] = "parser_prod::ASuperstringExpr::empty_init";
38514 void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
38515 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
38516 struct {struct stack_frame_t me;} fra;
38517 val_t tmp;
38518 if (init_table[itpos245]) return;
38519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38520 fra.me.file = LOCATE_parser___parser_prod;
38521 fra.me.line = 7087;
38522 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___empty_init;
38523 fra.me.has_broke = 0;
38524 fra.me.REG_size = 1;
38525 fra.me.nitni_local_ref_head = NULL;
38526 fra.me.REG[0] = NIT_NULL;
38527 fra.me.REG[0] = p0;
38528 stack_frame_head = fra.me.prev;
38529 init_table[itpos245] = 1;
38530 return;
38531 }
38532 static const char LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr[] = "parser_prod::ASuperstringExpr::init_asuperstringexpr";
38533 void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
38534 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
38535 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38536 val_t tmp;
38537 if (init_table[itpos246]) return;
38538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38539 fra.me.file = LOCATE_parser___parser_prod;
38540 fra.me.line = 7089;
38541 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
38542 fra.me.has_broke = 0;
38543 fra.me.REG_size = 2;
38544 fra.me.nitni_local_ref_head = NULL;
38545 fra.me.REG[0] = NIT_NULL;
38546 fra.me.REG[1] = NIT_NULL;
38547 fra.me.REG[0] = p0;
38548 fra.me.REG[1] = p1;
38549 /* parser/parser_prod.nit:7093 */
38550 CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38551 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));
38552 stack_frame_head = fra.me.prev;
38553 init_table[itpos246] = 1;
38554 return;
38555 }
38556 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){
38557 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38558 val_t REGB0;
38559 fun_t CREG[1];
38560 val_t tmp;
38561 /* parser/parser_prod.nit:7094 */
38562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38563 fra.me.file = LOCATE_parser___parser_prod;
38564 fra.me.line = 0;
38565 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
38566 fra.me.has_broke = 0;
38567 fra.me.REG_size = 2;
38568 fra.me.nitni_local_ref_head = NULL;
38569 fra.me.REG[0] = NIT_NULL;
38570 fra.me.REG[1] = NIT_NULL;
38571 fra.me.closure_ctx = closctx_param;
38572 fra.me.closure_funs = CREG;
38573 fra.me.REG[0] = p0;
38574 CREG[0] = clos_fun0;
38575 /* parser/parser_prod.nit:7095 */
38576 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38577 if (UNTAG_Bool(REGB0)) {
38578 } else {
38579 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7095);
38580 }
38581 /* parser/parser_prod.nit:7096 */
38582 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
38583 if (UNTAG_Bool(REGB0)) {
38584 } else {
38585 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7096);
38586 }
38587 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
38588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38589 /* parser/parser_prod.nit:7097 */
38590 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
38591 stack_frame_head = fra.me.prev;
38592 return;
38593 }
38594 static const char LOCATE_parser___parser_prod___ASuperstringExpr___replace_child[] = "parser_prod::ASuperstringExpr::(parser_prod::ANode::replace_child)";
38595 void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
38596 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38597 val_t REGB0;
38598 val_t REGB1;
38599 val_t REGB2;
38600 val_t REGB3;
38601 val_t REGB4;
38602 val_t tmp;
38603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38604 fra.me.file = LOCATE_parser___parser_prod;
38605 fra.me.line = 7101;
38606 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
38607 fra.me.has_broke = 0;
38608 fra.me.REG_size = 4;
38609 fra.me.nitni_local_ref_head = NULL;
38610 fra.me.REG[0] = NIT_NULL;
38611 fra.me.REG[1] = NIT_NULL;
38612 fra.me.REG[2] = NIT_NULL;
38613 fra.me.REG[3] = NIT_NULL;
38614 fra.me.REG[0] = p0;
38615 fra.me.REG[1] = p1;
38616 fra.me.REG[2] = p2;
38617 /* parser/parser_prod.nit:7103 */
38618 REGB0 = TAG_Int(0);
38619 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38620 if (UNTAG_Bool(REGB1)) {
38621 } else {
38622 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7103);
38623 }
38624 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38625 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
38626 /* ../lib/standard/kernel.nit:355 */
38627 while(1) {
38628 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
38629 if (UNTAG_Bool(REGB2)) {
38630 } else {
38631 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
38632 }
38633 /* ../lib/standard/kernel.nit:235 */
38634 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
38635 /* ../lib/standard/kernel.nit:355 */
38636 if (UNTAG_Bool(REGB2)) {
38637 /* parser/parser_prod.nit:7103 */
38638 REGB2 = REGB0;
38639 /* parser/parser_prod.nit:7104 */
38640 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38641 if (UNTAG_Bool(REGB3)) {
38642 } else {
38643 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7104);
38644 }
38645 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38646 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
38647 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38648 if (UNTAG_Bool(REGB3)) {
38649 } else {
38650 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38651 if (UNTAG_Bool(REGB4)) {
38652 REGB4 = TAG_Bool(0);
38653 REGB3 = REGB4;
38654 } else {
38655 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38656 REGB3 = REGB4;
38657 }
38658 }
38659 if (UNTAG_Bool(REGB3)) {
38660 /* parser/parser_prod.nit:7105 */
38661 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38662 if (UNTAG_Bool(REGB3)) {
38663 } else {
38664 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38665 if (UNTAG_Bool(REGB4)) {
38666 REGB4 = TAG_Bool(0);
38667 REGB3 = REGB4;
38668 } else {
38669 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38670 REGB3 = REGB4;
38671 }
38672 }
38673 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
38674 if (UNTAG_Bool(REGB3)) {
38675 /* parser/parser_prod.nit:7106 */
38676 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*/;
38677 if (UNTAG_Bool(REGB3)) {
38678 } else {
38679 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7106);
38680 }
38681 /* parser/parser_prod.nit:7107 */
38682 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38683 if (UNTAG_Bool(REGB3)) {
38684 } else {
38685 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7107);
38686 }
38687 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38688 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
38689 /* parser/parser_prod.nit:7108 */
38690 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38691 if (UNTAG_Bool(REGB3)) {
38692 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7108);
38693 }
38694 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38695 } else {
38696 /* parser/parser_prod.nit:7110 */
38697 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38698 if (UNTAG_Bool(REGB3)) {
38699 } else {
38700 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7110);
38701 }
38702 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38703 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
38704 }
38705 /* parser/parser_prod.nit:7112 */
38706 goto label1;
38707 }
38708 /* ../lib/standard/kernel.nit:357 */
38709 REGB2 = TAG_Int(1);
38710 /* ../lib/standard/kernel.nit:238 */
38711 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
38712 /* ../lib/standard/kernel.nit:357 */
38713 REGB0 = REGB2;
38714 } else {
38715 /* ../lib/standard/kernel.nit:355 */
38716 goto label2;
38717 }
38718 }
38719 label2: while(0);
38720 label1: while(0);
38721 stack_frame_head = fra.me.prev;
38722 return;
38723 }
38724 static const char LOCATE_parser___parser_prod___ASuperstringExpr___visit_all[] = "parser_prod::ASuperstringExpr::(parser_prod::ANode::visit_all)";
38725 void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
38726 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38727 val_t REGB0;
38728 val_t tmp;
38729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38730 fra.me.file = LOCATE_parser___parser_prod;
38731 fra.me.line = 7117;
38732 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
38733 fra.me.has_broke = 0;
38734 fra.me.REG_size = 2;
38735 fra.me.nitni_local_ref_head = NULL;
38736 fra.me.REG[0] = NIT_NULL;
38737 fra.me.REG[1] = NIT_NULL;
38738 fra.me.REG[0] = p0;
38739 fra.me.REG[1] = p1;
38740 /* parser/parser_prod.nit:7119 */
38741 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38742 if (UNTAG_Bool(REGB0)) {
38743 } else {
38744 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7119);
38745 }
38746 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38747 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));
38748 stack_frame_head = fra.me.prev;
38749 return;
38750 }
38751 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){
38752 struct {struct stack_frame_t me;} fra;
38753 fun_t CREG[1];
38754 val_t tmp;
38755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38756 fra.me.file = LOCATE_parser___parser_prod;
38757 fra.me.line = 0;
38758 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
38759 fra.me.has_broke = 0;
38760 fra.me.REG_size = 1;
38761 fra.me.nitni_local_ref_head = NULL;
38762 fra.me.REG[0] = NIT_NULL;
38763 fra.me.closure_ctx = closctx_param;
38764 fra.me.closure_funs = CREG;
38765 fra.me.REG[0] = p0;
38766 CREG[0] = clos_fun0;
38767 /* parser/parser_prod.nit:7120 */
38768 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38769 stack_frame_head = fra.me.prev;
38770 return;
38771 }
38772 static const char LOCATE_parser___parser_prod___AParExpr___empty_init[] = "parser_prod::AParExpr::empty_init";
38773 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
38774 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
38775 struct {struct stack_frame_t me;} fra;
38776 val_t tmp;
38777 if (init_table[itpos247]) return;
38778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38779 fra.me.file = LOCATE_parser___parser_prod;
38780 fra.me.line = 7125;
38781 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
38782 fra.me.has_broke = 0;
38783 fra.me.REG_size = 1;
38784 fra.me.nitni_local_ref_head = NULL;
38785 fra.me.REG[0] = NIT_NULL;
38786 fra.me.REG[0] = p0;
38787 stack_frame_head = fra.me.prev;
38788 init_table[itpos247] = 1;
38789 return;
38790 }
38791 static const char LOCATE_parser___parser_prod___AParExpr___init_aparexpr[] = "parser_prod::AParExpr::init_aparexpr";
38792 void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
38793 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
38794 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38795 val_t REGB0;
38796 val_t tmp;
38797 if (init_table[itpos248]) return;
38798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38799 fra.me.file = LOCATE_parser___parser_prod;
38800 fra.me.line = 7127;
38801 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
38802 fra.me.has_broke = 0;
38803 fra.me.REG_size = 5;
38804 fra.me.nitni_local_ref_head = NULL;
38805 fra.me.REG[0] = NIT_NULL;
38806 fra.me.REG[1] = NIT_NULL;
38807 fra.me.REG[2] = NIT_NULL;
38808 fra.me.REG[3] = NIT_NULL;
38809 fra.me.REG[4] = NIT_NULL;
38810 fra.me.REG[0] = p0;
38811 fra.me.REG[1] = p1;
38812 fra.me.REG[2] = p2;
38813 fra.me.REG[3] = p3;
38814 /* parser/parser_prod.nit:7127 */
38815 fra.me.REG[4] = fra.me.REG[0];
38816 /* parser/parser_prod.nit:7133 */
38817 CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
38818 /* parser/parser_prod.nit:7134 */
38819 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38820 if (UNTAG_Bool(REGB0)) {
38821 } else {
38822 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7134);
38823 }
38824 ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[4]) = fra.me.REG[1];
38825 /* parser/parser_prod.nit:7135 */
38826 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38827 if (UNTAG_Bool(REGB0)) {
38828 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7135);
38829 }
38830 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
38831 /* parser/parser_prod.nit:7136 */
38832 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38833 if (UNTAG_Bool(REGB0)) {
38834 } else {
38835 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7136);
38836 }
38837 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
38838 /* parser/parser_prod.nit:7137 */
38839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38840 if (UNTAG_Bool(REGB0)) {
38841 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7137);
38842 }
38843 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
38844 /* parser/parser_prod.nit:7138 */
38845 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38846 if (UNTAG_Bool(REGB0)) {
38847 } else {
38848 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7138);
38849 }
38850 ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
38851 /* parser/parser_prod.nit:7139 */
38852 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38853 if (UNTAG_Bool(REGB0)) {
38854 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7139);
38855 }
38856 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
38857 stack_frame_head = fra.me.prev;
38858 init_table[itpos248] = 1;
38859 return;
38860 }
38861 static const char LOCATE_parser___parser_prod___AParExpr___replace_child[] = "parser_prod::AParExpr::(parser_prod::ANode::replace_child)";
38862 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
38863 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38864 val_t REGB0;
38865 val_t REGB1;
38866 val_t tmp;
38867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38868 fra.me.file = LOCATE_parser___parser_prod;
38869 fra.me.line = 7142;
38870 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
38871 fra.me.has_broke = 0;
38872 fra.me.REG_size = 4;
38873 fra.me.nitni_local_ref_head = NULL;
38874 fra.me.REG[0] = NIT_NULL;
38875 fra.me.REG[1] = NIT_NULL;
38876 fra.me.REG[2] = NIT_NULL;
38877 fra.me.REG[3] = NIT_NULL;
38878 fra.me.REG[0] = p0;
38879 fra.me.REG[1] = p1;
38880 fra.me.REG[2] = p2;
38881 /* parser/parser_prod.nit:7144 */
38882 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
38883 if (UNTAG_Bool(REGB0)) {
38884 } else {
38885 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7144);
38886 }
38887 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
38888 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38889 if (UNTAG_Bool(REGB0)) {
38890 } else {
38891 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38892 REGB0 = REGB1;
38893 }
38894 if (UNTAG_Bool(REGB0)) {
38895 /* parser/parser_prod.nit:7145 */
38896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38897 if (UNTAG_Bool(REGB0)) {
38898 } else {
38899 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38900 if (UNTAG_Bool(REGB1)) {
38901 REGB1 = TAG_Bool(0);
38902 REGB0 = REGB1;
38903 } else {
38904 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38905 REGB0 = REGB1;
38906 }
38907 }
38908 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38909 if (UNTAG_Bool(REGB0)) {
38910 /* parser/parser_prod.nit:7146 */
38911 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38912 if (UNTAG_Bool(REGB0)) {
38913 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7146);
38914 }
38915 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38916 /* parser/parser_prod.nit:7147 */
38917 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
38918 if (UNTAG_Bool(REGB0)) {
38919 } else {
38920 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7147);
38921 }
38922 /* parser/parser_prod.nit:7148 */
38923 ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
38924 } else {
38925 /* parser/parser_prod.nit:7150 */
38926 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7150);
38927 }
38928 /* parser/parser_prod.nit:7152 */
38929 goto label1;
38930 }
38931 /* parser/parser_prod.nit:7154 */
38932 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38933 if (UNTAG_Bool(REGB0)) {
38934 } else {
38935 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7154);
38936 }
38937 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
38938 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38939 if (UNTAG_Bool(REGB0)) {
38940 } else {
38941 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38942 REGB0 = REGB1;
38943 }
38944 if (UNTAG_Bool(REGB0)) {
38945 /* parser/parser_prod.nit:7155 */
38946 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38947 if (UNTAG_Bool(REGB0)) {
38948 } else {
38949 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38950 if (UNTAG_Bool(REGB1)) {
38951 REGB1 = TAG_Bool(0);
38952 REGB0 = REGB1;
38953 } else {
38954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38955 REGB0 = REGB1;
38956 }
38957 }
38958 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38959 if (UNTAG_Bool(REGB0)) {
38960 /* parser/parser_prod.nit:7156 */
38961 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38962 if (UNTAG_Bool(REGB0)) {
38963 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7156);
38964 }
38965 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38966 /* parser/parser_prod.nit:7157 */
38967 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38968 if (UNTAG_Bool(REGB0)) {
38969 } else {
38970 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7157);
38971 }
38972 /* parser/parser_prod.nit:7158 */
38973 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38974 } else {
38975 /* parser/parser_prod.nit:7160 */
38976 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7160);
38977 }
38978 /* parser/parser_prod.nit:7162 */
38979 goto label1;
38980 }
38981 /* parser/parser_prod.nit:7164 */
38982 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
38983 if (UNTAG_Bool(REGB0)) {
38984 } else {
38985 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7164);
38986 }
38987 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
38988 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38989 if (UNTAG_Bool(REGB0)) {
38990 } else {
38991 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38992 REGB0 = REGB1;
38993 }
38994 if (UNTAG_Bool(REGB0)) {
38995 /* parser/parser_prod.nit:7165 */
38996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38997 if (UNTAG_Bool(REGB0)) {
38998 } else {
38999 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39000 if (UNTAG_Bool(REGB1)) {
39001 REGB1 = TAG_Bool(0);
39002 REGB0 = REGB1;
39003 } else {
39004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39005 REGB0 = REGB1;
39006 }
39007 }
39008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39009 if (UNTAG_Bool(REGB0)) {
39010 /* parser/parser_prod.nit:7166 */
39011 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39012 if (UNTAG_Bool(REGB0)) {
39013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7166);
39014 }
39015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39016 /* parser/parser_prod.nit:7167 */
39017 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
39018 if (UNTAG_Bool(REGB0)) {
39019 } else {
39020 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7167);
39021 }
39022 /* parser/parser_prod.nit:7168 */
39023 ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
39024 } else {
39025 /* parser/parser_prod.nit:7170 */
39026 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7170);
39027 }
39028 /* parser/parser_prod.nit:7172 */
39029 goto label1;
39030 }
39031 label1: while(0);
39032 stack_frame_head = fra.me.prev;
39033 return;
39034 }
39035 static const char LOCATE_parser___parser_prod___AParExpr___visit_all[] = "parser_prod::AParExpr::(parser_prod::ANode::visit_all)";
39036 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
39037 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39038 val_t REGB0;
39039 val_t tmp;
39040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39041 fra.me.file = LOCATE_parser___parser_prod;
39042 fra.me.line = 7176;
39043 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
39044 fra.me.has_broke = 0;
39045 fra.me.REG_size = 3;
39046 fra.me.nitni_local_ref_head = NULL;
39047 fra.me.REG[0] = NIT_NULL;
39048 fra.me.REG[1] = NIT_NULL;
39049 fra.me.REG[2] = NIT_NULL;
39050 fra.me.REG[0] = p0;
39051 fra.me.REG[1] = p1;
39052 /* parser/parser_prod.nit:7178 */
39053 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
39054 if (UNTAG_Bool(REGB0)) {
39055 } else {
39056 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7178);
39057 }
39058 fra.me.REG[2] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
39059 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39060 /* parser/parser_prod.nit:7179 */
39061 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39062 if (UNTAG_Bool(REGB0)) {
39063 } else {
39064 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7179);
39065 }
39066 fra.me.REG[2] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
39067 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39068 /* parser/parser_prod.nit:7180 */
39069 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
39070 if (UNTAG_Bool(REGB0)) {
39071 } else {
39072 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7180);
39073 }
39074 fra.me.REG[0] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
39075 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39076 stack_frame_head = fra.me.prev;
39077 return;
39078 }
39079 static const char LOCATE_parser___parser_prod___AAsCastExpr___empty_init[] = "parser_prod::AAsCastExpr::empty_init";
39080 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
39081 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
39082 struct {struct stack_frame_t me;} fra;
39083 val_t tmp;
39084 if (init_table[itpos249]) return;
39085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39086 fra.me.file = LOCATE_parser___parser_prod;
39087 fra.me.line = 7184;
39088 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
39089 fra.me.has_broke = 0;
39090 fra.me.REG_size = 1;
39091 fra.me.nitni_local_ref_head = NULL;
39092 fra.me.REG[0] = NIT_NULL;
39093 fra.me.REG[0] = p0;
39094 stack_frame_head = fra.me.prev;
39095 init_table[itpos249] = 1;
39096 return;
39097 }
39098 static const char LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr[] = "parser_prod::AAsCastExpr::init_aascastexpr";
39099 void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
39100 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
39101 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
39102 val_t REGB0;
39103 val_t tmp;
39104 if (init_table[itpos250]) return;
39105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39106 fra.me.file = LOCATE_parser___parser_prod;
39107 fra.me.line = 7186;
39108 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
39109 fra.me.has_broke = 0;
39110 fra.me.REG_size = 7;
39111 fra.me.nitni_local_ref_head = NULL;
39112 fra.me.REG[0] = NIT_NULL;
39113 fra.me.REG[1] = NIT_NULL;
39114 fra.me.REG[2] = NIT_NULL;
39115 fra.me.REG[3] = NIT_NULL;
39116 fra.me.REG[4] = NIT_NULL;
39117 fra.me.REG[5] = NIT_NULL;
39118 fra.me.REG[6] = NIT_NULL;
39119 fra.me.REG[0] = p0;
39120 fra.me.REG[1] = p1;
39121 fra.me.REG[2] = p2;
39122 fra.me.REG[3] = p3;
39123 fra.me.REG[4] = p4;
39124 fra.me.REG[5] = p5;
39125 /* parser/parser_prod.nit:7186 */
39126 fra.me.REG[6] = fra.me.REG[0];
39127 /* parser/parser_prod.nit:7194 */
39128 CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
39129 /* parser/parser_prod.nit:7195 */
39130 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39131 if (UNTAG_Bool(REGB0)) {
39132 } else {
39133 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7195);
39134 }
39135 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
39136 /* parser/parser_prod.nit:7196 */
39137 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39138 if (UNTAG_Bool(REGB0)) {
39139 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7196);
39140 }
39141 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
39142 /* parser/parser_prod.nit:7197 */
39143 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39144 if (UNTAG_Bool(REGB0)) {
39145 } else {
39146 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7197);
39147 }
39148 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[6]) = fra.me.REG[2];
39149 /* parser/parser_prod.nit:7198 */
39150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39151 if (UNTAG_Bool(REGB0)) {
39152 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7198);
39153 }
39154 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
39155 /* parser/parser_prod.nit:7199 */
39156 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39157 if (UNTAG_Bool(REGB0)) {
39158 } else {
39159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7199);
39160 }
39161 ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[6]) = fra.me.REG[3];
39162 /* parser/parser_prod.nit:7200 */
39163 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39164 if (UNTAG_Bool(REGB0)) {
39165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7200);
39166 }
39167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
39168 /* parser/parser_prod.nit:7201 */
39169 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
39170 if (UNTAG_Bool(REGB0)) {
39171 } else {
39172 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7201);
39173 }
39174 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[6]) = fra.me.REG[4];
39175 /* parser/parser_prod.nit:7202 */
39176 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39177 if (UNTAG_Bool(REGB0)) {
39178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7202);
39179 }
39180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
39181 /* parser/parser_prod.nit:7203 */
39182 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
39183 if (UNTAG_Bool(REGB0)) {
39184 } else {
39185 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7203);
39186 }
39187 ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[6]) = fra.me.REG[5];
39188 /* parser/parser_prod.nit:7204 */
39189 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39190 if (UNTAG_Bool(REGB0)) {
39191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7204);
39192 }
39193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
39194 stack_frame_head = fra.me.prev;
39195 init_table[itpos250] = 1;
39196 return;
39197 }
39198 static const char LOCATE_parser___parser_prod___AAsCastExpr___replace_child[] = "parser_prod::AAsCastExpr::(parser_prod::ANode::replace_child)";
39199 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
39200 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39201 val_t REGB0;
39202 val_t REGB1;
39203 val_t tmp;
39204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39205 fra.me.file = LOCATE_parser___parser_prod;
39206 fra.me.line = 7207;
39207 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
39208 fra.me.has_broke = 0;
39209 fra.me.REG_size = 4;
39210 fra.me.nitni_local_ref_head = NULL;
39211 fra.me.REG[0] = NIT_NULL;
39212 fra.me.REG[1] = NIT_NULL;
39213 fra.me.REG[2] = NIT_NULL;
39214 fra.me.REG[3] = NIT_NULL;
39215 fra.me.REG[0] = p0;
39216 fra.me.REG[1] = p1;
39217 fra.me.REG[2] = p2;
39218 /* parser/parser_prod.nit:7209 */
39219 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39220 if (UNTAG_Bool(REGB0)) {
39221 } else {
39222 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7209);
39223 }
39224 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
39225 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39226 if (UNTAG_Bool(REGB0)) {
39227 } else {
39228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39229 REGB0 = REGB1;
39230 }
39231 if (UNTAG_Bool(REGB0)) {
39232 /* parser/parser_prod.nit:7210 */
39233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39234 if (UNTAG_Bool(REGB0)) {
39235 } else {
39236 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39237 if (UNTAG_Bool(REGB1)) {
39238 REGB1 = TAG_Bool(0);
39239 REGB0 = REGB1;
39240 } else {
39241 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39242 REGB0 = REGB1;
39243 }
39244 }
39245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39246 if (UNTAG_Bool(REGB0)) {
39247 /* parser/parser_prod.nit:7211 */
39248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39249 if (UNTAG_Bool(REGB0)) {
39250 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7211);
39251 }
39252 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39253 /* parser/parser_prod.nit:7212 */
39254 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39255 if (UNTAG_Bool(REGB0)) {
39256 } else {
39257 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7212);
39258 }
39259 /* parser/parser_prod.nit:7213 */
39260 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
39261 } else {
39262 /* parser/parser_prod.nit:7215 */
39263 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7215);
39264 }
39265 /* parser/parser_prod.nit:7217 */
39266 goto label1;
39267 }
39268 /* parser/parser_prod.nit:7219 */
39269 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
39270 if (UNTAG_Bool(REGB0)) {
39271 } else {
39272 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7219);
39273 }
39274 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
39275 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39276 if (UNTAG_Bool(REGB0)) {
39277 } else {
39278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39279 REGB0 = REGB1;
39280 }
39281 if (UNTAG_Bool(REGB0)) {
39282 /* parser/parser_prod.nit:7220 */
39283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39284 if (UNTAG_Bool(REGB0)) {
39285 } else {
39286 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39287 if (UNTAG_Bool(REGB1)) {
39288 REGB1 = TAG_Bool(0);
39289 REGB0 = REGB1;
39290 } else {
39291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39292 REGB0 = REGB1;
39293 }
39294 }
39295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39296 if (UNTAG_Bool(REGB0)) {
39297 /* parser/parser_prod.nit:7221 */
39298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39299 if (UNTAG_Bool(REGB0)) {
39300 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7221);
39301 }
39302 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39303 /* parser/parser_prod.nit:7222 */
39304 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*/;
39305 if (UNTAG_Bool(REGB0)) {
39306 } else {
39307 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7222);
39308 }
39309 /* parser/parser_prod.nit:7223 */
39310 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
39311 } else {
39312 /* parser/parser_prod.nit:7225 */
39313 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7225);
39314 }
39315 /* parser/parser_prod.nit:7227 */
39316 goto label1;
39317 }
39318 /* parser/parser_prod.nit:7229 */
39319 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
39320 if (UNTAG_Bool(REGB0)) {
39321 } else {
39322 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7229);
39323 }
39324 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
39325 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39326 if (UNTAG_Bool(REGB0)) {
39327 } else {
39328 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39329 REGB0 = REGB1;
39330 }
39331 if (UNTAG_Bool(REGB0)) {
39332 /* parser/parser_prod.nit:7230 */
39333 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39334 if (UNTAG_Bool(REGB0)) {
39335 } else {
39336 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39337 if (UNTAG_Bool(REGB1)) {
39338 REGB1 = TAG_Bool(0);
39339 REGB0 = REGB1;
39340 } else {
39341 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39342 REGB0 = REGB1;
39343 }
39344 }
39345 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39346 if (UNTAG_Bool(REGB0)) {
39347 /* parser/parser_prod.nit:7231 */
39348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39349 if (UNTAG_Bool(REGB0)) {
39350 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7231);
39351 }
39352 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39353 /* parser/parser_prod.nit:7232 */
39354 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
39355 if (UNTAG_Bool(REGB0)) {
39356 } else {
39357 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7232);
39358 }
39359 /* parser/parser_prod.nit:7233 */
39360 ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
39361 } else {
39362 /* parser/parser_prod.nit:7235 */
39363 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7235);
39364 }
39365 /* parser/parser_prod.nit:7237 */
39366 goto label1;
39367 }
39368 /* parser/parser_prod.nit:7239 */
39369 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
39370 if (UNTAG_Bool(REGB0)) {
39371 } else {
39372 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7239);
39373 }
39374 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
39375 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39376 if (UNTAG_Bool(REGB0)) {
39377 } else {
39378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39379 REGB0 = REGB1;
39380 }
39381 if (UNTAG_Bool(REGB0)) {
39382 /* parser/parser_prod.nit:7240 */
39383 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39384 if (UNTAG_Bool(REGB0)) {
39385 } else {
39386 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39387 if (UNTAG_Bool(REGB1)) {
39388 REGB1 = TAG_Bool(0);
39389 REGB0 = REGB1;
39390 } else {
39391 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39392 REGB0 = REGB1;
39393 }
39394 }
39395 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39396 if (UNTAG_Bool(REGB0)) {
39397 /* parser/parser_prod.nit:7241 */
39398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39399 if (UNTAG_Bool(REGB0)) {
39400 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7241);
39401 }
39402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39403 /* parser/parser_prod.nit:7242 */
39404 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*/;
39405 if (UNTAG_Bool(REGB0)) {
39406 } else {
39407 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7242);
39408 }
39409 /* parser/parser_prod.nit:7243 */
39410 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
39411 } else {
39412 /* parser/parser_prod.nit:7245 */
39413 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7245);
39414 }
39415 /* parser/parser_prod.nit:7247 */
39416 goto label1;
39417 }
39418 /* parser/parser_prod.nit:7249 */
39419 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
39420 if (UNTAG_Bool(REGB0)) {
39421 } else {
39422 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7249);
39423 }
39424 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
39425 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39426 if (UNTAG_Bool(REGB0)) {
39427 } else {
39428 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39429 REGB0 = REGB1;
39430 }
39431 if (UNTAG_Bool(REGB0)) {
39432 /* parser/parser_prod.nit:7250 */
39433 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39434 if (UNTAG_Bool(REGB0)) {
39435 } else {
39436 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39437 if (UNTAG_Bool(REGB1)) {
39438 REGB1 = TAG_Bool(0);
39439 REGB0 = REGB1;
39440 } else {
39441 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39442 REGB0 = REGB1;
39443 }
39444 }
39445 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39446 if (UNTAG_Bool(REGB0)) {
39447 /* parser/parser_prod.nit:7251 */
39448 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39449 if (UNTAG_Bool(REGB0)) {
39450 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7251);
39451 }
39452 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39453 /* parser/parser_prod.nit:7252 */
39454 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
39455 if (UNTAG_Bool(REGB0)) {
39456 } else {
39457 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7252);
39458 }
39459 /* parser/parser_prod.nit:7253 */
39460 ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
39461 } else {
39462 /* parser/parser_prod.nit:7255 */
39463 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7255);
39464 }
39465 /* parser/parser_prod.nit:7257 */
39466 goto label1;
39467 }
39468 label1: while(0);
39469 stack_frame_head = fra.me.prev;
39470 return;
39471 }
39472 static const char LOCATE_parser___parser_prod___AAsCastExpr___visit_all[] = "parser_prod::AAsCastExpr::(parser_prod::ANode::visit_all)";
39473 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
39474 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39475 val_t REGB0;
39476 val_t tmp;
39477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39478 fra.me.file = LOCATE_parser___parser_prod;
39479 fra.me.line = 7261;
39480 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
39481 fra.me.has_broke = 0;
39482 fra.me.REG_size = 3;
39483 fra.me.nitni_local_ref_head = NULL;
39484 fra.me.REG[0] = NIT_NULL;
39485 fra.me.REG[1] = NIT_NULL;
39486 fra.me.REG[2] = NIT_NULL;
39487 fra.me.REG[0] = p0;
39488 fra.me.REG[1] = p1;
39489 /* parser/parser_prod.nit:7263 */
39490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39491 if (UNTAG_Bool(REGB0)) {
39492 } else {
39493 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7263);
39494 }
39495 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
39496 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39497 /* parser/parser_prod.nit:7264 */
39498 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
39499 if (UNTAG_Bool(REGB0)) {
39500 } else {
39501 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7264);
39502 }
39503 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
39504 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39505 /* parser/parser_prod.nit:7265 */
39506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
39507 if (UNTAG_Bool(REGB0)) {
39508 } else {
39509 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7265);
39510 }
39511 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
39512 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39513 /* parser/parser_prod.nit:7266 */
39514 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
39515 if (UNTAG_Bool(REGB0)) {
39516 } else {
39517 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7266);
39518 }
39519 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
39520 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39521 /* parser/parser_prod.nit:7267 */
39522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
39523 if (UNTAG_Bool(REGB0)) {
39524 } else {
39525 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7267);
39526 }
39527 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
39528 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39529 stack_frame_head = fra.me.prev;
39530 return;
39531 }
39532 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init[] = "parser_prod::AAsNotnullExpr::empty_init";
39533 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
39534 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
39535 struct {struct stack_frame_t me;} fra;
39536 val_t tmp;
39537 if (init_table[itpos251]) return;
39538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39539 fra.me.file = LOCATE_parser___parser_prod;
39540 fra.me.line = 7271;
39541 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
39542 fra.me.has_broke = 0;
39543 fra.me.REG_size = 1;
39544 fra.me.nitni_local_ref_head = NULL;
39545 fra.me.REG[0] = NIT_NULL;
39546 fra.me.REG[0] = p0;
39547 stack_frame_head = fra.me.prev;
39548 init_table[itpos251] = 1;
39549 return;
39550 }
39551 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr[] = "parser_prod::AAsNotnullExpr::init_aasnotnullexpr";
39552 void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
39553 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
39554 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
39555 val_t REGB0;
39556 val_t tmp;
39557 if (init_table[itpos252]) return;
39558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39559 fra.me.file = LOCATE_parser___parser_prod;
39560 fra.me.line = 7273;
39561 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
39562 fra.me.has_broke = 0;
39563 fra.me.REG_size = 8;
39564 fra.me.nitni_local_ref_head = NULL;
39565 fra.me.REG[0] = NIT_NULL;
39566 fra.me.REG[1] = NIT_NULL;
39567 fra.me.REG[2] = NIT_NULL;
39568 fra.me.REG[3] = NIT_NULL;
39569 fra.me.REG[4] = NIT_NULL;
39570 fra.me.REG[5] = NIT_NULL;
39571 fra.me.REG[6] = NIT_NULL;
39572 fra.me.REG[7] = NIT_NULL;
39573 fra.me.REG[0] = p0;
39574 fra.me.REG[1] = p1;
39575 fra.me.REG[2] = p2;
39576 fra.me.REG[3] = p3;
39577 fra.me.REG[4] = p4;
39578 fra.me.REG[5] = p5;
39579 fra.me.REG[6] = p6;
39580 /* parser/parser_prod.nit:7273 */
39581 fra.me.REG[7] = fra.me.REG[0];
39582 /* parser/parser_prod.nit:7282 */
39583 CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
39584 /* parser/parser_prod.nit:7283 */
39585 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39586 if (UNTAG_Bool(REGB0)) {
39587 } else {
39588 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7283);
39589 }
39590 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[7]) = fra.me.REG[1];
39591 /* parser/parser_prod.nit:7284 */
39592 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39593 if (UNTAG_Bool(REGB0)) {
39594 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7284);
39595 }
39596 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
39597 /* parser/parser_prod.nit:7285 */
39598 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39599 if (UNTAG_Bool(REGB0)) {
39600 } else {
39601 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7285);
39602 }
39603 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[7]) = fra.me.REG[2];
39604 /* parser/parser_prod.nit:7286 */
39605 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39606 if (UNTAG_Bool(REGB0)) {
39607 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7286);
39608 }
39609 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
39610 /* parser/parser_prod.nit:7287 */
39611 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39612 if (UNTAG_Bool(REGB0)) {
39613 } else {
39614 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7287);
39615 }
39616 ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[7]) = fra.me.REG[3];
39617 /* parser/parser_prod.nit:7288 */
39618 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39619 if (UNTAG_Bool(REGB0)) {
39620 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7288);
39621 }
39622 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
39623 /* parser/parser_prod.nit:7289 */
39624 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
39625 if (UNTAG_Bool(REGB0)) {
39626 } else {
39627 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7289);
39628 }
39629 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[7]) = fra.me.REG[4];
39630 /* parser/parser_prod.nit:7290 */
39631 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39632 if (UNTAG_Bool(REGB0)) {
39633 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7290);
39634 }
39635 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
39636 /* parser/parser_prod.nit:7291 */
39637 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
39638 if (UNTAG_Bool(REGB0)) {
39639 } else {
39640 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7291);
39641 }
39642 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[7]) = fra.me.REG[5];
39643 /* parser/parser_prod.nit:7292 */
39644 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39645 if (UNTAG_Bool(REGB0)) {
39646 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7292);
39647 }
39648 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
39649 /* parser/parser_prod.nit:7293 */
39650 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
39651 if (UNTAG_Bool(REGB0)) {
39652 } else {
39653 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7293);
39654 }
39655 ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[7]) = fra.me.REG[6];
39656 /* parser/parser_prod.nit:7294 */
39657 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39658 if (UNTAG_Bool(REGB0)) {
39659 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7294);
39660 }
39661 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
39662 stack_frame_head = fra.me.prev;
39663 init_table[itpos252] = 1;
39664 return;
39665 }
39666 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child[] = "parser_prod::AAsNotnullExpr::(parser_prod::ANode::replace_child)";
39667 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
39668 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39669 val_t REGB0;
39670 val_t REGB1;
39671 val_t tmp;
39672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39673 fra.me.file = LOCATE_parser___parser_prod;
39674 fra.me.line = 7297;
39675 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
39676 fra.me.has_broke = 0;
39677 fra.me.REG_size = 4;
39678 fra.me.nitni_local_ref_head = NULL;
39679 fra.me.REG[0] = NIT_NULL;
39680 fra.me.REG[1] = NIT_NULL;
39681 fra.me.REG[2] = NIT_NULL;
39682 fra.me.REG[3] = NIT_NULL;
39683 fra.me.REG[0] = p0;
39684 fra.me.REG[1] = p1;
39685 fra.me.REG[2] = p2;
39686 /* parser/parser_prod.nit:7299 */
39687 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39688 if (UNTAG_Bool(REGB0)) {
39689 } else {
39690 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7299);
39691 }
39692 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
39693 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39694 if (UNTAG_Bool(REGB0)) {
39695 } else {
39696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39697 REGB0 = REGB1;
39698 }
39699 if (UNTAG_Bool(REGB0)) {
39700 /* parser/parser_prod.nit:7300 */
39701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39702 if (UNTAG_Bool(REGB0)) {
39703 } else {
39704 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39705 if (UNTAG_Bool(REGB1)) {
39706 REGB1 = TAG_Bool(0);
39707 REGB0 = REGB1;
39708 } else {
39709 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39710 REGB0 = REGB1;
39711 }
39712 }
39713 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39714 if (UNTAG_Bool(REGB0)) {
39715 /* parser/parser_prod.nit:7301 */
39716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39717 if (UNTAG_Bool(REGB0)) {
39718 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7301);
39719 }
39720 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39721 /* parser/parser_prod.nit:7302 */
39722 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39723 if (UNTAG_Bool(REGB0)) {
39724 } else {
39725 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7302);
39726 }
39727 /* parser/parser_prod.nit:7303 */
39728 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
39729 } else {
39730 /* parser/parser_prod.nit:7305 */
39731 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7305);
39732 }
39733 /* parser/parser_prod.nit:7307 */
39734 goto label1;
39735 }
39736 /* parser/parser_prod.nit:7309 */
39737 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
39738 if (UNTAG_Bool(REGB0)) {
39739 } else {
39740 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7309);
39741 }
39742 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
39743 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39744 if (UNTAG_Bool(REGB0)) {
39745 } else {
39746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39747 REGB0 = REGB1;
39748 }
39749 if (UNTAG_Bool(REGB0)) {
39750 /* parser/parser_prod.nit:7310 */
39751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39752 if (UNTAG_Bool(REGB0)) {
39753 } else {
39754 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39755 if (UNTAG_Bool(REGB1)) {
39756 REGB1 = TAG_Bool(0);
39757 REGB0 = REGB1;
39758 } else {
39759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39760 REGB0 = REGB1;
39761 }
39762 }
39763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39764 if (UNTAG_Bool(REGB0)) {
39765 /* parser/parser_prod.nit:7311 */
39766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39767 if (UNTAG_Bool(REGB0)) {
39768 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7311);
39769 }
39770 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39771 /* parser/parser_prod.nit:7312 */
39772 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*/;
39773 if (UNTAG_Bool(REGB0)) {
39774 } else {
39775 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7312);
39776 }
39777 /* parser/parser_prod.nit:7313 */
39778 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
39779 } else {
39780 /* parser/parser_prod.nit:7315 */
39781 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7315);
39782 }
39783 /* parser/parser_prod.nit:7317 */
39784 goto label1;
39785 }
39786 /* parser/parser_prod.nit:7319 */
39787 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
39788 if (UNTAG_Bool(REGB0)) {
39789 } else {
39790 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7319);
39791 }
39792 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
39793 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39794 if (UNTAG_Bool(REGB0)) {
39795 } else {
39796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39797 REGB0 = REGB1;
39798 }
39799 if (UNTAG_Bool(REGB0)) {
39800 /* parser/parser_prod.nit:7320 */
39801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39802 if (UNTAG_Bool(REGB0)) {
39803 } else {
39804 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39805 if (UNTAG_Bool(REGB1)) {
39806 REGB1 = TAG_Bool(0);
39807 REGB0 = REGB1;
39808 } else {
39809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39810 REGB0 = REGB1;
39811 }
39812 }
39813 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39814 if (UNTAG_Bool(REGB0)) {
39815 /* parser/parser_prod.nit:7321 */
39816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39817 if (UNTAG_Bool(REGB0)) {
39818 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7321);
39819 }
39820 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39821 /* parser/parser_prod.nit:7322 */
39822 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
39823 if (UNTAG_Bool(REGB0)) {
39824 } else {
39825 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7322);
39826 }
39827 /* parser/parser_prod.nit:7323 */
39828 ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
39829 } else {
39830 /* parser/parser_prod.nit:7325 */
39831 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7325);
39832 }
39833 /* parser/parser_prod.nit:7327 */
39834 goto label1;
39835 }
39836 /* parser/parser_prod.nit:7329 */
39837 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
39838 if (UNTAG_Bool(REGB0)) {
39839 } else {
39840 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7329);
39841 }
39842 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
39843 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39844 if (UNTAG_Bool(REGB0)) {
39845 } else {
39846 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39847 REGB0 = REGB1;
39848 }
39849 if (UNTAG_Bool(REGB0)) {
39850 /* parser/parser_prod.nit:7330 */
39851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39852 if (UNTAG_Bool(REGB0)) {
39853 } else {
39854 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39855 if (UNTAG_Bool(REGB1)) {
39856 REGB1 = TAG_Bool(0);
39857 REGB0 = REGB1;
39858 } else {
39859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39860 REGB0 = REGB1;
39861 }
39862 }
39863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39864 if (UNTAG_Bool(REGB0)) {
39865 /* parser/parser_prod.nit:7331 */
39866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39867 if (UNTAG_Bool(REGB0)) {
39868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7331);
39869 }
39870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39871 /* parser/parser_prod.nit:7332 */
39872 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*/;
39873 if (UNTAG_Bool(REGB0)) {
39874 } else {
39875 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7332);
39876 }
39877 /* parser/parser_prod.nit:7333 */
39878 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
39879 } else {
39880 /* parser/parser_prod.nit:7335 */
39881 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7335);
39882 }
39883 /* parser/parser_prod.nit:7337 */
39884 goto label1;
39885 }
39886 /* parser/parser_prod.nit:7339 */
39887 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
39888 if (UNTAG_Bool(REGB0)) {
39889 } else {
39890 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7339);
39891 }
39892 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
39893 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39894 if (UNTAG_Bool(REGB0)) {
39895 } else {
39896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39897 REGB0 = REGB1;
39898 }
39899 if (UNTAG_Bool(REGB0)) {
39900 /* parser/parser_prod.nit:7340 */
39901 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39902 if (UNTAG_Bool(REGB0)) {
39903 } else {
39904 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39905 if (UNTAG_Bool(REGB1)) {
39906 REGB1 = TAG_Bool(0);
39907 REGB0 = REGB1;
39908 } else {
39909 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39910 REGB0 = REGB1;
39911 }
39912 }
39913 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39914 if (UNTAG_Bool(REGB0)) {
39915 /* parser/parser_prod.nit:7341 */
39916 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39917 if (UNTAG_Bool(REGB0)) {
39918 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7341);
39919 }
39920 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39921 /* parser/parser_prod.nit:7342 */
39922 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*/;
39923 if (UNTAG_Bool(REGB0)) {
39924 } else {
39925 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7342);
39926 }
39927 /* parser/parser_prod.nit:7343 */
39928 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
39929 } else {
39930 /* parser/parser_prod.nit:7345 */
39931 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7345);
39932 }
39933 /* parser/parser_prod.nit:7347 */
39934 goto label1;
39935 }
39936 /* parser/parser_prod.nit:7349 */
39937 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
39938 if (UNTAG_Bool(REGB0)) {
39939 } else {
39940 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7349);
39941 }
39942 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
39943 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39944 if (UNTAG_Bool(REGB0)) {
39945 } else {
39946 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39947 REGB0 = REGB1;
39948 }
39949 if (UNTAG_Bool(REGB0)) {
39950 /* parser/parser_prod.nit:7350 */
39951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39952 if (UNTAG_Bool(REGB0)) {
39953 } else {
39954 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39955 if (UNTAG_Bool(REGB1)) {
39956 REGB1 = TAG_Bool(0);
39957 REGB0 = REGB1;
39958 } else {
39959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39960 REGB0 = REGB1;
39961 }
39962 }
39963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39964 if (UNTAG_Bool(REGB0)) {
39965 /* parser/parser_prod.nit:7351 */
39966 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39967 if (UNTAG_Bool(REGB0)) {
39968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7351);
39969 }
39970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39971 /* parser/parser_prod.nit:7352 */
39972 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
39973 if (UNTAG_Bool(REGB0)) {
39974 } else {
39975 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7352);
39976 }
39977 /* parser/parser_prod.nit:7353 */
39978 ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
39979 } else {
39980 /* parser/parser_prod.nit:7355 */
39981 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7355);
39982 }
39983 /* parser/parser_prod.nit:7357 */
39984 goto label1;
39985 }
39986 label1: while(0);
39987 stack_frame_head = fra.me.prev;
39988 return;
39989 }
39990 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all[] = "parser_prod::AAsNotnullExpr::(parser_prod::ANode::visit_all)";
39991 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
39992 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39993 val_t REGB0;
39994 val_t tmp;
39995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39996 fra.me.file = LOCATE_parser___parser_prod;
39997 fra.me.line = 7361;
39998 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
39999 fra.me.has_broke = 0;
40000 fra.me.REG_size = 3;
40001 fra.me.nitni_local_ref_head = NULL;
40002 fra.me.REG[0] = NIT_NULL;
40003 fra.me.REG[1] = NIT_NULL;
40004 fra.me.REG[2] = NIT_NULL;
40005 fra.me.REG[0] = p0;
40006 fra.me.REG[1] = p1;
40007 /* parser/parser_prod.nit:7363 */
40008 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
40009 if (UNTAG_Bool(REGB0)) {
40010 } else {
40011 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7363);
40012 }
40013 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
40014 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40015 /* parser/parser_prod.nit:7364 */
40016 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
40017 if (UNTAG_Bool(REGB0)) {
40018 } else {
40019 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7364);
40020 }
40021 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
40022 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40023 /* parser/parser_prod.nit:7365 */
40024 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
40025 if (UNTAG_Bool(REGB0)) {
40026 } else {
40027 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7365);
40028 }
40029 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
40030 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40031 /* parser/parser_prod.nit:7366 */
40032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
40033 if (UNTAG_Bool(REGB0)) {
40034 } else {
40035 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7366);
40036 }
40037 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
40038 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40039 /* parser/parser_prod.nit:7367 */
40040 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
40041 if (UNTAG_Bool(REGB0)) {
40042 } else {
40043 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7367);
40044 }
40045 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
40046 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40047 /* parser/parser_prod.nit:7368 */
40048 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
40049 if (UNTAG_Bool(REGB0)) {
40050 } else {
40051 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7368);
40052 }
40053 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
40054 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40055 stack_frame_head = fra.me.prev;
40056 return;
40057 }
40058 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init[] = "parser_prod::AIssetAttrExpr::empty_init";
40059 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
40060 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
40061 struct {struct stack_frame_t me;} fra;
40062 val_t tmp;
40063 if (init_table[itpos253]) return;
40064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40065 fra.me.file = LOCATE_parser___parser_prod;
40066 fra.me.line = 7372;
40067 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
40068 fra.me.has_broke = 0;
40069 fra.me.REG_size = 1;
40070 fra.me.nitni_local_ref_head = NULL;
40071 fra.me.REG[0] = NIT_NULL;
40072 fra.me.REG[0] = p0;
40073 stack_frame_head = fra.me.prev;
40074 init_table[itpos253] = 1;
40075 return;
40076 }
40077 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr[] = "parser_prod::AIssetAttrExpr::init_aissetattrexpr";
40078 void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
40079 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
40080 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
40081 val_t REGB0;
40082 val_t tmp;
40083 if (init_table[itpos254]) return;
40084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40085 fra.me.file = LOCATE_parser___parser_prod;
40086 fra.me.line = 7374;
40087 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
40088 fra.me.has_broke = 0;
40089 fra.me.REG_size = 5;
40090 fra.me.nitni_local_ref_head = NULL;
40091 fra.me.REG[0] = NIT_NULL;
40092 fra.me.REG[1] = NIT_NULL;
40093 fra.me.REG[2] = NIT_NULL;
40094 fra.me.REG[3] = NIT_NULL;
40095 fra.me.REG[4] = NIT_NULL;
40096 fra.me.REG[0] = p0;
40097 fra.me.REG[1] = p1;
40098 fra.me.REG[2] = p2;
40099 fra.me.REG[3] = p3;
40100 /* parser/parser_prod.nit:7374 */
40101 fra.me.REG[4] = fra.me.REG[0];
40102 /* parser/parser_prod.nit:7380 */
40103 CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
40104 /* parser/parser_prod.nit:7381 */
40105 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40106 if (UNTAG_Bool(REGB0)) {
40107 } else {
40108 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7381);
40109 }
40110 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
40111 /* parser/parser_prod.nit:7382 */
40112 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40113 if (UNTAG_Bool(REGB0)) {
40114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7382);
40115 }
40116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
40117 /* parser/parser_prod.nit:7383 */
40118 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
40119 if (UNTAG_Bool(REGB0)) {
40120 } else {
40121 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7383);
40122 }
40123 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
40124 /* parser/parser_prod.nit:7384 */
40125 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40126 if (UNTAG_Bool(REGB0)) {
40127 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7384);
40128 }
40129 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
40130 /* parser/parser_prod.nit:7385 */
40131 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40132 if (UNTAG_Bool(REGB0)) {
40133 } else {
40134 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7385);
40135 }
40136 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
40137 /* parser/parser_prod.nit:7386 */
40138 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40139 if (UNTAG_Bool(REGB0)) {
40140 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7386);
40141 }
40142 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
40143 stack_frame_head = fra.me.prev;
40144 init_table[itpos254] = 1;
40145 return;
40146 }
40147 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child[] = "parser_prod::AIssetAttrExpr::(parser_prod::ANode::replace_child)";
40148 void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
40149 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40150 val_t REGB0;
40151 val_t REGB1;
40152 val_t tmp;
40153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40154 fra.me.file = LOCATE_parser___parser_prod;
40155 fra.me.line = 7389;
40156 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
40157 fra.me.has_broke = 0;
40158 fra.me.REG_size = 4;
40159 fra.me.nitni_local_ref_head = NULL;
40160 fra.me.REG[0] = NIT_NULL;
40161 fra.me.REG[1] = NIT_NULL;
40162 fra.me.REG[2] = NIT_NULL;
40163 fra.me.REG[3] = NIT_NULL;
40164 fra.me.REG[0] = p0;
40165 fra.me.REG[1] = p1;
40166 fra.me.REG[2] = p2;
40167 /* parser/parser_prod.nit:7391 */
40168 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
40169 if (UNTAG_Bool(REGB0)) {
40170 } else {
40171 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7391);
40172 }
40173 fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
40174 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40175 if (UNTAG_Bool(REGB0)) {
40176 } else {
40177 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40178 REGB0 = REGB1;
40179 }
40180 if (UNTAG_Bool(REGB0)) {
40181 /* parser/parser_prod.nit:7392 */
40182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40183 if (UNTAG_Bool(REGB0)) {
40184 } else {
40185 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40186 if (UNTAG_Bool(REGB1)) {
40187 REGB1 = TAG_Bool(0);
40188 REGB0 = REGB1;
40189 } else {
40190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40191 REGB0 = REGB1;
40192 }
40193 }
40194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40195 if (UNTAG_Bool(REGB0)) {
40196 /* parser/parser_prod.nit:7393 */
40197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40198 if (UNTAG_Bool(REGB0)) {
40199 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7393);
40200 }
40201 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40202 /* parser/parser_prod.nit:7394 */
40203 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*/;
40204 if (UNTAG_Bool(REGB0)) {
40205 } else {
40206 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7394);
40207 }
40208 /* parser/parser_prod.nit:7395 */
40209 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
40210 } else {
40211 /* parser/parser_prod.nit:7397 */
40212 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7397);
40213 }
40214 /* parser/parser_prod.nit:7399 */
40215 goto label1;
40216 }
40217 /* parser/parser_prod.nit:7401 */
40218 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
40219 if (UNTAG_Bool(REGB0)) {
40220 } else {
40221 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7401);
40222 }
40223 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
40224 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40225 if (UNTAG_Bool(REGB0)) {
40226 } else {
40227 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40228 REGB0 = REGB1;
40229 }
40230 if (UNTAG_Bool(REGB0)) {
40231 /* parser/parser_prod.nit:7402 */
40232 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40233 if (UNTAG_Bool(REGB0)) {
40234 } else {
40235 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40236 if (UNTAG_Bool(REGB1)) {
40237 REGB1 = TAG_Bool(0);
40238 REGB0 = REGB1;
40239 } else {
40240 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40241 REGB0 = REGB1;
40242 }
40243 }
40244 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40245 if (UNTAG_Bool(REGB0)) {
40246 /* parser/parser_prod.nit:7403 */
40247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40248 if (UNTAG_Bool(REGB0)) {
40249 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7403);
40250 }
40251 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40252 /* parser/parser_prod.nit:7404 */
40253 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40254 if (UNTAG_Bool(REGB0)) {
40255 } else {
40256 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7404);
40257 }
40258 /* parser/parser_prod.nit:7405 */
40259 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
40260 } else {
40261 /* parser/parser_prod.nit:7407 */
40262 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7407);
40263 }
40264 /* parser/parser_prod.nit:7409 */
40265 goto label1;
40266 }
40267 /* parser/parser_prod.nit:7411 */
40268 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
40269 if (UNTAG_Bool(REGB0)) {
40270 } else {
40271 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7411);
40272 }
40273 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
40274 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40275 if (UNTAG_Bool(REGB0)) {
40276 } else {
40277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40278 REGB0 = REGB1;
40279 }
40280 if (UNTAG_Bool(REGB0)) {
40281 /* parser/parser_prod.nit:7412 */
40282 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40283 if (UNTAG_Bool(REGB0)) {
40284 } else {
40285 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40286 if (UNTAG_Bool(REGB1)) {
40287 REGB1 = TAG_Bool(0);
40288 REGB0 = REGB1;
40289 } else {
40290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40291 REGB0 = REGB1;
40292 }
40293 }
40294 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40295 if (UNTAG_Bool(REGB0)) {
40296 /* parser/parser_prod.nit:7413 */
40297 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40298 if (UNTAG_Bool(REGB0)) {
40299 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7413);
40300 }
40301 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40302 /* parser/parser_prod.nit:7414 */
40303 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*/;
40304 if (UNTAG_Bool(REGB0)) {
40305 } else {
40306 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7414);
40307 }
40308 /* parser/parser_prod.nit:7415 */
40309 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
40310 } else {
40311 /* parser/parser_prod.nit:7417 */
40312 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7417);
40313 }
40314 /* parser/parser_prod.nit:7419 */
40315 goto label1;
40316 }
40317 label1: while(0);
40318 stack_frame_head = fra.me.prev;
40319 return;
40320 }
40321 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all[] = "parser_prod::AIssetAttrExpr::(parser_prod::ANode::visit_all)";
40322 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
40323 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40324 val_t REGB0;
40325 val_t tmp;
40326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40327 fra.me.file = LOCATE_parser___parser_prod;
40328 fra.me.line = 7423;
40329 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
40330 fra.me.has_broke = 0;
40331 fra.me.REG_size = 3;
40332 fra.me.nitni_local_ref_head = NULL;
40333 fra.me.REG[0] = NIT_NULL;
40334 fra.me.REG[1] = NIT_NULL;
40335 fra.me.REG[2] = NIT_NULL;
40336 fra.me.REG[0] = p0;
40337 fra.me.REG[1] = p1;
40338 /* parser/parser_prod.nit:7425 */
40339 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
40340 if (UNTAG_Bool(REGB0)) {
40341 } else {
40342 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7425);
40343 }
40344 fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
40345 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40346 /* parser/parser_prod.nit:7426 */
40347 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
40348 if (UNTAG_Bool(REGB0)) {
40349 } else {
40350 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7426);
40351 }
40352 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
40353 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40354 /* parser/parser_prod.nit:7427 */
40355 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
40356 if (UNTAG_Bool(REGB0)) {
40357 } else {
40358 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7427);
40359 }
40360 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
40361 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40362 stack_frame_head = fra.me.prev;
40363 return;
40364 }
40365 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init[] = "parser_prod::ADebugTypeExpr::empty_init";
40366 void parser___parser_prod___ADebugTypeExpr___empty_init(val_t p0, int* init_table){
40367 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
40368 struct {struct stack_frame_t me;} fra;
40369 val_t tmp;
40370 if (init_table[itpos255]) return;
40371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40372 fra.me.file = LOCATE_parser___parser_prod;
40373 fra.me.line = 7431;
40374 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init;
40375 fra.me.has_broke = 0;
40376 fra.me.REG_size = 1;
40377 fra.me.nitni_local_ref_head = NULL;
40378 fra.me.REG[0] = NIT_NULL;
40379 fra.me.REG[0] = p0;
40380 stack_frame_head = fra.me.prev;
40381 init_table[itpos255] = 1;
40382 return;
40383 }
40384 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr[] = "parser_prod::ADebugTypeExpr::init_adebugtypeexpr";
40385 void parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
40386 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
40387 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
40388 val_t REGB0;
40389 val_t tmp;
40390 if (init_table[itpos256]) return;
40391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40392 fra.me.file = LOCATE_parser___parser_prod;
40393 fra.me.line = 7433;
40394 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr;
40395 fra.me.has_broke = 0;
40396 fra.me.REG_size = 6;
40397 fra.me.nitni_local_ref_head = NULL;
40398 fra.me.REG[0] = NIT_NULL;
40399 fra.me.REG[1] = NIT_NULL;
40400 fra.me.REG[2] = NIT_NULL;
40401 fra.me.REG[3] = NIT_NULL;
40402 fra.me.REG[4] = NIT_NULL;
40403 fra.me.REG[5] = NIT_NULL;
40404 fra.me.REG[0] = p0;
40405 fra.me.REG[1] = p1;
40406 fra.me.REG[2] = p2;
40407 fra.me.REG[3] = p3;
40408 fra.me.REG[4] = p4;
40409 /* parser/parser_prod.nit:7433 */
40410 fra.me.REG[5] = fra.me.REG[0];
40411 /* parser/parser_prod.nit:7440 */
40412 CALL_parser___parser_prod___ADebugTypeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
40413 /* parser/parser_prod.nit:7441 */
40414 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40415 if (UNTAG_Bool(REGB0)) {
40416 } else {
40417 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7441);
40418 }
40419 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[5]) = fra.me.REG[1];
40420 /* parser/parser_prod.nit:7442 */
40421 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40422 if (UNTAG_Bool(REGB0)) {
40423 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7442);
40424 }
40425 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
40426 /* parser/parser_prod.nit:7443 */
40427 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
40428 if (UNTAG_Bool(REGB0)) {
40429 } else {
40430 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7443);
40431 }
40432 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[5]) = fra.me.REG[2];
40433 /* parser/parser_prod.nit:7444 */
40434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40435 if (UNTAG_Bool(REGB0)) {
40436 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7444);
40437 }
40438 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
40439 /* parser/parser_prod.nit:7445 */
40440 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40441 if (UNTAG_Bool(REGB0)) {
40442 } else {
40443 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7445);
40444 }
40445 ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
40446 /* parser/parser_prod.nit:7446 */
40447 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40448 if (UNTAG_Bool(REGB0)) {
40449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7446);
40450 }
40451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
40452 /* parser/parser_prod.nit:7447 */
40453 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
40454 if (UNTAG_Bool(REGB0)) {
40455 } else {
40456 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7447);
40457 }
40458 ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[5]) = fra.me.REG[4];
40459 /* parser/parser_prod.nit:7448 */
40460 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
40461 if (UNTAG_Bool(REGB0)) {
40462 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7448);
40463 }
40464 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
40465 stack_frame_head = fra.me.prev;
40466 init_table[itpos256] = 1;
40467 return;
40468 }
40469 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child[] = "parser_prod::ADebugTypeExpr::(parser_prod::ANode::replace_child)";
40470 void parser___parser_prod___ADebugTypeExpr___replace_child(val_t p0, val_t p1, val_t p2){
40471 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40472 val_t REGB0;
40473 val_t REGB1;
40474 val_t tmp;
40475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40476 fra.me.file = LOCATE_parser___parser_prod;
40477 fra.me.line = 7451;
40478 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child;
40479 fra.me.has_broke = 0;
40480 fra.me.REG_size = 4;
40481 fra.me.nitni_local_ref_head = NULL;
40482 fra.me.REG[0] = NIT_NULL;
40483 fra.me.REG[1] = NIT_NULL;
40484 fra.me.REG[2] = NIT_NULL;
40485 fra.me.REG[3] = NIT_NULL;
40486 fra.me.REG[0] = p0;
40487 fra.me.REG[1] = p1;
40488 fra.me.REG[2] = p2;
40489 /* parser/parser_prod.nit:7453 */
40490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
40491 if (UNTAG_Bool(REGB0)) {
40492 } else {
40493 nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7453);
40494 }
40495 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
40496 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40497 if (UNTAG_Bool(REGB0)) {
40498 } else {
40499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40500 REGB0 = REGB1;
40501 }
40502 if (UNTAG_Bool(REGB0)) {
40503 /* parser/parser_prod.nit:7454 */
40504 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40505 if (UNTAG_Bool(REGB0)) {
40506 } else {
40507 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40508 if (UNTAG_Bool(REGB1)) {
40509 REGB1 = TAG_Bool(0);
40510 REGB0 = REGB1;
40511 } else {
40512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40513 REGB0 = REGB1;
40514 }
40515 }
40516 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40517 if (UNTAG_Bool(REGB0)) {
40518 /* parser/parser_prod.nit:7455 */
40519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40520 if (UNTAG_Bool(REGB0)) {
40521 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7455);
40522 }
40523 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40524 /* parser/parser_prod.nit:7456 */
40525 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdebug, ID_parser___parser_nodes___TKwdebug)) /*cast TKwdebug*/;
40526 if (UNTAG_Bool(REGB0)) {
40527 } else {
40528 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7456);
40529 }
40530 /* parser/parser_prod.nit:7457 */
40531 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]) = fra.me.REG[2];
40532 } else {
40533 /* parser/parser_prod.nit:7459 */
40534 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7459);
40535 }
40536 /* parser/parser_prod.nit:7461 */
40537 goto label1;
40538 }
40539 /* parser/parser_prod.nit:7463 */
40540 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
40541 if (UNTAG_Bool(REGB0)) {
40542 } else {
40543 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7463);
40544 }
40545 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
40546 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40547 if (UNTAG_Bool(REGB0)) {
40548 } else {
40549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40550 REGB0 = REGB1;
40551 }
40552 if (UNTAG_Bool(REGB0)) {
40553 /* parser/parser_prod.nit:7464 */
40554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40555 if (UNTAG_Bool(REGB0)) {
40556 } else {
40557 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40558 if (UNTAG_Bool(REGB1)) {
40559 REGB1 = TAG_Bool(0);
40560 REGB0 = REGB1;
40561 } else {
40562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40563 REGB0 = REGB1;
40564 }
40565 }
40566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40567 if (UNTAG_Bool(REGB0)) {
40568 /* parser/parser_prod.nit:7465 */
40569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40570 if (UNTAG_Bool(REGB0)) {
40571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7465);
40572 }
40573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40574 /* parser/parser_prod.nit:7466 */
40575 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*/;
40576 if (UNTAG_Bool(REGB0)) {
40577 } else {
40578 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7466);
40579 }
40580 /* parser/parser_prod.nit:7467 */
40581 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
40582 } else {
40583 /* parser/parser_prod.nit:7469 */
40584 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7469);
40585 }
40586 /* parser/parser_prod.nit:7471 */
40587 goto label1;
40588 }
40589 /* parser/parser_prod.nit:7473 */
40590 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
40591 if (UNTAG_Bool(REGB0)) {
40592 } else {
40593 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7473);
40594 }
40595 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
40596 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40597 if (UNTAG_Bool(REGB0)) {
40598 } else {
40599 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40600 REGB0 = REGB1;
40601 }
40602 if (UNTAG_Bool(REGB0)) {
40603 /* parser/parser_prod.nit:7474 */
40604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40605 if (UNTAG_Bool(REGB0)) {
40606 } else {
40607 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40608 if (UNTAG_Bool(REGB1)) {
40609 REGB1 = TAG_Bool(0);
40610 REGB0 = REGB1;
40611 } else {
40612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40613 REGB0 = REGB1;
40614 }
40615 }
40616 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40617 if (UNTAG_Bool(REGB0)) {
40618 /* parser/parser_prod.nit:7475 */
40619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40620 if (UNTAG_Bool(REGB0)) {
40621 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7475);
40622 }
40623 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40624 /* parser/parser_prod.nit:7476 */
40625 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40626 if (UNTAG_Bool(REGB0)) {
40627 } else {
40628 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7476);
40629 }
40630 /* parser/parser_prod.nit:7477 */
40631 ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
40632 } else {
40633 /* parser/parser_prod.nit:7479 */
40634 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7479);
40635 }
40636 /* parser/parser_prod.nit:7481 */
40637 goto label1;
40638 }
40639 /* parser/parser_prod.nit:7483 */
40640 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
40641 if (UNTAG_Bool(REGB0)) {
40642 } else {
40643 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7483);
40644 }
40645 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
40646 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40647 if (UNTAG_Bool(REGB0)) {
40648 } else {
40649 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40650 REGB0 = REGB1;
40651 }
40652 if (UNTAG_Bool(REGB0)) {
40653 /* parser/parser_prod.nit:7484 */
40654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40655 if (UNTAG_Bool(REGB0)) {
40656 } else {
40657 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40658 if (UNTAG_Bool(REGB1)) {
40659 REGB1 = TAG_Bool(0);
40660 REGB0 = REGB1;
40661 } else {
40662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40663 REGB0 = REGB1;
40664 }
40665 }
40666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40667 if (UNTAG_Bool(REGB0)) {
40668 /* parser/parser_prod.nit:7485 */
40669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40670 if (UNTAG_Bool(REGB0)) {
40671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7485);
40672 }
40673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40674 /* parser/parser_prod.nit:7486 */
40675 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*/;
40676 if (UNTAG_Bool(REGB0)) {
40677 } else {
40678 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7486);
40679 }
40680 /* parser/parser_prod.nit:7487 */
40681 ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
40682 } else {
40683 /* parser/parser_prod.nit:7489 */
40684 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7489);
40685 }
40686 /* parser/parser_prod.nit:7491 */
40687 goto label1;
40688 }
40689 label1: while(0);
40690 stack_frame_head = fra.me.prev;
40691 return;
40692 }
40693 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all[] = "parser_prod::ADebugTypeExpr::(parser_prod::ANode::visit_all)";
40694 void parser___parser_prod___ADebugTypeExpr___visit_all(val_t p0, val_t p1){
40695 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40696 val_t REGB0;
40697 val_t tmp;
40698 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40699 fra.me.file = LOCATE_parser___parser_prod;
40700 fra.me.line = 7495;
40701 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all;
40702 fra.me.has_broke = 0;
40703 fra.me.REG_size = 3;
40704 fra.me.nitni_local_ref_head = NULL;
40705 fra.me.REG[0] = NIT_NULL;
40706 fra.me.REG[1] = NIT_NULL;
40707 fra.me.REG[2] = NIT_NULL;
40708 fra.me.REG[0] = p0;
40709 fra.me.REG[1] = p1;
40710 /* parser/parser_prod.nit:7497 */
40711 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
40712 if (UNTAG_Bool(REGB0)) {
40713 } else {
40714 nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7497);
40715 }
40716 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
40717 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40718 /* parser/parser_prod.nit:7498 */
40719 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
40720 if (UNTAG_Bool(REGB0)) {
40721 } else {
40722 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7498);
40723 }
40724 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
40725 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40726 /* parser/parser_prod.nit:7499 */
40727 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
40728 if (UNTAG_Bool(REGB0)) {
40729 } else {
40730 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7499);
40731 }
40732 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
40733 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40734 /* parser/parser_prod.nit:7500 */
40735 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
40736 if (UNTAG_Bool(REGB0)) {
40737 } else {
40738 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7500);
40739 }
40740 fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
40741 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40742 stack_frame_head = fra.me.prev;
40743 return;
40744 }
40745 static const char LOCATE_parser___parser_prod___AListExprs___empty_init[] = "parser_prod::AListExprs::empty_init";
40746 void parser___parser_prod___AListExprs___empty_init(val_t p0, int* init_table){
40747 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
40748 struct {struct stack_frame_t me;} fra;
40749 val_t tmp;
40750 if (init_table[itpos257]) return;
40751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40752 fra.me.file = LOCATE_parser___parser_prod;
40753 fra.me.line = 7504;
40754 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___empty_init;
40755 fra.me.has_broke = 0;
40756 fra.me.REG_size = 1;
40757 fra.me.nitni_local_ref_head = NULL;
40758 fra.me.REG[0] = NIT_NULL;
40759 fra.me.REG[0] = p0;
40760 stack_frame_head = fra.me.prev;
40761 init_table[itpos257] = 1;
40762 return;
40763 }
40764 static const char LOCATE_parser___parser_prod___AListExprs___init_alistexprs[] = "parser_prod::AListExprs::init_alistexprs";
40765 void parser___parser_prod___AListExprs___init_alistexprs(val_t p0, val_t p1, int* init_table){
40766 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
40767 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40768 val_t tmp;
40769 if (init_table[itpos258]) return;
40770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40771 fra.me.file = LOCATE_parser___parser_prod;
40772 fra.me.line = 7506;
40773 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
40774 fra.me.has_broke = 0;
40775 fra.me.REG_size = 2;
40776 fra.me.nitni_local_ref_head = NULL;
40777 fra.me.REG[0] = NIT_NULL;
40778 fra.me.REG[1] = NIT_NULL;
40779 fra.me.REG[0] = p0;
40780 fra.me.REG[1] = p1;
40781 /* parser/parser_prod.nit:7510 */
40782 CALL_parser___parser_prod___AListExprs___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
40783 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___init_alistexprs_1));
40784 stack_frame_head = fra.me.prev;
40785 init_table[itpos258] = 1;
40786 return;
40787 }
40788 void OC_parser___parser_prod___AListExprs___init_alistexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
40789 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40790 val_t REGB0;
40791 fun_t CREG[1];
40792 val_t tmp;
40793 /* parser/parser_prod.nit:7511 */
40794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40795 fra.me.file = LOCATE_parser___parser_prod;
40796 fra.me.line = 0;
40797 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
40798 fra.me.has_broke = 0;
40799 fra.me.REG_size = 2;
40800 fra.me.nitni_local_ref_head = NULL;
40801 fra.me.REG[0] = NIT_NULL;
40802 fra.me.REG[1] = NIT_NULL;
40803 fra.me.closure_ctx = closctx_param;
40804 fra.me.closure_funs = CREG;
40805 fra.me.REG[0] = p0;
40806 CREG[0] = clos_fun0;
40807 /* parser/parser_prod.nit:7512 */
40808 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40809 if (UNTAG_Bool(REGB0)) {
40810 } else {
40811 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7512);
40812 }
40813 /* parser/parser_prod.nit:7513 */
40814 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0])!=NIT_NULL);
40815 if (UNTAG_Bool(REGB0)) {
40816 } else {
40817 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7513);
40818 }
40819 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0]);
40820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40821 /* parser/parser_prod.nit:7514 */
40822 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
40823 stack_frame_head = fra.me.prev;
40824 return;
40825 }
40826 static const char LOCATE_parser___parser_prod___AListExprs___replace_child[] = "parser_prod::AListExprs::(parser_prod::ANode::replace_child)";
40827 void parser___parser_prod___AListExprs___replace_child(val_t p0, val_t p1, val_t p2){
40828 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40829 val_t REGB0;
40830 val_t REGB1;
40831 val_t REGB2;
40832 val_t REGB3;
40833 val_t REGB4;
40834 val_t tmp;
40835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40836 fra.me.file = LOCATE_parser___parser_prod;
40837 fra.me.line = 7518;
40838 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___replace_child;
40839 fra.me.has_broke = 0;
40840 fra.me.REG_size = 4;
40841 fra.me.nitni_local_ref_head = NULL;
40842 fra.me.REG[0] = NIT_NULL;
40843 fra.me.REG[1] = NIT_NULL;
40844 fra.me.REG[2] = NIT_NULL;
40845 fra.me.REG[3] = NIT_NULL;
40846 fra.me.REG[0] = p0;
40847 fra.me.REG[1] = p1;
40848 fra.me.REG[2] = p2;
40849 /* parser/parser_prod.nit:7520 */
40850 REGB0 = TAG_Int(0);
40851 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40852 if (UNTAG_Bool(REGB1)) {
40853 } else {
40854 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7520);
40855 }
40856 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40857 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40858 /* ../lib/standard/kernel.nit:355 */
40859 while(1) {
40860 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40861 if (UNTAG_Bool(REGB2)) {
40862 } else {
40863 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40864 }
40865 /* ../lib/standard/kernel.nit:235 */
40866 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40867 /* ../lib/standard/kernel.nit:355 */
40868 if (UNTAG_Bool(REGB2)) {
40869 /* parser/parser_prod.nit:7520 */
40870 REGB2 = REGB0;
40871 /* parser/parser_prod.nit:7521 */
40872 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40873 if (UNTAG_Bool(REGB3)) {
40874 } else {
40875 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7521);
40876 }
40877 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40878 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40879 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40880 if (UNTAG_Bool(REGB3)) {
40881 } else {
40882 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40883 if (UNTAG_Bool(REGB4)) {
40884 REGB4 = TAG_Bool(0);
40885 REGB3 = REGB4;
40886 } else {
40887 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40888 REGB3 = REGB4;
40889 }
40890 }
40891 if (UNTAG_Bool(REGB3)) {
40892 /* parser/parser_prod.nit:7522 */
40893 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40894 if (UNTAG_Bool(REGB3)) {
40895 } else {
40896 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40897 if (UNTAG_Bool(REGB4)) {
40898 REGB4 = TAG_Bool(0);
40899 REGB3 = REGB4;
40900 } else {
40901 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40902 REGB3 = REGB4;
40903 }
40904 }
40905 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40906 if (UNTAG_Bool(REGB3)) {
40907 /* parser/parser_prod.nit:7523 */
40908 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*/;
40909 if (UNTAG_Bool(REGB3)) {
40910 } else {
40911 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7523);
40912 }
40913 /* parser/parser_prod.nit:7524 */
40914 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40915 if (UNTAG_Bool(REGB3)) {
40916 } else {
40917 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7524);
40918 }
40919 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40920 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40921 /* parser/parser_prod.nit:7525 */
40922 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40923 if (UNTAG_Bool(REGB3)) {
40924 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7525);
40925 }
40926 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40927 } else {
40928 /* parser/parser_prod.nit:7527 */
40929 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40930 if (UNTAG_Bool(REGB3)) {
40931 } else {
40932 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7527);
40933 }
40934 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40935 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40936 }
40937 /* parser/parser_prod.nit:7529 */
40938 goto label1;
40939 }
40940 /* ../lib/standard/kernel.nit:357 */
40941 REGB2 = TAG_Int(1);
40942 /* ../lib/standard/kernel.nit:238 */
40943 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40944 /* ../lib/standard/kernel.nit:357 */
40945 REGB0 = REGB2;
40946 } else {
40947 /* ../lib/standard/kernel.nit:355 */
40948 goto label2;
40949 }
40950 }
40951 label2: while(0);
40952 label1: while(0);
40953 stack_frame_head = fra.me.prev;
40954 return;
40955 }
40956 static const char LOCATE_parser___parser_prod___AListExprs___visit_all[] = "parser_prod::AListExprs::(parser_prod::ANode::visit_all)";
40957 void parser___parser_prod___AListExprs___visit_all(val_t p0, val_t p1){
40958 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40959 val_t REGB0;
40960 val_t tmp;
40961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40962 fra.me.file = LOCATE_parser___parser_prod;
40963 fra.me.line = 7534;
40964 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
40965 fra.me.has_broke = 0;
40966 fra.me.REG_size = 2;
40967 fra.me.nitni_local_ref_head = NULL;
40968 fra.me.REG[0] = NIT_NULL;
40969 fra.me.REG[1] = NIT_NULL;
40970 fra.me.REG[0] = p0;
40971 fra.me.REG[1] = p1;
40972 /* parser/parser_prod.nit:7536 */
40973 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40974 if (UNTAG_Bool(REGB0)) {
40975 } else {
40976 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7536);
40977 }
40978 fra.me.REG[0] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40979 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___visit_all_1));
40980 stack_frame_head = fra.me.prev;
40981 return;
40982 }
40983 void OC_parser___parser_prod___AListExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
40984 struct {struct stack_frame_t me;} fra;
40985 fun_t CREG[1];
40986 val_t tmp;
40987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40988 fra.me.file = LOCATE_parser___parser_prod;
40989 fra.me.line = 0;
40990 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
40991 fra.me.has_broke = 0;
40992 fra.me.REG_size = 1;
40993 fra.me.nitni_local_ref_head = NULL;
40994 fra.me.REG[0] = NIT_NULL;
40995 fra.me.closure_ctx = closctx_param;
40996 fra.me.closure_funs = CREG;
40997 fra.me.REG[0] = p0;
40998 CREG[0] = clos_fun0;
40999 /* parser/parser_prod.nit:7537 */
41000 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41001 stack_frame_head = fra.me.prev;
41002 return;
41003 }
41004 static const char LOCATE_parser___parser_prod___AParExprs___empty_init[] = "parser_prod::AParExprs::empty_init";
41005 void parser___parser_prod___AParExprs___empty_init(val_t p0, int* init_table){
41006 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
41007 struct {struct stack_frame_t me;} fra;
41008 val_t tmp;
41009 if (init_table[itpos259]) return;
41010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41011 fra.me.file = LOCATE_parser___parser_prod;
41012 fra.me.line = 7542;
41013 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___empty_init;
41014 fra.me.has_broke = 0;
41015 fra.me.REG_size = 1;
41016 fra.me.nitni_local_ref_head = NULL;
41017 fra.me.REG[0] = NIT_NULL;
41018 fra.me.REG[0] = p0;
41019 stack_frame_head = fra.me.prev;
41020 init_table[itpos259] = 1;
41021 return;
41022 }
41023 static const char LOCATE_parser___parser_prod___AParExprs___init_aparexprs[] = "parser_prod::AParExprs::init_aparexprs";
41024 void parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
41025 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
41026 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
41027 val_t REGB0;
41028 val_t tmp;
41029 if (init_table[itpos260]) return;
41030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41031 fra.me.file = LOCATE_parser___parser_prod;
41032 fra.me.line = 7544;
41033 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
41034 fra.me.has_broke = 0;
41035 fra.me.REG_size = 5;
41036 fra.me.nitni_local_ref_head = NULL;
41037 fra.me.REG[0] = NIT_NULL;
41038 fra.me.REG[1] = NIT_NULL;
41039 fra.me.REG[2] = NIT_NULL;
41040 fra.me.REG[3] = NIT_NULL;
41041 fra.me.REG[4] = NIT_NULL;
41042 fra.me.REG[0] = p0;
41043 fra.me.REG[1] = p1;
41044 fra.me.REG[2] = p2;
41045 fra.me.REG[3] = p3;
41046 /* parser/parser_prod.nit:7544 */
41047 fra.me.REG[4] = fra.me.REG[0];
41048 /* parser/parser_prod.nit:7550 */
41049 CALL_parser___parser_prod___AParExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
41050 /* parser/parser_prod.nit:7551 */
41051 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41052 if (UNTAG_Bool(REGB0)) {
41053 } else {
41054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7551);
41055 }
41056 ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[4]) = fra.me.REG[1];
41057 /* parser/parser_prod.nit:7552 */
41058 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41059 if (UNTAG_Bool(REGB0)) {
41060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7552);
41061 }
41062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
41063 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___init_aparexprs_1));
41064 /* parser/parser_prod.nit:7558 */
41065 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41066 if (UNTAG_Bool(REGB0)) {
41067 } else {
41068 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7558);
41069 }
41070 ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
41071 /* parser/parser_prod.nit:7559 */
41072 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41073 if (UNTAG_Bool(REGB0)) {
41074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7559);
41075 }
41076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
41077 stack_frame_head = fra.me.prev;
41078 init_table[itpos260] = 1;
41079 return;
41080 }
41081 void OC_parser___parser_prod___AParExprs___init_aparexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41082 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41083 val_t REGB0;
41084 fun_t CREG[1];
41085 val_t tmp;
41086 /* parser/parser_prod.nit:7553 */
41087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41088 fra.me.file = LOCATE_parser___parser_prod;
41089 fra.me.line = 0;
41090 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
41091 fra.me.has_broke = 0;
41092 fra.me.REG_size = 2;
41093 fra.me.nitni_local_ref_head = NULL;
41094 fra.me.REG[0] = NIT_NULL;
41095 fra.me.REG[1] = NIT_NULL;
41096 fra.me.closure_ctx = closctx_param;
41097 fra.me.closure_funs = CREG;
41098 fra.me.REG[0] = p0;
41099 CREG[0] = clos_fun0;
41100 /* parser/parser_prod.nit:7554 */
41101 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41102 if (UNTAG_Bool(REGB0)) {
41103 } else {
41104 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7554);
41105 }
41106 /* parser/parser_prod.nit:7555 */
41107 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
41108 if (UNTAG_Bool(REGB0)) {
41109 } else {
41110 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7555);
41111 }
41112 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
41113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41114 /* parser/parser_prod.nit:7556 */
41115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
41116 stack_frame_head = fra.me.prev;
41117 return;
41118 }
41119 static const char LOCATE_parser___parser_prod___AParExprs___replace_child[] = "parser_prod::AParExprs::(parser_prod::ANode::replace_child)";
41120 void parser___parser_prod___AParExprs___replace_child(val_t p0, val_t p1, val_t p2){
41121 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41122 val_t REGB0;
41123 val_t REGB1;
41124 val_t REGB2;
41125 val_t REGB3;
41126 val_t REGB4;
41127 val_t tmp;
41128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41129 fra.me.file = LOCATE_parser___parser_prod;
41130 fra.me.line = 7562;
41131 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___replace_child;
41132 fra.me.has_broke = 0;
41133 fra.me.REG_size = 4;
41134 fra.me.nitni_local_ref_head = NULL;
41135 fra.me.REG[0] = NIT_NULL;
41136 fra.me.REG[1] = NIT_NULL;
41137 fra.me.REG[2] = NIT_NULL;
41138 fra.me.REG[3] = NIT_NULL;
41139 fra.me.REG[0] = p0;
41140 fra.me.REG[1] = p1;
41141 fra.me.REG[2] = p2;
41142 /* parser/parser_prod.nit:7564 */
41143 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
41144 if (UNTAG_Bool(REGB0)) {
41145 } else {
41146 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7564);
41147 }
41148 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
41149 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41150 if (UNTAG_Bool(REGB0)) {
41151 } else {
41152 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41153 REGB0 = REGB1;
41154 }
41155 if (UNTAG_Bool(REGB0)) {
41156 /* parser/parser_prod.nit:7565 */
41157 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41158 if (UNTAG_Bool(REGB0)) {
41159 } else {
41160 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41161 if (UNTAG_Bool(REGB1)) {
41162 REGB1 = TAG_Bool(0);
41163 REGB0 = REGB1;
41164 } else {
41165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41166 REGB0 = REGB1;
41167 }
41168 }
41169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41170 if (UNTAG_Bool(REGB0)) {
41171 /* parser/parser_prod.nit:7566 */
41172 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41173 if (UNTAG_Bool(REGB0)) {
41174 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7566);
41175 }
41176 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41177 /* parser/parser_prod.nit:7567 */
41178 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
41179 if (UNTAG_Bool(REGB0)) {
41180 } else {
41181 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7567);
41182 }
41183 /* parser/parser_prod.nit:7568 */
41184 ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]) = fra.me.REG[2];
41185 } else {
41186 /* parser/parser_prod.nit:7570 */
41187 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7570);
41188 }
41189 /* parser/parser_prod.nit:7572 */
41190 goto label1;
41191 }
41192 /* parser/parser_prod.nit:7574 */
41193 REGB0 = TAG_Int(0);
41194 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41195 if (UNTAG_Bool(REGB1)) {
41196 } else {
41197 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7574);
41198 }
41199 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41200 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
41201 /* ../lib/standard/kernel.nit:355 */
41202 while(1) {
41203 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
41204 if (UNTAG_Bool(REGB2)) {
41205 } else {
41206 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
41207 }
41208 /* ../lib/standard/kernel.nit:235 */
41209 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
41210 /* ../lib/standard/kernel.nit:355 */
41211 if (UNTAG_Bool(REGB2)) {
41212 /* parser/parser_prod.nit:7574 */
41213 REGB2 = REGB0;
41214 /* parser/parser_prod.nit:7575 */
41215 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41216 if (UNTAG_Bool(REGB3)) {
41217 } else {
41218 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7575);
41219 }
41220 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41221 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
41222 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41223 if (UNTAG_Bool(REGB3)) {
41224 } else {
41225 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41226 if (UNTAG_Bool(REGB4)) {
41227 REGB4 = TAG_Bool(0);
41228 REGB3 = REGB4;
41229 } else {
41230 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41231 REGB3 = REGB4;
41232 }
41233 }
41234 if (UNTAG_Bool(REGB3)) {
41235 /* parser/parser_prod.nit:7576 */
41236 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41237 if (UNTAG_Bool(REGB3)) {
41238 } else {
41239 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41240 if (UNTAG_Bool(REGB4)) {
41241 REGB4 = TAG_Bool(0);
41242 REGB3 = REGB4;
41243 } else {
41244 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41245 REGB3 = REGB4;
41246 }
41247 }
41248 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
41249 if (UNTAG_Bool(REGB3)) {
41250 /* parser/parser_prod.nit:7577 */
41251 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*/;
41252 if (UNTAG_Bool(REGB3)) {
41253 } else {
41254 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7577);
41255 }
41256 /* parser/parser_prod.nit:7578 */
41257 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41258 if (UNTAG_Bool(REGB3)) {
41259 } else {
41260 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7578);
41261 }
41262 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41263 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
41264 /* parser/parser_prod.nit:7579 */
41265 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41266 if (UNTAG_Bool(REGB3)) {
41267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7579);
41268 }
41269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41270 } else {
41271 /* parser/parser_prod.nit:7581 */
41272 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41273 if (UNTAG_Bool(REGB3)) {
41274 } else {
41275 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7581);
41276 }
41277 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41278 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
41279 }
41280 /* parser/parser_prod.nit:7583 */
41281 goto label1;
41282 }
41283 /* ../lib/standard/kernel.nit:357 */
41284 REGB2 = TAG_Int(1);
41285 /* ../lib/standard/kernel.nit:238 */
41286 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41287 /* ../lib/standard/kernel.nit:357 */
41288 REGB0 = REGB2;
41289 } else {
41290 /* ../lib/standard/kernel.nit:355 */
41291 goto label2;
41292 }
41293 }
41294 label2: while(0);
41295 /* parser/parser_prod.nit:7586 */
41296 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
41297 if (UNTAG_Bool(REGB0)) {
41298 } else {
41299 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7586);
41300 }
41301 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
41302 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41303 if (UNTAG_Bool(REGB0)) {
41304 } else {
41305 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41306 REGB0 = REGB1;
41307 }
41308 if (UNTAG_Bool(REGB0)) {
41309 /* parser/parser_prod.nit:7587 */
41310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41311 if (UNTAG_Bool(REGB0)) {
41312 } else {
41313 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41314 if (UNTAG_Bool(REGB1)) {
41315 REGB1 = TAG_Bool(0);
41316 REGB0 = REGB1;
41317 } else {
41318 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41319 REGB0 = REGB1;
41320 }
41321 }
41322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41323 if (UNTAG_Bool(REGB0)) {
41324 /* parser/parser_prod.nit:7588 */
41325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41326 if (UNTAG_Bool(REGB0)) {
41327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7588);
41328 }
41329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41330 /* parser/parser_prod.nit:7589 */
41331 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
41332 if (UNTAG_Bool(REGB0)) {
41333 } else {
41334 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7589);
41335 }
41336 /* parser/parser_prod.nit:7590 */
41337 ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
41338 } else {
41339 /* parser/parser_prod.nit:7592 */
41340 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7592);
41341 }
41342 /* parser/parser_prod.nit:7594 */
41343 goto label1;
41344 }
41345 label1: while(0);
41346 stack_frame_head = fra.me.prev;
41347 return;
41348 }
41349 static const char LOCATE_parser___parser_prod___AParExprs___visit_all[] = "parser_prod::AParExprs::(parser_prod::ANode::visit_all)";
41350 void parser___parser_prod___AParExprs___visit_all(val_t p0, val_t p1){
41351 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41352 val_t REGB0;
41353 val_t tmp;
41354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41355 fra.me.file = LOCATE_parser___parser_prod;
41356 fra.me.line = 7598;
41357 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
41358 fra.me.has_broke = 0;
41359 fra.me.REG_size = 3;
41360 fra.me.nitni_local_ref_head = NULL;
41361 fra.me.REG[0] = NIT_NULL;
41362 fra.me.REG[1] = NIT_NULL;
41363 fra.me.REG[2] = NIT_NULL;
41364 fra.me.REG[0] = p0;
41365 fra.me.REG[1] = p1;
41366 /* parser/parser_prod.nit:7600 */
41367 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
41368 if (UNTAG_Bool(REGB0)) {
41369 } else {
41370 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7600);
41371 }
41372 fra.me.REG[2] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
41373 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41374 /* parser/parser_prod.nit:7601 */
41375 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41376 if (UNTAG_Bool(REGB0)) {
41377 } else {
41378 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7601);
41379 }
41380 fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41381 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___visit_all_1));
41382 /* parser/parser_prod.nit:7604 */
41383 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
41384 if (UNTAG_Bool(REGB0)) {
41385 } else {
41386 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7604);
41387 }
41388 fra.me.REG[0] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
41389 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41390 stack_frame_head = fra.me.prev;
41391 return;
41392 }
41393 void OC_parser___parser_prod___AParExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41394 struct {struct stack_frame_t me;} fra;
41395 fun_t CREG[1];
41396 val_t tmp;
41397 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41398 fra.me.file = LOCATE_parser___parser_prod;
41399 fra.me.line = 0;
41400 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
41401 fra.me.has_broke = 0;
41402 fra.me.REG_size = 1;
41403 fra.me.nitni_local_ref_head = NULL;
41404 fra.me.REG[0] = NIT_NULL;
41405 fra.me.closure_ctx = closctx_param;
41406 fra.me.closure_funs = CREG;
41407 fra.me.REG[0] = p0;
41408 CREG[0] = clos_fun0;
41409 /* parser/parser_prod.nit:7602 */
41410 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41411 stack_frame_head = fra.me.prev;
41412 return;
41413 }
41414 static const char LOCATE_parser___parser_prod___ABraExprs___empty_init[] = "parser_prod::ABraExprs::empty_init";
41415 void parser___parser_prod___ABraExprs___empty_init(val_t p0, int* init_table){
41416 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
41417 struct {struct stack_frame_t me;} fra;
41418 val_t tmp;
41419 if (init_table[itpos261]) return;
41420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41421 fra.me.file = LOCATE_parser___parser_prod;
41422 fra.me.line = 7608;
41423 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___empty_init;
41424 fra.me.has_broke = 0;
41425 fra.me.REG_size = 1;
41426 fra.me.nitni_local_ref_head = NULL;
41427 fra.me.REG[0] = NIT_NULL;
41428 fra.me.REG[0] = p0;
41429 stack_frame_head = fra.me.prev;
41430 init_table[itpos261] = 1;
41431 return;
41432 }
41433 static const char LOCATE_parser___parser_prod___ABraExprs___init_abraexprs[] = "parser_prod::ABraExprs::init_abraexprs";
41434 void parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
41435 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
41436 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
41437 val_t REGB0;
41438 val_t tmp;
41439 if (init_table[itpos262]) return;
41440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41441 fra.me.file = LOCATE_parser___parser_prod;
41442 fra.me.line = 7610;
41443 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
41444 fra.me.has_broke = 0;
41445 fra.me.REG_size = 5;
41446 fra.me.nitni_local_ref_head = NULL;
41447 fra.me.REG[0] = NIT_NULL;
41448 fra.me.REG[1] = NIT_NULL;
41449 fra.me.REG[2] = NIT_NULL;
41450 fra.me.REG[3] = NIT_NULL;
41451 fra.me.REG[4] = NIT_NULL;
41452 fra.me.REG[0] = p0;
41453 fra.me.REG[1] = p1;
41454 fra.me.REG[2] = p2;
41455 fra.me.REG[3] = p3;
41456 /* parser/parser_prod.nit:7610 */
41457 fra.me.REG[4] = fra.me.REG[0];
41458 /* parser/parser_prod.nit:7616 */
41459 CALL_parser___parser_prod___ABraExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
41460 /* parser/parser_prod.nit:7617 */
41461 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41462 if (UNTAG_Bool(REGB0)) {
41463 } else {
41464 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7617);
41465 }
41466 ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[4]) = fra.me.REG[1];
41467 /* parser/parser_prod.nit:7618 */
41468 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41469 if (UNTAG_Bool(REGB0)) {
41470 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7618);
41471 }
41472 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
41473 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___init_abraexprs_1));
41474 /* parser/parser_prod.nit:7624 */
41475 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41476 if (UNTAG_Bool(REGB0)) {
41477 } else {
41478 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7624);
41479 }
41480 ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[4]) = fra.me.REG[3];
41481 /* parser/parser_prod.nit:7625 */
41482 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41483 if (UNTAG_Bool(REGB0)) {
41484 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7625);
41485 }
41486 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
41487 stack_frame_head = fra.me.prev;
41488 init_table[itpos262] = 1;
41489 return;
41490 }
41491 void OC_parser___parser_prod___ABraExprs___init_abraexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41492 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41493 val_t REGB0;
41494 fun_t CREG[1];
41495 val_t tmp;
41496 /* parser/parser_prod.nit:7619 */
41497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41498 fra.me.file = LOCATE_parser___parser_prod;
41499 fra.me.line = 0;
41500 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
41501 fra.me.has_broke = 0;
41502 fra.me.REG_size = 2;
41503 fra.me.nitni_local_ref_head = NULL;
41504 fra.me.REG[0] = NIT_NULL;
41505 fra.me.REG[1] = NIT_NULL;
41506 fra.me.closure_ctx = closctx_param;
41507 fra.me.closure_funs = CREG;
41508 fra.me.REG[0] = p0;
41509 CREG[0] = clos_fun0;
41510 /* parser/parser_prod.nit:7620 */
41511 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41512 if (UNTAG_Bool(REGB0)) {
41513 } else {
41514 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7620);
41515 }
41516 /* parser/parser_prod.nit:7621 */
41517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
41518 if (UNTAG_Bool(REGB0)) {
41519 } else {
41520 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7621);
41521 }
41522 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
41523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41524 /* parser/parser_prod.nit:7622 */
41525 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
41526 stack_frame_head = fra.me.prev;
41527 return;
41528 }
41529 static const char LOCATE_parser___parser_prod___ABraExprs___replace_child[] = "parser_prod::ABraExprs::(parser_prod::ANode::replace_child)";
41530 void parser___parser_prod___ABraExprs___replace_child(val_t p0, val_t p1, val_t p2){
41531 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41532 val_t REGB0;
41533 val_t REGB1;
41534 val_t REGB2;
41535 val_t REGB3;
41536 val_t REGB4;
41537 val_t tmp;
41538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41539 fra.me.file = LOCATE_parser___parser_prod;
41540 fra.me.line = 7628;
41541 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___replace_child;
41542 fra.me.has_broke = 0;
41543 fra.me.REG_size = 4;
41544 fra.me.nitni_local_ref_head = NULL;
41545 fra.me.REG[0] = NIT_NULL;
41546 fra.me.REG[1] = NIT_NULL;
41547 fra.me.REG[2] = NIT_NULL;
41548 fra.me.REG[3] = NIT_NULL;
41549 fra.me.REG[0] = p0;
41550 fra.me.REG[1] = p1;
41551 fra.me.REG[2] = p2;
41552 /* parser/parser_prod.nit:7630 */
41553 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
41554 if (UNTAG_Bool(REGB0)) {
41555 } else {
41556 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 7630);
41557 }
41558 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
41559 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41560 if (UNTAG_Bool(REGB0)) {
41561 } else {
41562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41563 REGB0 = REGB1;
41564 }
41565 if (UNTAG_Bool(REGB0)) {
41566 /* parser/parser_prod.nit:7631 */
41567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41568 if (UNTAG_Bool(REGB0)) {
41569 } else {
41570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41571 if (UNTAG_Bool(REGB1)) {
41572 REGB1 = TAG_Bool(0);
41573 REGB0 = REGB1;
41574 } else {
41575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41576 REGB0 = REGB1;
41577 }
41578 }
41579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41580 if (UNTAG_Bool(REGB0)) {
41581 /* parser/parser_prod.nit:7632 */
41582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41583 if (UNTAG_Bool(REGB0)) {
41584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7632);
41585 }
41586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41587 /* parser/parser_prod.nit:7633 */
41588 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*/;
41589 if (UNTAG_Bool(REGB0)) {
41590 } else {
41591 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7633);
41592 }
41593 /* parser/parser_prod.nit:7634 */
41594 ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]) = fra.me.REG[2];
41595 } else {
41596 /* parser/parser_prod.nit:7636 */
41597 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7636);
41598 }
41599 /* parser/parser_prod.nit:7638 */
41600 goto label1;
41601 }
41602 /* parser/parser_prod.nit:7640 */
41603 REGB0 = TAG_Int(0);
41604 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41605 if (UNTAG_Bool(REGB1)) {
41606 } else {
41607 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7640);
41608 }
41609 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41610 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
41611 /* ../lib/standard/kernel.nit:355 */
41612 while(1) {
41613 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
41614 if (UNTAG_Bool(REGB2)) {
41615 } else {
41616 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
41617 }
41618 /* ../lib/standard/kernel.nit:235 */
41619 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
41620 /* ../lib/standard/kernel.nit:355 */
41621 if (UNTAG_Bool(REGB2)) {
41622 /* parser/parser_prod.nit:7640 */
41623 REGB2 = REGB0;
41624 /* parser/parser_prod.nit:7641 */
41625 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41626 if (UNTAG_Bool(REGB3)) {
41627 } else {
41628 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7641);
41629 }
41630 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41631 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
41632 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41633 if (UNTAG_Bool(REGB3)) {
41634 } else {
41635 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41636 if (UNTAG_Bool(REGB4)) {
41637 REGB4 = TAG_Bool(0);
41638 REGB3 = REGB4;
41639 } else {
41640 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41641 REGB3 = REGB4;
41642 }
41643 }
41644 if (UNTAG_Bool(REGB3)) {
41645 /* parser/parser_prod.nit:7642 */
41646 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41647 if (UNTAG_Bool(REGB3)) {
41648 } else {
41649 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41650 if (UNTAG_Bool(REGB4)) {
41651 REGB4 = TAG_Bool(0);
41652 REGB3 = REGB4;
41653 } else {
41654 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41655 REGB3 = REGB4;
41656 }
41657 }
41658 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
41659 if (UNTAG_Bool(REGB3)) {
41660 /* parser/parser_prod.nit:7643 */
41661 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*/;
41662 if (UNTAG_Bool(REGB3)) {
41663 } else {
41664 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7643);
41665 }
41666 /* parser/parser_prod.nit:7644 */
41667 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41668 if (UNTAG_Bool(REGB3)) {
41669 } else {
41670 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7644);
41671 }
41672 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41673 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
41674 /* parser/parser_prod.nit:7645 */
41675 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41676 if (UNTAG_Bool(REGB3)) {
41677 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7645);
41678 }
41679 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41680 } else {
41681 /* parser/parser_prod.nit:7647 */
41682 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41683 if (UNTAG_Bool(REGB3)) {
41684 } else {
41685 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7647);
41686 }
41687 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41688 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
41689 }
41690 /* parser/parser_prod.nit:7649 */
41691 goto label1;
41692 }
41693 /* ../lib/standard/kernel.nit:357 */
41694 REGB2 = TAG_Int(1);
41695 /* ../lib/standard/kernel.nit:238 */
41696 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41697 /* ../lib/standard/kernel.nit:357 */
41698 REGB0 = REGB2;
41699 } else {
41700 /* ../lib/standard/kernel.nit:355 */
41701 goto label2;
41702 }
41703 }
41704 label2: while(0);
41705 /* parser/parser_prod.nit:7652 */
41706 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
41707 if (UNTAG_Bool(REGB0)) {
41708 } else {
41709 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 7652);
41710 }
41711 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
41712 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41713 if (UNTAG_Bool(REGB0)) {
41714 } else {
41715 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41716 REGB0 = REGB1;
41717 }
41718 if (UNTAG_Bool(REGB0)) {
41719 /* parser/parser_prod.nit:7653 */
41720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41721 if (UNTAG_Bool(REGB0)) {
41722 } else {
41723 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41724 if (UNTAG_Bool(REGB1)) {
41725 REGB1 = TAG_Bool(0);
41726 REGB0 = REGB1;
41727 } else {
41728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41729 REGB0 = REGB1;
41730 }
41731 }
41732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41733 if (UNTAG_Bool(REGB0)) {
41734 /* parser/parser_prod.nit:7654 */
41735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41736 if (UNTAG_Bool(REGB0)) {
41737 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7654);
41738 }
41739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41740 /* parser/parser_prod.nit:7655 */
41741 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*/;
41742 if (UNTAG_Bool(REGB0)) {
41743 } else {
41744 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7655);
41745 }
41746 /* parser/parser_prod.nit:7656 */
41747 ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
41748 } else {
41749 /* parser/parser_prod.nit:7658 */
41750 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7658);
41751 }
41752 /* parser/parser_prod.nit:7660 */
41753 goto label1;
41754 }
41755 label1: while(0);
41756 stack_frame_head = fra.me.prev;
41757 return;
41758 }
41759 static const char LOCATE_parser___parser_prod___ABraExprs___visit_all[] = "parser_prod::ABraExprs::(parser_prod::ANode::visit_all)";
41760 void parser___parser_prod___ABraExprs___visit_all(val_t p0, val_t p1){
41761 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41762 val_t REGB0;
41763 val_t tmp;
41764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41765 fra.me.file = LOCATE_parser___parser_prod;
41766 fra.me.line = 7664;
41767 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
41768 fra.me.has_broke = 0;
41769 fra.me.REG_size = 3;
41770 fra.me.nitni_local_ref_head = NULL;
41771 fra.me.REG[0] = NIT_NULL;
41772 fra.me.REG[1] = NIT_NULL;
41773 fra.me.REG[2] = NIT_NULL;
41774 fra.me.REG[0] = p0;
41775 fra.me.REG[1] = p1;
41776 /* parser/parser_prod.nit:7666 */
41777 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
41778 if (UNTAG_Bool(REGB0)) {
41779 } else {
41780 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 7666);
41781 }
41782 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
41783 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41784 /* parser/parser_prod.nit:7667 */
41785 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
41786 if (UNTAG_Bool(REGB0)) {
41787 } else {
41788 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7667);
41789 }
41790 fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
41791 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___visit_all_1));
41792 /* parser/parser_prod.nit:7670 */
41793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
41794 if (UNTAG_Bool(REGB0)) {
41795 } else {
41796 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 7670);
41797 }
41798 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
41799 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41800 stack_frame_head = fra.me.prev;
41801 return;
41802 }
41803 void OC_parser___parser_prod___ABraExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41804 struct {struct stack_frame_t me;} fra;
41805 fun_t CREG[1];
41806 val_t tmp;
41807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41808 fra.me.file = LOCATE_parser___parser_prod;
41809 fra.me.line = 0;
41810 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
41811 fra.me.has_broke = 0;
41812 fra.me.REG_size = 1;
41813 fra.me.nitni_local_ref_head = NULL;
41814 fra.me.REG[0] = NIT_NULL;
41815 fra.me.closure_ctx = closctx_param;
41816 fra.me.closure_funs = CREG;
41817 fra.me.REG[0] = p0;
41818 CREG[0] = clos_fun0;
41819 /* parser/parser_prod.nit:7668 */
41820 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41821 stack_frame_head = fra.me.prev;
41822 return;
41823 }
41824 static const char LOCATE_parser___parser_prod___APlusAssignOp___empty_init[] = "parser_prod::APlusAssignOp::empty_init";
41825 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
41826 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
41827 struct {struct stack_frame_t me;} fra;
41828 val_t tmp;
41829 if (init_table[itpos263]) return;
41830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41831 fra.me.file = LOCATE_parser___parser_prod;
41832 fra.me.line = 7674;
41833 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
41834 fra.me.has_broke = 0;
41835 fra.me.REG_size = 1;
41836 fra.me.nitni_local_ref_head = NULL;
41837 fra.me.REG[0] = NIT_NULL;
41838 fra.me.REG[0] = p0;
41839 stack_frame_head = fra.me.prev;
41840 init_table[itpos263] = 1;
41841 return;
41842 }
41843 static const char LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop[] = "parser_prod::APlusAssignOp::init_aplusassignop";
41844 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
41845 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
41846 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41847 val_t REGB0;
41848 val_t tmp;
41849 if (init_table[itpos264]) return;
41850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41851 fra.me.file = LOCATE_parser___parser_prod;
41852 fra.me.line = 7676;
41853 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
41854 fra.me.has_broke = 0;
41855 fra.me.REG_size = 3;
41856 fra.me.nitni_local_ref_head = NULL;
41857 fra.me.REG[0] = NIT_NULL;
41858 fra.me.REG[1] = NIT_NULL;
41859 fra.me.REG[2] = NIT_NULL;
41860 fra.me.REG[0] = p0;
41861 fra.me.REG[1] = p1;
41862 /* parser/parser_prod.nit:7676 */
41863 fra.me.REG[2] = fra.me.REG[0];
41864 /* parser/parser_prod.nit:7680 */
41865 CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41866 /* parser/parser_prod.nit:7681 */
41867 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41868 if (UNTAG_Bool(REGB0)) {
41869 } else {
41870 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7681);
41871 }
41872 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
41873 /* parser/parser_prod.nit:7682 */
41874 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41875 if (UNTAG_Bool(REGB0)) {
41876 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7682);
41877 }
41878 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41879 stack_frame_head = fra.me.prev;
41880 init_table[itpos264] = 1;
41881 return;
41882 }
41883 static const char LOCATE_parser___parser_prod___APlusAssignOp___replace_child[] = "parser_prod::APlusAssignOp::(parser_prod::ANode::replace_child)";
41884 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
41885 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41886 val_t REGB0;
41887 val_t REGB1;
41888 val_t tmp;
41889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41890 fra.me.file = LOCATE_parser___parser_prod;
41891 fra.me.line = 7685;
41892 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
41893 fra.me.has_broke = 0;
41894 fra.me.REG_size = 4;
41895 fra.me.nitni_local_ref_head = NULL;
41896 fra.me.REG[0] = NIT_NULL;
41897 fra.me.REG[1] = NIT_NULL;
41898 fra.me.REG[2] = NIT_NULL;
41899 fra.me.REG[3] = NIT_NULL;
41900 fra.me.REG[0] = p0;
41901 fra.me.REG[1] = p1;
41902 fra.me.REG[2] = p2;
41903 /* parser/parser_prod.nit:7687 */
41904 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
41905 if (UNTAG_Bool(REGB0)) {
41906 } else {
41907 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7687);
41908 }
41909 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
41910 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41911 if (UNTAG_Bool(REGB0)) {
41912 } else {
41913 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41914 REGB0 = REGB1;
41915 }
41916 if (UNTAG_Bool(REGB0)) {
41917 /* parser/parser_prod.nit:7688 */
41918 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41919 if (UNTAG_Bool(REGB0)) {
41920 } else {
41921 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41922 if (UNTAG_Bool(REGB1)) {
41923 REGB1 = TAG_Bool(0);
41924 REGB0 = REGB1;
41925 } else {
41926 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41927 REGB0 = REGB1;
41928 }
41929 }
41930 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41931 if (UNTAG_Bool(REGB0)) {
41932 /* parser/parser_prod.nit:7689 */
41933 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41934 if (UNTAG_Bool(REGB0)) {
41935 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7689);
41936 }
41937 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41938 /* parser/parser_prod.nit:7690 */
41939 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*/;
41940 if (UNTAG_Bool(REGB0)) {
41941 } else {
41942 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7690);
41943 }
41944 /* parser/parser_prod.nit:7691 */
41945 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
41946 } else {
41947 /* parser/parser_prod.nit:7693 */
41948 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7693);
41949 }
41950 /* parser/parser_prod.nit:7695 */
41951 goto label1;
41952 }
41953 label1: while(0);
41954 stack_frame_head = fra.me.prev;
41955 return;
41956 }
41957 static const char LOCATE_parser___parser_prod___APlusAssignOp___visit_all[] = "parser_prod::APlusAssignOp::(parser_prod::ANode::visit_all)";
41958 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
41959 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41960 val_t REGB0;
41961 val_t tmp;
41962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41963 fra.me.file = LOCATE_parser___parser_prod;
41964 fra.me.line = 7699;
41965 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
41966 fra.me.has_broke = 0;
41967 fra.me.REG_size = 2;
41968 fra.me.nitni_local_ref_head = NULL;
41969 fra.me.REG[0] = NIT_NULL;
41970 fra.me.REG[1] = NIT_NULL;
41971 fra.me.REG[0] = p0;
41972 fra.me.REG[1] = p1;
41973 /* parser/parser_prod.nit:7701 */
41974 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
41975 if (UNTAG_Bool(REGB0)) {
41976 } else {
41977 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7701);
41978 }
41979 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
41980 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41981 stack_frame_head = fra.me.prev;
41982 return;
41983 }
41984 static const char LOCATE_parser___parser_prod___AMinusAssignOp___empty_init[] = "parser_prod::AMinusAssignOp::empty_init";
41985 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
41986 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
41987 struct {struct stack_frame_t me;} fra;
41988 val_t tmp;
41989 if (init_table[itpos265]) return;
41990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41991 fra.me.file = LOCATE_parser___parser_prod;
41992 fra.me.line = 7705;
41993 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
41994 fra.me.has_broke = 0;
41995 fra.me.REG_size = 1;
41996 fra.me.nitni_local_ref_head = NULL;
41997 fra.me.REG[0] = NIT_NULL;
41998 fra.me.REG[0] = p0;
41999 stack_frame_head = fra.me.prev;
42000 init_table[itpos265] = 1;
42001 return;
42002 }
42003 static const char LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop[] = "parser_prod::AMinusAssignOp::init_aminusassignop";
42004 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
42005 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
42006 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42007 val_t REGB0;
42008 val_t tmp;
42009 if (init_table[itpos266]) return;
42010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42011 fra.me.file = LOCATE_parser___parser_prod;
42012 fra.me.line = 7707;
42013 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
42014 fra.me.has_broke = 0;
42015 fra.me.REG_size = 3;
42016 fra.me.nitni_local_ref_head = NULL;
42017 fra.me.REG[0] = NIT_NULL;
42018 fra.me.REG[1] = NIT_NULL;
42019 fra.me.REG[2] = NIT_NULL;
42020 fra.me.REG[0] = p0;
42021 fra.me.REG[1] = p1;
42022 /* parser/parser_prod.nit:7707 */
42023 fra.me.REG[2] = fra.me.REG[0];
42024 /* parser/parser_prod.nit:7711 */
42025 CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
42026 /* parser/parser_prod.nit:7712 */
42027 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42028 if (UNTAG_Bool(REGB0)) {
42029 } else {
42030 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7712);
42031 }
42032 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
42033 /* parser/parser_prod.nit:7713 */
42034 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42035 if (UNTAG_Bool(REGB0)) {
42036 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7713);
42037 }
42038 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42039 stack_frame_head = fra.me.prev;
42040 init_table[itpos266] = 1;
42041 return;
42042 }
42043 static const char LOCATE_parser___parser_prod___AMinusAssignOp___replace_child[] = "parser_prod::AMinusAssignOp::(parser_prod::ANode::replace_child)";
42044 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
42045 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42046 val_t REGB0;
42047 val_t REGB1;
42048 val_t tmp;
42049 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42050 fra.me.file = LOCATE_parser___parser_prod;
42051 fra.me.line = 7716;
42052 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
42053 fra.me.has_broke = 0;
42054 fra.me.REG_size = 4;
42055 fra.me.nitni_local_ref_head = NULL;
42056 fra.me.REG[0] = NIT_NULL;
42057 fra.me.REG[1] = NIT_NULL;
42058 fra.me.REG[2] = NIT_NULL;
42059 fra.me.REG[3] = NIT_NULL;
42060 fra.me.REG[0] = p0;
42061 fra.me.REG[1] = p1;
42062 fra.me.REG[2] = p2;
42063 /* parser/parser_prod.nit:7718 */
42064 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
42065 if (UNTAG_Bool(REGB0)) {
42066 } else {
42067 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7718);
42068 }
42069 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
42070 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42071 if (UNTAG_Bool(REGB0)) {
42072 } else {
42073 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42074 REGB0 = REGB1;
42075 }
42076 if (UNTAG_Bool(REGB0)) {
42077 /* parser/parser_prod.nit:7719 */
42078 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42079 if (UNTAG_Bool(REGB0)) {
42080 } else {
42081 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42082 if (UNTAG_Bool(REGB1)) {
42083 REGB1 = TAG_Bool(0);
42084 REGB0 = REGB1;
42085 } else {
42086 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42087 REGB0 = REGB1;
42088 }
42089 }
42090 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42091 if (UNTAG_Bool(REGB0)) {
42092 /* parser/parser_prod.nit:7720 */
42093 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42094 if (UNTAG_Bool(REGB0)) {
42095 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7720);
42096 }
42097 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42098 /* parser/parser_prod.nit:7721 */
42099 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*/;
42100 if (UNTAG_Bool(REGB0)) {
42101 } else {
42102 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7721);
42103 }
42104 /* parser/parser_prod.nit:7722 */
42105 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
42106 } else {
42107 /* parser/parser_prod.nit:7724 */
42108 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7724);
42109 }
42110 /* parser/parser_prod.nit:7726 */
42111 goto label1;
42112 }
42113 label1: while(0);
42114 stack_frame_head = fra.me.prev;
42115 return;
42116 }
42117 static const char LOCATE_parser___parser_prod___AMinusAssignOp___visit_all[] = "parser_prod::AMinusAssignOp::(parser_prod::ANode::visit_all)";
42118 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
42119 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42120 val_t REGB0;
42121 val_t tmp;
42122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42123 fra.me.file = LOCATE_parser___parser_prod;
42124 fra.me.line = 7730;
42125 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
42126 fra.me.has_broke = 0;
42127 fra.me.REG_size = 2;
42128 fra.me.nitni_local_ref_head = NULL;
42129 fra.me.REG[0] = NIT_NULL;
42130 fra.me.REG[1] = NIT_NULL;
42131 fra.me.REG[0] = p0;
42132 fra.me.REG[1] = p1;
42133 /* parser/parser_prod.nit:7732 */
42134 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
42135 if (UNTAG_Bool(REGB0)) {
42136 } else {
42137 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7732);
42138 }
42139 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
42140 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42141 stack_frame_head = fra.me.prev;
42142 return;
42143 }
42144 static const char LOCATE_parser___parser_prod___AClosureDef___empty_init[] = "parser_prod::AClosureDef::empty_init";
42145 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
42146 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
42147 struct {struct stack_frame_t me;} fra;
42148 val_t tmp;
42149 if (init_table[itpos267]) return;
42150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42151 fra.me.file = LOCATE_parser___parser_prod;
42152 fra.me.line = 7736;
42153 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
42154 fra.me.has_broke = 0;
42155 fra.me.REG_size = 1;
42156 fra.me.nitni_local_ref_head = NULL;
42157 fra.me.REG[0] = NIT_NULL;
42158 fra.me.REG[0] = p0;
42159 stack_frame_head = fra.me.prev;
42160 init_table[itpos267] = 1;
42161 return;
42162 }
42163 static const char LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef[] = "parser_prod::AClosureDef::init_aclosuredef";
42164 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){
42165 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
42166 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
42167 val_t REGB0;
42168 val_t REGB1;
42169 val_t tmp;
42170 if (init_table[itpos268]) return;
42171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42172 fra.me.file = LOCATE_parser___parser_prod;
42173 fra.me.line = 7738;
42174 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
42175 fra.me.has_broke = 0;
42176 fra.me.REG_size = 8;
42177 fra.me.nitni_local_ref_head = NULL;
42178 fra.me.REG[0] = NIT_NULL;
42179 fra.me.REG[1] = NIT_NULL;
42180 fra.me.REG[2] = NIT_NULL;
42181 fra.me.REG[3] = NIT_NULL;
42182 fra.me.REG[4] = NIT_NULL;
42183 fra.me.REG[5] = NIT_NULL;
42184 fra.me.REG[6] = NIT_NULL;
42185 fra.me.REG[7] = NIT_NULL;
42186 fra.me.REG[0] = p0;
42187 fra.me.REG[1] = p1;
42188 fra.me.REG[2] = p2;
42189 fra.me.REG[3] = p3;
42190 fra.me.REG[4] = p4;
42191 fra.me.REG[5] = p5;
42192 fra.me.REG[6] = p6;
42193 /* parser/parser_prod.nit:7738 */
42194 fra.me.REG[7] = fra.me.REG[0];
42195 /* parser/parser_prod.nit:7747 */
42196 CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
42197 /* parser/parser_prod.nit:7748 */
42198 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42199 if (UNTAG_Bool(REGB0)) {
42200 } else {
42201 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7748);
42202 }
42203 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
42204 /* parser/parser_prod.nit:7749 */
42205 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42206 if (UNTAG_Bool(REGB0)) {
42207 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7749);
42208 }
42209 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
42210 /* parser/parser_prod.nit:7750 */
42211 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42212 if (UNTAG_Bool(REGB0)) {
42213 } else {
42214 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7750);
42215 }
42216 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
42217 /* parser/parser_prod.nit:7751 */
42218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42219 if (UNTAG_Bool(REGB0)) {
42220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7751);
42221 }
42222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
42223 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));
42224 /* parser/parser_prod.nit:7757 */
42225 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
42226 /* parser/parser_prod.nit:7758 */
42227 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
42228 if (UNTAG_Bool(REGB0)) {
42229 } else {
42230 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
42231 if (UNTAG_Bool(REGB1)) {
42232 REGB1 = TAG_Bool(0);
42233 REGB0 = REGB1;
42234 } else {
42235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
42236 REGB0 = REGB1;
42237 }
42238 }
42239 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42240 if (UNTAG_Bool(REGB0)) {
42241 /* parser/parser_prod.nit:7759 */
42242 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
42243 if (UNTAG_Bool(REGB0)) {
42244 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7759);
42245 }
42246 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
42247 }
42248 /* parser/parser_prod.nit:7761 */
42249 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
42250 /* parser/parser_prod.nit:7762 */
42251 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
42252 if (UNTAG_Bool(REGB0)) {
42253 } else {
42254 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
42255 if (UNTAG_Bool(REGB1)) {
42256 REGB1 = TAG_Bool(0);
42257 REGB0 = REGB1;
42258 } else {
42259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
42260 REGB0 = REGB1;
42261 }
42262 }
42263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42264 if (UNTAG_Bool(REGB0)) {
42265 /* parser/parser_prod.nit:7763 */
42266 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
42267 if (UNTAG_Bool(REGB0)) {
42268 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7763);
42269 }
42270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
42271 }
42272 /* parser/parser_prod.nit:7765 */
42273 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
42274 /* parser/parser_prod.nit:7766 */
42275 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
42276 if (UNTAG_Bool(REGB0)) {
42277 } else {
42278 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
42279 if (UNTAG_Bool(REGB1)) {
42280 REGB1 = TAG_Bool(0);
42281 REGB0 = REGB1;
42282 } else {
42283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
42284 REGB0 = REGB1;
42285 }
42286 }
42287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42288 if (UNTAG_Bool(REGB0)) {
42289 /* parser/parser_prod.nit:7767 */
42290 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
42291 if (UNTAG_Bool(REGB0)) {
42292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7767);
42293 }
42294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
42295 }
42296 stack_frame_head = fra.me.prev;
42297 init_table[itpos268] = 1;
42298 return;
42299 }
42300 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){
42301 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42302 val_t REGB0;
42303 fun_t CREG[1];
42304 val_t tmp;
42305 /* parser/parser_prod.nit:7752 */
42306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42307 fra.me.file = LOCATE_parser___parser_prod;
42308 fra.me.line = 0;
42309 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
42310 fra.me.has_broke = 0;
42311 fra.me.REG_size = 2;
42312 fra.me.nitni_local_ref_head = NULL;
42313 fra.me.REG[0] = NIT_NULL;
42314 fra.me.REG[1] = NIT_NULL;
42315 fra.me.closure_ctx = closctx_param;
42316 fra.me.closure_funs = CREG;
42317 fra.me.REG[0] = p0;
42318 CREG[0] = clos_fun0;
42319 /* parser/parser_prod.nit:7753 */
42320 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
42321 if (UNTAG_Bool(REGB0)) {
42322 } else {
42323 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7753);
42324 }
42325 /* parser/parser_prod.nit:7754 */
42326 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
42327 if (UNTAG_Bool(REGB0)) {
42328 } else {
42329 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7754);
42330 }
42331 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
42332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42333 /* parser/parser_prod.nit:7755 */
42334 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
42335 stack_frame_head = fra.me.prev;
42336 return;
42337 }
42338 static const char LOCATE_parser___parser_prod___AClosureDef___replace_child[] = "parser_prod::AClosureDef::(parser_prod::ANode::replace_child)";
42339 void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
42340 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42341 val_t REGB0;
42342 val_t REGB1;
42343 val_t REGB2;
42344 val_t REGB3;
42345 val_t REGB4;
42346 val_t tmp;
42347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42348 fra.me.file = LOCATE_parser___parser_prod;
42349 fra.me.line = 7771;
42350 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
42351 fra.me.has_broke = 0;
42352 fra.me.REG_size = 4;
42353 fra.me.nitni_local_ref_head = NULL;
42354 fra.me.REG[0] = NIT_NULL;
42355 fra.me.REG[1] = NIT_NULL;
42356 fra.me.REG[2] = NIT_NULL;
42357 fra.me.REG[3] = NIT_NULL;
42358 fra.me.REG[0] = p0;
42359 fra.me.REG[1] = p1;
42360 fra.me.REG[2] = p2;
42361 /* parser/parser_prod.nit:7773 */
42362 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
42363 if (UNTAG_Bool(REGB0)) {
42364 } else {
42365 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7773);
42366 }
42367 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
42368 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42369 if (UNTAG_Bool(REGB0)) {
42370 } else {
42371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42372 REGB0 = REGB1;
42373 }
42374 if (UNTAG_Bool(REGB0)) {
42375 /* parser/parser_prod.nit:7774 */
42376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42377 if (UNTAG_Bool(REGB0)) {
42378 } else {
42379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42380 if (UNTAG_Bool(REGB1)) {
42381 REGB1 = TAG_Bool(0);
42382 REGB0 = REGB1;
42383 } else {
42384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42385 REGB0 = REGB1;
42386 }
42387 }
42388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42389 if (UNTAG_Bool(REGB0)) {
42390 /* parser/parser_prod.nit:7775 */
42391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42392 if (UNTAG_Bool(REGB0)) {
42393 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7775);
42394 }
42395 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42396 /* parser/parser_prod.nit:7776 */
42397 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*/;
42398 if (UNTAG_Bool(REGB0)) {
42399 } else {
42400 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7776);
42401 }
42402 /* parser/parser_prod.nit:7777 */
42403 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
42404 } else {
42405 /* parser/parser_prod.nit:7779 */
42406 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7779);
42407 }
42408 /* parser/parser_prod.nit:7781 */
42409 goto label1;
42410 }
42411 /* parser/parser_prod.nit:7783 */
42412 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
42413 if (UNTAG_Bool(REGB0)) {
42414 } else {
42415 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7783);
42416 }
42417 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
42418 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42419 if (UNTAG_Bool(REGB0)) {
42420 } else {
42421 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42422 REGB0 = REGB1;
42423 }
42424 if (UNTAG_Bool(REGB0)) {
42425 /* parser/parser_prod.nit:7784 */
42426 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42427 if (UNTAG_Bool(REGB0)) {
42428 } else {
42429 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42430 if (UNTAG_Bool(REGB1)) {
42431 REGB1 = TAG_Bool(0);
42432 REGB0 = REGB1;
42433 } else {
42434 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42435 REGB0 = REGB1;
42436 }
42437 }
42438 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42439 if (UNTAG_Bool(REGB0)) {
42440 /* parser/parser_prod.nit:7785 */
42441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42442 if (UNTAG_Bool(REGB0)) {
42443 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7785);
42444 }
42445 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42446 /* parser/parser_prod.nit:7786 */
42447 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*/;
42448 if (UNTAG_Bool(REGB0)) {
42449 } else {
42450 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7786);
42451 }
42452 /* parser/parser_prod.nit:7787 */
42453 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
42454 } else {
42455 /* parser/parser_prod.nit:7789 */
42456 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7789);
42457 }
42458 /* parser/parser_prod.nit:7791 */
42459 goto label1;
42460 }
42461 /* parser/parser_prod.nit:7793 */
42462 REGB0 = TAG_Int(0);
42463 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
42464 if (UNTAG_Bool(REGB1)) {
42465 } else {
42466 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7793);
42467 }
42468 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
42469 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
42470 /* ../lib/standard/kernel.nit:355 */
42471 while(1) {
42472 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
42473 if (UNTAG_Bool(REGB2)) {
42474 } else {
42475 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
42476 }
42477 /* ../lib/standard/kernel.nit:235 */
42478 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
42479 /* ../lib/standard/kernel.nit:355 */
42480 if (UNTAG_Bool(REGB2)) {
42481 /* parser/parser_prod.nit:7793 */
42482 REGB2 = REGB0;
42483 /* parser/parser_prod.nit:7794 */
42484 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
42485 if (UNTAG_Bool(REGB3)) {
42486 } else {
42487 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7794);
42488 }
42489 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
42490 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
42491 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42492 if (UNTAG_Bool(REGB3)) {
42493 } else {
42494 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42495 if (UNTAG_Bool(REGB4)) {
42496 REGB4 = TAG_Bool(0);
42497 REGB3 = REGB4;
42498 } else {
42499 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42500 REGB3 = REGB4;
42501 }
42502 }
42503 if (UNTAG_Bool(REGB3)) {
42504 /* parser/parser_prod.nit:7795 */
42505 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42506 if (UNTAG_Bool(REGB3)) {
42507 } else {
42508 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42509 if (UNTAG_Bool(REGB4)) {
42510 REGB4 = TAG_Bool(0);
42511 REGB3 = REGB4;
42512 } else {
42513 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42514 REGB3 = REGB4;
42515 }
42516 }
42517 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
42518 if (UNTAG_Bool(REGB3)) {
42519 /* parser/parser_prod.nit:7796 */
42520 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*/;
42521 if (UNTAG_Bool(REGB3)) {
42522 } else {
42523 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7796);
42524 }
42525 /* parser/parser_prod.nit:7797 */
42526 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
42527 if (UNTAG_Bool(REGB3)) {
42528 } else {
42529 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7797);
42530 }
42531 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
42532 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
42533 /* parser/parser_prod.nit:7798 */
42534 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42535 if (UNTAG_Bool(REGB3)) {
42536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7798);
42537 }
42538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42539 } else {
42540 /* parser/parser_prod.nit:7800 */
42541 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
42542 if (UNTAG_Bool(REGB3)) {
42543 } else {
42544 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7800);
42545 }
42546 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
42547 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
42548 }
42549 /* parser/parser_prod.nit:7802 */
42550 goto label1;
42551 }
42552 /* ../lib/standard/kernel.nit:357 */
42553 REGB2 = TAG_Int(1);
42554 /* ../lib/standard/kernel.nit:238 */
42555 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
42556 /* ../lib/standard/kernel.nit:357 */
42557 REGB0 = REGB2;
42558 } else {
42559 /* ../lib/standard/kernel.nit:355 */
42560 goto label2;
42561 }
42562 }
42563 label2: while(0);
42564 /* parser/parser_prod.nit:7805 */
42565 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
42566 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42567 if (UNTAG_Bool(REGB0)) {
42568 } else {
42569 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42570 if (UNTAG_Bool(REGB1)) {
42571 REGB1 = TAG_Bool(0);
42572 REGB0 = REGB1;
42573 } else {
42574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42575 REGB0 = REGB1;
42576 }
42577 }
42578 if (UNTAG_Bool(REGB0)) {
42579 /* parser/parser_prod.nit:7806 */
42580 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42581 if (UNTAG_Bool(REGB0)) {
42582 } else {
42583 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42584 if (UNTAG_Bool(REGB1)) {
42585 REGB1 = TAG_Bool(0);
42586 REGB0 = REGB1;
42587 } else {
42588 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42589 REGB0 = REGB1;
42590 }
42591 }
42592 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42593 if (UNTAG_Bool(REGB0)) {
42594 /* parser/parser_prod.nit:7807 */
42595 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42596 if (UNTAG_Bool(REGB0)) {
42597 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7807);
42598 }
42599 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42600 /* parser/parser_prod.nit:7808 */
42601 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*/;
42602 if (UNTAG_Bool(REGB0)) {
42603 } else {
42604 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7808);
42605 }
42606 /* parser/parser_prod.nit:7809 */
42607 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
42608 } else {
42609 /* parser/parser_prod.nit:7811 */
42610 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
42611 }
42612 /* parser/parser_prod.nit:7813 */
42613 goto label1;
42614 }
42615 /* parser/parser_prod.nit:7815 */
42616 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
42617 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42618 if (UNTAG_Bool(REGB0)) {
42619 } else {
42620 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42621 if (UNTAG_Bool(REGB1)) {
42622 REGB1 = TAG_Bool(0);
42623 REGB0 = REGB1;
42624 } else {
42625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42626 REGB0 = REGB1;
42627 }
42628 }
42629 if (UNTAG_Bool(REGB0)) {
42630 /* parser/parser_prod.nit:7816 */
42631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42632 if (UNTAG_Bool(REGB0)) {
42633 } else {
42634 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42635 if (UNTAG_Bool(REGB1)) {
42636 REGB1 = TAG_Bool(0);
42637 REGB0 = REGB1;
42638 } else {
42639 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42640 REGB0 = REGB1;
42641 }
42642 }
42643 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42644 if (UNTAG_Bool(REGB0)) {
42645 /* parser/parser_prod.nit:7817 */
42646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42647 if (UNTAG_Bool(REGB0)) {
42648 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7817);
42649 }
42650 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42651 /* parser/parser_prod.nit:7818 */
42652 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
42653 if (UNTAG_Bool(REGB0)) {
42654 } else {
42655 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7818);
42656 }
42657 /* parser/parser_prod.nit:7819 */
42658 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
42659 } else {
42660 /* parser/parser_prod.nit:7821 */
42661 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
42662 }
42663 /* parser/parser_prod.nit:7823 */
42664 goto label1;
42665 }
42666 /* parser/parser_prod.nit:7825 */
42667 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
42668 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42669 if (UNTAG_Bool(REGB0)) {
42670 } else {
42671 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42672 if (UNTAG_Bool(REGB1)) {
42673 REGB1 = TAG_Bool(0);
42674 REGB0 = REGB1;
42675 } else {
42676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42677 REGB0 = REGB1;
42678 }
42679 }
42680 if (UNTAG_Bool(REGB0)) {
42681 /* parser/parser_prod.nit:7826 */
42682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42683 if (UNTAG_Bool(REGB0)) {
42684 } else {
42685 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42686 if (UNTAG_Bool(REGB1)) {
42687 REGB1 = TAG_Bool(0);
42688 REGB0 = REGB1;
42689 } else {
42690 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42691 REGB0 = REGB1;
42692 }
42693 }
42694 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42695 if (UNTAG_Bool(REGB0)) {
42696 /* parser/parser_prod.nit:7827 */
42697 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42698 if (UNTAG_Bool(REGB0)) {
42699 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7827);
42700 }
42701 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42702 /* parser/parser_prod.nit:7828 */
42703 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*/;
42704 if (UNTAG_Bool(REGB0)) {
42705 } else {
42706 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7828);
42707 }
42708 /* parser/parser_prod.nit:7829 */
42709 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
42710 } else {
42711 /* parser/parser_prod.nit:7831 */
42712 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
42713 }
42714 /* parser/parser_prod.nit:7833 */
42715 goto label1;
42716 }
42717 label1: while(0);
42718 stack_frame_head = fra.me.prev;
42719 return;
42720 }
42721 static const char LOCATE_parser___parser_prod___AClosureDef___visit_all[] = "parser_prod::AClosureDef::(parser_prod::ANode::visit_all)";
42722 void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
42723 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42724 val_t REGB0;
42725 val_t REGB1;
42726 val_t tmp;
42727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42728 fra.me.file = LOCATE_parser___parser_prod;
42729 fra.me.line = 7837;
42730 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
42731 fra.me.has_broke = 0;
42732 fra.me.REG_size = 4;
42733 fra.me.nitni_local_ref_head = NULL;
42734 fra.me.REG[0] = NIT_NULL;
42735 fra.me.REG[1] = NIT_NULL;
42736 fra.me.REG[2] = NIT_NULL;
42737 fra.me.REG[3] = NIT_NULL;
42738 fra.me.REG[0] = p0;
42739 fra.me.REG[1] = p1;
42740 /* parser/parser_prod.nit:7837 */
42741 fra.me.REG[2] = fra.me.REG[0];
42742 /* parser/parser_prod.nit:7839 */
42743 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
42744 if (UNTAG_Bool(REGB0)) {
42745 } else {
42746 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7839);
42747 }
42748 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
42749 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42750 /* parser/parser_prod.nit:7840 */
42751 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
42752 if (UNTAG_Bool(REGB0)) {
42753 } else {
42754 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7840);
42755 }
42756 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
42757 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42758 /* parser/parser_prod.nit:7841 */
42759 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
42760 if (UNTAG_Bool(REGB0)) {
42761 } else {
42762 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7841);
42763 }
42764 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
42765 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));
42766 /* parser/parser_prod.nit:7844 */
42767 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
42768 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42769 if (UNTAG_Bool(REGB0)) {
42770 } else {
42771 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42772 if (UNTAG_Bool(REGB1)) {
42773 REGB1 = TAG_Bool(0);
42774 REGB0 = REGB1;
42775 } else {
42776 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
42777 REGB0 = REGB1;
42778 }
42779 }
42780 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42781 if (UNTAG_Bool(REGB0)) {
42782 /* parser/parser_prod.nit:7845 */
42783 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
42784 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*/;
42785 if (UNTAG_Bool(REGB0)) {
42786 } else {
42787 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7845);
42788 }
42789 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42790 }
42791 /* parser/parser_prod.nit:7847 */
42792 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
42793 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42794 if (UNTAG_Bool(REGB0)) {
42795 } else {
42796 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42797 if (UNTAG_Bool(REGB1)) {
42798 REGB1 = TAG_Bool(0);
42799 REGB0 = REGB1;
42800 } else {
42801 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
42802 REGB0 = REGB1;
42803 }
42804 }
42805 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42806 if (UNTAG_Bool(REGB0)) {
42807 /* parser/parser_prod.nit:7848 */
42808 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
42809 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*/;
42810 if (UNTAG_Bool(REGB0)) {
42811 } else {
42812 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7848);
42813 }
42814 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42815 }
42816 /* parser/parser_prod.nit:7850 */
42817 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
42818 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42819 if (UNTAG_Bool(REGB0)) {
42820 } else {
42821 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42822 if (UNTAG_Bool(REGB1)) {
42823 REGB1 = TAG_Bool(0);
42824 REGB0 = REGB1;
42825 } else {
42826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
42827 REGB0 = REGB1;
42828 }
42829 }
42830 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42831 if (UNTAG_Bool(REGB0)) {
42832 /* parser/parser_prod.nit:7851 */
42833 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
42834 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*/;
42835 if (UNTAG_Bool(REGB0)) {
42836 } else {
42837 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7851);
42838 }
42839 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42840 }
42841 stack_frame_head = fra.me.prev;
42842 return;
42843 }
42844 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){
42845 struct {struct stack_frame_t me;} fra;
42846 fun_t CREG[1];
42847 val_t tmp;
42848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42849 fra.me.file = LOCATE_parser___parser_prod;
42850 fra.me.line = 0;
42851 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
42852 fra.me.has_broke = 0;
42853 fra.me.REG_size = 1;
42854 fra.me.nitni_local_ref_head = NULL;
42855 fra.me.REG[0] = NIT_NULL;
42856 fra.me.closure_ctx = closctx_param;
42857 fra.me.closure_funs = CREG;
42858 fra.me.REG[0] = p0;
42859 CREG[0] = clos_fun0;
42860 /* parser/parser_prod.nit:7842 */
42861 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
42862 stack_frame_head = fra.me.prev;
42863 return;
42864 }
42865 static const char LOCATE_parser___parser_prod___ASimpleClosureId___empty_init[] = "parser_prod::ASimpleClosureId::empty_init";
42866 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
42867 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
42868 struct {struct stack_frame_t me;} fra;
42869 val_t tmp;
42870 if (init_table[itpos269]) return;
42871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42872 fra.me.file = LOCATE_parser___parser_prod;
42873 fra.me.line = 7856;
42874 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
42875 fra.me.has_broke = 0;
42876 fra.me.REG_size = 1;
42877 fra.me.nitni_local_ref_head = NULL;
42878 fra.me.REG[0] = NIT_NULL;
42879 fra.me.REG[0] = p0;
42880 stack_frame_head = fra.me.prev;
42881 init_table[itpos269] = 1;
42882 return;
42883 }
42884 static const char LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid[] = "parser_prod::ASimpleClosureId::init_asimpleclosureid";
42885 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
42886 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
42887 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42888 val_t REGB0;
42889 val_t tmp;
42890 if (init_table[itpos270]) return;
42891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42892 fra.me.file = LOCATE_parser___parser_prod;
42893 fra.me.line = 7858;
42894 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
42895 fra.me.has_broke = 0;
42896 fra.me.REG_size = 3;
42897 fra.me.nitni_local_ref_head = NULL;
42898 fra.me.REG[0] = NIT_NULL;
42899 fra.me.REG[1] = NIT_NULL;
42900 fra.me.REG[2] = NIT_NULL;
42901 fra.me.REG[0] = p0;
42902 fra.me.REG[1] = p1;
42903 /* parser/parser_prod.nit:7858 */
42904 fra.me.REG[2] = fra.me.REG[0];
42905 /* parser/parser_prod.nit:7862 */
42906 CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
42907 /* parser/parser_prod.nit:7863 */
42908 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42909 if (UNTAG_Bool(REGB0)) {
42910 } else {
42911 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7863);
42912 }
42913 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
42914 /* parser/parser_prod.nit:7864 */
42915 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42916 if (UNTAG_Bool(REGB0)) {
42917 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7864);
42918 }
42919 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42920 stack_frame_head = fra.me.prev;
42921 init_table[itpos270] = 1;
42922 return;
42923 }
42924 static const char LOCATE_parser___parser_prod___ASimpleClosureId___replace_child[] = "parser_prod::ASimpleClosureId::(parser_prod::ANode::replace_child)";
42925 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
42926 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42927 val_t REGB0;
42928 val_t REGB1;
42929 val_t tmp;
42930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42931 fra.me.file = LOCATE_parser___parser_prod;
42932 fra.me.line = 7867;
42933 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
42934 fra.me.has_broke = 0;
42935 fra.me.REG_size = 4;
42936 fra.me.nitni_local_ref_head = NULL;
42937 fra.me.REG[0] = NIT_NULL;
42938 fra.me.REG[1] = NIT_NULL;
42939 fra.me.REG[2] = NIT_NULL;
42940 fra.me.REG[3] = NIT_NULL;
42941 fra.me.REG[0] = p0;
42942 fra.me.REG[1] = p1;
42943 fra.me.REG[2] = p2;
42944 /* parser/parser_prod.nit:7869 */
42945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
42946 if (UNTAG_Bool(REGB0)) {
42947 } else {
42948 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7869);
42949 }
42950 fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
42951 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42952 if (UNTAG_Bool(REGB0)) {
42953 } else {
42954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42955 REGB0 = REGB1;
42956 }
42957 if (UNTAG_Bool(REGB0)) {
42958 /* parser/parser_prod.nit:7870 */
42959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42960 if (UNTAG_Bool(REGB0)) {
42961 } else {
42962 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42963 if (UNTAG_Bool(REGB1)) {
42964 REGB1 = TAG_Bool(0);
42965 REGB0 = REGB1;
42966 } else {
42967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42968 REGB0 = REGB1;
42969 }
42970 }
42971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42972 if (UNTAG_Bool(REGB0)) {
42973 /* parser/parser_prod.nit:7871 */
42974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42975 if (UNTAG_Bool(REGB0)) {
42976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7871);
42977 }
42978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42979 /* parser/parser_prod.nit:7872 */
42980 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*/;
42981 if (UNTAG_Bool(REGB0)) {
42982 } else {
42983 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7872);
42984 }
42985 /* parser/parser_prod.nit:7873 */
42986 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
42987 } else {
42988 /* parser/parser_prod.nit:7875 */
42989 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7875);
42990 }
42991 /* parser/parser_prod.nit:7877 */
42992 goto label1;
42993 }
42994 label1: while(0);
42995 stack_frame_head = fra.me.prev;
42996 return;
42997 }
42998 static const char LOCATE_parser___parser_prod___ASimpleClosureId___visit_all[] = "parser_prod::ASimpleClosureId::(parser_prod::ANode::visit_all)";
42999 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
43000 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43001 val_t REGB0;
43002 val_t tmp;
43003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43004 fra.me.file = LOCATE_parser___parser_prod;
43005 fra.me.line = 7881;
43006 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
43007 fra.me.has_broke = 0;
43008 fra.me.REG_size = 2;
43009 fra.me.nitni_local_ref_head = NULL;
43010 fra.me.REG[0] = NIT_NULL;
43011 fra.me.REG[1] = NIT_NULL;
43012 fra.me.REG[0] = p0;
43013 fra.me.REG[1] = p1;
43014 /* parser/parser_prod.nit:7883 */
43015 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
43016 if (UNTAG_Bool(REGB0)) {
43017 } else {
43018 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7883);
43019 }
43020 fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
43021 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43022 stack_frame_head = fra.me.prev;
43023 return;
43024 }
43025 static const char LOCATE_parser___parser_prod___ABreakClosureId___empty_init[] = "parser_prod::ABreakClosureId::empty_init";
43026 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
43027 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
43028 struct {struct stack_frame_t me;} fra;
43029 val_t tmp;
43030 if (init_table[itpos271]) return;
43031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43032 fra.me.file = LOCATE_parser___parser_prod;
43033 fra.me.line = 7887;
43034 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
43035 fra.me.has_broke = 0;
43036 fra.me.REG_size = 1;
43037 fra.me.nitni_local_ref_head = NULL;
43038 fra.me.REG[0] = NIT_NULL;
43039 fra.me.REG[0] = p0;
43040 stack_frame_head = fra.me.prev;
43041 init_table[itpos271] = 1;
43042 return;
43043 }
43044 static const char LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid[] = "parser_prod::ABreakClosureId::init_abreakclosureid";
43045 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
43046 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
43047 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43048 val_t REGB0;
43049 val_t tmp;
43050 if (init_table[itpos272]) return;
43051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43052 fra.me.file = LOCATE_parser___parser_prod;
43053 fra.me.line = 7889;
43054 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
43055 fra.me.has_broke = 0;
43056 fra.me.REG_size = 3;
43057 fra.me.nitni_local_ref_head = NULL;
43058 fra.me.REG[0] = NIT_NULL;
43059 fra.me.REG[1] = NIT_NULL;
43060 fra.me.REG[2] = NIT_NULL;
43061 fra.me.REG[0] = p0;
43062 fra.me.REG[1] = p1;
43063 /* parser/parser_prod.nit:7889 */
43064 fra.me.REG[2] = fra.me.REG[0];
43065 /* parser/parser_prod.nit:7893 */
43066 CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
43067 /* parser/parser_prod.nit:7894 */
43068 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43069 if (UNTAG_Bool(REGB0)) {
43070 } else {
43071 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7894);
43072 }
43073 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
43074 /* parser/parser_prod.nit:7895 */
43075 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43076 if (UNTAG_Bool(REGB0)) {
43077 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7895);
43078 }
43079 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43080 stack_frame_head = fra.me.prev;
43081 init_table[itpos272] = 1;
43082 return;
43083 }
43084 static const char LOCATE_parser___parser_prod___ABreakClosureId___replace_child[] = "parser_prod::ABreakClosureId::(parser_prod::ANode::replace_child)";
43085 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
43086 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43087 val_t REGB0;
43088 val_t REGB1;
43089 val_t tmp;
43090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43091 fra.me.file = LOCATE_parser___parser_prod;
43092 fra.me.line = 7898;
43093 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
43094 fra.me.has_broke = 0;
43095 fra.me.REG_size = 4;
43096 fra.me.nitni_local_ref_head = NULL;
43097 fra.me.REG[0] = NIT_NULL;
43098 fra.me.REG[1] = NIT_NULL;
43099 fra.me.REG[2] = NIT_NULL;
43100 fra.me.REG[3] = NIT_NULL;
43101 fra.me.REG[0] = p0;
43102 fra.me.REG[1] = p1;
43103 fra.me.REG[2] = p2;
43104 /* parser/parser_prod.nit:7900 */
43105 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
43106 if (UNTAG_Bool(REGB0)) {
43107 } else {
43108 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7900);
43109 }
43110 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
43111 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43112 if (UNTAG_Bool(REGB0)) {
43113 } else {
43114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43115 REGB0 = REGB1;
43116 }
43117 if (UNTAG_Bool(REGB0)) {
43118 /* parser/parser_prod.nit:7901 */
43119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43120 if (UNTAG_Bool(REGB0)) {
43121 } else {
43122 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43123 if (UNTAG_Bool(REGB1)) {
43124 REGB1 = TAG_Bool(0);
43125 REGB0 = REGB1;
43126 } else {
43127 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43128 REGB0 = REGB1;
43129 }
43130 }
43131 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43132 if (UNTAG_Bool(REGB0)) {
43133 /* parser/parser_prod.nit:7902 */
43134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43135 if (UNTAG_Bool(REGB0)) {
43136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7902);
43137 }
43138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43139 /* parser/parser_prod.nit:7903 */
43140 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*/;
43141 if (UNTAG_Bool(REGB0)) {
43142 } else {
43143 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7903);
43144 }
43145 /* parser/parser_prod.nit:7904 */
43146 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
43147 } else {
43148 /* parser/parser_prod.nit:7906 */
43149 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7906);
43150 }
43151 /* parser/parser_prod.nit:7908 */
43152 goto label1;
43153 }
43154 label1: while(0);
43155 stack_frame_head = fra.me.prev;
43156 return;
43157 }
43158 static const char LOCATE_parser___parser_prod___ABreakClosureId___visit_all[] = "parser_prod::ABreakClosureId::(parser_prod::ANode::visit_all)";
43159 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
43160 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43161 val_t REGB0;
43162 val_t tmp;
43163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43164 fra.me.file = LOCATE_parser___parser_prod;
43165 fra.me.line = 7912;
43166 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
43167 fra.me.has_broke = 0;
43168 fra.me.REG_size = 2;
43169 fra.me.nitni_local_ref_head = NULL;
43170 fra.me.REG[0] = NIT_NULL;
43171 fra.me.REG[1] = NIT_NULL;
43172 fra.me.REG[0] = p0;
43173 fra.me.REG[1] = p1;
43174 /* parser/parser_prod.nit:7914 */
43175 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
43176 if (UNTAG_Bool(REGB0)) {
43177 } else {
43178 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7914);
43179 }
43180 fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
43181 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43182 stack_frame_head = fra.me.prev;
43183 return;
43184 }
43185 static const char LOCATE_parser___parser_prod___AModuleName___empty_init[] = "parser_prod::AModuleName::empty_init";
43186 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
43187 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
43188 struct {struct stack_frame_t me;} fra;
43189 val_t tmp;
43190 if (init_table[itpos273]) return;
43191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43192 fra.me.file = LOCATE_parser___parser_prod;
43193 fra.me.line = 7918;
43194 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
43195 fra.me.has_broke = 0;
43196 fra.me.REG_size = 1;
43197 fra.me.nitni_local_ref_head = NULL;
43198 fra.me.REG[0] = NIT_NULL;
43199 fra.me.REG[0] = p0;
43200 stack_frame_head = fra.me.prev;
43201 init_table[itpos273] = 1;
43202 return;
43203 }
43204 static const char LOCATE_parser___parser_prod___AModuleName___init_amodulename[] = "parser_prod::AModuleName::init_amodulename";
43205 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
43206 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
43207 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
43208 val_t REGB0;
43209 val_t REGB1;
43210 val_t tmp;
43211 if (init_table[itpos274]) return;
43212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43213 fra.me.file = LOCATE_parser___parser_prod;
43214 fra.me.line = 7920;
43215 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
43216 fra.me.has_broke = 0;
43217 fra.me.REG_size = 5;
43218 fra.me.nitni_local_ref_head = NULL;
43219 fra.me.REG[0] = NIT_NULL;
43220 fra.me.REG[1] = NIT_NULL;
43221 fra.me.REG[2] = NIT_NULL;
43222 fra.me.REG[3] = NIT_NULL;
43223 fra.me.REG[4] = NIT_NULL;
43224 fra.me.REG[0] = p0;
43225 fra.me.REG[1] = p1;
43226 fra.me.REG[2] = p2;
43227 fra.me.REG[3] = p3;
43228 /* parser/parser_prod.nit:7920 */
43229 fra.me.REG[4] = fra.me.REG[0];
43230 /* parser/parser_prod.nit:7926 */
43231 CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
43232 /* parser/parser_prod.nit:7927 */
43233 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
43234 /* parser/parser_prod.nit:7928 */
43235 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43236 if (UNTAG_Bool(REGB0)) {
43237 } else {
43238 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43239 if (UNTAG_Bool(REGB1)) {
43240 REGB1 = TAG_Bool(0);
43241 REGB0 = REGB1;
43242 } else {
43243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
43244 REGB0 = REGB1;
43245 }
43246 }
43247 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43248 if (UNTAG_Bool(REGB0)) {
43249 /* parser/parser_prod.nit:7929 */
43250 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43251 if (UNTAG_Bool(REGB0)) {
43252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7929);
43253 }
43254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
43255 }
43256 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));
43257 /* parser/parser_prod.nit:7936 */
43258 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
43259 if (UNTAG_Bool(REGB0)) {
43260 } else {
43261 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7936);
43262 }
43263 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
43264 /* parser/parser_prod.nit:7937 */
43265 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43266 if (UNTAG_Bool(REGB0)) {
43267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7937);
43268 }
43269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
43270 stack_frame_head = fra.me.prev;
43271 init_table[itpos274] = 1;
43272 return;
43273 }
43274 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){
43275 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43276 val_t REGB0;
43277 fun_t CREG[1];
43278 val_t tmp;
43279 /* parser/parser_prod.nit:7931 */
43280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43281 fra.me.file = LOCATE_parser___parser_prod;
43282 fra.me.line = 0;
43283 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
43284 fra.me.has_broke = 0;
43285 fra.me.REG_size = 2;
43286 fra.me.nitni_local_ref_head = NULL;
43287 fra.me.REG[0] = NIT_NULL;
43288 fra.me.REG[1] = NIT_NULL;
43289 fra.me.closure_ctx = closctx_param;
43290 fra.me.closure_funs = CREG;
43291 fra.me.REG[0] = p0;
43292 CREG[0] = clos_fun0;
43293 /* parser/parser_prod.nit:7932 */
43294 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
43295 if (UNTAG_Bool(REGB0)) {
43296 } else {
43297 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7932);
43298 }
43299 /* parser/parser_prod.nit:7933 */
43300 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
43301 if (UNTAG_Bool(REGB0)) {
43302 } else {
43303 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7933);
43304 }
43305 fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
43306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43307 /* parser/parser_prod.nit:7934 */
43308 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
43309 stack_frame_head = fra.me.prev;
43310 return;
43311 }
43312 static const char LOCATE_parser___parser_prod___AModuleName___replace_child[] = "parser_prod::AModuleName::(parser_prod::ANode::replace_child)";
43313 void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_t p2){
43314 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43315 val_t REGB0;
43316 val_t REGB1;
43317 val_t REGB2;
43318 val_t REGB3;
43319 val_t REGB4;
43320 val_t tmp;
43321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43322 fra.me.file = LOCATE_parser___parser_prod;
43323 fra.me.line = 7940;
43324 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
43325 fra.me.has_broke = 0;
43326 fra.me.REG_size = 4;
43327 fra.me.nitni_local_ref_head = NULL;
43328 fra.me.REG[0] = NIT_NULL;
43329 fra.me.REG[1] = NIT_NULL;
43330 fra.me.REG[2] = NIT_NULL;
43331 fra.me.REG[3] = NIT_NULL;
43332 fra.me.REG[0] = p0;
43333 fra.me.REG[1] = p1;
43334 fra.me.REG[2] = p2;
43335 /* parser/parser_prod.nit:7942 */
43336 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
43337 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43338 if (UNTAG_Bool(REGB0)) {
43339 } else {
43340 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43341 if (UNTAG_Bool(REGB1)) {
43342 REGB1 = TAG_Bool(0);
43343 REGB0 = REGB1;
43344 } else {
43345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43346 REGB0 = REGB1;
43347 }
43348 }
43349 if (UNTAG_Bool(REGB0)) {
43350 /* parser/parser_prod.nit:7943 */
43351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43352 if (UNTAG_Bool(REGB0)) {
43353 } else {
43354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43355 if (UNTAG_Bool(REGB1)) {
43356 REGB1 = TAG_Bool(0);
43357 REGB0 = REGB1;
43358 } else {
43359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43360 REGB0 = REGB1;
43361 }
43362 }
43363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43364 if (UNTAG_Bool(REGB0)) {
43365 /* parser/parser_prod.nit:7944 */
43366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43367 if (UNTAG_Bool(REGB0)) {
43368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7944);
43369 }
43370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43371 /* parser/parser_prod.nit:7945 */
43372 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*/;
43373 if (UNTAG_Bool(REGB0)) {
43374 } else {
43375 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7945);
43376 }
43377 /* parser/parser_prod.nit:7946 */
43378 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
43379 } else {
43380 /* parser/parser_prod.nit:7948 */
43381 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
43382 }
43383 /* parser/parser_prod.nit:7950 */
43384 goto label1;
43385 }
43386 /* parser/parser_prod.nit:7952 */
43387 REGB0 = TAG_Int(0);
43388 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
43389 if (UNTAG_Bool(REGB1)) {
43390 } else {
43391 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7952);
43392 }
43393 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
43394 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
43395 /* ../lib/standard/kernel.nit:355 */
43396 while(1) {
43397 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
43398 if (UNTAG_Bool(REGB2)) {
43399 } else {
43400 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
43401 }
43402 /* ../lib/standard/kernel.nit:235 */
43403 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
43404 /* ../lib/standard/kernel.nit:355 */
43405 if (UNTAG_Bool(REGB2)) {
43406 /* parser/parser_prod.nit:7952 */
43407 REGB2 = REGB0;
43408 /* parser/parser_prod.nit:7953 */
43409 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
43410 if (UNTAG_Bool(REGB3)) {
43411 } else {
43412 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7953);
43413 }
43414 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
43415 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
43416 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43417 if (UNTAG_Bool(REGB3)) {
43418 } else {
43419 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43420 if (UNTAG_Bool(REGB4)) {
43421 REGB4 = TAG_Bool(0);
43422 REGB3 = REGB4;
43423 } else {
43424 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43425 REGB3 = REGB4;
43426 }
43427 }
43428 if (UNTAG_Bool(REGB3)) {
43429 /* parser/parser_prod.nit:7954 */
43430 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43431 if (UNTAG_Bool(REGB3)) {
43432 } else {
43433 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43434 if (UNTAG_Bool(REGB4)) {
43435 REGB4 = TAG_Bool(0);
43436 REGB3 = REGB4;
43437 } else {
43438 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43439 REGB3 = REGB4;
43440 }
43441 }
43442 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
43443 if (UNTAG_Bool(REGB3)) {
43444 /* parser/parser_prod.nit:7955 */
43445 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*/;
43446 if (UNTAG_Bool(REGB3)) {
43447 } else {
43448 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7955);
43449 }
43450 /* parser/parser_prod.nit:7956 */
43451 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
43452 if (UNTAG_Bool(REGB3)) {
43453 } else {
43454 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7956);
43455 }
43456 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
43457 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
43458 /* parser/parser_prod.nit:7957 */
43459 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43460 if (UNTAG_Bool(REGB3)) {
43461 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7957);
43462 }
43463 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43464 } else {
43465 /* parser/parser_prod.nit:7959 */
43466 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
43467 if (UNTAG_Bool(REGB3)) {
43468 } else {
43469 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7959);
43470 }
43471 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
43472 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
43473 }
43474 /* parser/parser_prod.nit:7961 */
43475 goto label1;
43476 }
43477 /* ../lib/standard/kernel.nit:357 */
43478 REGB2 = TAG_Int(1);
43479 /* ../lib/standard/kernel.nit:238 */
43480 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
43481 /* ../lib/standard/kernel.nit:357 */
43482 REGB0 = REGB2;
43483 } else {
43484 /* ../lib/standard/kernel.nit:355 */
43485 goto label2;
43486 }
43487 }
43488 label2: while(0);
43489 /* parser/parser_prod.nit:7964 */
43490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
43491 if (UNTAG_Bool(REGB0)) {
43492 } else {
43493 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7964);
43494 }
43495 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
43496 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43497 if (UNTAG_Bool(REGB0)) {
43498 } else {
43499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43500 REGB0 = REGB1;
43501 }
43502 if (UNTAG_Bool(REGB0)) {
43503 /* parser/parser_prod.nit:7965 */
43504 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43505 if (UNTAG_Bool(REGB0)) {
43506 } else {
43507 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43508 if (UNTAG_Bool(REGB1)) {
43509 REGB1 = TAG_Bool(0);
43510 REGB0 = REGB1;
43511 } else {
43512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43513 REGB0 = REGB1;
43514 }
43515 }
43516 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43517 if (UNTAG_Bool(REGB0)) {
43518 /* parser/parser_prod.nit:7966 */
43519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43520 if (UNTAG_Bool(REGB0)) {
43521 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7966);
43522 }
43523 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43524 /* parser/parser_prod.nit:7967 */
43525 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*/;
43526 if (UNTAG_Bool(REGB0)) {
43527 } else {
43528 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7967);
43529 }
43530 /* parser/parser_prod.nit:7968 */
43531 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
43532 } else {
43533 /* parser/parser_prod.nit:7970 */
43534 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7970);
43535 }
43536 /* parser/parser_prod.nit:7972 */
43537 goto label1;
43538 }
43539 label1: while(0);
43540 stack_frame_head = fra.me.prev;
43541 return;
43542 }
43543 static const char LOCATE_parser___parser_prod___AModuleName___visit_all[] = "parser_prod::AModuleName::(parser_prod::ANode::visit_all)";
43544 void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
43545 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43546 val_t REGB0;
43547 val_t REGB1;
43548 val_t tmp;
43549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43550 fra.me.file = LOCATE_parser___parser_prod;
43551 fra.me.line = 7976;
43552 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
43553 fra.me.has_broke = 0;
43554 fra.me.REG_size = 4;
43555 fra.me.nitni_local_ref_head = NULL;
43556 fra.me.REG[0] = NIT_NULL;
43557 fra.me.REG[1] = NIT_NULL;
43558 fra.me.REG[2] = NIT_NULL;
43559 fra.me.REG[3] = NIT_NULL;
43560 fra.me.REG[0] = p0;
43561 fra.me.REG[1] = p1;
43562 /* parser/parser_prod.nit:7976 */
43563 fra.me.REG[2] = fra.me.REG[0];
43564 /* parser/parser_prod.nit:7978 */
43565 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
43566 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43567 if (UNTAG_Bool(REGB0)) {
43568 } else {
43569 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43570 if (UNTAG_Bool(REGB1)) {
43571 REGB1 = TAG_Bool(0);
43572 REGB0 = REGB1;
43573 } else {
43574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
43575 REGB0 = REGB1;
43576 }
43577 }
43578 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43579 if (UNTAG_Bool(REGB0)) {
43580 /* parser/parser_prod.nit:7979 */
43581 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
43582 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*/;
43583 if (UNTAG_Bool(REGB0)) {
43584 } else {
43585 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7979);
43586 }
43587 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
43588 }
43589 /* parser/parser_prod.nit:7981 */
43590 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
43591 if (UNTAG_Bool(REGB0)) {
43592 } else {
43593 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7981);
43594 }
43595 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
43596 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));
43597 /* parser/parser_prod.nit:7984 */
43598 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
43599 if (UNTAG_Bool(REGB0)) {
43600 } else {
43601 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7984);
43602 }
43603 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
43604 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43605 stack_frame_head = fra.me.prev;
43606 return;
43607 }
43608 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){
43609 struct {struct stack_frame_t me;} fra;
43610 fun_t CREG[1];
43611 val_t tmp;
43612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43613 fra.me.file = LOCATE_parser___parser_prod;
43614 fra.me.line = 0;
43615 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
43616 fra.me.has_broke = 0;
43617 fra.me.REG_size = 1;
43618 fra.me.nitni_local_ref_head = NULL;
43619 fra.me.REG[0] = NIT_NULL;
43620 fra.me.closure_ctx = closctx_param;
43621 fra.me.closure_funs = CREG;
43622 fra.me.REG[0] = p0;
43623 CREG[0] = clos_fun0;
43624 /* parser/parser_prod.nit:7982 */
43625 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43626 stack_frame_head = fra.me.prev;
43627 return;
43628 }
43629 static const char LOCATE_parser___parser_prod___AExternCalls___empty_init[] = "parser_prod::AExternCalls::empty_init";
43630 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
43631 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
43632 struct {struct stack_frame_t me;} fra;
43633 val_t tmp;
43634 if (init_table[itpos275]) return;
43635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43636 fra.me.file = LOCATE_parser___parser_prod;
43637 fra.me.line = 7988;
43638 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___empty_init;
43639 fra.me.has_broke = 0;
43640 fra.me.REG_size = 1;
43641 fra.me.nitni_local_ref_head = NULL;
43642 fra.me.REG[0] = NIT_NULL;
43643 fra.me.REG[0] = p0;
43644 stack_frame_head = fra.me.prev;
43645 init_table[itpos275] = 1;
43646 return;
43647 }
43648 static const char LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls[] = "parser_prod::AExternCalls::init_aexterncalls";
43649 void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
43650 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
43651 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43652 val_t REGB0;
43653 val_t tmp;
43654 if (init_table[itpos276]) return;
43655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43656 fra.me.file = LOCATE_parser___parser_prod;
43657 fra.me.line = 7990;
43658 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
43659 fra.me.has_broke = 0;
43660 fra.me.REG_size = 4;
43661 fra.me.nitni_local_ref_head = NULL;
43662 fra.me.REG[0] = NIT_NULL;
43663 fra.me.REG[1] = NIT_NULL;
43664 fra.me.REG[2] = NIT_NULL;
43665 fra.me.REG[3] = NIT_NULL;
43666 fra.me.REG[0] = p0;
43667 fra.me.REG[1] = p1;
43668 fra.me.REG[2] = p2;
43669 /* parser/parser_prod.nit:7990 */
43670 fra.me.REG[3] = fra.me.REG[0];
43671 /* parser/parser_prod.nit:7995 */
43672 CALL_parser___parser_prod___AExternCalls___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
43673 /* parser/parser_prod.nit:7996 */
43674 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43675 if (UNTAG_Bool(REGB0)) {
43676 } else {
43677 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7996);
43678 }
43679 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[3]) = fra.me.REG[1];
43680 /* parser/parser_prod.nit:7997 */
43681 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43682 if (UNTAG_Bool(REGB0)) {
43683 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7997);
43684 }
43685 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
43686 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___init_aexterncalls_1));
43687 stack_frame_head = fra.me.prev;
43688 init_table[itpos276] = 1;
43689 return;
43690 }
43691 void OC_parser___parser_prod___AExternCalls___init_aexterncalls_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
43692 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43693 val_t REGB0;
43694 fun_t CREG[1];
43695 val_t tmp;
43696 /* parser/parser_prod.nit:7998 */
43697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43698 fra.me.file = LOCATE_parser___parser_prod;
43699 fra.me.line = 0;
43700 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
43701 fra.me.has_broke = 0;
43702 fra.me.REG_size = 2;
43703 fra.me.nitni_local_ref_head = NULL;
43704 fra.me.REG[0] = NIT_NULL;
43705 fra.me.REG[1] = NIT_NULL;
43706 fra.me.closure_ctx = closctx_param;
43707 fra.me.closure_funs = CREG;
43708 fra.me.REG[0] = p0;
43709 CREG[0] = clos_fun0;
43710 /* parser/parser_prod.nit:7999 */
43711 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
43712 if (UNTAG_Bool(REGB0)) {
43713 } else {
43714 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7999);
43715 }
43716 /* parser/parser_prod.nit:8000 */
43717 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3])!=NIT_NULL);
43718 if (UNTAG_Bool(REGB0)) {
43719 } else {
43720 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8000);
43721 }
43722 fra.me.REG[1] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3]);
43723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43724 /* parser/parser_prod.nit:8001 */
43725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
43726 stack_frame_head = fra.me.prev;
43727 return;
43728 }
43729 static const char LOCATE_parser___parser_prod___AExternCalls___replace_child[] = "parser_prod::AExternCalls::(parser_prod::ANode::replace_child)";
43730 void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val_t p2){
43731 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43732 val_t REGB0;
43733 val_t REGB1;
43734 val_t REGB2;
43735 val_t REGB3;
43736 val_t REGB4;
43737 val_t tmp;
43738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43739 fra.me.file = LOCATE_parser___parser_prod;
43740 fra.me.line = 8005;
43741 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___replace_child;
43742 fra.me.has_broke = 0;
43743 fra.me.REG_size = 4;
43744 fra.me.nitni_local_ref_head = NULL;
43745 fra.me.REG[0] = NIT_NULL;
43746 fra.me.REG[1] = NIT_NULL;
43747 fra.me.REG[2] = NIT_NULL;
43748 fra.me.REG[3] = NIT_NULL;
43749 fra.me.REG[0] = p0;
43750 fra.me.REG[1] = p1;
43751 fra.me.REG[2] = p2;
43752 /* parser/parser_prod.nit:8007 */
43753 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
43754 if (UNTAG_Bool(REGB0)) {
43755 } else {
43756 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 8007);
43757 }
43758 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
43759 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43760 if (UNTAG_Bool(REGB0)) {
43761 } else {
43762 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43763 REGB0 = REGB1;
43764 }
43765 if (UNTAG_Bool(REGB0)) {
43766 /* parser/parser_prod.nit:8008 */
43767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43768 if (UNTAG_Bool(REGB0)) {
43769 } else {
43770 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43771 if (UNTAG_Bool(REGB1)) {
43772 REGB1 = TAG_Bool(0);
43773 REGB0 = REGB1;
43774 } else {
43775 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43776 REGB0 = REGB1;
43777 }
43778 }
43779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43780 if (UNTAG_Bool(REGB0)) {
43781 /* parser/parser_prod.nit:8009 */
43782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43783 if (UNTAG_Bool(REGB0)) {
43784 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8009);
43785 }
43786 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43787 /* parser/parser_prod.nit:8010 */
43788 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*/;
43789 if (UNTAG_Bool(REGB0)) {
43790 } else {
43791 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8010);
43792 }
43793 /* parser/parser_prod.nit:8011 */
43794 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
43795 } else {
43796 /* parser/parser_prod.nit:8013 */
43797 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8013);
43798 }
43799 /* parser/parser_prod.nit:8015 */
43800 goto label1;
43801 }
43802 /* parser/parser_prod.nit:8017 */
43803 REGB0 = TAG_Int(0);
43804 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
43805 if (UNTAG_Bool(REGB1)) {
43806 } else {
43807 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8017);
43808 }
43809 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
43810 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
43811 /* ../lib/standard/kernel.nit:355 */
43812 while(1) {
43813 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
43814 if (UNTAG_Bool(REGB2)) {
43815 } else {
43816 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
43817 }
43818 /* ../lib/standard/kernel.nit:235 */
43819 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
43820 /* ../lib/standard/kernel.nit:355 */
43821 if (UNTAG_Bool(REGB2)) {
43822 /* parser/parser_prod.nit:8017 */
43823 REGB2 = REGB0;
43824 /* parser/parser_prod.nit:8018 */
43825 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
43826 if (UNTAG_Bool(REGB3)) {
43827 } else {
43828 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8018);
43829 }
43830 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
43831 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
43832 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43833 if (UNTAG_Bool(REGB3)) {
43834 } else {
43835 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43836 if (UNTAG_Bool(REGB4)) {
43837 REGB4 = TAG_Bool(0);
43838 REGB3 = REGB4;
43839 } else {
43840 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43841 REGB3 = REGB4;
43842 }
43843 }
43844 if (UNTAG_Bool(REGB3)) {
43845 /* parser/parser_prod.nit:8019 */
43846 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43847 if (UNTAG_Bool(REGB3)) {
43848 } else {
43849 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43850 if (UNTAG_Bool(REGB4)) {
43851 REGB4 = TAG_Bool(0);
43852 REGB3 = REGB4;
43853 } else {
43854 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43855 REGB3 = REGB4;
43856 }
43857 }
43858 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
43859 if (UNTAG_Bool(REGB3)) {
43860 /* parser/parser_prod.nit:8020 */
43861 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
43862 if (UNTAG_Bool(REGB3)) {
43863 } else {
43864 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8020);
43865 }
43866 /* parser/parser_prod.nit:8021 */
43867 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
43868 if (UNTAG_Bool(REGB3)) {
43869 } else {
43870 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8021);
43871 }
43872 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
43873 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
43874 /* parser/parser_prod.nit:8022 */
43875 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43876 if (UNTAG_Bool(REGB3)) {
43877 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8022);
43878 }
43879 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43880 } else {
43881 /* parser/parser_prod.nit:8024 */
43882 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
43883 if (UNTAG_Bool(REGB3)) {
43884 } else {
43885 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8024);
43886 }
43887 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
43888 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
43889 }
43890 /* parser/parser_prod.nit:8026 */
43891 goto label1;
43892 }
43893 /* ../lib/standard/kernel.nit:357 */
43894 REGB2 = TAG_Int(1);
43895 /* ../lib/standard/kernel.nit:238 */
43896 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
43897 /* ../lib/standard/kernel.nit:357 */
43898 REGB0 = REGB2;
43899 } else {
43900 /* ../lib/standard/kernel.nit:355 */
43901 goto label2;
43902 }
43903 }
43904 label2: while(0);
43905 label1: while(0);
43906 stack_frame_head = fra.me.prev;
43907 return;
43908 }
43909 static const char LOCATE_parser___parser_prod___AExternCalls___visit_all[] = "parser_prod::AExternCalls::(parser_prod::ANode::visit_all)";
43910 void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
43911 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43912 val_t REGB0;
43913 val_t tmp;
43914 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43915 fra.me.file = LOCATE_parser___parser_prod;
43916 fra.me.line = 8031;
43917 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
43918 fra.me.has_broke = 0;
43919 fra.me.REG_size = 3;
43920 fra.me.nitni_local_ref_head = NULL;
43921 fra.me.REG[0] = NIT_NULL;
43922 fra.me.REG[1] = NIT_NULL;
43923 fra.me.REG[2] = NIT_NULL;
43924 fra.me.REG[0] = p0;
43925 fra.me.REG[1] = p1;
43926 /* parser/parser_prod.nit:8033 */
43927 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
43928 if (UNTAG_Bool(REGB0)) {
43929 } else {
43930 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 8033);
43931 }
43932 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
43933 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43934 /* parser/parser_prod.nit:8034 */
43935 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
43936 if (UNTAG_Bool(REGB0)) {
43937 } else {
43938 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8034);
43939 }
43940 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
43941 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___visit_all_1));
43942 stack_frame_head = fra.me.prev;
43943 return;
43944 }
43945 void OC_parser___parser_prod___AExternCalls___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
43946 struct {struct stack_frame_t me;} fra;
43947 fun_t CREG[1];
43948 val_t tmp;
43949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43950 fra.me.file = LOCATE_parser___parser_prod;
43951 fra.me.line = 0;
43952 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
43953 fra.me.has_broke = 0;
43954 fra.me.REG_size = 1;
43955 fra.me.nitni_local_ref_head = NULL;
43956 fra.me.REG[0] = NIT_NULL;
43957 fra.me.closure_ctx = closctx_param;
43958 fra.me.closure_funs = CREG;
43959 fra.me.REG[0] = p0;
43960 CREG[0] = clos_fun0;
43961 /* parser/parser_prod.nit:8035 */
43962 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43963 stack_frame_head = fra.me.prev;
43964 return;
43965 }
43966 static const char LOCATE_parser___parser_prod___AExternCall___empty_init[] = "parser_prod::AExternCall::empty_init";
43967 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
43968 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
43969 struct {struct stack_frame_t me;} fra;
43970 val_t tmp;
43971 if (init_table[itpos277]) return;
43972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43973 fra.me.file = LOCATE_parser___parser_prod;
43974 fra.me.line = 8040;
43975 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___empty_init;
43976 fra.me.has_broke = 0;
43977 fra.me.REG_size = 1;
43978 fra.me.nitni_local_ref_head = NULL;
43979 fra.me.REG[0] = NIT_NULL;
43980 fra.me.REG[0] = p0;
43981 stack_frame_head = fra.me.prev;
43982 init_table[itpos277] = 1;
43983 return;
43984 }
43985 static const char LOCATE_parser___parser_prod___AExternCall___init_aexterncall[] = "parser_prod::AExternCall::init_aexterncall";
43986 void parser___parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
43987 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
43988 struct {struct stack_frame_t me;} fra;
43989 val_t tmp;
43990 if (init_table[itpos278]) return;
43991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43992 fra.me.file = LOCATE_parser___parser_prod;
43993 fra.me.line = 8042;
43994 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___init_aexterncall;
43995 fra.me.has_broke = 0;
43996 fra.me.REG_size = 1;
43997 fra.me.nitni_local_ref_head = NULL;
43998 fra.me.REG[0] = NIT_NULL;
43999 fra.me.REG[0] = p0;
44000 /* parser/parser_prod.nit:8044 */
44001 CALL_parser___parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
44002 stack_frame_head = fra.me.prev;
44003 init_table[itpos278] = 1;
44004 return;
44005 }
44006 static const char LOCATE_parser___parser_prod___AExternCall___replace_child[] = "parser_prod::AExternCall::(parser_prod::ANode::replace_child)";
44007 void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44008 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44009 val_t tmp;
44010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44011 fra.me.file = LOCATE_parser___parser_prod;
44012 fra.me.line = 8047;
44013 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___replace_child;
44014 fra.me.has_broke = 0;
44015 fra.me.REG_size = 3;
44016 fra.me.nitni_local_ref_head = NULL;
44017 fra.me.REG[0] = NIT_NULL;
44018 fra.me.REG[1] = NIT_NULL;
44019 fra.me.REG[2] = NIT_NULL;
44020 fra.me.REG[0] = p0;
44021 fra.me.REG[1] = p1;
44022 fra.me.REG[2] = p2;
44023 stack_frame_head = fra.me.prev;
44024 return;
44025 }
44026 static const char LOCATE_parser___parser_prod___AExternCall___visit_all[] = "parser_prod::AExternCall::(parser_prod::ANode::visit_all)";
44027 void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
44028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44029 val_t tmp;
44030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44031 fra.me.file = LOCATE_parser___parser_prod;
44032 fra.me.line = 8051;
44033 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___visit_all;
44034 fra.me.has_broke = 0;
44035 fra.me.REG_size = 2;
44036 fra.me.nitni_local_ref_head = NULL;
44037 fra.me.REG[0] = NIT_NULL;
44038 fra.me.REG[1] = NIT_NULL;
44039 fra.me.REG[0] = p0;
44040 fra.me.REG[1] = p1;
44041 stack_frame_head = fra.me.prev;
44042 return;
44043 }
44044 static const char LOCATE_parser___parser_prod___ASuperExternCall___empty_init[] = "parser_prod::ASuperExternCall::empty_init";
44045 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
44046 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
44047 struct {struct stack_frame_t me;} fra;
44048 val_t tmp;
44049 if (init_table[itpos279]) return;
44050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44051 fra.me.file = LOCATE_parser___parser_prod;
44052 fra.me.line = 8056;
44053 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___empty_init;
44054 fra.me.has_broke = 0;
44055 fra.me.REG_size = 1;
44056 fra.me.nitni_local_ref_head = NULL;
44057 fra.me.REG[0] = NIT_NULL;
44058 fra.me.REG[0] = p0;
44059 stack_frame_head = fra.me.prev;
44060 init_table[itpos279] = 1;
44061 return;
44062 }
44063 static const char LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall[] = "parser_prod::ASuperExternCall::init_asuperexterncall";
44064 void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
44065 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
44066 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44067 val_t REGB0;
44068 val_t tmp;
44069 if (init_table[itpos280]) return;
44070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44071 fra.me.file = LOCATE_parser___parser_prod;
44072 fra.me.line = 8058;
44073 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
44074 fra.me.has_broke = 0;
44075 fra.me.REG_size = 3;
44076 fra.me.nitni_local_ref_head = NULL;
44077 fra.me.REG[0] = NIT_NULL;
44078 fra.me.REG[1] = NIT_NULL;
44079 fra.me.REG[2] = NIT_NULL;
44080 fra.me.REG[0] = p0;
44081 fra.me.REG[1] = p1;
44082 /* parser/parser_prod.nit:8058 */
44083 fra.me.REG[2] = fra.me.REG[0];
44084 /* parser/parser_prod.nit:8062 */
44085 CALL_parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
44086 /* parser/parser_prod.nit:8063 */
44087 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44088 if (UNTAG_Bool(REGB0)) {
44089 } else {
44090 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8063);
44091 }
44092 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[2]) = fra.me.REG[1];
44093 /* parser/parser_prod.nit:8064 */
44094 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44095 if (UNTAG_Bool(REGB0)) {
44096 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8064);
44097 }
44098 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44099 stack_frame_head = fra.me.prev;
44100 init_table[itpos280] = 1;
44101 return;
44102 }
44103 static const char LOCATE_parser___parser_prod___ASuperExternCall___replace_child[] = "parser_prod::ASuperExternCall::(parser_prod::ANode::replace_child)";
44104 void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44105 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44106 val_t REGB0;
44107 val_t REGB1;
44108 val_t tmp;
44109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44110 fra.me.file = LOCATE_parser___parser_prod;
44111 fra.me.line = 8067;
44112 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___replace_child;
44113 fra.me.has_broke = 0;
44114 fra.me.REG_size = 4;
44115 fra.me.nitni_local_ref_head = NULL;
44116 fra.me.REG[0] = NIT_NULL;
44117 fra.me.REG[1] = NIT_NULL;
44118 fra.me.REG[2] = NIT_NULL;
44119 fra.me.REG[3] = NIT_NULL;
44120 fra.me.REG[0] = p0;
44121 fra.me.REG[1] = p1;
44122 fra.me.REG[2] = p2;
44123 /* parser/parser_prod.nit:8069 */
44124 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
44125 if (UNTAG_Bool(REGB0)) {
44126 } else {
44127 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 8069);
44128 }
44129 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
44130 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44131 if (UNTAG_Bool(REGB0)) {
44132 } else {
44133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44134 REGB0 = REGB1;
44135 }
44136 if (UNTAG_Bool(REGB0)) {
44137 /* parser/parser_prod.nit:8070 */
44138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44139 if (UNTAG_Bool(REGB0)) {
44140 } else {
44141 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44142 if (UNTAG_Bool(REGB1)) {
44143 REGB1 = TAG_Bool(0);
44144 REGB0 = REGB1;
44145 } else {
44146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44147 REGB0 = REGB1;
44148 }
44149 }
44150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44151 if (UNTAG_Bool(REGB0)) {
44152 /* parser/parser_prod.nit:8071 */
44153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44154 if (UNTAG_Bool(REGB0)) {
44155 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8071);
44156 }
44157 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44158 /* parser/parser_prod.nit:8072 */
44159 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*/;
44160 if (UNTAG_Bool(REGB0)) {
44161 } else {
44162 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8072);
44163 }
44164 /* parser/parser_prod.nit:8073 */
44165 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
44166 } else {
44167 /* parser/parser_prod.nit:8075 */
44168 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8075);
44169 }
44170 /* parser/parser_prod.nit:8077 */
44171 goto label1;
44172 }
44173 label1: while(0);
44174 stack_frame_head = fra.me.prev;
44175 return;
44176 }
44177 static const char LOCATE_parser___parser_prod___ASuperExternCall___visit_all[] = "parser_prod::ASuperExternCall::(parser_prod::ANode::visit_all)";
44178 void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
44179 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44180 val_t REGB0;
44181 val_t tmp;
44182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44183 fra.me.file = LOCATE_parser___parser_prod;
44184 fra.me.line = 8081;
44185 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___visit_all;
44186 fra.me.has_broke = 0;
44187 fra.me.REG_size = 2;
44188 fra.me.nitni_local_ref_head = NULL;
44189 fra.me.REG[0] = NIT_NULL;
44190 fra.me.REG[1] = NIT_NULL;
44191 fra.me.REG[0] = p0;
44192 fra.me.REG[1] = p1;
44193 /* parser/parser_prod.nit:8083 */
44194 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
44195 if (UNTAG_Bool(REGB0)) {
44196 } else {
44197 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 8083);
44198 }
44199 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
44200 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44201 stack_frame_head = fra.me.prev;
44202 return;
44203 }
44204 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init[] = "parser_prod::ALocalPropExternCall::empty_init";
44205 void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
44206 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
44207 struct {struct stack_frame_t me;} fra;
44208 val_t tmp;
44209 if (init_table[itpos281]) return;
44210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44211 fra.me.file = LOCATE_parser___parser_prod;
44212 fra.me.line = 8087;
44213 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init;
44214 fra.me.has_broke = 0;
44215 fra.me.REG_size = 1;
44216 fra.me.nitni_local_ref_head = NULL;
44217 fra.me.REG[0] = NIT_NULL;
44218 fra.me.REG[0] = p0;
44219 stack_frame_head = fra.me.prev;
44220 init_table[itpos281] = 1;
44221 return;
44222 }
44223 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall[] = "parser_prod::ALocalPropExternCall::init_alocalpropexterncall";
44224 void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
44225 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
44226 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44227 val_t REGB0;
44228 val_t tmp;
44229 if (init_table[itpos282]) return;
44230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44231 fra.me.file = LOCATE_parser___parser_prod;
44232 fra.me.line = 8089;
44233 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
44234 fra.me.has_broke = 0;
44235 fra.me.REG_size = 3;
44236 fra.me.nitni_local_ref_head = NULL;
44237 fra.me.REG[0] = NIT_NULL;
44238 fra.me.REG[1] = NIT_NULL;
44239 fra.me.REG[2] = NIT_NULL;
44240 fra.me.REG[0] = p0;
44241 fra.me.REG[1] = p1;
44242 /* parser/parser_prod.nit:8089 */
44243 fra.me.REG[2] = fra.me.REG[0];
44244 /* parser/parser_prod.nit:8093 */
44245 CALL_parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
44246 /* parser/parser_prod.nit:8094 */
44247 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44248 if (UNTAG_Bool(REGB0)) {
44249 } else {
44250 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8094);
44251 }
44252 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[2]) = fra.me.REG[1];
44253 /* parser/parser_prod.nit:8095 */
44254 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44255 if (UNTAG_Bool(REGB0)) {
44256 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8095);
44257 }
44258 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44259 stack_frame_head = fra.me.prev;
44260 init_table[itpos282] = 1;
44261 return;
44262 }
44263 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child[] = "parser_prod::ALocalPropExternCall::(parser_prod::ANode::replace_child)";
44264 void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44265 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44266 val_t REGB0;
44267 val_t REGB1;
44268 val_t tmp;
44269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44270 fra.me.file = LOCATE_parser___parser_prod;
44271 fra.me.line = 8098;
44272 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child;
44273 fra.me.has_broke = 0;
44274 fra.me.REG_size = 4;
44275 fra.me.nitni_local_ref_head = NULL;
44276 fra.me.REG[0] = NIT_NULL;
44277 fra.me.REG[1] = NIT_NULL;
44278 fra.me.REG[2] = NIT_NULL;
44279 fra.me.REG[3] = NIT_NULL;
44280 fra.me.REG[0] = p0;
44281 fra.me.REG[1] = p1;
44282 fra.me.REG[2] = p2;
44283 /* parser/parser_prod.nit:8100 */
44284 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
44285 if (UNTAG_Bool(REGB0)) {
44286 } else {
44287 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8100);
44288 }
44289 fra.me.REG[3] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
44290 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44291 if (UNTAG_Bool(REGB0)) {
44292 } else {
44293 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44294 REGB0 = REGB1;
44295 }
44296 if (UNTAG_Bool(REGB0)) {
44297 /* parser/parser_prod.nit:8101 */
44298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44299 if (UNTAG_Bool(REGB0)) {
44300 } else {
44301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44302 if (UNTAG_Bool(REGB1)) {
44303 REGB1 = TAG_Bool(0);
44304 REGB0 = REGB1;
44305 } else {
44306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44307 REGB0 = REGB1;
44308 }
44309 }
44310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44311 if (UNTAG_Bool(REGB0)) {
44312 /* parser/parser_prod.nit:8102 */
44313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44314 if (UNTAG_Bool(REGB0)) {
44315 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8102);
44316 }
44317 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44318 /* parser/parser_prod.nit:8103 */
44319 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*/;
44320 if (UNTAG_Bool(REGB0)) {
44321 } else {
44322 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8103);
44323 }
44324 /* parser/parser_prod.nit:8104 */
44325 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
44326 } else {
44327 /* parser/parser_prod.nit:8106 */
44328 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8106);
44329 }
44330 /* parser/parser_prod.nit:8108 */
44331 goto label1;
44332 }
44333 label1: while(0);
44334 stack_frame_head = fra.me.prev;
44335 return;
44336 }
44337 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all[] = "parser_prod::ALocalPropExternCall::(parser_prod::ANode::visit_all)";
44338 void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1){
44339 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44340 val_t REGB0;
44341 val_t tmp;
44342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44343 fra.me.file = LOCATE_parser___parser_prod;
44344 fra.me.line = 8112;
44345 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all;
44346 fra.me.has_broke = 0;
44347 fra.me.REG_size = 2;
44348 fra.me.nitni_local_ref_head = NULL;
44349 fra.me.REG[0] = NIT_NULL;
44350 fra.me.REG[1] = NIT_NULL;
44351 fra.me.REG[0] = p0;
44352 fra.me.REG[1] = p1;
44353 /* parser/parser_prod.nit:8114 */
44354 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
44355 if (UNTAG_Bool(REGB0)) {
44356 } else {
44357 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8114);
44358 }
44359 fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
44360 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44361 stack_frame_head = fra.me.prev;
44362 return;
44363 }
44364 static const char LOCATE_parser___parser_prod___AFullPropExternCall___empty_init[] = "parser_prod::AFullPropExternCall::empty_init";
44365 void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
44366 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
44367 struct {struct stack_frame_t me;} fra;
44368 val_t tmp;
44369 if (init_table[itpos283]) return;
44370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44371 fra.me.file = LOCATE_parser___parser_prod;
44372 fra.me.line = 8118;
44373 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___empty_init;
44374 fra.me.has_broke = 0;
44375 fra.me.REG_size = 1;
44376 fra.me.nitni_local_ref_head = NULL;
44377 fra.me.REG[0] = NIT_NULL;
44378 fra.me.REG[0] = p0;
44379 stack_frame_head = fra.me.prev;
44380 init_table[itpos283] = 1;
44381 return;
44382 }
44383 static const char LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall[] = "parser_prod::AFullPropExternCall::init_afullpropexterncall";
44384 void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
44385 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
44386 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
44387 val_t REGB0;
44388 val_t REGB1;
44389 val_t tmp;
44390 if (init_table[itpos284]) return;
44391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44392 fra.me.file = LOCATE_parser___parser_prod;
44393 fra.me.line = 8120;
44394 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
44395 fra.me.has_broke = 0;
44396 fra.me.REG_size = 5;
44397 fra.me.nitni_local_ref_head = NULL;
44398 fra.me.REG[0] = NIT_NULL;
44399 fra.me.REG[1] = NIT_NULL;
44400 fra.me.REG[2] = NIT_NULL;
44401 fra.me.REG[3] = NIT_NULL;
44402 fra.me.REG[4] = NIT_NULL;
44403 fra.me.REG[0] = p0;
44404 fra.me.REG[1] = p1;
44405 fra.me.REG[2] = p2;
44406 fra.me.REG[3] = p3;
44407 /* parser/parser_prod.nit:8120 */
44408 fra.me.REG[4] = fra.me.REG[0];
44409 /* parser/parser_prod.nit:8126 */
44410 CALL_parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
44411 /* parser/parser_prod.nit:8127 */
44412 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44413 if (UNTAG_Bool(REGB0)) {
44414 } else {
44415 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8127);
44416 }
44417 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[4]) = fra.me.REG[1];
44418 /* parser/parser_prod.nit:8128 */
44419 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44420 if (UNTAG_Bool(REGB0)) {
44421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8128);
44422 }
44423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
44424 /* parser/parser_prod.nit:8129 */
44425 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[4]) = fra.me.REG[2];
44426 /* parser/parser_prod.nit:8130 */
44427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44428 if (UNTAG_Bool(REGB0)) {
44429 } else {
44430 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44431 if (UNTAG_Bool(REGB1)) {
44432 REGB1 = TAG_Bool(0);
44433 REGB0 = REGB1;
44434 } else {
44435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44436 REGB0 = REGB1;
44437 }
44438 }
44439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44440 if (UNTAG_Bool(REGB0)) {
44441 /* parser/parser_prod.nit:8131 */
44442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44443 if (UNTAG_Bool(REGB0)) {
44444 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8131);
44445 }
44446 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
44447 }
44448 /* parser/parser_prod.nit:8133 */
44449 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
44450 if (UNTAG_Bool(REGB0)) {
44451 } else {
44452 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8133);
44453 }
44454 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[4]) = fra.me.REG[3];
44455 /* parser/parser_prod.nit:8134 */
44456 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44457 if (UNTAG_Bool(REGB0)) {
44458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8134);
44459 }
44460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
44461 stack_frame_head = fra.me.prev;
44462 init_table[itpos284] = 1;
44463 return;
44464 }
44465 static const char LOCATE_parser___parser_prod___AFullPropExternCall___replace_child[] = "parser_prod::AFullPropExternCall::(parser_prod::ANode::replace_child)";
44466 void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44467 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44468 val_t REGB0;
44469 val_t REGB1;
44470 val_t tmp;
44471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44472 fra.me.file = LOCATE_parser___parser_prod;
44473 fra.me.line = 8137;
44474 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___replace_child;
44475 fra.me.has_broke = 0;
44476 fra.me.REG_size = 4;
44477 fra.me.nitni_local_ref_head = NULL;
44478 fra.me.REG[0] = NIT_NULL;
44479 fra.me.REG[1] = NIT_NULL;
44480 fra.me.REG[2] = NIT_NULL;
44481 fra.me.REG[3] = NIT_NULL;
44482 fra.me.REG[0] = p0;
44483 fra.me.REG[1] = p1;
44484 fra.me.REG[2] = p2;
44485 /* parser/parser_prod.nit:8139 */
44486 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
44487 if (UNTAG_Bool(REGB0)) {
44488 } else {
44489 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8139);
44490 }
44491 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
44492 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44493 if (UNTAG_Bool(REGB0)) {
44494 } else {
44495 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44496 REGB0 = REGB1;
44497 }
44498 if (UNTAG_Bool(REGB0)) {
44499 /* parser/parser_prod.nit:8140 */
44500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44501 if (UNTAG_Bool(REGB0)) {
44502 } else {
44503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44504 if (UNTAG_Bool(REGB1)) {
44505 REGB1 = TAG_Bool(0);
44506 REGB0 = REGB1;
44507 } else {
44508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44509 REGB0 = REGB1;
44510 }
44511 }
44512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44513 if (UNTAG_Bool(REGB0)) {
44514 /* parser/parser_prod.nit:8141 */
44515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44516 if (UNTAG_Bool(REGB0)) {
44517 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8141);
44518 }
44519 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44520 /* parser/parser_prod.nit:8142 */
44521 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*/;
44522 if (UNTAG_Bool(REGB0)) {
44523 } else {
44524 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8142);
44525 }
44526 /* parser/parser_prod.nit:8143 */
44527 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
44528 } else {
44529 /* parser/parser_prod.nit:8145 */
44530 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8145);
44531 }
44532 /* parser/parser_prod.nit:8147 */
44533 goto label1;
44534 }
44535 /* parser/parser_prod.nit:8149 */
44536 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
44537 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
44538 if (UNTAG_Bool(REGB0)) {
44539 } else {
44540 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44541 if (UNTAG_Bool(REGB1)) {
44542 REGB1 = TAG_Bool(0);
44543 REGB0 = REGB1;
44544 } else {
44545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44546 REGB0 = REGB1;
44547 }
44548 }
44549 if (UNTAG_Bool(REGB0)) {
44550 /* parser/parser_prod.nit:8150 */
44551 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44552 if (UNTAG_Bool(REGB0)) {
44553 } else {
44554 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44555 if (UNTAG_Bool(REGB1)) {
44556 REGB1 = TAG_Bool(0);
44557 REGB0 = REGB1;
44558 } else {
44559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44560 REGB0 = REGB1;
44561 }
44562 }
44563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44564 if (UNTAG_Bool(REGB0)) {
44565 /* parser/parser_prod.nit:8151 */
44566 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44567 if (UNTAG_Bool(REGB0)) {
44568 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8151);
44569 }
44570 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44571 /* parser/parser_prod.nit:8152 */
44572 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*/;
44573 if (UNTAG_Bool(REGB0)) {
44574 } else {
44575 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8152);
44576 }
44577 /* parser/parser_prod.nit:8153 */
44578 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
44579 } else {
44580 /* parser/parser_prod.nit:8155 */
44581 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
44582 }
44583 /* parser/parser_prod.nit:8157 */
44584 goto label1;
44585 }
44586 /* parser/parser_prod.nit:8159 */
44587 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
44588 if (UNTAG_Bool(REGB0)) {
44589 } else {
44590 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8159);
44591 }
44592 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
44593 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44594 if (UNTAG_Bool(REGB0)) {
44595 } else {
44596 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44597 REGB0 = REGB1;
44598 }
44599 if (UNTAG_Bool(REGB0)) {
44600 /* parser/parser_prod.nit:8160 */
44601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44602 if (UNTAG_Bool(REGB0)) {
44603 } else {
44604 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44605 if (UNTAG_Bool(REGB1)) {
44606 REGB1 = TAG_Bool(0);
44607 REGB0 = REGB1;
44608 } else {
44609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44610 REGB0 = REGB1;
44611 }
44612 }
44613 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44614 if (UNTAG_Bool(REGB0)) {
44615 /* parser/parser_prod.nit:8161 */
44616 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44617 if (UNTAG_Bool(REGB0)) {
44618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8161);
44619 }
44620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44621 /* parser/parser_prod.nit:8162 */
44622 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*/;
44623 if (UNTAG_Bool(REGB0)) {
44624 } else {
44625 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8162);
44626 }
44627 /* parser/parser_prod.nit:8163 */
44628 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
44629 } else {
44630 /* parser/parser_prod.nit:8165 */
44631 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8165);
44632 }
44633 /* parser/parser_prod.nit:8167 */
44634 goto label1;
44635 }
44636 label1: while(0);
44637 stack_frame_head = fra.me.prev;
44638 return;
44639 }
44640 static const char LOCATE_parser___parser_prod___AFullPropExternCall___visit_all[] = "parser_prod::AFullPropExternCall::(parser_prod::ANode::visit_all)";
44641 void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
44642 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44643 val_t REGB0;
44644 val_t REGB1;
44645 val_t tmp;
44646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44647 fra.me.file = LOCATE_parser___parser_prod;
44648 fra.me.line = 8171;
44649 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___visit_all;
44650 fra.me.has_broke = 0;
44651 fra.me.REG_size = 4;
44652 fra.me.nitni_local_ref_head = NULL;
44653 fra.me.REG[0] = NIT_NULL;
44654 fra.me.REG[1] = NIT_NULL;
44655 fra.me.REG[2] = NIT_NULL;
44656 fra.me.REG[3] = NIT_NULL;
44657 fra.me.REG[0] = p0;
44658 fra.me.REG[1] = p1;
44659 /* parser/parser_prod.nit:8171 */
44660 fra.me.REG[2] = fra.me.REG[0];
44661 /* parser/parser_prod.nit:8173 */
44662 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2])!=NIT_NULL);
44663 if (UNTAG_Bool(REGB0)) {
44664 } else {
44665 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8173);
44666 }
44667 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2]);
44668 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
44669 /* parser/parser_prod.nit:8174 */
44670 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
44671 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44672 if (UNTAG_Bool(REGB0)) {
44673 } else {
44674 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44675 if (UNTAG_Bool(REGB1)) {
44676 REGB1 = TAG_Bool(0);
44677 REGB0 = REGB1;
44678 } else {
44679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
44680 REGB0 = REGB1;
44681 }
44682 }
44683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44684 if (UNTAG_Bool(REGB0)) {
44685 /* parser/parser_prod.nit:8175 */
44686 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
44687 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*/;
44688 if (UNTAG_Bool(REGB0)) {
44689 } else {
44690 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8175);
44691 }
44692 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
44693 }
44694 /* parser/parser_prod.nit:8177 */
44695 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2])!=NIT_NULL);
44696 if (UNTAG_Bool(REGB0)) {
44697 } else {
44698 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8177);
44699 }
44700 fra.me.REG[2] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2]);
44701 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44702 stack_frame_head = fra.me.prev;
44703 return;
44704 }
44705 static const char LOCATE_parser___parser_prod___AInitPropExternCall___empty_init[] = "parser_prod::AInitPropExternCall::empty_init";
44706 void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
44707 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
44708 struct {struct stack_frame_t me;} fra;
44709 val_t tmp;
44710 if (init_table[itpos285]) return;
44711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44712 fra.me.file = LOCATE_parser___parser_prod;
44713 fra.me.line = 8181;
44714 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___empty_init;
44715 fra.me.has_broke = 0;
44716 fra.me.REG_size = 1;
44717 fra.me.nitni_local_ref_head = NULL;
44718 fra.me.REG[0] = NIT_NULL;
44719 fra.me.REG[0] = p0;
44720 stack_frame_head = fra.me.prev;
44721 init_table[itpos285] = 1;
44722 return;
44723 }
44724 static const char LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall[] = "parser_prod::AInitPropExternCall::init_ainitpropexterncall";
44725 void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
44726 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
44727 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44728 val_t REGB0;
44729 val_t tmp;
44730 if (init_table[itpos286]) return;
44731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44732 fra.me.file = LOCATE_parser___parser_prod;
44733 fra.me.line = 8183;
44734 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
44735 fra.me.has_broke = 0;
44736 fra.me.REG_size = 3;
44737 fra.me.nitni_local_ref_head = NULL;
44738 fra.me.REG[0] = NIT_NULL;
44739 fra.me.REG[1] = NIT_NULL;
44740 fra.me.REG[2] = NIT_NULL;
44741 fra.me.REG[0] = p0;
44742 fra.me.REG[1] = p1;
44743 /* parser/parser_prod.nit:8183 */
44744 fra.me.REG[2] = fra.me.REG[0];
44745 /* parser/parser_prod.nit:8187 */
44746 CALL_parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
44747 /* parser/parser_prod.nit:8188 */
44748 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44749 if (UNTAG_Bool(REGB0)) {
44750 } else {
44751 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8188);
44752 }
44753 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[2]) = fra.me.REG[1];
44754 /* parser/parser_prod.nit:8189 */
44755 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44756 if (UNTAG_Bool(REGB0)) {
44757 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8189);
44758 }
44759 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44760 stack_frame_head = fra.me.prev;
44761 init_table[itpos286] = 1;
44762 return;
44763 }
44764 static const char LOCATE_parser___parser_prod___AInitPropExternCall___replace_child[] = "parser_prod::AInitPropExternCall::(parser_prod::ANode::replace_child)";
44765 void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44766 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44767 val_t REGB0;
44768 val_t REGB1;
44769 val_t tmp;
44770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44771 fra.me.file = LOCATE_parser___parser_prod;
44772 fra.me.line = 8192;
44773 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___replace_child;
44774 fra.me.has_broke = 0;
44775 fra.me.REG_size = 4;
44776 fra.me.nitni_local_ref_head = NULL;
44777 fra.me.REG[0] = NIT_NULL;
44778 fra.me.REG[1] = NIT_NULL;
44779 fra.me.REG[2] = NIT_NULL;
44780 fra.me.REG[3] = NIT_NULL;
44781 fra.me.REG[0] = p0;
44782 fra.me.REG[1] = p1;
44783 fra.me.REG[2] = p2;
44784 /* parser/parser_prod.nit:8194 */
44785 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
44786 if (UNTAG_Bool(REGB0)) {
44787 } else {
44788 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8194);
44789 }
44790 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
44791 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44792 if (UNTAG_Bool(REGB0)) {
44793 } else {
44794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44795 REGB0 = REGB1;
44796 }
44797 if (UNTAG_Bool(REGB0)) {
44798 /* parser/parser_prod.nit:8195 */
44799 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44800 if (UNTAG_Bool(REGB0)) {
44801 } else {
44802 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44803 if (UNTAG_Bool(REGB1)) {
44804 REGB1 = TAG_Bool(0);
44805 REGB0 = REGB1;
44806 } else {
44807 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44808 REGB0 = REGB1;
44809 }
44810 }
44811 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44812 if (UNTAG_Bool(REGB0)) {
44813 /* parser/parser_prod.nit:8196 */
44814 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44815 if (UNTAG_Bool(REGB0)) {
44816 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8196);
44817 }
44818 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44819 /* parser/parser_prod.nit:8197 */
44820 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*/;
44821 if (UNTAG_Bool(REGB0)) {
44822 } else {
44823 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8197);
44824 }
44825 /* parser/parser_prod.nit:8198 */
44826 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
44827 } else {
44828 /* parser/parser_prod.nit:8200 */
44829 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8200);
44830 }
44831 /* parser/parser_prod.nit:8202 */
44832 goto label1;
44833 }
44834 label1: while(0);
44835 stack_frame_head = fra.me.prev;
44836 return;
44837 }
44838 static const char LOCATE_parser___parser_prod___AInitPropExternCall___visit_all[] = "parser_prod::AInitPropExternCall::(parser_prod::ANode::visit_all)";
44839 void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
44840 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44841 val_t REGB0;
44842 val_t tmp;
44843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44844 fra.me.file = LOCATE_parser___parser_prod;
44845 fra.me.line = 8206;
44846 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___visit_all;
44847 fra.me.has_broke = 0;
44848 fra.me.REG_size = 2;
44849 fra.me.nitni_local_ref_head = NULL;
44850 fra.me.REG[0] = NIT_NULL;
44851 fra.me.REG[1] = NIT_NULL;
44852 fra.me.REG[0] = p0;
44853 fra.me.REG[1] = p1;
44854 /* parser/parser_prod.nit:8208 */
44855 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
44856 if (UNTAG_Bool(REGB0)) {
44857 } else {
44858 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8208);
44859 }
44860 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
44861 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44862 stack_frame_head = fra.me.prev;
44863 return;
44864 }
44865 static const char LOCATE_parser___parser_prod___ACastAsExternCall___empty_init[] = "parser_prod::ACastAsExternCall::empty_init";
44866 void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
44867 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
44868 struct {struct stack_frame_t me;} fra;
44869 val_t tmp;
44870 if (init_table[itpos287]) return;
44871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44872 fra.me.file = LOCATE_parser___parser_prod;
44873 fra.me.line = 8212;
44874 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___empty_init;
44875 fra.me.has_broke = 0;
44876 fra.me.REG_size = 1;
44877 fra.me.nitni_local_ref_head = NULL;
44878 fra.me.REG[0] = NIT_NULL;
44879 fra.me.REG[0] = p0;
44880 stack_frame_head = fra.me.prev;
44881 init_table[itpos287] = 1;
44882 return;
44883 }
44884 static const char LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall[] = "parser_prod::ACastAsExternCall::init_acastasexterncall";
44885 void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
44886 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
44887 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
44888 val_t REGB0;
44889 val_t tmp;
44890 if (init_table[itpos288]) return;
44891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44892 fra.me.file = LOCATE_parser___parser_prod;
44893 fra.me.line = 8214;
44894 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
44895 fra.me.has_broke = 0;
44896 fra.me.REG_size = 5;
44897 fra.me.nitni_local_ref_head = NULL;
44898 fra.me.REG[0] = NIT_NULL;
44899 fra.me.REG[1] = NIT_NULL;
44900 fra.me.REG[2] = NIT_NULL;
44901 fra.me.REG[3] = NIT_NULL;
44902 fra.me.REG[4] = NIT_NULL;
44903 fra.me.REG[0] = p0;
44904 fra.me.REG[1] = p1;
44905 fra.me.REG[2] = p2;
44906 fra.me.REG[3] = p3;
44907 /* parser/parser_prod.nit:8214 */
44908 fra.me.REG[4] = fra.me.REG[0];
44909 /* parser/parser_prod.nit:8220 */
44910 CALL_parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
44911 /* parser/parser_prod.nit:8221 */
44912 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44913 if (UNTAG_Bool(REGB0)) {
44914 } else {
44915 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8221);
44916 }
44917 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[4]) = fra.me.REG[1];
44918 /* parser/parser_prod.nit:8222 */
44919 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44920 if (UNTAG_Bool(REGB0)) {
44921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8222);
44922 }
44923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
44924 /* parser/parser_prod.nit:8223 */
44925 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
44926 if (UNTAG_Bool(REGB0)) {
44927 } else {
44928 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8223);
44929 }
44930 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
44931 /* parser/parser_prod.nit:8224 */
44932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44933 if (UNTAG_Bool(REGB0)) {
44934 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8224);
44935 }
44936 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
44937 /* parser/parser_prod.nit:8225 */
44938 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
44939 if (UNTAG_Bool(REGB0)) {
44940 } else {
44941 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8225);
44942 }
44943 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[4]) = fra.me.REG[3];
44944 /* parser/parser_prod.nit:8226 */
44945 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44946 if (UNTAG_Bool(REGB0)) {
44947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8226);
44948 }
44949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
44950 stack_frame_head = fra.me.prev;
44951 init_table[itpos288] = 1;
44952 return;
44953 }
44954 static const char LOCATE_parser___parser_prod___ACastAsExternCall___replace_child[] = "parser_prod::ACastAsExternCall::(parser_prod::ANode::replace_child)";
44955 void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44957 val_t REGB0;
44958 val_t REGB1;
44959 val_t tmp;
44960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44961 fra.me.file = LOCATE_parser___parser_prod;
44962 fra.me.line = 8229;
44963 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___replace_child;
44964 fra.me.has_broke = 0;
44965 fra.me.REG_size = 4;
44966 fra.me.nitni_local_ref_head = NULL;
44967 fra.me.REG[0] = NIT_NULL;
44968 fra.me.REG[1] = NIT_NULL;
44969 fra.me.REG[2] = NIT_NULL;
44970 fra.me.REG[3] = NIT_NULL;
44971 fra.me.REG[0] = p0;
44972 fra.me.REG[1] = p1;
44973 fra.me.REG[2] = p2;
44974 /* parser/parser_prod.nit:8231 */
44975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
44976 if (UNTAG_Bool(REGB0)) {
44977 } else {
44978 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8231);
44979 }
44980 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
44981 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44982 if (UNTAG_Bool(REGB0)) {
44983 } else {
44984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44985 REGB0 = REGB1;
44986 }
44987 if (UNTAG_Bool(REGB0)) {
44988 /* parser/parser_prod.nit:8232 */
44989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44990 if (UNTAG_Bool(REGB0)) {
44991 } else {
44992 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44993 if (UNTAG_Bool(REGB1)) {
44994 REGB1 = TAG_Bool(0);
44995 REGB0 = REGB1;
44996 } else {
44997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44998 REGB0 = REGB1;
44999 }
45000 }
45001 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45002 if (UNTAG_Bool(REGB0)) {
45003 /* parser/parser_prod.nit:8233 */
45004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45005 if (UNTAG_Bool(REGB0)) {
45006 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8233);
45007 }
45008 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45009 /* parser/parser_prod.nit:8234 */
45010 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*/;
45011 if (UNTAG_Bool(REGB0)) {
45012 } else {
45013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8234);
45014 }
45015 /* parser/parser_prod.nit:8235 */
45016 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
45017 } else {
45018 /* parser/parser_prod.nit:8237 */
45019 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8237);
45020 }
45021 /* parser/parser_prod.nit:8239 */
45022 goto label1;
45023 }
45024 /* parser/parser_prod.nit:8241 */
45025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
45026 if (UNTAG_Bool(REGB0)) {
45027 } else {
45028 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8241);
45029 }
45030 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
45031 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45032 if (UNTAG_Bool(REGB0)) {
45033 } else {
45034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45035 REGB0 = REGB1;
45036 }
45037 if (UNTAG_Bool(REGB0)) {
45038 /* parser/parser_prod.nit:8242 */
45039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45040 if (UNTAG_Bool(REGB0)) {
45041 } else {
45042 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45043 if (UNTAG_Bool(REGB1)) {
45044 REGB1 = TAG_Bool(0);
45045 REGB0 = REGB1;
45046 } else {
45047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45048 REGB0 = REGB1;
45049 }
45050 }
45051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45052 if (UNTAG_Bool(REGB0)) {
45053 /* parser/parser_prod.nit:8243 */
45054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45055 if (UNTAG_Bool(REGB0)) {
45056 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8243);
45057 }
45058 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45059 /* parser/parser_prod.nit:8244 */
45060 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*/;
45061 if (UNTAG_Bool(REGB0)) {
45062 } else {
45063 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8244);
45064 }
45065 /* parser/parser_prod.nit:8245 */
45066 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
45067 } else {
45068 /* parser/parser_prod.nit:8247 */
45069 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8247);
45070 }
45071 /* parser/parser_prod.nit:8249 */
45072 goto label1;
45073 }
45074 /* parser/parser_prod.nit:8251 */
45075 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
45076 if (UNTAG_Bool(REGB0)) {
45077 } else {
45078 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8251);
45079 }
45080 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
45081 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45082 if (UNTAG_Bool(REGB0)) {
45083 } else {
45084 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45085 REGB0 = REGB1;
45086 }
45087 if (UNTAG_Bool(REGB0)) {
45088 /* parser/parser_prod.nit:8252 */
45089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45090 if (UNTAG_Bool(REGB0)) {
45091 } else {
45092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45093 if (UNTAG_Bool(REGB1)) {
45094 REGB1 = TAG_Bool(0);
45095 REGB0 = REGB1;
45096 } else {
45097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45098 REGB0 = REGB1;
45099 }
45100 }
45101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45102 if (UNTAG_Bool(REGB0)) {
45103 /* parser/parser_prod.nit:8253 */
45104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45105 if (UNTAG_Bool(REGB0)) {
45106 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8253);
45107 }
45108 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45109 /* parser/parser_prod.nit:8254 */
45110 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*/;
45111 if (UNTAG_Bool(REGB0)) {
45112 } else {
45113 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8254);
45114 }
45115 /* parser/parser_prod.nit:8255 */
45116 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
45117 } else {
45118 /* parser/parser_prod.nit:8257 */
45119 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8257);
45120 }
45121 /* parser/parser_prod.nit:8259 */
45122 goto label1;
45123 }
45124 label1: while(0);
45125 stack_frame_head = fra.me.prev;
45126 return;
45127 }
45128 static const char LOCATE_parser___parser_prod___ACastAsExternCall___visit_all[] = "parser_prod::ACastAsExternCall::(parser_prod::ANode::visit_all)";
45129 void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
45130 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
45131 val_t REGB0;
45132 val_t tmp;
45133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45134 fra.me.file = LOCATE_parser___parser_prod;
45135 fra.me.line = 8263;
45136 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___visit_all;
45137 fra.me.has_broke = 0;
45138 fra.me.REG_size = 3;
45139 fra.me.nitni_local_ref_head = NULL;
45140 fra.me.REG[0] = NIT_NULL;
45141 fra.me.REG[1] = NIT_NULL;
45142 fra.me.REG[2] = NIT_NULL;
45143 fra.me.REG[0] = p0;
45144 fra.me.REG[1] = p1;
45145 /* parser/parser_prod.nit:8265 */
45146 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
45147 if (UNTAG_Bool(REGB0)) {
45148 } else {
45149 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8265);
45150 }
45151 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
45152 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45153 /* parser/parser_prod.nit:8266 */
45154 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
45155 if (UNTAG_Bool(REGB0)) {
45156 } else {
45157 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8266);
45158 }
45159 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
45160 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45161 /* parser/parser_prod.nit:8267 */
45162 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
45163 if (UNTAG_Bool(REGB0)) {
45164 } else {
45165 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8267);
45166 }
45167 fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
45168 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
45169 stack_frame_head = fra.me.prev;
45170 return;
45171 }
45172 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init[] = "parser_prod::AAsNullableExternCall::empty_init";
45173 void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
45174 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
45175 struct {struct stack_frame_t me;} fra;
45176 val_t tmp;
45177 if (init_table[itpos289]) return;
45178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45179 fra.me.file = LOCATE_parser___parser_prod;
45180 fra.me.line = 8271;
45181 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init;
45182 fra.me.has_broke = 0;
45183 fra.me.REG_size = 1;
45184 fra.me.nitni_local_ref_head = NULL;
45185 fra.me.REG[0] = NIT_NULL;
45186 fra.me.REG[0] = p0;
45187 stack_frame_head = fra.me.prev;
45188 init_table[itpos289] = 1;
45189 return;
45190 }
45191 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall[] = "parser_prod::AAsNullableExternCall::init_aasnullableexterncall";
45192 void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
45193 int itpos290 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
45194 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
45195 val_t REGB0;
45196 val_t tmp;
45197 if (init_table[itpos290]) return;
45198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45199 fra.me.file = LOCATE_parser___parser_prod;
45200 fra.me.line = 8273;
45201 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
45202 fra.me.has_broke = 0;
45203 fra.me.REG_size = 5;
45204 fra.me.nitni_local_ref_head = NULL;
45205 fra.me.REG[0] = NIT_NULL;
45206 fra.me.REG[1] = NIT_NULL;
45207 fra.me.REG[2] = NIT_NULL;
45208 fra.me.REG[3] = NIT_NULL;
45209 fra.me.REG[4] = NIT_NULL;
45210 fra.me.REG[0] = p0;
45211 fra.me.REG[1] = p1;
45212 fra.me.REG[2] = p2;
45213 fra.me.REG[3] = p3;
45214 /* parser/parser_prod.nit:8273 */
45215 fra.me.REG[4] = fra.me.REG[0];
45216 /* parser/parser_prod.nit:8279 */
45217 CALL_parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
45218 /* parser/parser_prod.nit:8280 */
45219 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
45220 if (UNTAG_Bool(REGB0)) {
45221 } else {
45222 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8280);
45223 }
45224 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[4]) = fra.me.REG[1];
45225 /* parser/parser_prod.nit:8281 */
45226 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
45227 if (UNTAG_Bool(REGB0)) {
45228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8281);
45229 }
45230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
45231 /* parser/parser_prod.nit:8282 */
45232 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
45233 if (UNTAG_Bool(REGB0)) {
45234 } else {
45235 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8282);
45236 }
45237 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
45238 /* parser/parser_prod.nit:8283 */
45239 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45240 if (UNTAG_Bool(REGB0)) {
45241 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8283);
45242 }
45243 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
45244 /* parser/parser_prod.nit:8284 */
45245 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
45246 if (UNTAG_Bool(REGB0)) {
45247 } else {
45248 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8284);
45249 }
45250 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[4]) = fra.me.REG[3];
45251 /* parser/parser_prod.nit:8285 */
45252 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45253 if (UNTAG_Bool(REGB0)) {
45254 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8285);
45255 }
45256 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
45257 stack_frame_head = fra.me.prev;
45258 init_table[itpos290] = 1;
45259 return;
45260 }
45261 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child[] = "parser_prod::AAsNullableExternCall::(parser_prod::ANode::replace_child)";
45262 void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
45263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45264 val_t REGB0;
45265 val_t REGB1;
45266 val_t tmp;
45267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45268 fra.me.file = LOCATE_parser___parser_prod;
45269 fra.me.line = 8288;
45270 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child;
45271 fra.me.has_broke = 0;
45272 fra.me.REG_size = 4;
45273 fra.me.nitni_local_ref_head = NULL;
45274 fra.me.REG[0] = NIT_NULL;
45275 fra.me.REG[1] = NIT_NULL;
45276 fra.me.REG[2] = NIT_NULL;
45277 fra.me.REG[3] = NIT_NULL;
45278 fra.me.REG[0] = p0;
45279 fra.me.REG[1] = p1;
45280 fra.me.REG[2] = p2;
45281 /* parser/parser_prod.nit:8290 */
45282 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
45283 if (UNTAG_Bool(REGB0)) {
45284 } else {
45285 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8290);
45286 }
45287 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
45288 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45289 if (UNTAG_Bool(REGB0)) {
45290 } else {
45291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45292 REGB0 = REGB1;
45293 }
45294 if (UNTAG_Bool(REGB0)) {
45295 /* parser/parser_prod.nit:8291 */
45296 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45297 if (UNTAG_Bool(REGB0)) {
45298 } else {
45299 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45300 if (UNTAG_Bool(REGB1)) {
45301 REGB1 = TAG_Bool(0);
45302 REGB0 = REGB1;
45303 } else {
45304 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45305 REGB0 = REGB1;
45306 }
45307 }
45308 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45309 if (UNTAG_Bool(REGB0)) {
45310 /* parser/parser_prod.nit:8292 */
45311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45312 if (UNTAG_Bool(REGB0)) {
45313 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8292);
45314 }
45315 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45316 /* parser/parser_prod.nit:8293 */
45317 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*/;
45318 if (UNTAG_Bool(REGB0)) {
45319 } else {
45320 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8293);
45321 }
45322 /* parser/parser_prod.nit:8294 */
45323 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
45324 } else {
45325 /* parser/parser_prod.nit:8296 */
45326 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8296);
45327 }
45328 /* parser/parser_prod.nit:8298 */
45329 goto label1;
45330 }
45331 /* parser/parser_prod.nit:8300 */
45332 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
45333 if (UNTAG_Bool(REGB0)) {
45334 } else {
45335 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8300);
45336 }
45337 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
45338 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45339 if (UNTAG_Bool(REGB0)) {
45340 } else {
45341 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45342 REGB0 = REGB1;
45343 }
45344 if (UNTAG_Bool(REGB0)) {
45345 /* parser/parser_prod.nit:8301 */
45346 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45347 if (UNTAG_Bool(REGB0)) {
45348 } else {
45349 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45350 if (UNTAG_Bool(REGB1)) {
45351 REGB1 = TAG_Bool(0);
45352 REGB0 = REGB1;
45353 } else {
45354 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45355 REGB0 = REGB1;
45356 }
45357 }
45358 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45359 if (UNTAG_Bool(REGB0)) {
45360 /* parser/parser_prod.nit:8302 */
45361 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45362 if (UNTAG_Bool(REGB0)) {
45363 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8302);
45364 }
45365 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45366 /* parser/parser_prod.nit:8303 */
45367 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*/;
45368 if (UNTAG_Bool(REGB0)) {
45369 } else {
45370 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8303);
45371 }
45372 /* parser/parser_prod.nit:8304 */
45373 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
45374 } else {
45375 /* parser/parser_prod.nit:8306 */
45376 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8306);
45377 }
45378 /* parser/parser_prod.nit:8308 */
45379 goto label1;
45380 }
45381 /* parser/parser_prod.nit:8310 */
45382 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
45383 if (UNTAG_Bool(REGB0)) {
45384 } else {
45385 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8310);
45386 }
45387 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
45388 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45389 if (UNTAG_Bool(REGB0)) {
45390 } else {
45391 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45392 REGB0 = REGB1;
45393 }
45394 if (UNTAG_Bool(REGB0)) {
45395 /* parser/parser_prod.nit:8311 */
45396 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45397 if (UNTAG_Bool(REGB0)) {
45398 } else {
45399 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45400 if (UNTAG_Bool(REGB1)) {
45401 REGB1 = TAG_Bool(0);
45402 REGB0 = REGB1;
45403 } else {
45404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45405 REGB0 = REGB1;
45406 }
45407 }
45408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45409 if (UNTAG_Bool(REGB0)) {
45410 /* parser/parser_prod.nit:8312 */
45411 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45412 if (UNTAG_Bool(REGB0)) {
45413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8312);
45414 }
45415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45416 /* parser/parser_prod.nit:8313 */
45417 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*/;
45418 if (UNTAG_Bool(REGB0)) {
45419 } else {
45420 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8313);
45421 }
45422 /* parser/parser_prod.nit:8314 */
45423 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
45424 } else {
45425 /* parser/parser_prod.nit:8316 */
45426 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8316);
45427 }
45428 /* parser/parser_prod.nit:8318 */
45429 goto label1;
45430 }
45431 label1: while(0);
45432 stack_frame_head = fra.me.prev;
45433 return;
45434 }
45435 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all[] = "parser_prod::AAsNullableExternCall::(parser_prod::ANode::visit_all)";
45436 void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1){
45437 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
45438 val_t REGB0;
45439 val_t tmp;
45440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45441 fra.me.file = LOCATE_parser___parser_prod;
45442 fra.me.line = 8322;
45443 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all;
45444 fra.me.has_broke = 0;
45445 fra.me.REG_size = 3;
45446 fra.me.nitni_local_ref_head = NULL;
45447 fra.me.REG[0] = NIT_NULL;
45448 fra.me.REG[1] = NIT_NULL;
45449 fra.me.REG[2] = NIT_NULL;
45450 fra.me.REG[0] = p0;
45451 fra.me.REG[1] = p1;
45452 /* parser/parser_prod.nit:8324 */
45453 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
45454 if (UNTAG_Bool(REGB0)) {
45455 } else {
45456 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8324);
45457 }
45458 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
45459 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45460 /* parser/parser_prod.nit:8325 */
45461 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
45462 if (UNTAG_Bool(REGB0)) {
45463 } else {
45464 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8325);
45465 }
45466 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
45467 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45468 /* parser/parser_prod.nit:8326 */
45469 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
45470 if (UNTAG_Bool(REGB0)) {
45471 } else {
45472 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8326);
45473 }
45474 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
45475 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
45476 stack_frame_head = fra.me.prev;
45477 return;
45478 }
45479 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init[] = "parser_prod::AAsNotNullableExternCall::empty_init";
45480 void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
45481 int itpos291 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
45482 struct {struct stack_frame_t me;} fra;
45483 val_t tmp;
45484 if (init_table[itpos291]) return;
45485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45486 fra.me.file = LOCATE_parser___parser_prod;
45487 fra.me.line = 8330;
45488 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init;
45489 fra.me.has_broke = 0;
45490 fra.me.REG_size = 1;
45491 fra.me.nitni_local_ref_head = NULL;
45492 fra.me.REG[0] = NIT_NULL;
45493 fra.me.REG[0] = p0;
45494 stack_frame_head = fra.me.prev;
45495 init_table[itpos291] = 1;
45496 return;
45497 }
45498 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall[] = "parser_prod::AAsNotNullableExternCall::init_aasnotnullableexterncall";
45499 void parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
45500 int itpos292 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
45501 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
45502 val_t REGB0;
45503 val_t tmp;
45504 if (init_table[itpos292]) return;
45505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45506 fra.me.file = LOCATE_parser___parser_prod;
45507 fra.me.line = 8332;
45508 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
45509 fra.me.has_broke = 0;
45510 fra.me.REG_size = 6;
45511 fra.me.nitni_local_ref_head = NULL;
45512 fra.me.REG[0] = NIT_NULL;
45513 fra.me.REG[1] = NIT_NULL;
45514 fra.me.REG[2] = NIT_NULL;
45515 fra.me.REG[3] = NIT_NULL;
45516 fra.me.REG[4] = NIT_NULL;
45517 fra.me.REG[5] = NIT_NULL;
45518 fra.me.REG[0] = p0;
45519 fra.me.REG[1] = p1;
45520 fra.me.REG[2] = p2;
45521 fra.me.REG[3] = p3;
45522 fra.me.REG[4] = p4;
45523 /* parser/parser_prod.nit:8332 */
45524 fra.me.REG[5] = fra.me.REG[0];
45525 /* parser/parser_prod.nit:8339 */
45526 CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
45527 /* parser/parser_prod.nit:8340 */
45528 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
45529 if (UNTAG_Bool(REGB0)) {
45530 } else {
45531 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8340);
45532 }
45533 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[5]) = fra.me.REG[1];
45534 /* parser/parser_prod.nit:8341 */
45535 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
45536 if (UNTAG_Bool(REGB0)) {
45537 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8341);
45538 }
45539 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
45540 /* parser/parser_prod.nit:8342 */
45541 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
45542 if (UNTAG_Bool(REGB0)) {
45543 } else {
45544 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8342);
45545 }
45546 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
45547 /* parser/parser_prod.nit:8343 */
45548 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45549 if (UNTAG_Bool(REGB0)) {
45550 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8343);
45551 }
45552 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
45553 /* parser/parser_prod.nit:8344 */
45554 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
45555 if (UNTAG_Bool(REGB0)) {
45556 } else {
45557 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8344);
45558 }
45559 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
45560 /* parser/parser_prod.nit:8345 */
45561 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45562 if (UNTAG_Bool(REGB0)) {
45563 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8345);
45564 }
45565 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
45566 /* parser/parser_prod.nit:8346 */
45567 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
45568 if (UNTAG_Bool(REGB0)) {
45569 } else {
45570 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8346);
45571 }
45572 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[5]) = fra.me.REG[4];
45573 /* parser/parser_prod.nit:8347 */
45574 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
45575 if (UNTAG_Bool(REGB0)) {
45576 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8347);
45577 }
45578 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
45579 stack_frame_head = fra.me.prev;
45580 init_table[itpos292] = 1;
45581 return;
45582 }
45583 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child[] = "parser_prod::AAsNotNullableExternCall::(parser_prod::ANode::replace_child)";
45584 void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
45585 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45586 val_t REGB0;
45587 val_t REGB1;
45588 val_t tmp;
45589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45590 fra.me.file = LOCATE_parser___parser_prod;
45591 fra.me.line = 8350;
45592 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child;
45593 fra.me.has_broke = 0;
45594 fra.me.REG_size = 4;
45595 fra.me.nitni_local_ref_head = NULL;
45596 fra.me.REG[0] = NIT_NULL;
45597 fra.me.REG[1] = NIT_NULL;
45598 fra.me.REG[2] = NIT_NULL;
45599 fra.me.REG[3] = NIT_NULL;
45600 fra.me.REG[0] = p0;
45601 fra.me.REG[1] = p1;
45602 fra.me.REG[2] = p2;
45603 /* parser/parser_prod.nit:8352 */
45604 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
45605 if (UNTAG_Bool(REGB0)) {
45606 } else {
45607 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8352);
45608 }
45609 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
45610 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45611 if (UNTAG_Bool(REGB0)) {
45612 } else {
45613 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45614 REGB0 = REGB1;
45615 }
45616 if (UNTAG_Bool(REGB0)) {
45617 /* parser/parser_prod.nit:8353 */
45618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45619 if (UNTAG_Bool(REGB0)) {
45620 } else {
45621 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45622 if (UNTAG_Bool(REGB1)) {
45623 REGB1 = TAG_Bool(0);
45624 REGB0 = REGB1;
45625 } else {
45626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45627 REGB0 = REGB1;
45628 }
45629 }
45630 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45631 if (UNTAG_Bool(REGB0)) {
45632 /* parser/parser_prod.nit:8354 */
45633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45634 if (UNTAG_Bool(REGB0)) {
45635 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8354);
45636 }
45637 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45638 /* parser/parser_prod.nit:8355 */
45639 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*/;
45640 if (UNTAG_Bool(REGB0)) {
45641 } else {
45642 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8355);
45643 }
45644 /* parser/parser_prod.nit:8356 */
45645 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
45646 } else {
45647 /* parser/parser_prod.nit:8358 */
45648 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8358);
45649 }
45650 /* parser/parser_prod.nit:8360 */
45651 goto label1;
45652 }
45653 /* parser/parser_prod.nit:8362 */
45654 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
45655 if (UNTAG_Bool(REGB0)) {
45656 } else {
45657 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8362);
45658 }
45659 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
45660 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45661 if (UNTAG_Bool(REGB0)) {
45662 } else {
45663 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45664 REGB0 = REGB1;
45665 }
45666 if (UNTAG_Bool(REGB0)) {
45667 /* parser/parser_prod.nit:8363 */
45668 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45669 if (UNTAG_Bool(REGB0)) {
45670 } else {
45671 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45672 if (UNTAG_Bool(REGB1)) {
45673 REGB1 = TAG_Bool(0);
45674 REGB0 = REGB1;
45675 } else {
45676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45677 REGB0 = REGB1;
45678 }
45679 }
45680 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45681 if (UNTAG_Bool(REGB0)) {
45682 /* parser/parser_prod.nit:8364 */
45683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45684 if (UNTAG_Bool(REGB0)) {
45685 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8364);
45686 }
45687 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45688 /* parser/parser_prod.nit:8365 */
45689 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*/;
45690 if (UNTAG_Bool(REGB0)) {
45691 } else {
45692 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8365);
45693 }
45694 /* parser/parser_prod.nit:8366 */
45695 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
45696 } else {
45697 /* parser/parser_prod.nit:8368 */
45698 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8368);
45699 }
45700 /* parser/parser_prod.nit:8370 */
45701 goto label1;
45702 }
45703 /* parser/parser_prod.nit:8372 */
45704 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
45705 if (UNTAG_Bool(REGB0)) {
45706 } else {
45707 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8372);
45708 }
45709 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
45710 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45711 if (UNTAG_Bool(REGB0)) {
45712 } else {
45713 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45714 REGB0 = REGB1;
45715 }
45716 if (UNTAG_Bool(REGB0)) {
45717 /* parser/parser_prod.nit:8373 */
45718 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45719 if (UNTAG_Bool(REGB0)) {
45720 } else {
45721 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45722 if (UNTAG_Bool(REGB1)) {
45723 REGB1 = TAG_Bool(0);
45724 REGB0 = REGB1;
45725 } else {
45726 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45727 REGB0 = REGB1;
45728 }
45729 }
45730 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45731 if (UNTAG_Bool(REGB0)) {
45732 /* parser/parser_prod.nit:8374 */
45733 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45734 if (UNTAG_Bool(REGB0)) {
45735 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8374);
45736 }
45737 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45738 /* parser/parser_prod.nit:8375 */
45739 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*/;
45740 if (UNTAG_Bool(REGB0)) {
45741 } else {
45742 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8375);
45743 }
45744 /* parser/parser_prod.nit:8376 */
45745 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
45746 } else {
45747 /* parser/parser_prod.nit:8378 */
45748 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8378);
45749 }
45750 /* parser/parser_prod.nit:8380 */
45751 goto label1;
45752 }
45753 /* parser/parser_prod.nit:8382 */
45754 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
45755 if (UNTAG_Bool(REGB0)) {
45756 } else {
45757 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8382);
45758 }
45759 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
45760 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45761 if (UNTAG_Bool(REGB0)) {
45762 } else {
45763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45764 REGB0 = REGB1;
45765 }
45766 if (UNTAG_Bool(REGB0)) {
45767 /* parser/parser_prod.nit:8383 */
45768 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45769 if (UNTAG_Bool(REGB0)) {
45770 } else {
45771 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45772 if (UNTAG_Bool(REGB1)) {
45773 REGB1 = TAG_Bool(0);
45774 REGB0 = REGB1;
45775 } else {
45776 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45777 REGB0 = REGB1;
45778 }
45779 }
45780 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45781 if (UNTAG_Bool(REGB0)) {
45782 /* parser/parser_prod.nit:8384 */
45783 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45784 if (UNTAG_Bool(REGB0)) {
45785 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8384);
45786 }
45787 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45788 /* parser/parser_prod.nit:8385 */
45789 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*/;
45790 if (UNTAG_Bool(REGB0)) {
45791 } else {
45792 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8385);
45793 }
45794 /* parser/parser_prod.nit:8386 */
45795 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
45796 } else {
45797 /* parser/parser_prod.nit:8388 */
45798 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8388);
45799 }
45800 /* parser/parser_prod.nit:8390 */
45801 goto label1;
45802 }
45803 label1: while(0);
45804 stack_frame_head = fra.me.prev;
45805 return;
45806 }
45807 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all[] = "parser_prod::AAsNotNullableExternCall::(parser_prod::ANode::visit_all)";
45808 void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1){
45809 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
45810 val_t REGB0;
45811 val_t tmp;
45812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45813 fra.me.file = LOCATE_parser___parser_prod;
45814 fra.me.line = 8394;
45815 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all;
45816 fra.me.has_broke = 0;
45817 fra.me.REG_size = 3;
45818 fra.me.nitni_local_ref_head = NULL;
45819 fra.me.REG[0] = NIT_NULL;
45820 fra.me.REG[1] = NIT_NULL;
45821 fra.me.REG[2] = NIT_NULL;
45822 fra.me.REG[0] = p0;
45823 fra.me.REG[1] = p1;
45824 /* parser/parser_prod.nit:8396 */
45825 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
45826 if (UNTAG_Bool(REGB0)) {
45827 } else {
45828 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8396);
45829 }
45830 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
45831 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45832 /* parser/parser_prod.nit:8397 */
45833 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
45834 if (UNTAG_Bool(REGB0)) {
45835 } else {
45836 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8397);
45837 }
45838 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
45839 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45840 /* parser/parser_prod.nit:8398 */
45841 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
45842 if (UNTAG_Bool(REGB0)) {
45843 } else {
45844 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8398);
45845 }
45846 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
45847 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45848 /* parser/parser_prod.nit:8399 */
45849 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
45850 if (UNTAG_Bool(REGB0)) {
45851 } else {
45852 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8399);
45853 }
45854 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
45855 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
45856 stack_frame_head = fra.me.prev;
45857 return;
45858 }
45859 static const char LOCATE_parser___parser_prod___AInLanguage___empty_init[] = "parser_prod::AInLanguage::empty_init";
45860 void parser___parser_prod___AInLanguage___empty_init(val_t p0, int* init_table){
45861 int itpos293 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInLanguage].i;
45862 struct {struct stack_frame_t me;} fra;
45863 val_t tmp;
45864 if (init_table[itpos293]) return;
45865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45866 fra.me.file = LOCATE_parser___parser_prod;
45867 fra.me.line = 8403;
45868 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___empty_init;
45869 fra.me.has_broke = 0;
45870 fra.me.REG_size = 1;
45871 fra.me.nitni_local_ref_head = NULL;
45872 fra.me.REG[0] = NIT_NULL;
45873 fra.me.REG[0] = p0;
45874 stack_frame_head = fra.me.prev;
45875 init_table[itpos293] = 1;
45876 return;
45877 }
45878 static const char LOCATE_parser___parser_prod___AInLanguage___init_ainlanguage[] = "parser_prod::AInLanguage::init_ainlanguage";
45879 void parser___parser_prod___AInLanguage___init_ainlanguage(val_t p0, val_t p1, val_t p2, int* init_table){
45880 int itpos294 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInLanguage].i;
45881 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45882 val_t REGB0;
45883 val_t tmp;
45884 if (init_table[itpos294]) return;
45885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45886 fra.me.file = LOCATE_parser___parser_prod;
45887 fra.me.line = 8405;
45888 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___init_ainlanguage;
45889 fra.me.has_broke = 0;
45890 fra.me.REG_size = 4;
45891 fra.me.nitni_local_ref_head = NULL;
45892 fra.me.REG[0] = NIT_NULL;
45893 fra.me.REG[1] = NIT_NULL;
45894 fra.me.REG[2] = NIT_NULL;
45895 fra.me.REG[3] = NIT_NULL;
45896 fra.me.REG[0] = p0;
45897 fra.me.REG[1] = p1;
45898 fra.me.REG[2] = p2;
45899 /* parser/parser_prod.nit:8405 */
45900 fra.me.REG[3] = fra.me.REG[0];
45901 /* parser/parser_prod.nit:8410 */
45902 CALL_parser___parser_prod___AInLanguage___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
45903 /* parser/parser_prod.nit:8411 */
45904 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
45905 if (UNTAG_Bool(REGB0)) {
45906 } else {
45907 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8411);
45908 }
45909 ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[3]) = fra.me.REG[1];
45910 /* parser/parser_prod.nit:8412 */
45911 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
45912 if (UNTAG_Bool(REGB0)) {
45913 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8412);
45914 }
45915 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
45916 /* parser/parser_prod.nit:8413 */
45917 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
45918 if (UNTAG_Bool(REGB0)) {
45919 } else {
45920 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8413);
45921 }
45922 ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[3]) = fra.me.REG[2];
45923 /* parser/parser_prod.nit:8414 */
45924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45925 if (UNTAG_Bool(REGB0)) {
45926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8414);
45927 }
45928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
45929 stack_frame_head = fra.me.prev;
45930 init_table[itpos294] = 1;
45931 return;
45932 }
45933 static const char LOCATE_parser___parser_prod___AInLanguage___replace_child[] = "parser_prod::AInLanguage::(parser_prod::ANode::replace_child)";
45934 void parser___parser_prod___AInLanguage___replace_child(val_t p0, val_t p1, val_t p2){
45935 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45936 val_t REGB0;
45937 val_t REGB1;
45938 val_t tmp;
45939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45940 fra.me.file = LOCATE_parser___parser_prod;
45941 fra.me.line = 8417;
45942 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___replace_child;
45943 fra.me.has_broke = 0;
45944 fra.me.REG_size = 4;
45945 fra.me.nitni_local_ref_head = NULL;
45946 fra.me.REG[0] = NIT_NULL;
45947 fra.me.REG[1] = NIT_NULL;
45948 fra.me.REG[2] = NIT_NULL;
45949 fra.me.REG[3] = NIT_NULL;
45950 fra.me.REG[0] = p0;
45951 fra.me.REG[1] = p1;
45952 fra.me.REG[2] = p2;
45953 /* parser/parser_prod.nit:8419 */
45954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0])!=NIT_NULL);
45955 if (UNTAG_Bool(REGB0)) {
45956 } else {
45957 nit_abort("Uninitialized attribute %s", "_n_kwin", LOCATE_parser___parser_prod, 8419);
45958 }
45959 fra.me.REG[3] = ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0]);
45960 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45961 if (UNTAG_Bool(REGB0)) {
45962 } else {
45963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45964 REGB0 = REGB1;
45965 }
45966 if (UNTAG_Bool(REGB0)) {
45967 /* parser/parser_prod.nit:8420 */
45968 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45969 if (UNTAG_Bool(REGB0)) {
45970 } else {
45971 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45972 if (UNTAG_Bool(REGB1)) {
45973 REGB1 = TAG_Bool(0);
45974 REGB0 = REGB1;
45975 } else {
45976 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45977 REGB0 = REGB1;
45978 }
45979 }
45980 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45981 if (UNTAG_Bool(REGB0)) {
45982 /* parser/parser_prod.nit:8421 */
45983 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45984 if (UNTAG_Bool(REGB0)) {
45985 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8421);
45986 }
45987 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45988 /* parser/parser_prod.nit:8422 */
45989 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwin, ID_parser___parser_nodes___TKwin)) /*cast TKwin*/;
45990 if (UNTAG_Bool(REGB0)) {
45991 } else {
45992 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8422);
45993 }
45994 /* parser/parser_prod.nit:8423 */
45995 ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0]) = fra.me.REG[2];
45996 } else {
45997 /* parser/parser_prod.nit:8425 */
45998 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8425);
45999 }
46000 /* parser/parser_prod.nit:8427 */
46001 goto label1;
46002 }
46003 /* parser/parser_prod.nit:8429 */
46004 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0])!=NIT_NULL);
46005 if (UNTAG_Bool(REGB0)) {
46006 } else {
46007 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 8429);
46008 }
46009 fra.me.REG[3] = ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0]);
46010 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
46011 if (UNTAG_Bool(REGB0)) {
46012 } else {
46013 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46014 REGB0 = REGB1;
46015 }
46016 if (UNTAG_Bool(REGB0)) {
46017 /* parser/parser_prod.nit:8430 */
46018 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46019 if (UNTAG_Bool(REGB0)) {
46020 } else {
46021 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46022 if (UNTAG_Bool(REGB1)) {
46023 REGB1 = TAG_Bool(0);
46024 REGB0 = REGB1;
46025 } else {
46026 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46027 REGB0 = REGB1;
46028 }
46029 }
46030 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46031 if (UNTAG_Bool(REGB0)) {
46032 /* parser/parser_prod.nit:8431 */
46033 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46034 if (UNTAG_Bool(REGB0)) {
46035 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8431);
46036 }
46037 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46038 /* parser/parser_prod.nit:8432 */
46039 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*/;
46040 if (UNTAG_Bool(REGB0)) {
46041 } else {
46042 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8432);
46043 }
46044 /* parser/parser_prod.nit:8433 */
46045 ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0]) = fra.me.REG[2];
46046 } else {
46047 /* parser/parser_prod.nit:8435 */
46048 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8435);
46049 }
46050 /* parser/parser_prod.nit:8437 */
46051 goto label1;
46052 }
46053 label1: while(0);
46054 stack_frame_head = fra.me.prev;
46055 return;
46056 }
46057 static const char LOCATE_parser___parser_prod___AInLanguage___visit_all[] = "parser_prod::AInLanguage::(parser_prod::ANode::visit_all)";
46058 void parser___parser_prod___AInLanguage___visit_all(val_t p0, val_t p1){
46059 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
46060 val_t REGB0;
46061 val_t tmp;
46062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46063 fra.me.file = LOCATE_parser___parser_prod;
46064 fra.me.line = 8441;
46065 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___visit_all;
46066 fra.me.has_broke = 0;
46067 fra.me.REG_size = 3;
46068 fra.me.nitni_local_ref_head = NULL;
46069 fra.me.REG[0] = NIT_NULL;
46070 fra.me.REG[1] = NIT_NULL;
46071 fra.me.REG[2] = NIT_NULL;
46072 fra.me.REG[0] = p0;
46073 fra.me.REG[1] = p1;
46074 /* parser/parser_prod.nit:8443 */
46075 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0])!=NIT_NULL);
46076 if (UNTAG_Bool(REGB0)) {
46077 } else {
46078 nit_abort("Uninitialized attribute %s", "_n_kwin", LOCATE_parser___parser_prod, 8443);
46079 }
46080 fra.me.REG[2] = ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0]);
46081 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
46082 /* parser/parser_prod.nit:8444 */
46083 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0])!=NIT_NULL);
46084 if (UNTAG_Bool(REGB0)) {
46085 } else {
46086 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 8444);
46087 }
46088 fra.me.REG[0] = ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0]);
46089 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
46090 stack_frame_head = fra.me.prev;
46091 return;
46092 }
46093 static const char LOCATE_parser___parser_prod___AExternCodeBlock___empty_init[] = "parser_prod::AExternCodeBlock::empty_init";
46094 void parser___parser_prod___AExternCodeBlock___empty_init(val_t p0, int* init_table){
46095 int itpos295 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCodeBlock].i;
46096 struct {struct stack_frame_t me;} fra;
46097 val_t tmp;
46098 if (init_table[itpos295]) return;
46099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46100 fra.me.file = LOCATE_parser___parser_prod;
46101 fra.me.line = 8448;
46102 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___empty_init;
46103 fra.me.has_broke = 0;
46104 fra.me.REG_size = 1;
46105 fra.me.nitni_local_ref_head = NULL;
46106 fra.me.REG[0] = NIT_NULL;
46107 fra.me.REG[0] = p0;
46108 stack_frame_head = fra.me.prev;
46109 init_table[itpos295] = 1;
46110 return;
46111 }
46112 static const char LOCATE_parser___parser_prod___AExternCodeBlock___init_aexterncodeblock[] = "parser_prod::AExternCodeBlock::init_aexterncodeblock";
46113 void parser___parser_prod___AExternCodeBlock___init_aexterncodeblock(val_t p0, val_t p1, val_t p2, int* init_table){
46114 int itpos296 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCodeBlock].i;
46115 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46116 val_t REGB0;
46117 val_t REGB1;
46118 val_t tmp;
46119 if (init_table[itpos296]) return;
46120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46121 fra.me.file = LOCATE_parser___parser_prod;
46122 fra.me.line = 8450;
46123 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___init_aexterncodeblock;
46124 fra.me.has_broke = 0;
46125 fra.me.REG_size = 4;
46126 fra.me.nitni_local_ref_head = NULL;
46127 fra.me.REG[0] = NIT_NULL;
46128 fra.me.REG[1] = NIT_NULL;
46129 fra.me.REG[2] = NIT_NULL;
46130 fra.me.REG[3] = NIT_NULL;
46131 fra.me.REG[0] = p0;
46132 fra.me.REG[1] = p1;
46133 fra.me.REG[2] = p2;
46134 /* parser/parser_prod.nit:8450 */
46135 fra.me.REG[3] = fra.me.REG[0];
46136 /* parser/parser_prod.nit:8455 */
46137 CALL_parser___parser_prod___AExternCodeBlock___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
46138 /* parser/parser_prod.nit:8456 */
46139 ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[3]) = fra.me.REG[1];
46140 /* parser/parser_prod.nit:8457 */
46141 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46142 if (UNTAG_Bool(REGB0)) {
46143 } else {
46144 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46145 if (UNTAG_Bool(REGB1)) {
46146 REGB1 = TAG_Bool(0);
46147 REGB0 = REGB1;
46148 } else {
46149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
46150 REGB0 = REGB1;
46151 }
46152 }
46153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46154 if (UNTAG_Bool(REGB0)) {
46155 /* parser/parser_prod.nit:8458 */
46156 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46157 if (UNTAG_Bool(REGB0)) {
46158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8458);
46159 }
46160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
46161 }
46162 /* parser/parser_prod.nit:8460 */
46163 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
46164 if (UNTAG_Bool(REGB0)) {
46165 } else {
46166 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8460);
46167 }
46168 ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[3]) = fra.me.REG[2];
46169 /* parser/parser_prod.nit:8461 */
46170 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46171 if (UNTAG_Bool(REGB0)) {
46172 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8461);
46173 }
46174 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
46175 stack_frame_head = fra.me.prev;
46176 init_table[itpos296] = 1;
46177 return;
46178 }
46179 static const char LOCATE_parser___parser_prod___AExternCodeBlock___replace_child[] = "parser_prod::AExternCodeBlock::(parser_prod::ANode::replace_child)";
46180 void parser___parser_prod___AExternCodeBlock___replace_child(val_t p0, val_t p1, val_t p2){
46181 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46182 val_t REGB0;
46183 val_t REGB1;
46184 val_t tmp;
46185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46186 fra.me.file = LOCATE_parser___parser_prod;
46187 fra.me.line = 8464;
46188 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___replace_child;
46189 fra.me.has_broke = 0;
46190 fra.me.REG_size = 4;
46191 fra.me.nitni_local_ref_head = NULL;
46192 fra.me.REG[0] = NIT_NULL;
46193 fra.me.REG[1] = NIT_NULL;
46194 fra.me.REG[2] = NIT_NULL;
46195 fra.me.REG[3] = NIT_NULL;
46196 fra.me.REG[0] = p0;
46197 fra.me.REG[1] = p1;
46198 fra.me.REG[2] = p2;
46199 /* parser/parser_prod.nit:8466 */
46200 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[0]);
46201 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46202 if (UNTAG_Bool(REGB0)) {
46203 } else {
46204 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46205 if (UNTAG_Bool(REGB1)) {
46206 REGB1 = TAG_Bool(0);
46207 REGB0 = REGB1;
46208 } else {
46209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46210 REGB0 = REGB1;
46211 }
46212 }
46213 if (UNTAG_Bool(REGB0)) {
46214 /* parser/parser_prod.nit:8467 */
46215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46216 if (UNTAG_Bool(REGB0)) {
46217 } else {
46218 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46219 if (UNTAG_Bool(REGB1)) {
46220 REGB1 = TAG_Bool(0);
46221 REGB0 = REGB1;
46222 } else {
46223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46224 REGB0 = REGB1;
46225 }
46226 }
46227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46228 if (UNTAG_Bool(REGB0)) {
46229 /* parser/parser_prod.nit:8468 */
46230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46231 if (UNTAG_Bool(REGB0)) {
46232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8468);
46233 }
46234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46235 /* parser/parser_prod.nit:8469 */
46236 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInLanguage, ID_parser___parser_nodes___AInLanguage)) /*cast AInLanguage*/;
46237 if (UNTAG_Bool(REGB0)) {
46238 } else {
46239 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8469);
46240 }
46241 /* parser/parser_prod.nit:8470 */
46242 ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[0]) = fra.me.REG[2];
46243 } else {
46244 /* parser/parser_prod.nit:8472 */
46245 ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[0]) = NIT_NULL;
46246 }
46247 /* parser/parser_prod.nit:8474 */
46248 goto label1;
46249 }
46250 /* parser/parser_prod.nit:8476 */
46251 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[0])!=NIT_NULL);
46252 if (UNTAG_Bool(REGB0)) {
46253 } else {
46254 nit_abort("Uninitialized attribute %s", "_n_extern_code_segment", LOCATE_parser___parser_prod, 8476);
46255 }
46256 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[0]);
46257 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
46258 if (UNTAG_Bool(REGB0)) {
46259 } else {
46260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46261 REGB0 = REGB1;
46262 }
46263 if (UNTAG_Bool(REGB0)) {
46264 /* parser/parser_prod.nit:8477 */
46265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46266 if (UNTAG_Bool(REGB0)) {
46267 } else {
46268 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46269 if (UNTAG_Bool(REGB1)) {
46270 REGB1 = TAG_Bool(0);
46271 REGB0 = REGB1;
46272 } else {
46273 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46274 REGB0 = REGB1;
46275 }
46276 }
46277 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46278 if (UNTAG_Bool(REGB0)) {
46279 /* parser/parser_prod.nit:8478 */
46280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46281 if (UNTAG_Bool(REGB0)) {
46282 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8478);
46283 }
46284 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46285 /* parser/parser_prod.nit:8479 */
46286 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TExternCodeSegment, ID_parser___parser_nodes___TExternCodeSegment)) /*cast TExternCodeSegment*/;
46287 if (UNTAG_Bool(REGB0)) {
46288 } else {
46289 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8479);
46290 }
46291 /* parser/parser_prod.nit:8480 */
46292 ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[0]) = fra.me.REG[2];
46293 } else {
46294 /* parser/parser_prod.nit:8482 */
46295 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8482);
46296 }
46297 /* parser/parser_prod.nit:8484 */
46298 goto label1;
46299 }
46300 label1: while(0);
46301 stack_frame_head = fra.me.prev;
46302 return;
46303 }
46304 static const char LOCATE_parser___parser_prod___AExternCodeBlock___visit_all[] = "parser_prod::AExternCodeBlock::(parser_prod::ANode::visit_all)";
46305 void parser___parser_prod___AExternCodeBlock___visit_all(val_t p0, val_t p1){
46306 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46307 val_t REGB0;
46308 val_t REGB1;
46309 val_t tmp;
46310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46311 fra.me.file = LOCATE_parser___parser_prod;
46312 fra.me.line = 8488;
46313 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___visit_all;
46314 fra.me.has_broke = 0;
46315 fra.me.REG_size = 4;
46316 fra.me.nitni_local_ref_head = NULL;
46317 fra.me.REG[0] = NIT_NULL;
46318 fra.me.REG[1] = NIT_NULL;
46319 fra.me.REG[2] = NIT_NULL;
46320 fra.me.REG[3] = NIT_NULL;
46321 fra.me.REG[0] = p0;
46322 fra.me.REG[1] = p1;
46323 /* parser/parser_prod.nit:8488 */
46324 fra.me.REG[2] = fra.me.REG[0];
46325 /* parser/parser_prod.nit:8490 */
46326 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[2]);
46327 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46328 if (UNTAG_Bool(REGB0)) {
46329 } else {
46330 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46331 if (UNTAG_Bool(REGB1)) {
46332 REGB1 = TAG_Bool(0);
46333 REGB0 = REGB1;
46334 } else {
46335 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
46336 REGB0 = REGB1;
46337 }
46338 }
46339 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46340 if (UNTAG_Bool(REGB0)) {
46341 /* parser/parser_prod.nit:8491 */
46342 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[2]);
46343 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AInLanguage, ID_parser___parser_nodes___AInLanguage)) /*cast AInLanguage*/;
46344 if (UNTAG_Bool(REGB0)) {
46345 } else {
46346 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8491);
46347 }
46348 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
46349 }
46350 /* parser/parser_prod.nit:8493 */
46351 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[2])!=NIT_NULL);
46352 if (UNTAG_Bool(REGB0)) {
46353 } else {
46354 nit_abort("Uninitialized attribute %s", "_n_extern_code_segment", LOCATE_parser___parser_prod, 8493);
46355 }
46356 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[2]);
46357 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
46358 stack_frame_head = fra.me.prev;
46359 return;
46360 }
46361 static const char LOCATE_parser___parser_prod___AQualified___empty_init[] = "parser_prod::AQualified::empty_init";
46362 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
46363 int itpos297 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
46364 struct {struct stack_frame_t me;} fra;
46365 val_t tmp;
46366 if (init_table[itpos297]) return;
46367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46368 fra.me.file = LOCATE_parser___parser_prod;
46369 fra.me.line = 8497;
46370 fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
46371 fra.me.has_broke = 0;
46372 fra.me.REG_size = 1;
46373 fra.me.nitni_local_ref_head = NULL;
46374 fra.me.REG[0] = NIT_NULL;
46375 fra.me.REG[0] = p0;
46376 stack_frame_head = fra.me.prev;
46377 init_table[itpos297] = 1;
46378 return;
46379 }
46380 static const char LOCATE_parser___parser_prod___AQualified___init_aqualified[] = "parser_prod::AQualified::init_aqualified";
46381 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
46382 int itpos298 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
46383 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
46384 val_t REGB0;
46385 val_t REGB1;
46386 val_t tmp;
46387 if (init_table[itpos298]) return;
46388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46389 fra.me.file = LOCATE_parser___parser_prod;
46390 fra.me.line = 8499;
46391 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
46392 fra.me.has_broke = 0;
46393 fra.me.REG_size = 3;
46394 fra.me.nitni_local_ref_head = NULL;
46395 fra.me.REG[0] = NIT_NULL;
46396 fra.me.REG[1] = NIT_NULL;
46397 fra.me.REG[2] = NIT_NULL;
46398 fra.me.REG[0] = p0;
46399 fra.me.REG[1] = p1;
46400 fra.me.REG[2] = p2;
46401 /* parser/parser_prod.nit:8504 */
46402 CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
46403 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));
46404 /* parser/parser_prod.nit:8510 */
46405 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
46406 /* parser/parser_prod.nit:8511 */
46407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46408 if (UNTAG_Bool(REGB0)) {
46409 } else {
46410 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46411 if (UNTAG_Bool(REGB1)) {
46412 REGB1 = TAG_Bool(0);
46413 REGB0 = REGB1;
46414 } else {
46415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46416 REGB0 = REGB1;
46417 }
46418 }
46419 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46420 if (UNTAG_Bool(REGB0)) {
46421 /* parser/parser_prod.nit:8512 */
46422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46423 if (UNTAG_Bool(REGB0)) {
46424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8512);
46425 }
46426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46427 }
46428 stack_frame_head = fra.me.prev;
46429 init_table[itpos298] = 1;
46430 return;
46431 }
46432 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){
46433 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46434 val_t REGB0;
46435 fun_t CREG[1];
46436 val_t tmp;
46437 /* parser/parser_prod.nit:8505 */
46438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46439 fra.me.file = LOCATE_parser___parser_prod;
46440 fra.me.line = 0;
46441 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
46442 fra.me.has_broke = 0;
46443 fra.me.REG_size = 2;
46444 fra.me.nitni_local_ref_head = NULL;
46445 fra.me.REG[0] = NIT_NULL;
46446 fra.me.REG[1] = NIT_NULL;
46447 fra.me.closure_ctx = closctx_param;
46448 fra.me.closure_funs = CREG;
46449 fra.me.REG[0] = p0;
46450 CREG[0] = clos_fun0;
46451 /* parser/parser_prod.nit:8506 */
46452 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
46453 if (UNTAG_Bool(REGB0)) {
46454 } else {
46455 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8506);
46456 }
46457 /* parser/parser_prod.nit:8507 */
46458 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
46459 if (UNTAG_Bool(REGB0)) {
46460 } else {
46461 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8507);
46462 }
46463 fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
46464 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
46465 /* parser/parser_prod.nit:8508 */
46466 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
46467 stack_frame_head = fra.me.prev;
46468 return;
46469 }
46470 static const char LOCATE_parser___parser_prod___AQualified___replace_child[] = "parser_prod::AQualified::(parser_prod::ANode::replace_child)";
46471 void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
46472 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46473 val_t REGB0;
46474 val_t REGB1;
46475 val_t REGB2;
46476 val_t REGB3;
46477 val_t REGB4;
46478 val_t tmp;
46479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46480 fra.me.file = LOCATE_parser___parser_prod;
46481 fra.me.line = 8516;
46482 fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
46483 fra.me.has_broke = 0;
46484 fra.me.REG_size = 4;
46485 fra.me.nitni_local_ref_head = NULL;
46486 fra.me.REG[0] = NIT_NULL;
46487 fra.me.REG[1] = NIT_NULL;
46488 fra.me.REG[2] = NIT_NULL;
46489 fra.me.REG[3] = NIT_NULL;
46490 fra.me.REG[0] = p0;
46491 fra.me.REG[1] = p1;
46492 fra.me.REG[2] = p2;
46493 /* parser/parser_prod.nit:8518 */
46494 REGB0 = TAG_Int(0);
46495 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
46496 if (UNTAG_Bool(REGB1)) {
46497 } else {
46498 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8518);
46499 }
46500 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
46501 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
46502 /* ../lib/standard/kernel.nit:355 */
46503 while(1) {
46504 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
46505 if (UNTAG_Bool(REGB2)) {
46506 } else {
46507 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
46508 }
46509 /* ../lib/standard/kernel.nit:235 */
46510 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
46511 /* ../lib/standard/kernel.nit:355 */
46512 if (UNTAG_Bool(REGB2)) {
46513 /* parser/parser_prod.nit:8518 */
46514 REGB2 = REGB0;
46515 /* parser/parser_prod.nit:8519 */
46516 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
46517 if (UNTAG_Bool(REGB3)) {
46518 } else {
46519 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8519);
46520 }
46521 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
46522 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
46523 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46524 if (UNTAG_Bool(REGB3)) {
46525 } else {
46526 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46527 if (UNTAG_Bool(REGB4)) {
46528 REGB4 = TAG_Bool(0);
46529 REGB3 = REGB4;
46530 } else {
46531 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46532 REGB3 = REGB4;
46533 }
46534 }
46535 if (UNTAG_Bool(REGB3)) {
46536 /* parser/parser_prod.nit:8520 */
46537 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46538 if (UNTAG_Bool(REGB3)) {
46539 } else {
46540 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46541 if (UNTAG_Bool(REGB4)) {
46542 REGB4 = TAG_Bool(0);
46543 REGB3 = REGB4;
46544 } else {
46545 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46546 REGB3 = REGB4;
46547 }
46548 }
46549 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
46550 if (UNTAG_Bool(REGB3)) {
46551 /* parser/parser_prod.nit:8521 */
46552 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*/;
46553 if (UNTAG_Bool(REGB3)) {
46554 } else {
46555 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8521);
46556 }
46557 /* parser/parser_prod.nit:8522 */
46558 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
46559 if (UNTAG_Bool(REGB3)) {
46560 } else {
46561 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8522);
46562 }
46563 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
46564 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
46565 /* parser/parser_prod.nit:8523 */
46566 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46567 if (UNTAG_Bool(REGB3)) {
46568 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8523);
46569 }
46570 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46571 } else {
46572 /* parser/parser_prod.nit:8525 */
46573 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
46574 if (UNTAG_Bool(REGB3)) {
46575 } else {
46576 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8525);
46577 }
46578 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
46579 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
46580 }
46581 /* parser/parser_prod.nit:8527 */
46582 goto label1;
46583 }
46584 /* ../lib/standard/kernel.nit:357 */
46585 REGB2 = TAG_Int(1);
46586 /* ../lib/standard/kernel.nit:238 */
46587 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
46588 /* ../lib/standard/kernel.nit:357 */
46589 REGB0 = REGB2;
46590 } else {
46591 /* ../lib/standard/kernel.nit:355 */
46592 goto label2;
46593 }
46594 }
46595 label2: while(0);
46596 /* parser/parser_prod.nit:8530 */
46597 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
46598 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46599 if (UNTAG_Bool(REGB0)) {
46600 } else {
46601 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46602 if (UNTAG_Bool(REGB1)) {
46603 REGB1 = TAG_Bool(0);
46604 REGB0 = REGB1;
46605 } else {
46606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46607 REGB0 = REGB1;
46608 }
46609 }
46610 if (UNTAG_Bool(REGB0)) {
46611 /* parser/parser_prod.nit:8531 */
46612 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46613 if (UNTAG_Bool(REGB0)) {
46614 } else {
46615 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46616 if (UNTAG_Bool(REGB1)) {
46617 REGB1 = TAG_Bool(0);
46618 REGB0 = REGB1;
46619 } else {
46620 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46621 REGB0 = REGB1;
46622 }
46623 }
46624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46625 if (UNTAG_Bool(REGB0)) {
46626 /* parser/parser_prod.nit:8532 */
46627 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46628 if (UNTAG_Bool(REGB0)) {
46629 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8532);
46630 }
46631 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46632 /* parser/parser_prod.nit:8533 */
46633 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*/;
46634 if (UNTAG_Bool(REGB0)) {
46635 } else {
46636 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8533);
46637 }
46638 /* parser/parser_prod.nit:8534 */
46639 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
46640 } else {
46641 /* parser/parser_prod.nit:8536 */
46642 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
46643 }
46644 /* parser/parser_prod.nit:8538 */
46645 goto label1;
46646 }
46647 label1: while(0);
46648 stack_frame_head = fra.me.prev;
46649 return;
46650 }
46651 static const char LOCATE_parser___parser_prod___AQualified___visit_all[] = "parser_prod::AQualified::(parser_prod::ANode::visit_all)";
46652 void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
46653 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46654 val_t REGB0;
46655 val_t REGB1;
46656 val_t tmp;
46657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46658 fra.me.file = LOCATE_parser___parser_prod;
46659 fra.me.line = 8542;
46660 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
46661 fra.me.has_broke = 0;
46662 fra.me.REG_size = 4;
46663 fra.me.nitni_local_ref_head = NULL;
46664 fra.me.REG[0] = NIT_NULL;
46665 fra.me.REG[1] = NIT_NULL;
46666 fra.me.REG[2] = NIT_NULL;
46667 fra.me.REG[3] = NIT_NULL;
46668 fra.me.REG[0] = p0;
46669 fra.me.REG[1] = p1;
46670 /* parser/parser_prod.nit:8542 */
46671 fra.me.REG[2] = fra.me.REG[0];
46672 /* parser/parser_prod.nit:8544 */
46673 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
46674 if (UNTAG_Bool(REGB0)) {
46675 } else {
46676 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8544);
46677 }
46678 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
46679 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));
46680 /* parser/parser_prod.nit:8547 */
46681 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
46682 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46683 if (UNTAG_Bool(REGB0)) {
46684 } else {
46685 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46686 if (UNTAG_Bool(REGB1)) {
46687 REGB1 = TAG_Bool(0);
46688 REGB0 = REGB1;
46689 } else {
46690 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
46691 REGB0 = REGB1;
46692 }
46693 }
46694 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46695 if (UNTAG_Bool(REGB0)) {
46696 /* parser/parser_prod.nit:8548 */
46697 fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
46698 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*/;
46699 if (UNTAG_Bool(REGB0)) {
46700 } else {
46701 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8548);
46702 }
46703 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
46704 }
46705 stack_frame_head = fra.me.prev;
46706 return;
46707 }
46708 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){
46709 struct {struct stack_frame_t me;} fra;
46710 fun_t CREG[1];
46711 val_t tmp;
46712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46713 fra.me.file = LOCATE_parser___parser_prod;
46714 fra.me.line = 0;
46715 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
46716 fra.me.has_broke = 0;
46717 fra.me.REG_size = 1;
46718 fra.me.nitni_local_ref_head = NULL;
46719 fra.me.REG[0] = NIT_NULL;
46720 fra.me.closure_ctx = closctx_param;
46721 fra.me.closure_funs = CREG;
46722 fra.me.REG[0] = p0;
46723 CREG[0] = clos_fun0;
46724 /* parser/parser_prod.nit:8545 */
46725 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
46726 stack_frame_head = fra.me.prev;
46727 return;
46728 }
46729 static const char LOCATE_parser___parser_prod___ADoc___empty_init[] = "parser_prod::ADoc::empty_init";
46730 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
46731 int itpos299 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
46732 struct {struct stack_frame_t me;} fra;
46733 val_t tmp;
46734 if (init_table[itpos299]) return;
46735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46736 fra.me.file = LOCATE_parser___parser_prod;
46737 fra.me.line = 8553;
46738 fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
46739 fra.me.has_broke = 0;
46740 fra.me.REG_size = 1;
46741 fra.me.nitni_local_ref_head = NULL;
46742 fra.me.REG[0] = NIT_NULL;
46743 fra.me.REG[0] = p0;
46744 stack_frame_head = fra.me.prev;
46745 init_table[itpos299] = 1;
46746 return;
46747 }
46748 static const char LOCATE_parser___parser_prod___ADoc___init_adoc[] = "parser_prod::ADoc::init_adoc";
46749 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
46750 int itpos300 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
46751 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46752 val_t tmp;
46753 if (init_table[itpos300]) return;
46754 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46755 fra.me.file = LOCATE_parser___parser_prod;
46756 fra.me.line = 8555;
46757 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
46758 fra.me.has_broke = 0;
46759 fra.me.REG_size = 2;
46760 fra.me.nitni_local_ref_head = NULL;
46761 fra.me.REG[0] = NIT_NULL;
46762 fra.me.REG[1] = NIT_NULL;
46763 fra.me.REG[0] = p0;
46764 fra.me.REG[1] = p1;
46765 /* parser/parser_prod.nit:8559 */
46766 CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
46767 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));
46768 stack_frame_head = fra.me.prev;
46769 init_table[itpos300] = 1;
46770 return;
46771 }
46772 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){
46773 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46774 val_t REGB0;
46775 fun_t CREG[1];
46776 val_t tmp;
46777 /* parser/parser_prod.nit:8560 */
46778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46779 fra.me.file = LOCATE_parser___parser_prod;
46780 fra.me.line = 0;
46781 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
46782 fra.me.has_broke = 0;
46783 fra.me.REG_size = 2;
46784 fra.me.nitni_local_ref_head = NULL;
46785 fra.me.REG[0] = NIT_NULL;
46786 fra.me.REG[1] = NIT_NULL;
46787 fra.me.closure_ctx = closctx_param;
46788 fra.me.closure_funs = CREG;
46789 fra.me.REG[0] = p0;
46790 CREG[0] = clos_fun0;
46791 /* parser/parser_prod.nit:8561 */
46792 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
46793 if (UNTAG_Bool(REGB0)) {
46794 } else {
46795 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8561);
46796 }
46797 /* parser/parser_prod.nit:8562 */
46798 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
46799 if (UNTAG_Bool(REGB0)) {
46800 } else {
46801 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8562);
46802 }
46803 fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
46804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
46805 /* parser/parser_prod.nit:8563 */
46806 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
46807 stack_frame_head = fra.me.prev;
46808 return;
46809 }
46810 static const char LOCATE_parser___parser_prod___ADoc___replace_child[] = "parser_prod::ADoc::(parser_prod::ANode::replace_child)";
46811 void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
46812 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46813 val_t REGB0;
46814 val_t REGB1;
46815 val_t REGB2;
46816 val_t REGB3;
46817 val_t REGB4;
46818 val_t tmp;
46819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46820 fra.me.file = LOCATE_parser___parser_prod;
46821 fra.me.line = 8567;
46822 fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
46823 fra.me.has_broke = 0;
46824 fra.me.REG_size = 4;
46825 fra.me.nitni_local_ref_head = NULL;
46826 fra.me.REG[0] = NIT_NULL;
46827 fra.me.REG[1] = NIT_NULL;
46828 fra.me.REG[2] = NIT_NULL;
46829 fra.me.REG[3] = NIT_NULL;
46830 fra.me.REG[0] = p0;
46831 fra.me.REG[1] = p1;
46832 fra.me.REG[2] = p2;
46833 /* parser/parser_prod.nit:8569 */
46834 REGB0 = TAG_Int(0);
46835 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
46836 if (UNTAG_Bool(REGB1)) {
46837 } else {
46838 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8569);
46839 }
46840 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
46841 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
46842 /* ../lib/standard/kernel.nit:355 */
46843 while(1) {
46844 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
46845 if (UNTAG_Bool(REGB2)) {
46846 } else {
46847 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
46848 }
46849 /* ../lib/standard/kernel.nit:235 */
46850 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
46851 /* ../lib/standard/kernel.nit:355 */
46852 if (UNTAG_Bool(REGB2)) {
46853 /* parser/parser_prod.nit:8569 */
46854 REGB2 = REGB0;
46855 /* parser/parser_prod.nit:8570 */
46856 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
46857 if (UNTAG_Bool(REGB3)) {
46858 } else {
46859 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8570);
46860 }
46861 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
46862 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
46863 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46864 if (UNTAG_Bool(REGB3)) {
46865 } else {
46866 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46867 if (UNTAG_Bool(REGB4)) {
46868 REGB4 = TAG_Bool(0);
46869 REGB3 = REGB4;
46870 } else {
46871 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46872 REGB3 = REGB4;
46873 }
46874 }
46875 if (UNTAG_Bool(REGB3)) {
46876 /* parser/parser_prod.nit:8571 */
46877 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46878 if (UNTAG_Bool(REGB3)) {
46879 } else {
46880 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46881 if (UNTAG_Bool(REGB4)) {
46882 REGB4 = TAG_Bool(0);
46883 REGB3 = REGB4;
46884 } else {
46885 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46886 REGB3 = REGB4;
46887 }
46888 }
46889 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
46890 if (UNTAG_Bool(REGB3)) {
46891 /* parser/parser_prod.nit:8572 */
46892 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*/;
46893 if (UNTAG_Bool(REGB3)) {
46894 } else {
46895 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8572);
46896 }
46897 /* parser/parser_prod.nit:8573 */
46898 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
46899 if (UNTAG_Bool(REGB3)) {
46900 } else {
46901 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8573);
46902 }
46903 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
46904 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
46905 /* parser/parser_prod.nit:8574 */
46906 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46907 if (UNTAG_Bool(REGB3)) {
46908 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8574);
46909 }
46910 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46911 } else {
46912 /* parser/parser_prod.nit:8576 */
46913 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
46914 if (UNTAG_Bool(REGB3)) {
46915 } else {
46916 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8576);
46917 }
46918 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
46919 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
46920 }
46921 /* parser/parser_prod.nit:8578 */
46922 goto label1;
46923 }
46924 /* ../lib/standard/kernel.nit:357 */
46925 REGB2 = TAG_Int(1);
46926 /* ../lib/standard/kernel.nit:238 */
46927 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
46928 /* ../lib/standard/kernel.nit:357 */
46929 REGB0 = REGB2;
46930 } else {
46931 /* ../lib/standard/kernel.nit:355 */
46932 goto label2;
46933 }
46934 }
46935 label2: while(0);
46936 label1: while(0);
46937 stack_frame_head = fra.me.prev;
46938 return;
46939 }
46940 static const char LOCATE_parser___parser_prod___ADoc___visit_all[] = "parser_prod::ADoc::(parser_prod::ANode::visit_all)";
46941 void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
46942 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46943 val_t REGB0;
46944 val_t tmp;
46945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46946 fra.me.file = LOCATE_parser___parser_prod;
46947 fra.me.line = 8583;
46948 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
46949 fra.me.has_broke = 0;
46950 fra.me.REG_size = 2;
46951 fra.me.nitni_local_ref_head = NULL;
46952 fra.me.REG[0] = NIT_NULL;
46953 fra.me.REG[1] = NIT_NULL;
46954 fra.me.REG[0] = p0;
46955 fra.me.REG[1] = p1;
46956 /* parser/parser_prod.nit:8585 */
46957 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
46958 if (UNTAG_Bool(REGB0)) {
46959 } else {
46960 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8585);
46961 }
46962 fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
46963 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));
46964 stack_frame_head = fra.me.prev;
46965 return;
46966 }
46967 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){
46968 struct {struct stack_frame_t me;} fra;
46969 fun_t CREG[1];
46970 val_t tmp;
46971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46972 fra.me.file = LOCATE_parser___parser_prod;
46973 fra.me.line = 0;
46974 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
46975 fra.me.has_broke = 0;
46976 fra.me.REG_size = 1;
46977 fra.me.nitni_local_ref_head = NULL;
46978 fra.me.REG[0] = NIT_NULL;
46979 fra.me.closure_ctx = closctx_param;
46980 fra.me.closure_funs = CREG;
46981 fra.me.REG[0] = p0;
46982 CREG[0] = clos_fun0;
46983 /* parser/parser_prod.nit:8586 */
46984 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
46985 stack_frame_head = fra.me.prev;
46986 return;
46987 }
46988 static const char LOCATE_parser___parser_prod___Start___replace_child[] = "parser_prod::Start::(parser_prod::ANode::replace_child)";
46989 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
46990 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46991 val_t REGB0;
46992 val_t REGB1;
46993 val_t tmp;
46994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46995 fra.me.file = LOCATE_parser___parser_prod;
46996 fra.me.line = 8592;
46997 fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
46998 fra.me.has_broke = 0;
46999 fra.me.REG_size = 4;
47000 fra.me.nitni_local_ref_head = NULL;
47001 fra.me.REG[0] = NIT_NULL;
47002 fra.me.REG[1] = NIT_NULL;
47003 fra.me.REG[2] = NIT_NULL;
47004 fra.me.REG[3] = NIT_NULL;
47005 fra.me.REG[0] = p0;
47006 fra.me.REG[1] = p1;
47007 fra.me.REG[2] = p2;
47008 /* parser/parser_prod.nit:8594 */
47009 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
47010 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
47011 if (UNTAG_Bool(REGB0)) {
47012 } else {
47013 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47014 if (UNTAG_Bool(REGB1)) {
47015 REGB1 = TAG_Bool(0);
47016 REGB0 = REGB1;
47017 } else {
47018 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47019 REGB0 = REGB1;
47020 }
47021 }
47022 if (UNTAG_Bool(REGB0)) {
47023 /* parser/parser_prod.nit:8595 */
47024 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47025 if (UNTAG_Bool(REGB0)) {
47026 } else {
47027 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47028 if (UNTAG_Bool(REGB1)) {
47029 REGB1 = TAG_Bool(0);
47030 REGB0 = REGB1;
47031 } else {
47032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47033 REGB0 = REGB1;
47034 }
47035 }
47036 if (UNTAG_Bool(REGB0)) {
47037 } else {
47038 /* parser/parser_prod.nit:8597 */
47039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47040 if (UNTAG_Bool(REGB0)) {
47041 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8597);
47042 }
47043 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47044 /* parser/parser_prod.nit:8598 */
47045 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*/;
47046 if (UNTAG_Bool(REGB0)) {
47047 } else {
47048 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8598);
47049 }
47050 /* parser/parser_prod.nit:8599 */
47051 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
47052 }
47053 /* parser/parser_prod.nit:8601 */
47054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
47055 /* parser/parser_prod.nit:8602 */
47056 goto label1;
47057 }
47058 label1: while(0);
47059 stack_frame_head = fra.me.prev;
47060 return;
47061 }
47062 static const char LOCATE_parser___parser_prod___Start___visit_all[] = "parser_prod::Start::(parser_prod::ANode::visit_all)";
47063 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
47064 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
47065 val_t REGB0;
47066 val_t REGB1;
47067 val_t tmp;
47068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47069 fra.me.file = LOCATE_parser___parser_prod;
47070 fra.me.line = 8606;
47071 fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
47072 fra.me.has_broke = 0;
47073 fra.me.REG_size = 4;
47074 fra.me.nitni_local_ref_head = NULL;
47075 fra.me.REG[0] = NIT_NULL;
47076 fra.me.REG[1] = NIT_NULL;
47077 fra.me.REG[2] = NIT_NULL;
47078 fra.me.REG[3] = NIT_NULL;
47079 fra.me.REG[0] = p0;
47080 fra.me.REG[1] = p1;
47081 /* parser/parser_prod.nit:8606 */
47082 fra.me.REG[2] = fra.me.REG[0];
47083 /* parser/parser_prod.nit:8608 */
47084 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
47085 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47086 if (UNTAG_Bool(REGB0)) {
47087 } else {
47088 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47089 if (UNTAG_Bool(REGB1)) {
47090 REGB1 = TAG_Bool(0);
47091 REGB0 = REGB1;
47092 } else {
47093 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
47094 REGB0 = REGB1;
47095 }
47096 }
47097 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47098 if (UNTAG_Bool(REGB0)) {
47099 /* parser/parser_prod.nit:8609 */
47100 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
47101 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*/;
47102 if (UNTAG_Bool(REGB0)) {
47103 } else {
47104 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8609);
47105 }
47106 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
47107 }
47108 /* parser/parser_prod.nit:8611 */
47109 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
47110 if (UNTAG_Bool(REGB0)) {
47111 } else {
47112 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 8611);
47113 }
47114 fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
47115 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
47116 stack_frame_head = fra.me.prev;
47117 return;
47118 }