nit: restrict some module visibility
[nit.git] / c_src / parser._sep.c
1 /* This C file is generated by NIT to compile module parser. */
2 #include "parser._sep.h"
3 val_t parser___State___state(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_parser;
9 fra.me.line = 9;
10 fra.me.meth = LOCATE_parser___State___state;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 /* ./parser//parser.nit:9 */
16 REGB0 = TAG_Bool(ATTR_parser___State____state(fra.me.REG[0])!=NIT_NULL);
17 if (UNTAG_Bool(REGB0)) {
18 } else {
19 nit_abort("Uninitialized attribute %s", "_state", LOCATE_parser, 9);
20 }
21 REGB0 = ATTR_parser___State____state(fra.me.REG[0]);
22 stack_frame_head = fra.me.prev;
23 return REGB0;
24 }
25 void parser___State___state__eq(val_t p0, val_t p1){
26 struct {struct stack_frame_t me;} fra;
27 val_t REGB0;
28 val_t tmp;
29 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30 fra.me.file = LOCATE_parser;
31 fra.me.line = 9;
32 fra.me.meth = LOCATE_parser___State___state__eq;
33 fra.me.has_broke = 0;
34 fra.me.REG_size = 1;
35 fra.me.REG[0] = NIT_NULL;
36 fra.me.REG[0] = p0;
37 REGB0 = p1;
38 /* ./parser//parser.nit:9 */
39 ATTR_parser___State____state(fra.me.REG[0]) = REGB0;
40 stack_frame_head = fra.me.prev;
41 return;
42 }
43 val_t parser___State___nodes(val_t p0){
44 struct {struct stack_frame_t me;} fra;
45 val_t tmp;
46 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47 fra.me.file = LOCATE_parser;
48 fra.me.line = 12;
49 fra.me.meth = LOCATE_parser___State___nodes;
50 fra.me.has_broke = 0;
51 fra.me.REG_size = 1;
52 fra.me.REG[0] = NIT_NULL;
53 fra.me.REG[0] = p0;
54 /* ./parser//parser.nit:12 */
55 fra.me.REG[0] = ATTR_parser___State____nodes(fra.me.REG[0]);
56 stack_frame_head = fra.me.prev;
57 return fra.me.REG[0];
58 }
59 void parser___State___nodes__eq(val_t p0, val_t p1){
60 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
61 val_t tmp;
62 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
63 fra.me.file = LOCATE_parser;
64 fra.me.line = 12;
65 fra.me.meth = LOCATE_parser___State___nodes__eq;
66 fra.me.has_broke = 0;
67 fra.me.REG_size = 2;
68 fra.me.REG[0] = NIT_NULL;
69 fra.me.REG[1] = NIT_NULL;
70 fra.me.REG[0] = p0;
71 fra.me.REG[1] = p1;
72 /* ./parser//parser.nit:12 */
73 ATTR_parser___State____nodes(fra.me.REG[0]) = fra.me.REG[1];
74 stack_frame_head = fra.me.prev;
75 return;
76 }
77 void parser___State___init(val_t p0, val_t p1, val_t p2, int* init_table){
78 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_State].i;
79 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
80 val_t REGB0;
81 val_t tmp;
82 if (init_table[itpos0]) return;
83 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
84 fra.me.file = LOCATE_parser;
85 fra.me.line = 15;
86 fra.me.meth = LOCATE_parser___State___init;
87 fra.me.has_broke = 0;
88 fra.me.REG_size = 2;
89 fra.me.REG[0] = NIT_NULL;
90 fra.me.REG[1] = NIT_NULL;
91 fra.me.REG[0] = p0;
92 REGB0 = p1;
93 fra.me.REG[1] = p2;
94 /* ./parser//parser.nit:17 */
95 ATTR_parser___State____state(fra.me.REG[0]) = REGB0;
96 /* ./parser//parser.nit:18 */
97 ATTR_parser___State____nodes(fra.me.REG[0]) = fra.me.REG[1];
98 stack_frame_head = fra.me.prev;
99 init_table[itpos0] = 1;
100 return;
101 }
102 void parser___Parser___init(val_t p0, val_t p1, int* init_table){
103 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Parser].i;
104 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
105 val_t REGB0;
106 val_t tmp;
107 if (init_table[itpos1]) return;
108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
109 fra.me.file = LOCATE_parser;
110 fra.me.line = 33;
111 fra.me.meth = LOCATE_parser___Parser___init;
112 fra.me.has_broke = 0;
113 fra.me.REG_size = 2;
114 fra.me.REG[0] = NIT_NULL;
115 fra.me.REG[1] = NIT_NULL;
116 fra.me.REG[0] = p0;
117 fra.me.REG[1] = p1;
118 /* ./parser//parser.nit:36 */
119 ATTR_parser___Parser____lexer(fra.me.REG[0]) = fra.me.REG[1];
120 /* ./parser//parser.nit:37 */
121 fra.me.REG[1] = NEW_Array_array___Array___init();
122 ATTR_parser___Parser____stack(fra.me.REG[0]) = fra.me.REG[1];
123 /* ./parser//parser.nit:38 */
124 REGB0 = TAG_Int(1);
125 /* ./../lib/standard//kernel.nit:216 */
126 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
127 /* ./parser//parser.nit:38 */
128 ATTR_parser___Parser____stack_pos(fra.me.REG[0]) = REGB0;
129 /* ./parser//parser.nit:39 */
130 CALL_parser___Parser___build_reduce_table(fra.me.REG[0])(fra.me.REG[0]);
131 stack_frame_head = fra.me.prev;
132 init_table[itpos1] = 1;
133 return;
134 }
135 val_t parser___Parser___go_to(val_t p0, val_t p1){
136 struct {struct stack_frame_t me;} fra;
137 val_t REGB0;
138 val_t REGB1;
139 val_t REGB2;
140 val_t REGB3;
141 val_t REGB4;
142 val_t REGB5;
143 val_t REGB6;
144 val_t REGB7;
145 val_t tmp;
146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
147 fra.me.file = LOCATE_parser;
148 fra.me.line = 42;
149 fra.me.meth = LOCATE_parser___Parser___go_to;
150 fra.me.has_broke = 0;
151 fra.me.REG_size = 1;
152 fra.me.REG[0] = NIT_NULL;
153 fra.me.REG[0] = p0;
154 REGB0 = p1;
155 /* ./parser//parser.nit:45 */
156 REGB1 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
157 /* ./parser//parser.nit:46 */
158 REGB2 = TAG_Int(1);
159 /* ./parser//parser.nit:47 */
160 REGB3 = TAG_Int(0);
161 REGB3 = CALL_tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3);
162 REGB4 = TAG_Int(1);
163 /* ./../lib/standard//kernel.nit:217 */
164 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
165 /* ./parser//parser.nit:49 */
166 while(1) {
167 /* ./../lib/standard//kernel.nit:211 */
168 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB4));
169 /* ./parser//parser.nit:49 */
170 if (UNTAG_Bool(REGB3)) {
171 /* ./../lib/standard//kernel.nit:215 */
172 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
173 /* ./parser//parser.nit:50 */
174 REGB5 = TAG_Int(2);
175 /* ./../lib/standard//kernel.nit:219 */
176 REGB5 = TAG_Int(UNTAG_Int(REGB3)/UNTAG_Int(REGB5));
177 /* ./parser//parser.nit:51 */
178 REGB3 = TAG_Int(2);
179 /* ./../lib/standard//kernel.nit:218 */
180 REGB3 = TAG_Int(UNTAG_Int(REGB5)*UNTAG_Int(REGB3));
181 /* ./parser//parser.nit:51 */
182 REGB6 = TAG_Int(1);
183 /* ./../lib/standard//kernel.nit:215 */
184 REGB6 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB6));
185 /* ./parser//parser.nit:53 */
186 REGB3 = CALL_tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB6);
187 /* ./../lib/standard//kernel.nit:212 */
188 REGB7 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
189 /* ./parser//parser.nit:54 */
190 if (UNTAG_Bool(REGB7)) {
191 /* ./parser//parser.nit:55 */
192 REGB7 = TAG_Int(1);
193 /* ./../lib/standard//kernel.nit:217 */
194 REGB7 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB7));
195 /* ./parser//parser.nit:55 */
196 REGB4 = REGB7;
197 } else {
198 /* ./../lib/standard//kernel.nit:214 */
199 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
200 /* ./parser//parser.nit:56 */
201 if (UNTAG_Bool(REGB3)) {
202 /* ./parser//parser.nit:57 */
203 REGB3 = TAG_Int(1);
204 /* ./../lib/standard//kernel.nit:215 */
205 REGB3 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB3));
206 /* ./parser//parser.nit:57 */
207 REGB2 = REGB3;
208 } else {
209 /* ./parser//parser.nit:59 */
210 REGB3 = TAG_Int(1);
211 /* ./../lib/standard//kernel.nit:215 */
212 REGB3 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB3));
213 /* ./parser//parser.nit:59 */
214 REGB3 = CALL_tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3);
215 goto label1;
216 }
217 }
218 } else {
219 /* ./parser//parser.nit:49 */
220 goto label2;
221 }
222 }
223 label2: while(0);
224 /* ./parser//parser.nit:63 */
225 REGB2 = TAG_Int(2);
226 REGB2 = CALL_tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
227 REGB3 = REGB2;
228 goto label1;
229 label1: while(0);
230 stack_frame_head = fra.me.prev;
231 return REGB3;
232 }
233 void parser___Parser___push(val_t p0, val_t p1, val_t p2){
234 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
235 val_t REGB0;
236 val_t REGB1;
237 val_t REGB2;
238 val_t REGB3;
239 val_t tmp;
240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
241 fra.me.file = LOCATE_parser;
242 fra.me.line = 66;
243 fra.me.meth = LOCATE_parser___Parser___push;
244 fra.me.has_broke = 0;
245 fra.me.REG_size = 3;
246 fra.me.REG[0] = NIT_NULL;
247 fra.me.REG[1] = NIT_NULL;
248 fra.me.REG[2] = NIT_NULL;
249 fra.me.REG[0] = p0;
250 REGB0 = p1;
251 fra.me.REG[1] = p2;
252 /* ./parser//parser.nit:69 */
253 REGB1 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
254 if (UNTAG_Bool(REGB1)) {
255 } else {
256 nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_parser, 69);
257 }
258 REGB1 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
259 REGB2 = TAG_Int(1);
260 /* ./../lib/standard//kernel.nit:215 */
261 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
262 /* ./parser//parser.nit:70 */
263 ATTR_parser___Parser____stack_pos(fra.me.REG[0]) = REGB2;
264 /* ./parser//parser.nit:71 */
265 REGB1 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
266 if (UNTAG_Bool(REGB1)) {
267 } else {
268 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 71);
269 }
270 fra.me.REG[2] = ATTR_parser___Parser____stack(fra.me.REG[0]);
271 /* ./../lib/standard//collection//array.nit:23 */
272 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
273 if (UNTAG_Bool(REGB1)) {
274 } else {
275 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
276 }
277 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
278 /* ./../lib/standard//kernel.nit:212 */
279 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
280 /* ./parser//parser.nit:71 */
281 if (UNTAG_Bool(REGB1)) {
282 /* ./parser//parser.nit:72 */
283 REGB1 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
284 if (UNTAG_Bool(REGB1)) {
285 } else {
286 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 72);
287 }
288 fra.me.REG[2] = ATTR_parser___Parser____stack(fra.me.REG[0]);
289 /* ./../lib/standard//collection//array.nit:245 */
290 REGB1 = TAG_Int(0);
291 /* ./../lib/standard//kernel.nit:213 */
292 REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1));
293 /* ./../lib/standard//collection//array.nit:245 */
294 if (UNTAG_Bool(REGB1)) {
295 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
296 if (UNTAG_Bool(REGB1)) {
297 } else {
298 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
299 }
300 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
301 /* ./../lib/standard//kernel.nit:212 */
302 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
303 } else {
304 /* ./../lib/standard//collection//array.nit:245 */
305 REGB3 = TAG_Bool(false);
306 REGB1 = REGB3;
307 }
308 if (UNTAG_Bool(REGB1)) {
309 } else {
310 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
311 }
312 /* ./../lib/standard//collection//array.nit:246 */
313 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
315 if (UNTAG_Bool(REGB1)) {
316 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
317 }
318 /* ./../lib/standard//collection//array.nit:654 */
319 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
320 /* ./../lib/standard//collection//array.nit:246 */
321 goto label1;
322 label1: while(0);
323 /* ./parser//parser.nit:73 */
324 CALL_parser___State___state__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
325 /* ./parser//parser.nit:74 */
326 CALL_parser___State___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
327 } else {
328 /* ./parser//parser.nit:76 */
329 REGB2 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
330 if (UNTAG_Bool(REGB2)) {
331 } else {
332 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 76);
333 }
334 fra.me.REG[0] = ATTR_parser___Parser____stack(fra.me.REG[0]);
335 fra.me.REG[1] = NEW_State_parser___State___init(REGB0, fra.me.REG[1]);
336 CALL_abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
337 }
338 stack_frame_head = fra.me.prev;
339 return;
340 }
341 val_t parser___Parser___state(val_t p0){
342 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
343 val_t REGB0;
344 val_t REGB1;
345 val_t REGB2;
346 val_t tmp;
347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
348 fra.me.file = LOCATE_parser;
349 fra.me.line = 80;
350 fra.me.meth = LOCATE_parser___Parser___state;
351 fra.me.has_broke = 0;
352 fra.me.REG_size = 2;
353 fra.me.REG[0] = NIT_NULL;
354 fra.me.REG[1] = NIT_NULL;
355 fra.me.REG[0] = p0;
356 /* ./parser//parser.nit:83 */
357 REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
358 if (UNTAG_Bool(REGB0)) {
359 } else {
360 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 83);
361 }
362 fra.me.REG[1] = ATTR_parser___Parser____stack(fra.me.REG[0]);
363 REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
364 if (UNTAG_Bool(REGB0)) {
365 } else {
366 nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_parser, 83);
367 }
368 REGB0 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
369 /* ./../lib/standard//collection//array.nit:245 */
370 REGB1 = TAG_Int(0);
371 /* ./../lib/standard//kernel.nit:213 */
372 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
373 /* ./../lib/standard//collection//array.nit:245 */
374 if (UNTAG_Bool(REGB1)) {
375 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
376 if (UNTAG_Bool(REGB1)) {
377 } else {
378 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
379 }
380 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
381 /* ./../lib/standard//kernel.nit:212 */
382 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
383 } else {
384 /* ./../lib/standard//collection//array.nit:245 */
385 REGB2 = TAG_Bool(false);
386 REGB1 = REGB2;
387 }
388 if (UNTAG_Bool(REGB1)) {
389 } else {
390 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
391 }
392 /* ./../lib/standard//collection//array.nit:246 */
393 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[1]);
394 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
395 if (UNTAG_Bool(REGB1)) {
396 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
397 }
398 /* ./../lib/standard//collection//array.nit:654 */
399 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
400 /* ./../lib/standard//collection//array.nit:246 */
401 goto label1;
402 label1: while(0);
403 /* ./parser//parser.nit:83 */
404 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
405 if (UNTAG_Bool(REGB0)) {
406 nit_abort("Reciever is null", NULL, LOCATE_parser, 83);
407 }
408 REGB0 = CALL_parser___State___state(fra.me.REG[1])(fra.me.REG[1]);
409 goto label2;
410 label2: while(0);
411 stack_frame_head = fra.me.prev;
412 return REGB0;
413 }
414 val_t parser___Parser___pop(val_t p0){
415 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
416 val_t REGB0;
417 val_t REGB1;
418 val_t REGB2;
419 val_t tmp;
420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
421 fra.me.file = LOCATE_parser;
422 fra.me.line = 86;
423 fra.me.meth = LOCATE_parser___Parser___pop;
424 fra.me.has_broke = 0;
425 fra.me.REG_size = 2;
426 fra.me.REG[0] = NIT_NULL;
427 fra.me.REG[1] = NIT_NULL;
428 fra.me.REG[0] = p0;
429 /* ./parser//parser.nit:89 */
430 REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 89);
434 }
435 fra.me.REG[1] = ATTR_parser___Parser____stack(fra.me.REG[0]);
436 REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
437 if (UNTAG_Bool(REGB0)) {
438 } else {
439 nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_parser, 89);
440 }
441 REGB0 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
442 /* ./../lib/standard//collection//array.nit:245 */
443 REGB1 = TAG_Int(0);
444 /* ./../lib/standard//kernel.nit:213 */
445 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
446 /* ./../lib/standard//collection//array.nit:245 */
447 if (UNTAG_Bool(REGB1)) {
448 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
449 if (UNTAG_Bool(REGB1)) {
450 } else {
451 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
452 }
453 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
454 /* ./../lib/standard//kernel.nit:212 */
455 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
456 } else {
457 /* ./../lib/standard//collection//array.nit:245 */
458 REGB2 = TAG_Bool(false);
459 REGB1 = REGB2;
460 }
461 if (UNTAG_Bool(REGB1)) {
462 } else {
463 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
464 }
465 /* ./../lib/standard//collection//array.nit:246 */
466 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[1]);
467 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
468 if (UNTAG_Bool(REGB1)) {
469 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
470 }
471 /* ./../lib/standard//collection//array.nit:654 */
472 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
473 /* ./../lib/standard//collection//array.nit:246 */
474 goto label1;
475 label1: while(0);
476 /* ./parser//parser.nit:89 */
477 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
478 if (UNTAG_Bool(REGB0)) {
479 nit_abort("Reciever is null", NULL, LOCATE_parser, 89);
480 }
481 fra.me.REG[1] = CALL_parser___State___nodes(fra.me.REG[1])(fra.me.REG[1]);
482 /* ./parser//parser.nit:90 */
483 REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
484 if (UNTAG_Bool(REGB0)) {
485 } else {
486 nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_parser, 90);
487 }
488 REGB0 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
489 REGB1 = TAG_Int(1);
490 /* ./../lib/standard//kernel.nit:217 */
491 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
492 /* ./parser//parser.nit:90 */
493 ATTR_parser___Parser____stack_pos(fra.me.REG[0]) = REGB1;
494 /* ./parser//parser.nit:91 */
495 goto label2;
496 label2: while(0);
497 stack_frame_head = fra.me.prev;
498 return fra.me.REG[1];
499 }
500 val_t parser___Parser___parse(val_t p0){
501 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
502 val_t REGB0;
503 val_t REGB1;
504 val_t REGB2;
505 val_t REGB3;
506 val_t REGB4;
507 val_t REGB5;
508 val_t REGB6;
509 val_t REGB7;
510 val_t REGB8;
511 val_t tmp;
512 static val_t once_value_4; /* Once value */
513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
514 fra.me.file = LOCATE_parser;
515 fra.me.line = 94;
516 fra.me.meth = LOCATE_parser___Parser___parse;
517 fra.me.has_broke = 0;
518 fra.me.REG_size = 6;
519 fra.me.REG[0] = NIT_NULL;
520 fra.me.REG[1] = NIT_NULL;
521 fra.me.REG[2] = NIT_NULL;
522 fra.me.REG[3] = NIT_NULL;
523 fra.me.REG[4] = NIT_NULL;
524 fra.me.REG[5] = NIT_NULL;
525 fra.me.REG[0] = p0;
526 /* ./parser//parser.nit:97 */
527 REGB0 = TAG_Int(0);
528 CALL_parser___Parser___push(fra.me.REG[0])(fra.me.REG[0], REGB0, NIT_NULL);
529 /* ./parser//parser.nit:99 */
530 REGB0 = TAG_Bool(ATTR_parser___Parser____lexer(fra.me.REG[0])!=NIT_NULL);
531 if (UNTAG_Bool(REGB0)) {
532 } else {
533 nit_abort("Uninitialized attribute %s", "_lexer", LOCATE_parser, 99);
534 }
535 fra.me.REG[1] = ATTR_parser___Parser____lexer(fra.me.REG[0]);
536 /* ./parser//parser.nit:100 */
537 while(1) {
538 /* ./parser//parser.nit:101 */
539 fra.me.REG[2] = CALL_lexer___Lexer___peek(fra.me.REG[1])(fra.me.REG[1]);
540 /* ./parser//parser.nit:102 */
541 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AError, ID_AError)) /*cast AError*/;
542 if (UNTAG_Bool(REGB0)) {
543 /* ./parser//parser.nit:103 */
544 fra.me.REG[3] = NEW_Start_parser_prod___Start___init(NIT_NULL, fra.me.REG[2]);
545 goto label1;
546 }
547 /* ./parser//parser.nit:106 */
548 REGB0 = CALL_lexer___Token___parser_index(fra.me.REG[2])(fra.me.REG[2]);
549 /* ./parser//parser.nit:107 */
550 REGB1 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
551 REGB2 = TAG_Int(2);
552 REGB2 = CALL_tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB2);
553 /* ./parser//parser.nit:108 */
554 REGB1 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
555 REGB3 = TAG_Int(3);
556 REGB3 = CALL_tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB3);
557 /* ./parser//parser.nit:110 */
558 REGB1 = TAG_Int(1);
559 /* ./parser//parser.nit:111 */
560 REGB4 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
561 REGB5 = TAG_Int(0);
562 REGB5 = CALL_tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB4, REGB5);
563 REGB4 = TAG_Int(1);
564 /* ./../lib/standard//kernel.nit:217 */
565 REGB4 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB4));
566 /* ./parser//parser.nit:113 */
567 while(1) {
568 /* ./../lib/standard//kernel.nit:211 */
569 REGB5 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB4));
570 /* ./parser//parser.nit:113 */
571 if (UNTAG_Bool(REGB5)) {
572 /* ./../lib/standard//kernel.nit:215 */
573 REGB5 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
574 /* ./parser//parser.nit:114 */
575 REGB6 = TAG_Int(2);
576 /* ./../lib/standard//kernel.nit:219 */
577 REGB6 = TAG_Int(UNTAG_Int(REGB5)/UNTAG_Int(REGB6));
578 /* ./parser//parser.nit:115 */
579 REGB5 = TAG_Int(3);
580 /* ./../lib/standard//kernel.nit:218 */
581 REGB5 = TAG_Int(UNTAG_Int(REGB6)*UNTAG_Int(REGB5));
582 /* ./parser//parser.nit:115 */
583 REGB7 = TAG_Int(1);
584 /* ./../lib/standard//kernel.nit:215 */
585 REGB7 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB7));
586 /* ./parser//parser.nit:117 */
587 REGB5 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
588 REGB5 = CALL_tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB5, REGB7);
589 /* ./../lib/standard//kernel.nit:212 */
590 REGB8 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB5));
591 /* ./parser//parser.nit:118 */
592 if (UNTAG_Bool(REGB8)) {
593 /* ./parser//parser.nit:119 */
594 REGB8 = TAG_Int(1);
595 /* ./../lib/standard//kernel.nit:217 */
596 REGB8 = TAG_Int(UNTAG_Int(REGB6)-UNTAG_Int(REGB8));
597 /* ./parser//parser.nit:119 */
598 REGB4 = REGB8;
599 } else {
600 /* ./../lib/standard//kernel.nit:214 */
601 REGB5 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB5));
602 /* ./parser//parser.nit:120 */
603 if (UNTAG_Bool(REGB5)) {
604 /* ./parser//parser.nit:121 */
605 REGB5 = TAG_Int(1);
606 /* ./../lib/standard//kernel.nit:215 */
607 REGB5 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB5));
608 /* ./parser//parser.nit:121 */
609 REGB1 = REGB5;
610 } else {
611 /* ./parser//parser.nit:123 */
612 REGB5 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
613 REGB6 = TAG_Int(1);
614 /* ./../lib/standard//kernel.nit:215 */
615 REGB6 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB6));
616 /* ./parser//parser.nit:123 */
617 REGB6 = CALL_tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB5, REGB6);
618 REGB2 = REGB6;
619 /* ./parser//parser.nit:124 */
620 REGB6 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
621 REGB5 = TAG_Int(2);
622 /* ./../lib/standard//kernel.nit:215 */
623 REGB5 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB5));
624 /* ./parser//parser.nit:124 */
625 REGB5 = CALL_tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB6, REGB5);
626 REGB3 = REGB5;
627 /* ./parser//parser.nit:125 */
628 goto label2;
629 }
630 }
631 } else {
632 /* ./parser//parser.nit:113 */
633 goto label2;
634 }
635 }
636 label2: while(0);
637 /* ./parser//parser.nit:129 */
638 REGB1 = TAG_Int(0);
639 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
640 if (UNTAG_Bool(REGB0)) {
641 } else {
642 /* ./../lib/standard//kernel.nit:207 */
643 REGB1 = TAG_Bool((REGB2)==(REGB1));
644 /* ./parser//parser.nit:129 */
645 REGB0 = REGB1;
646 }
647 if (UNTAG_Bool(REGB0)) {
648 /* ./parser//parser.nit:130 */
649 fra.me.REG[4] = CALL_lexer___Lexer___next(fra.me.REG[1])(fra.me.REG[1]);
650 CALL_parser___Parser___push(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[4]);
651 } else {
652 /* ./parser//parser.nit:131 */
653 REGB0 = TAG_Int(1);
654 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
655 if (UNTAG_Bool(REGB1)) {
656 } else {
657 /* ./../lib/standard//kernel.nit:207 */
658 REGB0 = TAG_Bool((REGB2)==(REGB0));
659 /* ./parser//parser.nit:131 */
660 REGB1 = REGB0;
661 }
662 if (UNTAG_Bool(REGB1)) {
663 /* ./parser//parser.nit:132 */
664 REGB1 = TAG_Bool(ATTR_parser___Parser____reduce_table(fra.me.REG[0])!=NIT_NULL);
665 if (UNTAG_Bool(REGB1)) {
666 } else {
667 nit_abort("Uninitialized attribute %s", "_reduce_table", LOCATE_parser, 132);
668 }
669 fra.me.REG[4] = ATTR_parser___Parser____reduce_table(fra.me.REG[0]);
670 /* ./../lib/standard//collection//array.nit:245 */
671 REGB1 = TAG_Int(0);
672 /* ./../lib/standard//kernel.nit:213 */
673 REGB1 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB1));
674 /* ./../lib/standard//collection//array.nit:245 */
675 if (UNTAG_Bool(REGB1)) {
676 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
677 if (UNTAG_Bool(REGB1)) {
678 } else {
679 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
680 }
681 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
682 /* ./../lib/standard//kernel.nit:212 */
683 REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
684 } else {
685 /* ./../lib/standard//collection//array.nit:245 */
686 REGB0 = TAG_Bool(false);
687 REGB1 = REGB0;
688 }
689 if (UNTAG_Bool(REGB1)) {
690 } else {
691 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
692 }
693 /* ./../lib/standard//collection//array.nit:246 */
694 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
695 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
696 if (UNTAG_Bool(REGB1)) {
697 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
698 }
699 /* ./../lib/standard//collection//array.nit:654 */
700 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
701 /* ./../lib/standard//collection//array.nit:246 */
702 goto label3;
703 label3: while(0);
704 /* ./parser//parser.nit:132 */
705 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
706 if (UNTAG_Bool(REGB3)) {
707 nit_abort("Reciever is null", NULL, LOCATE_parser, 132);
708 }
709 CALL_parser___ReduceAction___action(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
710 } else {
711 /* ./parser//parser.nit:133 */
712 REGB3 = TAG_Int(2);
713 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
714 if (UNTAG_Bool(REGB1)) {
715 } else {
716 /* ./../lib/standard//kernel.nit:207 */
717 REGB3 = TAG_Bool((REGB2)==(REGB3));
718 /* ./parser//parser.nit:133 */
719 REGB1 = REGB3;
720 }
721 if (UNTAG_Bool(REGB1)) {
722 /* ./parser//parser.nit:134 */
723 fra.me.REG[4] = CALL_lexer___Lexer___next(fra.me.REG[1])(fra.me.REG[1]);
724 /* ./parser//parser.nit:135 */
725 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_EOF, ID_EOF)) /*cast EOF*/;
726 if (UNTAG_Bool(REGB1)) {
727 } else {
728 nit_abort("Assert failed", NULL, LOCATE_parser, 135);
729 }
730 /* ./parser//parser.nit:136 */
731 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[0])(fra.me.REG[0]);
732 /* ./parser//parser.nit:137 */
733 REGB1 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_AModule, ID_AModule)) /*cast AModule*/;
734 if (UNTAG_Bool(REGB1)) {
735 } else {
736 nit_abort("Assert failed", NULL, LOCATE_parser, 137);
737 }
738 /* ./parser//parser.nit:138 */
739 fra.me.REG[4] = NEW_Start_parser_prod___Start___init(fra.me.REG[5], fra.me.REG[4]);
740 /* ./parser//parser.nit:139 */
741 fra.me.REG[5] = NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init();
742 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
743 /* ./parser//parser.nit:140 */
744 fra.me.REG[3] = fra.me.REG[4];
745 goto label1;
746 } else {
747 /* ./parser//parser.nit:141 */
748 REGB1 = TAG_Int(3);
749 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
750 if (UNTAG_Bool(REGB3)) {
751 } else {
752 /* ./../lib/standard//kernel.nit:207 */
753 REGB1 = TAG_Bool((REGB2)==(REGB1));
754 /* ./parser//parser.nit:141 */
755 REGB3 = REGB1;
756 }
757 if (UNTAG_Bool(REGB3)) {
758 /* ./parser//parser.nit:142 */
759 if (!once_value_4) {
760 fra.me.REG[4] = BOX_NativeString("Syntax error: unexpected token.");
761 REGB3 = TAG_Int(31);
762 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
763 once_value_4 = fra.me.REG[4];
764 register_static_object(&once_value_4);
765 } else fra.me.REG[4] = once_value_4;
766 fra.me.REG[4] = fra.me.REG[4];
767 fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
768 fra.me.REG[2] = NEW_AError_lexer___AError___init_error(fra.me.REG[4], fra.me.REG[2]);
769 /* ./parser//parser.nit:143 */
770 fra.me.REG[2] = NEW_Start_parser_prod___Start___init(NIT_NULL, fra.me.REG[2]);
771 /* ./parser//parser.nit:144 */
772 fra.me.REG[3] = fra.me.REG[2];
773 goto label1;
774 }
775 }
776 }
777 }
778 }
779 label1: while(0);
780 stack_frame_head = fra.me.prev;
781 return fra.me.REG[3];
782 }
783 void parser___Parser___build_reduce_table(val_t p0){
784 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
785 val_t REGB0;
786 val_t tmp;
787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
788 fra.me.file = LOCATE_parser;
789 fra.me.line = 150;
790 fra.me.meth = LOCATE_parser___Parser___build_reduce_table;
791 fra.me.has_broke = 0;
792 fra.me.REG_size = 3;
793 fra.me.REG[0] = NIT_NULL;
794 fra.me.REG[1] = NIT_NULL;
795 fra.me.REG[2] = NIT_NULL;
796 fra.me.REG[0] = p0;
797 /* ./parser//parser.nit:152 */
798 REGB0 = TAG_Int(692);
799 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
800 /* ./parser//parser.nit:153 */
801 REGB0 = TAG_Int(0);
802 fra.me.REG[2] = NEW_ReduceAction0_parser___ReduceAction0___init(REGB0);
803 /* ./parser//parser.nit:152 */
804 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
805 /* ./parser//parser.nit:154 */
806 REGB0 = TAG_Int(0);
807 fra.me.REG[2] = NEW_ReduceAction1_parser___ReduceAction1___init(REGB0);
808 /* ./parser//parser.nit:152 */
809 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
810 /* ./parser//parser.nit:155 */
811 REGB0 = TAG_Int(0);
812 fra.me.REG[2] = NEW_ReduceAction2_parser___ReduceAction2___init(REGB0);
813 /* ./parser//parser.nit:152 */
814 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
815 /* ./parser//parser.nit:156 */
816 REGB0 = TAG_Int(0);
817 fra.me.REG[2] = NEW_ReduceAction3_parser___ReduceAction3___init(REGB0);
818 /* ./parser//parser.nit:152 */
819 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
820 /* ./parser//parser.nit:157 */
821 REGB0 = TAG_Int(0);
822 fra.me.REG[2] = NEW_ReduceAction4_parser___ReduceAction4___init(REGB0);
823 /* ./parser//parser.nit:152 */
824 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
825 /* ./parser//parser.nit:158 */
826 REGB0 = TAG_Int(0);
827 fra.me.REG[2] = NEW_ReduceAction5_parser___ReduceAction5___init(REGB0);
828 /* ./parser//parser.nit:152 */
829 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
830 /* ./parser//parser.nit:159 */
831 REGB0 = TAG_Int(0);
832 fra.me.REG[2] = NEW_ReduceAction6_parser___ReduceAction6___init(REGB0);
833 /* ./parser//parser.nit:152 */
834 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
835 /* ./parser//parser.nit:160 */
836 REGB0 = TAG_Int(0);
837 fra.me.REG[2] = NEW_ReduceAction7_parser___ReduceAction7___init(REGB0);
838 /* ./parser//parser.nit:152 */
839 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
840 /* ./parser//parser.nit:161 */
841 REGB0 = TAG_Int(0);
842 fra.me.REG[2] = NEW_ReduceAction8_parser___ReduceAction8___init(REGB0);
843 /* ./parser//parser.nit:152 */
844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
845 /* ./parser//parser.nit:162 */
846 REGB0 = TAG_Int(0);
847 fra.me.REG[2] = NEW_ReduceAction9_parser___ReduceAction9___init(REGB0);
848 /* ./parser//parser.nit:152 */
849 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
850 /* ./parser//parser.nit:163 */
851 REGB0 = TAG_Int(0);
852 fra.me.REG[2] = NEW_ReduceAction10_parser___ReduceAction10___init(REGB0);
853 /* ./parser//parser.nit:152 */
854 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
855 /* ./parser//parser.nit:164 */
856 REGB0 = TAG_Int(0);
857 fra.me.REG[2] = NEW_ReduceAction11_parser___ReduceAction11___init(REGB0);
858 /* ./parser//parser.nit:152 */
859 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
860 /* ./parser//parser.nit:165 */
861 REGB0 = TAG_Int(0);
862 fra.me.REG[2] = NEW_ReduceAction12_parser___ReduceAction12___init(REGB0);
863 /* ./parser//parser.nit:152 */
864 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
865 /* ./parser//parser.nit:166 */
866 REGB0 = TAG_Int(0);
867 fra.me.REG[2] = NEW_ReduceAction13_parser___ReduceAction13___init(REGB0);
868 /* ./parser//parser.nit:152 */
869 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
870 /* ./parser//parser.nit:167 */
871 REGB0 = TAG_Int(0);
872 fra.me.REG[2] = NEW_ReduceAction14_parser___ReduceAction14___init(REGB0);
873 /* ./parser//parser.nit:152 */
874 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
875 /* ./parser//parser.nit:168 */
876 REGB0 = TAG_Int(0);
877 fra.me.REG[2] = NEW_ReduceAction15_parser___ReduceAction15___init(REGB0);
878 /* ./parser//parser.nit:152 */
879 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
880 /* ./parser//parser.nit:169 */
881 REGB0 = TAG_Int(0);
882 fra.me.REG[2] = NEW_ReduceAction16_parser___ReduceAction16___init(REGB0);
883 /* ./parser//parser.nit:152 */
884 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
885 /* ./parser//parser.nit:170 */
886 REGB0 = TAG_Int(0);
887 fra.me.REG[2] = NEW_ReduceAction17_parser___ReduceAction17___init(REGB0);
888 /* ./parser//parser.nit:152 */
889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
890 /* ./parser//parser.nit:171 */
891 REGB0 = TAG_Int(0);
892 fra.me.REG[2] = NEW_ReduceAction18_parser___ReduceAction18___init(REGB0);
893 /* ./parser//parser.nit:152 */
894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
895 /* ./parser//parser.nit:172 */
896 REGB0 = TAG_Int(0);
897 fra.me.REG[2] = NEW_ReduceAction19_parser___ReduceAction19___init(REGB0);
898 /* ./parser//parser.nit:152 */
899 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
900 /* ./parser//parser.nit:173 */
901 REGB0 = TAG_Int(0);
902 fra.me.REG[2] = NEW_ReduceAction20_parser___ReduceAction20___init(REGB0);
903 /* ./parser//parser.nit:152 */
904 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
905 /* ./parser//parser.nit:174 */
906 REGB0 = TAG_Int(0);
907 fra.me.REG[2] = NEW_ReduceAction21_parser___ReduceAction21___init(REGB0);
908 /* ./parser//parser.nit:152 */
909 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
910 /* ./parser//parser.nit:175 */
911 REGB0 = TAG_Int(0);
912 fra.me.REG[2] = NEW_ReduceAction22_parser___ReduceAction22___init(REGB0);
913 /* ./parser//parser.nit:152 */
914 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
915 /* ./parser//parser.nit:176 */
916 REGB0 = TAG_Int(0);
917 fra.me.REG[2] = NEW_ReduceAction23_parser___ReduceAction23___init(REGB0);
918 /* ./parser//parser.nit:152 */
919 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
920 /* ./parser//parser.nit:177 */
921 REGB0 = TAG_Int(0);
922 fra.me.REG[2] = NEW_ReduceAction24_parser___ReduceAction24___init(REGB0);
923 /* ./parser//parser.nit:152 */
924 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
925 /* ./parser//parser.nit:178 */
926 REGB0 = TAG_Int(0);
927 fra.me.REG[2] = NEW_ReduceAction25_parser___ReduceAction25___init(REGB0);
928 /* ./parser//parser.nit:152 */
929 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
930 /* ./parser//parser.nit:179 */
931 REGB0 = TAG_Int(0);
932 fra.me.REG[2] = NEW_ReduceAction26_parser___ReduceAction26___init(REGB0);
933 /* ./parser//parser.nit:152 */
934 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
935 /* ./parser//parser.nit:180 */
936 REGB0 = TAG_Int(0);
937 fra.me.REG[2] = NEW_ReduceAction27_parser___ReduceAction27___init(REGB0);
938 /* ./parser//parser.nit:152 */
939 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
940 /* ./parser//parser.nit:181 */
941 REGB0 = TAG_Int(0);
942 fra.me.REG[2] = NEW_ReduceAction28_parser___ReduceAction28___init(REGB0);
943 /* ./parser//parser.nit:152 */
944 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
945 /* ./parser//parser.nit:182 */
946 REGB0 = TAG_Int(0);
947 fra.me.REG[2] = NEW_ReduceAction29_parser___ReduceAction29___init(REGB0);
948 /* ./parser//parser.nit:152 */
949 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
950 /* ./parser//parser.nit:183 */
951 REGB0 = TAG_Int(0);
952 fra.me.REG[2] = NEW_ReduceAction30_parser___ReduceAction30___init(REGB0);
953 /* ./parser//parser.nit:152 */
954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
955 /* ./parser//parser.nit:184 */
956 REGB0 = TAG_Int(0);
957 fra.me.REG[2] = NEW_ReduceAction31_parser___ReduceAction31___init(REGB0);
958 /* ./parser//parser.nit:152 */
959 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
960 /* ./parser//parser.nit:185 */
961 REGB0 = TAG_Int(1);
962 fra.me.REG[2] = NEW_ReduceAction32_parser___ReduceAction32___init(REGB0);
963 /* ./parser//parser.nit:152 */
964 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
965 /* ./parser//parser.nit:186 */
966 REGB0 = TAG_Int(2);
967 fra.me.REG[2] = NEW_ReduceAction33_parser___ReduceAction33___init(REGB0);
968 /* ./parser//parser.nit:152 */
969 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
970 /* ./parser//parser.nit:187 */
971 REGB0 = TAG_Int(2);
972 fra.me.REG[2] = NEW_ReduceAction34_parser___ReduceAction34___init(REGB0);
973 /* ./parser//parser.nit:152 */
974 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
975 /* ./parser//parser.nit:188 */
976 REGB0 = TAG_Int(3);
977 fra.me.REG[2] = NEW_ReduceAction35_parser___ReduceAction35___init(REGB0);
978 /* ./parser//parser.nit:152 */
979 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
980 /* ./parser//parser.nit:189 */
981 REGB0 = TAG_Int(3);
982 fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction36___init(REGB0);
983 /* ./parser//parser.nit:152 */
984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
985 /* ./parser//parser.nit:190 */
986 REGB0 = TAG_Int(4);
987 fra.me.REG[2] = NEW_ReduceAction37_parser___ReduceAction37___init(REGB0);
988 /* ./parser//parser.nit:152 */
989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
990 /* ./parser//parser.nit:191 */
991 REGB0 = TAG_Int(4);
992 fra.me.REG[2] = NEW_ReduceAction37_parser___ReduceAction37___init(REGB0);
993 /* ./parser//parser.nit:152 */
994 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
995 /* ./parser//parser.nit:192 */
996 REGB0 = TAG_Int(5);
997 fra.me.REG[2] = NEW_ReduceAction39_parser___ReduceAction39___init(REGB0);
998 /* ./parser//parser.nit:152 */
999 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1000 /* ./parser//parser.nit:193 */
1001 REGB0 = TAG_Int(5);
1002 fra.me.REG[2] = NEW_ReduceAction40_parser___ReduceAction40___init(REGB0);
1003 /* ./parser//parser.nit:152 */
1004 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1005 /* ./parser//parser.nit:194 */
1006 REGB0 = TAG_Int(5);
1007 fra.me.REG[2] = NEW_ReduceAction41_parser___ReduceAction41___init(REGB0);
1008 /* ./parser//parser.nit:152 */
1009 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1010 /* ./parser//parser.nit:195 */
1011 REGB0 = TAG_Int(5);
1012 fra.me.REG[2] = NEW_ReduceAction42_parser___ReduceAction42___init(REGB0);
1013 /* ./parser//parser.nit:152 */
1014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1015 /* ./parser//parser.nit:196 */
1016 REGB0 = TAG_Int(5);
1017 fra.me.REG[2] = NEW_ReduceAction43_parser___ReduceAction43___init(REGB0);
1018 /* ./parser//parser.nit:152 */
1019 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1020 /* ./parser//parser.nit:197 */
1021 REGB0 = TAG_Int(5);
1022 fra.me.REG[2] = NEW_ReduceAction44_parser___ReduceAction44___init(REGB0);
1023 /* ./parser//parser.nit:152 */
1024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1025 /* ./parser//parser.nit:198 */
1026 REGB0 = TAG_Int(5);
1027 fra.me.REG[2] = NEW_ReduceAction45_parser___ReduceAction45___init(REGB0);
1028 /* ./parser//parser.nit:152 */
1029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1030 /* ./parser//parser.nit:199 */
1031 REGB0 = TAG_Int(5);
1032 fra.me.REG[2] = NEW_ReduceAction46_parser___ReduceAction46___init(REGB0);
1033 /* ./parser//parser.nit:152 */
1034 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1035 /* ./parser//parser.nit:200 */
1036 REGB0 = TAG_Int(5);
1037 fra.me.REG[2] = NEW_ReduceAction47_parser___ReduceAction47___init(REGB0);
1038 /* ./parser//parser.nit:152 */
1039 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1040 /* ./parser//parser.nit:201 */
1041 REGB0 = TAG_Int(5);
1042 fra.me.REG[2] = NEW_ReduceAction48_parser___ReduceAction48___init(REGB0);
1043 /* ./parser//parser.nit:152 */
1044 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1045 /* ./parser//parser.nit:202 */
1046 REGB0 = TAG_Int(5);
1047 fra.me.REG[2] = NEW_ReduceAction49_parser___ReduceAction49___init(REGB0);
1048 /* ./parser//parser.nit:152 */
1049 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1050 /* ./parser//parser.nit:203 */
1051 REGB0 = TAG_Int(5);
1052 fra.me.REG[2] = NEW_ReduceAction50_parser___ReduceAction50___init(REGB0);
1053 /* ./parser//parser.nit:152 */
1054 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1055 /* ./parser//parser.nit:204 */
1056 REGB0 = TAG_Int(5);
1057 fra.me.REG[2] = NEW_ReduceAction51_parser___ReduceAction51___init(REGB0);
1058 /* ./parser//parser.nit:152 */
1059 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1060 /* ./parser//parser.nit:205 */
1061 REGB0 = TAG_Int(5);
1062 fra.me.REG[2] = NEW_ReduceAction52_parser___ReduceAction52___init(REGB0);
1063 /* ./parser//parser.nit:152 */
1064 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1065 /* ./parser//parser.nit:206 */
1066 REGB0 = TAG_Int(5);
1067 fra.me.REG[2] = NEW_ReduceAction53_parser___ReduceAction53___init(REGB0);
1068 /* ./parser//parser.nit:152 */
1069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1070 /* ./parser//parser.nit:207 */
1071 REGB0 = TAG_Int(5);
1072 fra.me.REG[2] = NEW_ReduceAction54_parser___ReduceAction54___init(REGB0);
1073 /* ./parser//parser.nit:152 */
1074 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1075 /* ./parser//parser.nit:208 */
1076 REGB0 = TAG_Int(6);
1077 fra.me.REG[2] = NEW_ReduceAction55_parser___ReduceAction55___init(REGB0);
1078 /* ./parser//parser.nit:152 */
1079 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1080 /* ./parser//parser.nit:209 */
1081 REGB0 = TAG_Int(6);
1082 fra.me.REG[2] = NEW_ReduceAction56_parser___ReduceAction56___init(REGB0);
1083 /* ./parser//parser.nit:152 */
1084 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1085 /* ./parser//parser.nit:210 */
1086 REGB0 = TAG_Int(6);
1087 fra.me.REG[2] = NEW_ReduceAction57_parser___ReduceAction57___init(REGB0);
1088 /* ./parser//parser.nit:152 */
1089 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1090 /* ./parser//parser.nit:211 */
1091 REGB0 = TAG_Int(6);
1092 fra.me.REG[2] = NEW_ReduceAction58_parser___ReduceAction58___init(REGB0);
1093 /* ./parser//parser.nit:152 */
1094 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1095 /* ./parser//parser.nit:212 */
1096 REGB0 = TAG_Int(7);
1097 fra.me.REG[2] = NEW_ReduceAction59_parser___ReduceAction59___init(REGB0);
1098 /* ./parser//parser.nit:152 */
1099 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1100 /* ./parser//parser.nit:213 */
1101 REGB0 = TAG_Int(7);
1102 fra.me.REG[2] = NEW_ReduceAction60_parser___ReduceAction60___init(REGB0);
1103 /* ./parser//parser.nit:152 */
1104 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1105 /* ./parser//parser.nit:214 */
1106 REGB0 = TAG_Int(8);
1107 fra.me.REG[2] = NEW_ReduceAction61_parser___ReduceAction61___init(REGB0);
1108 /* ./parser//parser.nit:152 */
1109 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1110 /* ./parser//parser.nit:215 */
1111 REGB0 = TAG_Int(9);
1112 fra.me.REG[2] = NEW_ReduceAction62_parser___ReduceAction62___init(REGB0);
1113 /* ./parser//parser.nit:152 */
1114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1115 /* ./parser//parser.nit:216 */
1116 REGB0 = TAG_Int(9);
1117 fra.me.REG[2] = NEW_ReduceAction63_parser___ReduceAction63___init(REGB0);
1118 /* ./parser//parser.nit:152 */
1119 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1120 /* ./parser//parser.nit:217 */
1121 REGB0 = TAG_Int(10);
1122 fra.me.REG[2] = NEW_ReduceAction64_parser___ReduceAction64___init(REGB0);
1123 /* ./parser//parser.nit:152 */
1124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1125 /* ./parser//parser.nit:218 */
1126 REGB0 = TAG_Int(10);
1127 fra.me.REG[2] = NEW_ReduceAction65_parser___ReduceAction65___init(REGB0);
1128 /* ./parser//parser.nit:152 */
1129 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1130 /* ./parser//parser.nit:219 */
1131 REGB0 = TAG_Int(11);
1132 fra.me.REG[2] = NEW_ReduceAction66_parser___ReduceAction66___init(REGB0);
1133 /* ./parser//parser.nit:152 */
1134 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1135 /* ./parser//parser.nit:220 */
1136 REGB0 = TAG_Int(12);
1137 fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction67___init(REGB0);
1138 /* ./parser//parser.nit:152 */
1139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1140 /* ./parser//parser.nit:221 */
1141 REGB0 = TAG_Int(12);
1142 fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction68___init(REGB0);
1143 /* ./parser//parser.nit:152 */
1144 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1145 /* ./parser//parser.nit:222 */
1146 REGB0 = TAG_Int(12);
1147 fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction69___init(REGB0);
1148 /* ./parser//parser.nit:152 */
1149 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1150 /* ./parser//parser.nit:223 */
1151 REGB0 = TAG_Int(12);
1152 fra.me.REG[2] = NEW_ReduceAction70_parser___ReduceAction70___init(REGB0);
1153 /* ./parser//parser.nit:152 */
1154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1155 /* ./parser//parser.nit:224 */
1156 REGB0 = TAG_Int(12);
1157 fra.me.REG[2] = NEW_ReduceAction71_parser___ReduceAction71___init(REGB0);
1158 /* ./parser//parser.nit:152 */
1159 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1160 /* ./parser//parser.nit:225 */
1161 REGB0 = TAG_Int(12);
1162 fra.me.REG[2] = NEW_ReduceAction72_parser___ReduceAction72___init(REGB0);
1163 /* ./parser//parser.nit:152 */
1164 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1165 /* ./parser//parser.nit:226 */
1166 REGB0 = TAG_Int(12);
1167 fra.me.REG[2] = NEW_ReduceAction73_parser___ReduceAction73___init(REGB0);
1168 /* ./parser//parser.nit:152 */
1169 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1170 /* ./parser//parser.nit:227 */
1171 REGB0 = TAG_Int(12);
1172 fra.me.REG[2] = NEW_ReduceAction74_parser___ReduceAction74___init(REGB0);
1173 /* ./parser//parser.nit:152 */
1174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1175 /* ./parser//parser.nit:228 */
1176 REGB0 = TAG_Int(12);
1177 fra.me.REG[2] = NEW_ReduceAction75_parser___ReduceAction75___init(REGB0);
1178 /* ./parser//parser.nit:152 */
1179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1180 /* ./parser//parser.nit:229 */
1181 REGB0 = TAG_Int(12);
1182 fra.me.REG[2] = NEW_ReduceAction76_parser___ReduceAction76___init(REGB0);
1183 /* ./parser//parser.nit:152 */
1184 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1185 /* ./parser//parser.nit:230 */
1186 REGB0 = TAG_Int(12);
1187 fra.me.REG[2] = NEW_ReduceAction77_parser___ReduceAction77___init(REGB0);
1188 /* ./parser//parser.nit:152 */
1189 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1190 /* ./parser//parser.nit:231 */
1191 REGB0 = TAG_Int(12);
1192 fra.me.REG[2] = NEW_ReduceAction78_parser___ReduceAction78___init(REGB0);
1193 /* ./parser//parser.nit:152 */
1194 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1195 /* ./parser//parser.nit:232 */
1196 REGB0 = TAG_Int(12);
1197 fra.me.REG[2] = NEW_ReduceAction79_parser___ReduceAction79___init(REGB0);
1198 /* ./parser//parser.nit:152 */
1199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1200 /* ./parser//parser.nit:233 */
1201 REGB0 = TAG_Int(12);
1202 fra.me.REG[2] = NEW_ReduceAction80_parser___ReduceAction80___init(REGB0);
1203 /* ./parser//parser.nit:152 */
1204 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1205 /* ./parser//parser.nit:234 */
1206 REGB0 = TAG_Int(12);
1207 fra.me.REG[2] = NEW_ReduceAction81_parser___ReduceAction81___init(REGB0);
1208 /* ./parser//parser.nit:152 */
1209 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1210 /* ./parser//parser.nit:235 */
1211 REGB0 = TAG_Int(12);
1212 fra.me.REG[2] = NEW_ReduceAction82_parser___ReduceAction82___init(REGB0);
1213 /* ./parser//parser.nit:152 */
1214 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1215 /* ./parser//parser.nit:236 */
1216 REGB0 = TAG_Int(12);
1217 fra.me.REG[2] = NEW_ReduceAction83_parser___ReduceAction83___init(REGB0);
1218 /* ./parser//parser.nit:152 */
1219 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1220 /* ./parser//parser.nit:237 */
1221 REGB0 = TAG_Int(12);
1222 fra.me.REG[2] = NEW_ReduceAction84_parser___ReduceAction84___init(REGB0);
1223 /* ./parser//parser.nit:152 */
1224 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1225 /* ./parser//parser.nit:238 */
1226 REGB0 = TAG_Int(12);
1227 fra.me.REG[2] = NEW_ReduceAction85_parser___ReduceAction85___init(REGB0);
1228 /* ./parser//parser.nit:152 */
1229 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1230 /* ./parser//parser.nit:239 */
1231 REGB0 = TAG_Int(12);
1232 fra.me.REG[2] = NEW_ReduceAction86_parser___ReduceAction86___init(REGB0);
1233 /* ./parser//parser.nit:152 */
1234 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1235 /* ./parser//parser.nit:240 */
1236 REGB0 = TAG_Int(12);
1237 fra.me.REG[2] = NEW_ReduceAction87_parser___ReduceAction87___init(REGB0);
1238 /* ./parser//parser.nit:152 */
1239 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1240 /* ./parser//parser.nit:241 */
1241 REGB0 = TAG_Int(12);
1242 fra.me.REG[2] = NEW_ReduceAction88_parser___ReduceAction88___init(REGB0);
1243 /* ./parser//parser.nit:152 */
1244 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1245 /* ./parser//parser.nit:242 */
1246 REGB0 = TAG_Int(12);
1247 fra.me.REG[2] = NEW_ReduceAction89_parser___ReduceAction89___init(REGB0);
1248 /* ./parser//parser.nit:152 */
1249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1250 /* ./parser//parser.nit:243 */
1251 REGB0 = TAG_Int(12);
1252 fra.me.REG[2] = NEW_ReduceAction90_parser___ReduceAction90___init(REGB0);
1253 /* ./parser//parser.nit:152 */
1254 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1255 /* ./parser//parser.nit:244 */
1256 REGB0 = TAG_Int(12);
1257 fra.me.REG[2] = NEW_ReduceAction91_parser___ReduceAction91___init(REGB0);
1258 /* ./parser//parser.nit:152 */
1259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1260 /* ./parser//parser.nit:245 */
1261 REGB0 = TAG_Int(12);
1262 fra.me.REG[2] = NEW_ReduceAction92_parser___ReduceAction92___init(REGB0);
1263 /* ./parser//parser.nit:152 */
1264 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1265 /* ./parser//parser.nit:246 */
1266 REGB0 = TAG_Int(12);
1267 fra.me.REG[2] = NEW_ReduceAction93_parser___ReduceAction93___init(REGB0);
1268 /* ./parser//parser.nit:152 */
1269 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1270 /* ./parser//parser.nit:247 */
1271 REGB0 = TAG_Int(12);
1272 fra.me.REG[2] = NEW_ReduceAction94_parser___ReduceAction94___init(REGB0);
1273 /* ./parser//parser.nit:152 */
1274 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1275 /* ./parser//parser.nit:248 */
1276 REGB0 = TAG_Int(12);
1277 fra.me.REG[2] = NEW_ReduceAction95_parser___ReduceAction95___init(REGB0);
1278 /* ./parser//parser.nit:152 */
1279 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1280 /* ./parser//parser.nit:249 */
1281 REGB0 = TAG_Int(12);
1282 fra.me.REG[2] = NEW_ReduceAction96_parser___ReduceAction96___init(REGB0);
1283 /* ./parser//parser.nit:152 */
1284 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1285 /* ./parser//parser.nit:250 */
1286 REGB0 = TAG_Int(12);
1287 fra.me.REG[2] = NEW_ReduceAction97_parser___ReduceAction97___init(REGB0);
1288 /* ./parser//parser.nit:152 */
1289 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1290 /* ./parser//parser.nit:251 */
1291 REGB0 = TAG_Int(12);
1292 fra.me.REG[2] = NEW_ReduceAction98_parser___ReduceAction98___init(REGB0);
1293 /* ./parser//parser.nit:152 */
1294 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1295 /* ./parser//parser.nit:252 */
1296 REGB0 = TAG_Int(12);
1297 fra.me.REG[2] = NEW_ReduceAction99_parser___ReduceAction99___init(REGB0);
1298 /* ./parser//parser.nit:152 */
1299 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1300 /* ./parser//parser.nit:253 */
1301 REGB0 = TAG_Int(12);
1302 fra.me.REG[2] = NEW_ReduceAction100_parser___ReduceAction100___init(REGB0);
1303 /* ./parser//parser.nit:152 */
1304 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1305 /* ./parser//parser.nit:254 */
1306 REGB0 = TAG_Int(12);
1307 fra.me.REG[2] = NEW_ReduceAction101_parser___ReduceAction101___init(REGB0);
1308 /* ./parser//parser.nit:152 */
1309 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1310 /* ./parser//parser.nit:255 */
1311 REGB0 = TAG_Int(12);
1312 fra.me.REG[2] = NEW_ReduceAction102_parser___ReduceAction102___init(REGB0);
1313 /* ./parser//parser.nit:152 */
1314 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1315 /* ./parser//parser.nit:256 */
1316 REGB0 = TAG_Int(12);
1317 fra.me.REG[2] = NEW_ReduceAction103_parser___ReduceAction103___init(REGB0);
1318 /* ./parser//parser.nit:152 */
1319 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1320 /* ./parser//parser.nit:257 */
1321 REGB0 = TAG_Int(12);
1322 fra.me.REG[2] = NEW_ReduceAction104_parser___ReduceAction104___init(REGB0);
1323 /* ./parser//parser.nit:152 */
1324 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1325 /* ./parser//parser.nit:258 */
1326 REGB0 = TAG_Int(12);
1327 fra.me.REG[2] = NEW_ReduceAction105_parser___ReduceAction105___init(REGB0);
1328 /* ./parser//parser.nit:152 */
1329 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1330 /* ./parser//parser.nit:259 */
1331 REGB0 = TAG_Int(12);
1332 fra.me.REG[2] = NEW_ReduceAction106_parser___ReduceAction106___init(REGB0);
1333 /* ./parser//parser.nit:152 */
1334 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1335 /* ./parser//parser.nit:260 */
1336 REGB0 = TAG_Int(12);
1337 fra.me.REG[2] = NEW_ReduceAction107_parser___ReduceAction107___init(REGB0);
1338 /* ./parser//parser.nit:152 */
1339 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1340 /* ./parser//parser.nit:261 */
1341 REGB0 = TAG_Int(12);
1342 fra.me.REG[2] = NEW_ReduceAction108_parser___ReduceAction108___init(REGB0);
1343 /* ./parser//parser.nit:152 */
1344 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1345 /* ./parser//parser.nit:262 */
1346 REGB0 = TAG_Int(12);
1347 fra.me.REG[2] = NEW_ReduceAction109_parser___ReduceAction109___init(REGB0);
1348 /* ./parser//parser.nit:152 */
1349 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1350 /* ./parser//parser.nit:263 */
1351 REGB0 = TAG_Int(12);
1352 fra.me.REG[2] = NEW_ReduceAction110_parser___ReduceAction110___init(REGB0);
1353 /* ./parser//parser.nit:152 */
1354 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1355 /* ./parser//parser.nit:264 */
1356 REGB0 = TAG_Int(12);
1357 fra.me.REG[2] = NEW_ReduceAction111_parser___ReduceAction111___init(REGB0);
1358 /* ./parser//parser.nit:152 */
1359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1360 /* ./parser//parser.nit:265 */
1361 REGB0 = TAG_Int(12);
1362 fra.me.REG[2] = NEW_ReduceAction112_parser___ReduceAction112___init(REGB0);
1363 /* ./parser//parser.nit:152 */
1364 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1365 /* ./parser//parser.nit:266 */
1366 REGB0 = TAG_Int(12);
1367 fra.me.REG[2] = NEW_ReduceAction113_parser___ReduceAction113___init(REGB0);
1368 /* ./parser//parser.nit:152 */
1369 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1370 /* ./parser//parser.nit:267 */
1371 REGB0 = TAG_Int(12);
1372 fra.me.REG[2] = NEW_ReduceAction114_parser___ReduceAction114___init(REGB0);
1373 /* ./parser//parser.nit:152 */
1374 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1375 /* ./parser//parser.nit:268 */
1376 REGB0 = TAG_Int(12);
1377 fra.me.REG[2] = NEW_ReduceAction115_parser___ReduceAction115___init(REGB0);
1378 /* ./parser//parser.nit:152 */
1379 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1380 /* ./parser//parser.nit:269 */
1381 REGB0 = TAG_Int(12);
1382 fra.me.REG[2] = NEW_ReduceAction116_parser___ReduceAction116___init(REGB0);
1383 /* ./parser//parser.nit:152 */
1384 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1385 /* ./parser//parser.nit:270 */
1386 REGB0 = TAG_Int(12);
1387 fra.me.REG[2] = NEW_ReduceAction117_parser___ReduceAction117___init(REGB0);
1388 /* ./parser//parser.nit:152 */
1389 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1390 /* ./parser//parser.nit:271 */
1391 REGB0 = TAG_Int(12);
1392 fra.me.REG[2] = NEW_ReduceAction118_parser___ReduceAction118___init(REGB0);
1393 /* ./parser//parser.nit:152 */
1394 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1395 /* ./parser//parser.nit:272 */
1396 REGB0 = TAG_Int(12);
1397 fra.me.REG[2] = NEW_ReduceAction119_parser___ReduceAction119___init(REGB0);
1398 /* ./parser//parser.nit:152 */
1399 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1400 /* ./parser//parser.nit:273 */
1401 REGB0 = TAG_Int(12);
1402 fra.me.REG[2] = NEW_ReduceAction120_parser___ReduceAction120___init(REGB0);
1403 /* ./parser//parser.nit:152 */
1404 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1405 /* ./parser//parser.nit:274 */
1406 REGB0 = TAG_Int(12);
1407 fra.me.REG[2] = NEW_ReduceAction121_parser___ReduceAction121___init(REGB0);
1408 /* ./parser//parser.nit:152 */
1409 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1410 /* ./parser//parser.nit:275 */
1411 REGB0 = TAG_Int(12);
1412 fra.me.REG[2] = NEW_ReduceAction122_parser___ReduceAction122___init(REGB0);
1413 /* ./parser//parser.nit:152 */
1414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1415 /* ./parser//parser.nit:276 */
1416 REGB0 = TAG_Int(12);
1417 fra.me.REG[2] = NEW_ReduceAction123_parser___ReduceAction123___init(REGB0);
1418 /* ./parser//parser.nit:152 */
1419 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1420 /* ./parser//parser.nit:277 */
1421 REGB0 = TAG_Int(12);
1422 fra.me.REG[2] = NEW_ReduceAction124_parser___ReduceAction124___init(REGB0);
1423 /* ./parser//parser.nit:152 */
1424 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1425 /* ./parser//parser.nit:278 */
1426 REGB0 = TAG_Int(12);
1427 fra.me.REG[2] = NEW_ReduceAction125_parser___ReduceAction125___init(REGB0);
1428 /* ./parser//parser.nit:152 */
1429 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1430 /* ./parser//parser.nit:279 */
1431 REGB0 = TAG_Int(12);
1432 fra.me.REG[2] = NEW_ReduceAction126_parser___ReduceAction126___init(REGB0);
1433 /* ./parser//parser.nit:152 */
1434 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1435 /* ./parser//parser.nit:280 */
1436 REGB0 = TAG_Int(12);
1437 fra.me.REG[2] = NEW_ReduceAction127_parser___ReduceAction127___init(REGB0);
1438 /* ./parser//parser.nit:152 */
1439 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1440 /* ./parser//parser.nit:281 */
1441 REGB0 = TAG_Int(12);
1442 fra.me.REG[2] = NEW_ReduceAction128_parser___ReduceAction128___init(REGB0);
1443 /* ./parser//parser.nit:152 */
1444 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1445 /* ./parser//parser.nit:282 */
1446 REGB0 = TAG_Int(12);
1447 fra.me.REG[2] = NEW_ReduceAction129_parser___ReduceAction129___init(REGB0);
1448 /* ./parser//parser.nit:152 */
1449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1450 /* ./parser//parser.nit:283 */
1451 REGB0 = TAG_Int(12);
1452 fra.me.REG[2] = NEW_ReduceAction130_parser___ReduceAction130___init(REGB0);
1453 /* ./parser//parser.nit:152 */
1454 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1455 /* ./parser//parser.nit:284 */
1456 REGB0 = TAG_Int(12);
1457 fra.me.REG[2] = NEW_ReduceAction131_parser___ReduceAction131___init(REGB0);
1458 /* ./parser//parser.nit:152 */
1459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1460 /* ./parser//parser.nit:285 */
1461 REGB0 = TAG_Int(12);
1462 fra.me.REG[2] = NEW_ReduceAction132_parser___ReduceAction132___init(REGB0);
1463 /* ./parser//parser.nit:152 */
1464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1465 /* ./parser//parser.nit:286 */
1466 REGB0 = TAG_Int(12);
1467 fra.me.REG[2] = NEW_ReduceAction133_parser___ReduceAction133___init(REGB0);
1468 /* ./parser//parser.nit:152 */
1469 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1470 /* ./parser//parser.nit:287 */
1471 REGB0 = TAG_Int(12);
1472 fra.me.REG[2] = NEW_ReduceAction134_parser___ReduceAction134___init(REGB0);
1473 /* ./parser//parser.nit:152 */
1474 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1475 /* ./parser//parser.nit:288 */
1476 REGB0 = TAG_Int(12);
1477 fra.me.REG[2] = NEW_ReduceAction135_parser___ReduceAction135___init(REGB0);
1478 /* ./parser//parser.nit:152 */
1479 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1480 /* ./parser//parser.nit:289 */
1481 REGB0 = TAG_Int(12);
1482 fra.me.REG[2] = NEW_ReduceAction136_parser___ReduceAction136___init(REGB0);
1483 /* ./parser//parser.nit:152 */
1484 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1485 /* ./parser//parser.nit:290 */
1486 REGB0 = TAG_Int(12);
1487 fra.me.REG[2] = NEW_ReduceAction137_parser___ReduceAction137___init(REGB0);
1488 /* ./parser//parser.nit:152 */
1489 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1490 /* ./parser//parser.nit:291 */
1491 REGB0 = TAG_Int(12);
1492 fra.me.REG[2] = NEW_ReduceAction138_parser___ReduceAction138___init(REGB0);
1493 /* ./parser//parser.nit:152 */
1494 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1495 /* ./parser//parser.nit:292 */
1496 REGB0 = TAG_Int(13);
1497 fra.me.REG[2] = NEW_ReduceAction139_parser___ReduceAction139___init(REGB0);
1498 /* ./parser//parser.nit:152 */
1499 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1500 /* ./parser//parser.nit:293 */
1501 REGB0 = TAG_Int(13);
1502 fra.me.REG[2] = NEW_ReduceAction140_parser___ReduceAction140___init(REGB0);
1503 /* ./parser//parser.nit:152 */
1504 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1505 /* ./parser//parser.nit:294 */
1506 REGB0 = TAG_Int(14);
1507 fra.me.REG[2] = NEW_ReduceAction141_parser___ReduceAction141___init(REGB0);
1508 /* ./parser//parser.nit:152 */
1509 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1510 /* ./parser//parser.nit:295 */
1511 REGB0 = TAG_Int(14);
1512 fra.me.REG[2] = NEW_ReduceAction142_parser___ReduceAction142___init(REGB0);
1513 /* ./parser//parser.nit:152 */
1514 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1515 /* ./parser//parser.nit:296 */
1516 REGB0 = TAG_Int(15);
1517 fra.me.REG[2] = NEW_ReduceAction143_parser___ReduceAction143___init(REGB0);
1518 /* ./parser//parser.nit:152 */
1519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1520 /* ./parser//parser.nit:297 */
1521 REGB0 = TAG_Int(15);
1522 fra.me.REG[2] = NEW_ReduceAction144_parser___ReduceAction144___init(REGB0);
1523 /* ./parser//parser.nit:152 */
1524 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1525 /* ./parser//parser.nit:298 */
1526 REGB0 = TAG_Int(16);
1527 fra.me.REG[2] = NEW_ReduceAction145_parser___ReduceAction145___init(REGB0);
1528 /* ./parser//parser.nit:152 */
1529 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1530 /* ./parser//parser.nit:299 */
1531 REGB0 = TAG_Int(16);
1532 fra.me.REG[2] = NEW_ReduceAction146_parser___ReduceAction146___init(REGB0);
1533 /* ./parser//parser.nit:152 */
1534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1535 /* ./parser//parser.nit:300 */
1536 REGB0 = TAG_Int(16);
1537 fra.me.REG[2] = NEW_ReduceAction147_parser___ReduceAction147___init(REGB0);
1538 /* ./parser//parser.nit:152 */
1539 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1540 /* ./parser//parser.nit:301 */
1541 REGB0 = TAG_Int(16);
1542 fra.me.REG[2] = NEW_ReduceAction148_parser___ReduceAction148___init(REGB0);
1543 /* ./parser//parser.nit:152 */
1544 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1545 /* ./parser//parser.nit:302 */
1546 REGB0 = TAG_Int(17);
1547 fra.me.REG[2] = NEW_ReduceAction149_parser___ReduceAction149___init(REGB0);
1548 /* ./parser//parser.nit:152 */
1549 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1550 /* ./parser//parser.nit:303 */
1551 REGB0 = TAG_Int(17);
1552 fra.me.REG[2] = NEW_ReduceAction150_parser___ReduceAction150___init(REGB0);
1553 /* ./parser//parser.nit:152 */
1554 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1555 /* ./parser//parser.nit:304 */
1556 REGB0 = TAG_Int(17);
1557 fra.me.REG[2] = NEW_ReduceAction151_parser___ReduceAction151___init(REGB0);
1558 /* ./parser//parser.nit:152 */
1559 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1560 /* ./parser//parser.nit:305 */
1561 REGB0 = TAG_Int(17);
1562 fra.me.REG[2] = NEW_ReduceAction152_parser___ReduceAction152___init(REGB0);
1563 /* ./parser//parser.nit:152 */
1564 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1565 /* ./parser//parser.nit:306 */
1566 REGB0 = TAG_Int(17);
1567 fra.me.REG[2] = NEW_ReduceAction153_parser___ReduceAction153___init(REGB0);
1568 /* ./parser//parser.nit:152 */
1569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1570 /* ./parser//parser.nit:307 */
1571 REGB0 = TAG_Int(17);
1572 fra.me.REG[2] = NEW_ReduceAction154_parser___ReduceAction154___init(REGB0);
1573 /* ./parser//parser.nit:152 */
1574 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1575 /* ./parser//parser.nit:308 */
1576 REGB0 = TAG_Int(17);
1577 fra.me.REG[2] = NEW_ReduceAction155_parser___ReduceAction155___init(REGB0);
1578 /* ./parser//parser.nit:152 */
1579 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1580 /* ./parser//parser.nit:309 */
1581 REGB0 = TAG_Int(17);
1582 fra.me.REG[2] = NEW_ReduceAction156_parser___ReduceAction156___init(REGB0);
1583 /* ./parser//parser.nit:152 */
1584 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1585 /* ./parser//parser.nit:310 */
1586 REGB0 = TAG_Int(17);
1587 fra.me.REG[2] = NEW_ReduceAction157_parser___ReduceAction157___init(REGB0);
1588 /* ./parser//parser.nit:152 */
1589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1590 /* ./parser//parser.nit:311 */
1591 REGB0 = TAG_Int(17);
1592 fra.me.REG[2] = NEW_ReduceAction158_parser___ReduceAction158___init(REGB0);
1593 /* ./parser//parser.nit:152 */
1594 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1595 /* ./parser//parser.nit:312 */
1596 REGB0 = TAG_Int(17);
1597 fra.me.REG[2] = NEW_ReduceAction159_parser___ReduceAction159___init(REGB0);
1598 /* ./parser//parser.nit:152 */
1599 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1600 /* ./parser//parser.nit:313 */
1601 REGB0 = TAG_Int(17);
1602 fra.me.REG[2] = NEW_ReduceAction160_parser___ReduceAction160___init(REGB0);
1603 /* ./parser//parser.nit:152 */
1604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1605 /* ./parser//parser.nit:314 */
1606 REGB0 = TAG_Int(17);
1607 fra.me.REG[2] = NEW_ReduceAction161_parser___ReduceAction161___init(REGB0);
1608 /* ./parser//parser.nit:152 */
1609 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1610 /* ./parser//parser.nit:315 */
1611 REGB0 = TAG_Int(17);
1612 fra.me.REG[2] = NEW_ReduceAction162_parser___ReduceAction162___init(REGB0);
1613 /* ./parser//parser.nit:152 */
1614 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1615 /* ./parser//parser.nit:316 */
1616 REGB0 = TAG_Int(17);
1617 fra.me.REG[2] = NEW_ReduceAction163_parser___ReduceAction163___init(REGB0);
1618 /* ./parser//parser.nit:152 */
1619 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1620 /* ./parser//parser.nit:317 */
1621 REGB0 = TAG_Int(17);
1622 fra.me.REG[2] = NEW_ReduceAction164_parser___ReduceAction164___init(REGB0);
1623 /* ./parser//parser.nit:152 */
1624 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1625 /* ./parser//parser.nit:318 */
1626 REGB0 = TAG_Int(17);
1627 fra.me.REG[2] = NEW_ReduceAction165_parser___ReduceAction165___init(REGB0);
1628 /* ./parser//parser.nit:152 */
1629 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1630 /* ./parser//parser.nit:319 */
1631 REGB0 = TAG_Int(17);
1632 fra.me.REG[2] = NEW_ReduceAction166_parser___ReduceAction166___init(REGB0);
1633 /* ./parser//parser.nit:152 */
1634 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1635 /* ./parser//parser.nit:320 */
1636 REGB0 = TAG_Int(18);
1637 fra.me.REG[2] = NEW_ReduceAction167_parser___ReduceAction167___init(REGB0);
1638 /* ./parser//parser.nit:152 */
1639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1640 /* ./parser//parser.nit:321 */
1641 REGB0 = TAG_Int(18);
1642 fra.me.REG[2] = NEW_ReduceAction168_parser___ReduceAction168___init(REGB0);
1643 /* ./parser//parser.nit:152 */
1644 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1645 /* ./parser//parser.nit:322 */
1646 REGB0 = TAG_Int(18);
1647 fra.me.REG[2] = NEW_ReduceAction169_parser___ReduceAction169___init(REGB0);
1648 /* ./parser//parser.nit:152 */
1649 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1650 /* ./parser//parser.nit:323 */
1651 REGB0 = TAG_Int(18);
1652 fra.me.REG[2] = NEW_ReduceAction170_parser___ReduceAction170___init(REGB0);
1653 /* ./parser//parser.nit:152 */
1654 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1655 /* ./parser//parser.nit:324 */
1656 REGB0 = TAG_Int(18);
1657 fra.me.REG[2] = NEW_ReduceAction171_parser___ReduceAction171___init(REGB0);
1658 /* ./parser//parser.nit:152 */
1659 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1660 /* ./parser//parser.nit:325 */
1661 REGB0 = TAG_Int(18);
1662 fra.me.REG[2] = NEW_ReduceAction172_parser___ReduceAction172___init(REGB0);
1663 /* ./parser//parser.nit:152 */
1664 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1665 /* ./parser//parser.nit:326 */
1666 REGB0 = TAG_Int(18);
1667 fra.me.REG[2] = NEW_ReduceAction173_parser___ReduceAction173___init(REGB0);
1668 /* ./parser//parser.nit:152 */
1669 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1670 /* ./parser//parser.nit:327 */
1671 REGB0 = TAG_Int(18);
1672 fra.me.REG[2] = NEW_ReduceAction174_parser___ReduceAction174___init(REGB0);
1673 /* ./parser//parser.nit:152 */
1674 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1675 /* ./parser//parser.nit:328 */
1676 REGB0 = TAG_Int(19);
1677 fra.me.REG[2] = NEW_ReduceAction175_parser___ReduceAction175___init(REGB0);
1678 /* ./parser//parser.nit:152 */
1679 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1680 /* ./parser//parser.nit:329 */
1681 REGB0 = TAG_Int(19);
1682 fra.me.REG[2] = NEW_ReduceAction176_parser___ReduceAction176___init(REGB0);
1683 /* ./parser//parser.nit:152 */
1684 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1685 /* ./parser//parser.nit:330 */
1686 REGB0 = TAG_Int(19);
1687 fra.me.REG[2] = NEW_ReduceAction177_parser___ReduceAction177___init(REGB0);
1688 /* ./parser//parser.nit:152 */
1689 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1690 /* ./parser//parser.nit:331 */
1691 REGB0 = TAG_Int(19);
1692 fra.me.REG[2] = NEW_ReduceAction178_parser___ReduceAction178___init(REGB0);
1693 /* ./parser//parser.nit:152 */
1694 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1695 /* ./parser//parser.nit:332 */
1696 REGB0 = TAG_Int(20);
1697 fra.me.REG[2] = NEW_ReduceAction179_parser___ReduceAction179___init(REGB0);
1698 /* ./parser//parser.nit:152 */
1699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1700 /* ./parser//parser.nit:333 */
1701 REGB0 = TAG_Int(20);
1702 fra.me.REG[2] = NEW_ReduceAction180_parser___ReduceAction180___init(REGB0);
1703 /* ./parser//parser.nit:152 */
1704 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1705 /* ./parser//parser.nit:334 */
1706 REGB0 = TAG_Int(20);
1707 fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction181___init(REGB0);
1708 /* ./parser//parser.nit:152 */
1709 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1710 /* ./parser//parser.nit:335 */
1711 REGB0 = TAG_Int(21);
1712 fra.me.REG[2] = NEW_ReduceAction182_parser___ReduceAction182___init(REGB0);
1713 /* ./parser//parser.nit:152 */
1714 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1715 /* ./parser//parser.nit:336 */
1716 REGB0 = TAG_Int(22);
1717 fra.me.REG[2] = NEW_ReduceAction183_parser___ReduceAction183___init(REGB0);
1718 /* ./parser//parser.nit:152 */
1719 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1720 /* ./parser//parser.nit:337 */
1721 REGB0 = TAG_Int(22);
1722 fra.me.REG[2] = NEW_ReduceAction184_parser___ReduceAction184___init(REGB0);
1723 /* ./parser//parser.nit:152 */
1724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1725 /* ./parser//parser.nit:338 */
1726 REGB0 = TAG_Int(22);
1727 fra.me.REG[2] = NEW_ReduceAction185_parser___ReduceAction185___init(REGB0);
1728 /* ./parser//parser.nit:152 */
1729 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1730 /* ./parser//parser.nit:339 */
1731 REGB0 = TAG_Int(23);
1732 fra.me.REG[2] = NEW_ReduceAction186_parser___ReduceAction186___init(REGB0);
1733 /* ./parser//parser.nit:152 */
1734 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1735 /* ./parser//parser.nit:340 */
1736 REGB0 = TAG_Int(24);
1737 fra.me.REG[2] = NEW_ReduceAction187_parser___ReduceAction187___init(REGB0);
1738 /* ./parser//parser.nit:152 */
1739 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1740 /* ./parser//parser.nit:341 */
1741 REGB0 = TAG_Int(24);
1742 fra.me.REG[2] = NEW_ReduceAction188_parser___ReduceAction188___init(REGB0);
1743 /* ./parser//parser.nit:152 */
1744 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1745 /* ./parser//parser.nit:342 */
1746 REGB0 = TAG_Int(24);
1747 fra.me.REG[2] = NEW_ReduceAction189_parser___ReduceAction189___init(REGB0);
1748 /* ./parser//parser.nit:152 */
1749 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1750 /* ./parser//parser.nit:343 */
1751 REGB0 = TAG_Int(24);
1752 fra.me.REG[2] = NEW_ReduceAction190_parser___ReduceAction190___init(REGB0);
1753 /* ./parser//parser.nit:152 */
1754 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1755 /* ./parser//parser.nit:344 */
1756 REGB0 = TAG_Int(24);
1757 fra.me.REG[2] = NEW_ReduceAction191_parser___ReduceAction191___init(REGB0);
1758 /* ./parser//parser.nit:152 */
1759 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1760 /* ./parser//parser.nit:345 */
1761 REGB0 = TAG_Int(24);
1762 fra.me.REG[2] = NEW_ReduceAction192_parser___ReduceAction192___init(REGB0);
1763 /* ./parser//parser.nit:152 */
1764 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1765 /* ./parser//parser.nit:346 */
1766 REGB0 = TAG_Int(25);
1767 fra.me.REG[2] = NEW_ReduceAction193_parser___ReduceAction193___init(REGB0);
1768 /* ./parser//parser.nit:152 */
1769 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1770 /* ./parser//parser.nit:347 */
1771 REGB0 = TAG_Int(26);
1772 fra.me.REG[2] = NEW_ReduceAction194_parser___ReduceAction194___init(REGB0);
1773 /* ./parser//parser.nit:152 */
1774 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1775 /* ./parser//parser.nit:348 */
1776 REGB0 = TAG_Int(26);
1777 fra.me.REG[2] = NEW_ReduceAction195_parser___ReduceAction195___init(REGB0);
1778 /* ./parser//parser.nit:152 */
1779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1780 /* ./parser//parser.nit:349 */
1781 REGB0 = TAG_Int(26);
1782 fra.me.REG[2] = NEW_ReduceAction196_parser___ReduceAction196___init(REGB0);
1783 /* ./parser//parser.nit:152 */
1784 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1785 /* ./parser//parser.nit:350 */
1786 REGB0 = TAG_Int(26);
1787 fra.me.REG[2] = NEW_ReduceAction197_parser___ReduceAction197___init(REGB0);
1788 /* ./parser//parser.nit:152 */
1789 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1790 /* ./parser//parser.nit:351 */
1791 REGB0 = TAG_Int(27);
1792 fra.me.REG[2] = NEW_ReduceAction198_parser___ReduceAction198___init(REGB0);
1793 /* ./parser//parser.nit:152 */
1794 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1795 /* ./parser//parser.nit:352 */
1796 REGB0 = TAG_Int(27);
1797 fra.me.REG[2] = NEW_ReduceAction199_parser___ReduceAction199___init(REGB0);
1798 /* ./parser//parser.nit:152 */
1799 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1800 /* ./parser//parser.nit:353 */
1801 REGB0 = TAG_Int(28);
1802 fra.me.REG[2] = NEW_ReduceAction200_parser___ReduceAction200___init(REGB0);
1803 /* ./parser//parser.nit:152 */
1804 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1805 /* ./parser//parser.nit:354 */
1806 REGB0 = TAG_Int(29);
1807 fra.me.REG[2] = NEW_ReduceAction200_parser___ReduceAction200___init(REGB0);
1808 /* ./parser//parser.nit:152 */
1809 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1810 /* ./parser//parser.nit:355 */
1811 REGB0 = TAG_Int(30);
1812 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
1813 /* ./parser//parser.nit:152 */
1814 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1815 /* ./parser//parser.nit:356 */
1816 REGB0 = TAG_Int(30);
1817 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
1818 /* ./parser//parser.nit:152 */
1819 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1820 /* ./parser//parser.nit:357 */
1821 REGB0 = TAG_Int(30);
1822 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
1823 /* ./parser//parser.nit:152 */
1824 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1825 /* ./parser//parser.nit:358 */
1826 REGB0 = TAG_Int(30);
1827 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1828 /* ./parser//parser.nit:152 */
1829 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1830 /* ./parser//parser.nit:359 */
1831 REGB0 = TAG_Int(31);
1832 fra.me.REG[2] = NEW_ReduceAction206_parser___ReduceAction206___init(REGB0);
1833 /* ./parser//parser.nit:152 */
1834 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1835 /* ./parser//parser.nit:360 */
1836 REGB0 = TAG_Int(31);
1837 fra.me.REG[2] = NEW_ReduceAction207_parser___ReduceAction207___init(REGB0);
1838 /* ./parser//parser.nit:152 */
1839 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1840 /* ./parser//parser.nit:361 */
1841 REGB0 = TAG_Int(32);
1842 fra.me.REG[2] = NEW_ReduceAction208_parser___ReduceAction208___init(REGB0);
1843 /* ./parser//parser.nit:152 */
1844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1845 /* ./parser//parser.nit:362 */
1846 REGB0 = TAG_Int(32);
1847 fra.me.REG[2] = NEW_ReduceAction209_parser___ReduceAction209___init(REGB0);
1848 /* ./parser//parser.nit:152 */
1849 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1850 /* ./parser//parser.nit:363 */
1851 REGB0 = TAG_Int(33);
1852 fra.me.REG[2] = NEW_ReduceAction210_parser___ReduceAction210___init(REGB0);
1853 /* ./parser//parser.nit:152 */
1854 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1855 /* ./parser//parser.nit:364 */
1856 REGB0 = TAG_Int(34);
1857 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1858 /* ./parser//parser.nit:152 */
1859 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1860 /* ./parser//parser.nit:365 */
1861 REGB0 = TAG_Int(34);
1862 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1863 /* ./parser//parser.nit:152 */
1864 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1865 /* ./parser//parser.nit:366 */
1866 REGB0 = TAG_Int(34);
1867 fra.me.REG[2] = NEW_ReduceAction213_parser___ReduceAction213___init(REGB0);
1868 /* ./parser//parser.nit:152 */
1869 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1870 /* ./parser//parser.nit:367 */
1871 REGB0 = TAG_Int(34);
1872 fra.me.REG[2] = NEW_ReduceAction214_parser___ReduceAction214___init(REGB0);
1873 /* ./parser//parser.nit:152 */
1874 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1875 /* ./parser//parser.nit:368 */
1876 REGB0 = TAG_Int(34);
1877 fra.me.REG[2] = NEW_ReduceAction215_parser___ReduceAction215___init(REGB0);
1878 /* ./parser//parser.nit:152 */
1879 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1880 /* ./parser//parser.nit:369 */
1881 REGB0 = TAG_Int(34);
1882 fra.me.REG[2] = NEW_ReduceAction216_parser___ReduceAction216___init(REGB0);
1883 /* ./parser//parser.nit:152 */
1884 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1885 /* ./parser//parser.nit:370 */
1886 REGB0 = TAG_Int(34);
1887 fra.me.REG[2] = NEW_ReduceAction217_parser___ReduceAction217___init(REGB0);
1888 /* ./parser//parser.nit:152 */
1889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1890 /* ./parser//parser.nit:371 */
1891 REGB0 = TAG_Int(34);
1892 fra.me.REG[2] = NEW_ReduceAction218_parser___ReduceAction218___init(REGB0);
1893 /* ./parser//parser.nit:152 */
1894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1895 /* ./parser//parser.nit:372 */
1896 REGB0 = TAG_Int(34);
1897 fra.me.REG[2] = NEW_ReduceAction219_parser___ReduceAction219___init(REGB0);
1898 /* ./parser//parser.nit:152 */
1899 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1900 /* ./parser//parser.nit:373 */
1901 REGB0 = TAG_Int(34);
1902 fra.me.REG[2] = NEW_ReduceAction220_parser___ReduceAction220___init(REGB0);
1903 /* ./parser//parser.nit:152 */
1904 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1905 /* ./parser//parser.nit:374 */
1906 REGB0 = TAG_Int(34);
1907 fra.me.REG[2] = NEW_ReduceAction221_parser___ReduceAction221___init(REGB0);
1908 /* ./parser//parser.nit:152 */
1909 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1910 /* ./parser//parser.nit:375 */
1911 REGB0 = TAG_Int(34);
1912 fra.me.REG[2] = NEW_ReduceAction222_parser___ReduceAction222___init(REGB0);
1913 /* ./parser//parser.nit:152 */
1914 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1915 /* ./parser//parser.nit:376 */
1916 REGB0 = TAG_Int(34);
1917 fra.me.REG[2] = NEW_ReduceAction223_parser___ReduceAction223___init(REGB0);
1918 /* ./parser//parser.nit:152 */
1919 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1920 /* ./parser//parser.nit:377 */
1921 REGB0 = TAG_Int(34);
1922 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1923 /* ./parser//parser.nit:152 */
1924 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1925 /* ./parser//parser.nit:378 */
1926 REGB0 = TAG_Int(34);
1927 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1928 /* ./parser//parser.nit:152 */
1929 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1930 /* ./parser//parser.nit:379 */
1931 REGB0 = TAG_Int(34);
1932 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1933 /* ./parser//parser.nit:152 */
1934 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1935 /* ./parser//parser.nit:380 */
1936 REGB0 = TAG_Int(34);
1937 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1938 /* ./parser//parser.nit:152 */
1939 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1940 /* ./parser//parser.nit:381 */
1941 REGB0 = TAG_Int(34);
1942 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1943 /* ./parser//parser.nit:152 */
1944 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1945 /* ./parser//parser.nit:382 */
1946 REGB0 = TAG_Int(34);
1947 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1948 /* ./parser//parser.nit:152 */
1949 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1950 /* ./parser//parser.nit:383 */
1951 REGB0 = TAG_Int(34);
1952 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
1953 /* ./parser//parser.nit:152 */
1954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1955 /* ./parser//parser.nit:384 */
1956 REGB0 = TAG_Int(34);
1957 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
1958 /* ./parser//parser.nit:152 */
1959 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1960 /* ./parser//parser.nit:385 */
1961 REGB0 = TAG_Int(34);
1962 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
1963 /* ./parser//parser.nit:152 */
1964 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1965 /* ./parser//parser.nit:386 */
1966 REGB0 = TAG_Int(34);
1967 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
1968 /* ./parser//parser.nit:152 */
1969 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1970 /* ./parser//parser.nit:387 */
1971 REGB0 = TAG_Int(34);
1972 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
1973 /* ./parser//parser.nit:152 */
1974 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1975 /* ./parser//parser.nit:388 */
1976 REGB0 = TAG_Int(34);
1977 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
1978 /* ./parser//parser.nit:152 */
1979 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1980 /* ./parser//parser.nit:389 */
1981 REGB0 = TAG_Int(34);
1982 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
1983 /* ./parser//parser.nit:152 */
1984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1985 /* ./parser//parser.nit:390 */
1986 REGB0 = TAG_Int(34);
1987 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
1988 /* ./parser//parser.nit:152 */
1989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1990 /* ./parser//parser.nit:391 */
1991 REGB0 = TAG_Int(35);
1992 fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction238___init(REGB0);
1993 /* ./parser//parser.nit:152 */
1994 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1995 /* ./parser//parser.nit:392 */
1996 REGB0 = TAG_Int(36);
1997 fra.me.REG[2] = NEW_ReduceAction239_parser___ReduceAction239___init(REGB0);
1998 /* ./parser//parser.nit:152 */
1999 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2000 /* ./parser//parser.nit:393 */
2001 REGB0 = TAG_Int(36);
2002 fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction240___init(REGB0);
2003 /* ./parser//parser.nit:152 */
2004 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2005 /* ./parser//parser.nit:394 */
2006 REGB0 = TAG_Int(37);
2007 fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction241___init(REGB0);
2008 /* ./parser//parser.nit:152 */
2009 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2010 /* ./parser//parser.nit:395 */
2011 REGB0 = TAG_Int(37);
2012 fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction242___init(REGB0);
2013 /* ./parser//parser.nit:152 */
2014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2015 /* ./parser//parser.nit:396 */
2016 REGB0 = TAG_Int(37);
2017 fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction243___init(REGB0);
2018 /* ./parser//parser.nit:152 */
2019 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2020 /* ./parser//parser.nit:397 */
2021 REGB0 = TAG_Int(37);
2022 fra.me.REG[2] = NEW_ReduceAction244_parser___ReduceAction244___init(REGB0);
2023 /* ./parser//parser.nit:152 */
2024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2025 /* ./parser//parser.nit:398 */
2026 REGB0 = TAG_Int(37);
2027 fra.me.REG[2] = NEW_ReduceAction245_parser___ReduceAction245___init(REGB0);
2028 /* ./parser//parser.nit:152 */
2029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2030 /* ./parser//parser.nit:399 */
2031 REGB0 = TAG_Int(37);
2032 fra.me.REG[2] = NEW_ReduceAction246_parser___ReduceAction246___init(REGB0);
2033 /* ./parser//parser.nit:152 */
2034 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2035 /* ./parser//parser.nit:400 */
2036 REGB0 = TAG_Int(38);
2037 fra.me.REG[2] = NEW_ReduceAction247_parser___ReduceAction247___init(REGB0);
2038 /* ./parser//parser.nit:152 */
2039 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2040 /* ./parser//parser.nit:401 */
2041 REGB0 = TAG_Int(38);
2042 fra.me.REG[2] = NEW_ReduceAction248_parser___ReduceAction248___init(REGB0);
2043 /* ./parser//parser.nit:152 */
2044 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2045 /* ./parser//parser.nit:402 */
2046 REGB0 = TAG_Int(38);
2047 fra.me.REG[2] = NEW_ReduceAction249_parser___ReduceAction249___init(REGB0);
2048 /* ./parser//parser.nit:152 */
2049 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2050 /* ./parser//parser.nit:403 */
2051 REGB0 = TAG_Int(38);
2052 fra.me.REG[2] = NEW_ReduceAction250_parser___ReduceAction250___init(REGB0);
2053 /* ./parser//parser.nit:152 */
2054 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2055 /* ./parser//parser.nit:404 */
2056 REGB0 = TAG_Int(39);
2057 fra.me.REG[2] = NEW_ReduceAction251_parser___ReduceAction251___init(REGB0);
2058 /* ./parser//parser.nit:152 */
2059 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2060 /* ./parser//parser.nit:405 */
2061 REGB0 = TAG_Int(39);
2062 fra.me.REG[2] = NEW_ReduceAction252_parser___ReduceAction252___init(REGB0);
2063 /* ./parser//parser.nit:152 */
2064 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2065 /* ./parser//parser.nit:406 */
2066 REGB0 = TAG_Int(40);
2067 fra.me.REG[2] = NEW_ReduceAction253_parser___ReduceAction253___init(REGB0);
2068 /* ./parser//parser.nit:152 */
2069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2070 /* ./parser//parser.nit:407 */
2071 REGB0 = TAG_Int(41);
2072 fra.me.REG[2] = NEW_ReduceAction254_parser___ReduceAction254___init(REGB0);
2073 /* ./parser//parser.nit:152 */
2074 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2075 /* ./parser//parser.nit:408 */
2076 REGB0 = TAG_Int(41);
2077 fra.me.REG[2] = NEW_ReduceAction255_parser___ReduceAction255___init(REGB0);
2078 /* ./parser//parser.nit:152 */
2079 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2080 /* ./parser//parser.nit:409 */
2081 REGB0 = TAG_Int(41);
2082 fra.me.REG[2] = NEW_ReduceAction256_parser___ReduceAction256___init(REGB0);
2083 /* ./parser//parser.nit:152 */
2084 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2085 /* ./parser//parser.nit:410 */
2086 REGB0 = TAG_Int(41);
2087 fra.me.REG[2] = NEW_ReduceAction257_parser___ReduceAction257___init(REGB0);
2088 /* ./parser//parser.nit:152 */
2089 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2090 /* ./parser//parser.nit:411 */
2091 REGB0 = TAG_Int(42);
2092 fra.me.REG[2] = NEW_ReduceAction258_parser___ReduceAction258___init(REGB0);
2093 /* ./parser//parser.nit:152 */
2094 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2095 /* ./parser//parser.nit:412 */
2096 REGB0 = TAG_Int(42);
2097 fra.me.REG[2] = NEW_ReduceAction259_parser___ReduceAction259___init(REGB0);
2098 /* ./parser//parser.nit:152 */
2099 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2100 /* ./parser//parser.nit:413 */
2101 REGB0 = TAG_Int(42);
2102 fra.me.REG[2] = NEW_ReduceAction260_parser___ReduceAction260___init(REGB0);
2103 /* ./parser//parser.nit:152 */
2104 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2105 /* ./parser//parser.nit:414 */
2106 REGB0 = TAG_Int(42);
2107 fra.me.REG[2] = NEW_ReduceAction261_parser___ReduceAction261___init(REGB0);
2108 /* ./parser//parser.nit:152 */
2109 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2110 /* ./parser//parser.nit:415 */
2111 REGB0 = TAG_Int(42);
2112 fra.me.REG[2] = NEW_ReduceAction262_parser___ReduceAction262___init(REGB0);
2113 /* ./parser//parser.nit:152 */
2114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2115 /* ./parser//parser.nit:416 */
2116 REGB0 = TAG_Int(42);
2117 fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction263___init(REGB0);
2118 /* ./parser//parser.nit:152 */
2119 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2120 /* ./parser//parser.nit:417 */
2121 REGB0 = TAG_Int(42);
2122 fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction264___init(REGB0);
2123 /* ./parser//parser.nit:152 */
2124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2125 /* ./parser//parser.nit:418 */
2126 REGB0 = TAG_Int(42);
2127 fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction265___init(REGB0);
2128 /* ./parser//parser.nit:152 */
2129 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2130 /* ./parser//parser.nit:419 */
2131 REGB0 = TAG_Int(42);
2132 fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction266___init(REGB0);
2133 /* ./parser//parser.nit:152 */
2134 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2135 /* ./parser//parser.nit:420 */
2136 REGB0 = TAG_Int(42);
2137 fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction267___init(REGB0);
2138 /* ./parser//parser.nit:152 */
2139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2140 /* ./parser//parser.nit:421 */
2141 REGB0 = TAG_Int(43);
2142 fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction268___init(REGB0);
2143 /* ./parser//parser.nit:152 */
2144 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2145 /* ./parser//parser.nit:422 */
2146 REGB0 = TAG_Int(43);
2147 fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction269___init(REGB0);
2148 /* ./parser//parser.nit:152 */
2149 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2150 /* ./parser//parser.nit:423 */
2151 REGB0 = TAG_Int(44);
2152 fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction270___init(REGB0);
2153 /* ./parser//parser.nit:152 */
2154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2155 /* ./parser//parser.nit:424 */
2156 REGB0 = TAG_Int(44);
2157 fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction271___init(REGB0);
2158 /* ./parser//parser.nit:152 */
2159 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2160 /* ./parser//parser.nit:425 */
2161 REGB0 = TAG_Int(45);
2162 fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction272___init(REGB0);
2163 /* ./parser//parser.nit:152 */
2164 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2165 /* ./parser//parser.nit:426 */
2166 REGB0 = TAG_Int(45);
2167 fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction273___init(REGB0);
2168 /* ./parser//parser.nit:152 */
2169 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2170 /* ./parser//parser.nit:427 */
2171 REGB0 = TAG_Int(45);
2172 fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction274___init(REGB0);
2173 /* ./parser//parser.nit:152 */
2174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2175 /* ./parser//parser.nit:428 */
2176 REGB0 = TAG_Int(45);
2177 fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction275___init(REGB0);
2178 /* ./parser//parser.nit:152 */
2179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2180 /* ./parser//parser.nit:429 */
2181 REGB0 = TAG_Int(45);
2182 fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction276___init(REGB0);
2183 /* ./parser//parser.nit:152 */
2184 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2185 /* ./parser//parser.nit:430 */
2186 REGB0 = TAG_Int(46);
2187 fra.me.REG[2] = NEW_ReduceAction210_parser___ReduceAction210___init(REGB0);
2188 /* ./parser//parser.nit:152 */
2189 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2190 /* ./parser//parser.nit:431 */
2191 REGB0 = TAG_Int(46);
2192 fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction36___init(REGB0);
2193 /* ./parser//parser.nit:152 */
2194 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2195 /* ./parser//parser.nit:432 */
2196 REGB0 = TAG_Int(47);
2197 fra.me.REG[2] = NEW_ReduceAction279_parser___ReduceAction279___init(REGB0);
2198 /* ./parser//parser.nit:152 */
2199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2200 /* ./parser//parser.nit:433 */
2201 REGB0 = TAG_Int(47);
2202 fra.me.REG[2] = NEW_ReduceAction280_parser___ReduceAction280___init(REGB0);
2203 /* ./parser//parser.nit:152 */
2204 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2205 /* ./parser//parser.nit:434 */
2206 REGB0 = TAG_Int(48);
2207 fra.me.REG[2] = NEW_ReduceAction281_parser___ReduceAction281___init(REGB0);
2208 /* ./parser//parser.nit:152 */
2209 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2210 /* ./parser//parser.nit:435 */
2211 REGB0 = TAG_Int(48);
2212 fra.me.REG[2] = NEW_ReduceAction282_parser___ReduceAction282___init(REGB0);
2213 /* ./parser//parser.nit:152 */
2214 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2215 /* ./parser//parser.nit:436 */
2216 REGB0 = TAG_Int(49);
2217 fra.me.REG[2] = NEW_ReduceAction283_parser___ReduceAction283___init(REGB0);
2218 /* ./parser//parser.nit:152 */
2219 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2220 /* ./parser//parser.nit:437 */
2221 REGB0 = TAG_Int(49);
2222 fra.me.REG[2] = NEW_ReduceAction284_parser___ReduceAction284___init(REGB0);
2223 /* ./parser//parser.nit:152 */
2224 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2225 /* ./parser//parser.nit:438 */
2226 REGB0 = TAG_Int(50);
2227 fra.me.REG[2] = NEW_ReduceAction285_parser___ReduceAction285___init(REGB0);
2228 /* ./parser//parser.nit:152 */
2229 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2230 /* ./parser//parser.nit:439 */
2231 REGB0 = TAG_Int(50);
2232 fra.me.REG[2] = NEW_ReduceAction286_parser___ReduceAction286___init(REGB0);
2233 /* ./parser//parser.nit:152 */
2234 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2235 /* ./parser//parser.nit:440 */
2236 REGB0 = TAG_Int(50);
2237 fra.me.REG[2] = NEW_ReduceAction287_parser___ReduceAction287___init(REGB0);
2238 /* ./parser//parser.nit:152 */
2239 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2240 /* ./parser//parser.nit:441 */
2241 REGB0 = TAG_Int(50);
2242 fra.me.REG[2] = NEW_ReduceAction288_parser___ReduceAction288___init(REGB0);
2243 /* ./parser//parser.nit:152 */
2244 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2245 /* ./parser//parser.nit:442 */
2246 REGB0 = TAG_Int(51);
2247 fra.me.REG[2] = NEW_ReduceAction289_parser___ReduceAction289___init(REGB0);
2248 /* ./parser//parser.nit:152 */
2249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2250 /* ./parser//parser.nit:443 */
2251 REGB0 = TAG_Int(52);
2252 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2253 /* ./parser//parser.nit:152 */
2254 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2255 /* ./parser//parser.nit:444 */
2256 REGB0 = TAG_Int(52);
2257 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
2258 /* ./parser//parser.nit:152 */
2259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2260 /* ./parser//parser.nit:445 */
2261 REGB0 = TAG_Int(52);
2262 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
2263 /* ./parser//parser.nit:152 */
2264 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2265 /* ./parser//parser.nit:446 */
2266 REGB0 = TAG_Int(52);
2267 fra.me.REG[2] = NEW_ReduceAction293_parser___ReduceAction293___init(REGB0);
2268 /* ./parser//parser.nit:152 */
2269 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2270 /* ./parser//parser.nit:447 */
2271 REGB0 = TAG_Int(53);
2272 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2273 /* ./parser//parser.nit:152 */
2274 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2275 /* ./parser//parser.nit:448 */
2276 REGB0 = TAG_Int(53);
2277 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
2278 /* ./parser//parser.nit:152 */
2279 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2280 /* ./parser//parser.nit:449 */
2281 REGB0 = TAG_Int(54);
2282 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2283 /* ./parser//parser.nit:152 */
2284 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2285 /* ./parser//parser.nit:450 */
2286 REGB0 = TAG_Int(54);
2287 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
2288 /* ./parser//parser.nit:152 */
2289 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2290 /* ./parser//parser.nit:451 */
2291 REGB0 = TAG_Int(54);
2292 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
2293 /* ./parser//parser.nit:152 */
2294 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2295 /* ./parser//parser.nit:452 */
2296 REGB0 = TAG_Int(54);
2297 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
2298 /* ./parser//parser.nit:152 */
2299 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2300 /* ./parser//parser.nit:453 */
2301 REGB0 = TAG_Int(55);
2302 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2303 /* ./parser//parser.nit:152 */
2304 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2305 /* ./parser//parser.nit:454 */
2306 REGB0 = TAG_Int(55);
2307 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
2308 /* ./parser//parser.nit:152 */
2309 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2310 /* ./parser//parser.nit:455 */
2311 REGB0 = TAG_Int(56);
2312 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2313 /* ./parser//parser.nit:152 */
2314 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2315 /* ./parser//parser.nit:456 */
2316 REGB0 = TAG_Int(56);
2317 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
2318 /* ./parser//parser.nit:152 */
2319 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2320 /* ./parser//parser.nit:457 */
2321 REGB0 = TAG_Int(56);
2322 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
2323 /* ./parser//parser.nit:152 */
2324 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2325 /* ./parser//parser.nit:458 */
2326 REGB0 = TAG_Int(56);
2327 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
2328 /* ./parser//parser.nit:152 */
2329 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2330 /* ./parser//parser.nit:459 */
2331 REGB0 = TAG_Int(56);
2332 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
2333 /* ./parser//parser.nit:152 */
2334 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2335 /* ./parser//parser.nit:460 */
2336 REGB0 = TAG_Int(56);
2337 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
2338 /* ./parser//parser.nit:152 */
2339 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2340 /* ./parser//parser.nit:461 */
2341 REGB0 = TAG_Int(56);
2342 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
2343 /* ./parser//parser.nit:152 */
2344 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2345 /* ./parser//parser.nit:462 */
2346 REGB0 = TAG_Int(56);
2347 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
2348 /* ./parser//parser.nit:152 */
2349 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2350 /* ./parser//parser.nit:463 */
2351 REGB0 = TAG_Int(56);
2352 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
2353 /* ./parser//parser.nit:152 */
2354 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2355 /* ./parser//parser.nit:464 */
2356 REGB0 = TAG_Int(56);
2357 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
2358 /* ./parser//parser.nit:152 */
2359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2360 /* ./parser//parser.nit:465 */
2361 REGB0 = TAG_Int(56);
2362 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
2363 /* ./parser//parser.nit:152 */
2364 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2365 /* ./parser//parser.nit:466 */
2366 REGB0 = TAG_Int(56);
2367 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
2368 /* ./parser//parser.nit:152 */
2369 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2370 /* ./parser//parser.nit:467 */
2371 REGB0 = TAG_Int(57);
2372 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2373 /* ./parser//parser.nit:152 */
2374 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2375 /* ./parser//parser.nit:468 */
2376 REGB0 = TAG_Int(57);
2377 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
2378 /* ./parser//parser.nit:152 */
2379 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2380 /* ./parser//parser.nit:469 */
2381 REGB0 = TAG_Int(57);
2382 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
2383 /* ./parser//parser.nit:152 */
2384 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2385 /* ./parser//parser.nit:470 */
2386 REGB0 = TAG_Int(58);
2387 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2388 /* ./parser//parser.nit:152 */
2389 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2390 /* ./parser//parser.nit:471 */
2391 REGB0 = TAG_Int(58);
2392 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
2393 /* ./parser//parser.nit:152 */
2394 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2395 /* ./parser//parser.nit:472 */
2396 REGB0 = TAG_Int(58);
2397 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
2398 /* ./parser//parser.nit:152 */
2399 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2400 /* ./parser//parser.nit:473 */
2401 REGB0 = TAG_Int(58);
2402 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
2403 /* ./parser//parser.nit:152 */
2404 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2405 /* ./parser//parser.nit:474 */
2406 REGB0 = TAG_Int(59);
2407 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2408 /* ./parser//parser.nit:152 */
2409 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2410 /* ./parser//parser.nit:475 */
2411 REGB0 = TAG_Int(59);
2412 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
2413 /* ./parser//parser.nit:152 */
2414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2415 /* ./parser//parser.nit:476 */
2416 REGB0 = TAG_Int(59);
2417 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
2418 /* ./parser//parser.nit:152 */
2419 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2420 /* ./parser//parser.nit:477 */
2421 REGB0 = TAG_Int(60);
2422 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2423 /* ./parser//parser.nit:152 */
2424 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2425 /* ./parser//parser.nit:478 */
2426 REGB0 = TAG_Int(60);
2427 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
2428 /* ./parser//parser.nit:152 */
2429 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2430 /* ./parser//parser.nit:479 */
2431 REGB0 = TAG_Int(60);
2432 fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction326___init(REGB0);
2433 /* ./parser//parser.nit:152 */
2434 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2435 /* ./parser//parser.nit:480 */
2436 REGB0 = TAG_Int(60);
2437 fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction327___init(REGB0);
2438 /* ./parser//parser.nit:152 */
2439 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2440 /* ./parser//parser.nit:481 */
2441 REGB0 = TAG_Int(61);
2442 fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction328___init(REGB0);
2443 /* ./parser//parser.nit:152 */
2444 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2445 /* ./parser//parser.nit:482 */
2446 REGB0 = TAG_Int(61);
2447 fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction329___init(REGB0);
2448 /* ./parser//parser.nit:152 */
2449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2450 /* ./parser//parser.nit:483 */
2451 REGB0 = TAG_Int(61);
2452 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
2453 /* ./parser//parser.nit:152 */
2454 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2455 /* ./parser//parser.nit:484 */
2456 REGB0 = TAG_Int(61);
2457 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
2458 /* ./parser//parser.nit:152 */
2459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2460 /* ./parser//parser.nit:485 */
2461 REGB0 = TAG_Int(61);
2462 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
2463 /* ./parser//parser.nit:152 */
2464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2465 /* ./parser//parser.nit:486 */
2466 REGB0 = TAG_Int(61);
2467 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
2468 /* ./parser//parser.nit:152 */
2469 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2470 /* ./parser//parser.nit:487 */
2471 REGB0 = TAG_Int(61);
2472 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
2473 /* ./parser//parser.nit:152 */
2474 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2475 /* ./parser//parser.nit:488 */
2476 REGB0 = TAG_Int(61);
2477 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
2478 /* ./parser//parser.nit:152 */
2479 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2480 /* ./parser//parser.nit:489 */
2481 REGB0 = TAG_Int(61);
2482 fra.me.REG[2] = NEW_ReduceAction336_parser___ReduceAction336___init(REGB0);
2483 /* ./parser//parser.nit:152 */
2484 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2485 /* ./parser//parser.nit:490 */
2486 REGB0 = TAG_Int(61);
2487 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
2488 /* ./parser//parser.nit:152 */
2489 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2490 /* ./parser//parser.nit:491 */
2491 REGB0 = TAG_Int(61);
2492 fra.me.REG[2] = NEW_ReduceAction338_parser___ReduceAction338___init(REGB0);
2493 /* ./parser//parser.nit:152 */
2494 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2495 /* ./parser//parser.nit:492 */
2496 REGB0 = TAG_Int(61);
2497 fra.me.REG[2] = NEW_ReduceAction339_parser___ReduceAction339___init(REGB0);
2498 /* ./parser//parser.nit:152 */
2499 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2500 /* ./parser//parser.nit:493 */
2501 REGB0 = TAG_Int(61);
2502 fra.me.REG[2] = NEW_ReduceAction340_parser___ReduceAction340___init(REGB0);
2503 /* ./parser//parser.nit:152 */
2504 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2505 /* ./parser//parser.nit:494 */
2506 REGB0 = TAG_Int(61);
2507 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
2508 /* ./parser//parser.nit:152 */
2509 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2510 /* ./parser//parser.nit:495 */
2511 REGB0 = TAG_Int(61);
2512 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
2513 /* ./parser//parser.nit:152 */
2514 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2515 /* ./parser//parser.nit:496 */
2516 REGB0 = TAG_Int(61);
2517 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
2518 /* ./parser//parser.nit:152 */
2519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2520 /* ./parser//parser.nit:497 */
2521 REGB0 = TAG_Int(61);
2522 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
2523 /* ./parser//parser.nit:152 */
2524 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2525 /* ./parser//parser.nit:498 */
2526 REGB0 = TAG_Int(61);
2527 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
2528 /* ./parser//parser.nit:152 */
2529 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2530 /* ./parser//parser.nit:499 */
2531 REGB0 = TAG_Int(61);
2532 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
2533 /* ./parser//parser.nit:152 */
2534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2535 /* ./parser//parser.nit:500 */
2536 REGB0 = TAG_Int(61);
2537 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
2538 /* ./parser//parser.nit:152 */
2539 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2540 /* ./parser//parser.nit:501 */
2541 REGB0 = TAG_Int(61);
2542 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
2543 /* ./parser//parser.nit:152 */
2544 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2545 /* ./parser//parser.nit:502 */
2546 REGB0 = TAG_Int(61);
2547 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2548 /* ./parser//parser.nit:152 */
2549 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2550 /* ./parser//parser.nit:503 */
2551 REGB0 = TAG_Int(61);
2552 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
2553 /* ./parser//parser.nit:152 */
2554 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2555 /* ./parser//parser.nit:504 */
2556 REGB0 = TAG_Int(61);
2557 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
2558 /* ./parser//parser.nit:152 */
2559 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2560 /* ./parser//parser.nit:505 */
2561 REGB0 = TAG_Int(61);
2562 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
2563 /* ./parser//parser.nit:152 */
2564 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2565 /* ./parser//parser.nit:506 */
2566 REGB0 = TAG_Int(62);
2567 fra.me.REG[2] = NEW_ReduceAction353_parser___ReduceAction353___init(REGB0);
2568 /* ./parser//parser.nit:152 */
2569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2570 /* ./parser//parser.nit:507 */
2571 REGB0 = TAG_Int(62);
2572 fra.me.REG[2] = NEW_ReduceAction354_parser___ReduceAction354___init(REGB0);
2573 /* ./parser//parser.nit:152 */
2574 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2575 /* ./parser//parser.nit:508 */
2576 REGB0 = TAG_Int(63);
2577 fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction355___init(REGB0);
2578 /* ./parser//parser.nit:152 */
2579 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2580 /* ./parser//parser.nit:509 */
2581 REGB0 = TAG_Int(64);
2582 fra.me.REG[2] = NEW_ReduceAction356_parser___ReduceAction356___init(REGB0);
2583 /* ./parser//parser.nit:152 */
2584 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2585 /* ./parser//parser.nit:510 */
2586 REGB0 = TAG_Int(65);
2587 fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction355___init(REGB0);
2588 /* ./parser//parser.nit:152 */
2589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2590 /* ./parser//parser.nit:511 */
2591 REGB0 = TAG_Int(66);
2592 fra.me.REG[2] = NEW_ReduceAction358_parser___ReduceAction358___init(REGB0);
2593 /* ./parser//parser.nit:152 */
2594 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2595 /* ./parser//parser.nit:512 */
2596 REGB0 = TAG_Int(67);
2597 fra.me.REG[2] = NEW_ReduceAction359_parser___ReduceAction359___init(REGB0);
2598 /* ./parser//parser.nit:152 */
2599 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2600 /* ./parser//parser.nit:513 */
2601 REGB0 = TAG_Int(68);
2602 fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction360___init(REGB0);
2603 /* ./parser//parser.nit:152 */
2604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2605 /* ./parser//parser.nit:514 */
2606 REGB0 = TAG_Int(68);
2607 fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction361___init(REGB0);
2608 /* ./parser//parser.nit:152 */
2609 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2610 /* ./parser//parser.nit:515 */
2611 REGB0 = TAG_Int(68);
2612 fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction181___init(REGB0);
2613 /* ./parser//parser.nit:152 */
2614 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2615 /* ./parser//parser.nit:516 */
2616 REGB0 = TAG_Int(68);
2617 fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction363___init(REGB0);
2618 /* ./parser//parser.nit:152 */
2619 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2620 /* ./parser//parser.nit:517 */
2621 REGB0 = TAG_Int(69);
2622 fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction360___init(REGB0);
2623 /* ./parser//parser.nit:152 */
2624 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2625 /* ./parser//parser.nit:518 */
2626 REGB0 = TAG_Int(69);
2627 fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction361___init(REGB0);
2628 /* ./parser//parser.nit:152 */
2629 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2630 /* ./parser//parser.nit:519 */
2631 REGB0 = TAG_Int(69);
2632 fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction366___init(REGB0);
2633 /* ./parser//parser.nit:152 */
2634 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2635 /* ./parser//parser.nit:520 */
2636 REGB0 = TAG_Int(69);
2637 fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction181___init(REGB0);
2638 /* ./parser//parser.nit:152 */
2639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2640 /* ./parser//parser.nit:521 */
2641 REGB0 = TAG_Int(69);
2642 fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction363___init(REGB0);
2643 /* ./parser//parser.nit:152 */
2644 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2645 /* ./parser//parser.nit:522 */
2646 REGB0 = TAG_Int(70);
2647 fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction360___init(REGB0);
2648 /* ./parser//parser.nit:152 */
2649 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2650 /* ./parser//parser.nit:523 */
2651 REGB0 = TAG_Int(70);
2652 fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction361___init(REGB0);
2653 /* ./parser//parser.nit:152 */
2654 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2655 /* ./parser//parser.nit:524 */
2656 REGB0 = TAG_Int(71);
2657 fra.me.REG[2] = NEW_ReduceAction371_parser___ReduceAction371___init(REGB0);
2658 /* ./parser//parser.nit:152 */
2659 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2660 /* ./parser//parser.nit:525 */
2661 REGB0 = TAG_Int(72);
2662 fra.me.REG[2] = NEW_ReduceAction372_parser___ReduceAction372___init(REGB0);
2663 /* ./parser//parser.nit:152 */
2664 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2665 /* ./parser//parser.nit:526 */
2666 REGB0 = TAG_Int(72);
2667 fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction373___init(REGB0);
2668 /* ./parser//parser.nit:152 */
2669 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2670 /* ./parser//parser.nit:527 */
2671 REGB0 = TAG_Int(73);
2672 fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction374___init(REGB0);
2673 /* ./parser//parser.nit:152 */
2674 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2675 /* ./parser//parser.nit:528 */
2676 REGB0 = TAG_Int(73);
2677 fra.me.REG[2] = NEW_ReduceAction375_parser___ReduceAction375___init(REGB0);
2678 /* ./parser//parser.nit:152 */
2679 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2680 /* ./parser//parser.nit:529 */
2681 REGB0 = TAG_Int(74);
2682 fra.me.REG[2] = NEW_ReduceAction376_parser___ReduceAction376___init(REGB0);
2683 /* ./parser//parser.nit:152 */
2684 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2685 /* ./parser//parser.nit:530 */
2686 REGB0 = TAG_Int(74);
2687 fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction377___init(REGB0);
2688 /* ./parser//parser.nit:152 */
2689 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2690 /* ./parser//parser.nit:531 */
2691 REGB0 = TAG_Int(74);
2692 fra.me.REG[2] = NEW_ReduceAction378_parser___ReduceAction378___init(REGB0);
2693 /* ./parser//parser.nit:152 */
2694 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2695 /* ./parser//parser.nit:532 */
2696 REGB0 = TAG_Int(75);
2697 fra.me.REG[2] = NEW_ReduceAction379_parser___ReduceAction379___init(REGB0);
2698 /* ./parser//parser.nit:152 */
2699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2700 /* ./parser//parser.nit:533 */
2701 REGB0 = TAG_Int(76);
2702 fra.me.REG[2] = NEW_ReduceAction380_parser___ReduceAction380___init(REGB0);
2703 /* ./parser//parser.nit:152 */
2704 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2705 /* ./parser//parser.nit:534 */
2706 REGB0 = TAG_Int(77);
2707 fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction381___init(REGB0);
2708 /* ./parser//parser.nit:152 */
2709 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2710 /* ./parser//parser.nit:535 */
2711 REGB0 = TAG_Int(77);
2712 fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction381___init(REGB0);
2713 /* ./parser//parser.nit:152 */
2714 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2715 /* ./parser//parser.nit:536 */
2716 REGB0 = TAG_Int(78);
2717 fra.me.REG[2] = NEW_ReduceAction383_parser___ReduceAction383___init(REGB0);
2718 /* ./parser//parser.nit:152 */
2719 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2720 /* ./parser//parser.nit:537 */
2721 REGB0 = TAG_Int(78);
2722 fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction384___init(REGB0);
2723 /* ./parser//parser.nit:152 */
2724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2725 /* ./parser//parser.nit:538 */
2726 REGB0 = TAG_Int(78);
2727 fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction36___init(REGB0);
2728 /* ./parser//parser.nit:152 */
2729 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2730 /* ./parser//parser.nit:539 */
2731 REGB0 = TAG_Int(79);
2732 fra.me.REG[2] = NEW_ReduceAction386_parser___ReduceAction386___init(REGB0);
2733 /* ./parser//parser.nit:152 */
2734 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2735 /* ./parser//parser.nit:540 */
2736 REGB0 = TAG_Int(79);
2737 fra.me.REG[2] = NEW_ReduceAction387_parser___ReduceAction387___init(REGB0);
2738 /* ./parser//parser.nit:152 */
2739 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2740 /* ./parser//parser.nit:541 */
2741 REGB0 = TAG_Int(80);
2742 fra.me.REG[2] = NEW_ReduceAction388_parser___ReduceAction388___init(REGB0);
2743 /* ./parser//parser.nit:152 */
2744 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2745 /* ./parser//parser.nit:542 */
2746 REGB0 = TAG_Int(80);
2747 fra.me.REG[2] = NEW_ReduceAction389_parser___ReduceAction389___init(REGB0);
2748 /* ./parser//parser.nit:152 */
2749 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2750 /* ./parser//parser.nit:543 */
2751 REGB0 = TAG_Int(80);
2752 fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction381___init(REGB0);
2753 /* ./parser//parser.nit:152 */
2754 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2755 /* ./parser//parser.nit:544 */
2756 REGB0 = TAG_Int(81);
2757 fra.me.REG[2] = NEW_ReduceAction66_parser___ReduceAction66___init(REGB0);
2758 /* ./parser//parser.nit:152 */
2759 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2760 /* ./parser//parser.nit:545 */
2761 REGB0 = TAG_Int(82);
2762 fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction67___init(REGB0);
2763 /* ./parser//parser.nit:152 */
2764 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2765 /* ./parser//parser.nit:546 */
2766 REGB0 = TAG_Int(82);
2767 fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction68___init(REGB0);
2768 /* ./parser//parser.nit:152 */
2769 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2770 /* ./parser//parser.nit:547 */
2771 REGB0 = TAG_Int(82);
2772 fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction69___init(REGB0);
2773 /* ./parser//parser.nit:152 */
2774 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2775 /* ./parser//parser.nit:548 */
2776 REGB0 = TAG_Int(82);
2777 fra.me.REG[2] = NEW_ReduceAction70_parser___ReduceAction70___init(REGB0);
2778 /* ./parser//parser.nit:152 */
2779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2780 /* ./parser//parser.nit:549 */
2781 REGB0 = TAG_Int(82);
2782 fra.me.REG[2] = NEW_ReduceAction71_parser___ReduceAction71___init(REGB0);
2783 /* ./parser//parser.nit:152 */
2784 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2785 /* ./parser//parser.nit:550 */
2786 REGB0 = TAG_Int(82);
2787 fra.me.REG[2] = NEW_ReduceAction72_parser___ReduceAction72___init(REGB0);
2788 /* ./parser//parser.nit:152 */
2789 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2790 /* ./parser//parser.nit:551 */
2791 REGB0 = TAG_Int(82);
2792 fra.me.REG[2] = NEW_ReduceAction77_parser___ReduceAction77___init(REGB0);
2793 /* ./parser//parser.nit:152 */
2794 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2795 /* ./parser//parser.nit:552 */
2796 REGB0 = TAG_Int(82);
2797 fra.me.REG[2] = NEW_ReduceAction78_parser___ReduceAction78___init(REGB0);
2798 /* ./parser//parser.nit:152 */
2799 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2800 /* ./parser//parser.nit:553 */
2801 REGB0 = TAG_Int(82);
2802 fra.me.REG[2] = NEW_ReduceAction79_parser___ReduceAction79___init(REGB0);
2803 /* ./parser//parser.nit:152 */
2804 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2805 /* ./parser//parser.nit:554 */
2806 REGB0 = TAG_Int(82);
2807 fra.me.REG[2] = NEW_ReduceAction80_parser___ReduceAction80___init(REGB0);
2808 /* ./parser//parser.nit:152 */
2809 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2810 /* ./parser//parser.nit:555 */
2811 REGB0 = TAG_Int(83);
2812 fra.me.REG[2] = NEW_ReduceAction167_parser___ReduceAction167___init(REGB0);
2813 /* ./parser//parser.nit:152 */
2814 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2815 /* ./parser//parser.nit:556 */
2816 REGB0 = TAG_Int(83);
2817 fra.me.REG[2] = NEW_ReduceAction168_parser___ReduceAction168___init(REGB0);
2818 /* ./parser//parser.nit:152 */
2819 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2820 /* ./parser//parser.nit:557 */
2821 REGB0 = TAG_Int(83);
2822 fra.me.REG[2] = NEW_ReduceAction169_parser___ReduceAction169___init(REGB0);
2823 /* ./parser//parser.nit:152 */
2824 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2825 /* ./parser//parser.nit:558 */
2826 REGB0 = TAG_Int(83);
2827 fra.me.REG[2] = NEW_ReduceAction170_parser___ReduceAction170___init(REGB0);
2828 /* ./parser//parser.nit:152 */
2829 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2830 /* ./parser//parser.nit:559 */
2831 REGB0 = TAG_Int(84);
2832 fra.me.REG[2] = NEW_ReduceAction194_parser___ReduceAction194___init(REGB0);
2833 /* ./parser//parser.nit:152 */
2834 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2835 /* ./parser//parser.nit:560 */
2836 REGB0 = TAG_Int(84);
2837 fra.me.REG[2] = NEW_ReduceAction195_parser___ReduceAction195___init(REGB0);
2838 /* ./parser//parser.nit:152 */
2839 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2840 /* ./parser//parser.nit:561 */
2841 REGB0 = TAG_Int(85);
2842 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2843 /* ./parser//parser.nit:152 */
2844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2845 /* ./parser//parser.nit:562 */
2846 REGB0 = TAG_Int(85);
2847 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
2848 /* ./parser//parser.nit:152 */
2849 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2850 /* ./parser//parser.nit:563 */
2851 REGB0 = TAG_Int(85);
2852 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
2853 /* ./parser//parser.nit:152 */
2854 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2855 /* ./parser//parser.nit:564 */
2856 REGB0 = TAG_Int(86);
2857 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2858 /* ./parser//parser.nit:152 */
2859 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2860 /* ./parser//parser.nit:565 */
2861 REGB0 = TAG_Int(86);
2862 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
2863 /* ./parser//parser.nit:152 */
2864 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2865 /* ./parser//parser.nit:566 */
2866 REGB0 = TAG_Int(87);
2867 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2868 /* ./parser//parser.nit:152 */
2869 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2870 /* ./parser//parser.nit:567 */
2871 REGB0 = TAG_Int(87);
2872 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
2873 /* ./parser//parser.nit:152 */
2874 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2875 /* ./parser//parser.nit:568 */
2876 REGB0 = TAG_Int(87);
2877 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
2878 /* ./parser//parser.nit:152 */
2879 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2880 /* ./parser//parser.nit:569 */
2881 REGB0 = TAG_Int(87);
2882 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
2883 /* ./parser//parser.nit:152 */
2884 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2885 /* ./parser//parser.nit:570 */
2886 REGB0 = TAG_Int(88);
2887 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2888 /* ./parser//parser.nit:152 */
2889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2890 /* ./parser//parser.nit:571 */
2891 REGB0 = TAG_Int(88);
2892 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
2893 /* ./parser//parser.nit:152 */
2894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2895 /* ./parser//parser.nit:572 */
2896 REGB0 = TAG_Int(89);
2897 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2898 /* ./parser//parser.nit:152 */
2899 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2900 /* ./parser//parser.nit:573 */
2901 REGB0 = TAG_Int(89);
2902 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
2903 /* ./parser//parser.nit:152 */
2904 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2905 /* ./parser//parser.nit:574 */
2906 REGB0 = TAG_Int(89);
2907 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
2908 /* ./parser//parser.nit:152 */
2909 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2910 /* ./parser//parser.nit:575 */
2911 REGB0 = TAG_Int(89);
2912 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
2913 /* ./parser//parser.nit:152 */
2914 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2915 /* ./parser//parser.nit:576 */
2916 REGB0 = TAG_Int(89);
2917 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
2918 /* ./parser//parser.nit:152 */
2919 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2920 /* ./parser//parser.nit:577 */
2921 REGB0 = TAG_Int(89);
2922 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
2923 /* ./parser//parser.nit:152 */
2924 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2925 /* ./parser//parser.nit:578 */
2926 REGB0 = TAG_Int(89);
2927 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
2928 /* ./parser//parser.nit:152 */
2929 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2930 /* ./parser//parser.nit:579 */
2931 REGB0 = TAG_Int(89);
2932 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
2933 /* ./parser//parser.nit:152 */
2934 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2935 /* ./parser//parser.nit:580 */
2936 REGB0 = TAG_Int(89);
2937 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
2938 /* ./parser//parser.nit:152 */
2939 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2940 /* ./parser//parser.nit:581 */
2941 REGB0 = TAG_Int(89);
2942 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
2943 /* ./parser//parser.nit:152 */
2944 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2945 /* ./parser//parser.nit:582 */
2946 REGB0 = TAG_Int(89);
2947 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
2948 /* ./parser//parser.nit:152 */
2949 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2950 /* ./parser//parser.nit:583 */
2951 REGB0 = TAG_Int(89);
2952 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
2953 /* ./parser//parser.nit:152 */
2954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2955 /* ./parser//parser.nit:584 */
2956 REGB0 = TAG_Int(90);
2957 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2958 /* ./parser//parser.nit:152 */
2959 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2960 /* ./parser//parser.nit:585 */
2961 REGB0 = TAG_Int(90);
2962 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
2963 /* ./parser//parser.nit:152 */
2964 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2965 /* ./parser//parser.nit:586 */
2966 REGB0 = TAG_Int(90);
2967 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
2968 /* ./parser//parser.nit:152 */
2969 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2970 /* ./parser//parser.nit:587 */
2971 REGB0 = TAG_Int(91);
2972 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2973 /* ./parser//parser.nit:152 */
2974 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2975 /* ./parser//parser.nit:588 */
2976 REGB0 = TAG_Int(91);
2977 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
2978 /* ./parser//parser.nit:152 */
2979 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2980 /* ./parser//parser.nit:589 */
2981 REGB0 = TAG_Int(91);
2982 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
2983 /* ./parser//parser.nit:152 */
2984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2985 /* ./parser//parser.nit:590 */
2986 REGB0 = TAG_Int(91);
2987 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
2988 /* ./parser//parser.nit:152 */
2989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2990 /* ./parser//parser.nit:591 */
2991 REGB0 = TAG_Int(92);
2992 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2993 /* ./parser//parser.nit:152 */
2994 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2995 /* ./parser//parser.nit:592 */
2996 REGB0 = TAG_Int(92);
2997 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
2998 /* ./parser//parser.nit:152 */
2999 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3000 /* ./parser//parser.nit:593 */
3001 REGB0 = TAG_Int(92);
3002 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
3003 /* ./parser//parser.nit:152 */
3004 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3005 /* ./parser//parser.nit:594 */
3006 REGB0 = TAG_Int(93);
3007 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3008 /* ./parser//parser.nit:152 */
3009 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3010 /* ./parser//parser.nit:595 */
3011 REGB0 = TAG_Int(93);
3012 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
3013 /* ./parser//parser.nit:152 */
3014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3015 /* ./parser//parser.nit:596 */
3016 REGB0 = TAG_Int(93);
3017 fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction326___init(REGB0);
3018 /* ./parser//parser.nit:152 */
3019 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3020 /* ./parser//parser.nit:597 */
3021 REGB0 = TAG_Int(93);
3022 fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction327___init(REGB0);
3023 /* ./parser//parser.nit:152 */
3024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3025 /* ./parser//parser.nit:598 */
3026 REGB0 = TAG_Int(94);
3027 fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction328___init(REGB0);
3028 /* ./parser//parser.nit:152 */
3029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3030 /* ./parser//parser.nit:599 */
3031 REGB0 = TAG_Int(94);
3032 fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction329___init(REGB0);
3033 /* ./parser//parser.nit:152 */
3034 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3035 /* ./parser//parser.nit:600 */
3036 REGB0 = TAG_Int(94);
3037 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
3038 /* ./parser//parser.nit:152 */
3039 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3040 /* ./parser//parser.nit:601 */
3041 REGB0 = TAG_Int(94);
3042 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
3043 /* ./parser//parser.nit:152 */
3044 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3045 /* ./parser//parser.nit:602 */
3046 REGB0 = TAG_Int(94);
3047 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
3048 /* ./parser//parser.nit:152 */
3049 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3050 /* ./parser//parser.nit:603 */
3051 REGB0 = TAG_Int(94);
3052 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
3053 /* ./parser//parser.nit:152 */
3054 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3055 /* ./parser//parser.nit:604 */
3056 REGB0 = TAG_Int(94);
3057 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
3058 /* ./parser//parser.nit:152 */
3059 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3060 /* ./parser//parser.nit:605 */
3061 REGB0 = TAG_Int(94);
3062 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
3063 /* ./parser//parser.nit:152 */
3064 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3065 /* ./parser//parser.nit:606 */
3066 REGB0 = TAG_Int(94);
3067 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
3068 /* ./parser//parser.nit:152 */
3069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3070 /* ./parser//parser.nit:607 */
3071 REGB0 = TAG_Int(94);
3072 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
3073 /* ./parser//parser.nit:152 */
3074 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3075 /* ./parser//parser.nit:608 */
3076 REGB0 = TAG_Int(94);
3077 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
3078 /* ./parser//parser.nit:152 */
3079 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3080 /* ./parser//parser.nit:609 */
3081 REGB0 = TAG_Int(94);
3082 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
3083 /* ./parser//parser.nit:152 */
3084 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3085 /* ./parser//parser.nit:610 */
3086 REGB0 = TAG_Int(94);
3087 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
3088 /* ./parser//parser.nit:152 */
3089 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3090 /* ./parser//parser.nit:611 */
3091 REGB0 = TAG_Int(94);
3092 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
3093 /* ./parser//parser.nit:152 */
3094 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3095 /* ./parser//parser.nit:612 */
3096 REGB0 = TAG_Int(94);
3097 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
3098 /* ./parser//parser.nit:152 */
3099 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3100 /* ./parser//parser.nit:613 */
3101 REGB0 = TAG_Int(94);
3102 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
3103 /* ./parser//parser.nit:152 */
3104 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3105 /* ./parser//parser.nit:614 */
3106 REGB0 = TAG_Int(94);
3107 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
3108 /* ./parser//parser.nit:152 */
3109 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3110 /* ./parser//parser.nit:615 */
3111 REGB0 = TAG_Int(94);
3112 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3113 /* ./parser//parser.nit:152 */
3114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3115 /* ./parser//parser.nit:616 */
3116 REGB0 = TAG_Int(94);
3117 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3118 /* ./parser//parser.nit:152 */
3119 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3120 /* ./parser//parser.nit:617 */
3121 REGB0 = TAG_Int(94);
3122 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
3123 /* ./parser//parser.nit:152 */
3124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3125 /* ./parser//parser.nit:618 */
3126 REGB0 = TAG_Int(94);
3127 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
3128 /* ./parser//parser.nit:152 */
3129 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3130 /* ./parser//parser.nit:619 */
3131 REGB0 = TAG_Int(95);
3132 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3133 /* ./parser//parser.nit:152 */
3134 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3135 /* ./parser//parser.nit:620 */
3136 REGB0 = TAG_Int(95);
3137 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
3138 /* ./parser//parser.nit:152 */
3139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3140 /* ./parser//parser.nit:621 */
3141 REGB0 = TAG_Int(95);
3142 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
3143 /* ./parser//parser.nit:152 */
3144 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3145 /* ./parser//parser.nit:622 */
3146 REGB0 = TAG_Int(95);
3147 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3148 /* ./parser//parser.nit:152 */
3149 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3150 /* ./parser//parser.nit:623 */
3151 REGB0 = TAG_Int(96);
3152 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3153 /* ./parser//parser.nit:152 */
3154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3155 /* ./parser//parser.nit:624 */
3156 REGB0 = TAG_Int(96);
3157 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3158 /* ./parser//parser.nit:152 */
3159 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3160 /* ./parser//parser.nit:625 */
3161 REGB0 = TAG_Int(96);
3162 fra.me.REG[2] = NEW_ReduceAction213_parser___ReduceAction213___init(REGB0);
3163 /* ./parser//parser.nit:152 */
3164 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3165 /* ./parser//parser.nit:626 */
3166 REGB0 = TAG_Int(96);
3167 fra.me.REG[2] = NEW_ReduceAction214_parser___ReduceAction214___init(REGB0);
3168 /* ./parser//parser.nit:152 */
3169 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3170 /* ./parser//parser.nit:627 */
3171 REGB0 = TAG_Int(96);
3172 fra.me.REG[2] = NEW_ReduceAction215_parser___ReduceAction215___init(REGB0);
3173 /* ./parser//parser.nit:152 */
3174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3175 /* ./parser//parser.nit:628 */
3176 REGB0 = TAG_Int(96);
3177 fra.me.REG[2] = NEW_ReduceAction216_parser___ReduceAction216___init(REGB0);
3178 /* ./parser//parser.nit:152 */
3179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3180 /* ./parser//parser.nit:629 */
3181 REGB0 = TAG_Int(96);
3182 fra.me.REG[2] = NEW_ReduceAction217_parser___ReduceAction217___init(REGB0);
3183 /* ./parser//parser.nit:152 */
3184 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3185 /* ./parser//parser.nit:630 */
3186 REGB0 = TAG_Int(96);
3187 fra.me.REG[2] = NEW_ReduceAction218_parser___ReduceAction218___init(REGB0);
3188 /* ./parser//parser.nit:152 */
3189 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3190 /* ./parser//parser.nit:631 */
3191 REGB0 = TAG_Int(96);
3192 fra.me.REG[2] = NEW_ReduceAction219_parser___ReduceAction219___init(REGB0);
3193 /* ./parser//parser.nit:152 */
3194 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3195 /* ./parser//parser.nit:632 */
3196 REGB0 = TAG_Int(96);
3197 fra.me.REG[2] = NEW_ReduceAction220_parser___ReduceAction220___init(REGB0);
3198 /* ./parser//parser.nit:152 */
3199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3200 /* ./parser//parser.nit:633 */
3201 REGB0 = TAG_Int(96);
3202 fra.me.REG[2] = NEW_ReduceAction221_parser___ReduceAction221___init(REGB0);
3203 /* ./parser//parser.nit:152 */
3204 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3205 /* ./parser//parser.nit:634 */
3206 REGB0 = TAG_Int(96);
3207 fra.me.REG[2] = NEW_ReduceAction222_parser___ReduceAction222___init(REGB0);
3208 /* ./parser//parser.nit:152 */
3209 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3210 /* ./parser//parser.nit:635 */
3211 REGB0 = TAG_Int(96);
3212 fra.me.REG[2] = NEW_ReduceAction223_parser___ReduceAction223___init(REGB0);
3213 /* ./parser//parser.nit:152 */
3214 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3215 /* ./parser//parser.nit:636 */
3216 REGB0 = TAG_Int(96);
3217 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3218 /* ./parser//parser.nit:152 */
3219 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3220 /* ./parser//parser.nit:637 */
3221 REGB0 = TAG_Int(96);
3222 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3223 /* ./parser//parser.nit:152 */
3224 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3225 /* ./parser//parser.nit:638 */
3226 REGB0 = TAG_Int(96);
3227 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3228 /* ./parser//parser.nit:152 */
3229 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3230 /* ./parser//parser.nit:639 */
3231 REGB0 = TAG_Int(96);
3232 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3233 /* ./parser//parser.nit:152 */
3234 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3235 /* ./parser//parser.nit:640 */
3236 REGB0 = TAG_Int(96);
3237 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3238 /* ./parser//parser.nit:152 */
3239 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3240 /* ./parser//parser.nit:641 */
3241 REGB0 = TAG_Int(96);
3242 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3243 /* ./parser//parser.nit:152 */
3244 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3245 /* ./parser//parser.nit:642 */
3246 REGB0 = TAG_Int(96);
3247 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
3248 /* ./parser//parser.nit:152 */
3249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3250 /* ./parser//parser.nit:643 */
3251 REGB0 = TAG_Int(96);
3252 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
3253 /* ./parser//parser.nit:152 */
3254 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3255 /* ./parser//parser.nit:644 */
3256 REGB0 = TAG_Int(96);
3257 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3258 /* ./parser//parser.nit:152 */
3259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3260 /* ./parser//parser.nit:645 */
3261 REGB0 = TAG_Int(96);
3262 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3263 /* ./parser//parser.nit:152 */
3264 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3265 /* ./parser//parser.nit:646 */
3266 REGB0 = TAG_Int(96);
3267 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
3268 /* ./parser//parser.nit:152 */
3269 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3270 /* ./parser//parser.nit:647 */
3271 REGB0 = TAG_Int(96);
3272 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
3273 /* ./parser//parser.nit:152 */
3274 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3275 /* ./parser//parser.nit:648 */
3276 REGB0 = TAG_Int(96);
3277 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
3278 /* ./parser//parser.nit:152 */
3279 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3280 /* ./parser//parser.nit:649 */
3281 REGB0 = TAG_Int(96);
3282 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
3283 /* ./parser//parser.nit:152 */
3284 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3285 /* ./parser//parser.nit:650 */
3286 REGB0 = TAG_Int(97);
3287 fra.me.REG[2] = NEW_ReduceAction239_parser___ReduceAction239___init(REGB0);
3288 /* ./parser//parser.nit:152 */
3289 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3290 /* ./parser//parser.nit:651 */
3291 REGB0 = TAG_Int(97);
3292 fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction240___init(REGB0);
3293 /* ./parser//parser.nit:152 */
3294 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3295 /* ./parser//parser.nit:652 */
3296 REGB0 = TAG_Int(98);
3297 fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction241___init(REGB0);
3298 /* ./parser//parser.nit:152 */
3299 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3300 /* ./parser//parser.nit:653 */
3301 REGB0 = TAG_Int(98);
3302 fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction242___init(REGB0);
3303 /* ./parser//parser.nit:152 */
3304 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3305 /* ./parser//parser.nit:654 */
3306 REGB0 = TAG_Int(98);
3307 fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction243___init(REGB0);
3308 /* ./parser//parser.nit:152 */
3309 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3310 /* ./parser//parser.nit:655 */
3311 REGB0 = TAG_Int(98);
3312 fra.me.REG[2] = NEW_ReduceAction244_parser___ReduceAction244___init(REGB0);
3313 /* ./parser//parser.nit:152 */
3314 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3315 /* ./parser//parser.nit:656 */
3316 REGB0 = TAG_Int(98);
3317 fra.me.REG[2] = NEW_ReduceAction245_parser___ReduceAction245___init(REGB0);
3318 /* ./parser//parser.nit:152 */
3319 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3320 /* ./parser//parser.nit:657 */
3321 REGB0 = TAG_Int(98);
3322 fra.me.REG[2] = NEW_ReduceAction246_parser___ReduceAction246___init(REGB0);
3323 /* ./parser//parser.nit:152 */
3324 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3325 /* ./parser//parser.nit:658 */
3326 REGB0 = TAG_Int(99);
3327 fra.me.REG[2] = NEW_ReduceAction253_parser___ReduceAction253___init(REGB0);
3328 /* ./parser//parser.nit:152 */
3329 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3330 /* ./parser//parser.nit:659 */
3331 REGB0 = TAG_Int(100);
3332 fra.me.REG[2] = NEW_ReduceAction254_parser___ReduceAction254___init(REGB0);
3333 /* ./parser//parser.nit:152 */
3334 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3335 /* ./parser//parser.nit:660 */
3336 REGB0 = TAG_Int(100);
3337 fra.me.REG[2] = NEW_ReduceAction255_parser___ReduceAction255___init(REGB0);
3338 /* ./parser//parser.nit:152 */
3339 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3340 /* ./parser//parser.nit:661 */
3341 REGB0 = TAG_Int(100);
3342 fra.me.REG[2] = NEW_ReduceAction256_parser___ReduceAction256___init(REGB0);
3343 /* ./parser//parser.nit:152 */
3344 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3345 /* ./parser//parser.nit:662 */
3346 REGB0 = TAG_Int(100);
3347 fra.me.REG[2] = NEW_ReduceAction257_parser___ReduceAction257___init(REGB0);
3348 /* ./parser//parser.nit:152 */
3349 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3350 /* ./parser//parser.nit:663 */
3351 REGB0 = TAG_Int(101);
3352 fra.me.REG[2] = NEW_ReduceAction258_parser___ReduceAction258___init(REGB0);
3353 /* ./parser//parser.nit:152 */
3354 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3355 /* ./parser//parser.nit:664 */
3356 REGB0 = TAG_Int(101);
3357 fra.me.REG[2] = NEW_ReduceAction259_parser___ReduceAction259___init(REGB0);
3358 /* ./parser//parser.nit:152 */
3359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3360 /* ./parser//parser.nit:665 */
3361 REGB0 = TAG_Int(101);
3362 fra.me.REG[2] = NEW_ReduceAction260_parser___ReduceAction260___init(REGB0);
3363 /* ./parser//parser.nit:152 */
3364 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3365 /* ./parser//parser.nit:666 */
3366 REGB0 = TAG_Int(101);
3367 fra.me.REG[2] = NEW_ReduceAction261_parser___ReduceAction261___init(REGB0);
3368 /* ./parser//parser.nit:152 */
3369 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3370 /* ./parser//parser.nit:667 */
3371 REGB0 = TAG_Int(101);
3372 fra.me.REG[2] = NEW_ReduceAction262_parser___ReduceAction262___init(REGB0);
3373 /* ./parser//parser.nit:152 */
3374 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3375 /* ./parser//parser.nit:668 */
3376 REGB0 = TAG_Int(101);
3377 fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction263___init(REGB0);
3378 /* ./parser//parser.nit:152 */
3379 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3380 /* ./parser//parser.nit:669 */
3381 REGB0 = TAG_Int(101);
3382 fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction264___init(REGB0);
3383 /* ./parser//parser.nit:152 */
3384 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3385 /* ./parser//parser.nit:670 */
3386 REGB0 = TAG_Int(101);
3387 fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction265___init(REGB0);
3388 /* ./parser//parser.nit:152 */
3389 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3390 /* ./parser//parser.nit:671 */
3391 REGB0 = TAG_Int(101);
3392 fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction266___init(REGB0);
3393 /* ./parser//parser.nit:152 */
3394 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3395 /* ./parser//parser.nit:672 */
3396 REGB0 = TAG_Int(101);
3397 fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction267___init(REGB0);
3398 /* ./parser//parser.nit:152 */
3399 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3400 /* ./parser//parser.nit:673 */
3401 REGB0 = TAG_Int(102);
3402 fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction270___init(REGB0);
3403 /* ./parser//parser.nit:152 */
3404 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3405 /* ./parser//parser.nit:674 */
3406 REGB0 = TAG_Int(102);
3407 fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction271___init(REGB0);
3408 /* ./parser//parser.nit:152 */
3409 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3410 /* ./parser//parser.nit:675 */
3411 REGB0 = TAG_Int(103);
3412 fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction272___init(REGB0);
3413 /* ./parser//parser.nit:152 */
3414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3415 /* ./parser//parser.nit:676 */
3416 REGB0 = TAG_Int(104);
3417 fra.me.REG[2] = NEW_ReduceAction279_parser___ReduceAction279___init(REGB0);
3418 /* ./parser//parser.nit:152 */
3419 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3420 /* ./parser//parser.nit:677 */
3421 REGB0 = TAG_Int(104);
3422 fra.me.REG[2] = NEW_ReduceAction280_parser___ReduceAction280___init(REGB0);
3423 /* ./parser//parser.nit:152 */
3424 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3425 /* ./parser//parser.nit:678 */
3426 REGB0 = TAG_Int(105);
3427 fra.me.REG[2] = NEW_ReduceAction281_parser___ReduceAction281___init(REGB0);
3428 /* ./parser//parser.nit:152 */
3429 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3430 /* ./parser//parser.nit:679 */
3431 REGB0 = TAG_Int(105);
3432 fra.me.REG[2] = NEW_ReduceAction282_parser___ReduceAction282___init(REGB0);
3433 /* ./parser//parser.nit:152 */
3434 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3435 /* ./parser//parser.nit:680 */
3436 REGB0 = TAG_Int(106);
3437 fra.me.REG[2] = NEW_ReduceAction283_parser___ReduceAction283___init(REGB0);
3438 /* ./parser//parser.nit:152 */
3439 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3440 /* ./parser//parser.nit:681 */
3441 REGB0 = TAG_Int(106);
3442 fra.me.REG[2] = NEW_ReduceAction284_parser___ReduceAction284___init(REGB0);
3443 /* ./parser//parser.nit:152 */
3444 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3445 /* ./parser//parser.nit:682 */
3446 REGB0 = TAG_Int(107);
3447 fra.me.REG[2] = NEW_ReduceAction285_parser___ReduceAction285___init(REGB0);
3448 /* ./parser//parser.nit:152 */
3449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3450 /* ./parser//parser.nit:683 */
3451 REGB0 = TAG_Int(107);
3452 fra.me.REG[2] = NEW_ReduceAction286_parser___ReduceAction286___init(REGB0);
3453 /* ./parser//parser.nit:152 */
3454 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3455 /* ./parser//parser.nit:684 */
3456 REGB0 = TAG_Int(108);
3457 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3458 /* ./parser//parser.nit:152 */
3459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3460 /* ./parser//parser.nit:685 */
3461 REGB0 = TAG_Int(108);
3462 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3463 /* ./parser//parser.nit:152 */
3464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3465 /* ./parser//parser.nit:686 */
3466 REGB0 = TAG_Int(108);
3467 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3468 /* ./parser//parser.nit:152 */
3469 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3470 /* ./parser//parser.nit:687 */
3471 REGB0 = TAG_Int(108);
3472 fra.me.REG[2] = NEW_ReduceAction293_parser___ReduceAction293___init(REGB0);
3473 /* ./parser//parser.nit:152 */
3474 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3475 /* ./parser//parser.nit:688 */
3476 REGB0 = TAG_Int(109);
3477 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3478 /* ./parser//parser.nit:152 */
3479 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3480 /* ./parser//parser.nit:689 */
3481 REGB0 = TAG_Int(109);
3482 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3483 /* ./parser//parser.nit:152 */
3484 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3485 /* ./parser//parser.nit:690 */
3486 REGB0 = TAG_Int(109);
3487 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3488 /* ./parser//parser.nit:152 */
3489 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3490 /* ./parser//parser.nit:691 */
3491 REGB0 = TAG_Int(110);
3492 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3493 /* ./parser//parser.nit:152 */
3494 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3495 /* ./parser//parser.nit:692 */
3496 REGB0 = TAG_Int(110);
3497 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
3498 /* ./parser//parser.nit:152 */
3499 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3500 /* ./parser//parser.nit:693 */
3501 REGB0 = TAG_Int(110);
3502 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
3503 /* ./parser//parser.nit:152 */
3504 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3505 /* ./parser//parser.nit:694 */
3506 REGB0 = TAG_Int(111);
3507 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3508 /* ./parser//parser.nit:152 */
3509 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3510 /* ./parser//parser.nit:695 */
3511 REGB0 = TAG_Int(111);
3512 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
3513 /* ./parser//parser.nit:152 */
3514 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3515 /* ./parser//parser.nit:696 */
3516 REGB0 = TAG_Int(111);
3517 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
3518 /* ./parser//parser.nit:152 */
3519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3520 /* ./parser//parser.nit:697 */
3521 REGB0 = TAG_Int(112);
3522 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3523 /* ./parser//parser.nit:152 */
3524 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3525 /* ./parser//parser.nit:698 */
3526 REGB0 = TAG_Int(112);
3527 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3528 /* ./parser//parser.nit:152 */
3529 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3530 /* ./parser//parser.nit:699 */
3531 REGB0 = TAG_Int(112);
3532 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3533 /* ./parser//parser.nit:152 */
3534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3535 /* ./parser//parser.nit:700 */
3536 REGB0 = TAG_Int(113);
3537 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3538 /* ./parser//parser.nit:152 */
3539 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3540 /* ./parser//parser.nit:701 */
3541 REGB0 = TAG_Int(113);
3542 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
3543 /* ./parser//parser.nit:152 */
3544 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3545 /* ./parser//parser.nit:702 */
3546 REGB0 = TAG_Int(114);
3547 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3548 /* ./parser//parser.nit:152 */
3549 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3550 /* ./parser//parser.nit:703 */
3551 REGB0 = TAG_Int(114);
3552 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
3553 /* ./parser//parser.nit:152 */
3554 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3555 /* ./parser//parser.nit:704 */
3556 REGB0 = TAG_Int(114);
3557 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
3558 /* ./parser//parser.nit:152 */
3559 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3560 /* ./parser//parser.nit:705 */
3561 REGB0 = TAG_Int(114);
3562 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
3563 /* ./parser//parser.nit:152 */
3564 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3565 /* ./parser//parser.nit:706 */
3566 REGB0 = TAG_Int(115);
3567 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3568 /* ./parser//parser.nit:152 */
3569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3570 /* ./parser//parser.nit:707 */
3571 REGB0 = TAG_Int(115);
3572 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
3573 /* ./parser//parser.nit:152 */
3574 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3575 /* ./parser//parser.nit:708 */
3576 REGB0 = TAG_Int(116);
3577 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3578 /* ./parser//parser.nit:152 */
3579 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3580 /* ./parser//parser.nit:709 */
3581 REGB0 = TAG_Int(116);
3582 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
3583 /* ./parser//parser.nit:152 */
3584 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3585 /* ./parser//parser.nit:710 */
3586 REGB0 = TAG_Int(116);
3587 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
3588 /* ./parser//parser.nit:152 */
3589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3590 /* ./parser//parser.nit:711 */
3591 REGB0 = TAG_Int(116);
3592 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
3593 /* ./parser//parser.nit:152 */
3594 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3595 /* ./parser//parser.nit:712 */
3596 REGB0 = TAG_Int(116);
3597 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
3598 /* ./parser//parser.nit:152 */
3599 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3600 /* ./parser//parser.nit:713 */
3601 REGB0 = TAG_Int(116);
3602 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
3603 /* ./parser//parser.nit:152 */
3604 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3605 /* ./parser//parser.nit:714 */
3606 REGB0 = TAG_Int(116);
3607 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
3608 /* ./parser//parser.nit:152 */
3609 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3610 /* ./parser//parser.nit:715 */
3611 REGB0 = TAG_Int(116);
3612 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
3613 /* ./parser//parser.nit:152 */
3614 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3615 /* ./parser//parser.nit:716 */
3616 REGB0 = TAG_Int(116);
3617 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
3618 /* ./parser//parser.nit:152 */
3619 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3620 /* ./parser//parser.nit:717 */
3621 REGB0 = TAG_Int(116);
3622 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
3623 /* ./parser//parser.nit:152 */
3624 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3625 /* ./parser//parser.nit:718 */
3626 REGB0 = TAG_Int(116);
3627 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
3628 /* ./parser//parser.nit:152 */
3629 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3630 /* ./parser//parser.nit:719 */
3631 REGB0 = TAG_Int(116);
3632 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
3633 /* ./parser//parser.nit:152 */
3634 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3635 /* ./parser//parser.nit:720 */
3636 REGB0 = TAG_Int(117);
3637 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3638 /* ./parser//parser.nit:152 */
3639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3640 /* ./parser//parser.nit:721 */
3641 REGB0 = TAG_Int(117);
3642 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
3643 /* ./parser//parser.nit:152 */
3644 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3645 /* ./parser//parser.nit:722 */
3646 REGB0 = TAG_Int(117);
3647 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
3648 /* ./parser//parser.nit:152 */
3649 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3650 /* ./parser//parser.nit:723 */
3651 REGB0 = TAG_Int(118);
3652 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3653 /* ./parser//parser.nit:152 */
3654 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3655 /* ./parser//parser.nit:724 */
3656 REGB0 = TAG_Int(118);
3657 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
3658 /* ./parser//parser.nit:152 */
3659 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3660 /* ./parser//parser.nit:725 */
3661 REGB0 = TAG_Int(118);
3662 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
3663 /* ./parser//parser.nit:152 */
3664 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3665 /* ./parser//parser.nit:726 */
3666 REGB0 = TAG_Int(118);
3667 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
3668 /* ./parser//parser.nit:152 */
3669 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3670 /* ./parser//parser.nit:727 */
3671 REGB0 = TAG_Int(119);
3672 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3673 /* ./parser//parser.nit:152 */
3674 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3675 /* ./parser//parser.nit:728 */
3676 REGB0 = TAG_Int(119);
3677 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
3678 /* ./parser//parser.nit:152 */
3679 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3680 /* ./parser//parser.nit:729 */
3681 REGB0 = TAG_Int(119);
3682 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
3683 /* ./parser//parser.nit:152 */
3684 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3685 /* ./parser//parser.nit:730 */
3686 REGB0 = TAG_Int(120);
3687 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3688 /* ./parser//parser.nit:152 */
3689 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3690 /* ./parser//parser.nit:731 */
3691 REGB0 = TAG_Int(120);
3692 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
3693 /* ./parser//parser.nit:152 */
3694 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3695 /* ./parser//parser.nit:732 */
3696 REGB0 = TAG_Int(120);
3697 fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction326___init(REGB0);
3698 /* ./parser//parser.nit:152 */
3699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3700 /* ./parser//parser.nit:733 */
3701 REGB0 = TAG_Int(120);
3702 fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction327___init(REGB0);
3703 /* ./parser//parser.nit:152 */
3704 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3705 /* ./parser//parser.nit:734 */
3706 REGB0 = TAG_Int(121);
3707 fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction328___init(REGB0);
3708 /* ./parser//parser.nit:152 */
3709 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3710 /* ./parser//parser.nit:735 */
3711 REGB0 = TAG_Int(121);
3712 fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction329___init(REGB0);
3713 /* ./parser//parser.nit:152 */
3714 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3715 /* ./parser//parser.nit:736 */
3716 REGB0 = TAG_Int(121);
3717 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
3718 /* ./parser//parser.nit:152 */
3719 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3720 /* ./parser//parser.nit:737 */
3721 REGB0 = TAG_Int(121);
3722 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
3723 /* ./parser//parser.nit:152 */
3724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3725 /* ./parser//parser.nit:738 */
3726 REGB0 = TAG_Int(121);
3727 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
3728 /* ./parser//parser.nit:152 */
3729 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3730 /* ./parser//parser.nit:739 */
3731 REGB0 = TAG_Int(121);
3732 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
3733 /* ./parser//parser.nit:152 */
3734 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3735 /* ./parser//parser.nit:740 */
3736 REGB0 = TAG_Int(121);
3737 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
3738 /* ./parser//parser.nit:152 */
3739 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3740 /* ./parser//parser.nit:741 */
3741 REGB0 = TAG_Int(121);
3742 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
3743 /* ./parser//parser.nit:152 */
3744 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3745 /* ./parser//parser.nit:742 */
3746 REGB0 = TAG_Int(121);
3747 fra.me.REG[2] = NEW_ReduceAction336_parser___ReduceAction336___init(REGB0);
3748 /* ./parser//parser.nit:152 */
3749 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3750 /* ./parser//parser.nit:743 */
3751 REGB0 = TAG_Int(121);
3752 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
3753 /* ./parser//parser.nit:152 */
3754 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3755 /* ./parser//parser.nit:744 */
3756 REGB0 = TAG_Int(121);
3757 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
3758 /* ./parser//parser.nit:152 */
3759 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3760 /* ./parser//parser.nit:745 */
3761 REGB0 = TAG_Int(121);
3762 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
3763 /* ./parser//parser.nit:152 */
3764 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3765 /* ./parser//parser.nit:746 */
3766 REGB0 = TAG_Int(121);
3767 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
3768 /* ./parser//parser.nit:152 */
3769 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3770 /* ./parser//parser.nit:747 */
3771 REGB0 = TAG_Int(121);
3772 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
3773 /* ./parser//parser.nit:152 */
3774 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3775 /* ./parser//parser.nit:748 */
3776 REGB0 = TAG_Int(121);
3777 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
3778 /* ./parser//parser.nit:152 */
3779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3780 /* ./parser//parser.nit:749 */
3781 REGB0 = TAG_Int(121);
3782 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
3783 /* ./parser//parser.nit:152 */
3784 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3785 /* ./parser//parser.nit:750 */
3786 REGB0 = TAG_Int(121);
3787 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
3788 /* ./parser//parser.nit:152 */
3789 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3790 /* ./parser//parser.nit:751 */
3791 REGB0 = TAG_Int(121);
3792 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
3793 /* ./parser//parser.nit:152 */
3794 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3795 /* ./parser//parser.nit:752 */
3796 REGB0 = TAG_Int(121);
3797 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3798 /* ./parser//parser.nit:152 */
3799 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3800 /* ./parser//parser.nit:753 */
3801 REGB0 = TAG_Int(121);
3802 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
3803 /* ./parser//parser.nit:152 */
3804 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3805 /* ./parser//parser.nit:754 */
3806 REGB0 = TAG_Int(121);
3807 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
3808 /* ./parser//parser.nit:152 */
3809 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3810 /* ./parser//parser.nit:755 */
3811 REGB0 = TAG_Int(122);
3812 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3813 /* ./parser//parser.nit:152 */
3814 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3815 /* ./parser//parser.nit:756 */
3816 REGB0 = TAG_Int(122);
3817 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3818 /* ./parser//parser.nit:152 */
3819 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3820 /* ./parser//parser.nit:757 */
3821 REGB0 = TAG_Int(122);
3822 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3823 /* ./parser//parser.nit:152 */
3824 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3825 /* ./parser//parser.nit:758 */
3826 REGB0 = TAG_Int(123);
3827 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3828 /* ./parser//parser.nit:152 */
3829 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3830 /* ./parser//parser.nit:759 */
3831 REGB0 = TAG_Int(123);
3832 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
3833 /* ./parser//parser.nit:152 */
3834 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3835 /* ./parser//parser.nit:760 */
3836 REGB0 = TAG_Int(124);
3837 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3838 /* ./parser//parser.nit:152 */
3839 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3840 /* ./parser//parser.nit:761 */
3841 REGB0 = TAG_Int(124);
3842 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
3843 /* ./parser//parser.nit:152 */
3844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3845 /* ./parser//parser.nit:762 */
3846 REGB0 = TAG_Int(124);
3847 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
3848 /* ./parser//parser.nit:152 */
3849 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3850 /* ./parser//parser.nit:763 */
3851 REGB0 = TAG_Int(124);
3852 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
3853 /* ./parser//parser.nit:152 */
3854 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3855 /* ./parser//parser.nit:764 */
3856 REGB0 = TAG_Int(125);
3857 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3858 /* ./parser//parser.nit:152 */
3859 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3860 /* ./parser//parser.nit:765 */
3861 REGB0 = TAG_Int(125);
3862 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
3863 /* ./parser//parser.nit:152 */
3864 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3865 /* ./parser//parser.nit:766 */
3866 REGB0 = TAG_Int(126);
3867 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3868 /* ./parser//parser.nit:152 */
3869 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3870 /* ./parser//parser.nit:767 */
3871 REGB0 = TAG_Int(126);
3872 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
3873 /* ./parser//parser.nit:152 */
3874 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3875 /* ./parser//parser.nit:768 */
3876 REGB0 = TAG_Int(126);
3877 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
3878 /* ./parser//parser.nit:152 */
3879 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3880 /* ./parser//parser.nit:769 */
3881 REGB0 = TAG_Int(126);
3882 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
3883 /* ./parser//parser.nit:152 */
3884 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3885 /* ./parser//parser.nit:770 */
3886 REGB0 = TAG_Int(126);
3887 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
3888 /* ./parser//parser.nit:152 */
3889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3890 /* ./parser//parser.nit:771 */
3891 REGB0 = TAG_Int(126);
3892 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
3893 /* ./parser//parser.nit:152 */
3894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3895 /* ./parser//parser.nit:772 */
3896 REGB0 = TAG_Int(126);
3897 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
3898 /* ./parser//parser.nit:152 */
3899 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3900 /* ./parser//parser.nit:773 */
3901 REGB0 = TAG_Int(126);
3902 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
3903 /* ./parser//parser.nit:152 */
3904 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3905 /* ./parser//parser.nit:774 */
3906 REGB0 = TAG_Int(126);
3907 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
3908 /* ./parser//parser.nit:152 */
3909 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3910 /* ./parser//parser.nit:775 */
3911 REGB0 = TAG_Int(126);
3912 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
3913 /* ./parser//parser.nit:152 */
3914 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3915 /* ./parser//parser.nit:776 */
3916 REGB0 = TAG_Int(126);
3917 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
3918 /* ./parser//parser.nit:152 */
3919 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3920 /* ./parser//parser.nit:777 */
3921 REGB0 = TAG_Int(126);
3922 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
3923 /* ./parser//parser.nit:152 */
3924 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3925 /* ./parser//parser.nit:778 */
3926 REGB0 = TAG_Int(127);
3927 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3928 /* ./parser//parser.nit:152 */
3929 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3930 /* ./parser//parser.nit:779 */
3931 REGB0 = TAG_Int(127);
3932 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
3933 /* ./parser//parser.nit:152 */
3934 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3935 /* ./parser//parser.nit:780 */
3936 REGB0 = TAG_Int(127);
3937 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
3938 /* ./parser//parser.nit:152 */
3939 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3940 /* ./parser//parser.nit:781 */
3941 REGB0 = TAG_Int(128);
3942 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3943 /* ./parser//parser.nit:152 */
3944 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3945 /* ./parser//parser.nit:782 */
3946 REGB0 = TAG_Int(128);
3947 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
3948 /* ./parser//parser.nit:152 */
3949 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3950 /* ./parser//parser.nit:783 */
3951 REGB0 = TAG_Int(128);
3952 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
3953 /* ./parser//parser.nit:152 */
3954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3955 /* ./parser//parser.nit:784 */
3956 REGB0 = TAG_Int(128);
3957 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
3958 /* ./parser//parser.nit:152 */
3959 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3960 /* ./parser//parser.nit:785 */
3961 REGB0 = TAG_Int(129);
3962 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3963 /* ./parser//parser.nit:152 */
3964 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3965 /* ./parser//parser.nit:786 */
3966 REGB0 = TAG_Int(129);
3967 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
3968 /* ./parser//parser.nit:152 */
3969 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3970 /* ./parser//parser.nit:787 */
3971 REGB0 = TAG_Int(129);
3972 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
3973 /* ./parser//parser.nit:152 */
3974 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3975 /* ./parser//parser.nit:788 */
3976 REGB0 = TAG_Int(130);
3977 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3978 /* ./parser//parser.nit:152 */
3979 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3980 /* ./parser//parser.nit:789 */
3981 REGB0 = TAG_Int(130);
3982 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
3983 /* ./parser//parser.nit:152 */
3984 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3985 /* ./parser//parser.nit:790 */
3986 REGB0 = TAG_Int(130);
3987 fra.me.REG[2] = NEW_ReduceAction637_parser___ReduceAction637___init(REGB0);
3988 /* ./parser//parser.nit:152 */
3989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3990 /* ./parser//parser.nit:791 */
3991 REGB0 = TAG_Int(131);
3992 fra.me.REG[2] = NEW_ReduceAction638_parser___ReduceAction638___init(REGB0);
3993 /* ./parser//parser.nit:152 */
3994 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3995 /* ./parser//parser.nit:792 */
3996 REGB0 = TAG_Int(131);
3997 fra.me.REG[2] = NEW_ReduceAction639_parser___ReduceAction639___init(REGB0);
3998 /* ./parser//parser.nit:152 */
3999 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4000 /* ./parser//parser.nit:793 */
4001 REGB0 = TAG_Int(131);
4002 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
4003 /* ./parser//parser.nit:152 */
4004 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4005 /* ./parser//parser.nit:794 */
4006 REGB0 = TAG_Int(131);
4007 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
4008 /* ./parser//parser.nit:152 */
4009 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4010 /* ./parser//parser.nit:795 */
4011 REGB0 = TAG_Int(131);
4012 fra.me.REG[2] = NEW_ReduceAction642_parser___ReduceAction642___init(REGB0);
4013 /* ./parser//parser.nit:152 */
4014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4015 /* ./parser//parser.nit:796 */
4016 REGB0 = TAG_Int(131);
4017 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
4018 /* ./parser//parser.nit:152 */
4019 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4020 /* ./parser//parser.nit:797 */
4021 REGB0 = TAG_Int(131);
4022 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
4023 /* ./parser//parser.nit:152 */
4024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4025 /* ./parser//parser.nit:798 */
4026 REGB0 = TAG_Int(131);
4027 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
4028 /* ./parser//parser.nit:152 */
4029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4030 /* ./parser//parser.nit:799 */
4031 REGB0 = TAG_Int(131);
4032 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
4033 /* ./parser//parser.nit:152 */
4034 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4035 /* ./parser//parser.nit:800 */
4036 REGB0 = TAG_Int(131);
4037 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
4038 /* ./parser//parser.nit:152 */
4039 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4040 /* ./parser//parser.nit:801 */
4041 REGB0 = TAG_Int(131);
4042 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
4043 /* ./parser//parser.nit:152 */
4044 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4045 /* ./parser//parser.nit:802 */
4046 REGB0 = TAG_Int(131);
4047 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
4048 /* ./parser//parser.nit:152 */
4049 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4050 /* ./parser//parser.nit:803 */
4051 REGB0 = TAG_Int(131);
4052 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
4053 /* ./parser//parser.nit:152 */
4054 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4055 /* ./parser//parser.nit:804 */
4056 REGB0 = TAG_Int(131);
4057 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
4058 /* ./parser//parser.nit:152 */
4059 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4060 /* ./parser//parser.nit:805 */
4061 REGB0 = TAG_Int(131);
4062 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
4063 /* ./parser//parser.nit:152 */
4064 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4065 /* ./parser//parser.nit:806 */
4066 REGB0 = TAG_Int(131);
4067 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
4068 /* ./parser//parser.nit:152 */
4069 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4070 /* ./parser//parser.nit:807 */
4071 REGB0 = TAG_Int(131);
4072 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
4073 /* ./parser//parser.nit:152 */
4074 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4075 /* ./parser//parser.nit:808 */
4076 REGB0 = TAG_Int(132);
4077 fra.me.REG[2] = NEW_ReduceAction655_parser___ReduceAction655___init(REGB0);
4078 /* ./parser//parser.nit:152 */
4079 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4080 /* ./parser//parser.nit:809 */
4081 REGB0 = TAG_Int(132);
4082 fra.me.REG[2] = NEW_ReduceAction656_parser___ReduceAction656___init(REGB0);
4083 /* ./parser//parser.nit:152 */
4084 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4085 /* ./parser//parser.nit:810 */
4086 REGB0 = TAG_Int(133);
4087 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
4088 /* ./parser//parser.nit:152 */
4089 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4090 /* ./parser//parser.nit:811 */
4091 REGB0 = TAG_Int(133);
4092 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
4093 /* ./parser//parser.nit:152 */
4094 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4095 /* ./parser//parser.nit:812 */
4096 REGB0 = TAG_Int(133);
4097 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
4098 /* ./parser//parser.nit:152 */
4099 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4100 /* ./parser//parser.nit:813 */
4101 REGB0 = TAG_Int(134);
4102 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
4103 /* ./parser//parser.nit:152 */
4104 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4105 /* ./parser//parser.nit:814 */
4106 REGB0 = TAG_Int(134);
4107 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
4108 /* ./parser//parser.nit:152 */
4109 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4110 /* ./parser//parser.nit:815 */
4111 REGB0 = TAG_Int(134);
4112 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
4113 /* ./parser//parser.nit:152 */
4114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4115 /* ./parser//parser.nit:816 */
4116 REGB0 = TAG_Int(135);
4117 fra.me.REG[2] = NEW_ReduceAction663_parser___ReduceAction663___init(REGB0);
4118 /* ./parser//parser.nit:152 */
4119 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4120 /* ./parser//parser.nit:817 */
4121 REGB0 = TAG_Int(135);
4122 fra.me.REG[2] = NEW_ReduceAction664_parser___ReduceAction664___init(REGB0);
4123 /* ./parser//parser.nit:152 */
4124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4125 /* ./parser//parser.nit:818 */
4126 REGB0 = TAG_Int(136);
4127 fra.me.REG[2] = NEW_ReduceAction665_parser___ReduceAction665___init(REGB0);
4128 /* ./parser//parser.nit:152 */
4129 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4130 /* ./parser//parser.nit:819 */
4131 REGB0 = TAG_Int(136);
4132 fra.me.REG[2] = NEW_ReduceAction666_parser___ReduceAction666___init(REGB0);
4133 /* ./parser//parser.nit:152 */
4134 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4135 /* ./parser//parser.nit:820 */
4136 REGB0 = TAG_Int(137);
4137 fra.me.REG[2] = NEW_ReduceAction667_parser___ReduceAction667___init(REGB0);
4138 /* ./parser//parser.nit:152 */
4139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4140 /* ./parser//parser.nit:821 */
4141 REGB0 = TAG_Int(137);
4142 fra.me.REG[2] = NEW_ReduceAction668_parser___ReduceAction668___init(REGB0);
4143 /* ./parser//parser.nit:152 */
4144 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4145 /* ./parser//parser.nit:822 */
4146 REGB0 = TAG_Int(138);
4147 fra.me.REG[2] = NEW_ReduceAction669_parser___ReduceAction669___init(REGB0);
4148 /* ./parser//parser.nit:152 */
4149 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4150 /* ./parser//parser.nit:823 */
4151 REGB0 = TAG_Int(138);
4152 fra.me.REG[2] = NEW_ReduceAction670_parser___ReduceAction670___init(REGB0);
4153 /* ./parser//parser.nit:152 */
4154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4155 /* ./parser//parser.nit:824 */
4156 REGB0 = TAG_Int(139);
4157 fra.me.REG[2] = NEW_ReduceAction667_parser___ReduceAction667___init(REGB0);
4158 /* ./parser//parser.nit:152 */
4159 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4160 /* ./parser//parser.nit:825 */
4161 REGB0 = TAG_Int(139);
4162 fra.me.REG[2] = NEW_ReduceAction668_parser___ReduceAction668___init(REGB0);
4163 /* ./parser//parser.nit:152 */
4164 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4165 /* ./parser//parser.nit:826 */
4166 REGB0 = TAG_Int(140);
4167 fra.me.REG[2] = NEW_ReduceAction673_parser___ReduceAction673___init(REGB0);
4168 /* ./parser//parser.nit:152 */
4169 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4170 /* ./parser//parser.nit:827 */
4171 REGB0 = TAG_Int(140);
4172 fra.me.REG[2] = NEW_ReduceAction674_parser___ReduceAction674___init(REGB0);
4173 /* ./parser//parser.nit:152 */
4174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4175 /* ./parser//parser.nit:828 */
4176 REGB0 = TAG_Int(141);
4177 fra.me.REG[2] = NEW_ReduceAction675_parser___ReduceAction675___init(REGB0);
4178 /* ./parser//parser.nit:152 */
4179 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4180 /* ./parser//parser.nit:829 */
4181 REGB0 = TAG_Int(141);
4182 fra.me.REG[2] = NEW_ReduceAction676_parser___ReduceAction676___init(REGB0);
4183 /* ./parser//parser.nit:152 */
4184 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4185 /* ./parser//parser.nit:830 */
4186 REGB0 = TAG_Int(142);
4187 fra.me.REG[2] = NEW_ReduceAction677_parser___ReduceAction677___init(REGB0);
4188 /* ./parser//parser.nit:152 */
4189 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4190 /* ./parser//parser.nit:831 */
4191 REGB0 = TAG_Int(142);
4192 fra.me.REG[2] = NEW_ReduceAction678_parser___ReduceAction678___init(REGB0);
4193 /* ./parser//parser.nit:152 */
4194 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4195 /* ./parser//parser.nit:832 */
4196 REGB0 = TAG_Int(143);
4197 fra.me.REG[2] = NEW_ReduceAction198_parser___ReduceAction198___init(REGB0);
4198 /* ./parser//parser.nit:152 */
4199 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4200 /* ./parser//parser.nit:833 */
4201 REGB0 = TAG_Int(143);
4202 fra.me.REG[2] = NEW_ReduceAction680_parser___ReduceAction680___init(REGB0);
4203 /* ./parser//parser.nit:152 */
4204 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4205 /* ./parser//parser.nit:834 */
4206 REGB0 = TAG_Int(144);
4207 fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction366___init(REGB0);
4208 /* ./parser//parser.nit:152 */
4209 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4210 /* ./parser//parser.nit:835 */
4211 REGB0 = TAG_Int(144);
4212 fra.me.REG[2] = NEW_ReduceAction682_parser___ReduceAction682___init(REGB0);
4213 /* ./parser//parser.nit:152 */
4214 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4215 /* ./parser//parser.nit:836 */
4216 REGB0 = TAG_Int(145);
4217 fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction373___init(REGB0);
4218 /* ./parser//parser.nit:152 */
4219 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4220 /* ./parser//parser.nit:837 */
4221 REGB0 = TAG_Int(145);
4222 fra.me.REG[2] = NEW_ReduceAction684_parser___ReduceAction684___init(REGB0);
4223 /* ./parser//parser.nit:152 */
4224 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4225 /* ./parser//parser.nit:838 */
4226 REGB0 = TAG_Int(146);
4227 fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction366___init(REGB0);
4228 /* ./parser//parser.nit:152 */
4229 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4230 /* ./parser//parser.nit:839 */
4231 REGB0 = TAG_Int(146);
4232 fra.me.REG[2] = NEW_ReduceAction682_parser___ReduceAction682___init(REGB0);
4233 /* ./parser//parser.nit:152 */
4234 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4235 /* ./parser//parser.nit:840 */
4236 REGB0 = TAG_Int(147);
4237 fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction374___init(REGB0);
4238 /* ./parser//parser.nit:152 */
4239 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4240 /* ./parser//parser.nit:841 */
4241 REGB0 = TAG_Int(147);
4242 fra.me.REG[2] = NEW_ReduceAction688_parser___ReduceAction688___init(REGB0);
4243 /* ./parser//parser.nit:152 */
4244 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4245 /* ./parser//parser.nit:842 */
4246 REGB0 = TAG_Int(148);
4247 fra.me.REG[2] = NEW_ReduceAction689_parser___ReduceAction689___init(REGB0);
4248 /* ./parser//parser.nit:152 */
4249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4250 /* ./parser//parser.nit:843 */
4251 REGB0 = TAG_Int(148);
4252 fra.me.REG[2] = NEW_ReduceAction690_parser___ReduceAction690___init(REGB0);
4253 /* ./parser//parser.nit:152 */
4254 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4255 /* ./parser//parser.nit:844 */
4256 REGB0 = TAG_Int(149);
4257 fra.me.REG[2] = NEW_ReduceAction691_parser___ReduceAction691___init(REGB0);
4258 /* ./parser//parser.nit:152 */
4259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4260 /* ./parser//parser.nit:845 */
4261 REGB0 = TAG_Int(149);
4262 fra.me.REG[2] = NEW_ReduceAction692_parser___ReduceAction692___init(REGB0);
4263 /* ./parser//parser.nit:152 */
4264 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4265 fra.me.REG[1] = NEW_Array_array___Array___with_items(fra.me.REG[1]);
4266 ATTR_parser___Parser____reduce_table(fra.me.REG[0]) = fra.me.REG[1];
4267 stack_frame_head = fra.me.prev;
4268 return;
4269 }
4270 void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
4271 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4272 val_t REGB0;
4273 val_t REGB1;
4274 val_t REGB2;
4275 val_t REGB3;
4276 val_t REGB4;
4277 val_t tmp;
4278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4279 fra.me.file = LOCATE_parser;
4280 fra.me.line = 876;
4281 fra.me.meth = LOCATE_parser___ComputeProdLocationVisitor___visit;
4282 fra.me.has_broke = 0;
4283 fra.me.REG_size = 9;
4284 fra.me.REG[0] = NIT_NULL;
4285 fra.me.REG[1] = NIT_NULL;
4286 fra.me.REG[2] = NIT_NULL;
4287 fra.me.REG[3] = NIT_NULL;
4288 fra.me.REG[4] = NIT_NULL;
4289 fra.me.REG[5] = NIT_NULL;
4290 fra.me.REG[6] = NIT_NULL;
4291 fra.me.REG[7] = NIT_NULL;
4292 fra.me.REG[8] = NIT_NULL;
4293 fra.me.REG[0] = p0;
4294 fra.me.REG[1] = p1;
4295 /* ./parser//parser.nit:878 */
4296 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4297 if (UNTAG_Bool(REGB0)) {
4298 } else {
4299 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4300 if (UNTAG_Bool(REGB1)) {
4301 REGB1 = TAG_Bool(false);
4302 REGB0 = REGB1;
4303 } else {
4304 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4305 REGB0 = REGB1;
4306 }
4307 }
4308 if (UNTAG_Bool(REGB0)) {
4309 /* ./parser//parser.nit:879 */
4310 goto label1;
4311 } else {
4312 /* ./parser//parser.nit:880 */
4313 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/;
4314 if (UNTAG_Bool(REGB0)) {
4315 /* ./parser//parser.nit:881 */
4316 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4317 if (UNTAG_Bool(REGB0)) {
4318 nit_abort("Reciever is null", NULL, LOCATE_parser, 881);
4319 }
4320 fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
4321 /* ./parser//parser.nit:882 */
4322 ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[2];
4323 /* ./parser//parser.nit:885 */
4324 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
4325 if (UNTAG_Bool(REGB0)) {
4326 } else {
4327 nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 885);
4328 }
4329 fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
4330 /* ./../lib/standard//collection//array.nit:234 */
4331 REGB0 = TAG_Int(0);
4332 /* ./../lib/standard//collection//array.nit:235 */
4333 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
4334 if (UNTAG_Bool(REGB1)) {
4335 } else {
4336 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4337 }
4338 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
4339 /* ./../lib/standard//collection//array.nit:236 */
4340 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
4341 /* ./../lib/standard//collection//array.nit:237 */
4342 while(1) {
4343 /* ./../lib/standard//collection//array.nit:23 */
4344 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
4345 if (UNTAG_Bool(REGB1)) {
4346 } else {
4347 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4348 }
4349 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
4350 /* ./../lib/standard//kernel.nit:212 */
4351 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4352 /* ./../lib/standard//collection//array.nit:237 */
4353 if (UNTAG_Bool(REGB1)) {
4354 /* ./../lib/standard//collection//array.nit:238 */
4355 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4356 if (UNTAG_Bool(REGB1)) {
4357 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4358 }
4359 /* ./../lib/standard//collection//array.nit:654 */
4360 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
4361 /* ./parser//parser.nit:886 */
4362 ATTR_parser___Prod____first_location(fra.me.REG[5]) = fra.me.REG[2];
4363 /* ./../lib/standard//collection//array.nit:239 */
4364 REGB1 = TAG_Int(1);
4365 /* ./../lib/standard//kernel.nit:215 */
4366 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4367 /* ./../lib/standard//collection//array.nit:239 */
4368 REGB0 = REGB1;
4369 } else {
4370 /* ./../lib/standard//collection//array.nit:237 */
4371 goto label2;
4372 }
4373 }
4374 label2: while(0);
4375 /* ./parser//parser.nit:888 */
4376 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
4377 if (UNTAG_Bool(REGB0)) {
4378 } else {
4379 nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 888);
4380 }
4381 fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
4382 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
4383 /* ./parser//parser.nit:891 */
4384 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4385 if (UNTAG_Bool(REGB0)) {
4386 } else {
4387 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 891);
4388 }
4389 fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4390 /* ./../lib/standard//collection//array.nit:234 */
4391 REGB0 = TAG_Int(0);
4392 /* ./../lib/standard//collection//array.nit:235 */
4393 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4394 if (UNTAG_Bool(REGB1)) {
4395 } else {
4396 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4397 }
4398 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4399 /* ./../lib/standard//collection//array.nit:236 */
4400 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[4]);
4401 /* ./../lib/standard//collection//array.nit:237 */
4402 while(1) {
4403 /* ./../lib/standard//collection//array.nit:23 */
4404 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4405 if (UNTAG_Bool(REGB1)) {
4406 } else {
4407 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4408 }
4409 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4410 /* ./../lib/standard//kernel.nit:212 */
4411 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4412 /* ./../lib/standard//collection//array.nit:237 */
4413 if (UNTAG_Bool(REGB1)) {
4414 /* ./../lib/standard//collection//array.nit:238 */
4415 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4416 if (UNTAG_Bool(REGB1)) {
4417 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4418 }
4419 /* ./../lib/standard//collection//array.nit:654 */
4420 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
4421 /* ./parser//parser.nit:894 */
4422 fra.me.REG[6] = fra.me.REG[2];
4423 /* ./parser//parser.nit:895 */
4424 fra.me.REG[7] = ATTR_parser___Prod____last_location(fra.me.REG[5]);
4425 /* ./parser//parser.nit:896 */
4426 fra.me.REG[8] = CALL_location___Location___file(fra.me.REG[6])(fra.me.REG[6]);
4427 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4428 if (UNTAG_Bool(REGB1)) {
4429 nit_abort("Reciever is null", NULL, LOCATE_parser, 896);
4430 }
4431 REGB1 = CALL_location___Location___line_end(fra.me.REG[7])(fra.me.REG[7]);
4432 REGB2 = CALL_location___Location___line_start(fra.me.REG[6])(fra.me.REG[6]);
4433 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4434 if (UNTAG_Bool(REGB3)) {
4435 nit_abort("Reciever is null", NULL, LOCATE_parser, 896);
4436 }
4437 REGB3 = CALL_location___Location___column_end(fra.me.REG[7])(fra.me.REG[7]);
4438 REGB4 = CALL_location___Location___column_start(fra.me.REG[6])(fra.me.REG[6]);
4439 fra.me.REG[8] = NEW_Location_location___Location___init(fra.me.REG[8], REGB1, REGB2, REGB3, REGB4);
4440 CALL_parser_nodes___Prod___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
4441 /* ./../lib/standard//collection//array.nit:239 */
4442 REGB4 = TAG_Int(1);
4443 /* ./../lib/standard//kernel.nit:215 */
4444 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
4445 /* ./../lib/standard//collection//array.nit:239 */
4446 REGB0 = REGB4;
4447 } else {
4448 /* ./../lib/standard//collection//array.nit:237 */
4449 goto label3;
4450 }
4451 }
4452 label3: while(0);
4453 /* ./parser//parser.nit:898 */
4454 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4455 if (UNTAG_Bool(REGB0)) {
4456 } else {
4457 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 898);
4458 }
4459 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4460 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
4461 } else {
4462 /* ./parser//parser.nit:900 */
4463 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Prod, ID_Prod)) /*cast Prod*/;
4464 if (UNTAG_Bool(REGB0)) {
4465 } else {
4466 nit_abort("Assert failed", NULL, LOCATE_parser, 900);
4467 }
4468 /* ./parser//parser.nit:901 */
4469 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
4470 if (UNTAG_Bool(REGB0)) {
4471 } else {
4472 nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 901);
4473 }
4474 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
4475 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4476 /* ./parser//parser.nit:903 */
4477 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]);
4478 /* ./parser//parser.nit:904 */
4479 ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = NIT_NULL;
4480 /* ./parser//parser.nit:905 */
4481 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4482 if (UNTAG_Bool(REGB0)) {
4483 nit_abort("Reciever is null", NULL, LOCATE_parser, 905);
4484 }
4485 CALL_parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4486 /* ./parser//parser.nit:906 */
4487 fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]);
4488 /* ./parser//parser.nit:907 */
4489 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4490 if (UNTAG_Bool(REGB0)) {
4491 } else {
4492 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4493 if (UNTAG_Bool(REGB4)) {
4494 REGB4 = TAG_Bool(false);
4495 REGB0 = REGB4;
4496 } else {
4497 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4498 REGB0 = REGB4;
4499 }
4500 }
4501 if (UNTAG_Bool(REGB0)) {
4502 ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[2];
4503 }
4504 /* ./parser//parser.nit:909 */
4505 ATTR_parser___Prod____last_location(fra.me.REG[1]) = fra.me.REG[3];
4506 /* ./parser//parser.nit:910 */
4507 fra.me.REG[2] = ATTR_parser___Prod____first_location(fra.me.REG[1]);
4508 /* ./parser//parser.nit:911 */
4509 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4510 if (UNTAG_Bool(REGB0)) {
4511 } else {
4512 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4513 if (UNTAG_Bool(REGB4)) {
4514 REGB4 = TAG_Bool(false);
4515 REGB0 = REGB4;
4516 } else {
4517 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4518 REGB0 = REGB4;
4519 }
4520 }
4521 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4522 if (UNTAG_Bool(REGB0)) {
4523 /* ./parser//parser.nit:913 */
4524 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4525 if (UNTAG_Bool(REGB0)) {
4526 } else {
4527 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4528 if (UNTAG_Bool(REGB4)) {
4529 REGB4 = TAG_Bool(false);
4530 REGB0 = REGB4;
4531 } else {
4532 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4533 REGB0 = REGB4;
4534 }
4535 }
4536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4537 if (UNTAG_Bool(REGB0)) {
4538 } else {
4539 nit_abort("Assert failed", NULL, LOCATE_parser, 913);
4540 }
4541 /* ./parser//parser.nit:915 */
4542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4543 if (UNTAG_Bool(REGB0)) {
4544 nit_abort("Reciever is null", NULL, LOCATE_parser, 915);
4545 }
4546 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
4547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4548 if (UNTAG_Bool(REGB0)) {
4549 nit_abort("Reciever is null", NULL, LOCATE_parser, 915);
4550 }
4551 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
4552 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4553 if (UNTAG_Bool(REGB4)) {
4554 nit_abort("Reciever is null", NULL, LOCATE_parser, 915);
4555 }
4556 REGB4 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
4557 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4558 if (UNTAG_Bool(REGB3)) {
4559 nit_abort("Reciever is null", NULL, LOCATE_parser, 915);
4560 }
4561 REGB3 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
4562 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4563 if (UNTAG_Bool(REGB2)) {
4564 nit_abort("Reciever is null", NULL, LOCATE_parser, 915);
4565 }
4566 REGB2 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
4567 fra.me.REG[4] = NEW_Location_location___Location___init(fra.me.REG[4], REGB0, REGB4, REGB3, REGB2);
4568 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4569 if (UNTAG_Bool(REGB2)) {
4570 nit_abort("Reciever is null", NULL, LOCATE_parser, 915);
4571 }
4572 CALL_parser_nodes___Prod___location__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4573 /* ./parser//parser.nit:917 */
4574 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
4575 if (UNTAG_Bool(REGB2)) {
4576 } else {
4577 nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 917);
4578 }
4579 fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
4580 /* ./../lib/standard//collection//array.nit:234 */
4581 REGB2 = TAG_Int(0);
4582 /* ./../lib/standard//collection//array.nit:235 */
4583 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4584 if (UNTAG_Bool(REGB3)) {
4585 } else {
4586 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4587 }
4588 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4589 /* ./../lib/standard//collection//array.nit:236 */
4590 fra.me.REG[8] = ATTR_array___Array____items(fra.me.REG[4]);
4591 /* ./../lib/standard//collection//array.nit:237 */
4592 while(1) {
4593 /* ./../lib/standard//collection//array.nit:23 */
4594 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4595 if (UNTAG_Bool(REGB3)) {
4596 } else {
4597 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4598 }
4599 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4600 /* ./../lib/standard//kernel.nit:212 */
4601 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
4602 /* ./../lib/standard//collection//array.nit:237 */
4603 if (UNTAG_Bool(REGB3)) {
4604 /* ./../lib/standard//collection//array.nit:238 */
4605 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
4606 if (UNTAG_Bool(REGB3)) {
4607 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4608 }
4609 /* ./../lib/standard//collection//array.nit:654 */
4610 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
4611 /* ./parser//parser.nit:920 */
4612 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4613 if (UNTAG_Bool(REGB3)) {
4614 nit_abort("Reciever is null", NULL, LOCATE_parser, 920);
4615 }
4616 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
4617 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4618 if (UNTAG_Bool(REGB3)) {
4619 nit_abort("Reciever is null", NULL, LOCATE_parser, 920);
4620 }
4621 REGB3 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
4622 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4623 if (UNTAG_Bool(REGB4)) {
4624 nit_abort("Reciever is null", NULL, LOCATE_parser, 920);
4625 }
4626 REGB4 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
4627 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4628 if (UNTAG_Bool(REGB0)) {
4629 nit_abort("Reciever is null", NULL, LOCATE_parser, 920);
4630 }
4631 REGB0 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
4632 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4633 if (UNTAG_Bool(REGB1)) {
4634 nit_abort("Reciever is null", NULL, LOCATE_parser, 920);
4635 }
4636 REGB1 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
4637 fra.me.REG[6] = NEW_Location_location___Location___init(fra.me.REG[6], REGB3, REGB4, REGB0, REGB1);
4638 CALL_parser_nodes___Prod___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4639 /* ./../lib/standard//collection//array.nit:239 */
4640 REGB1 = TAG_Int(1);
4641 /* ./../lib/standard//kernel.nit:215 */
4642 REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
4643 /* ./../lib/standard//collection//array.nit:239 */
4644 REGB2 = REGB1;
4645 } else {
4646 /* ./../lib/standard//collection//array.nit:237 */
4647 goto label4;
4648 }
4649 }
4650 label4: while(0);
4651 /* ./parser//parser.nit:922 */
4652 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
4653 if (UNTAG_Bool(REGB2)) {
4654 } else {
4655 nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 922);
4656 }
4657 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
4658 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
4659 /* ./parser//parser.nit:924 */
4660 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4661 if (UNTAG_Bool(REGB2)) {
4662 } else {
4663 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 924);
4664 }
4665 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4666 /* ./../lib/standard//collection//array.nit:234 */
4667 REGB2 = TAG_Int(0);
4668 /* ./../lib/standard//collection//array.nit:235 */
4669 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4670 if (UNTAG_Bool(REGB1)) {
4671 } else {
4672 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4673 }
4674 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4675 /* ./../lib/standard//collection//array.nit:236 */
4676 fra.me.REG[8] = ATTR_array___Array____items(fra.me.REG[2]);
4677 /* ./../lib/standard//collection//array.nit:237 */
4678 while(1) {
4679 /* ./../lib/standard//collection//array.nit:23 */
4680 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4681 if (UNTAG_Bool(REGB1)) {
4682 } else {
4683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4684 }
4685 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4686 /* ./../lib/standard//kernel.nit:212 */
4687 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
4688 /* ./../lib/standard//collection//array.nit:237 */
4689 if (UNTAG_Bool(REGB1)) {
4690 /* ./../lib/standard//collection//array.nit:238 */
4691 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
4692 if (UNTAG_Bool(REGB1)) {
4693 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4694 }
4695 /* ./../lib/standard//collection//array.nit:654 */
4696 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
4697 /* ./parser//parser.nit:927 */
4698 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4699 if (UNTAG_Bool(REGB1)) {
4700 nit_abort("Reciever is null", NULL, LOCATE_parser, 927);
4701 }
4702 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[3])(fra.me.REG[3]);
4703 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4704 if (UNTAG_Bool(REGB1)) {
4705 nit_abort("Reciever is null", NULL, LOCATE_parser, 927);
4706 }
4707 REGB1 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
4708 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4709 if (UNTAG_Bool(REGB0)) {
4710 nit_abort("Reciever is null", NULL, LOCATE_parser, 927);
4711 }
4712 REGB0 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
4713 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4714 if (UNTAG_Bool(REGB4)) {
4715 nit_abort("Reciever is null", NULL, LOCATE_parser, 927);
4716 }
4717 REGB4 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
4718 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4719 if (UNTAG_Bool(REGB3)) {
4720 nit_abort("Reciever is null", NULL, LOCATE_parser, 927);
4721 }
4722 REGB3 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
4723 fra.me.REG[6] = NEW_Location_location___Location___init(fra.me.REG[6], REGB1, REGB0, REGB4, REGB3);
4724 CALL_parser_nodes___Prod___location__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
4725 /* ./../lib/standard//collection//array.nit:239 */
4726 REGB3 = TAG_Int(1);
4727 /* ./../lib/standard//kernel.nit:215 */
4728 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
4729 /* ./../lib/standard//collection//array.nit:239 */
4730 REGB2 = REGB3;
4731 } else {
4732 /* ./../lib/standard//collection//array.nit:237 */
4733 goto label5;
4734 }
4735 }
4736 label5: while(0);
4737 /* ./parser//parser.nit:929 */
4738 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4739 if (UNTAG_Bool(REGB2)) {
4740 } else {
4741 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 929);
4742 }
4743 fra.me.REG[8] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4744 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[8])(fra.me.REG[8]);
4745 } else {
4746 /* ./parser//parser.nit:933 */
4747 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4748 if (UNTAG_Bool(REGB2)) {
4749 } else {
4750 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4751 if (UNTAG_Bool(REGB3)) {
4752 REGB3 = TAG_Bool(false);
4753 REGB2 = REGB3;
4754 } else {
4755 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4756 REGB2 = REGB3;
4757 }
4758 }
4759 if (UNTAG_Bool(REGB2)) {
4760 /* ./parser//parser.nit:935 */
4761 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
4762 if (UNTAG_Bool(REGB2)) {
4763 } else {
4764 nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 935);
4765 }
4766 fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
4767 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4768 } else {
4769 /* ./parser//parser.nit:938 */
4770 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4771 if (UNTAG_Bool(REGB2)) {
4772 } else {
4773 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 938);
4774 }
4775 fra.me.REG[0] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4777 }
4778 }
4779 }
4780 }
4781 label1: while(0);
4782 stack_frame_head = fra.me.prev;
4783 return;
4784 }
4785 void parser___ComputeProdLocationVisitor___init(val_t p0, int* init_table){
4786 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ComputeProdLocationVisitor].i;
4787 struct {struct stack_frame_t me;} fra;
4788 val_t tmp;
4789 if (init_table[itpos2]) return;
4790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4791 fra.me.file = LOCATE_parser;
4792 fra.me.line = 944;
4793 fra.me.meth = LOCATE_parser___ComputeProdLocationVisitor___init;
4794 fra.me.has_broke = 0;
4795 fra.me.REG_size = 1;
4796 fra.me.REG[0] = NIT_NULL;
4797 fra.me.REG[0] = p0;
4798 /* ./parser//parser.nit:944 */
4799 CALL_parser_prod___Visitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
4800 stack_frame_head = fra.me.prev;
4801 init_table[itpos2] = 1;
4802 return;
4803 }
4804 void parser___ReduceAction___action(val_t p0, val_t p1){
4805 struct {struct stack_frame_t me;} fra;
4806 val_t tmp;
4807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4808 fra.me.file = LOCATE_parser;
4809 fra.me.line = 949;
4810 fra.me.meth = LOCATE_parser___ReduceAction___action;
4811 fra.me.has_broke = 0;
4812 fra.me.REG_size = 0;
4813 /* ./parser//parser.nit:949 */
4814 nit_abort("Deferred method called", NULL, LOCATE_parser, 949);
4815 stack_frame_head = fra.me.prev;
4816 return;
4817 }
4818 val_t parser___ReduceAction___concat(val_t p0, val_t p1, val_t p2){
4819 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4820 val_t REGB0;
4821 val_t tmp;
4822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4823 fra.me.file = LOCATE_parser;
4824 fra.me.line = 950;
4825 fra.me.meth = LOCATE_parser___ReduceAction___concat;
4826 fra.me.has_broke = 0;
4827 fra.me.REG_size = 3;
4828 fra.me.REG[0] = NIT_NULL;
4829 fra.me.REG[1] = NIT_NULL;
4830 fra.me.REG[2] = NIT_NULL;
4831 fra.me.REG[0] = p0;
4832 fra.me.REG[1] = p1;
4833 fra.me.REG[2] = p2;
4834 /* ./parser//parser.nit:952 */
4835 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
4836 if (UNTAG_Bool(REGB0)) {
4837 fra.me.REG[0] = fra.me.REG[2];
4838 goto label1;
4839 }
4840 /* ./parser//parser.nit:953 */
4841 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4842 /* ./parser//parser.nit:954 */
4843 fra.me.REG[0] = fra.me.REG[1];
4844 goto label1;
4845 label1: while(0);
4846 stack_frame_head = fra.me.prev;
4847 return fra.me.REG[0];
4848 }
4849 void parser___ReduceAction___init(val_t p0, int* init_table){
4850 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction].i;
4851 struct {struct stack_frame_t me;} fra;
4852 val_t tmp;
4853 if (init_table[itpos3]) return;
4854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4855 fra.me.file = LOCATE_parser;
4856 fra.me.line = 0;
4857 fra.me.meth = LOCATE_parser___ReduceAction___init;
4858 fra.me.has_broke = 0;
4859 fra.me.REG_size = 0;
4860 stack_frame_head = fra.me.prev;
4861 init_table[itpos3] = 1;
4862 return;
4863 }
4864 void parser___ReduceAction0___action(val_t p0, val_t p1){
4865 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4866 val_t REGB0;
4867 val_t tmp;
4868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4869 fra.me.file = LOCATE_parser;
4870 fra.me.line = 960;
4871 fra.me.meth = LOCATE_parser___ReduceAction0___action;
4872 fra.me.has_broke = 0;
4873 fra.me.REG_size = 5;
4874 fra.me.REG[0] = NIT_NULL;
4875 fra.me.REG[1] = NIT_NULL;
4876 fra.me.REG[2] = NIT_NULL;
4877 fra.me.REG[3] = NIT_NULL;
4878 fra.me.REG[4] = NIT_NULL;
4879 fra.me.REG[0] = p0;
4880 fra.me.REG[1] = p1;
4881 /* ./parser//parser.nit:962 */
4882 fra.me.REG[2] = NIT_NULL;
4883 /* ./parser//parser.nit:963 */
4884 fra.me.REG[3] = NEW_Array_array___Array___init();
4885 /* ./parser//parser.nit:964 */
4886 fra.me.REG[4] = NEW_Array_array___Array___init();
4887 /* ./parser//parser.nit:965 */
4888 fra.me.REG[4] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[3], fra.me.REG[4]);
4889 /* ./parser//parser.nit:970 */
4890 fra.me.REG[2] = fra.me.REG[4];
4891 /* ./parser//parser.nit:971 */
4892 REGB0 = TAG_Bool(ATTR_parser___ReduceAction0____goto(fra.me.REG[0])!=NIT_NULL);
4893 if (UNTAG_Bool(REGB0)) {
4894 } else {
4895 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 971);
4896 }
4897 REGB0 = ATTR_parser___ReduceAction0____goto(fra.me.REG[0]);
4898 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
4899 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4900 stack_frame_head = fra.me.prev;
4901 return;
4902 }
4903 void parser___ReduceAction0___init(val_t p0, val_t p1, int* init_table){
4904 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction0].i;
4905 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4906 val_t REGB0;
4907 val_t tmp;
4908 if (init_table[itpos4]) return;
4909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4910 fra.me.file = LOCATE_parser;
4911 fra.me.line = 974;
4912 fra.me.meth = LOCATE_parser___ReduceAction0___init;
4913 fra.me.has_broke = 0;
4914 fra.me.REG_size = 2;
4915 fra.me.REG[0] = NIT_NULL;
4916 fra.me.REG[1] = NIT_NULL;
4917 fra.me.REG[0] = p0;
4918 REGB0 = p1;
4919 /* ./parser//parser.nit:974 */
4920 fra.me.REG[1] = fra.me.REG[0];
4921 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
4922 ATTR_parser___ReduceAction0____goto(fra.me.REG[1]) = REGB0;
4923 stack_frame_head = fra.me.prev;
4924 init_table[itpos4] = 1;
4925 return;
4926 }
4927 void parser___ReduceAction1___action(val_t p0, val_t p1){
4928 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4929 val_t REGB0;
4930 val_t tmp;
4931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4932 fra.me.file = LOCATE_parser;
4933 fra.me.line = 978;
4934 fra.me.meth = LOCATE_parser___ReduceAction1___action;
4935 fra.me.has_broke = 0;
4936 fra.me.REG_size = 6;
4937 fra.me.REG[0] = NIT_NULL;
4938 fra.me.REG[1] = NIT_NULL;
4939 fra.me.REG[2] = NIT_NULL;
4940 fra.me.REG[3] = NIT_NULL;
4941 fra.me.REG[4] = NIT_NULL;
4942 fra.me.REG[5] = NIT_NULL;
4943 fra.me.REG[0] = p0;
4944 fra.me.REG[1] = p1;
4945 /* ./parser//parser.nit:980 */
4946 fra.me.REG[2] = NIT_NULL;
4947 /* ./parser//parser.nit:981 */
4948 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
4949 /* ./parser//parser.nit:982 */
4950 fra.me.REG[4] = NEW_Array_array___Array___init();
4951 /* ./parser//parser.nit:983 */
4952 fra.me.REG[5] = NEW_Array_array___Array___init();
4953 /* ./parser//parser.nit:985 */
4954 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
4955 if (UNTAG_Bool(REGB0)) {
4956 } else {
4957 nit_abort("Assert failed", NULL, LOCATE_parser, 985);
4958 }
4959 /* ./parser//parser.nit:986 */
4960 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
4961 /* ./parser//parser.nit:991 */
4962 fra.me.REG[2] = fra.me.REG[5];
4963 /* ./parser//parser.nit:992 */
4964 REGB0 = TAG_Bool(ATTR_parser___ReduceAction1____goto(fra.me.REG[0])!=NIT_NULL);
4965 if (UNTAG_Bool(REGB0)) {
4966 } else {
4967 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 992);
4968 }
4969 REGB0 = ATTR_parser___ReduceAction1____goto(fra.me.REG[0]);
4970 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
4971 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4972 stack_frame_head = fra.me.prev;
4973 return;
4974 }
4975 void parser___ReduceAction1___init(val_t p0, val_t p1, int* init_table){
4976 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction1].i;
4977 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4978 val_t REGB0;
4979 val_t tmp;
4980 if (init_table[itpos5]) return;
4981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4982 fra.me.file = LOCATE_parser;
4983 fra.me.line = 995;
4984 fra.me.meth = LOCATE_parser___ReduceAction1___init;
4985 fra.me.has_broke = 0;
4986 fra.me.REG_size = 2;
4987 fra.me.REG[0] = NIT_NULL;
4988 fra.me.REG[1] = NIT_NULL;
4989 fra.me.REG[0] = p0;
4990 REGB0 = p1;
4991 /* ./parser//parser.nit:995 */
4992 fra.me.REG[1] = fra.me.REG[0];
4993 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
4994 ATTR_parser___ReduceAction1____goto(fra.me.REG[1]) = REGB0;
4995 stack_frame_head = fra.me.prev;
4996 init_table[itpos5] = 1;
4997 return;
4998 }
4999 void parser___ReduceAction2___action(val_t p0, val_t p1){
5000 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5001 val_t REGB0;
5002 val_t tmp;
5003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5004 fra.me.file = LOCATE_parser;
5005 fra.me.line = 999;
5006 fra.me.meth = LOCATE_parser___ReduceAction2___action;
5007 fra.me.has_broke = 0;
5008 fra.me.REG_size = 6;
5009 fra.me.REG[0] = NIT_NULL;
5010 fra.me.REG[1] = NIT_NULL;
5011 fra.me.REG[2] = NIT_NULL;
5012 fra.me.REG[3] = NIT_NULL;
5013 fra.me.REG[4] = NIT_NULL;
5014 fra.me.REG[5] = NIT_NULL;
5015 fra.me.REG[0] = p0;
5016 fra.me.REG[1] = p1;
5017 /* ./parser//parser.nit:1001 */
5018 fra.me.REG[2] = NIT_NULL;
5019 /* ./parser//parser.nit:1002 */
5020 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5021 /* ./parser//parser.nit:1003 */
5022 fra.me.REG[4] = NEW_Array_array___Array___init();
5023 /* ./parser//parser.nit:1004 */
5024 fra.me.REG[5] = NEW_Array_array___Array___init();
5025 /* ./parser//parser.nit:1006 */
5026 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5027 if (UNTAG_Bool(REGB0)) {
5028 } else {
5029 nit_abort("Assert failed", NULL, LOCATE_parser, 1006);
5030 }
5031 /* ./parser//parser.nit:1007 */
5032 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
5033 fra.me.REG[4] = fra.me.REG[3];
5034 /* ./parser//parser.nit:1008 */
5035 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
5036 /* ./parser//parser.nit:1013 */
5037 fra.me.REG[2] = fra.me.REG[5];
5038 /* ./parser//parser.nit:1014 */
5039 REGB0 = TAG_Bool(ATTR_parser___ReduceAction2____goto(fra.me.REG[0])!=NIT_NULL);
5040 if (UNTAG_Bool(REGB0)) {
5041 } else {
5042 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1014);
5043 }
5044 REGB0 = ATTR_parser___ReduceAction2____goto(fra.me.REG[0]);
5045 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5046 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5047 stack_frame_head = fra.me.prev;
5048 return;
5049 }
5050 void parser___ReduceAction2___init(val_t p0, val_t p1, int* init_table){
5051 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction2].i;
5052 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5053 val_t REGB0;
5054 val_t tmp;
5055 if (init_table[itpos6]) return;
5056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5057 fra.me.file = LOCATE_parser;
5058 fra.me.line = 1017;
5059 fra.me.meth = LOCATE_parser___ReduceAction2___init;
5060 fra.me.has_broke = 0;
5061 fra.me.REG_size = 2;
5062 fra.me.REG[0] = NIT_NULL;
5063 fra.me.REG[1] = NIT_NULL;
5064 fra.me.REG[0] = p0;
5065 REGB0 = p1;
5066 /* ./parser//parser.nit:1017 */
5067 fra.me.REG[1] = fra.me.REG[0];
5068 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5069 ATTR_parser___ReduceAction2____goto(fra.me.REG[1]) = REGB0;
5070 stack_frame_head = fra.me.prev;
5071 init_table[itpos6] = 1;
5072 return;
5073 }
5074 void parser___ReduceAction3___action(val_t p0, val_t p1){
5075 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5076 val_t REGB0;
5077 val_t tmp;
5078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5079 fra.me.file = LOCATE_parser;
5080 fra.me.line = 1021;
5081 fra.me.meth = LOCATE_parser___ReduceAction3___action;
5082 fra.me.has_broke = 0;
5083 fra.me.REG_size = 7;
5084 fra.me.REG[0] = NIT_NULL;
5085 fra.me.REG[1] = NIT_NULL;
5086 fra.me.REG[2] = NIT_NULL;
5087 fra.me.REG[3] = NIT_NULL;
5088 fra.me.REG[4] = NIT_NULL;
5089 fra.me.REG[5] = NIT_NULL;
5090 fra.me.REG[6] = NIT_NULL;
5091 fra.me.REG[0] = p0;
5092 fra.me.REG[1] = p1;
5093 /* ./parser//parser.nit:1023 */
5094 fra.me.REG[2] = NIT_NULL;
5095 /* ./parser//parser.nit:1024 */
5096 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5097 /* ./parser//parser.nit:1025 */
5098 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5099 /* ./parser//parser.nit:1026 */
5100 fra.me.REG[5] = NEW_Array_array___Array___init();
5101 /* ./parser//parser.nit:1027 */
5102 fra.me.REG[6] = NEW_Array_array___Array___init();
5103 /* ./parser//parser.nit:1029 */
5104 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5105 if (UNTAG_Bool(REGB0)) {
5106 } else {
5107 nit_abort("Assert failed", NULL, LOCATE_parser, 1029);
5108 }
5109 /* ./parser//parser.nit:1031 */
5110 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5111 if (UNTAG_Bool(REGB0)) {
5112 } else {
5113 nit_abort("Assert failed", NULL, LOCATE_parser, 1031);
5114 }
5115 /* ./parser//parser.nit:1032 */
5116 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
5117 fra.me.REG[5] = fra.me.REG[3];
5118 /* ./parser//parser.nit:1033 */
5119 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
5120 /* ./parser//parser.nit:1038 */
5121 fra.me.REG[2] = fra.me.REG[6];
5122 /* ./parser//parser.nit:1039 */
5123 REGB0 = TAG_Bool(ATTR_parser___ReduceAction3____goto(fra.me.REG[0])!=NIT_NULL);
5124 if (UNTAG_Bool(REGB0)) {
5125 } else {
5126 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1039);
5127 }
5128 REGB0 = ATTR_parser___ReduceAction3____goto(fra.me.REG[0]);
5129 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5130 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5131 stack_frame_head = fra.me.prev;
5132 return;
5133 }
5134 void parser___ReduceAction3___init(val_t p0, val_t p1, int* init_table){
5135 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction3].i;
5136 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5137 val_t REGB0;
5138 val_t tmp;
5139 if (init_table[itpos7]) return;
5140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5141 fra.me.file = LOCATE_parser;
5142 fra.me.line = 1042;
5143 fra.me.meth = LOCATE_parser___ReduceAction3___init;
5144 fra.me.has_broke = 0;
5145 fra.me.REG_size = 2;
5146 fra.me.REG[0] = NIT_NULL;
5147 fra.me.REG[1] = NIT_NULL;
5148 fra.me.REG[0] = p0;
5149 REGB0 = p1;
5150 /* ./parser//parser.nit:1042 */
5151 fra.me.REG[1] = fra.me.REG[0];
5152 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5153 ATTR_parser___ReduceAction3____goto(fra.me.REG[1]) = REGB0;
5154 stack_frame_head = fra.me.prev;
5155 init_table[itpos7] = 1;
5156 return;
5157 }
5158 void parser___ReduceAction4___action(val_t p0, val_t p1){
5159 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5160 val_t REGB0;
5161 val_t tmp;
5162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5163 fra.me.file = LOCATE_parser;
5164 fra.me.line = 1046;
5165 fra.me.meth = LOCATE_parser___ReduceAction4___action;
5166 fra.me.has_broke = 0;
5167 fra.me.REG_size = 6;
5168 fra.me.REG[0] = NIT_NULL;
5169 fra.me.REG[1] = NIT_NULL;
5170 fra.me.REG[2] = NIT_NULL;
5171 fra.me.REG[3] = NIT_NULL;
5172 fra.me.REG[4] = NIT_NULL;
5173 fra.me.REG[5] = NIT_NULL;
5174 fra.me.REG[0] = p0;
5175 fra.me.REG[1] = p1;
5176 /* ./parser//parser.nit:1048 */
5177 fra.me.REG[2] = NIT_NULL;
5178 /* ./parser//parser.nit:1049 */
5179 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5180 /* ./parser//parser.nit:1050 */
5181 fra.me.REG[4] = NEW_Array_array___Array___init();
5182 /* ./parser//parser.nit:1051 */
5183 fra.me.REG[5] = NEW_Array_array___Array___init();
5184 /* ./parser//parser.nit:1053 */
5185 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5186 if (UNTAG_Bool(REGB0)) {
5187 } else {
5188 nit_abort("Assert failed", NULL, LOCATE_parser, 1053);
5189 }
5190 /* ./parser//parser.nit:1054 */
5191 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
5192 fra.me.REG[5] = fra.me.REG[3];
5193 /* ./parser//parser.nit:1055 */
5194 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
5195 /* ./parser//parser.nit:1060 */
5196 fra.me.REG[2] = fra.me.REG[5];
5197 /* ./parser//parser.nit:1061 */
5198 REGB0 = TAG_Bool(ATTR_parser___ReduceAction4____goto(fra.me.REG[0])!=NIT_NULL);
5199 if (UNTAG_Bool(REGB0)) {
5200 } else {
5201 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1061);
5202 }
5203 REGB0 = ATTR_parser___ReduceAction4____goto(fra.me.REG[0]);
5204 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5205 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5206 stack_frame_head = fra.me.prev;
5207 return;
5208 }
5209 void parser___ReduceAction4___init(val_t p0, val_t p1, int* init_table){
5210 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction4].i;
5211 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5212 val_t REGB0;
5213 val_t tmp;
5214 if (init_table[itpos8]) return;
5215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5216 fra.me.file = LOCATE_parser;
5217 fra.me.line = 1064;
5218 fra.me.meth = LOCATE_parser___ReduceAction4___init;
5219 fra.me.has_broke = 0;
5220 fra.me.REG_size = 2;
5221 fra.me.REG[0] = NIT_NULL;
5222 fra.me.REG[1] = NIT_NULL;
5223 fra.me.REG[0] = p0;
5224 REGB0 = p1;
5225 /* ./parser//parser.nit:1064 */
5226 fra.me.REG[1] = fra.me.REG[0];
5227 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5228 ATTR_parser___ReduceAction4____goto(fra.me.REG[1]) = REGB0;
5229 stack_frame_head = fra.me.prev;
5230 init_table[itpos8] = 1;
5231 return;
5232 }
5233 void parser___ReduceAction5___action(val_t p0, val_t p1){
5234 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5235 val_t REGB0;
5236 val_t tmp;
5237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5238 fra.me.file = LOCATE_parser;
5239 fra.me.line = 1068;
5240 fra.me.meth = LOCATE_parser___ReduceAction5___action;
5241 fra.me.has_broke = 0;
5242 fra.me.REG_size = 7;
5243 fra.me.REG[0] = NIT_NULL;
5244 fra.me.REG[1] = NIT_NULL;
5245 fra.me.REG[2] = NIT_NULL;
5246 fra.me.REG[3] = NIT_NULL;
5247 fra.me.REG[4] = NIT_NULL;
5248 fra.me.REG[5] = NIT_NULL;
5249 fra.me.REG[6] = NIT_NULL;
5250 fra.me.REG[0] = p0;
5251 fra.me.REG[1] = p1;
5252 /* ./parser//parser.nit:1070 */
5253 fra.me.REG[2] = NIT_NULL;
5254 /* ./parser//parser.nit:1071 */
5255 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5256 /* ./parser//parser.nit:1072 */
5257 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5258 /* ./parser//parser.nit:1073 */
5259 fra.me.REG[5] = NEW_Array_array___Array___init();
5260 /* ./parser//parser.nit:1074 */
5261 fra.me.REG[6] = NEW_Array_array___Array___init();
5262 /* ./parser//parser.nit:1076 */
5263 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5264 if (UNTAG_Bool(REGB0)) {
5265 } else {
5266 nit_abort("Assert failed", NULL, LOCATE_parser, 1076);
5267 }
5268 /* ./parser//parser.nit:1078 */
5269 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5270 if (UNTAG_Bool(REGB0)) {
5271 } else {
5272 nit_abort("Assert failed", NULL, LOCATE_parser, 1078);
5273 }
5274 /* ./parser//parser.nit:1079 */
5275 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
5276 fra.me.REG[6] = fra.me.REG[3];
5277 /* ./parser//parser.nit:1080 */
5278 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
5279 /* ./parser//parser.nit:1085 */
5280 fra.me.REG[2] = fra.me.REG[6];
5281 /* ./parser//parser.nit:1086 */
5282 REGB0 = TAG_Bool(ATTR_parser___ReduceAction5____goto(fra.me.REG[0])!=NIT_NULL);
5283 if (UNTAG_Bool(REGB0)) {
5284 } else {
5285 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1086);
5286 }
5287 REGB0 = ATTR_parser___ReduceAction5____goto(fra.me.REG[0]);
5288 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5289 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5290 stack_frame_head = fra.me.prev;
5291 return;
5292 }
5293 void parser___ReduceAction5___init(val_t p0, val_t p1, int* init_table){
5294 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction5].i;
5295 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5296 val_t REGB0;
5297 val_t tmp;
5298 if (init_table[itpos9]) return;
5299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5300 fra.me.file = LOCATE_parser;
5301 fra.me.line = 1089;
5302 fra.me.meth = LOCATE_parser___ReduceAction5___init;
5303 fra.me.has_broke = 0;
5304 fra.me.REG_size = 2;
5305 fra.me.REG[0] = NIT_NULL;
5306 fra.me.REG[1] = NIT_NULL;
5307 fra.me.REG[0] = p0;
5308 REGB0 = p1;
5309 /* ./parser//parser.nit:1089 */
5310 fra.me.REG[1] = fra.me.REG[0];
5311 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5312 ATTR_parser___ReduceAction5____goto(fra.me.REG[1]) = REGB0;
5313 stack_frame_head = fra.me.prev;
5314 init_table[itpos9] = 1;
5315 return;
5316 }
5317 void parser___ReduceAction6___action(val_t p0, val_t p1){
5318 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5319 val_t REGB0;
5320 val_t tmp;
5321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5322 fra.me.file = LOCATE_parser;
5323 fra.me.line = 1093;
5324 fra.me.meth = LOCATE_parser___ReduceAction6___action;
5325 fra.me.has_broke = 0;
5326 fra.me.REG_size = 7;
5327 fra.me.REG[0] = NIT_NULL;
5328 fra.me.REG[1] = NIT_NULL;
5329 fra.me.REG[2] = NIT_NULL;
5330 fra.me.REG[3] = NIT_NULL;
5331 fra.me.REG[4] = NIT_NULL;
5332 fra.me.REG[5] = NIT_NULL;
5333 fra.me.REG[6] = NIT_NULL;
5334 fra.me.REG[0] = p0;
5335 fra.me.REG[1] = p1;
5336 /* ./parser//parser.nit:1095 */
5337 fra.me.REG[2] = NIT_NULL;
5338 /* ./parser//parser.nit:1096 */
5339 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5340 /* ./parser//parser.nit:1097 */
5341 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5342 /* ./parser//parser.nit:1098 */
5343 fra.me.REG[5] = NEW_Array_array___Array___init();
5344 /* ./parser//parser.nit:1099 */
5345 fra.me.REG[6] = NEW_Array_array___Array___init();
5346 /* ./parser//parser.nit:1101 */
5347 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5348 if (UNTAG_Bool(REGB0)) {
5349 } else {
5350 nit_abort("Assert failed", NULL, LOCATE_parser, 1101);
5351 }
5352 /* ./parser//parser.nit:1102 */
5353 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
5354 fra.me.REG[5] = fra.me.REG[4];
5355 /* ./parser//parser.nit:1104 */
5356 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5357 if (UNTAG_Bool(REGB0)) {
5358 } else {
5359 nit_abort("Assert failed", NULL, LOCATE_parser, 1104);
5360 }
5361 /* ./parser//parser.nit:1105 */
5362 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
5363 fra.me.REG[6] = fra.me.REG[3];
5364 /* ./parser//parser.nit:1106 */
5365 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
5366 /* ./parser//parser.nit:1111 */
5367 fra.me.REG[2] = fra.me.REG[6];
5368 /* ./parser//parser.nit:1112 */
5369 REGB0 = TAG_Bool(ATTR_parser___ReduceAction6____goto(fra.me.REG[0])!=NIT_NULL);
5370 if (UNTAG_Bool(REGB0)) {
5371 } else {
5372 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1112);
5373 }
5374 REGB0 = ATTR_parser___ReduceAction6____goto(fra.me.REG[0]);
5375 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5376 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5377 stack_frame_head = fra.me.prev;
5378 return;
5379 }
5380 void parser___ReduceAction6___init(val_t p0, val_t p1, int* init_table){
5381 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction6].i;
5382 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5383 val_t REGB0;
5384 val_t tmp;
5385 if (init_table[itpos10]) return;
5386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5387 fra.me.file = LOCATE_parser;
5388 fra.me.line = 1115;
5389 fra.me.meth = LOCATE_parser___ReduceAction6___init;
5390 fra.me.has_broke = 0;
5391 fra.me.REG_size = 2;
5392 fra.me.REG[0] = NIT_NULL;
5393 fra.me.REG[1] = NIT_NULL;
5394 fra.me.REG[0] = p0;
5395 REGB0 = p1;
5396 /* ./parser//parser.nit:1115 */
5397 fra.me.REG[1] = fra.me.REG[0];
5398 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5399 ATTR_parser___ReduceAction6____goto(fra.me.REG[1]) = REGB0;
5400 stack_frame_head = fra.me.prev;
5401 init_table[itpos10] = 1;
5402 return;
5403 }
5404 void parser___ReduceAction7___action(val_t p0, val_t p1){
5405 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5406 val_t REGB0;
5407 val_t tmp;
5408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5409 fra.me.file = LOCATE_parser;
5410 fra.me.line = 1119;
5411 fra.me.meth = LOCATE_parser___ReduceAction7___action;
5412 fra.me.has_broke = 0;
5413 fra.me.REG_size = 8;
5414 fra.me.REG[0] = NIT_NULL;
5415 fra.me.REG[1] = NIT_NULL;
5416 fra.me.REG[2] = NIT_NULL;
5417 fra.me.REG[3] = NIT_NULL;
5418 fra.me.REG[4] = NIT_NULL;
5419 fra.me.REG[5] = NIT_NULL;
5420 fra.me.REG[6] = NIT_NULL;
5421 fra.me.REG[7] = NIT_NULL;
5422 fra.me.REG[0] = p0;
5423 fra.me.REG[1] = p1;
5424 /* ./parser//parser.nit:1121 */
5425 fra.me.REG[2] = NIT_NULL;
5426 /* ./parser//parser.nit:1122 */
5427 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5428 /* ./parser//parser.nit:1123 */
5429 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5430 /* ./parser//parser.nit:1124 */
5431 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5432 /* ./parser//parser.nit:1125 */
5433 fra.me.REG[6] = NEW_Array_array___Array___init();
5434 /* ./parser//parser.nit:1126 */
5435 fra.me.REG[7] = NEW_Array_array___Array___init();
5436 /* ./parser//parser.nit:1128 */
5437 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5438 if (UNTAG_Bool(REGB0)) {
5439 } else {
5440 nit_abort("Assert failed", NULL, LOCATE_parser, 1128);
5441 }
5442 /* ./parser//parser.nit:1130 */
5443 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5444 if (UNTAG_Bool(REGB0)) {
5445 } else {
5446 nit_abort("Assert failed", NULL, LOCATE_parser, 1130);
5447 }
5448 /* ./parser//parser.nit:1131 */
5449 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
5450 fra.me.REG[6] = fra.me.REG[4];
5451 /* ./parser//parser.nit:1133 */
5452 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5453 if (UNTAG_Bool(REGB0)) {
5454 } else {
5455 nit_abort("Assert failed", NULL, LOCATE_parser, 1133);
5456 }
5457 /* ./parser//parser.nit:1134 */
5458 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
5459 fra.me.REG[7] = fra.me.REG[3];
5460 /* ./parser//parser.nit:1135 */
5461 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
5462 /* ./parser//parser.nit:1140 */
5463 fra.me.REG[2] = fra.me.REG[7];
5464 /* ./parser//parser.nit:1141 */
5465 REGB0 = TAG_Bool(ATTR_parser___ReduceAction7____goto(fra.me.REG[0])!=NIT_NULL);
5466 if (UNTAG_Bool(REGB0)) {
5467 } else {
5468 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1141);
5469 }
5470 REGB0 = ATTR_parser___ReduceAction7____goto(fra.me.REG[0]);
5471 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5472 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5473 stack_frame_head = fra.me.prev;
5474 return;
5475 }
5476 void parser___ReduceAction7___init(val_t p0, val_t p1, int* init_table){
5477 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction7].i;
5478 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5479 val_t REGB0;
5480 val_t tmp;
5481 if (init_table[itpos11]) return;
5482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5483 fra.me.file = LOCATE_parser;
5484 fra.me.line = 1144;
5485 fra.me.meth = LOCATE_parser___ReduceAction7___init;
5486 fra.me.has_broke = 0;
5487 fra.me.REG_size = 2;
5488 fra.me.REG[0] = NIT_NULL;
5489 fra.me.REG[1] = NIT_NULL;
5490 fra.me.REG[0] = p0;
5491 REGB0 = p1;
5492 /* ./parser//parser.nit:1144 */
5493 fra.me.REG[1] = fra.me.REG[0];
5494 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5495 ATTR_parser___ReduceAction7____goto(fra.me.REG[1]) = REGB0;
5496 stack_frame_head = fra.me.prev;
5497 init_table[itpos11] = 1;
5498 return;
5499 }
5500 void parser___ReduceAction8___action(val_t p0, val_t p1){
5501 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5502 val_t REGB0;
5503 val_t REGB1;
5504 val_t tmp;
5505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5506 fra.me.file = LOCATE_parser;
5507 fra.me.line = 1148;
5508 fra.me.meth = LOCATE_parser___ReduceAction8___action;
5509 fra.me.has_broke = 0;
5510 fra.me.REG_size = 7;
5511 fra.me.REG[0] = NIT_NULL;
5512 fra.me.REG[1] = NIT_NULL;
5513 fra.me.REG[2] = NIT_NULL;
5514 fra.me.REG[3] = NIT_NULL;
5515 fra.me.REG[4] = NIT_NULL;
5516 fra.me.REG[5] = NIT_NULL;
5517 fra.me.REG[6] = NIT_NULL;
5518 fra.me.REG[0] = p0;
5519 fra.me.REG[1] = p1;
5520 /* ./parser//parser.nit:1150 */
5521 fra.me.REG[2] = NIT_NULL;
5522 /* ./parser//parser.nit:1151 */
5523 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5524 /* ./parser//parser.nit:1152 */
5525 fra.me.REG[4] = NEW_Array_array___Array___init();
5526 /* ./parser//parser.nit:1153 */
5527 fra.me.REG[5] = NEW_Array_array___Array___init();
5528 /* ./parser//parser.nit:1154 */
5529 fra.me.REG[6] = NEW_Array_array___Array___init();
5530 /* ./parser//parser.nit:1156 */
5531 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5532 if (UNTAG_Bool(REGB0)) {
5533 } else {
5534 nit_abort("Assert failed", NULL, LOCATE_parser, 1156);
5535 }
5536 /* ./parser//parser.nit:1157 */
5537 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
5538 fra.me.REG[6] = fra.me.REG[3];
5539 /* ./parser//parser.nit:1158 */
5540 fra.me.REG[6] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
5541 /* ./parser//parser.nit:1161 */
5542 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5543 if (UNTAG_Bool(REGB0)) {
5544 } else {
5545 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5546 if (UNTAG_Bool(REGB1)) {
5547 REGB1 = TAG_Bool(false);
5548 REGB0 = REGB1;
5549 } else {
5550 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5551 REGB0 = REGB1;
5552 }
5553 }
5554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5555 if (UNTAG_Bool(REGB0)) {
5556 /* ./parser//parser.nit:1162 */
5557 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5558 }
5559 /* ./parser//parser.nit:1164 */
5560 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
5561 /* ./parser//parser.nit:1169 */
5562 fra.me.REG[2] = fra.me.REG[5];
5563 /* ./parser//parser.nit:1170 */
5564 REGB0 = TAG_Bool(ATTR_parser___ReduceAction8____goto(fra.me.REG[0])!=NIT_NULL);
5565 if (UNTAG_Bool(REGB0)) {
5566 } else {
5567 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1170);
5568 }
5569 REGB0 = ATTR_parser___ReduceAction8____goto(fra.me.REG[0]);
5570 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5571 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5572 stack_frame_head = fra.me.prev;
5573 return;
5574 }
5575 void parser___ReduceAction8___init(val_t p0, val_t p1, int* init_table){
5576 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction8].i;
5577 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5578 val_t REGB0;
5579 val_t tmp;
5580 if (init_table[itpos12]) return;
5581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5582 fra.me.file = LOCATE_parser;
5583 fra.me.line = 1173;
5584 fra.me.meth = LOCATE_parser___ReduceAction8___init;
5585 fra.me.has_broke = 0;
5586 fra.me.REG_size = 2;
5587 fra.me.REG[0] = NIT_NULL;
5588 fra.me.REG[1] = NIT_NULL;
5589 fra.me.REG[0] = p0;
5590 REGB0 = p1;
5591 /* ./parser//parser.nit:1173 */
5592 fra.me.REG[1] = fra.me.REG[0];
5593 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5594 ATTR_parser___ReduceAction8____goto(fra.me.REG[1]) = REGB0;
5595 stack_frame_head = fra.me.prev;
5596 init_table[itpos12] = 1;
5597 return;
5598 }
5599 void parser___ReduceAction9___action(val_t p0, val_t p1){
5600 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5601 val_t REGB0;
5602 val_t REGB1;
5603 val_t tmp;
5604 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5605 fra.me.file = LOCATE_parser;
5606 fra.me.line = 1177;
5607 fra.me.meth = LOCATE_parser___ReduceAction9___action;
5608 fra.me.has_broke = 0;
5609 fra.me.REG_size = 8;
5610 fra.me.REG[0] = NIT_NULL;
5611 fra.me.REG[1] = NIT_NULL;
5612 fra.me.REG[2] = NIT_NULL;
5613 fra.me.REG[3] = NIT_NULL;
5614 fra.me.REG[4] = NIT_NULL;
5615 fra.me.REG[5] = NIT_NULL;
5616 fra.me.REG[6] = NIT_NULL;
5617 fra.me.REG[7] = NIT_NULL;
5618 fra.me.REG[0] = p0;
5619 fra.me.REG[1] = p1;
5620 /* ./parser//parser.nit:1179 */
5621 fra.me.REG[2] = NIT_NULL;
5622 /* ./parser//parser.nit:1180 */
5623 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5624 /* ./parser//parser.nit:1181 */
5625 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5626 /* ./parser//parser.nit:1182 */
5627 fra.me.REG[5] = NEW_Array_array___Array___init();
5628 /* ./parser//parser.nit:1183 */
5629 fra.me.REG[6] = NEW_Array_array___Array___init();
5630 /* ./parser//parser.nit:1185 */
5631 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5632 if (UNTAG_Bool(REGB0)) {
5633 } else {
5634 nit_abort("Assert failed", NULL, LOCATE_parser, 1185);
5635 }
5636 /* ./parser//parser.nit:1186 */
5637 fra.me.REG[7] = NEW_Array_array___Array___init();
5638 /* ./parser//parser.nit:1188 */
5639 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5640 if (UNTAG_Bool(REGB0)) {
5641 } else {
5642 nit_abort("Assert failed", NULL, LOCATE_parser, 1188);
5643 }
5644 /* ./parser//parser.nit:1189 */
5645 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
5646 fra.me.REG[7] = fra.me.REG[3];
5647 /* ./parser//parser.nit:1190 */
5648 fra.me.REG[7] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
5649 /* ./parser//parser.nit:1193 */
5650 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5651 if (UNTAG_Bool(REGB0)) {
5652 } else {
5653 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5654 if (UNTAG_Bool(REGB1)) {
5655 REGB1 = TAG_Bool(false);
5656 REGB0 = REGB1;
5657 } else {
5658 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5659 REGB0 = REGB1;
5660 }
5661 }
5662 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5663 if (UNTAG_Bool(REGB0)) {
5664 /* ./parser//parser.nit:1194 */
5665 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5666 }
5667 /* ./parser//parser.nit:1196 */
5668 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
5669 /* ./parser//parser.nit:1201 */
5670 fra.me.REG[2] = fra.me.REG[6];
5671 /* ./parser//parser.nit:1202 */
5672 REGB0 = TAG_Bool(ATTR_parser___ReduceAction9____goto(fra.me.REG[0])!=NIT_NULL);
5673 if (UNTAG_Bool(REGB0)) {
5674 } else {
5675 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1202);
5676 }
5677 REGB0 = ATTR_parser___ReduceAction9____goto(fra.me.REG[0]);
5678 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5679 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5680 stack_frame_head = fra.me.prev;
5681 return;
5682 }
5683 void parser___ReduceAction9___init(val_t p0, val_t p1, int* init_table){
5684 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction9].i;
5685 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5686 val_t REGB0;
5687 val_t tmp;
5688 if (init_table[itpos13]) return;
5689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5690 fra.me.file = LOCATE_parser;
5691 fra.me.line = 1205;
5692 fra.me.meth = LOCATE_parser___ReduceAction9___init;
5693 fra.me.has_broke = 0;
5694 fra.me.REG_size = 2;
5695 fra.me.REG[0] = NIT_NULL;
5696 fra.me.REG[1] = NIT_NULL;
5697 fra.me.REG[0] = p0;
5698 REGB0 = p1;
5699 /* ./parser//parser.nit:1205 */
5700 fra.me.REG[1] = fra.me.REG[0];
5701 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5702 ATTR_parser___ReduceAction9____goto(fra.me.REG[1]) = REGB0;
5703 stack_frame_head = fra.me.prev;
5704 init_table[itpos13] = 1;
5705 return;
5706 }
5707 void parser___ReduceAction10___action(val_t p0, val_t p1){
5708 struct {struct stack_frame_t me; val_t MORE_REG[6];} 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;
5714 fra.me.line = 1209;
5715 fra.me.meth = LOCATE_parser___ReduceAction10___action;
5716 fra.me.has_broke = 0;
5717 fra.me.REG_size = 7;
5718 fra.me.REG[0] = NIT_NULL;
5719 fra.me.REG[1] = NIT_NULL;
5720 fra.me.REG[2] = NIT_NULL;
5721 fra.me.REG[3] = NIT_NULL;
5722 fra.me.REG[4] = NIT_NULL;
5723 fra.me.REG[5] = NIT_NULL;
5724 fra.me.REG[6] = NIT_NULL;
5725 fra.me.REG[0] = p0;
5726 fra.me.REG[1] = p1;
5727 /* ./parser//parser.nit:1211 */
5728 fra.me.REG[2] = NIT_NULL;
5729 /* ./parser//parser.nit:1212 */
5730 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5731 /* ./parser//parser.nit:1213 */
5732 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5733 /* ./parser//parser.nit:1214 */
5734 fra.me.REG[5] = NEW_Array_array___Array___init();
5735 /* ./parser//parser.nit:1215 */
5736 fra.me.REG[6] = NEW_Array_array___Array___init();
5737 /* ./parser//parser.nit:1217 */
5738 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5739 if (UNTAG_Bool(REGB0)) {
5740 } else {
5741 nit_abort("Assert failed", NULL, LOCATE_parser, 1217);
5742 }
5743 /* ./parser//parser.nit:1218 */
5744 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
5745 fra.me.REG[5] = fra.me.REG[4];
5746 /* ./parser//parser.nit:1219 */
5747 fra.me.REG[4] = NEW_Array_array___Array___init();
5748 /* ./parser//parser.nit:1221 */
5749 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5750 if (UNTAG_Bool(REGB0)) {
5751 } else {
5752 nit_abort("Assert failed", NULL, LOCATE_parser, 1221);
5753 }
5754 /* ./parser//parser.nit:1222 */
5755 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
5756 fra.me.REG[4] = fra.me.REG[3];
5757 /* ./parser//parser.nit:1223 */
5758 fra.me.REG[4] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[4]);
5759 /* ./parser//parser.nit:1226 */
5760 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5761 if (UNTAG_Bool(REGB0)) {
5762 } else {
5763 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5764 if (UNTAG_Bool(REGB1)) {
5765 REGB1 = TAG_Bool(false);
5766 REGB0 = REGB1;
5767 } else {
5768 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5769 REGB0 = REGB1;
5770 }
5771 }
5772 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5773 if (UNTAG_Bool(REGB0)) {
5774 /* ./parser//parser.nit:1227 */
5775 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
5776 }
5777 /* ./parser//parser.nit:1229 */
5778 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
5779 /* ./parser//parser.nit:1234 */
5780 fra.me.REG[2] = fra.me.REG[6];
5781 /* ./parser//parser.nit:1235 */
5782 REGB0 = TAG_Bool(ATTR_parser___ReduceAction10____goto(fra.me.REG[0])!=NIT_NULL);
5783 if (UNTAG_Bool(REGB0)) {
5784 } else {
5785 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1235);
5786 }
5787 REGB0 = ATTR_parser___ReduceAction10____goto(fra.me.REG[0]);
5788 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5789 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5790 stack_frame_head = fra.me.prev;
5791 return;
5792 }
5793 void parser___ReduceAction10___init(val_t p0, val_t p1, int* init_table){
5794 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction10].i;
5795 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5796 val_t REGB0;
5797 val_t tmp;
5798 if (init_table[itpos14]) return;
5799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5800 fra.me.file = LOCATE_parser;
5801 fra.me.line = 1238;
5802 fra.me.meth = LOCATE_parser___ReduceAction10___init;
5803 fra.me.has_broke = 0;
5804 fra.me.REG_size = 2;
5805 fra.me.REG[0] = NIT_NULL;
5806 fra.me.REG[1] = NIT_NULL;
5807 fra.me.REG[0] = p0;
5808 REGB0 = p1;
5809 /* ./parser//parser.nit:1238 */
5810 fra.me.REG[1] = fra.me.REG[0];
5811 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5812 ATTR_parser___ReduceAction10____goto(fra.me.REG[1]) = REGB0;
5813 stack_frame_head = fra.me.prev;
5814 init_table[itpos14] = 1;
5815 return;
5816 }
5817 void parser___ReduceAction11___action(val_t p0, val_t p1){
5818 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5819 val_t REGB0;
5820 val_t REGB1;
5821 val_t tmp;
5822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5823 fra.me.file = LOCATE_parser;
5824 fra.me.line = 1242;
5825 fra.me.meth = LOCATE_parser___ReduceAction11___action;
5826 fra.me.has_broke = 0;
5827 fra.me.REG_size = 8;
5828 fra.me.REG[0] = NIT_NULL;
5829 fra.me.REG[1] = NIT_NULL;
5830 fra.me.REG[2] = NIT_NULL;
5831 fra.me.REG[3] = NIT_NULL;
5832 fra.me.REG[4] = NIT_NULL;
5833 fra.me.REG[5] = NIT_NULL;
5834 fra.me.REG[6] = NIT_NULL;
5835 fra.me.REG[7] = NIT_NULL;
5836 fra.me.REG[0] = p0;
5837 fra.me.REG[1] = p1;
5838 /* ./parser//parser.nit:1244 */
5839 fra.me.REG[2] = NIT_NULL;
5840 /* ./parser//parser.nit:1245 */
5841 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5842 /* ./parser//parser.nit:1246 */
5843 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5844 /* ./parser//parser.nit:1247 */
5845 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5846 /* ./parser//parser.nit:1248 */
5847 fra.me.REG[6] = NEW_Array_array___Array___init();
5848 /* ./parser//parser.nit:1249 */
5849 fra.me.REG[7] = NEW_Array_array___Array___init();
5850 /* ./parser//parser.nit:1251 */
5851 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5852 if (UNTAG_Bool(REGB0)) {
5853 } else {
5854 nit_abort("Assert failed", NULL, LOCATE_parser, 1251);
5855 }
5856 /* ./parser//parser.nit:1253 */
5857 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5858 if (UNTAG_Bool(REGB0)) {
5859 } else {
5860 nit_abort("Assert failed", NULL, LOCATE_parser, 1253);
5861 }
5862 /* ./parser//parser.nit:1254 */
5863 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
5864 fra.me.REG[6] = fra.me.REG[4];
5865 /* ./parser//parser.nit:1255 */
5866 fra.me.REG[4] = NEW_Array_array___Array___init();
5867 /* ./parser//parser.nit:1257 */
5868 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5869 if (UNTAG_Bool(REGB0)) {
5870 } else {
5871 nit_abort("Assert failed", NULL, LOCATE_parser, 1257);
5872 }
5873 /* ./parser//parser.nit:1258 */
5874 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
5875 fra.me.REG[4] = fra.me.REG[3];
5876 /* ./parser//parser.nit:1259 */
5877 fra.me.REG[4] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[4]);
5878 /* ./parser//parser.nit:1262 */
5879 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5880 if (UNTAG_Bool(REGB0)) {
5881 } else {
5882 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5883 if (UNTAG_Bool(REGB1)) {
5884 REGB1 = TAG_Bool(false);
5885 REGB0 = REGB1;
5886 } else {
5887 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5888 REGB0 = REGB1;
5889 }
5890 }
5891 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5892 if (UNTAG_Bool(REGB0)) {
5893 /* ./parser//parser.nit:1263 */
5894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
5895 }
5896 /* ./parser//parser.nit:1265 */
5897 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
5898 /* ./parser//parser.nit:1270 */
5899 fra.me.REG[2] = fra.me.REG[7];
5900 /* ./parser//parser.nit:1271 */
5901 REGB0 = TAG_Bool(ATTR_parser___ReduceAction11____goto(fra.me.REG[0])!=NIT_NULL);
5902 if (UNTAG_Bool(REGB0)) {
5903 } else {
5904 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1271);
5905 }
5906 REGB0 = ATTR_parser___ReduceAction11____goto(fra.me.REG[0]);
5907 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5908 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5909 stack_frame_head = fra.me.prev;
5910 return;
5911 }
5912 void parser___ReduceAction11___init(val_t p0, val_t p1, int* init_table){
5913 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction11].i;
5914 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5915 val_t REGB0;
5916 val_t tmp;
5917 if (init_table[itpos15]) return;
5918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5919 fra.me.file = LOCATE_parser;
5920 fra.me.line = 1274;
5921 fra.me.meth = LOCATE_parser___ReduceAction11___init;
5922 fra.me.has_broke = 0;
5923 fra.me.REG_size = 2;
5924 fra.me.REG[0] = NIT_NULL;
5925 fra.me.REG[1] = NIT_NULL;
5926 fra.me.REG[0] = p0;
5927 REGB0 = p1;
5928 /* ./parser//parser.nit:1274 */
5929 fra.me.REG[1] = fra.me.REG[0];
5930 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5931 ATTR_parser___ReduceAction11____goto(fra.me.REG[1]) = REGB0;
5932 stack_frame_head = fra.me.prev;
5933 init_table[itpos15] = 1;
5934 return;
5935 }
5936 void parser___ReduceAction12___action(val_t p0, val_t p1){
5937 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5938 val_t REGB0;
5939 val_t REGB1;
5940 val_t tmp;
5941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5942 fra.me.file = LOCATE_parser;
5943 fra.me.line = 1278;
5944 fra.me.meth = LOCATE_parser___ReduceAction12___action;
5945 fra.me.has_broke = 0;
5946 fra.me.REG_size = 8;
5947 fra.me.REG[0] = NIT_NULL;
5948 fra.me.REG[1] = NIT_NULL;
5949 fra.me.REG[2] = NIT_NULL;
5950 fra.me.REG[3] = NIT_NULL;
5951 fra.me.REG[4] = NIT_NULL;
5952 fra.me.REG[5] = NIT_NULL;
5953 fra.me.REG[6] = NIT_NULL;
5954 fra.me.REG[7] = NIT_NULL;
5955 fra.me.REG[0] = p0;
5956 fra.me.REG[1] = p1;
5957 /* ./parser//parser.nit:1280 */
5958 fra.me.REG[2] = NIT_NULL;
5959 /* ./parser//parser.nit:1281 */
5960 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5961 /* ./parser//parser.nit:1282 */
5962 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5963 /* ./parser//parser.nit:1283 */
5964 fra.me.REG[5] = NEW_Array_array___Array___init();
5965 /* ./parser//parser.nit:1284 */
5966 fra.me.REG[6] = NEW_Array_array___Array___init();
5967 /* ./parser//parser.nit:1286 */
5968 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5969 if (UNTAG_Bool(REGB0)) {
5970 } else {
5971 nit_abort("Assert failed", NULL, LOCATE_parser, 1286);
5972 }
5973 /* ./parser//parser.nit:1287 */
5974 fra.me.REG[7] = NEW_Array_array___Array___init();
5975 /* ./parser//parser.nit:1289 */
5976 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5977 if (UNTAG_Bool(REGB0)) {
5978 } else {
5979 nit_abort("Assert failed", NULL, LOCATE_parser, 1289);
5980 }
5981 /* ./parser//parser.nit:1290 */
5982 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
5983 fra.me.REG[7] = fra.me.REG[3];
5984 /* ./parser//parser.nit:1291 */
5985 fra.me.REG[7] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
5986 /* ./parser//parser.nit:1294 */
5987 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
5988 fra.me.REG[6] = fra.me.REG[4];
5989 /* ./parser//parser.nit:1295 */
5990 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5991 if (UNTAG_Bool(REGB0)) {
5992 } else {
5993 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5994 if (UNTAG_Bool(REGB1)) {
5995 REGB1 = TAG_Bool(false);
5996 REGB0 = REGB1;
5997 } else {
5998 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5999 REGB0 = REGB1;
6000 }
6001 }
6002 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6003 if (UNTAG_Bool(REGB0)) {
6004 /* ./parser//parser.nit:1296 */
6005 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6006 }
6007 /* ./parser//parser.nit:1298 */
6008 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
6009 /* ./parser//parser.nit:1303 */
6010 fra.me.REG[2] = fra.me.REG[6];
6011 /* ./parser//parser.nit:1304 */
6012 REGB0 = TAG_Bool(ATTR_parser___ReduceAction12____goto(fra.me.REG[0])!=NIT_NULL);
6013 if (UNTAG_Bool(REGB0)) {
6014 } else {
6015 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1304);
6016 }
6017 REGB0 = ATTR_parser___ReduceAction12____goto(fra.me.REG[0]);
6018 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6019 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6020 stack_frame_head = fra.me.prev;
6021 return;
6022 }
6023 void parser___ReduceAction12___init(val_t p0, val_t p1, int* init_table){
6024 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction12].i;
6025 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6026 val_t REGB0;
6027 val_t tmp;
6028 if (init_table[itpos16]) return;
6029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6030 fra.me.file = LOCATE_parser;
6031 fra.me.line = 1307;
6032 fra.me.meth = LOCATE_parser___ReduceAction12___init;
6033 fra.me.has_broke = 0;
6034 fra.me.REG_size = 2;
6035 fra.me.REG[0] = NIT_NULL;
6036 fra.me.REG[1] = NIT_NULL;
6037 fra.me.REG[0] = p0;
6038 REGB0 = p1;
6039 /* ./parser//parser.nit:1307 */
6040 fra.me.REG[1] = fra.me.REG[0];
6041 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6042 ATTR_parser___ReduceAction12____goto(fra.me.REG[1]) = REGB0;
6043 stack_frame_head = fra.me.prev;
6044 init_table[itpos16] = 1;
6045 return;
6046 }
6047 void parser___ReduceAction13___action(val_t p0, val_t p1){
6048 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
6049 val_t REGB0;
6050 val_t REGB1;
6051 val_t tmp;
6052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6053 fra.me.file = LOCATE_parser;
6054 fra.me.line = 1311;
6055 fra.me.meth = LOCATE_parser___ReduceAction13___action;
6056 fra.me.has_broke = 0;
6057 fra.me.REG_size = 9;
6058 fra.me.REG[0] = NIT_NULL;
6059 fra.me.REG[1] = NIT_NULL;
6060 fra.me.REG[2] = NIT_NULL;
6061 fra.me.REG[3] = NIT_NULL;
6062 fra.me.REG[4] = NIT_NULL;
6063 fra.me.REG[5] = NIT_NULL;
6064 fra.me.REG[6] = NIT_NULL;
6065 fra.me.REG[7] = NIT_NULL;
6066 fra.me.REG[8] = NIT_NULL;
6067 fra.me.REG[0] = p0;
6068 fra.me.REG[1] = p1;
6069 /* ./parser//parser.nit:1313 */
6070 fra.me.REG[2] = NIT_NULL;
6071 /* ./parser//parser.nit:1314 */
6072 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6073 /* ./parser//parser.nit:1315 */
6074 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6075 /* ./parser//parser.nit:1316 */
6076 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6077 /* ./parser//parser.nit:1317 */
6078 fra.me.REG[6] = NEW_Array_array___Array___init();
6079 /* ./parser//parser.nit:1318 */
6080 fra.me.REG[7] = NEW_Array_array___Array___init();
6081 /* ./parser//parser.nit:1320 */
6082 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6083 if (UNTAG_Bool(REGB0)) {
6084 } else {
6085 nit_abort("Assert failed", NULL, LOCATE_parser, 1320);
6086 }
6087 /* ./parser//parser.nit:1322 */
6088 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6089 if (UNTAG_Bool(REGB0)) {
6090 } else {
6091 nit_abort("Assert failed", NULL, LOCATE_parser, 1322);
6092 }
6093 /* ./parser//parser.nit:1323 */
6094 fra.me.REG[8] = NEW_Array_array___Array___init();
6095 /* ./parser//parser.nit:1325 */
6096 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6097 if (UNTAG_Bool(REGB0)) {
6098 } else {
6099 nit_abort("Assert failed", NULL, LOCATE_parser, 1325);
6100 }
6101 /* ./parser//parser.nit:1326 */
6102 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
6103 fra.me.REG[8] = fra.me.REG[3];
6104 /* ./parser//parser.nit:1327 */
6105 fra.me.REG[8] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
6106 /* ./parser//parser.nit:1330 */
6107 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
6108 fra.me.REG[7] = fra.me.REG[4];
6109 /* ./parser//parser.nit:1331 */
6110 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6111 if (UNTAG_Bool(REGB0)) {
6112 } else {
6113 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6114 if (UNTAG_Bool(REGB1)) {
6115 REGB1 = TAG_Bool(false);
6116 REGB0 = REGB1;
6117 } else {
6118 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6119 REGB0 = REGB1;
6120 }
6121 }
6122 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6123 if (UNTAG_Bool(REGB0)) {
6124 /* ./parser//parser.nit:1332 */
6125 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6126 }
6127 /* ./parser//parser.nit:1334 */
6128 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
6129 /* ./parser//parser.nit:1339 */
6130 fra.me.REG[2] = fra.me.REG[7];
6131 /* ./parser//parser.nit:1340 */
6132 REGB0 = TAG_Bool(ATTR_parser___ReduceAction13____goto(fra.me.REG[0])!=NIT_NULL);
6133 if (UNTAG_Bool(REGB0)) {
6134 } else {
6135 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1340);
6136 }
6137 REGB0 = ATTR_parser___ReduceAction13____goto(fra.me.REG[0]);
6138 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6139 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6140 stack_frame_head = fra.me.prev;
6141 return;
6142 }
6143 void parser___ReduceAction13___init(val_t p0, val_t p1, int* init_table){
6144 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction13].i;
6145 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6146 val_t REGB0;
6147 val_t tmp;
6148 if (init_table[itpos17]) return;
6149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6150 fra.me.file = LOCATE_parser;
6151 fra.me.line = 1343;
6152 fra.me.meth = LOCATE_parser___ReduceAction13___init;
6153 fra.me.has_broke = 0;
6154 fra.me.REG_size = 2;
6155 fra.me.REG[0] = NIT_NULL;
6156 fra.me.REG[1] = NIT_NULL;
6157 fra.me.REG[0] = p0;
6158 REGB0 = p1;
6159 /* ./parser//parser.nit:1343 */
6160 fra.me.REG[1] = fra.me.REG[0];
6161 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6162 ATTR_parser___ReduceAction13____goto(fra.me.REG[1]) = REGB0;
6163 stack_frame_head = fra.me.prev;
6164 init_table[itpos17] = 1;
6165 return;
6166 }
6167 void parser___ReduceAction14___action(val_t p0, val_t p1){
6168 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6169 val_t REGB0;
6170 val_t REGB1;
6171 val_t tmp;
6172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6173 fra.me.file = LOCATE_parser;
6174 fra.me.line = 1347;
6175 fra.me.meth = LOCATE_parser___ReduceAction14___action;
6176 fra.me.has_broke = 0;
6177 fra.me.REG_size = 8;
6178 fra.me.REG[0] = NIT_NULL;
6179 fra.me.REG[1] = NIT_NULL;
6180 fra.me.REG[2] = NIT_NULL;
6181 fra.me.REG[3] = NIT_NULL;
6182 fra.me.REG[4] = NIT_NULL;
6183 fra.me.REG[5] = NIT_NULL;
6184 fra.me.REG[6] = NIT_NULL;
6185 fra.me.REG[7] = NIT_NULL;
6186 fra.me.REG[0] = p0;
6187 fra.me.REG[1] = p1;
6188 /* ./parser//parser.nit:1349 */
6189 fra.me.REG[2] = NIT_NULL;
6190 /* ./parser//parser.nit:1350 */
6191 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6192 /* ./parser//parser.nit:1351 */
6193 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6194 /* ./parser//parser.nit:1352 */
6195 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6196 /* ./parser//parser.nit:1353 */
6197 fra.me.REG[6] = NEW_Array_array___Array___init();
6198 /* ./parser//parser.nit:1354 */
6199 fra.me.REG[7] = NEW_Array_array___Array___init();
6200 /* ./parser//parser.nit:1356 */
6201 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6202 if (UNTAG_Bool(REGB0)) {
6203 } else {
6204 nit_abort("Assert failed", NULL, LOCATE_parser, 1356);
6205 }
6206 /* ./parser//parser.nit:1357 */
6207 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
6208 fra.me.REG[6] = fra.me.REG[5];
6209 /* ./parser//parser.nit:1359 */
6210 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6211 if (UNTAG_Bool(REGB0)) {
6212 } else {
6213 nit_abort("Assert failed", NULL, LOCATE_parser, 1359);
6214 }
6215 /* ./parser//parser.nit:1360 */
6216 fra.me.REG[5] = NEW_Array_array___Array___init();
6217 /* ./parser//parser.nit:1362 */
6218 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6219 if (UNTAG_Bool(REGB0)) {
6220 } else {
6221 nit_abort("Assert failed", NULL, LOCATE_parser, 1362);
6222 }
6223 /* ./parser//parser.nit:1363 */
6224 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
6225 fra.me.REG[5] = fra.me.REG[3];
6226 /* ./parser//parser.nit:1364 */
6227 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
6228 /* ./parser//parser.nit:1367 */
6229 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
6230 fra.me.REG[7] = fra.me.REG[4];
6231 /* ./parser//parser.nit:1368 */
6232 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6233 if (UNTAG_Bool(REGB0)) {
6234 } else {
6235 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6236 if (UNTAG_Bool(REGB1)) {
6237 REGB1 = TAG_Bool(false);
6238 REGB0 = REGB1;
6239 } else {
6240 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6241 REGB0 = REGB1;
6242 }
6243 }
6244 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6245 if (UNTAG_Bool(REGB0)) {
6246 /* ./parser//parser.nit:1369 */
6247 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
6248 }
6249 /* ./parser//parser.nit:1371 */
6250 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
6251 /* ./parser//parser.nit:1376 */
6252 fra.me.REG[2] = fra.me.REG[7];
6253 /* ./parser//parser.nit:1377 */
6254 REGB0 = TAG_Bool(ATTR_parser___ReduceAction14____goto(fra.me.REG[0])!=NIT_NULL);
6255 if (UNTAG_Bool(REGB0)) {
6256 } else {
6257 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1377);
6258 }
6259 REGB0 = ATTR_parser___ReduceAction14____goto(fra.me.REG[0]);
6260 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6261 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6262 stack_frame_head = fra.me.prev;
6263 return;
6264 }
6265 void parser___ReduceAction14___init(val_t p0, val_t p1, int* init_table){
6266 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction14].i;
6267 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6268 val_t REGB0;
6269 val_t tmp;
6270 if (init_table[itpos18]) return;
6271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6272 fra.me.file = LOCATE_parser;
6273 fra.me.line = 1380;
6274 fra.me.meth = LOCATE_parser___ReduceAction14___init;
6275 fra.me.has_broke = 0;
6276 fra.me.REG_size = 2;
6277 fra.me.REG[0] = NIT_NULL;
6278 fra.me.REG[1] = NIT_NULL;
6279 fra.me.REG[0] = p0;
6280 REGB0 = p1;
6281 /* ./parser//parser.nit:1380 */
6282 fra.me.REG[1] = fra.me.REG[0];
6283 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6284 ATTR_parser___ReduceAction14____goto(fra.me.REG[1]) = REGB0;
6285 stack_frame_head = fra.me.prev;
6286 init_table[itpos18] = 1;
6287 return;
6288 }
6289 void parser___ReduceAction15___action(val_t p0, val_t p1){
6290 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
6291 val_t REGB0;
6292 val_t REGB1;
6293 val_t tmp;
6294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6295 fra.me.file = LOCATE_parser;
6296 fra.me.line = 1384;
6297 fra.me.meth = LOCATE_parser___ReduceAction15___action;
6298 fra.me.has_broke = 0;
6299 fra.me.REG_size = 9;
6300 fra.me.REG[0] = NIT_NULL;
6301 fra.me.REG[1] = NIT_NULL;
6302 fra.me.REG[2] = NIT_NULL;
6303 fra.me.REG[3] = NIT_NULL;
6304 fra.me.REG[4] = NIT_NULL;
6305 fra.me.REG[5] = NIT_NULL;
6306 fra.me.REG[6] = NIT_NULL;
6307 fra.me.REG[7] = NIT_NULL;
6308 fra.me.REG[8] = NIT_NULL;
6309 fra.me.REG[0] = p0;
6310 fra.me.REG[1] = p1;
6311 /* ./parser//parser.nit:1386 */
6312 fra.me.REG[2] = NIT_NULL;
6313 /* ./parser//parser.nit:1387 */
6314 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6315 /* ./parser//parser.nit:1388 */
6316 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6317 /* ./parser//parser.nit:1389 */
6318 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6319 /* ./parser//parser.nit:1390 */
6320 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6321 /* ./parser//parser.nit:1391 */
6322 fra.me.REG[7] = NEW_Array_array___Array___init();
6323 /* ./parser//parser.nit:1392 */
6324 fra.me.REG[8] = NEW_Array_array___Array___init();
6325 /* ./parser//parser.nit:1394 */
6326 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6327 if (UNTAG_Bool(REGB0)) {
6328 } else {
6329 nit_abort("Assert failed", NULL, LOCATE_parser, 1394);
6330 }
6331 /* ./parser//parser.nit:1396 */
6332 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6333 if (UNTAG_Bool(REGB0)) {
6334 } else {
6335 nit_abort("Assert failed", NULL, LOCATE_parser, 1396);
6336 }
6337 /* ./parser//parser.nit:1397 */
6338 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
6339 fra.me.REG[7] = fra.me.REG[5];
6340 /* ./parser//parser.nit:1399 */
6341 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6342 if (UNTAG_Bool(REGB0)) {
6343 } else {
6344 nit_abort("Assert failed", NULL, LOCATE_parser, 1399);
6345 }
6346 /* ./parser//parser.nit:1400 */
6347 fra.me.REG[5] = NEW_Array_array___Array___init();
6348 /* ./parser//parser.nit:1402 */
6349 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6350 if (UNTAG_Bool(REGB0)) {
6351 } else {
6352 nit_abort("Assert failed", NULL, LOCATE_parser, 1402);
6353 }
6354 /* ./parser//parser.nit:1403 */
6355 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
6356 fra.me.REG[5] = fra.me.REG[3];
6357 /* ./parser//parser.nit:1404 */
6358 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
6359 /* ./parser//parser.nit:1407 */
6360 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
6361 fra.me.REG[8] = fra.me.REG[4];
6362 /* ./parser//parser.nit:1408 */
6363 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6364 if (UNTAG_Bool(REGB0)) {
6365 } else {
6366 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6367 if (UNTAG_Bool(REGB1)) {
6368 REGB1 = TAG_Bool(false);
6369 REGB0 = REGB1;
6370 } else {
6371 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6372 REGB0 = REGB1;
6373 }
6374 }
6375 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6376 if (UNTAG_Bool(REGB0)) {
6377 /* ./parser//parser.nit:1409 */
6378 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
6379 }
6380 /* ./parser//parser.nit:1411 */
6381 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
6382 /* ./parser//parser.nit:1416 */
6383 fra.me.REG[2] = fra.me.REG[8];
6384 /* ./parser//parser.nit:1417 */
6385 REGB0 = TAG_Bool(ATTR_parser___ReduceAction15____goto(fra.me.REG[0])!=NIT_NULL);
6386 if (UNTAG_Bool(REGB0)) {
6387 } else {
6388 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1417);
6389 }
6390 REGB0 = ATTR_parser___ReduceAction15____goto(fra.me.REG[0]);
6391 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6392 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6393 stack_frame_head = fra.me.prev;
6394 return;
6395 }
6396 void parser___ReduceAction15___init(val_t p0, val_t p1, int* init_table){
6397 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction15].i;
6398 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6399 val_t REGB0;
6400 val_t tmp;
6401 if (init_table[itpos19]) return;
6402 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6403 fra.me.file = LOCATE_parser;
6404 fra.me.line = 1420;
6405 fra.me.meth = LOCATE_parser___ReduceAction15___init;
6406 fra.me.has_broke = 0;
6407 fra.me.REG_size = 2;
6408 fra.me.REG[0] = NIT_NULL;
6409 fra.me.REG[1] = NIT_NULL;
6410 fra.me.REG[0] = p0;
6411 REGB0 = p1;
6412 /* ./parser//parser.nit:1420 */
6413 fra.me.REG[1] = fra.me.REG[0];
6414 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6415 ATTR_parser___ReduceAction15____goto(fra.me.REG[1]) = REGB0;
6416 stack_frame_head = fra.me.prev;
6417 init_table[itpos19] = 1;
6418 return;
6419 }
6420 void parser___ReduceAction16___action(val_t p0, val_t p1){
6421 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6422 val_t REGB0;
6423 val_t REGB1;
6424 val_t tmp;
6425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6426 fra.me.file = LOCATE_parser;
6427 fra.me.line = 1424;
6428 fra.me.meth = LOCATE_parser___ReduceAction16___action;
6429 fra.me.has_broke = 0;
6430 fra.me.REG_size = 6;
6431 fra.me.REG[0] = NIT_NULL;
6432 fra.me.REG[1] = NIT_NULL;
6433 fra.me.REG[2] = NIT_NULL;
6434 fra.me.REG[3] = NIT_NULL;
6435 fra.me.REG[4] = NIT_NULL;
6436 fra.me.REG[5] = NIT_NULL;
6437 fra.me.REG[0] = p0;
6438 fra.me.REG[1] = p1;
6439 /* ./parser//parser.nit:1426 */
6440 fra.me.REG[2] = NIT_NULL;
6441 /* ./parser//parser.nit:1427 */
6442 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6443 /* ./parser//parser.nit:1428 */
6444 fra.me.REG[4] = NEW_Array_array___Array___init();
6445 /* ./parser//parser.nit:1429 */
6446 fra.me.REG[5] = NEW_Array_array___Array___init();
6447 /* ./parser//parser.nit:1431 */
6448 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6449 if (UNTAG_Bool(REGB0)) {
6450 } else {
6451 nit_abort("Assert failed", NULL, LOCATE_parser, 1431);
6452 }
6453 /* ./parser//parser.nit:1432 */
6454 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6455 if (UNTAG_Bool(REGB0)) {
6456 } else {
6457 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6458 if (UNTAG_Bool(REGB1)) {
6459 REGB1 = TAG_Bool(false);
6460 REGB0 = REGB1;
6461 } else {
6462 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6463 REGB0 = REGB1;
6464 }
6465 }
6466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6467 if (UNTAG_Bool(REGB0)) {
6468 /* ./parser//parser.nit:1433 */
6469 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
6470 }
6471 /* ./parser//parser.nit:1435 */
6472 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
6473 /* ./parser//parser.nit:1440 */
6474 fra.me.REG[2] = fra.me.REG[5];
6475 /* ./parser//parser.nit:1441 */
6476 REGB0 = TAG_Bool(ATTR_parser___ReduceAction16____goto(fra.me.REG[0])!=NIT_NULL);
6477 if (UNTAG_Bool(REGB0)) {
6478 } else {
6479 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1441);
6480 }
6481 REGB0 = ATTR_parser___ReduceAction16____goto(fra.me.REG[0]);
6482 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6483 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6484 stack_frame_head = fra.me.prev;
6485 return;
6486 }
6487 void parser___ReduceAction16___init(val_t p0, val_t p1, int* init_table){
6488 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction16].i;
6489 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6490 val_t REGB0;
6491 val_t tmp;
6492 if (init_table[itpos20]) return;
6493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6494 fra.me.file = LOCATE_parser;
6495 fra.me.line = 1444;
6496 fra.me.meth = LOCATE_parser___ReduceAction16___init;
6497 fra.me.has_broke = 0;
6498 fra.me.REG_size = 2;
6499 fra.me.REG[0] = NIT_NULL;
6500 fra.me.REG[1] = NIT_NULL;
6501 fra.me.REG[0] = p0;
6502 REGB0 = p1;
6503 /* ./parser//parser.nit:1444 */
6504 fra.me.REG[1] = fra.me.REG[0];
6505 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6506 ATTR_parser___ReduceAction16____goto(fra.me.REG[1]) = REGB0;
6507 stack_frame_head = fra.me.prev;
6508 init_table[itpos20] = 1;
6509 return;
6510 }
6511 void parser___ReduceAction17___action(val_t p0, val_t p1){
6512 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6513 val_t REGB0;
6514 val_t REGB1;
6515 val_t tmp;
6516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6517 fra.me.file = LOCATE_parser;
6518 fra.me.line = 1448;
6519 fra.me.meth = LOCATE_parser___ReduceAction17___action;
6520 fra.me.has_broke = 0;
6521 fra.me.REG_size = 7;
6522 fra.me.REG[0] = NIT_NULL;
6523 fra.me.REG[1] = NIT_NULL;
6524 fra.me.REG[2] = NIT_NULL;
6525 fra.me.REG[3] = NIT_NULL;
6526 fra.me.REG[4] = NIT_NULL;
6527 fra.me.REG[5] = NIT_NULL;
6528 fra.me.REG[6] = NIT_NULL;
6529 fra.me.REG[0] = p0;
6530 fra.me.REG[1] = p1;
6531 /* ./parser//parser.nit:1450 */
6532 fra.me.REG[2] = NIT_NULL;
6533 /* ./parser//parser.nit:1451 */
6534 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6535 /* ./parser//parser.nit:1452 */
6536 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6537 /* ./parser//parser.nit:1453 */
6538 fra.me.REG[5] = NEW_Array_array___Array___init();
6539 /* ./parser//parser.nit:1454 */
6540 fra.me.REG[6] = NEW_Array_array___Array___init();
6541 /* ./parser//parser.nit:1456 */
6542 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6543 if (UNTAG_Bool(REGB0)) {
6544 } else {
6545 nit_abort("Assert failed", NULL, LOCATE_parser, 1456);
6546 }
6547 /* ./parser//parser.nit:1458 */
6548 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6549 if (UNTAG_Bool(REGB0)) {
6550 } else {
6551 nit_abort("Assert failed", NULL, LOCATE_parser, 1458);
6552 }
6553 /* ./parser//parser.nit:1459 */
6554 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6555 if (UNTAG_Bool(REGB0)) {
6556 } else {
6557 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6558 if (UNTAG_Bool(REGB1)) {
6559 REGB1 = TAG_Bool(false);
6560 REGB0 = REGB1;
6561 } else {
6562 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6563 REGB0 = REGB1;
6564 }
6565 }
6566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6567 if (UNTAG_Bool(REGB0)) {
6568 /* ./parser//parser.nit:1460 */
6569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
6570 }
6571 /* ./parser//parser.nit:1462 */
6572 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
6573 /* ./parser//parser.nit:1467 */
6574 fra.me.REG[2] = fra.me.REG[6];
6575 /* ./parser//parser.nit:1468 */
6576 REGB0 = TAG_Bool(ATTR_parser___ReduceAction17____goto(fra.me.REG[0])!=NIT_NULL);
6577 if (UNTAG_Bool(REGB0)) {
6578 } else {
6579 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1468);
6580 }
6581 REGB0 = ATTR_parser___ReduceAction17____goto(fra.me.REG[0]);
6582 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6583 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6584 stack_frame_head = fra.me.prev;
6585 return;
6586 }
6587 void parser___ReduceAction17___init(val_t p0, val_t p1, int* init_table){
6588 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction17].i;
6589 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6590 val_t REGB0;
6591 val_t tmp;
6592 if (init_table[itpos21]) return;
6593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6594 fra.me.file = LOCATE_parser;
6595 fra.me.line = 1471;
6596 fra.me.meth = LOCATE_parser___ReduceAction17___init;
6597 fra.me.has_broke = 0;
6598 fra.me.REG_size = 2;
6599 fra.me.REG[0] = NIT_NULL;
6600 fra.me.REG[1] = NIT_NULL;
6601 fra.me.REG[0] = p0;
6602 REGB0 = p1;
6603 /* ./parser//parser.nit:1471 */
6604 fra.me.REG[1] = fra.me.REG[0];
6605 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6606 ATTR_parser___ReduceAction17____goto(fra.me.REG[1]) = REGB0;
6607 stack_frame_head = fra.me.prev;
6608 init_table[itpos21] = 1;
6609 return;
6610 }
6611 void parser___ReduceAction18___action(val_t p0, val_t p1){
6612 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6613 val_t REGB0;
6614 val_t REGB1;
6615 val_t tmp;
6616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6617 fra.me.file = LOCATE_parser;
6618 fra.me.line = 1475;
6619 fra.me.meth = LOCATE_parser___ReduceAction18___action;
6620 fra.me.has_broke = 0;
6621 fra.me.REG_size = 7;
6622 fra.me.REG[0] = NIT_NULL;
6623 fra.me.REG[1] = NIT_NULL;
6624 fra.me.REG[2] = NIT_NULL;
6625 fra.me.REG[3] = NIT_NULL;
6626 fra.me.REG[4] = NIT_NULL;
6627 fra.me.REG[5] = NIT_NULL;
6628 fra.me.REG[6] = NIT_NULL;
6629 fra.me.REG[0] = p0;
6630 fra.me.REG[1] = p1;
6631 /* ./parser//parser.nit:1477 */
6632 fra.me.REG[2] = NIT_NULL;
6633 /* ./parser//parser.nit:1478 */
6634 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6635 /* ./parser//parser.nit:1479 */
6636 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6637 /* ./parser//parser.nit:1480 */
6638 fra.me.REG[5] = NEW_Array_array___Array___init();
6639 /* ./parser//parser.nit:1481 */
6640 fra.me.REG[6] = NEW_Array_array___Array___init();
6641 /* ./parser//parser.nit:1483 */
6642 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6643 if (UNTAG_Bool(REGB0)) {
6644 } else {
6645 nit_abort("Assert failed", NULL, LOCATE_parser, 1483);
6646 }
6647 /* ./parser//parser.nit:1484 */
6648 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
6649 fra.me.REG[5] = fra.me.REG[4];
6650 /* ./parser//parser.nit:1486 */
6651 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6652 if (UNTAG_Bool(REGB0)) {
6653 } else {
6654 nit_abort("Assert failed", NULL, LOCATE_parser, 1486);
6655 }
6656 /* ./parser//parser.nit:1487 */
6657 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6658 if (UNTAG_Bool(REGB0)) {
6659 } else {
6660 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6661 if (UNTAG_Bool(REGB1)) {
6662 REGB1 = TAG_Bool(false);
6663 REGB0 = REGB1;
6664 } else {
6665 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6666 REGB0 = REGB1;
6667 }
6668 }
6669 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6670 if (UNTAG_Bool(REGB0)) {
6671 /* ./parser//parser.nit:1488 */
6672 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
6673 }
6674 /* ./parser//parser.nit:1490 */
6675 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
6676 /* ./parser//parser.nit:1495 */
6677 fra.me.REG[2] = fra.me.REG[6];
6678 /* ./parser//parser.nit:1496 */
6679 REGB0 = TAG_Bool(ATTR_parser___ReduceAction18____goto(fra.me.REG[0])!=NIT_NULL);
6680 if (UNTAG_Bool(REGB0)) {
6681 } else {
6682 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1496);
6683 }
6684 REGB0 = ATTR_parser___ReduceAction18____goto(fra.me.REG[0]);
6685 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6686 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6687 stack_frame_head = fra.me.prev;
6688 return;
6689 }
6690 void parser___ReduceAction18___init(val_t p0, val_t p1, int* init_table){
6691 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction18].i;
6692 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6693 val_t REGB0;
6694 val_t tmp;
6695 if (init_table[itpos22]) return;
6696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6697 fra.me.file = LOCATE_parser;
6698 fra.me.line = 1499;
6699 fra.me.meth = LOCATE_parser___ReduceAction18___init;
6700 fra.me.has_broke = 0;
6701 fra.me.REG_size = 2;
6702 fra.me.REG[0] = NIT_NULL;
6703 fra.me.REG[1] = NIT_NULL;
6704 fra.me.REG[0] = p0;
6705 REGB0 = p1;
6706 /* ./parser//parser.nit:1499 */
6707 fra.me.REG[1] = fra.me.REG[0];
6708 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6709 ATTR_parser___ReduceAction18____goto(fra.me.REG[1]) = REGB0;
6710 stack_frame_head = fra.me.prev;
6711 init_table[itpos22] = 1;
6712 return;
6713 }
6714 void parser___ReduceAction19___action(val_t p0, val_t p1){
6715 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6716 val_t REGB0;
6717 val_t REGB1;
6718 val_t tmp;
6719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6720 fra.me.file = LOCATE_parser;
6721 fra.me.line = 1503;
6722 fra.me.meth = LOCATE_parser___ReduceAction19___action;
6723 fra.me.has_broke = 0;
6724 fra.me.REG_size = 8;
6725 fra.me.REG[0] = NIT_NULL;
6726 fra.me.REG[1] = NIT_NULL;
6727 fra.me.REG[2] = NIT_NULL;
6728 fra.me.REG[3] = NIT_NULL;
6729 fra.me.REG[4] = NIT_NULL;
6730 fra.me.REG[5] = NIT_NULL;
6731 fra.me.REG[6] = NIT_NULL;
6732 fra.me.REG[7] = NIT_NULL;
6733 fra.me.REG[0] = p0;
6734 fra.me.REG[1] = p1;
6735 /* ./parser//parser.nit:1505 */
6736 fra.me.REG[2] = NIT_NULL;
6737 /* ./parser//parser.nit:1506 */
6738 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6739 /* ./parser//parser.nit:1507 */
6740 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6741 /* ./parser//parser.nit:1508 */
6742 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6743 /* ./parser//parser.nit:1509 */
6744 fra.me.REG[6] = NEW_Array_array___Array___init();
6745 /* ./parser//parser.nit:1510 */
6746 fra.me.REG[7] = NEW_Array_array___Array___init();
6747 /* ./parser//parser.nit:1512 */
6748 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6749 if (UNTAG_Bool(REGB0)) {
6750 } else {
6751 nit_abort("Assert failed", NULL, LOCATE_parser, 1512);
6752 }
6753 /* ./parser//parser.nit:1514 */
6754 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6755 if (UNTAG_Bool(REGB0)) {
6756 } else {
6757 nit_abort("Assert failed", NULL, LOCATE_parser, 1514);
6758 }
6759 /* ./parser//parser.nit:1515 */
6760 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
6761 fra.me.REG[6] = fra.me.REG[4];
6762 /* ./parser//parser.nit:1517 */
6763 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6764 if (UNTAG_Bool(REGB0)) {
6765 } else {
6766 nit_abort("Assert failed", NULL, LOCATE_parser, 1517);
6767 }
6768 /* ./parser//parser.nit:1518 */
6769 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6770 if (UNTAG_Bool(REGB0)) {
6771 } else {
6772 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6773 if (UNTAG_Bool(REGB1)) {
6774 REGB1 = TAG_Bool(false);
6775 REGB0 = REGB1;
6776 } else {
6777 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6778 REGB0 = REGB1;
6779 }
6780 }
6781 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6782 if (UNTAG_Bool(REGB0)) {
6783 /* ./parser//parser.nit:1519 */
6784 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
6785 }
6786 /* ./parser//parser.nit:1521 */
6787 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
6788 /* ./parser//parser.nit:1526 */
6789 fra.me.REG[2] = fra.me.REG[7];
6790 /* ./parser//parser.nit:1527 */
6791 REGB0 = TAG_Bool(ATTR_parser___ReduceAction19____goto(fra.me.REG[0])!=NIT_NULL);
6792 if (UNTAG_Bool(REGB0)) {
6793 } else {
6794 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1527);
6795 }
6796 REGB0 = ATTR_parser___ReduceAction19____goto(fra.me.REG[0]);
6797 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6798 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6799 stack_frame_head = fra.me.prev;
6800 return;
6801 }
6802 void parser___ReduceAction19___init(val_t p0, val_t p1, int* init_table){
6803 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction19].i;
6804 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6805 val_t REGB0;
6806 val_t tmp;
6807 if (init_table[itpos23]) return;
6808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6809 fra.me.file = LOCATE_parser;
6810 fra.me.line = 1530;
6811 fra.me.meth = LOCATE_parser___ReduceAction19___init;
6812 fra.me.has_broke = 0;
6813 fra.me.REG_size = 2;
6814 fra.me.REG[0] = NIT_NULL;
6815 fra.me.REG[1] = NIT_NULL;
6816 fra.me.REG[0] = p0;
6817 REGB0 = p1;
6818 /* ./parser//parser.nit:1530 */
6819 fra.me.REG[1] = fra.me.REG[0];
6820 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6821 ATTR_parser___ReduceAction19____goto(fra.me.REG[1]) = REGB0;
6822 stack_frame_head = fra.me.prev;
6823 init_table[itpos23] = 1;
6824 return;
6825 }
6826 void parser___ReduceAction20___action(val_t p0, val_t p1){
6827 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6828 val_t REGB0;
6829 val_t REGB1;
6830 val_t tmp;
6831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6832 fra.me.file = LOCATE_parser;
6833 fra.me.line = 1534;
6834 fra.me.meth = LOCATE_parser___ReduceAction20___action;
6835 fra.me.has_broke = 0;
6836 fra.me.REG_size = 7;
6837 fra.me.REG[0] = NIT_NULL;
6838 fra.me.REG[1] = NIT_NULL;
6839 fra.me.REG[2] = NIT_NULL;
6840 fra.me.REG[3] = NIT_NULL;
6841 fra.me.REG[4] = NIT_NULL;
6842 fra.me.REG[5] = NIT_NULL;
6843 fra.me.REG[6] = NIT_NULL;
6844 fra.me.REG[0] = p0;
6845 fra.me.REG[1] = p1;
6846 /* ./parser//parser.nit:1536 */
6847 fra.me.REG[2] = NIT_NULL;
6848 /* ./parser//parser.nit:1537 */
6849 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6850 /* ./parser//parser.nit:1538 */
6851 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6852 /* ./parser//parser.nit:1539 */
6853 fra.me.REG[5] = NEW_Array_array___Array___init();
6854 /* ./parser//parser.nit:1540 */
6855 fra.me.REG[6] = NEW_Array_array___Array___init();
6856 /* ./parser//parser.nit:1542 */
6857 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6858 if (UNTAG_Bool(REGB0)) {
6859 } else {
6860 nit_abort("Assert failed", NULL, LOCATE_parser, 1542);
6861 }
6862 /* ./parser//parser.nit:1544 */
6863 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6864 if (UNTAG_Bool(REGB0)) {
6865 } else {
6866 nit_abort("Assert failed", NULL, LOCATE_parser, 1544);
6867 }
6868 /* ./parser//parser.nit:1545 */
6869 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
6870 fra.me.REG[6] = fra.me.REG[4];
6871 /* ./parser//parser.nit:1546 */
6872 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6873 if (UNTAG_Bool(REGB0)) {
6874 } else {
6875 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6876 if (UNTAG_Bool(REGB1)) {
6877 REGB1 = TAG_Bool(false);
6878 REGB0 = REGB1;
6879 } else {
6880 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6881 REGB0 = REGB1;
6882 }
6883 }
6884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6885 if (UNTAG_Bool(REGB0)) {
6886 /* ./parser//parser.nit:1547 */
6887 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
6888 }
6889 /* ./parser//parser.nit:1549 */
6890 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
6891 /* ./parser//parser.nit:1554 */
6892 fra.me.REG[2] = fra.me.REG[6];
6893 /* ./parser//parser.nit:1555 */
6894 REGB0 = TAG_Bool(ATTR_parser___ReduceAction20____goto(fra.me.REG[0])!=NIT_NULL);
6895 if (UNTAG_Bool(REGB0)) {
6896 } else {
6897 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1555);
6898 }
6899 REGB0 = ATTR_parser___ReduceAction20____goto(fra.me.REG[0]);
6900 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6901 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6902 stack_frame_head = fra.me.prev;
6903 return;
6904 }
6905 void parser___ReduceAction20___init(val_t p0, val_t p1, int* init_table){
6906 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction20].i;
6907 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6908 val_t REGB0;
6909 val_t tmp;
6910 if (init_table[itpos24]) return;
6911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6912 fra.me.file = LOCATE_parser;
6913 fra.me.line = 1558;
6914 fra.me.meth = LOCATE_parser___ReduceAction20___init;
6915 fra.me.has_broke = 0;
6916 fra.me.REG_size = 2;
6917 fra.me.REG[0] = NIT_NULL;
6918 fra.me.REG[1] = NIT_NULL;
6919 fra.me.REG[0] = p0;
6920 REGB0 = p1;
6921 /* ./parser//parser.nit:1558 */
6922 fra.me.REG[1] = fra.me.REG[0];
6923 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6924 ATTR_parser___ReduceAction20____goto(fra.me.REG[1]) = REGB0;
6925 stack_frame_head = fra.me.prev;
6926 init_table[itpos24] = 1;
6927 return;
6928 }
6929 void parser___ReduceAction21___action(val_t p0, val_t p1){
6930 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6931 val_t REGB0;
6932 val_t REGB1;
6933 val_t tmp;
6934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6935 fra.me.file = LOCATE_parser;
6936 fra.me.line = 1562;
6937 fra.me.meth = LOCATE_parser___ReduceAction21___action;
6938 fra.me.has_broke = 0;
6939 fra.me.REG_size = 8;
6940 fra.me.REG[0] = NIT_NULL;
6941 fra.me.REG[1] = NIT_NULL;
6942 fra.me.REG[2] = NIT_NULL;
6943 fra.me.REG[3] = NIT_NULL;
6944 fra.me.REG[4] = NIT_NULL;
6945 fra.me.REG[5] = NIT_NULL;
6946 fra.me.REG[6] = NIT_NULL;
6947 fra.me.REG[7] = NIT_NULL;
6948 fra.me.REG[0] = p0;
6949 fra.me.REG[1] = p1;
6950 /* ./parser//parser.nit:1564 */
6951 fra.me.REG[2] = NIT_NULL;
6952 /* ./parser//parser.nit:1565 */
6953 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6954 /* ./parser//parser.nit:1566 */
6955 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6956 /* ./parser//parser.nit:1567 */
6957 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6958 /* ./parser//parser.nit:1568 */
6959 fra.me.REG[6] = NEW_Array_array___Array___init();
6960 /* ./parser//parser.nit:1569 */
6961 fra.me.REG[7] = NEW_Array_array___Array___init();
6962 /* ./parser//parser.nit:1571 */
6963 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6964 if (UNTAG_Bool(REGB0)) {
6965 } else {
6966 nit_abort("Assert failed", NULL, LOCATE_parser, 1571);
6967 }
6968 /* ./parser//parser.nit:1573 */
6969 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6970 if (UNTAG_Bool(REGB0)) {
6971 } else {
6972 nit_abort("Assert failed", NULL, LOCATE_parser, 1573);
6973 }
6974 /* ./parser//parser.nit:1575 */
6975 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6976 if (UNTAG_Bool(REGB0)) {
6977 } else {
6978 nit_abort("Assert failed", NULL, LOCATE_parser, 1575);
6979 }
6980 /* ./parser//parser.nit:1576 */
6981 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
6982 fra.me.REG[7] = fra.me.REG[4];
6983 /* ./parser//parser.nit:1577 */
6984 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6985 if (UNTAG_Bool(REGB0)) {
6986 } else {
6987 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6988 if (UNTAG_Bool(REGB1)) {
6989 REGB1 = TAG_Bool(false);
6990 REGB0 = REGB1;
6991 } else {
6992 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6993 REGB0 = REGB1;
6994 }
6995 }
6996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6997 if (UNTAG_Bool(REGB0)) {
6998 /* ./parser//parser.nit:1578 */
6999 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7000 }
7001 /* ./parser//parser.nit:1580 */
7002 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
7003 /* ./parser//parser.nit:1585 */
7004 fra.me.REG[2] = fra.me.REG[7];
7005 /* ./parser//parser.nit:1586 */
7006 REGB0 = TAG_Bool(ATTR_parser___ReduceAction21____goto(fra.me.REG[0])!=NIT_NULL);
7007 if (UNTAG_Bool(REGB0)) {
7008 } else {
7009 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1586);
7010 }
7011 REGB0 = ATTR_parser___ReduceAction21____goto(fra.me.REG[0]);
7012 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7013 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7014 stack_frame_head = fra.me.prev;
7015 return;
7016 }
7017 void parser___ReduceAction21___init(val_t p0, val_t p1, int* init_table){
7018 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction21].i;
7019 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7020 val_t REGB0;
7021 val_t tmp;
7022 if (init_table[itpos25]) return;
7023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7024 fra.me.file = LOCATE_parser;
7025 fra.me.line = 1589;
7026 fra.me.meth = LOCATE_parser___ReduceAction21___init;
7027 fra.me.has_broke = 0;
7028 fra.me.REG_size = 2;
7029 fra.me.REG[0] = NIT_NULL;
7030 fra.me.REG[1] = NIT_NULL;
7031 fra.me.REG[0] = p0;
7032 REGB0 = p1;
7033 /* ./parser//parser.nit:1589 */
7034 fra.me.REG[1] = fra.me.REG[0];
7035 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7036 ATTR_parser___ReduceAction21____goto(fra.me.REG[1]) = REGB0;
7037 stack_frame_head = fra.me.prev;
7038 init_table[itpos25] = 1;
7039 return;
7040 }
7041 void parser___ReduceAction22___action(val_t p0, val_t p1){
7042 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7043 val_t REGB0;
7044 val_t REGB1;
7045 val_t tmp;
7046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7047 fra.me.file = LOCATE_parser;
7048 fra.me.line = 1593;
7049 fra.me.meth = LOCATE_parser___ReduceAction22___action;
7050 fra.me.has_broke = 0;
7051 fra.me.REG_size = 8;
7052 fra.me.REG[0] = NIT_NULL;
7053 fra.me.REG[1] = NIT_NULL;
7054 fra.me.REG[2] = NIT_NULL;
7055 fra.me.REG[3] = NIT_NULL;
7056 fra.me.REG[4] = NIT_NULL;
7057 fra.me.REG[5] = NIT_NULL;
7058 fra.me.REG[6] = NIT_NULL;
7059 fra.me.REG[7] = NIT_NULL;
7060 fra.me.REG[0] = p0;
7061 fra.me.REG[1] = p1;
7062 /* ./parser//parser.nit:1595 */
7063 fra.me.REG[2] = NIT_NULL;
7064 /* ./parser//parser.nit:1596 */
7065 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7066 /* ./parser//parser.nit:1597 */
7067 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7068 /* ./parser//parser.nit:1598 */
7069 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7070 /* ./parser//parser.nit:1599 */
7071 fra.me.REG[6] = NEW_Array_array___Array___init();
7072 /* ./parser//parser.nit:1600 */
7073 fra.me.REG[7] = NEW_Array_array___Array___init();
7074 /* ./parser//parser.nit:1602 */
7075 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7076 if (UNTAG_Bool(REGB0)) {
7077 } else {
7078 nit_abort("Assert failed", NULL, LOCATE_parser, 1602);
7079 }
7080 /* ./parser//parser.nit:1603 */
7081 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
7082 fra.me.REG[6] = fra.me.REG[5];
7083 /* ./parser//parser.nit:1605 */
7084 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7085 if (UNTAG_Bool(REGB0)) {
7086 } else {
7087 nit_abort("Assert failed", NULL, LOCATE_parser, 1605);
7088 }
7089 /* ./parser//parser.nit:1607 */
7090 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7091 if (UNTAG_Bool(REGB0)) {
7092 } else {
7093 nit_abort("Assert failed", NULL, LOCATE_parser, 1607);
7094 }
7095 /* ./parser//parser.nit:1608 */
7096 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
7097 fra.me.REG[7] = fra.me.REG[4];
7098 /* ./parser//parser.nit:1609 */
7099 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7100 if (UNTAG_Bool(REGB0)) {
7101 } else {
7102 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7103 if (UNTAG_Bool(REGB1)) {
7104 REGB1 = TAG_Bool(false);
7105 REGB0 = REGB1;
7106 } else {
7107 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7108 REGB0 = REGB1;
7109 }
7110 }
7111 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7112 if (UNTAG_Bool(REGB0)) {
7113 /* ./parser//parser.nit:1610 */
7114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7115 }
7116 /* ./parser//parser.nit:1612 */
7117 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
7118 /* ./parser//parser.nit:1617 */
7119 fra.me.REG[2] = fra.me.REG[7];
7120 /* ./parser//parser.nit:1618 */
7121 REGB0 = TAG_Bool(ATTR_parser___ReduceAction22____goto(fra.me.REG[0])!=NIT_NULL);
7122 if (UNTAG_Bool(REGB0)) {
7123 } else {
7124 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1618);
7125 }
7126 REGB0 = ATTR_parser___ReduceAction22____goto(fra.me.REG[0]);
7127 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7128 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7129 stack_frame_head = fra.me.prev;
7130 return;
7131 }
7132 void parser___ReduceAction22___init(val_t p0, val_t p1, int* init_table){
7133 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction22].i;
7134 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7135 val_t REGB0;
7136 val_t tmp;
7137 if (init_table[itpos26]) return;
7138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7139 fra.me.file = LOCATE_parser;
7140 fra.me.line = 1621;
7141 fra.me.meth = LOCATE_parser___ReduceAction22___init;
7142 fra.me.has_broke = 0;
7143 fra.me.REG_size = 2;
7144 fra.me.REG[0] = NIT_NULL;
7145 fra.me.REG[1] = NIT_NULL;
7146 fra.me.REG[0] = p0;
7147 REGB0 = p1;
7148 /* ./parser//parser.nit:1621 */
7149 fra.me.REG[1] = fra.me.REG[0];
7150 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7151 ATTR_parser___ReduceAction22____goto(fra.me.REG[1]) = REGB0;
7152 stack_frame_head = fra.me.prev;
7153 init_table[itpos26] = 1;
7154 return;
7155 }
7156 void parser___ReduceAction23___action(val_t p0, val_t p1){
7157 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7158 val_t REGB0;
7159 val_t REGB1;
7160 val_t tmp;
7161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7162 fra.me.file = LOCATE_parser;
7163 fra.me.line = 1625;
7164 fra.me.meth = LOCATE_parser___ReduceAction23___action;
7165 fra.me.has_broke = 0;
7166 fra.me.REG_size = 9;
7167 fra.me.REG[0] = NIT_NULL;
7168 fra.me.REG[1] = NIT_NULL;
7169 fra.me.REG[2] = NIT_NULL;
7170 fra.me.REG[3] = NIT_NULL;
7171 fra.me.REG[4] = NIT_NULL;
7172 fra.me.REG[5] = NIT_NULL;
7173 fra.me.REG[6] = NIT_NULL;
7174 fra.me.REG[7] = NIT_NULL;
7175 fra.me.REG[8] = NIT_NULL;
7176 fra.me.REG[0] = p0;
7177 fra.me.REG[1] = p1;
7178 /* ./parser//parser.nit:1627 */
7179 fra.me.REG[2] = NIT_NULL;
7180 /* ./parser//parser.nit:1628 */
7181 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7182 /* ./parser//parser.nit:1629 */
7183 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7184 /* ./parser//parser.nit:1630 */
7185 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7186 /* ./parser//parser.nit:1631 */
7187 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7188 /* ./parser//parser.nit:1632 */
7189 fra.me.REG[7] = NEW_Array_array___Array___init();
7190 /* ./parser//parser.nit:1633 */
7191 fra.me.REG[8] = NEW_Array_array___Array___init();
7192 /* ./parser//parser.nit:1635 */
7193 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
7194 if (UNTAG_Bool(REGB0)) {
7195 } else {
7196 nit_abort("Assert failed", NULL, LOCATE_parser, 1635);
7197 }
7198 /* ./parser//parser.nit:1637 */
7199 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7200 if (UNTAG_Bool(REGB0)) {
7201 } else {
7202 nit_abort("Assert failed", NULL, LOCATE_parser, 1637);
7203 }
7204 /* ./parser//parser.nit:1638 */
7205 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
7206 fra.me.REG[7] = fra.me.REG[5];
7207 /* ./parser//parser.nit:1640 */
7208 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7209 if (UNTAG_Bool(REGB0)) {
7210 } else {
7211 nit_abort("Assert failed", NULL, LOCATE_parser, 1640);
7212 }
7213 /* ./parser//parser.nit:1642 */
7214 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7215 if (UNTAG_Bool(REGB0)) {
7216 } else {
7217 nit_abort("Assert failed", NULL, LOCATE_parser, 1642);
7218 }
7219 /* ./parser//parser.nit:1643 */
7220 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
7221 fra.me.REG[8] = fra.me.REG[4];
7222 /* ./parser//parser.nit:1644 */
7223 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7224 if (UNTAG_Bool(REGB0)) {
7225 } else {
7226 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7227 if (UNTAG_Bool(REGB1)) {
7228 REGB1 = TAG_Bool(false);
7229 REGB0 = REGB1;
7230 } else {
7231 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7232 REGB0 = REGB1;
7233 }
7234 }
7235 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7236 if (UNTAG_Bool(REGB0)) {
7237 /* ./parser//parser.nit:1645 */
7238 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
7239 }
7240 /* ./parser//parser.nit:1647 */
7241 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
7242 /* ./parser//parser.nit:1652 */
7243 fra.me.REG[2] = fra.me.REG[8];
7244 /* ./parser//parser.nit:1653 */
7245 REGB0 = TAG_Bool(ATTR_parser___ReduceAction23____goto(fra.me.REG[0])!=NIT_NULL);
7246 if (UNTAG_Bool(REGB0)) {
7247 } else {
7248 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1653);
7249 }
7250 REGB0 = ATTR_parser___ReduceAction23____goto(fra.me.REG[0]);
7251 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7252 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7253 stack_frame_head = fra.me.prev;
7254 return;
7255 }
7256 void parser___ReduceAction23___init(val_t p0, val_t p1, int* init_table){
7257 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction23].i;
7258 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7259 val_t REGB0;
7260 val_t tmp;
7261 if (init_table[itpos27]) return;
7262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7263 fra.me.file = LOCATE_parser;
7264 fra.me.line = 1656;
7265 fra.me.meth = LOCATE_parser___ReduceAction23___init;
7266 fra.me.has_broke = 0;
7267 fra.me.REG_size = 2;
7268 fra.me.REG[0] = NIT_NULL;
7269 fra.me.REG[1] = NIT_NULL;
7270 fra.me.REG[0] = p0;
7271 REGB0 = p1;
7272 /* ./parser//parser.nit:1656 */
7273 fra.me.REG[1] = fra.me.REG[0];
7274 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7275 ATTR_parser___ReduceAction23____goto(fra.me.REG[1]) = REGB0;
7276 stack_frame_head = fra.me.prev;
7277 init_table[itpos27] = 1;
7278 return;
7279 }
7280 void parser___ReduceAction24___action(val_t p0, val_t p1){
7281 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7282 val_t REGB0;
7283 val_t REGB1;
7284 val_t tmp;
7285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7286 fra.me.file = LOCATE_parser;
7287 fra.me.line = 1660;
7288 fra.me.meth = LOCATE_parser___ReduceAction24___action;
7289 fra.me.has_broke = 0;
7290 fra.me.REG_size = 8;
7291 fra.me.REG[0] = NIT_NULL;
7292 fra.me.REG[1] = NIT_NULL;
7293 fra.me.REG[2] = NIT_NULL;
7294 fra.me.REG[3] = NIT_NULL;
7295 fra.me.REG[4] = NIT_NULL;
7296 fra.me.REG[5] = NIT_NULL;
7297 fra.me.REG[6] = NIT_NULL;
7298 fra.me.REG[7] = NIT_NULL;
7299 fra.me.REG[0] = p0;
7300 fra.me.REG[1] = p1;
7301 /* ./parser//parser.nit:1662 */
7302 fra.me.REG[2] = NIT_NULL;
7303 /* ./parser//parser.nit:1663 */
7304 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7305 /* ./parser//parser.nit:1664 */
7306 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7307 /* ./parser//parser.nit:1665 */
7308 fra.me.REG[5] = NEW_Array_array___Array___init();
7309 /* ./parser//parser.nit:1666 */
7310 fra.me.REG[6] = NEW_Array_array___Array___init();
7311 /* ./parser//parser.nit:1667 */
7312 fra.me.REG[7] = NEW_Array_array___Array___init();
7313 /* ./parser//parser.nit:1669 */
7314 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7315 if (UNTAG_Bool(REGB0)) {
7316 } else {
7317 nit_abort("Assert failed", NULL, LOCATE_parser, 1669);
7318 }
7319 /* ./parser//parser.nit:1670 */
7320 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
7321 fra.me.REG[7] = fra.me.REG[4];
7322 /* ./parser//parser.nit:1671 */
7323 fra.me.REG[7] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
7324 /* ./parser//parser.nit:1675 */
7325 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7326 if (UNTAG_Bool(REGB0)) {
7327 } else {
7328 nit_abort("Assert failed", NULL, LOCATE_parser, 1675);
7329 }
7330 /* ./parser//parser.nit:1676 */
7331 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7332 if (UNTAG_Bool(REGB0)) {
7333 } else {
7334 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7335 if (UNTAG_Bool(REGB1)) {
7336 REGB1 = TAG_Bool(false);
7337 REGB0 = REGB1;
7338 } else {
7339 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
7340 REGB0 = REGB1;
7341 }
7342 }
7343 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7344 if (UNTAG_Bool(REGB0)) {
7345 /* ./parser//parser.nit:1677 */
7346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7347 }
7348 /* ./parser//parser.nit:1679 */
7349 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7350 if (UNTAG_Bool(REGB0)) {
7351 } else {
7352 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7353 if (UNTAG_Bool(REGB1)) {
7354 REGB1 = TAG_Bool(false);
7355 REGB0 = REGB1;
7356 } else {
7357 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7358 REGB0 = REGB1;
7359 }
7360 }
7361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7362 if (UNTAG_Bool(REGB0)) {
7363 /* ./parser//parser.nit:1680 */
7364 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
7365 }
7366 /* ./parser//parser.nit:1682 */
7367 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
7368 /* ./parser//parser.nit:1687 */
7369 fra.me.REG[2] = fra.me.REG[6];
7370 /* ./parser//parser.nit:1688 */
7371 REGB0 = TAG_Bool(ATTR_parser___ReduceAction24____goto(fra.me.REG[0])!=NIT_NULL);
7372 if (UNTAG_Bool(REGB0)) {
7373 } else {
7374 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1688);
7375 }
7376 REGB0 = ATTR_parser___ReduceAction24____goto(fra.me.REG[0]);
7377 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7378 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7379 stack_frame_head = fra.me.prev;
7380 return;
7381 }
7382 void parser___ReduceAction24___init(val_t p0, val_t p1, int* init_table){
7383 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction24].i;
7384 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7385 val_t REGB0;
7386 val_t tmp;
7387 if (init_table[itpos28]) return;
7388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7389 fra.me.file = LOCATE_parser;
7390 fra.me.line = 1691;
7391 fra.me.meth = LOCATE_parser___ReduceAction24___init;
7392 fra.me.has_broke = 0;
7393 fra.me.REG_size = 2;
7394 fra.me.REG[0] = NIT_NULL;
7395 fra.me.REG[1] = NIT_NULL;
7396 fra.me.REG[0] = p0;
7397 REGB0 = p1;
7398 /* ./parser//parser.nit:1691 */
7399 fra.me.REG[1] = fra.me.REG[0];
7400 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7401 ATTR_parser___ReduceAction24____goto(fra.me.REG[1]) = REGB0;
7402 stack_frame_head = fra.me.prev;
7403 init_table[itpos28] = 1;
7404 return;
7405 }
7406 void parser___ReduceAction25___action(val_t p0, val_t p1){
7407 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7408 val_t REGB0;
7409 val_t REGB1;
7410 val_t tmp;
7411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7412 fra.me.file = LOCATE_parser;
7413 fra.me.line = 1695;
7414 fra.me.meth = LOCATE_parser___ReduceAction25___action;
7415 fra.me.has_broke = 0;
7416 fra.me.REG_size = 9;
7417 fra.me.REG[0] = NIT_NULL;
7418 fra.me.REG[1] = NIT_NULL;
7419 fra.me.REG[2] = NIT_NULL;
7420 fra.me.REG[3] = NIT_NULL;
7421 fra.me.REG[4] = NIT_NULL;
7422 fra.me.REG[5] = NIT_NULL;
7423 fra.me.REG[6] = NIT_NULL;
7424 fra.me.REG[7] = NIT_NULL;
7425 fra.me.REG[8] = NIT_NULL;
7426 fra.me.REG[0] = p0;
7427 fra.me.REG[1] = p1;
7428 /* ./parser//parser.nit:1697 */
7429 fra.me.REG[2] = NIT_NULL;
7430 /* ./parser//parser.nit:1698 */
7431 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7432 /* ./parser//parser.nit:1699 */
7433 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7434 /* ./parser//parser.nit:1700 */
7435 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7436 /* ./parser//parser.nit:1701 */
7437 fra.me.REG[6] = NEW_Array_array___Array___init();
7438 /* ./parser//parser.nit:1702 */
7439 fra.me.REG[7] = NEW_Array_array___Array___init();
7440 /* ./parser//parser.nit:1704 */
7441 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
7442 if (UNTAG_Bool(REGB0)) {
7443 } else {
7444 nit_abort("Assert failed", NULL, LOCATE_parser, 1704);
7445 }
7446 /* ./parser//parser.nit:1705 */
7447 fra.me.REG[8] = NEW_Array_array___Array___init();
7448 /* ./parser//parser.nit:1707 */
7449 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7450 if (UNTAG_Bool(REGB0)) {
7451 } else {
7452 nit_abort("Assert failed", NULL, LOCATE_parser, 1707);
7453 }
7454 /* ./parser//parser.nit:1708 */
7455 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
7456 fra.me.REG[8] = fra.me.REG[4];
7457 /* ./parser//parser.nit:1709 */
7458 fra.me.REG[8] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
7459 /* ./parser//parser.nit:1713 */
7460 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7461 if (UNTAG_Bool(REGB0)) {
7462 } else {
7463 nit_abort("Assert failed", NULL, LOCATE_parser, 1713);
7464 }
7465 /* ./parser//parser.nit:1714 */
7466 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7467 if (UNTAG_Bool(REGB0)) {
7468 } else {
7469 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7470 if (UNTAG_Bool(REGB1)) {
7471 REGB1 = TAG_Bool(false);
7472 REGB0 = REGB1;
7473 } else {
7474 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7475 REGB0 = REGB1;
7476 }
7477 }
7478 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7479 if (UNTAG_Bool(REGB0)) {
7480 /* ./parser//parser.nit:1715 */
7481 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
7482 }
7483 /* ./parser//parser.nit:1717 */
7484 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7485 if (UNTAG_Bool(REGB0)) {
7486 } else {
7487 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7488 if (UNTAG_Bool(REGB1)) {
7489 REGB1 = TAG_Bool(false);
7490 REGB0 = REGB1;
7491 } else {
7492 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7493 REGB0 = REGB1;
7494 }
7495 }
7496 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7497 if (UNTAG_Bool(REGB0)) {
7498 /* ./parser//parser.nit:1718 */
7499 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7500 }
7501 /* ./parser//parser.nit:1720 */
7502 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
7503 /* ./parser//parser.nit:1725 */
7504 fra.me.REG[2] = fra.me.REG[7];
7505 /* ./parser//parser.nit:1726 */
7506 REGB0 = TAG_Bool(ATTR_parser___ReduceAction25____goto(fra.me.REG[0])!=NIT_NULL);
7507 if (UNTAG_Bool(REGB0)) {
7508 } else {
7509 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1726);
7510 }
7511 REGB0 = ATTR_parser___ReduceAction25____goto(fra.me.REG[0]);
7512 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7513 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7514 stack_frame_head = fra.me.prev;
7515 return;
7516 }
7517 void parser___ReduceAction25___init(val_t p0, val_t p1, int* init_table){
7518 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction25].i;
7519 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7520 val_t REGB0;
7521 val_t tmp;
7522 if (init_table[itpos29]) return;
7523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7524 fra.me.file = LOCATE_parser;
7525 fra.me.line = 1729;
7526 fra.me.meth = LOCATE_parser___ReduceAction25___init;
7527 fra.me.has_broke = 0;
7528 fra.me.REG_size = 2;
7529 fra.me.REG[0] = NIT_NULL;
7530 fra.me.REG[1] = NIT_NULL;
7531 fra.me.REG[0] = p0;
7532 REGB0 = p1;
7533 /* ./parser//parser.nit:1729 */
7534 fra.me.REG[1] = fra.me.REG[0];
7535 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7536 ATTR_parser___ReduceAction25____goto(fra.me.REG[1]) = REGB0;
7537 stack_frame_head = fra.me.prev;
7538 init_table[itpos29] = 1;
7539 return;
7540 }
7541 void parser___ReduceAction26___action(val_t p0, val_t p1){
7542 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7543 val_t REGB0;
7544 val_t REGB1;
7545 val_t tmp;
7546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7547 fra.me.file = LOCATE_parser;
7548 fra.me.line = 1733;
7549 fra.me.meth = LOCATE_parser___ReduceAction26___action;
7550 fra.me.has_broke = 0;
7551 fra.me.REG_size = 8;
7552 fra.me.REG[0] = NIT_NULL;
7553 fra.me.REG[1] = NIT_NULL;
7554 fra.me.REG[2] = NIT_NULL;
7555 fra.me.REG[3] = NIT_NULL;
7556 fra.me.REG[4] = NIT_NULL;
7557 fra.me.REG[5] = NIT_NULL;
7558 fra.me.REG[6] = NIT_NULL;
7559 fra.me.REG[7] = NIT_NULL;
7560 fra.me.REG[0] = p0;
7561 fra.me.REG[1] = p1;
7562 /* ./parser//parser.nit:1735 */
7563 fra.me.REG[2] = NIT_NULL;
7564 /* ./parser//parser.nit:1736 */
7565 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7566 /* ./parser//parser.nit:1737 */
7567 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7568 /* ./parser//parser.nit:1738 */
7569 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7570 /* ./parser//parser.nit:1739 */
7571 fra.me.REG[6] = NEW_Array_array___Array___init();
7572 /* ./parser//parser.nit:1740 */
7573 fra.me.REG[7] = NEW_Array_array___Array___init();
7574 /* ./parser//parser.nit:1742 */
7575 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7576 if (UNTAG_Bool(REGB0)) {
7577 } else {
7578 nit_abort("Assert failed", NULL, LOCATE_parser, 1742);
7579 }
7580 /* ./parser//parser.nit:1743 */
7581 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
7582 fra.me.REG[6] = fra.me.REG[5];
7583 /* ./parser//parser.nit:1744 */
7584 fra.me.REG[5] = NEW_Array_array___Array___init();
7585 /* ./parser//parser.nit:1746 */
7586 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7587 if (UNTAG_Bool(REGB0)) {
7588 } else {
7589 nit_abort("Assert failed", NULL, LOCATE_parser, 1746);
7590 }
7591 /* ./parser//parser.nit:1747 */
7592 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
7593 fra.me.REG[5] = fra.me.REG[4];
7594 /* ./parser//parser.nit:1748 */
7595 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
7596 /* ./parser//parser.nit:1752 */
7597 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7598 if (UNTAG_Bool(REGB0)) {
7599 } else {
7600 nit_abort("Assert failed", NULL, LOCATE_parser, 1752);
7601 }
7602 /* ./parser//parser.nit:1753 */
7603 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7604 if (UNTAG_Bool(REGB0)) {
7605 } else {
7606 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7607 if (UNTAG_Bool(REGB1)) {
7608 REGB1 = TAG_Bool(false);
7609 REGB0 = REGB1;
7610 } else {
7611 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7612 REGB0 = REGB1;
7613 }
7614 }
7615 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7616 if (UNTAG_Bool(REGB0)) {
7617 /* ./parser//parser.nit:1754 */
7618 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
7619 }
7620 /* ./parser//parser.nit:1756 */
7621 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7622 if (UNTAG_Bool(REGB0)) {
7623 } else {
7624 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7625 if (UNTAG_Bool(REGB1)) {
7626 REGB1 = TAG_Bool(false);
7627 REGB0 = REGB1;
7628 } else {
7629 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7630 REGB0 = REGB1;
7631 }
7632 }
7633 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7634 if (UNTAG_Bool(REGB0)) {
7635 /* ./parser//parser.nit:1757 */
7636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7637 }
7638 /* ./parser//parser.nit:1759 */
7639 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
7640 /* ./parser//parser.nit:1764 */
7641 fra.me.REG[2] = fra.me.REG[7];
7642 /* ./parser//parser.nit:1765 */
7643 REGB0 = TAG_Bool(ATTR_parser___ReduceAction26____goto(fra.me.REG[0])!=NIT_NULL);
7644 if (UNTAG_Bool(REGB0)) {
7645 } else {
7646 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1765);
7647 }
7648 REGB0 = ATTR_parser___ReduceAction26____goto(fra.me.REG[0]);
7649 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7650 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7651 stack_frame_head = fra.me.prev;
7652 return;
7653 }
7654 void parser___ReduceAction26___init(val_t p0, val_t p1, int* init_table){
7655 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction26].i;
7656 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7657 val_t REGB0;
7658 val_t tmp;
7659 if (init_table[itpos30]) return;
7660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7661 fra.me.file = LOCATE_parser;
7662 fra.me.line = 1768;
7663 fra.me.meth = LOCATE_parser___ReduceAction26___init;
7664 fra.me.has_broke = 0;
7665 fra.me.REG_size = 2;
7666 fra.me.REG[0] = NIT_NULL;
7667 fra.me.REG[1] = NIT_NULL;
7668 fra.me.REG[0] = p0;
7669 REGB0 = p1;
7670 /* ./parser//parser.nit:1768 */
7671 fra.me.REG[1] = fra.me.REG[0];
7672 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7673 ATTR_parser___ReduceAction26____goto(fra.me.REG[1]) = REGB0;
7674 stack_frame_head = fra.me.prev;
7675 init_table[itpos30] = 1;
7676 return;
7677 }
7678 void parser___ReduceAction27___action(val_t p0, val_t p1){
7679 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7680 val_t REGB0;
7681 val_t REGB1;
7682 val_t tmp;
7683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7684 fra.me.file = LOCATE_parser;
7685 fra.me.line = 1772;
7686 fra.me.meth = LOCATE_parser___ReduceAction27___action;
7687 fra.me.has_broke = 0;
7688 fra.me.REG_size = 9;
7689 fra.me.REG[0] = NIT_NULL;
7690 fra.me.REG[1] = NIT_NULL;
7691 fra.me.REG[2] = NIT_NULL;
7692 fra.me.REG[3] = NIT_NULL;
7693 fra.me.REG[4] = NIT_NULL;
7694 fra.me.REG[5] = NIT_NULL;
7695 fra.me.REG[6] = NIT_NULL;
7696 fra.me.REG[7] = NIT_NULL;
7697 fra.me.REG[8] = NIT_NULL;
7698 fra.me.REG[0] = p0;
7699 fra.me.REG[1] = p1;
7700 /* ./parser//parser.nit:1774 */
7701 fra.me.REG[2] = NIT_NULL;
7702 /* ./parser//parser.nit:1775 */
7703 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7704 /* ./parser//parser.nit:1776 */
7705 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7706 /* ./parser//parser.nit:1777 */
7707 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7708 /* ./parser//parser.nit:1778 */
7709 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7710 /* ./parser//parser.nit:1779 */
7711 fra.me.REG[7] = NEW_Array_array___Array___init();
7712 /* ./parser//parser.nit:1780 */
7713 fra.me.REG[8] = NEW_Array_array___Array___init();
7714 /* ./parser//parser.nit:1782 */
7715 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
7716 if (UNTAG_Bool(REGB0)) {
7717 } else {
7718 nit_abort("Assert failed", NULL, LOCATE_parser, 1782);
7719 }
7720 /* ./parser//parser.nit:1784 */
7721 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7722 if (UNTAG_Bool(REGB0)) {
7723 } else {
7724 nit_abort("Assert failed", NULL, LOCATE_parser, 1784);
7725 }
7726 /* ./parser//parser.nit:1785 */
7727 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
7728 fra.me.REG[7] = fra.me.REG[5];
7729 /* ./parser//parser.nit:1786 */
7730 fra.me.REG[5] = NEW_Array_array___Array___init();
7731 /* ./parser//parser.nit:1788 */
7732 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7733 if (UNTAG_Bool(REGB0)) {
7734 } else {
7735 nit_abort("Assert failed", NULL, LOCATE_parser, 1788);
7736 }
7737 /* ./parser//parser.nit:1789 */
7738 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
7739 fra.me.REG[5] = fra.me.REG[4];
7740 /* ./parser//parser.nit:1790 */
7741 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
7742 /* ./parser//parser.nit:1794 */
7743 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7744 if (UNTAG_Bool(REGB0)) {
7745 } else {
7746 nit_abort("Assert failed", NULL, LOCATE_parser, 1794);
7747 }
7748 /* ./parser//parser.nit:1795 */
7749 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7750 if (UNTAG_Bool(REGB0)) {
7751 } else {
7752 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7753 if (UNTAG_Bool(REGB1)) {
7754 REGB1 = TAG_Bool(false);
7755 REGB0 = REGB1;
7756 } else {
7757 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7758 REGB0 = REGB1;
7759 }
7760 }
7761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7762 if (UNTAG_Bool(REGB0)) {
7763 /* ./parser//parser.nit:1796 */
7764 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
7765 }
7766 /* ./parser//parser.nit:1798 */
7767 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7768 if (UNTAG_Bool(REGB0)) {
7769 } else {
7770 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7771 if (UNTAG_Bool(REGB1)) {
7772 REGB1 = TAG_Bool(false);
7773 REGB0 = REGB1;
7774 } else {
7775 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7776 REGB0 = REGB1;
7777 }
7778 }
7779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7780 if (UNTAG_Bool(REGB0)) {
7781 /* ./parser//parser.nit:1799 */
7782 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
7783 }
7784 /* ./parser//parser.nit:1801 */
7785 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
7786 /* ./parser//parser.nit:1806 */
7787 fra.me.REG[2] = fra.me.REG[8];
7788 /* ./parser//parser.nit:1807 */
7789 REGB0 = TAG_Bool(ATTR_parser___ReduceAction27____goto(fra.me.REG[0])!=NIT_NULL);
7790 if (UNTAG_Bool(REGB0)) {
7791 } else {
7792 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1807);
7793 }
7794 REGB0 = ATTR_parser___ReduceAction27____goto(fra.me.REG[0]);
7795 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7796 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7797 stack_frame_head = fra.me.prev;
7798 return;
7799 }
7800 void parser___ReduceAction27___init(val_t p0, val_t p1, int* init_table){
7801 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction27].i;
7802 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7803 val_t REGB0;
7804 val_t tmp;
7805 if (init_table[itpos31]) return;
7806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7807 fra.me.file = LOCATE_parser;
7808 fra.me.line = 1810;
7809 fra.me.meth = LOCATE_parser___ReduceAction27___init;
7810 fra.me.has_broke = 0;
7811 fra.me.REG_size = 2;
7812 fra.me.REG[0] = NIT_NULL;
7813 fra.me.REG[1] = NIT_NULL;
7814 fra.me.REG[0] = p0;
7815 REGB0 = p1;
7816 /* ./parser//parser.nit:1810 */
7817 fra.me.REG[1] = fra.me.REG[0];
7818 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7819 ATTR_parser___ReduceAction27____goto(fra.me.REG[1]) = REGB0;
7820 stack_frame_head = fra.me.prev;
7821 init_table[itpos31] = 1;
7822 return;
7823 }
7824 void parser___ReduceAction28___action(val_t p0, val_t p1){
7825 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7826 val_t REGB0;
7827 val_t REGB1;
7828 val_t tmp;
7829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7830 fra.me.file = LOCATE_parser;
7831 fra.me.line = 1814;
7832 fra.me.meth = LOCATE_parser___ReduceAction28___action;
7833 fra.me.has_broke = 0;
7834 fra.me.REG_size = 9;
7835 fra.me.REG[0] = NIT_NULL;
7836 fra.me.REG[1] = NIT_NULL;
7837 fra.me.REG[2] = NIT_NULL;
7838 fra.me.REG[3] = NIT_NULL;
7839 fra.me.REG[4] = NIT_NULL;
7840 fra.me.REG[5] = NIT_NULL;
7841 fra.me.REG[6] = NIT_NULL;
7842 fra.me.REG[7] = NIT_NULL;
7843 fra.me.REG[8] = NIT_NULL;
7844 fra.me.REG[0] = p0;
7845 fra.me.REG[1] = p1;
7846 /* ./parser//parser.nit:1816 */
7847 fra.me.REG[2] = NIT_NULL;
7848 /* ./parser//parser.nit:1817 */
7849 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7850 /* ./parser//parser.nit:1818 */
7851 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7852 /* ./parser//parser.nit:1819 */
7853 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7854 /* ./parser//parser.nit:1820 */
7855 fra.me.REG[6] = NEW_Array_array___Array___init();
7856 /* ./parser//parser.nit:1821 */
7857 fra.me.REG[7] = NEW_Array_array___Array___init();
7858 /* ./parser//parser.nit:1823 */
7859 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7860 if (UNTAG_Bool(REGB0)) {
7861 } else {
7862 nit_abort("Assert failed", NULL, LOCATE_parser, 1823);
7863 }
7864 /* ./parser//parser.nit:1824 */
7865 fra.me.REG[8] = NEW_Array_array___Array___init();
7866 /* ./parser//parser.nit:1826 */
7867 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7868 if (UNTAG_Bool(REGB0)) {
7869 } else {
7870 nit_abort("Assert failed", NULL, LOCATE_parser, 1826);
7871 }
7872 /* ./parser//parser.nit:1827 */
7873 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
7874 fra.me.REG[8] = fra.me.REG[4];
7875 /* ./parser//parser.nit:1828 */
7876 fra.me.REG[8] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
7877 /* ./parser//parser.nit:1832 */
7878 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7879 if (UNTAG_Bool(REGB0)) {
7880 } else {
7881 nit_abort("Assert failed", NULL, LOCATE_parser, 1832);
7882 }
7883 /* ./parser//parser.nit:1833 */
7884 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
7885 fra.me.REG[7] = fra.me.REG[5];
7886 /* ./parser//parser.nit:1834 */
7887 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7888 if (UNTAG_Bool(REGB0)) {
7889 } else {
7890 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7891 if (UNTAG_Bool(REGB1)) {
7892 REGB1 = TAG_Bool(false);
7893 REGB0 = REGB1;
7894 } else {
7895 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7896 REGB0 = REGB1;
7897 }
7898 }
7899 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7900 if (UNTAG_Bool(REGB0)) {
7901 /* ./parser//parser.nit:1835 */
7902 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
7903 }
7904 /* ./parser//parser.nit:1837 */
7905 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7906 if (UNTAG_Bool(REGB0)) {
7907 } else {
7908 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7909 if (UNTAG_Bool(REGB1)) {
7910 REGB1 = TAG_Bool(false);
7911 REGB0 = REGB1;
7912 } else {
7913 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7914 REGB0 = REGB1;
7915 }
7916 }
7917 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7918 if (UNTAG_Bool(REGB0)) {
7919 /* ./parser//parser.nit:1838 */
7920 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7921 }
7922 /* ./parser//parser.nit:1840 */
7923 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
7924 /* ./parser//parser.nit:1845 */
7925 fra.me.REG[2] = fra.me.REG[7];
7926 /* ./parser//parser.nit:1846 */
7927 REGB0 = TAG_Bool(ATTR_parser___ReduceAction28____goto(fra.me.REG[0])!=NIT_NULL);
7928 if (UNTAG_Bool(REGB0)) {
7929 } else {
7930 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1846);
7931 }
7932 REGB0 = ATTR_parser___ReduceAction28____goto(fra.me.REG[0]);
7933 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7934 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7935 stack_frame_head = fra.me.prev;
7936 return;
7937 }
7938 void parser___ReduceAction28___init(val_t p0, val_t p1, int* init_table){
7939 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction28].i;
7940 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7941 val_t REGB0;
7942 val_t tmp;
7943 if (init_table[itpos32]) return;
7944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7945 fra.me.file = LOCATE_parser;
7946 fra.me.line = 1849;
7947 fra.me.meth = LOCATE_parser___ReduceAction28___init;
7948 fra.me.has_broke = 0;
7949 fra.me.REG_size = 2;
7950 fra.me.REG[0] = NIT_NULL;
7951 fra.me.REG[1] = NIT_NULL;
7952 fra.me.REG[0] = p0;
7953 REGB0 = p1;
7954 /* ./parser//parser.nit:1849 */
7955 fra.me.REG[1] = fra.me.REG[0];
7956 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7957 ATTR_parser___ReduceAction28____goto(fra.me.REG[1]) = REGB0;
7958 stack_frame_head = fra.me.prev;
7959 init_table[itpos32] = 1;
7960 return;
7961 }
7962 void parser___ReduceAction29___action(val_t p0, val_t p1){
7963 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
7964 val_t REGB0;
7965 val_t REGB1;
7966 val_t tmp;
7967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7968 fra.me.file = LOCATE_parser;
7969 fra.me.line = 1853;
7970 fra.me.meth = LOCATE_parser___ReduceAction29___action;
7971 fra.me.has_broke = 0;
7972 fra.me.REG_size = 10;
7973 fra.me.REG[0] = NIT_NULL;
7974 fra.me.REG[1] = NIT_NULL;
7975 fra.me.REG[2] = NIT_NULL;
7976 fra.me.REG[3] = NIT_NULL;
7977 fra.me.REG[4] = NIT_NULL;
7978 fra.me.REG[5] = NIT_NULL;
7979 fra.me.REG[6] = NIT_NULL;
7980 fra.me.REG[7] = NIT_NULL;
7981 fra.me.REG[8] = NIT_NULL;
7982 fra.me.REG[9] = NIT_NULL;
7983 fra.me.REG[0] = p0;
7984 fra.me.REG[1] = p1;
7985 /* ./parser//parser.nit:1855 */
7986 fra.me.REG[2] = NIT_NULL;
7987 /* ./parser//parser.nit:1856 */
7988 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7989 /* ./parser//parser.nit:1857 */
7990 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7991 /* ./parser//parser.nit:1858 */
7992 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7993 /* ./parser//parser.nit:1859 */
7994 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7995 /* ./parser//parser.nit:1860 */
7996 fra.me.REG[7] = NEW_Array_array___Array___init();
7997 /* ./parser//parser.nit:1861 */
7998 fra.me.REG[8] = NEW_Array_array___Array___init();
7999 /* ./parser//parser.nit:1863 */
8000 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
8001 if (UNTAG_Bool(REGB0)) {
8002 } else {
8003 nit_abort("Assert failed", NULL, LOCATE_parser, 1863);
8004 }
8005 /* ./parser//parser.nit:1865 */
8006 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8007 if (UNTAG_Bool(REGB0)) {
8008 } else {
8009 nit_abort("Assert failed", NULL, LOCATE_parser, 1865);
8010 }
8011 /* ./parser//parser.nit:1866 */
8012 fra.me.REG[9] = NEW_Array_array___Array___init();
8013 /* ./parser//parser.nit:1868 */
8014 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8015 if (UNTAG_Bool(REGB0)) {
8016 } else {
8017 nit_abort("Assert failed", NULL, LOCATE_parser, 1868);
8018 }
8019 /* ./parser//parser.nit:1869 */
8020 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
8021 fra.me.REG[9] = fra.me.REG[4];
8022 /* ./parser//parser.nit:1870 */
8023 fra.me.REG[9] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[9]);
8024 /* ./parser//parser.nit:1874 */
8025 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
8026 if (UNTAG_Bool(REGB0)) {
8027 } else {
8028 nit_abort("Assert failed", NULL, LOCATE_parser, 1874);
8029 }
8030 /* ./parser//parser.nit:1875 */
8031 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
8032 fra.me.REG[8] = fra.me.REG[5];
8033 /* ./parser//parser.nit:1876 */
8034 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8035 if (UNTAG_Bool(REGB0)) {
8036 } else {
8037 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8038 if (UNTAG_Bool(REGB1)) {
8039 REGB1 = TAG_Bool(false);
8040 REGB0 = REGB1;
8041 } else {
8042 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
8043 REGB0 = REGB1;
8044 }
8045 }
8046 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8047 if (UNTAG_Bool(REGB0)) {
8048 /* ./parser//parser.nit:1877 */
8049 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
8050 }
8051 /* ./parser//parser.nit:1879 */
8052 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8053 if (UNTAG_Bool(REGB0)) {
8054 } else {
8055 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8056 if (UNTAG_Bool(REGB1)) {
8057 REGB1 = TAG_Bool(false);
8058 REGB0 = REGB1;
8059 } else {
8060 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8061 REGB0 = REGB1;
8062 }
8063 }
8064 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8065 if (UNTAG_Bool(REGB0)) {
8066 /* ./parser//parser.nit:1880 */
8067 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
8068 }
8069 /* ./parser//parser.nit:1882 */
8070 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
8071 /* ./parser//parser.nit:1887 */
8072 fra.me.REG[2] = fra.me.REG[8];
8073 /* ./parser//parser.nit:1888 */
8074 REGB0 = TAG_Bool(ATTR_parser___ReduceAction29____goto(fra.me.REG[0])!=NIT_NULL);
8075 if (UNTAG_Bool(REGB0)) {
8076 } else {
8077 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1888);
8078 }
8079 REGB0 = ATTR_parser___ReduceAction29____goto(fra.me.REG[0]);
8080 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8081 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8082 stack_frame_head = fra.me.prev;
8083 return;
8084 }
8085 void parser___ReduceAction29___init(val_t p0, val_t p1, int* init_table){
8086 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction29].i;
8087 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8088 val_t REGB0;
8089 val_t tmp;
8090 if (init_table[itpos33]) return;
8091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8092 fra.me.file = LOCATE_parser;
8093 fra.me.line = 1891;
8094 fra.me.meth = LOCATE_parser___ReduceAction29___init;
8095 fra.me.has_broke = 0;
8096 fra.me.REG_size = 2;
8097 fra.me.REG[0] = NIT_NULL;
8098 fra.me.REG[1] = NIT_NULL;
8099 fra.me.REG[0] = p0;
8100 REGB0 = p1;
8101 /* ./parser//parser.nit:1891 */
8102 fra.me.REG[1] = fra.me.REG[0];
8103 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8104 ATTR_parser___ReduceAction29____goto(fra.me.REG[1]) = REGB0;
8105 stack_frame_head = fra.me.prev;
8106 init_table[itpos33] = 1;
8107 return;
8108 }
8109 void parser___ReduceAction30___action(val_t p0, val_t p1){
8110 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
8111 val_t REGB0;
8112 val_t REGB1;
8113 val_t tmp;
8114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8115 fra.me.file = LOCATE_parser;
8116 fra.me.line = 1895;
8117 fra.me.meth = LOCATE_parser___ReduceAction30___action;
8118 fra.me.has_broke = 0;
8119 fra.me.REG_size = 9;
8120 fra.me.REG[0] = NIT_NULL;
8121 fra.me.REG[1] = NIT_NULL;
8122 fra.me.REG[2] = NIT_NULL;
8123 fra.me.REG[3] = NIT_NULL;
8124 fra.me.REG[4] = NIT_NULL;
8125 fra.me.REG[5] = NIT_NULL;
8126 fra.me.REG[6] = NIT_NULL;
8127 fra.me.REG[7] = NIT_NULL;
8128 fra.me.REG[8] = NIT_NULL;
8129 fra.me.REG[0] = p0;
8130 fra.me.REG[1] = p1;
8131 /* ./parser//parser.nit:1897 */
8132 fra.me.REG[2] = NIT_NULL;
8133 /* ./parser//parser.nit:1898 */
8134 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8135 /* ./parser//parser.nit:1899 */
8136 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8137 /* ./parser//parser.nit:1900 */
8138 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8139 /* ./parser//parser.nit:1901 */
8140 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8141 /* ./parser//parser.nit:1902 */
8142 fra.me.REG[7] = NEW_Array_array___Array___init();
8143 /* ./parser//parser.nit:1903 */
8144 fra.me.REG[8] = NEW_Array_array___Array___init();
8145 /* ./parser//parser.nit:1905 */
8146 REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8147 if (UNTAG_Bool(REGB0)) {
8148 } else {
8149 nit_abort("Assert failed", NULL, LOCATE_parser, 1905);
8150 }
8151 /* ./parser//parser.nit:1906 */
8152 fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6]);
8153 fra.me.REG[7] = fra.me.REG[6];
8154 /* ./parser//parser.nit:1908 */
8155 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8156 if (UNTAG_Bool(REGB0)) {
8157 } else {
8158 nit_abort("Assert failed", NULL, LOCATE_parser, 1908);
8159 }
8160 /* ./parser//parser.nit:1909 */
8161 fra.me.REG[6] = NEW_Array_array___Array___init();
8162 /* ./parser//parser.nit:1911 */
8163 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8164 if (UNTAG_Bool(REGB0)) {
8165 } else {
8166 nit_abort("Assert failed", NULL, LOCATE_parser, 1911);
8167 }
8168 /* ./parser//parser.nit:1912 */
8169 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
8170 fra.me.REG[6] = fra.me.REG[4];
8171 /* ./parser//parser.nit:1913 */
8172 fra.me.REG[6] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
8173 /* ./parser//parser.nit:1917 */
8174 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
8175 if (UNTAG_Bool(REGB0)) {
8176 } else {
8177 nit_abort("Assert failed", NULL, LOCATE_parser, 1917);
8178 }
8179 /* ./parser//parser.nit:1918 */
8180 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
8181 fra.me.REG[8] = fra.me.REG[5];
8182 /* ./parser//parser.nit:1919 */
8183 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8184 if (UNTAG_Bool(REGB0)) {
8185 } else {
8186 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8187 if (UNTAG_Bool(REGB1)) {
8188 REGB1 = TAG_Bool(false);
8189 REGB0 = REGB1;
8190 } else {
8191 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8192 REGB0 = REGB1;
8193 }
8194 }
8195 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8196 if (UNTAG_Bool(REGB0)) {
8197 /* ./parser//parser.nit:1920 */
8198 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
8199 }
8200 /* ./parser//parser.nit:1922 */
8201 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8202 if (UNTAG_Bool(REGB0)) {
8203 } else {
8204 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8205 if (UNTAG_Bool(REGB1)) {
8206 REGB1 = TAG_Bool(false);
8207 REGB0 = REGB1;
8208 } else {
8209 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8210 REGB0 = REGB1;
8211 }
8212 }
8213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8214 if (UNTAG_Bool(REGB0)) {
8215 /* ./parser//parser.nit:1923 */
8216 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
8217 }
8218 /* ./parser//parser.nit:1925 */
8219 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[7], fra.me.REG[8]);
8220 /* ./parser//parser.nit:1930 */
8221 fra.me.REG[2] = fra.me.REG[8];
8222 /* ./parser//parser.nit:1931 */
8223 REGB0 = TAG_Bool(ATTR_parser___ReduceAction30____goto(fra.me.REG[0])!=NIT_NULL);
8224 if (UNTAG_Bool(REGB0)) {
8225 } else {
8226 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1931);
8227 }
8228 REGB0 = ATTR_parser___ReduceAction30____goto(fra.me.REG[0]);
8229 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8230 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8231 stack_frame_head = fra.me.prev;
8232 return;
8233 }
8234 void parser___ReduceAction30___init(val_t p0, val_t p1, int* init_table){
8235 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction30].i;
8236 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8237 val_t REGB0;
8238 val_t tmp;
8239 if (init_table[itpos34]) return;
8240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8241 fra.me.file = LOCATE_parser;
8242 fra.me.line = 1934;
8243 fra.me.meth = LOCATE_parser___ReduceAction30___init;
8244 fra.me.has_broke = 0;
8245 fra.me.REG_size = 2;
8246 fra.me.REG[0] = NIT_NULL;
8247 fra.me.REG[1] = NIT_NULL;
8248 fra.me.REG[0] = p0;
8249 REGB0 = p1;
8250 /* ./parser//parser.nit:1934 */
8251 fra.me.REG[1] = fra.me.REG[0];
8252 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8253 ATTR_parser___ReduceAction30____goto(fra.me.REG[1]) = REGB0;
8254 stack_frame_head = fra.me.prev;
8255 init_table[itpos34] = 1;
8256 return;
8257 }
8258 void parser___ReduceAction31___action(val_t p0, val_t p1){
8259 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
8260 val_t REGB0;
8261 val_t REGB1;
8262 val_t tmp;
8263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8264 fra.me.file = LOCATE_parser;
8265 fra.me.line = 1938;
8266 fra.me.meth = LOCATE_parser___ReduceAction31___action;
8267 fra.me.has_broke = 0;
8268 fra.me.REG_size = 10;
8269 fra.me.REG[0] = NIT_NULL;
8270 fra.me.REG[1] = NIT_NULL;
8271 fra.me.REG[2] = NIT_NULL;
8272 fra.me.REG[3] = NIT_NULL;
8273 fra.me.REG[4] = NIT_NULL;
8274 fra.me.REG[5] = NIT_NULL;
8275 fra.me.REG[6] = NIT_NULL;
8276 fra.me.REG[7] = NIT_NULL;
8277 fra.me.REG[8] = NIT_NULL;
8278 fra.me.REG[9] = NIT_NULL;
8279 fra.me.REG[0] = p0;
8280 fra.me.REG[1] = p1;
8281 /* ./parser//parser.nit:1940 */
8282 fra.me.REG[2] = NIT_NULL;
8283 /* ./parser//parser.nit:1941 */
8284 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8285 /* ./parser//parser.nit:1942 */
8286 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8287 /* ./parser//parser.nit:1943 */
8288 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8289 /* ./parser//parser.nit:1944 */
8290 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8291 /* ./parser//parser.nit:1945 */
8292 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8293 /* ./parser//parser.nit:1946 */
8294 fra.me.REG[8] = NEW_Array_array___Array___init();
8295 /* ./parser//parser.nit:1947 */
8296 fra.me.REG[9] = NEW_Array_array___Array___init();
8297 /* ./parser//parser.nit:1949 */
8298 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
8299 if (UNTAG_Bool(REGB0)) {
8300 } else {
8301 nit_abort("Assert failed", NULL, LOCATE_parser, 1949);
8302 }
8303 /* ./parser//parser.nit:1951 */
8304 REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8305 if (UNTAG_Bool(REGB0)) {
8306 } else {
8307 nit_abort("Assert failed", NULL, LOCATE_parser, 1951);
8308 }
8309 /* ./parser//parser.nit:1952 */
8310 fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[6]);
8311 fra.me.REG[8] = fra.me.REG[6];
8312 /* ./parser//parser.nit:1954 */
8313 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8314 if (UNTAG_Bool(REGB0)) {
8315 } else {
8316 nit_abort("Assert failed", NULL, LOCATE_parser, 1954);
8317 }
8318 /* ./parser//parser.nit:1955 */
8319 fra.me.REG[6] = NEW_Array_array___Array___init();
8320 /* ./parser//parser.nit:1957 */
8321 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8322 if (UNTAG_Bool(REGB0)) {
8323 } else {
8324 nit_abort("Assert failed", NULL, LOCATE_parser, 1957);
8325 }
8326 /* ./parser//parser.nit:1958 */
8327 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
8328 fra.me.REG[6] = fra.me.REG[4];
8329 /* ./parser//parser.nit:1959 */
8330 fra.me.REG[6] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
8331 /* ./parser//parser.nit:1963 */
8332 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
8333 if (UNTAG_Bool(REGB0)) {
8334 } else {
8335 nit_abort("Assert failed", NULL, LOCATE_parser, 1963);
8336 }
8337 /* ./parser//parser.nit:1964 */
8338 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[5]);
8339 fra.me.REG[9] = fra.me.REG[5];
8340 /* ./parser//parser.nit:1965 */
8341 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8342 if (UNTAG_Bool(REGB0)) {
8343 } else {
8344 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8345 if (UNTAG_Bool(REGB1)) {
8346 REGB1 = TAG_Bool(false);
8347 REGB0 = REGB1;
8348 } else {
8349 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8350 REGB0 = REGB1;
8351 }
8352 }
8353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8354 if (UNTAG_Bool(REGB0)) {
8355 /* ./parser//parser.nit:1966 */
8356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[6]);
8357 }
8358 /* ./parser//parser.nit:1968 */
8359 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8360 if (UNTAG_Bool(REGB0)) {
8361 } else {
8362 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8363 if (UNTAG_Bool(REGB1)) {
8364 REGB1 = TAG_Bool(false);
8365 REGB0 = REGB1;
8366 } else {
8367 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8368 REGB0 = REGB1;
8369 }
8370 }
8371 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8372 if (UNTAG_Bool(REGB0)) {
8373 /* ./parser//parser.nit:1969 */
8374 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[3]);
8375 }
8376 /* ./parser//parser.nit:1971 */
8377 fra.me.REG[9] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[7], fra.me.REG[8], fra.me.REG[9]);
8378 /* ./parser//parser.nit:1976 */
8379 fra.me.REG[2] = fra.me.REG[9];
8380 /* ./parser//parser.nit:1977 */
8381 REGB0 = TAG_Bool(ATTR_parser___ReduceAction31____goto(fra.me.REG[0])!=NIT_NULL);
8382 if (UNTAG_Bool(REGB0)) {
8383 } else {
8384 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1977);
8385 }
8386 REGB0 = ATTR_parser___ReduceAction31____goto(fra.me.REG[0]);
8387 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8388 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8389 stack_frame_head = fra.me.prev;
8390 return;
8391 }
8392 void parser___ReduceAction31___init(val_t p0, val_t p1, int* init_table){
8393 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction31].i;
8394 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8395 val_t REGB0;
8396 val_t tmp;
8397 if (init_table[itpos35]) return;
8398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8399 fra.me.file = LOCATE_parser;
8400 fra.me.line = 1980;
8401 fra.me.meth = LOCATE_parser___ReduceAction31___init;
8402 fra.me.has_broke = 0;
8403 fra.me.REG_size = 2;
8404 fra.me.REG[0] = NIT_NULL;
8405 fra.me.REG[1] = NIT_NULL;
8406 fra.me.REG[0] = p0;
8407 REGB0 = p1;
8408 /* ./parser//parser.nit:1980 */
8409 fra.me.REG[1] = fra.me.REG[0];
8410 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8411 ATTR_parser___ReduceAction31____goto(fra.me.REG[1]) = REGB0;
8412 stack_frame_head = fra.me.prev;
8413 init_table[itpos35] = 1;
8414 return;
8415 }
8416 void parser___ReduceAction32___action(val_t p0, val_t p1){
8417 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
8418 val_t REGB0;
8419 val_t tmp;
8420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8421 fra.me.file = LOCATE_parser;
8422 fra.me.line = 1984;
8423 fra.me.meth = LOCATE_parser___ReduceAction32___action;
8424 fra.me.has_broke = 0;
8425 fra.me.REG_size = 6;
8426 fra.me.REG[0] = NIT_NULL;
8427 fra.me.REG[1] = NIT_NULL;
8428 fra.me.REG[2] = NIT_NULL;
8429 fra.me.REG[3] = NIT_NULL;
8430 fra.me.REG[4] = NIT_NULL;
8431 fra.me.REG[5] = NIT_NULL;
8432 fra.me.REG[0] = p0;
8433 fra.me.REG[1] = p1;
8434 /* ./parser//parser.nit:1986 */
8435 fra.me.REG[2] = NIT_NULL;
8436 /* ./parser//parser.nit:1987 */
8437 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8438 /* ./parser//parser.nit:1988 */
8439 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8440 /* ./parser//parser.nit:1989 */
8441 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8442 /* ./parser//parser.nit:1990 */
8443 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8444 /* ./parser//parser.nit:1991 */
8445 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8446 /* ./parser//parser.nit:1993 */
8447 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
8448 if (UNTAG_Bool(REGB0)) {
8449 } else {
8450 nit_abort("Assert failed", NULL, LOCATE_parser, 1993);
8451 }
8452 /* ./parser//parser.nit:1995 */
8453 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwmodule, ID_TKwmodule)) /*cast nullable TKwmodule*/;
8454 if (UNTAG_Bool(REGB0)) {
8455 } else {
8456 nit_abort("Assert failed", NULL, LOCATE_parser, 1995);
8457 }
8458 /* ./parser//parser.nit:1997 */
8459 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
8460 if (UNTAG_Bool(REGB0)) {
8461 } else {
8462 nit_abort("Assert failed", NULL, LOCATE_parser, 1997);
8463 }
8464 /* ./parser//parser.nit:1998 */
8465 fra.me.REG[3] = NEW_AModuledecl_parser_prod___AModuledecl___init_amoduledecl(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
8466 /* ./parser//parser.nit:2003 */
8467 fra.me.REG[2] = fra.me.REG[3];
8468 /* ./parser//parser.nit:2004 */
8469 REGB0 = TAG_Bool(ATTR_parser___ReduceAction32____goto(fra.me.REG[0])!=NIT_NULL);
8470 if (UNTAG_Bool(REGB0)) {
8471 } else {
8472 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2004);
8473 }
8474 REGB0 = ATTR_parser___ReduceAction32____goto(fra.me.REG[0]);
8475 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8476 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8477 stack_frame_head = fra.me.prev;
8478 return;
8479 }
8480 void parser___ReduceAction32___init(val_t p0, val_t p1, int* init_table){
8481 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction32].i;
8482 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8483 val_t REGB0;
8484 val_t tmp;
8485 if (init_table[itpos36]) return;
8486 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8487 fra.me.file = LOCATE_parser;
8488 fra.me.line = 2007;
8489 fra.me.meth = LOCATE_parser___ReduceAction32___init;
8490 fra.me.has_broke = 0;
8491 fra.me.REG_size = 2;
8492 fra.me.REG[0] = NIT_NULL;
8493 fra.me.REG[1] = NIT_NULL;
8494 fra.me.REG[0] = p0;
8495 REGB0 = p1;
8496 /* ./parser//parser.nit:2007 */
8497 fra.me.REG[1] = fra.me.REG[0];
8498 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8499 ATTR_parser___ReduceAction32____goto(fra.me.REG[1]) = REGB0;
8500 stack_frame_head = fra.me.prev;
8501 init_table[itpos36] = 1;
8502 return;
8503 }
8504 void parser___ReduceAction33___action(val_t p0, val_t p1){
8505 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8506 val_t REGB0;
8507 val_t tmp;
8508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8509 fra.me.file = LOCATE_parser;
8510 fra.me.line = 2011;
8511 fra.me.meth = LOCATE_parser___ReduceAction33___action;
8512 fra.me.has_broke = 0;
8513 fra.me.REG_size = 7;
8514 fra.me.REG[0] = NIT_NULL;
8515 fra.me.REG[1] = NIT_NULL;
8516 fra.me.REG[2] = NIT_NULL;
8517 fra.me.REG[3] = NIT_NULL;
8518 fra.me.REG[4] = NIT_NULL;
8519 fra.me.REG[5] = NIT_NULL;
8520 fra.me.REG[6] = NIT_NULL;
8521 fra.me.REG[0] = p0;
8522 fra.me.REG[1] = p1;
8523 /* ./parser//parser.nit:2013 */
8524 fra.me.REG[2] = NIT_NULL;
8525 /* ./parser//parser.nit:2014 */
8526 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8527 /* ./parser//parser.nit:2015 */
8528 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8529 /* ./parser//parser.nit:2016 */
8530 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8531 /* ./parser//parser.nit:2017 */
8532 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8533 /* ./parser//parser.nit:2018 */
8534 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8535 /* ./parser//parser.nit:2019 */
8536 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8537 /* ./parser//parser.nit:2021 */
8538 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
8539 if (UNTAG_Bool(REGB0)) {
8540 } else {
8541 nit_abort("Assert failed", NULL, LOCATE_parser, 2021);
8542 }
8543 /* ./parser//parser.nit:2023 */
8544 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwimport, ID_TKwimport)) /*cast nullable TKwimport*/;
8545 if (UNTAG_Bool(REGB0)) {
8546 } else {
8547 nit_abort("Assert failed", NULL, LOCATE_parser, 2023);
8548 }
8549 /* ./parser//parser.nit:2025 */
8550 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
8551 if (UNTAG_Bool(REGB0)) {
8552 } else {
8553 nit_abort("Assert failed", NULL, LOCATE_parser, 2025);
8554 }
8555 /* ./parser//parser.nit:2026 */
8556 fra.me.REG[3] = NEW_AStdImport_parser_prod___AStdImport___init_astdimport(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
8557 /* ./parser//parser.nit:2031 */
8558 fra.me.REG[2] = fra.me.REG[3];
8559 /* ./parser//parser.nit:2032 */
8560 REGB0 = TAG_Bool(ATTR_parser___ReduceAction33____goto(fra.me.REG[0])!=NIT_NULL);
8561 if (UNTAG_Bool(REGB0)) {
8562 } else {
8563 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2032);
8564 }
8565 REGB0 = ATTR_parser___ReduceAction33____goto(fra.me.REG[0]);
8566 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8567 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8568 stack_frame_head = fra.me.prev;
8569 return;
8570 }
8571 void parser___ReduceAction33___init(val_t p0, val_t p1, int* init_table){
8572 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction33].i;
8573 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8574 val_t REGB0;
8575 val_t tmp;
8576 if (init_table[itpos37]) return;
8577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8578 fra.me.file = LOCATE_parser;
8579 fra.me.line = 2035;
8580 fra.me.meth = LOCATE_parser___ReduceAction33___init;
8581 fra.me.has_broke = 0;
8582 fra.me.REG_size = 2;
8583 fra.me.REG[0] = NIT_NULL;
8584 fra.me.REG[1] = NIT_NULL;
8585 fra.me.REG[0] = p0;
8586 REGB0 = p1;
8587 /* ./parser//parser.nit:2035 */
8588 fra.me.REG[1] = fra.me.REG[0];
8589 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8590 ATTR_parser___ReduceAction33____goto(fra.me.REG[1]) = REGB0;
8591 stack_frame_head = fra.me.prev;
8592 init_table[itpos37] = 1;
8593 return;
8594 }
8595 void parser___ReduceAction34___action(val_t p0, val_t p1){
8596 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8597 val_t REGB0;
8598 val_t tmp;
8599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8600 fra.me.file = LOCATE_parser;
8601 fra.me.line = 2039;
8602 fra.me.meth = LOCATE_parser___ReduceAction34___action;
8603 fra.me.has_broke = 0;
8604 fra.me.REG_size = 7;
8605 fra.me.REG[0] = NIT_NULL;
8606 fra.me.REG[1] = NIT_NULL;
8607 fra.me.REG[2] = NIT_NULL;
8608 fra.me.REG[3] = NIT_NULL;
8609 fra.me.REG[4] = NIT_NULL;
8610 fra.me.REG[5] = NIT_NULL;
8611 fra.me.REG[6] = NIT_NULL;
8612 fra.me.REG[0] = p0;
8613 fra.me.REG[1] = p1;
8614 /* ./parser//parser.nit:2041 */
8615 fra.me.REG[2] = NIT_NULL;
8616 /* ./parser//parser.nit:2042 */
8617 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8618 /* ./parser//parser.nit:2043 */
8619 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8620 /* ./parser//parser.nit:2044 */
8621 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8622 /* ./parser//parser.nit:2045 */
8623 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8624 /* ./parser//parser.nit:2046 */
8625 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8626 /* ./parser//parser.nit:2047 */
8627 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8628 /* ./parser//parser.nit:2049 */
8629 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
8630 if (UNTAG_Bool(REGB0)) {
8631 } else {
8632 nit_abort("Assert failed", NULL, LOCATE_parser, 2049);
8633 }
8634 /* ./parser//parser.nit:2051 */
8635 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwimport, ID_TKwimport)) /*cast nullable TKwimport*/;
8636 if (UNTAG_Bool(REGB0)) {
8637 } else {
8638 nit_abort("Assert failed", NULL, LOCATE_parser, 2051);
8639 }
8640 /* ./parser//parser.nit:2053 */
8641 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwend, ID_TKwend)) /*cast nullable TKwend*/;
8642 if (UNTAG_Bool(REGB0)) {
8643 } else {
8644 nit_abort("Assert failed", NULL, LOCATE_parser, 2053);
8645 }
8646 /* ./parser//parser.nit:2054 */
8647 fra.me.REG[3] = NEW_ANoImport_parser_prod___ANoImport___init_anoimport(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
8648 /* ./parser//parser.nit:2059 */
8649 fra.me.REG[2] = fra.me.REG[3];
8650 /* ./parser//parser.nit:2060 */
8651 REGB0 = TAG_Bool(ATTR_parser___ReduceAction34____goto(fra.me.REG[0])!=NIT_NULL);
8652 if (UNTAG_Bool(REGB0)) {
8653 } else {
8654 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2060);
8655 }
8656 REGB0 = ATTR_parser___ReduceAction34____goto(fra.me.REG[0]);
8657 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8658 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8659 stack_frame_head = fra.me.prev;
8660 return;
8661 }
8662 void parser___ReduceAction34___init(val_t p0, val_t p1, int* init_table){
8663 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction34].i;
8664 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8665 val_t REGB0;
8666 val_t tmp;
8667 if (init_table[itpos38]) return;
8668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8669 fra.me.file = LOCATE_parser;
8670 fra.me.line = 2063;
8671 fra.me.meth = LOCATE_parser___ReduceAction34___init;
8672 fra.me.has_broke = 0;
8673 fra.me.REG_size = 2;
8674 fra.me.REG[0] = NIT_NULL;
8675 fra.me.REG[1] = NIT_NULL;
8676 fra.me.REG[0] = p0;
8677 REGB0 = p1;
8678 /* ./parser//parser.nit:2063 */
8679 fra.me.REG[1] = fra.me.REG[0];
8680 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8681 ATTR_parser___ReduceAction34____goto(fra.me.REG[1]) = REGB0;
8682 stack_frame_head = fra.me.prev;
8683 init_table[itpos38] = 1;
8684 return;
8685 }
8686 void parser___ReduceAction35___action(val_t p0, val_t p1){
8687 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8688 val_t REGB0;
8689 val_t REGB1;
8690 val_t tmp;
8691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8692 fra.me.file = LOCATE_parser;
8693 fra.me.line = 2067;
8694 fra.me.meth = LOCATE_parser___ReduceAction35___action;
8695 fra.me.has_broke = 0;
8696 fra.me.REG_size = 5;
8697 fra.me.REG[0] = NIT_NULL;
8698 fra.me.REG[1] = NIT_NULL;
8699 fra.me.REG[2] = NIT_NULL;
8700 fra.me.REG[3] = NIT_NULL;
8701 fra.me.REG[4] = NIT_NULL;
8702 fra.me.REG[0] = p0;
8703 fra.me.REG[1] = p1;
8704 /* ./parser//parser.nit:2069 */
8705 fra.me.REG[2] = NIT_NULL;
8706 /* ./parser//parser.nit:2070 */
8707 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8708 /* ./parser//parser.nit:2071 */
8709 fra.me.REG[4] = NEW_Array_array___Array___init();
8710 /* ./parser//parser.nit:2073 */
8711 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_APropdef, ID_APropdef)) /*cast nullable APropdef*/;
8712 if (UNTAG_Bool(REGB0)) {
8713 } else {
8714 nit_abort("Assert failed", NULL, LOCATE_parser, 2073);
8715 }
8716 /* ./parser//parser.nit:2074 */
8717 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8718 if (UNTAG_Bool(REGB0)) {
8719 } else {
8720 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8721 if (UNTAG_Bool(REGB1)) {
8722 REGB1 = TAG_Bool(false);
8723 REGB0 = REGB1;
8724 } else {
8725 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8726 REGB0 = REGB1;
8727 }
8728 }
8729 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8730 if (UNTAG_Bool(REGB0)) {
8731 /* ./parser//parser.nit:2075 */
8732 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8733 }
8734 /* ./parser//parser.nit:2077 */
8735 fra.me.REG[4] = NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef(fra.me.REG[4]);
8736 /* ./parser//parser.nit:2080 */
8737 fra.me.REG[2] = fra.me.REG[4];
8738 /* ./parser//parser.nit:2081 */
8739 REGB0 = TAG_Bool(ATTR_parser___ReduceAction35____goto(fra.me.REG[0])!=NIT_NULL);
8740 if (UNTAG_Bool(REGB0)) {
8741 } else {
8742 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2081);
8743 }
8744 REGB0 = ATTR_parser___ReduceAction35____goto(fra.me.REG[0]);
8745 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8746 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8747 stack_frame_head = fra.me.prev;
8748 return;
8749 }
8750 void parser___ReduceAction35___init(val_t p0, val_t p1, int* init_table){
8751 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction35].i;
8752 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8753 val_t REGB0;
8754 val_t tmp;
8755 if (init_table[itpos39]) return;
8756 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8757 fra.me.file = LOCATE_parser;
8758 fra.me.line = 2084;
8759 fra.me.meth = LOCATE_parser___ReduceAction35___init;
8760 fra.me.has_broke = 0;
8761 fra.me.REG_size = 2;
8762 fra.me.REG[0] = NIT_NULL;
8763 fra.me.REG[1] = NIT_NULL;
8764 fra.me.REG[0] = p0;
8765 REGB0 = p1;
8766 /* ./parser//parser.nit:2084 */
8767 fra.me.REG[1] = fra.me.REG[0];
8768 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8769 ATTR_parser___ReduceAction35____goto(fra.me.REG[1]) = REGB0;
8770 stack_frame_head = fra.me.prev;
8771 init_table[itpos39] = 1;
8772 return;
8773 }
8774 void parser___ReduceAction36___action(val_t p0, val_t p1){
8775 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8776 val_t REGB0;
8777 val_t tmp;
8778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8779 fra.me.file = LOCATE_parser;
8780 fra.me.line = 2088;
8781 fra.me.meth = LOCATE_parser___ReduceAction36___action;
8782 fra.me.has_broke = 0;
8783 fra.me.REG_size = 4;
8784 fra.me.REG[0] = NIT_NULL;
8785 fra.me.REG[1] = NIT_NULL;
8786 fra.me.REG[2] = NIT_NULL;
8787 fra.me.REG[3] = NIT_NULL;
8788 fra.me.REG[0] = p0;
8789 fra.me.REG[1] = p1;
8790 /* ./parser//parser.nit:2090 */
8791 fra.me.REG[2] = NIT_NULL;
8792 /* ./parser//parser.nit:2091 */
8793 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8794 /* ./parser//parser.nit:2092 */
8795 fra.me.REG[2] = NIT_NULL;
8796 /* ./parser//parser.nit:2093 */
8797 REGB0 = TAG_Bool(ATTR_parser___ReduceAction36____goto(fra.me.REG[0])!=NIT_NULL);
8798 if (UNTAG_Bool(REGB0)) {
8799 } else {
8800 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2093);
8801 }
8802 REGB0 = ATTR_parser___ReduceAction36____goto(fra.me.REG[0]);
8803 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8804 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8805 stack_frame_head = fra.me.prev;
8806 return;
8807 }
8808 void parser___ReduceAction36___init(val_t p0, val_t p1, int* init_table){
8809 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction36].i;
8810 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8811 val_t REGB0;
8812 val_t tmp;
8813 if (init_table[itpos40]) return;
8814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8815 fra.me.file = LOCATE_parser;
8816 fra.me.line = 2096;
8817 fra.me.meth = LOCATE_parser___ReduceAction36___init;
8818 fra.me.has_broke = 0;
8819 fra.me.REG_size = 2;
8820 fra.me.REG[0] = NIT_NULL;
8821 fra.me.REG[1] = NIT_NULL;
8822 fra.me.REG[0] = p0;
8823 REGB0 = p1;
8824 /* ./parser//parser.nit:2096 */
8825 fra.me.REG[1] = fra.me.REG[0];
8826 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8827 ATTR_parser___ReduceAction36____goto(fra.me.REG[1]) = REGB0;
8828 stack_frame_head = fra.me.prev;
8829 init_table[itpos40] = 1;
8830 return;
8831 }
8832 void parser___ReduceAction37___action(val_t p0, val_t p1){
8833 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8834 val_t REGB0;
8835 val_t tmp;
8836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8837 fra.me.file = LOCATE_parser;
8838 fra.me.line = 2100;
8839 fra.me.meth = LOCATE_parser___ReduceAction37___action;
8840 fra.me.has_broke = 0;
8841 fra.me.REG_size = 5;
8842 fra.me.REG[0] = NIT_NULL;
8843 fra.me.REG[1] = NIT_NULL;
8844 fra.me.REG[2] = NIT_NULL;
8845 fra.me.REG[3] = NIT_NULL;
8846 fra.me.REG[4] = NIT_NULL;
8847 fra.me.REG[0] = p0;
8848 fra.me.REG[1] = p1;
8849 /* ./parser//parser.nit:2102 */
8850 fra.me.REG[2] = NIT_NULL;
8851 /* ./parser//parser.nit:2103 */
8852 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8853 /* ./parser//parser.nit:2104 */
8854 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8855 /* ./parser//parser.nit:2106 */
8856 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
8857 if (UNTAG_Bool(REGB0)) {
8858 } else {
8859 nit_abort("Assert failed", NULL, LOCATE_parser, 2106);
8860 }
8861 /* ./parser//parser.nit:2107 */
8862 fra.me.REG[3] = NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef(NIT_NULL, fra.me.REG[3]);
8863 /* ./parser//parser.nit:2111 */
8864 fra.me.REG[2] = fra.me.REG[3];
8865 /* ./parser//parser.nit:2112 */
8866 REGB0 = TAG_Bool(ATTR_parser___ReduceAction37____goto(fra.me.REG[0])!=NIT_NULL);
8867 if (UNTAG_Bool(REGB0)) {
8868 } else {
8869 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2112);
8870 }
8871 REGB0 = ATTR_parser___ReduceAction37____goto(fra.me.REG[0]);
8872 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8873 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8874 stack_frame_head = fra.me.prev;
8875 return;
8876 }
8877 void parser___ReduceAction37___init(val_t p0, val_t p1, int* init_table){
8878 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction37].i;
8879 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8880 val_t REGB0;
8881 val_t tmp;
8882 if (init_table[itpos41]) return;
8883 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8884 fra.me.file = LOCATE_parser;
8885 fra.me.line = 2115;
8886 fra.me.meth = LOCATE_parser___ReduceAction37___init;
8887 fra.me.has_broke = 0;
8888 fra.me.REG_size = 2;
8889 fra.me.REG[0] = NIT_NULL;
8890 fra.me.REG[1] = NIT_NULL;
8891 fra.me.REG[0] = p0;
8892 REGB0 = p1;
8893 /* ./parser//parser.nit:2115 */
8894 fra.me.REG[1] = fra.me.REG[0];
8895 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8896 ATTR_parser___ReduceAction37____goto(fra.me.REG[1]) = REGB0;
8897 stack_frame_head = fra.me.prev;
8898 init_table[itpos41] = 1;
8899 return;
8900 }
8901 void parser___ReduceAction39___action(val_t p0, val_t p1){
8902 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
8903 val_t REGB0;
8904 val_t tmp;
8905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8906 fra.me.file = LOCATE_parser;
8907 fra.me.line = 2119;
8908 fra.me.meth = LOCATE_parser___ReduceAction39___action;
8909 fra.me.has_broke = 0;
8910 fra.me.REG_size = 10;
8911 fra.me.REG[0] = NIT_NULL;
8912 fra.me.REG[1] = NIT_NULL;
8913 fra.me.REG[2] = NIT_NULL;
8914 fra.me.REG[3] = NIT_NULL;
8915 fra.me.REG[4] = NIT_NULL;
8916 fra.me.REG[5] = NIT_NULL;
8917 fra.me.REG[6] = NIT_NULL;
8918 fra.me.REG[7] = NIT_NULL;
8919 fra.me.REG[8] = NIT_NULL;
8920 fra.me.REG[9] = NIT_NULL;
8921 fra.me.REG[0] = p0;
8922 fra.me.REG[1] = p1;
8923 /* ./parser//parser.nit:2121 */
8924 fra.me.REG[2] = NIT_NULL;
8925 /* ./parser//parser.nit:2122 */
8926 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8927 /* ./parser//parser.nit:2123 */
8928 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8929 /* ./parser//parser.nit:2124 */
8930 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8931 /* ./parser//parser.nit:2125 */
8932 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8933 /* ./parser//parser.nit:2126 */
8934 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8935 /* ./parser//parser.nit:2127 */
8936 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8937 /* ./parser//parser.nit:2128 */
8938 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8939 /* ./parser//parser.nit:2129 */
8940 fra.me.REG[7] = NEW_Array_array___Array___init();
8941 /* ./parser//parser.nit:2130 */
8942 fra.me.REG[8] = NEW_Array_array___Array___init();
8943 /* ./parser//parser.nit:2131 */
8944 fra.me.REG[9] = NEW_Array_array___Array___init();
8945 /* ./parser//parser.nit:2133 */
8946 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
8947 if (UNTAG_Bool(REGB0)) {
8948 } else {
8949 nit_abort("Assert failed", NULL, LOCATE_parser, 2133);
8950 }
8951 /* ./parser//parser.nit:2135 */
8952 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
8953 if (UNTAG_Bool(REGB0)) {
8954 } else {
8955 nit_abort("Assert failed", NULL, LOCATE_parser, 2135);
8956 }
8957 /* ./parser//parser.nit:2137 */
8958 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
8959 if (UNTAG_Bool(REGB0)) {
8960 } else {
8961 nit_abort("Assert failed", NULL, LOCATE_parser, 2137);
8962 }
8963 /* ./parser//parser.nit:2139 */
8964 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
8965 if (UNTAG_Bool(REGB0)) {
8966 } else {
8967 nit_abort("Assert failed", NULL, LOCATE_parser, 2139);
8968 }
8969 /* ./parser//parser.nit:2140 */
8970 fra.me.REG[9] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], fra.me.REG[7], fra.me.REG[8], fra.me.REG[9]);
8971 /* ./parser//parser.nit:2150 */
8972 fra.me.REG[2] = fra.me.REG[9];
8973 /* ./parser//parser.nit:2151 */
8974 REGB0 = TAG_Bool(ATTR_parser___ReduceAction39____goto(fra.me.REG[0])!=NIT_NULL);
8975 if (UNTAG_Bool(REGB0)) {
8976 } else {
8977 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2151);
8978 }
8979 REGB0 = ATTR_parser___ReduceAction39____goto(fra.me.REG[0]);
8980 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8981 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8982 stack_frame_head = fra.me.prev;
8983 return;
8984 }
8985 void parser___ReduceAction39___init(val_t p0, val_t p1, int* init_table){
8986 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction39].i;
8987 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8988 val_t REGB0;
8989 val_t tmp;
8990 if (init_table[itpos42]) return;
8991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8992 fra.me.file = LOCATE_parser;
8993 fra.me.line = 2154;
8994 fra.me.meth = LOCATE_parser___ReduceAction39___init;
8995 fra.me.has_broke = 0;
8996 fra.me.REG_size = 2;
8997 fra.me.REG[0] = NIT_NULL;
8998 fra.me.REG[1] = NIT_NULL;
8999 fra.me.REG[0] = p0;
9000 REGB0 = p1;
9001 /* ./parser//parser.nit:2154 */
9002 fra.me.REG[1] = fra.me.REG[0];
9003 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9004 ATTR_parser___ReduceAction39____goto(fra.me.REG[1]) = REGB0;
9005 stack_frame_head = fra.me.prev;
9006 init_table[itpos42] = 1;
9007 return;
9008 }
9009 void parser___ReduceAction40___action(val_t p0, val_t p1){
9010 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9011 val_t REGB0;
9012 val_t tmp;
9013 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9014 fra.me.file = LOCATE_parser;
9015 fra.me.line = 2158;
9016 fra.me.meth = LOCATE_parser___ReduceAction40___action;
9017 fra.me.has_broke = 0;
9018 fra.me.REG_size = 11;
9019 fra.me.REG[0] = NIT_NULL;
9020 fra.me.REG[1] = NIT_NULL;
9021 fra.me.REG[2] = NIT_NULL;
9022 fra.me.REG[3] = NIT_NULL;
9023 fra.me.REG[4] = NIT_NULL;
9024 fra.me.REG[5] = NIT_NULL;
9025 fra.me.REG[6] = NIT_NULL;
9026 fra.me.REG[7] = NIT_NULL;
9027 fra.me.REG[8] = NIT_NULL;
9028 fra.me.REG[9] = NIT_NULL;
9029 fra.me.REG[10] = NIT_NULL;
9030 fra.me.REG[0] = p0;
9031 fra.me.REG[1] = p1;
9032 /* ./parser//parser.nit:2160 */
9033 fra.me.REG[2] = NIT_NULL;
9034 /* ./parser//parser.nit:2161 */
9035 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9036 /* ./parser//parser.nit:2162 */
9037 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9038 /* ./parser//parser.nit:2163 */
9039 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9040 /* ./parser//parser.nit:2164 */
9041 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9042 /* ./parser//parser.nit:2165 */
9043 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9044 /* ./parser//parser.nit:2166 */
9045 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9046 /* ./parser//parser.nit:2167 */
9047 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9048 /* ./parser//parser.nit:2168 */
9049 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9050 /* ./parser//parser.nit:2169 */
9051 fra.me.REG[8] = NEW_Array_array___Array___init();
9052 /* ./parser//parser.nit:2170 */
9053 fra.me.REG[9] = NEW_Array_array___Array___init();
9054 /* ./parser//parser.nit:2171 */
9055 fra.me.REG[10] = NEW_Array_array___Array___init();
9056 /* ./parser//parser.nit:2173 */
9057 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9058 if (UNTAG_Bool(REGB0)) {
9059 } else {
9060 nit_abort("Assert failed", NULL, LOCATE_parser, 2173);
9061 }
9062 /* ./parser//parser.nit:2175 */
9063 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9064 if (UNTAG_Bool(REGB0)) {
9065 } else {
9066 nit_abort("Assert failed", NULL, LOCATE_parser, 2175);
9067 }
9068 /* ./parser//parser.nit:2177 */
9069 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9070 if (UNTAG_Bool(REGB0)) {
9071 } else {
9072 nit_abort("Assert failed", NULL, LOCATE_parser, 2177);
9073 }
9074 /* ./parser//parser.nit:2179 */
9075 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9076 if (UNTAG_Bool(REGB0)) {
9077 } else {
9078 nit_abort("Assert failed", NULL, LOCATE_parser, 2179);
9079 }
9080 /* ./parser//parser.nit:2181 */
9081 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9082 if (UNTAG_Bool(REGB0)) {
9083 } else {
9084 nit_abort("Assert failed", NULL, LOCATE_parser, 2181);
9085 }
9086 /* ./parser//parser.nit:2182 */
9087 fra.me.REG[10] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
9088 /* ./parser//parser.nit:2192 */
9089 fra.me.REG[2] = fra.me.REG[10];
9090 /* ./parser//parser.nit:2193 */
9091 REGB0 = TAG_Bool(ATTR_parser___ReduceAction40____goto(fra.me.REG[0])!=NIT_NULL);
9092 if (UNTAG_Bool(REGB0)) {
9093 } else {
9094 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2193);
9095 }
9096 REGB0 = ATTR_parser___ReduceAction40____goto(fra.me.REG[0]);
9097 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9098 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9099 stack_frame_head = fra.me.prev;
9100 return;
9101 }
9102 void parser___ReduceAction40___init(val_t p0, val_t p1, int* init_table){
9103 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction40].i;
9104 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9105 val_t REGB0;
9106 val_t tmp;
9107 if (init_table[itpos43]) return;
9108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9109 fra.me.file = LOCATE_parser;
9110 fra.me.line = 2196;
9111 fra.me.meth = LOCATE_parser___ReduceAction40___init;
9112 fra.me.has_broke = 0;
9113 fra.me.REG_size = 2;
9114 fra.me.REG[0] = NIT_NULL;
9115 fra.me.REG[1] = NIT_NULL;
9116 fra.me.REG[0] = p0;
9117 REGB0 = p1;
9118 /* ./parser//parser.nit:2196 */
9119 fra.me.REG[1] = fra.me.REG[0];
9120 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9121 ATTR_parser___ReduceAction40____goto(fra.me.REG[1]) = REGB0;
9122 stack_frame_head = fra.me.prev;
9123 init_table[itpos43] = 1;
9124 return;
9125 }
9126 void parser___ReduceAction41___action(val_t p0, val_t p1){
9127 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9128 val_t REGB0;
9129 val_t tmp;
9130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9131 fra.me.file = LOCATE_parser;
9132 fra.me.line = 2200;
9133 fra.me.meth = LOCATE_parser___ReduceAction41___action;
9134 fra.me.has_broke = 0;
9135 fra.me.REG_size = 11;
9136 fra.me.REG[0] = NIT_NULL;
9137 fra.me.REG[1] = NIT_NULL;
9138 fra.me.REG[2] = NIT_NULL;
9139 fra.me.REG[3] = NIT_NULL;
9140 fra.me.REG[4] = NIT_NULL;
9141 fra.me.REG[5] = NIT_NULL;
9142 fra.me.REG[6] = NIT_NULL;
9143 fra.me.REG[7] = NIT_NULL;
9144 fra.me.REG[8] = NIT_NULL;
9145 fra.me.REG[9] = NIT_NULL;
9146 fra.me.REG[10] = NIT_NULL;
9147 fra.me.REG[0] = p0;
9148 fra.me.REG[1] = p1;
9149 /* ./parser//parser.nit:2202 */
9150 fra.me.REG[2] = NIT_NULL;
9151 /* ./parser//parser.nit:2203 */
9152 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9153 /* ./parser//parser.nit:2204 */
9154 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9155 /* ./parser//parser.nit:2205 */
9156 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9157 /* ./parser//parser.nit:2206 */
9158 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9159 /* ./parser//parser.nit:2207 */
9160 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9161 /* ./parser//parser.nit:2208 */
9162 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9163 /* ./parser//parser.nit:2209 */
9164 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9165 /* ./parser//parser.nit:2210 */
9166 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9167 /* ./parser//parser.nit:2211 */
9168 fra.me.REG[8] = NEW_Array_array___Array___init();
9169 /* ./parser//parser.nit:2212 */
9170 fra.me.REG[9] = NEW_Array_array___Array___init();
9171 /* ./parser//parser.nit:2213 */
9172 fra.me.REG[10] = NEW_Array_array___Array___init();
9173 /* ./parser//parser.nit:2215 */
9174 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9175 if (UNTAG_Bool(REGB0)) {
9176 } else {
9177 nit_abort("Assert failed", NULL, LOCATE_parser, 2215);
9178 }
9179 /* ./parser//parser.nit:2217 */
9180 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9181 if (UNTAG_Bool(REGB0)) {
9182 } else {
9183 nit_abort("Assert failed", NULL, LOCATE_parser, 2217);
9184 }
9185 /* ./parser//parser.nit:2219 */
9186 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9187 if (UNTAG_Bool(REGB0)) {
9188 } else {
9189 nit_abort("Assert failed", NULL, LOCATE_parser, 2219);
9190 }
9191 /* ./parser//parser.nit:2221 */
9192 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9193 if (UNTAG_Bool(REGB0)) {
9194 } else {
9195 nit_abort("Assert failed", NULL, LOCATE_parser, 2221);
9196 }
9197 /* ./parser//parser.nit:2223 */
9198 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9199 if (UNTAG_Bool(REGB0)) {
9200 } else {
9201 nit_abort("Assert failed", NULL, LOCATE_parser, 2223);
9202 }
9203 /* ./parser//parser.nit:2224 */
9204 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
9205 fra.me.REG[8] = fra.me.REG[3];
9206 /* ./parser//parser.nit:2225 */
9207 fra.me.REG[10] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
9208 /* ./parser//parser.nit:2235 */
9209 fra.me.REG[2] = fra.me.REG[10];
9210 /* ./parser//parser.nit:2236 */
9211 REGB0 = TAG_Bool(ATTR_parser___ReduceAction41____goto(fra.me.REG[0])!=NIT_NULL);
9212 if (UNTAG_Bool(REGB0)) {
9213 } else {
9214 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2236);
9215 }
9216 REGB0 = ATTR_parser___ReduceAction41____goto(fra.me.REG[0]);
9217 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9218 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9219 stack_frame_head = fra.me.prev;
9220 return;
9221 }
9222 void parser___ReduceAction41___init(val_t p0, val_t p1, int* init_table){
9223 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction41].i;
9224 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9225 val_t REGB0;
9226 val_t tmp;
9227 if (init_table[itpos44]) return;
9228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9229 fra.me.file = LOCATE_parser;
9230 fra.me.line = 2239;
9231 fra.me.meth = LOCATE_parser___ReduceAction41___init;
9232 fra.me.has_broke = 0;
9233 fra.me.REG_size = 2;
9234 fra.me.REG[0] = NIT_NULL;
9235 fra.me.REG[1] = NIT_NULL;
9236 fra.me.REG[0] = p0;
9237 REGB0 = p1;
9238 /* ./parser//parser.nit:2239 */
9239 fra.me.REG[1] = fra.me.REG[0];
9240 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9241 ATTR_parser___ReduceAction41____goto(fra.me.REG[1]) = REGB0;
9242 stack_frame_head = fra.me.prev;
9243 init_table[itpos44] = 1;
9244 return;
9245 }
9246 void parser___ReduceAction42___action(val_t p0, val_t p1){
9247 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
9248 val_t REGB0;
9249 val_t tmp;
9250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9251 fra.me.file = LOCATE_parser;
9252 fra.me.line = 2243;
9253 fra.me.meth = LOCATE_parser___ReduceAction42___action;
9254 fra.me.has_broke = 0;
9255 fra.me.REG_size = 12;
9256 fra.me.REG[0] = NIT_NULL;
9257 fra.me.REG[1] = NIT_NULL;
9258 fra.me.REG[2] = NIT_NULL;
9259 fra.me.REG[3] = NIT_NULL;
9260 fra.me.REG[4] = NIT_NULL;
9261 fra.me.REG[5] = NIT_NULL;
9262 fra.me.REG[6] = NIT_NULL;
9263 fra.me.REG[7] = NIT_NULL;
9264 fra.me.REG[8] = NIT_NULL;
9265 fra.me.REG[9] = NIT_NULL;
9266 fra.me.REG[10] = NIT_NULL;
9267 fra.me.REG[11] = NIT_NULL;
9268 fra.me.REG[0] = p0;
9269 fra.me.REG[1] = p1;
9270 /* ./parser//parser.nit:2245 */
9271 fra.me.REG[2] = NIT_NULL;
9272 /* ./parser//parser.nit:2246 */
9273 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9274 /* ./parser//parser.nit:2247 */
9275 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9276 /* ./parser//parser.nit:2248 */
9277 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9278 /* ./parser//parser.nit:2249 */
9279 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9280 /* ./parser//parser.nit:2250 */
9281 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9282 /* ./parser//parser.nit:2251 */
9283 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9284 /* ./parser//parser.nit:2252 */
9285 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9286 /* ./parser//parser.nit:2253 */
9287 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9288 /* ./parser//parser.nit:2254 */
9289 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9290 /* ./parser//parser.nit:2255 */
9291 fra.me.REG[9] = NEW_Array_array___Array___init();
9292 /* ./parser//parser.nit:2256 */
9293 fra.me.REG[10] = NEW_Array_array___Array___init();
9294 /* ./parser//parser.nit:2257 */
9295 fra.me.REG[11] = NEW_Array_array___Array___init();
9296 /* ./parser//parser.nit:2259 */
9297 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9298 if (UNTAG_Bool(REGB0)) {
9299 } else {
9300 nit_abort("Assert failed", NULL, LOCATE_parser, 2259);
9301 }
9302 /* ./parser//parser.nit:2261 */
9303 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9304 if (UNTAG_Bool(REGB0)) {
9305 } else {
9306 nit_abort("Assert failed", NULL, LOCATE_parser, 2261);
9307 }
9308 /* ./parser//parser.nit:2263 */
9309 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9310 if (UNTAG_Bool(REGB0)) {
9311 } else {
9312 nit_abort("Assert failed", NULL, LOCATE_parser, 2263);
9313 }
9314 /* ./parser//parser.nit:2265 */
9315 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9316 if (UNTAG_Bool(REGB0)) {
9317 } else {
9318 nit_abort("Assert failed", NULL, LOCATE_parser, 2265);
9319 }
9320 /* ./parser//parser.nit:2267 */
9321 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9322 if (UNTAG_Bool(REGB0)) {
9323 } else {
9324 nit_abort("Assert failed", NULL, LOCATE_parser, 2267);
9325 }
9326 /* ./parser//parser.nit:2269 */
9327 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9328 if (UNTAG_Bool(REGB0)) {
9329 } else {
9330 nit_abort("Assert failed", NULL, LOCATE_parser, 2269);
9331 }
9332 /* ./parser//parser.nit:2270 */
9333 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
9334 fra.me.REG[9] = fra.me.REG[3];
9335 /* ./parser//parser.nit:2271 */
9336 fra.me.REG[11] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
9337 /* ./parser//parser.nit:2281 */
9338 fra.me.REG[2] = fra.me.REG[11];
9339 /* ./parser//parser.nit:2282 */
9340 REGB0 = TAG_Bool(ATTR_parser___ReduceAction42____goto(fra.me.REG[0])!=NIT_NULL);
9341 if (UNTAG_Bool(REGB0)) {
9342 } else {
9343 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2282);
9344 }
9345 REGB0 = ATTR_parser___ReduceAction42____goto(fra.me.REG[0]);
9346 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9347 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9348 stack_frame_head = fra.me.prev;
9349 return;
9350 }
9351 void parser___ReduceAction42___init(val_t p0, val_t p1, int* init_table){
9352 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction42].i;
9353 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9354 val_t REGB0;
9355 val_t tmp;
9356 if (init_table[itpos45]) return;
9357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9358 fra.me.file = LOCATE_parser;
9359 fra.me.line = 2285;
9360 fra.me.meth = LOCATE_parser___ReduceAction42___init;
9361 fra.me.has_broke = 0;
9362 fra.me.REG_size = 2;
9363 fra.me.REG[0] = NIT_NULL;
9364 fra.me.REG[1] = NIT_NULL;
9365 fra.me.REG[0] = p0;
9366 REGB0 = p1;
9367 /* ./parser//parser.nit:2285 */
9368 fra.me.REG[1] = fra.me.REG[0];
9369 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9370 ATTR_parser___ReduceAction42____goto(fra.me.REG[1]) = REGB0;
9371 stack_frame_head = fra.me.prev;
9372 init_table[itpos45] = 1;
9373 return;
9374 }
9375 void parser___ReduceAction43___action(val_t p0, val_t p1){
9376 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9377 val_t REGB0;
9378 val_t tmp;
9379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9380 fra.me.file = LOCATE_parser;
9381 fra.me.line = 2289;
9382 fra.me.meth = LOCATE_parser___ReduceAction43___action;
9383 fra.me.has_broke = 0;
9384 fra.me.REG_size = 11;
9385 fra.me.REG[0] = NIT_NULL;
9386 fra.me.REG[1] = NIT_NULL;
9387 fra.me.REG[2] = NIT_NULL;
9388 fra.me.REG[3] = NIT_NULL;
9389 fra.me.REG[4] = NIT_NULL;
9390 fra.me.REG[5] = NIT_NULL;
9391 fra.me.REG[6] = NIT_NULL;
9392 fra.me.REG[7] = NIT_NULL;
9393 fra.me.REG[8] = NIT_NULL;
9394 fra.me.REG[9] = NIT_NULL;
9395 fra.me.REG[10] = NIT_NULL;
9396 fra.me.REG[0] = p0;
9397 fra.me.REG[1] = p1;
9398 /* ./parser//parser.nit:2291 */
9399 fra.me.REG[2] = NIT_NULL;
9400 /* ./parser//parser.nit:2292 */
9401 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9402 /* ./parser//parser.nit:2293 */
9403 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9404 /* ./parser//parser.nit:2294 */
9405 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9406 /* ./parser//parser.nit:2295 */
9407 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9408 /* ./parser//parser.nit:2296 */
9409 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9410 /* ./parser//parser.nit:2297 */
9411 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9412 /* ./parser//parser.nit:2298 */
9413 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9414 /* ./parser//parser.nit:2299 */
9415 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9416 /* ./parser//parser.nit:2300 */
9417 fra.me.REG[8] = NEW_Array_array___Array___init();
9418 /* ./parser//parser.nit:2301 */
9419 fra.me.REG[9] = NEW_Array_array___Array___init();
9420 /* ./parser//parser.nit:2302 */
9421 fra.me.REG[10] = NEW_Array_array___Array___init();
9422 /* ./parser//parser.nit:2304 */
9423 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9424 if (UNTAG_Bool(REGB0)) {
9425 } else {
9426 nit_abort("Assert failed", NULL, LOCATE_parser, 2304);
9427 }
9428 /* ./parser//parser.nit:2306 */
9429 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9430 if (UNTAG_Bool(REGB0)) {
9431 } else {
9432 nit_abort("Assert failed", NULL, LOCATE_parser, 2306);
9433 }
9434 /* ./parser//parser.nit:2308 */
9435 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9436 if (UNTAG_Bool(REGB0)) {
9437 } else {
9438 nit_abort("Assert failed", NULL, LOCATE_parser, 2308);
9439 }
9440 /* ./parser//parser.nit:2310 */
9441 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9442 if (UNTAG_Bool(REGB0)) {
9443 } else {
9444 nit_abort("Assert failed", NULL, LOCATE_parser, 2310);
9445 }
9446 /* ./parser//parser.nit:2312 */
9447 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9448 if (UNTAG_Bool(REGB0)) {
9449 } else {
9450 nit_abort("Assert failed", NULL, LOCATE_parser, 2312);
9451 }
9452 /* ./parser//parser.nit:2313 */
9453 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
9454 fra.me.REG[9] = fra.me.REG[3];
9455 /* ./parser//parser.nit:2314 */
9456 fra.me.REG[10] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
9457 /* ./parser//parser.nit:2324 */
9458 fra.me.REG[2] = fra.me.REG[10];
9459 /* ./parser//parser.nit:2325 */
9460 REGB0 = TAG_Bool(ATTR_parser___ReduceAction43____goto(fra.me.REG[0])!=NIT_NULL);
9461 if (UNTAG_Bool(REGB0)) {
9462 } else {
9463 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2325);
9464 }
9465 REGB0 = ATTR_parser___ReduceAction43____goto(fra.me.REG[0]);
9466 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9467 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9468 stack_frame_head = fra.me.prev;
9469 return;
9470 }
9471 void parser___ReduceAction43___init(val_t p0, val_t p1, int* init_table){
9472 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction43].i;
9473 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9474 val_t REGB0;
9475 val_t tmp;
9476 if (init_table[itpos46]) return;
9477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9478 fra.me.file = LOCATE_parser;
9479 fra.me.line = 2328;
9480 fra.me.meth = LOCATE_parser___ReduceAction43___init;
9481 fra.me.has_broke = 0;
9482 fra.me.REG_size = 2;
9483 fra.me.REG[0] = NIT_NULL;
9484 fra.me.REG[1] = NIT_NULL;
9485 fra.me.REG[0] = p0;
9486 REGB0 = p1;
9487 /* ./parser//parser.nit:2328 */
9488 fra.me.REG[1] = fra.me.REG[0];
9489 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9490 ATTR_parser___ReduceAction43____goto(fra.me.REG[1]) = REGB0;
9491 stack_frame_head = fra.me.prev;
9492 init_table[itpos46] = 1;
9493 return;
9494 }
9495 void parser___ReduceAction44___action(val_t p0, val_t p1){
9496 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
9497 val_t REGB0;
9498 val_t tmp;
9499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9500 fra.me.file = LOCATE_parser;
9501 fra.me.line = 2332;
9502 fra.me.meth = LOCATE_parser___ReduceAction44___action;
9503 fra.me.has_broke = 0;
9504 fra.me.REG_size = 12;
9505 fra.me.REG[0] = NIT_NULL;
9506 fra.me.REG[1] = NIT_NULL;
9507 fra.me.REG[2] = NIT_NULL;
9508 fra.me.REG[3] = NIT_NULL;
9509 fra.me.REG[4] = NIT_NULL;
9510 fra.me.REG[5] = NIT_NULL;
9511 fra.me.REG[6] = NIT_NULL;
9512 fra.me.REG[7] = NIT_NULL;
9513 fra.me.REG[8] = NIT_NULL;
9514 fra.me.REG[9] = NIT_NULL;
9515 fra.me.REG[10] = NIT_NULL;
9516 fra.me.REG[11] = NIT_NULL;
9517 fra.me.REG[0] = p0;
9518 fra.me.REG[1] = p1;
9519 /* ./parser//parser.nit:2334 */
9520 fra.me.REG[2] = NIT_NULL;
9521 /* ./parser//parser.nit:2335 */
9522 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9523 /* ./parser//parser.nit:2336 */
9524 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9525 /* ./parser//parser.nit:2337 */
9526 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9527 /* ./parser//parser.nit:2338 */
9528 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9529 /* ./parser//parser.nit:2339 */
9530 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9531 /* ./parser//parser.nit:2340 */
9532 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9533 /* ./parser//parser.nit:2341 */
9534 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9535 /* ./parser//parser.nit:2342 */
9536 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9537 /* ./parser//parser.nit:2343 */
9538 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9539 /* ./parser//parser.nit:2344 */
9540 fra.me.REG[9] = NEW_Array_array___Array___init();
9541 /* ./parser//parser.nit:2345 */
9542 fra.me.REG[10] = NEW_Array_array___Array___init();
9543 /* ./parser//parser.nit:2346 */
9544 fra.me.REG[11] = NEW_Array_array___Array___init();
9545 /* ./parser//parser.nit:2348 */
9546 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9547 if (UNTAG_Bool(REGB0)) {
9548 } else {
9549 nit_abort("Assert failed", NULL, LOCATE_parser, 2348);
9550 }
9551 /* ./parser//parser.nit:2350 */
9552 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9553 if (UNTAG_Bool(REGB0)) {
9554 } else {
9555 nit_abort("Assert failed", NULL, LOCATE_parser, 2350);
9556 }
9557 /* ./parser//parser.nit:2352 */
9558 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9559 if (UNTAG_Bool(REGB0)) {
9560 } else {
9561 nit_abort("Assert failed", NULL, LOCATE_parser, 2352);
9562 }
9563 /* ./parser//parser.nit:2354 */
9564 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9565 if (UNTAG_Bool(REGB0)) {
9566 } else {
9567 nit_abort("Assert failed", NULL, LOCATE_parser, 2354);
9568 }
9569 /* ./parser//parser.nit:2356 */
9570 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9571 if (UNTAG_Bool(REGB0)) {
9572 } else {
9573 nit_abort("Assert failed", NULL, LOCATE_parser, 2356);
9574 }
9575 /* ./parser//parser.nit:2358 */
9576 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9577 if (UNTAG_Bool(REGB0)) {
9578 } else {
9579 nit_abort("Assert failed", NULL, LOCATE_parser, 2358);
9580 }
9581 /* ./parser//parser.nit:2359 */
9582 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
9583 fra.me.REG[10] = fra.me.REG[3];
9584 /* ./parser//parser.nit:2360 */
9585 fra.me.REG[11] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
9586 /* ./parser//parser.nit:2370 */
9587 fra.me.REG[2] = fra.me.REG[11];
9588 /* ./parser//parser.nit:2371 */
9589 REGB0 = TAG_Bool(ATTR_parser___ReduceAction44____goto(fra.me.REG[0])!=NIT_NULL);
9590 if (UNTAG_Bool(REGB0)) {
9591 } else {
9592 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2371);
9593 }
9594 REGB0 = ATTR_parser___ReduceAction44____goto(fra.me.REG[0]);
9595 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9596 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9597 stack_frame_head = fra.me.prev;
9598 return;
9599 }
9600 void parser___ReduceAction44___init(val_t p0, val_t p1, int* init_table){
9601 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction44].i;
9602 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9603 val_t REGB0;
9604 val_t tmp;
9605 if (init_table[itpos47]) return;
9606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9607 fra.me.file = LOCATE_parser;
9608 fra.me.line = 2374;
9609 fra.me.meth = LOCATE_parser___ReduceAction44___init;
9610 fra.me.has_broke = 0;
9611 fra.me.REG_size = 2;
9612 fra.me.REG[0] = NIT_NULL;
9613 fra.me.REG[1] = NIT_NULL;
9614 fra.me.REG[0] = p0;
9615 REGB0 = p1;
9616 /* ./parser//parser.nit:2374 */
9617 fra.me.REG[1] = fra.me.REG[0];
9618 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9619 ATTR_parser___ReduceAction44____goto(fra.me.REG[1]) = REGB0;
9620 stack_frame_head = fra.me.prev;
9621 init_table[itpos47] = 1;
9622 return;
9623 }
9624 void parser___ReduceAction45___action(val_t p0, val_t p1){
9625 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
9626 val_t REGB0;
9627 val_t tmp;
9628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9629 fra.me.file = LOCATE_parser;
9630 fra.me.line = 2378;
9631 fra.me.meth = LOCATE_parser___ReduceAction45___action;
9632 fra.me.has_broke = 0;
9633 fra.me.REG_size = 12;
9634 fra.me.REG[0] = NIT_NULL;
9635 fra.me.REG[1] = NIT_NULL;
9636 fra.me.REG[2] = NIT_NULL;
9637 fra.me.REG[3] = NIT_NULL;
9638 fra.me.REG[4] = NIT_NULL;
9639 fra.me.REG[5] = NIT_NULL;
9640 fra.me.REG[6] = NIT_NULL;
9641 fra.me.REG[7] = NIT_NULL;
9642 fra.me.REG[8] = NIT_NULL;
9643 fra.me.REG[9] = NIT_NULL;
9644 fra.me.REG[10] = NIT_NULL;
9645 fra.me.REG[11] = NIT_NULL;
9646 fra.me.REG[0] = p0;
9647 fra.me.REG[1] = p1;
9648 /* ./parser//parser.nit:2380 */
9649 fra.me.REG[2] = NIT_NULL;
9650 /* ./parser//parser.nit:2381 */
9651 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9652 /* ./parser//parser.nit:2382 */
9653 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9654 /* ./parser//parser.nit:2383 */
9655 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9656 /* ./parser//parser.nit:2384 */
9657 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9658 /* ./parser//parser.nit:2385 */
9659 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9660 /* ./parser//parser.nit:2386 */
9661 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9662 /* ./parser//parser.nit:2387 */
9663 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9664 /* ./parser//parser.nit:2388 */
9665 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9666 /* ./parser//parser.nit:2389 */
9667 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9668 /* ./parser//parser.nit:2390 */
9669 fra.me.REG[9] = NEW_Array_array___Array___init();
9670 /* ./parser//parser.nit:2391 */
9671 fra.me.REG[10] = NEW_Array_array___Array___init();
9672 /* ./parser//parser.nit:2392 */
9673 fra.me.REG[11] = NEW_Array_array___Array___init();
9674 /* ./parser//parser.nit:2394 */
9675 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9676 if (UNTAG_Bool(REGB0)) {
9677 } else {
9678 nit_abort("Assert failed", NULL, LOCATE_parser, 2394);
9679 }
9680 /* ./parser//parser.nit:2396 */
9681 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9682 if (UNTAG_Bool(REGB0)) {
9683 } else {
9684 nit_abort("Assert failed", NULL, LOCATE_parser, 2396);
9685 }
9686 /* ./parser//parser.nit:2398 */
9687 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9688 if (UNTAG_Bool(REGB0)) {
9689 } else {
9690 nit_abort("Assert failed", NULL, LOCATE_parser, 2398);
9691 }
9692 /* ./parser//parser.nit:2400 */
9693 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9694 if (UNTAG_Bool(REGB0)) {
9695 } else {
9696 nit_abort("Assert failed", NULL, LOCATE_parser, 2400);
9697 }
9698 /* ./parser//parser.nit:2402 */
9699 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9700 if (UNTAG_Bool(REGB0)) {
9701 } else {
9702 nit_abort("Assert failed", NULL, LOCATE_parser, 2402);
9703 }
9704 /* ./parser//parser.nit:2403 */
9705 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
9706 fra.me.REG[9] = fra.me.REG[4];
9707 /* ./parser//parser.nit:2405 */
9708 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9709 if (UNTAG_Bool(REGB0)) {
9710 } else {
9711 nit_abort("Assert failed", NULL, LOCATE_parser, 2405);
9712 }
9713 /* ./parser//parser.nit:2406 */
9714 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
9715 fra.me.REG[10] = fra.me.REG[3];
9716 /* ./parser//parser.nit:2407 */
9717 fra.me.REG[11] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
9718 /* ./parser//parser.nit:2417 */
9719 fra.me.REG[2] = fra.me.REG[11];
9720 /* ./parser//parser.nit:2418 */
9721 REGB0 = TAG_Bool(ATTR_parser___ReduceAction45____goto(fra.me.REG[0])!=NIT_NULL);
9722 if (UNTAG_Bool(REGB0)) {
9723 } else {
9724 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2418);
9725 }
9726 REGB0 = ATTR_parser___ReduceAction45____goto(fra.me.REG[0]);
9727 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9728 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9729 stack_frame_head = fra.me.prev;
9730 return;
9731 }
9732 void parser___ReduceAction45___init(val_t p0, val_t p1, int* init_table){
9733 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction45].i;
9734 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9735 val_t REGB0;
9736 val_t tmp;
9737 if (init_table[itpos48]) return;
9738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9739 fra.me.file = LOCATE_parser;
9740 fra.me.line = 2421;
9741 fra.me.meth = LOCATE_parser___ReduceAction45___init;
9742 fra.me.has_broke = 0;
9743 fra.me.REG_size = 2;
9744 fra.me.REG[0] = NIT_NULL;
9745 fra.me.REG[1] = NIT_NULL;
9746 fra.me.REG[0] = p0;
9747 REGB0 = p1;
9748 /* ./parser//parser.nit:2421 */
9749 fra.me.REG[1] = fra.me.REG[0];
9750 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9751 ATTR_parser___ReduceAction45____goto(fra.me.REG[1]) = REGB0;
9752 stack_frame_head = fra.me.prev;
9753 init_table[itpos48] = 1;
9754 return;
9755 }
9756 void parser___ReduceAction46___action(val_t p0, val_t p1){
9757 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
9758 val_t REGB0;
9759 val_t tmp;
9760 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9761 fra.me.file = LOCATE_parser;
9762 fra.me.line = 2425;
9763 fra.me.meth = LOCATE_parser___ReduceAction46___action;
9764 fra.me.has_broke = 0;
9765 fra.me.REG_size = 13;
9766 fra.me.REG[0] = NIT_NULL;
9767 fra.me.REG[1] = NIT_NULL;
9768 fra.me.REG[2] = NIT_NULL;
9769 fra.me.REG[3] = NIT_NULL;
9770 fra.me.REG[4] = NIT_NULL;
9771 fra.me.REG[5] = NIT_NULL;
9772 fra.me.REG[6] = NIT_NULL;
9773 fra.me.REG[7] = NIT_NULL;
9774 fra.me.REG[8] = NIT_NULL;
9775 fra.me.REG[9] = NIT_NULL;
9776 fra.me.REG[10] = NIT_NULL;
9777 fra.me.REG[11] = NIT_NULL;
9778 fra.me.REG[12] = NIT_NULL;
9779 fra.me.REG[0] = p0;
9780 fra.me.REG[1] = p1;
9781 /* ./parser//parser.nit:2427 */
9782 fra.me.REG[2] = NIT_NULL;
9783 /* ./parser//parser.nit:2428 */
9784 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9785 /* ./parser//parser.nit:2429 */
9786 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9787 /* ./parser//parser.nit:2430 */
9788 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9789 /* ./parser//parser.nit:2431 */
9790 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9791 /* ./parser//parser.nit:2432 */
9792 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9793 /* ./parser//parser.nit:2433 */
9794 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9795 /* ./parser//parser.nit:2434 */
9796 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9797 /* ./parser//parser.nit:2435 */
9798 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9799 /* ./parser//parser.nit:2436 */
9800 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9801 /* ./parser//parser.nit:2437 */
9802 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9803 /* ./parser//parser.nit:2438 */
9804 fra.me.REG[10] = NEW_Array_array___Array___init();
9805 /* ./parser//parser.nit:2439 */
9806 fra.me.REG[11] = NEW_Array_array___Array___init();
9807 /* ./parser//parser.nit:2440 */
9808 fra.me.REG[12] = NEW_Array_array___Array___init();
9809 /* ./parser//parser.nit:2442 */
9810 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9811 if (UNTAG_Bool(REGB0)) {
9812 } else {
9813 nit_abort("Assert failed", NULL, LOCATE_parser, 2442);
9814 }
9815 /* ./parser//parser.nit:2444 */
9816 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9817 if (UNTAG_Bool(REGB0)) {
9818 } else {
9819 nit_abort("Assert failed", NULL, LOCATE_parser, 2444);
9820 }
9821 /* ./parser//parser.nit:2446 */
9822 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9823 if (UNTAG_Bool(REGB0)) {
9824 } else {
9825 nit_abort("Assert failed", NULL, LOCATE_parser, 2446);
9826 }
9827 /* ./parser//parser.nit:2448 */
9828 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9829 if (UNTAG_Bool(REGB0)) {
9830 } else {
9831 nit_abort("Assert failed", NULL, LOCATE_parser, 2448);
9832 }
9833 /* ./parser//parser.nit:2450 */
9834 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9835 if (UNTAG_Bool(REGB0)) {
9836 } else {
9837 nit_abort("Assert failed", NULL, LOCATE_parser, 2450);
9838 }
9839 /* ./parser//parser.nit:2452 */
9840 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9841 if (UNTAG_Bool(REGB0)) {
9842 } else {
9843 nit_abort("Assert failed", NULL, LOCATE_parser, 2452);
9844 }
9845 /* ./parser//parser.nit:2453 */
9846 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
9847 fra.me.REG[10] = fra.me.REG[4];
9848 /* ./parser//parser.nit:2455 */
9849 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9850 if (UNTAG_Bool(REGB0)) {
9851 } else {
9852 nit_abort("Assert failed", NULL, LOCATE_parser, 2455);
9853 }
9854 /* ./parser//parser.nit:2456 */
9855 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
9856 fra.me.REG[11] = fra.me.REG[3];
9857 /* ./parser//parser.nit:2457 */
9858 fra.me.REG[12] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
9859 /* ./parser//parser.nit:2467 */
9860 fra.me.REG[2] = fra.me.REG[12];
9861 /* ./parser//parser.nit:2468 */
9862 REGB0 = TAG_Bool(ATTR_parser___ReduceAction46____goto(fra.me.REG[0])!=NIT_NULL);
9863 if (UNTAG_Bool(REGB0)) {
9864 } else {
9865 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2468);
9866 }
9867 REGB0 = ATTR_parser___ReduceAction46____goto(fra.me.REG[0]);
9868 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9869 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9870 stack_frame_head = fra.me.prev;
9871 return;
9872 }
9873 void parser___ReduceAction46___init(val_t p0, val_t p1, int* init_table){
9874 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction46].i;
9875 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9876 val_t REGB0;
9877 val_t tmp;
9878 if (init_table[itpos49]) return;
9879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9880 fra.me.file = LOCATE_parser;
9881 fra.me.line = 2471;
9882 fra.me.meth = LOCATE_parser___ReduceAction46___init;
9883 fra.me.has_broke = 0;
9884 fra.me.REG_size = 2;
9885 fra.me.REG[0] = NIT_NULL;
9886 fra.me.REG[1] = NIT_NULL;
9887 fra.me.REG[0] = p0;
9888 REGB0 = p1;
9889 /* ./parser//parser.nit:2471 */
9890 fra.me.REG[1] = fra.me.REG[0];
9891 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9892 ATTR_parser___ReduceAction46____goto(fra.me.REG[1]) = REGB0;
9893 stack_frame_head = fra.me.prev;
9894 init_table[itpos49] = 1;
9895 return;
9896 }
9897 void parser___ReduceAction47___action(val_t p0, val_t p1){
9898 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9899 val_t REGB0;
9900 val_t tmp;
9901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9902 fra.me.file = LOCATE_parser;
9903 fra.me.line = 2475;
9904 fra.me.meth = LOCATE_parser___ReduceAction47___action;
9905 fra.me.has_broke = 0;
9906 fra.me.REG_size = 11;
9907 fra.me.REG[0] = NIT_NULL;
9908 fra.me.REG[1] = NIT_NULL;
9909 fra.me.REG[2] = NIT_NULL;
9910 fra.me.REG[3] = NIT_NULL;
9911 fra.me.REG[4] = NIT_NULL;
9912 fra.me.REG[5] = NIT_NULL;
9913 fra.me.REG[6] = NIT_NULL;
9914 fra.me.REG[7] = NIT_NULL;
9915 fra.me.REG[8] = NIT_NULL;
9916 fra.me.REG[9] = NIT_NULL;
9917 fra.me.REG[10] = NIT_NULL;
9918 fra.me.REG[0] = p0;
9919 fra.me.REG[1] = p1;
9920 /* ./parser//parser.nit:2477 */
9921 fra.me.REG[2] = NIT_NULL;
9922 /* ./parser//parser.nit:2478 */
9923 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9924 /* ./parser//parser.nit:2479 */
9925 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9926 /* ./parser//parser.nit:2480 */
9927 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9928 /* ./parser//parser.nit:2481 */
9929 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9930 /* ./parser//parser.nit:2482 */
9931 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9932 /* ./parser//parser.nit:2483 */
9933 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9934 /* ./parser//parser.nit:2484 */
9935 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9936 /* ./parser//parser.nit:2485 */
9937 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9938 /* ./parser//parser.nit:2486 */
9939 fra.me.REG[8] = NEW_Array_array___Array___init();
9940 /* ./parser//parser.nit:2487 */
9941 fra.me.REG[9] = NEW_Array_array___Array___init();
9942 /* ./parser//parser.nit:2488 */
9943 fra.me.REG[10] = NEW_Array_array___Array___init();
9944 /* ./parser//parser.nit:2490 */
9945 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9946 if (UNTAG_Bool(REGB0)) {
9947 } else {
9948 nit_abort("Assert failed", NULL, LOCATE_parser, 2490);
9949 }
9950 /* ./parser//parser.nit:2492 */
9951 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9952 if (UNTAG_Bool(REGB0)) {
9953 } else {
9954 nit_abort("Assert failed", NULL, LOCATE_parser, 2492);
9955 }
9956 /* ./parser//parser.nit:2494 */
9957 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9958 if (UNTAG_Bool(REGB0)) {
9959 } else {
9960 nit_abort("Assert failed", NULL, LOCATE_parser, 2494);
9961 }
9962 /* ./parser//parser.nit:2496 */
9963 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9964 if (UNTAG_Bool(REGB0)) {
9965 } else {
9966 nit_abort("Assert failed", NULL, LOCATE_parser, 2496);
9967 }
9968 /* ./parser//parser.nit:2498 */
9969 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9970 if (UNTAG_Bool(REGB0)) {
9971 } else {
9972 nit_abort("Assert failed", NULL, LOCATE_parser, 2498);
9973 }
9974 /* ./parser//parser.nit:2499 */
9975 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
9976 fra.me.REG[10] = fra.me.REG[3];
9977 /* ./parser//parser.nit:2500 */
9978 fra.me.REG[10] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
9979 /* ./parser//parser.nit:2510 */
9980 fra.me.REG[2] = fra.me.REG[10];
9981 /* ./parser//parser.nit:2511 */
9982 REGB0 = TAG_Bool(ATTR_parser___ReduceAction47____goto(fra.me.REG[0])!=NIT_NULL);
9983 if (UNTAG_Bool(REGB0)) {
9984 } else {
9985 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2511);
9986 }
9987 REGB0 = ATTR_parser___ReduceAction47____goto(fra.me.REG[0]);
9988 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9989 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9990 stack_frame_head = fra.me.prev;
9991 return;
9992 }
9993 void parser___ReduceAction47___init(val_t p0, val_t p1, int* init_table){
9994 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction47].i;
9995 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9996 val_t REGB0;
9997 val_t tmp;
9998 if (init_table[itpos50]) return;
9999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10000 fra.me.file = LOCATE_parser;
10001 fra.me.line = 2514;
10002 fra.me.meth = LOCATE_parser___ReduceAction47___init;
10003 fra.me.has_broke = 0;
10004 fra.me.REG_size = 2;
10005 fra.me.REG[0] = NIT_NULL;
10006 fra.me.REG[1] = NIT_NULL;
10007 fra.me.REG[0] = p0;
10008 REGB0 = p1;
10009 /* ./parser//parser.nit:2514 */
10010 fra.me.REG[1] = fra.me.REG[0];
10011 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10012 ATTR_parser___ReduceAction47____goto(fra.me.REG[1]) = REGB0;
10013 stack_frame_head = fra.me.prev;
10014 init_table[itpos50] = 1;
10015 return;
10016 }
10017 void parser___ReduceAction48___action(val_t p0, val_t p1){
10018 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
10019 val_t REGB0;
10020 val_t tmp;
10021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10022 fra.me.file = LOCATE_parser;
10023 fra.me.line = 2518;
10024 fra.me.meth = LOCATE_parser___ReduceAction48___action;
10025 fra.me.has_broke = 0;
10026 fra.me.REG_size = 12;
10027 fra.me.REG[0] = NIT_NULL;
10028 fra.me.REG[1] = NIT_NULL;
10029 fra.me.REG[2] = NIT_NULL;
10030 fra.me.REG[3] = NIT_NULL;
10031 fra.me.REG[4] = NIT_NULL;
10032 fra.me.REG[5] = NIT_NULL;
10033 fra.me.REG[6] = NIT_NULL;
10034 fra.me.REG[7] = NIT_NULL;
10035 fra.me.REG[8] = NIT_NULL;
10036 fra.me.REG[9] = NIT_NULL;
10037 fra.me.REG[10] = NIT_NULL;
10038 fra.me.REG[11] = NIT_NULL;
10039 fra.me.REG[0] = p0;
10040 fra.me.REG[1] = p1;
10041 /* ./parser//parser.nit:2520 */
10042 fra.me.REG[2] = NIT_NULL;
10043 /* ./parser//parser.nit:2521 */
10044 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10045 /* ./parser//parser.nit:2522 */
10046 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10047 /* ./parser//parser.nit:2523 */
10048 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10049 /* ./parser//parser.nit:2524 */
10050 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10051 /* ./parser//parser.nit:2525 */
10052 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10053 /* ./parser//parser.nit:2526 */
10054 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10055 /* ./parser//parser.nit:2527 */
10056 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10057 /* ./parser//parser.nit:2528 */
10058 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10059 /* ./parser//parser.nit:2529 */
10060 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10061 /* ./parser//parser.nit:2530 */
10062 fra.me.REG[9] = NEW_Array_array___Array___init();
10063 /* ./parser//parser.nit:2531 */
10064 fra.me.REG[10] = NEW_Array_array___Array___init();
10065 /* ./parser//parser.nit:2532 */
10066 fra.me.REG[11] = NEW_Array_array___Array___init();
10067 /* ./parser//parser.nit:2534 */
10068 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10069 if (UNTAG_Bool(REGB0)) {
10070 } else {
10071 nit_abort("Assert failed", NULL, LOCATE_parser, 2534);
10072 }
10073 /* ./parser//parser.nit:2536 */
10074 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10075 if (UNTAG_Bool(REGB0)) {
10076 } else {
10077 nit_abort("Assert failed", NULL, LOCATE_parser, 2536);
10078 }
10079 /* ./parser//parser.nit:2538 */
10080 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10081 if (UNTAG_Bool(REGB0)) {
10082 } else {
10083 nit_abort("Assert failed", NULL, LOCATE_parser, 2538);
10084 }
10085 /* ./parser//parser.nit:2540 */
10086 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10087 if (UNTAG_Bool(REGB0)) {
10088 } else {
10089 nit_abort("Assert failed", NULL, LOCATE_parser, 2540);
10090 }
10091 /* ./parser//parser.nit:2542 */
10092 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10093 if (UNTAG_Bool(REGB0)) {
10094 } else {
10095 nit_abort("Assert failed", NULL, LOCATE_parser, 2542);
10096 }
10097 /* ./parser//parser.nit:2544 */
10098 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10099 if (UNTAG_Bool(REGB0)) {
10100 } else {
10101 nit_abort("Assert failed", NULL, LOCATE_parser, 2544);
10102 }
10103 /* ./parser//parser.nit:2545 */
10104 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
10105 fra.me.REG[11] = fra.me.REG[3];
10106 /* ./parser//parser.nit:2546 */
10107 fra.me.REG[11] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
10108 /* ./parser//parser.nit:2556 */
10109 fra.me.REG[2] = fra.me.REG[11];
10110 /* ./parser//parser.nit:2557 */
10111 REGB0 = TAG_Bool(ATTR_parser___ReduceAction48____goto(fra.me.REG[0])!=NIT_NULL);
10112 if (UNTAG_Bool(REGB0)) {
10113 } else {
10114 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2557);
10115 }
10116 REGB0 = ATTR_parser___ReduceAction48____goto(fra.me.REG[0]);
10117 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10118 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10119 stack_frame_head = fra.me.prev;
10120 return;
10121 }
10122 void parser___ReduceAction48___init(val_t p0, val_t p1, int* init_table){
10123 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction48].i;
10124 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10125 val_t REGB0;
10126 val_t tmp;
10127 if (init_table[itpos51]) return;
10128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10129 fra.me.file = LOCATE_parser;
10130 fra.me.line = 2560;
10131 fra.me.meth = LOCATE_parser___ReduceAction48___init;
10132 fra.me.has_broke = 0;
10133 fra.me.REG_size = 2;
10134 fra.me.REG[0] = NIT_NULL;
10135 fra.me.REG[1] = NIT_NULL;
10136 fra.me.REG[0] = p0;
10137 REGB0 = p1;
10138 /* ./parser//parser.nit:2560 */
10139 fra.me.REG[1] = fra.me.REG[0];
10140 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10141 ATTR_parser___ReduceAction48____goto(fra.me.REG[1]) = REGB0;
10142 stack_frame_head = fra.me.prev;
10143 init_table[itpos51] = 1;
10144 return;
10145 }
10146 void parser___ReduceAction49___action(val_t p0, val_t p1){
10147 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
10148 val_t REGB0;
10149 val_t tmp;
10150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10151 fra.me.file = LOCATE_parser;
10152 fra.me.line = 2564;
10153 fra.me.meth = LOCATE_parser___ReduceAction49___action;
10154 fra.me.has_broke = 0;
10155 fra.me.REG_size = 12;
10156 fra.me.REG[0] = NIT_NULL;
10157 fra.me.REG[1] = NIT_NULL;
10158 fra.me.REG[2] = NIT_NULL;
10159 fra.me.REG[3] = NIT_NULL;
10160 fra.me.REG[4] = NIT_NULL;
10161 fra.me.REG[5] = NIT_NULL;
10162 fra.me.REG[6] = NIT_NULL;
10163 fra.me.REG[7] = NIT_NULL;
10164 fra.me.REG[8] = NIT_NULL;
10165 fra.me.REG[9] = NIT_NULL;
10166 fra.me.REG[10] = NIT_NULL;
10167 fra.me.REG[11] = NIT_NULL;
10168 fra.me.REG[0] = p0;
10169 fra.me.REG[1] = p1;
10170 /* ./parser//parser.nit:2566 */
10171 fra.me.REG[2] = NIT_NULL;
10172 /* ./parser//parser.nit:2567 */
10173 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10174 /* ./parser//parser.nit:2568 */
10175 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10176 /* ./parser//parser.nit:2569 */
10177 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10178 /* ./parser//parser.nit:2570 */
10179 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10180 /* ./parser//parser.nit:2571 */
10181 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10182 /* ./parser//parser.nit:2572 */
10183 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10184 /* ./parser//parser.nit:2573 */
10185 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10186 /* ./parser//parser.nit:2574 */
10187 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10188 /* ./parser//parser.nit:2575 */
10189 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10190 /* ./parser//parser.nit:2576 */
10191 fra.me.REG[9] = NEW_Array_array___Array___init();
10192 /* ./parser//parser.nit:2577 */
10193 fra.me.REG[10] = NEW_Array_array___Array___init();
10194 /* ./parser//parser.nit:2578 */
10195 fra.me.REG[11] = NEW_Array_array___Array___init();
10196 /* ./parser//parser.nit:2580 */
10197 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10198 if (UNTAG_Bool(REGB0)) {
10199 } else {
10200 nit_abort("Assert failed", NULL, LOCATE_parser, 2580);
10201 }
10202 /* ./parser//parser.nit:2582 */
10203 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10204 if (UNTAG_Bool(REGB0)) {
10205 } else {
10206 nit_abort("Assert failed", NULL, LOCATE_parser, 2582);
10207 }
10208 /* ./parser//parser.nit:2584 */
10209 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10210 if (UNTAG_Bool(REGB0)) {
10211 } else {
10212 nit_abort("Assert failed", NULL, LOCATE_parser, 2584);
10213 }
10214 /* ./parser//parser.nit:2586 */
10215 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10216 if (UNTAG_Bool(REGB0)) {
10217 } else {
10218 nit_abort("Assert failed", NULL, LOCATE_parser, 2586);
10219 }
10220 /* ./parser//parser.nit:2588 */
10221 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10222 if (UNTAG_Bool(REGB0)) {
10223 } else {
10224 nit_abort("Assert failed", NULL, LOCATE_parser, 2588);
10225 }
10226 /* ./parser//parser.nit:2589 */
10227 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
10228 fra.me.REG[9] = fra.me.REG[4];
10229 /* ./parser//parser.nit:2591 */
10230 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10231 if (UNTAG_Bool(REGB0)) {
10232 } else {
10233 nit_abort("Assert failed", NULL, LOCATE_parser, 2591);
10234 }
10235 /* ./parser//parser.nit:2592 */
10236 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
10237 fra.me.REG[11] = fra.me.REG[3];
10238 /* ./parser//parser.nit:2593 */
10239 fra.me.REG[11] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
10240 /* ./parser//parser.nit:2603 */
10241 fra.me.REG[2] = fra.me.REG[11];
10242 /* ./parser//parser.nit:2604 */
10243 REGB0 = TAG_Bool(ATTR_parser___ReduceAction49____goto(fra.me.REG[0])!=NIT_NULL);
10244 if (UNTAG_Bool(REGB0)) {
10245 } else {
10246 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2604);
10247 }
10248 REGB0 = ATTR_parser___ReduceAction49____goto(fra.me.REG[0]);
10249 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10250 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10251 stack_frame_head = fra.me.prev;
10252 return;
10253 }
10254 void parser___ReduceAction49___init(val_t p0, val_t p1, int* init_table){
10255 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction49].i;
10256 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10257 val_t REGB0;
10258 val_t tmp;
10259 if (init_table[itpos52]) return;
10260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10261 fra.me.file = LOCATE_parser;
10262 fra.me.line = 2607;
10263 fra.me.meth = LOCATE_parser___ReduceAction49___init;
10264 fra.me.has_broke = 0;
10265 fra.me.REG_size = 2;
10266 fra.me.REG[0] = NIT_NULL;
10267 fra.me.REG[1] = NIT_NULL;
10268 fra.me.REG[0] = p0;
10269 REGB0 = p1;
10270 /* ./parser//parser.nit:2607 */
10271 fra.me.REG[1] = fra.me.REG[0];
10272 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10273 ATTR_parser___ReduceAction49____goto(fra.me.REG[1]) = REGB0;
10274 stack_frame_head = fra.me.prev;
10275 init_table[itpos52] = 1;
10276 return;
10277 }
10278 void parser___ReduceAction50___action(val_t p0, val_t p1){
10279 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
10280 val_t REGB0;
10281 val_t tmp;
10282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10283 fra.me.file = LOCATE_parser;
10284 fra.me.line = 2611;
10285 fra.me.meth = LOCATE_parser___ReduceAction50___action;
10286 fra.me.has_broke = 0;
10287 fra.me.REG_size = 13;
10288 fra.me.REG[0] = NIT_NULL;
10289 fra.me.REG[1] = NIT_NULL;
10290 fra.me.REG[2] = NIT_NULL;
10291 fra.me.REG[3] = NIT_NULL;
10292 fra.me.REG[4] = NIT_NULL;
10293 fra.me.REG[5] = NIT_NULL;
10294 fra.me.REG[6] = NIT_NULL;
10295 fra.me.REG[7] = NIT_NULL;
10296 fra.me.REG[8] = NIT_NULL;
10297 fra.me.REG[9] = NIT_NULL;
10298 fra.me.REG[10] = NIT_NULL;
10299 fra.me.REG[11] = NIT_NULL;
10300 fra.me.REG[12] = NIT_NULL;
10301 fra.me.REG[0] = p0;
10302 fra.me.REG[1] = p1;
10303 /* ./parser//parser.nit:2613 */
10304 fra.me.REG[2] = NIT_NULL;
10305 /* ./parser//parser.nit:2614 */
10306 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10307 /* ./parser//parser.nit:2615 */
10308 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10309 /* ./parser//parser.nit:2616 */
10310 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10311 /* ./parser//parser.nit:2617 */
10312 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10313 /* ./parser//parser.nit:2618 */
10314 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10315 /* ./parser//parser.nit:2619 */
10316 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10317 /* ./parser//parser.nit:2620 */
10318 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10319 /* ./parser//parser.nit:2621 */
10320 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10321 /* ./parser//parser.nit:2622 */
10322 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10323 /* ./parser//parser.nit:2623 */
10324 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10325 /* ./parser//parser.nit:2624 */
10326 fra.me.REG[10] = NEW_Array_array___Array___init();
10327 /* ./parser//parser.nit:2625 */
10328 fra.me.REG[11] = NEW_Array_array___Array___init();
10329 /* ./parser//parser.nit:2626 */
10330 fra.me.REG[12] = NEW_Array_array___Array___init();
10331 /* ./parser//parser.nit:2628 */
10332 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10333 if (UNTAG_Bool(REGB0)) {
10334 } else {
10335 nit_abort("Assert failed", NULL, LOCATE_parser, 2628);
10336 }
10337 /* ./parser//parser.nit:2630 */
10338 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10339 if (UNTAG_Bool(REGB0)) {
10340 } else {
10341 nit_abort("Assert failed", NULL, LOCATE_parser, 2630);
10342 }
10343 /* ./parser//parser.nit:2632 */
10344 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10345 if (UNTAG_Bool(REGB0)) {
10346 } else {
10347 nit_abort("Assert failed", NULL, LOCATE_parser, 2632);
10348 }
10349 /* ./parser//parser.nit:2634 */
10350 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10351 if (UNTAG_Bool(REGB0)) {
10352 } else {
10353 nit_abort("Assert failed", NULL, LOCATE_parser, 2634);
10354 }
10355 /* ./parser//parser.nit:2636 */
10356 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10357 if (UNTAG_Bool(REGB0)) {
10358 } else {
10359 nit_abort("Assert failed", NULL, LOCATE_parser, 2636);
10360 }
10361 /* ./parser//parser.nit:2638 */
10362 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10363 if (UNTAG_Bool(REGB0)) {
10364 } else {
10365 nit_abort("Assert failed", NULL, LOCATE_parser, 2638);
10366 }
10367 /* ./parser//parser.nit:2639 */
10368 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
10369 fra.me.REG[10] = fra.me.REG[4];
10370 /* ./parser//parser.nit:2641 */
10371 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10372 if (UNTAG_Bool(REGB0)) {
10373 } else {
10374 nit_abort("Assert failed", NULL, LOCATE_parser, 2641);
10375 }
10376 /* ./parser//parser.nit:2642 */
10377 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
10378 fra.me.REG[12] = fra.me.REG[3];
10379 /* ./parser//parser.nit:2643 */
10380 fra.me.REG[12] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
10381 /* ./parser//parser.nit:2653 */
10382 fra.me.REG[2] = fra.me.REG[12];
10383 /* ./parser//parser.nit:2654 */
10384 REGB0 = TAG_Bool(ATTR_parser___ReduceAction50____goto(fra.me.REG[0])!=NIT_NULL);
10385 if (UNTAG_Bool(REGB0)) {
10386 } else {
10387 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2654);
10388 }
10389 REGB0 = ATTR_parser___ReduceAction50____goto(fra.me.REG[0]);
10390 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10391 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10392 stack_frame_head = fra.me.prev;
10393 return;
10394 }
10395 void parser___ReduceAction50___init(val_t p0, val_t p1, int* init_table){
10396 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction50].i;
10397 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10398 val_t REGB0;
10399 val_t tmp;
10400 if (init_table[itpos53]) return;
10401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10402 fra.me.file = LOCATE_parser;
10403 fra.me.line = 2657;
10404 fra.me.meth = LOCATE_parser___ReduceAction50___init;
10405 fra.me.has_broke = 0;
10406 fra.me.REG_size = 2;
10407 fra.me.REG[0] = NIT_NULL;
10408 fra.me.REG[1] = NIT_NULL;
10409 fra.me.REG[0] = p0;
10410 REGB0 = p1;
10411 /* ./parser//parser.nit:2657 */
10412 fra.me.REG[1] = fra.me.REG[0];
10413 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10414 ATTR_parser___ReduceAction50____goto(fra.me.REG[1]) = REGB0;
10415 stack_frame_head = fra.me.prev;
10416 init_table[itpos53] = 1;
10417 return;
10418 }
10419 void parser___ReduceAction51___action(val_t p0, val_t p1){
10420 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
10421 val_t REGB0;
10422 val_t tmp;
10423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10424 fra.me.file = LOCATE_parser;
10425 fra.me.line = 2661;
10426 fra.me.meth = LOCATE_parser___ReduceAction51___action;
10427 fra.me.has_broke = 0;
10428 fra.me.REG_size = 12;
10429 fra.me.REG[0] = NIT_NULL;
10430 fra.me.REG[1] = NIT_NULL;
10431 fra.me.REG[2] = NIT_NULL;
10432 fra.me.REG[3] = NIT_NULL;
10433 fra.me.REG[4] = NIT_NULL;
10434 fra.me.REG[5] = NIT_NULL;
10435 fra.me.REG[6] = NIT_NULL;
10436 fra.me.REG[7] = NIT_NULL;
10437 fra.me.REG[8] = NIT_NULL;
10438 fra.me.REG[9] = NIT_NULL;
10439 fra.me.REG[10] = NIT_NULL;
10440 fra.me.REG[11] = NIT_NULL;
10441 fra.me.REG[0] = p0;
10442 fra.me.REG[1] = p1;
10443 /* ./parser//parser.nit:2663 */
10444 fra.me.REG[2] = NIT_NULL;
10445 /* ./parser//parser.nit:2664 */
10446 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10447 /* ./parser//parser.nit:2665 */
10448 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10449 /* ./parser//parser.nit:2666 */
10450 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10451 /* ./parser//parser.nit:2667 */
10452 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10453 /* ./parser//parser.nit:2668 */
10454 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10455 /* ./parser//parser.nit:2669 */
10456 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10457 /* ./parser//parser.nit:2670 */
10458 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10459 /* ./parser//parser.nit:2671 */
10460 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10461 /* ./parser//parser.nit:2672 */
10462 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10463 /* ./parser//parser.nit:2673 */
10464 fra.me.REG[9] = NEW_Array_array___Array___init();
10465 /* ./parser//parser.nit:2674 */
10466 fra.me.REG[10] = NEW_Array_array___Array___init();
10467 /* ./parser//parser.nit:2675 */
10468 fra.me.REG[11] = NEW_Array_array___Array___init();
10469 /* ./parser//parser.nit:2677 */
10470 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10471 if (UNTAG_Bool(REGB0)) {
10472 } else {
10473 nit_abort("Assert failed", NULL, LOCATE_parser, 2677);
10474 }
10475 /* ./parser//parser.nit:2679 */
10476 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10477 if (UNTAG_Bool(REGB0)) {
10478 } else {
10479 nit_abort("Assert failed", NULL, LOCATE_parser, 2679);
10480 }
10481 /* ./parser//parser.nit:2681 */
10482 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10483 if (UNTAG_Bool(REGB0)) {
10484 } else {
10485 nit_abort("Assert failed", NULL, LOCATE_parser, 2681);
10486 }
10487 /* ./parser//parser.nit:2683 */
10488 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10489 if (UNTAG_Bool(REGB0)) {
10490 } else {
10491 nit_abort("Assert failed", NULL, LOCATE_parser, 2683);
10492 }
10493 /* ./parser//parser.nit:2685 */
10494 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10495 if (UNTAG_Bool(REGB0)) {
10496 } else {
10497 nit_abort("Assert failed", NULL, LOCATE_parser, 2685);
10498 }
10499 /* ./parser//parser.nit:2686 */
10500 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
10501 fra.me.REG[10] = fra.me.REG[4];
10502 /* ./parser//parser.nit:2688 */
10503 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10504 if (UNTAG_Bool(REGB0)) {
10505 } else {
10506 nit_abort("Assert failed", NULL, LOCATE_parser, 2688);
10507 }
10508 /* ./parser//parser.nit:2689 */
10509 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
10510 fra.me.REG[11] = fra.me.REG[3];
10511 /* ./parser//parser.nit:2690 */
10512 fra.me.REG[11] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
10513 /* ./parser//parser.nit:2700 */
10514 fra.me.REG[2] = fra.me.REG[11];
10515 /* ./parser//parser.nit:2701 */
10516 REGB0 = TAG_Bool(ATTR_parser___ReduceAction51____goto(fra.me.REG[0])!=NIT_NULL);
10517 if (UNTAG_Bool(REGB0)) {
10518 } else {
10519 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2701);
10520 }
10521 REGB0 = ATTR_parser___ReduceAction51____goto(fra.me.REG[0]);
10522 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10523 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10524 stack_frame_head = fra.me.prev;
10525 return;
10526 }
10527 void parser___ReduceAction51___init(val_t p0, val_t p1, int* init_table){
10528 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction51].i;
10529 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10530 val_t REGB0;
10531 val_t tmp;
10532 if (init_table[itpos54]) return;
10533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10534 fra.me.file = LOCATE_parser;
10535 fra.me.line = 2704;
10536 fra.me.meth = LOCATE_parser___ReduceAction51___init;
10537 fra.me.has_broke = 0;
10538 fra.me.REG_size = 2;
10539 fra.me.REG[0] = NIT_NULL;
10540 fra.me.REG[1] = NIT_NULL;
10541 fra.me.REG[0] = p0;
10542 REGB0 = p1;
10543 /* ./parser//parser.nit:2704 */
10544 fra.me.REG[1] = fra.me.REG[0];
10545 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10546 ATTR_parser___ReduceAction51____goto(fra.me.REG[1]) = REGB0;
10547 stack_frame_head = fra.me.prev;
10548 init_table[itpos54] = 1;
10549 return;
10550 }
10551 void parser___ReduceAction52___action(val_t p0, val_t p1){
10552 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
10553 val_t REGB0;
10554 val_t tmp;
10555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10556 fra.me.file = LOCATE_parser;
10557 fra.me.line = 2708;
10558 fra.me.meth = LOCATE_parser___ReduceAction52___action;
10559 fra.me.has_broke = 0;
10560 fra.me.REG_size = 13;
10561 fra.me.REG[0] = NIT_NULL;
10562 fra.me.REG[1] = NIT_NULL;
10563 fra.me.REG[2] = NIT_NULL;
10564 fra.me.REG[3] = NIT_NULL;
10565 fra.me.REG[4] = NIT_NULL;
10566 fra.me.REG[5] = NIT_NULL;
10567 fra.me.REG[6] = NIT_NULL;
10568 fra.me.REG[7] = NIT_NULL;
10569 fra.me.REG[8] = NIT_NULL;
10570 fra.me.REG[9] = NIT_NULL;
10571 fra.me.REG[10] = NIT_NULL;
10572 fra.me.REG[11] = NIT_NULL;
10573 fra.me.REG[12] = NIT_NULL;
10574 fra.me.REG[0] = p0;
10575 fra.me.REG[1] = p1;
10576 /* ./parser//parser.nit:2710 */
10577 fra.me.REG[2] = NIT_NULL;
10578 /* ./parser//parser.nit:2711 */
10579 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10580 /* ./parser//parser.nit:2712 */
10581 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10582 /* ./parser//parser.nit:2713 */
10583 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10584 /* ./parser//parser.nit:2714 */
10585 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10586 /* ./parser//parser.nit:2715 */
10587 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10588 /* ./parser//parser.nit:2716 */
10589 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10590 /* ./parser//parser.nit:2717 */
10591 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10592 /* ./parser//parser.nit:2718 */
10593 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10594 /* ./parser//parser.nit:2719 */
10595 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10596 /* ./parser//parser.nit:2720 */
10597 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10598 /* ./parser//parser.nit:2721 */
10599 fra.me.REG[10] = NEW_Array_array___Array___init();
10600 /* ./parser//parser.nit:2722 */
10601 fra.me.REG[11] = NEW_Array_array___Array___init();
10602 /* ./parser//parser.nit:2723 */
10603 fra.me.REG[12] = NEW_Array_array___Array___init();
10604 /* ./parser//parser.nit:2725 */
10605 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10606 if (UNTAG_Bool(REGB0)) {
10607 } else {
10608 nit_abort("Assert failed", NULL, LOCATE_parser, 2725);
10609 }
10610 /* ./parser//parser.nit:2727 */
10611 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10612 if (UNTAG_Bool(REGB0)) {
10613 } else {
10614 nit_abort("Assert failed", NULL, LOCATE_parser, 2727);
10615 }
10616 /* ./parser//parser.nit:2729 */
10617 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10618 if (UNTAG_Bool(REGB0)) {
10619 } else {
10620 nit_abort("Assert failed", NULL, LOCATE_parser, 2729);
10621 }
10622 /* ./parser//parser.nit:2731 */
10623 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10624 if (UNTAG_Bool(REGB0)) {
10625 } else {
10626 nit_abort("Assert failed", NULL, LOCATE_parser, 2731);
10627 }
10628 /* ./parser//parser.nit:2733 */
10629 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10630 if (UNTAG_Bool(REGB0)) {
10631 } else {
10632 nit_abort("Assert failed", NULL, LOCATE_parser, 2733);
10633 }
10634 /* ./parser//parser.nit:2735 */
10635 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10636 if (UNTAG_Bool(REGB0)) {
10637 } else {
10638 nit_abort("Assert failed", NULL, LOCATE_parser, 2735);
10639 }
10640 /* ./parser//parser.nit:2736 */
10641 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
10642 fra.me.REG[11] = fra.me.REG[4];
10643 /* ./parser//parser.nit:2738 */
10644 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10645 if (UNTAG_Bool(REGB0)) {
10646 } else {
10647 nit_abort("Assert failed", NULL, LOCATE_parser, 2738);
10648 }
10649 /* ./parser//parser.nit:2739 */
10650 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
10651 fra.me.REG[12] = fra.me.REG[3];
10652 /* ./parser//parser.nit:2740 */
10653 fra.me.REG[12] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
10654 /* ./parser//parser.nit:2750 */
10655 fra.me.REG[2] = fra.me.REG[12];
10656 /* ./parser//parser.nit:2751 */
10657 REGB0 = TAG_Bool(ATTR_parser___ReduceAction52____goto(fra.me.REG[0])!=NIT_NULL);
10658 if (UNTAG_Bool(REGB0)) {
10659 } else {
10660 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2751);
10661 }
10662 REGB0 = ATTR_parser___ReduceAction52____goto(fra.me.REG[0]);
10663 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10664 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10665 stack_frame_head = fra.me.prev;
10666 return;
10667 }
10668 void parser___ReduceAction52___init(val_t p0, val_t p1, int* init_table){
10669 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction52].i;
10670 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10671 val_t REGB0;
10672 val_t tmp;
10673 if (init_table[itpos55]) return;
10674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10675 fra.me.file = LOCATE_parser;
10676 fra.me.line = 2754;
10677 fra.me.meth = LOCATE_parser___ReduceAction52___init;
10678 fra.me.has_broke = 0;
10679 fra.me.REG_size = 2;
10680 fra.me.REG[0] = NIT_NULL;
10681 fra.me.REG[1] = NIT_NULL;
10682 fra.me.REG[0] = p0;
10683 REGB0 = p1;
10684 /* ./parser//parser.nit:2754 */
10685 fra.me.REG[1] = fra.me.REG[0];
10686 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10687 ATTR_parser___ReduceAction52____goto(fra.me.REG[1]) = REGB0;
10688 stack_frame_head = fra.me.prev;
10689 init_table[itpos55] = 1;
10690 return;
10691 }
10692 void parser___ReduceAction53___action(val_t p0, val_t p1){
10693 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
10694 val_t REGB0;
10695 val_t tmp;
10696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10697 fra.me.file = LOCATE_parser;
10698 fra.me.line = 2758;
10699 fra.me.meth = LOCATE_parser___ReduceAction53___action;
10700 fra.me.has_broke = 0;
10701 fra.me.REG_size = 13;
10702 fra.me.REG[0] = NIT_NULL;
10703 fra.me.REG[1] = NIT_NULL;
10704 fra.me.REG[2] = NIT_NULL;
10705 fra.me.REG[3] = NIT_NULL;
10706 fra.me.REG[4] = NIT_NULL;
10707 fra.me.REG[5] = NIT_NULL;
10708 fra.me.REG[6] = NIT_NULL;
10709 fra.me.REG[7] = NIT_NULL;
10710 fra.me.REG[8] = NIT_NULL;
10711 fra.me.REG[9] = NIT_NULL;
10712 fra.me.REG[10] = NIT_NULL;
10713 fra.me.REG[11] = NIT_NULL;
10714 fra.me.REG[12] = NIT_NULL;
10715 fra.me.REG[0] = p0;
10716 fra.me.REG[1] = p1;
10717 /* ./parser//parser.nit:2760 */
10718 fra.me.REG[2] = NIT_NULL;
10719 /* ./parser//parser.nit:2761 */
10720 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10721 /* ./parser//parser.nit:2762 */
10722 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10723 /* ./parser//parser.nit:2763 */
10724 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10725 /* ./parser//parser.nit:2764 */
10726 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10727 /* ./parser//parser.nit:2765 */
10728 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10729 /* ./parser//parser.nit:2766 */
10730 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10731 /* ./parser//parser.nit:2767 */
10732 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10733 /* ./parser//parser.nit:2768 */
10734 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10735 /* ./parser//parser.nit:2769 */
10736 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10737 /* ./parser//parser.nit:2770 */
10738 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10739 /* ./parser//parser.nit:2771 */
10740 fra.me.REG[10] = NEW_Array_array___Array___init();
10741 /* ./parser//parser.nit:2772 */
10742 fra.me.REG[11] = NEW_Array_array___Array___init();
10743 /* ./parser//parser.nit:2773 */
10744 fra.me.REG[12] = NEW_Array_array___Array___init();
10745 /* ./parser//parser.nit:2775 */
10746 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10747 if (UNTAG_Bool(REGB0)) {
10748 } else {
10749 nit_abort("Assert failed", NULL, LOCATE_parser, 2775);
10750 }
10751 /* ./parser//parser.nit:2777 */
10752 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10753 if (UNTAG_Bool(REGB0)) {
10754 } else {
10755 nit_abort("Assert failed", NULL, LOCATE_parser, 2777);
10756 }
10757 /* ./parser//parser.nit:2779 */
10758 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10759 if (UNTAG_Bool(REGB0)) {
10760 } else {
10761 nit_abort("Assert failed", NULL, LOCATE_parser, 2779);
10762 }
10763 /* ./parser//parser.nit:2781 */
10764 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10765 if (UNTAG_Bool(REGB0)) {
10766 } else {
10767 nit_abort("Assert failed", NULL, LOCATE_parser, 2781);
10768 }
10769 /* ./parser//parser.nit:2783 */
10770 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10771 if (UNTAG_Bool(REGB0)) {
10772 } else {
10773 nit_abort("Assert failed", NULL, LOCATE_parser, 2783);
10774 }
10775 /* ./parser//parser.nit:2784 */
10776 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[5]);
10777 fra.me.REG[10] = fra.me.REG[5];
10778 /* ./parser//parser.nit:2786 */
10779 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10780 if (UNTAG_Bool(REGB0)) {
10781 } else {
10782 nit_abort("Assert failed", NULL, LOCATE_parser, 2786);
10783 }
10784 /* ./parser//parser.nit:2787 */
10785 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
10786 fra.me.REG[11] = fra.me.REG[4];
10787 /* ./parser//parser.nit:2789 */
10788 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10789 if (UNTAG_Bool(REGB0)) {
10790 } else {
10791 nit_abort("Assert failed", NULL, LOCATE_parser, 2789);
10792 }
10793 /* ./parser//parser.nit:2790 */
10794 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
10795 fra.me.REG[12] = fra.me.REG[3];
10796 /* ./parser//parser.nit:2791 */
10797 fra.me.REG[12] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
10798 /* ./parser//parser.nit:2801 */
10799 fra.me.REG[2] = fra.me.REG[12];
10800 /* ./parser//parser.nit:2802 */
10801 REGB0 = TAG_Bool(ATTR_parser___ReduceAction53____goto(fra.me.REG[0])!=NIT_NULL);
10802 if (UNTAG_Bool(REGB0)) {
10803 } else {
10804 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2802);
10805 }
10806 REGB0 = ATTR_parser___ReduceAction53____goto(fra.me.REG[0]);
10807 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10808 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10809 stack_frame_head = fra.me.prev;
10810 return;
10811 }
10812 void parser___ReduceAction53___init(val_t p0, val_t p1, int* init_table){
10813 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction53].i;
10814 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10815 val_t REGB0;
10816 val_t tmp;
10817 if (init_table[itpos56]) return;
10818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10819 fra.me.file = LOCATE_parser;
10820 fra.me.line = 2805;
10821 fra.me.meth = LOCATE_parser___ReduceAction53___init;
10822 fra.me.has_broke = 0;
10823 fra.me.REG_size = 2;
10824 fra.me.REG[0] = NIT_NULL;
10825 fra.me.REG[1] = NIT_NULL;
10826 fra.me.REG[0] = p0;
10827 REGB0 = p1;
10828 /* ./parser//parser.nit:2805 */
10829 fra.me.REG[1] = fra.me.REG[0];
10830 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10831 ATTR_parser___ReduceAction53____goto(fra.me.REG[1]) = REGB0;
10832 stack_frame_head = fra.me.prev;
10833 init_table[itpos56] = 1;
10834 return;
10835 }
10836 void parser___ReduceAction54___action(val_t p0, val_t p1){
10837 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
10838 val_t REGB0;
10839 val_t tmp;
10840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10841 fra.me.file = LOCATE_parser;
10842 fra.me.line = 2809;
10843 fra.me.meth = LOCATE_parser___ReduceAction54___action;
10844 fra.me.has_broke = 0;
10845 fra.me.REG_size = 14;
10846 fra.me.REG[0] = NIT_NULL;
10847 fra.me.REG[1] = NIT_NULL;
10848 fra.me.REG[2] = NIT_NULL;
10849 fra.me.REG[3] = NIT_NULL;
10850 fra.me.REG[4] = NIT_NULL;
10851 fra.me.REG[5] = NIT_NULL;
10852 fra.me.REG[6] = NIT_NULL;
10853 fra.me.REG[7] = NIT_NULL;
10854 fra.me.REG[8] = NIT_NULL;
10855 fra.me.REG[9] = NIT_NULL;
10856 fra.me.REG[10] = NIT_NULL;
10857 fra.me.REG[11] = NIT_NULL;
10858 fra.me.REG[12] = NIT_NULL;
10859 fra.me.REG[13] = NIT_NULL;
10860 fra.me.REG[0] = p0;
10861 fra.me.REG[1] = p1;
10862 /* ./parser//parser.nit:2811 */
10863 fra.me.REG[2] = NIT_NULL;
10864 /* ./parser//parser.nit:2812 */
10865 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10866 /* ./parser//parser.nit:2813 */
10867 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10868 /* ./parser//parser.nit:2814 */
10869 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10870 /* ./parser//parser.nit:2815 */
10871 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10872 /* ./parser//parser.nit:2816 */
10873 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10874 /* ./parser//parser.nit:2817 */
10875 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10876 /* ./parser//parser.nit:2818 */
10877 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10878 /* ./parser//parser.nit:2819 */
10879 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10880 /* ./parser//parser.nit:2820 */
10881 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10882 /* ./parser//parser.nit:2821 */
10883 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10884 /* ./parser//parser.nit:2822 */
10885 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10886 /* ./parser//parser.nit:2823 */
10887 fra.me.REG[11] = NEW_Array_array___Array___init();
10888 /* ./parser//parser.nit:2824 */
10889 fra.me.REG[12] = NEW_Array_array___Array___init();
10890 /* ./parser//parser.nit:2825 */
10891 fra.me.REG[13] = NEW_Array_array___Array___init();
10892 /* ./parser//parser.nit:2827 */
10893 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10894 if (UNTAG_Bool(REGB0)) {
10895 } else {
10896 nit_abort("Assert failed", NULL, LOCATE_parser, 2827);
10897 }
10898 /* ./parser//parser.nit:2829 */
10899 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10900 if (UNTAG_Bool(REGB0)) {
10901 } else {
10902 nit_abort("Assert failed", NULL, LOCATE_parser, 2829);
10903 }
10904 /* ./parser//parser.nit:2831 */
10905 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10906 if (UNTAG_Bool(REGB0)) {
10907 } else {
10908 nit_abort("Assert failed", NULL, LOCATE_parser, 2831);
10909 }
10910 /* ./parser//parser.nit:2833 */
10911 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10912 if (UNTAG_Bool(REGB0)) {
10913 } else {
10914 nit_abort("Assert failed", NULL, LOCATE_parser, 2833);
10915 }
10916 /* ./parser//parser.nit:2835 */
10917 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10918 if (UNTAG_Bool(REGB0)) {
10919 } else {
10920 nit_abort("Assert failed", NULL, LOCATE_parser, 2835);
10921 }
10922 /* ./parser//parser.nit:2837 */
10923 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10924 if (UNTAG_Bool(REGB0)) {
10925 } else {
10926 nit_abort("Assert failed", NULL, LOCATE_parser, 2837);
10927 }
10928 /* ./parser//parser.nit:2838 */
10929 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[5]);
10930 fra.me.REG[11] = fra.me.REG[5];
10931 /* ./parser//parser.nit:2840 */
10932 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10933 if (UNTAG_Bool(REGB0)) {
10934 } else {
10935 nit_abort("Assert failed", NULL, LOCATE_parser, 2840);
10936 }
10937 /* ./parser//parser.nit:2841 */
10938 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
10939 fra.me.REG[12] = fra.me.REG[4];
10940 /* ./parser//parser.nit:2843 */
10941 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10942 if (UNTAG_Bool(REGB0)) {
10943 } else {
10944 nit_abort("Assert failed", NULL, LOCATE_parser, 2843);
10945 }
10946 /* ./parser//parser.nit:2844 */
10947 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[3]);
10948 fra.me.REG[13] = fra.me.REG[3];
10949 /* ./parser//parser.nit:2845 */
10950 fra.me.REG[13] = NEW_AStdClassdef_parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[11], fra.me.REG[12], fra.me.REG[13]);
10951 /* ./parser//parser.nit:2855 */
10952 fra.me.REG[2] = fra.me.REG[13];
10953 /* ./parser//parser.nit:2856 */
10954 REGB0 = TAG_Bool(ATTR_parser___ReduceAction54____goto(fra.me.REG[0])!=NIT_NULL);
10955 if (UNTAG_Bool(REGB0)) {
10956 } else {
10957 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2856);
10958 }
10959 REGB0 = ATTR_parser___ReduceAction54____goto(fra.me.REG[0]);
10960 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10961 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10962 stack_frame_head = fra.me.prev;
10963 return;
10964 }
10965 void parser___ReduceAction54___init(val_t p0, val_t p1, int* init_table){
10966 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction54].i;
10967 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10968 val_t REGB0;
10969 val_t tmp;
10970 if (init_table[itpos57]) return;
10971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10972 fra.me.file = LOCATE_parser;
10973 fra.me.line = 2859;
10974 fra.me.meth = LOCATE_parser___ReduceAction54___init;
10975 fra.me.has_broke = 0;
10976 fra.me.REG_size = 2;
10977 fra.me.REG[0] = NIT_NULL;
10978 fra.me.REG[1] = NIT_NULL;
10979 fra.me.REG[0] = p0;
10980 REGB0 = p1;
10981 /* ./parser//parser.nit:2859 */
10982 fra.me.REG[1] = fra.me.REG[0];
10983 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10984 ATTR_parser___ReduceAction54____goto(fra.me.REG[1]) = REGB0;
10985 stack_frame_head = fra.me.prev;
10986 init_table[itpos57] = 1;
10987 return;
10988 }
10989 void parser___ReduceAction55___action(val_t p0, val_t p1){
10990 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10991 val_t REGB0;
10992 val_t tmp;
10993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10994 fra.me.file = LOCATE_parser;
10995 fra.me.line = 2863;
10996 fra.me.meth = LOCATE_parser___ReduceAction55___action;
10997 fra.me.has_broke = 0;
10998 fra.me.REG_size = 4;
10999 fra.me.REG[0] = NIT_NULL;
11000 fra.me.REG[1] = NIT_NULL;
11001 fra.me.REG[2] = NIT_NULL;
11002 fra.me.REG[3] = NIT_NULL;
11003 fra.me.REG[0] = p0;
11004 fra.me.REG[1] = p1;
11005 /* ./parser//parser.nit:2865 */
11006 fra.me.REG[2] = NIT_NULL;
11007 /* ./parser//parser.nit:2866 */
11008 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11009 /* ./parser//parser.nit:2868 */
11010 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwclass, ID_TKwclass)) /*cast nullable TKwclass*/;
11011 if (UNTAG_Bool(REGB0)) {
11012 } else {
11013 nit_abort("Assert failed", NULL, LOCATE_parser, 2868);
11014 }
11015 /* ./parser//parser.nit:2869 */
11016 fra.me.REG[3] = NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind(fra.me.REG[3]);
11017 /* ./parser//parser.nit:2872 */
11018 fra.me.REG[2] = fra.me.REG[3];
11019 /* ./parser//parser.nit:2873 */
11020 REGB0 = TAG_Bool(ATTR_parser___ReduceAction55____goto(fra.me.REG[0])!=NIT_NULL);
11021 if (UNTAG_Bool(REGB0)) {
11022 } else {
11023 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2873);
11024 }
11025 REGB0 = ATTR_parser___ReduceAction55____goto(fra.me.REG[0]);
11026 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11027 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11028 stack_frame_head = fra.me.prev;
11029 return;
11030 }
11031 void parser___ReduceAction55___init(val_t p0, val_t p1, int* init_table){
11032 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction55].i;
11033 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11034 val_t REGB0;
11035 val_t tmp;
11036 if (init_table[itpos58]) return;
11037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11038 fra.me.file = LOCATE_parser;
11039 fra.me.line = 2876;
11040 fra.me.meth = LOCATE_parser___ReduceAction55___init;
11041 fra.me.has_broke = 0;
11042 fra.me.REG_size = 2;
11043 fra.me.REG[0] = NIT_NULL;
11044 fra.me.REG[1] = NIT_NULL;
11045 fra.me.REG[0] = p0;
11046 REGB0 = p1;
11047 /* ./parser//parser.nit:2876 */
11048 fra.me.REG[1] = fra.me.REG[0];
11049 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11050 ATTR_parser___ReduceAction55____goto(fra.me.REG[1]) = REGB0;
11051 stack_frame_head = fra.me.prev;
11052 init_table[itpos58] = 1;
11053 return;
11054 }
11055 void parser___ReduceAction56___action(val_t p0, val_t p1){
11056 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11057 val_t REGB0;
11058 val_t tmp;
11059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11060 fra.me.file = LOCATE_parser;
11061 fra.me.line = 2880;
11062 fra.me.meth = LOCATE_parser___ReduceAction56___action;
11063 fra.me.has_broke = 0;
11064 fra.me.REG_size = 5;
11065 fra.me.REG[0] = NIT_NULL;
11066 fra.me.REG[1] = NIT_NULL;
11067 fra.me.REG[2] = NIT_NULL;
11068 fra.me.REG[3] = NIT_NULL;
11069 fra.me.REG[4] = NIT_NULL;
11070 fra.me.REG[0] = p0;
11071 fra.me.REG[1] = p1;
11072 /* ./parser//parser.nit:2882 */
11073 fra.me.REG[2] = NIT_NULL;
11074 /* ./parser//parser.nit:2883 */
11075 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11076 /* ./parser//parser.nit:2884 */
11077 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11078 /* ./parser//parser.nit:2886 */
11079 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwabstract, ID_TKwabstract)) /*cast nullable TKwabstract*/;
11080 if (UNTAG_Bool(REGB0)) {
11081 } else {
11082 nit_abort("Assert failed", NULL, LOCATE_parser, 2886);
11083 }
11084 /* ./parser//parser.nit:2888 */
11085 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwclass, ID_TKwclass)) /*cast nullable TKwclass*/;
11086 if (UNTAG_Bool(REGB0)) {
11087 } else {
11088 nit_abort("Assert failed", NULL, LOCATE_parser, 2888);
11089 }
11090 /* ./parser//parser.nit:2889 */
11091 fra.me.REG[3] = NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind(fra.me.REG[4], fra.me.REG[3]);
11092 /* ./parser//parser.nit:2893 */
11093 fra.me.REG[2] = fra.me.REG[3];
11094 /* ./parser//parser.nit:2894 */
11095 REGB0 = TAG_Bool(ATTR_parser___ReduceAction56____goto(fra.me.REG[0])!=NIT_NULL);
11096 if (UNTAG_Bool(REGB0)) {
11097 } else {
11098 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2894);
11099 }
11100 REGB0 = ATTR_parser___ReduceAction56____goto(fra.me.REG[0]);
11101 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11102 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11103 stack_frame_head = fra.me.prev;
11104 return;
11105 }
11106 void parser___ReduceAction56___init(val_t p0, val_t p1, int* init_table){
11107 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction56].i;
11108 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11109 val_t REGB0;
11110 val_t tmp;
11111 if (init_table[itpos59]) return;
11112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11113 fra.me.file = LOCATE_parser;
11114 fra.me.line = 2897;
11115 fra.me.meth = LOCATE_parser___ReduceAction56___init;
11116 fra.me.has_broke = 0;
11117 fra.me.REG_size = 2;
11118 fra.me.REG[0] = NIT_NULL;
11119 fra.me.REG[1] = NIT_NULL;
11120 fra.me.REG[0] = p0;
11121 REGB0 = p1;
11122 /* ./parser//parser.nit:2897 */
11123 fra.me.REG[1] = fra.me.REG[0];
11124 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11125 ATTR_parser___ReduceAction56____goto(fra.me.REG[1]) = REGB0;
11126 stack_frame_head = fra.me.prev;
11127 init_table[itpos59] = 1;
11128 return;
11129 }
11130 void parser___ReduceAction57___action(val_t p0, val_t p1){
11131 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11132 val_t REGB0;
11133 val_t tmp;
11134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11135 fra.me.file = LOCATE_parser;
11136 fra.me.line = 2901;
11137 fra.me.meth = LOCATE_parser___ReduceAction57___action;
11138 fra.me.has_broke = 0;
11139 fra.me.REG_size = 4;
11140 fra.me.REG[0] = NIT_NULL;
11141 fra.me.REG[1] = NIT_NULL;
11142 fra.me.REG[2] = NIT_NULL;
11143 fra.me.REG[3] = NIT_NULL;
11144 fra.me.REG[0] = p0;
11145 fra.me.REG[1] = p1;
11146 /* ./parser//parser.nit:2903 */
11147 fra.me.REG[2] = NIT_NULL;
11148 /* ./parser//parser.nit:2904 */
11149 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11150 /* ./parser//parser.nit:2906 */
11151 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwinterface, ID_TKwinterface)) /*cast nullable TKwinterface*/;
11152 if (UNTAG_Bool(REGB0)) {
11153 } else {
11154 nit_abort("Assert failed", NULL, LOCATE_parser, 2906);
11155 }
11156 /* ./parser//parser.nit:2907 */
11157 fra.me.REG[3] = NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(fra.me.REG[3]);
11158 /* ./parser//parser.nit:2910 */
11159 fra.me.REG[2] = fra.me.REG[3];
11160 /* ./parser//parser.nit:2911 */
11161 REGB0 = TAG_Bool(ATTR_parser___ReduceAction57____goto(fra.me.REG[0])!=NIT_NULL);
11162 if (UNTAG_Bool(REGB0)) {
11163 } else {
11164 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2911);
11165 }
11166 REGB0 = ATTR_parser___ReduceAction57____goto(fra.me.REG[0]);
11167 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11168 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11169 stack_frame_head = fra.me.prev;
11170 return;
11171 }
11172 void parser___ReduceAction57___init(val_t p0, val_t p1, int* init_table){
11173 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction57].i;
11174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11175 val_t REGB0;
11176 val_t tmp;
11177 if (init_table[itpos60]) return;
11178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11179 fra.me.file = LOCATE_parser;
11180 fra.me.line = 2914;
11181 fra.me.meth = LOCATE_parser___ReduceAction57___init;
11182 fra.me.has_broke = 0;
11183 fra.me.REG_size = 2;
11184 fra.me.REG[0] = NIT_NULL;
11185 fra.me.REG[1] = NIT_NULL;
11186 fra.me.REG[0] = p0;
11187 REGB0 = p1;
11188 /* ./parser//parser.nit:2914 */
11189 fra.me.REG[1] = fra.me.REG[0];
11190 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11191 ATTR_parser___ReduceAction57____goto(fra.me.REG[1]) = REGB0;
11192 stack_frame_head = fra.me.prev;
11193 init_table[itpos60] = 1;
11194 return;
11195 }
11196 void parser___ReduceAction58___action(val_t p0, val_t p1){
11197 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11198 val_t REGB0;
11199 val_t tmp;
11200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11201 fra.me.file = LOCATE_parser;
11202 fra.me.line = 2918;
11203 fra.me.meth = LOCATE_parser___ReduceAction58___action;
11204 fra.me.has_broke = 0;
11205 fra.me.REG_size = 4;
11206 fra.me.REG[0] = NIT_NULL;
11207 fra.me.REG[1] = NIT_NULL;
11208 fra.me.REG[2] = NIT_NULL;
11209 fra.me.REG[3] = NIT_NULL;
11210 fra.me.REG[0] = p0;
11211 fra.me.REG[1] = p1;
11212 /* ./parser//parser.nit:2920 */
11213 fra.me.REG[2] = NIT_NULL;
11214 /* ./parser//parser.nit:2921 */
11215 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11216 /* ./parser//parser.nit:2923 */
11217 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwenum, ID_TKwenum)) /*cast nullable TKwenum*/;
11218 if (UNTAG_Bool(REGB0)) {
11219 } else {
11220 nit_abort("Assert failed", NULL, LOCATE_parser, 2923);
11221 }
11222 /* ./parser//parser.nit:2924 */
11223 fra.me.REG[3] = NEW_AEnumClasskind_parser_prod___AEnumClasskind___init_aenumclasskind(fra.me.REG[3]);
11224 /* ./parser//parser.nit:2927 */
11225 fra.me.REG[2] = fra.me.REG[3];
11226 /* ./parser//parser.nit:2928 */
11227 REGB0 = TAG_Bool(ATTR_parser___ReduceAction58____goto(fra.me.REG[0])!=NIT_NULL);
11228 if (UNTAG_Bool(REGB0)) {
11229 } else {
11230 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2928);
11231 }
11232 REGB0 = ATTR_parser___ReduceAction58____goto(fra.me.REG[0]);
11233 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11234 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11235 stack_frame_head = fra.me.prev;
11236 return;
11237 }
11238 void parser___ReduceAction58___init(val_t p0, val_t p1, int* init_table){
11239 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction58].i;
11240 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11241 val_t REGB0;
11242 val_t tmp;
11243 if (init_table[itpos61]) return;
11244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11245 fra.me.file = LOCATE_parser;
11246 fra.me.line = 2931;
11247 fra.me.meth = LOCATE_parser___ReduceAction58___init;
11248 fra.me.has_broke = 0;
11249 fra.me.REG_size = 2;
11250 fra.me.REG[0] = NIT_NULL;
11251 fra.me.REG[1] = NIT_NULL;
11252 fra.me.REG[0] = p0;
11253 REGB0 = p1;
11254 /* ./parser//parser.nit:2931 */
11255 fra.me.REG[1] = fra.me.REG[0];
11256 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11257 ATTR_parser___ReduceAction58____goto(fra.me.REG[1]) = REGB0;
11258 stack_frame_head = fra.me.prev;
11259 init_table[itpos61] = 1;
11260 return;
11261 }
11262 void parser___ReduceAction59___action(val_t p0, val_t p1){
11263 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11264 val_t REGB0;
11265 val_t REGB1;
11266 val_t tmp;
11267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11268 fra.me.file = LOCATE_parser;
11269 fra.me.line = 2935;
11270 fra.me.meth = LOCATE_parser___ReduceAction59___action;
11271 fra.me.has_broke = 0;
11272 fra.me.REG_size = 5;
11273 fra.me.REG[0] = NIT_NULL;
11274 fra.me.REG[1] = NIT_NULL;
11275 fra.me.REG[2] = NIT_NULL;
11276 fra.me.REG[3] = NIT_NULL;
11277 fra.me.REG[4] = NIT_NULL;
11278 fra.me.REG[0] = p0;
11279 fra.me.REG[1] = p1;
11280 /* ./parser//parser.nit:2937 */
11281 fra.me.REG[2] = NIT_NULL;
11282 /* ./parser//parser.nit:2938 */
11283 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11284 /* ./parser//parser.nit:2939 */
11285 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11286 /* ./parser//parser.nit:2940 */
11287 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11288 /* ./parser//parser.nit:2941 */
11289 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11290 /* ./parser//parser.nit:2942 */
11291 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11292 /* ./parser//parser.nit:2943 */
11293 fra.me.REG[4] = NEW_Array_array___Array___init();
11294 /* ./parser//parser.nit:2945 */
11295 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11296 if (UNTAG_Bool(REGB0)) {
11297 } else {
11298 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11299 if (UNTAG_Bool(REGB1)) {
11300 REGB1 = TAG_Bool(false);
11301 REGB0 = REGB1;
11302 } else {
11303 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11304 REGB0 = REGB1;
11305 }
11306 }
11307 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11308 if (UNTAG_Bool(REGB0)) {
11309 /* ./parser//parser.nit:2946 */
11310 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
11311 }
11312 /* ./parser//parser.nit:2948 */
11313 fra.me.REG[2] = fra.me.REG[4];
11314 /* ./parser//parser.nit:2949 */
11315 REGB0 = TAG_Bool(ATTR_parser___ReduceAction59____goto(fra.me.REG[0])!=NIT_NULL);
11316 if (UNTAG_Bool(REGB0)) {
11317 } else {
11318 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2949);
11319 }
11320 REGB0 = ATTR_parser___ReduceAction59____goto(fra.me.REG[0]);
11321 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11322 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11323 stack_frame_head = fra.me.prev;
11324 return;
11325 }
11326 void parser___ReduceAction59___init(val_t p0, val_t p1, int* init_table){
11327 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction59].i;
11328 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11329 val_t REGB0;
11330 val_t tmp;
11331 if (init_table[itpos62]) return;
11332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11333 fra.me.file = LOCATE_parser;
11334 fra.me.line = 2952;
11335 fra.me.meth = LOCATE_parser___ReduceAction59___init;
11336 fra.me.has_broke = 0;
11337 fra.me.REG_size = 2;
11338 fra.me.REG[0] = NIT_NULL;
11339 fra.me.REG[1] = NIT_NULL;
11340 fra.me.REG[0] = p0;
11341 REGB0 = p1;
11342 /* ./parser//parser.nit:2952 */
11343 fra.me.REG[1] = fra.me.REG[0];
11344 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11345 ATTR_parser___ReduceAction59____goto(fra.me.REG[1]) = REGB0;
11346 stack_frame_head = fra.me.prev;
11347 init_table[itpos62] = 1;
11348 return;
11349 }
11350 void parser___ReduceAction60___action(val_t p0, val_t p1){
11351 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
11352 val_t REGB0;
11353 val_t REGB1;
11354 val_t tmp;
11355 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11356 fra.me.file = LOCATE_parser;
11357 fra.me.line = 2956;
11358 fra.me.meth = LOCATE_parser___ReduceAction60___action;
11359 fra.me.has_broke = 0;
11360 fra.me.REG_size = 6;
11361 fra.me.REG[0] = NIT_NULL;
11362 fra.me.REG[1] = NIT_NULL;
11363 fra.me.REG[2] = NIT_NULL;
11364 fra.me.REG[3] = NIT_NULL;
11365 fra.me.REG[4] = NIT_NULL;
11366 fra.me.REG[5] = NIT_NULL;
11367 fra.me.REG[0] = p0;
11368 fra.me.REG[1] = p1;
11369 /* ./parser//parser.nit:2958 */
11370 fra.me.REG[2] = NIT_NULL;
11371 /* ./parser//parser.nit:2959 */
11372 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11373 /* ./parser//parser.nit:2960 */
11374 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11375 /* ./parser//parser.nit:2961 */
11376 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11377 /* ./parser//parser.nit:2962 */
11378 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11379 /* ./parser//parser.nit:2963 */
11380 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11381 /* ./parser//parser.nit:2964 */
11382 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11383 /* ./parser//parser.nit:2965 */
11384 fra.me.REG[5] = NEW_Array_array___Array___init();
11385 /* ./parser//parser.nit:2968 */
11386 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
11387 if (UNTAG_Bool(REGB0)) {
11388 } else {
11389 nit_abort("Assert failed", NULL, LOCATE_parser, 2968);
11390 }
11391 /* ./parser//parser.nit:2969 */
11392 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11393 if (UNTAG_Bool(REGB0)) {
11394 } else {
11395 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11396 if (UNTAG_Bool(REGB1)) {
11397 REGB1 = TAG_Bool(false);
11398 REGB0 = REGB1;
11399 } else {
11400 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
11401 REGB0 = REGB1;
11402 }
11403 }
11404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11405 if (UNTAG_Bool(REGB0)) {
11406 /* ./parser//parser.nit:2970 */
11407 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
11408 }
11409 /* ./parser//parser.nit:2972 */
11410 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
11411 fra.me.REG[5] = fra.me.REG[3];
11412 /* ./parser//parser.nit:2973 */
11413 fra.me.REG[2] = fra.me.REG[5];
11414 /* ./parser//parser.nit:2974 */
11415 REGB0 = TAG_Bool(ATTR_parser___ReduceAction60____goto(fra.me.REG[0])!=NIT_NULL);
11416 if (UNTAG_Bool(REGB0)) {
11417 } else {
11418 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2974);
11419 }
11420 REGB0 = ATTR_parser___ReduceAction60____goto(fra.me.REG[0]);
11421 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11422 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11423 stack_frame_head = fra.me.prev;
11424 return;
11425 }
11426 void parser___ReduceAction60___init(val_t p0, val_t p1, int* init_table){
11427 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction60].i;
11428 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11429 val_t REGB0;
11430 val_t tmp;
11431 if (init_table[itpos63]) return;
11432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11433 fra.me.file = LOCATE_parser;
11434 fra.me.line = 2977;
11435 fra.me.meth = LOCATE_parser___ReduceAction60___init;
11436 fra.me.has_broke = 0;
11437 fra.me.REG_size = 2;
11438 fra.me.REG[0] = NIT_NULL;
11439 fra.me.REG[1] = NIT_NULL;
11440 fra.me.REG[0] = p0;
11441 REGB0 = p1;
11442 /* ./parser//parser.nit:2977 */
11443 fra.me.REG[1] = fra.me.REG[0];
11444 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11445 ATTR_parser___ReduceAction60____goto(fra.me.REG[1]) = REGB0;
11446 stack_frame_head = fra.me.prev;
11447 init_table[itpos63] = 1;
11448 return;
11449 }
11450 void parser___ReduceAction61___action(val_t p0, val_t p1){
11451 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11452 val_t REGB0;
11453 val_t tmp;
11454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11455 fra.me.file = LOCATE_parser;
11456 fra.me.line = 2981;
11457 fra.me.meth = LOCATE_parser___ReduceAction61___action;
11458 fra.me.has_broke = 0;
11459 fra.me.REG_size = 5;
11460 fra.me.REG[0] = NIT_NULL;
11461 fra.me.REG[1] = NIT_NULL;
11462 fra.me.REG[2] = NIT_NULL;
11463 fra.me.REG[3] = NIT_NULL;
11464 fra.me.REG[4] = NIT_NULL;
11465 fra.me.REG[0] = p0;
11466 fra.me.REG[1] = p1;
11467 /* ./parser//parser.nit:2983 */
11468 fra.me.REG[2] = NIT_NULL;
11469 /* ./parser//parser.nit:2984 */
11470 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11471 /* ./parser//parser.nit:2985 */
11472 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11473 /* ./parser//parser.nit:2986 */
11474 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11475 /* ./parser//parser.nit:2988 */
11476 fra.me.REG[2] = fra.me.REG[3];
11477 /* ./parser//parser.nit:2989 */
11478 REGB0 = TAG_Bool(ATTR_parser___ReduceAction61____goto(fra.me.REG[0])!=NIT_NULL);
11479 if (UNTAG_Bool(REGB0)) {
11480 } else {
11481 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2989);
11482 }
11483 REGB0 = ATTR_parser___ReduceAction61____goto(fra.me.REG[0]);
11484 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11485 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11486 stack_frame_head = fra.me.prev;
11487 return;
11488 }
11489 void parser___ReduceAction61___init(val_t p0, val_t p1, int* init_table){
11490 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction61].i;
11491 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11492 val_t REGB0;
11493 val_t tmp;
11494 if (init_table[itpos64]) return;
11495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11496 fra.me.file = LOCATE_parser;
11497 fra.me.line = 2992;
11498 fra.me.meth = LOCATE_parser___ReduceAction61___init;
11499 fra.me.has_broke = 0;
11500 fra.me.REG_size = 2;
11501 fra.me.REG[0] = NIT_NULL;
11502 fra.me.REG[1] = NIT_NULL;
11503 fra.me.REG[0] = p0;
11504 REGB0 = p1;
11505 /* ./parser//parser.nit:2992 */
11506 fra.me.REG[1] = fra.me.REG[0];
11507 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11508 ATTR_parser___ReduceAction61____goto(fra.me.REG[1]) = REGB0;
11509 stack_frame_head = fra.me.prev;
11510 init_table[itpos64] = 1;
11511 return;
11512 }
11513 void parser___ReduceAction62___action(val_t p0, val_t p1){
11514 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11515 val_t REGB0;
11516 val_t tmp;
11517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11518 fra.me.file = LOCATE_parser;
11519 fra.me.line = 2996;
11520 fra.me.meth = LOCATE_parser___ReduceAction62___action;
11521 fra.me.has_broke = 0;
11522 fra.me.REG_size = 4;
11523 fra.me.REG[0] = NIT_NULL;
11524 fra.me.REG[1] = NIT_NULL;
11525 fra.me.REG[2] = NIT_NULL;
11526 fra.me.REG[3] = NIT_NULL;
11527 fra.me.REG[0] = p0;
11528 fra.me.REG[1] = p1;
11529 /* ./parser//parser.nit:2998 */
11530 fra.me.REG[2] = NIT_NULL;
11531 /* ./parser//parser.nit:2999 */
11532 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11533 /* ./parser//parser.nit:3001 */
11534 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
11535 if (UNTAG_Bool(REGB0)) {
11536 } else {
11537 nit_abort("Assert failed", NULL, LOCATE_parser, 3001);
11538 }
11539 /* ./parser//parser.nit:3002 */
11540 fra.me.REG[3] = NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(fra.me.REG[3], NIT_NULL);
11541 /* ./parser//parser.nit:3006 */
11542 fra.me.REG[2] = fra.me.REG[3];
11543 /* ./parser//parser.nit:3007 */
11544 REGB0 = TAG_Bool(ATTR_parser___ReduceAction62____goto(fra.me.REG[0])!=NIT_NULL);
11545 if (UNTAG_Bool(REGB0)) {
11546 } else {
11547 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3007);
11548 }
11549 REGB0 = ATTR_parser___ReduceAction62____goto(fra.me.REG[0]);
11550 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11551 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11552 stack_frame_head = fra.me.prev;
11553 return;
11554 }
11555 void parser___ReduceAction62___init(val_t p0, val_t p1, int* init_table){
11556 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction62].i;
11557 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11558 val_t REGB0;
11559 val_t tmp;
11560 if (init_table[itpos65]) return;
11561 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11562 fra.me.file = LOCATE_parser;
11563 fra.me.line = 3010;
11564 fra.me.meth = LOCATE_parser___ReduceAction62___init;
11565 fra.me.has_broke = 0;
11566 fra.me.REG_size = 2;
11567 fra.me.REG[0] = NIT_NULL;
11568 fra.me.REG[1] = NIT_NULL;
11569 fra.me.REG[0] = p0;
11570 REGB0 = p1;
11571 /* ./parser//parser.nit:3010 */
11572 fra.me.REG[1] = fra.me.REG[0];
11573 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11574 ATTR_parser___ReduceAction62____goto(fra.me.REG[1]) = REGB0;
11575 stack_frame_head = fra.me.prev;
11576 init_table[itpos65] = 1;
11577 return;
11578 }
11579 void parser___ReduceAction63___action(val_t p0, val_t p1){
11580 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11581 val_t REGB0;
11582 val_t tmp;
11583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11584 fra.me.file = LOCATE_parser;
11585 fra.me.line = 3014;
11586 fra.me.meth = LOCATE_parser___ReduceAction63___action;
11587 fra.me.has_broke = 0;
11588 fra.me.REG_size = 5;
11589 fra.me.REG[0] = NIT_NULL;
11590 fra.me.REG[1] = NIT_NULL;
11591 fra.me.REG[2] = NIT_NULL;
11592 fra.me.REG[3] = NIT_NULL;
11593 fra.me.REG[4] = NIT_NULL;
11594 fra.me.REG[0] = p0;
11595 fra.me.REG[1] = p1;
11596 /* ./parser//parser.nit:3016 */
11597 fra.me.REG[2] = NIT_NULL;
11598 /* ./parser//parser.nit:3017 */
11599 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11600 /* ./parser//parser.nit:3018 */
11601 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11602 /* ./parser//parser.nit:3020 */
11603 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
11604 if (UNTAG_Bool(REGB0)) {
11605 } else {
11606 nit_abort("Assert failed", NULL, LOCATE_parser, 3020);
11607 }
11608 /* ./parser//parser.nit:3022 */
11609 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
11610 if (UNTAG_Bool(REGB0)) {
11611 } else {
11612 nit_abort("Assert failed", NULL, LOCATE_parser, 3022);
11613 }
11614 /* ./parser//parser.nit:3023 */
11615 fra.me.REG[3] = NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(fra.me.REG[4], fra.me.REG[3]);
11616 /* ./parser//parser.nit:3027 */
11617 fra.me.REG[2] = fra.me.REG[3];
11618 /* ./parser//parser.nit:3028 */
11619 REGB0 = TAG_Bool(ATTR_parser___ReduceAction63____goto(fra.me.REG[0])!=NIT_NULL);
11620 if (UNTAG_Bool(REGB0)) {
11621 } else {
11622 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3028);
11623 }
11624 REGB0 = ATTR_parser___ReduceAction63____goto(fra.me.REG[0]);
11625 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11626 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11627 stack_frame_head = fra.me.prev;
11628 return;
11629 }
11630 void parser___ReduceAction63___init(val_t p0, val_t p1, int* init_table){
11631 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction63].i;
11632 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11633 val_t REGB0;
11634 val_t tmp;
11635 if (init_table[itpos66]) return;
11636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11637 fra.me.file = LOCATE_parser;
11638 fra.me.line = 3031;
11639 fra.me.meth = LOCATE_parser___ReduceAction63___init;
11640 fra.me.has_broke = 0;
11641 fra.me.REG_size = 2;
11642 fra.me.REG[0] = NIT_NULL;
11643 fra.me.REG[1] = NIT_NULL;
11644 fra.me.REG[0] = p0;
11645 REGB0 = p1;
11646 /* ./parser//parser.nit:3031 */
11647 fra.me.REG[1] = fra.me.REG[0];
11648 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11649 ATTR_parser___ReduceAction63____goto(fra.me.REG[1]) = REGB0;
11650 stack_frame_head = fra.me.prev;
11651 init_table[itpos66] = 1;
11652 return;
11653 }
11654 void parser___ReduceAction64___action(val_t p0, val_t p1){
11655 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
11656 val_t REGB0;
11657 val_t tmp;
11658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11659 fra.me.file = LOCATE_parser;
11660 fra.me.line = 3035;
11661 fra.me.meth = LOCATE_parser___ReduceAction64___action;
11662 fra.me.has_broke = 0;
11663 fra.me.REG_size = 6;
11664 fra.me.REG[0] = NIT_NULL;
11665 fra.me.REG[1] = NIT_NULL;
11666 fra.me.REG[2] = NIT_NULL;
11667 fra.me.REG[3] = NIT_NULL;
11668 fra.me.REG[4] = NIT_NULL;
11669 fra.me.REG[5] = NIT_NULL;
11670 fra.me.REG[0] = p0;
11671 fra.me.REG[1] = p1;
11672 /* ./parser//parser.nit:3037 */
11673 fra.me.REG[2] = NIT_NULL;
11674 /* ./parser//parser.nit:3038 */
11675 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11676 /* ./parser//parser.nit:3039 */
11677 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11678 /* ./parser//parser.nit:3040 */
11679 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11680 /* ./parser//parser.nit:3041 */
11681 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11682 /* ./parser//parser.nit:3043 */
11683 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwspecial, ID_TKwspecial)) /*cast nullable TKwspecial*/;
11684 if (UNTAG_Bool(REGB0)) {
11685 } else {
11686 nit_abort("Assert failed", NULL, LOCATE_parser, 3043);
11687 }
11688 /* ./parser//parser.nit:3045 */
11689 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
11690 if (UNTAG_Bool(REGB0)) {
11691 } else {
11692 nit_abort("Assert failed", NULL, LOCATE_parser, 3045);
11693 }
11694 /* ./parser//parser.nit:3046 */
11695 fra.me.REG[3] = NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
11696 /* ./parser//parser.nit:3051 */
11697 fra.me.REG[2] = fra.me.REG[3];
11698 /* ./parser//parser.nit:3052 */
11699 REGB0 = TAG_Bool(ATTR_parser___ReduceAction64____goto(fra.me.REG[0])!=NIT_NULL);
11700 if (UNTAG_Bool(REGB0)) {
11701 } else {
11702 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3052);
11703 }
11704 REGB0 = ATTR_parser___ReduceAction64____goto(fra.me.REG[0]);
11705 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11706 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11707 stack_frame_head = fra.me.prev;
11708 return;
11709 }
11710 void parser___ReduceAction64___init(val_t p0, val_t p1, int* init_table){
11711 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction64].i;
11712 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11713 val_t REGB0;
11714 val_t tmp;
11715 if (init_table[itpos67]) return;
11716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11717 fra.me.file = LOCATE_parser;
11718 fra.me.line = 3055;
11719 fra.me.meth = LOCATE_parser___ReduceAction64___init;
11720 fra.me.has_broke = 0;
11721 fra.me.REG_size = 2;
11722 fra.me.REG[0] = NIT_NULL;
11723 fra.me.REG[1] = NIT_NULL;
11724 fra.me.REG[0] = p0;
11725 REGB0 = p1;
11726 /* ./parser//parser.nit:3055 */
11727 fra.me.REG[1] = fra.me.REG[0];
11728 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11729 ATTR_parser___ReduceAction64____goto(fra.me.REG[1]) = REGB0;
11730 stack_frame_head = fra.me.prev;
11731 init_table[itpos67] = 1;
11732 return;
11733 }
11734 void parser___ReduceAction65___action(val_t p0, val_t p1){
11735 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
11736 val_t REGB0;
11737 val_t tmp;
11738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11739 fra.me.file = LOCATE_parser;
11740 fra.me.line = 3059;
11741 fra.me.meth = LOCATE_parser___ReduceAction65___action;
11742 fra.me.has_broke = 0;
11743 fra.me.REG_size = 6;
11744 fra.me.REG[0] = NIT_NULL;
11745 fra.me.REG[1] = NIT_NULL;
11746 fra.me.REG[2] = NIT_NULL;
11747 fra.me.REG[3] = NIT_NULL;
11748 fra.me.REG[4] = NIT_NULL;
11749 fra.me.REG[5] = NIT_NULL;
11750 fra.me.REG[0] = p0;
11751 fra.me.REG[1] = p1;
11752 /* ./parser//parser.nit:3061 */
11753 fra.me.REG[2] = NIT_NULL;
11754 /* ./parser//parser.nit:3062 */
11755 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11756 /* ./parser//parser.nit:3063 */
11757 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11758 /* ./parser//parser.nit:3064 */
11759 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11760 /* ./parser//parser.nit:3065 */
11761 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11762 /* ./parser//parser.nit:3067 */
11763 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwsuper, ID_TKwsuper)) /*cast nullable TKwsuper*/;
11764 if (UNTAG_Bool(REGB0)) {
11765 } else {
11766 nit_abort("Assert failed", NULL, LOCATE_parser, 3067);
11767 }
11768 /* ./parser//parser.nit:3069 */
11769 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
11770 if (UNTAG_Bool(REGB0)) {
11771 } else {
11772 nit_abort("Assert failed", NULL, LOCATE_parser, 3069);
11773 }
11774 /* ./parser//parser.nit:3070 */
11775 fra.me.REG[3] = NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
11776 /* ./parser//parser.nit:3075 */
11777 fra.me.REG[2] = fra.me.REG[3];
11778 /* ./parser//parser.nit:3076 */
11779 REGB0 = TAG_Bool(ATTR_parser___ReduceAction65____goto(fra.me.REG[0])!=NIT_NULL);
11780 if (UNTAG_Bool(REGB0)) {
11781 } else {
11782 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3076);
11783 }
11784 REGB0 = ATTR_parser___ReduceAction65____goto(fra.me.REG[0]);
11785 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11786 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11787 stack_frame_head = fra.me.prev;
11788 return;
11789 }
11790 void parser___ReduceAction65___init(val_t p0, val_t p1, int* init_table){
11791 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction65].i;
11792 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11793 val_t REGB0;
11794 val_t tmp;
11795 if (init_table[itpos68]) return;
11796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11797 fra.me.file = LOCATE_parser;
11798 fra.me.line = 3079;
11799 fra.me.meth = LOCATE_parser___ReduceAction65___init;
11800 fra.me.has_broke = 0;
11801 fra.me.REG_size = 2;
11802 fra.me.REG[0] = NIT_NULL;
11803 fra.me.REG[1] = NIT_NULL;
11804 fra.me.REG[0] = p0;
11805 REGB0 = p1;
11806 /* ./parser//parser.nit:3079 */
11807 fra.me.REG[1] = fra.me.REG[0];
11808 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11809 ATTR_parser___ReduceAction65____goto(fra.me.REG[1]) = REGB0;
11810 stack_frame_head = fra.me.prev;
11811 init_table[itpos68] = 1;
11812 return;
11813 }
11814 void parser___ReduceAction66___action(val_t p0, val_t p1){
11815 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11816 val_t REGB0;
11817 val_t tmp;
11818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11819 fra.me.file = LOCATE_parser;
11820 fra.me.line = 3083;
11821 fra.me.meth = LOCATE_parser___ReduceAction66___action;
11822 fra.me.has_broke = 0;
11823 fra.me.REG_size = 4;
11824 fra.me.REG[0] = NIT_NULL;
11825 fra.me.REG[1] = NIT_NULL;
11826 fra.me.REG[2] = NIT_NULL;
11827 fra.me.REG[3] = NIT_NULL;
11828 fra.me.REG[0] = p0;
11829 fra.me.REG[1] = p1;
11830 /* ./parser//parser.nit:3085 */
11831 fra.me.REG[2] = NIT_NULL;
11832 /* ./parser//parser.nit:3086 */
11833 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11834 /* ./parser//parser.nit:3087 */
11835 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11836 /* ./parser//parser.nit:3089 */
11837 fra.me.REG[2] = fra.me.REG[3];
11838 /* ./parser//parser.nit:3090 */
11839 REGB0 = TAG_Bool(ATTR_parser___ReduceAction66____goto(fra.me.REG[0])!=NIT_NULL);
11840 if (UNTAG_Bool(REGB0)) {
11841 } else {
11842 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3090);
11843 }
11844 REGB0 = ATTR_parser___ReduceAction66____goto(fra.me.REG[0]);
11845 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11846 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11847 stack_frame_head = fra.me.prev;
11848 return;
11849 }
11850 void parser___ReduceAction66___init(val_t p0, val_t p1, int* init_table){
11851 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction66].i;
11852 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11853 val_t REGB0;
11854 val_t tmp;
11855 if (init_table[itpos69]) return;
11856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11857 fra.me.file = LOCATE_parser;
11858 fra.me.line = 3093;
11859 fra.me.meth = LOCATE_parser___ReduceAction66___init;
11860 fra.me.has_broke = 0;
11861 fra.me.REG_size = 2;
11862 fra.me.REG[0] = NIT_NULL;
11863 fra.me.REG[1] = NIT_NULL;
11864 fra.me.REG[0] = p0;
11865 REGB0 = p1;
11866 /* ./parser//parser.nit:3093 */
11867 fra.me.REG[1] = fra.me.REG[0];
11868 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11869 ATTR_parser___ReduceAction66____goto(fra.me.REG[1]) = REGB0;
11870 stack_frame_head = fra.me.prev;
11871 init_table[itpos69] = 1;
11872 return;
11873 }
11874 void parser___ReduceAction67___action(val_t p0, val_t p1){
11875 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
11876 val_t REGB0;
11877 val_t tmp;
11878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11879 fra.me.file = LOCATE_parser;
11880 fra.me.line = 3097;
11881 fra.me.meth = LOCATE_parser___ReduceAction67___action;
11882 fra.me.has_broke = 0;
11883 fra.me.REG_size = 9;
11884 fra.me.REG[0] = NIT_NULL;
11885 fra.me.REG[1] = NIT_NULL;
11886 fra.me.REG[2] = NIT_NULL;
11887 fra.me.REG[3] = NIT_NULL;
11888 fra.me.REG[4] = NIT_NULL;
11889 fra.me.REG[5] = NIT_NULL;
11890 fra.me.REG[6] = NIT_NULL;
11891 fra.me.REG[7] = NIT_NULL;
11892 fra.me.REG[8] = NIT_NULL;
11893 fra.me.REG[0] = p0;
11894 fra.me.REG[1] = p1;
11895 /* ./parser//parser.nit:3099 */
11896 fra.me.REG[2] = NIT_NULL;
11897 /* ./parser//parser.nit:3100 */
11898 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11899 /* ./parser//parser.nit:3101 */
11900 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11901 /* ./parser//parser.nit:3102 */
11902 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11903 /* ./parser//parser.nit:3103 */
11904 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11905 /* ./parser//parser.nit:3104 */
11906 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11907 /* ./parser//parser.nit:3105 */
11908 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11909 /* ./parser//parser.nit:3106 */
11910 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11911 /* ./parser//parser.nit:3108 */
11912 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
11913 if (UNTAG_Bool(REGB0)) {
11914 } else {
11915 nit_abort("Assert failed", NULL, LOCATE_parser, 3108);
11916 }
11917 /* ./parser//parser.nit:3110 */
11918 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
11919 if (UNTAG_Bool(REGB0)) {
11920 } else {
11921 nit_abort("Assert failed", NULL, LOCATE_parser, 3110);
11922 }
11923 /* ./parser//parser.nit:3112 */
11924 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
11925 if (UNTAG_Bool(REGB0)) {
11926 } else {
11927 nit_abort("Assert failed", NULL, LOCATE_parser, 3112);
11928 }
11929 /* ./parser//parser.nit:3114 */
11930 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
11931 if (UNTAG_Bool(REGB0)) {
11932 } else {
11933 nit_abort("Assert failed", NULL, LOCATE_parser, 3114);
11934 }
11935 /* ./parser//parser.nit:3116 */
11936 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
11937 if (UNTAG_Bool(REGB0)) {
11938 } else {
11939 nit_abort("Assert failed", NULL, LOCATE_parser, 3116);
11940 }
11941 /* ./parser//parser.nit:3118 */
11942 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
11943 if (UNTAG_Bool(REGB0)) {
11944 } else {
11945 nit_abort("Assert failed", NULL, LOCATE_parser, 3118);
11946 }
11947 /* ./parser//parser.nit:3119 */
11948 fra.me.REG[3] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
11949 /* ./parser//parser.nit:3128 */
11950 fra.me.REG[2] = fra.me.REG[3];
11951 /* ./parser//parser.nit:3129 */
11952 REGB0 = TAG_Bool(ATTR_parser___ReduceAction67____goto(fra.me.REG[0])!=NIT_NULL);
11953 if (UNTAG_Bool(REGB0)) {
11954 } else {
11955 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3129);
11956 }
11957 REGB0 = ATTR_parser___ReduceAction67____goto(fra.me.REG[0]);
11958 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11959 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11960 stack_frame_head = fra.me.prev;
11961 return;
11962 }
11963 void parser___ReduceAction67___init(val_t p0, val_t p1, int* init_table){
11964 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction67].i;
11965 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11966 val_t REGB0;
11967 val_t tmp;
11968 if (init_table[itpos70]) return;
11969 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11970 fra.me.file = LOCATE_parser;
11971 fra.me.line = 3132;
11972 fra.me.meth = LOCATE_parser___ReduceAction67___init;
11973 fra.me.has_broke = 0;
11974 fra.me.REG_size = 2;
11975 fra.me.REG[0] = NIT_NULL;
11976 fra.me.REG[1] = NIT_NULL;
11977 fra.me.REG[0] = p0;
11978 REGB0 = p1;
11979 /* ./parser//parser.nit:3132 */
11980 fra.me.REG[1] = fra.me.REG[0];
11981 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11982 ATTR_parser___ReduceAction67____goto(fra.me.REG[1]) = REGB0;
11983 stack_frame_head = fra.me.prev;
11984 init_table[itpos70] = 1;
11985 return;
11986 }
11987 void parser___ReduceAction68___action(val_t p0, val_t p1){
11988 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
11989 val_t REGB0;
11990 val_t tmp;
11991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11992 fra.me.file = LOCATE_parser;
11993 fra.me.line = 3136;
11994 fra.me.meth = LOCATE_parser___ReduceAction68___action;
11995 fra.me.has_broke = 0;
11996 fra.me.REG_size = 10;
11997 fra.me.REG[0] = NIT_NULL;
11998 fra.me.REG[1] = NIT_NULL;
11999 fra.me.REG[2] = NIT_NULL;
12000 fra.me.REG[3] = NIT_NULL;
12001 fra.me.REG[4] = NIT_NULL;
12002 fra.me.REG[5] = NIT_NULL;
12003 fra.me.REG[6] = NIT_NULL;
12004 fra.me.REG[7] = NIT_NULL;
12005 fra.me.REG[8] = NIT_NULL;
12006 fra.me.REG[9] = NIT_NULL;
12007 fra.me.REG[0] = p0;
12008 fra.me.REG[1] = p1;
12009 /* ./parser//parser.nit:3138 */
12010 fra.me.REG[2] = NIT_NULL;
12011 /* ./parser//parser.nit:3139 */
12012 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12013 /* ./parser//parser.nit:3140 */
12014 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12015 /* ./parser//parser.nit:3141 */
12016 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12017 /* ./parser//parser.nit:3142 */
12018 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12019 /* ./parser//parser.nit:3143 */
12020 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12021 /* ./parser//parser.nit:3144 */
12022 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12023 /* ./parser//parser.nit:3145 */
12024 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12025 /* ./parser//parser.nit:3146 */
12026 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12027 /* ./parser//parser.nit:3148 */
12028 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12029 if (UNTAG_Bool(REGB0)) {
12030 } else {
12031 nit_abort("Assert failed", NULL, LOCATE_parser, 3148);
12032 }
12033 /* ./parser//parser.nit:3150 */
12034 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12035 if (UNTAG_Bool(REGB0)) {
12036 } else {
12037 nit_abort("Assert failed", NULL, LOCATE_parser, 3150);
12038 }
12039 /* ./parser//parser.nit:3152 */
12040 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12041 if (UNTAG_Bool(REGB0)) {
12042 } else {
12043 nit_abort("Assert failed", NULL, LOCATE_parser, 3152);
12044 }
12045 /* ./parser//parser.nit:3154 */
12046 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12047 if (UNTAG_Bool(REGB0)) {
12048 } else {
12049 nit_abort("Assert failed", NULL, LOCATE_parser, 3154);
12050 }
12051 /* ./parser//parser.nit:3156 */
12052 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12053 if (UNTAG_Bool(REGB0)) {
12054 } else {
12055 nit_abort("Assert failed", NULL, LOCATE_parser, 3156);
12056 }
12057 /* ./parser//parser.nit:3158 */
12058 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12059 if (UNTAG_Bool(REGB0)) {
12060 } else {
12061 nit_abort("Assert failed", NULL, LOCATE_parser, 3158);
12062 }
12063 /* ./parser//parser.nit:3160 */
12064 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12065 if (UNTAG_Bool(REGB0)) {
12066 } else {
12067 nit_abort("Assert failed", NULL, LOCATE_parser, 3160);
12068 }
12069 /* ./parser//parser.nit:3161 */
12070 fra.me.REG[3] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12071 /* ./parser//parser.nit:3170 */
12072 fra.me.REG[2] = fra.me.REG[3];
12073 /* ./parser//parser.nit:3171 */
12074 REGB0 = TAG_Bool(ATTR_parser___ReduceAction68____goto(fra.me.REG[0])!=NIT_NULL);
12075 if (UNTAG_Bool(REGB0)) {
12076 } else {
12077 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3171);
12078 }
12079 REGB0 = ATTR_parser___ReduceAction68____goto(fra.me.REG[0]);
12080 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12081 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12082 stack_frame_head = fra.me.prev;
12083 return;
12084 }
12085 void parser___ReduceAction68___init(val_t p0, val_t p1, int* init_table){
12086 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction68].i;
12087 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12088 val_t REGB0;
12089 val_t tmp;
12090 if (init_table[itpos71]) return;
12091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12092 fra.me.file = LOCATE_parser;
12093 fra.me.line = 3174;
12094 fra.me.meth = LOCATE_parser___ReduceAction68___init;
12095 fra.me.has_broke = 0;
12096 fra.me.REG_size = 2;
12097 fra.me.REG[0] = NIT_NULL;
12098 fra.me.REG[1] = NIT_NULL;
12099 fra.me.REG[0] = p0;
12100 REGB0 = p1;
12101 /* ./parser//parser.nit:3174 */
12102 fra.me.REG[1] = fra.me.REG[0];
12103 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12104 ATTR_parser___ReduceAction68____goto(fra.me.REG[1]) = REGB0;
12105 stack_frame_head = fra.me.prev;
12106 init_table[itpos71] = 1;
12107 return;
12108 }
12109 void parser___ReduceAction69___action(val_t p0, val_t p1){
12110 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12111 val_t REGB0;
12112 val_t tmp;
12113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12114 fra.me.file = LOCATE_parser;
12115 fra.me.line = 3178;
12116 fra.me.meth = LOCATE_parser___ReduceAction69___action;
12117 fra.me.has_broke = 0;
12118 fra.me.REG_size = 9;
12119 fra.me.REG[0] = NIT_NULL;
12120 fra.me.REG[1] = NIT_NULL;
12121 fra.me.REG[2] = NIT_NULL;
12122 fra.me.REG[3] = NIT_NULL;
12123 fra.me.REG[4] = NIT_NULL;
12124 fra.me.REG[5] = NIT_NULL;
12125 fra.me.REG[6] = NIT_NULL;
12126 fra.me.REG[7] = NIT_NULL;
12127 fra.me.REG[8] = NIT_NULL;
12128 fra.me.REG[0] = p0;
12129 fra.me.REG[1] = p1;
12130 /* ./parser//parser.nit:3180 */
12131 fra.me.REG[2] = NIT_NULL;
12132 /* ./parser//parser.nit:3181 */
12133 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12134 /* ./parser//parser.nit:3182 */
12135 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12136 /* ./parser//parser.nit:3183 */
12137 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12138 /* ./parser//parser.nit:3184 */
12139 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12140 /* ./parser//parser.nit:3185 */
12141 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12142 /* ./parser//parser.nit:3186 */
12143 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12144 /* ./parser//parser.nit:3187 */
12145 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12146 /* ./parser//parser.nit:3188 */
12147 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12148 /* ./parser//parser.nit:3190 */
12149 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12150 if (UNTAG_Bool(REGB0)) {
12151 } else {
12152 nit_abort("Assert failed", NULL, LOCATE_parser, 3190);
12153 }
12154 /* ./parser//parser.nit:3192 */
12155 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12156 if (UNTAG_Bool(REGB0)) {
12157 } else {
12158 nit_abort("Assert failed", NULL, LOCATE_parser, 3192);
12159 }
12160 /* ./parser//parser.nit:3194 */
12161 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12162 if (UNTAG_Bool(REGB0)) {
12163 } else {
12164 nit_abort("Assert failed", NULL, LOCATE_parser, 3194);
12165 }
12166 /* ./parser//parser.nit:3196 */
12167 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12168 if (UNTAG_Bool(REGB0)) {
12169 } else {
12170 nit_abort("Assert failed", NULL, LOCATE_parser, 3196);
12171 }
12172 /* ./parser//parser.nit:3198 */
12173 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12174 if (UNTAG_Bool(REGB0)) {
12175 } else {
12176 nit_abort("Assert failed", NULL, LOCATE_parser, 3198);
12177 }
12178 /* ./parser//parser.nit:3200 */
12179 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12180 if (UNTAG_Bool(REGB0)) {
12181 } else {
12182 nit_abort("Assert failed", NULL, LOCATE_parser, 3200);
12183 }
12184 /* ./parser//parser.nit:3201 */
12185 fra.me.REG[3] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12186 /* ./parser//parser.nit:3210 */
12187 fra.me.REG[2] = fra.me.REG[3];
12188 /* ./parser//parser.nit:3211 */
12189 REGB0 = TAG_Bool(ATTR_parser___ReduceAction69____goto(fra.me.REG[0])!=NIT_NULL);
12190 if (UNTAG_Bool(REGB0)) {
12191 } else {
12192 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3211);
12193 }
12194 REGB0 = ATTR_parser___ReduceAction69____goto(fra.me.REG[0]);
12195 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12196 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12197 stack_frame_head = fra.me.prev;
12198 return;
12199 }
12200 void parser___ReduceAction69___init(val_t p0, val_t p1, int* init_table){
12201 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction69].i;
12202 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12203 val_t REGB0;
12204 val_t tmp;
12205 if (init_table[itpos72]) return;
12206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12207 fra.me.file = LOCATE_parser;
12208 fra.me.line = 3214;
12209 fra.me.meth = LOCATE_parser___ReduceAction69___init;
12210 fra.me.has_broke = 0;
12211 fra.me.REG_size = 2;
12212 fra.me.REG[0] = NIT_NULL;
12213 fra.me.REG[1] = NIT_NULL;
12214 fra.me.REG[0] = p0;
12215 REGB0 = p1;
12216 /* ./parser//parser.nit:3214 */
12217 fra.me.REG[1] = fra.me.REG[0];
12218 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12219 ATTR_parser___ReduceAction69____goto(fra.me.REG[1]) = REGB0;
12220 stack_frame_head = fra.me.prev;
12221 init_table[itpos72] = 1;
12222 return;
12223 }
12224 void parser___ReduceAction70___action(val_t p0, val_t p1){
12225 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
12226 val_t REGB0;
12227 val_t tmp;
12228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12229 fra.me.file = LOCATE_parser;
12230 fra.me.line = 3218;
12231 fra.me.meth = LOCATE_parser___ReduceAction70___action;
12232 fra.me.has_broke = 0;
12233 fra.me.REG_size = 10;
12234 fra.me.REG[0] = NIT_NULL;
12235 fra.me.REG[1] = NIT_NULL;
12236 fra.me.REG[2] = NIT_NULL;
12237 fra.me.REG[3] = NIT_NULL;
12238 fra.me.REG[4] = NIT_NULL;
12239 fra.me.REG[5] = NIT_NULL;
12240 fra.me.REG[6] = NIT_NULL;
12241 fra.me.REG[7] = NIT_NULL;
12242 fra.me.REG[8] = NIT_NULL;
12243 fra.me.REG[9] = NIT_NULL;
12244 fra.me.REG[0] = p0;
12245 fra.me.REG[1] = p1;
12246 /* ./parser//parser.nit:3220 */
12247 fra.me.REG[2] = NIT_NULL;
12248 /* ./parser//parser.nit:3221 */
12249 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12250 /* ./parser//parser.nit:3222 */
12251 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12252 /* ./parser//parser.nit:3223 */
12253 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12254 /* ./parser//parser.nit:3224 */
12255 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12256 /* ./parser//parser.nit:3225 */
12257 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12258 /* ./parser//parser.nit:3226 */
12259 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12260 /* ./parser//parser.nit:3227 */
12261 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12262 /* ./parser//parser.nit:3228 */
12263 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12264 /* ./parser//parser.nit:3229 */
12265 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12266 /* ./parser//parser.nit:3231 */
12267 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12268 if (UNTAG_Bool(REGB0)) {
12269 } else {
12270 nit_abort("Assert failed", NULL, LOCATE_parser, 3231);
12271 }
12272 /* ./parser//parser.nit:3233 */
12273 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12274 if (UNTAG_Bool(REGB0)) {
12275 } else {
12276 nit_abort("Assert failed", NULL, LOCATE_parser, 3233);
12277 }
12278 /* ./parser//parser.nit:3235 */
12279 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12280 if (UNTAG_Bool(REGB0)) {
12281 } else {
12282 nit_abort("Assert failed", NULL, LOCATE_parser, 3235);
12283 }
12284 /* ./parser//parser.nit:3237 */
12285 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12286 if (UNTAG_Bool(REGB0)) {
12287 } else {
12288 nit_abort("Assert failed", NULL, LOCATE_parser, 3237);
12289 }
12290 /* ./parser//parser.nit:3239 */
12291 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12292 if (UNTAG_Bool(REGB0)) {
12293 } else {
12294 nit_abort("Assert failed", NULL, LOCATE_parser, 3239);
12295 }
12296 /* ./parser//parser.nit:3241 */
12297 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12298 if (UNTAG_Bool(REGB0)) {
12299 } else {
12300 nit_abort("Assert failed", NULL, LOCATE_parser, 3241);
12301 }
12302 /* ./parser//parser.nit:3243 */
12303 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12304 if (UNTAG_Bool(REGB0)) {
12305 } else {
12306 nit_abort("Assert failed", NULL, LOCATE_parser, 3243);
12307 }
12308 /* ./parser//parser.nit:3244 */
12309 fra.me.REG[3] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12310 /* ./parser//parser.nit:3253 */
12311 fra.me.REG[2] = fra.me.REG[3];
12312 /* ./parser//parser.nit:3254 */
12313 REGB0 = TAG_Bool(ATTR_parser___ReduceAction70____goto(fra.me.REG[0])!=NIT_NULL);
12314 if (UNTAG_Bool(REGB0)) {
12315 } else {
12316 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3254);
12317 }
12318 REGB0 = ATTR_parser___ReduceAction70____goto(fra.me.REG[0]);
12319 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12320 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12321 stack_frame_head = fra.me.prev;
12322 return;
12323 }
12324 void parser___ReduceAction70___init(val_t p0, val_t p1, int* init_table){
12325 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction70].i;
12326 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12327 val_t REGB0;
12328 val_t tmp;
12329 if (init_table[itpos73]) return;
12330 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12331 fra.me.file = LOCATE_parser;
12332 fra.me.line = 3257;
12333 fra.me.meth = LOCATE_parser___ReduceAction70___init;
12334 fra.me.has_broke = 0;
12335 fra.me.REG_size = 2;
12336 fra.me.REG[0] = NIT_NULL;
12337 fra.me.REG[1] = NIT_NULL;
12338 fra.me.REG[0] = p0;
12339 REGB0 = p1;
12340 /* ./parser//parser.nit:3257 */
12341 fra.me.REG[1] = fra.me.REG[0];
12342 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12343 ATTR_parser___ReduceAction70____goto(fra.me.REG[1]) = REGB0;
12344 stack_frame_head = fra.me.prev;
12345 init_table[itpos73] = 1;
12346 return;
12347 }
12348 void parser___ReduceAction71___action(val_t p0, val_t p1){
12349 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12350 val_t REGB0;
12351 val_t tmp;
12352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12353 fra.me.file = LOCATE_parser;
12354 fra.me.line = 3261;
12355 fra.me.meth = LOCATE_parser___ReduceAction71___action;
12356 fra.me.has_broke = 0;
12357 fra.me.REG_size = 9;
12358 fra.me.REG[0] = NIT_NULL;
12359 fra.me.REG[1] = NIT_NULL;
12360 fra.me.REG[2] = NIT_NULL;
12361 fra.me.REG[3] = NIT_NULL;
12362 fra.me.REG[4] = NIT_NULL;
12363 fra.me.REG[5] = NIT_NULL;
12364 fra.me.REG[6] = NIT_NULL;
12365 fra.me.REG[7] = NIT_NULL;
12366 fra.me.REG[8] = NIT_NULL;
12367 fra.me.REG[0] = p0;
12368 fra.me.REG[1] = p1;
12369 /* ./parser//parser.nit:3263 */
12370 fra.me.REG[2] = NIT_NULL;
12371 /* ./parser//parser.nit:3264 */
12372 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12373 /* ./parser//parser.nit:3265 */
12374 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12375 /* ./parser//parser.nit:3266 */
12376 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12377 /* ./parser//parser.nit:3267 */
12378 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12379 /* ./parser//parser.nit:3268 */
12380 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12381 /* ./parser//parser.nit:3269 */
12382 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12383 /* ./parser//parser.nit:3270 */
12384 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12385 /* ./parser//parser.nit:3271 */
12386 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12387 /* ./parser//parser.nit:3273 */
12388 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12389 if (UNTAG_Bool(REGB0)) {
12390 } else {
12391 nit_abort("Assert failed", NULL, LOCATE_parser, 3273);
12392 }
12393 /* ./parser//parser.nit:3275 */
12394 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12395 if (UNTAG_Bool(REGB0)) {
12396 } else {
12397 nit_abort("Assert failed", NULL, LOCATE_parser, 3275);
12398 }
12399 /* ./parser//parser.nit:3277 */
12400 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12401 if (UNTAG_Bool(REGB0)) {
12402 } else {
12403 nit_abort("Assert failed", NULL, LOCATE_parser, 3277);
12404 }
12405 /* ./parser//parser.nit:3279 */
12406 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12407 if (UNTAG_Bool(REGB0)) {
12408 } else {
12409 nit_abort("Assert failed", NULL, LOCATE_parser, 3279);
12410 }
12411 /* ./parser//parser.nit:3281 */
12412 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12413 if (UNTAG_Bool(REGB0)) {
12414 } else {
12415 nit_abort("Assert failed", NULL, LOCATE_parser, 3281);
12416 }
12417 /* ./parser//parser.nit:3283 */
12418 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12419 if (UNTAG_Bool(REGB0)) {
12420 } else {
12421 nit_abort("Assert failed", NULL, LOCATE_parser, 3283);
12422 }
12423 /* ./parser//parser.nit:3284 */
12424 fra.me.REG[3] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12425 /* ./parser//parser.nit:3293 */
12426 fra.me.REG[2] = fra.me.REG[3];
12427 /* ./parser//parser.nit:3294 */
12428 REGB0 = TAG_Bool(ATTR_parser___ReduceAction71____goto(fra.me.REG[0])!=NIT_NULL);
12429 if (UNTAG_Bool(REGB0)) {
12430 } else {
12431 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3294);
12432 }
12433 REGB0 = ATTR_parser___ReduceAction71____goto(fra.me.REG[0]);
12434 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12435 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12436 stack_frame_head = fra.me.prev;
12437 return;
12438 }
12439 void parser___ReduceAction71___init(val_t p0, val_t p1, int* init_table){
12440 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction71].i;
12441 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12442 val_t REGB0;
12443 val_t tmp;
12444 if (init_table[itpos74]) return;
12445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12446 fra.me.file = LOCATE_parser;
12447 fra.me.line = 3297;
12448 fra.me.meth = LOCATE_parser___ReduceAction71___init;
12449 fra.me.has_broke = 0;
12450 fra.me.REG_size = 2;
12451 fra.me.REG[0] = NIT_NULL;
12452 fra.me.REG[1] = NIT_NULL;
12453 fra.me.REG[0] = p0;
12454 REGB0 = p1;
12455 /* ./parser//parser.nit:3297 */
12456 fra.me.REG[1] = fra.me.REG[0];
12457 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12458 ATTR_parser___ReduceAction71____goto(fra.me.REG[1]) = REGB0;
12459 stack_frame_head = fra.me.prev;
12460 init_table[itpos74] = 1;
12461 return;
12462 }
12463 void parser___ReduceAction72___action(val_t p0, val_t p1){
12464 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
12465 val_t REGB0;
12466 val_t tmp;
12467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12468 fra.me.file = LOCATE_parser;
12469 fra.me.line = 3301;
12470 fra.me.meth = LOCATE_parser___ReduceAction72___action;
12471 fra.me.has_broke = 0;
12472 fra.me.REG_size = 10;
12473 fra.me.REG[0] = NIT_NULL;
12474 fra.me.REG[1] = NIT_NULL;
12475 fra.me.REG[2] = NIT_NULL;
12476 fra.me.REG[3] = NIT_NULL;
12477 fra.me.REG[4] = NIT_NULL;
12478 fra.me.REG[5] = NIT_NULL;
12479 fra.me.REG[6] = NIT_NULL;
12480 fra.me.REG[7] = NIT_NULL;
12481 fra.me.REG[8] = NIT_NULL;
12482 fra.me.REG[9] = NIT_NULL;
12483 fra.me.REG[0] = p0;
12484 fra.me.REG[1] = p1;
12485 /* ./parser//parser.nit:3303 */
12486 fra.me.REG[2] = NIT_NULL;
12487 /* ./parser//parser.nit:3304 */
12488 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12489 /* ./parser//parser.nit:3305 */
12490 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12491 /* ./parser//parser.nit:3306 */
12492 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12493 /* ./parser//parser.nit:3307 */
12494 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12495 /* ./parser//parser.nit:3308 */
12496 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12497 /* ./parser//parser.nit:3309 */
12498 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12499 /* ./parser//parser.nit:3310 */
12500 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12501 /* ./parser//parser.nit:3311 */
12502 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12503 /* ./parser//parser.nit:3312 */
12504 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12505 /* ./parser//parser.nit:3314 */
12506 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12507 if (UNTAG_Bool(REGB0)) {
12508 } else {
12509 nit_abort("Assert failed", NULL, LOCATE_parser, 3314);
12510 }
12511 /* ./parser//parser.nit:3316 */
12512 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12513 if (UNTAG_Bool(REGB0)) {
12514 } else {
12515 nit_abort("Assert failed", NULL, LOCATE_parser, 3316);
12516 }
12517 /* ./parser//parser.nit:3318 */
12518 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12519 if (UNTAG_Bool(REGB0)) {
12520 } else {
12521 nit_abort("Assert failed", NULL, LOCATE_parser, 3318);
12522 }
12523 /* ./parser//parser.nit:3320 */
12524 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12525 if (UNTAG_Bool(REGB0)) {
12526 } else {
12527 nit_abort("Assert failed", NULL, LOCATE_parser, 3320);
12528 }
12529 /* ./parser//parser.nit:3322 */
12530 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12531 if (UNTAG_Bool(REGB0)) {
12532 } else {
12533 nit_abort("Assert failed", NULL, LOCATE_parser, 3322);
12534 }
12535 /* ./parser//parser.nit:3324 */
12536 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12537 if (UNTAG_Bool(REGB0)) {
12538 } else {
12539 nit_abort("Assert failed", NULL, LOCATE_parser, 3324);
12540 }
12541 /* ./parser//parser.nit:3326 */
12542 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12543 if (UNTAG_Bool(REGB0)) {
12544 } else {
12545 nit_abort("Assert failed", NULL, LOCATE_parser, 3326);
12546 }
12547 /* ./parser//parser.nit:3327 */
12548 fra.me.REG[3] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12549 /* ./parser//parser.nit:3336 */
12550 fra.me.REG[2] = fra.me.REG[3];
12551 /* ./parser//parser.nit:3337 */
12552 REGB0 = TAG_Bool(ATTR_parser___ReduceAction72____goto(fra.me.REG[0])!=NIT_NULL);
12553 if (UNTAG_Bool(REGB0)) {
12554 } else {
12555 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3337);
12556 }
12557 REGB0 = ATTR_parser___ReduceAction72____goto(fra.me.REG[0]);
12558 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12559 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12560 stack_frame_head = fra.me.prev;
12561 return;
12562 }
12563 void parser___ReduceAction72___init(val_t p0, val_t p1, int* init_table){
12564 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction72].i;
12565 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12566 val_t REGB0;
12567 val_t tmp;
12568 if (init_table[itpos75]) return;
12569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12570 fra.me.file = LOCATE_parser;
12571 fra.me.line = 3340;
12572 fra.me.meth = LOCATE_parser___ReduceAction72___init;
12573 fra.me.has_broke = 0;
12574 fra.me.REG_size = 2;
12575 fra.me.REG[0] = NIT_NULL;
12576 fra.me.REG[1] = NIT_NULL;
12577 fra.me.REG[0] = p0;
12578 REGB0 = p1;
12579 /* ./parser//parser.nit:3340 */
12580 fra.me.REG[1] = fra.me.REG[0];
12581 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12582 ATTR_parser___ReduceAction72____goto(fra.me.REG[1]) = REGB0;
12583 stack_frame_head = fra.me.prev;
12584 init_table[itpos75] = 1;
12585 return;
12586 }
12587 void parser___ReduceAction73___action(val_t p0, val_t p1){
12588 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
12589 val_t REGB0;
12590 val_t tmp;
12591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12592 fra.me.file = LOCATE_parser;
12593 fra.me.line = 3344;
12594 fra.me.meth = LOCATE_parser___ReduceAction73___action;
12595 fra.me.has_broke = 0;
12596 fra.me.REG_size = 8;
12597 fra.me.REG[0] = NIT_NULL;
12598 fra.me.REG[1] = NIT_NULL;
12599 fra.me.REG[2] = NIT_NULL;
12600 fra.me.REG[3] = NIT_NULL;
12601 fra.me.REG[4] = NIT_NULL;
12602 fra.me.REG[5] = NIT_NULL;
12603 fra.me.REG[6] = NIT_NULL;
12604 fra.me.REG[7] = NIT_NULL;
12605 fra.me.REG[0] = p0;
12606 fra.me.REG[1] = p1;
12607 /* ./parser//parser.nit:3346 */
12608 fra.me.REG[2] = NIT_NULL;
12609 /* ./parser//parser.nit:3347 */
12610 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12611 /* ./parser//parser.nit:3348 */
12612 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12613 /* ./parser//parser.nit:3349 */
12614 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12615 /* ./parser//parser.nit:3350 */
12616 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12617 /* ./parser//parser.nit:3351 */
12618 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12619 /* ./parser//parser.nit:3352 */
12620 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12621 /* ./parser//parser.nit:3353 */
12622 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12623 /* ./parser//parser.nit:3355 */
12624 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12625 if (UNTAG_Bool(REGB0)) {
12626 } else {
12627 nit_abort("Assert failed", NULL, LOCATE_parser, 3355);
12628 }
12629 /* ./parser//parser.nit:3357 */
12630 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12631 if (UNTAG_Bool(REGB0)) {
12632 } else {
12633 nit_abort("Assert failed", NULL, LOCATE_parser, 3357);
12634 }
12635 /* ./parser//parser.nit:3359 */
12636 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12637 if (UNTAG_Bool(REGB0)) {
12638 } else {
12639 nit_abort("Assert failed", NULL, LOCATE_parser, 3359);
12640 }
12641 /* ./parser//parser.nit:3361 */
12642 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12643 if (UNTAG_Bool(REGB0)) {
12644 } else {
12645 nit_abort("Assert failed", NULL, LOCATE_parser, 3361);
12646 }
12647 /* ./parser//parser.nit:3363 */
12648 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12649 if (UNTAG_Bool(REGB0)) {
12650 } else {
12651 nit_abort("Assert failed", NULL, LOCATE_parser, 3363);
12652 }
12653 /* ./parser//parser.nit:3364 */
12654 fra.me.REG[3] = NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12655 /* ./parser//parser.nit:3372 */
12656 fra.me.REG[2] = fra.me.REG[3];
12657 /* ./parser//parser.nit:3373 */
12658 REGB0 = TAG_Bool(ATTR_parser___ReduceAction73____goto(fra.me.REG[0])!=NIT_NULL);
12659 if (UNTAG_Bool(REGB0)) {
12660 } else {
12661 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3373);
12662 }
12663 REGB0 = ATTR_parser___ReduceAction73____goto(fra.me.REG[0]);
12664 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12665 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12666 stack_frame_head = fra.me.prev;
12667 return;
12668 }
12669 void parser___ReduceAction73___init(val_t p0, val_t p1, int* init_table){
12670 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction73].i;
12671 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12672 val_t REGB0;
12673 val_t tmp;
12674 if (init_table[itpos76]) return;
12675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12676 fra.me.file = LOCATE_parser;
12677 fra.me.line = 3376;
12678 fra.me.meth = LOCATE_parser___ReduceAction73___init;
12679 fra.me.has_broke = 0;
12680 fra.me.REG_size = 2;
12681 fra.me.REG[0] = NIT_NULL;
12682 fra.me.REG[1] = NIT_NULL;
12683 fra.me.REG[0] = p0;
12684 REGB0 = p1;
12685 /* ./parser//parser.nit:3376 */
12686 fra.me.REG[1] = fra.me.REG[0];
12687 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12688 ATTR_parser___ReduceAction73____goto(fra.me.REG[1]) = REGB0;
12689 stack_frame_head = fra.me.prev;
12690 init_table[itpos76] = 1;
12691 return;
12692 }
12693 void parser___ReduceAction74___action(val_t p0, val_t p1){
12694 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12695 val_t REGB0;
12696 val_t tmp;
12697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12698 fra.me.file = LOCATE_parser;
12699 fra.me.line = 3380;
12700 fra.me.meth = LOCATE_parser___ReduceAction74___action;
12701 fra.me.has_broke = 0;
12702 fra.me.REG_size = 9;
12703 fra.me.REG[0] = NIT_NULL;
12704 fra.me.REG[1] = NIT_NULL;
12705 fra.me.REG[2] = NIT_NULL;
12706 fra.me.REG[3] = NIT_NULL;
12707 fra.me.REG[4] = NIT_NULL;
12708 fra.me.REG[5] = NIT_NULL;
12709 fra.me.REG[6] = NIT_NULL;
12710 fra.me.REG[7] = NIT_NULL;
12711 fra.me.REG[8] = NIT_NULL;
12712 fra.me.REG[0] = p0;
12713 fra.me.REG[1] = p1;
12714 /* ./parser//parser.nit:3382 */
12715 fra.me.REG[2] = NIT_NULL;
12716 /* ./parser//parser.nit:3383 */
12717 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12718 /* ./parser//parser.nit:3384 */
12719 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12720 /* ./parser//parser.nit:3385 */
12721 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12722 /* ./parser//parser.nit:3386 */
12723 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12724 /* ./parser//parser.nit:3387 */
12725 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12726 /* ./parser//parser.nit:3388 */
12727 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12728 /* ./parser//parser.nit:3389 */
12729 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12730 /* ./parser//parser.nit:3390 */
12731 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12732 /* ./parser//parser.nit:3392 */
12733 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12734 if (UNTAG_Bool(REGB0)) {
12735 } else {
12736 nit_abort("Assert failed", NULL, LOCATE_parser, 3392);
12737 }
12738 /* ./parser//parser.nit:3394 */
12739 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12740 if (UNTAG_Bool(REGB0)) {
12741 } else {
12742 nit_abort("Assert failed", NULL, LOCATE_parser, 3394);
12743 }
12744 /* ./parser//parser.nit:3396 */
12745 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12746 if (UNTAG_Bool(REGB0)) {
12747 } else {
12748 nit_abort("Assert failed", NULL, LOCATE_parser, 3396);
12749 }
12750 /* ./parser//parser.nit:3398 */
12751 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12752 if (UNTAG_Bool(REGB0)) {
12753 } else {
12754 nit_abort("Assert failed", NULL, LOCATE_parser, 3398);
12755 }
12756 /* ./parser//parser.nit:3400 */
12757 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12758 if (UNTAG_Bool(REGB0)) {
12759 } else {
12760 nit_abort("Assert failed", NULL, LOCATE_parser, 3400);
12761 }
12762 /* ./parser//parser.nit:3402 */
12763 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12764 if (UNTAG_Bool(REGB0)) {
12765 } else {
12766 nit_abort("Assert failed", NULL, LOCATE_parser, 3402);
12767 }
12768 /* ./parser//parser.nit:3403 */
12769 fra.me.REG[3] = NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12770 /* ./parser//parser.nit:3411 */
12771 fra.me.REG[2] = fra.me.REG[3];
12772 /* ./parser//parser.nit:3412 */
12773 REGB0 = TAG_Bool(ATTR_parser___ReduceAction74____goto(fra.me.REG[0])!=NIT_NULL);
12774 if (UNTAG_Bool(REGB0)) {
12775 } else {
12776 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3412);
12777 }
12778 REGB0 = ATTR_parser___ReduceAction74____goto(fra.me.REG[0]);
12779 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12780 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12781 stack_frame_head = fra.me.prev;
12782 return;
12783 }
12784 void parser___ReduceAction74___init(val_t p0, val_t p1, int* init_table){
12785 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction74].i;
12786 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12787 val_t REGB0;
12788 val_t tmp;
12789 if (init_table[itpos77]) return;
12790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12791 fra.me.file = LOCATE_parser;
12792 fra.me.line = 3415;
12793 fra.me.meth = LOCATE_parser___ReduceAction74___init;
12794 fra.me.has_broke = 0;
12795 fra.me.REG_size = 2;
12796 fra.me.REG[0] = NIT_NULL;
12797 fra.me.REG[1] = NIT_NULL;
12798 fra.me.REG[0] = p0;
12799 REGB0 = p1;
12800 /* ./parser//parser.nit:3415 */
12801 fra.me.REG[1] = fra.me.REG[0];
12802 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12803 ATTR_parser___ReduceAction74____goto(fra.me.REG[1]) = REGB0;
12804 stack_frame_head = fra.me.prev;
12805 init_table[itpos77] = 1;
12806 return;
12807 }
12808 void parser___ReduceAction75___action(val_t p0, val_t p1){
12809 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
12810 val_t REGB0;
12811 val_t tmp;
12812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12813 fra.me.file = LOCATE_parser;
12814 fra.me.line = 3419;
12815 fra.me.meth = LOCATE_parser___ReduceAction75___action;
12816 fra.me.has_broke = 0;
12817 fra.me.REG_size = 8;
12818 fra.me.REG[0] = NIT_NULL;
12819 fra.me.REG[1] = NIT_NULL;
12820 fra.me.REG[2] = NIT_NULL;
12821 fra.me.REG[3] = NIT_NULL;
12822 fra.me.REG[4] = NIT_NULL;
12823 fra.me.REG[5] = NIT_NULL;
12824 fra.me.REG[6] = NIT_NULL;
12825 fra.me.REG[7] = NIT_NULL;
12826 fra.me.REG[0] = p0;
12827 fra.me.REG[1] = p1;
12828 /* ./parser//parser.nit:3421 */
12829 fra.me.REG[2] = NIT_NULL;
12830 /* ./parser//parser.nit:3422 */
12831 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12832 /* ./parser//parser.nit:3423 */
12833 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12834 /* ./parser//parser.nit:3424 */
12835 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12836 /* ./parser//parser.nit:3425 */
12837 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12838 /* ./parser//parser.nit:3426 */
12839 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12840 /* ./parser//parser.nit:3427 */
12841 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12842 /* ./parser//parser.nit:3428 */
12843 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12844 /* ./parser//parser.nit:3430 */
12845 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12846 if (UNTAG_Bool(REGB0)) {
12847 } else {
12848 nit_abort("Assert failed", NULL, LOCATE_parser, 3430);
12849 }
12850 /* ./parser//parser.nit:3432 */
12851 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12852 if (UNTAG_Bool(REGB0)) {
12853 } else {
12854 nit_abort("Assert failed", NULL, LOCATE_parser, 3432);
12855 }
12856 /* ./parser//parser.nit:3434 */
12857 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12858 if (UNTAG_Bool(REGB0)) {
12859 } else {
12860 nit_abort("Assert failed", NULL, LOCATE_parser, 3434);
12861 }
12862 /* ./parser//parser.nit:3436 */
12863 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12864 if (UNTAG_Bool(REGB0)) {
12865 } else {
12866 nit_abort("Assert failed", NULL, LOCATE_parser, 3436);
12867 }
12868 /* ./parser//parser.nit:3438 */
12869 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12870 if (UNTAG_Bool(REGB0)) {
12871 } else {
12872 nit_abort("Assert failed", NULL, LOCATE_parser, 3438);
12873 }
12874 /* ./parser//parser.nit:3439 */
12875 fra.me.REG[3] = NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12876 /* ./parser//parser.nit:3447 */
12877 fra.me.REG[2] = fra.me.REG[3];
12878 /* ./parser//parser.nit:3448 */
12879 REGB0 = TAG_Bool(ATTR_parser___ReduceAction75____goto(fra.me.REG[0])!=NIT_NULL);
12880 if (UNTAG_Bool(REGB0)) {
12881 } else {
12882 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3448);
12883 }
12884 REGB0 = ATTR_parser___ReduceAction75____goto(fra.me.REG[0]);
12885 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12886 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12887 stack_frame_head = fra.me.prev;
12888 return;
12889 }
12890 void parser___ReduceAction75___init(val_t p0, val_t p1, int* init_table){
12891 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction75].i;
12892 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12893 val_t REGB0;
12894 val_t tmp;
12895 if (init_table[itpos78]) return;
12896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12897 fra.me.file = LOCATE_parser;
12898 fra.me.line = 3451;
12899 fra.me.meth = LOCATE_parser___ReduceAction75___init;
12900 fra.me.has_broke = 0;
12901 fra.me.REG_size = 2;
12902 fra.me.REG[0] = NIT_NULL;
12903 fra.me.REG[1] = NIT_NULL;
12904 fra.me.REG[0] = p0;
12905 REGB0 = p1;
12906 /* ./parser//parser.nit:3451 */
12907 fra.me.REG[1] = fra.me.REG[0];
12908 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12909 ATTR_parser___ReduceAction75____goto(fra.me.REG[1]) = REGB0;
12910 stack_frame_head = fra.me.prev;
12911 init_table[itpos78] = 1;
12912 return;
12913 }
12914 void parser___ReduceAction76___action(val_t p0, val_t p1){
12915 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12916 val_t REGB0;
12917 val_t tmp;
12918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12919 fra.me.file = LOCATE_parser;
12920 fra.me.line = 3455;
12921 fra.me.meth = LOCATE_parser___ReduceAction76___action;
12922 fra.me.has_broke = 0;
12923 fra.me.REG_size = 9;
12924 fra.me.REG[0] = NIT_NULL;
12925 fra.me.REG[1] = NIT_NULL;
12926 fra.me.REG[2] = NIT_NULL;
12927 fra.me.REG[3] = NIT_NULL;
12928 fra.me.REG[4] = NIT_NULL;
12929 fra.me.REG[5] = NIT_NULL;
12930 fra.me.REG[6] = NIT_NULL;
12931 fra.me.REG[7] = NIT_NULL;
12932 fra.me.REG[8] = NIT_NULL;
12933 fra.me.REG[0] = p0;
12934 fra.me.REG[1] = p1;
12935 /* ./parser//parser.nit:3457 */
12936 fra.me.REG[2] = NIT_NULL;
12937 /* ./parser//parser.nit:3458 */
12938 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12939 /* ./parser//parser.nit:3459 */
12940 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12941 /* ./parser//parser.nit:3460 */
12942 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12943 /* ./parser//parser.nit:3461 */
12944 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12945 /* ./parser//parser.nit:3462 */
12946 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12947 /* ./parser//parser.nit:3463 */
12948 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12949 /* ./parser//parser.nit:3464 */
12950 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12951 /* ./parser//parser.nit:3465 */
12952 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12953 /* ./parser//parser.nit:3467 */
12954 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12955 if (UNTAG_Bool(REGB0)) {
12956 } else {
12957 nit_abort("Assert failed", NULL, LOCATE_parser, 3467);
12958 }
12959 /* ./parser//parser.nit:3469 */
12960 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12961 if (UNTAG_Bool(REGB0)) {
12962 } else {
12963 nit_abort("Assert failed", NULL, LOCATE_parser, 3469);
12964 }
12965 /* ./parser//parser.nit:3471 */
12966 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12967 if (UNTAG_Bool(REGB0)) {
12968 } else {
12969 nit_abort("Assert failed", NULL, LOCATE_parser, 3471);
12970 }
12971 /* ./parser//parser.nit:3473 */
12972 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12973 if (UNTAG_Bool(REGB0)) {
12974 } else {
12975 nit_abort("Assert failed", NULL, LOCATE_parser, 3473);
12976 }
12977 /* ./parser//parser.nit:3475 */
12978 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12979 if (UNTAG_Bool(REGB0)) {
12980 } else {
12981 nit_abort("Assert failed", NULL, LOCATE_parser, 3475);
12982 }
12983 /* ./parser//parser.nit:3477 */
12984 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12985 if (UNTAG_Bool(REGB0)) {
12986 } else {
12987 nit_abort("Assert failed", NULL, LOCATE_parser, 3477);
12988 }
12989 /* ./parser//parser.nit:3478 */
12990 fra.me.REG[3] = NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
12991 /* ./parser//parser.nit:3486 */
12992 fra.me.REG[2] = fra.me.REG[3];
12993 /* ./parser//parser.nit:3487 */
12994 REGB0 = TAG_Bool(ATTR_parser___ReduceAction76____goto(fra.me.REG[0])!=NIT_NULL);
12995 if (UNTAG_Bool(REGB0)) {
12996 } else {
12997 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3487);
12998 }
12999 REGB0 = ATTR_parser___ReduceAction76____goto(fra.me.REG[0]);
13000 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13001 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13002 stack_frame_head = fra.me.prev;
13003 return;
13004 }
13005 void parser___ReduceAction76___init(val_t p0, val_t p1, int* init_table){
13006 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction76].i;
13007 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13008 val_t REGB0;
13009 val_t tmp;
13010 if (init_table[itpos79]) return;
13011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13012 fra.me.file = LOCATE_parser;
13013 fra.me.line = 3490;
13014 fra.me.meth = LOCATE_parser___ReduceAction76___init;
13015 fra.me.has_broke = 0;
13016 fra.me.REG_size = 2;
13017 fra.me.REG[0] = NIT_NULL;
13018 fra.me.REG[1] = NIT_NULL;
13019 fra.me.REG[0] = p0;
13020 REGB0 = p1;
13021 /* ./parser//parser.nit:3490 */
13022 fra.me.REG[1] = fra.me.REG[0];
13023 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13024 ATTR_parser___ReduceAction76____goto(fra.me.REG[1]) = REGB0;
13025 stack_frame_head = fra.me.prev;
13026 init_table[itpos79] = 1;
13027 return;
13028 }
13029 void parser___ReduceAction77___action(val_t p0, val_t p1){
13030 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13031 val_t REGB0;
13032 val_t tmp;
13033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13034 fra.me.file = LOCATE_parser;
13035 fra.me.line = 3494;
13036 fra.me.meth = LOCATE_parser___ReduceAction77___action;
13037 fra.me.has_broke = 0;
13038 fra.me.REG_size = 8;
13039 fra.me.REG[0] = NIT_NULL;
13040 fra.me.REG[1] = NIT_NULL;
13041 fra.me.REG[2] = NIT_NULL;
13042 fra.me.REG[3] = NIT_NULL;
13043 fra.me.REG[4] = NIT_NULL;
13044 fra.me.REG[5] = NIT_NULL;
13045 fra.me.REG[6] = NIT_NULL;
13046 fra.me.REG[7] = NIT_NULL;
13047 fra.me.REG[0] = p0;
13048 fra.me.REG[1] = p1;
13049 /* ./parser//parser.nit:3496 */
13050 fra.me.REG[2] = NIT_NULL;
13051 /* ./parser//parser.nit:3497 */
13052 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13053 /* ./parser//parser.nit:3498 */
13054 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13055 /* ./parser//parser.nit:3499 */
13056 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13057 /* ./parser//parser.nit:3500 */
13058 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13059 /* ./parser//parser.nit:3501 */
13060 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13061 /* ./parser//parser.nit:3502 */
13062 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13063 /* ./parser//parser.nit:3503 */
13064 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13065 /* ./parser//parser.nit:3505 */
13066 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13067 if (UNTAG_Bool(REGB0)) {
13068 } else {
13069 nit_abort("Assert failed", NULL, LOCATE_parser, 3505);
13070 }
13071 /* ./parser//parser.nit:3507 */
13072 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13073 if (UNTAG_Bool(REGB0)) {
13074 } else {
13075 nit_abort("Assert failed", NULL, LOCATE_parser, 3507);
13076 }
13077 /* ./parser//parser.nit:3509 */
13078 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13079 if (UNTAG_Bool(REGB0)) {
13080 } else {
13081 nit_abort("Assert failed", NULL, LOCATE_parser, 3509);
13082 }
13083 /* ./parser//parser.nit:3511 */
13084 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13085 if (UNTAG_Bool(REGB0)) {
13086 } else {
13087 nit_abort("Assert failed", NULL, LOCATE_parser, 3511);
13088 }
13089 /* ./parser//parser.nit:3513 */
13090 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13091 if (UNTAG_Bool(REGB0)) {
13092 } else {
13093 nit_abort("Assert failed", NULL, LOCATE_parser, 3513);
13094 }
13095 /* ./parser//parser.nit:3514 */
13096 fra.me.REG[3] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
13097 /* ./parser//parser.nit:3523 */
13098 fra.me.REG[2] = fra.me.REG[3];
13099 /* ./parser//parser.nit:3524 */
13100 REGB0 = TAG_Bool(ATTR_parser___ReduceAction77____goto(fra.me.REG[0])!=NIT_NULL);
13101 if (UNTAG_Bool(REGB0)) {
13102 } else {
13103 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3524);
13104 }
13105 REGB0 = ATTR_parser___ReduceAction77____goto(fra.me.REG[0]);
13106 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13107 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13108 stack_frame_head = fra.me.prev;
13109 return;
13110 }
13111 void parser___ReduceAction77___init(val_t p0, val_t p1, int* init_table){
13112 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction77].i;
13113 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13114 val_t REGB0;
13115 val_t tmp;
13116 if (init_table[itpos80]) return;
13117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13118 fra.me.file = LOCATE_parser;
13119 fra.me.line = 3527;
13120 fra.me.meth = LOCATE_parser___ReduceAction77___init;
13121 fra.me.has_broke = 0;
13122 fra.me.REG_size = 2;
13123 fra.me.REG[0] = NIT_NULL;
13124 fra.me.REG[1] = NIT_NULL;
13125 fra.me.REG[0] = p0;
13126 REGB0 = p1;
13127 /* ./parser//parser.nit:3527 */
13128 fra.me.REG[1] = fra.me.REG[0];
13129 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13130 ATTR_parser___ReduceAction77____goto(fra.me.REG[1]) = REGB0;
13131 stack_frame_head = fra.me.prev;
13132 init_table[itpos80] = 1;
13133 return;
13134 }
13135 void parser___ReduceAction78___action(val_t p0, val_t p1){
13136 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
13137 val_t REGB0;
13138 val_t tmp;
13139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13140 fra.me.file = LOCATE_parser;
13141 fra.me.line = 3531;
13142 fra.me.meth = LOCATE_parser___ReduceAction78___action;
13143 fra.me.has_broke = 0;
13144 fra.me.REG_size = 9;
13145 fra.me.REG[0] = NIT_NULL;
13146 fra.me.REG[1] = NIT_NULL;
13147 fra.me.REG[2] = NIT_NULL;
13148 fra.me.REG[3] = NIT_NULL;
13149 fra.me.REG[4] = NIT_NULL;
13150 fra.me.REG[5] = NIT_NULL;
13151 fra.me.REG[6] = NIT_NULL;
13152 fra.me.REG[7] = NIT_NULL;
13153 fra.me.REG[8] = NIT_NULL;
13154 fra.me.REG[0] = p0;
13155 fra.me.REG[1] = p1;
13156 /* ./parser//parser.nit:3533 */
13157 fra.me.REG[2] = NIT_NULL;
13158 /* ./parser//parser.nit:3534 */
13159 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13160 /* ./parser//parser.nit:3535 */
13161 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13162 /* ./parser//parser.nit:3536 */
13163 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13164 /* ./parser//parser.nit:3537 */
13165 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13166 /* ./parser//parser.nit:3538 */
13167 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13168 /* ./parser//parser.nit:3539 */
13169 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13170 /* ./parser//parser.nit:3540 */
13171 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13172 /* ./parser//parser.nit:3541 */
13173 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13174 /* ./parser//parser.nit:3543 */
13175 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13176 if (UNTAG_Bool(REGB0)) {
13177 } else {
13178 nit_abort("Assert failed", NULL, LOCATE_parser, 3543);
13179 }
13180 /* ./parser//parser.nit:3545 */
13181 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13182 if (UNTAG_Bool(REGB0)) {
13183 } else {
13184 nit_abort("Assert failed", NULL, LOCATE_parser, 3545);
13185 }
13186 /* ./parser//parser.nit:3547 */
13187 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13188 if (UNTAG_Bool(REGB0)) {
13189 } else {
13190 nit_abort("Assert failed", NULL, LOCATE_parser, 3547);
13191 }
13192 /* ./parser//parser.nit:3549 */
13193 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13194 if (UNTAG_Bool(REGB0)) {
13195 } else {
13196 nit_abort("Assert failed", NULL, LOCATE_parser, 3549);
13197 }
13198 /* ./parser//parser.nit:3551 */
13199 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13200 if (UNTAG_Bool(REGB0)) {
13201 } else {
13202 nit_abort("Assert failed", NULL, LOCATE_parser, 3551);
13203 }
13204 /* ./parser//parser.nit:3553 */
13205 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13206 if (UNTAG_Bool(REGB0)) {
13207 } else {
13208 nit_abort("Assert failed", NULL, LOCATE_parser, 3553);
13209 }
13210 /* ./parser//parser.nit:3554 */
13211 fra.me.REG[3] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
13212 /* ./parser//parser.nit:3563 */
13213 fra.me.REG[2] = fra.me.REG[3];
13214 /* ./parser//parser.nit:3564 */
13215 REGB0 = TAG_Bool(ATTR_parser___ReduceAction78____goto(fra.me.REG[0])!=NIT_NULL);
13216 if (UNTAG_Bool(REGB0)) {
13217 } else {
13218 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3564);
13219 }
13220 REGB0 = ATTR_parser___ReduceAction78____goto(fra.me.REG[0]);
13221 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13222 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13223 stack_frame_head = fra.me.prev;
13224 return;
13225 }
13226 void parser___ReduceAction78___init(val_t p0, val_t p1, int* init_table){
13227 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction78].i;
13228 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13229 val_t REGB0;
13230 val_t tmp;
13231 if (init_table[itpos81]) return;
13232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13233 fra.me.file = LOCATE_parser;
13234 fra.me.line = 3567;
13235 fra.me.meth = LOCATE_parser___ReduceAction78___init;
13236 fra.me.has_broke = 0;
13237 fra.me.REG_size = 2;
13238 fra.me.REG[0] = NIT_NULL;
13239 fra.me.REG[1] = NIT_NULL;
13240 fra.me.REG[0] = p0;
13241 REGB0 = p1;
13242 /* ./parser//parser.nit:3567 */
13243 fra.me.REG[1] = fra.me.REG[0];
13244 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13245 ATTR_parser___ReduceAction78____goto(fra.me.REG[1]) = REGB0;
13246 stack_frame_head = fra.me.prev;
13247 init_table[itpos81] = 1;
13248 return;
13249 }
13250 void parser___ReduceAction79___action(val_t p0, val_t p1){
13251 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
13252 val_t REGB0;
13253 val_t tmp;
13254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13255 fra.me.file = LOCATE_parser;
13256 fra.me.line = 3571;
13257 fra.me.meth = LOCATE_parser___ReduceAction79___action;
13258 fra.me.has_broke = 0;
13259 fra.me.REG_size = 9;
13260 fra.me.REG[0] = NIT_NULL;
13261 fra.me.REG[1] = NIT_NULL;
13262 fra.me.REG[2] = NIT_NULL;
13263 fra.me.REG[3] = NIT_NULL;
13264 fra.me.REG[4] = NIT_NULL;
13265 fra.me.REG[5] = NIT_NULL;
13266 fra.me.REG[6] = NIT_NULL;
13267 fra.me.REG[7] = NIT_NULL;
13268 fra.me.REG[8] = NIT_NULL;
13269 fra.me.REG[0] = p0;
13270 fra.me.REG[1] = p1;
13271 /* ./parser//parser.nit:3573 */
13272 fra.me.REG[2] = NIT_NULL;
13273 /* ./parser//parser.nit:3574 */
13274 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13275 /* ./parser//parser.nit:3575 */
13276 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13277 /* ./parser//parser.nit:3576 */
13278 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13279 /* ./parser//parser.nit:3577 */
13280 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13281 /* ./parser//parser.nit:3578 */
13282 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13283 /* ./parser//parser.nit:3579 */
13284 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13285 /* ./parser//parser.nit:3580 */
13286 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13287 /* ./parser//parser.nit:3581 */
13288 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13289 /* ./parser//parser.nit:3583 */
13290 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13291 if (UNTAG_Bool(REGB0)) {
13292 } else {
13293 nit_abort("Assert failed", NULL, LOCATE_parser, 3583);
13294 }
13295 /* ./parser//parser.nit:3585 */
13296 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13297 if (UNTAG_Bool(REGB0)) {
13298 } else {
13299 nit_abort("Assert failed", NULL, LOCATE_parser, 3585);
13300 }
13301 /* ./parser//parser.nit:3587 */
13302 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13303 if (UNTAG_Bool(REGB0)) {
13304 } else {
13305 nit_abort("Assert failed", NULL, LOCATE_parser, 3587);
13306 }
13307 /* ./parser//parser.nit:3589 */
13308 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13309 if (UNTAG_Bool(REGB0)) {
13310 } else {
13311 nit_abort("Assert failed", NULL, LOCATE_parser, 3589);
13312 }
13313 /* ./parser//parser.nit:3591 */
13314 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13315 if (UNTAG_Bool(REGB0)) {
13316 } else {
13317 nit_abort("Assert failed", NULL, LOCATE_parser, 3591);
13318 }
13319 /* ./parser//parser.nit:3593 */
13320 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TString, ID_TString)) /*cast nullable TString*/;
13321 if (UNTAG_Bool(REGB0)) {
13322 } else {
13323 nit_abort("Assert failed", NULL, LOCATE_parser, 3593);
13324 }
13325 /* ./parser//parser.nit:3594 */
13326 fra.me.REG[3] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
13327 /* ./parser//parser.nit:3603 */
13328 fra.me.REG[2] = fra.me.REG[3];
13329 /* ./parser//parser.nit:3604 */
13330 REGB0 = TAG_Bool(ATTR_parser___ReduceAction79____goto(fra.me.REG[0])!=NIT_NULL);
13331 if (UNTAG_Bool(REGB0)) {
13332 } else {
13333 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3604);
13334 }
13335 REGB0 = ATTR_parser___ReduceAction79____goto(fra.me.REG[0]);
13336 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13337 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13338 stack_frame_head = fra.me.prev;
13339 return;
13340 }
13341 void parser___ReduceAction79___init(val_t p0, val_t p1, int* init_table){
13342 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction79].i;
13343 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13344 val_t REGB0;
13345 val_t tmp;
13346 if (init_table[itpos82]) return;
13347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13348 fra.me.file = LOCATE_parser;
13349 fra.me.line = 3607;
13350 fra.me.meth = LOCATE_parser___ReduceAction79___init;
13351 fra.me.has_broke = 0;
13352 fra.me.REG_size = 2;
13353 fra.me.REG[0] = NIT_NULL;
13354 fra.me.REG[1] = NIT_NULL;
13355 fra.me.REG[0] = p0;
13356 REGB0 = p1;
13357 /* ./parser//parser.nit:3607 */
13358 fra.me.REG[1] = fra.me.REG[0];
13359 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13360 ATTR_parser___ReduceAction79____goto(fra.me.REG[1]) = REGB0;
13361 stack_frame_head = fra.me.prev;
13362 init_table[itpos82] = 1;
13363 return;
13364 }
13365 void parser___ReduceAction80___action(val_t p0, val_t p1){
13366 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
13367 val_t REGB0;
13368 val_t tmp;
13369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13370 fra.me.file = LOCATE_parser;
13371 fra.me.line = 3611;
13372 fra.me.meth = LOCATE_parser___ReduceAction80___action;
13373 fra.me.has_broke = 0;
13374 fra.me.REG_size = 10;
13375 fra.me.REG[0] = NIT_NULL;
13376 fra.me.REG[1] = NIT_NULL;
13377 fra.me.REG[2] = NIT_NULL;
13378 fra.me.REG[3] = NIT_NULL;
13379 fra.me.REG[4] = NIT_NULL;
13380 fra.me.REG[5] = NIT_NULL;
13381 fra.me.REG[6] = NIT_NULL;
13382 fra.me.REG[7] = NIT_NULL;
13383 fra.me.REG[8] = NIT_NULL;
13384 fra.me.REG[9] = NIT_NULL;
13385 fra.me.REG[0] = p0;
13386 fra.me.REG[1] = p1;
13387 /* ./parser//parser.nit:3613 */
13388 fra.me.REG[2] = NIT_NULL;
13389 /* ./parser//parser.nit:3614 */
13390 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13391 /* ./parser//parser.nit:3615 */
13392 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13393 /* ./parser//parser.nit:3616 */
13394 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13395 /* ./parser//parser.nit:3617 */
13396 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13397 /* ./parser//parser.nit:3618 */
13398 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13399 /* ./parser//parser.nit:3619 */
13400 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13401 /* ./parser//parser.nit:3620 */
13402 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13403 /* ./parser//parser.nit:3621 */
13404 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13405 /* ./parser//parser.nit:3622 */
13406 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13407 /* ./parser//parser.nit:3624 */
13408 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13409 if (UNTAG_Bool(REGB0)) {
13410 } else {
13411 nit_abort("Assert failed", NULL, LOCATE_parser, 3624);
13412 }
13413 /* ./parser//parser.nit:3626 */
13414 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13415 if (UNTAG_Bool(REGB0)) {
13416 } else {
13417 nit_abort("Assert failed", NULL, LOCATE_parser, 3626);
13418 }
13419 /* ./parser//parser.nit:3628 */
13420 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13421 if (UNTAG_Bool(REGB0)) {
13422 } else {
13423 nit_abort("Assert failed", NULL, LOCATE_parser, 3628);
13424 }
13425 /* ./parser//parser.nit:3630 */
13426 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13427 if (UNTAG_Bool(REGB0)) {
13428 } else {
13429 nit_abort("Assert failed", NULL, LOCATE_parser, 3630);
13430 }
13431 /* ./parser//parser.nit:3632 */
13432 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13433 if (UNTAG_Bool(REGB0)) {
13434 } else {
13435 nit_abort("Assert failed", NULL, LOCATE_parser, 3632);
13436 }
13437 /* ./parser//parser.nit:3634 */
13438 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13439 if (UNTAG_Bool(REGB0)) {
13440 } else {
13441 nit_abort("Assert failed", NULL, LOCATE_parser, 3634);
13442 }
13443 /* ./parser//parser.nit:3636 */
13444 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TString, ID_TString)) /*cast nullable TString*/;
13445 if (UNTAG_Bool(REGB0)) {
13446 } else {
13447 nit_abort("Assert failed", NULL, LOCATE_parser, 3636);
13448 }
13449 /* ./parser//parser.nit:3637 */
13450 fra.me.REG[3] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
13451 /* ./parser//parser.nit:3646 */
13452 fra.me.REG[2] = fra.me.REG[3];
13453 /* ./parser//parser.nit:3647 */
13454 REGB0 = TAG_Bool(ATTR_parser___ReduceAction80____goto(fra.me.REG[0])!=NIT_NULL);
13455 if (UNTAG_Bool(REGB0)) {
13456 } else {
13457 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3647);
13458 }
13459 REGB0 = ATTR_parser___ReduceAction80____goto(fra.me.REG[0]);
13460 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13461 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13462 stack_frame_head = fra.me.prev;
13463 return;
13464 }
13465 void parser___ReduceAction80___init(val_t p0, val_t p1, int* init_table){
13466 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction80].i;
13467 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13468 val_t REGB0;
13469 val_t tmp;
13470 if (init_table[itpos83]) return;
13471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13472 fra.me.file = LOCATE_parser;
13473 fra.me.line = 3650;
13474 fra.me.meth = LOCATE_parser___ReduceAction80___init;
13475 fra.me.has_broke = 0;
13476 fra.me.REG_size = 2;
13477 fra.me.REG[0] = NIT_NULL;
13478 fra.me.REG[1] = NIT_NULL;
13479 fra.me.REG[0] = p0;
13480 REGB0 = p1;
13481 /* ./parser//parser.nit:3650 */
13482 fra.me.REG[1] = fra.me.REG[0];
13483 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13484 ATTR_parser___ReduceAction80____goto(fra.me.REG[1]) = REGB0;
13485 stack_frame_head = fra.me.prev;
13486 init_table[itpos83] = 1;
13487 return;
13488 }
13489 void parser___ReduceAction81___action(val_t p0, val_t p1){
13490 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
13491 val_t REGB0;
13492 val_t tmp;
13493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13494 fra.me.file = LOCATE_parser;
13495 fra.me.line = 3654;
13496 fra.me.meth = LOCATE_parser___ReduceAction81___action;
13497 fra.me.has_broke = 0;
13498 fra.me.REG_size = 7;
13499 fra.me.REG[0] = NIT_NULL;
13500 fra.me.REG[1] = NIT_NULL;
13501 fra.me.REG[2] = NIT_NULL;
13502 fra.me.REG[3] = NIT_NULL;
13503 fra.me.REG[4] = NIT_NULL;
13504 fra.me.REG[5] = NIT_NULL;
13505 fra.me.REG[6] = NIT_NULL;
13506 fra.me.REG[0] = p0;
13507 fra.me.REG[1] = p1;
13508 /* ./parser//parser.nit:3656 */
13509 fra.me.REG[2] = NIT_NULL;
13510 /* ./parser//parser.nit:3657 */
13511 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13512 /* ./parser//parser.nit:3658 */
13513 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13514 /* ./parser//parser.nit:3659 */
13515 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13516 /* ./parser//parser.nit:3660 */
13517 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13518 /* ./parser//parser.nit:3662 */
13519 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13520 if (UNTAG_Bool(REGB0)) {
13521 } else {
13522 nit_abort("Assert failed", NULL, LOCATE_parser, 3662);
13523 }
13524 /* ./parser//parser.nit:3664 */
13525 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13526 if (UNTAG_Bool(REGB0)) {
13527 } else {
13528 nit_abort("Assert failed", NULL, LOCATE_parser, 3664);
13529 }
13530 /* ./parser//parser.nit:3666 */
13531 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13532 if (UNTAG_Bool(REGB0)) {
13533 } else {
13534 nit_abort("Assert failed", NULL, LOCATE_parser, 3666);
13535 }
13536 /* ./parser//parser.nit:3668 */
13537 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13538 if (UNTAG_Bool(REGB0)) {
13539 } else {
13540 nit_abort("Assert failed", NULL, LOCATE_parser, 3668);
13541 }
13542 /* ./parser//parser.nit:3669 */
13543 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[6], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
13544 /* ./parser//parser.nit:3681 */
13545 fra.me.REG[2] = fra.me.REG[3];
13546 /* ./parser//parser.nit:3682 */
13547 REGB0 = TAG_Bool(ATTR_parser___ReduceAction81____goto(fra.me.REG[0])!=NIT_NULL);
13548 if (UNTAG_Bool(REGB0)) {
13549 } else {
13550 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3682);
13551 }
13552 REGB0 = ATTR_parser___ReduceAction81____goto(fra.me.REG[0]);
13553 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13554 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13555 stack_frame_head = fra.me.prev;
13556 return;
13557 }
13558 void parser___ReduceAction81___init(val_t p0, val_t p1, int* init_table){
13559 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction81].i;
13560 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13561 val_t REGB0;
13562 val_t tmp;
13563 if (init_table[itpos84]) return;
13564 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13565 fra.me.file = LOCATE_parser;
13566 fra.me.line = 3685;
13567 fra.me.meth = LOCATE_parser___ReduceAction81___init;
13568 fra.me.has_broke = 0;
13569 fra.me.REG_size = 2;
13570 fra.me.REG[0] = NIT_NULL;
13571 fra.me.REG[1] = NIT_NULL;
13572 fra.me.REG[0] = p0;
13573 REGB0 = p1;
13574 /* ./parser//parser.nit:3685 */
13575 fra.me.REG[1] = fra.me.REG[0];
13576 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13577 ATTR_parser___ReduceAction81____goto(fra.me.REG[1]) = REGB0;
13578 stack_frame_head = fra.me.prev;
13579 init_table[itpos84] = 1;
13580 return;
13581 }
13582 void parser___ReduceAction82___action(val_t p0, val_t p1){
13583 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13584 val_t REGB0;
13585 val_t tmp;
13586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13587 fra.me.file = LOCATE_parser;
13588 fra.me.line = 3689;
13589 fra.me.meth = LOCATE_parser___ReduceAction82___action;
13590 fra.me.has_broke = 0;
13591 fra.me.REG_size = 8;
13592 fra.me.REG[0] = NIT_NULL;
13593 fra.me.REG[1] = NIT_NULL;
13594 fra.me.REG[2] = NIT_NULL;
13595 fra.me.REG[3] = NIT_NULL;
13596 fra.me.REG[4] = NIT_NULL;
13597 fra.me.REG[5] = NIT_NULL;
13598 fra.me.REG[6] = NIT_NULL;
13599 fra.me.REG[7] = NIT_NULL;
13600 fra.me.REG[0] = p0;
13601 fra.me.REG[1] = p1;
13602 /* ./parser//parser.nit:3691 */
13603 fra.me.REG[2] = NIT_NULL;
13604 /* ./parser//parser.nit:3692 */
13605 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13606 /* ./parser//parser.nit:3693 */
13607 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13608 /* ./parser//parser.nit:3694 */
13609 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13610 /* ./parser//parser.nit:3695 */
13611 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13612 /* ./parser//parser.nit:3696 */
13613 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13614 /* ./parser//parser.nit:3698 */
13615 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13616 if (UNTAG_Bool(REGB0)) {
13617 } else {
13618 nit_abort("Assert failed", NULL, LOCATE_parser, 3698);
13619 }
13620 /* ./parser//parser.nit:3700 */
13621 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13622 if (UNTAG_Bool(REGB0)) {
13623 } else {
13624 nit_abort("Assert failed", NULL, LOCATE_parser, 3700);
13625 }
13626 /* ./parser//parser.nit:3702 */
13627 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13628 if (UNTAG_Bool(REGB0)) {
13629 } else {
13630 nit_abort("Assert failed", NULL, LOCATE_parser, 3702);
13631 }
13632 /* ./parser//parser.nit:3704 */
13633 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13634 if (UNTAG_Bool(REGB0)) {
13635 } else {
13636 nit_abort("Assert failed", NULL, LOCATE_parser, 3704);
13637 }
13638 /* ./parser//parser.nit:3706 */
13639 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13640 if (UNTAG_Bool(REGB0)) {
13641 } else {
13642 nit_abort("Assert failed", NULL, LOCATE_parser, 3706);
13643 }
13644 /* ./parser//parser.nit:3707 */
13645 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
13646 /* ./parser//parser.nit:3719 */
13647 fra.me.REG[2] = fra.me.REG[3];
13648 /* ./parser//parser.nit:3720 */
13649 REGB0 = TAG_Bool(ATTR_parser___ReduceAction82____goto(fra.me.REG[0])!=NIT_NULL);
13650 if (UNTAG_Bool(REGB0)) {
13651 } else {
13652 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3720);
13653 }
13654 REGB0 = ATTR_parser___ReduceAction82____goto(fra.me.REG[0]);
13655 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13656 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13657 stack_frame_head = fra.me.prev;
13658 return;
13659 }
13660 void parser___ReduceAction82___init(val_t p0, val_t p1, int* init_table){
13661 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction82].i;
13662 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13663 val_t REGB0;
13664 val_t tmp;
13665 if (init_table[itpos85]) return;
13666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13667 fra.me.file = LOCATE_parser;
13668 fra.me.line = 3723;
13669 fra.me.meth = LOCATE_parser___ReduceAction82___init;
13670 fra.me.has_broke = 0;
13671 fra.me.REG_size = 2;
13672 fra.me.REG[0] = NIT_NULL;
13673 fra.me.REG[1] = NIT_NULL;
13674 fra.me.REG[0] = p0;
13675 REGB0 = p1;
13676 /* ./parser//parser.nit:3723 */
13677 fra.me.REG[1] = fra.me.REG[0];
13678 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13679 ATTR_parser___ReduceAction82____goto(fra.me.REG[1]) = REGB0;
13680 stack_frame_head = fra.me.prev;
13681 init_table[itpos85] = 1;
13682 return;
13683 }
13684 void parser___ReduceAction83___action(val_t p0, val_t p1){
13685 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13686 val_t REGB0;
13687 val_t tmp;
13688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13689 fra.me.file = LOCATE_parser;
13690 fra.me.line = 3727;
13691 fra.me.meth = LOCATE_parser___ReduceAction83___action;
13692 fra.me.has_broke = 0;
13693 fra.me.REG_size = 8;
13694 fra.me.REG[0] = NIT_NULL;
13695 fra.me.REG[1] = NIT_NULL;
13696 fra.me.REG[2] = NIT_NULL;
13697 fra.me.REG[3] = NIT_NULL;
13698 fra.me.REG[4] = NIT_NULL;
13699 fra.me.REG[5] = NIT_NULL;
13700 fra.me.REG[6] = NIT_NULL;
13701 fra.me.REG[7] = NIT_NULL;
13702 fra.me.REG[0] = p0;
13703 fra.me.REG[1] = p1;
13704 /* ./parser//parser.nit:3729 */
13705 fra.me.REG[2] = NIT_NULL;
13706 /* ./parser//parser.nit:3730 */
13707 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13708 /* ./parser//parser.nit:3731 */
13709 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13710 /* ./parser//parser.nit:3732 */
13711 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13712 /* ./parser//parser.nit:3733 */
13713 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13714 /* ./parser//parser.nit:3734 */
13715 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13716 /* ./parser//parser.nit:3736 */
13717 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13718 if (UNTAG_Bool(REGB0)) {
13719 } else {
13720 nit_abort("Assert failed", NULL, LOCATE_parser, 3736);
13721 }
13722 /* ./parser//parser.nit:3738 */
13723 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
13724 if (UNTAG_Bool(REGB0)) {
13725 } else {
13726 nit_abort("Assert failed", NULL, LOCATE_parser, 3738);
13727 }
13728 /* ./parser//parser.nit:3740 */
13729 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13730 if (UNTAG_Bool(REGB0)) {
13731 } else {
13732 nit_abort("Assert failed", NULL, LOCATE_parser, 3740);
13733 }
13734 /* ./parser//parser.nit:3742 */
13735 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13736 if (UNTAG_Bool(REGB0)) {
13737 } else {
13738 nit_abort("Assert failed", NULL, LOCATE_parser, 3742);
13739 }
13740 /* ./parser//parser.nit:3744 */
13741 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13742 if (UNTAG_Bool(REGB0)) {
13743 } else {
13744 nit_abort("Assert failed", NULL, LOCATE_parser, 3744);
13745 }
13746 /* ./parser//parser.nit:3745 */
13747 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], fra.me.REG[6], NIT_NULL, NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
13748 /* ./parser//parser.nit:3757 */
13749 fra.me.REG[2] = fra.me.REG[3];
13750 /* ./parser//parser.nit:3758 */
13751 REGB0 = TAG_Bool(ATTR_parser___ReduceAction83____goto(fra.me.REG[0])!=NIT_NULL);
13752 if (UNTAG_Bool(REGB0)) {
13753 } else {
13754 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3758);
13755 }
13756 REGB0 = ATTR_parser___ReduceAction83____goto(fra.me.REG[0]);
13757 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13758 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13759 stack_frame_head = fra.me.prev;
13760 return;
13761 }
13762 void parser___ReduceAction83___init(val_t p0, val_t p1, int* init_table){
13763 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction83].i;
13764 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13765 val_t REGB0;
13766 val_t tmp;
13767 if (init_table[itpos86]) return;
13768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13769 fra.me.file = LOCATE_parser;
13770 fra.me.line = 3761;
13771 fra.me.meth = LOCATE_parser___ReduceAction83___init;
13772 fra.me.has_broke = 0;
13773 fra.me.REG_size = 2;
13774 fra.me.REG[0] = NIT_NULL;
13775 fra.me.REG[1] = NIT_NULL;
13776 fra.me.REG[0] = p0;
13777 REGB0 = p1;
13778 /* ./parser//parser.nit:3761 */
13779 fra.me.REG[1] = fra.me.REG[0];
13780 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13781 ATTR_parser___ReduceAction83____goto(fra.me.REG[1]) = REGB0;
13782 stack_frame_head = fra.me.prev;
13783 init_table[itpos86] = 1;
13784 return;
13785 }
13786 void parser___ReduceAction84___action(val_t p0, val_t p1){
13787 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
13788 val_t REGB0;
13789 val_t tmp;
13790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13791 fra.me.file = LOCATE_parser;
13792 fra.me.line = 3765;
13793 fra.me.meth = LOCATE_parser___ReduceAction84___action;
13794 fra.me.has_broke = 0;
13795 fra.me.REG_size = 9;
13796 fra.me.REG[0] = NIT_NULL;
13797 fra.me.REG[1] = NIT_NULL;
13798 fra.me.REG[2] = NIT_NULL;
13799 fra.me.REG[3] = NIT_NULL;
13800 fra.me.REG[4] = NIT_NULL;
13801 fra.me.REG[5] = NIT_NULL;
13802 fra.me.REG[6] = NIT_NULL;
13803 fra.me.REG[7] = NIT_NULL;
13804 fra.me.REG[8] = NIT_NULL;
13805 fra.me.REG[0] = p0;
13806 fra.me.REG[1] = p1;
13807 /* ./parser//parser.nit:3767 */
13808 fra.me.REG[2] = NIT_NULL;
13809 /* ./parser//parser.nit:3768 */
13810 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13811 /* ./parser//parser.nit:3769 */
13812 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13813 /* ./parser//parser.nit:3770 */
13814 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13815 /* ./parser//parser.nit:3771 */
13816 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13817 /* ./parser//parser.nit:3772 */
13818 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13819 /* ./parser//parser.nit:3773 */
13820 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13821 /* ./parser//parser.nit:3775 */
13822 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13823 if (UNTAG_Bool(REGB0)) {
13824 } else {
13825 nit_abort("Assert failed", NULL, LOCATE_parser, 3775);
13826 }
13827 /* ./parser//parser.nit:3777 */
13828 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
13829 if (UNTAG_Bool(REGB0)) {
13830 } else {
13831 nit_abort("Assert failed", NULL, LOCATE_parser, 3777);
13832 }
13833 /* ./parser//parser.nit:3779 */
13834 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13835 if (UNTAG_Bool(REGB0)) {
13836 } else {
13837 nit_abort("Assert failed", NULL, LOCATE_parser, 3779);
13838 }
13839 /* ./parser//parser.nit:3781 */
13840 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13841 if (UNTAG_Bool(REGB0)) {
13842 } else {
13843 nit_abort("Assert failed", NULL, LOCATE_parser, 3781);
13844 }
13845 /* ./parser//parser.nit:3783 */
13846 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13847 if (UNTAG_Bool(REGB0)) {
13848 } else {
13849 nit_abort("Assert failed", NULL, LOCATE_parser, 3783);
13850 }
13851 /* ./parser//parser.nit:3785 */
13852 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13853 if (UNTAG_Bool(REGB0)) {
13854 } else {
13855 nit_abort("Assert failed", NULL, LOCATE_parser, 3785);
13856 }
13857 /* ./parser//parser.nit:3786 */
13858 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
13859 /* ./parser//parser.nit:3798 */
13860 fra.me.REG[2] = fra.me.REG[3];
13861 /* ./parser//parser.nit:3799 */
13862 REGB0 = TAG_Bool(ATTR_parser___ReduceAction84____goto(fra.me.REG[0])!=NIT_NULL);
13863 if (UNTAG_Bool(REGB0)) {
13864 } else {
13865 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3799);
13866 }
13867 REGB0 = ATTR_parser___ReduceAction84____goto(fra.me.REG[0]);
13868 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13869 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13870 stack_frame_head = fra.me.prev;
13871 return;
13872 }
13873 void parser___ReduceAction84___init(val_t p0, val_t p1, int* init_table){
13874 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction84].i;
13875 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13876 val_t REGB0;
13877 val_t tmp;
13878 if (init_table[itpos87]) return;
13879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13880 fra.me.file = LOCATE_parser;
13881 fra.me.line = 3802;
13882 fra.me.meth = LOCATE_parser___ReduceAction84___init;
13883 fra.me.has_broke = 0;
13884 fra.me.REG_size = 2;
13885 fra.me.REG[0] = NIT_NULL;
13886 fra.me.REG[1] = NIT_NULL;
13887 fra.me.REG[0] = p0;
13888 REGB0 = p1;
13889 /* ./parser//parser.nit:3802 */
13890 fra.me.REG[1] = fra.me.REG[0];
13891 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13892 ATTR_parser___ReduceAction84____goto(fra.me.REG[1]) = REGB0;
13893 stack_frame_head = fra.me.prev;
13894 init_table[itpos87] = 1;
13895 return;
13896 }
13897 void parser___ReduceAction85___action(val_t p0, val_t p1){
13898 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13899 val_t REGB0;
13900 val_t tmp;
13901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13902 fra.me.file = LOCATE_parser;
13903 fra.me.line = 3806;
13904 fra.me.meth = LOCATE_parser___ReduceAction85___action;
13905 fra.me.has_broke = 0;
13906 fra.me.REG_size = 8;
13907 fra.me.REG[0] = NIT_NULL;
13908 fra.me.REG[1] = NIT_NULL;
13909 fra.me.REG[2] = NIT_NULL;
13910 fra.me.REG[3] = NIT_NULL;
13911 fra.me.REG[4] = NIT_NULL;
13912 fra.me.REG[5] = NIT_NULL;
13913 fra.me.REG[6] = NIT_NULL;
13914 fra.me.REG[7] = NIT_NULL;
13915 fra.me.REG[0] = p0;
13916 fra.me.REG[1] = p1;
13917 /* ./parser//parser.nit:3808 */
13918 fra.me.REG[2] = NIT_NULL;
13919 /* ./parser//parser.nit:3809 */
13920 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13921 /* ./parser//parser.nit:3810 */
13922 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13923 /* ./parser//parser.nit:3811 */
13924 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13925 /* ./parser//parser.nit:3812 */
13926 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13927 /* ./parser//parser.nit:3813 */
13928 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13929 /* ./parser//parser.nit:3815 */
13930 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13931 if (UNTAG_Bool(REGB0)) {
13932 } else {
13933 nit_abort("Assert failed", NULL, LOCATE_parser, 3815);
13934 }
13935 /* ./parser//parser.nit:3817 */
13936 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
13937 if (UNTAG_Bool(REGB0)) {
13938 } else {
13939 nit_abort("Assert failed", NULL, LOCATE_parser, 3817);
13940 }
13941 /* ./parser//parser.nit:3819 */
13942 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13943 if (UNTAG_Bool(REGB0)) {
13944 } else {
13945 nit_abort("Assert failed", NULL, LOCATE_parser, 3819);
13946 }
13947 /* ./parser//parser.nit:3821 */
13948 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13949 if (UNTAG_Bool(REGB0)) {
13950 } else {
13951 nit_abort("Assert failed", NULL, LOCATE_parser, 3821);
13952 }
13953 /* ./parser//parser.nit:3823 */
13954 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13955 if (UNTAG_Bool(REGB0)) {
13956 } else {
13957 nit_abort("Assert failed", NULL, LOCATE_parser, 3823);
13958 }
13959 /* ./parser//parser.nit:3824 */
13960 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
13961 /* ./parser//parser.nit:3836 */
13962 fra.me.REG[2] = fra.me.REG[3];
13963 /* ./parser//parser.nit:3837 */
13964 REGB0 = TAG_Bool(ATTR_parser___ReduceAction85____goto(fra.me.REG[0])!=NIT_NULL);
13965 if (UNTAG_Bool(REGB0)) {
13966 } else {
13967 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3837);
13968 }
13969 REGB0 = ATTR_parser___ReduceAction85____goto(fra.me.REG[0]);
13970 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13971 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13972 stack_frame_head = fra.me.prev;
13973 return;
13974 }
13975 void parser___ReduceAction85___init(val_t p0, val_t p1, int* init_table){
13976 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction85].i;
13977 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13978 val_t REGB0;
13979 val_t tmp;
13980 if (init_table[itpos88]) return;
13981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13982 fra.me.file = LOCATE_parser;
13983 fra.me.line = 3840;
13984 fra.me.meth = LOCATE_parser___ReduceAction85___init;
13985 fra.me.has_broke = 0;
13986 fra.me.REG_size = 2;
13987 fra.me.REG[0] = NIT_NULL;
13988 fra.me.REG[1] = NIT_NULL;
13989 fra.me.REG[0] = p0;
13990 REGB0 = p1;
13991 /* ./parser//parser.nit:3840 */
13992 fra.me.REG[1] = fra.me.REG[0];
13993 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13994 ATTR_parser___ReduceAction85____goto(fra.me.REG[1]) = REGB0;
13995 stack_frame_head = fra.me.prev;
13996 init_table[itpos88] = 1;
13997 return;
13998 }
13999 void parser___ReduceAction86___action(val_t p0, val_t p1){
14000 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14001 val_t REGB0;
14002 val_t tmp;
14003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14004 fra.me.file = LOCATE_parser;
14005 fra.me.line = 3844;
14006 fra.me.meth = LOCATE_parser___ReduceAction86___action;
14007 fra.me.has_broke = 0;
14008 fra.me.REG_size = 9;
14009 fra.me.REG[0] = NIT_NULL;
14010 fra.me.REG[1] = NIT_NULL;
14011 fra.me.REG[2] = NIT_NULL;
14012 fra.me.REG[3] = NIT_NULL;
14013 fra.me.REG[4] = NIT_NULL;
14014 fra.me.REG[5] = NIT_NULL;
14015 fra.me.REG[6] = NIT_NULL;
14016 fra.me.REG[7] = NIT_NULL;
14017 fra.me.REG[8] = NIT_NULL;
14018 fra.me.REG[0] = p0;
14019 fra.me.REG[1] = p1;
14020 /* ./parser//parser.nit:3846 */
14021 fra.me.REG[2] = NIT_NULL;
14022 /* ./parser//parser.nit:3847 */
14023 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14024 /* ./parser//parser.nit:3848 */
14025 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14026 /* ./parser//parser.nit:3849 */
14027 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14028 /* ./parser//parser.nit:3850 */
14029 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14030 /* ./parser//parser.nit:3851 */
14031 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14032 /* ./parser//parser.nit:3852 */
14033 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14034 /* ./parser//parser.nit:3854 */
14035 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14036 if (UNTAG_Bool(REGB0)) {
14037 } else {
14038 nit_abort("Assert failed", NULL, LOCATE_parser, 3854);
14039 }
14040 /* ./parser//parser.nit:3856 */
14041 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14042 if (UNTAG_Bool(REGB0)) {
14043 } else {
14044 nit_abort("Assert failed", NULL, LOCATE_parser, 3856);
14045 }
14046 /* ./parser//parser.nit:3858 */
14047 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14048 if (UNTAG_Bool(REGB0)) {
14049 } else {
14050 nit_abort("Assert failed", NULL, LOCATE_parser, 3858);
14051 }
14052 /* ./parser//parser.nit:3860 */
14053 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14054 if (UNTAG_Bool(REGB0)) {
14055 } else {
14056 nit_abort("Assert failed", NULL, LOCATE_parser, 3860);
14057 }
14058 /* ./parser//parser.nit:3862 */
14059 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14060 if (UNTAG_Bool(REGB0)) {
14061 } else {
14062 nit_abort("Assert failed", NULL, LOCATE_parser, 3862);
14063 }
14064 /* ./parser//parser.nit:3864 */
14065 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14066 if (UNTAG_Bool(REGB0)) {
14067 } else {
14068 nit_abort("Assert failed", NULL, LOCATE_parser, 3864);
14069 }
14070 /* ./parser//parser.nit:3865 */
14071 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
14072 /* ./parser//parser.nit:3877 */
14073 fra.me.REG[2] = fra.me.REG[3];
14074 /* ./parser//parser.nit:3878 */
14075 REGB0 = TAG_Bool(ATTR_parser___ReduceAction86____goto(fra.me.REG[0])!=NIT_NULL);
14076 if (UNTAG_Bool(REGB0)) {
14077 } else {
14078 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3878);
14079 }
14080 REGB0 = ATTR_parser___ReduceAction86____goto(fra.me.REG[0]);
14081 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14082 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14083 stack_frame_head = fra.me.prev;
14084 return;
14085 }
14086 void parser___ReduceAction86___init(val_t p0, val_t p1, int* init_table){
14087 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction86].i;
14088 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14089 val_t REGB0;
14090 val_t tmp;
14091 if (init_table[itpos89]) return;
14092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14093 fra.me.file = LOCATE_parser;
14094 fra.me.line = 3881;
14095 fra.me.meth = LOCATE_parser___ReduceAction86___init;
14096 fra.me.has_broke = 0;
14097 fra.me.REG_size = 2;
14098 fra.me.REG[0] = NIT_NULL;
14099 fra.me.REG[1] = NIT_NULL;
14100 fra.me.REG[0] = p0;
14101 REGB0 = p1;
14102 /* ./parser//parser.nit:3881 */
14103 fra.me.REG[1] = fra.me.REG[0];
14104 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14105 ATTR_parser___ReduceAction86____goto(fra.me.REG[1]) = REGB0;
14106 stack_frame_head = fra.me.prev;
14107 init_table[itpos89] = 1;
14108 return;
14109 }
14110 void parser___ReduceAction87___action(val_t p0, val_t p1){
14111 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14112 val_t REGB0;
14113 val_t tmp;
14114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14115 fra.me.file = LOCATE_parser;
14116 fra.me.line = 3885;
14117 fra.me.meth = LOCATE_parser___ReduceAction87___action;
14118 fra.me.has_broke = 0;
14119 fra.me.REG_size = 9;
14120 fra.me.REG[0] = NIT_NULL;
14121 fra.me.REG[1] = NIT_NULL;
14122 fra.me.REG[2] = NIT_NULL;
14123 fra.me.REG[3] = NIT_NULL;
14124 fra.me.REG[4] = NIT_NULL;
14125 fra.me.REG[5] = NIT_NULL;
14126 fra.me.REG[6] = NIT_NULL;
14127 fra.me.REG[7] = NIT_NULL;
14128 fra.me.REG[8] = NIT_NULL;
14129 fra.me.REG[0] = p0;
14130 fra.me.REG[1] = p1;
14131 /* ./parser//parser.nit:3887 */
14132 fra.me.REG[2] = NIT_NULL;
14133 /* ./parser//parser.nit:3888 */
14134 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14135 /* ./parser//parser.nit:3889 */
14136 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14137 /* ./parser//parser.nit:3890 */
14138 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14139 /* ./parser//parser.nit:3891 */
14140 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14141 /* ./parser//parser.nit:3892 */
14142 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14143 /* ./parser//parser.nit:3893 */
14144 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14145 /* ./parser//parser.nit:3895 */
14146 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14147 if (UNTAG_Bool(REGB0)) {
14148 } else {
14149 nit_abort("Assert failed", NULL, LOCATE_parser, 3895);
14150 }
14151 /* ./parser//parser.nit:3897 */
14152 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14153 if (UNTAG_Bool(REGB0)) {
14154 } else {
14155 nit_abort("Assert failed", NULL, LOCATE_parser, 3897);
14156 }
14157 /* ./parser//parser.nit:3899 */
14158 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14159 if (UNTAG_Bool(REGB0)) {
14160 } else {
14161 nit_abort("Assert failed", NULL, LOCATE_parser, 3899);
14162 }
14163 /* ./parser//parser.nit:3901 */
14164 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14165 if (UNTAG_Bool(REGB0)) {
14166 } else {
14167 nit_abort("Assert failed", NULL, LOCATE_parser, 3901);
14168 }
14169 /* ./parser//parser.nit:3903 */
14170 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14171 if (UNTAG_Bool(REGB0)) {
14172 } else {
14173 nit_abort("Assert failed", NULL, LOCATE_parser, 3903);
14174 }
14175 /* ./parser//parser.nit:3905 */
14176 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14177 if (UNTAG_Bool(REGB0)) {
14178 } else {
14179 nit_abort("Assert failed", NULL, LOCATE_parser, 3905);
14180 }
14181 /* ./parser//parser.nit:3906 */
14182 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
14183 /* ./parser//parser.nit:3918 */
14184 fra.me.REG[2] = fra.me.REG[3];
14185 /* ./parser//parser.nit:3919 */
14186 REGB0 = TAG_Bool(ATTR_parser___ReduceAction87____goto(fra.me.REG[0])!=NIT_NULL);
14187 if (UNTAG_Bool(REGB0)) {
14188 } else {
14189 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3919);
14190 }
14191 REGB0 = ATTR_parser___ReduceAction87____goto(fra.me.REG[0]);
14192 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14193 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14194 stack_frame_head = fra.me.prev;
14195 return;
14196 }
14197 void parser___ReduceAction87___init(val_t p0, val_t p1, int* init_table){
14198 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction87].i;
14199 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14200 val_t REGB0;
14201 val_t tmp;
14202 if (init_table[itpos90]) return;
14203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14204 fra.me.file = LOCATE_parser;
14205 fra.me.line = 3922;
14206 fra.me.meth = LOCATE_parser___ReduceAction87___init;
14207 fra.me.has_broke = 0;
14208 fra.me.REG_size = 2;
14209 fra.me.REG[0] = NIT_NULL;
14210 fra.me.REG[1] = NIT_NULL;
14211 fra.me.REG[0] = p0;
14212 REGB0 = p1;
14213 /* ./parser//parser.nit:3922 */
14214 fra.me.REG[1] = fra.me.REG[0];
14215 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14216 ATTR_parser___ReduceAction87____goto(fra.me.REG[1]) = REGB0;
14217 stack_frame_head = fra.me.prev;
14218 init_table[itpos90] = 1;
14219 return;
14220 }
14221 void parser___ReduceAction88___action(val_t p0, val_t p1){
14222 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
14223 val_t REGB0;
14224 val_t tmp;
14225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14226 fra.me.file = LOCATE_parser;
14227 fra.me.line = 3926;
14228 fra.me.meth = LOCATE_parser___ReduceAction88___action;
14229 fra.me.has_broke = 0;
14230 fra.me.REG_size = 10;
14231 fra.me.REG[0] = NIT_NULL;
14232 fra.me.REG[1] = NIT_NULL;
14233 fra.me.REG[2] = NIT_NULL;
14234 fra.me.REG[3] = NIT_NULL;
14235 fra.me.REG[4] = NIT_NULL;
14236 fra.me.REG[5] = NIT_NULL;
14237 fra.me.REG[6] = NIT_NULL;
14238 fra.me.REG[7] = NIT_NULL;
14239 fra.me.REG[8] = NIT_NULL;
14240 fra.me.REG[9] = NIT_NULL;
14241 fra.me.REG[0] = p0;
14242 fra.me.REG[1] = p1;
14243 /* ./parser//parser.nit:3928 */
14244 fra.me.REG[2] = NIT_NULL;
14245 /* ./parser//parser.nit:3929 */
14246 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14247 /* ./parser//parser.nit:3930 */
14248 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14249 /* ./parser//parser.nit:3931 */
14250 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14251 /* ./parser//parser.nit:3932 */
14252 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14253 /* ./parser//parser.nit:3933 */
14254 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14255 /* ./parser//parser.nit:3934 */
14256 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14257 /* ./parser//parser.nit:3935 */
14258 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14259 /* ./parser//parser.nit:3937 */
14260 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14261 if (UNTAG_Bool(REGB0)) {
14262 } else {
14263 nit_abort("Assert failed", NULL, LOCATE_parser, 3937);
14264 }
14265 /* ./parser//parser.nit:3939 */
14266 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14267 if (UNTAG_Bool(REGB0)) {
14268 } else {
14269 nit_abort("Assert failed", NULL, LOCATE_parser, 3939);
14270 }
14271 /* ./parser//parser.nit:3941 */
14272 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14273 if (UNTAG_Bool(REGB0)) {
14274 } else {
14275 nit_abort("Assert failed", NULL, LOCATE_parser, 3941);
14276 }
14277 /* ./parser//parser.nit:3943 */
14278 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14279 if (UNTAG_Bool(REGB0)) {
14280 } else {
14281 nit_abort("Assert failed", NULL, LOCATE_parser, 3943);
14282 }
14283 /* ./parser//parser.nit:3945 */
14284 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14285 if (UNTAG_Bool(REGB0)) {
14286 } else {
14287 nit_abort("Assert failed", NULL, LOCATE_parser, 3945);
14288 }
14289 /* ./parser//parser.nit:3947 */
14290 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14291 if (UNTAG_Bool(REGB0)) {
14292 } else {
14293 nit_abort("Assert failed", NULL, LOCATE_parser, 3947);
14294 }
14295 /* ./parser//parser.nit:3949 */
14296 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14297 if (UNTAG_Bool(REGB0)) {
14298 } else {
14299 nit_abort("Assert failed", NULL, LOCATE_parser, 3949);
14300 }
14301 /* ./parser//parser.nit:3950 */
14302 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
14303 /* ./parser//parser.nit:3962 */
14304 fra.me.REG[2] = fra.me.REG[3];
14305 /* ./parser//parser.nit:3963 */
14306 REGB0 = TAG_Bool(ATTR_parser___ReduceAction88____goto(fra.me.REG[0])!=NIT_NULL);
14307 if (UNTAG_Bool(REGB0)) {
14308 } else {
14309 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3963);
14310 }
14311 REGB0 = ATTR_parser___ReduceAction88____goto(fra.me.REG[0]);
14312 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14313 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14314 stack_frame_head = fra.me.prev;
14315 return;
14316 }
14317 void parser___ReduceAction88___init(val_t p0, val_t p1, int* init_table){
14318 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction88].i;
14319 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14320 val_t REGB0;
14321 val_t tmp;
14322 if (init_table[itpos91]) return;
14323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14324 fra.me.file = LOCATE_parser;
14325 fra.me.line = 3966;
14326 fra.me.meth = LOCATE_parser___ReduceAction88___init;
14327 fra.me.has_broke = 0;
14328 fra.me.REG_size = 2;
14329 fra.me.REG[0] = NIT_NULL;
14330 fra.me.REG[1] = NIT_NULL;
14331 fra.me.REG[0] = p0;
14332 REGB0 = p1;
14333 /* ./parser//parser.nit:3966 */
14334 fra.me.REG[1] = fra.me.REG[0];
14335 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14336 ATTR_parser___ReduceAction88____goto(fra.me.REG[1]) = REGB0;
14337 stack_frame_head = fra.me.prev;
14338 init_table[itpos91] = 1;
14339 return;
14340 }
14341 void parser___ReduceAction89___action(val_t p0, val_t p1){
14342 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
14343 val_t REGB0;
14344 val_t tmp;
14345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14346 fra.me.file = LOCATE_parser;
14347 fra.me.line = 3970;
14348 fra.me.meth = LOCATE_parser___ReduceAction89___action;
14349 fra.me.has_broke = 0;
14350 fra.me.REG_size = 8;
14351 fra.me.REG[0] = NIT_NULL;
14352 fra.me.REG[1] = NIT_NULL;
14353 fra.me.REG[2] = NIT_NULL;
14354 fra.me.REG[3] = NIT_NULL;
14355 fra.me.REG[4] = NIT_NULL;
14356 fra.me.REG[5] = NIT_NULL;
14357 fra.me.REG[6] = NIT_NULL;
14358 fra.me.REG[7] = NIT_NULL;
14359 fra.me.REG[0] = p0;
14360 fra.me.REG[1] = p1;
14361 /* ./parser//parser.nit:3972 */
14362 fra.me.REG[2] = NIT_NULL;
14363 /* ./parser//parser.nit:3973 */
14364 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14365 /* ./parser//parser.nit:3974 */
14366 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14367 /* ./parser//parser.nit:3975 */
14368 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14369 /* ./parser//parser.nit:3976 */
14370 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14371 /* ./parser//parser.nit:3977 */
14372 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14373 /* ./parser//parser.nit:3979 */
14374 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14375 if (UNTAG_Bool(REGB0)) {
14376 } else {
14377 nit_abort("Assert failed", NULL, LOCATE_parser, 3979);
14378 }
14379 /* ./parser//parser.nit:3981 */
14380 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14381 if (UNTAG_Bool(REGB0)) {
14382 } else {
14383 nit_abort("Assert failed", NULL, LOCATE_parser, 3981);
14384 }
14385 /* ./parser//parser.nit:3983 */
14386 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14387 if (UNTAG_Bool(REGB0)) {
14388 } else {
14389 nit_abort("Assert failed", NULL, LOCATE_parser, 3983);
14390 }
14391 /* ./parser//parser.nit:3985 */
14392 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14393 if (UNTAG_Bool(REGB0)) {
14394 } else {
14395 nit_abort("Assert failed", NULL, LOCATE_parser, 3985);
14396 }
14397 /* ./parser//parser.nit:3987 */
14398 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14399 if (UNTAG_Bool(REGB0)) {
14400 } else {
14401 nit_abort("Assert failed", NULL, LOCATE_parser, 3987);
14402 }
14403 /* ./parser//parser.nit:3988 */
14404 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
14405 /* ./parser//parser.nit:4000 */
14406 fra.me.REG[2] = fra.me.REG[3];
14407 /* ./parser//parser.nit:4001 */
14408 REGB0 = TAG_Bool(ATTR_parser___ReduceAction89____goto(fra.me.REG[0])!=NIT_NULL);
14409 if (UNTAG_Bool(REGB0)) {
14410 } else {
14411 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4001);
14412 }
14413 REGB0 = ATTR_parser___ReduceAction89____goto(fra.me.REG[0]);
14414 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14415 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14416 stack_frame_head = fra.me.prev;
14417 return;
14418 }
14419 void parser___ReduceAction89___init(val_t p0, val_t p1, int* init_table){
14420 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction89].i;
14421 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14422 val_t REGB0;
14423 val_t tmp;
14424 if (init_table[itpos92]) return;
14425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14426 fra.me.file = LOCATE_parser;
14427 fra.me.line = 4004;
14428 fra.me.meth = LOCATE_parser___ReduceAction89___init;
14429 fra.me.has_broke = 0;
14430 fra.me.REG_size = 2;
14431 fra.me.REG[0] = NIT_NULL;
14432 fra.me.REG[1] = NIT_NULL;
14433 fra.me.REG[0] = p0;
14434 REGB0 = p1;
14435 /* ./parser//parser.nit:4004 */
14436 fra.me.REG[1] = fra.me.REG[0];
14437 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14438 ATTR_parser___ReduceAction89____goto(fra.me.REG[1]) = REGB0;
14439 stack_frame_head = fra.me.prev;
14440 init_table[itpos92] = 1;
14441 return;
14442 }
14443 void parser___ReduceAction90___action(val_t p0, val_t p1){
14444 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14445 val_t REGB0;
14446 val_t tmp;
14447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14448 fra.me.file = LOCATE_parser;
14449 fra.me.line = 4008;
14450 fra.me.meth = LOCATE_parser___ReduceAction90___action;
14451 fra.me.has_broke = 0;
14452 fra.me.REG_size = 9;
14453 fra.me.REG[0] = NIT_NULL;
14454 fra.me.REG[1] = NIT_NULL;
14455 fra.me.REG[2] = NIT_NULL;
14456 fra.me.REG[3] = NIT_NULL;
14457 fra.me.REG[4] = NIT_NULL;
14458 fra.me.REG[5] = NIT_NULL;
14459 fra.me.REG[6] = NIT_NULL;
14460 fra.me.REG[7] = NIT_NULL;
14461 fra.me.REG[8] = NIT_NULL;
14462 fra.me.REG[0] = p0;
14463 fra.me.REG[1] = p1;
14464 /* ./parser//parser.nit:4010 */
14465 fra.me.REG[2] = NIT_NULL;
14466 /* ./parser//parser.nit:4011 */
14467 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14468 /* ./parser//parser.nit:4012 */
14469 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14470 /* ./parser//parser.nit:4013 */
14471 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14472 /* ./parser//parser.nit:4014 */
14473 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14474 /* ./parser//parser.nit:4015 */
14475 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14476 /* ./parser//parser.nit:4016 */
14477 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14478 /* ./parser//parser.nit:4018 */
14479 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14480 if (UNTAG_Bool(REGB0)) {
14481 } else {
14482 nit_abort("Assert failed", NULL, LOCATE_parser, 4018);
14483 }
14484 /* ./parser//parser.nit:4020 */
14485 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14486 if (UNTAG_Bool(REGB0)) {
14487 } else {
14488 nit_abort("Assert failed", NULL, LOCATE_parser, 4020);
14489 }
14490 /* ./parser//parser.nit:4022 */
14491 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14492 if (UNTAG_Bool(REGB0)) {
14493 } else {
14494 nit_abort("Assert failed", NULL, LOCATE_parser, 4022);
14495 }
14496 /* ./parser//parser.nit:4024 */
14497 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14498 if (UNTAG_Bool(REGB0)) {
14499 } else {
14500 nit_abort("Assert failed", NULL, LOCATE_parser, 4024);
14501 }
14502 /* ./parser//parser.nit:4026 */
14503 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14504 if (UNTAG_Bool(REGB0)) {
14505 } else {
14506 nit_abort("Assert failed", NULL, LOCATE_parser, 4026);
14507 }
14508 /* ./parser//parser.nit:4028 */
14509 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14510 if (UNTAG_Bool(REGB0)) {
14511 } else {
14512 nit_abort("Assert failed", NULL, LOCATE_parser, 4028);
14513 }
14514 /* ./parser//parser.nit:4029 */
14515 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
14516 /* ./parser//parser.nit:4041 */
14517 fra.me.REG[2] = fra.me.REG[3];
14518 /* ./parser//parser.nit:4042 */
14519 REGB0 = TAG_Bool(ATTR_parser___ReduceAction90____goto(fra.me.REG[0])!=NIT_NULL);
14520 if (UNTAG_Bool(REGB0)) {
14521 } else {
14522 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4042);
14523 }
14524 REGB0 = ATTR_parser___ReduceAction90____goto(fra.me.REG[0]);
14525 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14526 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14527 stack_frame_head = fra.me.prev;
14528 return;
14529 }
14530 void parser___ReduceAction90___init(val_t p0, val_t p1, int* init_table){
14531 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction90].i;
14532 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14533 val_t REGB0;
14534 val_t tmp;
14535 if (init_table[itpos93]) return;
14536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14537 fra.me.file = LOCATE_parser;
14538 fra.me.line = 4045;
14539 fra.me.meth = LOCATE_parser___ReduceAction90___init;
14540 fra.me.has_broke = 0;
14541 fra.me.REG_size = 2;
14542 fra.me.REG[0] = NIT_NULL;
14543 fra.me.REG[1] = NIT_NULL;
14544 fra.me.REG[0] = p0;
14545 REGB0 = p1;
14546 /* ./parser//parser.nit:4045 */
14547 fra.me.REG[1] = fra.me.REG[0];
14548 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14549 ATTR_parser___ReduceAction90____goto(fra.me.REG[1]) = REGB0;
14550 stack_frame_head = fra.me.prev;
14551 init_table[itpos93] = 1;
14552 return;
14553 }
14554 void parser___ReduceAction91___action(val_t p0, val_t p1){
14555 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14556 val_t REGB0;
14557 val_t tmp;
14558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14559 fra.me.file = LOCATE_parser;
14560 fra.me.line = 4049;
14561 fra.me.meth = LOCATE_parser___ReduceAction91___action;
14562 fra.me.has_broke = 0;
14563 fra.me.REG_size = 9;
14564 fra.me.REG[0] = NIT_NULL;
14565 fra.me.REG[1] = NIT_NULL;
14566 fra.me.REG[2] = NIT_NULL;
14567 fra.me.REG[3] = NIT_NULL;
14568 fra.me.REG[4] = NIT_NULL;
14569 fra.me.REG[5] = NIT_NULL;
14570 fra.me.REG[6] = NIT_NULL;
14571 fra.me.REG[7] = NIT_NULL;
14572 fra.me.REG[8] = NIT_NULL;
14573 fra.me.REG[0] = p0;
14574 fra.me.REG[1] = p1;
14575 /* ./parser//parser.nit:4051 */
14576 fra.me.REG[2] = NIT_NULL;
14577 /* ./parser//parser.nit:4052 */
14578 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14579 /* ./parser//parser.nit:4053 */
14580 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14581 /* ./parser//parser.nit:4054 */
14582 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14583 /* ./parser//parser.nit:4055 */
14584 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14585 /* ./parser//parser.nit:4056 */
14586 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14587 /* ./parser//parser.nit:4057 */
14588 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14589 /* ./parser//parser.nit:4059 */
14590 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14591 if (UNTAG_Bool(REGB0)) {
14592 } else {
14593 nit_abort("Assert failed", NULL, LOCATE_parser, 4059);
14594 }
14595 /* ./parser//parser.nit:4061 */
14596 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14597 if (UNTAG_Bool(REGB0)) {
14598 } else {
14599 nit_abort("Assert failed", NULL, LOCATE_parser, 4061);
14600 }
14601 /* ./parser//parser.nit:4063 */
14602 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14603 if (UNTAG_Bool(REGB0)) {
14604 } else {
14605 nit_abort("Assert failed", NULL, LOCATE_parser, 4063);
14606 }
14607 /* ./parser//parser.nit:4065 */
14608 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14609 if (UNTAG_Bool(REGB0)) {
14610 } else {
14611 nit_abort("Assert failed", NULL, LOCATE_parser, 4065);
14612 }
14613 /* ./parser//parser.nit:4067 */
14614 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14615 if (UNTAG_Bool(REGB0)) {
14616 } else {
14617 nit_abort("Assert failed", NULL, LOCATE_parser, 4067);
14618 }
14619 /* ./parser//parser.nit:4069 */
14620 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14621 if (UNTAG_Bool(REGB0)) {
14622 } else {
14623 nit_abort("Assert failed", NULL, LOCATE_parser, 4069);
14624 }
14625 /* ./parser//parser.nit:4070 */
14626 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
14627 /* ./parser//parser.nit:4082 */
14628 fra.me.REG[2] = fra.me.REG[3];
14629 /* ./parser//parser.nit:4083 */
14630 REGB0 = TAG_Bool(ATTR_parser___ReduceAction91____goto(fra.me.REG[0])!=NIT_NULL);
14631 if (UNTAG_Bool(REGB0)) {
14632 } else {
14633 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4083);
14634 }
14635 REGB0 = ATTR_parser___ReduceAction91____goto(fra.me.REG[0]);
14636 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14637 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14638 stack_frame_head = fra.me.prev;
14639 return;
14640 }
14641 void parser___ReduceAction91___init(val_t p0, val_t p1, int* init_table){
14642 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction91].i;
14643 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14644 val_t REGB0;
14645 val_t tmp;
14646 if (init_table[itpos94]) return;
14647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14648 fra.me.file = LOCATE_parser;
14649 fra.me.line = 4086;
14650 fra.me.meth = LOCATE_parser___ReduceAction91___init;
14651 fra.me.has_broke = 0;
14652 fra.me.REG_size = 2;
14653 fra.me.REG[0] = NIT_NULL;
14654 fra.me.REG[1] = NIT_NULL;
14655 fra.me.REG[0] = p0;
14656 REGB0 = p1;
14657 /* ./parser//parser.nit:4086 */
14658 fra.me.REG[1] = fra.me.REG[0];
14659 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14660 ATTR_parser___ReduceAction91____goto(fra.me.REG[1]) = REGB0;
14661 stack_frame_head = fra.me.prev;
14662 init_table[itpos94] = 1;
14663 return;
14664 }
14665 void parser___ReduceAction92___action(val_t p0, val_t p1){
14666 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
14667 val_t REGB0;
14668 val_t tmp;
14669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14670 fra.me.file = LOCATE_parser;
14671 fra.me.line = 4090;
14672 fra.me.meth = LOCATE_parser___ReduceAction92___action;
14673 fra.me.has_broke = 0;
14674 fra.me.REG_size = 10;
14675 fra.me.REG[0] = NIT_NULL;
14676 fra.me.REG[1] = NIT_NULL;
14677 fra.me.REG[2] = NIT_NULL;
14678 fra.me.REG[3] = NIT_NULL;
14679 fra.me.REG[4] = NIT_NULL;
14680 fra.me.REG[5] = NIT_NULL;
14681 fra.me.REG[6] = NIT_NULL;
14682 fra.me.REG[7] = NIT_NULL;
14683 fra.me.REG[8] = NIT_NULL;
14684 fra.me.REG[9] = NIT_NULL;
14685 fra.me.REG[0] = p0;
14686 fra.me.REG[1] = p1;
14687 /* ./parser//parser.nit:4092 */
14688 fra.me.REG[2] = NIT_NULL;
14689 /* ./parser//parser.nit:4093 */
14690 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14691 /* ./parser//parser.nit:4094 */
14692 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14693 /* ./parser//parser.nit:4095 */
14694 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14695 /* ./parser//parser.nit:4096 */
14696 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14697 /* ./parser//parser.nit:4097 */
14698 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14699 /* ./parser//parser.nit:4098 */
14700 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14701 /* ./parser//parser.nit:4099 */
14702 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14703 /* ./parser//parser.nit:4101 */
14704 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14705 if (UNTAG_Bool(REGB0)) {
14706 } else {
14707 nit_abort("Assert failed", NULL, LOCATE_parser, 4101);
14708 }
14709 /* ./parser//parser.nit:4103 */
14710 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14711 if (UNTAG_Bool(REGB0)) {
14712 } else {
14713 nit_abort("Assert failed", NULL, LOCATE_parser, 4103);
14714 }
14715 /* ./parser//parser.nit:4105 */
14716 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14717 if (UNTAG_Bool(REGB0)) {
14718 } else {
14719 nit_abort("Assert failed", NULL, LOCATE_parser, 4105);
14720 }
14721 /* ./parser//parser.nit:4107 */
14722 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14723 if (UNTAG_Bool(REGB0)) {
14724 } else {
14725 nit_abort("Assert failed", NULL, LOCATE_parser, 4107);
14726 }
14727 /* ./parser//parser.nit:4109 */
14728 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14729 if (UNTAG_Bool(REGB0)) {
14730 } else {
14731 nit_abort("Assert failed", NULL, LOCATE_parser, 4109);
14732 }
14733 /* ./parser//parser.nit:4111 */
14734 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14735 if (UNTAG_Bool(REGB0)) {
14736 } else {
14737 nit_abort("Assert failed", NULL, LOCATE_parser, 4111);
14738 }
14739 /* ./parser//parser.nit:4113 */
14740 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14741 if (UNTAG_Bool(REGB0)) {
14742 } else {
14743 nit_abort("Assert failed", NULL, LOCATE_parser, 4113);
14744 }
14745 /* ./parser//parser.nit:4114 */
14746 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
14747 /* ./parser//parser.nit:4126 */
14748 fra.me.REG[2] = fra.me.REG[3];
14749 /* ./parser//parser.nit:4127 */
14750 REGB0 = TAG_Bool(ATTR_parser___ReduceAction92____goto(fra.me.REG[0])!=NIT_NULL);
14751 if (UNTAG_Bool(REGB0)) {
14752 } else {
14753 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4127);
14754 }
14755 REGB0 = ATTR_parser___ReduceAction92____goto(fra.me.REG[0]);
14756 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14757 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14758 stack_frame_head = fra.me.prev;
14759 return;
14760 }
14761 void parser___ReduceAction92___init(val_t p0, val_t p1, int* init_table){
14762 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction92].i;
14763 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14764 val_t REGB0;
14765 val_t tmp;
14766 if (init_table[itpos95]) return;
14767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14768 fra.me.file = LOCATE_parser;
14769 fra.me.line = 4130;
14770 fra.me.meth = LOCATE_parser___ReduceAction92___init;
14771 fra.me.has_broke = 0;
14772 fra.me.REG_size = 2;
14773 fra.me.REG[0] = NIT_NULL;
14774 fra.me.REG[1] = NIT_NULL;
14775 fra.me.REG[0] = p0;
14776 REGB0 = p1;
14777 /* ./parser//parser.nit:4130 */
14778 fra.me.REG[1] = fra.me.REG[0];
14779 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14780 ATTR_parser___ReduceAction92____goto(fra.me.REG[1]) = REGB0;
14781 stack_frame_head = fra.me.prev;
14782 init_table[itpos95] = 1;
14783 return;
14784 }
14785 void parser___ReduceAction93___action(val_t p0, val_t p1){
14786 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14787 val_t REGB0;
14788 val_t tmp;
14789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14790 fra.me.file = LOCATE_parser;
14791 fra.me.line = 4134;
14792 fra.me.meth = LOCATE_parser___ReduceAction93___action;
14793 fra.me.has_broke = 0;
14794 fra.me.REG_size = 9;
14795 fra.me.REG[0] = NIT_NULL;
14796 fra.me.REG[1] = NIT_NULL;
14797 fra.me.REG[2] = NIT_NULL;
14798 fra.me.REG[3] = NIT_NULL;
14799 fra.me.REG[4] = NIT_NULL;
14800 fra.me.REG[5] = NIT_NULL;
14801 fra.me.REG[6] = NIT_NULL;
14802 fra.me.REG[7] = NIT_NULL;
14803 fra.me.REG[8] = NIT_NULL;
14804 fra.me.REG[0] = p0;
14805 fra.me.REG[1] = p1;
14806 /* ./parser//parser.nit:4136 */
14807 fra.me.REG[2] = NIT_NULL;
14808 /* ./parser//parser.nit:4137 */
14809 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14810 /* ./parser//parser.nit:4138 */
14811 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14812 /* ./parser//parser.nit:4139 */
14813 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14814 /* ./parser//parser.nit:4140 */
14815 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14816 /* ./parser//parser.nit:4141 */
14817 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14818 /* ./parser//parser.nit:4142 */
14819 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14820 /* ./parser//parser.nit:4144 */
14821 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14822 if (UNTAG_Bool(REGB0)) {
14823 } else {
14824 nit_abort("Assert failed", NULL, LOCATE_parser, 4144);
14825 }
14826 /* ./parser//parser.nit:4146 */
14827 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14828 if (UNTAG_Bool(REGB0)) {
14829 } else {
14830 nit_abort("Assert failed", NULL, LOCATE_parser, 4146);
14831 }
14832 /* ./parser//parser.nit:4148 */
14833 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14834 if (UNTAG_Bool(REGB0)) {
14835 } else {
14836 nit_abort("Assert failed", NULL, LOCATE_parser, 4148);
14837 }
14838 /* ./parser//parser.nit:4150 */
14839 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14840 if (UNTAG_Bool(REGB0)) {
14841 } else {
14842 nit_abort("Assert failed", NULL, LOCATE_parser, 4150);
14843 }
14844 /* ./parser//parser.nit:4152 */
14845 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14846 if (UNTAG_Bool(REGB0)) {
14847 } else {
14848 nit_abort("Assert failed", NULL, LOCATE_parser, 4152);
14849 }
14850 /* ./parser//parser.nit:4154 */
14851 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14852 if (UNTAG_Bool(REGB0)) {
14853 } else {
14854 nit_abort("Assert failed", NULL, LOCATE_parser, 4154);
14855 }
14856 /* ./parser//parser.nit:4155 */
14857 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
14858 /* ./parser//parser.nit:4167 */
14859 fra.me.REG[2] = fra.me.REG[3];
14860 /* ./parser//parser.nit:4168 */
14861 REGB0 = TAG_Bool(ATTR_parser___ReduceAction93____goto(fra.me.REG[0])!=NIT_NULL);
14862 if (UNTAG_Bool(REGB0)) {
14863 } else {
14864 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4168);
14865 }
14866 REGB0 = ATTR_parser___ReduceAction93____goto(fra.me.REG[0]);
14867 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14868 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14869 stack_frame_head = fra.me.prev;
14870 return;
14871 }
14872 void parser___ReduceAction93___init(val_t p0, val_t p1, int* init_table){
14873 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction93].i;
14874 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14875 val_t REGB0;
14876 val_t tmp;
14877 if (init_table[itpos96]) return;
14878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14879 fra.me.file = LOCATE_parser;
14880 fra.me.line = 4171;
14881 fra.me.meth = LOCATE_parser___ReduceAction93___init;
14882 fra.me.has_broke = 0;
14883 fra.me.REG_size = 2;
14884 fra.me.REG[0] = NIT_NULL;
14885 fra.me.REG[1] = NIT_NULL;
14886 fra.me.REG[0] = p0;
14887 REGB0 = p1;
14888 /* ./parser//parser.nit:4171 */
14889 fra.me.REG[1] = fra.me.REG[0];
14890 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14891 ATTR_parser___ReduceAction93____goto(fra.me.REG[1]) = REGB0;
14892 stack_frame_head = fra.me.prev;
14893 init_table[itpos96] = 1;
14894 return;
14895 }
14896 void parser___ReduceAction94___action(val_t p0, val_t p1){
14897 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
14898 val_t REGB0;
14899 val_t tmp;
14900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14901 fra.me.file = LOCATE_parser;
14902 fra.me.line = 4175;
14903 fra.me.meth = LOCATE_parser___ReduceAction94___action;
14904 fra.me.has_broke = 0;
14905 fra.me.REG_size = 10;
14906 fra.me.REG[0] = NIT_NULL;
14907 fra.me.REG[1] = NIT_NULL;
14908 fra.me.REG[2] = NIT_NULL;
14909 fra.me.REG[3] = NIT_NULL;
14910 fra.me.REG[4] = NIT_NULL;
14911 fra.me.REG[5] = NIT_NULL;
14912 fra.me.REG[6] = NIT_NULL;
14913 fra.me.REG[7] = NIT_NULL;
14914 fra.me.REG[8] = NIT_NULL;
14915 fra.me.REG[9] = NIT_NULL;
14916 fra.me.REG[0] = p0;
14917 fra.me.REG[1] = p1;
14918 /* ./parser//parser.nit:4177 */
14919 fra.me.REG[2] = NIT_NULL;
14920 /* ./parser//parser.nit:4178 */
14921 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14922 /* ./parser//parser.nit:4179 */
14923 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14924 /* ./parser//parser.nit:4180 */
14925 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14926 /* ./parser//parser.nit:4181 */
14927 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14928 /* ./parser//parser.nit:4182 */
14929 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14930 /* ./parser//parser.nit:4183 */
14931 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14932 /* ./parser//parser.nit:4184 */
14933 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14934 /* ./parser//parser.nit:4186 */
14935 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14936 if (UNTAG_Bool(REGB0)) {
14937 } else {
14938 nit_abort("Assert failed", NULL, LOCATE_parser, 4186);
14939 }
14940 /* ./parser//parser.nit:4188 */
14941 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14942 if (UNTAG_Bool(REGB0)) {
14943 } else {
14944 nit_abort("Assert failed", NULL, LOCATE_parser, 4188);
14945 }
14946 /* ./parser//parser.nit:4190 */
14947 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14948 if (UNTAG_Bool(REGB0)) {
14949 } else {
14950 nit_abort("Assert failed", NULL, LOCATE_parser, 4190);
14951 }
14952 /* ./parser//parser.nit:4192 */
14953 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14954 if (UNTAG_Bool(REGB0)) {
14955 } else {
14956 nit_abort("Assert failed", NULL, LOCATE_parser, 4192);
14957 }
14958 /* ./parser//parser.nit:4194 */
14959 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14960 if (UNTAG_Bool(REGB0)) {
14961 } else {
14962 nit_abort("Assert failed", NULL, LOCATE_parser, 4194);
14963 }
14964 /* ./parser//parser.nit:4196 */
14965 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14966 if (UNTAG_Bool(REGB0)) {
14967 } else {
14968 nit_abort("Assert failed", NULL, LOCATE_parser, 4196);
14969 }
14970 /* ./parser//parser.nit:4198 */
14971 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14972 if (UNTAG_Bool(REGB0)) {
14973 } else {
14974 nit_abort("Assert failed", NULL, LOCATE_parser, 4198);
14975 }
14976 /* ./parser//parser.nit:4199 */
14977 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
14978 /* ./parser//parser.nit:4211 */
14979 fra.me.REG[2] = fra.me.REG[3];
14980 /* ./parser//parser.nit:4212 */
14981 REGB0 = TAG_Bool(ATTR_parser___ReduceAction94____goto(fra.me.REG[0])!=NIT_NULL);
14982 if (UNTAG_Bool(REGB0)) {
14983 } else {
14984 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4212);
14985 }
14986 REGB0 = ATTR_parser___ReduceAction94____goto(fra.me.REG[0]);
14987 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14988 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14989 stack_frame_head = fra.me.prev;
14990 return;
14991 }
14992 void parser___ReduceAction94___init(val_t p0, val_t p1, int* init_table){
14993 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction94].i;
14994 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14995 val_t REGB0;
14996 val_t tmp;
14997 if (init_table[itpos97]) return;
14998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14999 fra.me.file = LOCATE_parser;
15000 fra.me.line = 4215;
15001 fra.me.meth = LOCATE_parser___ReduceAction94___init;
15002 fra.me.has_broke = 0;
15003 fra.me.REG_size = 2;
15004 fra.me.REG[0] = NIT_NULL;
15005 fra.me.REG[1] = NIT_NULL;
15006 fra.me.REG[0] = p0;
15007 REGB0 = p1;
15008 /* ./parser//parser.nit:4215 */
15009 fra.me.REG[1] = fra.me.REG[0];
15010 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15011 ATTR_parser___ReduceAction94____goto(fra.me.REG[1]) = REGB0;
15012 stack_frame_head = fra.me.prev;
15013 init_table[itpos97] = 1;
15014 return;
15015 }
15016 void parser___ReduceAction95___action(val_t p0, val_t p1){
15017 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15018 val_t REGB0;
15019 val_t tmp;
15020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15021 fra.me.file = LOCATE_parser;
15022 fra.me.line = 4219;
15023 fra.me.meth = LOCATE_parser___ReduceAction95___action;
15024 fra.me.has_broke = 0;
15025 fra.me.REG_size = 10;
15026 fra.me.REG[0] = NIT_NULL;
15027 fra.me.REG[1] = NIT_NULL;
15028 fra.me.REG[2] = NIT_NULL;
15029 fra.me.REG[3] = NIT_NULL;
15030 fra.me.REG[4] = NIT_NULL;
15031 fra.me.REG[5] = NIT_NULL;
15032 fra.me.REG[6] = NIT_NULL;
15033 fra.me.REG[7] = NIT_NULL;
15034 fra.me.REG[8] = NIT_NULL;
15035 fra.me.REG[9] = NIT_NULL;
15036 fra.me.REG[0] = p0;
15037 fra.me.REG[1] = p1;
15038 /* ./parser//parser.nit:4221 */
15039 fra.me.REG[2] = NIT_NULL;
15040 /* ./parser//parser.nit:4222 */
15041 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15042 /* ./parser//parser.nit:4223 */
15043 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15044 /* ./parser//parser.nit:4224 */
15045 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15046 /* ./parser//parser.nit:4225 */
15047 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15048 /* ./parser//parser.nit:4226 */
15049 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15050 /* ./parser//parser.nit:4227 */
15051 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15052 /* ./parser//parser.nit:4228 */
15053 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15054 /* ./parser//parser.nit:4230 */
15055 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15056 if (UNTAG_Bool(REGB0)) {
15057 } else {
15058 nit_abort("Assert failed", NULL, LOCATE_parser, 4230);
15059 }
15060 /* ./parser//parser.nit:4232 */
15061 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15062 if (UNTAG_Bool(REGB0)) {
15063 } else {
15064 nit_abort("Assert failed", NULL, LOCATE_parser, 4232);
15065 }
15066 /* ./parser//parser.nit:4234 */
15067 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15068 if (UNTAG_Bool(REGB0)) {
15069 } else {
15070 nit_abort("Assert failed", NULL, LOCATE_parser, 4234);
15071 }
15072 /* ./parser//parser.nit:4236 */
15073 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15074 if (UNTAG_Bool(REGB0)) {
15075 } else {
15076 nit_abort("Assert failed", NULL, LOCATE_parser, 4236);
15077 }
15078 /* ./parser//parser.nit:4238 */
15079 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15080 if (UNTAG_Bool(REGB0)) {
15081 } else {
15082 nit_abort("Assert failed", NULL, LOCATE_parser, 4238);
15083 }
15084 /* ./parser//parser.nit:4240 */
15085 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15086 if (UNTAG_Bool(REGB0)) {
15087 } else {
15088 nit_abort("Assert failed", NULL, LOCATE_parser, 4240);
15089 }
15090 /* ./parser//parser.nit:4242 */
15091 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
15092 if (UNTAG_Bool(REGB0)) {
15093 } else {
15094 nit_abort("Assert failed", NULL, LOCATE_parser, 4242);
15095 }
15096 /* ./parser//parser.nit:4243 */
15097 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
15098 /* ./parser//parser.nit:4255 */
15099 fra.me.REG[2] = fra.me.REG[3];
15100 /* ./parser//parser.nit:4256 */
15101 REGB0 = TAG_Bool(ATTR_parser___ReduceAction95____goto(fra.me.REG[0])!=NIT_NULL);
15102 if (UNTAG_Bool(REGB0)) {
15103 } else {
15104 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4256);
15105 }
15106 REGB0 = ATTR_parser___ReduceAction95____goto(fra.me.REG[0]);
15107 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15108 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15109 stack_frame_head = fra.me.prev;
15110 return;
15111 }
15112 void parser___ReduceAction95___init(val_t p0, val_t p1, int* init_table){
15113 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction95].i;
15114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15115 val_t REGB0;
15116 val_t tmp;
15117 if (init_table[itpos98]) return;
15118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15119 fra.me.file = LOCATE_parser;
15120 fra.me.line = 4259;
15121 fra.me.meth = LOCATE_parser___ReduceAction95___init;
15122 fra.me.has_broke = 0;
15123 fra.me.REG_size = 2;
15124 fra.me.REG[0] = NIT_NULL;
15125 fra.me.REG[1] = NIT_NULL;
15126 fra.me.REG[0] = p0;
15127 REGB0 = p1;
15128 /* ./parser//parser.nit:4259 */
15129 fra.me.REG[1] = fra.me.REG[0];
15130 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15131 ATTR_parser___ReduceAction95____goto(fra.me.REG[1]) = REGB0;
15132 stack_frame_head = fra.me.prev;
15133 init_table[itpos98] = 1;
15134 return;
15135 }
15136 void parser___ReduceAction96___action(val_t p0, val_t p1){
15137 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
15138 val_t REGB0;
15139 val_t tmp;
15140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15141 fra.me.file = LOCATE_parser;
15142 fra.me.line = 4263;
15143 fra.me.meth = LOCATE_parser___ReduceAction96___action;
15144 fra.me.has_broke = 0;
15145 fra.me.REG_size = 11;
15146 fra.me.REG[0] = NIT_NULL;
15147 fra.me.REG[1] = NIT_NULL;
15148 fra.me.REG[2] = NIT_NULL;
15149 fra.me.REG[3] = NIT_NULL;
15150 fra.me.REG[4] = NIT_NULL;
15151 fra.me.REG[5] = NIT_NULL;
15152 fra.me.REG[6] = NIT_NULL;
15153 fra.me.REG[7] = NIT_NULL;
15154 fra.me.REG[8] = NIT_NULL;
15155 fra.me.REG[9] = NIT_NULL;
15156 fra.me.REG[10] = NIT_NULL;
15157 fra.me.REG[0] = p0;
15158 fra.me.REG[1] = p1;
15159 /* ./parser//parser.nit:4265 */
15160 fra.me.REG[2] = NIT_NULL;
15161 /* ./parser//parser.nit:4266 */
15162 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15163 /* ./parser//parser.nit:4267 */
15164 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15165 /* ./parser//parser.nit:4268 */
15166 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15167 /* ./parser//parser.nit:4269 */
15168 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15169 /* ./parser//parser.nit:4270 */
15170 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15171 /* ./parser//parser.nit:4271 */
15172 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15173 /* ./parser//parser.nit:4272 */
15174 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15175 /* ./parser//parser.nit:4273 */
15176 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15177 /* ./parser//parser.nit:4275 */
15178 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15179 if (UNTAG_Bool(REGB0)) {
15180 } else {
15181 nit_abort("Assert failed", NULL, LOCATE_parser, 4275);
15182 }
15183 /* ./parser//parser.nit:4277 */
15184 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15185 if (UNTAG_Bool(REGB0)) {
15186 } else {
15187 nit_abort("Assert failed", NULL, LOCATE_parser, 4277);
15188 }
15189 /* ./parser//parser.nit:4279 */
15190 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15191 if (UNTAG_Bool(REGB0)) {
15192 } else {
15193 nit_abort("Assert failed", NULL, LOCATE_parser, 4279);
15194 }
15195 /* ./parser//parser.nit:4281 */
15196 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15197 if (UNTAG_Bool(REGB0)) {
15198 } else {
15199 nit_abort("Assert failed", NULL, LOCATE_parser, 4281);
15200 }
15201 /* ./parser//parser.nit:4283 */
15202 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15203 if (UNTAG_Bool(REGB0)) {
15204 } else {
15205 nit_abort("Assert failed", NULL, LOCATE_parser, 4283);
15206 }
15207 /* ./parser//parser.nit:4285 */
15208 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15209 if (UNTAG_Bool(REGB0)) {
15210 } else {
15211 nit_abort("Assert failed", NULL, LOCATE_parser, 4285);
15212 }
15213 /* ./parser//parser.nit:4287 */
15214 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15215 if (UNTAG_Bool(REGB0)) {
15216 } else {
15217 nit_abort("Assert failed", NULL, LOCATE_parser, 4287);
15218 }
15219 /* ./parser//parser.nit:4289 */
15220 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
15221 if (UNTAG_Bool(REGB0)) {
15222 } else {
15223 nit_abort("Assert failed", NULL, LOCATE_parser, 4289);
15224 }
15225 /* ./parser//parser.nit:4290 */
15226 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
15227 /* ./parser//parser.nit:4302 */
15228 fra.me.REG[2] = fra.me.REG[3];
15229 /* ./parser//parser.nit:4303 */
15230 REGB0 = TAG_Bool(ATTR_parser___ReduceAction96____goto(fra.me.REG[0])!=NIT_NULL);
15231 if (UNTAG_Bool(REGB0)) {
15232 } else {
15233 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4303);
15234 }
15235 REGB0 = ATTR_parser___ReduceAction96____goto(fra.me.REG[0]);
15236 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15237 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15238 stack_frame_head = fra.me.prev;
15239 return;
15240 }
15241 void parser___ReduceAction96___init(val_t p0, val_t p1, int* init_table){
15242 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction96].i;
15243 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15244 val_t REGB0;
15245 val_t tmp;
15246 if (init_table[itpos99]) return;
15247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15248 fra.me.file = LOCATE_parser;
15249 fra.me.line = 4306;
15250 fra.me.meth = LOCATE_parser___ReduceAction96___init;
15251 fra.me.has_broke = 0;
15252 fra.me.REG_size = 2;
15253 fra.me.REG[0] = NIT_NULL;
15254 fra.me.REG[1] = NIT_NULL;
15255 fra.me.REG[0] = p0;
15256 REGB0 = p1;
15257 /* ./parser//parser.nit:4306 */
15258 fra.me.REG[1] = fra.me.REG[0];
15259 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15260 ATTR_parser___ReduceAction96____goto(fra.me.REG[1]) = REGB0;
15261 stack_frame_head = fra.me.prev;
15262 init_table[itpos99] = 1;
15263 return;
15264 }
15265 void parser___ReduceAction97___action(val_t p0, val_t p1){
15266 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
15267 val_t REGB0;
15268 val_t tmp;
15269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15270 fra.me.file = LOCATE_parser;
15271 fra.me.line = 4310;
15272 fra.me.meth = LOCATE_parser___ReduceAction97___action;
15273 fra.me.has_broke = 0;
15274 fra.me.REG_size = 8;
15275 fra.me.REG[0] = NIT_NULL;
15276 fra.me.REG[1] = NIT_NULL;
15277 fra.me.REG[2] = NIT_NULL;
15278 fra.me.REG[3] = NIT_NULL;
15279 fra.me.REG[4] = NIT_NULL;
15280 fra.me.REG[5] = NIT_NULL;
15281 fra.me.REG[6] = NIT_NULL;
15282 fra.me.REG[7] = NIT_NULL;
15283 fra.me.REG[0] = p0;
15284 fra.me.REG[1] = p1;
15285 /* ./parser//parser.nit:4312 */
15286 fra.me.REG[2] = NIT_NULL;
15287 /* ./parser//parser.nit:4313 */
15288 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15289 /* ./parser//parser.nit:4314 */
15290 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15291 /* ./parser//parser.nit:4315 */
15292 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15293 /* ./parser//parser.nit:4316 */
15294 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15295 /* ./parser//parser.nit:4317 */
15296 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15297 /* ./parser//parser.nit:4318 */
15298 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15299 /* ./parser//parser.nit:4319 */
15300 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15301 /* ./parser//parser.nit:4321 */
15302 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15303 if (UNTAG_Bool(REGB0)) {
15304 } else {
15305 nit_abort("Assert failed", NULL, LOCATE_parser, 4321);
15306 }
15307 /* ./parser//parser.nit:4323 */
15308 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15309 if (UNTAG_Bool(REGB0)) {
15310 } else {
15311 nit_abort("Assert failed", NULL, LOCATE_parser, 4323);
15312 }
15313 /* ./parser//parser.nit:4325 */
15314 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15315 if (UNTAG_Bool(REGB0)) {
15316 } else {
15317 nit_abort("Assert failed", NULL, LOCATE_parser, 4325);
15318 }
15319 /* ./parser//parser.nit:4327 */
15320 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15321 if (UNTAG_Bool(REGB0)) {
15322 } else {
15323 nit_abort("Assert failed", NULL, LOCATE_parser, 4327);
15324 }
15325 /* ./parser//parser.nit:4329 */
15326 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15327 if (UNTAG_Bool(REGB0)) {
15328 } else {
15329 nit_abort("Assert failed", NULL, LOCATE_parser, 4329);
15330 }
15331 /* ./parser//parser.nit:4330 */
15332 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
15333 /* ./parser//parser.nit:4342 */
15334 fra.me.REG[2] = fra.me.REG[3];
15335 /* ./parser//parser.nit:4343 */
15336 REGB0 = TAG_Bool(ATTR_parser___ReduceAction97____goto(fra.me.REG[0])!=NIT_NULL);
15337 if (UNTAG_Bool(REGB0)) {
15338 } else {
15339 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4343);
15340 }
15341 REGB0 = ATTR_parser___ReduceAction97____goto(fra.me.REG[0]);
15342 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15343 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15344 stack_frame_head = fra.me.prev;
15345 return;
15346 }
15347 void parser___ReduceAction97___init(val_t p0, val_t p1, int* init_table){
15348 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction97].i;
15349 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15350 val_t REGB0;
15351 val_t tmp;
15352 if (init_table[itpos100]) return;
15353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15354 fra.me.file = LOCATE_parser;
15355 fra.me.line = 4346;
15356 fra.me.meth = LOCATE_parser___ReduceAction97___init;
15357 fra.me.has_broke = 0;
15358 fra.me.REG_size = 2;
15359 fra.me.REG[0] = NIT_NULL;
15360 fra.me.REG[1] = NIT_NULL;
15361 fra.me.REG[0] = p0;
15362 REGB0 = p1;
15363 /* ./parser//parser.nit:4346 */
15364 fra.me.REG[1] = fra.me.REG[0];
15365 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15366 ATTR_parser___ReduceAction97____goto(fra.me.REG[1]) = REGB0;
15367 stack_frame_head = fra.me.prev;
15368 init_table[itpos100] = 1;
15369 return;
15370 }
15371 void parser___ReduceAction98___action(val_t p0, val_t p1){
15372 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15373 val_t REGB0;
15374 val_t tmp;
15375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15376 fra.me.file = LOCATE_parser;
15377 fra.me.line = 4350;
15378 fra.me.meth = LOCATE_parser___ReduceAction98___action;
15379 fra.me.has_broke = 0;
15380 fra.me.REG_size = 9;
15381 fra.me.REG[0] = NIT_NULL;
15382 fra.me.REG[1] = NIT_NULL;
15383 fra.me.REG[2] = NIT_NULL;
15384 fra.me.REG[3] = NIT_NULL;
15385 fra.me.REG[4] = NIT_NULL;
15386 fra.me.REG[5] = NIT_NULL;
15387 fra.me.REG[6] = NIT_NULL;
15388 fra.me.REG[7] = NIT_NULL;
15389 fra.me.REG[8] = NIT_NULL;
15390 fra.me.REG[0] = p0;
15391 fra.me.REG[1] = p1;
15392 /* ./parser//parser.nit:4352 */
15393 fra.me.REG[2] = NIT_NULL;
15394 /* ./parser//parser.nit:4353 */
15395 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15396 /* ./parser//parser.nit:4354 */
15397 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15398 /* ./parser//parser.nit:4355 */
15399 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15400 /* ./parser//parser.nit:4356 */
15401 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15402 /* ./parser//parser.nit:4357 */
15403 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15404 /* ./parser//parser.nit:4358 */
15405 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15406 /* ./parser//parser.nit:4359 */
15407 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15408 /* ./parser//parser.nit:4360 */
15409 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15410 /* ./parser//parser.nit:4362 */
15411 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15412 if (UNTAG_Bool(REGB0)) {
15413 } else {
15414 nit_abort("Assert failed", NULL, LOCATE_parser, 4362);
15415 }
15416 /* ./parser//parser.nit:4364 */
15417 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15418 if (UNTAG_Bool(REGB0)) {
15419 } else {
15420 nit_abort("Assert failed", NULL, LOCATE_parser, 4364);
15421 }
15422 /* ./parser//parser.nit:4366 */
15423 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15424 if (UNTAG_Bool(REGB0)) {
15425 } else {
15426 nit_abort("Assert failed", NULL, LOCATE_parser, 4366);
15427 }
15428 /* ./parser//parser.nit:4368 */
15429 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15430 if (UNTAG_Bool(REGB0)) {
15431 } else {
15432 nit_abort("Assert failed", NULL, LOCATE_parser, 4368);
15433 }
15434 /* ./parser//parser.nit:4370 */
15435 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15436 if (UNTAG_Bool(REGB0)) {
15437 } else {
15438 nit_abort("Assert failed", NULL, LOCATE_parser, 4370);
15439 }
15440 /* ./parser//parser.nit:4372 */
15441 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15442 if (UNTAG_Bool(REGB0)) {
15443 } else {
15444 nit_abort("Assert failed", NULL, LOCATE_parser, 4372);
15445 }
15446 /* ./parser//parser.nit:4373 */
15447 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
15448 /* ./parser//parser.nit:4385 */
15449 fra.me.REG[2] = fra.me.REG[3];
15450 /* ./parser//parser.nit:4386 */
15451 REGB0 = TAG_Bool(ATTR_parser___ReduceAction98____goto(fra.me.REG[0])!=NIT_NULL);
15452 if (UNTAG_Bool(REGB0)) {
15453 } else {
15454 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4386);
15455 }
15456 REGB0 = ATTR_parser___ReduceAction98____goto(fra.me.REG[0]);
15457 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15458 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15459 stack_frame_head = fra.me.prev;
15460 return;
15461 }
15462 void parser___ReduceAction98___init(val_t p0, val_t p1, int* init_table){
15463 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction98].i;
15464 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15465 val_t REGB0;
15466 val_t tmp;
15467 if (init_table[itpos101]) return;
15468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15469 fra.me.file = LOCATE_parser;
15470 fra.me.line = 4389;
15471 fra.me.meth = LOCATE_parser___ReduceAction98___init;
15472 fra.me.has_broke = 0;
15473 fra.me.REG_size = 2;
15474 fra.me.REG[0] = NIT_NULL;
15475 fra.me.REG[1] = NIT_NULL;
15476 fra.me.REG[0] = p0;
15477 REGB0 = p1;
15478 /* ./parser//parser.nit:4389 */
15479 fra.me.REG[1] = fra.me.REG[0];
15480 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15481 ATTR_parser___ReduceAction98____goto(fra.me.REG[1]) = REGB0;
15482 stack_frame_head = fra.me.prev;
15483 init_table[itpos101] = 1;
15484 return;
15485 }
15486 void parser___ReduceAction99___action(val_t p0, val_t p1){
15487 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15488 val_t REGB0;
15489 val_t tmp;
15490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15491 fra.me.file = LOCATE_parser;
15492 fra.me.line = 4393;
15493 fra.me.meth = LOCATE_parser___ReduceAction99___action;
15494 fra.me.has_broke = 0;
15495 fra.me.REG_size = 9;
15496 fra.me.REG[0] = NIT_NULL;
15497 fra.me.REG[1] = NIT_NULL;
15498 fra.me.REG[2] = NIT_NULL;
15499 fra.me.REG[3] = NIT_NULL;
15500 fra.me.REG[4] = NIT_NULL;
15501 fra.me.REG[5] = NIT_NULL;
15502 fra.me.REG[6] = NIT_NULL;
15503 fra.me.REG[7] = NIT_NULL;
15504 fra.me.REG[8] = NIT_NULL;
15505 fra.me.REG[0] = p0;
15506 fra.me.REG[1] = p1;
15507 /* ./parser//parser.nit:4395 */
15508 fra.me.REG[2] = NIT_NULL;
15509 /* ./parser//parser.nit:4396 */
15510 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15511 /* ./parser//parser.nit:4397 */
15512 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15513 /* ./parser//parser.nit:4398 */
15514 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15515 /* ./parser//parser.nit:4399 */
15516 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15517 /* ./parser//parser.nit:4400 */
15518 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15519 /* ./parser//parser.nit:4401 */
15520 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15521 /* ./parser//parser.nit:4402 */
15522 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15523 /* ./parser//parser.nit:4403 */
15524 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15525 /* ./parser//parser.nit:4405 */
15526 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15527 if (UNTAG_Bool(REGB0)) {
15528 } else {
15529 nit_abort("Assert failed", NULL, LOCATE_parser, 4405);
15530 }
15531 /* ./parser//parser.nit:4407 */
15532 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15533 if (UNTAG_Bool(REGB0)) {
15534 } else {
15535 nit_abort("Assert failed", NULL, LOCATE_parser, 4407);
15536 }
15537 /* ./parser//parser.nit:4409 */
15538 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15539 if (UNTAG_Bool(REGB0)) {
15540 } else {
15541 nit_abort("Assert failed", NULL, LOCATE_parser, 4409);
15542 }
15543 /* ./parser//parser.nit:4411 */
15544 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15545 if (UNTAG_Bool(REGB0)) {
15546 } else {
15547 nit_abort("Assert failed", NULL, LOCATE_parser, 4411);
15548 }
15549 /* ./parser//parser.nit:4413 */
15550 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15551 if (UNTAG_Bool(REGB0)) {
15552 } else {
15553 nit_abort("Assert failed", NULL, LOCATE_parser, 4413);
15554 }
15555 /* ./parser//parser.nit:4415 */
15556 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15557 if (UNTAG_Bool(REGB0)) {
15558 } else {
15559 nit_abort("Assert failed", NULL, LOCATE_parser, 4415);
15560 }
15561 /* ./parser//parser.nit:4416 */
15562 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
15563 /* ./parser//parser.nit:4428 */
15564 fra.me.REG[2] = fra.me.REG[3];
15565 /* ./parser//parser.nit:4429 */
15566 REGB0 = TAG_Bool(ATTR_parser___ReduceAction99____goto(fra.me.REG[0])!=NIT_NULL);
15567 if (UNTAG_Bool(REGB0)) {
15568 } else {
15569 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4429);
15570 }
15571 REGB0 = ATTR_parser___ReduceAction99____goto(fra.me.REG[0]);
15572 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15573 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15574 stack_frame_head = fra.me.prev;
15575 return;
15576 }
15577 void parser___ReduceAction99___init(val_t p0, val_t p1, int* init_table){
15578 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction99].i;
15579 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15580 val_t REGB0;
15581 val_t tmp;
15582 if (init_table[itpos102]) return;
15583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15584 fra.me.file = LOCATE_parser;
15585 fra.me.line = 4432;
15586 fra.me.meth = LOCATE_parser___ReduceAction99___init;
15587 fra.me.has_broke = 0;
15588 fra.me.REG_size = 2;
15589 fra.me.REG[0] = NIT_NULL;
15590 fra.me.REG[1] = NIT_NULL;
15591 fra.me.REG[0] = p0;
15592 REGB0 = p1;
15593 /* ./parser//parser.nit:4432 */
15594 fra.me.REG[1] = fra.me.REG[0];
15595 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15596 ATTR_parser___ReduceAction99____goto(fra.me.REG[1]) = REGB0;
15597 stack_frame_head = fra.me.prev;
15598 init_table[itpos102] = 1;
15599 return;
15600 }
15601 void parser___ReduceAction100___action(val_t p0, val_t p1){
15602 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15603 val_t REGB0;
15604 val_t tmp;
15605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15606 fra.me.file = LOCATE_parser;
15607 fra.me.line = 4436;
15608 fra.me.meth = LOCATE_parser___ReduceAction100___action;
15609 fra.me.has_broke = 0;
15610 fra.me.REG_size = 10;
15611 fra.me.REG[0] = NIT_NULL;
15612 fra.me.REG[1] = NIT_NULL;
15613 fra.me.REG[2] = NIT_NULL;
15614 fra.me.REG[3] = NIT_NULL;
15615 fra.me.REG[4] = NIT_NULL;
15616 fra.me.REG[5] = NIT_NULL;
15617 fra.me.REG[6] = NIT_NULL;
15618 fra.me.REG[7] = NIT_NULL;
15619 fra.me.REG[8] = NIT_NULL;
15620 fra.me.REG[9] = NIT_NULL;
15621 fra.me.REG[0] = p0;
15622 fra.me.REG[1] = p1;
15623 /* ./parser//parser.nit:4438 */
15624 fra.me.REG[2] = NIT_NULL;
15625 /* ./parser//parser.nit:4439 */
15626 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15627 /* ./parser//parser.nit:4440 */
15628 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15629 /* ./parser//parser.nit:4441 */
15630 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15631 /* ./parser//parser.nit:4442 */
15632 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15633 /* ./parser//parser.nit:4443 */
15634 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15635 /* ./parser//parser.nit:4444 */
15636 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15637 /* ./parser//parser.nit:4445 */
15638 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15639 /* ./parser//parser.nit:4446 */
15640 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15641 /* ./parser//parser.nit:4447 */
15642 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15643 /* ./parser//parser.nit:4449 */
15644 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15645 if (UNTAG_Bool(REGB0)) {
15646 } else {
15647 nit_abort("Assert failed", NULL, LOCATE_parser, 4449);
15648 }
15649 /* ./parser//parser.nit:4451 */
15650 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15651 if (UNTAG_Bool(REGB0)) {
15652 } else {
15653 nit_abort("Assert failed", NULL, LOCATE_parser, 4451);
15654 }
15655 /* ./parser//parser.nit:4453 */
15656 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15657 if (UNTAG_Bool(REGB0)) {
15658 } else {
15659 nit_abort("Assert failed", NULL, LOCATE_parser, 4453);
15660 }
15661 /* ./parser//parser.nit:4455 */
15662 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15663 if (UNTAG_Bool(REGB0)) {
15664 } else {
15665 nit_abort("Assert failed", NULL, LOCATE_parser, 4455);
15666 }
15667 /* ./parser//parser.nit:4457 */
15668 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15669 if (UNTAG_Bool(REGB0)) {
15670 } else {
15671 nit_abort("Assert failed", NULL, LOCATE_parser, 4457);
15672 }
15673 /* ./parser//parser.nit:4459 */
15674 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15675 if (UNTAG_Bool(REGB0)) {
15676 } else {
15677 nit_abort("Assert failed", NULL, LOCATE_parser, 4459);
15678 }
15679 /* ./parser//parser.nit:4461 */
15680 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15681 if (UNTAG_Bool(REGB0)) {
15682 } else {
15683 nit_abort("Assert failed", NULL, LOCATE_parser, 4461);
15684 }
15685 /* ./parser//parser.nit:4462 */
15686 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
15687 /* ./parser//parser.nit:4474 */
15688 fra.me.REG[2] = fra.me.REG[3];
15689 /* ./parser//parser.nit:4475 */
15690 REGB0 = TAG_Bool(ATTR_parser___ReduceAction100____goto(fra.me.REG[0])!=NIT_NULL);
15691 if (UNTAG_Bool(REGB0)) {
15692 } else {
15693 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4475);
15694 }
15695 REGB0 = ATTR_parser___ReduceAction100____goto(fra.me.REG[0]);
15696 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15697 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15698 stack_frame_head = fra.me.prev;
15699 return;
15700 }
15701 void parser___ReduceAction100___init(val_t p0, val_t p1, int* init_table){
15702 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction100].i;
15703 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15704 val_t REGB0;
15705 val_t tmp;
15706 if (init_table[itpos103]) return;
15707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15708 fra.me.file = LOCATE_parser;
15709 fra.me.line = 4478;
15710 fra.me.meth = LOCATE_parser___ReduceAction100___init;
15711 fra.me.has_broke = 0;
15712 fra.me.REG_size = 2;
15713 fra.me.REG[0] = NIT_NULL;
15714 fra.me.REG[1] = NIT_NULL;
15715 fra.me.REG[0] = p0;
15716 REGB0 = p1;
15717 /* ./parser//parser.nit:4478 */
15718 fra.me.REG[1] = fra.me.REG[0];
15719 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15720 ATTR_parser___ReduceAction100____goto(fra.me.REG[1]) = REGB0;
15721 stack_frame_head = fra.me.prev;
15722 init_table[itpos103] = 1;
15723 return;
15724 }
15725 void parser___ReduceAction101___action(val_t p0, val_t p1){
15726 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15727 val_t REGB0;
15728 val_t tmp;
15729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15730 fra.me.file = LOCATE_parser;
15731 fra.me.line = 4482;
15732 fra.me.meth = LOCATE_parser___ReduceAction101___action;
15733 fra.me.has_broke = 0;
15734 fra.me.REG_size = 9;
15735 fra.me.REG[0] = NIT_NULL;
15736 fra.me.REG[1] = NIT_NULL;
15737 fra.me.REG[2] = NIT_NULL;
15738 fra.me.REG[3] = NIT_NULL;
15739 fra.me.REG[4] = NIT_NULL;
15740 fra.me.REG[5] = NIT_NULL;
15741 fra.me.REG[6] = NIT_NULL;
15742 fra.me.REG[7] = NIT_NULL;
15743 fra.me.REG[8] = NIT_NULL;
15744 fra.me.REG[0] = p0;
15745 fra.me.REG[1] = p1;
15746 /* ./parser//parser.nit:4484 */
15747 fra.me.REG[2] = NIT_NULL;
15748 /* ./parser//parser.nit:4485 */
15749 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15750 /* ./parser//parser.nit:4486 */
15751 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15752 /* ./parser//parser.nit:4487 */
15753 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15754 /* ./parser//parser.nit:4488 */
15755 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15756 /* ./parser//parser.nit:4489 */
15757 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15758 /* ./parser//parser.nit:4490 */
15759 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15760 /* ./parser//parser.nit:4491 */
15761 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15762 /* ./parser//parser.nit:4492 */
15763 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15764 /* ./parser//parser.nit:4494 */
15765 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15766 if (UNTAG_Bool(REGB0)) {
15767 } else {
15768 nit_abort("Assert failed", NULL, LOCATE_parser, 4494);
15769 }
15770 /* ./parser//parser.nit:4496 */
15771 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15772 if (UNTAG_Bool(REGB0)) {
15773 } else {
15774 nit_abort("Assert failed", NULL, LOCATE_parser, 4496);
15775 }
15776 /* ./parser//parser.nit:4498 */
15777 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15778 if (UNTAG_Bool(REGB0)) {
15779 } else {
15780 nit_abort("Assert failed", NULL, LOCATE_parser, 4498);
15781 }
15782 /* ./parser//parser.nit:4500 */
15783 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15784 if (UNTAG_Bool(REGB0)) {
15785 } else {
15786 nit_abort("Assert failed", NULL, LOCATE_parser, 4500);
15787 }
15788 /* ./parser//parser.nit:4502 */
15789 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15790 if (UNTAG_Bool(REGB0)) {
15791 } else {
15792 nit_abort("Assert failed", NULL, LOCATE_parser, 4502);
15793 }
15794 /* ./parser//parser.nit:4504 */
15795 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15796 if (UNTAG_Bool(REGB0)) {
15797 } else {
15798 nit_abort("Assert failed", NULL, LOCATE_parser, 4504);
15799 }
15800 /* ./parser//parser.nit:4505 */
15801 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
15802 /* ./parser//parser.nit:4517 */
15803 fra.me.REG[2] = fra.me.REG[3];
15804 /* ./parser//parser.nit:4518 */
15805 REGB0 = TAG_Bool(ATTR_parser___ReduceAction101____goto(fra.me.REG[0])!=NIT_NULL);
15806 if (UNTAG_Bool(REGB0)) {
15807 } else {
15808 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4518);
15809 }
15810 REGB0 = ATTR_parser___ReduceAction101____goto(fra.me.REG[0]);
15811 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15812 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15813 stack_frame_head = fra.me.prev;
15814 return;
15815 }
15816 void parser___ReduceAction101___init(val_t p0, val_t p1, int* init_table){
15817 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction101].i;
15818 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15819 val_t REGB0;
15820 val_t tmp;
15821 if (init_table[itpos104]) return;
15822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15823 fra.me.file = LOCATE_parser;
15824 fra.me.line = 4521;
15825 fra.me.meth = LOCATE_parser___ReduceAction101___init;
15826 fra.me.has_broke = 0;
15827 fra.me.REG_size = 2;
15828 fra.me.REG[0] = NIT_NULL;
15829 fra.me.REG[1] = NIT_NULL;
15830 fra.me.REG[0] = p0;
15831 REGB0 = p1;
15832 /* ./parser//parser.nit:4521 */
15833 fra.me.REG[1] = fra.me.REG[0];
15834 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15835 ATTR_parser___ReduceAction101____goto(fra.me.REG[1]) = REGB0;
15836 stack_frame_head = fra.me.prev;
15837 init_table[itpos104] = 1;
15838 return;
15839 }
15840 void parser___ReduceAction102___action(val_t p0, val_t p1){
15841 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15842 val_t REGB0;
15843 val_t tmp;
15844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15845 fra.me.file = LOCATE_parser;
15846 fra.me.line = 4525;
15847 fra.me.meth = LOCATE_parser___ReduceAction102___action;
15848 fra.me.has_broke = 0;
15849 fra.me.REG_size = 10;
15850 fra.me.REG[0] = NIT_NULL;
15851 fra.me.REG[1] = NIT_NULL;
15852 fra.me.REG[2] = NIT_NULL;
15853 fra.me.REG[3] = NIT_NULL;
15854 fra.me.REG[4] = NIT_NULL;
15855 fra.me.REG[5] = NIT_NULL;
15856 fra.me.REG[6] = NIT_NULL;
15857 fra.me.REG[7] = NIT_NULL;
15858 fra.me.REG[8] = NIT_NULL;
15859 fra.me.REG[9] = NIT_NULL;
15860 fra.me.REG[0] = p0;
15861 fra.me.REG[1] = p1;
15862 /* ./parser//parser.nit:4527 */
15863 fra.me.REG[2] = NIT_NULL;
15864 /* ./parser//parser.nit:4528 */
15865 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15866 /* ./parser//parser.nit:4529 */
15867 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15868 /* ./parser//parser.nit:4530 */
15869 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15870 /* ./parser//parser.nit:4531 */
15871 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15872 /* ./parser//parser.nit:4532 */
15873 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15874 /* ./parser//parser.nit:4533 */
15875 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15876 /* ./parser//parser.nit:4534 */
15877 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15878 /* ./parser//parser.nit:4535 */
15879 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15880 /* ./parser//parser.nit:4536 */
15881 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15882 /* ./parser//parser.nit:4538 */
15883 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15884 if (UNTAG_Bool(REGB0)) {
15885 } else {
15886 nit_abort("Assert failed", NULL, LOCATE_parser, 4538);
15887 }
15888 /* ./parser//parser.nit:4540 */
15889 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15890 if (UNTAG_Bool(REGB0)) {
15891 } else {
15892 nit_abort("Assert failed", NULL, LOCATE_parser, 4540);
15893 }
15894 /* ./parser//parser.nit:4542 */
15895 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15896 if (UNTAG_Bool(REGB0)) {
15897 } else {
15898 nit_abort("Assert failed", NULL, LOCATE_parser, 4542);
15899 }
15900 /* ./parser//parser.nit:4544 */
15901 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15902 if (UNTAG_Bool(REGB0)) {
15903 } else {
15904 nit_abort("Assert failed", NULL, LOCATE_parser, 4544);
15905 }
15906 /* ./parser//parser.nit:4546 */
15907 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15908 if (UNTAG_Bool(REGB0)) {
15909 } else {
15910 nit_abort("Assert failed", NULL, LOCATE_parser, 4546);
15911 }
15912 /* ./parser//parser.nit:4548 */
15913 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15914 if (UNTAG_Bool(REGB0)) {
15915 } else {
15916 nit_abort("Assert failed", NULL, LOCATE_parser, 4548);
15917 }
15918 /* ./parser//parser.nit:4550 */
15919 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15920 if (UNTAG_Bool(REGB0)) {
15921 } else {
15922 nit_abort("Assert failed", NULL, LOCATE_parser, 4550);
15923 }
15924 /* ./parser//parser.nit:4551 */
15925 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
15926 /* ./parser//parser.nit:4563 */
15927 fra.me.REG[2] = fra.me.REG[3];
15928 /* ./parser//parser.nit:4564 */
15929 REGB0 = TAG_Bool(ATTR_parser___ReduceAction102____goto(fra.me.REG[0])!=NIT_NULL);
15930 if (UNTAG_Bool(REGB0)) {
15931 } else {
15932 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4564);
15933 }
15934 REGB0 = ATTR_parser___ReduceAction102____goto(fra.me.REG[0]);
15935 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15936 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15937 stack_frame_head = fra.me.prev;
15938 return;
15939 }
15940 void parser___ReduceAction102___init(val_t p0, val_t p1, int* init_table){
15941 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction102].i;
15942 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15943 val_t REGB0;
15944 val_t tmp;
15945 if (init_table[itpos105]) return;
15946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15947 fra.me.file = LOCATE_parser;
15948 fra.me.line = 4567;
15949 fra.me.meth = LOCATE_parser___ReduceAction102___init;
15950 fra.me.has_broke = 0;
15951 fra.me.REG_size = 2;
15952 fra.me.REG[0] = NIT_NULL;
15953 fra.me.REG[1] = NIT_NULL;
15954 fra.me.REG[0] = p0;
15955 REGB0 = p1;
15956 /* ./parser//parser.nit:4567 */
15957 fra.me.REG[1] = fra.me.REG[0];
15958 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15959 ATTR_parser___ReduceAction102____goto(fra.me.REG[1]) = REGB0;
15960 stack_frame_head = fra.me.prev;
15961 init_table[itpos105] = 1;
15962 return;
15963 }
15964 void parser___ReduceAction103___action(val_t p0, val_t p1){
15965 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15966 val_t REGB0;
15967 val_t tmp;
15968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15969 fra.me.file = LOCATE_parser;
15970 fra.me.line = 4571;
15971 fra.me.meth = LOCATE_parser___ReduceAction103___action;
15972 fra.me.has_broke = 0;
15973 fra.me.REG_size = 10;
15974 fra.me.REG[0] = NIT_NULL;
15975 fra.me.REG[1] = NIT_NULL;
15976 fra.me.REG[2] = NIT_NULL;
15977 fra.me.REG[3] = NIT_NULL;
15978 fra.me.REG[4] = NIT_NULL;
15979 fra.me.REG[5] = NIT_NULL;
15980 fra.me.REG[6] = NIT_NULL;
15981 fra.me.REG[7] = NIT_NULL;
15982 fra.me.REG[8] = NIT_NULL;
15983 fra.me.REG[9] = NIT_NULL;
15984 fra.me.REG[0] = p0;
15985 fra.me.REG[1] = p1;
15986 /* ./parser//parser.nit:4573 */
15987 fra.me.REG[2] = NIT_NULL;
15988 /* ./parser//parser.nit:4574 */
15989 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15990 /* ./parser//parser.nit:4575 */
15991 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15992 /* ./parser//parser.nit:4576 */
15993 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15994 /* ./parser//parser.nit:4577 */
15995 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15996 /* ./parser//parser.nit:4578 */
15997 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15998 /* ./parser//parser.nit:4579 */
15999 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16000 /* ./parser//parser.nit:4580 */
16001 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16002 /* ./parser//parser.nit:4581 */
16003 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16004 /* ./parser//parser.nit:4582 */
16005 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16006 /* ./parser//parser.nit:4584 */
16007 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16008 if (UNTAG_Bool(REGB0)) {
16009 } else {
16010 nit_abort("Assert failed", NULL, LOCATE_parser, 4584);
16011 }
16012 /* ./parser//parser.nit:4586 */
16013 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16014 if (UNTAG_Bool(REGB0)) {
16015 } else {
16016 nit_abort("Assert failed", NULL, LOCATE_parser, 4586);
16017 }
16018 /* ./parser//parser.nit:4588 */
16019 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16020 if (UNTAG_Bool(REGB0)) {
16021 } else {
16022 nit_abort("Assert failed", NULL, LOCATE_parser, 4588);
16023 }
16024 /* ./parser//parser.nit:4590 */
16025 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16026 if (UNTAG_Bool(REGB0)) {
16027 } else {
16028 nit_abort("Assert failed", NULL, LOCATE_parser, 4590);
16029 }
16030 /* ./parser//parser.nit:4592 */
16031 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16032 if (UNTAG_Bool(REGB0)) {
16033 } else {
16034 nit_abort("Assert failed", NULL, LOCATE_parser, 4592);
16035 }
16036 /* ./parser//parser.nit:4594 */
16037 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16038 if (UNTAG_Bool(REGB0)) {
16039 } else {
16040 nit_abort("Assert failed", NULL, LOCATE_parser, 4594);
16041 }
16042 /* ./parser//parser.nit:4596 */
16043 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16044 if (UNTAG_Bool(REGB0)) {
16045 } else {
16046 nit_abort("Assert failed", NULL, LOCATE_parser, 4596);
16047 }
16048 /* ./parser//parser.nit:4597 */
16049 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
16050 /* ./parser//parser.nit:4609 */
16051 fra.me.REG[2] = fra.me.REG[3];
16052 /* ./parser//parser.nit:4610 */
16053 REGB0 = TAG_Bool(ATTR_parser___ReduceAction103____goto(fra.me.REG[0])!=NIT_NULL);
16054 if (UNTAG_Bool(REGB0)) {
16055 } else {
16056 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4610);
16057 }
16058 REGB0 = ATTR_parser___ReduceAction103____goto(fra.me.REG[0]);
16059 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16060 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16061 stack_frame_head = fra.me.prev;
16062 return;
16063 }
16064 void parser___ReduceAction103___init(val_t p0, val_t p1, int* init_table){
16065 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction103].i;
16066 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16067 val_t REGB0;
16068 val_t tmp;
16069 if (init_table[itpos106]) return;
16070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16071 fra.me.file = LOCATE_parser;
16072 fra.me.line = 4613;
16073 fra.me.meth = LOCATE_parser___ReduceAction103___init;
16074 fra.me.has_broke = 0;
16075 fra.me.REG_size = 2;
16076 fra.me.REG[0] = NIT_NULL;
16077 fra.me.REG[1] = NIT_NULL;
16078 fra.me.REG[0] = p0;
16079 REGB0 = p1;
16080 /* ./parser//parser.nit:4613 */
16081 fra.me.REG[1] = fra.me.REG[0];
16082 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16083 ATTR_parser___ReduceAction103____goto(fra.me.REG[1]) = REGB0;
16084 stack_frame_head = fra.me.prev;
16085 init_table[itpos106] = 1;
16086 return;
16087 }
16088 void parser___ReduceAction104___action(val_t p0, val_t p1){
16089 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16090 val_t REGB0;
16091 val_t tmp;
16092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16093 fra.me.file = LOCATE_parser;
16094 fra.me.line = 4617;
16095 fra.me.meth = LOCATE_parser___ReduceAction104___action;
16096 fra.me.has_broke = 0;
16097 fra.me.REG_size = 11;
16098 fra.me.REG[0] = NIT_NULL;
16099 fra.me.REG[1] = NIT_NULL;
16100 fra.me.REG[2] = NIT_NULL;
16101 fra.me.REG[3] = NIT_NULL;
16102 fra.me.REG[4] = NIT_NULL;
16103 fra.me.REG[5] = NIT_NULL;
16104 fra.me.REG[6] = NIT_NULL;
16105 fra.me.REG[7] = NIT_NULL;
16106 fra.me.REG[8] = NIT_NULL;
16107 fra.me.REG[9] = NIT_NULL;
16108 fra.me.REG[10] = NIT_NULL;
16109 fra.me.REG[0] = p0;
16110 fra.me.REG[1] = p1;
16111 /* ./parser//parser.nit:4619 */
16112 fra.me.REG[2] = NIT_NULL;
16113 /* ./parser//parser.nit:4620 */
16114 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16115 /* ./parser//parser.nit:4621 */
16116 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16117 /* ./parser//parser.nit:4622 */
16118 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16119 /* ./parser//parser.nit:4623 */
16120 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16121 /* ./parser//parser.nit:4624 */
16122 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16123 /* ./parser//parser.nit:4625 */
16124 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16125 /* ./parser//parser.nit:4626 */
16126 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16127 /* ./parser//parser.nit:4627 */
16128 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16129 /* ./parser//parser.nit:4628 */
16130 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16131 /* ./parser//parser.nit:4629 */
16132 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16133 /* ./parser//parser.nit:4631 */
16134 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16135 if (UNTAG_Bool(REGB0)) {
16136 } else {
16137 nit_abort("Assert failed", NULL, LOCATE_parser, 4631);
16138 }
16139 /* ./parser//parser.nit:4633 */
16140 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16141 if (UNTAG_Bool(REGB0)) {
16142 } else {
16143 nit_abort("Assert failed", NULL, LOCATE_parser, 4633);
16144 }
16145 /* ./parser//parser.nit:4635 */
16146 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16147 if (UNTAG_Bool(REGB0)) {
16148 } else {
16149 nit_abort("Assert failed", NULL, LOCATE_parser, 4635);
16150 }
16151 /* ./parser//parser.nit:4637 */
16152 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16153 if (UNTAG_Bool(REGB0)) {
16154 } else {
16155 nit_abort("Assert failed", NULL, LOCATE_parser, 4637);
16156 }
16157 /* ./parser//parser.nit:4639 */
16158 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16159 if (UNTAG_Bool(REGB0)) {
16160 } else {
16161 nit_abort("Assert failed", NULL, LOCATE_parser, 4639);
16162 }
16163 /* ./parser//parser.nit:4641 */
16164 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16165 if (UNTAG_Bool(REGB0)) {
16166 } else {
16167 nit_abort("Assert failed", NULL, LOCATE_parser, 4641);
16168 }
16169 /* ./parser//parser.nit:4643 */
16170 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16171 if (UNTAG_Bool(REGB0)) {
16172 } else {
16173 nit_abort("Assert failed", NULL, LOCATE_parser, 4643);
16174 }
16175 /* ./parser//parser.nit:4645 */
16176 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16177 if (UNTAG_Bool(REGB0)) {
16178 } else {
16179 nit_abort("Assert failed", NULL, LOCATE_parser, 4645);
16180 }
16181 /* ./parser//parser.nit:4646 */
16182 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
16183 /* ./parser//parser.nit:4658 */
16184 fra.me.REG[2] = fra.me.REG[3];
16185 /* ./parser//parser.nit:4659 */
16186 REGB0 = TAG_Bool(ATTR_parser___ReduceAction104____goto(fra.me.REG[0])!=NIT_NULL);
16187 if (UNTAG_Bool(REGB0)) {
16188 } else {
16189 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4659);
16190 }
16191 REGB0 = ATTR_parser___ReduceAction104____goto(fra.me.REG[0]);
16192 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16193 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16194 stack_frame_head = fra.me.prev;
16195 return;
16196 }
16197 void parser___ReduceAction104___init(val_t p0, val_t p1, int* init_table){
16198 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction104].i;
16199 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16200 val_t REGB0;
16201 val_t tmp;
16202 if (init_table[itpos107]) return;
16203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16204 fra.me.file = LOCATE_parser;
16205 fra.me.line = 4662;
16206 fra.me.meth = LOCATE_parser___ReduceAction104___init;
16207 fra.me.has_broke = 0;
16208 fra.me.REG_size = 2;
16209 fra.me.REG[0] = NIT_NULL;
16210 fra.me.REG[1] = NIT_NULL;
16211 fra.me.REG[0] = p0;
16212 REGB0 = p1;
16213 /* ./parser//parser.nit:4662 */
16214 fra.me.REG[1] = fra.me.REG[0];
16215 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16216 ATTR_parser___ReduceAction104____goto(fra.me.REG[1]) = REGB0;
16217 stack_frame_head = fra.me.prev;
16218 init_table[itpos107] = 1;
16219 return;
16220 }
16221 void parser___ReduceAction105___action(val_t p0, val_t p1){
16222 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
16223 val_t REGB0;
16224 val_t tmp;
16225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16226 fra.me.file = LOCATE_parser;
16227 fra.me.line = 4666;
16228 fra.me.meth = LOCATE_parser___ReduceAction105___action;
16229 fra.me.has_broke = 0;
16230 fra.me.REG_size = 9;
16231 fra.me.REG[0] = NIT_NULL;
16232 fra.me.REG[1] = NIT_NULL;
16233 fra.me.REG[2] = NIT_NULL;
16234 fra.me.REG[3] = NIT_NULL;
16235 fra.me.REG[4] = NIT_NULL;
16236 fra.me.REG[5] = NIT_NULL;
16237 fra.me.REG[6] = NIT_NULL;
16238 fra.me.REG[7] = NIT_NULL;
16239 fra.me.REG[8] = NIT_NULL;
16240 fra.me.REG[0] = p0;
16241 fra.me.REG[1] = p1;
16242 /* ./parser//parser.nit:4668 */
16243 fra.me.REG[2] = NIT_NULL;
16244 /* ./parser//parser.nit:4669 */
16245 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16246 /* ./parser//parser.nit:4670 */
16247 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16248 /* ./parser//parser.nit:4671 */
16249 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16250 /* ./parser//parser.nit:4672 */
16251 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16252 /* ./parser//parser.nit:4673 */
16253 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16254 /* ./parser//parser.nit:4674 */
16255 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16256 /* ./parser//parser.nit:4675 */
16257 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16258 /* ./parser//parser.nit:4676 */
16259 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16260 /* ./parser//parser.nit:4678 */
16261 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16262 if (UNTAG_Bool(REGB0)) {
16263 } else {
16264 nit_abort("Assert failed", NULL, LOCATE_parser, 4678);
16265 }
16266 /* ./parser//parser.nit:4680 */
16267 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16268 if (UNTAG_Bool(REGB0)) {
16269 } else {
16270 nit_abort("Assert failed", NULL, LOCATE_parser, 4680);
16271 }
16272 /* ./parser//parser.nit:4682 */
16273 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16274 if (UNTAG_Bool(REGB0)) {
16275 } else {
16276 nit_abort("Assert failed", NULL, LOCATE_parser, 4682);
16277 }
16278 /* ./parser//parser.nit:4684 */
16279 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16280 if (UNTAG_Bool(REGB0)) {
16281 } else {
16282 nit_abort("Assert failed", NULL, LOCATE_parser, 4684);
16283 }
16284 /* ./parser//parser.nit:4686 */
16285 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16286 if (UNTAG_Bool(REGB0)) {
16287 } else {
16288 nit_abort("Assert failed", NULL, LOCATE_parser, 4686);
16289 }
16290 /* ./parser//parser.nit:4688 */
16291 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16292 if (UNTAG_Bool(REGB0)) {
16293 } else {
16294 nit_abort("Assert failed", NULL, LOCATE_parser, 4688);
16295 }
16296 /* ./parser//parser.nit:4689 */
16297 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
16298 /* ./parser//parser.nit:4701 */
16299 fra.me.REG[2] = fra.me.REG[3];
16300 /* ./parser//parser.nit:4702 */
16301 REGB0 = TAG_Bool(ATTR_parser___ReduceAction105____goto(fra.me.REG[0])!=NIT_NULL);
16302 if (UNTAG_Bool(REGB0)) {
16303 } else {
16304 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4702);
16305 }
16306 REGB0 = ATTR_parser___ReduceAction105____goto(fra.me.REG[0]);
16307 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16308 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16309 stack_frame_head = fra.me.prev;
16310 return;
16311 }
16312 void parser___ReduceAction105___init(val_t p0, val_t p1, int* init_table){
16313 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction105].i;
16314 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16315 val_t REGB0;
16316 val_t tmp;
16317 if (init_table[itpos108]) return;
16318 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16319 fra.me.file = LOCATE_parser;
16320 fra.me.line = 4705;
16321 fra.me.meth = LOCATE_parser___ReduceAction105___init;
16322 fra.me.has_broke = 0;
16323 fra.me.REG_size = 2;
16324 fra.me.REG[0] = NIT_NULL;
16325 fra.me.REG[1] = NIT_NULL;
16326 fra.me.REG[0] = p0;
16327 REGB0 = p1;
16328 /* ./parser//parser.nit:4705 */
16329 fra.me.REG[1] = fra.me.REG[0];
16330 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16331 ATTR_parser___ReduceAction105____goto(fra.me.REG[1]) = REGB0;
16332 stack_frame_head = fra.me.prev;
16333 init_table[itpos108] = 1;
16334 return;
16335 }
16336 void parser___ReduceAction106___action(val_t p0, val_t p1){
16337 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
16338 val_t REGB0;
16339 val_t tmp;
16340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16341 fra.me.file = LOCATE_parser;
16342 fra.me.line = 4709;
16343 fra.me.meth = LOCATE_parser___ReduceAction106___action;
16344 fra.me.has_broke = 0;
16345 fra.me.REG_size = 10;
16346 fra.me.REG[0] = NIT_NULL;
16347 fra.me.REG[1] = NIT_NULL;
16348 fra.me.REG[2] = NIT_NULL;
16349 fra.me.REG[3] = NIT_NULL;
16350 fra.me.REG[4] = NIT_NULL;
16351 fra.me.REG[5] = NIT_NULL;
16352 fra.me.REG[6] = NIT_NULL;
16353 fra.me.REG[7] = NIT_NULL;
16354 fra.me.REG[8] = NIT_NULL;
16355 fra.me.REG[9] = NIT_NULL;
16356 fra.me.REG[0] = p0;
16357 fra.me.REG[1] = p1;
16358 /* ./parser//parser.nit:4711 */
16359 fra.me.REG[2] = NIT_NULL;
16360 /* ./parser//parser.nit:4712 */
16361 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16362 /* ./parser//parser.nit:4713 */
16363 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16364 /* ./parser//parser.nit:4714 */
16365 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16366 /* ./parser//parser.nit:4715 */
16367 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16368 /* ./parser//parser.nit:4716 */
16369 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16370 /* ./parser//parser.nit:4717 */
16371 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16372 /* ./parser//parser.nit:4718 */
16373 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16374 /* ./parser//parser.nit:4719 */
16375 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16376 /* ./parser//parser.nit:4720 */
16377 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16378 /* ./parser//parser.nit:4722 */
16379 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16380 if (UNTAG_Bool(REGB0)) {
16381 } else {
16382 nit_abort("Assert failed", NULL, LOCATE_parser, 4722);
16383 }
16384 /* ./parser//parser.nit:4724 */
16385 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16386 if (UNTAG_Bool(REGB0)) {
16387 } else {
16388 nit_abort("Assert failed", NULL, LOCATE_parser, 4724);
16389 }
16390 /* ./parser//parser.nit:4726 */
16391 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16392 if (UNTAG_Bool(REGB0)) {
16393 } else {
16394 nit_abort("Assert failed", NULL, LOCATE_parser, 4726);
16395 }
16396 /* ./parser//parser.nit:4728 */
16397 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16398 if (UNTAG_Bool(REGB0)) {
16399 } else {
16400 nit_abort("Assert failed", NULL, LOCATE_parser, 4728);
16401 }
16402 /* ./parser//parser.nit:4730 */
16403 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16404 if (UNTAG_Bool(REGB0)) {
16405 } else {
16406 nit_abort("Assert failed", NULL, LOCATE_parser, 4730);
16407 }
16408 /* ./parser//parser.nit:4732 */
16409 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16410 if (UNTAG_Bool(REGB0)) {
16411 } else {
16412 nit_abort("Assert failed", NULL, LOCATE_parser, 4732);
16413 }
16414 /* ./parser//parser.nit:4734 */
16415 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16416 if (UNTAG_Bool(REGB0)) {
16417 } else {
16418 nit_abort("Assert failed", NULL, LOCATE_parser, 4734);
16419 }
16420 /* ./parser//parser.nit:4735 */
16421 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
16422 /* ./parser//parser.nit:4747 */
16423 fra.me.REG[2] = fra.me.REG[3];
16424 /* ./parser//parser.nit:4748 */
16425 REGB0 = TAG_Bool(ATTR_parser___ReduceAction106____goto(fra.me.REG[0])!=NIT_NULL);
16426 if (UNTAG_Bool(REGB0)) {
16427 } else {
16428 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4748);
16429 }
16430 REGB0 = ATTR_parser___ReduceAction106____goto(fra.me.REG[0]);
16431 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16432 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16433 stack_frame_head = fra.me.prev;
16434 return;
16435 }
16436 void parser___ReduceAction106___init(val_t p0, val_t p1, int* init_table){
16437 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction106].i;
16438 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16439 val_t REGB0;
16440 val_t tmp;
16441 if (init_table[itpos109]) return;
16442 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16443 fra.me.file = LOCATE_parser;
16444 fra.me.line = 4751;
16445 fra.me.meth = LOCATE_parser___ReduceAction106___init;
16446 fra.me.has_broke = 0;
16447 fra.me.REG_size = 2;
16448 fra.me.REG[0] = NIT_NULL;
16449 fra.me.REG[1] = NIT_NULL;
16450 fra.me.REG[0] = p0;
16451 REGB0 = p1;
16452 /* ./parser//parser.nit:4751 */
16453 fra.me.REG[1] = fra.me.REG[0];
16454 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16455 ATTR_parser___ReduceAction106____goto(fra.me.REG[1]) = REGB0;
16456 stack_frame_head = fra.me.prev;
16457 init_table[itpos109] = 1;
16458 return;
16459 }
16460 void parser___ReduceAction107___action(val_t p0, val_t p1){
16461 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
16462 val_t REGB0;
16463 val_t tmp;
16464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16465 fra.me.file = LOCATE_parser;
16466 fra.me.line = 4755;
16467 fra.me.meth = LOCATE_parser___ReduceAction107___action;
16468 fra.me.has_broke = 0;
16469 fra.me.REG_size = 10;
16470 fra.me.REG[0] = NIT_NULL;
16471 fra.me.REG[1] = NIT_NULL;
16472 fra.me.REG[2] = NIT_NULL;
16473 fra.me.REG[3] = NIT_NULL;
16474 fra.me.REG[4] = NIT_NULL;
16475 fra.me.REG[5] = NIT_NULL;
16476 fra.me.REG[6] = NIT_NULL;
16477 fra.me.REG[7] = NIT_NULL;
16478 fra.me.REG[8] = NIT_NULL;
16479 fra.me.REG[9] = NIT_NULL;
16480 fra.me.REG[0] = p0;
16481 fra.me.REG[1] = p1;
16482 /* ./parser//parser.nit:4757 */
16483 fra.me.REG[2] = NIT_NULL;
16484 /* ./parser//parser.nit:4758 */
16485 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16486 /* ./parser//parser.nit:4759 */
16487 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16488 /* ./parser//parser.nit:4760 */
16489 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16490 /* ./parser//parser.nit:4761 */
16491 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16492 /* ./parser//parser.nit:4762 */
16493 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16494 /* ./parser//parser.nit:4763 */
16495 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16496 /* ./parser//parser.nit:4764 */
16497 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16498 /* ./parser//parser.nit:4765 */
16499 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16500 /* ./parser//parser.nit:4766 */
16501 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16502 /* ./parser//parser.nit:4768 */
16503 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16504 if (UNTAG_Bool(REGB0)) {
16505 } else {
16506 nit_abort("Assert failed", NULL, LOCATE_parser, 4768);
16507 }
16508 /* ./parser//parser.nit:4770 */
16509 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16510 if (UNTAG_Bool(REGB0)) {
16511 } else {
16512 nit_abort("Assert failed", NULL, LOCATE_parser, 4770);
16513 }
16514 /* ./parser//parser.nit:4772 */
16515 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16516 if (UNTAG_Bool(REGB0)) {
16517 } else {
16518 nit_abort("Assert failed", NULL, LOCATE_parser, 4772);
16519 }
16520 /* ./parser//parser.nit:4774 */
16521 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16522 if (UNTAG_Bool(REGB0)) {
16523 } else {
16524 nit_abort("Assert failed", NULL, LOCATE_parser, 4774);
16525 }
16526 /* ./parser//parser.nit:4776 */
16527 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16528 if (UNTAG_Bool(REGB0)) {
16529 } else {
16530 nit_abort("Assert failed", NULL, LOCATE_parser, 4776);
16531 }
16532 /* ./parser//parser.nit:4778 */
16533 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16534 if (UNTAG_Bool(REGB0)) {
16535 } else {
16536 nit_abort("Assert failed", NULL, LOCATE_parser, 4778);
16537 }
16538 /* ./parser//parser.nit:4780 */
16539 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16540 if (UNTAG_Bool(REGB0)) {
16541 } else {
16542 nit_abort("Assert failed", NULL, LOCATE_parser, 4780);
16543 }
16544 /* ./parser//parser.nit:4781 */
16545 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
16546 /* ./parser//parser.nit:4793 */
16547 fra.me.REG[2] = fra.me.REG[3];
16548 /* ./parser//parser.nit:4794 */
16549 REGB0 = TAG_Bool(ATTR_parser___ReduceAction107____goto(fra.me.REG[0])!=NIT_NULL);
16550 if (UNTAG_Bool(REGB0)) {
16551 } else {
16552 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4794);
16553 }
16554 REGB0 = ATTR_parser___ReduceAction107____goto(fra.me.REG[0]);
16555 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16556 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16557 stack_frame_head = fra.me.prev;
16558 return;
16559 }
16560 void parser___ReduceAction107___init(val_t p0, val_t p1, int* init_table){
16561 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction107].i;
16562 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16563 val_t REGB0;
16564 val_t tmp;
16565 if (init_table[itpos110]) return;
16566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16567 fra.me.file = LOCATE_parser;
16568 fra.me.line = 4797;
16569 fra.me.meth = LOCATE_parser___ReduceAction107___init;
16570 fra.me.has_broke = 0;
16571 fra.me.REG_size = 2;
16572 fra.me.REG[0] = NIT_NULL;
16573 fra.me.REG[1] = NIT_NULL;
16574 fra.me.REG[0] = p0;
16575 REGB0 = p1;
16576 /* ./parser//parser.nit:4797 */
16577 fra.me.REG[1] = fra.me.REG[0];
16578 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16579 ATTR_parser___ReduceAction107____goto(fra.me.REG[1]) = REGB0;
16580 stack_frame_head = fra.me.prev;
16581 init_table[itpos110] = 1;
16582 return;
16583 }
16584 void parser___ReduceAction108___action(val_t p0, val_t p1){
16585 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16586 val_t REGB0;
16587 val_t tmp;
16588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16589 fra.me.file = LOCATE_parser;
16590 fra.me.line = 4801;
16591 fra.me.meth = LOCATE_parser___ReduceAction108___action;
16592 fra.me.has_broke = 0;
16593 fra.me.REG_size = 11;
16594 fra.me.REG[0] = NIT_NULL;
16595 fra.me.REG[1] = NIT_NULL;
16596 fra.me.REG[2] = NIT_NULL;
16597 fra.me.REG[3] = NIT_NULL;
16598 fra.me.REG[4] = NIT_NULL;
16599 fra.me.REG[5] = NIT_NULL;
16600 fra.me.REG[6] = NIT_NULL;
16601 fra.me.REG[7] = NIT_NULL;
16602 fra.me.REG[8] = NIT_NULL;
16603 fra.me.REG[9] = NIT_NULL;
16604 fra.me.REG[10] = NIT_NULL;
16605 fra.me.REG[0] = p0;
16606 fra.me.REG[1] = p1;
16607 /* ./parser//parser.nit:4803 */
16608 fra.me.REG[2] = NIT_NULL;
16609 /* ./parser//parser.nit:4804 */
16610 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16611 /* ./parser//parser.nit:4805 */
16612 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16613 /* ./parser//parser.nit:4806 */
16614 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16615 /* ./parser//parser.nit:4807 */
16616 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16617 /* ./parser//parser.nit:4808 */
16618 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16619 /* ./parser//parser.nit:4809 */
16620 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16621 /* ./parser//parser.nit:4810 */
16622 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16623 /* ./parser//parser.nit:4811 */
16624 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16625 /* ./parser//parser.nit:4812 */
16626 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16627 /* ./parser//parser.nit:4813 */
16628 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16629 /* ./parser//parser.nit:4815 */
16630 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16631 if (UNTAG_Bool(REGB0)) {
16632 } else {
16633 nit_abort("Assert failed", NULL, LOCATE_parser, 4815);
16634 }
16635 /* ./parser//parser.nit:4817 */
16636 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16637 if (UNTAG_Bool(REGB0)) {
16638 } else {
16639 nit_abort("Assert failed", NULL, LOCATE_parser, 4817);
16640 }
16641 /* ./parser//parser.nit:4819 */
16642 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16643 if (UNTAG_Bool(REGB0)) {
16644 } else {
16645 nit_abort("Assert failed", NULL, LOCATE_parser, 4819);
16646 }
16647 /* ./parser//parser.nit:4821 */
16648 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16649 if (UNTAG_Bool(REGB0)) {
16650 } else {
16651 nit_abort("Assert failed", NULL, LOCATE_parser, 4821);
16652 }
16653 /* ./parser//parser.nit:4823 */
16654 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16655 if (UNTAG_Bool(REGB0)) {
16656 } else {
16657 nit_abort("Assert failed", NULL, LOCATE_parser, 4823);
16658 }
16659 /* ./parser//parser.nit:4825 */
16660 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16661 if (UNTAG_Bool(REGB0)) {
16662 } else {
16663 nit_abort("Assert failed", NULL, LOCATE_parser, 4825);
16664 }
16665 /* ./parser//parser.nit:4827 */
16666 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16667 if (UNTAG_Bool(REGB0)) {
16668 } else {
16669 nit_abort("Assert failed", NULL, LOCATE_parser, 4827);
16670 }
16671 /* ./parser//parser.nit:4829 */
16672 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16673 if (UNTAG_Bool(REGB0)) {
16674 } else {
16675 nit_abort("Assert failed", NULL, LOCATE_parser, 4829);
16676 }
16677 /* ./parser//parser.nit:4830 */
16678 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
16679 /* ./parser//parser.nit:4842 */
16680 fra.me.REG[2] = fra.me.REG[3];
16681 /* ./parser//parser.nit:4843 */
16682 REGB0 = TAG_Bool(ATTR_parser___ReduceAction108____goto(fra.me.REG[0])!=NIT_NULL);
16683 if (UNTAG_Bool(REGB0)) {
16684 } else {
16685 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4843);
16686 }
16687 REGB0 = ATTR_parser___ReduceAction108____goto(fra.me.REG[0]);
16688 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16689 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16690 stack_frame_head = fra.me.prev;
16691 return;
16692 }
16693 void parser___ReduceAction108___init(val_t p0, val_t p1, int* init_table){
16694 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction108].i;
16695 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16696 val_t REGB0;
16697 val_t tmp;
16698 if (init_table[itpos111]) return;
16699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16700 fra.me.file = LOCATE_parser;
16701 fra.me.line = 4846;
16702 fra.me.meth = LOCATE_parser___ReduceAction108___init;
16703 fra.me.has_broke = 0;
16704 fra.me.REG_size = 2;
16705 fra.me.REG[0] = NIT_NULL;
16706 fra.me.REG[1] = NIT_NULL;
16707 fra.me.REG[0] = p0;
16708 REGB0 = p1;
16709 /* ./parser//parser.nit:4846 */
16710 fra.me.REG[1] = fra.me.REG[0];
16711 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16712 ATTR_parser___ReduceAction108____goto(fra.me.REG[1]) = REGB0;
16713 stack_frame_head = fra.me.prev;
16714 init_table[itpos111] = 1;
16715 return;
16716 }
16717 void parser___ReduceAction109___action(val_t p0, val_t p1){
16718 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
16719 val_t REGB0;
16720 val_t tmp;
16721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16722 fra.me.file = LOCATE_parser;
16723 fra.me.line = 4850;
16724 fra.me.meth = LOCATE_parser___ReduceAction109___action;
16725 fra.me.has_broke = 0;
16726 fra.me.REG_size = 10;
16727 fra.me.REG[0] = NIT_NULL;
16728 fra.me.REG[1] = NIT_NULL;
16729 fra.me.REG[2] = NIT_NULL;
16730 fra.me.REG[3] = NIT_NULL;
16731 fra.me.REG[4] = NIT_NULL;
16732 fra.me.REG[5] = NIT_NULL;
16733 fra.me.REG[6] = NIT_NULL;
16734 fra.me.REG[7] = NIT_NULL;
16735 fra.me.REG[8] = NIT_NULL;
16736 fra.me.REG[9] = NIT_NULL;
16737 fra.me.REG[0] = p0;
16738 fra.me.REG[1] = p1;
16739 /* ./parser//parser.nit:4852 */
16740 fra.me.REG[2] = NIT_NULL;
16741 /* ./parser//parser.nit:4853 */
16742 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16743 /* ./parser//parser.nit:4854 */
16744 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16745 /* ./parser//parser.nit:4855 */
16746 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16747 /* ./parser//parser.nit:4856 */
16748 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16749 /* ./parser//parser.nit:4857 */
16750 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16751 /* ./parser//parser.nit:4858 */
16752 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16753 /* ./parser//parser.nit:4859 */
16754 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16755 /* ./parser//parser.nit:4860 */
16756 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16757 /* ./parser//parser.nit:4861 */
16758 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16759 /* ./parser//parser.nit:4863 */
16760 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16761 if (UNTAG_Bool(REGB0)) {
16762 } else {
16763 nit_abort("Assert failed", NULL, LOCATE_parser, 4863);
16764 }
16765 /* ./parser//parser.nit:4865 */
16766 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16767 if (UNTAG_Bool(REGB0)) {
16768 } else {
16769 nit_abort("Assert failed", NULL, LOCATE_parser, 4865);
16770 }
16771 /* ./parser//parser.nit:4867 */
16772 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16773 if (UNTAG_Bool(REGB0)) {
16774 } else {
16775 nit_abort("Assert failed", NULL, LOCATE_parser, 4867);
16776 }
16777 /* ./parser//parser.nit:4869 */
16778 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16779 if (UNTAG_Bool(REGB0)) {
16780 } else {
16781 nit_abort("Assert failed", NULL, LOCATE_parser, 4869);
16782 }
16783 /* ./parser//parser.nit:4871 */
16784 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16785 if (UNTAG_Bool(REGB0)) {
16786 } else {
16787 nit_abort("Assert failed", NULL, LOCATE_parser, 4871);
16788 }
16789 /* ./parser//parser.nit:4873 */
16790 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16791 if (UNTAG_Bool(REGB0)) {
16792 } else {
16793 nit_abort("Assert failed", NULL, LOCATE_parser, 4873);
16794 }
16795 /* ./parser//parser.nit:4875 */
16796 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16797 if (UNTAG_Bool(REGB0)) {
16798 } else {
16799 nit_abort("Assert failed", NULL, LOCATE_parser, 4875);
16800 }
16801 /* ./parser//parser.nit:4876 */
16802 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
16803 /* ./parser//parser.nit:4888 */
16804 fra.me.REG[2] = fra.me.REG[3];
16805 /* ./parser//parser.nit:4889 */
16806 REGB0 = TAG_Bool(ATTR_parser___ReduceAction109____goto(fra.me.REG[0])!=NIT_NULL);
16807 if (UNTAG_Bool(REGB0)) {
16808 } else {
16809 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4889);
16810 }
16811 REGB0 = ATTR_parser___ReduceAction109____goto(fra.me.REG[0]);
16812 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16813 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16814 stack_frame_head = fra.me.prev;
16815 return;
16816 }
16817 void parser___ReduceAction109___init(val_t p0, val_t p1, int* init_table){
16818 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction109].i;
16819 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16820 val_t REGB0;
16821 val_t tmp;
16822 if (init_table[itpos112]) return;
16823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16824 fra.me.file = LOCATE_parser;
16825 fra.me.line = 4892;
16826 fra.me.meth = LOCATE_parser___ReduceAction109___init;
16827 fra.me.has_broke = 0;
16828 fra.me.REG_size = 2;
16829 fra.me.REG[0] = NIT_NULL;
16830 fra.me.REG[1] = NIT_NULL;
16831 fra.me.REG[0] = p0;
16832 REGB0 = p1;
16833 /* ./parser//parser.nit:4892 */
16834 fra.me.REG[1] = fra.me.REG[0];
16835 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16836 ATTR_parser___ReduceAction109____goto(fra.me.REG[1]) = REGB0;
16837 stack_frame_head = fra.me.prev;
16838 init_table[itpos112] = 1;
16839 return;
16840 }
16841 void parser___ReduceAction110___action(val_t p0, val_t p1){
16842 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16843 val_t REGB0;
16844 val_t tmp;
16845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16846 fra.me.file = LOCATE_parser;
16847 fra.me.line = 4896;
16848 fra.me.meth = LOCATE_parser___ReduceAction110___action;
16849 fra.me.has_broke = 0;
16850 fra.me.REG_size = 11;
16851 fra.me.REG[0] = NIT_NULL;
16852 fra.me.REG[1] = NIT_NULL;
16853 fra.me.REG[2] = NIT_NULL;
16854 fra.me.REG[3] = NIT_NULL;
16855 fra.me.REG[4] = NIT_NULL;
16856 fra.me.REG[5] = NIT_NULL;
16857 fra.me.REG[6] = NIT_NULL;
16858 fra.me.REG[7] = NIT_NULL;
16859 fra.me.REG[8] = NIT_NULL;
16860 fra.me.REG[9] = NIT_NULL;
16861 fra.me.REG[10] = NIT_NULL;
16862 fra.me.REG[0] = p0;
16863 fra.me.REG[1] = p1;
16864 /* ./parser//parser.nit:4898 */
16865 fra.me.REG[2] = NIT_NULL;
16866 /* ./parser//parser.nit:4899 */
16867 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16868 /* ./parser//parser.nit:4900 */
16869 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16870 /* ./parser//parser.nit:4901 */
16871 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16872 /* ./parser//parser.nit:4902 */
16873 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16874 /* ./parser//parser.nit:4903 */
16875 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16876 /* ./parser//parser.nit:4904 */
16877 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16878 /* ./parser//parser.nit:4905 */
16879 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16880 /* ./parser//parser.nit:4906 */
16881 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16882 /* ./parser//parser.nit:4907 */
16883 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16884 /* ./parser//parser.nit:4908 */
16885 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16886 /* ./parser//parser.nit:4910 */
16887 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16888 if (UNTAG_Bool(REGB0)) {
16889 } else {
16890 nit_abort("Assert failed", NULL, LOCATE_parser, 4910);
16891 }
16892 /* ./parser//parser.nit:4912 */
16893 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16894 if (UNTAG_Bool(REGB0)) {
16895 } else {
16896 nit_abort("Assert failed", NULL, LOCATE_parser, 4912);
16897 }
16898 /* ./parser//parser.nit:4914 */
16899 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16900 if (UNTAG_Bool(REGB0)) {
16901 } else {
16902 nit_abort("Assert failed", NULL, LOCATE_parser, 4914);
16903 }
16904 /* ./parser//parser.nit:4916 */
16905 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16906 if (UNTAG_Bool(REGB0)) {
16907 } else {
16908 nit_abort("Assert failed", NULL, LOCATE_parser, 4916);
16909 }
16910 /* ./parser//parser.nit:4918 */
16911 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16912 if (UNTAG_Bool(REGB0)) {
16913 } else {
16914 nit_abort("Assert failed", NULL, LOCATE_parser, 4918);
16915 }
16916 /* ./parser//parser.nit:4920 */
16917 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16918 if (UNTAG_Bool(REGB0)) {
16919 } else {
16920 nit_abort("Assert failed", NULL, LOCATE_parser, 4920);
16921 }
16922 /* ./parser//parser.nit:4922 */
16923 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16924 if (UNTAG_Bool(REGB0)) {
16925 } else {
16926 nit_abort("Assert failed", NULL, LOCATE_parser, 4922);
16927 }
16928 /* ./parser//parser.nit:4924 */
16929 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16930 if (UNTAG_Bool(REGB0)) {
16931 } else {
16932 nit_abort("Assert failed", NULL, LOCATE_parser, 4924);
16933 }
16934 /* ./parser//parser.nit:4925 */
16935 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], NIT_NULL, fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
16936 /* ./parser//parser.nit:4937 */
16937 fra.me.REG[2] = fra.me.REG[3];
16938 /* ./parser//parser.nit:4938 */
16939 REGB0 = TAG_Bool(ATTR_parser___ReduceAction110____goto(fra.me.REG[0])!=NIT_NULL);
16940 if (UNTAG_Bool(REGB0)) {
16941 } else {
16942 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4938);
16943 }
16944 REGB0 = ATTR_parser___ReduceAction110____goto(fra.me.REG[0]);
16945 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16946 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16947 stack_frame_head = fra.me.prev;
16948 return;
16949 }
16950 void parser___ReduceAction110___init(val_t p0, val_t p1, int* init_table){
16951 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction110].i;
16952 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16953 val_t REGB0;
16954 val_t tmp;
16955 if (init_table[itpos113]) return;
16956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16957 fra.me.file = LOCATE_parser;
16958 fra.me.line = 4941;
16959 fra.me.meth = LOCATE_parser___ReduceAction110___init;
16960 fra.me.has_broke = 0;
16961 fra.me.REG_size = 2;
16962 fra.me.REG[0] = NIT_NULL;
16963 fra.me.REG[1] = NIT_NULL;
16964 fra.me.REG[0] = p0;
16965 REGB0 = p1;
16966 /* ./parser//parser.nit:4941 */
16967 fra.me.REG[1] = fra.me.REG[0];
16968 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16969 ATTR_parser___ReduceAction110____goto(fra.me.REG[1]) = REGB0;
16970 stack_frame_head = fra.me.prev;
16971 init_table[itpos113] = 1;
16972 return;
16973 }
16974 void parser___ReduceAction111___action(val_t p0, val_t p1){
16975 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16976 val_t REGB0;
16977 val_t tmp;
16978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16979 fra.me.file = LOCATE_parser;
16980 fra.me.line = 4945;
16981 fra.me.meth = LOCATE_parser___ReduceAction111___action;
16982 fra.me.has_broke = 0;
16983 fra.me.REG_size = 11;
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[4] = NIT_NULL;
16989 fra.me.REG[5] = NIT_NULL;
16990 fra.me.REG[6] = NIT_NULL;
16991 fra.me.REG[7] = NIT_NULL;
16992 fra.me.REG[8] = NIT_NULL;
16993 fra.me.REG[9] = NIT_NULL;
16994 fra.me.REG[10] = NIT_NULL;
16995 fra.me.REG[0] = p0;
16996 fra.me.REG[1] = p1;
16997 /* ./parser//parser.nit:4947 */
16998 fra.me.REG[2] = NIT_NULL;
16999 /* ./parser//parser.nit:4948 */
17000 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17001 /* ./parser//parser.nit:4949 */
17002 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17003 /* ./parser//parser.nit:4950 */
17004 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17005 /* ./parser//parser.nit:4951 */
17006 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17007 /* ./parser//parser.nit:4952 */
17008 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17009 /* ./parser//parser.nit:4953 */
17010 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17011 /* ./parser//parser.nit:4954 */
17012 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17013 /* ./parser//parser.nit:4955 */
17014 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17015 /* ./parser//parser.nit:4956 */
17016 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17017 /* ./parser//parser.nit:4957 */
17018 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17019 /* ./parser//parser.nit:4959 */
17020 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17021 if (UNTAG_Bool(REGB0)) {
17022 } else {
17023 nit_abort("Assert failed", NULL, LOCATE_parser, 4959);
17024 }
17025 /* ./parser//parser.nit:4961 */
17026 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17027 if (UNTAG_Bool(REGB0)) {
17028 } else {
17029 nit_abort("Assert failed", NULL, LOCATE_parser, 4961);
17030 }
17031 /* ./parser//parser.nit:4963 */
17032 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17033 if (UNTAG_Bool(REGB0)) {
17034 } else {
17035 nit_abort("Assert failed", NULL, LOCATE_parser, 4963);
17036 }
17037 /* ./parser//parser.nit:4965 */
17038 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17039 if (UNTAG_Bool(REGB0)) {
17040 } else {
17041 nit_abort("Assert failed", NULL, LOCATE_parser, 4965);
17042 }
17043 /* ./parser//parser.nit:4967 */
17044 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17045 if (UNTAG_Bool(REGB0)) {
17046 } else {
17047 nit_abort("Assert failed", NULL, LOCATE_parser, 4967);
17048 }
17049 /* ./parser//parser.nit:4969 */
17050 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
17051 if (UNTAG_Bool(REGB0)) {
17052 } else {
17053 nit_abort("Assert failed", NULL, LOCATE_parser, 4969);
17054 }
17055 /* ./parser//parser.nit:4971 */
17056 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17057 if (UNTAG_Bool(REGB0)) {
17058 } else {
17059 nit_abort("Assert failed", NULL, LOCATE_parser, 4971);
17060 }
17061 /* ./parser//parser.nit:4973 */
17062 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
17063 if (UNTAG_Bool(REGB0)) {
17064 } else {
17065 nit_abort("Assert failed", NULL, LOCATE_parser, 4973);
17066 }
17067 /* ./parser//parser.nit:4974 */
17068 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
17069 /* ./parser//parser.nit:4986 */
17070 fra.me.REG[2] = fra.me.REG[3];
17071 /* ./parser//parser.nit:4987 */
17072 REGB0 = TAG_Bool(ATTR_parser___ReduceAction111____goto(fra.me.REG[0])!=NIT_NULL);
17073 if (UNTAG_Bool(REGB0)) {
17074 } else {
17075 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4987);
17076 }
17077 REGB0 = ATTR_parser___ReduceAction111____goto(fra.me.REG[0]);
17078 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17079 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17080 stack_frame_head = fra.me.prev;
17081 return;
17082 }
17083 void parser___ReduceAction111___init(val_t p0, val_t p1, int* init_table){
17084 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction111].i;
17085 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17086 val_t REGB0;
17087 val_t tmp;
17088 if (init_table[itpos114]) return;
17089 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17090 fra.me.file = LOCATE_parser;
17091 fra.me.line = 4990;
17092 fra.me.meth = LOCATE_parser___ReduceAction111___init;
17093 fra.me.has_broke = 0;
17094 fra.me.REG_size = 2;
17095 fra.me.REG[0] = NIT_NULL;
17096 fra.me.REG[1] = NIT_NULL;
17097 fra.me.REG[0] = p0;
17098 REGB0 = p1;
17099 /* ./parser//parser.nit:4990 */
17100 fra.me.REG[1] = fra.me.REG[0];
17101 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17102 ATTR_parser___ReduceAction111____goto(fra.me.REG[1]) = REGB0;
17103 stack_frame_head = fra.me.prev;
17104 init_table[itpos114] = 1;
17105 return;
17106 }
17107 void parser___ReduceAction112___action(val_t p0, val_t p1){
17108 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
17109 val_t REGB0;
17110 val_t tmp;
17111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17112 fra.me.file = LOCATE_parser;
17113 fra.me.line = 4994;
17114 fra.me.meth = LOCATE_parser___ReduceAction112___action;
17115 fra.me.has_broke = 0;
17116 fra.me.REG_size = 12;
17117 fra.me.REG[0] = NIT_NULL;
17118 fra.me.REG[1] = NIT_NULL;
17119 fra.me.REG[2] = NIT_NULL;
17120 fra.me.REG[3] = NIT_NULL;
17121 fra.me.REG[4] = NIT_NULL;
17122 fra.me.REG[5] = NIT_NULL;
17123 fra.me.REG[6] = NIT_NULL;
17124 fra.me.REG[7] = NIT_NULL;
17125 fra.me.REG[8] = NIT_NULL;
17126 fra.me.REG[9] = NIT_NULL;
17127 fra.me.REG[10] = NIT_NULL;
17128 fra.me.REG[11] = NIT_NULL;
17129 fra.me.REG[0] = p0;
17130 fra.me.REG[1] = p1;
17131 /* ./parser//parser.nit:4996 */
17132 fra.me.REG[2] = NIT_NULL;
17133 /* ./parser//parser.nit:4997 */
17134 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17135 /* ./parser//parser.nit:4998 */
17136 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17137 /* ./parser//parser.nit:4999 */
17138 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17139 /* ./parser//parser.nit:5000 */
17140 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17141 /* ./parser//parser.nit:5001 */
17142 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17143 /* ./parser//parser.nit:5002 */
17144 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17145 /* ./parser//parser.nit:5003 */
17146 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17147 /* ./parser//parser.nit:5004 */
17148 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17149 /* ./parser//parser.nit:5005 */
17150 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17151 /* ./parser//parser.nit:5006 */
17152 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17153 /* ./parser//parser.nit:5007 */
17154 fra.me.REG[11] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17155 /* ./parser//parser.nit:5009 */
17156 REGB0 = TAG_Bool((fra.me.REG[11]==NIT_NULL) || VAL_ISA(fra.me.REG[11], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17157 if (UNTAG_Bool(REGB0)) {
17158 } else {
17159 nit_abort("Assert failed", NULL, LOCATE_parser, 5009);
17160 }
17161 /* ./parser//parser.nit:5011 */
17162 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17163 if (UNTAG_Bool(REGB0)) {
17164 } else {
17165 nit_abort("Assert failed", NULL, LOCATE_parser, 5011);
17166 }
17167 /* ./parser//parser.nit:5013 */
17168 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17169 if (UNTAG_Bool(REGB0)) {
17170 } else {
17171 nit_abort("Assert failed", NULL, LOCATE_parser, 5013);
17172 }
17173 /* ./parser//parser.nit:5015 */
17174 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17175 if (UNTAG_Bool(REGB0)) {
17176 } else {
17177 nit_abort("Assert failed", NULL, LOCATE_parser, 5015);
17178 }
17179 /* ./parser//parser.nit:5017 */
17180 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17181 if (UNTAG_Bool(REGB0)) {
17182 } else {
17183 nit_abort("Assert failed", NULL, LOCATE_parser, 5017);
17184 }
17185 /* ./parser//parser.nit:5019 */
17186 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17187 if (UNTAG_Bool(REGB0)) {
17188 } else {
17189 nit_abort("Assert failed", NULL, LOCATE_parser, 5019);
17190 }
17191 /* ./parser//parser.nit:5021 */
17192 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
17193 if (UNTAG_Bool(REGB0)) {
17194 } else {
17195 nit_abort("Assert failed", NULL, LOCATE_parser, 5021);
17196 }
17197 /* ./parser//parser.nit:5023 */
17198 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17199 if (UNTAG_Bool(REGB0)) {
17200 } else {
17201 nit_abort("Assert failed", NULL, LOCATE_parser, 5023);
17202 }
17203 /* ./parser//parser.nit:5025 */
17204 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
17205 if (UNTAG_Bool(REGB0)) {
17206 } else {
17207 nit_abort("Assert failed", NULL, LOCATE_parser, 5025);
17208 }
17209 /* ./parser//parser.nit:5026 */
17210 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[11], fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
17211 /* ./parser//parser.nit:5038 */
17212 fra.me.REG[2] = fra.me.REG[3];
17213 /* ./parser//parser.nit:5039 */
17214 REGB0 = TAG_Bool(ATTR_parser___ReduceAction112____goto(fra.me.REG[0])!=NIT_NULL);
17215 if (UNTAG_Bool(REGB0)) {
17216 } else {
17217 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5039);
17218 }
17219 REGB0 = ATTR_parser___ReduceAction112____goto(fra.me.REG[0]);
17220 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17221 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17222 stack_frame_head = fra.me.prev;
17223 return;
17224 }
17225 void parser___ReduceAction112___init(val_t p0, val_t p1, int* init_table){
17226 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction112].i;
17227 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17228 val_t REGB0;
17229 val_t tmp;
17230 if (init_table[itpos115]) return;
17231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17232 fra.me.file = LOCATE_parser;
17233 fra.me.line = 5042;
17234 fra.me.meth = LOCATE_parser___ReduceAction112___init;
17235 fra.me.has_broke = 0;
17236 fra.me.REG_size = 2;
17237 fra.me.REG[0] = NIT_NULL;
17238 fra.me.REG[1] = NIT_NULL;
17239 fra.me.REG[0] = p0;
17240 REGB0 = p1;
17241 /* ./parser//parser.nit:5042 */
17242 fra.me.REG[1] = fra.me.REG[0];
17243 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17244 ATTR_parser___ReduceAction112____goto(fra.me.REG[1]) = REGB0;
17245 stack_frame_head = fra.me.prev;
17246 init_table[itpos115] = 1;
17247 return;
17248 }
17249 void parser___ReduceAction113___action(val_t p0, val_t p1){
17250 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17251 val_t REGB0;
17252 val_t tmp;
17253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17254 fra.me.file = LOCATE_parser;
17255 fra.me.line = 5046;
17256 fra.me.meth = LOCATE_parser___ReduceAction113___action;
17257 fra.me.has_broke = 0;
17258 fra.me.REG_size = 7;
17259 fra.me.REG[0] = NIT_NULL;
17260 fra.me.REG[1] = NIT_NULL;
17261 fra.me.REG[2] = NIT_NULL;
17262 fra.me.REG[3] = NIT_NULL;
17263 fra.me.REG[4] = NIT_NULL;
17264 fra.me.REG[5] = NIT_NULL;
17265 fra.me.REG[6] = NIT_NULL;
17266 fra.me.REG[0] = p0;
17267 fra.me.REG[1] = p1;
17268 /* ./parser//parser.nit:5048 */
17269 fra.me.REG[2] = NIT_NULL;
17270 /* ./parser//parser.nit:5049 */
17271 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17272 /* ./parser//parser.nit:5050 */
17273 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17274 /* ./parser//parser.nit:5051 */
17275 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17276 /* ./parser//parser.nit:5052 */
17277 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17278 /* ./parser//parser.nit:5054 */
17279 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17280 if (UNTAG_Bool(REGB0)) {
17281 } else {
17282 nit_abort("Assert failed", NULL, LOCATE_parser, 5054);
17283 }
17284 /* ./parser//parser.nit:5056 */
17285 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17286 if (UNTAG_Bool(REGB0)) {
17287 } else {
17288 nit_abort("Assert failed", NULL, LOCATE_parser, 5056);
17289 }
17290 /* ./parser//parser.nit:5058 */
17291 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17292 if (UNTAG_Bool(REGB0)) {
17293 } else {
17294 nit_abort("Assert failed", NULL, LOCATE_parser, 5058);
17295 }
17296 /* ./parser//parser.nit:5060 */
17297 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17298 if (UNTAG_Bool(REGB0)) {
17299 } else {
17300 nit_abort("Assert failed", NULL, LOCATE_parser, 5060);
17301 }
17302 /* ./parser//parser.nit:5061 */
17303 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[6], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL);
17304 /* ./parser//parser.nit:5073 */
17305 fra.me.REG[2] = fra.me.REG[3];
17306 /* ./parser//parser.nit:5074 */
17307 REGB0 = TAG_Bool(ATTR_parser___ReduceAction113____goto(fra.me.REG[0])!=NIT_NULL);
17308 if (UNTAG_Bool(REGB0)) {
17309 } else {
17310 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5074);
17311 }
17312 REGB0 = ATTR_parser___ReduceAction113____goto(fra.me.REG[0]);
17313 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17314 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17315 stack_frame_head = fra.me.prev;
17316 return;
17317 }
17318 void parser___ReduceAction113___init(val_t p0, val_t p1, int* init_table){
17319 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction113].i;
17320 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17321 val_t REGB0;
17322 val_t tmp;
17323 if (init_table[itpos116]) return;
17324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17325 fra.me.file = LOCATE_parser;
17326 fra.me.line = 5077;
17327 fra.me.meth = LOCATE_parser___ReduceAction113___init;
17328 fra.me.has_broke = 0;
17329 fra.me.REG_size = 2;
17330 fra.me.REG[0] = NIT_NULL;
17331 fra.me.REG[1] = NIT_NULL;
17332 fra.me.REG[0] = p0;
17333 REGB0 = p1;
17334 /* ./parser//parser.nit:5077 */
17335 fra.me.REG[1] = fra.me.REG[0];
17336 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17337 ATTR_parser___ReduceAction113____goto(fra.me.REG[1]) = REGB0;
17338 stack_frame_head = fra.me.prev;
17339 init_table[itpos116] = 1;
17340 return;
17341 }
17342 void parser___ReduceAction114___action(val_t p0, val_t p1){
17343 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
17344 val_t REGB0;
17345 val_t tmp;
17346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17347 fra.me.file = LOCATE_parser;
17348 fra.me.line = 5081;
17349 fra.me.meth = LOCATE_parser___ReduceAction114___action;
17350 fra.me.has_broke = 0;
17351 fra.me.REG_size = 8;
17352 fra.me.REG[0] = NIT_NULL;
17353 fra.me.REG[1] = NIT_NULL;
17354 fra.me.REG[2] = NIT_NULL;
17355 fra.me.REG[3] = NIT_NULL;
17356 fra.me.REG[4] = NIT_NULL;
17357 fra.me.REG[5] = NIT_NULL;
17358 fra.me.REG[6] = NIT_NULL;
17359 fra.me.REG[7] = NIT_NULL;
17360 fra.me.REG[0] = p0;
17361 fra.me.REG[1] = p1;
17362 /* ./parser//parser.nit:5083 */
17363 fra.me.REG[2] = NIT_NULL;
17364 /* ./parser//parser.nit:5084 */
17365 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17366 /* ./parser//parser.nit:5085 */
17367 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17368 /* ./parser//parser.nit:5086 */
17369 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17370 /* ./parser//parser.nit:5087 */
17371 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17372 /* ./parser//parser.nit:5088 */
17373 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17374 /* ./parser//parser.nit:5090 */
17375 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17376 if (UNTAG_Bool(REGB0)) {
17377 } else {
17378 nit_abort("Assert failed", NULL, LOCATE_parser, 5090);
17379 }
17380 /* ./parser//parser.nit:5092 */
17381 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17382 if (UNTAG_Bool(REGB0)) {
17383 } else {
17384 nit_abort("Assert failed", NULL, LOCATE_parser, 5092);
17385 }
17386 /* ./parser//parser.nit:5094 */
17387 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17388 if (UNTAG_Bool(REGB0)) {
17389 } else {
17390 nit_abort("Assert failed", NULL, LOCATE_parser, 5094);
17391 }
17392 /* ./parser//parser.nit:5096 */
17393 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17394 if (UNTAG_Bool(REGB0)) {
17395 } else {
17396 nit_abort("Assert failed", NULL, LOCATE_parser, 5096);
17397 }
17398 /* ./parser//parser.nit:5098 */
17399 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17400 if (UNTAG_Bool(REGB0)) {
17401 } else {
17402 nit_abort("Assert failed", NULL, LOCATE_parser, 5098);
17403 }
17404 /* ./parser//parser.nit:5099 */
17405 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL);
17406 /* ./parser//parser.nit:5111 */
17407 fra.me.REG[2] = fra.me.REG[3];
17408 /* ./parser//parser.nit:5112 */
17409 REGB0 = TAG_Bool(ATTR_parser___ReduceAction114____goto(fra.me.REG[0])!=NIT_NULL);
17410 if (UNTAG_Bool(REGB0)) {
17411 } else {
17412 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5112);
17413 }
17414 REGB0 = ATTR_parser___ReduceAction114____goto(fra.me.REG[0]);
17415 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17416 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17417 stack_frame_head = fra.me.prev;
17418 return;
17419 }
17420 void parser___ReduceAction114___init(val_t p0, val_t p1, int* init_table){
17421 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction114].i;
17422 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17423 val_t REGB0;
17424 val_t tmp;
17425 if (init_table[itpos117]) return;
17426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17427 fra.me.file = LOCATE_parser;
17428 fra.me.line = 5115;
17429 fra.me.meth = LOCATE_parser___ReduceAction114___init;
17430 fra.me.has_broke = 0;
17431 fra.me.REG_size = 2;
17432 fra.me.REG[0] = NIT_NULL;
17433 fra.me.REG[1] = NIT_NULL;
17434 fra.me.REG[0] = p0;
17435 REGB0 = p1;
17436 /* ./parser//parser.nit:5115 */
17437 fra.me.REG[1] = fra.me.REG[0];
17438 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17439 ATTR_parser___ReduceAction114____goto(fra.me.REG[1]) = REGB0;
17440 stack_frame_head = fra.me.prev;
17441 init_table[itpos117] = 1;
17442 return;
17443 }
17444 void parser___ReduceAction115___action(val_t p0, val_t p1){
17445 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
17446 val_t REGB0;
17447 val_t tmp;
17448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17449 fra.me.file = LOCATE_parser;
17450 fra.me.line = 5119;
17451 fra.me.meth = LOCATE_parser___ReduceAction115___action;
17452 fra.me.has_broke = 0;
17453 fra.me.REG_size = 8;
17454 fra.me.REG[0] = NIT_NULL;
17455 fra.me.REG[1] = NIT_NULL;
17456 fra.me.REG[2] = NIT_NULL;
17457 fra.me.REG[3] = NIT_NULL;
17458 fra.me.REG[4] = NIT_NULL;
17459 fra.me.REG[5] = NIT_NULL;
17460 fra.me.REG[6] = NIT_NULL;
17461 fra.me.REG[7] = NIT_NULL;
17462 fra.me.REG[0] = p0;
17463 fra.me.REG[1] = p1;
17464 /* ./parser//parser.nit:5121 */
17465 fra.me.REG[2] = NIT_NULL;
17466 /* ./parser//parser.nit:5122 */
17467 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17468 /* ./parser//parser.nit:5123 */
17469 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17470 /* ./parser//parser.nit:5124 */
17471 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17472 /* ./parser//parser.nit:5125 */
17473 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17474 /* ./parser//parser.nit:5126 */
17475 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17476 /* ./parser//parser.nit:5128 */
17477 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17478 if (UNTAG_Bool(REGB0)) {
17479 } else {
17480 nit_abort("Assert failed", NULL, LOCATE_parser, 5128);
17481 }
17482 /* ./parser//parser.nit:5130 */
17483 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17484 if (UNTAG_Bool(REGB0)) {
17485 } else {
17486 nit_abort("Assert failed", NULL, LOCATE_parser, 5130);
17487 }
17488 /* ./parser//parser.nit:5132 */
17489 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17490 if (UNTAG_Bool(REGB0)) {
17491 } else {
17492 nit_abort("Assert failed", NULL, LOCATE_parser, 5132);
17493 }
17494 /* ./parser//parser.nit:5134 */
17495 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17496 if (UNTAG_Bool(REGB0)) {
17497 } else {
17498 nit_abort("Assert failed", NULL, LOCATE_parser, 5134);
17499 }
17500 /* ./parser//parser.nit:5136 */
17501 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17502 if (UNTAG_Bool(REGB0)) {
17503 } else {
17504 nit_abort("Assert failed", NULL, LOCATE_parser, 5136);
17505 }
17506 /* ./parser//parser.nit:5137 */
17507 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
17508 /* ./parser//parser.nit:5149 */
17509 fra.me.REG[2] = fra.me.REG[3];
17510 /* ./parser//parser.nit:5150 */
17511 REGB0 = TAG_Bool(ATTR_parser___ReduceAction115____goto(fra.me.REG[0])!=NIT_NULL);
17512 if (UNTAG_Bool(REGB0)) {
17513 } else {
17514 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5150);
17515 }
17516 REGB0 = ATTR_parser___ReduceAction115____goto(fra.me.REG[0]);
17517 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17518 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17519 stack_frame_head = fra.me.prev;
17520 return;
17521 }
17522 void parser___ReduceAction115___init(val_t p0, val_t p1, int* init_table){
17523 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction115].i;
17524 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17525 val_t REGB0;
17526 val_t tmp;
17527 if (init_table[itpos118]) return;
17528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17529 fra.me.file = LOCATE_parser;
17530 fra.me.line = 5153;
17531 fra.me.meth = LOCATE_parser___ReduceAction115___init;
17532 fra.me.has_broke = 0;
17533 fra.me.REG_size = 2;
17534 fra.me.REG[0] = NIT_NULL;
17535 fra.me.REG[1] = NIT_NULL;
17536 fra.me.REG[0] = p0;
17537 REGB0 = p1;
17538 /* ./parser//parser.nit:5153 */
17539 fra.me.REG[1] = fra.me.REG[0];
17540 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17541 ATTR_parser___ReduceAction115____goto(fra.me.REG[1]) = REGB0;
17542 stack_frame_head = fra.me.prev;
17543 init_table[itpos118] = 1;
17544 return;
17545 }
17546 void parser___ReduceAction116___action(val_t p0, val_t p1){
17547 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17548 val_t REGB0;
17549 val_t tmp;
17550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17551 fra.me.file = LOCATE_parser;
17552 fra.me.line = 5157;
17553 fra.me.meth = LOCATE_parser___ReduceAction116___action;
17554 fra.me.has_broke = 0;
17555 fra.me.REG_size = 9;
17556 fra.me.REG[0] = NIT_NULL;
17557 fra.me.REG[1] = NIT_NULL;
17558 fra.me.REG[2] = NIT_NULL;
17559 fra.me.REG[3] = NIT_NULL;
17560 fra.me.REG[4] = NIT_NULL;
17561 fra.me.REG[5] = NIT_NULL;
17562 fra.me.REG[6] = NIT_NULL;
17563 fra.me.REG[7] = NIT_NULL;
17564 fra.me.REG[8] = NIT_NULL;
17565 fra.me.REG[0] = p0;
17566 fra.me.REG[1] = p1;
17567 /* ./parser//parser.nit:5159 */
17568 fra.me.REG[2] = NIT_NULL;
17569 /* ./parser//parser.nit:5160 */
17570 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17571 /* ./parser//parser.nit:5161 */
17572 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17573 /* ./parser//parser.nit:5162 */
17574 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17575 /* ./parser//parser.nit:5163 */
17576 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17577 /* ./parser//parser.nit:5164 */
17578 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17579 /* ./parser//parser.nit:5165 */
17580 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17581 /* ./parser//parser.nit:5167 */
17582 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17583 if (UNTAG_Bool(REGB0)) {
17584 } else {
17585 nit_abort("Assert failed", NULL, LOCATE_parser, 5167);
17586 }
17587 /* ./parser//parser.nit:5169 */
17588 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17589 if (UNTAG_Bool(REGB0)) {
17590 } else {
17591 nit_abort("Assert failed", NULL, LOCATE_parser, 5169);
17592 }
17593 /* ./parser//parser.nit:5171 */
17594 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17595 if (UNTAG_Bool(REGB0)) {
17596 } else {
17597 nit_abort("Assert failed", NULL, LOCATE_parser, 5171);
17598 }
17599 /* ./parser//parser.nit:5173 */
17600 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17601 if (UNTAG_Bool(REGB0)) {
17602 } else {
17603 nit_abort("Assert failed", NULL, LOCATE_parser, 5173);
17604 }
17605 /* ./parser//parser.nit:5175 */
17606 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17607 if (UNTAG_Bool(REGB0)) {
17608 } else {
17609 nit_abort("Assert failed", NULL, LOCATE_parser, 5175);
17610 }
17611 /* ./parser//parser.nit:5177 */
17612 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17613 if (UNTAG_Bool(REGB0)) {
17614 } else {
17615 nit_abort("Assert failed", NULL, LOCATE_parser, 5177);
17616 }
17617 /* ./parser//parser.nit:5178 */
17618 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
17619 /* ./parser//parser.nit:5190 */
17620 fra.me.REG[2] = fra.me.REG[3];
17621 /* ./parser//parser.nit:5191 */
17622 REGB0 = TAG_Bool(ATTR_parser___ReduceAction116____goto(fra.me.REG[0])!=NIT_NULL);
17623 if (UNTAG_Bool(REGB0)) {
17624 } else {
17625 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5191);
17626 }
17627 REGB0 = ATTR_parser___ReduceAction116____goto(fra.me.REG[0]);
17628 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17629 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17630 stack_frame_head = fra.me.prev;
17631 return;
17632 }
17633 void parser___ReduceAction116___init(val_t p0, val_t p1, int* init_table){
17634 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction116].i;
17635 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17636 val_t REGB0;
17637 val_t tmp;
17638 if (init_table[itpos119]) return;
17639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17640 fra.me.file = LOCATE_parser;
17641 fra.me.line = 5194;
17642 fra.me.meth = LOCATE_parser___ReduceAction116___init;
17643 fra.me.has_broke = 0;
17644 fra.me.REG_size = 2;
17645 fra.me.REG[0] = NIT_NULL;
17646 fra.me.REG[1] = NIT_NULL;
17647 fra.me.REG[0] = p0;
17648 REGB0 = p1;
17649 /* ./parser//parser.nit:5194 */
17650 fra.me.REG[1] = fra.me.REG[0];
17651 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17652 ATTR_parser___ReduceAction116____goto(fra.me.REG[1]) = REGB0;
17653 stack_frame_head = fra.me.prev;
17654 init_table[itpos119] = 1;
17655 return;
17656 }
17657 void parser___ReduceAction117___action(val_t p0, val_t p1){
17658 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
17659 val_t REGB0;
17660 val_t tmp;
17661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17662 fra.me.file = LOCATE_parser;
17663 fra.me.line = 5198;
17664 fra.me.meth = LOCATE_parser___ReduceAction117___action;
17665 fra.me.has_broke = 0;
17666 fra.me.REG_size = 8;
17667 fra.me.REG[0] = NIT_NULL;
17668 fra.me.REG[1] = NIT_NULL;
17669 fra.me.REG[2] = NIT_NULL;
17670 fra.me.REG[3] = NIT_NULL;
17671 fra.me.REG[4] = NIT_NULL;
17672 fra.me.REG[5] = NIT_NULL;
17673 fra.me.REG[6] = NIT_NULL;
17674 fra.me.REG[7] = NIT_NULL;
17675 fra.me.REG[0] = p0;
17676 fra.me.REG[1] = p1;
17677 /* ./parser//parser.nit:5200 */
17678 fra.me.REG[2] = NIT_NULL;
17679 /* ./parser//parser.nit:5201 */
17680 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17681 /* ./parser//parser.nit:5202 */
17682 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17683 /* ./parser//parser.nit:5203 */
17684 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17685 /* ./parser//parser.nit:5204 */
17686 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17687 /* ./parser//parser.nit:5205 */
17688 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17689 /* ./parser//parser.nit:5207 */
17690 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17691 if (UNTAG_Bool(REGB0)) {
17692 } else {
17693 nit_abort("Assert failed", NULL, LOCATE_parser, 5207);
17694 }
17695 /* ./parser//parser.nit:5209 */
17696 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17697 if (UNTAG_Bool(REGB0)) {
17698 } else {
17699 nit_abort("Assert failed", NULL, LOCATE_parser, 5209);
17700 }
17701 /* ./parser//parser.nit:5211 */
17702 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17703 if (UNTAG_Bool(REGB0)) {
17704 } else {
17705 nit_abort("Assert failed", NULL, LOCATE_parser, 5211);
17706 }
17707 /* ./parser//parser.nit:5213 */
17708 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17709 if (UNTAG_Bool(REGB0)) {
17710 } else {
17711 nit_abort("Assert failed", NULL, LOCATE_parser, 5213);
17712 }
17713 /* ./parser//parser.nit:5215 */
17714 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17715 if (UNTAG_Bool(REGB0)) {
17716 } else {
17717 nit_abort("Assert failed", NULL, LOCATE_parser, 5215);
17718 }
17719 /* ./parser//parser.nit:5216 */
17720 fra.me.REG[4] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[3], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, NIT_NULL);
17721 /* ./parser//parser.nit:5228 */
17722 fra.me.REG[2] = fra.me.REG[4];
17723 /* ./parser//parser.nit:5229 */
17724 REGB0 = TAG_Bool(ATTR_parser___ReduceAction117____goto(fra.me.REG[0])!=NIT_NULL);
17725 if (UNTAG_Bool(REGB0)) {
17726 } else {
17727 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5229);
17728 }
17729 REGB0 = ATTR_parser___ReduceAction117____goto(fra.me.REG[0]);
17730 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17731 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17732 stack_frame_head = fra.me.prev;
17733 return;
17734 }
17735 void parser___ReduceAction117___init(val_t p0, val_t p1, int* init_table){
17736 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction117].i;
17737 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17738 val_t REGB0;
17739 val_t tmp;
17740 if (init_table[itpos120]) return;
17741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17742 fra.me.file = LOCATE_parser;
17743 fra.me.line = 5232;
17744 fra.me.meth = LOCATE_parser___ReduceAction117___init;
17745 fra.me.has_broke = 0;
17746 fra.me.REG_size = 2;
17747 fra.me.REG[0] = NIT_NULL;
17748 fra.me.REG[1] = NIT_NULL;
17749 fra.me.REG[0] = p0;
17750 REGB0 = p1;
17751 /* ./parser//parser.nit:5232 */
17752 fra.me.REG[1] = fra.me.REG[0];
17753 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17754 ATTR_parser___ReduceAction117____goto(fra.me.REG[1]) = REGB0;
17755 stack_frame_head = fra.me.prev;
17756 init_table[itpos120] = 1;
17757 return;
17758 }
17759 void parser___ReduceAction118___action(val_t p0, val_t p1){
17760 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17761 val_t REGB0;
17762 val_t tmp;
17763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17764 fra.me.file = LOCATE_parser;
17765 fra.me.line = 5236;
17766 fra.me.meth = LOCATE_parser___ReduceAction118___action;
17767 fra.me.has_broke = 0;
17768 fra.me.REG_size = 9;
17769 fra.me.REG[0] = NIT_NULL;
17770 fra.me.REG[1] = NIT_NULL;
17771 fra.me.REG[2] = NIT_NULL;
17772 fra.me.REG[3] = NIT_NULL;
17773 fra.me.REG[4] = NIT_NULL;
17774 fra.me.REG[5] = NIT_NULL;
17775 fra.me.REG[6] = NIT_NULL;
17776 fra.me.REG[7] = NIT_NULL;
17777 fra.me.REG[8] = NIT_NULL;
17778 fra.me.REG[0] = p0;
17779 fra.me.REG[1] = p1;
17780 /* ./parser//parser.nit:5238 */
17781 fra.me.REG[2] = NIT_NULL;
17782 /* ./parser//parser.nit:5239 */
17783 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17784 /* ./parser//parser.nit:5240 */
17785 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17786 /* ./parser//parser.nit:5241 */
17787 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17788 /* ./parser//parser.nit:5242 */
17789 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17790 /* ./parser//parser.nit:5243 */
17791 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17792 /* ./parser//parser.nit:5244 */
17793 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17794 /* ./parser//parser.nit:5246 */
17795 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17796 if (UNTAG_Bool(REGB0)) {
17797 } else {
17798 nit_abort("Assert failed", NULL, LOCATE_parser, 5246);
17799 }
17800 /* ./parser//parser.nit:5248 */
17801 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17802 if (UNTAG_Bool(REGB0)) {
17803 } else {
17804 nit_abort("Assert failed", NULL, LOCATE_parser, 5248);
17805 }
17806 /* ./parser//parser.nit:5250 */
17807 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17808 if (UNTAG_Bool(REGB0)) {
17809 } else {
17810 nit_abort("Assert failed", NULL, LOCATE_parser, 5250);
17811 }
17812 /* ./parser//parser.nit:5252 */
17813 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17814 if (UNTAG_Bool(REGB0)) {
17815 } else {
17816 nit_abort("Assert failed", NULL, LOCATE_parser, 5252);
17817 }
17818 /* ./parser//parser.nit:5254 */
17819 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17820 if (UNTAG_Bool(REGB0)) {
17821 } else {
17822 nit_abort("Assert failed", NULL, LOCATE_parser, 5254);
17823 }
17824 /* ./parser//parser.nit:5256 */
17825 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17826 if (UNTAG_Bool(REGB0)) {
17827 } else {
17828 nit_abort("Assert failed", NULL, LOCATE_parser, 5256);
17829 }
17830 /* ./parser//parser.nit:5257 */
17831 fra.me.REG[4] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[3], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, NIT_NULL);
17832 /* ./parser//parser.nit:5269 */
17833 fra.me.REG[2] = fra.me.REG[4];
17834 /* ./parser//parser.nit:5270 */
17835 REGB0 = TAG_Bool(ATTR_parser___ReduceAction118____goto(fra.me.REG[0])!=NIT_NULL);
17836 if (UNTAG_Bool(REGB0)) {
17837 } else {
17838 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5270);
17839 }
17840 REGB0 = ATTR_parser___ReduceAction118____goto(fra.me.REG[0]);
17841 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17842 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17843 stack_frame_head = fra.me.prev;
17844 return;
17845 }
17846 void parser___ReduceAction118___init(val_t p0, val_t p1, int* init_table){
17847 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction118].i;
17848 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17849 val_t REGB0;
17850 val_t tmp;
17851 if (init_table[itpos121]) return;
17852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17853 fra.me.file = LOCATE_parser;
17854 fra.me.line = 5273;
17855 fra.me.meth = LOCATE_parser___ReduceAction118___init;
17856 fra.me.has_broke = 0;
17857 fra.me.REG_size = 2;
17858 fra.me.REG[0] = NIT_NULL;
17859 fra.me.REG[1] = NIT_NULL;
17860 fra.me.REG[0] = p0;
17861 REGB0 = p1;
17862 /* ./parser//parser.nit:5273 */
17863 fra.me.REG[1] = fra.me.REG[0];
17864 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17865 ATTR_parser___ReduceAction118____goto(fra.me.REG[1]) = REGB0;
17866 stack_frame_head = fra.me.prev;
17867 init_table[itpos121] = 1;
17868 return;
17869 }
17870 void parser___ReduceAction119___action(val_t p0, val_t p1){
17871 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17872 val_t REGB0;
17873 val_t tmp;
17874 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17875 fra.me.file = LOCATE_parser;
17876 fra.me.line = 5277;
17877 fra.me.meth = LOCATE_parser___ReduceAction119___action;
17878 fra.me.has_broke = 0;
17879 fra.me.REG_size = 9;
17880 fra.me.REG[0] = NIT_NULL;
17881 fra.me.REG[1] = NIT_NULL;
17882 fra.me.REG[2] = NIT_NULL;
17883 fra.me.REG[3] = NIT_NULL;
17884 fra.me.REG[4] = NIT_NULL;
17885 fra.me.REG[5] = NIT_NULL;
17886 fra.me.REG[6] = NIT_NULL;
17887 fra.me.REG[7] = NIT_NULL;
17888 fra.me.REG[8] = NIT_NULL;
17889 fra.me.REG[0] = p0;
17890 fra.me.REG[1] = p1;
17891 /* ./parser//parser.nit:5279 */
17892 fra.me.REG[2] = NIT_NULL;
17893 /* ./parser//parser.nit:5280 */
17894 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17895 /* ./parser//parser.nit:5281 */
17896 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17897 /* ./parser//parser.nit:5282 */
17898 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17899 /* ./parser//parser.nit:5283 */
17900 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17901 /* ./parser//parser.nit:5284 */
17902 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17903 /* ./parser//parser.nit:5285 */
17904 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17905 /* ./parser//parser.nit:5287 */
17906 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17907 if (UNTAG_Bool(REGB0)) {
17908 } else {
17909 nit_abort("Assert failed", NULL, LOCATE_parser, 5287);
17910 }
17911 /* ./parser//parser.nit:5289 */
17912 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17913 if (UNTAG_Bool(REGB0)) {
17914 } else {
17915 nit_abort("Assert failed", NULL, LOCATE_parser, 5289);
17916 }
17917 /* ./parser//parser.nit:5291 */
17918 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17919 if (UNTAG_Bool(REGB0)) {
17920 } else {
17921 nit_abort("Assert failed", NULL, LOCATE_parser, 5291);
17922 }
17923 /* ./parser//parser.nit:5293 */
17924 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17925 if (UNTAG_Bool(REGB0)) {
17926 } else {
17927 nit_abort("Assert failed", NULL, LOCATE_parser, 5293);
17928 }
17929 /* ./parser//parser.nit:5295 */
17930 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17931 if (UNTAG_Bool(REGB0)) {
17932 } else {
17933 nit_abort("Assert failed", NULL, LOCATE_parser, 5295);
17934 }
17935 /* ./parser//parser.nit:5297 */
17936 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17937 if (UNTAG_Bool(REGB0)) {
17938 } else {
17939 nit_abort("Assert failed", NULL, LOCATE_parser, 5297);
17940 }
17941 /* ./parser//parser.nit:5298 */
17942 fra.me.REG[4] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[3], NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL);
17943 /* ./parser//parser.nit:5310 */
17944 fra.me.REG[2] = fra.me.REG[4];
17945 /* ./parser//parser.nit:5311 */
17946 REGB0 = TAG_Bool(ATTR_parser___ReduceAction119____goto(fra.me.REG[0])!=NIT_NULL);
17947 if (UNTAG_Bool(REGB0)) {
17948 } else {
17949 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5311);
17950 }
17951 REGB0 = ATTR_parser___ReduceAction119____goto(fra.me.REG[0]);
17952 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17953 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17954 stack_frame_head = fra.me.prev;
17955 return;
17956 }
17957 void parser___ReduceAction119___init(val_t p0, val_t p1, int* init_table){
17958 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction119].i;
17959 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17960 val_t REGB0;
17961 val_t tmp;
17962 if (init_table[itpos122]) return;
17963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17964 fra.me.file = LOCATE_parser;
17965 fra.me.line = 5314;
17966 fra.me.meth = LOCATE_parser___ReduceAction119___init;
17967 fra.me.has_broke = 0;
17968 fra.me.REG_size = 2;
17969 fra.me.REG[0] = NIT_NULL;
17970 fra.me.REG[1] = NIT_NULL;
17971 fra.me.REG[0] = p0;
17972 REGB0 = p1;
17973 /* ./parser//parser.nit:5314 */
17974 fra.me.REG[1] = fra.me.REG[0];
17975 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17976 ATTR_parser___ReduceAction119____goto(fra.me.REG[1]) = REGB0;
17977 stack_frame_head = fra.me.prev;
17978 init_table[itpos122] = 1;
17979 return;
17980 }
17981 void parser___ReduceAction120___action(val_t p0, val_t p1){
17982 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
17983 val_t REGB0;
17984 val_t tmp;
17985 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17986 fra.me.file = LOCATE_parser;
17987 fra.me.line = 5318;
17988 fra.me.meth = LOCATE_parser___ReduceAction120___action;
17989 fra.me.has_broke = 0;
17990 fra.me.REG_size = 10;
17991 fra.me.REG[0] = NIT_NULL;
17992 fra.me.REG[1] = NIT_NULL;
17993 fra.me.REG[2] = NIT_NULL;
17994 fra.me.REG[3] = NIT_NULL;
17995 fra.me.REG[4] = NIT_NULL;
17996 fra.me.REG[5] = NIT_NULL;
17997 fra.me.REG[6] = NIT_NULL;
17998 fra.me.REG[7] = NIT_NULL;
17999 fra.me.REG[8] = NIT_NULL;
18000 fra.me.REG[9] = NIT_NULL;
18001 fra.me.REG[0] = p0;
18002 fra.me.REG[1] = p1;
18003 /* ./parser//parser.nit:5320 */
18004 fra.me.REG[2] = NIT_NULL;
18005 /* ./parser//parser.nit:5321 */
18006 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18007 /* ./parser//parser.nit:5322 */
18008 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18009 /* ./parser//parser.nit:5323 */
18010 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18011 /* ./parser//parser.nit:5324 */
18012 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18013 /* ./parser//parser.nit:5325 */
18014 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18015 /* ./parser//parser.nit:5326 */
18016 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18017 /* ./parser//parser.nit:5327 */
18018 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18019 /* ./parser//parser.nit:5329 */
18020 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18021 if (UNTAG_Bool(REGB0)) {
18022 } else {
18023 nit_abort("Assert failed", NULL, LOCATE_parser, 5329);
18024 }
18025 /* ./parser//parser.nit:5331 */
18026 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18027 if (UNTAG_Bool(REGB0)) {
18028 } else {
18029 nit_abort("Assert failed", NULL, LOCATE_parser, 5331);
18030 }
18031 /* ./parser//parser.nit:5333 */
18032 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18033 if (UNTAG_Bool(REGB0)) {
18034 } else {
18035 nit_abort("Assert failed", NULL, LOCATE_parser, 5333);
18036 }
18037 /* ./parser//parser.nit:5335 */
18038 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18039 if (UNTAG_Bool(REGB0)) {
18040 } else {
18041 nit_abort("Assert failed", NULL, LOCATE_parser, 5335);
18042 }
18043 /* ./parser//parser.nit:5337 */
18044 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18045 if (UNTAG_Bool(REGB0)) {
18046 } else {
18047 nit_abort("Assert failed", NULL, LOCATE_parser, 5337);
18048 }
18049 /* ./parser//parser.nit:5339 */
18050 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18051 if (UNTAG_Bool(REGB0)) {
18052 } else {
18053 nit_abort("Assert failed", NULL, LOCATE_parser, 5339);
18054 }
18055 /* ./parser//parser.nit:5341 */
18056 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18057 if (UNTAG_Bool(REGB0)) {
18058 } else {
18059 nit_abort("Assert failed", NULL, LOCATE_parser, 5341);
18060 }
18061 /* ./parser//parser.nit:5342 */
18062 fra.me.REG[4] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[3], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL);
18063 /* ./parser//parser.nit:5354 */
18064 fra.me.REG[2] = fra.me.REG[4];
18065 /* ./parser//parser.nit:5355 */
18066 REGB0 = TAG_Bool(ATTR_parser___ReduceAction120____goto(fra.me.REG[0])!=NIT_NULL);
18067 if (UNTAG_Bool(REGB0)) {
18068 } else {
18069 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5355);
18070 }
18071 REGB0 = ATTR_parser___ReduceAction120____goto(fra.me.REG[0]);
18072 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18073 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18074 stack_frame_head = fra.me.prev;
18075 return;
18076 }
18077 void parser___ReduceAction120___init(val_t p0, val_t p1, int* init_table){
18078 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction120].i;
18079 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18080 val_t REGB0;
18081 val_t tmp;
18082 if (init_table[itpos123]) return;
18083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18084 fra.me.file = LOCATE_parser;
18085 fra.me.line = 5358;
18086 fra.me.meth = LOCATE_parser___ReduceAction120___init;
18087 fra.me.has_broke = 0;
18088 fra.me.REG_size = 2;
18089 fra.me.REG[0] = NIT_NULL;
18090 fra.me.REG[1] = NIT_NULL;
18091 fra.me.REG[0] = p0;
18092 REGB0 = p1;
18093 /* ./parser//parser.nit:5358 */
18094 fra.me.REG[1] = fra.me.REG[0];
18095 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18096 ATTR_parser___ReduceAction120____goto(fra.me.REG[1]) = REGB0;
18097 stack_frame_head = fra.me.prev;
18098 init_table[itpos123] = 1;
18099 return;
18100 }
18101 void parser___ReduceAction121___action(val_t p0, val_t p1){
18102 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
18103 val_t REGB0;
18104 val_t tmp;
18105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18106 fra.me.file = LOCATE_parser;
18107 fra.me.line = 5362;
18108 fra.me.meth = LOCATE_parser___ReduceAction121___action;
18109 fra.me.has_broke = 0;
18110 fra.me.REG_size = 8;
18111 fra.me.REG[0] = NIT_NULL;
18112 fra.me.REG[1] = NIT_NULL;
18113 fra.me.REG[2] = NIT_NULL;
18114 fra.me.REG[3] = NIT_NULL;
18115 fra.me.REG[4] = NIT_NULL;
18116 fra.me.REG[5] = NIT_NULL;
18117 fra.me.REG[6] = NIT_NULL;
18118 fra.me.REG[7] = NIT_NULL;
18119 fra.me.REG[0] = p0;
18120 fra.me.REG[1] = p1;
18121 /* ./parser//parser.nit:5364 */
18122 fra.me.REG[2] = NIT_NULL;
18123 /* ./parser//parser.nit:5365 */
18124 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18125 /* ./parser//parser.nit:5366 */
18126 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18127 /* ./parser//parser.nit:5367 */
18128 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18129 /* ./parser//parser.nit:5368 */
18130 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18131 /* ./parser//parser.nit:5369 */
18132 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18133 /* ./parser//parser.nit:5370 */
18134 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18135 /* ./parser//parser.nit:5371 */
18136 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18137 /* ./parser//parser.nit:5373 */
18138 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18139 if (UNTAG_Bool(REGB0)) {
18140 } else {
18141 nit_abort("Assert failed", NULL, LOCATE_parser, 5373);
18142 }
18143 /* ./parser//parser.nit:5375 */
18144 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18145 if (UNTAG_Bool(REGB0)) {
18146 } else {
18147 nit_abort("Assert failed", NULL, LOCATE_parser, 5375);
18148 }
18149 /* ./parser//parser.nit:5377 */
18150 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18151 if (UNTAG_Bool(REGB0)) {
18152 } else {
18153 nit_abort("Assert failed", NULL, LOCATE_parser, 5377);
18154 }
18155 /* ./parser//parser.nit:5379 */
18156 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18157 if (UNTAG_Bool(REGB0)) {
18158 } else {
18159 nit_abort("Assert failed", NULL, LOCATE_parser, 5379);
18160 }
18161 /* ./parser//parser.nit:5381 */
18162 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18163 if (UNTAG_Bool(REGB0)) {
18164 } else {
18165 nit_abort("Assert failed", NULL, LOCATE_parser, 5381);
18166 }
18167 /* ./parser//parser.nit:5382 */
18168 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
18169 /* ./parser//parser.nit:5394 */
18170 fra.me.REG[2] = fra.me.REG[3];
18171 /* ./parser//parser.nit:5395 */
18172 REGB0 = TAG_Bool(ATTR_parser___ReduceAction121____goto(fra.me.REG[0])!=NIT_NULL);
18173 if (UNTAG_Bool(REGB0)) {
18174 } else {
18175 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5395);
18176 }
18177 REGB0 = ATTR_parser___ReduceAction121____goto(fra.me.REG[0]);
18178 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18179 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18180 stack_frame_head = fra.me.prev;
18181 return;
18182 }
18183 void parser___ReduceAction121___init(val_t p0, val_t p1, int* init_table){
18184 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction121].i;
18185 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18186 val_t REGB0;
18187 val_t tmp;
18188 if (init_table[itpos124]) return;
18189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18190 fra.me.file = LOCATE_parser;
18191 fra.me.line = 5398;
18192 fra.me.meth = LOCATE_parser___ReduceAction121___init;
18193 fra.me.has_broke = 0;
18194 fra.me.REG_size = 2;
18195 fra.me.REG[0] = NIT_NULL;
18196 fra.me.REG[1] = NIT_NULL;
18197 fra.me.REG[0] = p0;
18198 REGB0 = p1;
18199 /* ./parser//parser.nit:5398 */
18200 fra.me.REG[1] = fra.me.REG[0];
18201 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18202 ATTR_parser___ReduceAction121____goto(fra.me.REG[1]) = REGB0;
18203 stack_frame_head = fra.me.prev;
18204 init_table[itpos124] = 1;
18205 return;
18206 }
18207 void parser___ReduceAction122___action(val_t p0, val_t p1){
18208 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
18209 val_t REGB0;
18210 val_t tmp;
18211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18212 fra.me.file = LOCATE_parser;
18213 fra.me.line = 5402;
18214 fra.me.meth = LOCATE_parser___ReduceAction122___action;
18215 fra.me.has_broke = 0;
18216 fra.me.REG_size = 9;
18217 fra.me.REG[0] = NIT_NULL;
18218 fra.me.REG[1] = NIT_NULL;
18219 fra.me.REG[2] = NIT_NULL;
18220 fra.me.REG[3] = NIT_NULL;
18221 fra.me.REG[4] = NIT_NULL;
18222 fra.me.REG[5] = NIT_NULL;
18223 fra.me.REG[6] = NIT_NULL;
18224 fra.me.REG[7] = NIT_NULL;
18225 fra.me.REG[8] = NIT_NULL;
18226 fra.me.REG[0] = p0;
18227 fra.me.REG[1] = p1;
18228 /* ./parser//parser.nit:5404 */
18229 fra.me.REG[2] = NIT_NULL;
18230 /* ./parser//parser.nit:5405 */
18231 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18232 /* ./parser//parser.nit:5406 */
18233 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18234 /* ./parser//parser.nit:5407 */
18235 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18236 /* ./parser//parser.nit:5408 */
18237 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18238 /* ./parser//parser.nit:5409 */
18239 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18240 /* ./parser//parser.nit:5410 */
18241 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18242 /* ./parser//parser.nit:5411 */
18243 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18244 /* ./parser//parser.nit:5412 */
18245 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18246 /* ./parser//parser.nit:5414 */
18247 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18248 if (UNTAG_Bool(REGB0)) {
18249 } else {
18250 nit_abort("Assert failed", NULL, LOCATE_parser, 5414);
18251 }
18252 /* ./parser//parser.nit:5416 */
18253 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18254 if (UNTAG_Bool(REGB0)) {
18255 } else {
18256 nit_abort("Assert failed", NULL, LOCATE_parser, 5416);
18257 }
18258 /* ./parser//parser.nit:5418 */
18259 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18260 if (UNTAG_Bool(REGB0)) {
18261 } else {
18262 nit_abort("Assert failed", NULL, LOCATE_parser, 5418);
18263 }
18264 /* ./parser//parser.nit:5420 */
18265 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18266 if (UNTAG_Bool(REGB0)) {
18267 } else {
18268 nit_abort("Assert failed", NULL, LOCATE_parser, 5420);
18269 }
18270 /* ./parser//parser.nit:5422 */
18271 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18272 if (UNTAG_Bool(REGB0)) {
18273 } else {
18274 nit_abort("Assert failed", NULL, LOCATE_parser, 5422);
18275 }
18276 /* ./parser//parser.nit:5424 */
18277 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18278 if (UNTAG_Bool(REGB0)) {
18279 } else {
18280 nit_abort("Assert failed", NULL, LOCATE_parser, 5424);
18281 }
18282 /* ./parser//parser.nit:5425 */
18283 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
18284 /* ./parser//parser.nit:5437 */
18285 fra.me.REG[2] = fra.me.REG[3];
18286 /* ./parser//parser.nit:5438 */
18287 REGB0 = TAG_Bool(ATTR_parser___ReduceAction122____goto(fra.me.REG[0])!=NIT_NULL);
18288 if (UNTAG_Bool(REGB0)) {
18289 } else {
18290 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5438);
18291 }
18292 REGB0 = ATTR_parser___ReduceAction122____goto(fra.me.REG[0]);
18293 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18294 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18295 stack_frame_head = fra.me.prev;
18296 return;
18297 }
18298 void parser___ReduceAction122___init(val_t p0, val_t p1, int* init_table){
18299 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction122].i;
18300 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18301 val_t REGB0;
18302 val_t tmp;
18303 if (init_table[itpos125]) return;
18304 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18305 fra.me.file = LOCATE_parser;
18306 fra.me.line = 5441;
18307 fra.me.meth = LOCATE_parser___ReduceAction122___init;
18308 fra.me.has_broke = 0;
18309 fra.me.REG_size = 2;
18310 fra.me.REG[0] = NIT_NULL;
18311 fra.me.REG[1] = NIT_NULL;
18312 fra.me.REG[0] = p0;
18313 REGB0 = p1;
18314 /* ./parser//parser.nit:5441 */
18315 fra.me.REG[1] = fra.me.REG[0];
18316 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18317 ATTR_parser___ReduceAction122____goto(fra.me.REG[1]) = REGB0;
18318 stack_frame_head = fra.me.prev;
18319 init_table[itpos125] = 1;
18320 return;
18321 }
18322 void parser___ReduceAction123___action(val_t p0, val_t p1){
18323 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
18324 val_t REGB0;
18325 val_t tmp;
18326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18327 fra.me.file = LOCATE_parser;
18328 fra.me.line = 5445;
18329 fra.me.meth = LOCATE_parser___ReduceAction123___action;
18330 fra.me.has_broke = 0;
18331 fra.me.REG_size = 9;
18332 fra.me.REG[0] = NIT_NULL;
18333 fra.me.REG[1] = NIT_NULL;
18334 fra.me.REG[2] = NIT_NULL;
18335 fra.me.REG[3] = NIT_NULL;
18336 fra.me.REG[4] = NIT_NULL;
18337 fra.me.REG[5] = NIT_NULL;
18338 fra.me.REG[6] = NIT_NULL;
18339 fra.me.REG[7] = NIT_NULL;
18340 fra.me.REG[8] = NIT_NULL;
18341 fra.me.REG[0] = p0;
18342 fra.me.REG[1] = p1;
18343 /* ./parser//parser.nit:5447 */
18344 fra.me.REG[2] = NIT_NULL;
18345 /* ./parser//parser.nit:5448 */
18346 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18347 /* ./parser//parser.nit:5449 */
18348 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18349 /* ./parser//parser.nit:5450 */
18350 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18351 /* ./parser//parser.nit:5451 */
18352 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18353 /* ./parser//parser.nit:5452 */
18354 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18355 /* ./parser//parser.nit:5453 */
18356 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18357 /* ./parser//parser.nit:5454 */
18358 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18359 /* ./parser//parser.nit:5455 */
18360 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18361 /* ./parser//parser.nit:5457 */
18362 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18363 if (UNTAG_Bool(REGB0)) {
18364 } else {
18365 nit_abort("Assert failed", NULL, LOCATE_parser, 5457);
18366 }
18367 /* ./parser//parser.nit:5459 */
18368 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18369 if (UNTAG_Bool(REGB0)) {
18370 } else {
18371 nit_abort("Assert failed", NULL, LOCATE_parser, 5459);
18372 }
18373 /* ./parser//parser.nit:5461 */
18374 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18375 if (UNTAG_Bool(REGB0)) {
18376 } else {
18377 nit_abort("Assert failed", NULL, LOCATE_parser, 5461);
18378 }
18379 /* ./parser//parser.nit:5463 */
18380 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18381 if (UNTAG_Bool(REGB0)) {
18382 } else {
18383 nit_abort("Assert failed", NULL, LOCATE_parser, 5463);
18384 }
18385 /* ./parser//parser.nit:5465 */
18386 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18387 if (UNTAG_Bool(REGB0)) {
18388 } else {
18389 nit_abort("Assert failed", NULL, LOCATE_parser, 5465);
18390 }
18391 /* ./parser//parser.nit:5467 */
18392 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18393 if (UNTAG_Bool(REGB0)) {
18394 } else {
18395 nit_abort("Assert failed", NULL, LOCATE_parser, 5467);
18396 }
18397 /* ./parser//parser.nit:5468 */
18398 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
18399 /* ./parser//parser.nit:5480 */
18400 fra.me.REG[2] = fra.me.REG[3];
18401 /* ./parser//parser.nit:5481 */
18402 REGB0 = TAG_Bool(ATTR_parser___ReduceAction123____goto(fra.me.REG[0])!=NIT_NULL);
18403 if (UNTAG_Bool(REGB0)) {
18404 } else {
18405 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5481);
18406 }
18407 REGB0 = ATTR_parser___ReduceAction123____goto(fra.me.REG[0]);
18408 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18409 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18410 stack_frame_head = fra.me.prev;
18411 return;
18412 }
18413 void parser___ReduceAction123___init(val_t p0, val_t p1, int* init_table){
18414 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction123].i;
18415 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18416 val_t REGB0;
18417 val_t tmp;
18418 if (init_table[itpos126]) return;
18419 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18420 fra.me.file = LOCATE_parser;
18421 fra.me.line = 5484;
18422 fra.me.meth = LOCATE_parser___ReduceAction123___init;
18423 fra.me.has_broke = 0;
18424 fra.me.REG_size = 2;
18425 fra.me.REG[0] = NIT_NULL;
18426 fra.me.REG[1] = NIT_NULL;
18427 fra.me.REG[0] = p0;
18428 REGB0 = p1;
18429 /* ./parser//parser.nit:5484 */
18430 fra.me.REG[1] = fra.me.REG[0];
18431 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18432 ATTR_parser___ReduceAction123____goto(fra.me.REG[1]) = REGB0;
18433 stack_frame_head = fra.me.prev;
18434 init_table[itpos126] = 1;
18435 return;
18436 }
18437 void parser___ReduceAction124___action(val_t p0, val_t p1){
18438 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
18439 val_t REGB0;
18440 val_t tmp;
18441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18442 fra.me.file = LOCATE_parser;
18443 fra.me.line = 5488;
18444 fra.me.meth = LOCATE_parser___ReduceAction124___action;
18445 fra.me.has_broke = 0;
18446 fra.me.REG_size = 10;
18447 fra.me.REG[0] = NIT_NULL;
18448 fra.me.REG[1] = NIT_NULL;
18449 fra.me.REG[2] = NIT_NULL;
18450 fra.me.REG[3] = NIT_NULL;
18451 fra.me.REG[4] = NIT_NULL;
18452 fra.me.REG[5] = NIT_NULL;
18453 fra.me.REG[6] = NIT_NULL;
18454 fra.me.REG[7] = NIT_NULL;
18455 fra.me.REG[8] = NIT_NULL;
18456 fra.me.REG[9] = NIT_NULL;
18457 fra.me.REG[0] = p0;
18458 fra.me.REG[1] = p1;
18459 /* ./parser//parser.nit:5490 */
18460 fra.me.REG[2] = NIT_NULL;
18461 /* ./parser//parser.nit:5491 */
18462 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18463 /* ./parser//parser.nit:5492 */
18464 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18465 /* ./parser//parser.nit:5493 */
18466 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18467 /* ./parser//parser.nit:5494 */
18468 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18469 /* ./parser//parser.nit:5495 */
18470 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18471 /* ./parser//parser.nit:5496 */
18472 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18473 /* ./parser//parser.nit:5497 */
18474 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18475 /* ./parser//parser.nit:5498 */
18476 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18477 /* ./parser//parser.nit:5499 */
18478 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18479 /* ./parser//parser.nit:5501 */
18480 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18481 if (UNTAG_Bool(REGB0)) {
18482 } else {
18483 nit_abort("Assert failed", NULL, LOCATE_parser, 5501);
18484 }
18485 /* ./parser//parser.nit:5503 */
18486 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18487 if (UNTAG_Bool(REGB0)) {
18488 } else {
18489 nit_abort("Assert failed", NULL, LOCATE_parser, 5503);
18490 }
18491 /* ./parser//parser.nit:5505 */
18492 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18493 if (UNTAG_Bool(REGB0)) {
18494 } else {
18495 nit_abort("Assert failed", NULL, LOCATE_parser, 5505);
18496 }
18497 /* ./parser//parser.nit:5507 */
18498 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18499 if (UNTAG_Bool(REGB0)) {
18500 } else {
18501 nit_abort("Assert failed", NULL, LOCATE_parser, 5507);
18502 }
18503 /* ./parser//parser.nit:5509 */
18504 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18505 if (UNTAG_Bool(REGB0)) {
18506 } else {
18507 nit_abort("Assert failed", NULL, LOCATE_parser, 5509);
18508 }
18509 /* ./parser//parser.nit:5511 */
18510 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18511 if (UNTAG_Bool(REGB0)) {
18512 } else {
18513 nit_abort("Assert failed", NULL, LOCATE_parser, 5511);
18514 }
18515 /* ./parser//parser.nit:5513 */
18516 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18517 if (UNTAG_Bool(REGB0)) {
18518 } else {
18519 nit_abort("Assert failed", NULL, LOCATE_parser, 5513);
18520 }
18521 /* ./parser//parser.nit:5514 */
18522 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
18523 /* ./parser//parser.nit:5526 */
18524 fra.me.REG[2] = fra.me.REG[3];
18525 /* ./parser//parser.nit:5527 */
18526 REGB0 = TAG_Bool(ATTR_parser___ReduceAction124____goto(fra.me.REG[0])!=NIT_NULL);
18527 if (UNTAG_Bool(REGB0)) {
18528 } else {
18529 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5527);
18530 }
18531 REGB0 = ATTR_parser___ReduceAction124____goto(fra.me.REG[0]);
18532 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18533 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18534 stack_frame_head = fra.me.prev;
18535 return;
18536 }
18537 void parser___ReduceAction124___init(val_t p0, val_t p1, int* init_table){
18538 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction124].i;
18539 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18540 val_t REGB0;
18541 val_t tmp;
18542 if (init_table[itpos127]) return;
18543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18544 fra.me.file = LOCATE_parser;
18545 fra.me.line = 5530;
18546 fra.me.meth = LOCATE_parser___ReduceAction124___init;
18547 fra.me.has_broke = 0;
18548 fra.me.REG_size = 2;
18549 fra.me.REG[0] = NIT_NULL;
18550 fra.me.REG[1] = NIT_NULL;
18551 fra.me.REG[0] = p0;
18552 REGB0 = p1;
18553 /* ./parser//parser.nit:5530 */
18554 fra.me.REG[1] = fra.me.REG[0];
18555 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18556 ATTR_parser___ReduceAction124____goto(fra.me.REG[1]) = REGB0;
18557 stack_frame_head = fra.me.prev;
18558 init_table[itpos127] = 1;
18559 return;
18560 }
18561 void parser___ReduceAction125___action(val_t p0, val_t p1){
18562 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
18563 val_t REGB0;
18564 val_t tmp;
18565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18566 fra.me.file = LOCATE_parser;
18567 fra.me.line = 5534;
18568 fra.me.meth = LOCATE_parser___ReduceAction125___action;
18569 fra.me.has_broke = 0;
18570 fra.me.REG_size = 9;
18571 fra.me.REG[0] = NIT_NULL;
18572 fra.me.REG[1] = NIT_NULL;
18573 fra.me.REG[2] = NIT_NULL;
18574 fra.me.REG[3] = NIT_NULL;
18575 fra.me.REG[4] = NIT_NULL;
18576 fra.me.REG[5] = NIT_NULL;
18577 fra.me.REG[6] = NIT_NULL;
18578 fra.me.REG[7] = NIT_NULL;
18579 fra.me.REG[8] = NIT_NULL;
18580 fra.me.REG[0] = p0;
18581 fra.me.REG[1] = p1;
18582 /* ./parser//parser.nit:5536 */
18583 fra.me.REG[2] = NIT_NULL;
18584 /* ./parser//parser.nit:5537 */
18585 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18586 /* ./parser//parser.nit:5538 */
18587 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18588 /* ./parser//parser.nit:5539 */
18589 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18590 /* ./parser//parser.nit:5540 */
18591 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18592 /* ./parser//parser.nit:5541 */
18593 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18594 /* ./parser//parser.nit:5542 */
18595 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18596 /* ./parser//parser.nit:5543 */
18597 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18598 /* ./parser//parser.nit:5544 */
18599 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18600 /* ./parser//parser.nit:5546 */
18601 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18602 if (UNTAG_Bool(REGB0)) {
18603 } else {
18604 nit_abort("Assert failed", NULL, LOCATE_parser, 5546);
18605 }
18606 /* ./parser//parser.nit:5548 */
18607 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18608 if (UNTAG_Bool(REGB0)) {
18609 } else {
18610 nit_abort("Assert failed", NULL, LOCATE_parser, 5548);
18611 }
18612 /* ./parser//parser.nit:5550 */
18613 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18614 if (UNTAG_Bool(REGB0)) {
18615 } else {
18616 nit_abort("Assert failed", NULL, LOCATE_parser, 5550);
18617 }
18618 /* ./parser//parser.nit:5552 */
18619 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18620 if (UNTAG_Bool(REGB0)) {
18621 } else {
18622 nit_abort("Assert failed", NULL, LOCATE_parser, 5552);
18623 }
18624 /* ./parser//parser.nit:5554 */
18625 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18626 if (UNTAG_Bool(REGB0)) {
18627 } else {
18628 nit_abort("Assert failed", NULL, LOCATE_parser, 5554);
18629 }
18630 /* ./parser//parser.nit:5556 */
18631 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18632 if (UNTAG_Bool(REGB0)) {
18633 } else {
18634 nit_abort("Assert failed", NULL, LOCATE_parser, 5556);
18635 }
18636 /* ./parser//parser.nit:5557 */
18637 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
18638 /* ./parser//parser.nit:5569 */
18639 fra.me.REG[2] = fra.me.REG[3];
18640 /* ./parser//parser.nit:5570 */
18641 REGB0 = TAG_Bool(ATTR_parser___ReduceAction125____goto(fra.me.REG[0])!=NIT_NULL);
18642 if (UNTAG_Bool(REGB0)) {
18643 } else {
18644 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5570);
18645 }
18646 REGB0 = ATTR_parser___ReduceAction125____goto(fra.me.REG[0]);
18647 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18648 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18649 stack_frame_head = fra.me.prev;
18650 return;
18651 }
18652 void parser___ReduceAction125___init(val_t p0, val_t p1, int* init_table){
18653 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction125].i;
18654 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18655 val_t REGB0;
18656 val_t tmp;
18657 if (init_table[itpos128]) return;
18658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18659 fra.me.file = LOCATE_parser;
18660 fra.me.line = 5573;
18661 fra.me.meth = LOCATE_parser___ReduceAction125___init;
18662 fra.me.has_broke = 0;
18663 fra.me.REG_size = 2;
18664 fra.me.REG[0] = NIT_NULL;
18665 fra.me.REG[1] = NIT_NULL;
18666 fra.me.REG[0] = p0;
18667 REGB0 = p1;
18668 /* ./parser//parser.nit:5573 */
18669 fra.me.REG[1] = fra.me.REG[0];
18670 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18671 ATTR_parser___ReduceAction125____goto(fra.me.REG[1]) = REGB0;
18672 stack_frame_head = fra.me.prev;
18673 init_table[itpos128] = 1;
18674 return;
18675 }
18676 void parser___ReduceAction126___action(val_t p0, val_t p1){
18677 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
18678 val_t REGB0;
18679 val_t tmp;
18680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18681 fra.me.file = LOCATE_parser;
18682 fra.me.line = 5577;
18683 fra.me.meth = LOCATE_parser___ReduceAction126___action;
18684 fra.me.has_broke = 0;
18685 fra.me.REG_size = 10;
18686 fra.me.REG[0] = NIT_NULL;
18687 fra.me.REG[1] = NIT_NULL;
18688 fra.me.REG[2] = NIT_NULL;
18689 fra.me.REG[3] = NIT_NULL;
18690 fra.me.REG[4] = NIT_NULL;
18691 fra.me.REG[5] = NIT_NULL;
18692 fra.me.REG[6] = NIT_NULL;
18693 fra.me.REG[7] = NIT_NULL;
18694 fra.me.REG[8] = NIT_NULL;
18695 fra.me.REG[9] = NIT_NULL;
18696 fra.me.REG[0] = p0;
18697 fra.me.REG[1] = p1;
18698 /* ./parser//parser.nit:5579 */
18699 fra.me.REG[2] = NIT_NULL;
18700 /* ./parser//parser.nit:5580 */
18701 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18702 /* ./parser//parser.nit:5581 */
18703 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18704 /* ./parser//parser.nit:5582 */
18705 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18706 /* ./parser//parser.nit:5583 */
18707 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18708 /* ./parser//parser.nit:5584 */
18709 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18710 /* ./parser//parser.nit:5585 */
18711 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18712 /* ./parser//parser.nit:5586 */
18713 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18714 /* ./parser//parser.nit:5587 */
18715 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18716 /* ./parser//parser.nit:5588 */
18717 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18718 /* ./parser//parser.nit:5590 */
18719 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18720 if (UNTAG_Bool(REGB0)) {
18721 } else {
18722 nit_abort("Assert failed", NULL, LOCATE_parser, 5590);
18723 }
18724 /* ./parser//parser.nit:5592 */
18725 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18726 if (UNTAG_Bool(REGB0)) {
18727 } else {
18728 nit_abort("Assert failed", NULL, LOCATE_parser, 5592);
18729 }
18730 /* ./parser//parser.nit:5594 */
18731 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18732 if (UNTAG_Bool(REGB0)) {
18733 } else {
18734 nit_abort("Assert failed", NULL, LOCATE_parser, 5594);
18735 }
18736 /* ./parser//parser.nit:5596 */
18737 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18738 if (UNTAG_Bool(REGB0)) {
18739 } else {
18740 nit_abort("Assert failed", NULL, LOCATE_parser, 5596);
18741 }
18742 /* ./parser//parser.nit:5598 */
18743 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18744 if (UNTAG_Bool(REGB0)) {
18745 } else {
18746 nit_abort("Assert failed", NULL, LOCATE_parser, 5598);
18747 }
18748 /* ./parser//parser.nit:5600 */
18749 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18750 if (UNTAG_Bool(REGB0)) {
18751 } else {
18752 nit_abort("Assert failed", NULL, LOCATE_parser, 5600);
18753 }
18754 /* ./parser//parser.nit:5602 */
18755 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18756 if (UNTAG_Bool(REGB0)) {
18757 } else {
18758 nit_abort("Assert failed", NULL, LOCATE_parser, 5602);
18759 }
18760 /* ./parser//parser.nit:5603 */
18761 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[4], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
18762 /* ./parser//parser.nit:5615 */
18763 fra.me.REG[2] = fra.me.REG[3];
18764 /* ./parser//parser.nit:5616 */
18765 REGB0 = TAG_Bool(ATTR_parser___ReduceAction126____goto(fra.me.REG[0])!=NIT_NULL);
18766 if (UNTAG_Bool(REGB0)) {
18767 } else {
18768 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5616);
18769 }
18770 REGB0 = ATTR_parser___ReduceAction126____goto(fra.me.REG[0]);
18771 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18772 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18773 stack_frame_head = fra.me.prev;
18774 return;
18775 }
18776 void parser___ReduceAction126___init(val_t p0, val_t p1, int* init_table){
18777 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction126].i;
18778 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18779 val_t REGB0;
18780 val_t tmp;
18781 if (init_table[itpos129]) return;
18782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18783 fra.me.file = LOCATE_parser;
18784 fra.me.line = 5619;
18785 fra.me.meth = LOCATE_parser___ReduceAction126___init;
18786 fra.me.has_broke = 0;
18787 fra.me.REG_size = 2;
18788 fra.me.REG[0] = NIT_NULL;
18789 fra.me.REG[1] = NIT_NULL;
18790 fra.me.REG[0] = p0;
18791 REGB0 = p1;
18792 /* ./parser//parser.nit:5619 */
18793 fra.me.REG[1] = fra.me.REG[0];
18794 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18795 ATTR_parser___ReduceAction126____goto(fra.me.REG[1]) = REGB0;
18796 stack_frame_head = fra.me.prev;
18797 init_table[itpos129] = 1;
18798 return;
18799 }
18800 void parser___ReduceAction127___action(val_t p0, val_t p1){
18801 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
18802 val_t REGB0;
18803 val_t tmp;
18804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18805 fra.me.file = LOCATE_parser;
18806 fra.me.line = 5623;
18807 fra.me.meth = LOCATE_parser___ReduceAction127___action;
18808 fra.me.has_broke = 0;
18809 fra.me.REG_size = 10;
18810 fra.me.REG[0] = NIT_NULL;
18811 fra.me.REG[1] = NIT_NULL;
18812 fra.me.REG[2] = NIT_NULL;
18813 fra.me.REG[3] = NIT_NULL;
18814 fra.me.REG[4] = NIT_NULL;
18815 fra.me.REG[5] = NIT_NULL;
18816 fra.me.REG[6] = NIT_NULL;
18817 fra.me.REG[7] = NIT_NULL;
18818 fra.me.REG[8] = NIT_NULL;
18819 fra.me.REG[9] = NIT_NULL;
18820 fra.me.REG[0] = p0;
18821 fra.me.REG[1] = p1;
18822 /* ./parser//parser.nit:5625 */
18823 fra.me.REG[2] = NIT_NULL;
18824 /* ./parser//parser.nit:5626 */
18825 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18826 /* ./parser//parser.nit:5627 */
18827 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18828 /* ./parser//parser.nit:5628 */
18829 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18830 /* ./parser//parser.nit:5629 */
18831 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18832 /* ./parser//parser.nit:5630 */
18833 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18834 /* ./parser//parser.nit:5631 */
18835 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18836 /* ./parser//parser.nit:5632 */
18837 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18838 /* ./parser//parser.nit:5633 */
18839 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18840 /* ./parser//parser.nit:5634 */
18841 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18842 /* ./parser//parser.nit:5636 */
18843 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18844 if (UNTAG_Bool(REGB0)) {
18845 } else {
18846 nit_abort("Assert failed", NULL, LOCATE_parser, 5636);
18847 }
18848 /* ./parser//parser.nit:5638 */
18849 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18850 if (UNTAG_Bool(REGB0)) {
18851 } else {
18852 nit_abort("Assert failed", NULL, LOCATE_parser, 5638);
18853 }
18854 /* ./parser//parser.nit:5640 */
18855 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18856 if (UNTAG_Bool(REGB0)) {
18857 } else {
18858 nit_abort("Assert failed", NULL, LOCATE_parser, 5640);
18859 }
18860 /* ./parser//parser.nit:5642 */
18861 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18862 if (UNTAG_Bool(REGB0)) {
18863 } else {
18864 nit_abort("Assert failed", NULL, LOCATE_parser, 5642);
18865 }
18866 /* ./parser//parser.nit:5644 */
18867 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18868 if (UNTAG_Bool(REGB0)) {
18869 } else {
18870 nit_abort("Assert failed", NULL, LOCATE_parser, 5644);
18871 }
18872 /* ./parser//parser.nit:5646 */
18873 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18874 if (UNTAG_Bool(REGB0)) {
18875 } else {
18876 nit_abort("Assert failed", NULL, LOCATE_parser, 5646);
18877 }
18878 /* ./parser//parser.nit:5648 */
18879 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18880 if (UNTAG_Bool(REGB0)) {
18881 } else {
18882 nit_abort("Assert failed", NULL, LOCATE_parser, 5648);
18883 }
18884 /* ./parser//parser.nit:5649 */
18885 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[3]);
18886 /* ./parser//parser.nit:5661 */
18887 fra.me.REG[2] = fra.me.REG[3];
18888 /* ./parser//parser.nit:5662 */
18889 REGB0 = TAG_Bool(ATTR_parser___ReduceAction127____goto(fra.me.REG[0])!=NIT_NULL);
18890 if (UNTAG_Bool(REGB0)) {
18891 } else {
18892 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5662);
18893 }
18894 REGB0 = ATTR_parser___ReduceAction127____goto(fra.me.REG[0]);
18895 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18896 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18897 stack_frame_head = fra.me.prev;
18898 return;
18899 }
18900 void parser___ReduceAction127___init(val_t p0, val_t p1, int* init_table){
18901 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction127].i;
18902 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18903 val_t REGB0;
18904 val_t tmp;
18905 if (init_table[itpos130]) return;
18906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18907 fra.me.file = LOCATE_parser;
18908 fra.me.line = 5665;
18909 fra.me.meth = LOCATE_parser___ReduceAction127___init;
18910 fra.me.has_broke = 0;
18911 fra.me.REG_size = 2;
18912 fra.me.REG[0] = NIT_NULL;
18913 fra.me.REG[1] = NIT_NULL;
18914 fra.me.REG[0] = p0;
18915 REGB0 = p1;
18916 /* ./parser//parser.nit:5665 */
18917 fra.me.REG[1] = fra.me.REG[0];
18918 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18919 ATTR_parser___ReduceAction127____goto(fra.me.REG[1]) = REGB0;
18920 stack_frame_head = fra.me.prev;
18921 init_table[itpos130] = 1;
18922 return;
18923 }
18924 void parser___ReduceAction128___action(val_t p0, val_t p1){
18925 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
18926 val_t REGB0;
18927 val_t tmp;
18928 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18929 fra.me.file = LOCATE_parser;
18930 fra.me.line = 5669;
18931 fra.me.meth = LOCATE_parser___ReduceAction128___action;
18932 fra.me.has_broke = 0;
18933 fra.me.REG_size = 11;
18934 fra.me.REG[0] = NIT_NULL;
18935 fra.me.REG[1] = NIT_NULL;
18936 fra.me.REG[2] = NIT_NULL;
18937 fra.me.REG[3] = NIT_NULL;
18938 fra.me.REG[4] = NIT_NULL;
18939 fra.me.REG[5] = NIT_NULL;
18940 fra.me.REG[6] = NIT_NULL;
18941 fra.me.REG[7] = NIT_NULL;
18942 fra.me.REG[8] = NIT_NULL;
18943 fra.me.REG[9] = NIT_NULL;
18944 fra.me.REG[10] = NIT_NULL;
18945 fra.me.REG[0] = p0;
18946 fra.me.REG[1] = p1;
18947 /* ./parser//parser.nit:5671 */
18948 fra.me.REG[2] = NIT_NULL;
18949 /* ./parser//parser.nit:5672 */
18950 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18951 /* ./parser//parser.nit:5673 */
18952 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18953 /* ./parser//parser.nit:5674 */
18954 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18955 /* ./parser//parser.nit:5675 */
18956 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18957 /* ./parser//parser.nit:5676 */
18958 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18959 /* ./parser//parser.nit:5677 */
18960 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18961 /* ./parser//parser.nit:5678 */
18962 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18963 /* ./parser//parser.nit:5679 */
18964 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18965 /* ./parser//parser.nit:5680 */
18966 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18967 /* ./parser//parser.nit:5681 */
18968 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18969 /* ./parser//parser.nit:5683 */
18970 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18971 if (UNTAG_Bool(REGB0)) {
18972 } else {
18973 nit_abort("Assert failed", NULL, LOCATE_parser, 5683);
18974 }
18975 /* ./parser//parser.nit:5685 */
18976 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18977 if (UNTAG_Bool(REGB0)) {
18978 } else {
18979 nit_abort("Assert failed", NULL, LOCATE_parser, 5685);
18980 }
18981 /* ./parser//parser.nit:5687 */
18982 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18983 if (UNTAG_Bool(REGB0)) {
18984 } else {
18985 nit_abort("Assert failed", NULL, LOCATE_parser, 5687);
18986 }
18987 /* ./parser//parser.nit:5689 */
18988 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18989 if (UNTAG_Bool(REGB0)) {
18990 } else {
18991 nit_abort("Assert failed", NULL, LOCATE_parser, 5689);
18992 }
18993 /* ./parser//parser.nit:5691 */
18994 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18995 if (UNTAG_Bool(REGB0)) {
18996 } else {
18997 nit_abort("Assert failed", NULL, LOCATE_parser, 5691);
18998 }
18999 /* ./parser//parser.nit:5693 */
19000 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
19001 if (UNTAG_Bool(REGB0)) {
19002 } else {
19003 nit_abort("Assert failed", NULL, LOCATE_parser, 5693);
19004 }
19005 /* ./parser//parser.nit:5695 */
19006 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
19007 if (UNTAG_Bool(REGB0)) {
19008 } else {
19009 nit_abort("Assert failed", NULL, LOCATE_parser, 5695);
19010 }
19011 /* ./parser//parser.nit:5697 */
19012 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19013 if (UNTAG_Bool(REGB0)) {
19014 } else {
19015 nit_abort("Assert failed", NULL, LOCATE_parser, 5697);
19016 }
19017 /* ./parser//parser.nit:5698 */
19018 fra.me.REG[3] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], NIT_NULL, fra.me.REG[4], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[3]);
19019 /* ./parser//parser.nit:5710 */
19020 fra.me.REG[2] = fra.me.REG[3];
19021 /* ./parser//parser.nit:5711 */
19022 REGB0 = TAG_Bool(ATTR_parser___ReduceAction128____goto(fra.me.REG[0])!=NIT_NULL);
19023 if (UNTAG_Bool(REGB0)) {
19024 } else {
19025 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5711);
19026 }
19027 REGB0 = ATTR_parser___ReduceAction128____goto(fra.me.REG[0]);
19028 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19029 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19030 stack_frame_head = fra.me.prev;
19031 return;
19032 }
19033 void parser___ReduceAction128___init(val_t p0, val_t p1, int* init_table){
19034 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction128].i;
19035 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19036 val_t REGB0;
19037 val_t tmp;
19038 if (init_table[itpos131]) return;
19039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19040 fra.me.file = LOCATE_parser;
19041 fra.me.line = 5714;
19042 fra.me.meth = LOCATE_parser___ReduceAction128___init;
19043 fra.me.has_broke = 0;
19044 fra.me.REG_size = 2;
19045 fra.me.REG[0] = NIT_NULL;
19046 fra.me.REG[1] = NIT_NULL;
19047 fra.me.REG[0] = p0;
19048 REGB0 = p1;
19049 /* ./parser//parser.nit:5714 */
19050 fra.me.REG[1] = fra.me.REG[0];
19051 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19052 ATTR_parser___ReduceAction128____goto(fra.me.REG[1]) = REGB0;
19053 stack_frame_head = fra.me.prev;
19054 init_table[itpos131] = 1;
19055 return;
19056 }
19057 void parser___ReduceAction129___action(val_t p0, val_t p1){
19058 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19059 val_t REGB0;
19060 val_t tmp;
19061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19062 fra.me.file = LOCATE_parser;
19063 fra.me.line = 5718;
19064 fra.me.meth = LOCATE_parser___ReduceAction129___action;
19065 fra.me.has_broke = 0;
19066 fra.me.REG_size = 8;
19067 fra.me.REG[0] = NIT_NULL;
19068 fra.me.REG[1] = NIT_NULL;
19069 fra.me.REG[2] = NIT_NULL;
19070 fra.me.REG[3] = NIT_NULL;
19071 fra.me.REG[4] = NIT_NULL;
19072 fra.me.REG[5] = NIT_NULL;
19073 fra.me.REG[6] = NIT_NULL;
19074 fra.me.REG[7] = NIT_NULL;
19075 fra.me.REG[0] = p0;
19076 fra.me.REG[1] = p1;
19077 /* ./parser//parser.nit:5720 */
19078 fra.me.REG[2] = NIT_NULL;
19079 /* ./parser//parser.nit:5721 */
19080 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19081 /* ./parser//parser.nit:5722 */
19082 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19083 /* ./parser//parser.nit:5723 */
19084 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19085 /* ./parser//parser.nit:5724 */
19086 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19087 /* ./parser//parser.nit:5725 */
19088 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19089 /* ./parser//parser.nit:5726 */
19090 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19091 /* ./parser//parser.nit:5728 */
19092 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19093 if (UNTAG_Bool(REGB0)) {
19094 } else {
19095 nit_abort("Assert failed", NULL, LOCATE_parser, 5728);
19096 }
19097 /* ./parser//parser.nit:5730 */
19098 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19099 if (UNTAG_Bool(REGB0)) {
19100 } else {
19101 nit_abort("Assert failed", NULL, LOCATE_parser, 5730);
19102 }
19103 /* ./parser//parser.nit:5732 */
19104 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19105 if (UNTAG_Bool(REGB0)) {
19106 } else {
19107 nit_abort("Assert failed", NULL, LOCATE_parser, 5732);
19108 }
19109 /* ./parser//parser.nit:5734 */
19110 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19111 if (UNTAG_Bool(REGB0)) {
19112 } else {
19113 nit_abort("Assert failed", NULL, LOCATE_parser, 5734);
19114 }
19115 /* ./parser//parser.nit:5736 */
19116 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19117 if (UNTAG_Bool(REGB0)) {
19118 } else {
19119 nit_abort("Assert failed", NULL, LOCATE_parser, 5736);
19120 }
19121 /* ./parser//parser.nit:5737 */
19122 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
19123 /* ./parser//parser.nit:5746 */
19124 fra.me.REG[2] = fra.me.REG[3];
19125 /* ./parser//parser.nit:5747 */
19126 REGB0 = TAG_Bool(ATTR_parser___ReduceAction129____goto(fra.me.REG[0])!=NIT_NULL);
19127 if (UNTAG_Bool(REGB0)) {
19128 } else {
19129 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5747);
19130 }
19131 REGB0 = ATTR_parser___ReduceAction129____goto(fra.me.REG[0]);
19132 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19133 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19134 stack_frame_head = fra.me.prev;
19135 return;
19136 }
19137 void parser___ReduceAction129___init(val_t p0, val_t p1, int* init_table){
19138 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction129].i;
19139 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19140 val_t REGB0;
19141 val_t tmp;
19142 if (init_table[itpos132]) return;
19143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19144 fra.me.file = LOCATE_parser;
19145 fra.me.line = 5750;
19146 fra.me.meth = LOCATE_parser___ReduceAction129___init;
19147 fra.me.has_broke = 0;
19148 fra.me.REG_size = 2;
19149 fra.me.REG[0] = NIT_NULL;
19150 fra.me.REG[1] = NIT_NULL;
19151 fra.me.REG[0] = p0;
19152 REGB0 = p1;
19153 /* ./parser//parser.nit:5750 */
19154 fra.me.REG[1] = fra.me.REG[0];
19155 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19156 ATTR_parser___ReduceAction129____goto(fra.me.REG[1]) = REGB0;
19157 stack_frame_head = fra.me.prev;
19158 init_table[itpos132] = 1;
19159 return;
19160 }
19161 void parser___ReduceAction130___action(val_t p0, val_t p1){
19162 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19163 val_t REGB0;
19164 val_t tmp;
19165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19166 fra.me.file = LOCATE_parser;
19167 fra.me.line = 5754;
19168 fra.me.meth = LOCATE_parser___ReduceAction130___action;
19169 fra.me.has_broke = 0;
19170 fra.me.REG_size = 9;
19171 fra.me.REG[0] = NIT_NULL;
19172 fra.me.REG[1] = NIT_NULL;
19173 fra.me.REG[2] = NIT_NULL;
19174 fra.me.REG[3] = NIT_NULL;
19175 fra.me.REG[4] = NIT_NULL;
19176 fra.me.REG[5] = NIT_NULL;
19177 fra.me.REG[6] = NIT_NULL;
19178 fra.me.REG[7] = NIT_NULL;
19179 fra.me.REG[8] = NIT_NULL;
19180 fra.me.REG[0] = p0;
19181 fra.me.REG[1] = p1;
19182 /* ./parser//parser.nit:5756 */
19183 fra.me.REG[2] = NIT_NULL;
19184 /* ./parser//parser.nit:5757 */
19185 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19186 /* ./parser//parser.nit:5758 */
19187 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19188 /* ./parser//parser.nit:5759 */
19189 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19190 /* ./parser//parser.nit:5760 */
19191 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19192 /* ./parser//parser.nit:5761 */
19193 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19194 /* ./parser//parser.nit:5762 */
19195 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19196 /* ./parser//parser.nit:5763 */
19197 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19198 /* ./parser//parser.nit:5765 */
19199 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19200 if (UNTAG_Bool(REGB0)) {
19201 } else {
19202 nit_abort("Assert failed", NULL, LOCATE_parser, 5765);
19203 }
19204 /* ./parser//parser.nit:5767 */
19205 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19206 if (UNTAG_Bool(REGB0)) {
19207 } else {
19208 nit_abort("Assert failed", NULL, LOCATE_parser, 5767);
19209 }
19210 /* ./parser//parser.nit:5769 */
19211 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19212 if (UNTAG_Bool(REGB0)) {
19213 } else {
19214 nit_abort("Assert failed", NULL, LOCATE_parser, 5769);
19215 }
19216 /* ./parser//parser.nit:5771 */
19217 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19218 if (UNTAG_Bool(REGB0)) {
19219 } else {
19220 nit_abort("Assert failed", NULL, LOCATE_parser, 5771);
19221 }
19222 /* ./parser//parser.nit:5773 */
19223 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19224 if (UNTAG_Bool(REGB0)) {
19225 } else {
19226 nit_abort("Assert failed", NULL, LOCATE_parser, 5773);
19227 }
19228 /* ./parser//parser.nit:5775 */
19229 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19230 if (UNTAG_Bool(REGB0)) {
19231 } else {
19232 nit_abort("Assert failed", NULL, LOCATE_parser, 5775);
19233 }
19234 /* ./parser//parser.nit:5776 */
19235 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
19236 /* ./parser//parser.nit:5785 */
19237 fra.me.REG[2] = fra.me.REG[3];
19238 /* ./parser//parser.nit:5786 */
19239 REGB0 = TAG_Bool(ATTR_parser___ReduceAction130____goto(fra.me.REG[0])!=NIT_NULL);
19240 if (UNTAG_Bool(REGB0)) {
19241 } else {
19242 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5786);
19243 }
19244 REGB0 = ATTR_parser___ReduceAction130____goto(fra.me.REG[0]);
19245 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19246 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19247 stack_frame_head = fra.me.prev;
19248 return;
19249 }
19250 void parser___ReduceAction130___init(val_t p0, val_t p1, int* init_table){
19251 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction130].i;
19252 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19253 val_t REGB0;
19254 val_t tmp;
19255 if (init_table[itpos133]) return;
19256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19257 fra.me.file = LOCATE_parser;
19258 fra.me.line = 5789;
19259 fra.me.meth = LOCATE_parser___ReduceAction130___init;
19260 fra.me.has_broke = 0;
19261 fra.me.REG_size = 2;
19262 fra.me.REG[0] = NIT_NULL;
19263 fra.me.REG[1] = NIT_NULL;
19264 fra.me.REG[0] = p0;
19265 REGB0 = p1;
19266 /* ./parser//parser.nit:5789 */
19267 fra.me.REG[1] = fra.me.REG[0];
19268 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19269 ATTR_parser___ReduceAction130____goto(fra.me.REG[1]) = REGB0;
19270 stack_frame_head = fra.me.prev;
19271 init_table[itpos133] = 1;
19272 return;
19273 }
19274 void parser___ReduceAction131___action(val_t p0, val_t p1){
19275 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19276 val_t REGB0;
19277 val_t tmp;
19278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19279 fra.me.file = LOCATE_parser;
19280 fra.me.line = 5793;
19281 fra.me.meth = LOCATE_parser___ReduceAction131___action;
19282 fra.me.has_broke = 0;
19283 fra.me.REG_size = 9;
19284 fra.me.REG[0] = NIT_NULL;
19285 fra.me.REG[1] = NIT_NULL;
19286 fra.me.REG[2] = NIT_NULL;
19287 fra.me.REG[3] = NIT_NULL;
19288 fra.me.REG[4] = NIT_NULL;
19289 fra.me.REG[5] = NIT_NULL;
19290 fra.me.REG[6] = NIT_NULL;
19291 fra.me.REG[7] = NIT_NULL;
19292 fra.me.REG[8] = NIT_NULL;
19293 fra.me.REG[0] = p0;
19294 fra.me.REG[1] = p1;
19295 /* ./parser//parser.nit:5795 */
19296 fra.me.REG[2] = NIT_NULL;
19297 /* ./parser//parser.nit:5796 */
19298 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19299 /* ./parser//parser.nit:5797 */
19300 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19301 /* ./parser//parser.nit:5798 */
19302 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19303 /* ./parser//parser.nit:5799 */
19304 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19305 /* ./parser//parser.nit:5800 */
19306 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19307 /* ./parser//parser.nit:5801 */
19308 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19309 /* ./parser//parser.nit:5802 */
19310 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19311 /* ./parser//parser.nit:5804 */
19312 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19313 if (UNTAG_Bool(REGB0)) {
19314 } else {
19315 nit_abort("Assert failed", NULL, LOCATE_parser, 5804);
19316 }
19317 /* ./parser//parser.nit:5806 */
19318 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19319 if (UNTAG_Bool(REGB0)) {
19320 } else {
19321 nit_abort("Assert failed", NULL, LOCATE_parser, 5806);
19322 }
19323 /* ./parser//parser.nit:5808 */
19324 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19325 if (UNTAG_Bool(REGB0)) {
19326 } else {
19327 nit_abort("Assert failed", NULL, LOCATE_parser, 5808);
19328 }
19329 /* ./parser//parser.nit:5810 */
19330 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19331 if (UNTAG_Bool(REGB0)) {
19332 } else {
19333 nit_abort("Assert failed", NULL, LOCATE_parser, 5810);
19334 }
19335 /* ./parser//parser.nit:5812 */
19336 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19337 if (UNTAG_Bool(REGB0)) {
19338 } else {
19339 nit_abort("Assert failed", NULL, LOCATE_parser, 5812);
19340 }
19341 /* ./parser//parser.nit:5814 */
19342 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19343 if (UNTAG_Bool(REGB0)) {
19344 } else {
19345 nit_abort("Assert failed", NULL, LOCATE_parser, 5814);
19346 }
19347 /* ./parser//parser.nit:5815 */
19348 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
19349 /* ./parser//parser.nit:5824 */
19350 fra.me.REG[2] = fra.me.REG[3];
19351 /* ./parser//parser.nit:5825 */
19352 REGB0 = TAG_Bool(ATTR_parser___ReduceAction131____goto(fra.me.REG[0])!=NIT_NULL);
19353 if (UNTAG_Bool(REGB0)) {
19354 } else {
19355 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5825);
19356 }
19357 REGB0 = ATTR_parser___ReduceAction131____goto(fra.me.REG[0]);
19358 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19359 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19360 stack_frame_head = fra.me.prev;
19361 return;
19362 }
19363 void parser___ReduceAction131___init(val_t p0, val_t p1, int* init_table){
19364 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction131].i;
19365 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19366 val_t REGB0;
19367 val_t tmp;
19368 if (init_table[itpos134]) return;
19369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19370 fra.me.file = LOCATE_parser;
19371 fra.me.line = 5828;
19372 fra.me.meth = LOCATE_parser___ReduceAction131___init;
19373 fra.me.has_broke = 0;
19374 fra.me.REG_size = 2;
19375 fra.me.REG[0] = NIT_NULL;
19376 fra.me.REG[1] = NIT_NULL;
19377 fra.me.REG[0] = p0;
19378 REGB0 = p1;
19379 /* ./parser//parser.nit:5828 */
19380 fra.me.REG[1] = fra.me.REG[0];
19381 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19382 ATTR_parser___ReduceAction131____goto(fra.me.REG[1]) = REGB0;
19383 stack_frame_head = fra.me.prev;
19384 init_table[itpos134] = 1;
19385 return;
19386 }
19387 void parser___ReduceAction132___action(val_t p0, val_t p1){
19388 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
19389 val_t REGB0;
19390 val_t tmp;
19391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19392 fra.me.file = LOCATE_parser;
19393 fra.me.line = 5832;
19394 fra.me.meth = LOCATE_parser___ReduceAction132___action;
19395 fra.me.has_broke = 0;
19396 fra.me.REG_size = 10;
19397 fra.me.REG[0] = NIT_NULL;
19398 fra.me.REG[1] = NIT_NULL;
19399 fra.me.REG[2] = NIT_NULL;
19400 fra.me.REG[3] = NIT_NULL;
19401 fra.me.REG[4] = NIT_NULL;
19402 fra.me.REG[5] = NIT_NULL;
19403 fra.me.REG[6] = NIT_NULL;
19404 fra.me.REG[7] = NIT_NULL;
19405 fra.me.REG[8] = NIT_NULL;
19406 fra.me.REG[9] = NIT_NULL;
19407 fra.me.REG[0] = p0;
19408 fra.me.REG[1] = p1;
19409 /* ./parser//parser.nit:5834 */
19410 fra.me.REG[2] = NIT_NULL;
19411 /* ./parser//parser.nit:5835 */
19412 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19413 /* ./parser//parser.nit:5836 */
19414 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19415 /* ./parser//parser.nit:5837 */
19416 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19417 /* ./parser//parser.nit:5838 */
19418 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19419 /* ./parser//parser.nit:5839 */
19420 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19421 /* ./parser//parser.nit:5840 */
19422 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19423 /* ./parser//parser.nit:5841 */
19424 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19425 /* ./parser//parser.nit:5842 */
19426 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19427 /* ./parser//parser.nit:5844 */
19428 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19429 if (UNTAG_Bool(REGB0)) {
19430 } else {
19431 nit_abort("Assert failed", NULL, LOCATE_parser, 5844);
19432 }
19433 /* ./parser//parser.nit:5846 */
19434 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19435 if (UNTAG_Bool(REGB0)) {
19436 } else {
19437 nit_abort("Assert failed", NULL, LOCATE_parser, 5846);
19438 }
19439 /* ./parser//parser.nit:5848 */
19440 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19441 if (UNTAG_Bool(REGB0)) {
19442 } else {
19443 nit_abort("Assert failed", NULL, LOCATE_parser, 5848);
19444 }
19445 /* ./parser//parser.nit:5850 */
19446 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19447 if (UNTAG_Bool(REGB0)) {
19448 } else {
19449 nit_abort("Assert failed", NULL, LOCATE_parser, 5850);
19450 }
19451 /* ./parser//parser.nit:5852 */
19452 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19453 if (UNTAG_Bool(REGB0)) {
19454 } else {
19455 nit_abort("Assert failed", NULL, LOCATE_parser, 5852);
19456 }
19457 /* ./parser//parser.nit:5854 */
19458 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19459 if (UNTAG_Bool(REGB0)) {
19460 } else {
19461 nit_abort("Assert failed", NULL, LOCATE_parser, 5854);
19462 }
19463 /* ./parser//parser.nit:5856 */
19464 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19465 if (UNTAG_Bool(REGB0)) {
19466 } else {
19467 nit_abort("Assert failed", NULL, LOCATE_parser, 5856);
19468 }
19469 /* ./parser//parser.nit:5857 */
19470 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
19471 /* ./parser//parser.nit:5866 */
19472 fra.me.REG[2] = fra.me.REG[3];
19473 /* ./parser//parser.nit:5867 */
19474 REGB0 = TAG_Bool(ATTR_parser___ReduceAction132____goto(fra.me.REG[0])!=NIT_NULL);
19475 if (UNTAG_Bool(REGB0)) {
19476 } else {
19477 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5867);
19478 }
19479 REGB0 = ATTR_parser___ReduceAction132____goto(fra.me.REG[0]);
19480 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19481 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19482 stack_frame_head = fra.me.prev;
19483 return;
19484 }
19485 void parser___ReduceAction132___init(val_t p0, val_t p1, int* init_table){
19486 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction132].i;
19487 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19488 val_t REGB0;
19489 val_t tmp;
19490 if (init_table[itpos135]) return;
19491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19492 fra.me.file = LOCATE_parser;
19493 fra.me.line = 5870;
19494 fra.me.meth = LOCATE_parser___ReduceAction132___init;
19495 fra.me.has_broke = 0;
19496 fra.me.REG_size = 2;
19497 fra.me.REG[0] = NIT_NULL;
19498 fra.me.REG[1] = NIT_NULL;
19499 fra.me.REG[0] = p0;
19500 REGB0 = p1;
19501 /* ./parser//parser.nit:5870 */
19502 fra.me.REG[1] = fra.me.REG[0];
19503 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19504 ATTR_parser___ReduceAction132____goto(fra.me.REG[1]) = REGB0;
19505 stack_frame_head = fra.me.prev;
19506 init_table[itpos135] = 1;
19507 return;
19508 }
19509 void parser___ReduceAction133___action(val_t p0, val_t p1){
19510 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19511 val_t REGB0;
19512 val_t tmp;
19513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19514 fra.me.file = LOCATE_parser;
19515 fra.me.line = 5874;
19516 fra.me.meth = LOCATE_parser___ReduceAction133___action;
19517 fra.me.has_broke = 0;
19518 fra.me.REG_size = 8;
19519 fra.me.REG[0] = NIT_NULL;
19520 fra.me.REG[1] = NIT_NULL;
19521 fra.me.REG[2] = NIT_NULL;
19522 fra.me.REG[3] = NIT_NULL;
19523 fra.me.REG[4] = NIT_NULL;
19524 fra.me.REG[5] = NIT_NULL;
19525 fra.me.REG[6] = NIT_NULL;
19526 fra.me.REG[7] = NIT_NULL;
19527 fra.me.REG[0] = p0;
19528 fra.me.REG[1] = p1;
19529 /* ./parser//parser.nit:5876 */
19530 fra.me.REG[2] = NIT_NULL;
19531 /* ./parser//parser.nit:5877 */
19532 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19533 /* ./parser//parser.nit:5878 */
19534 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19535 /* ./parser//parser.nit:5879 */
19536 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19537 /* ./parser//parser.nit:5880 */
19538 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19539 /* ./parser//parser.nit:5881 */
19540 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19541 /* ./parser//parser.nit:5882 */
19542 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19543 /* ./parser//parser.nit:5883 */
19544 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19545 /* ./parser//parser.nit:5885 */
19546 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19547 if (UNTAG_Bool(REGB0)) {
19548 } else {
19549 nit_abort("Assert failed", NULL, LOCATE_parser, 5885);
19550 }
19551 /* ./parser//parser.nit:5887 */
19552 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19553 if (UNTAG_Bool(REGB0)) {
19554 } else {
19555 nit_abort("Assert failed", NULL, LOCATE_parser, 5887);
19556 }
19557 /* ./parser//parser.nit:5889 */
19558 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19559 if (UNTAG_Bool(REGB0)) {
19560 } else {
19561 nit_abort("Assert failed", NULL, LOCATE_parser, 5889);
19562 }
19563 /* ./parser//parser.nit:5891 */
19564 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19565 if (UNTAG_Bool(REGB0)) {
19566 } else {
19567 nit_abort("Assert failed", NULL, LOCATE_parser, 5891);
19568 }
19569 /* ./parser//parser.nit:5893 */
19570 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19571 if (UNTAG_Bool(REGB0)) {
19572 } else {
19573 nit_abort("Assert failed", NULL, LOCATE_parser, 5893);
19574 }
19575 /* ./parser//parser.nit:5894 */
19576 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
19577 /* ./parser//parser.nit:5903 */
19578 fra.me.REG[2] = fra.me.REG[3];
19579 /* ./parser//parser.nit:5904 */
19580 REGB0 = TAG_Bool(ATTR_parser___ReduceAction133____goto(fra.me.REG[0])!=NIT_NULL);
19581 if (UNTAG_Bool(REGB0)) {
19582 } else {
19583 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5904);
19584 }
19585 REGB0 = ATTR_parser___ReduceAction133____goto(fra.me.REG[0]);
19586 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19587 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19588 stack_frame_head = fra.me.prev;
19589 return;
19590 }
19591 void parser___ReduceAction133___init(val_t p0, val_t p1, int* init_table){
19592 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction133].i;
19593 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19594 val_t REGB0;
19595 val_t tmp;
19596 if (init_table[itpos136]) return;
19597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19598 fra.me.file = LOCATE_parser;
19599 fra.me.line = 5907;
19600 fra.me.meth = LOCATE_parser___ReduceAction133___init;
19601 fra.me.has_broke = 0;
19602 fra.me.REG_size = 2;
19603 fra.me.REG[0] = NIT_NULL;
19604 fra.me.REG[1] = NIT_NULL;
19605 fra.me.REG[0] = p0;
19606 REGB0 = p1;
19607 /* ./parser//parser.nit:5907 */
19608 fra.me.REG[1] = fra.me.REG[0];
19609 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19610 ATTR_parser___ReduceAction133____goto(fra.me.REG[1]) = REGB0;
19611 stack_frame_head = fra.me.prev;
19612 init_table[itpos136] = 1;
19613 return;
19614 }
19615 void parser___ReduceAction134___action(val_t p0, val_t p1){
19616 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19617 val_t REGB0;
19618 val_t tmp;
19619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19620 fra.me.file = LOCATE_parser;
19621 fra.me.line = 5911;
19622 fra.me.meth = LOCATE_parser___ReduceAction134___action;
19623 fra.me.has_broke = 0;
19624 fra.me.REG_size = 9;
19625 fra.me.REG[0] = NIT_NULL;
19626 fra.me.REG[1] = NIT_NULL;
19627 fra.me.REG[2] = NIT_NULL;
19628 fra.me.REG[3] = NIT_NULL;
19629 fra.me.REG[4] = NIT_NULL;
19630 fra.me.REG[5] = NIT_NULL;
19631 fra.me.REG[6] = NIT_NULL;
19632 fra.me.REG[7] = NIT_NULL;
19633 fra.me.REG[8] = NIT_NULL;
19634 fra.me.REG[0] = p0;
19635 fra.me.REG[1] = p1;
19636 /* ./parser//parser.nit:5913 */
19637 fra.me.REG[2] = NIT_NULL;
19638 /* ./parser//parser.nit:5914 */
19639 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19640 /* ./parser//parser.nit:5915 */
19641 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19642 /* ./parser//parser.nit:5916 */
19643 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19644 /* ./parser//parser.nit:5917 */
19645 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19646 /* ./parser//parser.nit:5918 */
19647 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19648 /* ./parser//parser.nit:5919 */
19649 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19650 /* ./parser//parser.nit:5920 */
19651 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19652 /* ./parser//parser.nit:5921 */
19653 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19654 /* ./parser//parser.nit:5923 */
19655 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19656 if (UNTAG_Bool(REGB0)) {
19657 } else {
19658 nit_abort("Assert failed", NULL, LOCATE_parser, 5923);
19659 }
19660 /* ./parser//parser.nit:5925 */
19661 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19662 if (UNTAG_Bool(REGB0)) {
19663 } else {
19664 nit_abort("Assert failed", NULL, LOCATE_parser, 5925);
19665 }
19666 /* ./parser//parser.nit:5927 */
19667 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19668 if (UNTAG_Bool(REGB0)) {
19669 } else {
19670 nit_abort("Assert failed", NULL, LOCATE_parser, 5927);
19671 }
19672 /* ./parser//parser.nit:5929 */
19673 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19674 if (UNTAG_Bool(REGB0)) {
19675 } else {
19676 nit_abort("Assert failed", NULL, LOCATE_parser, 5929);
19677 }
19678 /* ./parser//parser.nit:5931 */
19679 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19680 if (UNTAG_Bool(REGB0)) {
19681 } else {
19682 nit_abort("Assert failed", NULL, LOCATE_parser, 5931);
19683 }
19684 /* ./parser//parser.nit:5933 */
19685 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19686 if (UNTAG_Bool(REGB0)) {
19687 } else {
19688 nit_abort("Assert failed", NULL, LOCATE_parser, 5933);
19689 }
19690 /* ./parser//parser.nit:5934 */
19691 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
19692 /* ./parser//parser.nit:5943 */
19693 fra.me.REG[2] = fra.me.REG[3];
19694 /* ./parser//parser.nit:5944 */
19695 REGB0 = TAG_Bool(ATTR_parser___ReduceAction134____goto(fra.me.REG[0])!=NIT_NULL);
19696 if (UNTAG_Bool(REGB0)) {
19697 } else {
19698 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5944);
19699 }
19700 REGB0 = ATTR_parser___ReduceAction134____goto(fra.me.REG[0]);
19701 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19702 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19703 stack_frame_head = fra.me.prev;
19704 return;
19705 }
19706 void parser___ReduceAction134___init(val_t p0, val_t p1, int* init_table){
19707 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction134].i;
19708 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19709 val_t REGB0;
19710 val_t tmp;
19711 if (init_table[itpos137]) return;
19712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19713 fra.me.file = LOCATE_parser;
19714 fra.me.line = 5947;
19715 fra.me.meth = LOCATE_parser___ReduceAction134___init;
19716 fra.me.has_broke = 0;
19717 fra.me.REG_size = 2;
19718 fra.me.REG[0] = NIT_NULL;
19719 fra.me.REG[1] = NIT_NULL;
19720 fra.me.REG[0] = p0;
19721 REGB0 = p1;
19722 /* ./parser//parser.nit:5947 */
19723 fra.me.REG[1] = fra.me.REG[0];
19724 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19725 ATTR_parser___ReduceAction134____goto(fra.me.REG[1]) = REGB0;
19726 stack_frame_head = fra.me.prev;
19727 init_table[itpos137] = 1;
19728 return;
19729 }
19730 void parser___ReduceAction135___action(val_t p0, val_t p1){
19731 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19732 val_t REGB0;
19733 val_t tmp;
19734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19735 fra.me.file = LOCATE_parser;
19736 fra.me.line = 5951;
19737 fra.me.meth = LOCATE_parser___ReduceAction135___action;
19738 fra.me.has_broke = 0;
19739 fra.me.REG_size = 9;
19740 fra.me.REG[0] = NIT_NULL;
19741 fra.me.REG[1] = NIT_NULL;
19742 fra.me.REG[2] = NIT_NULL;
19743 fra.me.REG[3] = NIT_NULL;
19744 fra.me.REG[4] = NIT_NULL;
19745 fra.me.REG[5] = NIT_NULL;
19746 fra.me.REG[6] = NIT_NULL;
19747 fra.me.REG[7] = NIT_NULL;
19748 fra.me.REG[8] = NIT_NULL;
19749 fra.me.REG[0] = p0;
19750 fra.me.REG[1] = p1;
19751 /* ./parser//parser.nit:5953 */
19752 fra.me.REG[2] = NIT_NULL;
19753 /* ./parser//parser.nit:5954 */
19754 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19755 /* ./parser//parser.nit:5955 */
19756 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19757 /* ./parser//parser.nit:5956 */
19758 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19759 /* ./parser//parser.nit:5957 */
19760 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19761 /* ./parser//parser.nit:5958 */
19762 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19763 /* ./parser//parser.nit:5959 */
19764 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19765 /* ./parser//parser.nit:5960 */
19766 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19767 /* ./parser//parser.nit:5961 */
19768 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19769 /* ./parser//parser.nit:5963 */
19770 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19771 if (UNTAG_Bool(REGB0)) {
19772 } else {
19773 nit_abort("Assert failed", NULL, LOCATE_parser, 5963);
19774 }
19775 /* ./parser//parser.nit:5965 */
19776 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19777 if (UNTAG_Bool(REGB0)) {
19778 } else {
19779 nit_abort("Assert failed", NULL, LOCATE_parser, 5965);
19780 }
19781 /* ./parser//parser.nit:5967 */
19782 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19783 if (UNTAG_Bool(REGB0)) {
19784 } else {
19785 nit_abort("Assert failed", NULL, LOCATE_parser, 5967);
19786 }
19787 /* ./parser//parser.nit:5969 */
19788 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19789 if (UNTAG_Bool(REGB0)) {
19790 } else {
19791 nit_abort("Assert failed", NULL, LOCATE_parser, 5969);
19792 }
19793 /* ./parser//parser.nit:5971 */
19794 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19795 if (UNTAG_Bool(REGB0)) {
19796 } else {
19797 nit_abort("Assert failed", NULL, LOCATE_parser, 5971);
19798 }
19799 /* ./parser//parser.nit:5973 */
19800 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19801 if (UNTAG_Bool(REGB0)) {
19802 } else {
19803 nit_abort("Assert failed", NULL, LOCATE_parser, 5973);
19804 }
19805 /* ./parser//parser.nit:5974 */
19806 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
19807 /* ./parser//parser.nit:5983 */
19808 fra.me.REG[2] = fra.me.REG[3];
19809 /* ./parser//parser.nit:5984 */
19810 REGB0 = TAG_Bool(ATTR_parser___ReduceAction135____goto(fra.me.REG[0])!=NIT_NULL);
19811 if (UNTAG_Bool(REGB0)) {
19812 } else {
19813 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5984);
19814 }
19815 REGB0 = ATTR_parser___ReduceAction135____goto(fra.me.REG[0]);
19816 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19817 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19818 stack_frame_head = fra.me.prev;
19819 return;
19820 }
19821 void parser___ReduceAction135___init(val_t p0, val_t p1, int* init_table){
19822 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction135].i;
19823 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19824 val_t REGB0;
19825 val_t tmp;
19826 if (init_table[itpos138]) return;
19827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19828 fra.me.file = LOCATE_parser;
19829 fra.me.line = 5987;
19830 fra.me.meth = LOCATE_parser___ReduceAction135___init;
19831 fra.me.has_broke = 0;
19832 fra.me.REG_size = 2;
19833 fra.me.REG[0] = NIT_NULL;
19834 fra.me.REG[1] = NIT_NULL;
19835 fra.me.REG[0] = p0;
19836 REGB0 = p1;
19837 /* ./parser//parser.nit:5987 */
19838 fra.me.REG[1] = fra.me.REG[0];
19839 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19840 ATTR_parser___ReduceAction135____goto(fra.me.REG[1]) = REGB0;
19841 stack_frame_head = fra.me.prev;
19842 init_table[itpos138] = 1;
19843 return;
19844 }
19845 void parser___ReduceAction136___action(val_t p0, val_t p1){
19846 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
19847 val_t REGB0;
19848 val_t tmp;
19849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19850 fra.me.file = LOCATE_parser;
19851 fra.me.line = 5991;
19852 fra.me.meth = LOCATE_parser___ReduceAction136___action;
19853 fra.me.has_broke = 0;
19854 fra.me.REG_size = 10;
19855 fra.me.REG[0] = NIT_NULL;
19856 fra.me.REG[1] = NIT_NULL;
19857 fra.me.REG[2] = NIT_NULL;
19858 fra.me.REG[3] = NIT_NULL;
19859 fra.me.REG[4] = NIT_NULL;
19860 fra.me.REG[5] = NIT_NULL;
19861 fra.me.REG[6] = NIT_NULL;
19862 fra.me.REG[7] = NIT_NULL;
19863 fra.me.REG[8] = NIT_NULL;
19864 fra.me.REG[9] = NIT_NULL;
19865 fra.me.REG[0] = p0;
19866 fra.me.REG[1] = p1;
19867 /* ./parser//parser.nit:5993 */
19868 fra.me.REG[2] = NIT_NULL;
19869 /* ./parser//parser.nit:5994 */
19870 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19871 /* ./parser//parser.nit:5995 */
19872 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19873 /* ./parser//parser.nit:5996 */
19874 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19875 /* ./parser//parser.nit:5997 */
19876 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19877 /* ./parser//parser.nit:5998 */
19878 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19879 /* ./parser//parser.nit:5999 */
19880 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19881 /* ./parser//parser.nit:6000 */
19882 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19883 /* ./parser//parser.nit:6001 */
19884 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19885 /* ./parser//parser.nit:6002 */
19886 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19887 /* ./parser//parser.nit:6004 */
19888 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19889 if (UNTAG_Bool(REGB0)) {
19890 } else {
19891 nit_abort("Assert failed", NULL, LOCATE_parser, 6004);
19892 }
19893 /* ./parser//parser.nit:6006 */
19894 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19895 if (UNTAG_Bool(REGB0)) {
19896 } else {
19897 nit_abort("Assert failed", NULL, LOCATE_parser, 6006);
19898 }
19899 /* ./parser//parser.nit:6008 */
19900 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19901 if (UNTAG_Bool(REGB0)) {
19902 } else {
19903 nit_abort("Assert failed", NULL, LOCATE_parser, 6008);
19904 }
19905 /* ./parser//parser.nit:6010 */
19906 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19907 if (UNTAG_Bool(REGB0)) {
19908 } else {
19909 nit_abort("Assert failed", NULL, LOCATE_parser, 6010);
19910 }
19911 /* ./parser//parser.nit:6012 */
19912 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19913 if (UNTAG_Bool(REGB0)) {
19914 } else {
19915 nit_abort("Assert failed", NULL, LOCATE_parser, 6012);
19916 }
19917 /* ./parser//parser.nit:6014 */
19918 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19919 if (UNTAG_Bool(REGB0)) {
19920 } else {
19921 nit_abort("Assert failed", NULL, LOCATE_parser, 6014);
19922 }
19923 /* ./parser//parser.nit:6016 */
19924 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19925 if (UNTAG_Bool(REGB0)) {
19926 } else {
19927 nit_abort("Assert failed", NULL, LOCATE_parser, 6016);
19928 }
19929 /* ./parser//parser.nit:6017 */
19930 fra.me.REG[3] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
19931 /* ./parser//parser.nit:6026 */
19932 fra.me.REG[2] = fra.me.REG[3];
19933 /* ./parser//parser.nit:6027 */
19934 REGB0 = TAG_Bool(ATTR_parser___ReduceAction136____goto(fra.me.REG[0])!=NIT_NULL);
19935 if (UNTAG_Bool(REGB0)) {
19936 } else {
19937 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6027);
19938 }
19939 REGB0 = ATTR_parser___ReduceAction136____goto(fra.me.REG[0]);
19940 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19941 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19942 stack_frame_head = fra.me.prev;
19943 return;
19944 }
19945 void parser___ReduceAction136___init(val_t p0, val_t p1, int* init_table){
19946 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction136].i;
19947 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19948 val_t REGB0;
19949 val_t tmp;
19950 if (init_table[itpos139]) return;
19951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19952 fra.me.file = LOCATE_parser;
19953 fra.me.line = 6030;
19954 fra.me.meth = LOCATE_parser___ReduceAction136___init;
19955 fra.me.has_broke = 0;
19956 fra.me.REG_size = 2;
19957 fra.me.REG[0] = NIT_NULL;
19958 fra.me.REG[1] = NIT_NULL;
19959 fra.me.REG[0] = p0;
19960 REGB0 = p1;
19961 /* ./parser//parser.nit:6030 */
19962 fra.me.REG[1] = fra.me.REG[0];
19963 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19964 ATTR_parser___ReduceAction136____goto(fra.me.REG[1]) = REGB0;
19965 stack_frame_head = fra.me.prev;
19966 init_table[itpos139] = 1;
19967 return;
19968 }
19969 void parser___ReduceAction137___action(val_t p0, val_t p1){
19970 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19971 val_t REGB0;
19972 val_t tmp;
19973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19974 fra.me.file = LOCATE_parser;
19975 fra.me.line = 6034;
19976 fra.me.meth = LOCATE_parser___ReduceAction137___action;
19977 fra.me.has_broke = 0;
19978 fra.me.REG_size = 8;
19979 fra.me.REG[0] = NIT_NULL;
19980 fra.me.REG[1] = NIT_NULL;
19981 fra.me.REG[2] = NIT_NULL;
19982 fra.me.REG[3] = NIT_NULL;
19983 fra.me.REG[4] = NIT_NULL;
19984 fra.me.REG[5] = NIT_NULL;
19985 fra.me.REG[6] = NIT_NULL;
19986 fra.me.REG[7] = NIT_NULL;
19987 fra.me.REG[0] = p0;
19988 fra.me.REG[1] = p1;
19989 /* ./parser//parser.nit:6036 */
19990 fra.me.REG[2] = NIT_NULL;
19991 /* ./parser//parser.nit:6037 */
19992 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19993 /* ./parser//parser.nit:6038 */
19994 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19995 /* ./parser//parser.nit:6039 */
19996 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19997 /* ./parser//parser.nit:6040 */
19998 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19999 /* ./parser//parser.nit:6041 */
20000 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20001 /* ./parser//parser.nit:6043 */
20002 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
20003 if (UNTAG_Bool(REGB0)) {
20004 } else {
20005 nit_abort("Assert failed", NULL, LOCATE_parser, 6043);
20006 }
20007 /* ./parser//parser.nit:6045 */
20008 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20009 if (UNTAG_Bool(REGB0)) {
20010 } else {
20011 nit_abort("Assert failed", NULL, LOCATE_parser, 6045);
20012 }
20013 /* ./parser//parser.nit:6047 */
20014 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwtype, ID_TKwtype)) /*cast nullable TKwtype*/;
20015 if (UNTAG_Bool(REGB0)) {
20016 } else {
20017 nit_abort("Assert failed", NULL, LOCATE_parser, 6047);
20018 }
20019 /* ./parser//parser.nit:6049 */
20020 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
20021 if (UNTAG_Bool(REGB0)) {
20022 } else {
20023 nit_abort("Assert failed", NULL, LOCATE_parser, 6049);
20024 }
20025 /* ./parser//parser.nit:6051 */
20026 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
20027 if (UNTAG_Bool(REGB0)) {
20028 } else {
20029 nit_abort("Assert failed", NULL, LOCATE_parser, 6051);
20030 }
20031 /* ./parser//parser.nit:6052 */
20032 fra.me.REG[3] = NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
20033 /* ./parser//parser.nit:6060 */
20034 fra.me.REG[2] = fra.me.REG[3];
20035 /* ./parser//parser.nit:6061 */
20036 REGB0 = TAG_Bool(ATTR_parser___ReduceAction137____goto(fra.me.REG[0])!=NIT_NULL);
20037 if (UNTAG_Bool(REGB0)) {
20038 } else {
20039 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6061);
20040 }
20041 REGB0 = ATTR_parser___ReduceAction137____goto(fra.me.REG[0]);
20042 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20043 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20044 stack_frame_head = fra.me.prev;
20045 return;
20046 }
20047 void parser___ReduceAction137___init(val_t p0, val_t p1, int* init_table){
20048 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction137].i;
20049 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20050 val_t REGB0;
20051 val_t tmp;
20052 if (init_table[itpos140]) return;
20053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20054 fra.me.file = LOCATE_parser;
20055 fra.me.line = 6064;
20056 fra.me.meth = LOCATE_parser___ReduceAction137___init;
20057 fra.me.has_broke = 0;
20058 fra.me.REG_size = 2;
20059 fra.me.REG[0] = NIT_NULL;
20060 fra.me.REG[1] = NIT_NULL;
20061 fra.me.REG[0] = p0;
20062 REGB0 = p1;
20063 /* ./parser//parser.nit:6064 */
20064 fra.me.REG[1] = fra.me.REG[0];
20065 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20066 ATTR_parser___ReduceAction137____goto(fra.me.REG[1]) = REGB0;
20067 stack_frame_head = fra.me.prev;
20068 init_table[itpos140] = 1;
20069 return;
20070 }
20071 void parser___ReduceAction138___action(val_t p0, val_t p1){
20072 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
20073 val_t REGB0;
20074 val_t tmp;
20075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20076 fra.me.file = LOCATE_parser;
20077 fra.me.line = 6068;
20078 fra.me.meth = LOCATE_parser___ReduceAction138___action;
20079 fra.me.has_broke = 0;
20080 fra.me.REG_size = 9;
20081 fra.me.REG[0] = NIT_NULL;
20082 fra.me.REG[1] = NIT_NULL;
20083 fra.me.REG[2] = NIT_NULL;
20084 fra.me.REG[3] = NIT_NULL;
20085 fra.me.REG[4] = NIT_NULL;
20086 fra.me.REG[5] = NIT_NULL;
20087 fra.me.REG[6] = NIT_NULL;
20088 fra.me.REG[7] = NIT_NULL;
20089 fra.me.REG[8] = NIT_NULL;
20090 fra.me.REG[0] = p0;
20091 fra.me.REG[1] = p1;
20092 /* ./parser//parser.nit:6070 */
20093 fra.me.REG[2] = NIT_NULL;
20094 /* ./parser//parser.nit:6071 */
20095 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20096 /* ./parser//parser.nit:6072 */
20097 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20098 /* ./parser//parser.nit:6073 */
20099 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20100 /* ./parser//parser.nit:6074 */
20101 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20102 /* ./parser//parser.nit:6075 */
20103 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20104 /* ./parser//parser.nit:6076 */
20105 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20106 /* ./parser//parser.nit:6078 */
20107 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
20108 if (UNTAG_Bool(REGB0)) {
20109 } else {
20110 nit_abort("Assert failed", NULL, LOCATE_parser, 6078);
20111 }
20112 /* ./parser//parser.nit:6080 */
20113 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20114 if (UNTAG_Bool(REGB0)) {
20115 } else {
20116 nit_abort("Assert failed", NULL, LOCATE_parser, 6080);
20117 }
20118 /* ./parser//parser.nit:6082 */
20119 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20120 if (UNTAG_Bool(REGB0)) {
20121 } else {
20122 nit_abort("Assert failed", NULL, LOCATE_parser, 6082);
20123 }
20124 /* ./parser//parser.nit:6084 */
20125 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwtype, ID_TKwtype)) /*cast nullable TKwtype*/;
20126 if (UNTAG_Bool(REGB0)) {
20127 } else {
20128 nit_abort("Assert failed", NULL, LOCATE_parser, 6084);
20129 }
20130 /* ./parser//parser.nit:6086 */
20131 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
20132 if (UNTAG_Bool(REGB0)) {
20133 } else {
20134 nit_abort("Assert failed", NULL, LOCATE_parser, 6086);
20135 }
20136 /* ./parser//parser.nit:6088 */
20137 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
20138 if (UNTAG_Bool(REGB0)) {
20139 } else {
20140 nit_abort("Assert failed", NULL, LOCATE_parser, 6088);
20141 }
20142 /* ./parser//parser.nit:6089 */
20143 fra.me.REG[3] = NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
20144 /* ./parser//parser.nit:6097 */
20145 fra.me.REG[2] = fra.me.REG[3];
20146 /* ./parser//parser.nit:6098 */
20147 REGB0 = TAG_Bool(ATTR_parser___ReduceAction138____goto(fra.me.REG[0])!=NIT_NULL);
20148 if (UNTAG_Bool(REGB0)) {
20149 } else {
20150 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6098);
20151 }
20152 REGB0 = ATTR_parser___ReduceAction138____goto(fra.me.REG[0]);
20153 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20154 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20155 stack_frame_head = fra.me.prev;
20156 return;
20157 }
20158 void parser___ReduceAction138___init(val_t p0, val_t p1, int* init_table){
20159 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction138].i;
20160 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20161 val_t REGB0;
20162 val_t tmp;
20163 if (init_table[itpos141]) return;
20164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20165 fra.me.file = LOCATE_parser;
20166 fra.me.line = 6101;
20167 fra.me.meth = LOCATE_parser___ReduceAction138___init;
20168 fra.me.has_broke = 0;
20169 fra.me.REG_size = 2;
20170 fra.me.REG[0] = NIT_NULL;
20171 fra.me.REG[1] = NIT_NULL;
20172 fra.me.REG[0] = p0;
20173 REGB0 = p1;
20174 /* ./parser//parser.nit:6101 */
20175 fra.me.REG[1] = fra.me.REG[0];
20176 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20177 ATTR_parser___ReduceAction138____goto(fra.me.REG[1]) = REGB0;
20178 stack_frame_head = fra.me.prev;
20179 init_table[itpos141] = 1;
20180 return;
20181 }
20182 void parser___ReduceAction139___action(val_t p0, val_t p1){
20183 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20184 val_t REGB0;
20185 val_t tmp;
20186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20187 fra.me.file = LOCATE_parser;
20188 fra.me.line = 6105;
20189 fra.me.meth = LOCATE_parser___ReduceAction139___action;
20190 fra.me.has_broke = 0;
20191 fra.me.REG_size = 4;
20192 fra.me.REG[0] = NIT_NULL;
20193 fra.me.REG[1] = NIT_NULL;
20194 fra.me.REG[2] = NIT_NULL;
20195 fra.me.REG[3] = NIT_NULL;
20196 fra.me.REG[0] = p0;
20197 fra.me.REG[1] = p1;
20198 /* ./parser//parser.nit:6107 */
20199 fra.me.REG[2] = NIT_NULL;
20200 /* ./parser//parser.nit:6108 */
20201 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20202 /* ./parser//parser.nit:6110 */
20203 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwreadable, ID_TKwreadable)) /*cast nullable TKwreadable*/;
20204 if (UNTAG_Bool(REGB0)) {
20205 } else {
20206 nit_abort("Assert failed", NULL, LOCATE_parser, 6110);
20207 }
20208 /* ./parser//parser.nit:6111 */
20209 fra.me.REG[3] = NEW_AReadAble_parser_prod___AReadAble___init_areadable(NIT_NULL, fra.me.REG[3]);
20210 /* ./parser//parser.nit:6115 */
20211 fra.me.REG[2] = fra.me.REG[3];
20212 /* ./parser//parser.nit:6116 */
20213 REGB0 = TAG_Bool(ATTR_parser___ReduceAction139____goto(fra.me.REG[0])!=NIT_NULL);
20214 if (UNTAG_Bool(REGB0)) {
20215 } else {
20216 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6116);
20217 }
20218 REGB0 = ATTR_parser___ReduceAction139____goto(fra.me.REG[0]);
20219 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20220 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20221 stack_frame_head = fra.me.prev;
20222 return;
20223 }
20224 void parser___ReduceAction139___init(val_t p0, val_t p1, int* init_table){
20225 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction139].i;
20226 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20227 val_t REGB0;
20228 val_t tmp;
20229 if (init_table[itpos142]) return;
20230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20231 fra.me.file = LOCATE_parser;
20232 fra.me.line = 6119;
20233 fra.me.meth = LOCATE_parser___ReduceAction139___init;
20234 fra.me.has_broke = 0;
20235 fra.me.REG_size = 2;
20236 fra.me.REG[0] = NIT_NULL;
20237 fra.me.REG[1] = NIT_NULL;
20238 fra.me.REG[0] = p0;
20239 REGB0 = p1;
20240 /* ./parser//parser.nit:6119 */
20241 fra.me.REG[1] = fra.me.REG[0];
20242 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20243 ATTR_parser___ReduceAction139____goto(fra.me.REG[1]) = REGB0;
20244 stack_frame_head = fra.me.prev;
20245 init_table[itpos142] = 1;
20246 return;
20247 }
20248 void parser___ReduceAction140___action(val_t p0, val_t p1){
20249 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20250 val_t REGB0;
20251 val_t tmp;
20252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20253 fra.me.file = LOCATE_parser;
20254 fra.me.line = 6123;
20255 fra.me.meth = LOCATE_parser___ReduceAction140___action;
20256 fra.me.has_broke = 0;
20257 fra.me.REG_size = 5;
20258 fra.me.REG[0] = NIT_NULL;
20259 fra.me.REG[1] = NIT_NULL;
20260 fra.me.REG[2] = NIT_NULL;
20261 fra.me.REG[3] = NIT_NULL;
20262 fra.me.REG[4] = NIT_NULL;
20263 fra.me.REG[0] = p0;
20264 fra.me.REG[1] = p1;
20265 /* ./parser//parser.nit:6125 */
20266 fra.me.REG[2] = NIT_NULL;
20267 /* ./parser//parser.nit:6126 */
20268 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20269 /* ./parser//parser.nit:6127 */
20270 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20271 /* ./parser//parser.nit:6129 */
20272 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20273 if (UNTAG_Bool(REGB0)) {
20274 } else {
20275 nit_abort("Assert failed", NULL, LOCATE_parser, 6129);
20276 }
20277 /* ./parser//parser.nit:6131 */
20278 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwreadable, ID_TKwreadable)) /*cast nullable TKwreadable*/;
20279 if (UNTAG_Bool(REGB0)) {
20280 } else {
20281 nit_abort("Assert failed", NULL, LOCATE_parser, 6131);
20282 }
20283 /* ./parser//parser.nit:6132 */
20284 fra.me.REG[3] = NEW_AReadAble_parser_prod___AReadAble___init_areadable(fra.me.REG[4], fra.me.REG[3]);
20285 /* ./parser//parser.nit:6136 */
20286 fra.me.REG[2] = fra.me.REG[3];
20287 /* ./parser//parser.nit:6137 */
20288 REGB0 = TAG_Bool(ATTR_parser___ReduceAction140____goto(fra.me.REG[0])!=NIT_NULL);
20289 if (UNTAG_Bool(REGB0)) {
20290 } else {
20291 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6137);
20292 }
20293 REGB0 = ATTR_parser___ReduceAction140____goto(fra.me.REG[0]);
20294 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20295 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20296 stack_frame_head = fra.me.prev;
20297 return;
20298 }
20299 void parser___ReduceAction140___init(val_t p0, val_t p1, int* init_table){
20300 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction140].i;
20301 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20302 val_t REGB0;
20303 val_t tmp;
20304 if (init_table[itpos143]) return;
20305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20306 fra.me.file = LOCATE_parser;
20307 fra.me.line = 6140;
20308 fra.me.meth = LOCATE_parser___ReduceAction140___init;
20309 fra.me.has_broke = 0;
20310 fra.me.REG_size = 2;
20311 fra.me.REG[0] = NIT_NULL;
20312 fra.me.REG[1] = NIT_NULL;
20313 fra.me.REG[0] = p0;
20314 REGB0 = p1;
20315 /* ./parser//parser.nit:6140 */
20316 fra.me.REG[1] = fra.me.REG[0];
20317 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20318 ATTR_parser___ReduceAction140____goto(fra.me.REG[1]) = REGB0;
20319 stack_frame_head = fra.me.prev;
20320 init_table[itpos143] = 1;
20321 return;
20322 }
20323 void parser___ReduceAction141___action(val_t p0, val_t p1){
20324 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20325 val_t REGB0;
20326 val_t tmp;
20327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20328 fra.me.file = LOCATE_parser;
20329 fra.me.line = 6144;
20330 fra.me.meth = LOCATE_parser___ReduceAction141___action;
20331 fra.me.has_broke = 0;
20332 fra.me.REG_size = 4;
20333 fra.me.REG[0] = NIT_NULL;
20334 fra.me.REG[1] = NIT_NULL;
20335 fra.me.REG[2] = NIT_NULL;
20336 fra.me.REG[3] = NIT_NULL;
20337 fra.me.REG[0] = p0;
20338 fra.me.REG[1] = p1;
20339 /* ./parser//parser.nit:6146 */
20340 fra.me.REG[2] = NIT_NULL;
20341 /* ./parser//parser.nit:6147 */
20342 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20343 /* ./parser//parser.nit:6149 */
20344 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20345 if (UNTAG_Bool(REGB0)) {
20346 } else {
20347 nit_abort("Assert failed", NULL, LOCATE_parser, 6149);
20348 }
20349 /* ./parser//parser.nit:6150 */
20350 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(NIT_NULL, NIT_NULL, fra.me.REG[3]);
20351 /* ./parser//parser.nit:6155 */
20352 fra.me.REG[2] = fra.me.REG[3];
20353 /* ./parser//parser.nit:6156 */
20354 REGB0 = TAG_Bool(ATTR_parser___ReduceAction141____goto(fra.me.REG[0])!=NIT_NULL);
20355 if (UNTAG_Bool(REGB0)) {
20356 } else {
20357 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6156);
20358 }
20359 REGB0 = ATTR_parser___ReduceAction141____goto(fra.me.REG[0]);
20360 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20361 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20362 stack_frame_head = fra.me.prev;
20363 return;
20364 }
20365 void parser___ReduceAction141___init(val_t p0, val_t p1, int* init_table){
20366 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction141].i;
20367 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20368 val_t REGB0;
20369 val_t tmp;
20370 if (init_table[itpos144]) return;
20371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20372 fra.me.file = LOCATE_parser;
20373 fra.me.line = 6159;
20374 fra.me.meth = LOCATE_parser___ReduceAction141___init;
20375 fra.me.has_broke = 0;
20376 fra.me.REG_size = 2;
20377 fra.me.REG[0] = NIT_NULL;
20378 fra.me.REG[1] = NIT_NULL;
20379 fra.me.REG[0] = p0;
20380 REGB0 = p1;
20381 /* ./parser//parser.nit:6159 */
20382 fra.me.REG[1] = fra.me.REG[0];
20383 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20384 ATTR_parser___ReduceAction141____goto(fra.me.REG[1]) = REGB0;
20385 stack_frame_head = fra.me.prev;
20386 init_table[itpos144] = 1;
20387 return;
20388 }
20389 void parser___ReduceAction142___action(val_t p0, val_t p1){
20390 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20391 val_t REGB0;
20392 val_t tmp;
20393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20394 fra.me.file = LOCATE_parser;
20395 fra.me.line = 6163;
20396 fra.me.meth = LOCATE_parser___ReduceAction142___action;
20397 fra.me.has_broke = 0;
20398 fra.me.REG_size = 5;
20399 fra.me.REG[0] = NIT_NULL;
20400 fra.me.REG[1] = NIT_NULL;
20401 fra.me.REG[2] = NIT_NULL;
20402 fra.me.REG[3] = NIT_NULL;
20403 fra.me.REG[4] = NIT_NULL;
20404 fra.me.REG[0] = p0;
20405 fra.me.REG[1] = p1;
20406 /* ./parser//parser.nit:6165 */
20407 fra.me.REG[2] = NIT_NULL;
20408 /* ./parser//parser.nit:6166 */
20409 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20410 /* ./parser//parser.nit:6167 */
20411 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20412 /* ./parser//parser.nit:6169 */
20413 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20414 if (UNTAG_Bool(REGB0)) {
20415 } else {
20416 nit_abort("Assert failed", NULL, LOCATE_parser, 6169);
20417 }
20418 /* ./parser//parser.nit:6171 */
20419 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20420 if (UNTAG_Bool(REGB0)) {
20421 } else {
20422 nit_abort("Assert failed", NULL, LOCATE_parser, 6171);
20423 }
20424 /* ./parser//parser.nit:6172 */
20425 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
20426 /* ./parser//parser.nit:6177 */
20427 fra.me.REG[2] = fra.me.REG[3];
20428 /* ./parser//parser.nit:6178 */
20429 REGB0 = TAG_Bool(ATTR_parser___ReduceAction142____goto(fra.me.REG[0])!=NIT_NULL);
20430 if (UNTAG_Bool(REGB0)) {
20431 } else {
20432 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6178);
20433 }
20434 REGB0 = ATTR_parser___ReduceAction142____goto(fra.me.REG[0]);
20435 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20436 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20437 stack_frame_head = fra.me.prev;
20438 return;
20439 }
20440 void parser___ReduceAction142___init(val_t p0, val_t p1, int* init_table){
20441 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction142].i;
20442 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20443 val_t REGB0;
20444 val_t tmp;
20445 if (init_table[itpos145]) return;
20446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20447 fra.me.file = LOCATE_parser;
20448 fra.me.line = 6181;
20449 fra.me.meth = LOCATE_parser___ReduceAction142___init;
20450 fra.me.has_broke = 0;
20451 fra.me.REG_size = 2;
20452 fra.me.REG[0] = NIT_NULL;
20453 fra.me.REG[1] = NIT_NULL;
20454 fra.me.REG[0] = p0;
20455 REGB0 = p1;
20456 /* ./parser//parser.nit:6181 */
20457 fra.me.REG[1] = fra.me.REG[0];
20458 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20459 ATTR_parser___ReduceAction142____goto(fra.me.REG[1]) = REGB0;
20460 stack_frame_head = fra.me.prev;
20461 init_table[itpos145] = 1;
20462 return;
20463 }
20464 void parser___ReduceAction143___action(val_t p0, val_t p1){
20465 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20466 val_t REGB0;
20467 val_t tmp;
20468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20469 fra.me.file = LOCATE_parser;
20470 fra.me.line = 6185;
20471 fra.me.meth = LOCATE_parser___ReduceAction143___action;
20472 fra.me.has_broke = 0;
20473 fra.me.REG_size = 5;
20474 fra.me.REG[0] = NIT_NULL;
20475 fra.me.REG[1] = NIT_NULL;
20476 fra.me.REG[2] = NIT_NULL;
20477 fra.me.REG[3] = NIT_NULL;
20478 fra.me.REG[4] = NIT_NULL;
20479 fra.me.REG[0] = p0;
20480 fra.me.REG[1] = p1;
20481 /* ./parser//parser.nit:6187 */
20482 fra.me.REG[2] = NIT_NULL;
20483 /* ./parser//parser.nit:6188 */
20484 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20485 /* ./parser//parser.nit:6189 */
20486 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20487 /* ./parser//parser.nit:6191 */
20488 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20489 if (UNTAG_Bool(REGB0)) {
20490 } else {
20491 nit_abort("Assert failed", NULL, LOCATE_parser, 6191);
20492 }
20493 /* ./parser//parser.nit:6193 */
20494 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20495 if (UNTAG_Bool(REGB0)) {
20496 } else {
20497 nit_abort("Assert failed", NULL, LOCATE_parser, 6193);
20498 }
20499 /* ./parser//parser.nit:6194 */
20500 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
20501 /* ./parser//parser.nit:6199 */
20502 fra.me.REG[2] = fra.me.REG[3];
20503 /* ./parser//parser.nit:6200 */
20504 REGB0 = TAG_Bool(ATTR_parser___ReduceAction143____goto(fra.me.REG[0])!=NIT_NULL);
20505 if (UNTAG_Bool(REGB0)) {
20506 } else {
20507 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6200);
20508 }
20509 REGB0 = ATTR_parser___ReduceAction143____goto(fra.me.REG[0]);
20510 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20511 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20512 stack_frame_head = fra.me.prev;
20513 return;
20514 }
20515 void parser___ReduceAction143___init(val_t p0, val_t p1, int* init_table){
20516 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction143].i;
20517 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20518 val_t REGB0;
20519 val_t tmp;
20520 if (init_table[itpos146]) return;
20521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20522 fra.me.file = LOCATE_parser;
20523 fra.me.line = 6203;
20524 fra.me.meth = LOCATE_parser___ReduceAction143___init;
20525 fra.me.has_broke = 0;
20526 fra.me.REG_size = 2;
20527 fra.me.REG[0] = NIT_NULL;
20528 fra.me.REG[1] = NIT_NULL;
20529 fra.me.REG[0] = p0;
20530 REGB0 = p1;
20531 /* ./parser//parser.nit:6203 */
20532 fra.me.REG[1] = fra.me.REG[0];
20533 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20534 ATTR_parser___ReduceAction143____goto(fra.me.REG[1]) = REGB0;
20535 stack_frame_head = fra.me.prev;
20536 init_table[itpos146] = 1;
20537 return;
20538 }
20539 void parser___ReduceAction144___action(val_t p0, val_t p1){
20540 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
20541 val_t REGB0;
20542 val_t tmp;
20543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20544 fra.me.file = LOCATE_parser;
20545 fra.me.line = 6207;
20546 fra.me.meth = LOCATE_parser___ReduceAction144___action;
20547 fra.me.has_broke = 0;
20548 fra.me.REG_size = 6;
20549 fra.me.REG[0] = NIT_NULL;
20550 fra.me.REG[1] = NIT_NULL;
20551 fra.me.REG[2] = NIT_NULL;
20552 fra.me.REG[3] = NIT_NULL;
20553 fra.me.REG[4] = NIT_NULL;
20554 fra.me.REG[5] = NIT_NULL;
20555 fra.me.REG[0] = p0;
20556 fra.me.REG[1] = p1;
20557 /* ./parser//parser.nit:6209 */
20558 fra.me.REG[2] = NIT_NULL;
20559 /* ./parser//parser.nit:6210 */
20560 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20561 /* ./parser//parser.nit:6211 */
20562 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20563 /* ./parser//parser.nit:6212 */
20564 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20565 /* ./parser//parser.nit:6214 */
20566 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20567 if (UNTAG_Bool(REGB0)) {
20568 } else {
20569 nit_abort("Assert failed", NULL, LOCATE_parser, 6214);
20570 }
20571 /* ./parser//parser.nit:6216 */
20572 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20573 if (UNTAG_Bool(REGB0)) {
20574 } else {
20575 nit_abort("Assert failed", NULL, LOCATE_parser, 6216);
20576 }
20577 /* ./parser//parser.nit:6218 */
20578 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20579 if (UNTAG_Bool(REGB0)) {
20580 } else {
20581 nit_abort("Assert failed", NULL, LOCATE_parser, 6218);
20582 }
20583 /* ./parser//parser.nit:6219 */
20584 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
20585 /* ./parser//parser.nit:6224 */
20586 fra.me.REG[2] = fra.me.REG[3];
20587 /* ./parser//parser.nit:6225 */
20588 REGB0 = TAG_Bool(ATTR_parser___ReduceAction144____goto(fra.me.REG[0])!=NIT_NULL);
20589 if (UNTAG_Bool(REGB0)) {
20590 } else {
20591 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6225);
20592 }
20593 REGB0 = ATTR_parser___ReduceAction144____goto(fra.me.REG[0]);
20594 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20595 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20596 stack_frame_head = fra.me.prev;
20597 return;
20598 }
20599 void parser___ReduceAction144___init(val_t p0, val_t p1, int* init_table){
20600 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction144].i;
20601 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20602 val_t REGB0;
20603 val_t tmp;
20604 if (init_table[itpos147]) return;
20605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20606 fra.me.file = LOCATE_parser;
20607 fra.me.line = 6228;
20608 fra.me.meth = LOCATE_parser___ReduceAction144___init;
20609 fra.me.has_broke = 0;
20610 fra.me.REG_size = 2;
20611 fra.me.REG[0] = NIT_NULL;
20612 fra.me.REG[1] = NIT_NULL;
20613 fra.me.REG[0] = p0;
20614 REGB0 = p1;
20615 /* ./parser//parser.nit:6228 */
20616 fra.me.REG[1] = fra.me.REG[0];
20617 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20618 ATTR_parser___ReduceAction144____goto(fra.me.REG[1]) = REGB0;
20619 stack_frame_head = fra.me.prev;
20620 init_table[itpos147] = 1;
20621 return;
20622 }
20623 void parser___ReduceAction145___action(val_t p0, val_t p1){
20624 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20625 val_t REGB0;
20626 val_t tmp;
20627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20628 fra.me.file = LOCATE_parser;
20629 fra.me.line = 6232;
20630 fra.me.meth = LOCATE_parser___ReduceAction145___action;
20631 fra.me.has_broke = 0;
20632 fra.me.REG_size = 4;
20633 fra.me.REG[0] = NIT_NULL;
20634 fra.me.REG[1] = NIT_NULL;
20635 fra.me.REG[2] = NIT_NULL;
20636 fra.me.REG[3] = NIT_NULL;
20637 fra.me.REG[0] = p0;
20638 fra.me.REG[1] = p1;
20639 /* ./parser//parser.nit:6234 */
20640 fra.me.REG[2] = NIT_NULL;
20641 /* ./parser//parser.nit:6235 */
20642 fra.me.REG[3] = NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility();
20643 /* ./parser//parser.nit:6237 */
20644 fra.me.REG[2] = fra.me.REG[3];
20645 /* ./parser//parser.nit:6238 */
20646 REGB0 = TAG_Bool(ATTR_parser___ReduceAction145____goto(fra.me.REG[0])!=NIT_NULL);
20647 if (UNTAG_Bool(REGB0)) {
20648 } else {
20649 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6238);
20650 }
20651 REGB0 = ATTR_parser___ReduceAction145____goto(fra.me.REG[0]);
20652 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20653 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20654 stack_frame_head = fra.me.prev;
20655 return;
20656 }
20657 void parser___ReduceAction145___init(val_t p0, val_t p1, int* init_table){
20658 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction145].i;
20659 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20660 val_t REGB0;
20661 val_t tmp;
20662 if (init_table[itpos148]) return;
20663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20664 fra.me.file = LOCATE_parser;
20665 fra.me.line = 6241;
20666 fra.me.meth = LOCATE_parser___ReduceAction145___init;
20667 fra.me.has_broke = 0;
20668 fra.me.REG_size = 2;
20669 fra.me.REG[0] = NIT_NULL;
20670 fra.me.REG[1] = NIT_NULL;
20671 fra.me.REG[0] = p0;
20672 REGB0 = p1;
20673 /* ./parser//parser.nit:6241 */
20674 fra.me.REG[1] = fra.me.REG[0];
20675 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20676 ATTR_parser___ReduceAction145____goto(fra.me.REG[1]) = REGB0;
20677 stack_frame_head = fra.me.prev;
20678 init_table[itpos148] = 1;
20679 return;
20680 }
20681 void parser___ReduceAction146___action(val_t p0, val_t p1){
20682 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20683 val_t REGB0;
20684 val_t tmp;
20685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20686 fra.me.file = LOCATE_parser;
20687 fra.me.line = 6245;
20688 fra.me.meth = LOCATE_parser___ReduceAction146___action;
20689 fra.me.has_broke = 0;
20690 fra.me.REG_size = 4;
20691 fra.me.REG[0] = NIT_NULL;
20692 fra.me.REG[1] = NIT_NULL;
20693 fra.me.REG[2] = NIT_NULL;
20694 fra.me.REG[3] = NIT_NULL;
20695 fra.me.REG[0] = p0;
20696 fra.me.REG[1] = p1;
20697 /* ./parser//parser.nit:6247 */
20698 fra.me.REG[2] = NIT_NULL;
20699 /* ./parser//parser.nit:6248 */
20700 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20701 /* ./parser//parser.nit:6249 */
20702 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20703 /* ./parser//parser.nit:6251 */
20704 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwprivate, ID_TKwprivate)) /*cast nullable TKwprivate*/;
20705 if (UNTAG_Bool(REGB0)) {
20706 } else {
20707 nit_abort("Assert failed", NULL, LOCATE_parser, 6251);
20708 }
20709 /* ./parser//parser.nit:6252 */
20710 fra.me.REG[3] = NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility(fra.me.REG[3]);
20711 /* ./parser//parser.nit:6255 */
20712 fra.me.REG[2] = fra.me.REG[3];
20713 /* ./parser//parser.nit:6256 */
20714 REGB0 = TAG_Bool(ATTR_parser___ReduceAction146____goto(fra.me.REG[0])!=NIT_NULL);
20715 if (UNTAG_Bool(REGB0)) {
20716 } else {
20717 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6256);
20718 }
20719 REGB0 = ATTR_parser___ReduceAction146____goto(fra.me.REG[0]);
20720 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20721 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20722 stack_frame_head = fra.me.prev;
20723 return;
20724 }
20725 void parser___ReduceAction146___init(val_t p0, val_t p1, int* init_table){
20726 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction146].i;
20727 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20728 val_t REGB0;
20729 val_t tmp;
20730 if (init_table[itpos149]) return;
20731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20732 fra.me.file = LOCATE_parser;
20733 fra.me.line = 6259;
20734 fra.me.meth = LOCATE_parser___ReduceAction146___init;
20735 fra.me.has_broke = 0;
20736 fra.me.REG_size = 2;
20737 fra.me.REG[0] = NIT_NULL;
20738 fra.me.REG[1] = NIT_NULL;
20739 fra.me.REG[0] = p0;
20740 REGB0 = p1;
20741 /* ./parser//parser.nit:6259 */
20742 fra.me.REG[1] = fra.me.REG[0];
20743 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20744 ATTR_parser___ReduceAction146____goto(fra.me.REG[1]) = REGB0;
20745 stack_frame_head = fra.me.prev;
20746 init_table[itpos149] = 1;
20747 return;
20748 }
20749 void parser___ReduceAction147___action(val_t p0, val_t p1){
20750 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20751 val_t REGB0;
20752 val_t tmp;
20753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20754 fra.me.file = LOCATE_parser;
20755 fra.me.line = 6263;
20756 fra.me.meth = LOCATE_parser___ReduceAction147___action;
20757 fra.me.has_broke = 0;
20758 fra.me.REG_size = 4;
20759 fra.me.REG[0] = NIT_NULL;
20760 fra.me.REG[1] = NIT_NULL;
20761 fra.me.REG[2] = NIT_NULL;
20762 fra.me.REG[3] = NIT_NULL;
20763 fra.me.REG[0] = p0;
20764 fra.me.REG[1] = p1;
20765 /* ./parser//parser.nit:6265 */
20766 fra.me.REG[2] = NIT_NULL;
20767 /* ./parser//parser.nit:6266 */
20768 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20769 /* ./parser//parser.nit:6267 */
20770 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20771 /* ./parser//parser.nit:6269 */
20772 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwprotected, ID_TKwprotected)) /*cast nullable TKwprotected*/;
20773 if (UNTAG_Bool(REGB0)) {
20774 } else {
20775 nit_abort("Assert failed", NULL, LOCATE_parser, 6269);
20776 }
20777 /* ./parser//parser.nit:6270 */
20778 fra.me.REG[3] = NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility(fra.me.REG[3]);
20779 /* ./parser//parser.nit:6273 */
20780 fra.me.REG[2] = fra.me.REG[3];
20781 /* ./parser//parser.nit:6274 */
20782 REGB0 = TAG_Bool(ATTR_parser___ReduceAction147____goto(fra.me.REG[0])!=NIT_NULL);
20783 if (UNTAG_Bool(REGB0)) {
20784 } else {
20785 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6274);
20786 }
20787 REGB0 = ATTR_parser___ReduceAction147____goto(fra.me.REG[0]);
20788 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20789 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20790 stack_frame_head = fra.me.prev;
20791 return;
20792 }
20793 void parser___ReduceAction147___init(val_t p0, val_t p1, int* init_table){
20794 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction147].i;
20795 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20796 val_t REGB0;
20797 val_t tmp;
20798 if (init_table[itpos150]) return;
20799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20800 fra.me.file = LOCATE_parser;
20801 fra.me.line = 6277;
20802 fra.me.meth = LOCATE_parser___ReduceAction147___init;
20803 fra.me.has_broke = 0;
20804 fra.me.REG_size = 2;
20805 fra.me.REG[0] = NIT_NULL;
20806 fra.me.REG[1] = NIT_NULL;
20807 fra.me.REG[0] = p0;
20808 REGB0 = p1;
20809 /* ./parser//parser.nit:6277 */
20810 fra.me.REG[1] = fra.me.REG[0];
20811 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20812 ATTR_parser___ReduceAction147____goto(fra.me.REG[1]) = REGB0;
20813 stack_frame_head = fra.me.prev;
20814 init_table[itpos150] = 1;
20815 return;
20816 }
20817 void parser___ReduceAction148___action(val_t p0, val_t p1){
20818 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20819 val_t REGB0;
20820 val_t tmp;
20821 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20822 fra.me.file = LOCATE_parser;
20823 fra.me.line = 6281;
20824 fra.me.meth = LOCATE_parser___ReduceAction148___action;
20825 fra.me.has_broke = 0;
20826 fra.me.REG_size = 4;
20827 fra.me.REG[0] = NIT_NULL;
20828 fra.me.REG[1] = NIT_NULL;
20829 fra.me.REG[2] = NIT_NULL;
20830 fra.me.REG[3] = NIT_NULL;
20831 fra.me.REG[0] = p0;
20832 fra.me.REG[1] = p1;
20833 /* ./parser//parser.nit:6283 */
20834 fra.me.REG[2] = NIT_NULL;
20835 /* ./parser//parser.nit:6284 */
20836 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20837 /* ./parser//parser.nit:6285 */
20838 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20839 /* ./parser//parser.nit:6287 */
20840 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwintrude, ID_TKwintrude)) /*cast nullable TKwintrude*/;
20841 if (UNTAG_Bool(REGB0)) {
20842 } else {
20843 nit_abort("Assert failed", NULL, LOCATE_parser, 6287);
20844 }
20845 /* ./parser//parser.nit:6288 */
20846 fra.me.REG[3] = NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[3]);
20847 /* ./parser//parser.nit:6291 */
20848 fra.me.REG[2] = fra.me.REG[3];
20849 /* ./parser//parser.nit:6292 */
20850 REGB0 = TAG_Bool(ATTR_parser___ReduceAction148____goto(fra.me.REG[0])!=NIT_NULL);
20851 if (UNTAG_Bool(REGB0)) {
20852 } else {
20853 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6292);
20854 }
20855 REGB0 = ATTR_parser___ReduceAction148____goto(fra.me.REG[0]);
20856 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20857 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20858 stack_frame_head = fra.me.prev;
20859 return;
20860 }
20861 void parser___ReduceAction148___init(val_t p0, val_t p1, int* init_table){
20862 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction148].i;
20863 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20864 val_t REGB0;
20865 val_t tmp;
20866 if (init_table[itpos151]) return;
20867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20868 fra.me.file = LOCATE_parser;
20869 fra.me.line = 6295;
20870 fra.me.meth = LOCATE_parser___ReduceAction148___init;
20871 fra.me.has_broke = 0;
20872 fra.me.REG_size = 2;
20873 fra.me.REG[0] = NIT_NULL;
20874 fra.me.REG[1] = NIT_NULL;
20875 fra.me.REG[0] = p0;
20876 REGB0 = p1;
20877 /* ./parser//parser.nit:6295 */
20878 fra.me.REG[1] = fra.me.REG[0];
20879 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20880 ATTR_parser___ReduceAction148____goto(fra.me.REG[1]) = REGB0;
20881 stack_frame_head = fra.me.prev;
20882 init_table[itpos151] = 1;
20883 return;
20884 }
20885 void parser___ReduceAction149___action(val_t p0, val_t p1){
20886 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20887 val_t REGB0;
20888 val_t tmp;
20889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20890 fra.me.file = LOCATE_parser;
20891 fra.me.line = 6299;
20892 fra.me.meth = LOCATE_parser___ReduceAction149___action;
20893 fra.me.has_broke = 0;
20894 fra.me.REG_size = 4;
20895 fra.me.REG[0] = NIT_NULL;
20896 fra.me.REG[1] = NIT_NULL;
20897 fra.me.REG[2] = NIT_NULL;
20898 fra.me.REG[3] = NIT_NULL;
20899 fra.me.REG[0] = p0;
20900 fra.me.REG[1] = p1;
20901 /* ./parser//parser.nit:6301 */
20902 fra.me.REG[2] = NIT_NULL;
20903 /* ./parser//parser.nit:6302 */
20904 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20905 /* ./parser//parser.nit:6304 */
20906 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
20907 if (UNTAG_Bool(REGB0)) {
20908 } else {
20909 nit_abort("Assert failed", NULL, LOCATE_parser, 6304);
20910 }
20911 /* ./parser//parser.nit:6305 */
20912 fra.me.REG[3] = NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid(fra.me.REG[3]);
20913 /* ./parser//parser.nit:6308 */
20914 fra.me.REG[2] = fra.me.REG[3];
20915 /* ./parser//parser.nit:6309 */
20916 REGB0 = TAG_Bool(ATTR_parser___ReduceAction149____goto(fra.me.REG[0])!=NIT_NULL);
20917 if (UNTAG_Bool(REGB0)) {
20918 } else {
20919 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6309);
20920 }
20921 REGB0 = ATTR_parser___ReduceAction149____goto(fra.me.REG[0]);
20922 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20923 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20924 stack_frame_head = fra.me.prev;
20925 return;
20926 }
20927 void parser___ReduceAction149___init(val_t p0, val_t p1, int* init_table){
20928 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction149].i;
20929 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20930 val_t REGB0;
20931 val_t tmp;
20932 if (init_table[itpos152]) return;
20933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20934 fra.me.file = LOCATE_parser;
20935 fra.me.line = 6312;
20936 fra.me.meth = LOCATE_parser___ReduceAction149___init;
20937 fra.me.has_broke = 0;
20938 fra.me.REG_size = 2;
20939 fra.me.REG[0] = NIT_NULL;
20940 fra.me.REG[1] = NIT_NULL;
20941 fra.me.REG[0] = p0;
20942 REGB0 = p1;
20943 /* ./parser//parser.nit:6312 */
20944 fra.me.REG[1] = fra.me.REG[0];
20945 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20946 ATTR_parser___ReduceAction149____goto(fra.me.REG[1]) = REGB0;
20947 stack_frame_head = fra.me.prev;
20948 init_table[itpos152] = 1;
20949 return;
20950 }
20951 void parser___ReduceAction150___action(val_t p0, val_t p1){
20952 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20953 val_t REGB0;
20954 val_t tmp;
20955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20956 fra.me.file = LOCATE_parser;
20957 fra.me.line = 6316;
20958 fra.me.meth = LOCATE_parser___ReduceAction150___action;
20959 fra.me.has_broke = 0;
20960 fra.me.REG_size = 4;
20961 fra.me.REG[0] = NIT_NULL;
20962 fra.me.REG[1] = NIT_NULL;
20963 fra.me.REG[2] = NIT_NULL;
20964 fra.me.REG[3] = NIT_NULL;
20965 fra.me.REG[0] = p0;
20966 fra.me.REG[1] = p1;
20967 /* ./parser//parser.nit:6318 */
20968 fra.me.REG[2] = NIT_NULL;
20969 /* ./parser//parser.nit:6319 */
20970 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20971 /* ./parser//parser.nit:6321 */
20972 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TPlus, ID_TPlus)) /*cast nullable TPlus*/;
20973 if (UNTAG_Bool(REGB0)) {
20974 } else {
20975 nit_abort("Assert failed", NULL, LOCATE_parser, 6321);
20976 }
20977 /* ./parser//parser.nit:6322 */
20978 fra.me.REG[3] = NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid(fra.me.REG[3]);
20979 /* ./parser//parser.nit:6325 */
20980 fra.me.REG[2] = fra.me.REG[3];
20981 /* ./parser//parser.nit:6326 */
20982 REGB0 = TAG_Bool(ATTR_parser___ReduceAction150____goto(fra.me.REG[0])!=NIT_NULL);
20983 if (UNTAG_Bool(REGB0)) {
20984 } else {
20985 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6326);
20986 }
20987 REGB0 = ATTR_parser___ReduceAction150____goto(fra.me.REG[0]);
20988 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20989 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20990 stack_frame_head = fra.me.prev;
20991 return;
20992 }
20993 void parser___ReduceAction150___init(val_t p0, val_t p1, int* init_table){
20994 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction150].i;
20995 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20996 val_t REGB0;
20997 val_t tmp;
20998 if (init_table[itpos153]) return;
20999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21000 fra.me.file = LOCATE_parser;
21001 fra.me.line = 6329;
21002 fra.me.meth = LOCATE_parser___ReduceAction150___init;
21003 fra.me.has_broke = 0;
21004 fra.me.REG_size = 2;
21005 fra.me.REG[0] = NIT_NULL;
21006 fra.me.REG[1] = NIT_NULL;
21007 fra.me.REG[0] = p0;
21008 REGB0 = p1;
21009 /* ./parser//parser.nit:6329 */
21010 fra.me.REG[1] = fra.me.REG[0];
21011 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21012 ATTR_parser___ReduceAction150____goto(fra.me.REG[1]) = REGB0;
21013 stack_frame_head = fra.me.prev;
21014 init_table[itpos153] = 1;
21015 return;
21016 }
21017 void parser___ReduceAction151___action(val_t p0, val_t p1){
21018 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21019 val_t REGB0;
21020 val_t tmp;
21021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21022 fra.me.file = LOCATE_parser;
21023 fra.me.line = 6333;
21024 fra.me.meth = LOCATE_parser___ReduceAction151___action;
21025 fra.me.has_broke = 0;
21026 fra.me.REG_size = 4;
21027 fra.me.REG[0] = NIT_NULL;
21028 fra.me.REG[1] = NIT_NULL;
21029 fra.me.REG[2] = NIT_NULL;
21030 fra.me.REG[3] = NIT_NULL;
21031 fra.me.REG[0] = p0;
21032 fra.me.REG[1] = p1;
21033 /* ./parser//parser.nit:6335 */
21034 fra.me.REG[2] = NIT_NULL;
21035 /* ./parser//parser.nit:6336 */
21036 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21037 /* ./parser//parser.nit:6338 */
21038 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TMinus, ID_TMinus)) /*cast nullable TMinus*/;
21039 if (UNTAG_Bool(REGB0)) {
21040 } else {
21041 nit_abort("Assert failed", NULL, LOCATE_parser, 6338);
21042 }
21043 /* ./parser//parser.nit:6339 */
21044 fra.me.REG[3] = NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid(fra.me.REG[3]);
21045 /* ./parser//parser.nit:6342 */
21046 fra.me.REG[2] = fra.me.REG[3];
21047 /* ./parser//parser.nit:6343 */
21048 REGB0 = TAG_Bool(ATTR_parser___ReduceAction151____goto(fra.me.REG[0])!=NIT_NULL);
21049 if (UNTAG_Bool(REGB0)) {
21050 } else {
21051 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6343);
21052 }
21053 REGB0 = ATTR_parser___ReduceAction151____goto(fra.me.REG[0]);
21054 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21055 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21056 stack_frame_head = fra.me.prev;
21057 return;
21058 }
21059 void parser___ReduceAction151___init(val_t p0, val_t p1, int* init_table){
21060 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction151].i;
21061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21062 val_t REGB0;
21063 val_t tmp;
21064 if (init_table[itpos154]) return;
21065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21066 fra.me.file = LOCATE_parser;
21067 fra.me.line = 6346;
21068 fra.me.meth = LOCATE_parser___ReduceAction151___init;
21069 fra.me.has_broke = 0;
21070 fra.me.REG_size = 2;
21071 fra.me.REG[0] = NIT_NULL;
21072 fra.me.REG[1] = NIT_NULL;
21073 fra.me.REG[0] = p0;
21074 REGB0 = p1;
21075 /* ./parser//parser.nit:6346 */
21076 fra.me.REG[1] = fra.me.REG[0];
21077 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21078 ATTR_parser___ReduceAction151____goto(fra.me.REG[1]) = REGB0;
21079 stack_frame_head = fra.me.prev;
21080 init_table[itpos154] = 1;
21081 return;
21082 }
21083 void parser___ReduceAction152___action(val_t p0, val_t p1){
21084 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21085 val_t REGB0;
21086 val_t tmp;
21087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21088 fra.me.file = LOCATE_parser;
21089 fra.me.line = 6350;
21090 fra.me.meth = LOCATE_parser___ReduceAction152___action;
21091 fra.me.has_broke = 0;
21092 fra.me.REG_size = 4;
21093 fra.me.REG[0] = NIT_NULL;
21094 fra.me.REG[1] = NIT_NULL;
21095 fra.me.REG[2] = NIT_NULL;
21096 fra.me.REG[3] = NIT_NULL;
21097 fra.me.REG[0] = p0;
21098 fra.me.REG[1] = p1;
21099 /* ./parser//parser.nit:6352 */
21100 fra.me.REG[2] = NIT_NULL;
21101 /* ./parser//parser.nit:6353 */
21102 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21103 /* ./parser//parser.nit:6355 */
21104 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TStar, ID_TStar)) /*cast nullable TStar*/;
21105 if (UNTAG_Bool(REGB0)) {
21106 } else {
21107 nit_abort("Assert failed", NULL, LOCATE_parser, 6355);
21108 }
21109 /* ./parser//parser.nit:6356 */
21110 fra.me.REG[3] = NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid(fra.me.REG[3]);
21111 /* ./parser//parser.nit:6359 */
21112 fra.me.REG[2] = fra.me.REG[3];
21113 /* ./parser//parser.nit:6360 */
21114 REGB0 = TAG_Bool(ATTR_parser___ReduceAction152____goto(fra.me.REG[0])!=NIT_NULL);
21115 if (UNTAG_Bool(REGB0)) {
21116 } else {
21117 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6360);
21118 }
21119 REGB0 = ATTR_parser___ReduceAction152____goto(fra.me.REG[0]);
21120 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21121 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21122 stack_frame_head = fra.me.prev;
21123 return;
21124 }
21125 void parser___ReduceAction152___init(val_t p0, val_t p1, int* init_table){
21126 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction152].i;
21127 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21128 val_t REGB0;
21129 val_t tmp;
21130 if (init_table[itpos155]) return;
21131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21132 fra.me.file = LOCATE_parser;
21133 fra.me.line = 6363;
21134 fra.me.meth = LOCATE_parser___ReduceAction152___init;
21135 fra.me.has_broke = 0;
21136 fra.me.REG_size = 2;
21137 fra.me.REG[0] = NIT_NULL;
21138 fra.me.REG[1] = NIT_NULL;
21139 fra.me.REG[0] = p0;
21140 REGB0 = p1;
21141 /* ./parser//parser.nit:6363 */
21142 fra.me.REG[1] = fra.me.REG[0];
21143 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21144 ATTR_parser___ReduceAction152____goto(fra.me.REG[1]) = REGB0;
21145 stack_frame_head = fra.me.prev;
21146 init_table[itpos155] = 1;
21147 return;
21148 }
21149 void parser___ReduceAction153___action(val_t p0, val_t p1){
21150 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21151 val_t REGB0;
21152 val_t tmp;
21153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21154 fra.me.file = LOCATE_parser;
21155 fra.me.line = 6367;
21156 fra.me.meth = LOCATE_parser___ReduceAction153___action;
21157 fra.me.has_broke = 0;
21158 fra.me.REG_size = 4;
21159 fra.me.REG[0] = NIT_NULL;
21160 fra.me.REG[1] = NIT_NULL;
21161 fra.me.REG[2] = NIT_NULL;
21162 fra.me.REG[3] = NIT_NULL;
21163 fra.me.REG[0] = p0;
21164 fra.me.REG[1] = p1;
21165 /* ./parser//parser.nit:6369 */
21166 fra.me.REG[2] = NIT_NULL;
21167 /* ./parser//parser.nit:6370 */
21168 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21169 /* ./parser//parser.nit:6372 */
21170 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TSlash, ID_TSlash)) /*cast nullable TSlash*/;
21171 if (UNTAG_Bool(REGB0)) {
21172 } else {
21173 nit_abort("Assert failed", NULL, LOCATE_parser, 6372);
21174 }
21175 /* ./parser//parser.nit:6373 */
21176 fra.me.REG[3] = NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid(fra.me.REG[3]);
21177 /* ./parser//parser.nit:6376 */
21178 fra.me.REG[2] = fra.me.REG[3];
21179 /* ./parser//parser.nit:6377 */
21180 REGB0 = TAG_Bool(ATTR_parser___ReduceAction153____goto(fra.me.REG[0])!=NIT_NULL);
21181 if (UNTAG_Bool(REGB0)) {
21182 } else {
21183 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6377);
21184 }
21185 REGB0 = ATTR_parser___ReduceAction153____goto(fra.me.REG[0]);
21186 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21187 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21188 stack_frame_head = fra.me.prev;
21189 return;
21190 }
21191 void parser___ReduceAction153___init(val_t p0, val_t p1, int* init_table){
21192 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction153].i;
21193 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21194 val_t REGB0;
21195 val_t tmp;
21196 if (init_table[itpos156]) return;
21197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21198 fra.me.file = LOCATE_parser;
21199 fra.me.line = 6380;
21200 fra.me.meth = LOCATE_parser___ReduceAction153___init;
21201 fra.me.has_broke = 0;
21202 fra.me.REG_size = 2;
21203 fra.me.REG[0] = NIT_NULL;
21204 fra.me.REG[1] = NIT_NULL;
21205 fra.me.REG[0] = p0;
21206 REGB0 = p1;
21207 /* ./parser//parser.nit:6380 */
21208 fra.me.REG[1] = fra.me.REG[0];
21209 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21210 ATTR_parser___ReduceAction153____goto(fra.me.REG[1]) = REGB0;
21211 stack_frame_head = fra.me.prev;
21212 init_table[itpos156] = 1;
21213 return;
21214 }
21215 void parser___ReduceAction154___action(val_t p0, val_t p1){
21216 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21217 val_t REGB0;
21218 val_t tmp;
21219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21220 fra.me.file = LOCATE_parser;
21221 fra.me.line = 6384;
21222 fra.me.meth = LOCATE_parser___ReduceAction154___action;
21223 fra.me.has_broke = 0;
21224 fra.me.REG_size = 4;
21225 fra.me.REG[0] = NIT_NULL;
21226 fra.me.REG[1] = NIT_NULL;
21227 fra.me.REG[2] = NIT_NULL;
21228 fra.me.REG[3] = NIT_NULL;
21229 fra.me.REG[0] = p0;
21230 fra.me.REG[1] = p1;
21231 /* ./parser//parser.nit:6386 */
21232 fra.me.REG[2] = NIT_NULL;
21233 /* ./parser//parser.nit:6387 */
21234 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21235 /* ./parser//parser.nit:6389 */
21236 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TPercent, ID_TPercent)) /*cast nullable TPercent*/;
21237 if (UNTAG_Bool(REGB0)) {
21238 } else {
21239 nit_abort("Assert failed", NULL, LOCATE_parser, 6389);
21240 }
21241 /* ./parser//parser.nit:6390 */
21242 fra.me.REG[3] = NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid(fra.me.REG[3]);
21243 /* ./parser//parser.nit:6393 */
21244 fra.me.REG[2] = fra.me.REG[3];
21245 /* ./parser//parser.nit:6394 */
21246 REGB0 = TAG_Bool(ATTR_parser___ReduceAction154____goto(fra.me.REG[0])!=NIT_NULL);
21247 if (UNTAG_Bool(REGB0)) {
21248 } else {
21249 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6394);
21250 }
21251 REGB0 = ATTR_parser___ReduceAction154____goto(fra.me.REG[0]);
21252 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21253 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21254 stack_frame_head = fra.me.prev;
21255 return;
21256 }
21257 void parser___ReduceAction154___init(val_t p0, val_t p1, int* init_table){
21258 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction154].i;
21259 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21260 val_t REGB0;
21261 val_t tmp;
21262 if (init_table[itpos157]) return;
21263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21264 fra.me.file = LOCATE_parser;
21265 fra.me.line = 6397;
21266 fra.me.meth = LOCATE_parser___ReduceAction154___init;
21267 fra.me.has_broke = 0;
21268 fra.me.REG_size = 2;
21269 fra.me.REG[0] = NIT_NULL;
21270 fra.me.REG[1] = NIT_NULL;
21271 fra.me.REG[0] = p0;
21272 REGB0 = p1;
21273 /* ./parser//parser.nit:6397 */
21274 fra.me.REG[1] = fra.me.REG[0];
21275 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21276 ATTR_parser___ReduceAction154____goto(fra.me.REG[1]) = REGB0;
21277 stack_frame_head = fra.me.prev;
21278 init_table[itpos157] = 1;
21279 return;
21280 }
21281 void parser___ReduceAction155___action(val_t p0, val_t p1){
21282 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21283 val_t REGB0;
21284 val_t tmp;
21285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21286 fra.me.file = LOCATE_parser;
21287 fra.me.line = 6401;
21288 fra.me.meth = LOCATE_parser___ReduceAction155___action;
21289 fra.me.has_broke = 0;
21290 fra.me.REG_size = 4;
21291 fra.me.REG[0] = NIT_NULL;
21292 fra.me.REG[1] = NIT_NULL;
21293 fra.me.REG[2] = NIT_NULL;
21294 fra.me.REG[3] = NIT_NULL;
21295 fra.me.REG[0] = p0;
21296 fra.me.REG[1] = p1;
21297 /* ./parser//parser.nit:6403 */
21298 fra.me.REG[2] = NIT_NULL;
21299 /* ./parser//parser.nit:6404 */
21300 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21301 /* ./parser//parser.nit:6406 */
21302 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TEq, ID_TEq)) /*cast nullable TEq*/;
21303 if (UNTAG_Bool(REGB0)) {
21304 } else {
21305 nit_abort("Assert failed", NULL, LOCATE_parser, 6406);
21306 }
21307 /* ./parser//parser.nit:6407 */
21308 fra.me.REG[3] = NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid(fra.me.REG[3]);
21309 /* ./parser//parser.nit:6410 */
21310 fra.me.REG[2] = fra.me.REG[3];
21311 /* ./parser//parser.nit:6411 */
21312 REGB0 = TAG_Bool(ATTR_parser___ReduceAction155____goto(fra.me.REG[0])!=NIT_NULL);
21313 if (UNTAG_Bool(REGB0)) {
21314 } else {
21315 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6411);
21316 }
21317 REGB0 = ATTR_parser___ReduceAction155____goto(fra.me.REG[0]);
21318 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21319 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21320 stack_frame_head = fra.me.prev;
21321 return;
21322 }
21323 void parser___ReduceAction155___init(val_t p0, val_t p1, int* init_table){
21324 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction155].i;
21325 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21326 val_t REGB0;
21327 val_t tmp;
21328 if (init_table[itpos158]) return;
21329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21330 fra.me.file = LOCATE_parser;
21331 fra.me.line = 6414;
21332 fra.me.meth = LOCATE_parser___ReduceAction155___init;
21333 fra.me.has_broke = 0;
21334 fra.me.REG_size = 2;
21335 fra.me.REG[0] = NIT_NULL;
21336 fra.me.REG[1] = NIT_NULL;
21337 fra.me.REG[0] = p0;
21338 REGB0 = p1;
21339 /* ./parser//parser.nit:6414 */
21340 fra.me.REG[1] = fra.me.REG[0];
21341 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21342 ATTR_parser___ReduceAction155____goto(fra.me.REG[1]) = REGB0;
21343 stack_frame_head = fra.me.prev;
21344 init_table[itpos158] = 1;
21345 return;
21346 }
21347 void parser___ReduceAction156___action(val_t p0, val_t p1){
21348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21349 val_t REGB0;
21350 val_t tmp;
21351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21352 fra.me.file = LOCATE_parser;
21353 fra.me.line = 6418;
21354 fra.me.meth = LOCATE_parser___ReduceAction156___action;
21355 fra.me.has_broke = 0;
21356 fra.me.REG_size = 4;
21357 fra.me.REG[0] = NIT_NULL;
21358 fra.me.REG[1] = NIT_NULL;
21359 fra.me.REG[2] = NIT_NULL;
21360 fra.me.REG[3] = NIT_NULL;
21361 fra.me.REG[0] = p0;
21362 fra.me.REG[1] = p1;
21363 /* ./parser//parser.nit:6420 */
21364 fra.me.REG[2] = NIT_NULL;
21365 /* ./parser//parser.nit:6421 */
21366 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21367 /* ./parser//parser.nit:6423 */
21368 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TNe, ID_TNe)) /*cast nullable TNe*/;
21369 if (UNTAG_Bool(REGB0)) {
21370 } else {
21371 nit_abort("Assert failed", NULL, LOCATE_parser, 6423);
21372 }
21373 /* ./parser//parser.nit:6424 */
21374 fra.me.REG[3] = NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid(fra.me.REG[3]);
21375 /* ./parser//parser.nit:6427 */
21376 fra.me.REG[2] = fra.me.REG[3];
21377 /* ./parser//parser.nit:6428 */
21378 REGB0 = TAG_Bool(ATTR_parser___ReduceAction156____goto(fra.me.REG[0])!=NIT_NULL);
21379 if (UNTAG_Bool(REGB0)) {
21380 } else {
21381 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6428);
21382 }
21383 REGB0 = ATTR_parser___ReduceAction156____goto(fra.me.REG[0]);
21384 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21385 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21386 stack_frame_head = fra.me.prev;
21387 return;
21388 }
21389 void parser___ReduceAction156___init(val_t p0, val_t p1, int* init_table){
21390 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction156].i;
21391 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21392 val_t REGB0;
21393 val_t tmp;
21394 if (init_table[itpos159]) return;
21395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21396 fra.me.file = LOCATE_parser;
21397 fra.me.line = 6431;
21398 fra.me.meth = LOCATE_parser___ReduceAction156___init;
21399 fra.me.has_broke = 0;
21400 fra.me.REG_size = 2;
21401 fra.me.REG[0] = NIT_NULL;
21402 fra.me.REG[1] = NIT_NULL;
21403 fra.me.REG[0] = p0;
21404 REGB0 = p1;
21405 /* ./parser//parser.nit:6431 */
21406 fra.me.REG[1] = fra.me.REG[0];
21407 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21408 ATTR_parser___ReduceAction156____goto(fra.me.REG[1]) = REGB0;
21409 stack_frame_head = fra.me.prev;
21410 init_table[itpos159] = 1;
21411 return;
21412 }
21413 void parser___ReduceAction157___action(val_t p0, val_t p1){
21414 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21415 val_t REGB0;
21416 val_t tmp;
21417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21418 fra.me.file = LOCATE_parser;
21419 fra.me.line = 6435;
21420 fra.me.meth = LOCATE_parser___ReduceAction157___action;
21421 fra.me.has_broke = 0;
21422 fra.me.REG_size = 4;
21423 fra.me.REG[0] = NIT_NULL;
21424 fra.me.REG[1] = NIT_NULL;
21425 fra.me.REG[2] = NIT_NULL;
21426 fra.me.REG[3] = NIT_NULL;
21427 fra.me.REG[0] = p0;
21428 fra.me.REG[1] = p1;
21429 /* ./parser//parser.nit:6437 */
21430 fra.me.REG[2] = NIT_NULL;
21431 /* ./parser//parser.nit:6438 */
21432 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21433 /* ./parser//parser.nit:6440 */
21434 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TLe, ID_TLe)) /*cast nullable TLe*/;
21435 if (UNTAG_Bool(REGB0)) {
21436 } else {
21437 nit_abort("Assert failed", NULL, LOCATE_parser, 6440);
21438 }
21439 /* ./parser//parser.nit:6441 */
21440 fra.me.REG[3] = NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid(fra.me.REG[3]);
21441 /* ./parser//parser.nit:6444 */
21442 fra.me.REG[2] = fra.me.REG[3];
21443 /* ./parser//parser.nit:6445 */
21444 REGB0 = TAG_Bool(ATTR_parser___ReduceAction157____goto(fra.me.REG[0])!=NIT_NULL);
21445 if (UNTAG_Bool(REGB0)) {
21446 } else {
21447 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6445);
21448 }
21449 REGB0 = ATTR_parser___ReduceAction157____goto(fra.me.REG[0]);
21450 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21451 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21452 stack_frame_head = fra.me.prev;
21453 return;
21454 }
21455 void parser___ReduceAction157___init(val_t p0, val_t p1, int* init_table){
21456 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction157].i;
21457 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21458 val_t REGB0;
21459 val_t tmp;
21460 if (init_table[itpos160]) return;
21461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21462 fra.me.file = LOCATE_parser;
21463 fra.me.line = 6448;
21464 fra.me.meth = LOCATE_parser___ReduceAction157___init;
21465 fra.me.has_broke = 0;
21466 fra.me.REG_size = 2;
21467 fra.me.REG[0] = NIT_NULL;
21468 fra.me.REG[1] = NIT_NULL;
21469 fra.me.REG[0] = p0;
21470 REGB0 = p1;
21471 /* ./parser//parser.nit:6448 */
21472 fra.me.REG[1] = fra.me.REG[0];
21473 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21474 ATTR_parser___ReduceAction157____goto(fra.me.REG[1]) = REGB0;
21475 stack_frame_head = fra.me.prev;
21476 init_table[itpos160] = 1;
21477 return;
21478 }
21479 void parser___ReduceAction158___action(val_t p0, val_t p1){
21480 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21481 val_t REGB0;
21482 val_t tmp;
21483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21484 fra.me.file = LOCATE_parser;
21485 fra.me.line = 6452;
21486 fra.me.meth = LOCATE_parser___ReduceAction158___action;
21487 fra.me.has_broke = 0;
21488 fra.me.REG_size = 4;
21489 fra.me.REG[0] = NIT_NULL;
21490 fra.me.REG[1] = NIT_NULL;
21491 fra.me.REG[2] = NIT_NULL;
21492 fra.me.REG[3] = NIT_NULL;
21493 fra.me.REG[0] = p0;
21494 fra.me.REG[1] = p1;
21495 /* ./parser//parser.nit:6454 */
21496 fra.me.REG[2] = NIT_NULL;
21497 /* ./parser//parser.nit:6455 */
21498 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21499 /* ./parser//parser.nit:6457 */
21500 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TGe, ID_TGe)) /*cast nullable TGe*/;
21501 if (UNTAG_Bool(REGB0)) {
21502 } else {
21503 nit_abort("Assert failed", NULL, LOCATE_parser, 6457);
21504 }
21505 /* ./parser//parser.nit:6458 */
21506 fra.me.REG[3] = NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid(fra.me.REG[3]);
21507 /* ./parser//parser.nit:6461 */
21508 fra.me.REG[2] = fra.me.REG[3];
21509 /* ./parser//parser.nit:6462 */
21510 REGB0 = TAG_Bool(ATTR_parser___ReduceAction158____goto(fra.me.REG[0])!=NIT_NULL);
21511 if (UNTAG_Bool(REGB0)) {
21512 } else {
21513 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6462);
21514 }
21515 REGB0 = ATTR_parser___ReduceAction158____goto(fra.me.REG[0]);
21516 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21517 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21518 stack_frame_head = fra.me.prev;
21519 return;
21520 }
21521 void parser___ReduceAction158___init(val_t p0, val_t p1, int* init_table){
21522 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction158].i;
21523 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21524 val_t REGB0;
21525 val_t tmp;
21526 if (init_table[itpos161]) return;
21527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21528 fra.me.file = LOCATE_parser;
21529 fra.me.line = 6465;
21530 fra.me.meth = LOCATE_parser___ReduceAction158___init;
21531 fra.me.has_broke = 0;
21532 fra.me.REG_size = 2;
21533 fra.me.REG[0] = NIT_NULL;
21534 fra.me.REG[1] = NIT_NULL;
21535 fra.me.REG[0] = p0;
21536 REGB0 = p1;
21537 /* ./parser//parser.nit:6465 */
21538 fra.me.REG[1] = fra.me.REG[0];
21539 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21540 ATTR_parser___ReduceAction158____goto(fra.me.REG[1]) = REGB0;
21541 stack_frame_head = fra.me.prev;
21542 init_table[itpos161] = 1;
21543 return;
21544 }
21545 void parser___ReduceAction159___action(val_t p0, val_t p1){
21546 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21547 val_t REGB0;
21548 val_t tmp;
21549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21550 fra.me.file = LOCATE_parser;
21551 fra.me.line = 6469;
21552 fra.me.meth = LOCATE_parser___ReduceAction159___action;
21553 fra.me.has_broke = 0;
21554 fra.me.REG_size = 4;
21555 fra.me.REG[0] = NIT_NULL;
21556 fra.me.REG[1] = NIT_NULL;
21557 fra.me.REG[2] = NIT_NULL;
21558 fra.me.REG[3] = NIT_NULL;
21559 fra.me.REG[0] = p0;
21560 fra.me.REG[1] = p1;
21561 /* ./parser//parser.nit:6471 */
21562 fra.me.REG[2] = NIT_NULL;
21563 /* ./parser//parser.nit:6472 */
21564 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21565 /* ./parser//parser.nit:6474 */
21566 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TLt, ID_TLt)) /*cast nullable TLt*/;
21567 if (UNTAG_Bool(REGB0)) {
21568 } else {
21569 nit_abort("Assert failed", NULL, LOCATE_parser, 6474);
21570 }
21571 /* ./parser//parser.nit:6475 */
21572 fra.me.REG[3] = NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid(fra.me.REG[3]);
21573 /* ./parser//parser.nit:6478 */
21574 fra.me.REG[2] = fra.me.REG[3];
21575 /* ./parser//parser.nit:6479 */
21576 REGB0 = TAG_Bool(ATTR_parser___ReduceAction159____goto(fra.me.REG[0])!=NIT_NULL);
21577 if (UNTAG_Bool(REGB0)) {
21578 } else {
21579 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6479);
21580 }
21581 REGB0 = ATTR_parser___ReduceAction159____goto(fra.me.REG[0]);
21582 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21583 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21584 stack_frame_head = fra.me.prev;
21585 return;
21586 }
21587 void parser___ReduceAction159___init(val_t p0, val_t p1, int* init_table){
21588 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction159].i;
21589 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21590 val_t REGB0;
21591 val_t tmp;
21592 if (init_table[itpos162]) return;
21593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21594 fra.me.file = LOCATE_parser;
21595 fra.me.line = 6482;
21596 fra.me.meth = LOCATE_parser___ReduceAction159___init;
21597 fra.me.has_broke = 0;
21598 fra.me.REG_size = 2;
21599 fra.me.REG[0] = NIT_NULL;
21600 fra.me.REG[1] = NIT_NULL;
21601 fra.me.REG[0] = p0;
21602 REGB0 = p1;
21603 /* ./parser//parser.nit:6482 */
21604 fra.me.REG[1] = fra.me.REG[0];
21605 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21606 ATTR_parser___ReduceAction159____goto(fra.me.REG[1]) = REGB0;
21607 stack_frame_head = fra.me.prev;
21608 init_table[itpos162] = 1;
21609 return;
21610 }
21611 void parser___ReduceAction160___action(val_t p0, val_t p1){
21612 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21613 val_t REGB0;
21614 val_t tmp;
21615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21616 fra.me.file = LOCATE_parser;
21617 fra.me.line = 6486;
21618 fra.me.meth = LOCATE_parser___ReduceAction160___action;
21619 fra.me.has_broke = 0;
21620 fra.me.REG_size = 4;
21621 fra.me.REG[0] = NIT_NULL;
21622 fra.me.REG[1] = NIT_NULL;
21623 fra.me.REG[2] = NIT_NULL;
21624 fra.me.REG[3] = NIT_NULL;
21625 fra.me.REG[0] = p0;
21626 fra.me.REG[1] = p1;
21627 /* ./parser//parser.nit:6488 */
21628 fra.me.REG[2] = NIT_NULL;
21629 /* ./parser//parser.nit:6489 */
21630 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21631 /* ./parser//parser.nit:6491 */
21632 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TGt, ID_TGt)) /*cast nullable TGt*/;
21633 if (UNTAG_Bool(REGB0)) {
21634 } else {
21635 nit_abort("Assert failed", NULL, LOCATE_parser, 6491);
21636 }
21637 /* ./parser//parser.nit:6492 */
21638 fra.me.REG[3] = NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid(fra.me.REG[3]);
21639 /* ./parser//parser.nit:6495 */
21640 fra.me.REG[2] = fra.me.REG[3];
21641 /* ./parser//parser.nit:6496 */
21642 REGB0 = TAG_Bool(ATTR_parser___ReduceAction160____goto(fra.me.REG[0])!=NIT_NULL);
21643 if (UNTAG_Bool(REGB0)) {
21644 } else {
21645 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6496);
21646 }
21647 REGB0 = ATTR_parser___ReduceAction160____goto(fra.me.REG[0]);
21648 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21649 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21650 stack_frame_head = fra.me.prev;
21651 return;
21652 }
21653 void parser___ReduceAction160___init(val_t p0, val_t p1, int* init_table){
21654 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction160].i;
21655 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21656 val_t REGB0;
21657 val_t tmp;
21658 if (init_table[itpos163]) return;
21659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21660 fra.me.file = LOCATE_parser;
21661 fra.me.line = 6499;
21662 fra.me.meth = LOCATE_parser___ReduceAction160___init;
21663 fra.me.has_broke = 0;
21664 fra.me.REG_size = 2;
21665 fra.me.REG[0] = NIT_NULL;
21666 fra.me.REG[1] = NIT_NULL;
21667 fra.me.REG[0] = p0;
21668 REGB0 = p1;
21669 /* ./parser//parser.nit:6499 */
21670 fra.me.REG[1] = fra.me.REG[0];
21671 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21672 ATTR_parser___ReduceAction160____goto(fra.me.REG[1]) = REGB0;
21673 stack_frame_head = fra.me.prev;
21674 init_table[itpos163] = 1;
21675 return;
21676 }
21677 void parser___ReduceAction161___action(val_t p0, val_t p1){
21678 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21679 val_t REGB0;
21680 val_t tmp;
21681 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21682 fra.me.file = LOCATE_parser;
21683 fra.me.line = 6503;
21684 fra.me.meth = LOCATE_parser___ReduceAction161___action;
21685 fra.me.has_broke = 0;
21686 fra.me.REG_size = 4;
21687 fra.me.REG[0] = NIT_NULL;
21688 fra.me.REG[1] = NIT_NULL;
21689 fra.me.REG[2] = NIT_NULL;
21690 fra.me.REG[3] = NIT_NULL;
21691 fra.me.REG[0] = p0;
21692 fra.me.REG[1] = p1;
21693 /* ./parser//parser.nit:6505 */
21694 fra.me.REG[2] = NIT_NULL;
21695 /* ./parser//parser.nit:6506 */
21696 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21697 /* ./parser//parser.nit:6508 */
21698 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TLl, ID_TLl)) /*cast nullable TLl*/;
21699 if (UNTAG_Bool(REGB0)) {
21700 } else {
21701 nit_abort("Assert failed", NULL, LOCATE_parser, 6508);
21702 }
21703 /* ./parser//parser.nit:6509 */
21704 fra.me.REG[3] = NEW_ALlMethid_parser_prod___ALlMethid___init_allmethid(fra.me.REG[3]);
21705 /* ./parser//parser.nit:6512 */
21706 fra.me.REG[2] = fra.me.REG[3];
21707 /* ./parser//parser.nit:6513 */
21708 REGB0 = TAG_Bool(ATTR_parser___ReduceAction161____goto(fra.me.REG[0])!=NIT_NULL);
21709 if (UNTAG_Bool(REGB0)) {
21710 } else {
21711 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6513);
21712 }
21713 REGB0 = ATTR_parser___ReduceAction161____goto(fra.me.REG[0]);
21714 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21715 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21716 stack_frame_head = fra.me.prev;
21717 return;
21718 }
21719 void parser___ReduceAction161___init(val_t p0, val_t p1, int* init_table){
21720 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction161].i;
21721 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21722 val_t REGB0;
21723 val_t tmp;
21724 if (init_table[itpos164]) return;
21725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21726 fra.me.file = LOCATE_parser;
21727 fra.me.line = 6516;
21728 fra.me.meth = LOCATE_parser___ReduceAction161___init;
21729 fra.me.has_broke = 0;
21730 fra.me.REG_size = 2;
21731 fra.me.REG[0] = NIT_NULL;
21732 fra.me.REG[1] = NIT_NULL;
21733 fra.me.REG[0] = p0;
21734 REGB0 = p1;
21735 /* ./parser//parser.nit:6516 */
21736 fra.me.REG[1] = fra.me.REG[0];
21737 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21738 ATTR_parser___ReduceAction161____goto(fra.me.REG[1]) = REGB0;
21739 stack_frame_head = fra.me.prev;
21740 init_table[itpos164] = 1;
21741 return;
21742 }
21743 void parser___ReduceAction162___action(val_t p0, val_t p1){
21744 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21745 val_t REGB0;
21746 val_t tmp;
21747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21748 fra.me.file = LOCATE_parser;
21749 fra.me.line = 6520;
21750 fra.me.meth = LOCATE_parser___ReduceAction162___action;
21751 fra.me.has_broke = 0;
21752 fra.me.REG_size = 4;
21753 fra.me.REG[0] = NIT_NULL;
21754 fra.me.REG[1] = NIT_NULL;
21755 fra.me.REG[2] = NIT_NULL;
21756 fra.me.REG[3] = NIT_NULL;
21757 fra.me.REG[0] = p0;
21758 fra.me.REG[1] = p1;
21759 /* ./parser//parser.nit:6522 */
21760 fra.me.REG[2] = NIT_NULL;
21761 /* ./parser//parser.nit:6523 */
21762 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21763 /* ./parser//parser.nit:6525 */
21764 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TGg, ID_TGg)) /*cast nullable TGg*/;
21765 if (UNTAG_Bool(REGB0)) {
21766 } else {
21767 nit_abort("Assert failed", NULL, LOCATE_parser, 6525);
21768 }
21769 /* ./parser//parser.nit:6526 */
21770 fra.me.REG[3] = NEW_AGgMethid_parser_prod___AGgMethid___init_aggmethid(fra.me.REG[3]);
21771 /* ./parser//parser.nit:6529 */
21772 fra.me.REG[2] = fra.me.REG[3];
21773 /* ./parser//parser.nit:6530 */
21774 REGB0 = TAG_Bool(ATTR_parser___ReduceAction162____goto(fra.me.REG[0])!=NIT_NULL);
21775 if (UNTAG_Bool(REGB0)) {
21776 } else {
21777 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6530);
21778 }
21779 REGB0 = ATTR_parser___ReduceAction162____goto(fra.me.REG[0]);
21780 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21781 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21782 stack_frame_head = fra.me.prev;
21783 return;
21784 }
21785 void parser___ReduceAction162___init(val_t p0, val_t p1, int* init_table){
21786 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction162].i;
21787 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21788 val_t REGB0;
21789 val_t tmp;
21790 if (init_table[itpos165]) return;
21791 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21792 fra.me.file = LOCATE_parser;
21793 fra.me.line = 6533;
21794 fra.me.meth = LOCATE_parser___ReduceAction162___init;
21795 fra.me.has_broke = 0;
21796 fra.me.REG_size = 2;
21797 fra.me.REG[0] = NIT_NULL;
21798 fra.me.REG[1] = NIT_NULL;
21799 fra.me.REG[0] = p0;
21800 REGB0 = p1;
21801 /* ./parser//parser.nit:6533 */
21802 fra.me.REG[1] = fra.me.REG[0];
21803 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21804 ATTR_parser___ReduceAction162____goto(fra.me.REG[1]) = REGB0;
21805 stack_frame_head = fra.me.prev;
21806 init_table[itpos165] = 1;
21807 return;
21808 }
21809 void parser___ReduceAction163___action(val_t p0, val_t p1){
21810 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21811 val_t REGB0;
21812 val_t tmp;
21813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21814 fra.me.file = LOCATE_parser;
21815 fra.me.line = 6537;
21816 fra.me.meth = LOCATE_parser___ReduceAction163___action;
21817 fra.me.has_broke = 0;
21818 fra.me.REG_size = 5;
21819 fra.me.REG[0] = NIT_NULL;
21820 fra.me.REG[1] = NIT_NULL;
21821 fra.me.REG[2] = NIT_NULL;
21822 fra.me.REG[3] = NIT_NULL;
21823 fra.me.REG[4] = NIT_NULL;
21824 fra.me.REG[0] = p0;
21825 fra.me.REG[1] = p1;
21826 /* ./parser//parser.nit:6539 */
21827 fra.me.REG[2] = NIT_NULL;
21828 /* ./parser//parser.nit:6540 */
21829 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21830 /* ./parser//parser.nit:6541 */
21831 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21832 /* ./parser//parser.nit:6543 */
21833 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TObra, ID_TObra)) /*cast nullable TObra*/;
21834 if (UNTAG_Bool(REGB0)) {
21835 } else {
21836 nit_abort("Assert failed", NULL, LOCATE_parser, 6543);
21837 }
21838 /* ./parser//parser.nit:6545 */
21839 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TCbra, ID_TCbra)) /*cast nullable TCbra*/;
21840 if (UNTAG_Bool(REGB0)) {
21841 } else {
21842 nit_abort("Assert failed", NULL, LOCATE_parser, 6545);
21843 }
21844 /* ./parser//parser.nit:6546 */
21845 fra.me.REG[3] = NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid(fra.me.REG[4], fra.me.REG[3]);
21846 /* ./parser//parser.nit:6550 */
21847 fra.me.REG[2] = fra.me.REG[3];
21848 /* ./parser//parser.nit:6551 */
21849 REGB0 = TAG_Bool(ATTR_parser___ReduceAction163____goto(fra.me.REG[0])!=NIT_NULL);
21850 if (UNTAG_Bool(REGB0)) {
21851 } else {
21852 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6551);
21853 }
21854 REGB0 = ATTR_parser___ReduceAction163____goto(fra.me.REG[0]);
21855 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21856 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21857 stack_frame_head = fra.me.prev;
21858 return;
21859 }
21860 void parser___ReduceAction163___init(val_t p0, val_t p1, int* init_table){
21861 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction163].i;
21862 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21863 val_t REGB0;
21864 val_t tmp;
21865 if (init_table[itpos166]) return;
21866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21867 fra.me.file = LOCATE_parser;
21868 fra.me.line = 6554;
21869 fra.me.meth = LOCATE_parser___ReduceAction163___init;
21870 fra.me.has_broke = 0;
21871 fra.me.REG_size = 2;
21872 fra.me.REG[0] = NIT_NULL;
21873 fra.me.REG[1] = NIT_NULL;
21874 fra.me.REG[0] = p0;
21875 REGB0 = p1;
21876 /* ./parser//parser.nit:6554 */
21877 fra.me.REG[1] = fra.me.REG[0];
21878 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21879 ATTR_parser___ReduceAction163____goto(fra.me.REG[1]) = REGB0;
21880 stack_frame_head = fra.me.prev;
21881 init_table[itpos166] = 1;
21882 return;
21883 }
21884 void parser___ReduceAction164___action(val_t p0, val_t p1){
21885 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21886 val_t REGB0;
21887 val_t tmp;
21888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21889 fra.me.file = LOCATE_parser;
21890 fra.me.line = 6558;
21891 fra.me.meth = LOCATE_parser___ReduceAction164___action;
21892 fra.me.has_broke = 0;
21893 fra.me.REG_size = 4;
21894 fra.me.REG[0] = NIT_NULL;
21895 fra.me.REG[1] = NIT_NULL;
21896 fra.me.REG[2] = NIT_NULL;
21897 fra.me.REG[3] = NIT_NULL;
21898 fra.me.REG[0] = p0;
21899 fra.me.REG[1] = p1;
21900 /* ./parser//parser.nit:6560 */
21901 fra.me.REG[2] = NIT_NULL;
21902 /* ./parser//parser.nit:6561 */
21903 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21904 /* ./parser//parser.nit:6563 */
21905 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TStarship, ID_TStarship)) /*cast nullable TStarship*/;
21906 if (UNTAG_Bool(REGB0)) {
21907 } else {
21908 nit_abort("Assert failed", NULL, LOCATE_parser, 6563);
21909 }
21910 /* ./parser//parser.nit:6564 */
21911 fra.me.REG[3] = NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid(fra.me.REG[3]);
21912 /* ./parser//parser.nit:6567 */
21913 fra.me.REG[2] = fra.me.REG[3];
21914 /* ./parser//parser.nit:6568 */
21915 REGB0 = TAG_Bool(ATTR_parser___ReduceAction164____goto(fra.me.REG[0])!=NIT_NULL);
21916 if (UNTAG_Bool(REGB0)) {
21917 } else {
21918 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6568);
21919 }
21920 REGB0 = ATTR_parser___ReduceAction164____goto(fra.me.REG[0]);
21921 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21922 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21923 stack_frame_head = fra.me.prev;
21924 return;
21925 }
21926 void parser___ReduceAction164___init(val_t p0, val_t p1, int* init_table){
21927 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction164].i;
21928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21929 val_t REGB0;
21930 val_t tmp;
21931 if (init_table[itpos167]) return;
21932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21933 fra.me.file = LOCATE_parser;
21934 fra.me.line = 6571;
21935 fra.me.meth = LOCATE_parser___ReduceAction164___init;
21936 fra.me.has_broke = 0;
21937 fra.me.REG_size = 2;
21938 fra.me.REG[0] = NIT_NULL;
21939 fra.me.REG[1] = NIT_NULL;
21940 fra.me.REG[0] = p0;
21941 REGB0 = p1;
21942 /* ./parser//parser.nit:6571 */
21943 fra.me.REG[1] = fra.me.REG[0];
21944 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21945 ATTR_parser___ReduceAction164____goto(fra.me.REG[1]) = REGB0;
21946 stack_frame_head = fra.me.prev;
21947 init_table[itpos167] = 1;
21948 return;
21949 }
21950 void parser___ReduceAction165___action(val_t p0, val_t p1){
21951 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21952 val_t REGB0;
21953 val_t tmp;
21954 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21955 fra.me.file = LOCATE_parser;
21956 fra.me.line = 6575;
21957 fra.me.meth = LOCATE_parser___ReduceAction165___action;
21958 fra.me.has_broke = 0;
21959 fra.me.REG_size = 5;
21960 fra.me.REG[0] = NIT_NULL;
21961 fra.me.REG[1] = NIT_NULL;
21962 fra.me.REG[2] = NIT_NULL;
21963 fra.me.REG[3] = NIT_NULL;
21964 fra.me.REG[4] = NIT_NULL;
21965 fra.me.REG[0] = p0;
21966 fra.me.REG[1] = p1;
21967 /* ./parser//parser.nit:6577 */
21968 fra.me.REG[2] = NIT_NULL;
21969 /* ./parser//parser.nit:6578 */
21970 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21971 /* ./parser//parser.nit:6579 */
21972 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21973 /* ./parser//parser.nit:6581 */
21974 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
21975 if (UNTAG_Bool(REGB0)) {
21976 } else {
21977 nit_abort("Assert failed", NULL, LOCATE_parser, 6581);
21978 }
21979 /* ./parser//parser.nit:6583 */
21980 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
21981 if (UNTAG_Bool(REGB0)) {
21982 } else {
21983 nit_abort("Assert failed", NULL, LOCATE_parser, 6583);
21984 }
21985 /* ./parser//parser.nit:6584 */
21986 fra.me.REG[3] = NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid(fra.me.REG[4], fra.me.REG[3]);
21987 /* ./parser//parser.nit:6588 */
21988 fra.me.REG[2] = fra.me.REG[3];
21989 /* ./parser//parser.nit:6589 */
21990 REGB0 = TAG_Bool(ATTR_parser___ReduceAction165____goto(fra.me.REG[0])!=NIT_NULL);
21991 if (UNTAG_Bool(REGB0)) {
21992 } else {
21993 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6589);
21994 }
21995 REGB0 = ATTR_parser___ReduceAction165____goto(fra.me.REG[0]);
21996 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21997 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21998 stack_frame_head = fra.me.prev;
21999 return;
22000 }
22001 void parser___ReduceAction165___init(val_t p0, val_t p1, int* init_table){
22002 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction165].i;
22003 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22004 val_t REGB0;
22005 val_t tmp;
22006 if (init_table[itpos168]) return;
22007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22008 fra.me.file = LOCATE_parser;
22009 fra.me.line = 6592;
22010 fra.me.meth = LOCATE_parser___ReduceAction165___init;
22011 fra.me.has_broke = 0;
22012 fra.me.REG_size = 2;
22013 fra.me.REG[0] = NIT_NULL;
22014 fra.me.REG[1] = NIT_NULL;
22015 fra.me.REG[0] = p0;
22016 REGB0 = p1;
22017 /* ./parser//parser.nit:6592 */
22018 fra.me.REG[1] = fra.me.REG[0];
22019 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22020 ATTR_parser___ReduceAction165____goto(fra.me.REG[1]) = REGB0;
22021 stack_frame_head = fra.me.prev;
22022 init_table[itpos168] = 1;
22023 return;
22024 }
22025 void parser___ReduceAction166___action(val_t p0, val_t p1){
22026 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22027 val_t REGB0;
22028 val_t tmp;
22029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22030 fra.me.file = LOCATE_parser;
22031 fra.me.line = 6596;
22032 fra.me.meth = LOCATE_parser___ReduceAction166___action;
22033 fra.me.has_broke = 0;
22034 fra.me.REG_size = 6;
22035 fra.me.REG[0] = NIT_NULL;
22036 fra.me.REG[1] = NIT_NULL;
22037 fra.me.REG[2] = NIT_NULL;
22038 fra.me.REG[3] = NIT_NULL;
22039 fra.me.REG[4] = NIT_NULL;
22040 fra.me.REG[5] = NIT_NULL;
22041 fra.me.REG[0] = p0;
22042 fra.me.REG[1] = p1;
22043 /* ./parser//parser.nit:6598 */
22044 fra.me.REG[2] = NIT_NULL;
22045 /* ./parser//parser.nit:6599 */
22046 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22047 /* ./parser//parser.nit:6600 */
22048 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22049 /* ./parser//parser.nit:6601 */
22050 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22051 /* ./parser//parser.nit:6603 */
22052 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TObra, ID_TObra)) /*cast nullable TObra*/;
22053 if (UNTAG_Bool(REGB0)) {
22054 } else {
22055 nit_abort("Assert failed", NULL, LOCATE_parser, 6603);
22056 }
22057 /* ./parser//parser.nit:6605 */
22058 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TCbra, ID_TCbra)) /*cast nullable TCbra*/;
22059 if (UNTAG_Bool(REGB0)) {
22060 } else {
22061 nit_abort("Assert failed", NULL, LOCATE_parser, 6605);
22062 }
22063 /* ./parser//parser.nit:6607 */
22064 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
22065 if (UNTAG_Bool(REGB0)) {
22066 } else {
22067 nit_abort("Assert failed", NULL, LOCATE_parser, 6607);
22068 }
22069 /* ./parser//parser.nit:6608 */
22070 fra.me.REG[3] = NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
22071 /* ./parser//parser.nit:6613 */
22072 fra.me.REG[2] = fra.me.REG[3];
22073 /* ./parser//parser.nit:6614 */
22074 REGB0 = TAG_Bool(ATTR_parser___ReduceAction166____goto(fra.me.REG[0])!=NIT_NULL);
22075 if (UNTAG_Bool(REGB0)) {
22076 } else {
22077 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6614);
22078 }
22079 REGB0 = ATTR_parser___ReduceAction166____goto(fra.me.REG[0]);
22080 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22081 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22082 stack_frame_head = fra.me.prev;
22083 return;
22084 }
22085 void parser___ReduceAction166___init(val_t p0, val_t p1, int* init_table){
22086 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction166].i;
22087 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22088 val_t REGB0;
22089 val_t tmp;
22090 if (init_table[itpos169]) return;
22091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22092 fra.me.file = LOCATE_parser;
22093 fra.me.line = 6617;
22094 fra.me.meth = LOCATE_parser___ReduceAction166___init;
22095 fra.me.has_broke = 0;
22096 fra.me.REG_size = 2;
22097 fra.me.REG[0] = NIT_NULL;
22098 fra.me.REG[1] = NIT_NULL;
22099 fra.me.REG[0] = p0;
22100 REGB0 = p1;
22101 /* ./parser//parser.nit:6617 */
22102 fra.me.REG[1] = fra.me.REG[0];
22103 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22104 ATTR_parser___ReduceAction166____goto(fra.me.REG[1]) = REGB0;
22105 stack_frame_head = fra.me.prev;
22106 init_table[itpos169] = 1;
22107 return;
22108 }
22109 void parser___ReduceAction167___action(val_t p0, val_t p1){
22110 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22111 val_t REGB0;
22112 val_t tmp;
22113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22114 fra.me.file = LOCATE_parser;
22115 fra.me.line = 6621;
22116 fra.me.meth = LOCATE_parser___ReduceAction167___action;
22117 fra.me.has_broke = 0;
22118 fra.me.REG_size = 7;
22119 fra.me.REG[0] = NIT_NULL;
22120 fra.me.REG[1] = NIT_NULL;
22121 fra.me.REG[2] = NIT_NULL;
22122 fra.me.REG[3] = NIT_NULL;
22123 fra.me.REG[4] = NIT_NULL;
22124 fra.me.REG[5] = NIT_NULL;
22125 fra.me.REG[6] = NIT_NULL;
22126 fra.me.REG[0] = p0;
22127 fra.me.REG[1] = p1;
22128 /* ./parser//parser.nit:6623 */
22129 fra.me.REG[2] = NIT_NULL;
22130 /* ./parser//parser.nit:6624 */
22131 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22132 /* ./parser//parser.nit:6625 */
22133 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22134 /* ./parser//parser.nit:6626 */
22135 fra.me.REG[5] = NEW_Array_array___Array___init();
22136 /* ./parser//parser.nit:6627 */
22137 fra.me.REG[6] = NEW_Array_array___Array___init();
22138 /* ./parser//parser.nit:6629 */
22139 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22140 if (UNTAG_Bool(REGB0)) {
22141 } else {
22142 nit_abort("Assert failed", NULL, LOCATE_parser, 6629);
22143 }
22144 /* ./parser//parser.nit:6631 */
22145 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22146 if (UNTAG_Bool(REGB0)) {
22147 } else {
22148 nit_abort("Assert failed", NULL, LOCATE_parser, 6631);
22149 }
22150 /* ./parser//parser.nit:6632 */
22151 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
22152 fra.me.REG[6] = fra.me.REG[3];
22153 /* ./parser//parser.nit:6633 */
22154 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
22155 /* ./parser//parser.nit:6638 */
22156 fra.me.REG[2] = fra.me.REG[6];
22157 /* ./parser//parser.nit:6639 */
22158 REGB0 = TAG_Bool(ATTR_parser___ReduceAction167____goto(fra.me.REG[0])!=NIT_NULL);
22159 if (UNTAG_Bool(REGB0)) {
22160 } else {
22161 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6639);
22162 }
22163 REGB0 = ATTR_parser___ReduceAction167____goto(fra.me.REG[0]);
22164 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22165 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22166 stack_frame_head = fra.me.prev;
22167 return;
22168 }
22169 void parser___ReduceAction167___init(val_t p0, val_t p1, int* init_table){
22170 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction167].i;
22171 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22172 val_t REGB0;
22173 val_t tmp;
22174 if (init_table[itpos170]) return;
22175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22176 fra.me.file = LOCATE_parser;
22177 fra.me.line = 6642;
22178 fra.me.meth = LOCATE_parser___ReduceAction167___init;
22179 fra.me.has_broke = 0;
22180 fra.me.REG_size = 2;
22181 fra.me.REG[0] = NIT_NULL;
22182 fra.me.REG[1] = NIT_NULL;
22183 fra.me.REG[0] = p0;
22184 REGB0 = p1;
22185 /* ./parser//parser.nit:6642 */
22186 fra.me.REG[1] = fra.me.REG[0];
22187 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22188 ATTR_parser___ReduceAction167____goto(fra.me.REG[1]) = REGB0;
22189 stack_frame_head = fra.me.prev;
22190 init_table[itpos170] = 1;
22191 return;
22192 }
22193 void parser___ReduceAction168___action(val_t p0, val_t p1){
22194 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
22195 val_t REGB0;
22196 val_t tmp;
22197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22198 fra.me.file = LOCATE_parser;
22199 fra.me.line = 6646;
22200 fra.me.meth = LOCATE_parser___ReduceAction168___action;
22201 fra.me.has_broke = 0;
22202 fra.me.REG_size = 8;
22203 fra.me.REG[0] = NIT_NULL;
22204 fra.me.REG[1] = NIT_NULL;
22205 fra.me.REG[2] = NIT_NULL;
22206 fra.me.REG[3] = NIT_NULL;
22207 fra.me.REG[4] = NIT_NULL;
22208 fra.me.REG[5] = NIT_NULL;
22209 fra.me.REG[6] = NIT_NULL;
22210 fra.me.REG[7] = NIT_NULL;
22211 fra.me.REG[0] = p0;
22212 fra.me.REG[1] = p1;
22213 /* ./parser//parser.nit:6648 */
22214 fra.me.REG[2] = NIT_NULL;
22215 /* ./parser//parser.nit:6649 */
22216 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22217 /* ./parser//parser.nit:6650 */
22218 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22219 /* ./parser//parser.nit:6651 */
22220 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22221 /* ./parser//parser.nit:6652 */
22222 fra.me.REG[6] = NEW_Array_array___Array___init();
22223 /* ./parser//parser.nit:6653 */
22224 fra.me.REG[7] = NEW_Array_array___Array___init();
22225 /* ./parser//parser.nit:6655 */
22226 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22227 if (UNTAG_Bool(REGB0)) {
22228 } else {
22229 nit_abort("Assert failed", NULL, LOCATE_parser, 6655);
22230 }
22231 /* ./parser//parser.nit:6656 */
22232 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
22233 fra.me.REG[6] = fra.me.REG[5];
22234 /* ./parser//parser.nit:6658 */
22235 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22236 if (UNTAG_Bool(REGB0)) {
22237 } else {
22238 nit_abort("Assert failed", NULL, LOCATE_parser, 6658);
22239 }
22240 /* ./parser//parser.nit:6660 */
22241 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22242 if (UNTAG_Bool(REGB0)) {
22243 } else {
22244 nit_abort("Assert failed", NULL, LOCATE_parser, 6660);
22245 }
22246 /* ./parser//parser.nit:6661 */
22247 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
22248 fra.me.REG[7] = fra.me.REG[3];
22249 /* ./parser//parser.nit:6662 */
22250 fra.me.REG[7] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[4], fra.me.REG[7]);
22251 /* ./parser//parser.nit:6667 */
22252 fra.me.REG[2] = fra.me.REG[7];
22253 /* ./parser//parser.nit:6668 */
22254 REGB0 = TAG_Bool(ATTR_parser___ReduceAction168____goto(fra.me.REG[0])!=NIT_NULL);
22255 if (UNTAG_Bool(REGB0)) {
22256 } else {
22257 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6668);
22258 }
22259 REGB0 = ATTR_parser___ReduceAction168____goto(fra.me.REG[0]);
22260 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22261 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22262 stack_frame_head = fra.me.prev;
22263 return;
22264 }
22265 void parser___ReduceAction168___init(val_t p0, val_t p1, int* init_table){
22266 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction168].i;
22267 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22268 val_t REGB0;
22269 val_t tmp;
22270 if (init_table[itpos171]) return;
22271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22272 fra.me.file = LOCATE_parser;
22273 fra.me.line = 6671;
22274 fra.me.meth = LOCATE_parser___ReduceAction168___init;
22275 fra.me.has_broke = 0;
22276 fra.me.REG_size = 2;
22277 fra.me.REG[0] = NIT_NULL;
22278 fra.me.REG[1] = NIT_NULL;
22279 fra.me.REG[0] = p0;
22280 REGB0 = p1;
22281 /* ./parser//parser.nit:6671 */
22282 fra.me.REG[1] = fra.me.REG[0];
22283 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22284 ATTR_parser___ReduceAction168____goto(fra.me.REG[1]) = REGB0;
22285 stack_frame_head = fra.me.prev;
22286 init_table[itpos171] = 1;
22287 return;
22288 }
22289 void parser___ReduceAction169___action(val_t p0, val_t p1){
22290 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22291 val_t REGB0;
22292 val_t tmp;
22293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22294 fra.me.file = LOCATE_parser;
22295 fra.me.line = 6675;
22296 fra.me.meth = LOCATE_parser___ReduceAction169___action;
22297 fra.me.has_broke = 0;
22298 fra.me.REG_size = 6;
22299 fra.me.REG[0] = NIT_NULL;
22300 fra.me.REG[1] = NIT_NULL;
22301 fra.me.REG[2] = NIT_NULL;
22302 fra.me.REG[3] = NIT_NULL;
22303 fra.me.REG[4] = NIT_NULL;
22304 fra.me.REG[5] = NIT_NULL;
22305 fra.me.REG[0] = p0;
22306 fra.me.REG[1] = p1;
22307 /* ./parser//parser.nit:6677 */
22308 fra.me.REG[2] = NIT_NULL;
22309 /* ./parser//parser.nit:6678 */
22310 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22311 /* ./parser//parser.nit:6679 */
22312 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22313 /* ./parser//parser.nit:6680 */
22314 fra.me.REG[4] = NEW_Array_array___Array___init();
22315 /* ./parser//parser.nit:6681 */
22316 fra.me.REG[5] = NEW_Array_array___Array___init();
22317 /* ./parser//parser.nit:6683 */
22318 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22319 if (UNTAG_Bool(REGB0)) {
22320 } else {
22321 nit_abort("Assert failed", NULL, LOCATE_parser, 6683);
22322 }
22323 /* ./parser//parser.nit:6684 */
22324 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
22325 /* ./parser//parser.nit:6689 */
22326 fra.me.REG[2] = fra.me.REG[5];
22327 /* ./parser//parser.nit:6690 */
22328 REGB0 = TAG_Bool(ATTR_parser___ReduceAction169____goto(fra.me.REG[0])!=NIT_NULL);
22329 if (UNTAG_Bool(REGB0)) {
22330 } else {
22331 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6690);
22332 }
22333 REGB0 = ATTR_parser___ReduceAction169____goto(fra.me.REG[0]);
22334 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22335 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22336 stack_frame_head = fra.me.prev;
22337 return;
22338 }
22339 void parser___ReduceAction169___init(val_t p0, val_t p1, int* init_table){
22340 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction169].i;
22341 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22342 val_t REGB0;
22343 val_t tmp;
22344 if (init_table[itpos172]) return;
22345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22346 fra.me.file = LOCATE_parser;
22347 fra.me.line = 6693;
22348 fra.me.meth = LOCATE_parser___ReduceAction169___init;
22349 fra.me.has_broke = 0;
22350 fra.me.REG_size = 2;
22351 fra.me.REG[0] = NIT_NULL;
22352 fra.me.REG[1] = NIT_NULL;
22353 fra.me.REG[0] = p0;
22354 REGB0 = p1;
22355 /* ./parser//parser.nit:6693 */
22356 fra.me.REG[1] = fra.me.REG[0];
22357 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22358 ATTR_parser___ReduceAction169____goto(fra.me.REG[1]) = REGB0;
22359 stack_frame_head = fra.me.prev;
22360 init_table[itpos172] = 1;
22361 return;
22362 }
22363 void parser___ReduceAction170___action(val_t p0, val_t p1){
22364 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22365 val_t REGB0;
22366 val_t tmp;
22367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22368 fra.me.file = LOCATE_parser;
22369 fra.me.line = 6697;
22370 fra.me.meth = LOCATE_parser___ReduceAction170___action;
22371 fra.me.has_broke = 0;
22372 fra.me.REG_size = 7;
22373 fra.me.REG[0] = NIT_NULL;
22374 fra.me.REG[1] = NIT_NULL;
22375 fra.me.REG[2] = NIT_NULL;
22376 fra.me.REG[3] = NIT_NULL;
22377 fra.me.REG[4] = NIT_NULL;
22378 fra.me.REG[5] = NIT_NULL;
22379 fra.me.REG[6] = NIT_NULL;
22380 fra.me.REG[0] = p0;
22381 fra.me.REG[1] = p1;
22382 /* ./parser//parser.nit:6699 */
22383 fra.me.REG[2] = NIT_NULL;
22384 /* ./parser//parser.nit:6700 */
22385 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22386 /* ./parser//parser.nit:6701 */
22387 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22388 /* ./parser//parser.nit:6702 */
22389 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22390 /* ./parser//parser.nit:6703 */
22391 fra.me.REG[5] = NEW_Array_array___Array___init();
22392 /* ./parser//parser.nit:6704 */
22393 fra.me.REG[6] = NEW_Array_array___Array___init();
22394 /* ./parser//parser.nit:6706 */
22395 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22396 if (UNTAG_Bool(REGB0)) {
22397 } else {
22398 nit_abort("Assert failed", NULL, LOCATE_parser, 6706);
22399 }
22400 /* ./parser//parser.nit:6707 */
22401 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
22402 fra.me.REG[5] = fra.me.REG[4];
22403 /* ./parser//parser.nit:6709 */
22404 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22405 if (UNTAG_Bool(REGB0)) {
22406 } else {
22407 nit_abort("Assert failed", NULL, LOCATE_parser, 6709);
22408 }
22409 /* ./parser//parser.nit:6710 */
22410 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[3], fra.me.REG[6]);
22411 /* ./parser//parser.nit:6715 */
22412 fra.me.REG[2] = fra.me.REG[6];
22413 /* ./parser//parser.nit:6716 */
22414 REGB0 = TAG_Bool(ATTR_parser___ReduceAction170____goto(fra.me.REG[0])!=NIT_NULL);
22415 if (UNTAG_Bool(REGB0)) {
22416 } else {
22417 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6716);
22418 }
22419 REGB0 = ATTR_parser___ReduceAction170____goto(fra.me.REG[0]);
22420 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22421 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22422 stack_frame_head = fra.me.prev;
22423 return;
22424 }
22425 void parser___ReduceAction170___init(val_t p0, val_t p1, int* init_table){
22426 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction170].i;
22427 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22428 val_t REGB0;
22429 val_t tmp;
22430 if (init_table[itpos173]) return;
22431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22432 fra.me.file = LOCATE_parser;
22433 fra.me.line = 6719;
22434 fra.me.meth = LOCATE_parser___ReduceAction170___init;
22435 fra.me.has_broke = 0;
22436 fra.me.REG_size = 2;
22437 fra.me.REG[0] = NIT_NULL;
22438 fra.me.REG[1] = NIT_NULL;
22439 fra.me.REG[0] = p0;
22440 REGB0 = p1;
22441 /* ./parser//parser.nit:6719 */
22442 fra.me.REG[1] = fra.me.REG[0];
22443 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22444 ATTR_parser___ReduceAction170____goto(fra.me.REG[1]) = REGB0;
22445 stack_frame_head = fra.me.prev;
22446 init_table[itpos173] = 1;
22447 return;
22448 }
22449 void parser___ReduceAction171___action(val_t p0, val_t p1){
22450 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22451 val_t REGB0;
22452 val_t tmp;
22453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22454 fra.me.file = LOCATE_parser;
22455 fra.me.line = 6723;
22456 fra.me.meth = LOCATE_parser___ReduceAction171___action;
22457 fra.me.has_broke = 0;
22458 fra.me.REG_size = 6;
22459 fra.me.REG[0] = NIT_NULL;
22460 fra.me.REG[1] = NIT_NULL;
22461 fra.me.REG[2] = NIT_NULL;
22462 fra.me.REG[3] = NIT_NULL;
22463 fra.me.REG[4] = NIT_NULL;
22464 fra.me.REG[5] = NIT_NULL;
22465 fra.me.REG[0] = p0;
22466 fra.me.REG[1] = p1;
22467 /* ./parser//parser.nit:6725 */
22468 fra.me.REG[2] = NIT_NULL;
22469 /* ./parser//parser.nit:6726 */
22470 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22471 /* ./parser//parser.nit:6727 */
22472 fra.me.REG[4] = NEW_Array_array___Array___init();
22473 /* ./parser//parser.nit:6728 */
22474 fra.me.REG[5] = NEW_Array_array___Array___init();
22475 /* ./parser//parser.nit:6730 */
22476 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22477 if (UNTAG_Bool(REGB0)) {
22478 } else {
22479 nit_abort("Assert failed", NULL, LOCATE_parser, 6730);
22480 }
22481 /* ./parser//parser.nit:6731 */
22482 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
22483 fra.me.REG[5] = fra.me.REG[3];
22484 /* ./parser//parser.nit:6732 */
22485 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
22486 /* ./parser//parser.nit:6737 */
22487 fra.me.REG[2] = fra.me.REG[5];
22488 /* ./parser//parser.nit:6738 */
22489 REGB0 = TAG_Bool(ATTR_parser___ReduceAction171____goto(fra.me.REG[0])!=NIT_NULL);
22490 if (UNTAG_Bool(REGB0)) {
22491 } else {
22492 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6738);
22493 }
22494 REGB0 = ATTR_parser___ReduceAction171____goto(fra.me.REG[0]);
22495 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22496 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22497 stack_frame_head = fra.me.prev;
22498 return;
22499 }
22500 void parser___ReduceAction171___init(val_t p0, val_t p1, int* init_table){
22501 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction171].i;
22502 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22503 val_t REGB0;
22504 val_t tmp;
22505 if (init_table[itpos174]) return;
22506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22507 fra.me.file = LOCATE_parser;
22508 fra.me.line = 6741;
22509 fra.me.meth = LOCATE_parser___ReduceAction171___init;
22510 fra.me.has_broke = 0;
22511 fra.me.REG_size = 2;
22512 fra.me.REG[0] = NIT_NULL;
22513 fra.me.REG[1] = NIT_NULL;
22514 fra.me.REG[0] = p0;
22515 REGB0 = p1;
22516 /* ./parser//parser.nit:6741 */
22517 fra.me.REG[1] = fra.me.REG[0];
22518 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22519 ATTR_parser___ReduceAction171____goto(fra.me.REG[1]) = REGB0;
22520 stack_frame_head = fra.me.prev;
22521 init_table[itpos174] = 1;
22522 return;
22523 }
22524 void parser___ReduceAction172___action(val_t p0, val_t p1){
22525 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22526 val_t REGB0;
22527 val_t tmp;
22528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22529 fra.me.file = LOCATE_parser;
22530 fra.me.line = 6745;
22531 fra.me.meth = LOCATE_parser___ReduceAction172___action;
22532 fra.me.has_broke = 0;
22533 fra.me.REG_size = 7;
22534 fra.me.REG[0] = NIT_NULL;
22535 fra.me.REG[1] = NIT_NULL;
22536 fra.me.REG[2] = NIT_NULL;
22537 fra.me.REG[3] = NIT_NULL;
22538 fra.me.REG[4] = NIT_NULL;
22539 fra.me.REG[5] = NIT_NULL;
22540 fra.me.REG[6] = NIT_NULL;
22541 fra.me.REG[0] = p0;
22542 fra.me.REG[1] = p1;
22543 /* ./parser//parser.nit:6747 */
22544 fra.me.REG[2] = NIT_NULL;
22545 /* ./parser//parser.nit:6748 */
22546 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22547 /* ./parser//parser.nit:6749 */
22548 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22549 /* ./parser//parser.nit:6750 */
22550 fra.me.REG[5] = NEW_Array_array___Array___init();
22551 /* ./parser//parser.nit:6751 */
22552 fra.me.REG[6] = NEW_Array_array___Array___init();
22553 /* ./parser//parser.nit:6753 */
22554 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22555 if (UNTAG_Bool(REGB0)) {
22556 } else {
22557 nit_abort("Assert failed", NULL, LOCATE_parser, 6753);
22558 }
22559 /* ./parser//parser.nit:6754 */
22560 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
22561 fra.me.REG[5] = fra.me.REG[4];
22562 /* ./parser//parser.nit:6756 */
22563 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22564 if (UNTAG_Bool(REGB0)) {
22565 } else {
22566 nit_abort("Assert failed", NULL, LOCATE_parser, 6756);
22567 }
22568 /* ./parser//parser.nit:6757 */
22569 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
22570 fra.me.REG[6] = fra.me.REG[3];
22571 /* ./parser//parser.nit:6758 */
22572 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], NIT_NULL, fra.me.REG[6]);
22573 /* ./parser//parser.nit:6763 */
22574 fra.me.REG[2] = fra.me.REG[6];
22575 /* ./parser//parser.nit:6764 */
22576 REGB0 = TAG_Bool(ATTR_parser___ReduceAction172____goto(fra.me.REG[0])!=NIT_NULL);
22577 if (UNTAG_Bool(REGB0)) {
22578 } else {
22579 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6764);
22580 }
22581 REGB0 = ATTR_parser___ReduceAction172____goto(fra.me.REG[0]);
22582 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22583 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22584 stack_frame_head = fra.me.prev;
22585 return;
22586 }
22587 void parser___ReduceAction172___init(val_t p0, val_t p1, int* init_table){
22588 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction172].i;
22589 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22590 val_t REGB0;
22591 val_t tmp;
22592 if (init_table[itpos175]) return;
22593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22594 fra.me.file = LOCATE_parser;
22595 fra.me.line = 6767;
22596 fra.me.meth = LOCATE_parser___ReduceAction172___init;
22597 fra.me.has_broke = 0;
22598 fra.me.REG_size = 2;
22599 fra.me.REG[0] = NIT_NULL;
22600 fra.me.REG[1] = NIT_NULL;
22601 fra.me.REG[0] = p0;
22602 REGB0 = p1;
22603 /* ./parser//parser.nit:6767 */
22604 fra.me.REG[1] = fra.me.REG[0];
22605 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22606 ATTR_parser___ReduceAction172____goto(fra.me.REG[1]) = REGB0;
22607 stack_frame_head = fra.me.prev;
22608 init_table[itpos175] = 1;
22609 return;
22610 }
22611 void parser___ReduceAction173___action(val_t p0, val_t p1){
22612 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
22613 val_t REGB0;
22614 val_t tmp;
22615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22616 fra.me.file = LOCATE_parser;
22617 fra.me.line = 6771;
22618 fra.me.meth = LOCATE_parser___ReduceAction173___action;
22619 fra.me.has_broke = 0;
22620 fra.me.REG_size = 5;
22621 fra.me.REG[0] = NIT_NULL;
22622 fra.me.REG[1] = NIT_NULL;
22623 fra.me.REG[2] = NIT_NULL;
22624 fra.me.REG[3] = NIT_NULL;
22625 fra.me.REG[4] = NIT_NULL;
22626 fra.me.REG[0] = p0;
22627 fra.me.REG[1] = p1;
22628 /* ./parser//parser.nit:6773 */
22629 fra.me.REG[2] = NIT_NULL;
22630 /* ./parser//parser.nit:6774 */
22631 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22632 /* ./parser//parser.nit:6775 */
22633 fra.me.REG[3] = NEW_Array_array___Array___init();
22634 /* ./parser//parser.nit:6776 */
22635 fra.me.REG[4] = NEW_Array_array___Array___init();
22636 /* ./parser//parser.nit:6777 */
22637 fra.me.REG[4] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
22638 /* ./parser//parser.nit:6782 */
22639 fra.me.REG[2] = fra.me.REG[4];
22640 /* ./parser//parser.nit:6783 */
22641 REGB0 = TAG_Bool(ATTR_parser___ReduceAction173____goto(fra.me.REG[0])!=NIT_NULL);
22642 if (UNTAG_Bool(REGB0)) {
22643 } else {
22644 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6783);
22645 }
22646 REGB0 = ATTR_parser___ReduceAction173____goto(fra.me.REG[0]);
22647 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22648 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22649 stack_frame_head = fra.me.prev;
22650 return;
22651 }
22652 void parser___ReduceAction173___init(val_t p0, val_t p1, int* init_table){
22653 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction173].i;
22654 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22655 val_t REGB0;
22656 val_t tmp;
22657 if (init_table[itpos176]) return;
22658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22659 fra.me.file = LOCATE_parser;
22660 fra.me.line = 6786;
22661 fra.me.meth = LOCATE_parser___ReduceAction173___init;
22662 fra.me.has_broke = 0;
22663 fra.me.REG_size = 2;
22664 fra.me.REG[0] = NIT_NULL;
22665 fra.me.REG[1] = NIT_NULL;
22666 fra.me.REG[0] = p0;
22667 REGB0 = p1;
22668 /* ./parser//parser.nit:6786 */
22669 fra.me.REG[1] = fra.me.REG[0];
22670 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22671 ATTR_parser___ReduceAction173____goto(fra.me.REG[1]) = REGB0;
22672 stack_frame_head = fra.me.prev;
22673 init_table[itpos176] = 1;
22674 return;
22675 }
22676 void parser___ReduceAction174___action(val_t p0, val_t p1){
22677 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22678 val_t REGB0;
22679 val_t tmp;
22680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22681 fra.me.file = LOCATE_parser;
22682 fra.me.line = 6790;
22683 fra.me.meth = LOCATE_parser___ReduceAction174___action;
22684 fra.me.has_broke = 0;
22685 fra.me.REG_size = 6;
22686 fra.me.REG[0] = NIT_NULL;
22687 fra.me.REG[1] = NIT_NULL;
22688 fra.me.REG[2] = NIT_NULL;
22689 fra.me.REG[3] = NIT_NULL;
22690 fra.me.REG[4] = NIT_NULL;
22691 fra.me.REG[5] = NIT_NULL;
22692 fra.me.REG[0] = p0;
22693 fra.me.REG[1] = p1;
22694 /* ./parser//parser.nit:6792 */
22695 fra.me.REG[2] = NIT_NULL;
22696 /* ./parser//parser.nit:6793 */
22697 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22698 /* ./parser//parser.nit:6794 */
22699 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22700 /* ./parser//parser.nit:6795 */
22701 fra.me.REG[4] = NEW_Array_array___Array___init();
22702 /* ./parser//parser.nit:6796 */
22703 fra.me.REG[5] = NEW_Array_array___Array___init();
22704 /* ./parser//parser.nit:6798 */
22705 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22706 if (UNTAG_Bool(REGB0)) {
22707 } else {
22708 nit_abort("Assert failed", NULL, LOCATE_parser, 6798);
22709 }
22710 /* ./parser//parser.nit:6799 */
22711 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
22712 fra.me.REG[4] = fra.me.REG[3];
22713 /* ./parser//parser.nit:6800 */
22714 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
22715 /* ./parser//parser.nit:6805 */
22716 fra.me.REG[2] = fra.me.REG[5];
22717 /* ./parser//parser.nit:6806 */
22718 REGB0 = TAG_Bool(ATTR_parser___ReduceAction174____goto(fra.me.REG[0])!=NIT_NULL);
22719 if (UNTAG_Bool(REGB0)) {
22720 } else {
22721 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6806);
22722 }
22723 REGB0 = ATTR_parser___ReduceAction174____goto(fra.me.REG[0]);
22724 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22725 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22726 stack_frame_head = fra.me.prev;
22727 return;
22728 }
22729 void parser___ReduceAction174___init(val_t p0, val_t p1, int* init_table){
22730 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction174].i;
22731 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22732 val_t REGB0;
22733 val_t tmp;
22734 if (init_table[itpos177]) return;
22735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22736 fra.me.file = LOCATE_parser;
22737 fra.me.line = 6809;
22738 fra.me.meth = LOCATE_parser___ReduceAction174___init;
22739 fra.me.has_broke = 0;
22740 fra.me.REG_size = 2;
22741 fra.me.REG[0] = NIT_NULL;
22742 fra.me.REG[1] = NIT_NULL;
22743 fra.me.REG[0] = p0;
22744 REGB0 = p1;
22745 /* ./parser//parser.nit:6809 */
22746 fra.me.REG[1] = fra.me.REG[0];
22747 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22748 ATTR_parser___ReduceAction174____goto(fra.me.REG[1]) = REGB0;
22749 stack_frame_head = fra.me.prev;
22750 init_table[itpos177] = 1;
22751 return;
22752 }
22753 void parser___ReduceAction175___action(val_t p0, val_t p1){
22754 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
22755 val_t REGB0;
22756 val_t tmp;
22757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22758 fra.me.file = LOCATE_parser;
22759 fra.me.line = 6813;
22760 fra.me.meth = LOCATE_parser___ReduceAction175___action;
22761 fra.me.has_broke = 0;
22762 fra.me.REG_size = 5;
22763 fra.me.REG[0] = NIT_NULL;
22764 fra.me.REG[1] = NIT_NULL;
22765 fra.me.REG[2] = NIT_NULL;
22766 fra.me.REG[3] = NIT_NULL;
22767 fra.me.REG[4] = NIT_NULL;
22768 fra.me.REG[0] = p0;
22769 fra.me.REG[1] = p1;
22770 /* ./parser//parser.nit:6815 */
22771 fra.me.REG[2] = NIT_NULL;
22772 /* ./parser//parser.nit:6816 */
22773 fra.me.REG[3] = NEW_Array_array___Array___init();
22774 /* ./parser//parser.nit:6817 */
22775 fra.me.REG[4] = NEW_Array_array___Array___init();
22776 /* ./parser//parser.nit:6818 */
22777 fra.me.REG[4] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
22778 /* ./parser//parser.nit:6823 */
22779 fra.me.REG[2] = fra.me.REG[4];
22780 /* ./parser//parser.nit:6824 */
22781 REGB0 = TAG_Bool(ATTR_parser___ReduceAction175____goto(fra.me.REG[0])!=NIT_NULL);
22782 if (UNTAG_Bool(REGB0)) {
22783 } else {
22784 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6824);
22785 }
22786 REGB0 = ATTR_parser___ReduceAction175____goto(fra.me.REG[0]);
22787 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22788 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22789 stack_frame_head = fra.me.prev;
22790 return;
22791 }
22792 void parser___ReduceAction175___init(val_t p0, val_t p1, int* init_table){
22793 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction175].i;
22794 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22795 val_t REGB0;
22796 val_t tmp;
22797 if (init_table[itpos178]) return;
22798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22799 fra.me.file = LOCATE_parser;
22800 fra.me.line = 6827;
22801 fra.me.meth = LOCATE_parser___ReduceAction175___init;
22802 fra.me.has_broke = 0;
22803 fra.me.REG_size = 2;
22804 fra.me.REG[0] = NIT_NULL;
22805 fra.me.REG[1] = NIT_NULL;
22806 fra.me.REG[0] = p0;
22807 REGB0 = p1;
22808 /* ./parser//parser.nit:6827 */
22809 fra.me.REG[1] = fra.me.REG[0];
22810 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22811 ATTR_parser___ReduceAction175____goto(fra.me.REG[1]) = REGB0;
22812 stack_frame_head = fra.me.prev;
22813 init_table[itpos178] = 1;
22814 return;
22815 }
22816 void parser___ReduceAction176___action(val_t p0, val_t p1){
22817 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22818 val_t REGB0;
22819 val_t tmp;
22820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22821 fra.me.file = LOCATE_parser;
22822 fra.me.line = 6831;
22823 fra.me.meth = LOCATE_parser___ReduceAction176___action;
22824 fra.me.has_broke = 0;
22825 fra.me.REG_size = 6;
22826 fra.me.REG[0] = NIT_NULL;
22827 fra.me.REG[1] = NIT_NULL;
22828 fra.me.REG[2] = NIT_NULL;
22829 fra.me.REG[3] = NIT_NULL;
22830 fra.me.REG[4] = NIT_NULL;
22831 fra.me.REG[5] = NIT_NULL;
22832 fra.me.REG[0] = p0;
22833 fra.me.REG[1] = p1;
22834 /* ./parser//parser.nit:6833 */
22835 fra.me.REG[2] = NIT_NULL;
22836 /* ./parser//parser.nit:6834 */
22837 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22838 /* ./parser//parser.nit:6835 */
22839 fra.me.REG[4] = NEW_Array_array___Array___init();
22840 /* ./parser//parser.nit:6836 */
22841 fra.me.REG[5] = NEW_Array_array___Array___init();
22842 /* ./parser//parser.nit:6838 */
22843 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22844 if (UNTAG_Bool(REGB0)) {
22845 } else {
22846 nit_abort("Assert failed", NULL, LOCATE_parser, 6838);
22847 }
22848 /* ./parser//parser.nit:6839 */
22849 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
22850 fra.me.REG[4] = fra.me.REG[3];
22851 /* ./parser//parser.nit:6840 */
22852 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
22853 /* ./parser//parser.nit:6845 */
22854 fra.me.REG[2] = fra.me.REG[5];
22855 /* ./parser//parser.nit:6846 */
22856 REGB0 = TAG_Bool(ATTR_parser___ReduceAction176____goto(fra.me.REG[0])!=NIT_NULL);
22857 if (UNTAG_Bool(REGB0)) {
22858 } else {
22859 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6846);
22860 }
22861 REGB0 = ATTR_parser___ReduceAction176____goto(fra.me.REG[0]);
22862 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22863 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22864 stack_frame_head = fra.me.prev;
22865 return;
22866 }
22867 void parser___ReduceAction176___init(val_t p0, val_t p1, int* init_table){
22868 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction176].i;
22869 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22870 val_t REGB0;
22871 val_t tmp;
22872 if (init_table[itpos179]) return;
22873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22874 fra.me.file = LOCATE_parser;
22875 fra.me.line = 6849;
22876 fra.me.meth = LOCATE_parser___ReduceAction176___init;
22877 fra.me.has_broke = 0;
22878 fra.me.REG_size = 2;
22879 fra.me.REG[0] = NIT_NULL;
22880 fra.me.REG[1] = NIT_NULL;
22881 fra.me.REG[0] = p0;
22882 REGB0 = p1;
22883 /* ./parser//parser.nit:6849 */
22884 fra.me.REG[1] = fra.me.REG[0];
22885 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22886 ATTR_parser___ReduceAction176____goto(fra.me.REG[1]) = REGB0;
22887 stack_frame_head = fra.me.prev;
22888 init_table[itpos179] = 1;
22889 return;
22890 }
22891 void parser___ReduceAction177___action(val_t p0, val_t p1){
22892 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22893 val_t REGB0;
22894 val_t tmp;
22895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22896 fra.me.file = LOCATE_parser;
22897 fra.me.line = 6853;
22898 fra.me.meth = LOCATE_parser___ReduceAction177___action;
22899 fra.me.has_broke = 0;
22900 fra.me.REG_size = 6;
22901 fra.me.REG[0] = NIT_NULL;
22902 fra.me.REG[1] = NIT_NULL;
22903 fra.me.REG[2] = NIT_NULL;
22904 fra.me.REG[3] = NIT_NULL;
22905 fra.me.REG[4] = NIT_NULL;
22906 fra.me.REG[5] = NIT_NULL;
22907 fra.me.REG[0] = p0;
22908 fra.me.REG[1] = p1;
22909 /* ./parser//parser.nit:6855 */
22910 fra.me.REG[2] = NIT_NULL;
22911 /* ./parser//parser.nit:6856 */
22912 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22913 /* ./parser//parser.nit:6857 */
22914 fra.me.REG[4] = NEW_Array_array___Array___init();
22915 /* ./parser//parser.nit:6858 */
22916 fra.me.REG[5] = NEW_Array_array___Array___init();
22917 /* ./parser//parser.nit:6860 */
22918 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22919 if (UNTAG_Bool(REGB0)) {
22920 } else {
22921 nit_abort("Assert failed", NULL, LOCATE_parser, 6860);
22922 }
22923 /* ./parser//parser.nit:6861 */
22924 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
22925 /* ./parser//parser.nit:6866 */
22926 fra.me.REG[2] = fra.me.REG[5];
22927 /* ./parser//parser.nit:6867 */
22928 REGB0 = TAG_Bool(ATTR_parser___ReduceAction177____goto(fra.me.REG[0])!=NIT_NULL);
22929 if (UNTAG_Bool(REGB0)) {
22930 } else {
22931 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6867);
22932 }
22933 REGB0 = ATTR_parser___ReduceAction177____goto(fra.me.REG[0]);
22934 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22935 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22936 stack_frame_head = fra.me.prev;
22937 return;
22938 }
22939 void parser___ReduceAction177___init(val_t p0, val_t p1, int* init_table){
22940 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction177].i;
22941 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22942 val_t REGB0;
22943 val_t tmp;
22944 if (init_table[itpos180]) return;
22945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22946 fra.me.file = LOCATE_parser;
22947 fra.me.line = 6870;
22948 fra.me.meth = LOCATE_parser___ReduceAction177___init;
22949 fra.me.has_broke = 0;
22950 fra.me.REG_size = 2;
22951 fra.me.REG[0] = NIT_NULL;
22952 fra.me.REG[1] = NIT_NULL;
22953 fra.me.REG[0] = p0;
22954 REGB0 = p1;
22955 /* ./parser//parser.nit:6870 */
22956 fra.me.REG[1] = fra.me.REG[0];
22957 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22958 ATTR_parser___ReduceAction177____goto(fra.me.REG[1]) = REGB0;
22959 stack_frame_head = fra.me.prev;
22960 init_table[itpos180] = 1;
22961 return;
22962 }
22963 void parser___ReduceAction178___action(val_t p0, val_t p1){
22964 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22965 val_t REGB0;
22966 val_t tmp;
22967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22968 fra.me.file = LOCATE_parser;
22969 fra.me.line = 6874;
22970 fra.me.meth = LOCATE_parser___ReduceAction178___action;
22971 fra.me.has_broke = 0;
22972 fra.me.REG_size = 7;
22973 fra.me.REG[0] = NIT_NULL;
22974 fra.me.REG[1] = NIT_NULL;
22975 fra.me.REG[2] = NIT_NULL;
22976 fra.me.REG[3] = NIT_NULL;
22977 fra.me.REG[4] = NIT_NULL;
22978 fra.me.REG[5] = NIT_NULL;
22979 fra.me.REG[6] = NIT_NULL;
22980 fra.me.REG[0] = p0;
22981 fra.me.REG[1] = p1;
22982 /* ./parser//parser.nit:6876 */
22983 fra.me.REG[2] = NIT_NULL;
22984 /* ./parser//parser.nit:6877 */
22985 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22986 /* ./parser//parser.nit:6878 */
22987 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22988 /* ./parser//parser.nit:6879 */
22989 fra.me.REG[5] = NEW_Array_array___Array___init();
22990 /* ./parser//parser.nit:6880 */
22991 fra.me.REG[6] = NEW_Array_array___Array___init();
22992 /* ./parser//parser.nit:6882 */
22993 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22994 if (UNTAG_Bool(REGB0)) {
22995 } else {
22996 nit_abort("Assert failed", NULL, LOCATE_parser, 6882);
22997 }
22998 /* ./parser//parser.nit:6883 */
22999 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
23000 fra.me.REG[5] = fra.me.REG[4];
23001 /* ./parser//parser.nit:6885 */
23002 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
23003 if (UNTAG_Bool(REGB0)) {
23004 } else {
23005 nit_abort("Assert failed", NULL, LOCATE_parser, 6885);
23006 }
23007 /* ./parser//parser.nit:6886 */
23008 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[3], fra.me.REG[6]);
23009 /* ./parser//parser.nit:6891 */
23010 fra.me.REG[2] = fra.me.REG[6];
23011 /* ./parser//parser.nit:6892 */
23012 REGB0 = TAG_Bool(ATTR_parser___ReduceAction178____goto(fra.me.REG[0])!=NIT_NULL);
23013 if (UNTAG_Bool(REGB0)) {
23014 } else {
23015 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6892);
23016 }
23017 REGB0 = ATTR_parser___ReduceAction178____goto(fra.me.REG[0]);
23018 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23019 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23020 stack_frame_head = fra.me.prev;
23021 return;
23022 }
23023 void parser___ReduceAction178___init(val_t p0, val_t p1, int* init_table){
23024 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction178].i;
23025 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23026 val_t REGB0;
23027 val_t tmp;
23028 if (init_table[itpos181]) return;
23029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23030 fra.me.file = LOCATE_parser;
23031 fra.me.line = 6895;
23032 fra.me.meth = LOCATE_parser___ReduceAction178___init;
23033 fra.me.has_broke = 0;
23034 fra.me.REG_size = 2;
23035 fra.me.REG[0] = NIT_NULL;
23036 fra.me.REG[1] = NIT_NULL;
23037 fra.me.REG[0] = p0;
23038 REGB0 = p1;
23039 /* ./parser//parser.nit:6895 */
23040 fra.me.REG[1] = fra.me.REG[0];
23041 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23042 ATTR_parser___ReduceAction178____goto(fra.me.REG[1]) = REGB0;
23043 stack_frame_head = fra.me.prev;
23044 init_table[itpos181] = 1;
23045 return;
23046 }
23047 void parser___ReduceAction179___action(val_t p0, val_t p1){
23048 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23049 val_t REGB0;
23050 val_t REGB1;
23051 val_t tmp;
23052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23053 fra.me.file = LOCATE_parser;
23054 fra.me.line = 6899;
23055 fra.me.meth = LOCATE_parser___ReduceAction179___action;
23056 fra.me.has_broke = 0;
23057 fra.me.REG_size = 5;
23058 fra.me.REG[0] = NIT_NULL;
23059 fra.me.REG[1] = NIT_NULL;
23060 fra.me.REG[2] = NIT_NULL;
23061 fra.me.REG[3] = NIT_NULL;
23062 fra.me.REG[4] = NIT_NULL;
23063 fra.me.REG[0] = p0;
23064 fra.me.REG[1] = p1;
23065 /* ./parser//parser.nit:6901 */
23066 fra.me.REG[2] = NIT_NULL;
23067 /* ./parser//parser.nit:6902 */
23068 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23069 /* ./parser//parser.nit:6903 */
23070 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23071 /* ./parser//parser.nit:6904 */
23072 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23073 /* ./parser//parser.nit:6905 */
23074 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23075 /* ./parser//parser.nit:6906 */
23076 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23077 /* ./parser//parser.nit:6907 */
23078 fra.me.REG[4] = NEW_Array_array___Array___init();
23079 /* ./parser//parser.nit:6909 */
23080 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23081 if (UNTAG_Bool(REGB0)) {
23082 } else {
23083 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23084 if (UNTAG_Bool(REGB1)) {
23085 REGB1 = TAG_Bool(false);
23086 REGB0 = REGB1;
23087 } else {
23088 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23089 REGB0 = REGB1;
23090 }
23091 }
23092 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23093 if (UNTAG_Bool(REGB0)) {
23094 /* ./parser//parser.nit:6910 */
23095 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
23096 }
23097 /* ./parser//parser.nit:6912 */
23098 fra.me.REG[2] = fra.me.REG[4];
23099 /* ./parser//parser.nit:6913 */
23100 REGB0 = TAG_Bool(ATTR_parser___ReduceAction179____goto(fra.me.REG[0])!=NIT_NULL);
23101 if (UNTAG_Bool(REGB0)) {
23102 } else {
23103 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6913);
23104 }
23105 REGB0 = ATTR_parser___ReduceAction179____goto(fra.me.REG[0]);
23106 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23107 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23108 stack_frame_head = fra.me.prev;
23109 return;
23110 }
23111 void parser___ReduceAction179___init(val_t p0, val_t p1, int* init_table){
23112 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction179].i;
23113 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23114 val_t REGB0;
23115 val_t tmp;
23116 if (init_table[itpos182]) return;
23117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23118 fra.me.file = LOCATE_parser;
23119 fra.me.line = 6916;
23120 fra.me.meth = LOCATE_parser___ReduceAction179___init;
23121 fra.me.has_broke = 0;
23122 fra.me.REG_size = 2;
23123 fra.me.REG[0] = NIT_NULL;
23124 fra.me.REG[1] = NIT_NULL;
23125 fra.me.REG[0] = p0;
23126 REGB0 = p1;
23127 /* ./parser//parser.nit:6916 */
23128 fra.me.REG[1] = fra.me.REG[0];
23129 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23130 ATTR_parser___ReduceAction179____goto(fra.me.REG[1]) = REGB0;
23131 stack_frame_head = fra.me.prev;
23132 init_table[itpos182] = 1;
23133 return;
23134 }
23135 void parser___ReduceAction180___action(val_t p0, val_t p1){
23136 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23137 val_t REGB0;
23138 val_t REGB1;
23139 val_t tmp;
23140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23141 fra.me.file = LOCATE_parser;
23142 fra.me.line = 6920;
23143 fra.me.meth = LOCATE_parser___ReduceAction180___action;
23144 fra.me.has_broke = 0;
23145 fra.me.REG_size = 6;
23146 fra.me.REG[0] = NIT_NULL;
23147 fra.me.REG[1] = NIT_NULL;
23148 fra.me.REG[2] = NIT_NULL;
23149 fra.me.REG[3] = NIT_NULL;
23150 fra.me.REG[4] = NIT_NULL;
23151 fra.me.REG[5] = NIT_NULL;
23152 fra.me.REG[0] = p0;
23153 fra.me.REG[1] = p1;
23154 /* ./parser//parser.nit:6922 */
23155 fra.me.REG[2] = NIT_NULL;
23156 /* ./parser//parser.nit:6923 */
23157 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23158 /* ./parser//parser.nit:6924 */
23159 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23160 /* ./parser//parser.nit:6925 */
23161 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23162 /* ./parser//parser.nit:6926 */
23163 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23164 /* ./parser//parser.nit:6927 */
23165 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23166 /* ./parser//parser.nit:6928 */
23167 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23168 /* ./parser//parser.nit:6929 */
23169 fra.me.REG[5] = NEW_Array_array___Array___init();
23170 /* ./parser//parser.nit:6932 */
23171 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
23172 if (UNTAG_Bool(REGB0)) {
23173 } else {
23174 nit_abort("Assert failed", NULL, LOCATE_parser, 6932);
23175 }
23176 /* ./parser//parser.nit:6933 */
23177 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23178 if (UNTAG_Bool(REGB0)) {
23179 } else {
23180 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23181 if (UNTAG_Bool(REGB1)) {
23182 REGB1 = TAG_Bool(false);
23183 REGB0 = REGB1;
23184 } else {
23185 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
23186 REGB0 = REGB1;
23187 }
23188 }
23189 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23190 if (UNTAG_Bool(REGB0)) {
23191 /* ./parser//parser.nit:6934 */
23192 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
23193 }
23194 /* ./parser//parser.nit:6936 */
23195 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
23196 fra.me.REG[5] = fra.me.REG[3];
23197 /* ./parser//parser.nit:6937 */
23198 fra.me.REG[2] = fra.me.REG[5];
23199 /* ./parser//parser.nit:6938 */
23200 REGB0 = TAG_Bool(ATTR_parser___ReduceAction180____goto(fra.me.REG[0])!=NIT_NULL);
23201 if (UNTAG_Bool(REGB0)) {
23202 } else {
23203 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6938);
23204 }
23205 REGB0 = ATTR_parser___ReduceAction180____goto(fra.me.REG[0]);
23206 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23207 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23208 stack_frame_head = fra.me.prev;
23209 return;
23210 }
23211 void parser___ReduceAction180___init(val_t p0, val_t p1, int* init_table){
23212 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction180].i;
23213 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23214 val_t REGB0;
23215 val_t tmp;
23216 if (init_table[itpos183]) return;
23217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23218 fra.me.file = LOCATE_parser;
23219 fra.me.line = 6941;
23220 fra.me.meth = LOCATE_parser___ReduceAction180___init;
23221 fra.me.has_broke = 0;
23222 fra.me.REG_size = 2;
23223 fra.me.REG[0] = NIT_NULL;
23224 fra.me.REG[1] = NIT_NULL;
23225 fra.me.REG[0] = p0;
23226 REGB0 = p1;
23227 /* ./parser//parser.nit:6941 */
23228 fra.me.REG[1] = fra.me.REG[0];
23229 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23230 ATTR_parser___ReduceAction180____goto(fra.me.REG[1]) = REGB0;
23231 stack_frame_head = fra.me.prev;
23232 init_table[itpos183] = 1;
23233 return;
23234 }
23235 void parser___ReduceAction181___action(val_t p0, val_t p1){
23236 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23237 val_t REGB0;
23238 val_t tmp;
23239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23240 fra.me.file = LOCATE_parser;
23241 fra.me.line = 6945;
23242 fra.me.meth = LOCATE_parser___ReduceAction181___action;
23243 fra.me.has_broke = 0;
23244 fra.me.REG_size = 4;
23245 fra.me.REG[0] = NIT_NULL;
23246 fra.me.REG[1] = NIT_NULL;
23247 fra.me.REG[2] = NIT_NULL;
23248 fra.me.REG[3] = NIT_NULL;
23249 fra.me.REG[0] = p0;
23250 fra.me.REG[1] = p1;
23251 /* ./parser//parser.nit:6947 */
23252 fra.me.REG[2] = NIT_NULL;
23253 /* ./parser//parser.nit:6948 */
23254 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23255 /* ./parser//parser.nit:6949 */
23256 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23257 /* ./parser//parser.nit:6950 */
23258 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23259 /* ./parser//parser.nit:6951 */
23260 fra.me.REG[3] = NEW_Array_array___Array___init();
23261 /* ./parser//parser.nit:6952 */
23262 fra.me.REG[2] = fra.me.REG[3];
23263 /* ./parser//parser.nit:6953 */
23264 REGB0 = TAG_Bool(ATTR_parser___ReduceAction181____goto(fra.me.REG[0])!=NIT_NULL);
23265 if (UNTAG_Bool(REGB0)) {
23266 } else {
23267 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6953);
23268 }
23269 REGB0 = ATTR_parser___ReduceAction181____goto(fra.me.REG[0]);
23270 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23271 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23272 stack_frame_head = fra.me.prev;
23273 return;
23274 }
23275 void parser___ReduceAction181___init(val_t p0, val_t p1, int* init_table){
23276 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction181].i;
23277 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23278 val_t REGB0;
23279 val_t tmp;
23280 if (init_table[itpos184]) return;
23281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23282 fra.me.file = LOCATE_parser;
23283 fra.me.line = 6956;
23284 fra.me.meth = LOCATE_parser___ReduceAction181___init;
23285 fra.me.has_broke = 0;
23286 fra.me.REG_size = 2;
23287 fra.me.REG[0] = NIT_NULL;
23288 fra.me.REG[1] = NIT_NULL;
23289 fra.me.REG[0] = p0;
23290 REGB0 = p1;
23291 /* ./parser//parser.nit:6956 */
23292 fra.me.REG[1] = fra.me.REG[0];
23293 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23294 ATTR_parser___ReduceAction181____goto(fra.me.REG[1]) = REGB0;
23295 stack_frame_head = fra.me.prev;
23296 init_table[itpos184] = 1;
23297 return;
23298 }
23299 void parser___ReduceAction182___action(val_t p0, val_t p1){
23300 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23301 val_t REGB0;
23302 val_t tmp;
23303 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23304 fra.me.file = LOCATE_parser;
23305 fra.me.line = 6960;
23306 fra.me.meth = LOCATE_parser___ReduceAction182___action;
23307 fra.me.has_broke = 0;
23308 fra.me.REG_size = 5;
23309 fra.me.REG[0] = NIT_NULL;
23310 fra.me.REG[1] = NIT_NULL;
23311 fra.me.REG[2] = NIT_NULL;
23312 fra.me.REG[3] = NIT_NULL;
23313 fra.me.REG[4] = NIT_NULL;
23314 fra.me.REG[0] = p0;
23315 fra.me.REG[1] = p1;
23316 /* ./parser//parser.nit:6962 */
23317 fra.me.REG[2] = NIT_NULL;
23318 /* ./parser//parser.nit:6963 */
23319 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23320 /* ./parser//parser.nit:6964 */
23321 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23322 /* ./parser//parser.nit:6965 */
23323 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23324 /* ./parser//parser.nit:6967 */
23325 fra.me.REG[2] = fra.me.REG[3];
23326 /* ./parser//parser.nit:6968 */
23327 REGB0 = TAG_Bool(ATTR_parser___ReduceAction182____goto(fra.me.REG[0])!=NIT_NULL);
23328 if (UNTAG_Bool(REGB0)) {
23329 } else {
23330 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6968);
23331 }
23332 REGB0 = ATTR_parser___ReduceAction182____goto(fra.me.REG[0]);
23333 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23334 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23335 stack_frame_head = fra.me.prev;
23336 return;
23337 }
23338 void parser___ReduceAction182___init(val_t p0, val_t p1, int* init_table){
23339 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction182].i;
23340 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23341 val_t REGB0;
23342 val_t tmp;
23343 if (init_table[itpos185]) return;
23344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23345 fra.me.file = LOCATE_parser;
23346 fra.me.line = 6971;
23347 fra.me.meth = LOCATE_parser___ReduceAction182___init;
23348 fra.me.has_broke = 0;
23349 fra.me.REG_size = 2;
23350 fra.me.REG[0] = NIT_NULL;
23351 fra.me.REG[1] = NIT_NULL;
23352 fra.me.REG[0] = p0;
23353 REGB0 = p1;
23354 /* ./parser//parser.nit:6971 */
23355 fra.me.REG[1] = fra.me.REG[0];
23356 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23357 ATTR_parser___ReduceAction182____goto(fra.me.REG[1]) = REGB0;
23358 stack_frame_head = fra.me.prev;
23359 init_table[itpos185] = 1;
23360 return;
23361 }
23362 void parser___ReduceAction183___action(val_t p0, val_t p1){
23363 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23364 val_t REGB0;
23365 val_t tmp;
23366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23367 fra.me.file = LOCATE_parser;
23368 fra.me.line = 6975;
23369 fra.me.meth = LOCATE_parser___ReduceAction183___action;
23370 fra.me.has_broke = 0;
23371 fra.me.REG_size = 4;
23372 fra.me.REG[0] = NIT_NULL;
23373 fra.me.REG[1] = NIT_NULL;
23374 fra.me.REG[2] = NIT_NULL;
23375 fra.me.REG[3] = NIT_NULL;
23376 fra.me.REG[0] = p0;
23377 fra.me.REG[1] = p1;
23378 /* ./parser//parser.nit:6977 */
23379 fra.me.REG[2] = NIT_NULL;
23380 /* ./parser//parser.nit:6978 */
23381 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23382 /* ./parser//parser.nit:6980 */
23383 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23384 if (UNTAG_Bool(REGB0)) {
23385 } else {
23386 nit_abort("Assert failed", NULL, LOCATE_parser, 6980);
23387 }
23388 /* ./parser//parser.nit:6981 */
23389 fra.me.REG[3] = NEW_AParam_parser_prod___AParam___init_aparam(fra.me.REG[3], NIT_NULL, NIT_NULL);
23390 /* ./parser//parser.nit:6986 */
23391 fra.me.REG[2] = fra.me.REG[3];
23392 /* ./parser//parser.nit:6987 */
23393 REGB0 = TAG_Bool(ATTR_parser___ReduceAction183____goto(fra.me.REG[0])!=NIT_NULL);
23394 if (UNTAG_Bool(REGB0)) {
23395 } else {
23396 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6987);
23397 }
23398 REGB0 = ATTR_parser___ReduceAction183____goto(fra.me.REG[0]);
23399 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23400 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23401 stack_frame_head = fra.me.prev;
23402 return;
23403 }
23404 void parser___ReduceAction183___init(val_t p0, val_t p1, int* init_table){
23405 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction183].i;
23406 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23407 val_t REGB0;
23408 val_t tmp;
23409 if (init_table[itpos186]) return;
23410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23411 fra.me.file = LOCATE_parser;
23412 fra.me.line = 6990;
23413 fra.me.meth = LOCATE_parser___ReduceAction183___init;
23414 fra.me.has_broke = 0;
23415 fra.me.REG_size = 2;
23416 fra.me.REG[0] = NIT_NULL;
23417 fra.me.REG[1] = NIT_NULL;
23418 fra.me.REG[0] = p0;
23419 REGB0 = p1;
23420 /* ./parser//parser.nit:6990 */
23421 fra.me.REG[1] = fra.me.REG[0];
23422 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23423 ATTR_parser___ReduceAction183____goto(fra.me.REG[1]) = REGB0;
23424 stack_frame_head = fra.me.prev;
23425 init_table[itpos186] = 1;
23426 return;
23427 }
23428 void parser___ReduceAction184___action(val_t p0, val_t p1){
23429 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23430 val_t REGB0;
23431 val_t tmp;
23432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23433 fra.me.file = LOCATE_parser;
23434 fra.me.line = 6994;
23435 fra.me.meth = LOCATE_parser___ReduceAction184___action;
23436 fra.me.has_broke = 0;
23437 fra.me.REG_size = 5;
23438 fra.me.REG[0] = NIT_NULL;
23439 fra.me.REG[1] = NIT_NULL;
23440 fra.me.REG[2] = NIT_NULL;
23441 fra.me.REG[3] = NIT_NULL;
23442 fra.me.REG[4] = NIT_NULL;
23443 fra.me.REG[0] = p0;
23444 fra.me.REG[1] = p1;
23445 /* ./parser//parser.nit:6996 */
23446 fra.me.REG[2] = NIT_NULL;
23447 /* ./parser//parser.nit:6997 */
23448 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23449 /* ./parser//parser.nit:6998 */
23450 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23451 /* ./parser//parser.nit:7000 */
23452 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23453 if (UNTAG_Bool(REGB0)) {
23454 } else {
23455 nit_abort("Assert failed", NULL, LOCATE_parser, 7000);
23456 }
23457 /* ./parser//parser.nit:7002 */
23458 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
23459 if (UNTAG_Bool(REGB0)) {
23460 } else {
23461 nit_abort("Assert failed", NULL, LOCATE_parser, 7002);
23462 }
23463 /* ./parser//parser.nit:7003 */
23464 fra.me.REG[3] = NEW_AParam_parser_prod___AParam___init_aparam(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
23465 /* ./parser//parser.nit:7008 */
23466 fra.me.REG[2] = fra.me.REG[3];
23467 /* ./parser//parser.nit:7009 */
23468 REGB0 = TAG_Bool(ATTR_parser___ReduceAction184____goto(fra.me.REG[0])!=NIT_NULL);
23469 if (UNTAG_Bool(REGB0)) {
23470 } else {
23471 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7009);
23472 }
23473 REGB0 = ATTR_parser___ReduceAction184____goto(fra.me.REG[0]);
23474 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23475 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23476 stack_frame_head = fra.me.prev;
23477 return;
23478 }
23479 void parser___ReduceAction184___init(val_t p0, val_t p1, int* init_table){
23480 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction184].i;
23481 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23482 val_t REGB0;
23483 val_t tmp;
23484 if (init_table[itpos187]) return;
23485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23486 fra.me.file = LOCATE_parser;
23487 fra.me.line = 7012;
23488 fra.me.meth = LOCATE_parser___ReduceAction184___init;
23489 fra.me.has_broke = 0;
23490 fra.me.REG_size = 2;
23491 fra.me.REG[0] = NIT_NULL;
23492 fra.me.REG[1] = NIT_NULL;
23493 fra.me.REG[0] = p0;
23494 REGB0 = p1;
23495 /* ./parser//parser.nit:7012 */
23496 fra.me.REG[1] = fra.me.REG[0];
23497 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23498 ATTR_parser___ReduceAction184____goto(fra.me.REG[1]) = REGB0;
23499 stack_frame_head = fra.me.prev;
23500 init_table[itpos187] = 1;
23501 return;
23502 }
23503 void parser___ReduceAction185___action(val_t p0, val_t p1){
23504 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23505 val_t REGB0;
23506 val_t tmp;
23507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23508 fra.me.file = LOCATE_parser;
23509 fra.me.line = 7016;
23510 fra.me.meth = LOCATE_parser___ReduceAction185___action;
23511 fra.me.has_broke = 0;
23512 fra.me.REG_size = 6;
23513 fra.me.REG[0] = NIT_NULL;
23514 fra.me.REG[1] = NIT_NULL;
23515 fra.me.REG[2] = NIT_NULL;
23516 fra.me.REG[3] = NIT_NULL;
23517 fra.me.REG[4] = NIT_NULL;
23518 fra.me.REG[5] = NIT_NULL;
23519 fra.me.REG[0] = p0;
23520 fra.me.REG[1] = p1;
23521 /* ./parser//parser.nit:7018 */
23522 fra.me.REG[2] = NIT_NULL;
23523 /* ./parser//parser.nit:7019 */
23524 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23525 /* ./parser//parser.nit:7020 */
23526 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23527 /* ./parser//parser.nit:7021 */
23528 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23529 /* ./parser//parser.nit:7023 */
23530 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23531 if (UNTAG_Bool(REGB0)) {
23532 } else {
23533 nit_abort("Assert failed", NULL, LOCATE_parser, 7023);
23534 }
23535 /* ./parser//parser.nit:7025 */
23536 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
23537 if (UNTAG_Bool(REGB0)) {
23538 } else {
23539 nit_abort("Assert failed", NULL, LOCATE_parser, 7025);
23540 }
23541 /* ./parser//parser.nit:7027 */
23542 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TDotdotdot, ID_TDotdotdot)) /*cast nullable TDotdotdot*/;
23543 if (UNTAG_Bool(REGB0)) {
23544 } else {
23545 nit_abort("Assert failed", NULL, LOCATE_parser, 7027);
23546 }
23547 /* ./parser//parser.nit:7028 */
23548 fra.me.REG[3] = NEW_AParam_parser_prod___AParam___init_aparam(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
23549 /* ./parser//parser.nit:7033 */
23550 fra.me.REG[2] = fra.me.REG[3];
23551 /* ./parser//parser.nit:7034 */
23552 REGB0 = TAG_Bool(ATTR_parser___ReduceAction185____goto(fra.me.REG[0])!=NIT_NULL);
23553 if (UNTAG_Bool(REGB0)) {
23554 } else {
23555 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7034);
23556 }
23557 REGB0 = ATTR_parser___ReduceAction185____goto(fra.me.REG[0]);
23558 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23559 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23560 stack_frame_head = fra.me.prev;
23561 return;
23562 }
23563 void parser___ReduceAction185___init(val_t p0, val_t p1, int* init_table){
23564 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction185].i;
23565 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23566 val_t REGB0;
23567 val_t tmp;
23568 if (init_table[itpos188]) return;
23569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23570 fra.me.file = LOCATE_parser;
23571 fra.me.line = 7037;
23572 fra.me.meth = LOCATE_parser___ReduceAction185___init;
23573 fra.me.has_broke = 0;
23574 fra.me.REG_size = 2;
23575 fra.me.REG[0] = NIT_NULL;
23576 fra.me.REG[1] = NIT_NULL;
23577 fra.me.REG[0] = p0;
23578 REGB0 = p1;
23579 /* ./parser//parser.nit:7037 */
23580 fra.me.REG[1] = fra.me.REG[0];
23581 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23582 ATTR_parser___ReduceAction185____goto(fra.me.REG[1]) = REGB0;
23583 stack_frame_head = fra.me.prev;
23584 init_table[itpos188] = 1;
23585 return;
23586 }
23587 void parser___ReduceAction186___action(val_t p0, val_t p1){
23588 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23589 val_t REGB0;
23590 val_t tmp;
23591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23592 fra.me.file = LOCATE_parser;
23593 fra.me.line = 7041;
23594 fra.me.meth = LOCATE_parser___ReduceAction186___action;
23595 fra.me.has_broke = 0;
23596 fra.me.REG_size = 5;
23597 fra.me.REG[0] = NIT_NULL;
23598 fra.me.REG[1] = NIT_NULL;
23599 fra.me.REG[2] = NIT_NULL;
23600 fra.me.REG[3] = NIT_NULL;
23601 fra.me.REG[4] = NIT_NULL;
23602 fra.me.REG[0] = p0;
23603 fra.me.REG[1] = p1;
23604 /* ./parser//parser.nit:7043 */
23605 fra.me.REG[2] = NIT_NULL;
23606 /* ./parser//parser.nit:7044 */
23607 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23608 /* ./parser//parser.nit:7045 */
23609 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23610 /* ./parser//parser.nit:7046 */
23611 fra.me.REG[4] = NEW_Array_array___Array___init();
23612 /* ./parser//parser.nit:7048 */
23613 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
23614 if (UNTAG_Bool(REGB0)) {
23615 } else {
23616 nit_abort("Assert failed", NULL, LOCATE_parser, 7048);
23617 }
23618 /* ./parser//parser.nit:7049 */
23619 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
23620 fra.me.REG[4] = fra.me.REG[3];
23621 /* ./parser//parser.nit:7050 */
23622 fra.me.REG[2] = fra.me.REG[4];
23623 /* ./parser//parser.nit:7051 */
23624 REGB0 = TAG_Bool(ATTR_parser___ReduceAction186____goto(fra.me.REG[0])!=NIT_NULL);
23625 if (UNTAG_Bool(REGB0)) {
23626 } else {
23627 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7051);
23628 }
23629 REGB0 = ATTR_parser___ReduceAction186____goto(fra.me.REG[0]);
23630 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23631 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23632 stack_frame_head = fra.me.prev;
23633 return;
23634 }
23635 void parser___ReduceAction186___init(val_t p0, val_t p1, int* init_table){
23636 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction186].i;
23637 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23638 val_t REGB0;
23639 val_t tmp;
23640 if (init_table[itpos189]) return;
23641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23642 fra.me.file = LOCATE_parser;
23643 fra.me.line = 7054;
23644 fra.me.meth = LOCATE_parser___ReduceAction186___init;
23645 fra.me.has_broke = 0;
23646 fra.me.REG_size = 2;
23647 fra.me.REG[0] = NIT_NULL;
23648 fra.me.REG[1] = NIT_NULL;
23649 fra.me.REG[0] = p0;
23650 REGB0 = p1;
23651 /* ./parser//parser.nit:7054 */
23652 fra.me.REG[1] = fra.me.REG[0];
23653 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23654 ATTR_parser___ReduceAction186____goto(fra.me.REG[1]) = REGB0;
23655 stack_frame_head = fra.me.prev;
23656 init_table[itpos189] = 1;
23657 return;
23658 }
23659 void parser___ReduceAction187___action(val_t p0, val_t p1){
23660 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23661 val_t REGB0;
23662 val_t tmp;
23663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23664 fra.me.file = LOCATE_parser;
23665 fra.me.line = 7058;
23666 fra.me.meth = LOCATE_parser___ReduceAction187___action;
23667 fra.me.has_broke = 0;
23668 fra.me.REG_size = 6;
23669 fra.me.REG[0] = NIT_NULL;
23670 fra.me.REG[1] = NIT_NULL;
23671 fra.me.REG[2] = NIT_NULL;
23672 fra.me.REG[3] = NIT_NULL;
23673 fra.me.REG[4] = NIT_NULL;
23674 fra.me.REG[5] = NIT_NULL;
23675 fra.me.REG[0] = p0;
23676 fra.me.REG[1] = p1;
23677 /* ./parser//parser.nit:7060 */
23678 fra.me.REG[2] = NIT_NULL;
23679 /* ./parser//parser.nit:7061 */
23680 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23681 /* ./parser//parser.nit:7062 */
23682 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23683 /* ./parser//parser.nit:7063 */
23684 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23685 /* ./parser//parser.nit:7064 */
23686 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23687 /* ./parser//parser.nit:7066 */
23688 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23689 if (UNTAG_Bool(REGB0)) {
23690 } else {
23691 nit_abort("Assert failed", NULL, LOCATE_parser, 7066);
23692 }
23693 /* ./parser//parser.nit:7068 */
23694 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23695 if (UNTAG_Bool(REGB0)) {
23696 } else {
23697 nit_abort("Assert failed", NULL, LOCATE_parser, 7068);
23698 }
23699 /* ./parser//parser.nit:7070 */
23700 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23701 if (UNTAG_Bool(REGB0)) {
23702 } else {
23703 nit_abort("Assert failed", NULL, LOCATE_parser, 7070);
23704 }
23705 /* ./parser//parser.nit:7071 */
23706 fra.me.REG[3] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
23707 /* ./parser//parser.nit:7078 */
23708 fra.me.REG[2] = fra.me.REG[3];
23709 /* ./parser//parser.nit:7079 */
23710 REGB0 = TAG_Bool(ATTR_parser___ReduceAction187____goto(fra.me.REG[0])!=NIT_NULL);
23711 if (UNTAG_Bool(REGB0)) {
23712 } else {
23713 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7079);
23714 }
23715 REGB0 = ATTR_parser___ReduceAction187____goto(fra.me.REG[0]);
23716 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23717 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23718 stack_frame_head = fra.me.prev;
23719 return;
23720 }
23721 void parser___ReduceAction187___init(val_t p0, val_t p1, int* init_table){
23722 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction187].i;
23723 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23724 val_t REGB0;
23725 val_t tmp;
23726 if (init_table[itpos190]) return;
23727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23728 fra.me.file = LOCATE_parser;
23729 fra.me.line = 7082;
23730 fra.me.meth = LOCATE_parser___ReduceAction187___init;
23731 fra.me.has_broke = 0;
23732 fra.me.REG_size = 2;
23733 fra.me.REG[0] = NIT_NULL;
23734 fra.me.REG[1] = NIT_NULL;
23735 fra.me.REG[0] = p0;
23736 REGB0 = p1;
23737 /* ./parser//parser.nit:7082 */
23738 fra.me.REG[1] = fra.me.REG[0];
23739 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23740 ATTR_parser___ReduceAction187____goto(fra.me.REG[1]) = REGB0;
23741 stack_frame_head = fra.me.prev;
23742 init_table[itpos190] = 1;
23743 return;
23744 }
23745 void parser___ReduceAction188___action(val_t p0, val_t p1){
23746 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
23747 val_t REGB0;
23748 val_t tmp;
23749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23750 fra.me.file = LOCATE_parser;
23751 fra.me.line = 7086;
23752 fra.me.meth = LOCATE_parser___ReduceAction188___action;
23753 fra.me.has_broke = 0;
23754 fra.me.REG_size = 7;
23755 fra.me.REG[0] = NIT_NULL;
23756 fra.me.REG[1] = NIT_NULL;
23757 fra.me.REG[2] = NIT_NULL;
23758 fra.me.REG[3] = NIT_NULL;
23759 fra.me.REG[4] = NIT_NULL;
23760 fra.me.REG[5] = NIT_NULL;
23761 fra.me.REG[6] = NIT_NULL;
23762 fra.me.REG[0] = p0;
23763 fra.me.REG[1] = p1;
23764 /* ./parser//parser.nit:7088 */
23765 fra.me.REG[2] = NIT_NULL;
23766 /* ./parser//parser.nit:7089 */
23767 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23768 /* ./parser//parser.nit:7090 */
23769 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23770 /* ./parser//parser.nit:7091 */
23771 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23772 /* ./parser//parser.nit:7092 */
23773 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23774 /* ./parser//parser.nit:7093 */
23775 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23776 /* ./parser//parser.nit:7095 */
23777 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
23778 if (UNTAG_Bool(REGB0)) {
23779 } else {
23780 nit_abort("Assert failed", NULL, LOCATE_parser, 7095);
23781 }
23782 /* ./parser//parser.nit:7097 */
23783 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23784 if (UNTAG_Bool(REGB0)) {
23785 } else {
23786 nit_abort("Assert failed", NULL, LOCATE_parser, 7097);
23787 }
23788 /* ./parser//parser.nit:7099 */
23789 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23790 if (UNTAG_Bool(REGB0)) {
23791 } else {
23792 nit_abort("Assert failed", NULL, LOCATE_parser, 7099);
23793 }
23794 /* ./parser//parser.nit:7101 */
23795 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23796 if (UNTAG_Bool(REGB0)) {
23797 } else {
23798 nit_abort("Assert failed", NULL, LOCATE_parser, 7101);
23799 }
23800 /* ./parser//parser.nit:7102 */
23801 fra.me.REG[3] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
23802 /* ./parser//parser.nit:7109 */
23803 fra.me.REG[2] = fra.me.REG[3];
23804 /* ./parser//parser.nit:7110 */
23805 REGB0 = TAG_Bool(ATTR_parser___ReduceAction188____goto(fra.me.REG[0])!=NIT_NULL);
23806 if (UNTAG_Bool(REGB0)) {
23807 } else {
23808 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7110);
23809 }
23810 REGB0 = ATTR_parser___ReduceAction188____goto(fra.me.REG[0]);
23811 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23812 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23813 stack_frame_head = fra.me.prev;
23814 return;
23815 }
23816 void parser___ReduceAction188___init(val_t p0, val_t p1, int* init_table){
23817 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction188].i;
23818 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23819 val_t REGB0;
23820 val_t tmp;
23821 if (init_table[itpos191]) return;
23822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23823 fra.me.file = LOCATE_parser;
23824 fra.me.line = 7113;
23825 fra.me.meth = LOCATE_parser___ReduceAction188___init;
23826 fra.me.has_broke = 0;
23827 fra.me.REG_size = 2;
23828 fra.me.REG[0] = NIT_NULL;
23829 fra.me.REG[1] = NIT_NULL;
23830 fra.me.REG[0] = p0;
23831 REGB0 = p1;
23832 /* ./parser//parser.nit:7113 */
23833 fra.me.REG[1] = fra.me.REG[0];
23834 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23835 ATTR_parser___ReduceAction188____goto(fra.me.REG[1]) = REGB0;
23836 stack_frame_head = fra.me.prev;
23837 init_table[itpos191] = 1;
23838 return;
23839 }
23840 void parser___ReduceAction189___action(val_t p0, val_t p1){
23841 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
23842 val_t REGB0;
23843 val_t tmp;
23844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23845 fra.me.file = LOCATE_parser;
23846 fra.me.line = 7117;
23847 fra.me.meth = LOCATE_parser___ReduceAction189___action;
23848 fra.me.has_broke = 0;
23849 fra.me.REG_size = 7;
23850 fra.me.REG[0] = NIT_NULL;
23851 fra.me.REG[1] = NIT_NULL;
23852 fra.me.REG[2] = NIT_NULL;
23853 fra.me.REG[3] = NIT_NULL;
23854 fra.me.REG[4] = NIT_NULL;
23855 fra.me.REG[5] = NIT_NULL;
23856 fra.me.REG[6] = NIT_NULL;
23857 fra.me.REG[0] = p0;
23858 fra.me.REG[1] = p1;
23859 /* ./parser//parser.nit:7119 */
23860 fra.me.REG[2] = NIT_NULL;
23861 /* ./parser//parser.nit:7120 */
23862 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23863 /* ./parser//parser.nit:7121 */
23864 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23865 /* ./parser//parser.nit:7122 */
23866 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23867 /* ./parser//parser.nit:7123 */
23868 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23869 /* ./parser//parser.nit:7124 */
23870 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23871 /* ./parser//parser.nit:7125 */
23872 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23873 /* ./parser//parser.nit:7127 */
23874 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23875 if (UNTAG_Bool(REGB0)) {
23876 } else {
23877 nit_abort("Assert failed", NULL, LOCATE_parser, 7127);
23878 }
23879 /* ./parser//parser.nit:7129 */
23880 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23881 if (UNTAG_Bool(REGB0)) {
23882 } else {
23883 nit_abort("Assert failed", NULL, LOCATE_parser, 7129);
23884 }
23885 /* ./parser//parser.nit:7131 */
23886 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23887 if (UNTAG_Bool(REGB0)) {
23888 } else {
23889 nit_abort("Assert failed", NULL, LOCATE_parser, 7131);
23890 }
23891 /* ./parser//parser.nit:7133 */
23892 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
23893 if (UNTAG_Bool(REGB0)) {
23894 } else {
23895 nit_abort("Assert failed", NULL, LOCATE_parser, 7133);
23896 }
23897 /* ./parser//parser.nit:7134 */
23898 fra.me.REG[3] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
23899 /* ./parser//parser.nit:7141 */
23900 fra.me.REG[2] = fra.me.REG[3];
23901 /* ./parser//parser.nit:7142 */
23902 REGB0 = TAG_Bool(ATTR_parser___ReduceAction189____goto(fra.me.REG[0])!=NIT_NULL);
23903 if (UNTAG_Bool(REGB0)) {
23904 } else {
23905 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7142);
23906 }
23907 REGB0 = ATTR_parser___ReduceAction189____goto(fra.me.REG[0]);
23908 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23909 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23910 stack_frame_head = fra.me.prev;
23911 return;
23912 }
23913 void parser___ReduceAction189___init(val_t p0, val_t p1, int* init_table){
23914 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction189].i;
23915 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23916 val_t REGB0;
23917 val_t tmp;
23918 if (init_table[itpos192]) return;
23919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23920 fra.me.file = LOCATE_parser;
23921 fra.me.line = 7145;
23922 fra.me.meth = LOCATE_parser___ReduceAction189___init;
23923 fra.me.has_broke = 0;
23924 fra.me.REG_size = 2;
23925 fra.me.REG[0] = NIT_NULL;
23926 fra.me.REG[1] = NIT_NULL;
23927 fra.me.REG[0] = p0;
23928 REGB0 = p1;
23929 /* ./parser//parser.nit:7145 */
23930 fra.me.REG[1] = fra.me.REG[0];
23931 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23932 ATTR_parser___ReduceAction189____goto(fra.me.REG[1]) = REGB0;
23933 stack_frame_head = fra.me.prev;
23934 init_table[itpos192] = 1;
23935 return;
23936 }
23937 void parser___ReduceAction190___action(val_t p0, val_t p1){
23938 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
23939 val_t REGB0;
23940 val_t tmp;
23941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23942 fra.me.file = LOCATE_parser;
23943 fra.me.line = 7149;
23944 fra.me.meth = LOCATE_parser___ReduceAction190___action;
23945 fra.me.has_broke = 0;
23946 fra.me.REG_size = 8;
23947 fra.me.REG[0] = NIT_NULL;
23948 fra.me.REG[1] = NIT_NULL;
23949 fra.me.REG[2] = NIT_NULL;
23950 fra.me.REG[3] = NIT_NULL;
23951 fra.me.REG[4] = NIT_NULL;
23952 fra.me.REG[5] = NIT_NULL;
23953 fra.me.REG[6] = NIT_NULL;
23954 fra.me.REG[7] = NIT_NULL;
23955 fra.me.REG[0] = p0;
23956 fra.me.REG[1] = p1;
23957 /* ./parser//parser.nit:7151 */
23958 fra.me.REG[2] = NIT_NULL;
23959 /* ./parser//parser.nit:7152 */
23960 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23961 /* ./parser//parser.nit:7153 */
23962 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23963 /* ./parser//parser.nit:7154 */
23964 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23965 /* ./parser//parser.nit:7155 */
23966 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23967 /* ./parser//parser.nit:7156 */
23968 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23969 /* ./parser//parser.nit:7157 */
23970 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23971 /* ./parser//parser.nit:7158 */
23972 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23973 /* ./parser//parser.nit:7160 */
23974 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
23975 if (UNTAG_Bool(REGB0)) {
23976 } else {
23977 nit_abort("Assert failed", NULL, LOCATE_parser, 7160);
23978 }
23979 /* ./parser//parser.nit:7162 */
23980 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23981 if (UNTAG_Bool(REGB0)) {
23982 } else {
23983 nit_abort("Assert failed", NULL, LOCATE_parser, 7162);
23984 }
23985 /* ./parser//parser.nit:7164 */
23986 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23987 if (UNTAG_Bool(REGB0)) {
23988 } else {
23989 nit_abort("Assert failed", NULL, LOCATE_parser, 7164);
23990 }
23991 /* ./parser//parser.nit:7166 */
23992 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23993 if (UNTAG_Bool(REGB0)) {
23994 } else {
23995 nit_abort("Assert failed", NULL, LOCATE_parser, 7166);
23996 }
23997 /* ./parser//parser.nit:7168 */
23998 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
23999 if (UNTAG_Bool(REGB0)) {
24000 } else {
24001 nit_abort("Assert failed", NULL, LOCATE_parser, 7168);
24002 }
24003 /* ./parser//parser.nit:7169 */
24004 fra.me.REG[3] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
24005 /* ./parser//parser.nit:7176 */
24006 fra.me.REG[2] = fra.me.REG[3];
24007 /* ./parser//parser.nit:7177 */
24008 REGB0 = TAG_Bool(ATTR_parser___ReduceAction190____goto(fra.me.REG[0])!=NIT_NULL);
24009 if (UNTAG_Bool(REGB0)) {
24010 } else {
24011 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7177);
24012 }
24013 REGB0 = ATTR_parser___ReduceAction190____goto(fra.me.REG[0]);
24014 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24015 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24016 stack_frame_head = fra.me.prev;
24017 return;
24018 }
24019 void parser___ReduceAction190___init(val_t p0, val_t p1, int* init_table){
24020 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction190].i;
24021 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24022 val_t REGB0;
24023 val_t tmp;
24024 if (init_table[itpos193]) return;
24025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24026 fra.me.file = LOCATE_parser;
24027 fra.me.line = 7180;
24028 fra.me.meth = LOCATE_parser___ReduceAction190___init;
24029 fra.me.has_broke = 0;
24030 fra.me.REG_size = 2;
24031 fra.me.REG[0] = NIT_NULL;
24032 fra.me.REG[1] = NIT_NULL;
24033 fra.me.REG[0] = p0;
24034 REGB0 = p1;
24035 /* ./parser//parser.nit:7180 */
24036 fra.me.REG[1] = fra.me.REG[0];
24037 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24038 ATTR_parser___ReduceAction190____goto(fra.me.REG[1]) = REGB0;
24039 stack_frame_head = fra.me.prev;
24040 init_table[itpos193] = 1;
24041 return;
24042 }
24043 void parser___ReduceAction191___action(val_t p0, val_t p1){
24044 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
24045 val_t REGB0;
24046 val_t tmp;
24047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24048 fra.me.file = LOCATE_parser;
24049 fra.me.line = 7184;
24050 fra.me.meth = LOCATE_parser___ReduceAction191___action;
24051 fra.me.has_broke = 0;
24052 fra.me.REG_size = 7;
24053 fra.me.REG[0] = NIT_NULL;
24054 fra.me.REG[1] = NIT_NULL;
24055 fra.me.REG[2] = NIT_NULL;
24056 fra.me.REG[3] = NIT_NULL;
24057 fra.me.REG[4] = NIT_NULL;
24058 fra.me.REG[5] = NIT_NULL;
24059 fra.me.REG[6] = NIT_NULL;
24060 fra.me.REG[0] = p0;
24061 fra.me.REG[1] = p1;
24062 /* ./parser//parser.nit:7186 */
24063 fra.me.REG[2] = NIT_NULL;
24064 /* ./parser//parser.nit:7187 */
24065 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24066 /* ./parser//parser.nit:7188 */
24067 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24068 /* ./parser//parser.nit:7189 */
24069 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24070 /* ./parser//parser.nit:7190 */
24071 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24072 /* ./parser//parser.nit:7191 */
24073 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24074 /* ./parser//parser.nit:7192 */
24075 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24076 /* ./parser//parser.nit:7193 */
24077 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24078 /* ./parser//parser.nit:7195 */
24079 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
24080 if (UNTAG_Bool(REGB0)) {
24081 } else {
24082 nit_abort("Assert failed", NULL, LOCATE_parser, 7195);
24083 }
24084 /* ./parser//parser.nit:7197 */
24085 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
24086 if (UNTAG_Bool(REGB0)) {
24087 } else {
24088 nit_abort("Assert failed", NULL, LOCATE_parser, 7197);
24089 }
24090 /* ./parser//parser.nit:7199 */
24091 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
24092 if (UNTAG_Bool(REGB0)) {
24093 } else {
24094 nit_abort("Assert failed", NULL, LOCATE_parser, 7199);
24095 }
24096 /* ./parser//parser.nit:7201 */
24097 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24098 if (UNTAG_Bool(REGB0)) {
24099 } else {
24100 nit_abort("Assert failed", NULL, LOCATE_parser, 7201);
24101 }
24102 /* ./parser//parser.nit:7202 */
24103 fra.me.REG[3] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
24104 /* ./parser//parser.nit:7209 */
24105 fra.me.REG[2] = fra.me.REG[3];
24106 /* ./parser//parser.nit:7210 */
24107 REGB0 = TAG_Bool(ATTR_parser___ReduceAction191____goto(fra.me.REG[0])!=NIT_NULL);
24108 if (UNTAG_Bool(REGB0)) {
24109 } else {
24110 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7210);
24111 }
24112 REGB0 = ATTR_parser___ReduceAction191____goto(fra.me.REG[0]);
24113 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24114 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24115 stack_frame_head = fra.me.prev;
24116 return;
24117 }
24118 void parser___ReduceAction191___init(val_t p0, val_t p1, int* init_table){
24119 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction191].i;
24120 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24121 val_t REGB0;
24122 val_t tmp;
24123 if (init_table[itpos194]) return;
24124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24125 fra.me.file = LOCATE_parser;
24126 fra.me.line = 7213;
24127 fra.me.meth = LOCATE_parser___ReduceAction191___init;
24128 fra.me.has_broke = 0;
24129 fra.me.REG_size = 2;
24130 fra.me.REG[0] = NIT_NULL;
24131 fra.me.REG[1] = NIT_NULL;
24132 fra.me.REG[0] = p0;
24133 REGB0 = p1;
24134 /* ./parser//parser.nit:7213 */
24135 fra.me.REG[1] = fra.me.REG[0];
24136 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24137 ATTR_parser___ReduceAction191____goto(fra.me.REG[1]) = REGB0;
24138 stack_frame_head = fra.me.prev;
24139 init_table[itpos194] = 1;
24140 return;
24141 }
24142 void parser___ReduceAction192___action(val_t p0, val_t p1){
24143 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
24144 val_t REGB0;
24145 val_t tmp;
24146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24147 fra.me.file = LOCATE_parser;
24148 fra.me.line = 7217;
24149 fra.me.meth = LOCATE_parser___ReduceAction192___action;
24150 fra.me.has_broke = 0;
24151 fra.me.REG_size = 8;
24152 fra.me.REG[0] = NIT_NULL;
24153 fra.me.REG[1] = NIT_NULL;
24154 fra.me.REG[2] = NIT_NULL;
24155 fra.me.REG[3] = NIT_NULL;
24156 fra.me.REG[4] = NIT_NULL;
24157 fra.me.REG[5] = NIT_NULL;
24158 fra.me.REG[6] = NIT_NULL;
24159 fra.me.REG[7] = NIT_NULL;
24160 fra.me.REG[0] = p0;
24161 fra.me.REG[1] = p1;
24162 /* ./parser//parser.nit:7219 */
24163 fra.me.REG[2] = NIT_NULL;
24164 /* ./parser//parser.nit:7220 */
24165 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24166 /* ./parser//parser.nit:7221 */
24167 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24168 /* ./parser//parser.nit:7222 */
24169 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24170 /* ./parser//parser.nit:7223 */
24171 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24172 /* ./parser//parser.nit:7224 */
24173 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24174 /* ./parser//parser.nit:7225 */
24175 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24176 /* ./parser//parser.nit:7226 */
24177 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24178 /* ./parser//parser.nit:7227 */
24179 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24180 /* ./parser//parser.nit:7229 */
24181 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
24182 if (UNTAG_Bool(REGB0)) {
24183 } else {
24184 nit_abort("Assert failed", NULL, LOCATE_parser, 7229);
24185 }
24186 /* ./parser//parser.nit:7231 */
24187 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
24188 if (UNTAG_Bool(REGB0)) {
24189 } else {
24190 nit_abort("Assert failed", NULL, LOCATE_parser, 7231);
24191 }
24192 /* ./parser//parser.nit:7233 */
24193 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
24194 if (UNTAG_Bool(REGB0)) {
24195 } else {
24196 nit_abort("Assert failed", NULL, LOCATE_parser, 7233);
24197 }
24198 /* ./parser//parser.nit:7235 */
24199 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
24200 if (UNTAG_Bool(REGB0)) {
24201 } else {
24202 nit_abort("Assert failed", NULL, LOCATE_parser, 7235);
24203 }
24204 /* ./parser//parser.nit:7237 */
24205 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24206 if (UNTAG_Bool(REGB0)) {
24207 } else {
24208 nit_abort("Assert failed", NULL, LOCATE_parser, 7237);
24209 }
24210 /* ./parser//parser.nit:7238 */
24211 fra.me.REG[3] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
24212 /* ./parser//parser.nit:7245 */
24213 fra.me.REG[2] = fra.me.REG[3];
24214 /* ./parser//parser.nit:7246 */
24215 REGB0 = TAG_Bool(ATTR_parser___ReduceAction192____goto(fra.me.REG[0])!=NIT_NULL);
24216 if (UNTAG_Bool(REGB0)) {
24217 } else {
24218 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7246);
24219 }
24220 REGB0 = ATTR_parser___ReduceAction192____goto(fra.me.REG[0]);
24221 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24222 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24223 stack_frame_head = fra.me.prev;
24224 return;
24225 }
24226 void parser___ReduceAction192___init(val_t p0, val_t p1, int* init_table){
24227 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction192].i;
24228 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24229 val_t REGB0;
24230 val_t tmp;
24231 if (init_table[itpos195]) return;
24232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24233 fra.me.file = LOCATE_parser;
24234 fra.me.line = 7249;
24235 fra.me.meth = LOCATE_parser___ReduceAction192___init;
24236 fra.me.has_broke = 0;
24237 fra.me.REG_size = 2;
24238 fra.me.REG[0] = NIT_NULL;
24239 fra.me.REG[1] = NIT_NULL;
24240 fra.me.REG[0] = p0;
24241 REGB0 = p1;
24242 /* ./parser//parser.nit:7249 */
24243 fra.me.REG[1] = fra.me.REG[0];
24244 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24245 ATTR_parser___ReduceAction192____goto(fra.me.REG[1]) = REGB0;
24246 stack_frame_head = fra.me.prev;
24247 init_table[itpos195] = 1;
24248 return;
24249 }
24250 void parser___ReduceAction193___action(val_t p0, val_t p1){
24251 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24252 val_t REGB0;
24253 val_t tmp;
24254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24255 fra.me.file = LOCATE_parser;
24256 fra.me.line = 7253;
24257 fra.me.meth = LOCATE_parser___ReduceAction193___action;
24258 fra.me.has_broke = 0;
24259 fra.me.REG_size = 4;
24260 fra.me.REG[0] = NIT_NULL;
24261 fra.me.REG[1] = NIT_NULL;
24262 fra.me.REG[2] = NIT_NULL;
24263 fra.me.REG[3] = NIT_NULL;
24264 fra.me.REG[0] = p0;
24265 fra.me.REG[1] = p1;
24266 /* ./parser//parser.nit:7255 */
24267 fra.me.REG[2] = NIT_NULL;
24268 /* ./parser//parser.nit:7256 */
24269 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24270 /* ./parser//parser.nit:7258 */
24271 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24272 if (UNTAG_Bool(REGB0)) {
24273 } else {
24274 nit_abort("Assert failed", NULL, LOCATE_parser, 7258);
24275 }
24276 /* ./parser//parser.nit:7259 */
24277 fra.me.REG[3] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(NIT_NULL, fra.me.REG[3]);
24278 /* ./parser//parser.nit:7263 */
24279 fra.me.REG[2] = fra.me.REG[3];
24280 /* ./parser//parser.nit:7264 */
24281 REGB0 = TAG_Bool(ATTR_parser___ReduceAction193____goto(fra.me.REG[0])!=NIT_NULL);
24282 if (UNTAG_Bool(REGB0)) {
24283 } else {
24284 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7264);
24285 }
24286 REGB0 = ATTR_parser___ReduceAction193____goto(fra.me.REG[0]);
24287 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24288 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24289 stack_frame_head = fra.me.prev;
24290 return;
24291 }
24292 void parser___ReduceAction193___init(val_t p0, val_t p1, int* init_table){
24293 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction193].i;
24294 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24295 val_t REGB0;
24296 val_t tmp;
24297 if (init_table[itpos196]) return;
24298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24299 fra.me.file = LOCATE_parser;
24300 fra.me.line = 7267;
24301 fra.me.meth = LOCATE_parser___ReduceAction193___init;
24302 fra.me.has_broke = 0;
24303 fra.me.REG_size = 2;
24304 fra.me.REG[0] = NIT_NULL;
24305 fra.me.REG[1] = NIT_NULL;
24306 fra.me.REG[0] = p0;
24307 REGB0 = p1;
24308 /* ./parser//parser.nit:7267 */
24309 fra.me.REG[1] = fra.me.REG[0];
24310 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24311 ATTR_parser___ReduceAction193____goto(fra.me.REG[1]) = REGB0;
24312 stack_frame_head = fra.me.prev;
24313 init_table[itpos196] = 1;
24314 return;
24315 }
24316 void parser___ReduceAction194___action(val_t p0, val_t p1){
24317 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24318 val_t REGB0;
24319 val_t tmp;
24320 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24321 fra.me.file = LOCATE_parser;
24322 fra.me.line = 7271;
24323 fra.me.meth = LOCATE_parser___ReduceAction194___action;
24324 fra.me.has_broke = 0;
24325 fra.me.REG_size = 5;
24326 fra.me.REG[0] = NIT_NULL;
24327 fra.me.REG[1] = NIT_NULL;
24328 fra.me.REG[2] = NIT_NULL;
24329 fra.me.REG[3] = NIT_NULL;
24330 fra.me.REG[4] = NIT_NULL;
24331 fra.me.REG[0] = p0;
24332 fra.me.REG[1] = p1;
24333 /* ./parser//parser.nit:7273 */
24334 fra.me.REG[2] = NIT_NULL;
24335 /* ./parser//parser.nit:7274 */
24336 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24337 /* ./parser//parser.nit:7275 */
24338 fra.me.REG[4] = NEW_Array_array___Array___init();
24339 /* ./parser//parser.nit:7277 */
24340 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24341 if (UNTAG_Bool(REGB0)) {
24342 } else {
24343 nit_abort("Assert failed", NULL, LOCATE_parser, 7277);
24344 }
24345 /* ./parser//parser.nit:7278 */
24346 fra.me.REG[4] = NEW_AType_parser_prod___AType___init_atype(NIT_NULL, fra.me.REG[3], fra.me.REG[4]);
24347 /* ./parser//parser.nit:7283 */
24348 fra.me.REG[2] = fra.me.REG[4];
24349 /* ./parser//parser.nit:7284 */
24350 REGB0 = TAG_Bool(ATTR_parser___ReduceAction194____goto(fra.me.REG[0])!=NIT_NULL);
24351 if (UNTAG_Bool(REGB0)) {
24352 } else {
24353 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7284);
24354 }
24355 REGB0 = ATTR_parser___ReduceAction194____goto(fra.me.REG[0]);
24356 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24357 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24358 stack_frame_head = fra.me.prev;
24359 return;
24360 }
24361 void parser___ReduceAction194___init(val_t p0, val_t p1, int* init_table){
24362 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction194].i;
24363 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24364 val_t REGB0;
24365 val_t tmp;
24366 if (init_table[itpos197]) return;
24367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24368 fra.me.file = LOCATE_parser;
24369 fra.me.line = 7287;
24370 fra.me.meth = LOCATE_parser___ReduceAction194___init;
24371 fra.me.has_broke = 0;
24372 fra.me.REG_size = 2;
24373 fra.me.REG[0] = NIT_NULL;
24374 fra.me.REG[1] = NIT_NULL;
24375 fra.me.REG[0] = p0;
24376 REGB0 = p1;
24377 /* ./parser//parser.nit:7287 */
24378 fra.me.REG[1] = fra.me.REG[0];
24379 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24380 ATTR_parser___ReduceAction194____goto(fra.me.REG[1]) = REGB0;
24381 stack_frame_head = fra.me.prev;
24382 init_table[itpos197] = 1;
24383 return;
24384 }
24385 void parser___ReduceAction195___action(val_t p0, val_t p1){
24386 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
24387 val_t REGB0;
24388 val_t tmp;
24389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24390 fra.me.file = LOCATE_parser;
24391 fra.me.line = 7291;
24392 fra.me.meth = LOCATE_parser___ReduceAction195___action;
24393 fra.me.has_broke = 0;
24394 fra.me.REG_size = 6;
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[3] = NIT_NULL;
24399 fra.me.REG[4] = NIT_NULL;
24400 fra.me.REG[5] = NIT_NULL;
24401 fra.me.REG[0] = p0;
24402 fra.me.REG[1] = p1;
24403 /* ./parser//parser.nit:7293 */
24404 fra.me.REG[2] = NIT_NULL;
24405 /* ./parser//parser.nit:7294 */
24406 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24407 /* ./parser//parser.nit:7295 */
24408 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24409 /* ./parser//parser.nit:7296 */
24410 fra.me.REG[5] = NEW_Array_array___Array___init();
24411 /* ./parser//parser.nit:7298 */
24412 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwnullable, ID_TKwnullable)) /*cast nullable TKwnullable*/;
24413 if (UNTAG_Bool(REGB0)) {
24414 } else {
24415 nit_abort("Assert failed", NULL, LOCATE_parser, 7298);
24416 }
24417 /* ./parser//parser.nit:7300 */
24418 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24419 if (UNTAG_Bool(REGB0)) {
24420 } else {
24421 nit_abort("Assert failed", NULL, LOCATE_parser, 7300);
24422 }
24423 /* ./parser//parser.nit:7301 */
24424 fra.me.REG[5] = NEW_AType_parser_prod___AType___init_atype(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
24425 /* ./parser//parser.nit:7306 */
24426 fra.me.REG[2] = fra.me.REG[5];
24427 /* ./parser//parser.nit:7307 */
24428 REGB0 = TAG_Bool(ATTR_parser___ReduceAction195____goto(fra.me.REG[0])!=NIT_NULL);
24429 if (UNTAG_Bool(REGB0)) {
24430 } else {
24431 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7307);
24432 }
24433 REGB0 = ATTR_parser___ReduceAction195____goto(fra.me.REG[0]);
24434 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24435 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24436 stack_frame_head = fra.me.prev;
24437 return;
24438 }
24439 void parser___ReduceAction195___init(val_t p0, val_t p1, int* init_table){
24440 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction195].i;
24441 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24442 val_t REGB0;
24443 val_t tmp;
24444 if (init_table[itpos198]) return;
24445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24446 fra.me.file = LOCATE_parser;
24447 fra.me.line = 7310;
24448 fra.me.meth = LOCATE_parser___ReduceAction195___init;
24449 fra.me.has_broke = 0;
24450 fra.me.REG_size = 2;
24451 fra.me.REG[0] = NIT_NULL;
24452 fra.me.REG[1] = NIT_NULL;
24453 fra.me.REG[0] = p0;
24454 REGB0 = p1;
24455 /* ./parser//parser.nit:7310 */
24456 fra.me.REG[1] = fra.me.REG[0];
24457 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24458 ATTR_parser___ReduceAction195____goto(fra.me.REG[1]) = REGB0;
24459 stack_frame_head = fra.me.prev;
24460 init_table[itpos198] = 1;
24461 return;
24462 }
24463 void parser___ReduceAction196___action(val_t p0, val_t p1){
24464 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
24465 val_t REGB0;
24466 val_t tmp;
24467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24468 fra.me.file = LOCATE_parser;
24469 fra.me.line = 7314;
24470 fra.me.meth = LOCATE_parser___ReduceAction196___action;
24471 fra.me.has_broke = 0;
24472 fra.me.REG_size = 6;
24473 fra.me.REG[0] = NIT_NULL;
24474 fra.me.REG[1] = NIT_NULL;
24475 fra.me.REG[2] = NIT_NULL;
24476 fra.me.REG[3] = NIT_NULL;
24477 fra.me.REG[4] = NIT_NULL;
24478 fra.me.REG[5] = NIT_NULL;
24479 fra.me.REG[0] = p0;
24480 fra.me.REG[1] = p1;
24481 /* ./parser//parser.nit:7316 */
24482 fra.me.REG[2] = NIT_NULL;
24483 /* ./parser//parser.nit:7317 */
24484 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24485 /* ./parser//parser.nit:7318 */
24486 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24487 /* ./parser//parser.nit:7319 */
24488 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24489 /* ./parser//parser.nit:7320 */
24490 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24491 /* ./parser//parser.nit:7321 */
24492 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24493 /* ./parser//parser.nit:7322 */
24494 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24495 /* ./parser//parser.nit:7323 */
24496 fra.me.REG[5] = NEW_Array_array___Array___init();
24497 /* ./parser//parser.nit:7325 */
24498 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24499 if (UNTAG_Bool(REGB0)) {
24500 } else {
24501 nit_abort("Assert failed", NULL, LOCATE_parser, 7325);
24502 }
24503 /* ./parser//parser.nit:7327 */
24504 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
24505 if (UNTAG_Bool(REGB0)) {
24506 } else {
24507 nit_abort("Assert failed", NULL, LOCATE_parser, 7327);
24508 }
24509 /* ./parser//parser.nit:7328 */
24510 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
24511 fra.me.REG[5] = fra.me.REG[3];
24512 /* ./parser//parser.nit:7329 */
24513 fra.me.REG[5] = NEW_AType_parser_prod___AType___init_atype(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
24514 /* ./parser//parser.nit:7334 */
24515 fra.me.REG[2] = fra.me.REG[5];
24516 /* ./parser//parser.nit:7335 */
24517 REGB0 = TAG_Bool(ATTR_parser___ReduceAction196____goto(fra.me.REG[0])!=NIT_NULL);
24518 if (UNTAG_Bool(REGB0)) {
24519 } else {
24520 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7335);
24521 }
24522 REGB0 = ATTR_parser___ReduceAction196____goto(fra.me.REG[0]);
24523 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24524 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24525 stack_frame_head = fra.me.prev;
24526 return;
24527 }
24528 void parser___ReduceAction196___init(val_t p0, val_t p1, int* init_table){
24529 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction196].i;
24530 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24531 val_t REGB0;
24532 val_t tmp;
24533 if (init_table[itpos199]) return;
24534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24535 fra.me.file = LOCATE_parser;
24536 fra.me.line = 7338;
24537 fra.me.meth = LOCATE_parser___ReduceAction196___init;
24538 fra.me.has_broke = 0;
24539 fra.me.REG_size = 2;
24540 fra.me.REG[0] = NIT_NULL;
24541 fra.me.REG[1] = NIT_NULL;
24542 fra.me.REG[0] = p0;
24543 REGB0 = p1;
24544 /* ./parser//parser.nit:7338 */
24545 fra.me.REG[1] = fra.me.REG[0];
24546 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24547 ATTR_parser___ReduceAction196____goto(fra.me.REG[1]) = REGB0;
24548 stack_frame_head = fra.me.prev;
24549 init_table[itpos199] = 1;
24550 return;
24551 }
24552 void parser___ReduceAction197___action(val_t p0, val_t p1){
24553 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
24554 val_t REGB0;
24555 val_t tmp;
24556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24557 fra.me.file = LOCATE_parser;
24558 fra.me.line = 7342;
24559 fra.me.meth = LOCATE_parser___ReduceAction197___action;
24560 fra.me.has_broke = 0;
24561 fra.me.REG_size = 7;
24562 fra.me.REG[0] = NIT_NULL;
24563 fra.me.REG[1] = NIT_NULL;
24564 fra.me.REG[2] = NIT_NULL;
24565 fra.me.REG[3] = NIT_NULL;
24566 fra.me.REG[4] = NIT_NULL;
24567 fra.me.REG[5] = NIT_NULL;
24568 fra.me.REG[6] = NIT_NULL;
24569 fra.me.REG[0] = p0;
24570 fra.me.REG[1] = p1;
24571 /* ./parser//parser.nit:7344 */
24572 fra.me.REG[2] = NIT_NULL;
24573 /* ./parser//parser.nit:7345 */
24574 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24575 /* ./parser//parser.nit:7346 */
24576 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24577 /* ./parser//parser.nit:7347 */
24578 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24579 /* ./parser//parser.nit:7348 */
24580 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24581 /* ./parser//parser.nit:7349 */
24582 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24583 /* ./parser//parser.nit:7350 */
24584 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24585 /* ./parser//parser.nit:7351 */
24586 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24587 /* ./parser//parser.nit:7352 */
24588 fra.me.REG[6] = NEW_Array_array___Array___init();
24589 /* ./parser//parser.nit:7354 */
24590 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwnullable, ID_TKwnullable)) /*cast nullable TKwnullable*/;
24591 if (UNTAG_Bool(REGB0)) {
24592 } else {
24593 nit_abort("Assert failed", NULL, LOCATE_parser, 7354);
24594 }
24595 /* ./parser//parser.nit:7356 */
24596 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24597 if (UNTAG_Bool(REGB0)) {
24598 } else {
24599 nit_abort("Assert failed", NULL, LOCATE_parser, 7356);
24600 }
24601 /* ./parser//parser.nit:7358 */
24602 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
24603 if (UNTAG_Bool(REGB0)) {
24604 } else {
24605 nit_abort("Assert failed", NULL, LOCATE_parser, 7358);
24606 }
24607 /* ./parser//parser.nit:7359 */
24608 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
24609 fra.me.REG[6] = fra.me.REG[3];
24610 /* ./parser//parser.nit:7360 */
24611 fra.me.REG[6] = NEW_AType_parser_prod___AType___init_atype(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
24612 /* ./parser//parser.nit:7365 */
24613 fra.me.REG[2] = fra.me.REG[6];
24614 /* ./parser//parser.nit:7366 */
24615 REGB0 = TAG_Bool(ATTR_parser___ReduceAction197____goto(fra.me.REG[0])!=NIT_NULL);
24616 if (UNTAG_Bool(REGB0)) {
24617 } else {
24618 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7366);
24619 }
24620 REGB0 = ATTR_parser___ReduceAction197____goto(fra.me.REG[0]);
24621 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24622 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24623 stack_frame_head = fra.me.prev;
24624 return;
24625 }
24626 void parser___ReduceAction197___init(val_t p0, val_t p1, int* init_table){
24627 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction197].i;
24628 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24629 val_t REGB0;
24630 val_t tmp;
24631 if (init_table[itpos200]) return;
24632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24633 fra.me.file = LOCATE_parser;
24634 fra.me.line = 7369;
24635 fra.me.meth = LOCATE_parser___ReduceAction197___init;
24636 fra.me.has_broke = 0;
24637 fra.me.REG_size = 2;
24638 fra.me.REG[0] = NIT_NULL;
24639 fra.me.REG[1] = NIT_NULL;
24640 fra.me.REG[0] = p0;
24641 REGB0 = p1;
24642 /* ./parser//parser.nit:7369 */
24643 fra.me.REG[1] = fra.me.REG[0];
24644 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24645 ATTR_parser___ReduceAction197____goto(fra.me.REG[1]) = REGB0;
24646 stack_frame_head = fra.me.prev;
24647 init_table[itpos200] = 1;
24648 return;
24649 }
24650 void parser___ReduceAction198___action(val_t p0, val_t p1){
24651 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24652 val_t REGB0;
24653 val_t REGB1;
24654 val_t tmp;
24655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24656 fra.me.file = LOCATE_parser;
24657 fra.me.line = 7373;
24658 fra.me.meth = LOCATE_parser___ReduceAction198___action;
24659 fra.me.has_broke = 0;
24660 fra.me.REG_size = 5;
24661 fra.me.REG[0] = NIT_NULL;
24662 fra.me.REG[1] = NIT_NULL;
24663 fra.me.REG[2] = NIT_NULL;
24664 fra.me.REG[3] = NIT_NULL;
24665 fra.me.REG[4] = NIT_NULL;
24666 fra.me.REG[0] = p0;
24667 fra.me.REG[1] = p1;
24668 /* ./parser//parser.nit:7375 */
24669 fra.me.REG[2] = NIT_NULL;
24670 /* ./parser//parser.nit:7376 */
24671 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24672 /* ./parser//parser.nit:7377 */
24673 fra.me.REG[4] = NEW_Array_array___Array___init();
24674 /* ./parser//parser.nit:7379 */
24675 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24676 if (UNTAG_Bool(REGB0)) {
24677 } else {
24678 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24679 if (UNTAG_Bool(REGB1)) {
24680 REGB1 = TAG_Bool(false);
24681 REGB0 = REGB1;
24682 } else {
24683 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24684 REGB0 = REGB1;
24685 }
24686 }
24687 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24688 if (UNTAG_Bool(REGB0)) {
24689 /* ./parser//parser.nit:7380 */
24690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
24691 }
24692 /* ./parser//parser.nit:7382 */
24693 fra.me.REG[2] = fra.me.REG[4];
24694 /* ./parser//parser.nit:7383 */
24695 REGB0 = TAG_Bool(ATTR_parser___ReduceAction198____goto(fra.me.REG[0])!=NIT_NULL);
24696 if (UNTAG_Bool(REGB0)) {
24697 } else {
24698 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7383);
24699 }
24700 REGB0 = ATTR_parser___ReduceAction198____goto(fra.me.REG[0]);
24701 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24702 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24703 stack_frame_head = fra.me.prev;
24704 return;
24705 }
24706 void parser___ReduceAction198___init(val_t p0, val_t p1, int* init_table){
24707 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction198].i;
24708 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24709 val_t REGB0;
24710 val_t tmp;
24711 if (init_table[itpos201]) return;
24712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24713 fra.me.file = LOCATE_parser;
24714 fra.me.line = 7386;
24715 fra.me.meth = LOCATE_parser___ReduceAction198___init;
24716 fra.me.has_broke = 0;
24717 fra.me.REG_size = 2;
24718 fra.me.REG[0] = NIT_NULL;
24719 fra.me.REG[1] = NIT_NULL;
24720 fra.me.REG[0] = p0;
24721 REGB0 = p1;
24722 /* ./parser//parser.nit:7386 */
24723 fra.me.REG[1] = fra.me.REG[0];
24724 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24725 ATTR_parser___ReduceAction198____goto(fra.me.REG[1]) = REGB0;
24726 stack_frame_head = fra.me.prev;
24727 init_table[itpos201] = 1;
24728 return;
24729 }
24730 void parser___ReduceAction199___action(val_t p0, val_t p1){
24731 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
24732 val_t REGB0;
24733 val_t REGB1;
24734 val_t tmp;
24735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24736 fra.me.file = LOCATE_parser;
24737 fra.me.line = 7390;
24738 fra.me.meth = LOCATE_parser___ReduceAction199___action;
24739 fra.me.has_broke = 0;
24740 fra.me.REG_size = 6;
24741 fra.me.REG[0] = NIT_NULL;
24742 fra.me.REG[1] = NIT_NULL;
24743 fra.me.REG[2] = NIT_NULL;
24744 fra.me.REG[3] = NIT_NULL;
24745 fra.me.REG[4] = NIT_NULL;
24746 fra.me.REG[5] = NIT_NULL;
24747 fra.me.REG[0] = p0;
24748 fra.me.REG[1] = p1;
24749 /* ./parser//parser.nit:7392 */
24750 fra.me.REG[2] = NIT_NULL;
24751 /* ./parser//parser.nit:7393 */
24752 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24753 /* ./parser//parser.nit:7394 */
24754 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24755 /* ./parser//parser.nit:7395 */
24756 fra.me.REG[5] = NEW_Array_array___Array___init();
24757 /* ./parser//parser.nit:7398 */
24758 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
24759 if (UNTAG_Bool(REGB0)) {
24760 } else {
24761 nit_abort("Assert failed", NULL, LOCATE_parser, 7398);
24762 }
24763 /* ./parser//parser.nit:7399 */
24764 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
24765 if (UNTAG_Bool(REGB0)) {
24766 } else {
24767 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
24768 if (UNTAG_Bool(REGB1)) {
24769 REGB1 = TAG_Bool(false);
24770 REGB0 = REGB1;
24771 } else {
24772 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
24773 REGB0 = REGB1;
24774 }
24775 }
24776 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24777 if (UNTAG_Bool(REGB0)) {
24778 /* ./parser//parser.nit:7400 */
24779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
24780 }
24781 /* ./parser//parser.nit:7402 */
24782 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
24783 fra.me.REG[5] = fra.me.REG[3];
24784 /* ./parser//parser.nit:7403 */
24785 fra.me.REG[2] = fra.me.REG[5];
24786 /* ./parser//parser.nit:7404 */
24787 REGB0 = TAG_Bool(ATTR_parser___ReduceAction199____goto(fra.me.REG[0])!=NIT_NULL);
24788 if (UNTAG_Bool(REGB0)) {
24789 } else {
24790 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7404);
24791 }
24792 REGB0 = ATTR_parser___ReduceAction199____goto(fra.me.REG[0]);
24793 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24794 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24795 stack_frame_head = fra.me.prev;
24796 return;
24797 }
24798 void parser___ReduceAction199___init(val_t p0, val_t p1, int* init_table){
24799 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction199].i;
24800 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24801 val_t REGB0;
24802 val_t tmp;
24803 if (init_table[itpos202]) return;
24804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24805 fra.me.file = LOCATE_parser;
24806 fra.me.line = 7407;
24807 fra.me.meth = LOCATE_parser___ReduceAction199___init;
24808 fra.me.has_broke = 0;
24809 fra.me.REG_size = 2;
24810 fra.me.REG[0] = NIT_NULL;
24811 fra.me.REG[1] = NIT_NULL;
24812 fra.me.REG[0] = p0;
24813 REGB0 = p1;
24814 /* ./parser//parser.nit:7407 */
24815 fra.me.REG[1] = fra.me.REG[0];
24816 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24817 ATTR_parser___ReduceAction199____goto(fra.me.REG[1]) = REGB0;
24818 stack_frame_head = fra.me.prev;
24819 init_table[itpos202] = 1;
24820 return;
24821 }
24822 void parser___ReduceAction200___action(val_t p0, val_t p1){
24823 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24824 val_t REGB0;
24825 val_t tmp;
24826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24827 fra.me.file = LOCATE_parser;
24828 fra.me.line = 7411;
24829 fra.me.meth = LOCATE_parser___ReduceAction200___action;
24830 fra.me.has_broke = 0;
24831 fra.me.REG_size = 5;
24832 fra.me.REG[0] = NIT_NULL;
24833 fra.me.REG[1] = NIT_NULL;
24834 fra.me.REG[2] = NIT_NULL;
24835 fra.me.REG[3] = NIT_NULL;
24836 fra.me.REG[4] = NIT_NULL;
24837 fra.me.REG[0] = p0;
24838 fra.me.REG[1] = p1;
24839 /* ./parser//parser.nit:7413 */
24840 fra.me.REG[2] = NIT_NULL;
24841 /* ./parser//parser.nit:7414 */
24842 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24843 /* ./parser//parser.nit:7415 */
24844 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24845 /* ./parser//parser.nit:7416 */
24846 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24847 /* ./parser//parser.nit:7418 */
24848 fra.me.REG[2] = fra.me.REG[3];
24849 /* ./parser//parser.nit:7419 */
24850 REGB0 = TAG_Bool(ATTR_parser___ReduceAction200____goto(fra.me.REG[0])!=NIT_NULL);
24851 if (UNTAG_Bool(REGB0)) {
24852 } else {
24853 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7419);
24854 }
24855 REGB0 = ATTR_parser___ReduceAction200____goto(fra.me.REG[0]);
24856 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24857 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24858 stack_frame_head = fra.me.prev;
24859 return;
24860 }
24861 void parser___ReduceAction200___init(val_t p0, val_t p1, int* init_table){
24862 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction200].i;
24863 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24864 val_t REGB0;
24865 val_t tmp;
24866 if (init_table[itpos203]) return;
24867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24868 fra.me.file = LOCATE_parser;
24869 fra.me.line = 7422;
24870 fra.me.meth = LOCATE_parser___ReduceAction200___init;
24871 fra.me.has_broke = 0;
24872 fra.me.REG_size = 2;
24873 fra.me.REG[0] = NIT_NULL;
24874 fra.me.REG[1] = NIT_NULL;
24875 fra.me.REG[0] = p0;
24876 REGB0 = p1;
24877 /* ./parser//parser.nit:7422 */
24878 fra.me.REG[1] = fra.me.REG[0];
24879 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24880 ATTR_parser___ReduceAction200____goto(fra.me.REG[1]) = REGB0;
24881 stack_frame_head = fra.me.prev;
24882 init_table[itpos203] = 1;
24883 return;
24884 }
24885 void parser___ReduceAction202___action(val_t p0, val_t p1){
24886 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24887 val_t REGB0;
24888 val_t tmp;
24889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24890 fra.me.file = LOCATE_parser;
24891 fra.me.line = 7426;
24892 fra.me.meth = LOCATE_parser___ReduceAction202___action;
24893 fra.me.has_broke = 0;
24894 fra.me.REG_size = 5;
24895 fra.me.REG[0] = NIT_NULL;
24896 fra.me.REG[1] = NIT_NULL;
24897 fra.me.REG[2] = NIT_NULL;
24898 fra.me.REG[3] = NIT_NULL;
24899 fra.me.REG[4] = NIT_NULL;
24900 fra.me.REG[0] = p0;
24901 fra.me.REG[1] = p1;
24902 /* ./parser//parser.nit:7428 */
24903 fra.me.REG[2] = NIT_NULL;
24904 /* ./parser//parser.nit:7429 */
24905 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24906 /* ./parser//parser.nit:7430 */
24907 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24908 /* ./parser//parser.nit:7431 */
24909 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24910 /* ./parser//parser.nit:7433 */
24911 fra.me.REG[2] = fra.me.REG[3];
24912 /* ./parser//parser.nit:7434 */
24913 REGB0 = TAG_Bool(ATTR_parser___ReduceAction202____goto(fra.me.REG[0])!=NIT_NULL);
24914 if (UNTAG_Bool(REGB0)) {
24915 } else {
24916 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7434);
24917 }
24918 REGB0 = ATTR_parser___ReduceAction202____goto(fra.me.REG[0]);
24919 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24920 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24921 stack_frame_head = fra.me.prev;
24922 return;
24923 }
24924 void parser___ReduceAction202___init(val_t p0, val_t p1, int* init_table){
24925 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction202].i;
24926 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24927 val_t REGB0;
24928 val_t tmp;
24929 if (init_table[itpos204]) return;
24930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24931 fra.me.file = LOCATE_parser;
24932 fra.me.line = 7437;
24933 fra.me.meth = LOCATE_parser___ReduceAction202___init;
24934 fra.me.has_broke = 0;
24935 fra.me.REG_size = 2;
24936 fra.me.REG[0] = NIT_NULL;
24937 fra.me.REG[1] = NIT_NULL;
24938 fra.me.REG[0] = p0;
24939 REGB0 = p1;
24940 /* ./parser//parser.nit:7437 */
24941 fra.me.REG[1] = fra.me.REG[0];
24942 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24943 ATTR_parser___ReduceAction202____goto(fra.me.REG[1]) = REGB0;
24944 stack_frame_head = fra.me.prev;
24945 init_table[itpos204] = 1;
24946 return;
24947 }
24948 void parser___ReduceAction203___action(val_t p0, val_t p1){
24949 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24950 val_t REGB0;
24951 val_t tmp;
24952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24953 fra.me.file = LOCATE_parser;
24954 fra.me.line = 7441;
24955 fra.me.meth = LOCATE_parser___ReduceAction203___action;
24956 fra.me.has_broke = 0;
24957 fra.me.REG_size = 4;
24958 fra.me.REG[0] = NIT_NULL;
24959 fra.me.REG[1] = NIT_NULL;
24960 fra.me.REG[2] = NIT_NULL;
24961 fra.me.REG[3] = NIT_NULL;
24962 fra.me.REG[0] = p0;
24963 fra.me.REG[1] = p1;
24964 /* ./parser//parser.nit:7443 */
24965 fra.me.REG[2] = NIT_NULL;
24966 /* ./parser//parser.nit:7444 */
24967 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24968 /* ./parser//parser.nit:7445 */
24969 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24970 /* ./parser//parser.nit:7446 */
24971 fra.me.REG[3] = NEW_Array_array___Array___init();
24972 /* ./parser//parser.nit:7447 */
24973 fra.me.REG[3] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[3]);
24974 /* ./parser//parser.nit:7450 */
24975 fra.me.REG[2] = fra.me.REG[3];
24976 /* ./parser//parser.nit:7451 */
24977 REGB0 = TAG_Bool(ATTR_parser___ReduceAction203____goto(fra.me.REG[0])!=NIT_NULL);
24978 if (UNTAG_Bool(REGB0)) {
24979 } else {
24980 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7451);
24981 }
24982 REGB0 = ATTR_parser___ReduceAction203____goto(fra.me.REG[0]);
24983 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24984 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24985 stack_frame_head = fra.me.prev;
24986 return;
24987 }
24988 void parser___ReduceAction203___init(val_t p0, val_t p1, int* init_table){
24989 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction203].i;
24990 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24991 val_t REGB0;
24992 val_t tmp;
24993 if (init_table[itpos205]) return;
24994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24995 fra.me.file = LOCATE_parser;
24996 fra.me.line = 7454;
24997 fra.me.meth = LOCATE_parser___ReduceAction203___init;
24998 fra.me.has_broke = 0;
24999 fra.me.REG_size = 2;
25000 fra.me.REG[0] = NIT_NULL;
25001 fra.me.REG[1] = NIT_NULL;
25002 fra.me.REG[0] = p0;
25003 REGB0 = p1;
25004 /* ./parser//parser.nit:7454 */
25005 fra.me.REG[1] = fra.me.REG[0];
25006 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25007 ATTR_parser___ReduceAction203____goto(fra.me.REG[1]) = REGB0;
25008 stack_frame_head = fra.me.prev;
25009 init_table[itpos205] = 1;
25010 return;
25011 }
25012 void parser___ReduceAction204___action(val_t p0, val_t p1){
25013 struct {struct stack_frame_t me; val_t MORE_REG[3];} 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;
25018 fra.me.line = 7458;
25019 fra.me.meth = LOCATE_parser___ReduceAction204___action;
25020 fra.me.has_broke = 0;
25021 fra.me.REG_size = 4;
25022 fra.me.REG[0] = NIT_NULL;
25023 fra.me.REG[1] = NIT_NULL;
25024 fra.me.REG[2] = NIT_NULL;
25025 fra.me.REG[3] = NIT_NULL;
25026 fra.me.REG[0] = p0;
25027 fra.me.REG[1] = p1;
25028 /* ./parser//parser.nit:7460 */
25029 fra.me.REG[2] = NIT_NULL;
25030 /* ./parser//parser.nit:7461 */
25031 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25032 /* ./parser//parser.nit:7462 */
25033 fra.me.REG[3] = NEW_Array_array___Array___init();
25034 /* ./parser//parser.nit:7463 */
25035 fra.me.REG[3] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[3]);
25036 /* ./parser//parser.nit:7466 */
25037 fra.me.REG[2] = fra.me.REG[3];
25038 /* ./parser//parser.nit:7467 */
25039 REGB0 = TAG_Bool(ATTR_parser___ReduceAction204____goto(fra.me.REG[0])!=NIT_NULL);
25040 if (UNTAG_Bool(REGB0)) {
25041 } else {
25042 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7467);
25043 }
25044 REGB0 = ATTR_parser___ReduceAction204____goto(fra.me.REG[0]);
25045 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25046 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25047 stack_frame_head = fra.me.prev;
25048 return;
25049 }
25050 void parser___ReduceAction204___init(val_t p0, val_t p1, int* init_table){
25051 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction204].i;
25052 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25053 val_t REGB0;
25054 val_t tmp;
25055 if (init_table[itpos206]) return;
25056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25057 fra.me.file = LOCATE_parser;
25058 fra.me.line = 7470;
25059 fra.me.meth = LOCATE_parser___ReduceAction204___init;
25060 fra.me.has_broke = 0;
25061 fra.me.REG_size = 2;
25062 fra.me.REG[0] = NIT_NULL;
25063 fra.me.REG[1] = NIT_NULL;
25064 fra.me.REG[0] = p0;
25065 REGB0 = p1;
25066 /* ./parser//parser.nit:7470 */
25067 fra.me.REG[1] = fra.me.REG[0];
25068 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25069 ATTR_parser___ReduceAction204____goto(fra.me.REG[1]) = REGB0;
25070 stack_frame_head = fra.me.prev;
25071 init_table[itpos206] = 1;
25072 return;
25073 }
25074 void parser___ReduceAction205___action(val_t p0, val_t p1){
25075 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25076 val_t REGB0;
25077 val_t tmp;
25078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25079 fra.me.file = LOCATE_parser;
25080 fra.me.line = 7474;
25081 fra.me.meth = LOCATE_parser___ReduceAction205___action;
25082 fra.me.has_broke = 0;
25083 fra.me.REG_size = 4;
25084 fra.me.REG[0] = NIT_NULL;
25085 fra.me.REG[1] = NIT_NULL;
25086 fra.me.REG[2] = NIT_NULL;
25087 fra.me.REG[3] = NIT_NULL;
25088 fra.me.REG[0] = p0;
25089 fra.me.REG[1] = p1;
25090 /* ./parser//parser.nit:7476 */
25091 fra.me.REG[2] = NIT_NULL;
25092 /* ./parser//parser.nit:7477 */
25093 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25094 /* ./parser//parser.nit:7479 */
25095 fra.me.REG[2] = fra.me.REG[3];
25096 /* ./parser//parser.nit:7480 */
25097 REGB0 = TAG_Bool(ATTR_parser___ReduceAction205____goto(fra.me.REG[0])!=NIT_NULL);
25098 if (UNTAG_Bool(REGB0)) {
25099 } else {
25100 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7480);
25101 }
25102 REGB0 = ATTR_parser___ReduceAction205____goto(fra.me.REG[0]);
25103 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25104 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25105 stack_frame_head = fra.me.prev;
25106 return;
25107 }
25108 void parser___ReduceAction205___init(val_t p0, val_t p1, int* init_table){
25109 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction205].i;
25110 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25111 val_t REGB0;
25112 val_t tmp;
25113 if (init_table[itpos207]) return;
25114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25115 fra.me.file = LOCATE_parser;
25116 fra.me.line = 7483;
25117 fra.me.meth = LOCATE_parser___ReduceAction205___init;
25118 fra.me.has_broke = 0;
25119 fra.me.REG_size = 2;
25120 fra.me.REG[0] = NIT_NULL;
25121 fra.me.REG[1] = NIT_NULL;
25122 fra.me.REG[0] = p0;
25123 REGB0 = p1;
25124 /* ./parser//parser.nit:7483 */
25125 fra.me.REG[1] = fra.me.REG[0];
25126 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25127 ATTR_parser___ReduceAction205____goto(fra.me.REG[1]) = REGB0;
25128 stack_frame_head = fra.me.prev;
25129 init_table[itpos207] = 1;
25130 return;
25131 }
25132 void parser___ReduceAction206___action(val_t p0, val_t p1){
25133 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25134 val_t REGB0;
25135 val_t REGB1;
25136 val_t tmp;
25137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25138 fra.me.file = LOCATE_parser;
25139 fra.me.line = 7487;
25140 fra.me.meth = LOCATE_parser___ReduceAction206___action;
25141 fra.me.has_broke = 0;
25142 fra.me.REG_size = 5;
25143 fra.me.REG[0] = NIT_NULL;
25144 fra.me.REG[1] = NIT_NULL;
25145 fra.me.REG[2] = NIT_NULL;
25146 fra.me.REG[3] = NIT_NULL;
25147 fra.me.REG[4] = NIT_NULL;
25148 fra.me.REG[0] = p0;
25149 fra.me.REG[1] = p1;
25150 /* ./parser//parser.nit:7489 */
25151 fra.me.REG[2] = NIT_NULL;
25152 /* ./parser//parser.nit:7490 */
25153 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25154 /* ./parser//parser.nit:7491 */
25155 fra.me.REG[4] = NEW_Array_array___Array___init();
25156 /* ./parser//parser.nit:7493 */
25157 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25158 if (UNTAG_Bool(REGB0)) {
25159 } else {
25160 nit_abort("Assert failed", NULL, LOCATE_parser, 7493);
25161 }
25162 /* ./parser//parser.nit:7494 */
25163 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25164 if (UNTAG_Bool(REGB0)) {
25165 } else {
25166 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25167 if (UNTAG_Bool(REGB1)) {
25168 REGB1 = TAG_Bool(false);
25169 REGB0 = REGB1;
25170 } else {
25171 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25172 REGB0 = REGB1;
25173 }
25174 }
25175 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25176 if (UNTAG_Bool(REGB0)) {
25177 /* ./parser//parser.nit:7495 */
25178 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
25179 }
25180 /* ./parser//parser.nit:7497 */
25181 fra.me.REG[4] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4]);
25182 /* ./parser//parser.nit:7500 */
25183 fra.me.REG[2] = fra.me.REG[4];
25184 /* ./parser//parser.nit:7501 */
25185 REGB0 = TAG_Bool(ATTR_parser___ReduceAction206____goto(fra.me.REG[0])!=NIT_NULL);
25186 if (UNTAG_Bool(REGB0)) {
25187 } else {
25188 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7501);
25189 }
25190 REGB0 = ATTR_parser___ReduceAction206____goto(fra.me.REG[0]);
25191 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25192 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25193 stack_frame_head = fra.me.prev;
25194 return;
25195 }
25196 void parser___ReduceAction206___init(val_t p0, val_t p1, int* init_table){
25197 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction206].i;
25198 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25199 val_t REGB0;
25200 val_t tmp;
25201 if (init_table[itpos208]) return;
25202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25203 fra.me.file = LOCATE_parser;
25204 fra.me.line = 7504;
25205 fra.me.meth = LOCATE_parser___ReduceAction206___init;
25206 fra.me.has_broke = 0;
25207 fra.me.REG_size = 2;
25208 fra.me.REG[0] = NIT_NULL;
25209 fra.me.REG[1] = NIT_NULL;
25210 fra.me.REG[0] = p0;
25211 REGB0 = p1;
25212 /* ./parser//parser.nit:7504 */
25213 fra.me.REG[1] = fra.me.REG[0];
25214 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25215 ATTR_parser___ReduceAction206____goto(fra.me.REG[1]) = REGB0;
25216 stack_frame_head = fra.me.prev;
25217 init_table[itpos208] = 1;
25218 return;
25219 }
25220 void parser___ReduceAction207___action(val_t p0, val_t p1){
25221 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25222 val_t REGB0;
25223 val_t REGB1;
25224 val_t tmp;
25225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25226 fra.me.file = LOCATE_parser;
25227 fra.me.line = 7508;
25228 fra.me.meth = LOCATE_parser___ReduceAction207___action;
25229 fra.me.has_broke = 0;
25230 fra.me.REG_size = 6;
25231 fra.me.REG[0] = NIT_NULL;
25232 fra.me.REG[1] = NIT_NULL;
25233 fra.me.REG[2] = NIT_NULL;
25234 fra.me.REG[3] = NIT_NULL;
25235 fra.me.REG[4] = NIT_NULL;
25236 fra.me.REG[5] = NIT_NULL;
25237 fra.me.REG[0] = p0;
25238 fra.me.REG[1] = p1;
25239 /* ./parser//parser.nit:7510 */
25240 fra.me.REG[2] = NIT_NULL;
25241 /* ./parser//parser.nit:7511 */
25242 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25243 /* ./parser//parser.nit:7512 */
25244 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25245 /* ./parser//parser.nit:7513 */
25246 fra.me.REG[5] = NEW_Array_array___Array___init();
25247 /* ./parser//parser.nit:7515 */
25248 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25249 if (UNTAG_Bool(REGB0)) {
25250 } else {
25251 nit_abort("Assert failed", NULL, LOCATE_parser, 7515);
25252 }
25253 /* ./parser//parser.nit:7517 */
25254 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
25255 if (UNTAG_Bool(REGB0)) {
25256 } else {
25257 nit_abort("Assert failed", NULL, LOCATE_parser, 7517);
25258 }
25259 /* ./parser//parser.nit:7518 */
25260 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25261 if (UNTAG_Bool(REGB0)) {
25262 } else {
25263 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25264 if (UNTAG_Bool(REGB1)) {
25265 REGB1 = TAG_Bool(false);
25266 REGB0 = REGB1;
25267 } else {
25268 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
25269 REGB0 = REGB1;
25270 }
25271 }
25272 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25273 if (UNTAG_Bool(REGB0)) {
25274 /* ./parser//parser.nit:7519 */
25275 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
25276 }
25277 /* ./parser//parser.nit:7521 */
25278 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
25279 fra.me.REG[5] = fra.me.REG[3];
25280 /* ./parser//parser.nit:7522 */
25281 fra.me.REG[5] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5]);
25282 /* ./parser//parser.nit:7525 */
25283 fra.me.REG[2] = fra.me.REG[5];
25284 /* ./parser//parser.nit:7526 */
25285 REGB0 = TAG_Bool(ATTR_parser___ReduceAction207____goto(fra.me.REG[0])!=NIT_NULL);
25286 if (UNTAG_Bool(REGB0)) {
25287 } else {
25288 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7526);
25289 }
25290 REGB0 = ATTR_parser___ReduceAction207____goto(fra.me.REG[0]);
25291 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25292 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25293 stack_frame_head = fra.me.prev;
25294 return;
25295 }
25296 void parser___ReduceAction207___init(val_t p0, val_t p1, int* init_table){
25297 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction207].i;
25298 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25299 val_t REGB0;
25300 val_t tmp;
25301 if (init_table[itpos209]) return;
25302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25303 fra.me.file = LOCATE_parser;
25304 fra.me.line = 7529;
25305 fra.me.meth = LOCATE_parser___ReduceAction207___init;
25306 fra.me.has_broke = 0;
25307 fra.me.REG_size = 2;
25308 fra.me.REG[0] = NIT_NULL;
25309 fra.me.REG[1] = NIT_NULL;
25310 fra.me.REG[0] = p0;
25311 REGB0 = p1;
25312 /* ./parser//parser.nit:7529 */
25313 fra.me.REG[1] = fra.me.REG[0];
25314 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25315 ATTR_parser___ReduceAction207____goto(fra.me.REG[1]) = REGB0;
25316 stack_frame_head = fra.me.prev;
25317 init_table[itpos209] = 1;
25318 return;
25319 }
25320 void parser___ReduceAction208___action(val_t p0, val_t p1){
25321 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25322 val_t REGB0;
25323 val_t REGB1;
25324 val_t tmp;
25325 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25326 fra.me.file = LOCATE_parser;
25327 fra.me.line = 7533;
25328 fra.me.meth = LOCATE_parser___ReduceAction208___action;
25329 fra.me.has_broke = 0;
25330 fra.me.REG_size = 5;
25331 fra.me.REG[0] = NIT_NULL;
25332 fra.me.REG[1] = NIT_NULL;
25333 fra.me.REG[2] = NIT_NULL;
25334 fra.me.REG[3] = NIT_NULL;
25335 fra.me.REG[4] = NIT_NULL;
25336 fra.me.REG[0] = p0;
25337 fra.me.REG[1] = p1;
25338 /* ./parser//parser.nit:7535 */
25339 fra.me.REG[2] = NIT_NULL;
25340 /* ./parser//parser.nit:7536 */
25341 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25342 /* ./parser//parser.nit:7537 */
25343 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25344 /* ./parser//parser.nit:7538 */
25345 fra.me.REG[4] = NEW_Array_array___Array___init();
25346 /* ./parser//parser.nit:7540 */
25347 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25348 if (UNTAG_Bool(REGB0)) {
25349 } else {
25350 nit_abort("Assert failed", NULL, LOCATE_parser, 7540);
25351 }
25352 /* ./parser//parser.nit:7541 */
25353 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25354 if (UNTAG_Bool(REGB0)) {
25355 } else {
25356 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25357 if (UNTAG_Bool(REGB1)) {
25358 REGB1 = TAG_Bool(false);
25359 REGB0 = REGB1;
25360 } else {
25361 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25362 REGB0 = REGB1;
25363 }
25364 }
25365 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25366 if (UNTAG_Bool(REGB0)) {
25367 /* ./parser//parser.nit:7542 */
25368 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
25369 }
25370 /* ./parser//parser.nit:7544 */
25371 fra.me.REG[4] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4]);
25372 /* ./parser//parser.nit:7547 */
25373 fra.me.REG[2] = fra.me.REG[4];
25374 /* ./parser//parser.nit:7548 */
25375 REGB0 = TAG_Bool(ATTR_parser___ReduceAction208____goto(fra.me.REG[0])!=NIT_NULL);
25376 if (UNTAG_Bool(REGB0)) {
25377 } else {
25378 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7548);
25379 }
25380 REGB0 = ATTR_parser___ReduceAction208____goto(fra.me.REG[0]);
25381 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25382 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25383 stack_frame_head = fra.me.prev;
25384 return;
25385 }
25386 void parser___ReduceAction208___init(val_t p0, val_t p1, int* init_table){
25387 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction208].i;
25388 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25389 val_t REGB0;
25390 val_t tmp;
25391 if (init_table[itpos210]) return;
25392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25393 fra.me.file = LOCATE_parser;
25394 fra.me.line = 7551;
25395 fra.me.meth = LOCATE_parser___ReduceAction208___init;
25396 fra.me.has_broke = 0;
25397 fra.me.REG_size = 2;
25398 fra.me.REG[0] = NIT_NULL;
25399 fra.me.REG[1] = NIT_NULL;
25400 fra.me.REG[0] = p0;
25401 REGB0 = p1;
25402 /* ./parser//parser.nit:7551 */
25403 fra.me.REG[1] = fra.me.REG[0];
25404 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25405 ATTR_parser___ReduceAction208____goto(fra.me.REG[1]) = REGB0;
25406 stack_frame_head = fra.me.prev;
25407 init_table[itpos210] = 1;
25408 return;
25409 }
25410 void parser___ReduceAction209___action(val_t p0, val_t p1){
25411 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25412 val_t REGB0;
25413 val_t REGB1;
25414 val_t tmp;
25415 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25416 fra.me.file = LOCATE_parser;
25417 fra.me.line = 7555;
25418 fra.me.meth = LOCATE_parser___ReduceAction209___action;
25419 fra.me.has_broke = 0;
25420 fra.me.REG_size = 6;
25421 fra.me.REG[0] = NIT_NULL;
25422 fra.me.REG[1] = NIT_NULL;
25423 fra.me.REG[2] = NIT_NULL;
25424 fra.me.REG[3] = NIT_NULL;
25425 fra.me.REG[4] = NIT_NULL;
25426 fra.me.REG[5] = NIT_NULL;
25427 fra.me.REG[0] = p0;
25428 fra.me.REG[1] = p1;
25429 /* ./parser//parser.nit:7557 */
25430 fra.me.REG[2] = NIT_NULL;
25431 /* ./parser//parser.nit:7558 */
25432 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25433 /* ./parser//parser.nit:7559 */
25434 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25435 /* ./parser//parser.nit:7560 */
25436 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25437 /* ./parser//parser.nit:7561 */
25438 fra.me.REG[5] = NEW_Array_array___Array___init();
25439 /* ./parser//parser.nit:7563 */
25440 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25441 if (UNTAG_Bool(REGB0)) {
25442 } else {
25443 nit_abort("Assert failed", NULL, LOCATE_parser, 7563);
25444 }
25445 /* ./parser//parser.nit:7565 */
25446 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
25447 if (UNTAG_Bool(REGB0)) {
25448 } else {
25449 nit_abort("Assert failed", NULL, LOCATE_parser, 7565);
25450 }
25451 /* ./parser//parser.nit:7566 */
25452 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25453 if (UNTAG_Bool(REGB0)) {
25454 } else {
25455 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25456 if (UNTAG_Bool(REGB1)) {
25457 REGB1 = TAG_Bool(false);
25458 REGB0 = REGB1;
25459 } else {
25460 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
25461 REGB0 = REGB1;
25462 }
25463 }
25464 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25465 if (UNTAG_Bool(REGB0)) {
25466 /* ./parser//parser.nit:7567 */
25467 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
25468 }
25469 /* ./parser//parser.nit:7569 */
25470 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
25471 fra.me.REG[5] = fra.me.REG[3];
25472 /* ./parser//parser.nit:7570 */
25473 fra.me.REG[5] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5]);
25474 /* ./parser//parser.nit:7573 */
25475 fra.me.REG[2] = fra.me.REG[5];
25476 /* ./parser//parser.nit:7574 */
25477 REGB0 = TAG_Bool(ATTR_parser___ReduceAction209____goto(fra.me.REG[0])!=NIT_NULL);
25478 if (UNTAG_Bool(REGB0)) {
25479 } else {
25480 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7574);
25481 }
25482 REGB0 = ATTR_parser___ReduceAction209____goto(fra.me.REG[0]);
25483 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25484 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25485 stack_frame_head = fra.me.prev;
25486 return;
25487 }
25488 void parser___ReduceAction209___init(val_t p0, val_t p1, int* init_table){
25489 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction209].i;
25490 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25491 val_t REGB0;
25492 val_t tmp;
25493 if (init_table[itpos211]) return;
25494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25495 fra.me.file = LOCATE_parser;
25496 fra.me.line = 7577;
25497 fra.me.meth = LOCATE_parser___ReduceAction209___init;
25498 fra.me.has_broke = 0;
25499 fra.me.REG_size = 2;
25500 fra.me.REG[0] = NIT_NULL;
25501 fra.me.REG[1] = NIT_NULL;
25502 fra.me.REG[0] = p0;
25503 REGB0 = p1;
25504 /* ./parser//parser.nit:7577 */
25505 fra.me.REG[1] = fra.me.REG[0];
25506 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25507 ATTR_parser___ReduceAction209____goto(fra.me.REG[1]) = REGB0;
25508 stack_frame_head = fra.me.prev;
25509 init_table[itpos211] = 1;
25510 return;
25511 }
25512 void parser___ReduceAction210___action(val_t p0, val_t p1){
25513 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25514 val_t REGB0;
25515 val_t tmp;
25516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25517 fra.me.file = LOCATE_parser;
25518 fra.me.line = 7581;
25519 fra.me.meth = LOCATE_parser___ReduceAction210___action;
25520 fra.me.has_broke = 0;
25521 fra.me.REG_size = 5;
25522 fra.me.REG[0] = NIT_NULL;
25523 fra.me.REG[1] = NIT_NULL;
25524 fra.me.REG[2] = NIT_NULL;
25525 fra.me.REG[3] = NIT_NULL;
25526 fra.me.REG[4] = NIT_NULL;
25527 fra.me.REG[0] = p0;
25528 fra.me.REG[1] = p1;
25529 /* ./parser//parser.nit:7583 */
25530 fra.me.REG[2] = NIT_NULL;
25531 /* ./parser//parser.nit:7584 */
25532 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25533 /* ./parser//parser.nit:7585 */
25534 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25535 /* ./parser//parser.nit:7587 */
25536 fra.me.REG[2] = fra.me.REG[3];
25537 /* ./parser//parser.nit:7588 */
25538 REGB0 = TAG_Bool(ATTR_parser___ReduceAction210____goto(fra.me.REG[0])!=NIT_NULL);
25539 if (UNTAG_Bool(REGB0)) {
25540 } else {
25541 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7588);
25542 }
25543 REGB0 = ATTR_parser___ReduceAction210____goto(fra.me.REG[0]);
25544 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25545 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25546 stack_frame_head = fra.me.prev;
25547 return;
25548 }
25549 void parser___ReduceAction210___init(val_t p0, val_t p1, int* init_table){
25550 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction210].i;
25551 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25552 val_t REGB0;
25553 val_t tmp;
25554 if (init_table[itpos212]) return;
25555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25556 fra.me.file = LOCATE_parser;
25557 fra.me.line = 7591;
25558 fra.me.meth = LOCATE_parser___ReduceAction210___init;
25559 fra.me.has_broke = 0;
25560 fra.me.REG_size = 2;
25561 fra.me.REG[0] = NIT_NULL;
25562 fra.me.REG[1] = NIT_NULL;
25563 fra.me.REG[0] = p0;
25564 REGB0 = p1;
25565 /* ./parser//parser.nit:7591 */
25566 fra.me.REG[1] = fra.me.REG[0];
25567 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25568 ATTR_parser___ReduceAction210____goto(fra.me.REG[1]) = REGB0;
25569 stack_frame_head = fra.me.prev;
25570 init_table[itpos212] = 1;
25571 return;
25572 }
25573 void parser___ReduceAction213___action(val_t p0, val_t p1){
25574 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25575 val_t REGB0;
25576 val_t tmp;
25577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25578 fra.me.file = LOCATE_parser;
25579 fra.me.line = 7595;
25580 fra.me.meth = LOCATE_parser___ReduceAction213___action;
25581 fra.me.has_broke = 0;
25582 fra.me.REG_size = 4;
25583 fra.me.REG[0] = NIT_NULL;
25584 fra.me.REG[1] = NIT_NULL;
25585 fra.me.REG[2] = NIT_NULL;
25586 fra.me.REG[3] = NIT_NULL;
25587 fra.me.REG[0] = p0;
25588 fra.me.REG[1] = p1;
25589 /* ./parser//parser.nit:7597 */
25590 fra.me.REG[2] = NIT_NULL;
25591 /* ./parser//parser.nit:7598 */
25592 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25593 /* ./parser//parser.nit:7600 */
25594 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwreturn, ID_TKwreturn)) /*cast nullable TKwreturn*/;
25595 if (UNTAG_Bool(REGB0)) {
25596 } else {
25597 nit_abort("Assert failed", NULL, LOCATE_parser, 7600);
25598 }
25599 /* ./parser//parser.nit:7601 */
25600 fra.me.REG[3] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[3], NIT_NULL);
25601 /* ./parser//parser.nit:7605 */
25602 fra.me.REG[2] = fra.me.REG[3];
25603 /* ./parser//parser.nit:7606 */
25604 REGB0 = TAG_Bool(ATTR_parser___ReduceAction213____goto(fra.me.REG[0])!=NIT_NULL);
25605 if (UNTAG_Bool(REGB0)) {
25606 } else {
25607 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7606);
25608 }
25609 REGB0 = ATTR_parser___ReduceAction213____goto(fra.me.REG[0]);
25610 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25611 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25612 stack_frame_head = fra.me.prev;
25613 return;
25614 }
25615 void parser___ReduceAction213___init(val_t p0, val_t p1, int* init_table){
25616 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction213].i;
25617 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25618 val_t REGB0;
25619 val_t tmp;
25620 if (init_table[itpos213]) return;
25621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25622 fra.me.file = LOCATE_parser;
25623 fra.me.line = 7609;
25624 fra.me.meth = LOCATE_parser___ReduceAction213___init;
25625 fra.me.has_broke = 0;
25626 fra.me.REG_size = 2;
25627 fra.me.REG[0] = NIT_NULL;
25628 fra.me.REG[1] = NIT_NULL;
25629 fra.me.REG[0] = p0;
25630 REGB0 = p1;
25631 /* ./parser//parser.nit:7609 */
25632 fra.me.REG[1] = fra.me.REG[0];
25633 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25634 ATTR_parser___ReduceAction213____goto(fra.me.REG[1]) = REGB0;
25635 stack_frame_head = fra.me.prev;
25636 init_table[itpos213] = 1;
25637 return;
25638 }
25639 void parser___ReduceAction214___action(val_t p0, val_t p1){
25640 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25641 val_t REGB0;
25642 val_t tmp;
25643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25644 fra.me.file = LOCATE_parser;
25645 fra.me.line = 7613;
25646 fra.me.meth = LOCATE_parser___ReduceAction214___action;
25647 fra.me.has_broke = 0;
25648 fra.me.REG_size = 5;
25649 fra.me.REG[0] = NIT_NULL;
25650 fra.me.REG[1] = NIT_NULL;
25651 fra.me.REG[2] = NIT_NULL;
25652 fra.me.REG[3] = NIT_NULL;
25653 fra.me.REG[4] = NIT_NULL;
25654 fra.me.REG[0] = p0;
25655 fra.me.REG[1] = p1;
25656 /* ./parser//parser.nit:7615 */
25657 fra.me.REG[2] = NIT_NULL;
25658 /* ./parser//parser.nit:7616 */
25659 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25660 /* ./parser//parser.nit:7617 */
25661 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25662 /* ./parser//parser.nit:7619 */
25663 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwreturn, ID_TKwreturn)) /*cast nullable TKwreturn*/;
25664 if (UNTAG_Bool(REGB0)) {
25665 } else {
25666 nit_abort("Assert failed", NULL, LOCATE_parser, 7619);
25667 }
25668 /* ./parser//parser.nit:7621 */
25669 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25670 if (UNTAG_Bool(REGB0)) {
25671 } else {
25672 nit_abort("Assert failed", NULL, LOCATE_parser, 7621);
25673 }
25674 /* ./parser//parser.nit:7622 */
25675 fra.me.REG[3] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[4], fra.me.REG[3]);
25676 /* ./parser//parser.nit:7626 */
25677 fra.me.REG[2] = fra.me.REG[3];
25678 /* ./parser//parser.nit:7627 */
25679 REGB0 = TAG_Bool(ATTR_parser___ReduceAction214____goto(fra.me.REG[0])!=NIT_NULL);
25680 if (UNTAG_Bool(REGB0)) {
25681 } else {
25682 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7627);
25683 }
25684 REGB0 = ATTR_parser___ReduceAction214____goto(fra.me.REG[0]);
25685 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25686 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25687 stack_frame_head = fra.me.prev;
25688 return;
25689 }
25690 void parser___ReduceAction214___init(val_t p0, val_t p1, int* init_table){
25691 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction214].i;
25692 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25693 val_t REGB0;
25694 val_t tmp;
25695 if (init_table[itpos214]) return;
25696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25697 fra.me.file = LOCATE_parser;
25698 fra.me.line = 7630;
25699 fra.me.meth = LOCATE_parser___ReduceAction214___init;
25700 fra.me.has_broke = 0;
25701 fra.me.REG_size = 2;
25702 fra.me.REG[0] = NIT_NULL;
25703 fra.me.REG[1] = NIT_NULL;
25704 fra.me.REG[0] = p0;
25705 REGB0 = p1;
25706 /* ./parser//parser.nit:7630 */
25707 fra.me.REG[1] = fra.me.REG[0];
25708 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25709 ATTR_parser___ReduceAction214____goto(fra.me.REG[1]) = REGB0;
25710 stack_frame_head = fra.me.prev;
25711 init_table[itpos214] = 1;
25712 return;
25713 }
25714 void parser___ReduceAction215___action(val_t p0, val_t p1){
25715 struct {struct stack_frame_t me; val_t MORE_REG[3];} 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;
25720 fra.me.line = 7634;
25721 fra.me.meth = LOCATE_parser___ReduceAction215___action;
25722 fra.me.has_broke = 0;
25723 fra.me.REG_size = 4;
25724 fra.me.REG[0] = NIT_NULL;
25725 fra.me.REG[1] = NIT_NULL;
25726 fra.me.REG[2] = NIT_NULL;
25727 fra.me.REG[3] = NIT_NULL;
25728 fra.me.REG[0] = p0;
25729 fra.me.REG[1] = p1;
25730 /* ./parser//parser.nit:7636 */
25731 fra.me.REG[2] = NIT_NULL;
25732 /* ./parser//parser.nit:7637 */
25733 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25734 /* ./parser//parser.nit:7639 */
25735 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25736 if (UNTAG_Bool(REGB0)) {
25737 } else {
25738 nit_abort("Assert failed", NULL, LOCATE_parser, 7639);
25739 }
25740 /* ./parser//parser.nit:7640 */
25741 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[3], NIT_NULL, NIT_NULL);
25742 /* ./parser//parser.nit:7645 */
25743 fra.me.REG[2] = fra.me.REG[3];
25744 /* ./parser//parser.nit:7646 */
25745 REGB0 = TAG_Bool(ATTR_parser___ReduceAction215____goto(fra.me.REG[0])!=NIT_NULL);
25746 if (UNTAG_Bool(REGB0)) {
25747 } else {
25748 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7646);
25749 }
25750 REGB0 = ATTR_parser___ReduceAction215____goto(fra.me.REG[0]);
25751 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25752 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25753 stack_frame_head = fra.me.prev;
25754 return;
25755 }
25756 void parser___ReduceAction215___init(val_t p0, val_t p1, int* init_table){
25757 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction215].i;
25758 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25759 val_t REGB0;
25760 val_t tmp;
25761 if (init_table[itpos215]) return;
25762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25763 fra.me.file = LOCATE_parser;
25764 fra.me.line = 7649;
25765 fra.me.meth = LOCATE_parser___ReduceAction215___init;
25766 fra.me.has_broke = 0;
25767 fra.me.REG_size = 2;
25768 fra.me.REG[0] = NIT_NULL;
25769 fra.me.REG[1] = NIT_NULL;
25770 fra.me.REG[0] = p0;
25771 REGB0 = p1;
25772 /* ./parser//parser.nit:7649 */
25773 fra.me.REG[1] = fra.me.REG[0];
25774 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25775 ATTR_parser___ReduceAction215____goto(fra.me.REG[1]) = REGB0;
25776 stack_frame_head = fra.me.prev;
25777 init_table[itpos215] = 1;
25778 return;
25779 }
25780 void parser___ReduceAction216___action(val_t p0, val_t p1){
25781 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25782 val_t REGB0;
25783 val_t tmp;
25784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25785 fra.me.file = LOCATE_parser;
25786 fra.me.line = 7653;
25787 fra.me.meth = LOCATE_parser___ReduceAction216___action;
25788 fra.me.has_broke = 0;
25789 fra.me.REG_size = 5;
25790 fra.me.REG[0] = NIT_NULL;
25791 fra.me.REG[1] = NIT_NULL;
25792 fra.me.REG[2] = NIT_NULL;
25793 fra.me.REG[3] = NIT_NULL;
25794 fra.me.REG[4] = NIT_NULL;
25795 fra.me.REG[0] = p0;
25796 fra.me.REG[1] = p1;
25797 /* ./parser//parser.nit:7655 */
25798 fra.me.REG[2] = NIT_NULL;
25799 /* ./parser//parser.nit:7656 */
25800 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25801 /* ./parser//parser.nit:7657 */
25802 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25803 /* ./parser//parser.nit:7659 */
25804 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25805 if (UNTAG_Bool(REGB0)) {
25806 } else {
25807 nit_abort("Assert failed", NULL, LOCATE_parser, 7659);
25808 }
25809 /* ./parser//parser.nit:7661 */
25810 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
25811 if (UNTAG_Bool(REGB0)) {
25812 } else {
25813 nit_abort("Assert failed", NULL, LOCATE_parser, 7661);
25814 }
25815 /* ./parser//parser.nit:7662 */
25816 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
25817 /* ./parser//parser.nit:7667 */
25818 fra.me.REG[2] = fra.me.REG[3];
25819 /* ./parser//parser.nit:7668 */
25820 REGB0 = TAG_Bool(ATTR_parser___ReduceAction216____goto(fra.me.REG[0])!=NIT_NULL);
25821 if (UNTAG_Bool(REGB0)) {
25822 } else {
25823 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7668);
25824 }
25825 REGB0 = ATTR_parser___ReduceAction216____goto(fra.me.REG[0]);
25826 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25827 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25828 stack_frame_head = fra.me.prev;
25829 return;
25830 }
25831 void parser___ReduceAction216___init(val_t p0, val_t p1, int* init_table){
25832 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction216].i;
25833 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25834 val_t REGB0;
25835 val_t tmp;
25836 if (init_table[itpos216]) return;
25837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25838 fra.me.file = LOCATE_parser;
25839 fra.me.line = 7671;
25840 fra.me.meth = LOCATE_parser___ReduceAction216___init;
25841 fra.me.has_broke = 0;
25842 fra.me.REG_size = 2;
25843 fra.me.REG[0] = NIT_NULL;
25844 fra.me.REG[1] = NIT_NULL;
25845 fra.me.REG[0] = p0;
25846 REGB0 = p1;
25847 /* ./parser//parser.nit:7671 */
25848 fra.me.REG[1] = fra.me.REG[0];
25849 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25850 ATTR_parser___ReduceAction216____goto(fra.me.REG[1]) = REGB0;
25851 stack_frame_head = fra.me.prev;
25852 init_table[itpos216] = 1;
25853 return;
25854 }
25855 void parser___ReduceAction217___action(val_t p0, val_t p1){
25856 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25857 val_t REGB0;
25858 val_t tmp;
25859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25860 fra.me.file = LOCATE_parser;
25861 fra.me.line = 7675;
25862 fra.me.meth = LOCATE_parser___ReduceAction217___action;
25863 fra.me.has_broke = 0;
25864 fra.me.REG_size = 5;
25865 fra.me.REG[0] = NIT_NULL;
25866 fra.me.REG[1] = NIT_NULL;
25867 fra.me.REG[2] = NIT_NULL;
25868 fra.me.REG[3] = NIT_NULL;
25869 fra.me.REG[4] = NIT_NULL;
25870 fra.me.REG[0] = p0;
25871 fra.me.REG[1] = p1;
25872 /* ./parser//parser.nit:7677 */
25873 fra.me.REG[2] = NIT_NULL;
25874 /* ./parser//parser.nit:7678 */
25875 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25876 /* ./parser//parser.nit:7679 */
25877 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25878 /* ./parser//parser.nit:7681 */
25879 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25880 if (UNTAG_Bool(REGB0)) {
25881 } else {
25882 nit_abort("Assert failed", NULL, LOCATE_parser, 7681);
25883 }
25884 /* ./parser//parser.nit:7683 */
25885 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25886 if (UNTAG_Bool(REGB0)) {
25887 } else {
25888 nit_abort("Assert failed", NULL, LOCATE_parser, 7683);
25889 }
25890 /* ./parser//parser.nit:7684 */
25891 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
25892 /* ./parser//parser.nit:7689 */
25893 fra.me.REG[2] = fra.me.REG[3];
25894 /* ./parser//parser.nit:7690 */
25895 REGB0 = TAG_Bool(ATTR_parser___ReduceAction217____goto(fra.me.REG[0])!=NIT_NULL);
25896 if (UNTAG_Bool(REGB0)) {
25897 } else {
25898 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7690);
25899 }
25900 REGB0 = ATTR_parser___ReduceAction217____goto(fra.me.REG[0]);
25901 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25902 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25903 stack_frame_head = fra.me.prev;
25904 return;
25905 }
25906 void parser___ReduceAction217___init(val_t p0, val_t p1, int* init_table){
25907 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction217].i;
25908 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25909 val_t REGB0;
25910 val_t tmp;
25911 if (init_table[itpos217]) return;
25912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25913 fra.me.file = LOCATE_parser;
25914 fra.me.line = 7693;
25915 fra.me.meth = LOCATE_parser___ReduceAction217___init;
25916 fra.me.has_broke = 0;
25917 fra.me.REG_size = 2;
25918 fra.me.REG[0] = NIT_NULL;
25919 fra.me.REG[1] = NIT_NULL;
25920 fra.me.REG[0] = p0;
25921 REGB0 = p1;
25922 /* ./parser//parser.nit:7693 */
25923 fra.me.REG[1] = fra.me.REG[0];
25924 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25925 ATTR_parser___ReduceAction217____goto(fra.me.REG[1]) = REGB0;
25926 stack_frame_head = fra.me.prev;
25927 init_table[itpos217] = 1;
25928 return;
25929 }
25930 void parser___ReduceAction218___action(val_t p0, val_t p1){
25931 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25932 val_t REGB0;
25933 val_t tmp;
25934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25935 fra.me.file = LOCATE_parser;
25936 fra.me.line = 7697;
25937 fra.me.meth = LOCATE_parser___ReduceAction218___action;
25938 fra.me.has_broke = 0;
25939 fra.me.REG_size = 6;
25940 fra.me.REG[0] = NIT_NULL;
25941 fra.me.REG[1] = NIT_NULL;
25942 fra.me.REG[2] = NIT_NULL;
25943 fra.me.REG[3] = NIT_NULL;
25944 fra.me.REG[4] = NIT_NULL;
25945 fra.me.REG[5] = NIT_NULL;
25946 fra.me.REG[0] = p0;
25947 fra.me.REG[1] = p1;
25948 /* ./parser//parser.nit:7699 */
25949 fra.me.REG[2] = NIT_NULL;
25950 /* ./parser//parser.nit:7700 */
25951 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25952 /* ./parser//parser.nit:7701 */
25953 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25954 /* ./parser//parser.nit:7702 */
25955 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25956 /* ./parser//parser.nit:7704 */
25957 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25958 if (UNTAG_Bool(REGB0)) {
25959 } else {
25960 nit_abort("Assert failed", NULL, LOCATE_parser, 7704);
25961 }
25962 /* ./parser//parser.nit:7706 */
25963 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
25964 if (UNTAG_Bool(REGB0)) {
25965 } else {
25966 nit_abort("Assert failed", NULL, LOCATE_parser, 7706);
25967 }
25968 /* ./parser//parser.nit:7708 */
25969 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25970 if (UNTAG_Bool(REGB0)) {
25971 } else {
25972 nit_abort("Assert failed", NULL, LOCATE_parser, 7708);
25973 }
25974 /* ./parser//parser.nit:7709 */
25975 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
25976 /* ./parser//parser.nit:7714 */
25977 fra.me.REG[2] = fra.me.REG[3];
25978 /* ./parser//parser.nit:7715 */
25979 REGB0 = TAG_Bool(ATTR_parser___ReduceAction218____goto(fra.me.REG[0])!=NIT_NULL);
25980 if (UNTAG_Bool(REGB0)) {
25981 } else {
25982 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7715);
25983 }
25984 REGB0 = ATTR_parser___ReduceAction218____goto(fra.me.REG[0]);
25985 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25986 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25987 stack_frame_head = fra.me.prev;
25988 return;
25989 }
25990 void parser___ReduceAction218___init(val_t p0, val_t p1, int* init_table){
25991 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction218].i;
25992 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25993 val_t REGB0;
25994 val_t tmp;
25995 if (init_table[itpos218]) return;
25996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25997 fra.me.file = LOCATE_parser;
25998 fra.me.line = 7718;
25999 fra.me.meth = LOCATE_parser___ReduceAction218___init;
26000 fra.me.has_broke = 0;
26001 fra.me.REG_size = 2;
26002 fra.me.REG[0] = NIT_NULL;
26003 fra.me.REG[1] = NIT_NULL;
26004 fra.me.REG[0] = p0;
26005 REGB0 = p1;
26006 /* ./parser//parser.nit:7718 */
26007 fra.me.REG[1] = fra.me.REG[0];
26008 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26009 ATTR_parser___ReduceAction218____goto(fra.me.REG[1]) = REGB0;
26010 stack_frame_head = fra.me.prev;
26011 init_table[itpos218] = 1;
26012 return;
26013 }
26014 void parser___ReduceAction219___action(val_t p0, val_t p1){
26015 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26016 val_t REGB0;
26017 val_t tmp;
26018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26019 fra.me.file = LOCATE_parser;
26020 fra.me.line = 7722;
26021 fra.me.meth = LOCATE_parser___ReduceAction219___action;
26022 fra.me.has_broke = 0;
26023 fra.me.REG_size = 4;
26024 fra.me.REG[0] = NIT_NULL;
26025 fra.me.REG[1] = NIT_NULL;
26026 fra.me.REG[2] = NIT_NULL;
26027 fra.me.REG[3] = NIT_NULL;
26028 fra.me.REG[0] = p0;
26029 fra.me.REG[1] = p1;
26030 /* ./parser//parser.nit:7724 */
26031 fra.me.REG[2] = NIT_NULL;
26032 /* ./parser//parser.nit:7725 */
26033 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26034 /* ./parser//parser.nit:7727 */
26035 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwabort, ID_TKwabort)) /*cast nullable TKwabort*/;
26036 if (UNTAG_Bool(REGB0)) {
26037 } else {
26038 nit_abort("Assert failed", NULL, LOCATE_parser, 7727);
26039 }
26040 /* ./parser//parser.nit:7728 */
26041 fra.me.REG[3] = NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr(fra.me.REG[3]);
26042 /* ./parser//parser.nit:7731 */
26043 fra.me.REG[2] = fra.me.REG[3];
26044 /* ./parser//parser.nit:7732 */
26045 REGB0 = TAG_Bool(ATTR_parser___ReduceAction219____goto(fra.me.REG[0])!=NIT_NULL);
26046 if (UNTAG_Bool(REGB0)) {
26047 } else {
26048 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7732);
26049 }
26050 REGB0 = ATTR_parser___ReduceAction219____goto(fra.me.REG[0]);
26051 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26052 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26053 stack_frame_head = fra.me.prev;
26054 return;
26055 }
26056 void parser___ReduceAction219___init(val_t p0, val_t p1, int* init_table){
26057 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction219].i;
26058 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26059 val_t REGB0;
26060 val_t tmp;
26061 if (init_table[itpos219]) return;
26062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26063 fra.me.file = LOCATE_parser;
26064 fra.me.line = 7735;
26065 fra.me.meth = LOCATE_parser___ReduceAction219___init;
26066 fra.me.has_broke = 0;
26067 fra.me.REG_size = 2;
26068 fra.me.REG[0] = NIT_NULL;
26069 fra.me.REG[1] = NIT_NULL;
26070 fra.me.REG[0] = p0;
26071 REGB0 = p1;
26072 /* ./parser//parser.nit:7735 */
26073 fra.me.REG[1] = fra.me.REG[0];
26074 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26075 ATTR_parser___ReduceAction219____goto(fra.me.REG[1]) = REGB0;
26076 stack_frame_head = fra.me.prev;
26077 init_table[itpos219] = 1;
26078 return;
26079 }
26080 void parser___ReduceAction220___action(val_t p0, val_t p1){
26081 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26082 val_t REGB0;
26083 val_t tmp;
26084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26085 fra.me.file = LOCATE_parser;
26086 fra.me.line = 7739;
26087 fra.me.meth = LOCATE_parser___ReduceAction220___action;
26088 fra.me.has_broke = 0;
26089 fra.me.REG_size = 4;
26090 fra.me.REG[0] = NIT_NULL;
26091 fra.me.REG[1] = NIT_NULL;
26092 fra.me.REG[2] = NIT_NULL;
26093 fra.me.REG[3] = NIT_NULL;
26094 fra.me.REG[0] = p0;
26095 fra.me.REG[1] = p1;
26096 /* ./parser//parser.nit:7741 */
26097 fra.me.REG[2] = NIT_NULL;
26098 /* ./parser//parser.nit:7742 */
26099 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26100 /* ./parser//parser.nit:7744 */
26101 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26102 if (UNTAG_Bool(REGB0)) {
26103 } else {
26104 nit_abort("Assert failed", NULL, LOCATE_parser, 7744);
26105 }
26106 /* ./parser//parser.nit:7745 */
26107 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[3], NIT_NULL, NIT_NULL);
26108 /* ./parser//parser.nit:7750 */
26109 fra.me.REG[2] = fra.me.REG[3];
26110 /* ./parser//parser.nit:7751 */
26111 REGB0 = TAG_Bool(ATTR_parser___ReduceAction220____goto(fra.me.REG[0])!=NIT_NULL);
26112 if (UNTAG_Bool(REGB0)) {
26113 } else {
26114 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7751);
26115 }
26116 REGB0 = ATTR_parser___ReduceAction220____goto(fra.me.REG[0]);
26117 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26118 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26119 stack_frame_head = fra.me.prev;
26120 return;
26121 }
26122 void parser___ReduceAction220___init(val_t p0, val_t p1, int* init_table){
26123 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction220].i;
26124 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26125 val_t REGB0;
26126 val_t tmp;
26127 if (init_table[itpos220]) return;
26128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26129 fra.me.file = LOCATE_parser;
26130 fra.me.line = 7754;
26131 fra.me.meth = LOCATE_parser___ReduceAction220___init;
26132 fra.me.has_broke = 0;
26133 fra.me.REG_size = 2;
26134 fra.me.REG[0] = NIT_NULL;
26135 fra.me.REG[1] = NIT_NULL;
26136 fra.me.REG[0] = p0;
26137 REGB0 = p1;
26138 /* ./parser//parser.nit:7754 */
26139 fra.me.REG[1] = fra.me.REG[0];
26140 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26141 ATTR_parser___ReduceAction220____goto(fra.me.REG[1]) = REGB0;
26142 stack_frame_head = fra.me.prev;
26143 init_table[itpos220] = 1;
26144 return;
26145 }
26146 void parser___ReduceAction221___action(val_t p0, val_t p1){
26147 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
26148 val_t REGB0;
26149 val_t tmp;
26150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26151 fra.me.file = LOCATE_parser;
26152 fra.me.line = 7758;
26153 fra.me.meth = LOCATE_parser___ReduceAction221___action;
26154 fra.me.has_broke = 0;
26155 fra.me.REG_size = 5;
26156 fra.me.REG[0] = NIT_NULL;
26157 fra.me.REG[1] = NIT_NULL;
26158 fra.me.REG[2] = NIT_NULL;
26159 fra.me.REG[3] = NIT_NULL;
26160 fra.me.REG[4] = NIT_NULL;
26161 fra.me.REG[0] = p0;
26162 fra.me.REG[1] = p1;
26163 /* ./parser//parser.nit:7760 */
26164 fra.me.REG[2] = NIT_NULL;
26165 /* ./parser//parser.nit:7761 */
26166 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26167 /* ./parser//parser.nit:7762 */
26168 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26169 /* ./parser//parser.nit:7764 */
26170 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26171 if (UNTAG_Bool(REGB0)) {
26172 } else {
26173 nit_abort("Assert failed", NULL, LOCATE_parser, 7764);
26174 }
26175 /* ./parser//parser.nit:7766 */
26176 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
26177 if (UNTAG_Bool(REGB0)) {
26178 } else {
26179 nit_abort("Assert failed", NULL, LOCATE_parser, 7766);
26180 }
26181 /* ./parser//parser.nit:7767 */
26182 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
26183 /* ./parser//parser.nit:7772 */
26184 fra.me.REG[2] = fra.me.REG[3];
26185 /* ./parser//parser.nit:7773 */
26186 REGB0 = TAG_Bool(ATTR_parser___ReduceAction221____goto(fra.me.REG[0])!=NIT_NULL);
26187 if (UNTAG_Bool(REGB0)) {
26188 } else {
26189 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7773);
26190 }
26191 REGB0 = ATTR_parser___ReduceAction221____goto(fra.me.REG[0]);
26192 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26193 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26194 stack_frame_head = fra.me.prev;
26195 return;
26196 }
26197 void parser___ReduceAction221___init(val_t p0, val_t p1, int* init_table){
26198 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction221].i;
26199 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26200 val_t REGB0;
26201 val_t tmp;
26202 if (init_table[itpos221]) return;
26203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26204 fra.me.file = LOCATE_parser;
26205 fra.me.line = 7776;
26206 fra.me.meth = LOCATE_parser___ReduceAction221___init;
26207 fra.me.has_broke = 0;
26208 fra.me.REG_size = 2;
26209 fra.me.REG[0] = NIT_NULL;
26210 fra.me.REG[1] = NIT_NULL;
26211 fra.me.REG[0] = p0;
26212 REGB0 = p1;
26213 /* ./parser//parser.nit:7776 */
26214 fra.me.REG[1] = fra.me.REG[0];
26215 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26216 ATTR_parser___ReduceAction221____goto(fra.me.REG[1]) = REGB0;
26217 stack_frame_head = fra.me.prev;
26218 init_table[itpos221] = 1;
26219 return;
26220 }
26221 void parser___ReduceAction222___action(val_t p0, val_t p1){
26222 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
26223 val_t REGB0;
26224 val_t tmp;
26225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26226 fra.me.file = LOCATE_parser;
26227 fra.me.line = 7780;
26228 fra.me.meth = LOCATE_parser___ReduceAction222___action;
26229 fra.me.has_broke = 0;
26230 fra.me.REG_size = 5;
26231 fra.me.REG[0] = NIT_NULL;
26232 fra.me.REG[1] = NIT_NULL;
26233 fra.me.REG[2] = NIT_NULL;
26234 fra.me.REG[3] = NIT_NULL;
26235 fra.me.REG[4] = NIT_NULL;
26236 fra.me.REG[0] = p0;
26237 fra.me.REG[1] = p1;
26238 /* ./parser//parser.nit:7782 */
26239 fra.me.REG[2] = NIT_NULL;
26240 /* ./parser//parser.nit:7783 */
26241 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26242 /* ./parser//parser.nit:7784 */
26243 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26244 /* ./parser//parser.nit:7786 */
26245 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26246 if (UNTAG_Bool(REGB0)) {
26247 } else {
26248 nit_abort("Assert failed", NULL, LOCATE_parser, 7786);
26249 }
26250 /* ./parser//parser.nit:7788 */
26251 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26252 if (UNTAG_Bool(REGB0)) {
26253 } else {
26254 nit_abort("Assert failed", NULL, LOCATE_parser, 7788);
26255 }
26256 /* ./parser//parser.nit:7789 */
26257 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
26258 /* ./parser//parser.nit:7794 */
26259 fra.me.REG[2] = fra.me.REG[3];
26260 /* ./parser//parser.nit:7795 */
26261 REGB0 = TAG_Bool(ATTR_parser___ReduceAction222____goto(fra.me.REG[0])!=NIT_NULL);
26262 if (UNTAG_Bool(REGB0)) {
26263 } else {
26264 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7795);
26265 }
26266 REGB0 = ATTR_parser___ReduceAction222____goto(fra.me.REG[0]);
26267 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26268 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26269 stack_frame_head = fra.me.prev;
26270 return;
26271 }
26272 void parser___ReduceAction222___init(val_t p0, val_t p1, int* init_table){
26273 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction222].i;
26274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26275 val_t REGB0;
26276 val_t tmp;
26277 if (init_table[itpos222]) return;
26278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26279 fra.me.file = LOCATE_parser;
26280 fra.me.line = 7798;
26281 fra.me.meth = LOCATE_parser___ReduceAction222___init;
26282 fra.me.has_broke = 0;
26283 fra.me.REG_size = 2;
26284 fra.me.REG[0] = NIT_NULL;
26285 fra.me.REG[1] = NIT_NULL;
26286 fra.me.REG[0] = p0;
26287 REGB0 = p1;
26288 /* ./parser//parser.nit:7798 */
26289 fra.me.REG[1] = fra.me.REG[0];
26290 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26291 ATTR_parser___ReduceAction222____goto(fra.me.REG[1]) = REGB0;
26292 stack_frame_head = fra.me.prev;
26293 init_table[itpos222] = 1;
26294 return;
26295 }
26296 void parser___ReduceAction223___action(val_t p0, val_t p1){
26297 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
26298 val_t REGB0;
26299 val_t tmp;
26300 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26301 fra.me.file = LOCATE_parser;
26302 fra.me.line = 7802;
26303 fra.me.meth = LOCATE_parser___ReduceAction223___action;
26304 fra.me.has_broke = 0;
26305 fra.me.REG_size = 6;
26306 fra.me.REG[0] = NIT_NULL;
26307 fra.me.REG[1] = NIT_NULL;
26308 fra.me.REG[2] = NIT_NULL;
26309 fra.me.REG[3] = NIT_NULL;
26310 fra.me.REG[4] = NIT_NULL;
26311 fra.me.REG[5] = NIT_NULL;
26312 fra.me.REG[0] = p0;
26313 fra.me.REG[1] = p1;
26314 /* ./parser//parser.nit:7804 */
26315 fra.me.REG[2] = NIT_NULL;
26316 /* ./parser//parser.nit:7805 */
26317 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26318 /* ./parser//parser.nit:7806 */
26319 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26320 /* ./parser//parser.nit:7807 */
26321 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26322 /* ./parser//parser.nit:7809 */
26323 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26324 if (UNTAG_Bool(REGB0)) {
26325 } else {
26326 nit_abort("Assert failed", NULL, LOCATE_parser, 7809);
26327 }
26328 /* ./parser//parser.nit:7811 */
26329 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
26330 if (UNTAG_Bool(REGB0)) {
26331 } else {
26332 nit_abort("Assert failed", NULL, LOCATE_parser, 7811);
26333 }
26334 /* ./parser//parser.nit:7813 */
26335 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26336 if (UNTAG_Bool(REGB0)) {
26337 } else {
26338 nit_abort("Assert failed", NULL, LOCATE_parser, 7813);
26339 }
26340 /* ./parser//parser.nit:7814 */
26341 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
26342 /* ./parser//parser.nit:7819 */
26343 fra.me.REG[2] = fra.me.REG[3];
26344 /* ./parser//parser.nit:7820 */
26345 REGB0 = TAG_Bool(ATTR_parser___ReduceAction223____goto(fra.me.REG[0])!=NIT_NULL);
26346 if (UNTAG_Bool(REGB0)) {
26347 } else {
26348 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7820);
26349 }
26350 REGB0 = ATTR_parser___ReduceAction223____goto(fra.me.REG[0]);
26351 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26352 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26353 stack_frame_head = fra.me.prev;
26354 return;
26355 }
26356 void parser___ReduceAction223___init(val_t p0, val_t p1, int* init_table){
26357 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction223].i;
26358 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26359 val_t REGB0;
26360 val_t tmp;
26361 if (init_table[itpos223]) return;
26362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26363 fra.me.file = LOCATE_parser;
26364 fra.me.line = 7823;
26365 fra.me.meth = LOCATE_parser___ReduceAction223___init;
26366 fra.me.has_broke = 0;
26367 fra.me.REG_size = 2;
26368 fra.me.REG[0] = NIT_NULL;
26369 fra.me.REG[1] = NIT_NULL;
26370 fra.me.REG[0] = p0;
26371 REGB0 = p1;
26372 /* ./parser//parser.nit:7823 */
26373 fra.me.REG[1] = fra.me.REG[0];
26374 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26375 ATTR_parser___ReduceAction223____goto(fra.me.REG[1]) = REGB0;
26376 stack_frame_head = fra.me.prev;
26377 init_table[itpos223] = 1;
26378 return;
26379 }
26380 void parser___ReduceAction230___action(val_t p0, val_t p1){
26381 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
26382 val_t REGB0;
26383 val_t tmp;
26384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26385 fra.me.file = LOCATE_parser;
26386 fra.me.line = 7827;
26387 fra.me.meth = LOCATE_parser___ReduceAction230___action;
26388 fra.me.has_broke = 0;
26389 fra.me.REG_size = 8;
26390 fra.me.REG[0] = NIT_NULL;
26391 fra.me.REG[1] = NIT_NULL;
26392 fra.me.REG[2] = NIT_NULL;
26393 fra.me.REG[3] = NIT_NULL;
26394 fra.me.REG[4] = NIT_NULL;
26395 fra.me.REG[5] = NIT_NULL;
26396 fra.me.REG[6] = NIT_NULL;
26397 fra.me.REG[7] = NIT_NULL;
26398 fra.me.REG[0] = p0;
26399 fra.me.REG[1] = p1;
26400 /* ./parser//parser.nit:7829 */
26401 fra.me.REG[2] = NIT_NULL;
26402 /* ./parser//parser.nit:7830 */
26403 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26404 /* ./parser//parser.nit:7831 */
26405 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26406 /* ./parser//parser.nit:7832 */
26407 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26408 /* ./parser//parser.nit:7833 */
26409 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26410 /* ./parser//parser.nit:7834 */
26411 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26412 /* ./parser//parser.nit:7835 */
26413 fra.me.REG[6] = NEW_Array_array___Array___init();
26414 /* ./parser//parser.nit:7836 */
26415 fra.me.REG[7] = NEW_Array_array___Array___init();
26416 /* ./parser//parser.nit:7838 */
26417 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26418 if (UNTAG_Bool(REGB0)) {
26419 } else {
26420 nit_abort("Assert failed", NULL, LOCATE_parser, 7838);
26421 }
26422 /* ./parser//parser.nit:7840 */
26423 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26424 if (UNTAG_Bool(REGB0)) {
26425 } else {
26426 nit_abort("Assert failed", NULL, LOCATE_parser, 7840);
26427 }
26428 /* ./parser//parser.nit:7842 */
26429 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26430 if (UNTAG_Bool(REGB0)) {
26431 } else {
26432 nit_abort("Assert failed", NULL, LOCATE_parser, 7842);
26433 }
26434 /* ./parser//parser.nit:7843 */
26435 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
26436 fra.me.REG[6] = fra.me.REG[3];
26437 /* ./parser//parser.nit:7844 */
26438 fra.me.REG[7] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], fra.me.REG[7]);
26439 /* ./parser//parser.nit:7850 */
26440 fra.me.REG[2] = fra.me.REG[7];
26441 /* ./parser//parser.nit:7851 */
26442 REGB0 = TAG_Bool(ATTR_parser___ReduceAction230____goto(fra.me.REG[0])!=NIT_NULL);
26443 if (UNTAG_Bool(REGB0)) {
26444 } else {
26445 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7851);
26446 }
26447 REGB0 = ATTR_parser___ReduceAction230____goto(fra.me.REG[0]);
26448 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26449 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26450 stack_frame_head = fra.me.prev;
26451 return;
26452 }
26453 void parser___ReduceAction230___init(val_t p0, val_t p1, int* init_table){
26454 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction230].i;
26455 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26456 val_t REGB0;
26457 val_t tmp;
26458 if (init_table[itpos224]) return;
26459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26460 fra.me.file = LOCATE_parser;
26461 fra.me.line = 7854;
26462 fra.me.meth = LOCATE_parser___ReduceAction230___init;
26463 fra.me.has_broke = 0;
26464 fra.me.REG_size = 2;
26465 fra.me.REG[0] = NIT_NULL;
26466 fra.me.REG[1] = NIT_NULL;
26467 fra.me.REG[0] = p0;
26468 REGB0 = p1;
26469 /* ./parser//parser.nit:7854 */
26470 fra.me.REG[1] = fra.me.REG[0];
26471 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26472 ATTR_parser___ReduceAction230____goto(fra.me.REG[1]) = REGB0;
26473 stack_frame_head = fra.me.prev;
26474 init_table[itpos224] = 1;
26475 return;
26476 }
26477 void parser___ReduceAction231___action(val_t p0, val_t p1){
26478 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
26479 val_t REGB0;
26480 val_t tmp;
26481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26482 fra.me.file = LOCATE_parser;
26483 fra.me.line = 7858;
26484 fra.me.meth = LOCATE_parser___ReduceAction231___action;
26485 fra.me.has_broke = 0;
26486 fra.me.REG_size = 8;
26487 fra.me.REG[0] = NIT_NULL;
26488 fra.me.REG[1] = NIT_NULL;
26489 fra.me.REG[2] = NIT_NULL;
26490 fra.me.REG[3] = NIT_NULL;
26491 fra.me.REG[4] = NIT_NULL;
26492 fra.me.REG[5] = NIT_NULL;
26493 fra.me.REG[6] = NIT_NULL;
26494 fra.me.REG[7] = NIT_NULL;
26495 fra.me.REG[0] = p0;
26496 fra.me.REG[1] = p1;
26497 /* ./parser//parser.nit:7860 */
26498 fra.me.REG[2] = NIT_NULL;
26499 /* ./parser//parser.nit:7861 */
26500 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26501 /* ./parser//parser.nit:7862 */
26502 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26503 /* ./parser//parser.nit:7863 */
26504 fra.me.REG[5] = NEW_Array_array___Array___init();
26505 /* ./parser//parser.nit:7864 */
26506 fra.me.REG[6] = NEW_Array_array___Array___init();
26507 /* ./parser//parser.nit:7865 */
26508 fra.me.REG[7] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
26509 /* ./parser//parser.nit:7868 */
26510 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26511 if (UNTAG_Bool(REGB0)) {
26512 } else {
26513 nit_abort("Assert failed", NULL, LOCATE_parser, 7868);
26514 }
26515 /* ./parser//parser.nit:7870 */
26516 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26517 if (UNTAG_Bool(REGB0)) {
26518 } else {
26519 nit_abort("Assert failed", NULL, LOCATE_parser, 7870);
26520 }
26521 /* ./parser//parser.nit:7871 */
26522 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
26523 fra.me.REG[5] = fra.me.REG[3];
26524 /* ./parser//parser.nit:7872 */
26525 fra.me.REG[6] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(fra.me.REG[7], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
26526 /* ./parser//parser.nit:7878 */
26527 fra.me.REG[2] = fra.me.REG[6];
26528 /* ./parser//parser.nit:7879 */
26529 REGB0 = TAG_Bool(ATTR_parser___ReduceAction231____goto(fra.me.REG[0])!=NIT_NULL);
26530 if (UNTAG_Bool(REGB0)) {
26531 } else {
26532 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7879);
26533 }
26534 REGB0 = ATTR_parser___ReduceAction231____goto(fra.me.REG[0]);
26535 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26536 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26537 stack_frame_head = fra.me.prev;
26538 return;
26539 }
26540 void parser___ReduceAction231___init(val_t p0, val_t p1, int* init_table){
26541 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction231].i;
26542 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26543 val_t REGB0;
26544 val_t tmp;
26545 if (init_table[itpos225]) return;
26546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26547 fra.me.file = LOCATE_parser;
26548 fra.me.line = 7882;
26549 fra.me.meth = LOCATE_parser___ReduceAction231___init;
26550 fra.me.has_broke = 0;
26551 fra.me.REG_size = 2;
26552 fra.me.REG[0] = NIT_NULL;
26553 fra.me.REG[1] = NIT_NULL;
26554 fra.me.REG[0] = p0;
26555 REGB0 = p1;
26556 /* ./parser//parser.nit:7882 */
26557 fra.me.REG[1] = fra.me.REG[0];
26558 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26559 ATTR_parser___ReduceAction231____goto(fra.me.REG[1]) = REGB0;
26560 stack_frame_head = fra.me.prev;
26561 init_table[itpos225] = 1;
26562 return;
26563 }
26564 void parser___ReduceAction232___action(val_t p0, val_t p1){
26565 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
26566 val_t REGB0;
26567 val_t tmp;
26568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26569 fra.me.file = LOCATE_parser;
26570 fra.me.line = 7886;
26571 fra.me.meth = LOCATE_parser___ReduceAction232___action;
26572 fra.me.has_broke = 0;
26573 fra.me.REG_size = 9;
26574 fra.me.REG[0] = NIT_NULL;
26575 fra.me.REG[1] = NIT_NULL;
26576 fra.me.REG[2] = NIT_NULL;
26577 fra.me.REG[3] = NIT_NULL;
26578 fra.me.REG[4] = NIT_NULL;
26579 fra.me.REG[5] = NIT_NULL;
26580 fra.me.REG[6] = NIT_NULL;
26581 fra.me.REG[7] = NIT_NULL;
26582 fra.me.REG[8] = NIT_NULL;
26583 fra.me.REG[0] = p0;
26584 fra.me.REG[1] = p1;
26585 /* ./parser//parser.nit:7888 */
26586 fra.me.REG[2] = NIT_NULL;
26587 /* ./parser//parser.nit:7889 */
26588 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26589 /* ./parser//parser.nit:7890 */
26590 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26591 /* ./parser//parser.nit:7891 */
26592 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26593 /* ./parser//parser.nit:7892 */
26594 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26595 /* ./parser//parser.nit:7893 */
26596 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26597 /* ./parser//parser.nit:7894 */
26598 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26599 /* ./parser//parser.nit:7895 */
26600 fra.me.REG[7] = NEW_Array_array___Array___init();
26601 /* ./parser//parser.nit:7896 */
26602 fra.me.REG[8] = NEW_Array_array___Array___init();
26603 /* ./parser//parser.nit:7898 */
26604 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26605 if (UNTAG_Bool(REGB0)) {
26606 } else {
26607 nit_abort("Assert failed", NULL, LOCATE_parser, 7898);
26608 }
26609 /* ./parser//parser.nit:7900 */
26610 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26611 if (UNTAG_Bool(REGB0)) {
26612 } else {
26613 nit_abort("Assert failed", NULL, LOCATE_parser, 7900);
26614 }
26615 /* ./parser//parser.nit:7902 */
26616 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26617 if (UNTAG_Bool(REGB0)) {
26618 } else {
26619 nit_abort("Assert failed", NULL, LOCATE_parser, 7902);
26620 }
26621 /* ./parser//parser.nit:7903 */
26622 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
26623 fra.me.REG[7] = fra.me.REG[4];
26624 /* ./parser//parser.nit:7905 */
26625 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26626 if (UNTAG_Bool(REGB0)) {
26627 } else {
26628 nit_abort("Assert failed", NULL, LOCATE_parser, 7905);
26629 }
26630 /* ./parser//parser.nit:7906 */
26631 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
26632 fra.me.REG[8] = fra.me.REG[3];
26633 /* ./parser//parser.nit:7907 */
26634 fra.me.REG[8] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[8]);
26635 /* ./parser//parser.nit:7913 */
26636 fra.me.REG[2] = fra.me.REG[8];
26637 /* ./parser//parser.nit:7914 */
26638 REGB0 = TAG_Bool(ATTR_parser___ReduceAction232____goto(fra.me.REG[0])!=NIT_NULL);
26639 if (UNTAG_Bool(REGB0)) {
26640 } else {
26641 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7914);
26642 }
26643 REGB0 = ATTR_parser___ReduceAction232____goto(fra.me.REG[0]);
26644 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26645 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26646 stack_frame_head = fra.me.prev;
26647 return;
26648 }
26649 void parser___ReduceAction232___init(val_t p0, val_t p1, int* init_table){
26650 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction232].i;
26651 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26652 val_t REGB0;
26653 val_t tmp;
26654 if (init_table[itpos226]) return;
26655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26656 fra.me.file = LOCATE_parser;
26657 fra.me.line = 7917;
26658 fra.me.meth = LOCATE_parser___ReduceAction232___init;
26659 fra.me.has_broke = 0;
26660 fra.me.REG_size = 2;
26661 fra.me.REG[0] = NIT_NULL;
26662 fra.me.REG[1] = NIT_NULL;
26663 fra.me.REG[0] = p0;
26664 REGB0 = p1;
26665 /* ./parser//parser.nit:7917 */
26666 fra.me.REG[1] = fra.me.REG[0];
26667 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26668 ATTR_parser___ReduceAction232____goto(fra.me.REG[1]) = REGB0;
26669 stack_frame_head = fra.me.prev;
26670 init_table[itpos226] = 1;
26671 return;
26672 }
26673 void parser___ReduceAction233___action(val_t p0, val_t p1){
26674 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
26675 val_t REGB0;
26676 val_t tmp;
26677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26678 fra.me.file = LOCATE_parser;
26679 fra.me.line = 7921;
26680 fra.me.meth = LOCATE_parser___ReduceAction233___action;
26681 fra.me.has_broke = 0;
26682 fra.me.REG_size = 9;
26683 fra.me.REG[0] = NIT_NULL;
26684 fra.me.REG[1] = NIT_NULL;
26685 fra.me.REG[2] = NIT_NULL;
26686 fra.me.REG[3] = NIT_NULL;
26687 fra.me.REG[4] = NIT_NULL;
26688 fra.me.REG[5] = NIT_NULL;
26689 fra.me.REG[6] = NIT_NULL;
26690 fra.me.REG[7] = NIT_NULL;
26691 fra.me.REG[8] = NIT_NULL;
26692 fra.me.REG[0] = p0;
26693 fra.me.REG[1] = p1;
26694 /* ./parser//parser.nit:7923 */
26695 fra.me.REG[2] = NIT_NULL;
26696 /* ./parser//parser.nit:7924 */
26697 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26698 /* ./parser//parser.nit:7925 */
26699 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26700 /* ./parser//parser.nit:7926 */
26701 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26702 /* ./parser//parser.nit:7927 */
26703 fra.me.REG[6] = NEW_Array_array___Array___init();
26704 /* ./parser//parser.nit:7928 */
26705 fra.me.REG[7] = NEW_Array_array___Array___init();
26706 /* ./parser//parser.nit:7929 */
26707 fra.me.REG[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
26708 /* ./parser//parser.nit:7932 */
26709 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26710 if (UNTAG_Bool(REGB0)) {
26711 } else {
26712 nit_abort("Assert failed", NULL, LOCATE_parser, 7932);
26713 }
26714 /* ./parser//parser.nit:7934 */
26715 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26716 if (UNTAG_Bool(REGB0)) {
26717 } else {
26718 nit_abort("Assert failed", NULL, LOCATE_parser, 7934);
26719 }
26720 /* ./parser//parser.nit:7935 */
26721 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
26722 fra.me.REG[6] = fra.me.REG[4];
26723 /* ./parser//parser.nit:7937 */
26724 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26725 if (UNTAG_Bool(REGB0)) {
26726 } else {
26727 nit_abort("Assert failed", NULL, LOCATE_parser, 7937);
26728 }
26729 /* ./parser//parser.nit:7938 */
26730 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
26731 fra.me.REG[7] = fra.me.REG[3];
26732 /* ./parser//parser.nit:7939 */
26733 fra.me.REG[7] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(fra.me.REG[8], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
26734 /* ./parser//parser.nit:7945 */
26735 fra.me.REG[2] = fra.me.REG[7];
26736 /* ./parser//parser.nit:7946 */
26737 REGB0 = TAG_Bool(ATTR_parser___ReduceAction233____goto(fra.me.REG[0])!=NIT_NULL);
26738 if (UNTAG_Bool(REGB0)) {
26739 } else {
26740 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7946);
26741 }
26742 REGB0 = ATTR_parser___ReduceAction233____goto(fra.me.REG[0]);
26743 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26744 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26745 stack_frame_head = fra.me.prev;
26746 return;
26747 }
26748 void parser___ReduceAction233___init(val_t p0, val_t p1, int* init_table){
26749 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction233].i;
26750 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26751 val_t REGB0;
26752 val_t tmp;
26753 if (init_table[itpos227]) return;
26754 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26755 fra.me.file = LOCATE_parser;
26756 fra.me.line = 7949;
26757 fra.me.meth = LOCATE_parser___ReduceAction233___init;
26758 fra.me.has_broke = 0;
26759 fra.me.REG_size = 2;
26760 fra.me.REG[0] = NIT_NULL;
26761 fra.me.REG[1] = NIT_NULL;
26762 fra.me.REG[0] = p0;
26763 REGB0 = p1;
26764 /* ./parser//parser.nit:7949 */
26765 fra.me.REG[1] = fra.me.REG[0];
26766 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26767 ATTR_parser___ReduceAction233____goto(fra.me.REG[1]) = REGB0;
26768 stack_frame_head = fra.me.prev;
26769 init_table[itpos227] = 1;
26770 return;
26771 }
26772 void parser___ReduceAction234___action(val_t p0, val_t p1){
26773 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
26774 val_t REGB0;
26775 val_t tmp;
26776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26777 fra.me.file = LOCATE_parser;
26778 fra.me.line = 7953;
26779 fra.me.meth = LOCATE_parser___ReduceAction234___action;
26780 fra.me.has_broke = 0;
26781 fra.me.REG_size = 6;
26782 fra.me.REG[0] = NIT_NULL;
26783 fra.me.REG[1] = NIT_NULL;
26784 fra.me.REG[2] = NIT_NULL;
26785 fra.me.REG[3] = NIT_NULL;
26786 fra.me.REG[4] = NIT_NULL;
26787 fra.me.REG[5] = NIT_NULL;
26788 fra.me.REG[0] = p0;
26789 fra.me.REG[1] = p1;
26790 /* ./parser//parser.nit:7955 */
26791 fra.me.REG[2] = NIT_NULL;
26792 /* ./parser//parser.nit:7956 */
26793 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26794 /* ./parser//parser.nit:7957 */
26795 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26796 /* ./parser//parser.nit:7958 */
26797 fra.me.REG[5] = NEW_Array_array___Array___init();
26798 /* ./parser//parser.nit:7960 */
26799 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwsuper, ID_TKwsuper)) /*cast nullable TKwsuper*/;
26800 if (UNTAG_Bool(REGB0)) {
26801 } else {
26802 nit_abort("Assert failed", NULL, LOCATE_parser, 7960);
26803 }
26804 /* ./parser//parser.nit:7962 */
26805 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26806 if (UNTAG_Bool(REGB0)) {
26807 } else {
26808 nit_abort("Assert failed", NULL, LOCATE_parser, 7962);
26809 }
26810 /* ./parser//parser.nit:7963 */
26811 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
26812 fra.me.REG[5] = fra.me.REG[3];
26813 /* ./parser//parser.nit:7964 */
26814 fra.me.REG[5] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
26815 /* ./parser//parser.nit:7969 */
26816 fra.me.REG[2] = fra.me.REG[5];
26817 /* ./parser//parser.nit:7970 */
26818 REGB0 = TAG_Bool(ATTR_parser___ReduceAction234____goto(fra.me.REG[0])!=NIT_NULL);
26819 if (UNTAG_Bool(REGB0)) {
26820 } else {
26821 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7970);
26822 }
26823 REGB0 = ATTR_parser___ReduceAction234____goto(fra.me.REG[0]);
26824 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26825 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26826 stack_frame_head = fra.me.prev;
26827 return;
26828 }
26829 void parser___ReduceAction234___init(val_t p0, val_t p1, int* init_table){
26830 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction234].i;
26831 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26832 val_t REGB0;
26833 val_t tmp;
26834 if (init_table[itpos228]) return;
26835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26836 fra.me.file = LOCATE_parser;
26837 fra.me.line = 7973;
26838 fra.me.meth = LOCATE_parser___ReduceAction234___init;
26839 fra.me.has_broke = 0;
26840 fra.me.REG_size = 2;
26841 fra.me.REG[0] = NIT_NULL;
26842 fra.me.REG[1] = NIT_NULL;
26843 fra.me.REG[0] = p0;
26844 REGB0 = p1;
26845 /* ./parser//parser.nit:7973 */
26846 fra.me.REG[1] = fra.me.REG[0];
26847 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26848 ATTR_parser___ReduceAction234____goto(fra.me.REG[1]) = REGB0;
26849 stack_frame_head = fra.me.prev;
26850 init_table[itpos228] = 1;
26851 return;
26852 }
26853 void parser___ReduceAction235___action(val_t p0, val_t p1){
26854 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
26855 val_t REGB0;
26856 val_t tmp;
26857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26858 fra.me.file = LOCATE_parser;
26859 fra.me.line = 7977;
26860 fra.me.meth = LOCATE_parser___ReduceAction235___action;
26861 fra.me.has_broke = 0;
26862 fra.me.REG_size = 7;
26863 fra.me.REG[0] = NIT_NULL;
26864 fra.me.REG[1] = NIT_NULL;
26865 fra.me.REG[2] = NIT_NULL;
26866 fra.me.REG[3] = NIT_NULL;
26867 fra.me.REG[4] = NIT_NULL;
26868 fra.me.REG[5] = NIT_NULL;
26869 fra.me.REG[6] = NIT_NULL;
26870 fra.me.REG[0] = p0;
26871 fra.me.REG[1] = p1;
26872 /* ./parser//parser.nit:7979 */
26873 fra.me.REG[2] = NIT_NULL;
26874 /* ./parser//parser.nit:7980 */
26875 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26876 /* ./parser//parser.nit:7981 */
26877 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26878 /* ./parser//parser.nit:7982 */
26879 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26880 /* ./parser//parser.nit:7983 */
26881 fra.me.REG[6] = NEW_Array_array___Array___init();
26882 /* ./parser//parser.nit:7985 */
26883 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AQualified, ID_AQualified)) /*cast nullable AQualified*/;
26884 if (UNTAG_Bool(REGB0)) {
26885 } else {
26886 nit_abort("Assert failed", NULL, LOCATE_parser, 7985);
26887 }
26888 /* ./parser//parser.nit:7987 */
26889 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwsuper, ID_TKwsuper)) /*cast nullable TKwsuper*/;
26890 if (UNTAG_Bool(REGB0)) {
26891 } else {
26892 nit_abort("Assert failed", NULL, LOCATE_parser, 7987);
26893 }
26894 /* ./parser//parser.nit:7989 */
26895 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26896 if (UNTAG_Bool(REGB0)) {
26897 } else {
26898 nit_abort("Assert failed", NULL, LOCATE_parser, 7989);
26899 }
26900 /* ./parser//parser.nit:7990 */
26901 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
26902 fra.me.REG[6] = fra.me.REG[3];
26903 /* ./parser//parser.nit:7991 */
26904 fra.me.REG[6] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
26905 /* ./parser//parser.nit:7996 */
26906 fra.me.REG[2] = fra.me.REG[6];
26907 /* ./parser//parser.nit:7997 */
26908 REGB0 = TAG_Bool(ATTR_parser___ReduceAction235____goto(fra.me.REG[0])!=NIT_NULL);
26909 if (UNTAG_Bool(REGB0)) {
26910 } else {
26911 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7997);
26912 }
26913 REGB0 = ATTR_parser___ReduceAction235____goto(fra.me.REG[0]);
26914 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26915 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26916 stack_frame_head = fra.me.prev;
26917 return;
26918 }
26919 void parser___ReduceAction235___init(val_t p0, val_t p1, int* init_table){
26920 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction235].i;
26921 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26922 val_t REGB0;
26923 val_t tmp;
26924 if (init_table[itpos229]) return;
26925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26926 fra.me.file = LOCATE_parser;
26927 fra.me.line = 8000;
26928 fra.me.meth = LOCATE_parser___ReduceAction235___init;
26929 fra.me.has_broke = 0;
26930 fra.me.REG_size = 2;
26931 fra.me.REG[0] = NIT_NULL;
26932 fra.me.REG[1] = NIT_NULL;
26933 fra.me.REG[0] = p0;
26934 REGB0 = p1;
26935 /* ./parser//parser.nit:8000 */
26936 fra.me.REG[1] = fra.me.REG[0];
26937 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26938 ATTR_parser___ReduceAction235____goto(fra.me.REG[1]) = REGB0;
26939 stack_frame_head = fra.me.prev;
26940 init_table[itpos229] = 1;
26941 return;
26942 }
26943 void parser___ReduceAction236___action(val_t p0, val_t p1){
26944 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
26945 val_t REGB0;
26946 val_t tmp;
26947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26948 fra.me.file = LOCATE_parser;
26949 fra.me.line = 8004;
26950 fra.me.meth = LOCATE_parser___ReduceAction236___action;
26951 fra.me.has_broke = 0;
26952 fra.me.REG_size = 7;
26953 fra.me.REG[0] = NIT_NULL;
26954 fra.me.REG[1] = NIT_NULL;
26955 fra.me.REG[2] = NIT_NULL;
26956 fra.me.REG[3] = NIT_NULL;
26957 fra.me.REG[4] = NIT_NULL;
26958 fra.me.REG[5] = NIT_NULL;
26959 fra.me.REG[6] = NIT_NULL;
26960 fra.me.REG[0] = p0;
26961 fra.me.REG[1] = p1;
26962 /* ./parser//parser.nit:8006 */
26963 fra.me.REG[2] = NIT_NULL;
26964 /* ./parser//parser.nit:8007 */
26965 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26966 /* ./parser//parser.nit:8008 */
26967 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26968 /* ./parser//parser.nit:8009 */
26969 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26970 /* ./parser//parser.nit:8010 */
26971 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26972 /* ./parser//parser.nit:8011 */
26973 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26974 /* ./parser//parser.nit:8012 */
26975 fra.me.REG[6] = NEW_Array_array___Array___init();
26976 /* ./parser//parser.nit:8014 */
26977 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26978 if (UNTAG_Bool(REGB0)) {
26979 } else {
26980 nit_abort("Assert failed", NULL, LOCATE_parser, 8014);
26981 }
26982 /* ./parser//parser.nit:8016 */
26983 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
26984 if (UNTAG_Bool(REGB0)) {
26985 } else {
26986 nit_abort("Assert failed", NULL, LOCATE_parser, 8016);
26987 }
26988 /* ./parser//parser.nit:8018 */
26989 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26990 if (UNTAG_Bool(REGB0)) {
26991 } else {
26992 nit_abort("Assert failed", NULL, LOCATE_parser, 8018);
26993 }
26994 /* ./parser//parser.nit:8019 */
26995 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
26996 fra.me.REG[6] = fra.me.REG[3];
26997 /* ./parser//parser.nit:8020 */
26998 fra.me.REG[6] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
26999 /* ./parser//parser.nit:8025 */
27000 fra.me.REG[2] = fra.me.REG[6];
27001 /* ./parser//parser.nit:8026 */
27002 REGB0 = TAG_Bool(ATTR_parser___ReduceAction236____goto(fra.me.REG[0])!=NIT_NULL);
27003 if (UNTAG_Bool(REGB0)) {
27004 } else {
27005 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8026);
27006 }
27007 REGB0 = ATTR_parser___ReduceAction236____goto(fra.me.REG[0]);
27008 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27009 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27010 stack_frame_head = fra.me.prev;
27011 return;
27012 }
27013 void parser___ReduceAction236___init(val_t p0, val_t p1, int* init_table){
27014 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction236].i;
27015 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27016 val_t REGB0;
27017 val_t tmp;
27018 if (init_table[itpos230]) return;
27019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27020 fra.me.file = LOCATE_parser;
27021 fra.me.line = 8029;
27022 fra.me.meth = LOCATE_parser___ReduceAction236___init;
27023 fra.me.has_broke = 0;
27024 fra.me.REG_size = 2;
27025 fra.me.REG[0] = NIT_NULL;
27026 fra.me.REG[1] = NIT_NULL;
27027 fra.me.REG[0] = p0;
27028 REGB0 = p1;
27029 /* ./parser//parser.nit:8029 */
27030 fra.me.REG[1] = fra.me.REG[0];
27031 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27032 ATTR_parser___ReduceAction236____goto(fra.me.REG[1]) = REGB0;
27033 stack_frame_head = fra.me.prev;
27034 init_table[itpos230] = 1;
27035 return;
27036 }
27037 void parser___ReduceAction237___action(val_t p0, val_t p1){
27038 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
27039 val_t REGB0;
27040 val_t tmp;
27041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27042 fra.me.file = LOCATE_parser;
27043 fra.me.line = 8033;
27044 fra.me.meth = LOCATE_parser___ReduceAction237___action;
27045 fra.me.has_broke = 0;
27046 fra.me.REG_size = 7;
27047 fra.me.REG[0] = NIT_NULL;
27048 fra.me.REG[1] = NIT_NULL;
27049 fra.me.REG[2] = NIT_NULL;
27050 fra.me.REG[3] = NIT_NULL;
27051 fra.me.REG[4] = NIT_NULL;
27052 fra.me.REG[5] = NIT_NULL;
27053 fra.me.REG[6] = NIT_NULL;
27054 fra.me.REG[0] = p0;
27055 fra.me.REG[1] = p1;
27056 /* ./parser//parser.nit:8035 */
27057 fra.me.REG[2] = NIT_NULL;
27058 /* ./parser//parser.nit:8036 */
27059 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27060 /* ./parser//parser.nit:8037 */
27061 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27062 /* ./parser//parser.nit:8038 */
27063 fra.me.REG[5] = NEW_Array_array___Array___init();
27064 /* ./parser//parser.nit:8039 */
27065 fra.me.REG[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
27066 /* ./parser//parser.nit:8042 */
27067 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
27068 if (UNTAG_Bool(REGB0)) {
27069 } else {
27070 nit_abort("Assert failed", NULL, LOCATE_parser, 8042);
27071 }
27072 /* ./parser//parser.nit:8044 */
27073 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27074 if (UNTAG_Bool(REGB0)) {
27075 } else {
27076 nit_abort("Assert failed", NULL, LOCATE_parser, 8044);
27077 }
27078 /* ./parser//parser.nit:8045 */
27079 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
27080 fra.me.REG[5] = fra.me.REG[3];
27081 /* ./parser//parser.nit:8046 */
27082 fra.me.REG[5] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[6], fra.me.REG[4], fra.me.REG[5]);
27083 /* ./parser//parser.nit:8051 */
27084 fra.me.REG[2] = fra.me.REG[5];
27085 /* ./parser//parser.nit:8052 */
27086 REGB0 = TAG_Bool(ATTR_parser___ReduceAction237____goto(fra.me.REG[0])!=NIT_NULL);
27087 if (UNTAG_Bool(REGB0)) {
27088 } else {
27089 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8052);
27090 }
27091 REGB0 = ATTR_parser___ReduceAction237____goto(fra.me.REG[0]);
27092 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27093 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27094 stack_frame_head = fra.me.prev;
27095 return;
27096 }
27097 void parser___ReduceAction237___init(val_t p0, val_t p1, int* init_table){
27098 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction237].i;
27099 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27100 val_t REGB0;
27101 val_t tmp;
27102 if (init_table[itpos231]) return;
27103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27104 fra.me.file = LOCATE_parser;
27105 fra.me.line = 8055;
27106 fra.me.meth = LOCATE_parser___ReduceAction237___init;
27107 fra.me.has_broke = 0;
27108 fra.me.REG_size = 2;
27109 fra.me.REG[0] = NIT_NULL;
27110 fra.me.REG[1] = NIT_NULL;
27111 fra.me.REG[0] = p0;
27112 REGB0 = p1;
27113 /* ./parser//parser.nit:8055 */
27114 fra.me.REG[1] = fra.me.REG[0];
27115 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27116 ATTR_parser___ReduceAction237____goto(fra.me.REG[1]) = REGB0;
27117 stack_frame_head = fra.me.prev;
27118 init_table[itpos231] = 1;
27119 return;
27120 }
27121 void parser___ReduceAction238___action(val_t p0, val_t p1){
27122 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27123 val_t REGB0;
27124 val_t tmp;
27125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27126 fra.me.file = LOCATE_parser;
27127 fra.me.line = 8059;
27128 fra.me.meth = LOCATE_parser___ReduceAction238___action;
27129 fra.me.has_broke = 0;
27130 fra.me.REG_size = 5;
27131 fra.me.REG[0] = NIT_NULL;
27132 fra.me.REG[1] = NIT_NULL;
27133 fra.me.REG[2] = NIT_NULL;
27134 fra.me.REG[3] = NIT_NULL;
27135 fra.me.REG[4] = NIT_NULL;
27136 fra.me.REG[0] = p0;
27137 fra.me.REG[1] = p1;
27138 /* ./parser//parser.nit:8061 */
27139 fra.me.REG[2] = NIT_NULL;
27140 /* ./parser//parser.nit:8062 */
27141 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27142 /* ./parser//parser.nit:8063 */
27143 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27144 /* ./parser//parser.nit:8065 */
27145 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwlabel, ID_TKwlabel)) /*cast nullable TKwlabel*/;
27146 if (UNTAG_Bool(REGB0)) {
27147 } else {
27148 nit_abort("Assert failed", NULL, LOCATE_parser, 8065);
27149 }
27150 /* ./parser//parser.nit:8067 */
27151 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
27152 if (UNTAG_Bool(REGB0)) {
27153 } else {
27154 nit_abort("Assert failed", NULL, LOCATE_parser, 8067);
27155 }
27156 /* ./parser//parser.nit:8068 */
27157 fra.me.REG[3] = NEW_ALabel_parser_prod___ALabel___init_alabel(fra.me.REG[4], fra.me.REG[3]);
27158 /* ./parser//parser.nit:8072 */
27159 fra.me.REG[2] = fra.me.REG[3];
27160 /* ./parser//parser.nit:8073 */
27161 REGB0 = TAG_Bool(ATTR_parser___ReduceAction238____goto(fra.me.REG[0])!=NIT_NULL);
27162 if (UNTAG_Bool(REGB0)) {
27163 } else {
27164 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8073);
27165 }
27166 REGB0 = ATTR_parser___ReduceAction238____goto(fra.me.REG[0]);
27167 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27168 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27169 stack_frame_head = fra.me.prev;
27170 return;
27171 }
27172 void parser___ReduceAction238___init(val_t p0, val_t p1, int* init_table){
27173 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction238].i;
27174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27175 val_t REGB0;
27176 val_t tmp;
27177 if (init_table[itpos232]) return;
27178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27179 fra.me.file = LOCATE_parser;
27180 fra.me.line = 8076;
27181 fra.me.meth = LOCATE_parser___ReduceAction238___init;
27182 fra.me.has_broke = 0;
27183 fra.me.REG_size = 2;
27184 fra.me.REG[0] = NIT_NULL;
27185 fra.me.REG[1] = NIT_NULL;
27186 fra.me.REG[0] = p0;
27187 REGB0 = p1;
27188 /* ./parser//parser.nit:8076 */
27189 fra.me.REG[1] = fra.me.REG[0];
27190 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27191 ATTR_parser___ReduceAction238____goto(fra.me.REG[1]) = REGB0;
27192 stack_frame_head = fra.me.prev;
27193 init_table[itpos232] = 1;
27194 return;
27195 }
27196 void parser___ReduceAction239___action(val_t p0, val_t p1){
27197 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27198 val_t REGB0;
27199 val_t REGB1;
27200 val_t tmp;
27201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27202 fra.me.file = LOCATE_parser;
27203 fra.me.line = 8080;
27204 fra.me.meth = LOCATE_parser___ReduceAction239___action;
27205 fra.me.has_broke = 0;
27206 fra.me.REG_size = 5;
27207 fra.me.REG[0] = NIT_NULL;
27208 fra.me.REG[1] = NIT_NULL;
27209 fra.me.REG[2] = NIT_NULL;
27210 fra.me.REG[3] = NIT_NULL;
27211 fra.me.REG[4] = NIT_NULL;
27212 fra.me.REG[0] = p0;
27213 fra.me.REG[1] = p1;
27214 /* ./parser//parser.nit:8082 */
27215 fra.me.REG[2] = NIT_NULL;
27216 /* ./parser//parser.nit:8083 */
27217 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27218 /* ./parser//parser.nit:8084 */
27219 fra.me.REG[4] = NEW_Array_array___Array___init();
27220 /* ./parser//parser.nit:8086 */
27221 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27222 if (UNTAG_Bool(REGB0)) {
27223 } else {
27224 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27225 if (UNTAG_Bool(REGB1)) {
27226 REGB1 = TAG_Bool(false);
27227 REGB0 = REGB1;
27228 } else {
27229 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
27230 REGB0 = REGB1;
27231 }
27232 }
27233 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27234 if (UNTAG_Bool(REGB0)) {
27235 /* ./parser//parser.nit:8087 */
27236 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
27237 }
27238 /* ./parser//parser.nit:8089 */
27239 fra.me.REG[2] = fra.me.REG[4];
27240 /* ./parser//parser.nit:8090 */
27241 REGB0 = TAG_Bool(ATTR_parser___ReduceAction239____goto(fra.me.REG[0])!=NIT_NULL);
27242 if (UNTAG_Bool(REGB0)) {
27243 } else {
27244 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8090);
27245 }
27246 REGB0 = ATTR_parser___ReduceAction239____goto(fra.me.REG[0]);
27247 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27248 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27249 stack_frame_head = fra.me.prev;
27250 return;
27251 }
27252 void parser___ReduceAction239___init(val_t p0, val_t p1, int* init_table){
27253 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction239].i;
27254 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27255 val_t REGB0;
27256 val_t tmp;
27257 if (init_table[itpos233]) return;
27258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27259 fra.me.file = LOCATE_parser;
27260 fra.me.line = 8093;
27261 fra.me.meth = LOCATE_parser___ReduceAction239___init;
27262 fra.me.has_broke = 0;
27263 fra.me.REG_size = 2;
27264 fra.me.REG[0] = NIT_NULL;
27265 fra.me.REG[1] = NIT_NULL;
27266 fra.me.REG[0] = p0;
27267 REGB0 = p1;
27268 /* ./parser//parser.nit:8093 */
27269 fra.me.REG[1] = fra.me.REG[0];
27270 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27271 ATTR_parser___ReduceAction239____goto(fra.me.REG[1]) = REGB0;
27272 stack_frame_head = fra.me.prev;
27273 init_table[itpos233] = 1;
27274 return;
27275 }
27276 void parser___ReduceAction240___action(val_t p0, val_t p1){
27277 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
27278 val_t REGB0;
27279 val_t REGB1;
27280 val_t tmp;
27281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27282 fra.me.file = LOCATE_parser;
27283 fra.me.line = 8097;
27284 fra.me.meth = LOCATE_parser___ReduceAction240___action;
27285 fra.me.has_broke = 0;
27286 fra.me.REG_size = 6;
27287 fra.me.REG[0] = NIT_NULL;
27288 fra.me.REG[1] = NIT_NULL;
27289 fra.me.REG[2] = NIT_NULL;
27290 fra.me.REG[3] = NIT_NULL;
27291 fra.me.REG[4] = NIT_NULL;
27292 fra.me.REG[5] = NIT_NULL;
27293 fra.me.REG[0] = p0;
27294 fra.me.REG[1] = p1;
27295 /* ./parser//parser.nit:8099 */
27296 fra.me.REG[2] = NIT_NULL;
27297 /* ./parser//parser.nit:8100 */
27298 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27299 /* ./parser//parser.nit:8101 */
27300 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27301 /* ./parser//parser.nit:8102 */
27302 fra.me.REG[5] = NEW_Array_array___Array___init();
27303 /* ./parser//parser.nit:8105 */
27304 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27305 if (UNTAG_Bool(REGB0)) {
27306 } else {
27307 nit_abort("Assert failed", NULL, LOCATE_parser, 8105);
27308 }
27309 /* ./parser//parser.nit:8106 */
27310 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27311 if (UNTAG_Bool(REGB0)) {
27312 } else {
27313 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27314 if (UNTAG_Bool(REGB1)) {
27315 REGB1 = TAG_Bool(false);
27316 REGB0 = REGB1;
27317 } else {
27318 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
27319 REGB0 = REGB1;
27320 }
27321 }
27322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27323 if (UNTAG_Bool(REGB0)) {
27324 /* ./parser//parser.nit:8107 */
27325 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
27326 }
27327 /* ./parser//parser.nit:8109 */
27328 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
27329 fra.me.REG[5] = fra.me.REG[3];
27330 /* ./parser//parser.nit:8110 */
27331 fra.me.REG[2] = fra.me.REG[5];
27332 /* ./parser//parser.nit:8111 */
27333 REGB0 = TAG_Bool(ATTR_parser___ReduceAction240____goto(fra.me.REG[0])!=NIT_NULL);
27334 if (UNTAG_Bool(REGB0)) {
27335 } else {
27336 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8111);
27337 }
27338 REGB0 = ATTR_parser___ReduceAction240____goto(fra.me.REG[0]);
27339 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27340 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27341 stack_frame_head = fra.me.prev;
27342 return;
27343 }
27344 void parser___ReduceAction240___init(val_t p0, val_t p1, int* init_table){
27345 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction240].i;
27346 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27347 val_t REGB0;
27348 val_t tmp;
27349 if (init_table[itpos234]) return;
27350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27351 fra.me.file = LOCATE_parser;
27352 fra.me.line = 8114;
27353 fra.me.meth = LOCATE_parser___ReduceAction240___init;
27354 fra.me.has_broke = 0;
27355 fra.me.REG_size = 2;
27356 fra.me.REG[0] = NIT_NULL;
27357 fra.me.REG[1] = NIT_NULL;
27358 fra.me.REG[0] = p0;
27359 REGB0 = p1;
27360 /* ./parser//parser.nit:8114 */
27361 fra.me.REG[1] = fra.me.REG[0];
27362 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27363 ATTR_parser___ReduceAction240____goto(fra.me.REG[1]) = REGB0;
27364 stack_frame_head = fra.me.prev;
27365 init_table[itpos234] = 1;
27366 return;
27367 }
27368 void parser___ReduceAction241___action(val_t p0, val_t p1){
27369 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
27370 val_t REGB0;
27371 val_t tmp;
27372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27373 fra.me.file = LOCATE_parser;
27374 fra.me.line = 8118;
27375 fra.me.meth = LOCATE_parser___ReduceAction241___action;
27376 fra.me.has_broke = 0;
27377 fra.me.REG_size = 9;
27378 fra.me.REG[0] = NIT_NULL;
27379 fra.me.REG[1] = NIT_NULL;
27380 fra.me.REG[2] = NIT_NULL;
27381 fra.me.REG[3] = NIT_NULL;
27382 fra.me.REG[4] = NIT_NULL;
27383 fra.me.REG[5] = NIT_NULL;
27384 fra.me.REG[6] = NIT_NULL;
27385 fra.me.REG[7] = NIT_NULL;
27386 fra.me.REG[8] = NIT_NULL;
27387 fra.me.REG[0] = p0;
27388 fra.me.REG[1] = p1;
27389 /* ./parser//parser.nit:8120 */
27390 fra.me.REG[2] = NIT_NULL;
27391 /* ./parser//parser.nit:8121 */
27392 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27393 /* ./parser//parser.nit:8122 */
27394 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27395 /* ./parser//parser.nit:8123 */
27396 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27397 /* ./parser//parser.nit:8124 */
27398 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27399 /* ./parser//parser.nit:8125 */
27400 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27401 /* ./parser//parser.nit:8126 */
27402 fra.me.REG[8] = NEW_Array_array___Array___init();
27403 /* ./parser//parser.nit:8128 */
27404 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27405 if (UNTAG_Bool(REGB0)) {
27406 } else {
27407 nit_abort("Assert failed", NULL, LOCATE_parser, 8128);
27408 }
27409 /* ./parser//parser.nit:8130 */
27410 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27411 if (UNTAG_Bool(REGB0)) {
27412 } else {
27413 nit_abort("Assert failed", NULL, LOCATE_parser, 8130);
27414 }
27415 /* ./parser//parser.nit:8132 */
27416 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27417 if (UNTAG_Bool(REGB0)) {
27418 } else {
27419 nit_abort("Assert failed", NULL, LOCATE_parser, 8132);
27420 }
27421 /* ./parser//parser.nit:8134 */
27422 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27423 if (UNTAG_Bool(REGB0)) {
27424 } else {
27425 nit_abort("Assert failed", NULL, LOCATE_parser, 8134);
27426 }
27427 /* ./parser//parser.nit:8136 */
27428 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
27429 if (UNTAG_Bool(REGB0)) {
27430 } else {
27431 nit_abort("Assert failed", NULL, LOCATE_parser, 8136);
27432 }
27433 /* ./parser//parser.nit:8137 */
27434 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
27435 /* ./parser//parser.nit:8145 */
27436 fra.me.REG[2] = fra.me.REG[3];
27437 /* ./parser//parser.nit:8146 */
27438 REGB0 = TAG_Bool(ATTR_parser___ReduceAction241____goto(fra.me.REG[0])!=NIT_NULL);
27439 if (UNTAG_Bool(REGB0)) {
27440 } else {
27441 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8146);
27442 }
27443 REGB0 = ATTR_parser___ReduceAction241____goto(fra.me.REG[0]);
27444 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27445 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27446 stack_frame_head = fra.me.prev;
27447 return;
27448 }
27449 void parser___ReduceAction241___init(val_t p0, val_t p1, int* init_table){
27450 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction241].i;
27451 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27452 val_t REGB0;
27453 val_t tmp;
27454 if (init_table[itpos235]) return;
27455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27456 fra.me.file = LOCATE_parser;
27457 fra.me.line = 8149;
27458 fra.me.meth = LOCATE_parser___ReduceAction241___init;
27459 fra.me.has_broke = 0;
27460 fra.me.REG_size = 2;
27461 fra.me.REG[0] = NIT_NULL;
27462 fra.me.REG[1] = NIT_NULL;
27463 fra.me.REG[0] = p0;
27464 REGB0 = p1;
27465 /* ./parser//parser.nit:8149 */
27466 fra.me.REG[1] = fra.me.REG[0];
27467 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27468 ATTR_parser___ReduceAction241____goto(fra.me.REG[1]) = REGB0;
27469 stack_frame_head = fra.me.prev;
27470 init_table[itpos235] = 1;
27471 return;
27472 }
27473 void parser___ReduceAction242___action(val_t p0, val_t p1){
27474 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
27475 val_t REGB0;
27476 val_t tmp;
27477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27478 fra.me.file = LOCATE_parser;
27479 fra.me.line = 8153;
27480 fra.me.meth = LOCATE_parser___ReduceAction242___action;
27481 fra.me.has_broke = 0;
27482 fra.me.REG_size = 10;
27483 fra.me.REG[0] = NIT_NULL;
27484 fra.me.REG[1] = NIT_NULL;
27485 fra.me.REG[2] = NIT_NULL;
27486 fra.me.REG[3] = NIT_NULL;
27487 fra.me.REG[4] = NIT_NULL;
27488 fra.me.REG[5] = NIT_NULL;
27489 fra.me.REG[6] = NIT_NULL;
27490 fra.me.REG[7] = NIT_NULL;
27491 fra.me.REG[8] = NIT_NULL;
27492 fra.me.REG[9] = NIT_NULL;
27493 fra.me.REG[0] = p0;
27494 fra.me.REG[1] = p1;
27495 /* ./parser//parser.nit:8155 */
27496 fra.me.REG[2] = NIT_NULL;
27497 /* ./parser//parser.nit:8156 */
27498 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27499 /* ./parser//parser.nit:8157 */
27500 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27501 /* ./parser//parser.nit:8158 */
27502 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27503 /* ./parser//parser.nit:8159 */
27504 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27505 /* ./parser//parser.nit:8160 */
27506 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27507 /* ./parser//parser.nit:8161 */
27508 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27509 /* ./parser//parser.nit:8162 */
27510 fra.me.REG[9] = NEW_Array_array___Array___init();
27511 /* ./parser//parser.nit:8164 */
27512 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27513 if (UNTAG_Bool(REGB0)) {
27514 } else {
27515 nit_abort("Assert failed", NULL, LOCATE_parser, 8164);
27516 }
27517 /* ./parser//parser.nit:8166 */
27518 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27519 if (UNTAG_Bool(REGB0)) {
27520 } else {
27521 nit_abort("Assert failed", NULL, LOCATE_parser, 8166);
27522 }
27523 /* ./parser//parser.nit:8168 */
27524 REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27525 if (UNTAG_Bool(REGB0)) {
27526 } else {
27527 nit_abort("Assert failed", NULL, LOCATE_parser, 8168);
27528 }
27529 /* ./parser//parser.nit:8169 */
27530 fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[6]);
27531 fra.me.REG[9] = fra.me.REG[6];
27532 /* ./parser//parser.nit:8171 */
27533 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27534 if (UNTAG_Bool(REGB0)) {
27535 } else {
27536 nit_abort("Assert failed", NULL, LOCATE_parser, 8171);
27537 }
27538 /* ./parser//parser.nit:8173 */
27539 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27540 if (UNTAG_Bool(REGB0)) {
27541 } else {
27542 nit_abort("Assert failed", NULL, LOCATE_parser, 8173);
27543 }
27544 /* ./parser//parser.nit:8175 */
27545 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
27546 if (UNTAG_Bool(REGB0)) {
27547 } else {
27548 nit_abort("Assert failed", NULL, LOCATE_parser, 8175);
27549 }
27550 /* ./parser//parser.nit:8176 */
27551 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[9], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
27552 /* ./parser//parser.nit:8184 */
27553 fra.me.REG[2] = fra.me.REG[3];
27554 /* ./parser//parser.nit:8185 */
27555 REGB0 = TAG_Bool(ATTR_parser___ReduceAction242____goto(fra.me.REG[0])!=NIT_NULL);
27556 if (UNTAG_Bool(REGB0)) {
27557 } else {
27558 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8185);
27559 }
27560 REGB0 = ATTR_parser___ReduceAction242____goto(fra.me.REG[0]);
27561 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27562 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27563 stack_frame_head = fra.me.prev;
27564 return;
27565 }
27566 void parser___ReduceAction242___init(val_t p0, val_t p1, int* init_table){
27567 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction242].i;
27568 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27569 val_t REGB0;
27570 val_t tmp;
27571 if (init_table[itpos236]) return;
27572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27573 fra.me.file = LOCATE_parser;
27574 fra.me.line = 8188;
27575 fra.me.meth = LOCATE_parser___ReduceAction242___init;
27576 fra.me.has_broke = 0;
27577 fra.me.REG_size = 2;
27578 fra.me.REG[0] = NIT_NULL;
27579 fra.me.REG[1] = NIT_NULL;
27580 fra.me.REG[0] = p0;
27581 REGB0 = p1;
27582 /* ./parser//parser.nit:8188 */
27583 fra.me.REG[1] = fra.me.REG[0];
27584 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27585 ATTR_parser___ReduceAction242____goto(fra.me.REG[1]) = REGB0;
27586 stack_frame_head = fra.me.prev;
27587 init_table[itpos236] = 1;
27588 return;
27589 }
27590 void parser___ReduceAction243___action(val_t p0, val_t p1){
27591 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
27592 val_t REGB0;
27593 val_t tmp;
27594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27595 fra.me.file = LOCATE_parser;
27596 fra.me.line = 8192;
27597 fra.me.meth = LOCATE_parser___ReduceAction243___action;
27598 fra.me.has_broke = 0;
27599 fra.me.REG_size = 8;
27600 fra.me.REG[0] = NIT_NULL;
27601 fra.me.REG[1] = NIT_NULL;
27602 fra.me.REG[2] = NIT_NULL;
27603 fra.me.REG[3] = NIT_NULL;
27604 fra.me.REG[4] = NIT_NULL;
27605 fra.me.REG[5] = NIT_NULL;
27606 fra.me.REG[6] = NIT_NULL;
27607 fra.me.REG[7] = NIT_NULL;
27608 fra.me.REG[0] = p0;
27609 fra.me.REG[1] = p1;
27610 /* ./parser//parser.nit:8194 */
27611 fra.me.REG[2] = NIT_NULL;
27612 /* ./parser//parser.nit:8195 */
27613 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27614 /* ./parser//parser.nit:8196 */
27615 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27616 /* ./parser//parser.nit:8197 */
27617 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27618 /* ./parser//parser.nit:8198 */
27619 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27620 /* ./parser//parser.nit:8199 */
27621 fra.me.REG[7] = NEW_Array_array___Array___init();
27622 /* ./parser//parser.nit:8201 */
27623 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27624 if (UNTAG_Bool(REGB0)) {
27625 } else {
27626 nit_abort("Assert failed", NULL, LOCATE_parser, 8201);
27627 }
27628 /* ./parser//parser.nit:8203 */
27629 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27630 if (UNTAG_Bool(REGB0)) {
27631 } else {
27632 nit_abort("Assert failed", NULL, LOCATE_parser, 8203);
27633 }
27634 /* ./parser//parser.nit:8205 */
27635 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27636 if (UNTAG_Bool(REGB0)) {
27637 } else {
27638 nit_abort("Assert failed", NULL, LOCATE_parser, 8205);
27639 }
27640 /* ./parser//parser.nit:8207 */
27641 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27642 if (UNTAG_Bool(REGB0)) {
27643 } else {
27644 nit_abort("Assert failed", NULL, LOCATE_parser, 8207);
27645 }
27646 /* ./parser//parser.nit:8208 */
27647 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
27648 /* ./parser//parser.nit:8216 */
27649 fra.me.REG[2] = fra.me.REG[3];
27650 /* ./parser//parser.nit:8217 */
27651 REGB0 = TAG_Bool(ATTR_parser___ReduceAction243____goto(fra.me.REG[0])!=NIT_NULL);
27652 if (UNTAG_Bool(REGB0)) {
27653 } else {
27654 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8217);
27655 }
27656 REGB0 = ATTR_parser___ReduceAction243____goto(fra.me.REG[0]);
27657 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27658 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27659 stack_frame_head = fra.me.prev;
27660 return;
27661 }
27662 void parser___ReduceAction243___init(val_t p0, val_t p1, int* init_table){
27663 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction243].i;
27664 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27665 val_t REGB0;
27666 val_t tmp;
27667 if (init_table[itpos237]) return;
27668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27669 fra.me.file = LOCATE_parser;
27670 fra.me.line = 8220;
27671 fra.me.meth = LOCATE_parser___ReduceAction243___init;
27672 fra.me.has_broke = 0;
27673 fra.me.REG_size = 2;
27674 fra.me.REG[0] = NIT_NULL;
27675 fra.me.REG[1] = NIT_NULL;
27676 fra.me.REG[0] = p0;
27677 REGB0 = p1;
27678 /* ./parser//parser.nit:8220 */
27679 fra.me.REG[1] = fra.me.REG[0];
27680 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27681 ATTR_parser___ReduceAction243____goto(fra.me.REG[1]) = REGB0;
27682 stack_frame_head = fra.me.prev;
27683 init_table[itpos237] = 1;
27684 return;
27685 }
27686 void parser___ReduceAction244___action(val_t p0, val_t p1){
27687 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
27688 val_t REGB0;
27689 val_t tmp;
27690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27691 fra.me.file = LOCATE_parser;
27692 fra.me.line = 8224;
27693 fra.me.meth = LOCATE_parser___ReduceAction244___action;
27694 fra.me.has_broke = 0;
27695 fra.me.REG_size = 9;
27696 fra.me.REG[0] = NIT_NULL;
27697 fra.me.REG[1] = NIT_NULL;
27698 fra.me.REG[2] = NIT_NULL;
27699 fra.me.REG[3] = NIT_NULL;
27700 fra.me.REG[4] = NIT_NULL;
27701 fra.me.REG[5] = NIT_NULL;
27702 fra.me.REG[6] = NIT_NULL;
27703 fra.me.REG[7] = NIT_NULL;
27704 fra.me.REG[8] = NIT_NULL;
27705 fra.me.REG[0] = p0;
27706 fra.me.REG[1] = p1;
27707 /* ./parser//parser.nit:8226 */
27708 fra.me.REG[2] = NIT_NULL;
27709 /* ./parser//parser.nit:8227 */
27710 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27711 /* ./parser//parser.nit:8228 */
27712 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27713 /* ./parser//parser.nit:8229 */
27714 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27715 /* ./parser//parser.nit:8230 */
27716 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27717 /* ./parser//parser.nit:8231 */
27718 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27719 /* ./parser//parser.nit:8232 */
27720 fra.me.REG[8] = NEW_Array_array___Array___init();
27721 /* ./parser//parser.nit:8234 */
27722 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27723 if (UNTAG_Bool(REGB0)) {
27724 } else {
27725 nit_abort("Assert failed", NULL, LOCATE_parser, 8234);
27726 }
27727 /* ./parser//parser.nit:8236 */
27728 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27729 if (UNTAG_Bool(REGB0)) {
27730 } else {
27731 nit_abort("Assert failed", NULL, LOCATE_parser, 8236);
27732 }
27733 /* ./parser//parser.nit:8238 */
27734 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27735 if (UNTAG_Bool(REGB0)) {
27736 } else {
27737 nit_abort("Assert failed", NULL, LOCATE_parser, 8238);
27738 }
27739 /* ./parser//parser.nit:8239 */
27740 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
27741 fra.me.REG[8] = fra.me.REG[5];
27742 /* ./parser//parser.nit:8241 */
27743 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27744 if (UNTAG_Bool(REGB0)) {
27745 } else {
27746 nit_abort("Assert failed", NULL, LOCATE_parser, 8241);
27747 }
27748 /* ./parser//parser.nit:8243 */
27749 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27750 if (UNTAG_Bool(REGB0)) {
27751 } else {
27752 nit_abort("Assert failed", NULL, LOCATE_parser, 8243);
27753 }
27754 /* ./parser//parser.nit:8244 */
27755 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
27756 /* ./parser//parser.nit:8252 */
27757 fra.me.REG[2] = fra.me.REG[3];
27758 /* ./parser//parser.nit:8253 */
27759 REGB0 = TAG_Bool(ATTR_parser___ReduceAction244____goto(fra.me.REG[0])!=NIT_NULL);
27760 if (UNTAG_Bool(REGB0)) {
27761 } else {
27762 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8253);
27763 }
27764 REGB0 = ATTR_parser___ReduceAction244____goto(fra.me.REG[0]);
27765 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27766 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27767 stack_frame_head = fra.me.prev;
27768 return;
27769 }
27770 void parser___ReduceAction244___init(val_t p0, val_t p1, int* init_table){
27771 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction244].i;
27772 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27773 val_t REGB0;
27774 val_t tmp;
27775 if (init_table[itpos238]) return;
27776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27777 fra.me.file = LOCATE_parser;
27778 fra.me.line = 8256;
27779 fra.me.meth = LOCATE_parser___ReduceAction244___init;
27780 fra.me.has_broke = 0;
27781 fra.me.REG_size = 2;
27782 fra.me.REG[0] = NIT_NULL;
27783 fra.me.REG[1] = NIT_NULL;
27784 fra.me.REG[0] = p0;
27785 REGB0 = p1;
27786 /* ./parser//parser.nit:8256 */
27787 fra.me.REG[1] = fra.me.REG[0];
27788 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27789 ATTR_parser___ReduceAction244____goto(fra.me.REG[1]) = REGB0;
27790 stack_frame_head = fra.me.prev;
27791 init_table[itpos238] = 1;
27792 return;
27793 }
27794 void parser___ReduceAction245___action(val_t p0, val_t p1){
27795 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
27796 val_t REGB0;
27797 val_t tmp;
27798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27799 fra.me.file = LOCATE_parser;
27800 fra.me.line = 8260;
27801 fra.me.meth = LOCATE_parser___ReduceAction245___action;
27802 fra.me.has_broke = 0;
27803 fra.me.REG_size = 7;
27804 fra.me.REG[0] = NIT_NULL;
27805 fra.me.REG[1] = NIT_NULL;
27806 fra.me.REG[2] = NIT_NULL;
27807 fra.me.REG[3] = NIT_NULL;
27808 fra.me.REG[4] = NIT_NULL;
27809 fra.me.REG[5] = NIT_NULL;
27810 fra.me.REG[6] = NIT_NULL;
27811 fra.me.REG[0] = p0;
27812 fra.me.REG[1] = p1;
27813 /* ./parser//parser.nit:8262 */
27814 fra.me.REG[2] = NIT_NULL;
27815 /* ./parser//parser.nit:8263 */
27816 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27817 /* ./parser//parser.nit:8264 */
27818 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27819 /* ./parser//parser.nit:8265 */
27820 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27821 /* ./parser//parser.nit:8266 */
27822 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27823 /* ./parser//parser.nit:8267 */
27824 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27825 /* ./parser//parser.nit:8268 */
27826 fra.me.REG[6] = NEW_Array_array___Array___init();
27827 /* ./parser//parser.nit:8270 */
27828 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27829 if (UNTAG_Bool(REGB0)) {
27830 } else {
27831 nit_abort("Assert failed", NULL, LOCATE_parser, 8270);
27832 }
27833 /* ./parser//parser.nit:8272 */
27834 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27835 if (UNTAG_Bool(REGB0)) {
27836 } else {
27837 nit_abort("Assert failed", NULL, LOCATE_parser, 8272);
27838 }
27839 /* ./parser//parser.nit:8274 */
27840 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27841 if (UNTAG_Bool(REGB0)) {
27842 } else {
27843 nit_abort("Assert failed", NULL, LOCATE_parser, 8274);
27844 }
27845 /* ./parser//parser.nit:8275 */
27846 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], NIT_NULL, fra.me.REG[3], NIT_NULL);
27847 /* ./parser//parser.nit:8283 */
27848 fra.me.REG[2] = fra.me.REG[3];
27849 /* ./parser//parser.nit:8284 */
27850 REGB0 = TAG_Bool(ATTR_parser___ReduceAction245____goto(fra.me.REG[0])!=NIT_NULL);
27851 if (UNTAG_Bool(REGB0)) {
27852 } else {
27853 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8284);
27854 }
27855 REGB0 = ATTR_parser___ReduceAction245____goto(fra.me.REG[0]);
27856 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27857 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27858 stack_frame_head = fra.me.prev;
27859 return;
27860 }
27861 void parser___ReduceAction245___init(val_t p0, val_t p1, int* init_table){
27862 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction245].i;
27863 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27864 val_t REGB0;
27865 val_t tmp;
27866 if (init_table[itpos239]) return;
27867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27868 fra.me.file = LOCATE_parser;
27869 fra.me.line = 8287;
27870 fra.me.meth = LOCATE_parser___ReduceAction245___init;
27871 fra.me.has_broke = 0;
27872 fra.me.REG_size = 2;
27873 fra.me.REG[0] = NIT_NULL;
27874 fra.me.REG[1] = NIT_NULL;
27875 fra.me.REG[0] = p0;
27876 REGB0 = p1;
27877 /* ./parser//parser.nit:8287 */
27878 fra.me.REG[1] = fra.me.REG[0];
27879 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27880 ATTR_parser___ReduceAction245____goto(fra.me.REG[1]) = REGB0;
27881 stack_frame_head = fra.me.prev;
27882 init_table[itpos239] = 1;
27883 return;
27884 }
27885 void parser___ReduceAction246___action(val_t p0, val_t p1){
27886 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
27887 val_t REGB0;
27888 val_t tmp;
27889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27890 fra.me.file = LOCATE_parser;
27891 fra.me.line = 8291;
27892 fra.me.meth = LOCATE_parser___ReduceAction246___action;
27893 fra.me.has_broke = 0;
27894 fra.me.REG_size = 8;
27895 fra.me.REG[0] = NIT_NULL;
27896 fra.me.REG[1] = NIT_NULL;
27897 fra.me.REG[2] = NIT_NULL;
27898 fra.me.REG[3] = NIT_NULL;
27899 fra.me.REG[4] = NIT_NULL;
27900 fra.me.REG[5] = NIT_NULL;
27901 fra.me.REG[6] = NIT_NULL;
27902 fra.me.REG[7] = NIT_NULL;
27903 fra.me.REG[0] = p0;
27904 fra.me.REG[1] = p1;
27905 /* ./parser//parser.nit:8293 */
27906 fra.me.REG[2] = NIT_NULL;
27907 /* ./parser//parser.nit:8294 */
27908 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27909 /* ./parser//parser.nit:8295 */
27910 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27911 /* ./parser//parser.nit:8296 */
27912 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27913 /* ./parser//parser.nit:8297 */
27914 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27915 /* ./parser//parser.nit:8298 */
27916 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27917 /* ./parser//parser.nit:8299 */
27918 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27919 /* ./parser//parser.nit:8300 */
27920 fra.me.REG[7] = NEW_Array_array___Array___init();
27921 /* ./parser//parser.nit:8302 */
27922 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27923 if (UNTAG_Bool(REGB0)) {
27924 } else {
27925 nit_abort("Assert failed", NULL, LOCATE_parser, 8302);
27926 }
27927 /* ./parser//parser.nit:8304 */
27928 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27929 if (UNTAG_Bool(REGB0)) {
27930 } else {
27931 nit_abort("Assert failed", NULL, LOCATE_parser, 8304);
27932 }
27933 /* ./parser//parser.nit:8306 */
27934 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27935 if (UNTAG_Bool(REGB0)) {
27936 } else {
27937 nit_abort("Assert failed", NULL, LOCATE_parser, 8306);
27938 }
27939 /* ./parser//parser.nit:8307 */
27940 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
27941 fra.me.REG[7] = fra.me.REG[4];
27942 /* ./parser//parser.nit:8309 */
27943 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27944 if (UNTAG_Bool(REGB0)) {
27945 } else {
27946 nit_abort("Assert failed", NULL, LOCATE_parser, 8309);
27947 }
27948 /* ./parser//parser.nit:8310 */
27949 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], NIT_NULL, fra.me.REG[3], NIT_NULL);
27950 /* ./parser//parser.nit:8318 */
27951 fra.me.REG[2] = fra.me.REG[3];
27952 /* ./parser//parser.nit:8319 */
27953 REGB0 = TAG_Bool(ATTR_parser___ReduceAction246____goto(fra.me.REG[0])!=NIT_NULL);
27954 if (UNTAG_Bool(REGB0)) {
27955 } else {
27956 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8319);
27957 }
27958 REGB0 = ATTR_parser___ReduceAction246____goto(fra.me.REG[0]);
27959 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27960 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27961 stack_frame_head = fra.me.prev;
27962 return;
27963 }
27964 void parser___ReduceAction246___init(val_t p0, val_t p1, int* init_table){
27965 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction246].i;
27966 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27967 val_t REGB0;
27968 val_t tmp;
27969 if (init_table[itpos240]) return;
27970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27971 fra.me.file = LOCATE_parser;
27972 fra.me.line = 8322;
27973 fra.me.meth = LOCATE_parser___ReduceAction246___init;
27974 fra.me.has_broke = 0;
27975 fra.me.REG_size = 2;
27976 fra.me.REG[0] = NIT_NULL;
27977 fra.me.REG[1] = NIT_NULL;
27978 fra.me.REG[0] = p0;
27979 REGB0 = p1;
27980 /* ./parser//parser.nit:8322 */
27981 fra.me.REG[1] = fra.me.REG[0];
27982 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27983 ATTR_parser___ReduceAction246____goto(fra.me.REG[1]) = REGB0;
27984 stack_frame_head = fra.me.prev;
27985 init_table[itpos240] = 1;
27986 return;
27987 }
27988 void parser___ReduceAction247___action(val_t p0, val_t p1){
27989 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
27990 val_t REGB0;
27991 val_t tmp;
27992 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27993 fra.me.file = LOCATE_parser;
27994 fra.me.line = 8326;
27995 fra.me.meth = LOCATE_parser___ReduceAction247___action;
27996 fra.me.has_broke = 0;
27997 fra.me.REG_size = 8;
27998 fra.me.REG[0] = NIT_NULL;
27999 fra.me.REG[1] = NIT_NULL;
28000 fra.me.REG[2] = NIT_NULL;
28001 fra.me.REG[3] = NIT_NULL;
28002 fra.me.REG[4] = NIT_NULL;
28003 fra.me.REG[5] = NIT_NULL;
28004 fra.me.REG[6] = NIT_NULL;
28005 fra.me.REG[7] = NIT_NULL;
28006 fra.me.REG[0] = p0;
28007 fra.me.REG[1] = p1;
28008 /* ./parser//parser.nit:8328 */
28009 fra.me.REG[2] = NIT_NULL;
28010 /* ./parser//parser.nit:8329 */
28011 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28012 /* ./parser//parser.nit:8330 */
28013 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28014 /* ./parser//parser.nit:8331 */
28015 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28016 /* ./parser//parser.nit:8332 */
28017 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28018 /* ./parser//parser.nit:8333 */
28019 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28020 /* ./parser//parser.nit:8334 */
28021 fra.me.REG[7] = NEW_Array_array___Array___init();
28022 /* ./parser//parser.nit:8336 */
28023 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28024 if (UNTAG_Bool(REGB0)) {
28025 } else {
28026 nit_abort("Assert failed", NULL, LOCATE_parser, 8336);
28027 }
28028 /* ./parser//parser.nit:8338 */
28029 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28030 if (UNTAG_Bool(REGB0)) {
28031 } else {
28032 nit_abort("Assert failed", NULL, LOCATE_parser, 8338);
28033 }
28034 /* ./parser//parser.nit:8340 */
28035 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28036 if (UNTAG_Bool(REGB0)) {
28037 } else {
28038 nit_abort("Assert failed", NULL, LOCATE_parser, 8340);
28039 }
28040 /* ./parser//parser.nit:8342 */
28041 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28042 if (UNTAG_Bool(REGB0)) {
28043 } else {
28044 nit_abort("Assert failed", NULL, LOCATE_parser, 8342);
28045 }
28046 /* ./parser//parser.nit:8343 */
28047 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
28048 /* ./parser//parser.nit:8351 */
28049 fra.me.REG[2] = fra.me.REG[3];
28050 /* ./parser//parser.nit:8352 */
28051 REGB0 = TAG_Bool(ATTR_parser___ReduceAction247____goto(fra.me.REG[0])!=NIT_NULL);
28052 if (UNTAG_Bool(REGB0)) {
28053 } else {
28054 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8352);
28055 }
28056 REGB0 = ATTR_parser___ReduceAction247____goto(fra.me.REG[0]);
28057 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28058 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28059 stack_frame_head = fra.me.prev;
28060 return;
28061 }
28062 void parser___ReduceAction247___init(val_t p0, val_t p1, int* init_table){
28063 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction247].i;
28064 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28065 val_t REGB0;
28066 val_t tmp;
28067 if (init_table[itpos241]) return;
28068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28069 fra.me.file = LOCATE_parser;
28070 fra.me.line = 8355;
28071 fra.me.meth = LOCATE_parser___ReduceAction247___init;
28072 fra.me.has_broke = 0;
28073 fra.me.REG_size = 2;
28074 fra.me.REG[0] = NIT_NULL;
28075 fra.me.REG[1] = NIT_NULL;
28076 fra.me.REG[0] = p0;
28077 REGB0 = p1;
28078 /* ./parser//parser.nit:8355 */
28079 fra.me.REG[1] = fra.me.REG[0];
28080 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28081 ATTR_parser___ReduceAction247____goto(fra.me.REG[1]) = REGB0;
28082 stack_frame_head = fra.me.prev;
28083 init_table[itpos241] = 1;
28084 return;
28085 }
28086 void parser___ReduceAction248___action(val_t p0, val_t p1){
28087 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
28088 val_t REGB0;
28089 val_t tmp;
28090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28091 fra.me.file = LOCATE_parser;
28092 fra.me.line = 8359;
28093 fra.me.meth = LOCATE_parser___ReduceAction248___action;
28094 fra.me.has_broke = 0;
28095 fra.me.REG_size = 9;
28096 fra.me.REG[0] = NIT_NULL;
28097 fra.me.REG[1] = NIT_NULL;
28098 fra.me.REG[2] = NIT_NULL;
28099 fra.me.REG[3] = NIT_NULL;
28100 fra.me.REG[4] = NIT_NULL;
28101 fra.me.REG[5] = NIT_NULL;
28102 fra.me.REG[6] = NIT_NULL;
28103 fra.me.REG[7] = NIT_NULL;
28104 fra.me.REG[8] = NIT_NULL;
28105 fra.me.REG[0] = p0;
28106 fra.me.REG[1] = p1;
28107 /* ./parser//parser.nit:8361 */
28108 fra.me.REG[2] = NIT_NULL;
28109 /* ./parser//parser.nit:8362 */
28110 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28111 /* ./parser//parser.nit:8363 */
28112 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28113 /* ./parser//parser.nit:8364 */
28114 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28115 /* ./parser//parser.nit:8365 */
28116 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28117 /* ./parser//parser.nit:8366 */
28118 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28119 /* ./parser//parser.nit:8367 */
28120 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28121 /* ./parser//parser.nit:8368 */
28122 fra.me.REG[8] = NEW_Array_array___Array___init();
28123 /* ./parser//parser.nit:8370 */
28124 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28125 if (UNTAG_Bool(REGB0)) {
28126 } else {
28127 nit_abort("Assert failed", NULL, LOCATE_parser, 8370);
28128 }
28129 /* ./parser//parser.nit:8372 */
28130 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28131 if (UNTAG_Bool(REGB0)) {
28132 } else {
28133 nit_abort("Assert failed", NULL, LOCATE_parser, 8372);
28134 }
28135 /* ./parser//parser.nit:8374 */
28136 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
28137 if (UNTAG_Bool(REGB0)) {
28138 } else {
28139 nit_abort("Assert failed", NULL, LOCATE_parser, 8374);
28140 }
28141 /* ./parser//parser.nit:8375 */
28142 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
28143 fra.me.REG[8] = fra.me.REG[5];
28144 /* ./parser//parser.nit:8377 */
28145 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28146 if (UNTAG_Bool(REGB0)) {
28147 } else {
28148 nit_abort("Assert failed", NULL, LOCATE_parser, 8377);
28149 }
28150 /* ./parser//parser.nit:8379 */
28151 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28152 if (UNTAG_Bool(REGB0)) {
28153 } else {
28154 nit_abort("Assert failed", NULL, LOCATE_parser, 8379);
28155 }
28156 /* ./parser//parser.nit:8380 */
28157 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
28158 /* ./parser//parser.nit:8388 */
28159 fra.me.REG[2] = fra.me.REG[3];
28160 /* ./parser//parser.nit:8389 */
28161 REGB0 = TAG_Bool(ATTR_parser___ReduceAction248____goto(fra.me.REG[0])!=NIT_NULL);
28162 if (UNTAG_Bool(REGB0)) {
28163 } else {
28164 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8389);
28165 }
28166 REGB0 = ATTR_parser___ReduceAction248____goto(fra.me.REG[0]);
28167 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28168 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28169 stack_frame_head = fra.me.prev;
28170 return;
28171 }
28172 void parser___ReduceAction248___init(val_t p0, val_t p1, int* init_table){
28173 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction248].i;
28174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28175 val_t REGB0;
28176 val_t tmp;
28177 if (init_table[itpos242]) return;
28178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28179 fra.me.file = LOCATE_parser;
28180 fra.me.line = 8392;
28181 fra.me.meth = LOCATE_parser___ReduceAction248___init;
28182 fra.me.has_broke = 0;
28183 fra.me.REG_size = 2;
28184 fra.me.REG[0] = NIT_NULL;
28185 fra.me.REG[1] = NIT_NULL;
28186 fra.me.REG[0] = p0;
28187 REGB0 = p1;
28188 /* ./parser//parser.nit:8392 */
28189 fra.me.REG[1] = fra.me.REG[0];
28190 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28191 ATTR_parser___ReduceAction248____goto(fra.me.REG[1]) = REGB0;
28192 stack_frame_head = fra.me.prev;
28193 init_table[itpos242] = 1;
28194 return;
28195 }
28196 void parser___ReduceAction249___action(val_t p0, val_t p1){
28197 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
28198 val_t REGB0;
28199 val_t tmp;
28200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28201 fra.me.file = LOCATE_parser;
28202 fra.me.line = 8396;
28203 fra.me.meth = LOCATE_parser___ReduceAction249___action;
28204 fra.me.has_broke = 0;
28205 fra.me.REG_size = 7;
28206 fra.me.REG[0] = NIT_NULL;
28207 fra.me.REG[1] = NIT_NULL;
28208 fra.me.REG[2] = NIT_NULL;
28209 fra.me.REG[3] = NIT_NULL;
28210 fra.me.REG[4] = NIT_NULL;
28211 fra.me.REG[5] = NIT_NULL;
28212 fra.me.REG[6] = NIT_NULL;
28213 fra.me.REG[0] = p0;
28214 fra.me.REG[1] = p1;
28215 /* ./parser//parser.nit:8398 */
28216 fra.me.REG[2] = NIT_NULL;
28217 /* ./parser//parser.nit:8399 */
28218 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28219 /* ./parser//parser.nit:8400 */
28220 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28221 /* ./parser//parser.nit:8401 */
28222 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28223 /* ./parser//parser.nit:8402 */
28224 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28225 /* ./parser//parser.nit:8403 */
28226 fra.me.REG[6] = NEW_Array_array___Array___init();
28227 /* ./parser//parser.nit:8405 */
28228 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28229 if (UNTAG_Bool(REGB0)) {
28230 } else {
28231 nit_abort("Assert failed", NULL, LOCATE_parser, 8405);
28232 }
28233 /* ./parser//parser.nit:8407 */
28234 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28235 if (UNTAG_Bool(REGB0)) {
28236 } else {
28237 nit_abort("Assert failed", NULL, LOCATE_parser, 8407);
28238 }
28239 /* ./parser//parser.nit:8409 */
28240 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28241 if (UNTAG_Bool(REGB0)) {
28242 } else {
28243 nit_abort("Assert failed", NULL, LOCATE_parser, 8409);
28244 }
28245 /* ./parser//parser.nit:8410 */
28246 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], fra.me.REG[3], NIT_NULL, NIT_NULL);
28247 /* ./parser//parser.nit:8418 */
28248 fra.me.REG[2] = fra.me.REG[3];
28249 /* ./parser//parser.nit:8419 */
28250 REGB0 = TAG_Bool(ATTR_parser___ReduceAction249____goto(fra.me.REG[0])!=NIT_NULL);
28251 if (UNTAG_Bool(REGB0)) {
28252 } else {
28253 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8419);
28254 }
28255 REGB0 = ATTR_parser___ReduceAction249____goto(fra.me.REG[0]);
28256 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28257 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28258 stack_frame_head = fra.me.prev;
28259 return;
28260 }
28261 void parser___ReduceAction249___init(val_t p0, val_t p1, int* init_table){
28262 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction249].i;
28263 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28264 val_t REGB0;
28265 val_t tmp;
28266 if (init_table[itpos243]) return;
28267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28268 fra.me.file = LOCATE_parser;
28269 fra.me.line = 8422;
28270 fra.me.meth = LOCATE_parser___ReduceAction249___init;
28271 fra.me.has_broke = 0;
28272 fra.me.REG_size = 2;
28273 fra.me.REG[0] = NIT_NULL;
28274 fra.me.REG[1] = NIT_NULL;
28275 fra.me.REG[0] = p0;
28276 REGB0 = p1;
28277 /* ./parser//parser.nit:8422 */
28278 fra.me.REG[1] = fra.me.REG[0];
28279 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28280 ATTR_parser___ReduceAction249____goto(fra.me.REG[1]) = REGB0;
28281 stack_frame_head = fra.me.prev;
28282 init_table[itpos243] = 1;
28283 return;
28284 }
28285 void parser___ReduceAction250___action(val_t p0, val_t p1){
28286 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
28287 val_t REGB0;
28288 val_t tmp;
28289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28290 fra.me.file = LOCATE_parser;
28291 fra.me.line = 8426;
28292 fra.me.meth = LOCATE_parser___ReduceAction250___action;
28293 fra.me.has_broke = 0;
28294 fra.me.REG_size = 8;
28295 fra.me.REG[0] = NIT_NULL;
28296 fra.me.REG[1] = NIT_NULL;
28297 fra.me.REG[2] = NIT_NULL;
28298 fra.me.REG[3] = NIT_NULL;
28299 fra.me.REG[4] = NIT_NULL;
28300 fra.me.REG[5] = NIT_NULL;
28301 fra.me.REG[6] = NIT_NULL;
28302 fra.me.REG[7] = NIT_NULL;
28303 fra.me.REG[0] = p0;
28304 fra.me.REG[1] = p1;
28305 /* ./parser//parser.nit:8428 */
28306 fra.me.REG[2] = NIT_NULL;
28307 /* ./parser//parser.nit:8429 */
28308 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28309 /* ./parser//parser.nit:8430 */
28310 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28311 /* ./parser//parser.nit:8431 */
28312 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28313 /* ./parser//parser.nit:8432 */
28314 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28315 /* ./parser//parser.nit:8433 */
28316 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28317 /* ./parser//parser.nit:8434 */
28318 fra.me.REG[7] = NEW_Array_array___Array___init();
28319 /* ./parser//parser.nit:8436 */
28320 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28321 if (UNTAG_Bool(REGB0)) {
28322 } else {
28323 nit_abort("Assert failed", NULL, LOCATE_parser, 8436);
28324 }
28325 /* ./parser//parser.nit:8438 */
28326 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28327 if (UNTAG_Bool(REGB0)) {
28328 } else {
28329 nit_abort("Assert failed", NULL, LOCATE_parser, 8438);
28330 }
28331 /* ./parser//parser.nit:8440 */
28332 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
28333 if (UNTAG_Bool(REGB0)) {
28334 } else {
28335 nit_abort("Assert failed", NULL, LOCATE_parser, 8440);
28336 }
28337 /* ./parser//parser.nit:8441 */
28338 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
28339 fra.me.REG[7] = fra.me.REG[4];
28340 /* ./parser//parser.nit:8443 */
28341 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28342 if (UNTAG_Bool(REGB0)) {
28343 } else {
28344 nit_abort("Assert failed", NULL, LOCATE_parser, 8443);
28345 }
28346 /* ./parser//parser.nit:8444 */
28347 fra.me.REG[3] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[3], NIT_NULL, NIT_NULL);
28348 /* ./parser//parser.nit:8452 */
28349 fra.me.REG[2] = fra.me.REG[3];
28350 /* ./parser//parser.nit:8453 */
28351 REGB0 = TAG_Bool(ATTR_parser___ReduceAction250____goto(fra.me.REG[0])!=NIT_NULL);
28352 if (UNTAG_Bool(REGB0)) {
28353 } else {
28354 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8453);
28355 }
28356 REGB0 = ATTR_parser___ReduceAction250____goto(fra.me.REG[0]);
28357 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28358 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28359 stack_frame_head = fra.me.prev;
28360 return;
28361 }
28362 void parser___ReduceAction250___init(val_t p0, val_t p1, int* init_table){
28363 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction250].i;
28364 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28365 val_t REGB0;
28366 val_t tmp;
28367 if (init_table[itpos244]) return;
28368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28369 fra.me.file = LOCATE_parser;
28370 fra.me.line = 8456;
28371 fra.me.meth = LOCATE_parser___ReduceAction250___init;
28372 fra.me.has_broke = 0;
28373 fra.me.REG_size = 2;
28374 fra.me.REG[0] = NIT_NULL;
28375 fra.me.REG[1] = NIT_NULL;
28376 fra.me.REG[0] = p0;
28377 REGB0 = p1;
28378 /* ./parser//parser.nit:8456 */
28379 fra.me.REG[1] = fra.me.REG[0];
28380 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28381 ATTR_parser___ReduceAction250____goto(fra.me.REG[1]) = REGB0;
28382 stack_frame_head = fra.me.prev;
28383 init_table[itpos244] = 1;
28384 return;
28385 }
28386 void parser___ReduceAction251___action(val_t p0, val_t p1){
28387 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28388 val_t REGB0;
28389 val_t tmp;
28390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28391 fra.me.file = LOCATE_parser;
28392 fra.me.line = 8460;
28393 fra.me.meth = LOCATE_parser___ReduceAction251___action;
28394 fra.me.has_broke = 0;
28395 fra.me.REG_size = 4;
28396 fra.me.REG[0] = NIT_NULL;
28397 fra.me.REG[1] = NIT_NULL;
28398 fra.me.REG[2] = NIT_NULL;
28399 fra.me.REG[3] = NIT_NULL;
28400 fra.me.REG[0] = p0;
28401 fra.me.REG[1] = p1;
28402 /* ./parser//parser.nit:8462 */
28403 fra.me.REG[2] = NIT_NULL;
28404 /* ./parser//parser.nit:8463 */
28405 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28406 /* ./parser//parser.nit:8465 */
28407 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28408 if (UNTAG_Bool(REGB0)) {
28409 } else {
28410 nit_abort("Assert failed", NULL, LOCATE_parser, 8465);
28411 }
28412 /* ./parser//parser.nit:8466 */
28413 fra.me.REG[3] = NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid(fra.me.REG[3]);
28414 /* ./parser//parser.nit:8469 */
28415 fra.me.REG[2] = fra.me.REG[3];
28416 /* ./parser//parser.nit:8470 */
28417 REGB0 = TAG_Bool(ATTR_parser___ReduceAction251____goto(fra.me.REG[0])!=NIT_NULL);
28418 if (UNTAG_Bool(REGB0)) {
28419 } else {
28420 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8470);
28421 }
28422 REGB0 = ATTR_parser___ReduceAction251____goto(fra.me.REG[0]);
28423 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28424 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28425 stack_frame_head = fra.me.prev;
28426 return;
28427 }
28428 void parser___ReduceAction251___init(val_t p0, val_t p1, int* init_table){
28429 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction251].i;
28430 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28431 val_t REGB0;
28432 val_t tmp;
28433 if (init_table[itpos245]) return;
28434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28435 fra.me.file = LOCATE_parser;
28436 fra.me.line = 8473;
28437 fra.me.meth = LOCATE_parser___ReduceAction251___init;
28438 fra.me.has_broke = 0;
28439 fra.me.REG_size = 2;
28440 fra.me.REG[0] = NIT_NULL;
28441 fra.me.REG[1] = NIT_NULL;
28442 fra.me.REG[0] = p0;
28443 REGB0 = p1;
28444 /* ./parser//parser.nit:8473 */
28445 fra.me.REG[1] = fra.me.REG[0];
28446 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28447 ATTR_parser___ReduceAction251____goto(fra.me.REG[1]) = REGB0;
28448 stack_frame_head = fra.me.prev;
28449 init_table[itpos245] = 1;
28450 return;
28451 }
28452 void parser___ReduceAction252___action(val_t p0, val_t p1){
28453 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28454 val_t REGB0;
28455 val_t tmp;
28456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28457 fra.me.file = LOCATE_parser;
28458 fra.me.line = 8477;
28459 fra.me.meth = LOCATE_parser___ReduceAction252___action;
28460 fra.me.has_broke = 0;
28461 fra.me.REG_size = 4;
28462 fra.me.REG[0] = NIT_NULL;
28463 fra.me.REG[1] = NIT_NULL;
28464 fra.me.REG[2] = NIT_NULL;
28465 fra.me.REG[3] = NIT_NULL;
28466 fra.me.REG[0] = p0;
28467 fra.me.REG[1] = p1;
28468 /* ./parser//parser.nit:8479 */
28469 fra.me.REG[2] = NIT_NULL;
28470 /* ./parser//parser.nit:8480 */
28471 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28472 /* ./parser//parser.nit:8482 */
28473 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
28474 if (UNTAG_Bool(REGB0)) {
28475 } else {
28476 nit_abort("Assert failed", NULL, LOCATE_parser, 8482);
28477 }
28478 /* ./parser//parser.nit:8483 */
28479 fra.me.REG[3] = NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid(fra.me.REG[3]);
28480 /* ./parser//parser.nit:8486 */
28481 fra.me.REG[2] = fra.me.REG[3];
28482 /* ./parser//parser.nit:8487 */
28483 REGB0 = TAG_Bool(ATTR_parser___ReduceAction252____goto(fra.me.REG[0])!=NIT_NULL);
28484 if (UNTAG_Bool(REGB0)) {
28485 } else {
28486 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8487);
28487 }
28488 REGB0 = ATTR_parser___ReduceAction252____goto(fra.me.REG[0]);
28489 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28490 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28491 stack_frame_head = fra.me.prev;
28492 return;
28493 }
28494 void parser___ReduceAction252___init(val_t p0, val_t p1, int* init_table){
28495 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction252].i;
28496 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28497 val_t REGB0;
28498 val_t tmp;
28499 if (init_table[itpos246]) return;
28500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28501 fra.me.file = LOCATE_parser;
28502 fra.me.line = 8490;
28503 fra.me.meth = LOCATE_parser___ReduceAction252___init;
28504 fra.me.has_broke = 0;
28505 fra.me.REG_size = 2;
28506 fra.me.REG[0] = NIT_NULL;
28507 fra.me.REG[1] = NIT_NULL;
28508 fra.me.REG[0] = p0;
28509 REGB0 = p1;
28510 /* ./parser//parser.nit:8490 */
28511 fra.me.REG[1] = fra.me.REG[0];
28512 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28513 ATTR_parser___ReduceAction252____goto(fra.me.REG[1]) = REGB0;
28514 stack_frame_head = fra.me.prev;
28515 init_table[itpos246] = 1;
28516 return;
28517 }
28518 void parser___ReduceAction253___action(val_t p0, val_t p1){
28519 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28520 val_t REGB0;
28521 val_t tmp;
28522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28523 fra.me.file = LOCATE_parser;
28524 fra.me.line = 8494;
28525 fra.me.meth = LOCATE_parser___ReduceAction253___action;
28526 fra.me.has_broke = 0;
28527 fra.me.REG_size = 4;
28528 fra.me.REG[0] = NIT_NULL;
28529 fra.me.REG[1] = NIT_NULL;
28530 fra.me.REG[2] = NIT_NULL;
28531 fra.me.REG[3] = NIT_NULL;
28532 fra.me.REG[0] = p0;
28533 fra.me.REG[1] = p1;
28534 /* ./parser//parser.nit:8496 */
28535 fra.me.REG[2] = NIT_NULL;
28536 /* ./parser//parser.nit:8497 */
28537 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28538 /* ./parser//parser.nit:8499 */
28539 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28540 if (UNTAG_Bool(REGB0)) {
28541 } else {
28542 nit_abort("Assert failed", NULL, LOCATE_parser, 8499);
28543 }
28544 /* ./parser//parser.nit:8500 */
28545 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(NIT_NULL, NIT_NULL, fra.me.REG[3]);
28546 /* ./parser//parser.nit:8505 */
28547 fra.me.REG[2] = fra.me.REG[3];
28548 /* ./parser//parser.nit:8506 */
28549 REGB0 = TAG_Bool(ATTR_parser___ReduceAction253____goto(fra.me.REG[0])!=NIT_NULL);
28550 if (UNTAG_Bool(REGB0)) {
28551 } else {
28552 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8506);
28553 }
28554 REGB0 = ATTR_parser___ReduceAction253____goto(fra.me.REG[0]);
28555 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28556 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28557 stack_frame_head = fra.me.prev;
28558 return;
28559 }
28560 void parser___ReduceAction253___init(val_t p0, val_t p1, int* init_table){
28561 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction253].i;
28562 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28563 val_t REGB0;
28564 val_t tmp;
28565 if (init_table[itpos247]) return;
28566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28567 fra.me.file = LOCATE_parser;
28568 fra.me.line = 8509;
28569 fra.me.meth = LOCATE_parser___ReduceAction253___init;
28570 fra.me.has_broke = 0;
28571 fra.me.REG_size = 2;
28572 fra.me.REG[0] = NIT_NULL;
28573 fra.me.REG[1] = NIT_NULL;
28574 fra.me.REG[0] = p0;
28575 REGB0 = p1;
28576 /* ./parser//parser.nit:8509 */
28577 fra.me.REG[1] = fra.me.REG[0];
28578 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28579 ATTR_parser___ReduceAction253____goto(fra.me.REG[1]) = REGB0;
28580 stack_frame_head = fra.me.prev;
28581 init_table[itpos247] = 1;
28582 return;
28583 }
28584 void parser___ReduceAction254___action(val_t p0, val_t p1){
28585 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
28586 val_t REGB0;
28587 val_t tmp;
28588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28589 fra.me.file = LOCATE_parser;
28590 fra.me.line = 8513;
28591 fra.me.meth = LOCATE_parser___ReduceAction254___action;
28592 fra.me.has_broke = 0;
28593 fra.me.REG_size = 5;
28594 fra.me.REG[0] = NIT_NULL;
28595 fra.me.REG[1] = NIT_NULL;
28596 fra.me.REG[2] = NIT_NULL;
28597 fra.me.REG[3] = NIT_NULL;
28598 fra.me.REG[4] = NIT_NULL;
28599 fra.me.REG[0] = p0;
28600 fra.me.REG[1] = p1;
28601 /* ./parser//parser.nit:8515 */
28602 fra.me.REG[2] = NIT_NULL;
28603 /* ./parser//parser.nit:8516 */
28604 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28605 /* ./parser//parser.nit:8517 */
28606 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28607 /* ./parser//parser.nit:8519 */
28608 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28609 if (UNTAG_Bool(REGB0)) {
28610 } else {
28611 nit_abort("Assert failed", NULL, LOCATE_parser, 8519);
28612 }
28613 /* ./parser//parser.nit:8521 */
28614 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28615 if (UNTAG_Bool(REGB0)) {
28616 } else {
28617 nit_abort("Assert failed", NULL, LOCATE_parser, 8521);
28618 }
28619 /* ./parser//parser.nit:8522 */
28620 fra.me.REG[3] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
28621 /* ./parser//parser.nit:8529 */
28622 fra.me.REG[2] = fra.me.REG[3];
28623 /* ./parser//parser.nit:8530 */
28624 REGB0 = TAG_Bool(ATTR_parser___ReduceAction254____goto(fra.me.REG[0])!=NIT_NULL);
28625 if (UNTAG_Bool(REGB0)) {
28626 } else {
28627 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8530);
28628 }
28629 REGB0 = ATTR_parser___ReduceAction254____goto(fra.me.REG[0]);
28630 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28631 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28632 stack_frame_head = fra.me.prev;
28633 return;
28634 }
28635 void parser___ReduceAction254___init(val_t p0, val_t p1, int* init_table){
28636 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction254].i;
28637 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28638 val_t REGB0;
28639 val_t tmp;
28640 if (init_table[itpos248]) return;
28641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28642 fra.me.file = LOCATE_parser;
28643 fra.me.line = 8533;
28644 fra.me.meth = LOCATE_parser___ReduceAction254___init;
28645 fra.me.has_broke = 0;
28646 fra.me.REG_size = 2;
28647 fra.me.REG[0] = NIT_NULL;
28648 fra.me.REG[1] = NIT_NULL;
28649 fra.me.REG[0] = p0;
28650 REGB0 = p1;
28651 /* ./parser//parser.nit:8533 */
28652 fra.me.REG[1] = fra.me.REG[0];
28653 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28654 ATTR_parser___ReduceAction254____goto(fra.me.REG[1]) = REGB0;
28655 stack_frame_head = fra.me.prev;
28656 init_table[itpos248] = 1;
28657 return;
28658 }
28659 void parser___ReduceAction255___action(val_t p0, val_t p1){
28660 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28661 val_t REGB0;
28662 val_t tmp;
28663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28664 fra.me.file = LOCATE_parser;
28665 fra.me.line = 8537;
28666 fra.me.meth = LOCATE_parser___ReduceAction255___action;
28667 fra.me.has_broke = 0;
28668 fra.me.REG_size = 6;
28669 fra.me.REG[0] = NIT_NULL;
28670 fra.me.REG[1] = NIT_NULL;
28671 fra.me.REG[2] = NIT_NULL;
28672 fra.me.REG[3] = NIT_NULL;
28673 fra.me.REG[4] = NIT_NULL;
28674 fra.me.REG[5] = NIT_NULL;
28675 fra.me.REG[0] = p0;
28676 fra.me.REG[1] = p1;
28677 /* ./parser//parser.nit:8539 */
28678 fra.me.REG[2] = NIT_NULL;
28679 /* ./parser//parser.nit:8540 */
28680 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28681 /* ./parser//parser.nit:8541 */
28682 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28683 /* ./parser//parser.nit:8542 */
28684 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28685 /* ./parser//parser.nit:8544 */
28686 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28687 if (UNTAG_Bool(REGB0)) {
28688 } else {
28689 nit_abort("Assert failed", NULL, LOCATE_parser, 8544);
28690 }
28691 /* ./parser//parser.nit:8546 */
28692 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28693 if (UNTAG_Bool(REGB0)) {
28694 } else {
28695 nit_abort("Assert failed", NULL, LOCATE_parser, 8546);
28696 }
28697 /* ./parser//parser.nit:8548 */
28698 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
28699 if (UNTAG_Bool(REGB0)) {
28700 } else {
28701 nit_abort("Assert failed", NULL, LOCATE_parser, 8548);
28702 }
28703 /* ./parser//parser.nit:8549 */
28704 fra.me.REG[3] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL);
28705 /* ./parser//parser.nit:8556 */
28706 fra.me.REG[2] = fra.me.REG[3];
28707 /* ./parser//parser.nit:8557 */
28708 REGB0 = TAG_Bool(ATTR_parser___ReduceAction255____goto(fra.me.REG[0])!=NIT_NULL);
28709 if (UNTAG_Bool(REGB0)) {
28710 } else {
28711 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8557);
28712 }
28713 REGB0 = ATTR_parser___ReduceAction255____goto(fra.me.REG[0]);
28714 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28715 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28716 stack_frame_head = fra.me.prev;
28717 return;
28718 }
28719 void parser___ReduceAction255___init(val_t p0, val_t p1, int* init_table){
28720 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction255].i;
28721 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28722 val_t REGB0;
28723 val_t tmp;
28724 if (init_table[itpos249]) return;
28725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28726 fra.me.file = LOCATE_parser;
28727 fra.me.line = 8560;
28728 fra.me.meth = LOCATE_parser___ReduceAction255___init;
28729 fra.me.has_broke = 0;
28730 fra.me.REG_size = 2;
28731 fra.me.REG[0] = NIT_NULL;
28732 fra.me.REG[1] = NIT_NULL;
28733 fra.me.REG[0] = p0;
28734 REGB0 = p1;
28735 /* ./parser//parser.nit:8560 */
28736 fra.me.REG[1] = fra.me.REG[0];
28737 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28738 ATTR_parser___ReduceAction255____goto(fra.me.REG[1]) = REGB0;
28739 stack_frame_head = fra.me.prev;
28740 init_table[itpos249] = 1;
28741 return;
28742 }
28743 void parser___ReduceAction256___action(val_t p0, val_t p1){
28744 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
28745 val_t REGB0;
28746 val_t tmp;
28747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28748 fra.me.file = LOCATE_parser;
28749 fra.me.line = 8564;
28750 fra.me.meth = LOCATE_parser___ReduceAction256___action;
28751 fra.me.has_broke = 0;
28752 fra.me.REG_size = 7;
28753 fra.me.REG[0] = NIT_NULL;
28754 fra.me.REG[1] = NIT_NULL;
28755 fra.me.REG[2] = NIT_NULL;
28756 fra.me.REG[3] = NIT_NULL;
28757 fra.me.REG[4] = NIT_NULL;
28758 fra.me.REG[5] = NIT_NULL;
28759 fra.me.REG[6] = NIT_NULL;
28760 fra.me.REG[0] = p0;
28761 fra.me.REG[1] = p1;
28762 /* ./parser//parser.nit:8566 */
28763 fra.me.REG[2] = NIT_NULL;
28764 /* ./parser//parser.nit:8567 */
28765 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28766 /* ./parser//parser.nit:8568 */
28767 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28768 /* ./parser//parser.nit:8569 */
28769 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28770 /* ./parser//parser.nit:8570 */
28771 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28772 /* ./parser//parser.nit:8571 */
28773 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28774 /* ./parser//parser.nit:8573 */
28775 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28776 if (UNTAG_Bool(REGB0)) {
28777 } else {
28778 nit_abort("Assert failed", NULL, LOCATE_parser, 8573);
28779 }
28780 /* ./parser//parser.nit:8575 */
28781 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28782 if (UNTAG_Bool(REGB0)) {
28783 } else {
28784 nit_abort("Assert failed", NULL, LOCATE_parser, 8575);
28785 }
28786 /* ./parser//parser.nit:8577 */
28787 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
28788 if (UNTAG_Bool(REGB0)) {
28789 } else {
28790 nit_abort("Assert failed", NULL, LOCATE_parser, 8577);
28791 }
28792 /* ./parser//parser.nit:8579 */
28793 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28794 if (UNTAG_Bool(REGB0)) {
28795 } else {
28796 nit_abort("Assert failed", NULL, LOCATE_parser, 8579);
28797 }
28798 /* ./parser//parser.nit:8580 */
28799 fra.me.REG[3] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
28800 /* ./parser//parser.nit:8587 */
28801 fra.me.REG[2] = fra.me.REG[3];
28802 /* ./parser//parser.nit:8588 */
28803 REGB0 = TAG_Bool(ATTR_parser___ReduceAction256____goto(fra.me.REG[0])!=NIT_NULL);
28804 if (UNTAG_Bool(REGB0)) {
28805 } else {
28806 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8588);
28807 }
28808 REGB0 = ATTR_parser___ReduceAction256____goto(fra.me.REG[0]);
28809 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28810 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28811 stack_frame_head = fra.me.prev;
28812 return;
28813 }
28814 void parser___ReduceAction256___init(val_t p0, val_t p1, int* init_table){
28815 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction256].i;
28816 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28817 val_t REGB0;
28818 val_t tmp;
28819 if (init_table[itpos250]) return;
28820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28821 fra.me.file = LOCATE_parser;
28822 fra.me.line = 8591;
28823 fra.me.meth = LOCATE_parser___ReduceAction256___init;
28824 fra.me.has_broke = 0;
28825 fra.me.REG_size = 2;
28826 fra.me.REG[0] = NIT_NULL;
28827 fra.me.REG[1] = NIT_NULL;
28828 fra.me.REG[0] = p0;
28829 REGB0 = p1;
28830 /* ./parser//parser.nit:8591 */
28831 fra.me.REG[1] = fra.me.REG[0];
28832 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28833 ATTR_parser___ReduceAction256____goto(fra.me.REG[1]) = REGB0;
28834 stack_frame_head = fra.me.prev;
28835 init_table[itpos250] = 1;
28836 return;
28837 }
28838 void parser___ReduceAction257___action(val_t p0, val_t p1){
28839 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
28840 val_t REGB0;
28841 val_t tmp;
28842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28843 fra.me.file = LOCATE_parser;
28844 fra.me.line = 8595;
28845 fra.me.meth = LOCATE_parser___ReduceAction257___action;
28846 fra.me.has_broke = 0;
28847 fra.me.REG_size = 8;
28848 fra.me.REG[0] = NIT_NULL;
28849 fra.me.REG[1] = NIT_NULL;
28850 fra.me.REG[2] = NIT_NULL;
28851 fra.me.REG[3] = NIT_NULL;
28852 fra.me.REG[4] = NIT_NULL;
28853 fra.me.REG[5] = NIT_NULL;
28854 fra.me.REG[6] = NIT_NULL;
28855 fra.me.REG[7] = NIT_NULL;
28856 fra.me.REG[0] = p0;
28857 fra.me.REG[1] = p1;
28858 /* ./parser//parser.nit:8597 */
28859 fra.me.REG[2] = NIT_NULL;
28860 /* ./parser//parser.nit:8598 */
28861 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28862 /* ./parser//parser.nit:8599 */
28863 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28864 /* ./parser//parser.nit:8600 */
28865 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28866 /* ./parser//parser.nit:8601 */
28867 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28868 /* ./parser//parser.nit:8602 */
28869 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28870 /* ./parser//parser.nit:8603 */
28871 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28872 /* ./parser//parser.nit:8605 */
28873 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28874 if (UNTAG_Bool(REGB0)) {
28875 } else {
28876 nit_abort("Assert failed", NULL, LOCATE_parser, 8605);
28877 }
28878 /* ./parser//parser.nit:8607 */
28879 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28880 if (UNTAG_Bool(REGB0)) {
28881 } else {
28882 nit_abort("Assert failed", NULL, LOCATE_parser, 8607);
28883 }
28884 /* ./parser//parser.nit:8609 */
28885 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
28886 if (UNTAG_Bool(REGB0)) {
28887 } else {
28888 nit_abort("Assert failed", NULL, LOCATE_parser, 8609);
28889 }
28890 /* ./parser//parser.nit:8611 */
28891 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
28892 if (UNTAG_Bool(REGB0)) {
28893 } else {
28894 nit_abort("Assert failed", NULL, LOCATE_parser, 8611);
28895 }
28896 /* ./parser//parser.nit:8613 */
28897 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28898 if (UNTAG_Bool(REGB0)) {
28899 } else {
28900 nit_abort("Assert failed", NULL, LOCATE_parser, 8613);
28901 }
28902 /* ./parser//parser.nit:8614 */
28903 fra.me.REG[3] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
28904 /* ./parser//parser.nit:8621 */
28905 fra.me.REG[2] = fra.me.REG[3];
28906 /* ./parser//parser.nit:8622 */
28907 REGB0 = TAG_Bool(ATTR_parser___ReduceAction257____goto(fra.me.REG[0])!=NIT_NULL);
28908 if (UNTAG_Bool(REGB0)) {
28909 } else {
28910 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8622);
28911 }
28912 REGB0 = ATTR_parser___ReduceAction257____goto(fra.me.REG[0]);
28913 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28914 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28915 stack_frame_head = fra.me.prev;
28916 return;
28917 }
28918 void parser___ReduceAction257___init(val_t p0, val_t p1, int* init_table){
28919 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction257].i;
28920 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28921 val_t REGB0;
28922 val_t tmp;
28923 if (init_table[itpos251]) return;
28924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28925 fra.me.file = LOCATE_parser;
28926 fra.me.line = 8625;
28927 fra.me.meth = LOCATE_parser___ReduceAction257___init;
28928 fra.me.has_broke = 0;
28929 fra.me.REG_size = 2;
28930 fra.me.REG[0] = NIT_NULL;
28931 fra.me.REG[1] = NIT_NULL;
28932 fra.me.REG[0] = p0;
28933 REGB0 = p1;
28934 /* ./parser//parser.nit:8625 */
28935 fra.me.REG[1] = fra.me.REG[0];
28936 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28937 ATTR_parser___ReduceAction257____goto(fra.me.REG[1]) = REGB0;
28938 stack_frame_head = fra.me.prev;
28939 init_table[itpos251] = 1;
28940 return;
28941 }
28942 void parser___ReduceAction258___action(val_t p0, val_t p1){
28943 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
28944 val_t REGB0;
28945 val_t tmp;
28946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28947 fra.me.file = LOCATE_parser;
28948 fra.me.line = 8629;
28949 fra.me.meth = LOCATE_parser___ReduceAction258___action;
28950 fra.me.has_broke = 0;
28951 fra.me.REG_size = 7;
28952 fra.me.REG[0] = NIT_NULL;
28953 fra.me.REG[1] = NIT_NULL;
28954 fra.me.REG[2] = NIT_NULL;
28955 fra.me.REG[3] = NIT_NULL;
28956 fra.me.REG[4] = NIT_NULL;
28957 fra.me.REG[5] = NIT_NULL;
28958 fra.me.REG[6] = NIT_NULL;
28959 fra.me.REG[0] = p0;
28960 fra.me.REG[1] = p1;
28961 /* ./parser//parser.nit:8631 */
28962 fra.me.REG[2] = NIT_NULL;
28963 /* ./parser//parser.nit:8632 */
28964 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28965 /* ./parser//parser.nit:8633 */
28966 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28967 /* ./parser//parser.nit:8634 */
28968 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28969 /* ./parser//parser.nit:8635 */
28970 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28971 /* ./parser//parser.nit:8636 */
28972 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28973 /* ./parser//parser.nit:8637 */
28974 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28975 /* ./parser//parser.nit:8639 */
28976 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28977 if (UNTAG_Bool(REGB0)) {
28978 } else {
28979 nit_abort("Assert failed", NULL, LOCATE_parser, 8639);
28980 }
28981 /* ./parser//parser.nit:8641 */
28982 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
28983 if (UNTAG_Bool(REGB0)) {
28984 } else {
28985 nit_abort("Assert failed", NULL, LOCATE_parser, 8641);
28986 }
28987 /* ./parser//parser.nit:8643 */
28988 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
28989 if (UNTAG_Bool(REGB0)) {
28990 } else {
28991 nit_abort("Assert failed", NULL, LOCATE_parser, 8643);
28992 }
28993 /* ./parser//parser.nit:8645 */
28994 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28995 if (UNTAG_Bool(REGB0)) {
28996 } else {
28997 nit_abort("Assert failed", NULL, LOCATE_parser, 8645);
28998 }
28999 /* ./parser//parser.nit:8646 */
29000 fra.me.REG[3] = NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
29001 /* ./parser//parser.nit:8652 */
29002 fra.me.REG[2] = fra.me.REG[3];
29003 /* ./parser//parser.nit:8653 */
29004 REGB0 = TAG_Bool(ATTR_parser___ReduceAction258____goto(fra.me.REG[0])!=NIT_NULL);
29005 if (UNTAG_Bool(REGB0)) {
29006 } else {
29007 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8653);
29008 }
29009 REGB0 = ATTR_parser___ReduceAction258____goto(fra.me.REG[0]);
29010 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29011 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29012 stack_frame_head = fra.me.prev;
29013 return;
29014 }
29015 void parser___ReduceAction258___init(val_t p0, val_t p1, int* init_table){
29016 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction258].i;
29017 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29018 val_t REGB0;
29019 val_t tmp;
29020 if (init_table[itpos252]) return;
29021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29022 fra.me.file = LOCATE_parser;
29023 fra.me.line = 8656;
29024 fra.me.meth = LOCATE_parser___ReduceAction258___init;
29025 fra.me.has_broke = 0;
29026 fra.me.REG_size = 2;
29027 fra.me.REG[0] = NIT_NULL;
29028 fra.me.REG[1] = NIT_NULL;
29029 fra.me.REG[0] = p0;
29030 REGB0 = p1;
29031 /* ./parser//parser.nit:8656 */
29032 fra.me.REG[1] = fra.me.REG[0];
29033 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29034 ATTR_parser___ReduceAction258____goto(fra.me.REG[1]) = REGB0;
29035 stack_frame_head = fra.me.prev;
29036 init_table[itpos252] = 1;
29037 return;
29038 }
29039 void parser___ReduceAction259___action(val_t p0, val_t p1){
29040 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29041 val_t REGB0;
29042 val_t tmp;
29043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29044 fra.me.file = LOCATE_parser;
29045 fra.me.line = 8660;
29046 fra.me.meth = LOCATE_parser___ReduceAction259___action;
29047 fra.me.has_broke = 0;
29048 fra.me.REG_size = 7;
29049 fra.me.REG[0] = NIT_NULL;
29050 fra.me.REG[1] = NIT_NULL;
29051 fra.me.REG[2] = NIT_NULL;
29052 fra.me.REG[3] = NIT_NULL;
29053 fra.me.REG[4] = NIT_NULL;
29054 fra.me.REG[5] = NIT_NULL;
29055 fra.me.REG[6] = NIT_NULL;
29056 fra.me.REG[0] = p0;
29057 fra.me.REG[1] = p1;
29058 /* ./parser//parser.nit:8662 */
29059 fra.me.REG[2] = NIT_NULL;
29060 /* ./parser//parser.nit:8663 */
29061 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29062 /* ./parser//parser.nit:8664 */
29063 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29064 /* ./parser//parser.nit:8665 */
29065 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29066 /* ./parser//parser.nit:8666 */
29067 fra.me.REG[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29068 /* ./parser//parser.nit:8669 */
29069 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
29070 if (UNTAG_Bool(REGB0)) {
29071 } else {
29072 nit_abort("Assert failed", NULL, LOCATE_parser, 8669);
29073 }
29074 /* ./parser//parser.nit:8671 */
29075 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29076 if (UNTAG_Bool(REGB0)) {
29077 } else {
29078 nit_abort("Assert failed", NULL, LOCATE_parser, 8671);
29079 }
29080 /* ./parser//parser.nit:8673 */
29081 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29082 if (UNTAG_Bool(REGB0)) {
29083 } else {
29084 nit_abort("Assert failed", NULL, LOCATE_parser, 8673);
29085 }
29086 /* ./parser//parser.nit:8674 */
29087 fra.me.REG[3] = NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
29088 /* ./parser//parser.nit:8680 */
29089 fra.me.REG[2] = fra.me.REG[3];
29090 /* ./parser//parser.nit:8681 */
29091 REGB0 = TAG_Bool(ATTR_parser___ReduceAction259____goto(fra.me.REG[0])!=NIT_NULL);
29092 if (UNTAG_Bool(REGB0)) {
29093 } else {
29094 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8681);
29095 }
29096 REGB0 = ATTR_parser___ReduceAction259____goto(fra.me.REG[0]);
29097 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29098 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29099 stack_frame_head = fra.me.prev;
29100 return;
29101 }
29102 void parser___ReduceAction259___init(val_t p0, val_t p1, int* init_table){
29103 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction259].i;
29104 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29105 val_t REGB0;
29106 val_t tmp;
29107 if (init_table[itpos253]) return;
29108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29109 fra.me.file = LOCATE_parser;
29110 fra.me.line = 8684;
29111 fra.me.meth = LOCATE_parser___ReduceAction259___init;
29112 fra.me.has_broke = 0;
29113 fra.me.REG_size = 2;
29114 fra.me.REG[0] = NIT_NULL;
29115 fra.me.REG[1] = NIT_NULL;
29116 fra.me.REG[0] = p0;
29117 REGB0 = p1;
29118 /* ./parser//parser.nit:8684 */
29119 fra.me.REG[1] = fra.me.REG[0];
29120 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29121 ATTR_parser___ReduceAction259____goto(fra.me.REG[1]) = REGB0;
29122 stack_frame_head = fra.me.prev;
29123 init_table[itpos253] = 1;
29124 return;
29125 }
29126 void parser___ReduceAction260___action(val_t p0, val_t p1){
29127 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29128 val_t REGB0;
29129 val_t tmp;
29130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29131 fra.me.file = LOCATE_parser;
29132 fra.me.line = 8688;
29133 fra.me.meth = LOCATE_parser___ReduceAction260___action;
29134 fra.me.has_broke = 0;
29135 fra.me.REG_size = 9;
29136 fra.me.REG[0] = NIT_NULL;
29137 fra.me.REG[1] = NIT_NULL;
29138 fra.me.REG[2] = NIT_NULL;
29139 fra.me.REG[3] = NIT_NULL;
29140 fra.me.REG[4] = NIT_NULL;
29141 fra.me.REG[5] = NIT_NULL;
29142 fra.me.REG[6] = NIT_NULL;
29143 fra.me.REG[7] = NIT_NULL;
29144 fra.me.REG[8] = NIT_NULL;
29145 fra.me.REG[0] = p0;
29146 fra.me.REG[1] = p1;
29147 /* ./parser//parser.nit:8690 */
29148 fra.me.REG[2] = NIT_NULL;
29149 /* ./parser//parser.nit:8691 */
29150 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29151 /* ./parser//parser.nit:8692 */
29152 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29153 /* ./parser//parser.nit:8693 */
29154 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29155 /* ./parser//parser.nit:8694 */
29156 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29157 /* ./parser//parser.nit:8695 */
29158 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29159 /* ./parser//parser.nit:8696 */
29160 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29161 /* ./parser//parser.nit:8697 */
29162 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29163 /* ./parser//parser.nit:8698 */
29164 fra.me.REG[8] = NEW_Array_array___Array___init();
29165 /* ./parser//parser.nit:8700 */
29166 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29167 if (UNTAG_Bool(REGB0)) {
29168 } else {
29169 nit_abort("Assert failed", NULL, LOCATE_parser, 8700);
29170 }
29171 /* ./parser//parser.nit:8702 */
29172 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29173 if (UNTAG_Bool(REGB0)) {
29174 } else {
29175 nit_abort("Assert failed", NULL, LOCATE_parser, 8702);
29176 }
29177 /* ./parser//parser.nit:8704 */
29178 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29179 if (UNTAG_Bool(REGB0)) {
29180 } else {
29181 nit_abort("Assert failed", NULL, LOCATE_parser, 8704);
29182 }
29183 /* ./parser//parser.nit:8705 */
29184 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
29185 fra.me.REG[8] = fra.me.REG[5];
29186 /* ./parser//parser.nit:8707 */
29187 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29188 if (UNTAG_Bool(REGB0)) {
29189 } else {
29190 nit_abort("Assert failed", NULL, LOCATE_parser, 8707);
29191 }
29192 /* ./parser//parser.nit:8709 */
29193 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29194 if (UNTAG_Bool(REGB0)) {
29195 } else {
29196 nit_abort("Assert failed", NULL, LOCATE_parser, 8709);
29197 }
29198 /* ./parser//parser.nit:8710 */
29199 fra.me.REG[3] = NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3]);
29200 /* ./parser//parser.nit:8717 */
29201 fra.me.REG[2] = fra.me.REG[3];
29202 /* ./parser//parser.nit:8718 */
29203 REGB0 = TAG_Bool(ATTR_parser___ReduceAction260____goto(fra.me.REG[0])!=NIT_NULL);
29204 if (UNTAG_Bool(REGB0)) {
29205 } else {
29206 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8718);
29207 }
29208 REGB0 = ATTR_parser___ReduceAction260____goto(fra.me.REG[0]);
29209 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29210 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29211 stack_frame_head = fra.me.prev;
29212 return;
29213 }
29214 void parser___ReduceAction260___init(val_t p0, val_t p1, int* init_table){
29215 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction260].i;
29216 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29217 val_t REGB0;
29218 val_t tmp;
29219 if (init_table[itpos254]) return;
29220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29221 fra.me.file = LOCATE_parser;
29222 fra.me.line = 8721;
29223 fra.me.meth = LOCATE_parser___ReduceAction260___init;
29224 fra.me.has_broke = 0;
29225 fra.me.REG_size = 2;
29226 fra.me.REG[0] = NIT_NULL;
29227 fra.me.REG[1] = NIT_NULL;
29228 fra.me.REG[0] = p0;
29229 REGB0 = p1;
29230 /* ./parser//parser.nit:8721 */
29231 fra.me.REG[1] = fra.me.REG[0];
29232 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29233 ATTR_parser___ReduceAction260____goto(fra.me.REG[1]) = REGB0;
29234 stack_frame_head = fra.me.prev;
29235 init_table[itpos254] = 1;
29236 return;
29237 }
29238 void parser___ReduceAction261___action(val_t p0, val_t p1){
29239 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29240 val_t REGB0;
29241 val_t tmp;
29242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29243 fra.me.file = LOCATE_parser;
29244 fra.me.line = 8725;
29245 fra.me.meth = LOCATE_parser___ReduceAction261___action;
29246 fra.me.has_broke = 0;
29247 fra.me.REG_size = 9;
29248 fra.me.REG[0] = NIT_NULL;
29249 fra.me.REG[1] = NIT_NULL;
29250 fra.me.REG[2] = NIT_NULL;
29251 fra.me.REG[3] = NIT_NULL;
29252 fra.me.REG[4] = NIT_NULL;
29253 fra.me.REG[5] = NIT_NULL;
29254 fra.me.REG[6] = NIT_NULL;
29255 fra.me.REG[7] = NIT_NULL;
29256 fra.me.REG[8] = NIT_NULL;
29257 fra.me.REG[0] = p0;
29258 fra.me.REG[1] = p1;
29259 /* ./parser//parser.nit:8727 */
29260 fra.me.REG[2] = NIT_NULL;
29261 /* ./parser//parser.nit:8728 */
29262 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29263 /* ./parser//parser.nit:8729 */
29264 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29265 /* ./parser//parser.nit:8730 */
29266 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29267 /* ./parser//parser.nit:8731 */
29268 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29269 /* ./parser//parser.nit:8732 */
29270 fra.me.REG[7] = NEW_Array_array___Array___init();
29271 /* ./parser//parser.nit:8733 */
29272 fra.me.REG[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29273 /* ./parser//parser.nit:8736 */
29274 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29275 if (UNTAG_Bool(REGB0)) {
29276 } else {
29277 nit_abort("Assert failed", NULL, LOCATE_parser, 8736);
29278 }
29279 /* ./parser//parser.nit:8738 */
29280 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29281 if (UNTAG_Bool(REGB0)) {
29282 } else {
29283 nit_abort("Assert failed", NULL, LOCATE_parser, 8738);
29284 }
29285 /* ./parser//parser.nit:8739 */
29286 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29287 fra.me.REG[7] = fra.me.REG[5];
29288 /* ./parser//parser.nit:8741 */
29289 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29290 if (UNTAG_Bool(REGB0)) {
29291 } else {
29292 nit_abort("Assert failed", NULL, LOCATE_parser, 8741);
29293 }
29294 /* ./parser//parser.nit:8743 */
29295 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29296 if (UNTAG_Bool(REGB0)) {
29297 } else {
29298 nit_abort("Assert failed", NULL, LOCATE_parser, 8743);
29299 }
29300 /* ./parser//parser.nit:8744 */
29301 fra.me.REG[3] = NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[8], fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
29302 /* ./parser//parser.nit:8751 */
29303 fra.me.REG[2] = fra.me.REG[3];
29304 /* ./parser//parser.nit:8752 */
29305 REGB0 = TAG_Bool(ATTR_parser___ReduceAction261____goto(fra.me.REG[0])!=NIT_NULL);
29306 if (UNTAG_Bool(REGB0)) {
29307 } else {
29308 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8752);
29309 }
29310 REGB0 = ATTR_parser___ReduceAction261____goto(fra.me.REG[0]);
29311 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29312 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29313 stack_frame_head = fra.me.prev;
29314 return;
29315 }
29316 void parser___ReduceAction261___init(val_t p0, val_t p1, int* init_table){
29317 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction261].i;
29318 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29319 val_t REGB0;
29320 val_t tmp;
29321 if (init_table[itpos255]) return;
29322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29323 fra.me.file = LOCATE_parser;
29324 fra.me.line = 8755;
29325 fra.me.meth = LOCATE_parser___ReduceAction261___init;
29326 fra.me.has_broke = 0;
29327 fra.me.REG_size = 2;
29328 fra.me.REG[0] = NIT_NULL;
29329 fra.me.REG[1] = NIT_NULL;
29330 fra.me.REG[0] = p0;
29331 REGB0 = p1;
29332 /* ./parser//parser.nit:8755 */
29333 fra.me.REG[1] = fra.me.REG[0];
29334 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29335 ATTR_parser___ReduceAction261____goto(fra.me.REG[1]) = REGB0;
29336 stack_frame_head = fra.me.prev;
29337 init_table[itpos255] = 1;
29338 return;
29339 }
29340 void parser___ReduceAction262___action(val_t p0, val_t p1){
29341 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
29342 val_t REGB0;
29343 val_t tmp;
29344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29345 fra.me.file = LOCATE_parser;
29346 fra.me.line = 8759;
29347 fra.me.meth = LOCATE_parser___ReduceAction262___action;
29348 fra.me.has_broke = 0;
29349 fra.me.REG_size = 8;
29350 fra.me.REG[0] = NIT_NULL;
29351 fra.me.REG[1] = NIT_NULL;
29352 fra.me.REG[2] = NIT_NULL;
29353 fra.me.REG[3] = NIT_NULL;
29354 fra.me.REG[4] = NIT_NULL;
29355 fra.me.REG[5] = NIT_NULL;
29356 fra.me.REG[6] = NIT_NULL;
29357 fra.me.REG[7] = NIT_NULL;
29358 fra.me.REG[0] = p0;
29359 fra.me.REG[1] = p1;
29360 /* ./parser//parser.nit:8761 */
29361 fra.me.REG[2] = NIT_NULL;
29362 /* ./parser//parser.nit:8762 */
29363 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29364 /* ./parser//parser.nit:8763 */
29365 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29366 /* ./parser//parser.nit:8764 */
29367 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29368 /* ./parser//parser.nit:8765 */
29369 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29370 /* ./parser//parser.nit:8766 */
29371 fra.me.REG[7] = NEW_Array_array___Array___init();
29372 /* ./parser//parser.nit:8768 */
29373 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29374 if (UNTAG_Bool(REGB0)) {
29375 } else {
29376 nit_abort("Assert failed", NULL, LOCATE_parser, 8768);
29377 }
29378 /* ./parser//parser.nit:8770 */
29379 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29380 if (UNTAG_Bool(REGB0)) {
29381 } else {
29382 nit_abort("Assert failed", NULL, LOCATE_parser, 8770);
29383 }
29384 /* ./parser//parser.nit:8771 */
29385 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29386 fra.me.REG[7] = fra.me.REG[5];
29387 /* ./parser//parser.nit:8773 */
29388 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29389 if (UNTAG_Bool(REGB0)) {
29390 } else {
29391 nit_abort("Assert failed", NULL, LOCATE_parser, 8773);
29392 }
29393 /* ./parser//parser.nit:8775 */
29394 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29395 if (UNTAG_Bool(REGB0)) {
29396 } else {
29397 nit_abort("Assert failed", NULL, LOCATE_parser, 8775);
29398 }
29399 /* ./parser//parser.nit:8776 */
29400 fra.me.REG[3] = NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
29401 /* ./parser//parser.nit:8782 */
29402 fra.me.REG[2] = fra.me.REG[3];
29403 /* ./parser//parser.nit:8783 */
29404 REGB0 = TAG_Bool(ATTR_parser___ReduceAction262____goto(fra.me.REG[0])!=NIT_NULL);
29405 if (UNTAG_Bool(REGB0)) {
29406 } else {
29407 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8783);
29408 }
29409 REGB0 = ATTR_parser___ReduceAction262____goto(fra.me.REG[0]);
29410 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29411 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29412 stack_frame_head = fra.me.prev;
29413 return;
29414 }
29415 void parser___ReduceAction262___init(val_t p0, val_t p1, int* init_table){
29416 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction262].i;
29417 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29418 val_t REGB0;
29419 val_t tmp;
29420 if (init_table[itpos256]) return;
29421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29422 fra.me.file = LOCATE_parser;
29423 fra.me.line = 8786;
29424 fra.me.meth = LOCATE_parser___ReduceAction262___init;
29425 fra.me.has_broke = 0;
29426 fra.me.REG_size = 2;
29427 fra.me.REG[0] = NIT_NULL;
29428 fra.me.REG[1] = NIT_NULL;
29429 fra.me.REG[0] = p0;
29430 REGB0 = p1;
29431 /* ./parser//parser.nit:8786 */
29432 fra.me.REG[1] = fra.me.REG[0];
29433 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29434 ATTR_parser___ReduceAction262____goto(fra.me.REG[1]) = REGB0;
29435 stack_frame_head = fra.me.prev;
29436 init_table[itpos256] = 1;
29437 return;
29438 }
29439 void parser___ReduceAction263___action(val_t p0, val_t p1){
29440 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29441 val_t REGB0;
29442 val_t tmp;
29443 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29444 fra.me.file = LOCATE_parser;
29445 fra.me.line = 8790;
29446 fra.me.meth = LOCATE_parser___ReduceAction263___action;
29447 fra.me.has_broke = 0;
29448 fra.me.REG_size = 7;
29449 fra.me.REG[0] = NIT_NULL;
29450 fra.me.REG[1] = NIT_NULL;
29451 fra.me.REG[2] = NIT_NULL;
29452 fra.me.REG[3] = NIT_NULL;
29453 fra.me.REG[4] = NIT_NULL;
29454 fra.me.REG[5] = NIT_NULL;
29455 fra.me.REG[6] = NIT_NULL;
29456 fra.me.REG[0] = p0;
29457 fra.me.REG[1] = p1;
29458 /* ./parser//parser.nit:8792 */
29459 fra.me.REG[2] = NIT_NULL;
29460 /* ./parser//parser.nit:8793 */
29461 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29462 /* ./parser//parser.nit:8794 */
29463 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29464 /* ./parser//parser.nit:8795 */
29465 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29466 /* ./parser//parser.nit:8796 */
29467 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29468 /* ./parser//parser.nit:8797 */
29469 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29470 /* ./parser//parser.nit:8798 */
29471 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29472 /* ./parser//parser.nit:8800 */
29473 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29474 if (UNTAG_Bool(REGB0)) {
29475 } else {
29476 nit_abort("Assert failed", NULL, LOCATE_parser, 8800);
29477 }
29478 /* ./parser//parser.nit:8802 */
29479 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
29480 if (UNTAG_Bool(REGB0)) {
29481 } else {
29482 nit_abort("Assert failed", NULL, LOCATE_parser, 8802);
29483 }
29484 /* ./parser//parser.nit:8804 */
29485 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29486 if (UNTAG_Bool(REGB0)) {
29487 } else {
29488 nit_abort("Assert failed", NULL, LOCATE_parser, 8804);
29489 }
29490 /* ./parser//parser.nit:8806 */
29491 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29492 if (UNTAG_Bool(REGB0)) {
29493 } else {
29494 nit_abort("Assert failed", NULL, LOCATE_parser, 8806);
29495 }
29496 /* ./parser//parser.nit:8807 */
29497 fra.me.REG[3] = NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
29498 /* ./parser//parser.nit:8813 */
29499 fra.me.REG[2] = fra.me.REG[3];
29500 /* ./parser//parser.nit:8814 */
29501 REGB0 = TAG_Bool(ATTR_parser___ReduceAction263____goto(fra.me.REG[0])!=NIT_NULL);
29502 if (UNTAG_Bool(REGB0)) {
29503 } else {
29504 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8814);
29505 }
29506 REGB0 = ATTR_parser___ReduceAction263____goto(fra.me.REG[0]);
29507 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29508 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29509 stack_frame_head = fra.me.prev;
29510 return;
29511 }
29512 void parser___ReduceAction263___init(val_t p0, val_t p1, int* init_table){
29513 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction263].i;
29514 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29515 val_t REGB0;
29516 val_t tmp;
29517 if (init_table[itpos257]) return;
29518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29519 fra.me.file = LOCATE_parser;
29520 fra.me.line = 8817;
29521 fra.me.meth = LOCATE_parser___ReduceAction263___init;
29522 fra.me.has_broke = 0;
29523 fra.me.REG_size = 2;
29524 fra.me.REG[0] = NIT_NULL;
29525 fra.me.REG[1] = NIT_NULL;
29526 fra.me.REG[0] = p0;
29527 REGB0 = p1;
29528 /* ./parser//parser.nit:8817 */
29529 fra.me.REG[1] = fra.me.REG[0];
29530 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29531 ATTR_parser___ReduceAction263____goto(fra.me.REG[1]) = REGB0;
29532 stack_frame_head = fra.me.prev;
29533 init_table[itpos257] = 1;
29534 return;
29535 }
29536 void parser___ReduceAction264___action(val_t p0, val_t p1){
29537 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29538 val_t REGB0;
29539 val_t tmp;
29540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29541 fra.me.file = LOCATE_parser;
29542 fra.me.line = 8821;
29543 fra.me.meth = LOCATE_parser___ReduceAction264___action;
29544 fra.me.has_broke = 0;
29545 fra.me.REG_size = 7;
29546 fra.me.REG[0] = NIT_NULL;
29547 fra.me.REG[1] = NIT_NULL;
29548 fra.me.REG[2] = NIT_NULL;
29549 fra.me.REG[3] = NIT_NULL;
29550 fra.me.REG[4] = NIT_NULL;
29551 fra.me.REG[5] = NIT_NULL;
29552 fra.me.REG[6] = NIT_NULL;
29553 fra.me.REG[0] = p0;
29554 fra.me.REG[1] = p1;
29555 /* ./parser//parser.nit:8823 */
29556 fra.me.REG[2] = NIT_NULL;
29557 /* ./parser//parser.nit:8824 */
29558 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29559 /* ./parser//parser.nit:8825 */
29560 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29561 /* ./parser//parser.nit:8826 */
29562 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29563 /* ./parser//parser.nit:8827 */
29564 fra.me.REG[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29565 /* ./parser//parser.nit:8830 */
29566 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
29567 if (UNTAG_Bool(REGB0)) {
29568 } else {
29569 nit_abort("Assert failed", NULL, LOCATE_parser, 8830);
29570 }
29571 /* ./parser//parser.nit:8832 */
29572 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29573 if (UNTAG_Bool(REGB0)) {
29574 } else {
29575 nit_abort("Assert failed", NULL, LOCATE_parser, 8832);
29576 }
29577 /* ./parser//parser.nit:8834 */
29578 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29579 if (UNTAG_Bool(REGB0)) {
29580 } else {
29581 nit_abort("Assert failed", NULL, LOCATE_parser, 8834);
29582 }
29583 /* ./parser//parser.nit:8835 */
29584 fra.me.REG[3] = NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
29585 /* ./parser//parser.nit:8841 */
29586 fra.me.REG[2] = fra.me.REG[3];
29587 /* ./parser//parser.nit:8842 */
29588 REGB0 = TAG_Bool(ATTR_parser___ReduceAction264____goto(fra.me.REG[0])!=NIT_NULL);
29589 if (UNTAG_Bool(REGB0)) {
29590 } else {
29591 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8842);
29592 }
29593 REGB0 = ATTR_parser___ReduceAction264____goto(fra.me.REG[0]);
29594 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29595 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29596 stack_frame_head = fra.me.prev;
29597 return;
29598 }
29599 void parser___ReduceAction264___init(val_t p0, val_t p1, int* init_table){
29600 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction264].i;
29601 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29602 val_t REGB0;
29603 val_t tmp;
29604 if (init_table[itpos258]) return;
29605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29606 fra.me.file = LOCATE_parser;
29607 fra.me.line = 8845;
29608 fra.me.meth = LOCATE_parser___ReduceAction264___init;
29609 fra.me.has_broke = 0;
29610 fra.me.REG_size = 2;
29611 fra.me.REG[0] = NIT_NULL;
29612 fra.me.REG[1] = NIT_NULL;
29613 fra.me.REG[0] = p0;
29614 REGB0 = p1;
29615 /* ./parser//parser.nit:8845 */
29616 fra.me.REG[1] = fra.me.REG[0];
29617 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29618 ATTR_parser___ReduceAction264____goto(fra.me.REG[1]) = REGB0;
29619 stack_frame_head = fra.me.prev;
29620 init_table[itpos258] = 1;
29621 return;
29622 }
29623 void parser___ReduceAction265___action(val_t p0, val_t p1){
29624 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29625 val_t REGB0;
29626 val_t tmp;
29627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29628 fra.me.file = LOCATE_parser;
29629 fra.me.line = 8849;
29630 fra.me.meth = LOCATE_parser___ReduceAction265___action;
29631 fra.me.has_broke = 0;
29632 fra.me.REG_size = 9;
29633 fra.me.REG[0] = NIT_NULL;
29634 fra.me.REG[1] = NIT_NULL;
29635 fra.me.REG[2] = NIT_NULL;
29636 fra.me.REG[3] = NIT_NULL;
29637 fra.me.REG[4] = NIT_NULL;
29638 fra.me.REG[5] = NIT_NULL;
29639 fra.me.REG[6] = NIT_NULL;
29640 fra.me.REG[7] = NIT_NULL;
29641 fra.me.REG[8] = NIT_NULL;
29642 fra.me.REG[0] = p0;
29643 fra.me.REG[1] = p1;
29644 /* ./parser//parser.nit:8851 */
29645 fra.me.REG[2] = NIT_NULL;
29646 /* ./parser//parser.nit:8852 */
29647 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29648 /* ./parser//parser.nit:8853 */
29649 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29650 /* ./parser//parser.nit:8854 */
29651 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29652 /* ./parser//parser.nit:8855 */
29653 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29654 /* ./parser//parser.nit:8856 */
29655 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29656 /* ./parser//parser.nit:8857 */
29657 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29658 /* ./parser//parser.nit:8858 */
29659 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29660 /* ./parser//parser.nit:8859 */
29661 fra.me.REG[8] = NEW_Array_array___Array___init();
29662 /* ./parser//parser.nit:8861 */
29663 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29664 if (UNTAG_Bool(REGB0)) {
29665 } else {
29666 nit_abort("Assert failed", NULL, LOCATE_parser, 8861);
29667 }
29668 /* ./parser//parser.nit:8863 */
29669 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29670 if (UNTAG_Bool(REGB0)) {
29671 } else {
29672 nit_abort("Assert failed", NULL, LOCATE_parser, 8863);
29673 }
29674 /* ./parser//parser.nit:8865 */
29675 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29676 if (UNTAG_Bool(REGB0)) {
29677 } else {
29678 nit_abort("Assert failed", NULL, LOCATE_parser, 8865);
29679 }
29680 /* ./parser//parser.nit:8866 */
29681 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
29682 fra.me.REG[8] = fra.me.REG[5];
29683 /* ./parser//parser.nit:8868 */
29684 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29685 if (UNTAG_Bool(REGB0)) {
29686 } else {
29687 nit_abort("Assert failed", NULL, LOCATE_parser, 8868);
29688 }
29689 /* ./parser//parser.nit:8870 */
29690 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29691 if (UNTAG_Bool(REGB0)) {
29692 } else {
29693 nit_abort("Assert failed", NULL, LOCATE_parser, 8870);
29694 }
29695 /* ./parser//parser.nit:8871 */
29696 fra.me.REG[3] = NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3]);
29697 /* ./parser//parser.nit:8878 */
29698 fra.me.REG[2] = fra.me.REG[3];
29699 /* ./parser//parser.nit:8879 */
29700 REGB0 = TAG_Bool(ATTR_parser___ReduceAction265____goto(fra.me.REG[0])!=NIT_NULL);
29701 if (UNTAG_Bool(REGB0)) {
29702 } else {
29703 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8879);
29704 }
29705 REGB0 = ATTR_parser___ReduceAction265____goto(fra.me.REG[0]);
29706 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29707 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29708 stack_frame_head = fra.me.prev;
29709 return;
29710 }
29711 void parser___ReduceAction265___init(val_t p0, val_t p1, int* init_table){
29712 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction265].i;
29713 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29714 val_t REGB0;
29715 val_t tmp;
29716 if (init_table[itpos259]) return;
29717 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29718 fra.me.file = LOCATE_parser;
29719 fra.me.line = 8882;
29720 fra.me.meth = LOCATE_parser___ReduceAction265___init;
29721 fra.me.has_broke = 0;
29722 fra.me.REG_size = 2;
29723 fra.me.REG[0] = NIT_NULL;
29724 fra.me.REG[1] = NIT_NULL;
29725 fra.me.REG[0] = p0;
29726 REGB0 = p1;
29727 /* ./parser//parser.nit:8882 */
29728 fra.me.REG[1] = fra.me.REG[0];
29729 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29730 ATTR_parser___ReduceAction265____goto(fra.me.REG[1]) = REGB0;
29731 stack_frame_head = fra.me.prev;
29732 init_table[itpos259] = 1;
29733 return;
29734 }
29735 void parser___ReduceAction266___action(val_t p0, val_t p1){
29736 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29737 val_t REGB0;
29738 val_t tmp;
29739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29740 fra.me.file = LOCATE_parser;
29741 fra.me.line = 8886;
29742 fra.me.meth = LOCATE_parser___ReduceAction266___action;
29743 fra.me.has_broke = 0;
29744 fra.me.REG_size = 9;
29745 fra.me.REG[0] = NIT_NULL;
29746 fra.me.REG[1] = NIT_NULL;
29747 fra.me.REG[2] = NIT_NULL;
29748 fra.me.REG[3] = NIT_NULL;
29749 fra.me.REG[4] = NIT_NULL;
29750 fra.me.REG[5] = NIT_NULL;
29751 fra.me.REG[6] = NIT_NULL;
29752 fra.me.REG[7] = NIT_NULL;
29753 fra.me.REG[8] = NIT_NULL;
29754 fra.me.REG[0] = p0;
29755 fra.me.REG[1] = p1;
29756 /* ./parser//parser.nit:8888 */
29757 fra.me.REG[2] = NIT_NULL;
29758 /* ./parser//parser.nit:8889 */
29759 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29760 /* ./parser//parser.nit:8890 */
29761 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29762 /* ./parser//parser.nit:8891 */
29763 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29764 /* ./parser//parser.nit:8892 */
29765 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29766 /* ./parser//parser.nit:8893 */
29767 fra.me.REG[7] = NEW_Array_array___Array___init();
29768 /* ./parser//parser.nit:8894 */
29769 fra.me.REG[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29770 /* ./parser//parser.nit:8897 */
29771 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29772 if (UNTAG_Bool(REGB0)) {
29773 } else {
29774 nit_abort("Assert failed", NULL, LOCATE_parser, 8897);
29775 }
29776 /* ./parser//parser.nit:8899 */
29777 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29778 if (UNTAG_Bool(REGB0)) {
29779 } else {
29780 nit_abort("Assert failed", NULL, LOCATE_parser, 8899);
29781 }
29782 /* ./parser//parser.nit:8900 */
29783 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29784 fra.me.REG[7] = fra.me.REG[5];
29785 /* ./parser//parser.nit:8902 */
29786 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29787 if (UNTAG_Bool(REGB0)) {
29788 } else {
29789 nit_abort("Assert failed", NULL, LOCATE_parser, 8902);
29790 }
29791 /* ./parser//parser.nit:8904 */
29792 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29793 if (UNTAG_Bool(REGB0)) {
29794 } else {
29795 nit_abort("Assert failed", NULL, LOCATE_parser, 8904);
29796 }
29797 /* ./parser//parser.nit:8905 */
29798 fra.me.REG[3] = NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[8], fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
29799 /* ./parser//parser.nit:8912 */
29800 fra.me.REG[2] = fra.me.REG[3];
29801 /* ./parser//parser.nit:8913 */
29802 REGB0 = TAG_Bool(ATTR_parser___ReduceAction266____goto(fra.me.REG[0])!=NIT_NULL);
29803 if (UNTAG_Bool(REGB0)) {
29804 } else {
29805 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8913);
29806 }
29807 REGB0 = ATTR_parser___ReduceAction266____goto(fra.me.REG[0]);
29808 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29809 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29810 stack_frame_head = fra.me.prev;
29811 return;
29812 }
29813 void parser___ReduceAction266___init(val_t p0, val_t p1, int* init_table){
29814 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction266].i;
29815 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29816 val_t REGB0;
29817 val_t tmp;
29818 if (init_table[itpos260]) return;
29819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29820 fra.me.file = LOCATE_parser;
29821 fra.me.line = 8916;
29822 fra.me.meth = LOCATE_parser___ReduceAction266___init;
29823 fra.me.has_broke = 0;
29824 fra.me.REG_size = 2;
29825 fra.me.REG[0] = NIT_NULL;
29826 fra.me.REG[1] = NIT_NULL;
29827 fra.me.REG[0] = p0;
29828 REGB0 = p1;
29829 /* ./parser//parser.nit:8916 */
29830 fra.me.REG[1] = fra.me.REG[0];
29831 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29832 ATTR_parser___ReduceAction266____goto(fra.me.REG[1]) = REGB0;
29833 stack_frame_head = fra.me.prev;
29834 init_table[itpos260] = 1;
29835 return;
29836 }
29837 void parser___ReduceAction267___action(val_t p0, val_t p1){
29838 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
29839 val_t REGB0;
29840 val_t tmp;
29841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29842 fra.me.file = LOCATE_parser;
29843 fra.me.line = 8920;
29844 fra.me.meth = LOCATE_parser___ReduceAction267___action;
29845 fra.me.has_broke = 0;
29846 fra.me.REG_size = 8;
29847 fra.me.REG[0] = NIT_NULL;
29848 fra.me.REG[1] = NIT_NULL;
29849 fra.me.REG[2] = NIT_NULL;
29850 fra.me.REG[3] = NIT_NULL;
29851 fra.me.REG[4] = NIT_NULL;
29852 fra.me.REG[5] = NIT_NULL;
29853 fra.me.REG[6] = NIT_NULL;
29854 fra.me.REG[7] = NIT_NULL;
29855 fra.me.REG[0] = p0;
29856 fra.me.REG[1] = p1;
29857 /* ./parser//parser.nit:8922 */
29858 fra.me.REG[2] = NIT_NULL;
29859 /* ./parser//parser.nit:8923 */
29860 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29861 /* ./parser//parser.nit:8924 */
29862 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29863 /* ./parser//parser.nit:8925 */
29864 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29865 /* ./parser//parser.nit:8926 */
29866 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29867 /* ./parser//parser.nit:8927 */
29868 fra.me.REG[7] = NEW_Array_array___Array___init();
29869 /* ./parser//parser.nit:8929 */
29870 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29871 if (UNTAG_Bool(REGB0)) {
29872 } else {
29873 nit_abort("Assert failed", NULL, LOCATE_parser, 8929);
29874 }
29875 /* ./parser//parser.nit:8931 */
29876 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29877 if (UNTAG_Bool(REGB0)) {
29878 } else {
29879 nit_abort("Assert failed", NULL, LOCATE_parser, 8931);
29880 }
29881 /* ./parser//parser.nit:8932 */
29882 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29883 fra.me.REG[7] = fra.me.REG[5];
29884 /* ./parser//parser.nit:8934 */
29885 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29886 if (UNTAG_Bool(REGB0)) {
29887 } else {
29888 nit_abort("Assert failed", NULL, LOCATE_parser, 8934);
29889 }
29890 /* ./parser//parser.nit:8936 */
29891 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29892 if (UNTAG_Bool(REGB0)) {
29893 } else {
29894 nit_abort("Assert failed", NULL, LOCATE_parser, 8936);
29895 }
29896 /* ./parser//parser.nit:8937 */
29897 fra.me.REG[3] = NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
29898 /* ./parser//parser.nit:8943 */
29899 fra.me.REG[2] = fra.me.REG[3];
29900 /* ./parser//parser.nit:8944 */
29901 REGB0 = TAG_Bool(ATTR_parser___ReduceAction267____goto(fra.me.REG[0])!=NIT_NULL);
29902 if (UNTAG_Bool(REGB0)) {
29903 } else {
29904 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8944);
29905 }
29906 REGB0 = ATTR_parser___ReduceAction267____goto(fra.me.REG[0]);
29907 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29908 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29909 stack_frame_head = fra.me.prev;
29910 return;
29911 }
29912 void parser___ReduceAction267___init(val_t p0, val_t p1, int* init_table){
29913 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction267].i;
29914 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29915 val_t REGB0;
29916 val_t tmp;
29917 if (init_table[itpos261]) return;
29918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29919 fra.me.file = LOCATE_parser;
29920 fra.me.line = 8947;
29921 fra.me.meth = LOCATE_parser___ReduceAction267___init;
29922 fra.me.has_broke = 0;
29923 fra.me.REG_size = 2;
29924 fra.me.REG[0] = NIT_NULL;
29925 fra.me.REG[1] = NIT_NULL;
29926 fra.me.REG[0] = p0;
29927 REGB0 = p1;
29928 /* ./parser//parser.nit:8947 */
29929 fra.me.REG[1] = fra.me.REG[0];
29930 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29931 ATTR_parser___ReduceAction267____goto(fra.me.REG[1]) = REGB0;
29932 stack_frame_head = fra.me.prev;
29933 init_table[itpos261] = 1;
29934 return;
29935 }
29936 void parser___ReduceAction268___action(val_t p0, val_t p1){
29937 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29938 val_t REGB0;
29939 val_t tmp;
29940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29941 fra.me.file = LOCATE_parser;
29942 fra.me.line = 8951;
29943 fra.me.meth = LOCATE_parser___ReduceAction268___action;
29944 fra.me.has_broke = 0;
29945 fra.me.REG_size = 4;
29946 fra.me.REG[0] = NIT_NULL;
29947 fra.me.REG[1] = NIT_NULL;
29948 fra.me.REG[2] = NIT_NULL;
29949 fra.me.REG[3] = NIT_NULL;
29950 fra.me.REG[0] = p0;
29951 fra.me.REG[1] = p1;
29952 /* ./parser//parser.nit:8953 */
29953 fra.me.REG[2] = NIT_NULL;
29954 /* ./parser//parser.nit:8954 */
29955 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29956 /* ./parser//parser.nit:8956 */
29957 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TPluseq, ID_TPluseq)) /*cast nullable TPluseq*/;
29958 if (UNTAG_Bool(REGB0)) {
29959 } else {
29960 nit_abort("Assert failed", NULL, LOCATE_parser, 8956);
29961 }
29962 /* ./parser//parser.nit:8957 */
29963 fra.me.REG[3] = NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop(fra.me.REG[3]);
29964 /* ./parser//parser.nit:8960 */
29965 fra.me.REG[2] = fra.me.REG[3];
29966 /* ./parser//parser.nit:8961 */
29967 REGB0 = TAG_Bool(ATTR_parser___ReduceAction268____goto(fra.me.REG[0])!=NIT_NULL);
29968 if (UNTAG_Bool(REGB0)) {
29969 } else {
29970 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8961);
29971 }
29972 REGB0 = ATTR_parser___ReduceAction268____goto(fra.me.REG[0]);
29973 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29974 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29975 stack_frame_head = fra.me.prev;
29976 return;
29977 }
29978 void parser___ReduceAction268___init(val_t p0, val_t p1, int* init_table){
29979 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction268].i;
29980 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29981 val_t REGB0;
29982 val_t tmp;
29983 if (init_table[itpos262]) return;
29984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29985 fra.me.file = LOCATE_parser;
29986 fra.me.line = 8964;
29987 fra.me.meth = LOCATE_parser___ReduceAction268___init;
29988 fra.me.has_broke = 0;
29989 fra.me.REG_size = 2;
29990 fra.me.REG[0] = NIT_NULL;
29991 fra.me.REG[1] = NIT_NULL;
29992 fra.me.REG[0] = p0;
29993 REGB0 = p1;
29994 /* ./parser//parser.nit:8964 */
29995 fra.me.REG[1] = fra.me.REG[0];
29996 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29997 ATTR_parser___ReduceAction268____goto(fra.me.REG[1]) = REGB0;
29998 stack_frame_head = fra.me.prev;
29999 init_table[itpos262] = 1;
30000 return;
30001 }
30002 void parser___ReduceAction269___action(val_t p0, val_t p1){
30003 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30004 val_t REGB0;
30005 val_t tmp;
30006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30007 fra.me.file = LOCATE_parser;
30008 fra.me.line = 8968;
30009 fra.me.meth = LOCATE_parser___ReduceAction269___action;
30010 fra.me.has_broke = 0;
30011 fra.me.REG_size = 4;
30012 fra.me.REG[0] = NIT_NULL;
30013 fra.me.REG[1] = NIT_NULL;
30014 fra.me.REG[2] = NIT_NULL;
30015 fra.me.REG[3] = NIT_NULL;
30016 fra.me.REG[0] = p0;
30017 fra.me.REG[1] = p1;
30018 /* ./parser//parser.nit:8970 */
30019 fra.me.REG[2] = NIT_NULL;
30020 /* ./parser//parser.nit:8971 */
30021 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30022 /* ./parser//parser.nit:8973 */
30023 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TMinuseq, ID_TMinuseq)) /*cast nullable TMinuseq*/;
30024 if (UNTAG_Bool(REGB0)) {
30025 } else {
30026 nit_abort("Assert failed", NULL, LOCATE_parser, 8973);
30027 }
30028 /* ./parser//parser.nit:8974 */
30029 fra.me.REG[3] = NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop(fra.me.REG[3]);
30030 /* ./parser//parser.nit:8977 */
30031 fra.me.REG[2] = fra.me.REG[3];
30032 /* ./parser//parser.nit:8978 */
30033 REGB0 = TAG_Bool(ATTR_parser___ReduceAction269____goto(fra.me.REG[0])!=NIT_NULL);
30034 if (UNTAG_Bool(REGB0)) {
30035 } else {
30036 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8978);
30037 }
30038 REGB0 = ATTR_parser___ReduceAction269____goto(fra.me.REG[0]);
30039 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30040 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30041 stack_frame_head = fra.me.prev;
30042 return;
30043 }
30044 void parser___ReduceAction269___init(val_t p0, val_t p1, int* init_table){
30045 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction269].i;
30046 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30047 val_t REGB0;
30048 val_t tmp;
30049 if (init_table[itpos263]) return;
30050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30051 fra.me.file = LOCATE_parser;
30052 fra.me.line = 8981;
30053 fra.me.meth = LOCATE_parser___ReduceAction269___init;
30054 fra.me.has_broke = 0;
30055 fra.me.REG_size = 2;
30056 fra.me.REG[0] = NIT_NULL;
30057 fra.me.REG[1] = NIT_NULL;
30058 fra.me.REG[0] = p0;
30059 REGB0 = p1;
30060 /* ./parser//parser.nit:8981 */
30061 fra.me.REG[1] = fra.me.REG[0];
30062 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30063 ATTR_parser___ReduceAction269____goto(fra.me.REG[1]) = REGB0;
30064 stack_frame_head = fra.me.prev;
30065 init_table[itpos263] = 1;
30066 return;
30067 }
30068 void parser___ReduceAction270___action(val_t p0, val_t p1){
30069 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30070 val_t REGB0;
30071 val_t tmp;
30072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30073 fra.me.file = LOCATE_parser;
30074 fra.me.line = 8985;
30075 fra.me.meth = LOCATE_parser___ReduceAction270___action;
30076 fra.me.has_broke = 0;
30077 fra.me.REG_size = 6;
30078 fra.me.REG[0] = NIT_NULL;
30079 fra.me.REG[1] = NIT_NULL;
30080 fra.me.REG[2] = NIT_NULL;
30081 fra.me.REG[3] = NIT_NULL;
30082 fra.me.REG[4] = NIT_NULL;
30083 fra.me.REG[5] = NIT_NULL;
30084 fra.me.REG[0] = p0;
30085 fra.me.REG[1] = p1;
30086 /* ./parser//parser.nit:8987 */
30087 fra.me.REG[2] = NIT_NULL;
30088 /* ./parser//parser.nit:8988 */
30089 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30090 /* ./parser//parser.nit:8989 */
30091 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30092 /* ./parser//parser.nit:8990 */
30093 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30094 /* ./parser//parser.nit:8992 */
30095 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
30096 if (UNTAG_Bool(REGB0)) {
30097 } else {
30098 nit_abort("Assert failed", NULL, LOCATE_parser, 8992);
30099 }
30100 /* ./parser//parser.nit:8994 */
30101 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30102 if (UNTAG_Bool(REGB0)) {
30103 } else {
30104 nit_abort("Assert failed", NULL, LOCATE_parser, 8994);
30105 }
30106 /* ./parser//parser.nit:8996 */
30107 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
30108 if (UNTAG_Bool(REGB0)) {
30109 } else {
30110 nit_abort("Assert failed", NULL, LOCATE_parser, 8996);
30111 }
30112 /* ./parser//parser.nit:8997 */
30113 fra.me.REG[3] = NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30114 /* ./parser//parser.nit:9002 */
30115 fra.me.REG[2] = fra.me.REG[3];
30116 /* ./parser//parser.nit:9003 */
30117 REGB0 = TAG_Bool(ATTR_parser___ReduceAction270____goto(fra.me.REG[0])!=NIT_NULL);
30118 if (UNTAG_Bool(REGB0)) {
30119 } else {
30120 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9003);
30121 }
30122 REGB0 = ATTR_parser___ReduceAction270____goto(fra.me.REG[0]);
30123 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30124 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30125 stack_frame_head = fra.me.prev;
30126 return;
30127 }
30128 void parser___ReduceAction270___init(val_t p0, val_t p1, int* init_table){
30129 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction270].i;
30130 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30131 val_t REGB0;
30132 val_t tmp;
30133 if (init_table[itpos264]) return;
30134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30135 fra.me.file = LOCATE_parser;
30136 fra.me.line = 9006;
30137 fra.me.meth = LOCATE_parser___ReduceAction270___init;
30138 fra.me.has_broke = 0;
30139 fra.me.REG_size = 2;
30140 fra.me.REG[0] = NIT_NULL;
30141 fra.me.REG[1] = NIT_NULL;
30142 fra.me.REG[0] = p0;
30143 REGB0 = p1;
30144 /* ./parser//parser.nit:9006 */
30145 fra.me.REG[1] = fra.me.REG[0];
30146 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30147 ATTR_parser___ReduceAction270____goto(fra.me.REG[1]) = REGB0;
30148 stack_frame_head = fra.me.prev;
30149 init_table[itpos264] = 1;
30150 return;
30151 }
30152 void parser___ReduceAction271___action(val_t p0, val_t p1){
30153 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30154 val_t REGB0;
30155 val_t tmp;
30156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30157 fra.me.file = LOCATE_parser;
30158 fra.me.line = 9010;
30159 fra.me.meth = LOCATE_parser___ReduceAction271___action;
30160 fra.me.has_broke = 0;
30161 fra.me.REG_size = 5;
30162 fra.me.REG[0] = NIT_NULL;
30163 fra.me.REG[1] = NIT_NULL;
30164 fra.me.REG[2] = NIT_NULL;
30165 fra.me.REG[3] = NIT_NULL;
30166 fra.me.REG[4] = NIT_NULL;
30167 fra.me.REG[0] = p0;
30168 fra.me.REG[1] = p1;
30169 /* ./parser//parser.nit:9012 */
30170 fra.me.REG[2] = NIT_NULL;
30171 /* ./parser//parser.nit:9013 */
30172 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30173 /* ./parser//parser.nit:9014 */
30174 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30175 /* ./parser//parser.nit:9016 */
30176 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
30177 if (UNTAG_Bool(REGB0)) {
30178 } else {
30179 nit_abort("Assert failed", NULL, LOCATE_parser, 9016);
30180 }
30181 /* ./parser//parser.nit:9018 */
30182 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30183 if (UNTAG_Bool(REGB0)) {
30184 } else {
30185 nit_abort("Assert failed", NULL, LOCATE_parser, 9018);
30186 }
30187 /* ./parser//parser.nit:9019 */
30188 fra.me.REG[3] = NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
30189 /* ./parser//parser.nit:9024 */
30190 fra.me.REG[2] = fra.me.REG[3];
30191 /* ./parser//parser.nit:9025 */
30192 REGB0 = TAG_Bool(ATTR_parser___ReduceAction271____goto(fra.me.REG[0])!=NIT_NULL);
30193 if (UNTAG_Bool(REGB0)) {
30194 } else {
30195 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9025);
30196 }
30197 REGB0 = ATTR_parser___ReduceAction271____goto(fra.me.REG[0]);
30198 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30199 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30200 stack_frame_head = fra.me.prev;
30201 return;
30202 }
30203 void parser___ReduceAction271___init(val_t p0, val_t p1, int* init_table){
30204 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction271].i;
30205 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30206 val_t REGB0;
30207 val_t tmp;
30208 if (init_table[itpos265]) return;
30209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30210 fra.me.file = LOCATE_parser;
30211 fra.me.line = 9028;
30212 fra.me.meth = LOCATE_parser___ReduceAction271___init;
30213 fra.me.has_broke = 0;
30214 fra.me.REG_size = 2;
30215 fra.me.REG[0] = NIT_NULL;
30216 fra.me.REG[1] = NIT_NULL;
30217 fra.me.REG[0] = p0;
30218 REGB0 = p1;
30219 /* ./parser//parser.nit:9028 */
30220 fra.me.REG[1] = fra.me.REG[0];
30221 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30222 ATTR_parser___ReduceAction271____goto(fra.me.REG[1]) = REGB0;
30223 stack_frame_head = fra.me.prev;
30224 init_table[itpos265] = 1;
30225 return;
30226 }
30227 void parser___ReduceAction272___action(val_t p0, val_t p1){
30228 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30229 val_t REGB0;
30230 val_t tmp;
30231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30232 fra.me.file = LOCATE_parser;
30233 fra.me.line = 9032;
30234 fra.me.meth = LOCATE_parser___ReduceAction272___action;
30235 fra.me.has_broke = 0;
30236 fra.me.REG_size = 7;
30237 fra.me.REG[0] = NIT_NULL;
30238 fra.me.REG[1] = NIT_NULL;
30239 fra.me.REG[2] = NIT_NULL;
30240 fra.me.REG[3] = NIT_NULL;
30241 fra.me.REG[4] = NIT_NULL;
30242 fra.me.REG[5] = NIT_NULL;
30243 fra.me.REG[6] = NIT_NULL;
30244 fra.me.REG[0] = p0;
30245 fra.me.REG[1] = p1;
30246 /* ./parser//parser.nit:9034 */
30247 fra.me.REG[2] = NIT_NULL;
30248 /* ./parser//parser.nit:9035 */
30249 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30250 /* ./parser//parser.nit:9036 */
30251 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30252 /* ./parser//parser.nit:9037 */
30253 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30254 /* ./parser//parser.nit:9038 */
30255 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30256 /* ./parser//parser.nit:9039 */
30257 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30258 /* ./parser//parser.nit:9040 */
30259 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30260 /* ./parser//parser.nit:9041 */
30261 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30262 /* ./parser//parser.nit:9042 */
30263 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30264 /* ./parser//parser.nit:9044 */
30265 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30266 if (UNTAG_Bool(REGB0)) {
30267 } else {
30268 nit_abort("Assert failed", NULL, LOCATE_parser, 9044);
30269 }
30270 /* ./parser//parser.nit:9046 */
30271 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30272 if (UNTAG_Bool(REGB0)) {
30273 } else {
30274 nit_abort("Assert failed", NULL, LOCATE_parser, 9046);
30275 }
30276 /* ./parser//parser.nit:9048 */
30277 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30278 if (UNTAG_Bool(REGB0)) {
30279 } else {
30280 nit_abort("Assert failed", NULL, LOCATE_parser, 9048);
30281 }
30282 /* ./parser//parser.nit:9050 */
30283 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30284 if (UNTAG_Bool(REGB0)) {
30285 } else {
30286 nit_abort("Assert failed", NULL, LOCATE_parser, 9050);
30287 }
30288 /* ./parser//parser.nit:9051 */
30289 fra.me.REG[3] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30290 /* ./parser//parser.nit:9057 */
30291 fra.me.REG[2] = fra.me.REG[3];
30292 /* ./parser//parser.nit:9058 */
30293 REGB0 = TAG_Bool(ATTR_parser___ReduceAction272____goto(fra.me.REG[0])!=NIT_NULL);
30294 if (UNTAG_Bool(REGB0)) {
30295 } else {
30296 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9058);
30297 }
30298 REGB0 = ATTR_parser___ReduceAction272____goto(fra.me.REG[0]);
30299 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30300 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30301 stack_frame_head = fra.me.prev;
30302 return;
30303 }
30304 void parser___ReduceAction272___init(val_t p0, val_t p1, int* init_table){
30305 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction272].i;
30306 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30307 val_t REGB0;
30308 val_t tmp;
30309 if (init_table[itpos266]) return;
30310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30311 fra.me.file = LOCATE_parser;
30312 fra.me.line = 9061;
30313 fra.me.meth = LOCATE_parser___ReduceAction272___init;
30314 fra.me.has_broke = 0;
30315 fra.me.REG_size = 2;
30316 fra.me.REG[0] = NIT_NULL;
30317 fra.me.REG[1] = NIT_NULL;
30318 fra.me.REG[0] = p0;
30319 REGB0 = p1;
30320 /* ./parser//parser.nit:9061 */
30321 fra.me.REG[1] = fra.me.REG[0];
30322 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30323 ATTR_parser___ReduceAction272____goto(fra.me.REG[1]) = REGB0;
30324 stack_frame_head = fra.me.prev;
30325 init_table[itpos266] = 1;
30326 return;
30327 }
30328 void parser___ReduceAction273___action(val_t p0, val_t p1){
30329 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30330 val_t REGB0;
30331 val_t tmp;
30332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30333 fra.me.file = LOCATE_parser;
30334 fra.me.line = 9065;
30335 fra.me.meth = LOCATE_parser___ReduceAction273___action;
30336 fra.me.has_broke = 0;
30337 fra.me.REG_size = 6;
30338 fra.me.REG[0] = NIT_NULL;
30339 fra.me.REG[1] = NIT_NULL;
30340 fra.me.REG[2] = NIT_NULL;
30341 fra.me.REG[3] = NIT_NULL;
30342 fra.me.REG[4] = NIT_NULL;
30343 fra.me.REG[5] = NIT_NULL;
30344 fra.me.REG[0] = p0;
30345 fra.me.REG[1] = p1;
30346 /* ./parser//parser.nit:9067 */
30347 fra.me.REG[2] = NIT_NULL;
30348 /* ./parser//parser.nit:9068 */
30349 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30350 /* ./parser//parser.nit:9069 */
30351 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30352 /* ./parser//parser.nit:9070 */
30353 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30354 /* ./parser//parser.nit:9071 */
30355 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30356 /* ./parser//parser.nit:9072 */
30357 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30358 /* ./parser//parser.nit:9073 */
30359 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30360 /* ./parser//parser.nit:9075 */
30361 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30362 if (UNTAG_Bool(REGB0)) {
30363 } else {
30364 nit_abort("Assert failed", NULL, LOCATE_parser, 9075);
30365 }
30366 /* ./parser//parser.nit:9077 */
30367 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30368 if (UNTAG_Bool(REGB0)) {
30369 } else {
30370 nit_abort("Assert failed", NULL, LOCATE_parser, 9077);
30371 }
30372 /* ./parser//parser.nit:9079 */
30373 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30374 if (UNTAG_Bool(REGB0)) {
30375 } else {
30376 nit_abort("Assert failed", NULL, LOCATE_parser, 9079);
30377 }
30378 /* ./parser//parser.nit:9080 */
30379 fra.me.REG[3] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
30380 /* ./parser//parser.nit:9086 */
30381 fra.me.REG[2] = fra.me.REG[3];
30382 /* ./parser//parser.nit:9087 */
30383 REGB0 = TAG_Bool(ATTR_parser___ReduceAction273____goto(fra.me.REG[0])!=NIT_NULL);
30384 if (UNTAG_Bool(REGB0)) {
30385 } else {
30386 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9087);
30387 }
30388 REGB0 = ATTR_parser___ReduceAction273____goto(fra.me.REG[0]);
30389 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30390 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30391 stack_frame_head = fra.me.prev;
30392 return;
30393 }
30394 void parser___ReduceAction273___init(val_t p0, val_t p1, int* init_table){
30395 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction273].i;
30396 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30397 val_t REGB0;
30398 val_t tmp;
30399 if (init_table[itpos267]) return;
30400 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30401 fra.me.file = LOCATE_parser;
30402 fra.me.line = 9090;
30403 fra.me.meth = LOCATE_parser___ReduceAction273___init;
30404 fra.me.has_broke = 0;
30405 fra.me.REG_size = 2;
30406 fra.me.REG[0] = NIT_NULL;
30407 fra.me.REG[1] = NIT_NULL;
30408 fra.me.REG[0] = p0;
30409 REGB0 = p1;
30410 /* ./parser//parser.nit:9090 */
30411 fra.me.REG[1] = fra.me.REG[0];
30412 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30413 ATTR_parser___ReduceAction273____goto(fra.me.REG[1]) = REGB0;
30414 stack_frame_head = fra.me.prev;
30415 init_table[itpos267] = 1;
30416 return;
30417 }
30418 void parser___ReduceAction274___action(val_t p0, val_t p1){
30419 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30420 val_t REGB0;
30421 val_t tmp;
30422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30423 fra.me.file = LOCATE_parser;
30424 fra.me.line = 9094;
30425 fra.me.meth = LOCATE_parser___ReduceAction274___action;
30426 fra.me.has_broke = 0;
30427 fra.me.REG_size = 7;
30428 fra.me.REG[0] = NIT_NULL;
30429 fra.me.REG[1] = NIT_NULL;
30430 fra.me.REG[2] = NIT_NULL;
30431 fra.me.REG[3] = NIT_NULL;
30432 fra.me.REG[4] = NIT_NULL;
30433 fra.me.REG[5] = NIT_NULL;
30434 fra.me.REG[6] = NIT_NULL;
30435 fra.me.REG[0] = p0;
30436 fra.me.REG[1] = p1;
30437 /* ./parser//parser.nit:9096 */
30438 fra.me.REG[2] = NIT_NULL;
30439 /* ./parser//parser.nit:9097 */
30440 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30441 /* ./parser//parser.nit:9098 */
30442 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30443 /* ./parser//parser.nit:9099 */
30444 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30445 /* ./parser//parser.nit:9100 */
30446 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30447 /* ./parser//parser.nit:9101 */
30448 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30449 /* ./parser//parser.nit:9102 */
30450 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30451 /* ./parser//parser.nit:9103 */
30452 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30453 /* ./parser//parser.nit:9104 */
30454 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30455 /* ./parser//parser.nit:9106 */
30456 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30457 if (UNTAG_Bool(REGB0)) {
30458 } else {
30459 nit_abort("Assert failed", NULL, LOCATE_parser, 9106);
30460 }
30461 /* ./parser//parser.nit:9108 */
30462 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30463 if (UNTAG_Bool(REGB0)) {
30464 } else {
30465 nit_abort("Assert failed", NULL, LOCATE_parser, 9108);
30466 }
30467 /* ./parser//parser.nit:9110 */
30468 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30469 if (UNTAG_Bool(REGB0)) {
30470 } else {
30471 nit_abort("Assert failed", NULL, LOCATE_parser, 9110);
30472 }
30473 /* ./parser//parser.nit:9112 */
30474 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30475 if (UNTAG_Bool(REGB0)) {
30476 } else {
30477 nit_abort("Assert failed", NULL, LOCATE_parser, 9112);
30478 }
30479 /* ./parser//parser.nit:9113 */
30480 fra.me.REG[3] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30481 /* ./parser//parser.nit:9119 */
30482 fra.me.REG[2] = fra.me.REG[3];
30483 /* ./parser//parser.nit:9120 */
30484 REGB0 = TAG_Bool(ATTR_parser___ReduceAction274____goto(fra.me.REG[0])!=NIT_NULL);
30485 if (UNTAG_Bool(REGB0)) {
30486 } else {
30487 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9120);
30488 }
30489 REGB0 = ATTR_parser___ReduceAction274____goto(fra.me.REG[0]);
30490 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30491 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30492 stack_frame_head = fra.me.prev;
30493 return;
30494 }
30495 void parser___ReduceAction274___init(val_t p0, val_t p1, int* init_table){
30496 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction274].i;
30497 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30498 val_t REGB0;
30499 val_t tmp;
30500 if (init_table[itpos268]) return;
30501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30502 fra.me.file = LOCATE_parser;
30503 fra.me.line = 9123;
30504 fra.me.meth = LOCATE_parser___ReduceAction274___init;
30505 fra.me.has_broke = 0;
30506 fra.me.REG_size = 2;
30507 fra.me.REG[0] = NIT_NULL;
30508 fra.me.REG[1] = NIT_NULL;
30509 fra.me.REG[0] = p0;
30510 REGB0 = p1;
30511 /* ./parser//parser.nit:9123 */
30512 fra.me.REG[1] = fra.me.REG[0];
30513 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30514 ATTR_parser___ReduceAction274____goto(fra.me.REG[1]) = REGB0;
30515 stack_frame_head = fra.me.prev;
30516 init_table[itpos268] = 1;
30517 return;
30518 }
30519 void parser___ReduceAction275___action(val_t p0, val_t p1){
30520 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30521 val_t REGB0;
30522 val_t tmp;
30523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30524 fra.me.file = LOCATE_parser;
30525 fra.me.line = 9127;
30526 fra.me.meth = LOCATE_parser___ReduceAction275___action;
30527 fra.me.has_broke = 0;
30528 fra.me.REG_size = 6;
30529 fra.me.REG[0] = NIT_NULL;
30530 fra.me.REG[1] = NIT_NULL;
30531 fra.me.REG[2] = NIT_NULL;
30532 fra.me.REG[3] = NIT_NULL;
30533 fra.me.REG[4] = NIT_NULL;
30534 fra.me.REG[5] = NIT_NULL;
30535 fra.me.REG[0] = p0;
30536 fra.me.REG[1] = p1;
30537 /* ./parser//parser.nit:9129 */
30538 fra.me.REG[2] = NIT_NULL;
30539 /* ./parser//parser.nit:9130 */
30540 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30541 /* ./parser//parser.nit:9131 */
30542 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30543 /* ./parser//parser.nit:9132 */
30544 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30545 /* ./parser//parser.nit:9133 */
30546 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30547 /* ./parser//parser.nit:9134 */
30548 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30549 /* ./parser//parser.nit:9135 */
30550 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30551 /* ./parser//parser.nit:9137 */
30552 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30553 if (UNTAG_Bool(REGB0)) {
30554 } else {
30555 nit_abort("Assert failed", NULL, LOCATE_parser, 9137);
30556 }
30557 /* ./parser//parser.nit:9139 */
30558 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30559 if (UNTAG_Bool(REGB0)) {
30560 } else {
30561 nit_abort("Assert failed", NULL, LOCATE_parser, 9139);
30562 }
30563 /* ./parser//parser.nit:9141 */
30564 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30565 if (UNTAG_Bool(REGB0)) {
30566 } else {
30567 nit_abort("Assert failed", NULL, LOCATE_parser, 9141);
30568 }
30569 /* ./parser//parser.nit:9142 */
30570 fra.me.REG[3] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
30571 /* ./parser//parser.nit:9148 */
30572 fra.me.REG[2] = fra.me.REG[3];
30573 /* ./parser//parser.nit:9149 */
30574 REGB0 = TAG_Bool(ATTR_parser___ReduceAction275____goto(fra.me.REG[0])!=NIT_NULL);
30575 if (UNTAG_Bool(REGB0)) {
30576 } else {
30577 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9149);
30578 }
30579 REGB0 = ATTR_parser___ReduceAction275____goto(fra.me.REG[0]);
30580 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30581 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30582 stack_frame_head = fra.me.prev;
30583 return;
30584 }
30585 void parser___ReduceAction275___init(val_t p0, val_t p1, int* init_table){
30586 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction275].i;
30587 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30588 val_t REGB0;
30589 val_t tmp;
30590 if (init_table[itpos269]) return;
30591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30592 fra.me.file = LOCATE_parser;
30593 fra.me.line = 9152;
30594 fra.me.meth = LOCATE_parser___ReduceAction275___init;
30595 fra.me.has_broke = 0;
30596 fra.me.REG_size = 2;
30597 fra.me.REG[0] = NIT_NULL;
30598 fra.me.REG[1] = NIT_NULL;
30599 fra.me.REG[0] = p0;
30600 REGB0 = p1;
30601 /* ./parser//parser.nit:9152 */
30602 fra.me.REG[1] = fra.me.REG[0];
30603 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30604 ATTR_parser___ReduceAction275____goto(fra.me.REG[1]) = REGB0;
30605 stack_frame_head = fra.me.prev;
30606 init_table[itpos269] = 1;
30607 return;
30608 }
30609 void parser___ReduceAction276___action(val_t p0, val_t p1){
30610 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30611 val_t REGB0;
30612 val_t tmp;
30613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30614 fra.me.file = LOCATE_parser;
30615 fra.me.line = 9156;
30616 fra.me.meth = LOCATE_parser___ReduceAction276___action;
30617 fra.me.has_broke = 0;
30618 fra.me.REG_size = 6;
30619 fra.me.REG[0] = NIT_NULL;
30620 fra.me.REG[1] = NIT_NULL;
30621 fra.me.REG[2] = NIT_NULL;
30622 fra.me.REG[3] = NIT_NULL;
30623 fra.me.REG[4] = NIT_NULL;
30624 fra.me.REG[5] = NIT_NULL;
30625 fra.me.REG[0] = p0;
30626 fra.me.REG[1] = p1;
30627 /* ./parser//parser.nit:9158 */
30628 fra.me.REG[2] = NIT_NULL;
30629 /* ./parser//parser.nit:9159 */
30630 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30631 /* ./parser//parser.nit:9160 */
30632 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30633 /* ./parser//parser.nit:9161 */
30634 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30635 /* ./parser//parser.nit:9162 */
30636 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30637 /* ./parser//parser.nit:9163 */
30638 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30639 /* ./parser//parser.nit:9164 */
30640 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30641 /* ./parser//parser.nit:9165 */
30642 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30643 /* ./parser//parser.nit:9167 */
30644 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30645 if (UNTAG_Bool(REGB0)) {
30646 } else {
30647 nit_abort("Assert failed", NULL, LOCATE_parser, 9167);
30648 }
30649 /* ./parser//parser.nit:9169 */
30650 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30651 if (UNTAG_Bool(REGB0)) {
30652 } else {
30653 nit_abort("Assert failed", NULL, LOCATE_parser, 9169);
30654 }
30655 /* ./parser//parser.nit:9171 */
30656 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30657 if (UNTAG_Bool(REGB0)) {
30658 } else {
30659 nit_abort("Assert failed", NULL, LOCATE_parser, 9171);
30660 }
30661 /* ./parser//parser.nit:9172 */
30662 fra.me.REG[3] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
30663 /* ./parser//parser.nit:9178 */
30664 fra.me.REG[2] = fra.me.REG[3];
30665 /* ./parser//parser.nit:9179 */
30666 REGB0 = TAG_Bool(ATTR_parser___ReduceAction276____goto(fra.me.REG[0])!=NIT_NULL);
30667 if (UNTAG_Bool(REGB0)) {
30668 } else {
30669 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9179);
30670 }
30671 REGB0 = ATTR_parser___ReduceAction276____goto(fra.me.REG[0]);
30672 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30673 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30674 stack_frame_head = fra.me.prev;
30675 return;
30676 }
30677 void parser___ReduceAction276___init(val_t p0, val_t p1, int* init_table){
30678 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction276].i;
30679 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30680 val_t REGB0;
30681 val_t tmp;
30682 if (init_table[itpos270]) return;
30683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30684 fra.me.file = LOCATE_parser;
30685 fra.me.line = 9182;
30686 fra.me.meth = LOCATE_parser___ReduceAction276___init;
30687 fra.me.has_broke = 0;
30688 fra.me.REG_size = 2;
30689 fra.me.REG[0] = NIT_NULL;
30690 fra.me.REG[1] = NIT_NULL;
30691 fra.me.REG[0] = p0;
30692 REGB0 = p1;
30693 /* ./parser//parser.nit:9182 */
30694 fra.me.REG[1] = fra.me.REG[0];
30695 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30696 ATTR_parser___ReduceAction276____goto(fra.me.REG[1]) = REGB0;
30697 stack_frame_head = fra.me.prev;
30698 init_table[itpos270] = 1;
30699 return;
30700 }
30701 void parser___ReduceAction279___action(val_t p0, val_t p1){
30702 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30703 val_t REGB0;
30704 val_t tmp;
30705 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30706 fra.me.file = LOCATE_parser;
30707 fra.me.line = 9186;
30708 fra.me.meth = LOCATE_parser___ReduceAction279___action;
30709 fra.me.has_broke = 0;
30710 fra.me.REG_size = 6;
30711 fra.me.REG[0] = NIT_NULL;
30712 fra.me.REG[1] = NIT_NULL;
30713 fra.me.REG[2] = NIT_NULL;
30714 fra.me.REG[3] = NIT_NULL;
30715 fra.me.REG[4] = NIT_NULL;
30716 fra.me.REG[5] = NIT_NULL;
30717 fra.me.REG[0] = p0;
30718 fra.me.REG[1] = p1;
30719 /* ./parser//parser.nit:9188 */
30720 fra.me.REG[2] = NIT_NULL;
30721 /* ./parser//parser.nit:9189 */
30722 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30723 /* ./parser//parser.nit:9190 */
30724 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30725 /* ./parser//parser.nit:9191 */
30726 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30727 /* ./parser//parser.nit:9193 */
30728 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwloop, ID_TKwloop)) /*cast nullable TKwloop*/;
30729 if (UNTAG_Bool(REGB0)) {
30730 } else {
30731 nit_abort("Assert failed", NULL, LOCATE_parser, 9193);
30732 }
30733 /* ./parser//parser.nit:9195 */
30734 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30735 if (UNTAG_Bool(REGB0)) {
30736 } else {
30737 nit_abort("Assert failed", NULL, LOCATE_parser, 9195);
30738 }
30739 /* ./parser//parser.nit:9197 */
30740 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
30741 if (UNTAG_Bool(REGB0)) {
30742 } else {
30743 nit_abort("Assert failed", NULL, LOCATE_parser, 9197);
30744 }
30745 /* ./parser//parser.nit:9198 */
30746 fra.me.REG[3] = NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30747 /* ./parser//parser.nit:9203 */
30748 fra.me.REG[2] = fra.me.REG[3];
30749 /* ./parser//parser.nit:9204 */
30750 REGB0 = TAG_Bool(ATTR_parser___ReduceAction279____goto(fra.me.REG[0])!=NIT_NULL);
30751 if (UNTAG_Bool(REGB0)) {
30752 } else {
30753 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9204);
30754 }
30755 REGB0 = ATTR_parser___ReduceAction279____goto(fra.me.REG[0]);
30756 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30757 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30758 stack_frame_head = fra.me.prev;
30759 return;
30760 }
30761 void parser___ReduceAction279___init(val_t p0, val_t p1, int* init_table){
30762 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction279].i;
30763 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30764 val_t REGB0;
30765 val_t tmp;
30766 if (init_table[itpos271]) return;
30767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30768 fra.me.file = LOCATE_parser;
30769 fra.me.line = 9207;
30770 fra.me.meth = LOCATE_parser___ReduceAction279___init;
30771 fra.me.has_broke = 0;
30772 fra.me.REG_size = 2;
30773 fra.me.REG[0] = NIT_NULL;
30774 fra.me.REG[1] = NIT_NULL;
30775 fra.me.REG[0] = p0;
30776 REGB0 = p1;
30777 /* ./parser//parser.nit:9207 */
30778 fra.me.REG[1] = fra.me.REG[0];
30779 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30780 ATTR_parser___ReduceAction279____goto(fra.me.REG[1]) = REGB0;
30781 stack_frame_head = fra.me.prev;
30782 init_table[itpos271] = 1;
30783 return;
30784 }
30785 void parser___ReduceAction280___action(val_t p0, val_t p1){
30786 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30787 val_t REGB0;
30788 val_t tmp;
30789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30790 fra.me.file = LOCATE_parser;
30791 fra.me.line = 9211;
30792 fra.me.meth = LOCATE_parser___ReduceAction280___action;
30793 fra.me.has_broke = 0;
30794 fra.me.REG_size = 5;
30795 fra.me.REG[0] = NIT_NULL;
30796 fra.me.REG[1] = NIT_NULL;
30797 fra.me.REG[2] = NIT_NULL;
30798 fra.me.REG[3] = NIT_NULL;
30799 fra.me.REG[4] = NIT_NULL;
30800 fra.me.REG[0] = p0;
30801 fra.me.REG[1] = p1;
30802 /* ./parser//parser.nit:9213 */
30803 fra.me.REG[2] = NIT_NULL;
30804 /* ./parser//parser.nit:9214 */
30805 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30806 /* ./parser//parser.nit:9215 */
30807 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30808 /* ./parser//parser.nit:9217 */
30809 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwloop, ID_TKwloop)) /*cast nullable TKwloop*/;
30810 if (UNTAG_Bool(REGB0)) {
30811 } else {
30812 nit_abort("Assert failed", NULL, LOCATE_parser, 9217);
30813 }
30814 /* ./parser//parser.nit:9219 */
30815 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30816 if (UNTAG_Bool(REGB0)) {
30817 } else {
30818 nit_abort("Assert failed", NULL, LOCATE_parser, 9219);
30819 }
30820 /* ./parser//parser.nit:9220 */
30821 fra.me.REG[3] = NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
30822 /* ./parser//parser.nit:9225 */
30823 fra.me.REG[2] = fra.me.REG[3];
30824 /* ./parser//parser.nit:9226 */
30825 REGB0 = TAG_Bool(ATTR_parser___ReduceAction280____goto(fra.me.REG[0])!=NIT_NULL);
30826 if (UNTAG_Bool(REGB0)) {
30827 } else {
30828 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9226);
30829 }
30830 REGB0 = ATTR_parser___ReduceAction280____goto(fra.me.REG[0]);
30831 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30832 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30833 stack_frame_head = fra.me.prev;
30834 return;
30835 }
30836 void parser___ReduceAction280___init(val_t p0, val_t p1, int* init_table){
30837 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction280].i;
30838 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30839 val_t REGB0;
30840 val_t tmp;
30841 if (init_table[itpos272]) return;
30842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30843 fra.me.file = LOCATE_parser;
30844 fra.me.line = 9229;
30845 fra.me.meth = LOCATE_parser___ReduceAction280___init;
30846 fra.me.has_broke = 0;
30847 fra.me.REG_size = 2;
30848 fra.me.REG[0] = NIT_NULL;
30849 fra.me.REG[1] = NIT_NULL;
30850 fra.me.REG[0] = p0;
30851 REGB0 = p1;
30852 /* ./parser//parser.nit:9229 */
30853 fra.me.REG[1] = fra.me.REG[0];
30854 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30855 ATTR_parser___ReduceAction280____goto(fra.me.REG[1]) = REGB0;
30856 stack_frame_head = fra.me.prev;
30857 init_table[itpos272] = 1;
30858 return;
30859 }
30860 void parser___ReduceAction281___action(val_t p0, val_t p1){
30861 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
30862 val_t REGB0;
30863 val_t tmp;
30864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30865 fra.me.file = LOCATE_parser;
30866 fra.me.line = 9233;
30867 fra.me.meth = LOCATE_parser___ReduceAction281___action;
30868 fra.me.has_broke = 0;
30869 fra.me.REG_size = 8;
30870 fra.me.REG[0] = NIT_NULL;
30871 fra.me.REG[1] = NIT_NULL;
30872 fra.me.REG[2] = NIT_NULL;
30873 fra.me.REG[3] = NIT_NULL;
30874 fra.me.REG[4] = NIT_NULL;
30875 fra.me.REG[5] = NIT_NULL;
30876 fra.me.REG[6] = NIT_NULL;
30877 fra.me.REG[7] = NIT_NULL;
30878 fra.me.REG[0] = p0;
30879 fra.me.REG[1] = p1;
30880 /* ./parser//parser.nit:9235 */
30881 fra.me.REG[2] = NIT_NULL;
30882 /* ./parser//parser.nit:9236 */
30883 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30884 /* ./parser//parser.nit:9237 */
30885 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30886 /* ./parser//parser.nit:9238 */
30887 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30888 /* ./parser//parser.nit:9239 */
30889 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30890 /* ./parser//parser.nit:9240 */
30891 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30892 /* ./parser//parser.nit:9241 */
30893 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30894 /* ./parser//parser.nit:9242 */
30895 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30896 /* ./parser//parser.nit:9244 */
30897 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwwhile, ID_TKwwhile)) /*cast nullable TKwwhile*/;
30898 if (UNTAG_Bool(REGB0)) {
30899 } else {
30900 nit_abort("Assert failed", NULL, LOCATE_parser, 9244);
30901 }
30902 /* ./parser//parser.nit:9246 */
30903 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30904 if (UNTAG_Bool(REGB0)) {
30905 } else {
30906 nit_abort("Assert failed", NULL, LOCATE_parser, 9246);
30907 }
30908 /* ./parser//parser.nit:9248 */
30909 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
30910 if (UNTAG_Bool(REGB0)) {
30911 } else {
30912 nit_abort("Assert failed", NULL, LOCATE_parser, 9248);
30913 }
30914 /* ./parser//parser.nit:9250 */
30915 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30916 if (UNTAG_Bool(REGB0)) {
30917 } else {
30918 nit_abort("Assert failed", NULL, LOCATE_parser, 9250);
30919 }
30920 /* ./parser//parser.nit:9252 */
30921 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
30922 if (UNTAG_Bool(REGB0)) {
30923 } else {
30924 nit_abort("Assert failed", NULL, LOCATE_parser, 9252);
30925 }
30926 /* ./parser//parser.nit:9253 */
30927 fra.me.REG[3] = NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30928 /* ./parser//parser.nit:9260 */
30929 fra.me.REG[2] = fra.me.REG[3];
30930 /* ./parser//parser.nit:9261 */
30931 REGB0 = TAG_Bool(ATTR_parser___ReduceAction281____goto(fra.me.REG[0])!=NIT_NULL);
30932 if (UNTAG_Bool(REGB0)) {
30933 } else {
30934 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9261);
30935 }
30936 REGB0 = ATTR_parser___ReduceAction281____goto(fra.me.REG[0]);
30937 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30938 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30939 stack_frame_head = fra.me.prev;
30940 return;
30941 }
30942 void parser___ReduceAction281___init(val_t p0, val_t p1, int* init_table){
30943 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction281].i;
30944 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30945 val_t REGB0;
30946 val_t tmp;
30947 if (init_table[itpos273]) return;
30948 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30949 fra.me.file = LOCATE_parser;
30950 fra.me.line = 9264;
30951 fra.me.meth = LOCATE_parser___ReduceAction281___init;
30952 fra.me.has_broke = 0;
30953 fra.me.REG_size = 2;
30954 fra.me.REG[0] = NIT_NULL;
30955 fra.me.REG[1] = NIT_NULL;
30956 fra.me.REG[0] = p0;
30957 REGB0 = p1;
30958 /* ./parser//parser.nit:9264 */
30959 fra.me.REG[1] = fra.me.REG[0];
30960 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30961 ATTR_parser___ReduceAction281____goto(fra.me.REG[1]) = REGB0;
30962 stack_frame_head = fra.me.prev;
30963 init_table[itpos273] = 1;
30964 return;
30965 }
30966 void parser___ReduceAction282___action(val_t p0, val_t p1){
30967 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30968 val_t REGB0;
30969 val_t tmp;
30970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30971 fra.me.file = LOCATE_parser;
30972 fra.me.line = 9268;
30973 fra.me.meth = LOCATE_parser___ReduceAction282___action;
30974 fra.me.has_broke = 0;
30975 fra.me.REG_size = 7;
30976 fra.me.REG[0] = NIT_NULL;
30977 fra.me.REG[1] = NIT_NULL;
30978 fra.me.REG[2] = NIT_NULL;
30979 fra.me.REG[3] = NIT_NULL;
30980 fra.me.REG[4] = NIT_NULL;
30981 fra.me.REG[5] = NIT_NULL;
30982 fra.me.REG[6] = NIT_NULL;
30983 fra.me.REG[0] = p0;
30984 fra.me.REG[1] = p1;
30985 /* ./parser//parser.nit:9270 */
30986 fra.me.REG[2] = NIT_NULL;
30987 /* ./parser//parser.nit:9271 */
30988 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30989 /* ./parser//parser.nit:9272 */
30990 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30991 /* ./parser//parser.nit:9273 */
30992 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30993 /* ./parser//parser.nit:9274 */
30994 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30995 /* ./parser//parser.nit:9275 */
30996 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30997 /* ./parser//parser.nit:9276 */
30998 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30999 /* ./parser//parser.nit:9278 */
31000 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwwhile, ID_TKwwhile)) /*cast nullable TKwwhile*/;
31001 if (UNTAG_Bool(REGB0)) {
31002 } else {
31003 nit_abort("Assert failed", NULL, LOCATE_parser, 9278);
31004 }
31005 /* ./parser//parser.nit:9280 */
31006 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31007 if (UNTAG_Bool(REGB0)) {
31008 } else {
31009 nit_abort("Assert failed", NULL, LOCATE_parser, 9280);
31010 }
31011 /* ./parser//parser.nit:9282 */
31012 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
31013 if (UNTAG_Bool(REGB0)) {
31014 } else {
31015 nit_abort("Assert failed", NULL, LOCATE_parser, 9282);
31016 }
31017 /* ./parser//parser.nit:9284 */
31018 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31019 if (UNTAG_Bool(REGB0)) {
31020 } else {
31021 nit_abort("Assert failed", NULL, LOCATE_parser, 9284);
31022 }
31023 /* ./parser//parser.nit:9285 */
31024 fra.me.REG[3] = NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
31025 /* ./parser//parser.nit:9292 */
31026 fra.me.REG[2] = fra.me.REG[3];
31027 /* ./parser//parser.nit:9293 */
31028 REGB0 = TAG_Bool(ATTR_parser___ReduceAction282____goto(fra.me.REG[0])!=NIT_NULL);
31029 if (UNTAG_Bool(REGB0)) {
31030 } else {
31031 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9293);
31032 }
31033 REGB0 = ATTR_parser___ReduceAction282____goto(fra.me.REG[0]);
31034 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31035 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31036 stack_frame_head = fra.me.prev;
31037 return;
31038 }
31039 void parser___ReduceAction282___init(val_t p0, val_t p1, int* init_table){
31040 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction282].i;
31041 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31042 val_t REGB0;
31043 val_t tmp;
31044 if (init_table[itpos274]) return;
31045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31046 fra.me.file = LOCATE_parser;
31047 fra.me.line = 9296;
31048 fra.me.meth = LOCATE_parser___ReduceAction282___init;
31049 fra.me.has_broke = 0;
31050 fra.me.REG_size = 2;
31051 fra.me.REG[0] = NIT_NULL;
31052 fra.me.REG[1] = NIT_NULL;
31053 fra.me.REG[0] = p0;
31054 REGB0 = p1;
31055 /* ./parser//parser.nit:9296 */
31056 fra.me.REG[1] = fra.me.REG[0];
31057 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31058 ATTR_parser___ReduceAction282____goto(fra.me.REG[1]) = REGB0;
31059 stack_frame_head = fra.me.prev;
31060 init_table[itpos274] = 1;
31061 return;
31062 }
31063 void parser___ReduceAction283___action(val_t p0, val_t p1){
31064 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
31065 val_t REGB0;
31066 val_t tmp;
31067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31068 fra.me.file = LOCATE_parser;
31069 fra.me.line = 9300;
31070 fra.me.meth = LOCATE_parser___ReduceAction283___action;
31071 fra.me.has_broke = 0;
31072 fra.me.REG_size = 9;
31073 fra.me.REG[0] = NIT_NULL;
31074 fra.me.REG[1] = NIT_NULL;
31075 fra.me.REG[2] = NIT_NULL;
31076 fra.me.REG[3] = NIT_NULL;
31077 fra.me.REG[4] = NIT_NULL;
31078 fra.me.REG[5] = NIT_NULL;
31079 fra.me.REG[6] = NIT_NULL;
31080 fra.me.REG[7] = NIT_NULL;
31081 fra.me.REG[8] = NIT_NULL;
31082 fra.me.REG[0] = p0;
31083 fra.me.REG[1] = p1;
31084 /* ./parser//parser.nit:9302 */
31085 fra.me.REG[2] = NIT_NULL;
31086 /* ./parser//parser.nit:9303 */
31087 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31088 /* ./parser//parser.nit:9304 */
31089 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31090 /* ./parser//parser.nit:9305 */
31091 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31092 /* ./parser//parser.nit:9306 */
31093 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31094 /* ./parser//parser.nit:9307 */
31095 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31096 /* ./parser//parser.nit:9308 */
31097 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31098 /* ./parser//parser.nit:9309 */
31099 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31100 /* ./parser//parser.nit:9310 */
31101 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31102 /* ./parser//parser.nit:9311 */
31103 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31104 /* ./parser//parser.nit:9312 */
31105 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31106 /* ./parser//parser.nit:9313 */
31107 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31108 /* ./parser//parser.nit:9315 */
31109 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwfor, ID_TKwfor)) /*cast nullable TKwfor*/;
31110 if (UNTAG_Bool(REGB0)) {
31111 } else {
31112 nit_abort("Assert failed", NULL, LOCATE_parser, 9315);
31113 }
31114 /* ./parser//parser.nit:9317 */
31115 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31116 if (UNTAG_Bool(REGB0)) {
31117 } else {
31118 nit_abort("Assert failed", NULL, LOCATE_parser, 9317);
31119 }
31120 /* ./parser//parser.nit:9319 */
31121 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31122 if (UNTAG_Bool(REGB0)) {
31123 } else {
31124 nit_abort("Assert failed", NULL, LOCATE_parser, 9319);
31125 }
31126 /* ./parser//parser.nit:9321 */
31127 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
31128 if (UNTAG_Bool(REGB0)) {
31129 } else {
31130 nit_abort("Assert failed", NULL, LOCATE_parser, 9321);
31131 }
31132 /* ./parser//parser.nit:9323 */
31133 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31134 if (UNTAG_Bool(REGB0)) {
31135 } else {
31136 nit_abort("Assert failed", NULL, LOCATE_parser, 9323);
31137 }
31138 /* ./parser//parser.nit:9325 */
31139 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
31140 if (UNTAG_Bool(REGB0)) {
31141 } else {
31142 nit_abort("Assert failed", NULL, LOCATE_parser, 9325);
31143 }
31144 /* ./parser//parser.nit:9326 */
31145 fra.me.REG[3] = NEW_AForExpr_parser_prod___AForExpr___init_aforexpr(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
31146 /* ./parser//parser.nit:9334 */
31147 fra.me.REG[2] = fra.me.REG[3];
31148 /* ./parser//parser.nit:9335 */
31149 REGB0 = TAG_Bool(ATTR_parser___ReduceAction283____goto(fra.me.REG[0])!=NIT_NULL);
31150 if (UNTAG_Bool(REGB0)) {
31151 } else {
31152 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9335);
31153 }
31154 REGB0 = ATTR_parser___ReduceAction283____goto(fra.me.REG[0]);
31155 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31156 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31157 stack_frame_head = fra.me.prev;
31158 return;
31159 }
31160 void parser___ReduceAction283___init(val_t p0, val_t p1, int* init_table){
31161 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction283].i;
31162 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31163 val_t REGB0;
31164 val_t tmp;
31165 if (init_table[itpos275]) return;
31166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31167 fra.me.file = LOCATE_parser;
31168 fra.me.line = 9338;
31169 fra.me.meth = LOCATE_parser___ReduceAction283___init;
31170 fra.me.has_broke = 0;
31171 fra.me.REG_size = 2;
31172 fra.me.REG[0] = NIT_NULL;
31173 fra.me.REG[1] = NIT_NULL;
31174 fra.me.REG[0] = p0;
31175 REGB0 = p1;
31176 /* ./parser//parser.nit:9338 */
31177 fra.me.REG[1] = fra.me.REG[0];
31178 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31179 ATTR_parser___ReduceAction283____goto(fra.me.REG[1]) = REGB0;
31180 stack_frame_head = fra.me.prev;
31181 init_table[itpos275] = 1;
31182 return;
31183 }
31184 void parser___ReduceAction284___action(val_t p0, val_t p1){
31185 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
31186 val_t REGB0;
31187 val_t tmp;
31188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31189 fra.me.file = LOCATE_parser;
31190 fra.me.line = 9342;
31191 fra.me.meth = LOCATE_parser___ReduceAction284___action;
31192 fra.me.has_broke = 0;
31193 fra.me.REG_size = 8;
31194 fra.me.REG[0] = NIT_NULL;
31195 fra.me.REG[1] = NIT_NULL;
31196 fra.me.REG[2] = NIT_NULL;
31197 fra.me.REG[3] = NIT_NULL;
31198 fra.me.REG[4] = NIT_NULL;
31199 fra.me.REG[5] = NIT_NULL;
31200 fra.me.REG[6] = NIT_NULL;
31201 fra.me.REG[7] = NIT_NULL;
31202 fra.me.REG[0] = p0;
31203 fra.me.REG[1] = p1;
31204 /* ./parser//parser.nit:9344 */
31205 fra.me.REG[2] = NIT_NULL;
31206 /* ./parser//parser.nit:9345 */
31207 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31208 /* ./parser//parser.nit:9346 */
31209 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31210 /* ./parser//parser.nit:9347 */
31211 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31212 /* ./parser//parser.nit:9348 */
31213 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31214 /* ./parser//parser.nit:9349 */
31215 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31216 /* ./parser//parser.nit:9350 */
31217 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31218 /* ./parser//parser.nit:9351 */
31219 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31220 /* ./parser//parser.nit:9352 */
31221 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31222 /* ./parser//parser.nit:9353 */
31223 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31224 /* ./parser//parser.nit:9354 */
31225 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31226 /* ./parser//parser.nit:9356 */
31227 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwfor, ID_TKwfor)) /*cast nullable TKwfor*/;
31228 if (UNTAG_Bool(REGB0)) {
31229 } else {
31230 nit_abort("Assert failed", NULL, LOCATE_parser, 9356);
31231 }
31232 /* ./parser//parser.nit:9358 */
31233 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31234 if (UNTAG_Bool(REGB0)) {
31235 } else {
31236 nit_abort("Assert failed", NULL, LOCATE_parser, 9358);
31237 }
31238 /* ./parser//parser.nit:9360 */
31239 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31240 if (UNTAG_Bool(REGB0)) {
31241 } else {
31242 nit_abort("Assert failed", NULL, LOCATE_parser, 9360);
31243 }
31244 /* ./parser//parser.nit:9362 */
31245 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
31246 if (UNTAG_Bool(REGB0)) {
31247 } else {
31248 nit_abort("Assert failed", NULL, LOCATE_parser, 9362);
31249 }
31250 /* ./parser//parser.nit:9364 */
31251 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31252 if (UNTAG_Bool(REGB0)) {
31253 } else {
31254 nit_abort("Assert failed", NULL, LOCATE_parser, 9364);
31255 }
31256 /* ./parser//parser.nit:9365 */
31257 fra.me.REG[3] = NEW_AForExpr_parser_prod___AForExpr___init_aforexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
31258 /* ./parser//parser.nit:9373 */
31259 fra.me.REG[2] = fra.me.REG[3];
31260 /* ./parser//parser.nit:9374 */
31261 REGB0 = TAG_Bool(ATTR_parser___ReduceAction284____goto(fra.me.REG[0])!=NIT_NULL);
31262 if (UNTAG_Bool(REGB0)) {
31263 } else {
31264 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9374);
31265 }
31266 REGB0 = ATTR_parser___ReduceAction284____goto(fra.me.REG[0]);
31267 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31268 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31269 stack_frame_head = fra.me.prev;
31270 return;
31271 }
31272 void parser___ReduceAction284___init(val_t p0, val_t p1, int* init_table){
31273 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction284].i;
31274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31275 val_t REGB0;
31276 val_t tmp;
31277 if (init_table[itpos276]) return;
31278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31279 fra.me.file = LOCATE_parser;
31280 fra.me.line = 9377;
31281 fra.me.meth = LOCATE_parser___ReduceAction284___init;
31282 fra.me.has_broke = 0;
31283 fra.me.REG_size = 2;
31284 fra.me.REG[0] = NIT_NULL;
31285 fra.me.REG[1] = NIT_NULL;
31286 fra.me.REG[0] = p0;
31287 REGB0 = p1;
31288 /* ./parser//parser.nit:9377 */
31289 fra.me.REG[1] = fra.me.REG[0];
31290 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31291 ATTR_parser___ReduceAction284____goto(fra.me.REG[1]) = REGB0;
31292 stack_frame_head = fra.me.prev;
31293 init_table[itpos276] = 1;
31294 return;
31295 }
31296 void parser___ReduceAction285___action(val_t p0, val_t p1){
31297 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31298 val_t REGB0;
31299 val_t tmp;
31300 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31301 fra.me.file = LOCATE_parser;
31302 fra.me.line = 9381;
31303 fra.me.meth = LOCATE_parser___ReduceAction285___action;
31304 fra.me.has_broke = 0;
31305 fra.me.REG_size = 6;
31306 fra.me.REG[0] = NIT_NULL;
31307 fra.me.REG[1] = NIT_NULL;
31308 fra.me.REG[2] = NIT_NULL;
31309 fra.me.REG[3] = NIT_NULL;
31310 fra.me.REG[4] = NIT_NULL;
31311 fra.me.REG[5] = NIT_NULL;
31312 fra.me.REG[0] = p0;
31313 fra.me.REG[1] = p1;
31314 /* ./parser//parser.nit:9383 */
31315 fra.me.REG[2] = NIT_NULL;
31316 /* ./parser//parser.nit:9384 */
31317 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31318 /* ./parser//parser.nit:9385 */
31319 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31320 /* ./parser//parser.nit:9386 */
31321 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31322 /* ./parser//parser.nit:9387 */
31323 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31324 /* ./parser//parser.nit:9389 */
31325 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31326 if (UNTAG_Bool(REGB0)) {
31327 } else {
31328 nit_abort("Assert failed", NULL, LOCATE_parser, 9389);
31329 }
31330 /* ./parser//parser.nit:9391 */
31331 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31332 if (UNTAG_Bool(REGB0)) {
31333 } else {
31334 nit_abort("Assert failed", NULL, LOCATE_parser, 9391);
31335 }
31336 /* ./parser//parser.nit:9393 */
31337 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31338 if (UNTAG_Bool(REGB0)) {
31339 } else {
31340 nit_abort("Assert failed", NULL, LOCATE_parser, 9393);
31341 }
31342 /* ./parser//parser.nit:9394 */
31343 fra.me.REG[3] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
31344 /* ./parser//parser.nit:9400 */
31345 fra.me.REG[2] = fra.me.REG[3];
31346 /* ./parser//parser.nit:9401 */
31347 REGB0 = TAG_Bool(ATTR_parser___ReduceAction285____goto(fra.me.REG[0])!=NIT_NULL);
31348 if (UNTAG_Bool(REGB0)) {
31349 } else {
31350 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9401);
31351 }
31352 REGB0 = ATTR_parser___ReduceAction285____goto(fra.me.REG[0]);
31353 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31354 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31355 stack_frame_head = fra.me.prev;
31356 return;
31357 }
31358 void parser___ReduceAction285___init(val_t p0, val_t p1, int* init_table){
31359 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction285].i;
31360 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31361 val_t REGB0;
31362 val_t tmp;
31363 if (init_table[itpos277]) return;
31364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31365 fra.me.file = LOCATE_parser;
31366 fra.me.line = 9404;
31367 fra.me.meth = LOCATE_parser___ReduceAction285___init;
31368 fra.me.has_broke = 0;
31369 fra.me.REG_size = 2;
31370 fra.me.REG[0] = NIT_NULL;
31371 fra.me.REG[1] = NIT_NULL;
31372 fra.me.REG[0] = p0;
31373 REGB0 = p1;
31374 /* ./parser//parser.nit:9404 */
31375 fra.me.REG[1] = fra.me.REG[0];
31376 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31377 ATTR_parser___ReduceAction285____goto(fra.me.REG[1]) = REGB0;
31378 stack_frame_head = fra.me.prev;
31379 init_table[itpos277] = 1;
31380 return;
31381 }
31382 void parser___ReduceAction286___action(val_t p0, val_t p1){
31383 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
31384 val_t REGB0;
31385 val_t tmp;
31386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31387 fra.me.file = LOCATE_parser;
31388 fra.me.line = 9408;
31389 fra.me.meth = LOCATE_parser___ReduceAction286___action;
31390 fra.me.has_broke = 0;
31391 fra.me.REG_size = 7;
31392 fra.me.REG[0] = NIT_NULL;
31393 fra.me.REG[1] = NIT_NULL;
31394 fra.me.REG[2] = NIT_NULL;
31395 fra.me.REG[3] = NIT_NULL;
31396 fra.me.REG[4] = NIT_NULL;
31397 fra.me.REG[5] = NIT_NULL;
31398 fra.me.REG[6] = NIT_NULL;
31399 fra.me.REG[0] = p0;
31400 fra.me.REG[1] = p1;
31401 /* ./parser//parser.nit:9410 */
31402 fra.me.REG[2] = NIT_NULL;
31403 /* ./parser//parser.nit:9411 */
31404 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31405 /* ./parser//parser.nit:9412 */
31406 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31407 /* ./parser//parser.nit:9413 */
31408 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31409 /* ./parser//parser.nit:9414 */
31410 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31411 /* ./parser//parser.nit:9415 */
31412 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31413 /* ./parser//parser.nit:9417 */
31414 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31415 if (UNTAG_Bool(REGB0)) {
31416 } else {
31417 nit_abort("Assert failed", NULL, LOCATE_parser, 9417);
31418 }
31419 /* ./parser//parser.nit:9419 */
31420 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31421 if (UNTAG_Bool(REGB0)) {
31422 } else {
31423 nit_abort("Assert failed", NULL, LOCATE_parser, 9419);
31424 }
31425 /* ./parser//parser.nit:9421 */
31426 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31427 if (UNTAG_Bool(REGB0)) {
31428 } else {
31429 nit_abort("Assert failed", NULL, LOCATE_parser, 9421);
31430 }
31431 /* ./parser//parser.nit:9423 */
31432 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31433 if (UNTAG_Bool(REGB0)) {
31434 } else {
31435 nit_abort("Assert failed", NULL, LOCATE_parser, 9423);
31436 }
31437 /* ./parser//parser.nit:9424 */
31438 fra.me.REG[3] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
31439 /* ./parser//parser.nit:9430 */
31440 fra.me.REG[2] = fra.me.REG[3];
31441 /* ./parser//parser.nit:9431 */
31442 REGB0 = TAG_Bool(ATTR_parser___ReduceAction286____goto(fra.me.REG[0])!=NIT_NULL);
31443 if (UNTAG_Bool(REGB0)) {
31444 } else {
31445 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9431);
31446 }
31447 REGB0 = ATTR_parser___ReduceAction286____goto(fra.me.REG[0]);
31448 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31449 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31450 stack_frame_head = fra.me.prev;
31451 return;
31452 }
31453 void parser___ReduceAction286___init(val_t p0, val_t p1, int* init_table){
31454 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction286].i;
31455 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31456 val_t REGB0;
31457 val_t tmp;
31458 if (init_table[itpos278]) return;
31459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31460 fra.me.file = LOCATE_parser;
31461 fra.me.line = 9434;
31462 fra.me.meth = LOCATE_parser___ReduceAction286___init;
31463 fra.me.has_broke = 0;
31464 fra.me.REG_size = 2;
31465 fra.me.REG[0] = NIT_NULL;
31466 fra.me.REG[1] = NIT_NULL;
31467 fra.me.REG[0] = p0;
31468 REGB0 = p1;
31469 /* ./parser//parser.nit:9434 */
31470 fra.me.REG[1] = fra.me.REG[0];
31471 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31472 ATTR_parser___ReduceAction286____goto(fra.me.REG[1]) = REGB0;
31473 stack_frame_head = fra.me.prev;
31474 init_table[itpos278] = 1;
31475 return;
31476 }
31477 void parser___ReduceAction287___action(val_t p0, val_t p1){
31478 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31479 val_t REGB0;
31480 val_t tmp;
31481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31482 fra.me.file = LOCATE_parser;
31483 fra.me.line = 9438;
31484 fra.me.meth = LOCATE_parser___ReduceAction287___action;
31485 fra.me.has_broke = 0;
31486 fra.me.REG_size = 5;
31487 fra.me.REG[0] = NIT_NULL;
31488 fra.me.REG[1] = NIT_NULL;
31489 fra.me.REG[2] = NIT_NULL;
31490 fra.me.REG[3] = NIT_NULL;
31491 fra.me.REG[4] = NIT_NULL;
31492 fra.me.REG[0] = p0;
31493 fra.me.REG[1] = p1;
31494 /* ./parser//parser.nit:9440 */
31495 fra.me.REG[2] = NIT_NULL;
31496 /* ./parser//parser.nit:9441 */
31497 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31498 /* ./parser//parser.nit:9442 */
31499 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31500 /* ./parser//parser.nit:9444 */
31501 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31502 if (UNTAG_Bool(REGB0)) {
31503 } else {
31504 nit_abort("Assert failed", NULL, LOCATE_parser, 9444);
31505 }
31506 /* ./parser//parser.nit:9446 */
31507 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31508 if (UNTAG_Bool(REGB0)) {
31509 } else {
31510 nit_abort("Assert failed", NULL, LOCATE_parser, 9446);
31511 }
31512 /* ./parser//parser.nit:9447 */
31513 fra.me.REG[3] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
31514 /* ./parser//parser.nit:9453 */
31515 fra.me.REG[2] = fra.me.REG[3];
31516 /* ./parser//parser.nit:9454 */
31517 REGB0 = TAG_Bool(ATTR_parser___ReduceAction287____goto(fra.me.REG[0])!=NIT_NULL);
31518 if (UNTAG_Bool(REGB0)) {
31519 } else {
31520 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9454);
31521 }
31522 REGB0 = ATTR_parser___ReduceAction287____goto(fra.me.REG[0]);
31523 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31524 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31525 stack_frame_head = fra.me.prev;
31526 return;
31527 }
31528 void parser___ReduceAction287___init(val_t p0, val_t p1, int* init_table){
31529 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction287].i;
31530 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31531 val_t REGB0;
31532 val_t tmp;
31533 if (init_table[itpos279]) return;
31534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31535 fra.me.file = LOCATE_parser;
31536 fra.me.line = 9457;
31537 fra.me.meth = LOCATE_parser___ReduceAction287___init;
31538 fra.me.has_broke = 0;
31539 fra.me.REG_size = 2;
31540 fra.me.REG[0] = NIT_NULL;
31541 fra.me.REG[1] = NIT_NULL;
31542 fra.me.REG[0] = p0;
31543 REGB0 = p1;
31544 /* ./parser//parser.nit:9457 */
31545 fra.me.REG[1] = fra.me.REG[0];
31546 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31547 ATTR_parser___ReduceAction287____goto(fra.me.REG[1]) = REGB0;
31548 stack_frame_head = fra.me.prev;
31549 init_table[itpos279] = 1;
31550 return;
31551 }
31552 void parser___ReduceAction288___action(val_t p0, val_t p1){
31553 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31554 val_t REGB0;
31555 val_t tmp;
31556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31557 fra.me.file = LOCATE_parser;
31558 fra.me.line = 9461;
31559 fra.me.meth = LOCATE_parser___ReduceAction288___action;
31560 fra.me.has_broke = 0;
31561 fra.me.REG_size = 6;
31562 fra.me.REG[0] = NIT_NULL;
31563 fra.me.REG[1] = NIT_NULL;
31564 fra.me.REG[2] = NIT_NULL;
31565 fra.me.REG[3] = NIT_NULL;
31566 fra.me.REG[4] = NIT_NULL;
31567 fra.me.REG[5] = NIT_NULL;
31568 fra.me.REG[0] = p0;
31569 fra.me.REG[1] = p1;
31570 /* ./parser//parser.nit:9463 */
31571 fra.me.REG[2] = NIT_NULL;
31572 /* ./parser//parser.nit:9464 */
31573 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31574 /* ./parser//parser.nit:9465 */
31575 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31576 /* ./parser//parser.nit:9466 */
31577 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31578 /* ./parser//parser.nit:9468 */
31579 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31580 if (UNTAG_Bool(REGB0)) {
31581 } else {
31582 nit_abort("Assert failed", NULL, LOCATE_parser, 9468);
31583 }
31584 /* ./parser//parser.nit:9470 */
31585 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31586 if (UNTAG_Bool(REGB0)) {
31587 } else {
31588 nit_abort("Assert failed", NULL, LOCATE_parser, 9470);
31589 }
31590 /* ./parser//parser.nit:9472 */
31591 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31592 if (UNTAG_Bool(REGB0)) {
31593 } else {
31594 nit_abort("Assert failed", NULL, LOCATE_parser, 9472);
31595 }
31596 /* ./parser//parser.nit:9473 */
31597 fra.me.REG[3] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
31598 /* ./parser//parser.nit:9479 */
31599 fra.me.REG[2] = fra.me.REG[3];
31600 /* ./parser//parser.nit:9480 */
31601 REGB0 = TAG_Bool(ATTR_parser___ReduceAction288____goto(fra.me.REG[0])!=NIT_NULL);
31602 if (UNTAG_Bool(REGB0)) {
31603 } else {
31604 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9480);
31605 }
31606 REGB0 = ATTR_parser___ReduceAction288____goto(fra.me.REG[0]);
31607 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31608 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31609 stack_frame_head = fra.me.prev;
31610 return;
31611 }
31612 void parser___ReduceAction288___init(val_t p0, val_t p1, int* init_table){
31613 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction288].i;
31614 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31615 val_t REGB0;
31616 val_t tmp;
31617 if (init_table[itpos280]) return;
31618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31619 fra.me.file = LOCATE_parser;
31620 fra.me.line = 9483;
31621 fra.me.meth = LOCATE_parser___ReduceAction288___init;
31622 fra.me.has_broke = 0;
31623 fra.me.REG_size = 2;
31624 fra.me.REG[0] = NIT_NULL;
31625 fra.me.REG[1] = NIT_NULL;
31626 fra.me.REG[0] = p0;
31627 REGB0 = p1;
31628 /* ./parser//parser.nit:9483 */
31629 fra.me.REG[1] = fra.me.REG[0];
31630 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31631 ATTR_parser___ReduceAction288____goto(fra.me.REG[1]) = REGB0;
31632 stack_frame_head = fra.me.prev;
31633 init_table[itpos280] = 1;
31634 return;
31635 }
31636 void parser___ReduceAction289___action(val_t p0, val_t p1){
31637 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31638 val_t REGB0;
31639 val_t tmp;
31640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31641 fra.me.file = LOCATE_parser;
31642 fra.me.line = 9487;
31643 fra.me.meth = LOCATE_parser___ReduceAction289___action;
31644 fra.me.has_broke = 0;
31645 fra.me.REG_size = 4;
31646 fra.me.REG[0] = NIT_NULL;
31647 fra.me.REG[1] = NIT_NULL;
31648 fra.me.REG[2] = NIT_NULL;
31649 fra.me.REG[3] = NIT_NULL;
31650 fra.me.REG[0] = p0;
31651 fra.me.REG[1] = p1;
31652 /* ./parser//parser.nit:9489 */
31653 fra.me.REG[2] = NIT_NULL;
31654 /* ./parser//parser.nit:9490 */
31655 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31656 /* ./parser//parser.nit:9491 */
31657 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31658 /* ./parser//parser.nit:9493 */
31659 fra.me.REG[2] = fra.me.REG[3];
31660 /* ./parser//parser.nit:9494 */
31661 REGB0 = TAG_Bool(ATTR_parser___ReduceAction289____goto(fra.me.REG[0])!=NIT_NULL);
31662 if (UNTAG_Bool(REGB0)) {
31663 } else {
31664 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9494);
31665 }
31666 REGB0 = ATTR_parser___ReduceAction289____goto(fra.me.REG[0]);
31667 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31668 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31669 stack_frame_head = fra.me.prev;
31670 return;
31671 }
31672 void parser___ReduceAction289___init(val_t p0, val_t p1, int* init_table){
31673 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction289].i;
31674 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31675 val_t REGB0;
31676 val_t tmp;
31677 if (init_table[itpos281]) return;
31678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31679 fra.me.file = LOCATE_parser;
31680 fra.me.line = 9497;
31681 fra.me.meth = LOCATE_parser___ReduceAction289___init;
31682 fra.me.has_broke = 0;
31683 fra.me.REG_size = 2;
31684 fra.me.REG[0] = NIT_NULL;
31685 fra.me.REG[1] = NIT_NULL;
31686 fra.me.REG[0] = p0;
31687 REGB0 = p1;
31688 /* ./parser//parser.nit:9497 */
31689 fra.me.REG[1] = fra.me.REG[0];
31690 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31691 ATTR_parser___ReduceAction289____goto(fra.me.REG[1]) = REGB0;
31692 stack_frame_head = fra.me.prev;
31693 init_table[itpos281] = 1;
31694 return;
31695 }
31696 void parser___ReduceAction293___action(val_t p0, val_t p1){
31697 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
31698 val_t REGB0;
31699 val_t tmp;
31700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31701 fra.me.file = LOCATE_parser;
31702 fra.me.line = 9501;
31703 fra.me.meth = LOCATE_parser___ReduceAction293___action;
31704 fra.me.has_broke = 0;
31705 fra.me.REG_size = 8;
31706 fra.me.REG[0] = NIT_NULL;
31707 fra.me.REG[1] = NIT_NULL;
31708 fra.me.REG[2] = NIT_NULL;
31709 fra.me.REG[3] = NIT_NULL;
31710 fra.me.REG[4] = NIT_NULL;
31711 fra.me.REG[5] = NIT_NULL;
31712 fra.me.REG[6] = NIT_NULL;
31713 fra.me.REG[7] = NIT_NULL;
31714 fra.me.REG[0] = p0;
31715 fra.me.REG[1] = p1;
31716 /* ./parser//parser.nit:9503 */
31717 fra.me.REG[2] = NIT_NULL;
31718 /* ./parser//parser.nit:9504 */
31719 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31720 /* ./parser//parser.nit:9505 */
31721 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31722 /* ./parser//parser.nit:9506 */
31723 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31724 /* ./parser//parser.nit:9507 */
31725 fra.me.REG[6] = NEW_Array_array___Array___init();
31726 /* ./parser//parser.nit:9508 */
31727 fra.me.REG[7] = NEW_Array_array___Array___init();
31728 /* ./parser//parser.nit:9510 */
31729 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31730 if (UNTAG_Bool(REGB0)) {
31731 } else {
31732 nit_abort("Assert failed", NULL, LOCATE_parser, 9510);
31733 }
31734 /* ./parser//parser.nit:9512 */
31735 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
31736 if (UNTAG_Bool(REGB0)) {
31737 } else {
31738 nit_abort("Assert failed", NULL, LOCATE_parser, 9512);
31739 }
31740 /* ./parser//parser.nit:9513 */
31741 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
31742 fra.me.REG[6] = fra.me.REG[4];
31743 /* ./parser//parser.nit:9515 */
31744 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
31745 if (UNTAG_Bool(REGB0)) {
31746 } else {
31747 nit_abort("Assert failed", NULL, LOCATE_parser, 9515);
31748 }
31749 /* ./parser//parser.nit:9516 */
31750 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
31751 fra.me.REG[7] = fra.me.REG[3];
31752 /* ./parser//parser.nit:9517 */
31753 fra.me.REG[7] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
31754 /* ./parser//parser.nit:9522 */
31755 fra.me.REG[2] = fra.me.REG[7];
31756 /* ./parser//parser.nit:9523 */
31757 REGB0 = TAG_Bool(ATTR_parser___ReduceAction293____goto(fra.me.REG[0])!=NIT_NULL);
31758 if (UNTAG_Bool(REGB0)) {
31759 } else {
31760 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9523);
31761 }
31762 REGB0 = ATTR_parser___ReduceAction293____goto(fra.me.REG[0]);
31763 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31764 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31765 stack_frame_head = fra.me.prev;
31766 return;
31767 }
31768 void parser___ReduceAction293___init(val_t p0, val_t p1, int* init_table){
31769 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction293].i;
31770 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31771 val_t REGB0;
31772 val_t tmp;
31773 if (init_table[itpos282]) return;
31774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31775 fra.me.file = LOCATE_parser;
31776 fra.me.line = 9526;
31777 fra.me.meth = LOCATE_parser___ReduceAction293___init;
31778 fra.me.has_broke = 0;
31779 fra.me.REG_size = 2;
31780 fra.me.REG[0] = NIT_NULL;
31781 fra.me.REG[1] = NIT_NULL;
31782 fra.me.REG[0] = p0;
31783 REGB0 = p1;
31784 /* ./parser//parser.nit:9526 */
31785 fra.me.REG[1] = fra.me.REG[0];
31786 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31787 ATTR_parser___ReduceAction293____goto(fra.me.REG[1]) = REGB0;
31788 stack_frame_head = fra.me.prev;
31789 init_table[itpos282] = 1;
31790 return;
31791 }
31792 void parser___ReduceAction295___action(val_t p0, val_t p1){
31793 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
31794 val_t REGB0;
31795 val_t tmp;
31796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31797 fra.me.file = LOCATE_parser;
31798 fra.me.line = 9530;
31799 fra.me.meth = LOCATE_parser___ReduceAction295___action;
31800 fra.me.has_broke = 0;
31801 fra.me.REG_size = 9;
31802 fra.me.REG[0] = NIT_NULL;
31803 fra.me.REG[1] = NIT_NULL;
31804 fra.me.REG[2] = NIT_NULL;
31805 fra.me.REG[3] = NIT_NULL;
31806 fra.me.REG[4] = NIT_NULL;
31807 fra.me.REG[5] = NIT_NULL;
31808 fra.me.REG[6] = NIT_NULL;
31809 fra.me.REG[7] = NIT_NULL;
31810 fra.me.REG[8] = NIT_NULL;
31811 fra.me.REG[0] = p0;
31812 fra.me.REG[1] = p1;
31813 /* ./parser//parser.nit:9532 */
31814 fra.me.REG[2] = NIT_NULL;
31815 /* ./parser//parser.nit:9533 */
31816 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31817 /* ./parser//parser.nit:9534 */
31818 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31819 /* ./parser//parser.nit:9535 */
31820 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31821 /* ./parser//parser.nit:9536 */
31822 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31823 /* ./parser//parser.nit:9537 */
31824 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31825 /* ./parser//parser.nit:9538 */
31826 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31827 /* ./parser//parser.nit:9539 */
31828 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31829 /* ./parser//parser.nit:9540 */
31830 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31831 /* ./parser//parser.nit:9541 */
31832 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31833 /* ./parser//parser.nit:9542 */
31834 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31835 /* ./parser//parser.nit:9543 */
31836 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31837 /* ./parser//parser.nit:9545 */
31838 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
31839 if (UNTAG_Bool(REGB0)) {
31840 } else {
31841 nit_abort("Assert failed", NULL, LOCATE_parser, 9545);
31842 }
31843 /* ./parser//parser.nit:9547 */
31844 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31845 if (UNTAG_Bool(REGB0)) {
31846 } else {
31847 nit_abort("Assert failed", NULL, LOCATE_parser, 9547);
31848 }
31849 /* ./parser//parser.nit:9549 */
31850 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwthen, ID_TKwthen)) /*cast nullable TKwthen*/;
31851 if (UNTAG_Bool(REGB0)) {
31852 } else {
31853 nit_abort("Assert failed", NULL, LOCATE_parser, 9549);
31854 }
31855 /* ./parser//parser.nit:9551 */
31856 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31857 if (UNTAG_Bool(REGB0)) {
31858 } else {
31859 nit_abort("Assert failed", NULL, LOCATE_parser, 9551);
31860 }
31861 /* ./parser//parser.nit:9553 */
31862 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwelse, ID_TKwelse)) /*cast nullable TKwelse*/;
31863 if (UNTAG_Bool(REGB0)) {
31864 } else {
31865 nit_abort("Assert failed", NULL, LOCATE_parser, 9553);
31866 }
31867 /* ./parser//parser.nit:9555 */
31868 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31869 if (UNTAG_Bool(REGB0)) {
31870 } else {
31871 nit_abort("Assert failed", NULL, LOCATE_parser, 9555);
31872 }
31873 /* ./parser//parser.nit:9556 */
31874 fra.me.REG[3] = NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
31875 /* ./parser//parser.nit:9564 */
31876 fra.me.REG[2] = fra.me.REG[3];
31877 /* ./parser//parser.nit:9565 */
31878 REGB0 = TAG_Bool(ATTR_parser___ReduceAction295____goto(fra.me.REG[0])!=NIT_NULL);
31879 if (UNTAG_Bool(REGB0)) {
31880 } else {
31881 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9565);
31882 }
31883 REGB0 = ATTR_parser___ReduceAction295____goto(fra.me.REG[0]);
31884 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31885 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31886 stack_frame_head = fra.me.prev;
31887 return;
31888 }
31889 void parser___ReduceAction295___init(val_t p0, val_t p1, int* init_table){
31890 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction295].i;
31891 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31892 val_t REGB0;
31893 val_t tmp;
31894 if (init_table[itpos283]) return;
31895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31896 fra.me.file = LOCATE_parser;
31897 fra.me.line = 9568;
31898 fra.me.meth = LOCATE_parser___ReduceAction295___init;
31899 fra.me.has_broke = 0;
31900 fra.me.REG_size = 2;
31901 fra.me.REG[0] = NIT_NULL;
31902 fra.me.REG[1] = NIT_NULL;
31903 fra.me.REG[0] = p0;
31904 REGB0 = p1;
31905 /* ./parser//parser.nit:9568 */
31906 fra.me.REG[1] = fra.me.REG[0];
31907 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31908 ATTR_parser___ReduceAction295____goto(fra.me.REG[1]) = REGB0;
31909 stack_frame_head = fra.me.prev;
31910 init_table[itpos283] = 1;
31911 return;
31912 }
31913 void parser___ReduceAction297___action(val_t p0, val_t p1){
31914 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31915 val_t REGB0;
31916 val_t tmp;
31917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31918 fra.me.file = LOCATE_parser;
31919 fra.me.line = 9572;
31920 fra.me.meth = LOCATE_parser___ReduceAction297___action;
31921 fra.me.has_broke = 0;
31922 fra.me.REG_size = 5;
31923 fra.me.REG[0] = NIT_NULL;
31924 fra.me.REG[1] = NIT_NULL;
31925 fra.me.REG[2] = NIT_NULL;
31926 fra.me.REG[3] = NIT_NULL;
31927 fra.me.REG[4] = NIT_NULL;
31928 fra.me.REG[0] = p0;
31929 fra.me.REG[1] = p1;
31930 /* ./parser//parser.nit:9574 */
31931 fra.me.REG[2] = NIT_NULL;
31932 /* ./parser//parser.nit:9575 */
31933 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31934 /* ./parser//parser.nit:9576 */
31935 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31936 /* ./parser//parser.nit:9577 */
31937 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31938 /* ./parser//parser.nit:9578 */
31939 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31940 /* ./parser//parser.nit:9580 */
31941 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31942 if (UNTAG_Bool(REGB0)) {
31943 } else {
31944 nit_abort("Assert failed", NULL, LOCATE_parser, 9580);
31945 }
31946 /* ./parser//parser.nit:9582 */
31947 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31948 if (UNTAG_Bool(REGB0)) {
31949 } else {
31950 nit_abort("Assert failed", NULL, LOCATE_parser, 9582);
31951 }
31952 /* ./parser//parser.nit:9583 */
31953 fra.me.REG[3] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr(fra.me.REG[4], fra.me.REG[3]);
31954 /* ./parser//parser.nit:9587 */
31955 fra.me.REG[2] = fra.me.REG[3];
31956 /* ./parser//parser.nit:9588 */
31957 REGB0 = TAG_Bool(ATTR_parser___ReduceAction297____goto(fra.me.REG[0])!=NIT_NULL);
31958 if (UNTAG_Bool(REGB0)) {
31959 } else {
31960 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9588);
31961 }
31962 REGB0 = ATTR_parser___ReduceAction297____goto(fra.me.REG[0]);
31963 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31964 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31965 stack_frame_head = fra.me.prev;
31966 return;
31967 }
31968 void parser___ReduceAction297___init(val_t p0, val_t p1, int* init_table){
31969 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction297].i;
31970 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31971 val_t REGB0;
31972 val_t tmp;
31973 if (init_table[itpos284]) return;
31974 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31975 fra.me.file = LOCATE_parser;
31976 fra.me.line = 9591;
31977 fra.me.meth = LOCATE_parser___ReduceAction297___init;
31978 fra.me.has_broke = 0;
31979 fra.me.REG_size = 2;
31980 fra.me.REG[0] = NIT_NULL;
31981 fra.me.REG[1] = NIT_NULL;
31982 fra.me.REG[0] = p0;
31983 REGB0 = p1;
31984 /* ./parser//parser.nit:9591 */
31985 fra.me.REG[1] = fra.me.REG[0];
31986 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31987 ATTR_parser___ReduceAction297____goto(fra.me.REG[1]) = REGB0;
31988 stack_frame_head = fra.me.prev;
31989 init_table[itpos284] = 1;
31990 return;
31991 }
31992 void parser___ReduceAction298___action(val_t p0, val_t p1){
31993 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31994 val_t REGB0;
31995 val_t tmp;
31996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31997 fra.me.file = LOCATE_parser;
31998 fra.me.line = 9595;
31999 fra.me.meth = LOCATE_parser___ReduceAction298___action;
32000 fra.me.has_broke = 0;
32001 fra.me.REG_size = 5;
32002 fra.me.REG[0] = NIT_NULL;
32003 fra.me.REG[1] = NIT_NULL;
32004 fra.me.REG[2] = NIT_NULL;
32005 fra.me.REG[3] = NIT_NULL;
32006 fra.me.REG[4] = NIT_NULL;
32007 fra.me.REG[0] = p0;
32008 fra.me.REG[1] = p1;
32009 /* ./parser//parser.nit:9597 */
32010 fra.me.REG[2] = NIT_NULL;
32011 /* ./parser//parser.nit:9598 */
32012 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32013 /* ./parser//parser.nit:9599 */
32014 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32015 /* ./parser//parser.nit:9600 */
32016 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32017 /* ./parser//parser.nit:9601 */
32018 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32019 /* ./parser//parser.nit:9603 */
32020 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32021 if (UNTAG_Bool(REGB0)) {
32022 } else {
32023 nit_abort("Assert failed", NULL, LOCATE_parser, 9603);
32024 }
32025 /* ./parser//parser.nit:9605 */
32026 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32027 if (UNTAG_Bool(REGB0)) {
32028 } else {
32029 nit_abort("Assert failed", NULL, LOCATE_parser, 9605);
32030 }
32031 /* ./parser//parser.nit:9606 */
32032 fra.me.REG[3] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr(fra.me.REG[4], fra.me.REG[3]);
32033 /* ./parser//parser.nit:9610 */
32034 fra.me.REG[2] = fra.me.REG[3];
32035 /* ./parser//parser.nit:9611 */
32036 REGB0 = TAG_Bool(ATTR_parser___ReduceAction298____goto(fra.me.REG[0])!=NIT_NULL);
32037 if (UNTAG_Bool(REGB0)) {
32038 } else {
32039 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9611);
32040 }
32041 REGB0 = ATTR_parser___ReduceAction298____goto(fra.me.REG[0]);
32042 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32043 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32044 stack_frame_head = fra.me.prev;
32045 return;
32046 }
32047 void parser___ReduceAction298___init(val_t p0, val_t p1, int* init_table){
32048 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction298].i;
32049 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32050 val_t REGB0;
32051 val_t tmp;
32052 if (init_table[itpos285]) return;
32053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32054 fra.me.file = LOCATE_parser;
32055 fra.me.line = 9614;
32056 fra.me.meth = LOCATE_parser___ReduceAction298___init;
32057 fra.me.has_broke = 0;
32058 fra.me.REG_size = 2;
32059 fra.me.REG[0] = NIT_NULL;
32060 fra.me.REG[1] = NIT_NULL;
32061 fra.me.REG[0] = p0;
32062 REGB0 = p1;
32063 /* ./parser//parser.nit:9614 */
32064 fra.me.REG[1] = fra.me.REG[0];
32065 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32066 ATTR_parser___ReduceAction298____goto(fra.me.REG[1]) = REGB0;
32067 stack_frame_head = fra.me.prev;
32068 init_table[itpos285] = 1;
32069 return;
32070 }
32071 void parser___ReduceAction299___action(val_t p0, val_t p1){
32072 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32073 val_t REGB0;
32074 val_t tmp;
32075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32076 fra.me.file = LOCATE_parser;
32077 fra.me.line = 9618;
32078 fra.me.meth = LOCATE_parser___ReduceAction299___action;
32079 fra.me.has_broke = 0;
32080 fra.me.REG_size = 5;
32081 fra.me.REG[0] = NIT_NULL;
32082 fra.me.REG[1] = NIT_NULL;
32083 fra.me.REG[2] = NIT_NULL;
32084 fra.me.REG[3] = NIT_NULL;
32085 fra.me.REG[4] = NIT_NULL;
32086 fra.me.REG[0] = p0;
32087 fra.me.REG[1] = p1;
32088 /* ./parser//parser.nit:9620 */
32089 fra.me.REG[2] = NIT_NULL;
32090 /* ./parser//parser.nit:9621 */
32091 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32092 /* ./parser//parser.nit:9622 */
32093 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32094 /* ./parser//parser.nit:9623 */
32095 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32096 /* ./parser//parser.nit:9624 */
32097 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32098 /* ./parser//parser.nit:9625 */
32099 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32100 /* ./parser//parser.nit:9627 */
32101 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32102 if (UNTAG_Bool(REGB0)) {
32103 } else {
32104 nit_abort("Assert failed", NULL, LOCATE_parser, 9627);
32105 }
32106 /* ./parser//parser.nit:9629 */
32107 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32108 if (UNTAG_Bool(REGB0)) {
32109 } else {
32110 nit_abort("Assert failed", NULL, LOCATE_parser, 9629);
32111 }
32112 /* ./parser//parser.nit:9630 */
32113 fra.me.REG[3] = NEW_AOrElseExpr_parser_prod___AOrElseExpr___init_aorelseexpr(fra.me.REG[4], fra.me.REG[3]);
32114 /* ./parser//parser.nit:9634 */
32115 fra.me.REG[2] = fra.me.REG[3];
32116 /* ./parser//parser.nit:9635 */
32117 REGB0 = TAG_Bool(ATTR_parser___ReduceAction299____goto(fra.me.REG[0])!=NIT_NULL);
32118 if (UNTAG_Bool(REGB0)) {
32119 } else {
32120 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9635);
32121 }
32122 REGB0 = ATTR_parser___ReduceAction299____goto(fra.me.REG[0]);
32123 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32124 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32125 stack_frame_head = fra.me.prev;
32126 return;
32127 }
32128 void parser___ReduceAction299___init(val_t p0, val_t p1, int* init_table){
32129 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction299].i;
32130 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32131 val_t REGB0;
32132 val_t tmp;
32133 if (init_table[itpos286]) return;
32134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32135 fra.me.file = LOCATE_parser;
32136 fra.me.line = 9638;
32137 fra.me.meth = LOCATE_parser___ReduceAction299___init;
32138 fra.me.has_broke = 0;
32139 fra.me.REG_size = 2;
32140 fra.me.REG[0] = NIT_NULL;
32141 fra.me.REG[1] = NIT_NULL;
32142 fra.me.REG[0] = p0;
32143 REGB0 = p1;
32144 /* ./parser//parser.nit:9638 */
32145 fra.me.REG[1] = fra.me.REG[0];
32146 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32147 ATTR_parser___ReduceAction299____goto(fra.me.REG[1]) = REGB0;
32148 stack_frame_head = fra.me.prev;
32149 init_table[itpos286] = 1;
32150 return;
32151 }
32152 void parser___ReduceAction301___action(val_t p0, val_t p1){
32153 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32154 val_t REGB0;
32155 val_t tmp;
32156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32157 fra.me.file = LOCATE_parser;
32158 fra.me.line = 9642;
32159 fra.me.meth = LOCATE_parser___ReduceAction301___action;
32160 fra.me.has_broke = 0;
32161 fra.me.REG_size = 5;
32162 fra.me.REG[0] = NIT_NULL;
32163 fra.me.REG[1] = NIT_NULL;
32164 fra.me.REG[2] = NIT_NULL;
32165 fra.me.REG[3] = NIT_NULL;
32166 fra.me.REG[4] = NIT_NULL;
32167 fra.me.REG[0] = p0;
32168 fra.me.REG[1] = p1;
32169 /* ./parser//parser.nit:9644 */
32170 fra.me.REG[2] = NIT_NULL;
32171 /* ./parser//parser.nit:9645 */
32172 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32173 /* ./parser//parser.nit:9646 */
32174 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32175 /* ./parser//parser.nit:9647 */
32176 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32177 /* ./parser//parser.nit:9649 */
32178 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwnot, ID_TKwnot)) /*cast nullable TKwnot*/;
32179 if (UNTAG_Bool(REGB0)) {
32180 } else {
32181 nit_abort("Assert failed", NULL, LOCATE_parser, 9649);
32182 }
32183 /* ./parser//parser.nit:9651 */
32184 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32185 if (UNTAG_Bool(REGB0)) {
32186 } else {
32187 nit_abort("Assert failed", NULL, LOCATE_parser, 9651);
32188 }
32189 /* ./parser//parser.nit:9652 */
32190 fra.me.REG[3] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr(fra.me.REG[4], fra.me.REG[3]);
32191 /* ./parser//parser.nit:9656 */
32192 fra.me.REG[2] = fra.me.REG[3];
32193 /* ./parser//parser.nit:9657 */
32194 REGB0 = TAG_Bool(ATTR_parser___ReduceAction301____goto(fra.me.REG[0])!=NIT_NULL);
32195 if (UNTAG_Bool(REGB0)) {
32196 } else {
32197 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9657);
32198 }
32199 REGB0 = ATTR_parser___ReduceAction301____goto(fra.me.REG[0]);
32200 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32201 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32202 stack_frame_head = fra.me.prev;
32203 return;
32204 }
32205 void parser___ReduceAction301___init(val_t p0, val_t p1, int* init_table){
32206 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction301].i;
32207 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32208 val_t REGB0;
32209 val_t tmp;
32210 if (init_table[itpos287]) return;
32211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32212 fra.me.file = LOCATE_parser;
32213 fra.me.line = 9660;
32214 fra.me.meth = LOCATE_parser___ReduceAction301___init;
32215 fra.me.has_broke = 0;
32216 fra.me.REG_size = 2;
32217 fra.me.REG[0] = NIT_NULL;
32218 fra.me.REG[1] = NIT_NULL;
32219 fra.me.REG[0] = p0;
32220 REGB0 = p1;
32221 /* ./parser//parser.nit:9660 */
32222 fra.me.REG[1] = fra.me.REG[0];
32223 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32224 ATTR_parser___ReduceAction301____goto(fra.me.REG[1]) = REGB0;
32225 stack_frame_head = fra.me.prev;
32226 init_table[itpos287] = 1;
32227 return;
32228 }
32229 void parser___ReduceAction303___action(val_t p0, val_t p1){
32230 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32231 val_t REGB0;
32232 val_t tmp;
32233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32234 fra.me.file = LOCATE_parser;
32235 fra.me.line = 9664;
32236 fra.me.meth = LOCATE_parser___ReduceAction303___action;
32237 fra.me.has_broke = 0;
32238 fra.me.REG_size = 5;
32239 fra.me.REG[0] = NIT_NULL;
32240 fra.me.REG[1] = NIT_NULL;
32241 fra.me.REG[2] = NIT_NULL;
32242 fra.me.REG[3] = NIT_NULL;
32243 fra.me.REG[4] = NIT_NULL;
32244 fra.me.REG[0] = p0;
32245 fra.me.REG[1] = p1;
32246 /* ./parser//parser.nit:9666 */
32247 fra.me.REG[2] = NIT_NULL;
32248 /* ./parser//parser.nit:9667 */
32249 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32250 /* ./parser//parser.nit:9668 */
32251 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32252 /* ./parser//parser.nit:9669 */
32253 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32254 /* ./parser//parser.nit:9670 */
32255 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32256 /* ./parser//parser.nit:9672 */
32257 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32258 if (UNTAG_Bool(REGB0)) {
32259 } else {
32260 nit_abort("Assert failed", NULL, LOCATE_parser, 9672);
32261 }
32262 /* ./parser//parser.nit:9674 */
32263 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32264 if (UNTAG_Bool(REGB0)) {
32265 } else {
32266 nit_abort("Assert failed", NULL, LOCATE_parser, 9674);
32267 }
32268 /* ./parser//parser.nit:9675 */
32269 fra.me.REG[3] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr(fra.me.REG[4], fra.me.REG[3]);
32270 /* ./parser//parser.nit:9679 */
32271 fra.me.REG[2] = fra.me.REG[3];
32272 /* ./parser//parser.nit:9680 */
32273 REGB0 = TAG_Bool(ATTR_parser___ReduceAction303____goto(fra.me.REG[0])!=NIT_NULL);
32274 if (UNTAG_Bool(REGB0)) {
32275 } else {
32276 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9680);
32277 }
32278 REGB0 = ATTR_parser___ReduceAction303____goto(fra.me.REG[0]);
32279 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32280 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32281 stack_frame_head = fra.me.prev;
32282 return;
32283 }
32284 void parser___ReduceAction303___init(val_t p0, val_t p1, int* init_table){
32285 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction303].i;
32286 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32287 val_t REGB0;
32288 val_t tmp;
32289 if (init_table[itpos288]) return;
32290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32291 fra.me.file = LOCATE_parser;
32292 fra.me.line = 9683;
32293 fra.me.meth = LOCATE_parser___ReduceAction303___init;
32294 fra.me.has_broke = 0;
32295 fra.me.REG_size = 2;
32296 fra.me.REG[0] = NIT_NULL;
32297 fra.me.REG[1] = NIT_NULL;
32298 fra.me.REG[0] = p0;
32299 REGB0 = p1;
32300 /* ./parser//parser.nit:9683 */
32301 fra.me.REG[1] = fra.me.REG[0];
32302 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32303 ATTR_parser___ReduceAction303____goto(fra.me.REG[1]) = REGB0;
32304 stack_frame_head = fra.me.prev;
32305 init_table[itpos288] = 1;
32306 return;
32307 }
32308 void parser___ReduceAction304___action(val_t p0, val_t p1){
32309 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32310 val_t REGB0;
32311 val_t tmp;
32312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32313 fra.me.file = LOCATE_parser;
32314 fra.me.line = 9687;
32315 fra.me.meth = LOCATE_parser___ReduceAction304___action;
32316 fra.me.has_broke = 0;
32317 fra.me.REG_size = 5;
32318 fra.me.REG[0] = NIT_NULL;
32319 fra.me.REG[1] = NIT_NULL;
32320 fra.me.REG[2] = NIT_NULL;
32321 fra.me.REG[3] = NIT_NULL;
32322 fra.me.REG[4] = NIT_NULL;
32323 fra.me.REG[0] = p0;
32324 fra.me.REG[1] = p1;
32325 /* ./parser//parser.nit:9689 */
32326 fra.me.REG[2] = NIT_NULL;
32327 /* ./parser//parser.nit:9690 */
32328 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32329 /* ./parser//parser.nit:9691 */
32330 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32331 /* ./parser//parser.nit:9692 */
32332 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32333 /* ./parser//parser.nit:9693 */
32334 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32335 /* ./parser//parser.nit:9695 */
32336 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32337 if (UNTAG_Bool(REGB0)) {
32338 } else {
32339 nit_abort("Assert failed", NULL, LOCATE_parser, 9695);
32340 }
32341 /* ./parser//parser.nit:9697 */
32342 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32343 if (UNTAG_Bool(REGB0)) {
32344 } else {
32345 nit_abort("Assert failed", NULL, LOCATE_parser, 9697);
32346 }
32347 /* ./parser//parser.nit:9698 */
32348 fra.me.REG[3] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr(fra.me.REG[4], fra.me.REG[3]);
32349 /* ./parser//parser.nit:9702 */
32350 fra.me.REG[2] = fra.me.REG[3];
32351 /* ./parser//parser.nit:9703 */
32352 REGB0 = TAG_Bool(ATTR_parser___ReduceAction304____goto(fra.me.REG[0])!=NIT_NULL);
32353 if (UNTAG_Bool(REGB0)) {
32354 } else {
32355 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9703);
32356 }
32357 REGB0 = ATTR_parser___ReduceAction304____goto(fra.me.REG[0]);
32358 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32359 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32360 stack_frame_head = fra.me.prev;
32361 return;
32362 }
32363 void parser___ReduceAction304___init(val_t p0, val_t p1, int* init_table){
32364 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction304].i;
32365 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32366 val_t REGB0;
32367 val_t tmp;
32368 if (init_table[itpos289]) return;
32369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32370 fra.me.file = LOCATE_parser;
32371 fra.me.line = 9706;
32372 fra.me.meth = LOCATE_parser___ReduceAction304___init;
32373 fra.me.has_broke = 0;
32374 fra.me.REG_size = 2;
32375 fra.me.REG[0] = NIT_NULL;
32376 fra.me.REG[1] = NIT_NULL;
32377 fra.me.REG[0] = p0;
32378 REGB0 = p1;
32379 /* ./parser//parser.nit:9706 */
32380 fra.me.REG[1] = fra.me.REG[0];
32381 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32382 ATTR_parser___ReduceAction304____goto(fra.me.REG[1]) = REGB0;
32383 stack_frame_head = fra.me.prev;
32384 init_table[itpos289] = 1;
32385 return;
32386 }
32387 void parser___ReduceAction305___action(val_t p0, val_t p1){
32388 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32389 val_t REGB0;
32390 val_t tmp;
32391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32392 fra.me.file = LOCATE_parser;
32393 fra.me.line = 9710;
32394 fra.me.meth = LOCATE_parser___ReduceAction305___action;
32395 fra.me.has_broke = 0;
32396 fra.me.REG_size = 5;
32397 fra.me.REG[0] = NIT_NULL;
32398 fra.me.REG[1] = NIT_NULL;
32399 fra.me.REG[2] = NIT_NULL;
32400 fra.me.REG[3] = NIT_NULL;
32401 fra.me.REG[4] = NIT_NULL;
32402 fra.me.REG[0] = p0;
32403 fra.me.REG[1] = p1;
32404 /* ./parser//parser.nit:9712 */
32405 fra.me.REG[2] = NIT_NULL;
32406 /* ./parser//parser.nit:9713 */
32407 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32408 /* ./parser//parser.nit:9714 */
32409 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32410 /* ./parser//parser.nit:9715 */
32411 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32412 /* ./parser//parser.nit:9716 */
32413 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32414 /* ./parser//parser.nit:9718 */
32415 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32416 if (UNTAG_Bool(REGB0)) {
32417 } else {
32418 nit_abort("Assert failed", NULL, LOCATE_parser, 9718);
32419 }
32420 /* ./parser//parser.nit:9720 */
32421 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32422 if (UNTAG_Bool(REGB0)) {
32423 } else {
32424 nit_abort("Assert failed", NULL, LOCATE_parser, 9720);
32425 }
32426 /* ./parser//parser.nit:9721 */
32427 fra.me.REG[3] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr(fra.me.REG[4], fra.me.REG[3]);
32428 /* ./parser//parser.nit:9725 */
32429 fra.me.REG[2] = fra.me.REG[3];
32430 /* ./parser//parser.nit:9726 */
32431 REGB0 = TAG_Bool(ATTR_parser___ReduceAction305____goto(fra.me.REG[0])!=NIT_NULL);
32432 if (UNTAG_Bool(REGB0)) {
32433 } else {
32434 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9726);
32435 }
32436 REGB0 = ATTR_parser___ReduceAction305____goto(fra.me.REG[0]);
32437 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32438 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32439 stack_frame_head = fra.me.prev;
32440 return;
32441 }
32442 void parser___ReduceAction305___init(val_t p0, val_t p1, int* init_table){
32443 int itpos290 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction305].i;
32444 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32445 val_t REGB0;
32446 val_t tmp;
32447 if (init_table[itpos290]) return;
32448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32449 fra.me.file = LOCATE_parser;
32450 fra.me.line = 9729;
32451 fra.me.meth = LOCATE_parser___ReduceAction305___init;
32452 fra.me.has_broke = 0;
32453 fra.me.REG_size = 2;
32454 fra.me.REG[0] = NIT_NULL;
32455 fra.me.REG[1] = NIT_NULL;
32456 fra.me.REG[0] = p0;
32457 REGB0 = p1;
32458 /* ./parser//parser.nit:9729 */
32459 fra.me.REG[1] = fra.me.REG[0];
32460 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32461 ATTR_parser___ReduceAction305____goto(fra.me.REG[1]) = REGB0;
32462 stack_frame_head = fra.me.prev;
32463 init_table[itpos290] = 1;
32464 return;
32465 }
32466 void parser___ReduceAction306___action(val_t p0, val_t p1){
32467 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32468 val_t REGB0;
32469 val_t tmp;
32470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32471 fra.me.file = LOCATE_parser;
32472 fra.me.line = 9733;
32473 fra.me.meth = LOCATE_parser___ReduceAction306___action;
32474 fra.me.has_broke = 0;
32475 fra.me.REG_size = 5;
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[3] = NIT_NULL;
32480 fra.me.REG[4] = NIT_NULL;
32481 fra.me.REG[0] = p0;
32482 fra.me.REG[1] = p1;
32483 /* ./parser//parser.nit:9735 */
32484 fra.me.REG[2] = NIT_NULL;
32485 /* ./parser//parser.nit:9736 */
32486 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32487 /* ./parser//parser.nit:9737 */
32488 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32489 /* ./parser//parser.nit:9738 */
32490 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32491 /* ./parser//parser.nit:9739 */
32492 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32493 /* ./parser//parser.nit:9741 */
32494 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32495 if (UNTAG_Bool(REGB0)) {
32496 } else {
32497 nit_abort("Assert failed", NULL, LOCATE_parser, 9741);
32498 }
32499 /* ./parser//parser.nit:9743 */
32500 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32501 if (UNTAG_Bool(REGB0)) {
32502 } else {
32503 nit_abort("Assert failed", NULL, LOCATE_parser, 9743);
32504 }
32505 /* ./parser//parser.nit:9744 */
32506 fra.me.REG[3] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr(fra.me.REG[4], fra.me.REG[3]);
32507 /* ./parser//parser.nit:9748 */
32508 fra.me.REG[2] = fra.me.REG[3];
32509 /* ./parser//parser.nit:9749 */
32510 REGB0 = TAG_Bool(ATTR_parser___ReduceAction306____goto(fra.me.REG[0])!=NIT_NULL);
32511 if (UNTAG_Bool(REGB0)) {
32512 } else {
32513 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9749);
32514 }
32515 REGB0 = ATTR_parser___ReduceAction306____goto(fra.me.REG[0]);
32516 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32517 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32518 stack_frame_head = fra.me.prev;
32519 return;
32520 }
32521 void parser___ReduceAction306___init(val_t p0, val_t p1, int* init_table){
32522 int itpos291 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction306].i;
32523 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32524 val_t REGB0;
32525 val_t tmp;
32526 if (init_table[itpos291]) return;
32527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32528 fra.me.file = LOCATE_parser;
32529 fra.me.line = 9752;
32530 fra.me.meth = LOCATE_parser___ReduceAction306___init;
32531 fra.me.has_broke = 0;
32532 fra.me.REG_size = 2;
32533 fra.me.REG[0] = NIT_NULL;
32534 fra.me.REG[1] = NIT_NULL;
32535 fra.me.REG[0] = p0;
32536 REGB0 = p1;
32537 /* ./parser//parser.nit:9752 */
32538 fra.me.REG[1] = fra.me.REG[0];
32539 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32540 ATTR_parser___ReduceAction306____goto(fra.me.REG[1]) = REGB0;
32541 stack_frame_head = fra.me.prev;
32542 init_table[itpos291] = 1;
32543 return;
32544 }
32545 void parser___ReduceAction307___action(val_t p0, val_t p1){
32546 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32547 val_t REGB0;
32548 val_t tmp;
32549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32550 fra.me.file = LOCATE_parser;
32551 fra.me.line = 9756;
32552 fra.me.meth = LOCATE_parser___ReduceAction307___action;
32553 fra.me.has_broke = 0;
32554 fra.me.REG_size = 5;
32555 fra.me.REG[0] = NIT_NULL;
32556 fra.me.REG[1] = NIT_NULL;
32557 fra.me.REG[2] = NIT_NULL;
32558 fra.me.REG[3] = NIT_NULL;
32559 fra.me.REG[4] = NIT_NULL;
32560 fra.me.REG[0] = p0;
32561 fra.me.REG[1] = p1;
32562 /* ./parser//parser.nit:9758 */
32563 fra.me.REG[2] = NIT_NULL;
32564 /* ./parser//parser.nit:9759 */
32565 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32566 /* ./parser//parser.nit:9760 */
32567 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32568 /* ./parser//parser.nit:9761 */
32569 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32570 /* ./parser//parser.nit:9762 */
32571 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32572 /* ./parser//parser.nit:9764 */
32573 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32574 if (UNTAG_Bool(REGB0)) {
32575 } else {
32576 nit_abort("Assert failed", NULL, LOCATE_parser, 9764);
32577 }
32578 /* ./parser//parser.nit:9766 */
32579 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32580 if (UNTAG_Bool(REGB0)) {
32581 } else {
32582 nit_abort("Assert failed", NULL, LOCATE_parser, 9766);
32583 }
32584 /* ./parser//parser.nit:9767 */
32585 fra.me.REG[3] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr(fra.me.REG[4], fra.me.REG[3]);
32586 /* ./parser//parser.nit:9771 */
32587 fra.me.REG[2] = fra.me.REG[3];
32588 /* ./parser//parser.nit:9772 */
32589 REGB0 = TAG_Bool(ATTR_parser___ReduceAction307____goto(fra.me.REG[0])!=NIT_NULL);
32590 if (UNTAG_Bool(REGB0)) {
32591 } else {
32592 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9772);
32593 }
32594 REGB0 = ATTR_parser___ReduceAction307____goto(fra.me.REG[0]);
32595 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32596 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32597 stack_frame_head = fra.me.prev;
32598 return;
32599 }
32600 void parser___ReduceAction307___init(val_t p0, val_t p1, int* init_table){
32601 int itpos292 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction307].i;
32602 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32603 val_t REGB0;
32604 val_t tmp;
32605 if (init_table[itpos292]) return;
32606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32607 fra.me.file = LOCATE_parser;
32608 fra.me.line = 9775;
32609 fra.me.meth = LOCATE_parser___ReduceAction307___init;
32610 fra.me.has_broke = 0;
32611 fra.me.REG_size = 2;
32612 fra.me.REG[0] = NIT_NULL;
32613 fra.me.REG[1] = NIT_NULL;
32614 fra.me.REG[0] = p0;
32615 REGB0 = p1;
32616 /* ./parser//parser.nit:9775 */
32617 fra.me.REG[1] = fra.me.REG[0];
32618 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32619 ATTR_parser___ReduceAction307____goto(fra.me.REG[1]) = REGB0;
32620 stack_frame_head = fra.me.prev;
32621 init_table[itpos292] = 1;
32622 return;
32623 }
32624 void parser___ReduceAction308___action(val_t p0, val_t p1){
32625 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32626 val_t REGB0;
32627 val_t tmp;
32628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32629 fra.me.file = LOCATE_parser;
32630 fra.me.line = 9779;
32631 fra.me.meth = LOCATE_parser___ReduceAction308___action;
32632 fra.me.has_broke = 0;
32633 fra.me.REG_size = 5;
32634 fra.me.REG[0] = NIT_NULL;
32635 fra.me.REG[1] = NIT_NULL;
32636 fra.me.REG[2] = NIT_NULL;
32637 fra.me.REG[3] = NIT_NULL;
32638 fra.me.REG[4] = NIT_NULL;
32639 fra.me.REG[0] = p0;
32640 fra.me.REG[1] = p1;
32641 /* ./parser//parser.nit:9781 */
32642 fra.me.REG[2] = NIT_NULL;
32643 /* ./parser//parser.nit:9782 */
32644 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32645 /* ./parser//parser.nit:9783 */
32646 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32647 /* ./parser//parser.nit:9784 */
32648 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32649 /* ./parser//parser.nit:9785 */
32650 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32651 /* ./parser//parser.nit:9787 */
32652 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32653 if (UNTAG_Bool(REGB0)) {
32654 } else {
32655 nit_abort("Assert failed", NULL, LOCATE_parser, 9787);
32656 }
32657 /* ./parser//parser.nit:9789 */
32658 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32659 if (UNTAG_Bool(REGB0)) {
32660 } else {
32661 nit_abort("Assert failed", NULL, LOCATE_parser, 9789);
32662 }
32663 /* ./parser//parser.nit:9790 */
32664 fra.me.REG[3] = NEW_ALlExpr_parser_prod___ALlExpr___init_allexpr(fra.me.REG[4], fra.me.REG[3]);
32665 /* ./parser//parser.nit:9794 */
32666 fra.me.REG[2] = fra.me.REG[3];
32667 /* ./parser//parser.nit:9795 */
32668 REGB0 = TAG_Bool(ATTR_parser___ReduceAction308____goto(fra.me.REG[0])!=NIT_NULL);
32669 if (UNTAG_Bool(REGB0)) {
32670 } else {
32671 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9795);
32672 }
32673 REGB0 = ATTR_parser___ReduceAction308____goto(fra.me.REG[0]);
32674 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32675 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32676 stack_frame_head = fra.me.prev;
32677 return;
32678 }
32679 void parser___ReduceAction308___init(val_t p0, val_t p1, int* init_table){
32680 int itpos293 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction308].i;
32681 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32682 val_t REGB0;
32683 val_t tmp;
32684 if (init_table[itpos293]) return;
32685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32686 fra.me.file = LOCATE_parser;
32687 fra.me.line = 9798;
32688 fra.me.meth = LOCATE_parser___ReduceAction308___init;
32689 fra.me.has_broke = 0;
32690 fra.me.REG_size = 2;
32691 fra.me.REG[0] = NIT_NULL;
32692 fra.me.REG[1] = NIT_NULL;
32693 fra.me.REG[0] = p0;
32694 REGB0 = p1;
32695 /* ./parser//parser.nit:9798 */
32696 fra.me.REG[1] = fra.me.REG[0];
32697 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32698 ATTR_parser___ReduceAction308____goto(fra.me.REG[1]) = REGB0;
32699 stack_frame_head = fra.me.prev;
32700 init_table[itpos293] = 1;
32701 return;
32702 }
32703 void parser___ReduceAction309___action(val_t p0, val_t p1){
32704 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32705 val_t REGB0;
32706 val_t tmp;
32707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32708 fra.me.file = LOCATE_parser;
32709 fra.me.line = 9802;
32710 fra.me.meth = LOCATE_parser___ReduceAction309___action;
32711 fra.me.has_broke = 0;
32712 fra.me.REG_size = 5;
32713 fra.me.REG[0] = NIT_NULL;
32714 fra.me.REG[1] = NIT_NULL;
32715 fra.me.REG[2] = NIT_NULL;
32716 fra.me.REG[3] = NIT_NULL;
32717 fra.me.REG[4] = NIT_NULL;
32718 fra.me.REG[0] = p0;
32719 fra.me.REG[1] = p1;
32720 /* ./parser//parser.nit:9804 */
32721 fra.me.REG[2] = NIT_NULL;
32722 /* ./parser//parser.nit:9805 */
32723 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32724 /* ./parser//parser.nit:9806 */
32725 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32726 /* ./parser//parser.nit:9807 */
32727 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32728 /* ./parser//parser.nit:9808 */
32729 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32730 /* ./parser//parser.nit:9810 */
32731 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32732 if (UNTAG_Bool(REGB0)) {
32733 } else {
32734 nit_abort("Assert failed", NULL, LOCATE_parser, 9810);
32735 }
32736 /* ./parser//parser.nit:9812 */
32737 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32738 if (UNTAG_Bool(REGB0)) {
32739 } else {
32740 nit_abort("Assert failed", NULL, LOCATE_parser, 9812);
32741 }
32742 /* ./parser//parser.nit:9813 */
32743 fra.me.REG[3] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr(fra.me.REG[4], fra.me.REG[3]);
32744 /* ./parser//parser.nit:9817 */
32745 fra.me.REG[2] = fra.me.REG[3];
32746 /* ./parser//parser.nit:9818 */
32747 REGB0 = TAG_Bool(ATTR_parser___ReduceAction309____goto(fra.me.REG[0])!=NIT_NULL);
32748 if (UNTAG_Bool(REGB0)) {
32749 } else {
32750 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9818);
32751 }
32752 REGB0 = ATTR_parser___ReduceAction309____goto(fra.me.REG[0]);
32753 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32754 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32755 stack_frame_head = fra.me.prev;
32756 return;
32757 }
32758 void parser___ReduceAction309___init(val_t p0, val_t p1, int* init_table){
32759 int itpos294 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction309].i;
32760 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32761 val_t REGB0;
32762 val_t tmp;
32763 if (init_table[itpos294]) return;
32764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32765 fra.me.file = LOCATE_parser;
32766 fra.me.line = 9821;
32767 fra.me.meth = LOCATE_parser___ReduceAction309___init;
32768 fra.me.has_broke = 0;
32769 fra.me.REG_size = 2;
32770 fra.me.REG[0] = NIT_NULL;
32771 fra.me.REG[1] = NIT_NULL;
32772 fra.me.REG[0] = p0;
32773 REGB0 = p1;
32774 /* ./parser//parser.nit:9821 */
32775 fra.me.REG[1] = fra.me.REG[0];
32776 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32777 ATTR_parser___ReduceAction309____goto(fra.me.REG[1]) = REGB0;
32778 stack_frame_head = fra.me.prev;
32779 init_table[itpos294] = 1;
32780 return;
32781 }
32782 void parser___ReduceAction310___action(val_t p0, val_t p1){
32783 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32784 val_t REGB0;
32785 val_t tmp;
32786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32787 fra.me.file = LOCATE_parser;
32788 fra.me.line = 9825;
32789 fra.me.meth = LOCATE_parser___ReduceAction310___action;
32790 fra.me.has_broke = 0;
32791 fra.me.REG_size = 5;
32792 fra.me.REG[0] = NIT_NULL;
32793 fra.me.REG[1] = NIT_NULL;
32794 fra.me.REG[2] = NIT_NULL;
32795 fra.me.REG[3] = NIT_NULL;
32796 fra.me.REG[4] = NIT_NULL;
32797 fra.me.REG[0] = p0;
32798 fra.me.REG[1] = p1;
32799 /* ./parser//parser.nit:9827 */
32800 fra.me.REG[2] = NIT_NULL;
32801 /* ./parser//parser.nit:9828 */
32802 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32803 /* ./parser//parser.nit:9829 */
32804 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32805 /* ./parser//parser.nit:9830 */
32806 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32807 /* ./parser//parser.nit:9831 */
32808 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32809 /* ./parser//parser.nit:9833 */
32810 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32811 if (UNTAG_Bool(REGB0)) {
32812 } else {
32813 nit_abort("Assert failed", NULL, LOCATE_parser, 9833);
32814 }
32815 /* ./parser//parser.nit:9835 */
32816 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32817 if (UNTAG_Bool(REGB0)) {
32818 } else {
32819 nit_abort("Assert failed", NULL, LOCATE_parser, 9835);
32820 }
32821 /* ./parser//parser.nit:9836 */
32822 fra.me.REG[3] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr(fra.me.REG[4], fra.me.REG[3]);
32823 /* ./parser//parser.nit:9840 */
32824 fra.me.REG[2] = fra.me.REG[3];
32825 /* ./parser//parser.nit:9841 */
32826 REGB0 = TAG_Bool(ATTR_parser___ReduceAction310____goto(fra.me.REG[0])!=NIT_NULL);
32827 if (UNTAG_Bool(REGB0)) {
32828 } else {
32829 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9841);
32830 }
32831 REGB0 = ATTR_parser___ReduceAction310____goto(fra.me.REG[0]);
32832 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32833 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32834 stack_frame_head = fra.me.prev;
32835 return;
32836 }
32837 void parser___ReduceAction310___init(val_t p0, val_t p1, int* init_table){
32838 int itpos295 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction310].i;
32839 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32840 val_t REGB0;
32841 val_t tmp;
32842 if (init_table[itpos295]) return;
32843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32844 fra.me.file = LOCATE_parser;
32845 fra.me.line = 9844;
32846 fra.me.meth = LOCATE_parser___ReduceAction310___init;
32847 fra.me.has_broke = 0;
32848 fra.me.REG_size = 2;
32849 fra.me.REG[0] = NIT_NULL;
32850 fra.me.REG[1] = NIT_NULL;
32851 fra.me.REG[0] = p0;
32852 REGB0 = p1;
32853 /* ./parser//parser.nit:9844 */
32854 fra.me.REG[1] = fra.me.REG[0];
32855 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32856 ATTR_parser___ReduceAction310____goto(fra.me.REG[1]) = REGB0;
32857 stack_frame_head = fra.me.prev;
32858 init_table[itpos295] = 1;
32859 return;
32860 }
32861 void parser___ReduceAction311___action(val_t p0, val_t p1){
32862 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32863 val_t REGB0;
32864 val_t tmp;
32865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32866 fra.me.file = LOCATE_parser;
32867 fra.me.line = 9848;
32868 fra.me.meth = LOCATE_parser___ReduceAction311___action;
32869 fra.me.has_broke = 0;
32870 fra.me.REG_size = 5;
32871 fra.me.REG[0] = NIT_NULL;
32872 fra.me.REG[1] = NIT_NULL;
32873 fra.me.REG[2] = NIT_NULL;
32874 fra.me.REG[3] = NIT_NULL;
32875 fra.me.REG[4] = NIT_NULL;
32876 fra.me.REG[0] = p0;
32877 fra.me.REG[1] = p1;
32878 /* ./parser//parser.nit:9850 */
32879 fra.me.REG[2] = NIT_NULL;
32880 /* ./parser//parser.nit:9851 */
32881 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32882 /* ./parser//parser.nit:9852 */
32883 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32884 /* ./parser//parser.nit:9853 */
32885 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32886 /* ./parser//parser.nit:9854 */
32887 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32888 /* ./parser//parser.nit:9856 */
32889 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32890 if (UNTAG_Bool(REGB0)) {
32891 } else {
32892 nit_abort("Assert failed", NULL, LOCATE_parser, 9856);
32893 }
32894 /* ./parser//parser.nit:9858 */
32895 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32896 if (UNTAG_Bool(REGB0)) {
32897 } else {
32898 nit_abort("Assert failed", NULL, LOCATE_parser, 9858);
32899 }
32900 /* ./parser//parser.nit:9859 */
32901 fra.me.REG[3] = NEW_AGgExpr_parser_prod___AGgExpr___init_aggexpr(fra.me.REG[4], fra.me.REG[3]);
32902 /* ./parser//parser.nit:9863 */
32903 fra.me.REG[2] = fra.me.REG[3];
32904 /* ./parser//parser.nit:9864 */
32905 REGB0 = TAG_Bool(ATTR_parser___ReduceAction311____goto(fra.me.REG[0])!=NIT_NULL);
32906 if (UNTAG_Bool(REGB0)) {
32907 } else {
32908 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9864);
32909 }
32910 REGB0 = ATTR_parser___ReduceAction311____goto(fra.me.REG[0]);
32911 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32912 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32913 stack_frame_head = fra.me.prev;
32914 return;
32915 }
32916 void parser___ReduceAction311___init(val_t p0, val_t p1, int* init_table){
32917 int itpos296 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction311].i;
32918 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32919 val_t REGB0;
32920 val_t tmp;
32921 if (init_table[itpos296]) return;
32922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32923 fra.me.file = LOCATE_parser;
32924 fra.me.line = 9867;
32925 fra.me.meth = LOCATE_parser___ReduceAction311___init;
32926 fra.me.has_broke = 0;
32927 fra.me.REG_size = 2;
32928 fra.me.REG[0] = NIT_NULL;
32929 fra.me.REG[1] = NIT_NULL;
32930 fra.me.REG[0] = p0;
32931 REGB0 = p1;
32932 /* ./parser//parser.nit:9867 */
32933 fra.me.REG[1] = fra.me.REG[0];
32934 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32935 ATTR_parser___ReduceAction311____goto(fra.me.REG[1]) = REGB0;
32936 stack_frame_head = fra.me.prev;
32937 init_table[itpos296] = 1;
32938 return;
32939 }
32940 void parser___ReduceAction312___action(val_t p0, val_t p1){
32941 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32942 val_t REGB0;
32943 val_t tmp;
32944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32945 fra.me.file = LOCATE_parser;
32946 fra.me.line = 9871;
32947 fra.me.meth = LOCATE_parser___ReduceAction312___action;
32948 fra.me.has_broke = 0;
32949 fra.me.REG_size = 5;
32950 fra.me.REG[0] = NIT_NULL;
32951 fra.me.REG[1] = NIT_NULL;
32952 fra.me.REG[2] = NIT_NULL;
32953 fra.me.REG[3] = NIT_NULL;
32954 fra.me.REG[4] = NIT_NULL;
32955 fra.me.REG[0] = p0;
32956 fra.me.REG[1] = p1;
32957 /* ./parser//parser.nit:9873 */
32958 fra.me.REG[2] = NIT_NULL;
32959 /* ./parser//parser.nit:9874 */
32960 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32961 /* ./parser//parser.nit:9875 */
32962 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32963 /* ./parser//parser.nit:9876 */
32964 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32965 /* ./parser//parser.nit:9877 */
32966 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32967 /* ./parser//parser.nit:9879 */
32968 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32969 if (UNTAG_Bool(REGB0)) {
32970 } else {
32971 nit_abort("Assert failed", NULL, LOCATE_parser, 9879);
32972 }
32973 /* ./parser//parser.nit:9881 */
32974 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32975 if (UNTAG_Bool(REGB0)) {
32976 } else {
32977 nit_abort("Assert failed", NULL, LOCATE_parser, 9881);
32978 }
32979 /* ./parser//parser.nit:9882 */
32980 fra.me.REG[3] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr(fra.me.REG[4], fra.me.REG[3]);
32981 /* ./parser//parser.nit:9886 */
32982 fra.me.REG[2] = fra.me.REG[3];
32983 /* ./parser//parser.nit:9887 */
32984 REGB0 = TAG_Bool(ATTR_parser___ReduceAction312____goto(fra.me.REG[0])!=NIT_NULL);
32985 if (UNTAG_Bool(REGB0)) {
32986 } else {
32987 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9887);
32988 }
32989 REGB0 = ATTR_parser___ReduceAction312____goto(fra.me.REG[0]);
32990 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32991 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32992 stack_frame_head = fra.me.prev;
32993 return;
32994 }
32995 void parser___ReduceAction312___init(val_t p0, val_t p1, int* init_table){
32996 int itpos297 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction312].i;
32997 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32998 val_t REGB0;
32999 val_t tmp;
33000 if (init_table[itpos297]) return;
33001 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33002 fra.me.file = LOCATE_parser;
33003 fra.me.line = 9890;
33004 fra.me.meth = LOCATE_parser___ReduceAction312___init;
33005 fra.me.has_broke = 0;
33006 fra.me.REG_size = 2;
33007 fra.me.REG[0] = NIT_NULL;
33008 fra.me.REG[1] = NIT_NULL;
33009 fra.me.REG[0] = p0;
33010 REGB0 = p1;
33011 /* ./parser//parser.nit:9890 */
33012 fra.me.REG[1] = fra.me.REG[0];
33013 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33014 ATTR_parser___ReduceAction312____goto(fra.me.REG[1]) = REGB0;
33015 stack_frame_head = fra.me.prev;
33016 init_table[itpos297] = 1;
33017 return;
33018 }
33019 void parser___ReduceAction313___action(val_t p0, val_t p1){
33020 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33021 val_t REGB0;
33022 val_t tmp;
33023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33024 fra.me.file = LOCATE_parser;
33025 fra.me.line = 9894;
33026 fra.me.meth = LOCATE_parser___ReduceAction313___action;
33027 fra.me.has_broke = 0;
33028 fra.me.REG_size = 5;
33029 fra.me.REG[0] = NIT_NULL;
33030 fra.me.REG[1] = NIT_NULL;
33031 fra.me.REG[2] = NIT_NULL;
33032 fra.me.REG[3] = NIT_NULL;
33033 fra.me.REG[4] = NIT_NULL;
33034 fra.me.REG[0] = p0;
33035 fra.me.REG[1] = p1;
33036 /* ./parser//parser.nit:9896 */
33037 fra.me.REG[2] = NIT_NULL;
33038 /* ./parser//parser.nit:9897 */
33039 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33040 /* ./parser//parser.nit:9898 */
33041 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33042 /* ./parser//parser.nit:9899 */
33043 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33044 /* ./parser//parser.nit:9900 */
33045 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33046 /* ./parser//parser.nit:9902 */
33047 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33048 if (UNTAG_Bool(REGB0)) {
33049 } else {
33050 nit_abort("Assert failed", NULL, LOCATE_parser, 9902);
33051 }
33052 /* ./parser//parser.nit:9904 */
33053 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
33054 if (UNTAG_Bool(REGB0)) {
33055 } else {
33056 nit_abort("Assert failed", NULL, LOCATE_parser, 9904);
33057 }
33058 /* ./parser//parser.nit:9905 */
33059 fra.me.REG[3] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr(fra.me.REG[4], fra.me.REG[3]);
33060 /* ./parser//parser.nit:9909 */
33061 fra.me.REG[2] = fra.me.REG[3];
33062 /* ./parser//parser.nit:9910 */
33063 REGB0 = TAG_Bool(ATTR_parser___ReduceAction313____goto(fra.me.REG[0])!=NIT_NULL);
33064 if (UNTAG_Bool(REGB0)) {
33065 } else {
33066 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9910);
33067 }
33068 REGB0 = ATTR_parser___ReduceAction313____goto(fra.me.REG[0]);
33069 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33070 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33071 stack_frame_head = fra.me.prev;
33072 return;
33073 }
33074 void parser___ReduceAction313___init(val_t p0, val_t p1, int* init_table){
33075 int itpos298 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction313].i;
33076 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33077 val_t REGB0;
33078 val_t tmp;
33079 if (init_table[itpos298]) return;
33080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33081 fra.me.file = LOCATE_parser;
33082 fra.me.line = 9913;
33083 fra.me.meth = LOCATE_parser___ReduceAction313___init;
33084 fra.me.has_broke = 0;
33085 fra.me.REG_size = 2;
33086 fra.me.REG[0] = NIT_NULL;
33087 fra.me.REG[1] = NIT_NULL;
33088 fra.me.REG[0] = p0;
33089 REGB0 = p1;
33090 /* ./parser//parser.nit:9913 */
33091 fra.me.REG[1] = fra.me.REG[0];
33092 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33093 ATTR_parser___ReduceAction313____goto(fra.me.REG[1]) = REGB0;
33094 stack_frame_head = fra.me.prev;
33095 init_table[itpos298] = 1;
33096 return;
33097 }
33098 void parser___ReduceAction315___action(val_t p0, val_t p1){
33099 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33100 val_t REGB0;
33101 val_t tmp;
33102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33103 fra.me.file = LOCATE_parser;
33104 fra.me.line = 9917;
33105 fra.me.meth = LOCATE_parser___ReduceAction315___action;
33106 fra.me.has_broke = 0;
33107 fra.me.REG_size = 5;
33108 fra.me.REG[0] = NIT_NULL;
33109 fra.me.REG[1] = NIT_NULL;
33110 fra.me.REG[2] = NIT_NULL;
33111 fra.me.REG[3] = NIT_NULL;
33112 fra.me.REG[4] = NIT_NULL;
33113 fra.me.REG[0] = p0;
33114 fra.me.REG[1] = p1;
33115 /* ./parser//parser.nit:9919 */
33116 fra.me.REG[2] = NIT_NULL;
33117 /* ./parser//parser.nit:9920 */
33118 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33119 /* ./parser//parser.nit:9921 */
33120 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33121 /* ./parser//parser.nit:9922 */
33122 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33123 /* ./parser//parser.nit:9923 */
33124 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33125 /* ./parser//parser.nit:9925 */
33126 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33127 if (UNTAG_Bool(REGB0)) {
33128 } else {
33129 nit_abort("Assert failed", NULL, LOCATE_parser, 9925);
33130 }
33131 /* ./parser//parser.nit:9927 */
33132 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33133 if (UNTAG_Bool(REGB0)) {
33134 } else {
33135 nit_abort("Assert failed", NULL, LOCATE_parser, 9927);
33136 }
33137 /* ./parser//parser.nit:9928 */
33138 fra.me.REG[3] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr(fra.me.REG[4], fra.me.REG[3]);
33139 /* ./parser//parser.nit:9932 */
33140 fra.me.REG[2] = fra.me.REG[3];
33141 /* ./parser//parser.nit:9933 */
33142 REGB0 = TAG_Bool(ATTR_parser___ReduceAction315____goto(fra.me.REG[0])!=NIT_NULL);
33143 if (UNTAG_Bool(REGB0)) {
33144 } else {
33145 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9933);
33146 }
33147 REGB0 = ATTR_parser___ReduceAction315____goto(fra.me.REG[0]);
33148 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33149 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33150 stack_frame_head = fra.me.prev;
33151 return;
33152 }
33153 void parser___ReduceAction315___init(val_t p0, val_t p1, int* init_table){
33154 int itpos299 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction315].i;
33155 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33156 val_t REGB0;
33157 val_t tmp;
33158 if (init_table[itpos299]) return;
33159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33160 fra.me.file = LOCATE_parser;
33161 fra.me.line = 9936;
33162 fra.me.meth = LOCATE_parser___ReduceAction315___init;
33163 fra.me.has_broke = 0;
33164 fra.me.REG_size = 2;
33165 fra.me.REG[0] = NIT_NULL;
33166 fra.me.REG[1] = NIT_NULL;
33167 fra.me.REG[0] = p0;
33168 REGB0 = p1;
33169 /* ./parser//parser.nit:9936 */
33170 fra.me.REG[1] = fra.me.REG[0];
33171 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33172 ATTR_parser___ReduceAction315____goto(fra.me.REG[1]) = REGB0;
33173 stack_frame_head = fra.me.prev;
33174 init_table[itpos299] = 1;
33175 return;
33176 }
33177 void parser___ReduceAction316___action(val_t p0, val_t p1){
33178 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33179 val_t REGB0;
33180 val_t tmp;
33181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33182 fra.me.file = LOCATE_parser;
33183 fra.me.line = 9940;
33184 fra.me.meth = LOCATE_parser___ReduceAction316___action;
33185 fra.me.has_broke = 0;
33186 fra.me.REG_size = 5;
33187 fra.me.REG[0] = NIT_NULL;
33188 fra.me.REG[1] = NIT_NULL;
33189 fra.me.REG[2] = NIT_NULL;
33190 fra.me.REG[3] = NIT_NULL;
33191 fra.me.REG[4] = NIT_NULL;
33192 fra.me.REG[0] = p0;
33193 fra.me.REG[1] = p1;
33194 /* ./parser//parser.nit:9942 */
33195 fra.me.REG[2] = NIT_NULL;
33196 /* ./parser//parser.nit:9943 */
33197 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33198 /* ./parser//parser.nit:9944 */
33199 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33200 /* ./parser//parser.nit:9945 */
33201 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33202 /* ./parser//parser.nit:9946 */
33203 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33204 /* ./parser//parser.nit:9948 */
33205 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33206 if (UNTAG_Bool(REGB0)) {
33207 } else {
33208 nit_abort("Assert failed", NULL, LOCATE_parser, 9948);
33209 }
33210 /* ./parser//parser.nit:9950 */
33211 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33212 if (UNTAG_Bool(REGB0)) {
33213 } else {
33214 nit_abort("Assert failed", NULL, LOCATE_parser, 9950);
33215 }
33216 /* ./parser//parser.nit:9951 */
33217 fra.me.REG[3] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr(fra.me.REG[4], fra.me.REG[3]);
33218 /* ./parser//parser.nit:9955 */
33219 fra.me.REG[2] = fra.me.REG[3];
33220 /* ./parser//parser.nit:9956 */
33221 REGB0 = TAG_Bool(ATTR_parser___ReduceAction316____goto(fra.me.REG[0])!=NIT_NULL);
33222 if (UNTAG_Bool(REGB0)) {
33223 } else {
33224 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9956);
33225 }
33226 REGB0 = ATTR_parser___ReduceAction316____goto(fra.me.REG[0]);
33227 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33228 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33229 stack_frame_head = fra.me.prev;
33230 return;
33231 }
33232 void parser___ReduceAction316___init(val_t p0, val_t p1, int* init_table){
33233 int itpos300 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction316].i;
33234 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33235 val_t REGB0;
33236 val_t tmp;
33237 if (init_table[itpos300]) return;
33238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33239 fra.me.file = LOCATE_parser;
33240 fra.me.line = 9959;
33241 fra.me.meth = LOCATE_parser___ReduceAction316___init;
33242 fra.me.has_broke = 0;
33243 fra.me.REG_size = 2;
33244 fra.me.REG[0] = NIT_NULL;
33245 fra.me.REG[1] = NIT_NULL;
33246 fra.me.REG[0] = p0;
33247 REGB0 = p1;
33248 /* ./parser//parser.nit:9959 */
33249 fra.me.REG[1] = fra.me.REG[0];
33250 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33251 ATTR_parser___ReduceAction316____goto(fra.me.REG[1]) = REGB0;
33252 stack_frame_head = fra.me.prev;
33253 init_table[itpos300] = 1;
33254 return;
33255 }
33256 void parser___ReduceAction318___action(val_t p0, val_t p1){
33257 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33258 val_t REGB0;
33259 val_t tmp;
33260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33261 fra.me.file = LOCATE_parser;
33262 fra.me.line = 9963;
33263 fra.me.meth = LOCATE_parser___ReduceAction318___action;
33264 fra.me.has_broke = 0;
33265 fra.me.REG_size = 5;
33266 fra.me.REG[0] = NIT_NULL;
33267 fra.me.REG[1] = NIT_NULL;
33268 fra.me.REG[2] = NIT_NULL;
33269 fra.me.REG[3] = NIT_NULL;
33270 fra.me.REG[4] = NIT_NULL;
33271 fra.me.REG[0] = p0;
33272 fra.me.REG[1] = p1;
33273 /* ./parser//parser.nit:9965 */
33274 fra.me.REG[2] = NIT_NULL;
33275 /* ./parser//parser.nit:9966 */
33276 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33277 /* ./parser//parser.nit:9967 */
33278 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33279 /* ./parser//parser.nit:9968 */
33280 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33281 /* ./parser//parser.nit:9969 */
33282 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33283 /* ./parser//parser.nit:9971 */
33284 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33285 if (UNTAG_Bool(REGB0)) {
33286 } else {
33287 nit_abort("Assert failed", NULL, LOCATE_parser, 9971);
33288 }
33289 /* ./parser//parser.nit:9973 */
33290 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33291 if (UNTAG_Bool(REGB0)) {
33292 } else {
33293 nit_abort("Assert failed", NULL, LOCATE_parser, 9973);
33294 }
33295 /* ./parser//parser.nit:9974 */
33296 fra.me.REG[3] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr(fra.me.REG[4], fra.me.REG[3]);
33297 /* ./parser//parser.nit:9978 */
33298 fra.me.REG[2] = fra.me.REG[3];
33299 /* ./parser//parser.nit:9979 */
33300 REGB0 = TAG_Bool(ATTR_parser___ReduceAction318____goto(fra.me.REG[0])!=NIT_NULL);
33301 if (UNTAG_Bool(REGB0)) {
33302 } else {
33303 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9979);
33304 }
33305 REGB0 = ATTR_parser___ReduceAction318____goto(fra.me.REG[0]);
33306 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33307 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33308 stack_frame_head = fra.me.prev;
33309 return;
33310 }
33311 void parser___ReduceAction318___init(val_t p0, val_t p1, int* init_table){
33312 int itpos301 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction318].i;
33313 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33314 val_t REGB0;
33315 val_t tmp;
33316 if (init_table[itpos301]) return;
33317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33318 fra.me.file = LOCATE_parser;
33319 fra.me.line = 9982;
33320 fra.me.meth = LOCATE_parser___ReduceAction318___init;
33321 fra.me.has_broke = 0;
33322 fra.me.REG_size = 2;
33323 fra.me.REG[0] = NIT_NULL;
33324 fra.me.REG[1] = NIT_NULL;
33325 fra.me.REG[0] = p0;
33326 REGB0 = p1;
33327 /* ./parser//parser.nit:9982 */
33328 fra.me.REG[1] = fra.me.REG[0];
33329 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33330 ATTR_parser___ReduceAction318____goto(fra.me.REG[1]) = REGB0;
33331 stack_frame_head = fra.me.prev;
33332 init_table[itpos301] = 1;
33333 return;
33334 }
33335 void parser___ReduceAction319___action(val_t p0, val_t p1){
33336 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33337 val_t REGB0;
33338 val_t tmp;
33339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33340 fra.me.file = LOCATE_parser;
33341 fra.me.line = 9986;
33342 fra.me.meth = LOCATE_parser___ReduceAction319___action;
33343 fra.me.has_broke = 0;
33344 fra.me.REG_size = 5;
33345 fra.me.REG[0] = NIT_NULL;
33346 fra.me.REG[1] = NIT_NULL;
33347 fra.me.REG[2] = NIT_NULL;
33348 fra.me.REG[3] = NIT_NULL;
33349 fra.me.REG[4] = NIT_NULL;
33350 fra.me.REG[0] = p0;
33351 fra.me.REG[1] = p1;
33352 /* ./parser//parser.nit:9988 */
33353 fra.me.REG[2] = NIT_NULL;
33354 /* ./parser//parser.nit:9989 */
33355 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33356 /* ./parser//parser.nit:9990 */
33357 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33358 /* ./parser//parser.nit:9991 */
33359 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33360 /* ./parser//parser.nit:9992 */
33361 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33362 /* ./parser//parser.nit:9994 */
33363 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33364 if (UNTAG_Bool(REGB0)) {
33365 } else {
33366 nit_abort("Assert failed", NULL, LOCATE_parser, 9994);
33367 }
33368 /* ./parser//parser.nit:9996 */
33369 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33370 if (UNTAG_Bool(REGB0)) {
33371 } else {
33372 nit_abort("Assert failed", NULL, LOCATE_parser, 9996);
33373 }
33374 /* ./parser//parser.nit:9997 */
33375 fra.me.REG[3] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr(fra.me.REG[4], fra.me.REG[3]);
33376 /* ./parser//parser.nit:10001 */
33377 fra.me.REG[2] = fra.me.REG[3];
33378 /* ./parser//parser.nit:10002 */
33379 REGB0 = TAG_Bool(ATTR_parser___ReduceAction319____goto(fra.me.REG[0])!=NIT_NULL);
33380 if (UNTAG_Bool(REGB0)) {
33381 } else {
33382 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10002);
33383 }
33384 REGB0 = ATTR_parser___ReduceAction319____goto(fra.me.REG[0]);
33385 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33386 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33387 stack_frame_head = fra.me.prev;
33388 return;
33389 }
33390 void parser___ReduceAction319___init(val_t p0, val_t p1, int* init_table){
33391 int itpos302 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction319].i;
33392 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33393 val_t REGB0;
33394 val_t tmp;
33395 if (init_table[itpos302]) return;
33396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33397 fra.me.file = LOCATE_parser;
33398 fra.me.line = 10005;
33399 fra.me.meth = LOCATE_parser___ReduceAction319___init;
33400 fra.me.has_broke = 0;
33401 fra.me.REG_size = 2;
33402 fra.me.REG[0] = NIT_NULL;
33403 fra.me.REG[1] = NIT_NULL;
33404 fra.me.REG[0] = p0;
33405 REGB0 = p1;
33406 /* ./parser//parser.nit:10005 */
33407 fra.me.REG[1] = fra.me.REG[0];
33408 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33409 ATTR_parser___ReduceAction319____goto(fra.me.REG[1]) = REGB0;
33410 stack_frame_head = fra.me.prev;
33411 init_table[itpos302] = 1;
33412 return;
33413 }
33414 void parser___ReduceAction320___action(val_t p0, val_t p1){
33415 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33416 val_t REGB0;
33417 val_t tmp;
33418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33419 fra.me.file = LOCATE_parser;
33420 fra.me.line = 10009;
33421 fra.me.meth = LOCATE_parser___ReduceAction320___action;
33422 fra.me.has_broke = 0;
33423 fra.me.REG_size = 5;
33424 fra.me.REG[0] = NIT_NULL;
33425 fra.me.REG[1] = NIT_NULL;
33426 fra.me.REG[2] = NIT_NULL;
33427 fra.me.REG[3] = NIT_NULL;
33428 fra.me.REG[4] = NIT_NULL;
33429 fra.me.REG[0] = p0;
33430 fra.me.REG[1] = p1;
33431 /* ./parser//parser.nit:10011 */
33432 fra.me.REG[2] = NIT_NULL;
33433 /* ./parser//parser.nit:10012 */
33434 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33435 /* ./parser//parser.nit:10013 */
33436 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33437 /* ./parser//parser.nit:10014 */
33438 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33439 /* ./parser//parser.nit:10015 */
33440 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33441 /* ./parser//parser.nit:10017 */
33442 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33443 if (UNTAG_Bool(REGB0)) {
33444 } else {
33445 nit_abort("Assert failed", NULL, LOCATE_parser, 10017);
33446 }
33447 /* ./parser//parser.nit:10019 */
33448 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33449 if (UNTAG_Bool(REGB0)) {
33450 } else {
33451 nit_abort("Assert failed", NULL, LOCATE_parser, 10019);
33452 }
33453 /* ./parser//parser.nit:10020 */
33454 fra.me.REG[3] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr(fra.me.REG[4], fra.me.REG[3]);
33455 /* ./parser//parser.nit:10024 */
33456 fra.me.REG[2] = fra.me.REG[3];
33457 /* ./parser//parser.nit:10025 */
33458 REGB0 = TAG_Bool(ATTR_parser___ReduceAction320____goto(fra.me.REG[0])!=NIT_NULL);
33459 if (UNTAG_Bool(REGB0)) {
33460 } else {
33461 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10025);
33462 }
33463 REGB0 = ATTR_parser___ReduceAction320____goto(fra.me.REG[0]);
33464 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33465 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33466 stack_frame_head = fra.me.prev;
33467 return;
33468 }
33469 void parser___ReduceAction320___init(val_t p0, val_t p1, int* init_table){
33470 int itpos303 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction320].i;
33471 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33472 val_t REGB0;
33473 val_t tmp;
33474 if (init_table[itpos303]) return;
33475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33476 fra.me.file = LOCATE_parser;
33477 fra.me.line = 10028;
33478 fra.me.meth = LOCATE_parser___ReduceAction320___init;
33479 fra.me.has_broke = 0;
33480 fra.me.REG_size = 2;
33481 fra.me.REG[0] = NIT_NULL;
33482 fra.me.REG[1] = NIT_NULL;
33483 fra.me.REG[0] = p0;
33484 REGB0 = p1;
33485 /* ./parser//parser.nit:10028 */
33486 fra.me.REG[1] = fra.me.REG[0];
33487 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33488 ATTR_parser___ReduceAction320____goto(fra.me.REG[1]) = REGB0;
33489 stack_frame_head = fra.me.prev;
33490 init_table[itpos303] = 1;
33491 return;
33492 }
33493 void parser___ReduceAction322___action(val_t p0, val_t p1){
33494 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33495 val_t REGB0;
33496 val_t tmp;
33497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33498 fra.me.file = LOCATE_parser;
33499 fra.me.line = 10032;
33500 fra.me.meth = LOCATE_parser___ReduceAction322___action;
33501 fra.me.has_broke = 0;
33502 fra.me.REG_size = 5;
33503 fra.me.REG[0] = NIT_NULL;
33504 fra.me.REG[1] = NIT_NULL;
33505 fra.me.REG[2] = NIT_NULL;
33506 fra.me.REG[3] = NIT_NULL;
33507 fra.me.REG[4] = NIT_NULL;
33508 fra.me.REG[0] = p0;
33509 fra.me.REG[1] = p1;
33510 /* ./parser//parser.nit:10034 */
33511 fra.me.REG[2] = NIT_NULL;
33512 /* ./parser//parser.nit:10035 */
33513 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33514 /* ./parser//parser.nit:10036 */
33515 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33516 /* ./parser//parser.nit:10037 */
33517 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33518 /* ./parser//parser.nit:10039 */
33519 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TMinus, ID_TMinus)) /*cast nullable TMinus*/;
33520 if (UNTAG_Bool(REGB0)) {
33521 } else {
33522 nit_abort("Assert failed", NULL, LOCATE_parser, 10039);
33523 }
33524 /* ./parser//parser.nit:10041 */
33525 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33526 if (UNTAG_Bool(REGB0)) {
33527 } else {
33528 nit_abort("Assert failed", NULL, LOCATE_parser, 10041);
33529 }
33530 /* ./parser//parser.nit:10042 */
33531 fra.me.REG[3] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr(fra.me.REG[4], fra.me.REG[3]);
33532 /* ./parser//parser.nit:10046 */
33533 fra.me.REG[2] = fra.me.REG[3];
33534 /* ./parser//parser.nit:10047 */
33535 REGB0 = TAG_Bool(ATTR_parser___ReduceAction322____goto(fra.me.REG[0])!=NIT_NULL);
33536 if (UNTAG_Bool(REGB0)) {
33537 } else {
33538 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10047);
33539 }
33540 REGB0 = ATTR_parser___ReduceAction322____goto(fra.me.REG[0]);
33541 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33542 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33543 stack_frame_head = fra.me.prev;
33544 return;
33545 }
33546 void parser___ReduceAction322___init(val_t p0, val_t p1, int* init_table){
33547 int itpos304 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction322].i;
33548 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33549 val_t REGB0;
33550 val_t tmp;
33551 if (init_table[itpos304]) return;
33552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33553 fra.me.file = LOCATE_parser;
33554 fra.me.line = 10050;
33555 fra.me.meth = LOCATE_parser___ReduceAction322___init;
33556 fra.me.has_broke = 0;
33557 fra.me.REG_size = 2;
33558 fra.me.REG[0] = NIT_NULL;
33559 fra.me.REG[1] = NIT_NULL;
33560 fra.me.REG[0] = p0;
33561 REGB0 = p1;
33562 /* ./parser//parser.nit:10050 */
33563 fra.me.REG[1] = fra.me.REG[0];
33564 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33565 ATTR_parser___ReduceAction322____goto(fra.me.REG[1]) = REGB0;
33566 stack_frame_head = fra.me.prev;
33567 init_table[itpos304] = 1;
33568 return;
33569 }
33570 void parser___ReduceAction323___action(val_t p0, val_t p1){
33571 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33572 val_t REGB0;
33573 val_t tmp;
33574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33575 fra.me.file = LOCATE_parser;
33576 fra.me.line = 10054;
33577 fra.me.meth = LOCATE_parser___ReduceAction323___action;
33578 fra.me.has_broke = 0;
33579 fra.me.REG_size = 5;
33580 fra.me.REG[0] = NIT_NULL;
33581 fra.me.REG[1] = NIT_NULL;
33582 fra.me.REG[2] = NIT_NULL;
33583 fra.me.REG[3] = NIT_NULL;
33584 fra.me.REG[4] = NIT_NULL;
33585 fra.me.REG[0] = p0;
33586 fra.me.REG[1] = p1;
33587 /* ./parser//parser.nit:10056 */
33588 fra.me.REG[2] = NIT_NULL;
33589 /* ./parser//parser.nit:10057 */
33590 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33591 /* ./parser//parser.nit:10058 */
33592 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33593 /* ./parser//parser.nit:10059 */
33594 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33595 /* ./parser//parser.nit:10061 */
33596 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwonce, ID_TKwonce)) /*cast nullable TKwonce*/;
33597 if (UNTAG_Bool(REGB0)) {
33598 } else {
33599 nit_abort("Assert failed", NULL, LOCATE_parser, 10061);
33600 }
33601 /* ./parser//parser.nit:10063 */
33602 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33603 if (UNTAG_Bool(REGB0)) {
33604 } else {
33605 nit_abort("Assert failed", NULL, LOCATE_parser, 10063);
33606 }
33607 /* ./parser//parser.nit:10064 */
33608 fra.me.REG[3] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr(fra.me.REG[4], fra.me.REG[3]);
33609 /* ./parser//parser.nit:10068 */
33610 fra.me.REG[2] = fra.me.REG[3];
33611 /* ./parser//parser.nit:10069 */
33612 REGB0 = TAG_Bool(ATTR_parser___ReduceAction323____goto(fra.me.REG[0])!=NIT_NULL);
33613 if (UNTAG_Bool(REGB0)) {
33614 } else {
33615 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10069);
33616 }
33617 REGB0 = ATTR_parser___ReduceAction323____goto(fra.me.REG[0]);
33618 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33619 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33620 stack_frame_head = fra.me.prev;
33621 return;
33622 }
33623 void parser___ReduceAction323___init(val_t p0, val_t p1, int* init_table){
33624 int itpos305 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction323].i;
33625 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33626 val_t REGB0;
33627 val_t tmp;
33628 if (init_table[itpos305]) return;
33629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33630 fra.me.file = LOCATE_parser;
33631 fra.me.line = 10072;
33632 fra.me.meth = LOCATE_parser___ReduceAction323___init;
33633 fra.me.has_broke = 0;
33634 fra.me.REG_size = 2;
33635 fra.me.REG[0] = NIT_NULL;
33636 fra.me.REG[1] = NIT_NULL;
33637 fra.me.REG[0] = p0;
33638 REGB0 = p1;
33639 /* ./parser//parser.nit:10072 */
33640 fra.me.REG[1] = fra.me.REG[0];
33641 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33642 ATTR_parser___ReduceAction323____goto(fra.me.REG[1]) = REGB0;
33643 stack_frame_head = fra.me.prev;
33644 init_table[itpos305] = 1;
33645 return;
33646 }
33647 void parser___ReduceAction325___action(val_t p0, val_t p1){
33648 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
33649 val_t REGB0;
33650 val_t tmp;
33651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33652 fra.me.file = LOCATE_parser;
33653 fra.me.line = 10076;
33654 fra.me.meth = LOCATE_parser___ReduceAction325___action;
33655 fra.me.has_broke = 0;
33656 fra.me.REG_size = 7;
33657 fra.me.REG[0] = NIT_NULL;
33658 fra.me.REG[1] = NIT_NULL;
33659 fra.me.REG[2] = NIT_NULL;
33660 fra.me.REG[3] = NIT_NULL;
33661 fra.me.REG[4] = NIT_NULL;
33662 fra.me.REG[5] = NIT_NULL;
33663 fra.me.REG[6] = NIT_NULL;
33664 fra.me.REG[0] = p0;
33665 fra.me.REG[1] = p1;
33666 /* ./parser//parser.nit:10078 */
33667 fra.me.REG[2] = NIT_NULL;
33668 /* ./parser//parser.nit:10079 */
33669 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33670 /* ./parser//parser.nit:10080 */
33671 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33672 /* ./parser//parser.nit:10081 */
33673 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33674 /* ./parser//parser.nit:10082 */
33675 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33676 /* ./parser//parser.nit:10083 */
33677 fra.me.REG[6] = NEW_Array_array___Array___init();
33678 /* ./parser//parser.nit:10085 */
33679 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwnew, ID_TKwnew)) /*cast nullable TKwnew*/;
33680 if (UNTAG_Bool(REGB0)) {
33681 } else {
33682 nit_abort("Assert failed", NULL, LOCATE_parser, 10085);
33683 }
33684 /* ./parser//parser.nit:10087 */
33685 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
33686 if (UNTAG_Bool(REGB0)) {
33687 } else {
33688 nit_abort("Assert failed", NULL, LOCATE_parser, 10087);
33689 }
33690 /* ./parser//parser.nit:10089 */
33691 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
33692 if (UNTAG_Bool(REGB0)) {
33693 } else {
33694 nit_abort("Assert failed", NULL, LOCATE_parser, 10089);
33695 }
33696 /* ./parser//parser.nit:10090 */
33697 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
33698 fra.me.REG[6] = fra.me.REG[3];
33699 /* ./parser//parser.nit:10091 */
33700 fra.me.REG[6] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[6]);
33701 /* ./parser//parser.nit:10097 */
33702 fra.me.REG[2] = fra.me.REG[6];
33703 /* ./parser//parser.nit:10098 */
33704 REGB0 = TAG_Bool(ATTR_parser___ReduceAction325____goto(fra.me.REG[0])!=NIT_NULL);
33705 if (UNTAG_Bool(REGB0)) {
33706 } else {
33707 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10098);
33708 }
33709 REGB0 = ATTR_parser___ReduceAction325____goto(fra.me.REG[0]);
33710 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33711 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33712 stack_frame_head = fra.me.prev;
33713 return;
33714 }
33715 void parser___ReduceAction325___init(val_t p0, val_t p1, int* init_table){
33716 int itpos306 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction325].i;
33717 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33718 val_t REGB0;
33719 val_t tmp;
33720 if (init_table[itpos306]) return;
33721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33722 fra.me.file = LOCATE_parser;
33723 fra.me.line = 10101;
33724 fra.me.meth = LOCATE_parser___ReduceAction325___init;
33725 fra.me.has_broke = 0;
33726 fra.me.REG_size = 2;
33727 fra.me.REG[0] = NIT_NULL;
33728 fra.me.REG[1] = NIT_NULL;
33729 fra.me.REG[0] = p0;
33730 REGB0 = p1;
33731 /* ./parser//parser.nit:10101 */
33732 fra.me.REG[1] = fra.me.REG[0];
33733 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33734 ATTR_parser___ReduceAction325____goto(fra.me.REG[1]) = REGB0;
33735 stack_frame_head = fra.me.prev;
33736 init_table[itpos306] = 1;
33737 return;
33738 }
33739 void parser___ReduceAction326___action(val_t p0, val_t p1){
33740 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33741 val_t REGB0;
33742 val_t tmp;
33743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33744 fra.me.file = LOCATE_parser;
33745 fra.me.line = 10105;
33746 fra.me.meth = LOCATE_parser___ReduceAction326___action;
33747 fra.me.has_broke = 0;
33748 fra.me.REG_size = 6;
33749 fra.me.REG[0] = NIT_NULL;
33750 fra.me.REG[1] = NIT_NULL;
33751 fra.me.REG[2] = NIT_NULL;
33752 fra.me.REG[3] = NIT_NULL;
33753 fra.me.REG[4] = NIT_NULL;
33754 fra.me.REG[5] = NIT_NULL;
33755 fra.me.REG[0] = p0;
33756 fra.me.REG[1] = p1;
33757 /* ./parser//parser.nit:10107 */
33758 fra.me.REG[2] = NIT_NULL;
33759 /* ./parser//parser.nit:10108 */
33760 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33761 /* ./parser//parser.nit:10109 */
33762 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33763 /* ./parser//parser.nit:10110 */
33764 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33765 /* ./parser//parser.nit:10111 */
33766 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33767 /* ./parser//parser.nit:10112 */
33768 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33769 /* ./parser//parser.nit:10114 */
33770 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwisset, ID_TKwisset)) /*cast nullable TKwisset*/;
33771 if (UNTAG_Bool(REGB0)) {
33772 } else {
33773 nit_abort("Assert failed", NULL, LOCATE_parser, 10114);
33774 }
33775 /* ./parser//parser.nit:10116 */
33776 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33777 if (UNTAG_Bool(REGB0)) {
33778 } else {
33779 nit_abort("Assert failed", NULL, LOCATE_parser, 10116);
33780 }
33781 /* ./parser//parser.nit:10118 */
33782 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
33783 if (UNTAG_Bool(REGB0)) {
33784 } else {
33785 nit_abort("Assert failed", NULL, LOCATE_parser, 10118);
33786 }
33787 /* ./parser//parser.nit:10119 */
33788 fra.me.REG[3] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
33789 /* ./parser//parser.nit:10124 */
33790 fra.me.REG[2] = fra.me.REG[3];
33791 /* ./parser//parser.nit:10125 */
33792 REGB0 = TAG_Bool(ATTR_parser___ReduceAction326____goto(fra.me.REG[0])!=NIT_NULL);
33793 if (UNTAG_Bool(REGB0)) {
33794 } else {
33795 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10125);
33796 }
33797 REGB0 = ATTR_parser___ReduceAction326____goto(fra.me.REG[0]);
33798 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33799 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33800 stack_frame_head = fra.me.prev;
33801 return;
33802 }
33803 void parser___ReduceAction326___init(val_t p0, val_t p1, int* init_table){
33804 int itpos307 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction326].i;
33805 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33806 val_t REGB0;
33807 val_t tmp;
33808 if (init_table[itpos307]) return;
33809 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33810 fra.me.file = LOCATE_parser;
33811 fra.me.line = 10128;
33812 fra.me.meth = LOCATE_parser___ReduceAction326___init;
33813 fra.me.has_broke = 0;
33814 fra.me.REG_size = 2;
33815 fra.me.REG[0] = NIT_NULL;
33816 fra.me.REG[1] = NIT_NULL;
33817 fra.me.REG[0] = p0;
33818 REGB0 = p1;
33819 /* ./parser//parser.nit:10128 */
33820 fra.me.REG[1] = fra.me.REG[0];
33821 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33822 ATTR_parser___ReduceAction326____goto(fra.me.REG[1]) = REGB0;
33823 stack_frame_head = fra.me.prev;
33824 init_table[itpos307] = 1;
33825 return;
33826 }
33827 void parser___ReduceAction327___action(val_t p0, val_t p1){
33828 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33829 val_t REGB0;
33830 val_t tmp;
33831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33832 fra.me.file = LOCATE_parser;
33833 fra.me.line = 10132;
33834 fra.me.meth = LOCATE_parser___ReduceAction327___action;
33835 fra.me.has_broke = 0;
33836 fra.me.REG_size = 6;
33837 fra.me.REG[0] = NIT_NULL;
33838 fra.me.REG[1] = NIT_NULL;
33839 fra.me.REG[2] = NIT_NULL;
33840 fra.me.REG[3] = NIT_NULL;
33841 fra.me.REG[4] = NIT_NULL;
33842 fra.me.REG[5] = NIT_NULL;
33843 fra.me.REG[0] = p0;
33844 fra.me.REG[1] = p1;
33845 /* ./parser//parser.nit:10134 */
33846 fra.me.REG[2] = NIT_NULL;
33847 /* ./parser//parser.nit:10135 */
33848 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33849 /* ./parser//parser.nit:10136 */
33850 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33851 /* ./parser//parser.nit:10138 */
33852 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwisset, ID_TKwisset)) /*cast nullable TKwisset*/;
33853 if (UNTAG_Bool(REGB0)) {
33854 } else {
33855 nit_abort("Assert failed", NULL, LOCATE_parser, 10138);
33856 }
33857 /* ./parser//parser.nit:10139 */
33858 fra.me.REG[5] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
33859 /* ./parser//parser.nit:10142 */
33860 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
33861 if (UNTAG_Bool(REGB0)) {
33862 } else {
33863 nit_abort("Assert failed", NULL, LOCATE_parser, 10142);
33864 }
33865 /* ./parser//parser.nit:10143 */
33866 fra.me.REG[3] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
33867 /* ./parser//parser.nit:10148 */
33868 fra.me.REG[2] = fra.me.REG[3];
33869 /* ./parser//parser.nit:10149 */
33870 REGB0 = TAG_Bool(ATTR_parser___ReduceAction327____goto(fra.me.REG[0])!=NIT_NULL);
33871 if (UNTAG_Bool(REGB0)) {
33872 } else {
33873 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10149);
33874 }
33875 REGB0 = ATTR_parser___ReduceAction327____goto(fra.me.REG[0]);
33876 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33877 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33878 stack_frame_head = fra.me.prev;
33879 return;
33880 }
33881 void parser___ReduceAction327___init(val_t p0, val_t p1, int* init_table){
33882 int itpos308 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction327].i;
33883 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33884 val_t REGB0;
33885 val_t tmp;
33886 if (init_table[itpos308]) return;
33887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33888 fra.me.file = LOCATE_parser;
33889 fra.me.line = 10152;
33890 fra.me.meth = LOCATE_parser___ReduceAction327___init;
33891 fra.me.has_broke = 0;
33892 fra.me.REG_size = 2;
33893 fra.me.REG[0] = NIT_NULL;
33894 fra.me.REG[1] = NIT_NULL;
33895 fra.me.REG[0] = p0;
33896 REGB0 = p1;
33897 /* ./parser//parser.nit:10152 */
33898 fra.me.REG[1] = fra.me.REG[0];
33899 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33900 ATTR_parser___ReduceAction327____goto(fra.me.REG[1]) = REGB0;
33901 stack_frame_head = fra.me.prev;
33902 init_table[itpos308] = 1;
33903 return;
33904 }
33905 void parser___ReduceAction328___action(val_t p0, val_t p1){
33906 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33907 val_t REGB0;
33908 val_t tmp;
33909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33910 fra.me.file = LOCATE_parser;
33911 fra.me.line = 10156;
33912 fra.me.meth = LOCATE_parser___ReduceAction328___action;
33913 fra.me.has_broke = 0;
33914 fra.me.REG_size = 5;
33915 fra.me.REG[0] = NIT_NULL;
33916 fra.me.REG[1] = NIT_NULL;
33917 fra.me.REG[2] = NIT_NULL;
33918 fra.me.REG[3] = NIT_NULL;
33919 fra.me.REG[4] = NIT_NULL;
33920 fra.me.REG[0] = p0;
33921 fra.me.REG[1] = p1;
33922 /* ./parser//parser.nit:10158 */
33923 fra.me.REG[2] = NIT_NULL;
33924 /* ./parser//parser.nit:10159 */
33925 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33926 /* ./parser//parser.nit:10160 */
33927 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33928 /* ./parser//parser.nit:10161 */
33929 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33930 /* ./parser//parser.nit:10162 */
33931 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33932 /* ./parser//parser.nit:10164 */
33933 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33934 if (UNTAG_Bool(REGB0)) {
33935 } else {
33936 nit_abort("Assert failed", NULL, LOCATE_parser, 10164);
33937 }
33938 /* ./parser//parser.nit:10166 */
33939 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
33940 if (UNTAG_Bool(REGB0)) {
33941 } else {
33942 nit_abort("Assert failed", NULL, LOCATE_parser, 10166);
33943 }
33944 /* ./parser//parser.nit:10167 */
33945 fra.me.REG[3] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
33946 /* ./parser//parser.nit:10171 */
33947 fra.me.REG[2] = fra.me.REG[3];
33948 /* ./parser//parser.nit:10172 */
33949 REGB0 = TAG_Bool(ATTR_parser___ReduceAction328____goto(fra.me.REG[0])!=NIT_NULL);
33950 if (UNTAG_Bool(REGB0)) {
33951 } else {
33952 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10172);
33953 }
33954 REGB0 = ATTR_parser___ReduceAction328____goto(fra.me.REG[0]);
33955 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33956 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33957 stack_frame_head = fra.me.prev;
33958 return;
33959 }
33960 void parser___ReduceAction328___init(val_t p0, val_t p1, int* init_table){
33961 int itpos309 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction328].i;
33962 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33963 val_t REGB0;
33964 val_t tmp;
33965 if (init_table[itpos309]) return;
33966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33967 fra.me.file = LOCATE_parser;
33968 fra.me.line = 10175;
33969 fra.me.meth = LOCATE_parser___ReduceAction328___init;
33970 fra.me.has_broke = 0;
33971 fra.me.REG_size = 2;
33972 fra.me.REG[0] = NIT_NULL;
33973 fra.me.REG[1] = NIT_NULL;
33974 fra.me.REG[0] = p0;
33975 REGB0 = p1;
33976 /* ./parser//parser.nit:10175 */
33977 fra.me.REG[1] = fra.me.REG[0];
33978 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33979 ATTR_parser___ReduceAction328____goto(fra.me.REG[1]) = REGB0;
33980 stack_frame_head = fra.me.prev;
33981 init_table[itpos309] = 1;
33982 return;
33983 }
33984 void parser___ReduceAction329___action(val_t p0, val_t p1){
33985 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33986 val_t REGB0;
33987 val_t tmp;
33988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33989 fra.me.file = LOCATE_parser;
33990 fra.me.line = 10179;
33991 fra.me.meth = LOCATE_parser___ReduceAction329___action;
33992 fra.me.has_broke = 0;
33993 fra.me.REG_size = 5;
33994 fra.me.REG[0] = NIT_NULL;
33995 fra.me.REG[1] = NIT_NULL;
33996 fra.me.REG[2] = NIT_NULL;
33997 fra.me.REG[3] = NIT_NULL;
33998 fra.me.REG[4] = NIT_NULL;
33999 fra.me.REG[0] = p0;
34000 fra.me.REG[1] = p1;
34001 /* ./parser//parser.nit:10181 */
34002 fra.me.REG[2] = NIT_NULL;
34003 /* ./parser//parser.nit:10182 */
34004 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34005 /* ./parser//parser.nit:10183 */
34006 fra.me.REG[4] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
34007 /* ./parser//parser.nit:10186 */
34008 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
34009 if (UNTAG_Bool(REGB0)) {
34010 } else {
34011 nit_abort("Assert failed", NULL, LOCATE_parser, 10186);
34012 }
34013 /* ./parser//parser.nit:10187 */
34014 fra.me.REG[3] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
34015 /* ./parser//parser.nit:10191 */
34016 fra.me.REG[2] = fra.me.REG[3];
34017 /* ./parser//parser.nit:10192 */
34018 REGB0 = TAG_Bool(ATTR_parser___ReduceAction329____goto(fra.me.REG[0])!=NIT_NULL);
34019 if (UNTAG_Bool(REGB0)) {
34020 } else {
34021 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10192);
34022 }
34023 REGB0 = ATTR_parser___ReduceAction329____goto(fra.me.REG[0]);
34024 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34025 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34026 stack_frame_head = fra.me.prev;
34027 return;
34028 }
34029 void parser___ReduceAction329___init(val_t p0, val_t p1, int* init_table){
34030 int itpos310 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction329].i;
34031 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34032 val_t REGB0;
34033 val_t tmp;
34034 if (init_table[itpos310]) return;
34035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34036 fra.me.file = LOCATE_parser;
34037 fra.me.line = 10195;
34038 fra.me.meth = LOCATE_parser___ReduceAction329___init;
34039 fra.me.has_broke = 0;
34040 fra.me.REG_size = 2;
34041 fra.me.REG[0] = NIT_NULL;
34042 fra.me.REG[1] = NIT_NULL;
34043 fra.me.REG[0] = p0;
34044 REGB0 = p1;
34045 /* ./parser//parser.nit:10195 */
34046 fra.me.REG[1] = fra.me.REG[0];
34047 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34048 ATTR_parser___ReduceAction329____goto(fra.me.REG[1]) = REGB0;
34049 stack_frame_head = fra.me.prev;
34050 init_table[itpos310] = 1;
34051 return;
34052 }
34053 void parser___ReduceAction336___action(val_t p0, val_t p1){
34054 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
34055 val_t REGB0;
34056 val_t tmp;
34057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34058 fra.me.file = LOCATE_parser;
34059 fra.me.line = 10199;
34060 fra.me.meth = LOCATE_parser___ReduceAction336___action;
34061 fra.me.has_broke = 0;
34062 fra.me.REG_size = 7;
34063 fra.me.REG[0] = NIT_NULL;
34064 fra.me.REG[1] = NIT_NULL;
34065 fra.me.REG[2] = NIT_NULL;
34066 fra.me.REG[3] = NIT_NULL;
34067 fra.me.REG[4] = NIT_NULL;
34068 fra.me.REG[5] = NIT_NULL;
34069 fra.me.REG[6] = NIT_NULL;
34070 fra.me.REG[0] = p0;
34071 fra.me.REG[1] = p1;
34072 /* ./parser//parser.nit:10201 */
34073 fra.me.REG[2] = NIT_NULL;
34074 /* ./parser//parser.nit:10202 */
34075 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34076 /* ./parser//parser.nit:10203 */
34077 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34078 /* ./parser//parser.nit:10204 */
34079 fra.me.REG[5] = NEW_Array_array___Array___init();
34080 /* ./parser//parser.nit:10205 */
34081 fra.me.REG[6] = NEW_Array_array___Array___init();
34082 /* ./parser//parser.nit:10207 */
34083 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34084 if (UNTAG_Bool(REGB0)) {
34085 } else {
34086 nit_abort("Assert failed", NULL, LOCATE_parser, 10207);
34087 }
34088 /* ./parser//parser.nit:10209 */
34089 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
34090 if (UNTAG_Bool(REGB0)) {
34091 } else {
34092 nit_abort("Assert failed", NULL, LOCATE_parser, 10209);
34093 }
34094 /* ./parser//parser.nit:10210 */
34095 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
34096 fra.me.REG[5] = fra.me.REG[3];
34097 /* ./parser//parser.nit:10211 */
34098 fra.me.REG[6] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
34099 /* ./parser//parser.nit:10216 */
34100 fra.me.REG[2] = fra.me.REG[6];
34101 /* ./parser//parser.nit:10217 */
34102 REGB0 = TAG_Bool(ATTR_parser___ReduceAction336____goto(fra.me.REG[0])!=NIT_NULL);
34103 if (UNTAG_Bool(REGB0)) {
34104 } else {
34105 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10217);
34106 }
34107 REGB0 = ATTR_parser___ReduceAction336____goto(fra.me.REG[0]);
34108 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34109 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34110 stack_frame_head = fra.me.prev;
34111 return;
34112 }
34113 void parser___ReduceAction336___init(val_t p0, val_t p1, int* init_table){
34114 int itpos311 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction336].i;
34115 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34116 val_t REGB0;
34117 val_t tmp;
34118 if (init_table[itpos311]) return;
34119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34120 fra.me.file = LOCATE_parser;
34121 fra.me.line = 10220;
34122 fra.me.meth = LOCATE_parser___ReduceAction336___init;
34123 fra.me.has_broke = 0;
34124 fra.me.REG_size = 2;
34125 fra.me.REG[0] = NIT_NULL;
34126 fra.me.REG[1] = NIT_NULL;
34127 fra.me.REG[0] = p0;
34128 REGB0 = p1;
34129 /* ./parser//parser.nit:10220 */
34130 fra.me.REG[1] = fra.me.REG[0];
34131 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34132 ATTR_parser___ReduceAction336____goto(fra.me.REG[1]) = REGB0;
34133 stack_frame_head = fra.me.prev;
34134 init_table[itpos311] = 1;
34135 return;
34136 }
34137 void parser___ReduceAction337___action(val_t p0, val_t p1){
34138 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
34139 val_t REGB0;
34140 val_t tmp;
34141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34142 fra.me.file = LOCATE_parser;
34143 fra.me.line = 10224;
34144 fra.me.meth = LOCATE_parser___ReduceAction337___action;
34145 fra.me.has_broke = 0;
34146 fra.me.REG_size = 8;
34147 fra.me.REG[0] = NIT_NULL;
34148 fra.me.REG[1] = NIT_NULL;
34149 fra.me.REG[2] = NIT_NULL;
34150 fra.me.REG[3] = NIT_NULL;
34151 fra.me.REG[4] = NIT_NULL;
34152 fra.me.REG[5] = NIT_NULL;
34153 fra.me.REG[6] = NIT_NULL;
34154 fra.me.REG[7] = NIT_NULL;
34155 fra.me.REG[0] = p0;
34156 fra.me.REG[1] = p1;
34157 /* ./parser//parser.nit:10226 */
34158 fra.me.REG[2] = NIT_NULL;
34159 /* ./parser//parser.nit:10227 */
34160 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34161 /* ./parser//parser.nit:10228 */
34162 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34163 /* ./parser//parser.nit:10229 */
34164 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34165 /* ./parser//parser.nit:10230 */
34166 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34167 /* ./parser//parser.nit:10231 */
34168 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34169 /* ./parser//parser.nit:10232 */
34170 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34171 /* ./parser//parser.nit:10233 */
34172 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34173 /* ./parser//parser.nit:10234 */
34174 fra.me.REG[7] = NEW_Array_array___Array___init();
34175 /* ./parser//parser.nit:10236 */
34176 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwnew, ID_TKwnew)) /*cast nullable TKwnew*/;
34177 if (UNTAG_Bool(REGB0)) {
34178 } else {
34179 nit_abort("Assert failed", NULL, LOCATE_parser, 10236);
34180 }
34181 /* ./parser//parser.nit:10238 */
34182 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
34183 if (UNTAG_Bool(REGB0)) {
34184 } else {
34185 nit_abort("Assert failed", NULL, LOCATE_parser, 10238);
34186 }
34187 /* ./parser//parser.nit:10240 */
34188 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
34189 if (UNTAG_Bool(REGB0)) {
34190 } else {
34191 nit_abort("Assert failed", NULL, LOCATE_parser, 10240);
34192 }
34193 /* ./parser//parser.nit:10242 */
34194 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
34195 if (UNTAG_Bool(REGB0)) {
34196 } else {
34197 nit_abort("Assert failed", NULL, LOCATE_parser, 10242);
34198 }
34199 /* ./parser//parser.nit:10243 */
34200 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
34201 fra.me.REG[7] = fra.me.REG[3];
34202 /* ./parser//parser.nit:10244 */
34203 fra.me.REG[7] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[7]);
34204 /* ./parser//parser.nit:10250 */
34205 fra.me.REG[2] = fra.me.REG[7];
34206 /* ./parser//parser.nit:10251 */
34207 REGB0 = TAG_Bool(ATTR_parser___ReduceAction337____goto(fra.me.REG[0])!=NIT_NULL);
34208 if (UNTAG_Bool(REGB0)) {
34209 } else {
34210 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10251);
34211 }
34212 REGB0 = ATTR_parser___ReduceAction337____goto(fra.me.REG[0]);
34213 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34214 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34215 stack_frame_head = fra.me.prev;
34216 return;
34217 }
34218 void parser___ReduceAction337___init(val_t p0, val_t p1, int* init_table){
34219 int itpos312 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction337].i;
34220 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34221 val_t REGB0;
34222 val_t tmp;
34223 if (init_table[itpos312]) return;
34224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34225 fra.me.file = LOCATE_parser;
34226 fra.me.line = 10254;
34227 fra.me.meth = LOCATE_parser___ReduceAction337___init;
34228 fra.me.has_broke = 0;
34229 fra.me.REG_size = 2;
34230 fra.me.REG[0] = NIT_NULL;
34231 fra.me.REG[1] = NIT_NULL;
34232 fra.me.REG[0] = p0;
34233 REGB0 = p1;
34234 /* ./parser//parser.nit:10254 */
34235 fra.me.REG[1] = fra.me.REG[0];
34236 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34237 ATTR_parser___ReduceAction337____goto(fra.me.REG[1]) = REGB0;
34238 stack_frame_head = fra.me.prev;
34239 init_table[itpos312] = 1;
34240 return;
34241 }
34242 void parser___ReduceAction338___action(val_t p0, val_t p1){
34243 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
34244 val_t REGB0;
34245 val_t tmp;
34246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34247 fra.me.file = LOCATE_parser;
34248 fra.me.line = 10258;
34249 fra.me.meth = LOCATE_parser___ReduceAction338___action;
34250 fra.me.has_broke = 0;
34251 fra.me.REG_size = 6;
34252 fra.me.REG[0] = NIT_NULL;
34253 fra.me.REG[1] = NIT_NULL;
34254 fra.me.REG[2] = NIT_NULL;
34255 fra.me.REG[3] = NIT_NULL;
34256 fra.me.REG[4] = NIT_NULL;
34257 fra.me.REG[5] = NIT_NULL;
34258 fra.me.REG[0] = p0;
34259 fra.me.REG[1] = p1;
34260 /* ./parser//parser.nit:10260 */
34261 fra.me.REG[2] = NIT_NULL;
34262 /* ./parser//parser.nit:10261 */
34263 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34264 /* ./parser//parser.nit:10262 */
34265 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34266 /* ./parser//parser.nit:10263 */
34267 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34268 /* ./parser//parser.nit:10264 */
34269 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34270 /* ./parser//parser.nit:10265 */
34271 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34272 /* ./parser//parser.nit:10266 */
34273 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34274 /* ./parser//parser.nit:10267 */
34275 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34276 /* ./parser//parser.nit:10268 */
34277 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34278 /* ./parser//parser.nit:10269 */
34279 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34280 /* ./parser//parser.nit:10271 */
34281 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34282 if (UNTAG_Bool(REGB0)) {
34283 } else {
34284 nit_abort("Assert failed", NULL, LOCATE_parser, 10271);
34285 }
34286 /* ./parser//parser.nit:10273 */
34287 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34288 if (UNTAG_Bool(REGB0)) {
34289 } else {
34290 nit_abort("Assert failed", NULL, LOCATE_parser, 10273);
34291 }
34292 /* ./parser//parser.nit:10274 */
34293 fra.me.REG[3] = NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[4], fra.me.REG[3]);
34294 /* ./parser//parser.nit:10278 */
34295 fra.me.REG[2] = fra.me.REG[3];
34296 /* ./parser//parser.nit:10279 */
34297 REGB0 = TAG_Bool(ATTR_parser___ReduceAction338____goto(fra.me.REG[0])!=NIT_NULL);
34298 if (UNTAG_Bool(REGB0)) {
34299 } else {
34300 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10279);
34301 }
34302 REGB0 = ATTR_parser___ReduceAction338____goto(fra.me.REG[0]);
34303 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34304 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34305 stack_frame_head = fra.me.prev;
34306 return;
34307 }
34308 void parser___ReduceAction338___init(val_t p0, val_t p1, int* init_table){
34309 int itpos313 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction338].i;
34310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34311 val_t REGB0;
34312 val_t tmp;
34313 if (init_table[itpos313]) return;
34314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34315 fra.me.file = LOCATE_parser;
34316 fra.me.line = 10282;
34317 fra.me.meth = LOCATE_parser___ReduceAction338___init;
34318 fra.me.has_broke = 0;
34319 fra.me.REG_size = 2;
34320 fra.me.REG[0] = NIT_NULL;
34321 fra.me.REG[1] = NIT_NULL;
34322 fra.me.REG[0] = p0;
34323 REGB0 = p1;
34324 /* ./parser//parser.nit:10282 */
34325 fra.me.REG[1] = fra.me.REG[0];
34326 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34327 ATTR_parser___ReduceAction338____goto(fra.me.REG[1]) = REGB0;
34328 stack_frame_head = fra.me.prev;
34329 init_table[itpos313] = 1;
34330 return;
34331 }
34332 void parser___ReduceAction339___action(val_t p0, val_t p1){
34333 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
34334 val_t REGB0;
34335 val_t tmp;
34336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34337 fra.me.file = LOCATE_parser;
34338 fra.me.line = 10286;
34339 fra.me.meth = LOCATE_parser___ReduceAction339___action;
34340 fra.me.has_broke = 0;
34341 fra.me.REG_size = 6;
34342 fra.me.REG[0] = NIT_NULL;
34343 fra.me.REG[1] = NIT_NULL;
34344 fra.me.REG[2] = NIT_NULL;
34345 fra.me.REG[3] = NIT_NULL;
34346 fra.me.REG[4] = NIT_NULL;
34347 fra.me.REG[5] = NIT_NULL;
34348 fra.me.REG[0] = p0;
34349 fra.me.REG[1] = p1;
34350 /* ./parser//parser.nit:10288 */
34351 fra.me.REG[2] = NIT_NULL;
34352 /* ./parser//parser.nit:10289 */
34353 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34354 /* ./parser//parser.nit:10290 */
34355 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34356 /* ./parser//parser.nit:10291 */
34357 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34358 /* ./parser//parser.nit:10292 */
34359 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34360 /* ./parser//parser.nit:10293 */
34361 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34362 /* ./parser//parser.nit:10294 */
34363 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34364 /* ./parser//parser.nit:10295 */
34365 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34366 /* ./parser//parser.nit:10296 */
34367 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34368 /* ./parser//parser.nit:10297 */
34369 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34370 /* ./parser//parser.nit:10299 */
34371 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34372 if (UNTAG_Bool(REGB0)) {
34373 } else {
34374 nit_abort("Assert failed", NULL, LOCATE_parser, 10299);
34375 }
34376 /* ./parser//parser.nit:10301 */
34377 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34378 if (UNTAG_Bool(REGB0)) {
34379 } else {
34380 nit_abort("Assert failed", NULL, LOCATE_parser, 10301);
34381 }
34382 /* ./parser//parser.nit:10302 */
34383 fra.me.REG[3] = NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[4], fra.me.REG[3]);
34384 /* ./parser//parser.nit:10306 */
34385 fra.me.REG[2] = fra.me.REG[3];
34386 /* ./parser//parser.nit:10307 */
34387 REGB0 = TAG_Bool(ATTR_parser___ReduceAction339____goto(fra.me.REG[0])!=NIT_NULL);
34388 if (UNTAG_Bool(REGB0)) {
34389 } else {
34390 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10307);
34391 }
34392 REGB0 = ATTR_parser___ReduceAction339____goto(fra.me.REG[0]);
34393 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34394 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34395 stack_frame_head = fra.me.prev;
34396 return;
34397 }
34398 void parser___ReduceAction339___init(val_t p0, val_t p1, int* init_table){
34399 int itpos314 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction339].i;
34400 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34401 val_t REGB0;
34402 val_t tmp;
34403 if (init_table[itpos314]) return;
34404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34405 fra.me.file = LOCATE_parser;
34406 fra.me.line = 10310;
34407 fra.me.meth = LOCATE_parser___ReduceAction339___init;
34408 fra.me.has_broke = 0;
34409 fra.me.REG_size = 2;
34410 fra.me.REG[0] = NIT_NULL;
34411 fra.me.REG[1] = NIT_NULL;
34412 fra.me.REG[0] = p0;
34413 REGB0 = p1;
34414 /* ./parser//parser.nit:10310 */
34415 fra.me.REG[1] = fra.me.REG[0];
34416 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34417 ATTR_parser___ReduceAction339____goto(fra.me.REG[1]) = REGB0;
34418 stack_frame_head = fra.me.prev;
34419 init_table[itpos314] = 1;
34420 return;
34421 }
34422 void parser___ReduceAction340___action(val_t p0, val_t p1){
34423 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34424 val_t REGB0;
34425 val_t tmp;
34426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34427 fra.me.file = LOCATE_parser;
34428 fra.me.line = 10314;
34429 fra.me.meth = LOCATE_parser___ReduceAction340___action;
34430 fra.me.has_broke = 0;
34431 fra.me.REG_size = 5;
34432 fra.me.REG[0] = NIT_NULL;
34433 fra.me.REG[1] = NIT_NULL;
34434 fra.me.REG[2] = NIT_NULL;
34435 fra.me.REG[3] = NIT_NULL;
34436 fra.me.REG[4] = NIT_NULL;
34437 fra.me.REG[0] = p0;
34438 fra.me.REG[1] = p1;
34439 /* ./parser//parser.nit:10316 */
34440 fra.me.REG[2] = NIT_NULL;
34441 /* ./parser//parser.nit:10317 */
34442 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34443 /* ./parser//parser.nit:10318 */
34444 fra.me.REG[4] = NEW_Array_array___Array___init();
34445 /* ./parser//parser.nit:10320 */
34446 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
34447 if (UNTAG_Bool(REGB0)) {
34448 } else {
34449 nit_abort("Assert failed", NULL, LOCATE_parser, 10320);
34450 }
34451 /* ./parser//parser.nit:10321 */
34452 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
34453 fra.me.REG[4] = fra.me.REG[3];
34454 /* ./parser//parser.nit:10322 */
34455 fra.me.REG[4] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr(fra.me.REG[4]);
34456 /* ./parser//parser.nit:10325 */
34457 fra.me.REG[2] = fra.me.REG[4];
34458 /* ./parser//parser.nit:10326 */
34459 REGB0 = TAG_Bool(ATTR_parser___ReduceAction340____goto(fra.me.REG[0])!=NIT_NULL);
34460 if (UNTAG_Bool(REGB0)) {
34461 } else {
34462 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10326);
34463 }
34464 REGB0 = ATTR_parser___ReduceAction340____goto(fra.me.REG[0]);
34465 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34466 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34467 stack_frame_head = fra.me.prev;
34468 return;
34469 }
34470 void parser___ReduceAction340___init(val_t p0, val_t p1, int* init_table){
34471 int itpos315 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction340].i;
34472 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34473 val_t REGB0;
34474 val_t tmp;
34475 if (init_table[itpos315]) return;
34476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34477 fra.me.file = LOCATE_parser;
34478 fra.me.line = 10329;
34479 fra.me.meth = LOCATE_parser___ReduceAction340___init;
34480 fra.me.has_broke = 0;
34481 fra.me.REG_size = 2;
34482 fra.me.REG[0] = NIT_NULL;
34483 fra.me.REG[1] = NIT_NULL;
34484 fra.me.REG[0] = p0;
34485 REGB0 = p1;
34486 /* ./parser//parser.nit:10329 */
34487 fra.me.REG[1] = fra.me.REG[0];
34488 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34489 ATTR_parser___ReduceAction340____goto(fra.me.REG[1]) = REGB0;
34490 stack_frame_head = fra.me.prev;
34491 init_table[itpos315] = 1;
34492 return;
34493 }
34494 void parser___ReduceAction341___action(val_t p0, val_t p1){
34495 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34496 val_t REGB0;
34497 val_t tmp;
34498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34499 fra.me.file = LOCATE_parser;
34500 fra.me.line = 10333;
34501 fra.me.meth = LOCATE_parser___ReduceAction341___action;
34502 fra.me.has_broke = 0;
34503 fra.me.REG_size = 4;
34504 fra.me.REG[0] = NIT_NULL;
34505 fra.me.REG[1] = NIT_NULL;
34506 fra.me.REG[2] = NIT_NULL;
34507 fra.me.REG[3] = NIT_NULL;
34508 fra.me.REG[0] = p0;
34509 fra.me.REG[1] = p1;
34510 /* ./parser//parser.nit:10335 */
34511 fra.me.REG[2] = NIT_NULL;
34512 /* ./parser//parser.nit:10336 */
34513 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34514 /* ./parser//parser.nit:10338 */
34515 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwself, ID_TKwself)) /*cast nullable TKwself*/;
34516 if (UNTAG_Bool(REGB0)) {
34517 } else {
34518 nit_abort("Assert failed", NULL, LOCATE_parser, 10338);
34519 }
34520 /* ./parser//parser.nit:10339 */
34521 fra.me.REG[3] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[3]);
34522 /* ./parser//parser.nit:10342 */
34523 fra.me.REG[2] = fra.me.REG[3];
34524 /* ./parser//parser.nit:10343 */
34525 REGB0 = TAG_Bool(ATTR_parser___ReduceAction341____goto(fra.me.REG[0])!=NIT_NULL);
34526 if (UNTAG_Bool(REGB0)) {
34527 } else {
34528 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10343);
34529 }
34530 REGB0 = ATTR_parser___ReduceAction341____goto(fra.me.REG[0]);
34531 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34532 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34533 stack_frame_head = fra.me.prev;
34534 return;
34535 }
34536 void parser___ReduceAction341___init(val_t p0, val_t p1, int* init_table){
34537 int itpos316 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction341].i;
34538 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34539 val_t REGB0;
34540 val_t tmp;
34541 if (init_table[itpos316]) return;
34542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34543 fra.me.file = LOCATE_parser;
34544 fra.me.line = 10346;
34545 fra.me.meth = LOCATE_parser___ReduceAction341___init;
34546 fra.me.has_broke = 0;
34547 fra.me.REG_size = 2;
34548 fra.me.REG[0] = NIT_NULL;
34549 fra.me.REG[1] = NIT_NULL;
34550 fra.me.REG[0] = p0;
34551 REGB0 = p1;
34552 /* ./parser//parser.nit:10346 */
34553 fra.me.REG[1] = fra.me.REG[0];
34554 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34555 ATTR_parser___ReduceAction341____goto(fra.me.REG[1]) = REGB0;
34556 stack_frame_head = fra.me.prev;
34557 init_table[itpos316] = 1;
34558 return;
34559 }
34560 void parser___ReduceAction342___action(val_t p0, val_t p1){
34561 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34562 val_t REGB0;
34563 val_t tmp;
34564 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34565 fra.me.file = LOCATE_parser;
34566 fra.me.line = 10350;
34567 fra.me.meth = LOCATE_parser___ReduceAction342___action;
34568 fra.me.has_broke = 0;
34569 fra.me.REG_size = 4;
34570 fra.me.REG[0] = NIT_NULL;
34571 fra.me.REG[1] = NIT_NULL;
34572 fra.me.REG[2] = NIT_NULL;
34573 fra.me.REG[3] = NIT_NULL;
34574 fra.me.REG[0] = p0;
34575 fra.me.REG[1] = p1;
34576 /* ./parser//parser.nit:10352 */
34577 fra.me.REG[2] = NIT_NULL;
34578 /* ./parser//parser.nit:10353 */
34579 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34580 /* ./parser//parser.nit:10355 */
34581 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwtrue, ID_TKwtrue)) /*cast nullable TKwtrue*/;
34582 if (UNTAG_Bool(REGB0)) {
34583 } else {
34584 nit_abort("Assert failed", NULL, LOCATE_parser, 10355);
34585 }
34586 /* ./parser//parser.nit:10356 */
34587 fra.me.REG[3] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr(fra.me.REG[3]);
34588 /* ./parser//parser.nit:10359 */
34589 fra.me.REG[2] = fra.me.REG[3];
34590 /* ./parser//parser.nit:10360 */
34591 REGB0 = TAG_Bool(ATTR_parser___ReduceAction342____goto(fra.me.REG[0])!=NIT_NULL);
34592 if (UNTAG_Bool(REGB0)) {
34593 } else {
34594 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10360);
34595 }
34596 REGB0 = ATTR_parser___ReduceAction342____goto(fra.me.REG[0]);
34597 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34598 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34599 stack_frame_head = fra.me.prev;
34600 return;
34601 }
34602 void parser___ReduceAction342___init(val_t p0, val_t p1, int* init_table){
34603 int itpos317 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction342].i;
34604 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34605 val_t REGB0;
34606 val_t tmp;
34607 if (init_table[itpos317]) return;
34608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34609 fra.me.file = LOCATE_parser;
34610 fra.me.line = 10363;
34611 fra.me.meth = LOCATE_parser___ReduceAction342___init;
34612 fra.me.has_broke = 0;
34613 fra.me.REG_size = 2;
34614 fra.me.REG[0] = NIT_NULL;
34615 fra.me.REG[1] = NIT_NULL;
34616 fra.me.REG[0] = p0;
34617 REGB0 = p1;
34618 /* ./parser//parser.nit:10363 */
34619 fra.me.REG[1] = fra.me.REG[0];
34620 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34621 ATTR_parser___ReduceAction342____goto(fra.me.REG[1]) = REGB0;
34622 stack_frame_head = fra.me.prev;
34623 init_table[itpos317] = 1;
34624 return;
34625 }
34626 void parser___ReduceAction343___action(val_t p0, val_t p1){
34627 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34628 val_t REGB0;
34629 val_t tmp;
34630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34631 fra.me.file = LOCATE_parser;
34632 fra.me.line = 10367;
34633 fra.me.meth = LOCATE_parser___ReduceAction343___action;
34634 fra.me.has_broke = 0;
34635 fra.me.REG_size = 4;
34636 fra.me.REG[0] = NIT_NULL;
34637 fra.me.REG[1] = NIT_NULL;
34638 fra.me.REG[2] = NIT_NULL;
34639 fra.me.REG[3] = NIT_NULL;
34640 fra.me.REG[0] = p0;
34641 fra.me.REG[1] = p1;
34642 /* ./parser//parser.nit:10369 */
34643 fra.me.REG[2] = NIT_NULL;
34644 /* ./parser//parser.nit:10370 */
34645 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34646 /* ./parser//parser.nit:10372 */
34647 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwfalse, ID_TKwfalse)) /*cast nullable TKwfalse*/;
34648 if (UNTAG_Bool(REGB0)) {
34649 } else {
34650 nit_abort("Assert failed", NULL, LOCATE_parser, 10372);
34651 }
34652 /* ./parser//parser.nit:10373 */
34653 fra.me.REG[3] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr(fra.me.REG[3]);
34654 /* ./parser//parser.nit:10376 */
34655 fra.me.REG[2] = fra.me.REG[3];
34656 /* ./parser//parser.nit:10377 */
34657 REGB0 = TAG_Bool(ATTR_parser___ReduceAction343____goto(fra.me.REG[0])!=NIT_NULL);
34658 if (UNTAG_Bool(REGB0)) {
34659 } else {
34660 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10377);
34661 }
34662 REGB0 = ATTR_parser___ReduceAction343____goto(fra.me.REG[0]);
34663 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34664 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34665 stack_frame_head = fra.me.prev;
34666 return;
34667 }
34668 void parser___ReduceAction343___init(val_t p0, val_t p1, int* init_table){
34669 int itpos318 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction343].i;
34670 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34671 val_t REGB0;
34672 val_t tmp;
34673 if (init_table[itpos318]) return;
34674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34675 fra.me.file = LOCATE_parser;
34676 fra.me.line = 10380;
34677 fra.me.meth = LOCATE_parser___ReduceAction343___init;
34678 fra.me.has_broke = 0;
34679 fra.me.REG_size = 2;
34680 fra.me.REG[0] = NIT_NULL;
34681 fra.me.REG[1] = NIT_NULL;
34682 fra.me.REG[0] = p0;
34683 REGB0 = p1;
34684 /* ./parser//parser.nit:10380 */
34685 fra.me.REG[1] = fra.me.REG[0];
34686 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34687 ATTR_parser___ReduceAction343____goto(fra.me.REG[1]) = REGB0;
34688 stack_frame_head = fra.me.prev;
34689 init_table[itpos318] = 1;
34690 return;
34691 }
34692 void parser___ReduceAction344___action(val_t p0, val_t p1){
34693 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34694 val_t REGB0;
34695 val_t tmp;
34696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34697 fra.me.file = LOCATE_parser;
34698 fra.me.line = 10384;
34699 fra.me.meth = LOCATE_parser___ReduceAction344___action;
34700 fra.me.has_broke = 0;
34701 fra.me.REG_size = 4;
34702 fra.me.REG[0] = NIT_NULL;
34703 fra.me.REG[1] = NIT_NULL;
34704 fra.me.REG[2] = NIT_NULL;
34705 fra.me.REG[3] = NIT_NULL;
34706 fra.me.REG[0] = p0;
34707 fra.me.REG[1] = p1;
34708 /* ./parser//parser.nit:10386 */
34709 fra.me.REG[2] = NIT_NULL;
34710 /* ./parser//parser.nit:10387 */
34711 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34712 /* ./parser//parser.nit:10389 */
34713 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwnull, ID_TKwnull)) /*cast nullable TKwnull*/;
34714 if (UNTAG_Bool(REGB0)) {
34715 } else {
34716 nit_abort("Assert failed", NULL, LOCATE_parser, 10389);
34717 }
34718 /* ./parser//parser.nit:10390 */
34719 fra.me.REG[3] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr(fra.me.REG[3]);
34720 /* ./parser//parser.nit:10393 */
34721 fra.me.REG[2] = fra.me.REG[3];
34722 /* ./parser//parser.nit:10394 */
34723 REGB0 = TAG_Bool(ATTR_parser___ReduceAction344____goto(fra.me.REG[0])!=NIT_NULL);
34724 if (UNTAG_Bool(REGB0)) {
34725 } else {
34726 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10394);
34727 }
34728 REGB0 = ATTR_parser___ReduceAction344____goto(fra.me.REG[0]);
34729 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34730 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34731 stack_frame_head = fra.me.prev;
34732 return;
34733 }
34734 void parser___ReduceAction344___init(val_t p0, val_t p1, int* init_table){
34735 int itpos319 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction344].i;
34736 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34737 val_t REGB0;
34738 val_t tmp;
34739 if (init_table[itpos319]) return;
34740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34741 fra.me.file = LOCATE_parser;
34742 fra.me.line = 10397;
34743 fra.me.meth = LOCATE_parser___ReduceAction344___init;
34744 fra.me.has_broke = 0;
34745 fra.me.REG_size = 2;
34746 fra.me.REG[0] = NIT_NULL;
34747 fra.me.REG[1] = NIT_NULL;
34748 fra.me.REG[0] = p0;
34749 REGB0 = p1;
34750 /* ./parser//parser.nit:10397 */
34751 fra.me.REG[1] = fra.me.REG[0];
34752 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34753 ATTR_parser___ReduceAction344____goto(fra.me.REG[1]) = REGB0;
34754 stack_frame_head = fra.me.prev;
34755 init_table[itpos319] = 1;
34756 return;
34757 }
34758 void parser___ReduceAction345___action(val_t p0, val_t p1){
34759 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34760 val_t REGB0;
34761 val_t tmp;
34762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34763 fra.me.file = LOCATE_parser;
34764 fra.me.line = 10401;
34765 fra.me.meth = LOCATE_parser___ReduceAction345___action;
34766 fra.me.has_broke = 0;
34767 fra.me.REG_size = 4;
34768 fra.me.REG[0] = NIT_NULL;
34769 fra.me.REG[1] = NIT_NULL;
34770 fra.me.REG[2] = NIT_NULL;
34771 fra.me.REG[3] = NIT_NULL;
34772 fra.me.REG[0] = p0;
34773 fra.me.REG[1] = p1;
34774 /* ./parser//parser.nit:10403 */
34775 fra.me.REG[2] = NIT_NULL;
34776 /* ./parser//parser.nit:10404 */
34777 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34778 /* ./parser//parser.nit:10406 */
34779 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TNumber, ID_TNumber)) /*cast nullable TNumber*/;
34780 if (UNTAG_Bool(REGB0)) {
34781 } else {
34782 nit_abort("Assert failed", NULL, LOCATE_parser, 10406);
34783 }
34784 /* ./parser//parser.nit:10407 */
34785 fra.me.REG[3] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr(fra.me.REG[3]);
34786 /* ./parser//parser.nit:10410 */
34787 fra.me.REG[2] = fra.me.REG[3];
34788 /* ./parser//parser.nit:10411 */
34789 REGB0 = TAG_Bool(ATTR_parser___ReduceAction345____goto(fra.me.REG[0])!=NIT_NULL);
34790 if (UNTAG_Bool(REGB0)) {
34791 } else {
34792 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10411);
34793 }
34794 REGB0 = ATTR_parser___ReduceAction345____goto(fra.me.REG[0]);
34795 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34796 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34797 stack_frame_head = fra.me.prev;
34798 return;
34799 }
34800 void parser___ReduceAction345___init(val_t p0, val_t p1, int* init_table){
34801 int itpos320 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction345].i;
34802 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34803 val_t REGB0;
34804 val_t tmp;
34805 if (init_table[itpos320]) return;
34806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34807 fra.me.file = LOCATE_parser;
34808 fra.me.line = 10414;
34809 fra.me.meth = LOCATE_parser___ReduceAction345___init;
34810 fra.me.has_broke = 0;
34811 fra.me.REG_size = 2;
34812 fra.me.REG[0] = NIT_NULL;
34813 fra.me.REG[1] = NIT_NULL;
34814 fra.me.REG[0] = p0;
34815 REGB0 = p1;
34816 /* ./parser//parser.nit:10414 */
34817 fra.me.REG[1] = fra.me.REG[0];
34818 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34819 ATTR_parser___ReduceAction345____goto(fra.me.REG[1]) = REGB0;
34820 stack_frame_head = fra.me.prev;
34821 init_table[itpos320] = 1;
34822 return;
34823 }
34824 void parser___ReduceAction346___action(val_t p0, val_t p1){
34825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34826 val_t REGB0;
34827 val_t tmp;
34828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34829 fra.me.file = LOCATE_parser;
34830 fra.me.line = 10418;
34831 fra.me.meth = LOCATE_parser___ReduceAction346___action;
34832 fra.me.has_broke = 0;
34833 fra.me.REG_size = 4;
34834 fra.me.REG[0] = NIT_NULL;
34835 fra.me.REG[1] = NIT_NULL;
34836 fra.me.REG[2] = NIT_NULL;
34837 fra.me.REG[3] = NIT_NULL;
34838 fra.me.REG[0] = p0;
34839 fra.me.REG[1] = p1;
34840 /* ./parser//parser.nit:10420 */
34841 fra.me.REG[2] = NIT_NULL;
34842 /* ./parser//parser.nit:10421 */
34843 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34844 /* ./parser//parser.nit:10423 */
34845 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TFloat, ID_TFloat)) /*cast nullable TFloat*/;
34846 if (UNTAG_Bool(REGB0)) {
34847 } else {
34848 nit_abort("Assert failed", NULL, LOCATE_parser, 10423);
34849 }
34850 /* ./parser//parser.nit:10424 */
34851 fra.me.REG[3] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr(fra.me.REG[3]);
34852 /* ./parser//parser.nit:10427 */
34853 fra.me.REG[2] = fra.me.REG[3];
34854 /* ./parser//parser.nit:10428 */
34855 REGB0 = TAG_Bool(ATTR_parser___ReduceAction346____goto(fra.me.REG[0])!=NIT_NULL);
34856 if (UNTAG_Bool(REGB0)) {
34857 } else {
34858 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10428);
34859 }
34860 REGB0 = ATTR_parser___ReduceAction346____goto(fra.me.REG[0]);
34861 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34862 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34863 stack_frame_head = fra.me.prev;
34864 return;
34865 }
34866 void parser___ReduceAction346___init(val_t p0, val_t p1, int* init_table){
34867 int itpos321 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction346].i;
34868 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34869 val_t REGB0;
34870 val_t tmp;
34871 if (init_table[itpos321]) return;
34872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34873 fra.me.file = LOCATE_parser;
34874 fra.me.line = 10431;
34875 fra.me.meth = LOCATE_parser___ReduceAction346___init;
34876 fra.me.has_broke = 0;
34877 fra.me.REG_size = 2;
34878 fra.me.REG[0] = NIT_NULL;
34879 fra.me.REG[1] = NIT_NULL;
34880 fra.me.REG[0] = p0;
34881 REGB0 = p1;
34882 /* ./parser//parser.nit:10431 */
34883 fra.me.REG[1] = fra.me.REG[0];
34884 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34885 ATTR_parser___ReduceAction346____goto(fra.me.REG[1]) = REGB0;
34886 stack_frame_head = fra.me.prev;
34887 init_table[itpos321] = 1;
34888 return;
34889 }
34890 void parser___ReduceAction347___action(val_t p0, val_t p1){
34891 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34892 val_t REGB0;
34893 val_t tmp;
34894 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34895 fra.me.file = LOCATE_parser;
34896 fra.me.line = 10435;
34897 fra.me.meth = LOCATE_parser___ReduceAction347___action;
34898 fra.me.has_broke = 0;
34899 fra.me.REG_size = 4;
34900 fra.me.REG[0] = NIT_NULL;
34901 fra.me.REG[1] = NIT_NULL;
34902 fra.me.REG[2] = NIT_NULL;
34903 fra.me.REG[3] = NIT_NULL;
34904 fra.me.REG[0] = p0;
34905 fra.me.REG[1] = p1;
34906 /* ./parser//parser.nit:10437 */
34907 fra.me.REG[2] = NIT_NULL;
34908 /* ./parser//parser.nit:10438 */
34909 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34910 /* ./parser//parser.nit:10440 */
34911 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TChar, ID_TChar)) /*cast nullable TChar*/;
34912 if (UNTAG_Bool(REGB0)) {
34913 } else {
34914 nit_abort("Assert failed", NULL, LOCATE_parser, 10440);
34915 }
34916 /* ./parser//parser.nit:10441 */
34917 fra.me.REG[3] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr(fra.me.REG[3]);
34918 /* ./parser//parser.nit:10444 */
34919 fra.me.REG[2] = fra.me.REG[3];
34920 /* ./parser//parser.nit:10445 */
34921 REGB0 = TAG_Bool(ATTR_parser___ReduceAction347____goto(fra.me.REG[0])!=NIT_NULL);
34922 if (UNTAG_Bool(REGB0)) {
34923 } else {
34924 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10445);
34925 }
34926 REGB0 = ATTR_parser___ReduceAction347____goto(fra.me.REG[0]);
34927 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34928 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34929 stack_frame_head = fra.me.prev;
34930 return;
34931 }
34932 void parser___ReduceAction347___init(val_t p0, val_t p1, int* init_table){
34933 int itpos322 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction347].i;
34934 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34935 val_t REGB0;
34936 val_t tmp;
34937 if (init_table[itpos322]) return;
34938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34939 fra.me.file = LOCATE_parser;
34940 fra.me.line = 10448;
34941 fra.me.meth = LOCATE_parser___ReduceAction347___init;
34942 fra.me.has_broke = 0;
34943 fra.me.REG_size = 2;
34944 fra.me.REG[0] = NIT_NULL;
34945 fra.me.REG[1] = NIT_NULL;
34946 fra.me.REG[0] = p0;
34947 REGB0 = p1;
34948 /* ./parser//parser.nit:10448 */
34949 fra.me.REG[1] = fra.me.REG[0];
34950 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34951 ATTR_parser___ReduceAction347____goto(fra.me.REG[1]) = REGB0;
34952 stack_frame_head = fra.me.prev;
34953 init_table[itpos322] = 1;
34954 return;
34955 }
34956 void parser___ReduceAction348___action(val_t p0, val_t p1){
34957 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34958 val_t REGB0;
34959 val_t tmp;
34960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34961 fra.me.file = LOCATE_parser;
34962 fra.me.line = 10452;
34963 fra.me.meth = LOCATE_parser___ReduceAction348___action;
34964 fra.me.has_broke = 0;
34965 fra.me.REG_size = 4;
34966 fra.me.REG[0] = NIT_NULL;
34967 fra.me.REG[1] = NIT_NULL;
34968 fra.me.REG[2] = NIT_NULL;
34969 fra.me.REG[3] = NIT_NULL;
34970 fra.me.REG[0] = p0;
34971 fra.me.REG[1] = p1;
34972 /* ./parser//parser.nit:10454 */
34973 fra.me.REG[2] = NIT_NULL;
34974 /* ./parser//parser.nit:10455 */
34975 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34976 /* ./parser//parser.nit:10457 */
34977 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TString, ID_TString)) /*cast nullable TString*/;
34978 if (UNTAG_Bool(REGB0)) {
34979 } else {
34980 nit_abort("Assert failed", NULL, LOCATE_parser, 10457);
34981 }
34982 /* ./parser//parser.nit:10458 */
34983 fra.me.REG[3] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr(fra.me.REG[3]);
34984 /* ./parser//parser.nit:10461 */
34985 fra.me.REG[2] = fra.me.REG[3];
34986 /* ./parser//parser.nit:10462 */
34987 REGB0 = TAG_Bool(ATTR_parser___ReduceAction348____goto(fra.me.REG[0])!=NIT_NULL);
34988 if (UNTAG_Bool(REGB0)) {
34989 } else {
34990 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10462);
34991 }
34992 REGB0 = ATTR_parser___ReduceAction348____goto(fra.me.REG[0]);
34993 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34994 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34995 stack_frame_head = fra.me.prev;
34996 return;
34997 }
34998 void parser___ReduceAction348___init(val_t p0, val_t p1, int* init_table){
34999 int itpos323 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction348].i;
35000 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35001 val_t REGB0;
35002 val_t tmp;
35003 if (init_table[itpos323]) return;
35004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35005 fra.me.file = LOCATE_parser;
35006 fra.me.line = 10465;
35007 fra.me.meth = LOCATE_parser___ReduceAction348___init;
35008 fra.me.has_broke = 0;
35009 fra.me.REG_size = 2;
35010 fra.me.REG[0] = NIT_NULL;
35011 fra.me.REG[1] = NIT_NULL;
35012 fra.me.REG[0] = p0;
35013 REGB0 = p1;
35014 /* ./parser//parser.nit:10465 */
35015 fra.me.REG[1] = fra.me.REG[0];
35016 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35017 ATTR_parser___ReduceAction348____goto(fra.me.REG[1]) = REGB0;
35018 stack_frame_head = fra.me.prev;
35019 init_table[itpos323] = 1;
35020 return;
35021 }
35022 void parser___ReduceAction351___action(val_t p0, val_t p1){
35023 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35024 val_t REGB0;
35025 val_t tmp;
35026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35027 fra.me.file = LOCATE_parser;
35028 fra.me.line = 10469;
35029 fra.me.meth = LOCATE_parser___ReduceAction351___action;
35030 fra.me.has_broke = 0;
35031 fra.me.REG_size = 6;
35032 fra.me.REG[0] = NIT_NULL;
35033 fra.me.REG[1] = NIT_NULL;
35034 fra.me.REG[2] = NIT_NULL;
35035 fra.me.REG[3] = NIT_NULL;
35036 fra.me.REG[4] = NIT_NULL;
35037 fra.me.REG[5] = NIT_NULL;
35038 fra.me.REG[0] = p0;
35039 fra.me.REG[1] = p1;
35040 /* ./parser//parser.nit:10471 */
35041 fra.me.REG[2] = NIT_NULL;
35042 /* ./parser//parser.nit:10472 */
35043 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35044 /* ./parser//parser.nit:10473 */
35045 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35046 /* ./parser//parser.nit:10474 */
35047 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35048 /* ./parser//parser.nit:10475 */
35049 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35050 /* ./parser//parser.nit:10476 */
35051 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35052 /* ./parser//parser.nit:10477 */
35053 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35054 /* ./parser//parser.nit:10478 */
35055 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35056 /* ./parser//parser.nit:10479 */
35057 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35058 /* ./parser//parser.nit:10480 */
35059 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35060 /* ./parser//parser.nit:10481 */
35061 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35062 /* ./parser//parser.nit:10483 */
35063 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35064 if (UNTAG_Bool(REGB0)) {
35065 } else {
35066 nit_abort("Assert failed", NULL, LOCATE_parser, 10483);
35067 }
35068 /* ./parser//parser.nit:10485 */
35069 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwas, ID_TKwas)) /*cast nullable TKwas*/;
35070 if (UNTAG_Bool(REGB0)) {
35071 } else {
35072 nit_abort("Assert failed", NULL, LOCATE_parser, 10485);
35073 }
35074 /* ./parser//parser.nit:10487 */
35075 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
35076 if (UNTAG_Bool(REGB0)) {
35077 } else {
35078 nit_abort("Assert failed", NULL, LOCATE_parser, 10487);
35079 }
35080 /* ./parser//parser.nit:10488 */
35081 fra.me.REG[3] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
35082 /* ./parser//parser.nit:10493 */
35083 fra.me.REG[2] = fra.me.REG[3];
35084 /* ./parser//parser.nit:10494 */
35085 REGB0 = TAG_Bool(ATTR_parser___ReduceAction351____goto(fra.me.REG[0])!=NIT_NULL);
35086 if (UNTAG_Bool(REGB0)) {
35087 } else {
35088 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10494);
35089 }
35090 REGB0 = ATTR_parser___ReduceAction351____goto(fra.me.REG[0]);
35091 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35092 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35093 stack_frame_head = fra.me.prev;
35094 return;
35095 }
35096 void parser___ReduceAction351___init(val_t p0, val_t p1, int* init_table){
35097 int itpos324 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction351].i;
35098 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35099 val_t REGB0;
35100 val_t tmp;
35101 if (init_table[itpos324]) return;
35102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35103 fra.me.file = LOCATE_parser;
35104 fra.me.line = 10497;
35105 fra.me.meth = LOCATE_parser___ReduceAction351___init;
35106 fra.me.has_broke = 0;
35107 fra.me.REG_size = 2;
35108 fra.me.REG[0] = NIT_NULL;
35109 fra.me.REG[1] = NIT_NULL;
35110 fra.me.REG[0] = p0;
35111 REGB0 = p1;
35112 /* ./parser//parser.nit:10497 */
35113 fra.me.REG[1] = fra.me.REG[0];
35114 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35115 ATTR_parser___ReduceAction351____goto(fra.me.REG[1]) = REGB0;
35116 stack_frame_head = fra.me.prev;
35117 init_table[itpos324] = 1;
35118 return;
35119 }
35120 void parser___ReduceAction352___action(val_t p0, val_t p1){
35121 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
35122 val_t REGB0;
35123 val_t tmp;
35124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35125 fra.me.file = LOCATE_parser;
35126 fra.me.line = 10501;
35127 fra.me.meth = LOCATE_parser___ReduceAction352___action;
35128 fra.me.has_broke = 0;
35129 fra.me.REG_size = 7;
35130 fra.me.REG[0] = NIT_NULL;
35131 fra.me.REG[1] = NIT_NULL;
35132 fra.me.REG[2] = NIT_NULL;
35133 fra.me.REG[3] = NIT_NULL;
35134 fra.me.REG[4] = NIT_NULL;
35135 fra.me.REG[5] = NIT_NULL;
35136 fra.me.REG[6] = NIT_NULL;
35137 fra.me.REG[0] = p0;
35138 fra.me.REG[1] = p1;
35139 /* ./parser//parser.nit:10503 */
35140 fra.me.REG[2] = NIT_NULL;
35141 /* ./parser//parser.nit:10504 */
35142 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35143 /* ./parser//parser.nit:10505 */
35144 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35145 /* ./parser//parser.nit:10506 */
35146 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35147 /* ./parser//parser.nit:10507 */
35148 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35149 /* ./parser//parser.nit:10508 */
35150 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35151 /* ./parser//parser.nit:10509 */
35152 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35153 /* ./parser//parser.nit:10510 */
35154 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35155 /* ./parser//parser.nit:10511 */
35156 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35157 /* ./parser//parser.nit:10512 */
35158 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35159 /* ./parser//parser.nit:10513 */
35160 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35161 /* ./parser//parser.nit:10514 */
35162 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35163 /* ./parser//parser.nit:10515 */
35164 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35165 /* ./parser//parser.nit:10517 */
35166 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35167 if (UNTAG_Bool(REGB0)) {
35168 } else {
35169 nit_abort("Assert failed", NULL, LOCATE_parser, 10517);
35170 }
35171 /* ./parser//parser.nit:10519 */
35172 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwas, ID_TKwas)) /*cast nullable TKwas*/;
35173 if (UNTAG_Bool(REGB0)) {
35174 } else {
35175 nit_abort("Assert failed", NULL, LOCATE_parser, 10519);
35176 }
35177 /* ./parser//parser.nit:10521 */
35178 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwnot, ID_TKwnot)) /*cast nullable TKwnot*/;
35179 if (UNTAG_Bool(REGB0)) {
35180 } else {
35181 nit_abort("Assert failed", NULL, LOCATE_parser, 10521);
35182 }
35183 /* ./parser//parser.nit:10523 */
35184 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwnull, ID_TKwnull)) /*cast nullable TKwnull*/;
35185 if (UNTAG_Bool(REGB0)) {
35186 } else {
35187 nit_abort("Assert failed", NULL, LOCATE_parser, 10523);
35188 }
35189 /* ./parser//parser.nit:10524 */
35190 fra.me.REG[3] = NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
35191 /* ./parser//parser.nit:10530 */
35192 fra.me.REG[2] = fra.me.REG[3];
35193 /* ./parser//parser.nit:10531 */
35194 REGB0 = TAG_Bool(ATTR_parser___ReduceAction352____goto(fra.me.REG[0])!=NIT_NULL);
35195 if (UNTAG_Bool(REGB0)) {
35196 } else {
35197 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10531);
35198 }
35199 REGB0 = ATTR_parser___ReduceAction352____goto(fra.me.REG[0]);
35200 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35201 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35202 stack_frame_head = fra.me.prev;
35203 return;
35204 }
35205 void parser___ReduceAction352___init(val_t p0, val_t p1, int* init_table){
35206 int itpos325 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction352].i;
35207 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35208 val_t REGB0;
35209 val_t tmp;
35210 if (init_table[itpos325]) return;
35211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35212 fra.me.file = LOCATE_parser;
35213 fra.me.line = 10534;
35214 fra.me.meth = LOCATE_parser___ReduceAction352___init;
35215 fra.me.has_broke = 0;
35216 fra.me.REG_size = 2;
35217 fra.me.REG[0] = NIT_NULL;
35218 fra.me.REG[1] = NIT_NULL;
35219 fra.me.REG[0] = p0;
35220 REGB0 = p1;
35221 /* ./parser//parser.nit:10534 */
35222 fra.me.REG[1] = fra.me.REG[0];
35223 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35224 ATTR_parser___ReduceAction352____goto(fra.me.REG[1]) = REGB0;
35225 stack_frame_head = fra.me.prev;
35226 init_table[itpos325] = 1;
35227 return;
35228 }
35229 void parser___ReduceAction353___action(val_t p0, val_t p1){
35230 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35231 val_t REGB0;
35232 val_t REGB1;
35233 val_t tmp;
35234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35235 fra.me.file = LOCATE_parser;
35236 fra.me.line = 10538;
35237 fra.me.meth = LOCATE_parser___ReduceAction353___action;
35238 fra.me.has_broke = 0;
35239 fra.me.REG_size = 6;
35240 fra.me.REG[0] = NIT_NULL;
35241 fra.me.REG[1] = NIT_NULL;
35242 fra.me.REG[2] = NIT_NULL;
35243 fra.me.REG[3] = NIT_NULL;
35244 fra.me.REG[4] = NIT_NULL;
35245 fra.me.REG[5] = NIT_NULL;
35246 fra.me.REG[0] = p0;
35247 fra.me.REG[1] = p1;
35248 /* ./parser//parser.nit:10540 */
35249 fra.me.REG[2] = NIT_NULL;
35250 /* ./parser//parser.nit:10541 */
35251 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35252 /* ./parser//parser.nit:10542 */
35253 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35254 /* ./parser//parser.nit:10543 */
35255 fra.me.REG[5] = NEW_Array_array___Array___init();
35256 /* ./parser//parser.nit:10545 */
35257 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35258 if (UNTAG_Bool(REGB0)) {
35259 } else {
35260 nit_abort("Assert failed", NULL, LOCATE_parser, 10545);
35261 }
35262 /* ./parser//parser.nit:10547 */
35263 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35264 if (UNTAG_Bool(REGB0)) {
35265 } else {
35266 nit_abort("Assert failed", NULL, LOCATE_parser, 10547);
35267 }
35268 /* ./parser//parser.nit:10548 */
35269 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
35270 fra.me.REG[5] = fra.me.REG[4];
35271 /* ./parser//parser.nit:10549 */
35272 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35273 if (UNTAG_Bool(REGB0)) {
35274 } else {
35275 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35276 if (UNTAG_Bool(REGB1)) {
35277 REGB1 = TAG_Bool(false);
35278 REGB0 = REGB1;
35279 } else {
35280 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35281 REGB0 = REGB1;
35282 }
35283 }
35284 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35285 if (UNTAG_Bool(REGB0)) {
35286 /* ./parser//parser.nit:10550 */
35287 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
35288 }
35289 /* ./parser//parser.nit:10552 */
35290 fra.me.REG[5] = NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[5]);
35291 /* ./parser//parser.nit:10555 */
35292 fra.me.REG[2] = fra.me.REG[5];
35293 /* ./parser//parser.nit:10556 */
35294 REGB0 = TAG_Bool(ATTR_parser___ReduceAction353____goto(fra.me.REG[0])!=NIT_NULL);
35295 if (UNTAG_Bool(REGB0)) {
35296 } else {
35297 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10556);
35298 }
35299 REGB0 = ATTR_parser___ReduceAction353____goto(fra.me.REG[0]);
35300 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35301 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35302 stack_frame_head = fra.me.prev;
35303 return;
35304 }
35305 void parser___ReduceAction353___init(val_t p0, val_t p1, int* init_table){
35306 int itpos326 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction353].i;
35307 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35308 val_t REGB0;
35309 val_t tmp;
35310 if (init_table[itpos326]) return;
35311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35312 fra.me.file = LOCATE_parser;
35313 fra.me.line = 10559;
35314 fra.me.meth = LOCATE_parser___ReduceAction353___init;
35315 fra.me.has_broke = 0;
35316 fra.me.REG_size = 2;
35317 fra.me.REG[0] = NIT_NULL;
35318 fra.me.REG[1] = NIT_NULL;
35319 fra.me.REG[0] = p0;
35320 REGB0 = p1;
35321 /* ./parser//parser.nit:10559 */
35322 fra.me.REG[1] = fra.me.REG[0];
35323 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35324 ATTR_parser___ReduceAction353____goto(fra.me.REG[1]) = REGB0;
35325 stack_frame_head = fra.me.prev;
35326 init_table[itpos326] = 1;
35327 return;
35328 }
35329 void parser___ReduceAction354___action(val_t p0, val_t p1){
35330 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
35331 val_t REGB0;
35332 val_t REGB1;
35333 val_t tmp;
35334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35335 fra.me.file = LOCATE_parser;
35336 fra.me.line = 10563;
35337 fra.me.meth = LOCATE_parser___ReduceAction354___action;
35338 fra.me.has_broke = 0;
35339 fra.me.REG_size = 7;
35340 fra.me.REG[0] = NIT_NULL;
35341 fra.me.REG[1] = NIT_NULL;
35342 fra.me.REG[2] = NIT_NULL;
35343 fra.me.REG[3] = NIT_NULL;
35344 fra.me.REG[4] = NIT_NULL;
35345 fra.me.REG[5] = NIT_NULL;
35346 fra.me.REG[6] = NIT_NULL;
35347 fra.me.REG[0] = p0;
35348 fra.me.REG[1] = p1;
35349 /* ./parser//parser.nit:10565 */
35350 fra.me.REG[2] = NIT_NULL;
35351 /* ./parser//parser.nit:10566 */
35352 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35353 /* ./parser//parser.nit:10567 */
35354 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35355 /* ./parser//parser.nit:10568 */
35356 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35357 /* ./parser//parser.nit:10569 */
35358 fra.me.REG[6] = NEW_Array_array___Array___init();
35359 /* ./parser//parser.nit:10571 */
35360 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35361 if (UNTAG_Bool(REGB0)) {
35362 } else {
35363 nit_abort("Assert failed", NULL, LOCATE_parser, 10571);
35364 }
35365 /* ./parser//parser.nit:10573 */
35366 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35367 if (UNTAG_Bool(REGB0)) {
35368 } else {
35369 nit_abort("Assert failed", NULL, LOCATE_parser, 10573);
35370 }
35371 /* ./parser//parser.nit:10575 */
35372 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35373 if (UNTAG_Bool(REGB0)) {
35374 } else {
35375 nit_abort("Assert failed", NULL, LOCATE_parser, 10575);
35376 }
35377 /* ./parser//parser.nit:10576 */
35378 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
35379 fra.me.REG[6] = fra.me.REG[5];
35380 /* ./parser//parser.nit:10577 */
35381 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
35382 fra.me.REG[6] = fra.me.REG[4];
35383 /* ./parser//parser.nit:10578 */
35384 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35385 if (UNTAG_Bool(REGB0)) {
35386 } else {
35387 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35388 if (UNTAG_Bool(REGB1)) {
35389 REGB1 = TAG_Bool(false);
35390 REGB0 = REGB1;
35391 } else {
35392 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35393 REGB0 = REGB1;
35394 }
35395 }
35396 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35397 if (UNTAG_Bool(REGB0)) {
35398 /* ./parser//parser.nit:10579 */
35399 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
35400 }
35401 /* ./parser//parser.nit:10581 */
35402 fra.me.REG[6] = NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[6]);
35403 /* ./parser//parser.nit:10584 */
35404 fra.me.REG[2] = fra.me.REG[6];
35405 /* ./parser//parser.nit:10585 */
35406 REGB0 = TAG_Bool(ATTR_parser___ReduceAction354____goto(fra.me.REG[0])!=NIT_NULL);
35407 if (UNTAG_Bool(REGB0)) {
35408 } else {
35409 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10585);
35410 }
35411 REGB0 = ATTR_parser___ReduceAction354____goto(fra.me.REG[0]);
35412 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35413 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35414 stack_frame_head = fra.me.prev;
35415 return;
35416 }
35417 void parser___ReduceAction354___init(val_t p0, val_t p1, int* init_table){
35418 int itpos327 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction354].i;
35419 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35420 val_t REGB0;
35421 val_t tmp;
35422 if (init_table[itpos327]) return;
35423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35424 fra.me.file = LOCATE_parser;
35425 fra.me.line = 10588;
35426 fra.me.meth = LOCATE_parser___ReduceAction354___init;
35427 fra.me.has_broke = 0;
35428 fra.me.REG_size = 2;
35429 fra.me.REG[0] = NIT_NULL;
35430 fra.me.REG[1] = NIT_NULL;
35431 fra.me.REG[0] = p0;
35432 REGB0 = p1;
35433 /* ./parser//parser.nit:10588 */
35434 fra.me.REG[1] = fra.me.REG[0];
35435 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35436 ATTR_parser___ReduceAction354____goto(fra.me.REG[1]) = REGB0;
35437 stack_frame_head = fra.me.prev;
35438 init_table[itpos327] = 1;
35439 return;
35440 }
35441 void parser___ReduceAction355___action(val_t p0, val_t p1){
35442 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35443 val_t REGB0;
35444 val_t REGB1;
35445 val_t tmp;
35446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35447 fra.me.file = LOCATE_parser;
35448 fra.me.line = 10592;
35449 fra.me.meth = LOCATE_parser___ReduceAction355___action;
35450 fra.me.has_broke = 0;
35451 fra.me.REG_size = 6;
35452 fra.me.REG[0] = NIT_NULL;
35453 fra.me.REG[1] = NIT_NULL;
35454 fra.me.REG[2] = NIT_NULL;
35455 fra.me.REG[3] = NIT_NULL;
35456 fra.me.REG[4] = NIT_NULL;
35457 fra.me.REG[5] = NIT_NULL;
35458 fra.me.REG[0] = p0;
35459 fra.me.REG[1] = p1;
35460 /* ./parser//parser.nit:10594 */
35461 fra.me.REG[2] = NIT_NULL;
35462 /* ./parser//parser.nit:10595 */
35463 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35464 /* ./parser//parser.nit:10596 */
35465 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35466 /* ./parser//parser.nit:10597 */
35467 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35468 /* ./parser//parser.nit:10598 */
35469 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35470 /* ./parser//parser.nit:10599 */
35471 fra.me.REG[5] = NEW_Array_array___Array___init();
35472 /* ./parser//parser.nit:10602 */
35473 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35474 if (UNTAG_Bool(REGB0)) {
35475 } else {
35476 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35477 if (UNTAG_Bool(REGB1)) {
35478 REGB1 = TAG_Bool(false);
35479 REGB0 = REGB1;
35480 } else {
35481 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
35482 REGB0 = REGB1;
35483 }
35484 }
35485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35486 if (UNTAG_Bool(REGB0)) {
35487 /* ./parser//parser.nit:10603 */
35488 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
35489 }
35490 /* ./parser//parser.nit:10605 */
35491 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35492 if (UNTAG_Bool(REGB0)) {
35493 } else {
35494 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35495 if (UNTAG_Bool(REGB1)) {
35496 REGB1 = TAG_Bool(false);
35497 REGB0 = REGB1;
35498 } else {
35499 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35500 REGB0 = REGB1;
35501 }
35502 }
35503 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35504 if (UNTAG_Bool(REGB0)) {
35505 /* ./parser//parser.nit:10606 */
35506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
35507 }
35508 /* ./parser//parser.nit:10608 */
35509 fra.me.REG[2] = fra.me.REG[5];
35510 /* ./parser//parser.nit:10609 */
35511 REGB0 = TAG_Bool(ATTR_parser___ReduceAction355____goto(fra.me.REG[0])!=NIT_NULL);
35512 if (UNTAG_Bool(REGB0)) {
35513 } else {
35514 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10609);
35515 }
35516 REGB0 = ATTR_parser___ReduceAction355____goto(fra.me.REG[0]);
35517 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35518 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35519 stack_frame_head = fra.me.prev;
35520 return;
35521 }
35522 void parser___ReduceAction355___init(val_t p0, val_t p1, int* init_table){
35523 int itpos328 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction355].i;
35524 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35525 val_t REGB0;
35526 val_t tmp;
35527 if (init_table[itpos328]) return;
35528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35529 fra.me.file = LOCATE_parser;
35530 fra.me.line = 10612;
35531 fra.me.meth = LOCATE_parser___ReduceAction355___init;
35532 fra.me.has_broke = 0;
35533 fra.me.REG_size = 2;
35534 fra.me.REG[0] = NIT_NULL;
35535 fra.me.REG[1] = NIT_NULL;
35536 fra.me.REG[0] = p0;
35537 REGB0 = p1;
35538 /* ./parser//parser.nit:10612 */
35539 fra.me.REG[1] = fra.me.REG[0];
35540 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35541 ATTR_parser___ReduceAction355____goto(fra.me.REG[1]) = REGB0;
35542 stack_frame_head = fra.me.prev;
35543 init_table[itpos328] = 1;
35544 return;
35545 }
35546 void parser___ReduceAction356___action(val_t p0, val_t p1){
35547 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35548 val_t REGB0;
35549 val_t tmp;
35550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35551 fra.me.file = LOCATE_parser;
35552 fra.me.line = 10616;
35553 fra.me.meth = LOCATE_parser___ReduceAction356___action;
35554 fra.me.has_broke = 0;
35555 fra.me.REG_size = 4;
35556 fra.me.REG[0] = NIT_NULL;
35557 fra.me.REG[1] = NIT_NULL;
35558 fra.me.REG[2] = NIT_NULL;
35559 fra.me.REG[3] = NIT_NULL;
35560 fra.me.REG[0] = p0;
35561 fra.me.REG[1] = p1;
35562 /* ./parser//parser.nit:10618 */
35563 fra.me.REG[2] = NIT_NULL;
35564 /* ./parser//parser.nit:10619 */
35565 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35566 /* ./parser//parser.nit:10621 */
35567 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TStartString, ID_TStartString)) /*cast nullable TStartString*/;
35568 if (UNTAG_Bool(REGB0)) {
35569 } else {
35570 nit_abort("Assert failed", NULL, LOCATE_parser, 10621);
35571 }
35572 /* ./parser//parser.nit:10622 */
35573 fra.me.REG[3] = NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr(fra.me.REG[3]);
35574 /* ./parser//parser.nit:10625 */
35575 fra.me.REG[2] = fra.me.REG[3];
35576 /* ./parser//parser.nit:10626 */
35577 REGB0 = TAG_Bool(ATTR_parser___ReduceAction356____goto(fra.me.REG[0])!=NIT_NULL);
35578 if (UNTAG_Bool(REGB0)) {
35579 } else {
35580 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10626);
35581 }
35582 REGB0 = ATTR_parser___ReduceAction356____goto(fra.me.REG[0]);
35583 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35584 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35585 stack_frame_head = fra.me.prev;
35586 return;
35587 }
35588 void parser___ReduceAction356___init(val_t p0, val_t p1, int* init_table){
35589 int itpos329 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction356].i;
35590 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35591 val_t REGB0;
35592 val_t tmp;
35593 if (init_table[itpos329]) return;
35594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35595 fra.me.file = LOCATE_parser;
35596 fra.me.line = 10629;
35597 fra.me.meth = LOCATE_parser___ReduceAction356___init;
35598 fra.me.has_broke = 0;
35599 fra.me.REG_size = 2;
35600 fra.me.REG[0] = NIT_NULL;
35601 fra.me.REG[1] = NIT_NULL;
35602 fra.me.REG[0] = p0;
35603 REGB0 = p1;
35604 /* ./parser//parser.nit:10629 */
35605 fra.me.REG[1] = fra.me.REG[0];
35606 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35607 ATTR_parser___ReduceAction356____goto(fra.me.REG[1]) = REGB0;
35608 stack_frame_head = fra.me.prev;
35609 init_table[itpos329] = 1;
35610 return;
35611 }
35612 void parser___ReduceAction358___action(val_t p0, val_t p1){
35613 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35614 val_t REGB0;
35615 val_t tmp;
35616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35617 fra.me.file = LOCATE_parser;
35618 fra.me.line = 10633;
35619 fra.me.meth = LOCATE_parser___ReduceAction358___action;
35620 fra.me.has_broke = 0;
35621 fra.me.REG_size = 4;
35622 fra.me.REG[0] = NIT_NULL;
35623 fra.me.REG[1] = NIT_NULL;
35624 fra.me.REG[2] = NIT_NULL;
35625 fra.me.REG[3] = NIT_NULL;
35626 fra.me.REG[0] = p0;
35627 fra.me.REG[1] = p1;
35628 /* ./parser//parser.nit:10635 */
35629 fra.me.REG[2] = NIT_NULL;
35630 /* ./parser//parser.nit:10636 */
35631 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35632 /* ./parser//parser.nit:10638 */
35633 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TMidString, ID_TMidString)) /*cast nullable TMidString*/;
35634 if (UNTAG_Bool(REGB0)) {
35635 } else {
35636 nit_abort("Assert failed", NULL, LOCATE_parser, 10638);
35637 }
35638 /* ./parser//parser.nit:10639 */
35639 fra.me.REG[3] = NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr(fra.me.REG[3]);
35640 /* ./parser//parser.nit:10642 */
35641 fra.me.REG[2] = fra.me.REG[3];
35642 /* ./parser//parser.nit:10643 */
35643 REGB0 = TAG_Bool(ATTR_parser___ReduceAction358____goto(fra.me.REG[0])!=NIT_NULL);
35644 if (UNTAG_Bool(REGB0)) {
35645 } else {
35646 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10643);
35647 }
35648 REGB0 = ATTR_parser___ReduceAction358____goto(fra.me.REG[0]);
35649 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35650 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35651 stack_frame_head = fra.me.prev;
35652 return;
35653 }
35654 void parser___ReduceAction358___init(val_t p0, val_t p1, int* init_table){
35655 int itpos330 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction358].i;
35656 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35657 val_t REGB0;
35658 val_t tmp;
35659 if (init_table[itpos330]) return;
35660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35661 fra.me.file = LOCATE_parser;
35662 fra.me.line = 10646;
35663 fra.me.meth = LOCATE_parser___ReduceAction358___init;
35664 fra.me.has_broke = 0;
35665 fra.me.REG_size = 2;
35666 fra.me.REG[0] = NIT_NULL;
35667 fra.me.REG[1] = NIT_NULL;
35668 fra.me.REG[0] = p0;
35669 REGB0 = p1;
35670 /* ./parser//parser.nit:10646 */
35671 fra.me.REG[1] = fra.me.REG[0];
35672 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35673 ATTR_parser___ReduceAction358____goto(fra.me.REG[1]) = REGB0;
35674 stack_frame_head = fra.me.prev;
35675 init_table[itpos330] = 1;
35676 return;
35677 }
35678 void parser___ReduceAction359___action(val_t p0, val_t p1){
35679 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35680 val_t REGB0;
35681 val_t tmp;
35682 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35683 fra.me.file = LOCATE_parser;
35684 fra.me.line = 10650;
35685 fra.me.meth = LOCATE_parser___ReduceAction359___action;
35686 fra.me.has_broke = 0;
35687 fra.me.REG_size = 4;
35688 fra.me.REG[0] = NIT_NULL;
35689 fra.me.REG[1] = NIT_NULL;
35690 fra.me.REG[2] = NIT_NULL;
35691 fra.me.REG[3] = NIT_NULL;
35692 fra.me.REG[0] = p0;
35693 fra.me.REG[1] = p1;
35694 /* ./parser//parser.nit:10652 */
35695 fra.me.REG[2] = NIT_NULL;
35696 /* ./parser//parser.nit:10653 */
35697 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35698 /* ./parser//parser.nit:10655 */
35699 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TEndString, ID_TEndString)) /*cast nullable TEndString*/;
35700 if (UNTAG_Bool(REGB0)) {
35701 } else {
35702 nit_abort("Assert failed", NULL, LOCATE_parser, 10655);
35703 }
35704 /* ./parser//parser.nit:10656 */
35705 fra.me.REG[3] = NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr(fra.me.REG[3]);
35706 /* ./parser//parser.nit:10659 */
35707 fra.me.REG[2] = fra.me.REG[3];
35708 /* ./parser//parser.nit:10660 */
35709 REGB0 = TAG_Bool(ATTR_parser___ReduceAction359____goto(fra.me.REG[0])!=NIT_NULL);
35710 if (UNTAG_Bool(REGB0)) {
35711 } else {
35712 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10660);
35713 }
35714 REGB0 = ATTR_parser___ReduceAction359____goto(fra.me.REG[0]);
35715 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35716 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35717 stack_frame_head = fra.me.prev;
35718 return;
35719 }
35720 void parser___ReduceAction359___init(val_t p0, val_t p1, int* init_table){
35721 int itpos331 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction359].i;
35722 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35723 val_t REGB0;
35724 val_t tmp;
35725 if (init_table[itpos331]) return;
35726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35727 fra.me.file = LOCATE_parser;
35728 fra.me.line = 10663;
35729 fra.me.meth = LOCATE_parser___ReduceAction359___init;
35730 fra.me.has_broke = 0;
35731 fra.me.REG_size = 2;
35732 fra.me.REG[0] = NIT_NULL;
35733 fra.me.REG[1] = NIT_NULL;
35734 fra.me.REG[0] = p0;
35735 REGB0 = p1;
35736 /* ./parser//parser.nit:10663 */
35737 fra.me.REG[1] = fra.me.REG[0];
35738 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35739 ATTR_parser___ReduceAction359____goto(fra.me.REG[1]) = REGB0;
35740 stack_frame_head = fra.me.prev;
35741 init_table[itpos331] = 1;
35742 return;
35743 }
35744 void parser___ReduceAction360___action(val_t p0, val_t p1){
35745 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
35746 val_t REGB0;
35747 val_t REGB1;
35748 val_t tmp;
35749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35750 fra.me.file = LOCATE_parser;
35751 fra.me.line = 10667;
35752 fra.me.meth = LOCATE_parser___ReduceAction360___action;
35753 fra.me.has_broke = 0;
35754 fra.me.REG_size = 5;
35755 fra.me.REG[0] = NIT_NULL;
35756 fra.me.REG[1] = NIT_NULL;
35757 fra.me.REG[2] = NIT_NULL;
35758 fra.me.REG[3] = NIT_NULL;
35759 fra.me.REG[4] = NIT_NULL;
35760 fra.me.REG[0] = p0;
35761 fra.me.REG[1] = p1;
35762 /* ./parser//parser.nit:10669 */
35763 fra.me.REG[2] = NIT_NULL;
35764 /* ./parser//parser.nit:10670 */
35765 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35766 /* ./parser//parser.nit:10671 */
35767 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35768 /* ./parser//parser.nit:10672 */
35769 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35770 /* ./parser//parser.nit:10673 */
35771 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35772 /* ./parser//parser.nit:10674 */
35773 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35774 /* ./parser//parser.nit:10675 */
35775 fra.me.REG[4] = NEW_Array_array___Array___init();
35776 /* ./parser//parser.nit:10677 */
35777 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35778 if (UNTAG_Bool(REGB0)) {
35779 } else {
35780 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35781 if (UNTAG_Bool(REGB1)) {
35782 REGB1 = TAG_Bool(false);
35783 REGB0 = REGB1;
35784 } else {
35785 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35786 REGB0 = REGB1;
35787 }
35788 }
35789 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35790 if (UNTAG_Bool(REGB0)) {
35791 /* ./parser//parser.nit:10678 */
35792 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
35793 }
35794 /* ./parser//parser.nit:10680 */
35795 fra.me.REG[2] = fra.me.REG[4];
35796 /* ./parser//parser.nit:10681 */
35797 REGB0 = TAG_Bool(ATTR_parser___ReduceAction360____goto(fra.me.REG[0])!=NIT_NULL);
35798 if (UNTAG_Bool(REGB0)) {
35799 } else {
35800 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10681);
35801 }
35802 REGB0 = ATTR_parser___ReduceAction360____goto(fra.me.REG[0]);
35803 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35804 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35805 stack_frame_head = fra.me.prev;
35806 return;
35807 }
35808 void parser___ReduceAction360___init(val_t p0, val_t p1, int* init_table){
35809 int itpos332 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction360].i;
35810 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35811 val_t REGB0;
35812 val_t tmp;
35813 if (init_table[itpos332]) return;
35814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35815 fra.me.file = LOCATE_parser;
35816 fra.me.line = 10684;
35817 fra.me.meth = LOCATE_parser___ReduceAction360___init;
35818 fra.me.has_broke = 0;
35819 fra.me.REG_size = 2;
35820 fra.me.REG[0] = NIT_NULL;
35821 fra.me.REG[1] = NIT_NULL;
35822 fra.me.REG[0] = p0;
35823 REGB0 = p1;
35824 /* ./parser//parser.nit:10684 */
35825 fra.me.REG[1] = fra.me.REG[0];
35826 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35827 ATTR_parser___ReduceAction360____goto(fra.me.REG[1]) = REGB0;
35828 stack_frame_head = fra.me.prev;
35829 init_table[itpos332] = 1;
35830 return;
35831 }
35832 void parser___ReduceAction361___action(val_t p0, val_t p1){
35833 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35834 val_t REGB0;
35835 val_t REGB1;
35836 val_t tmp;
35837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35838 fra.me.file = LOCATE_parser;
35839 fra.me.line = 10688;
35840 fra.me.meth = LOCATE_parser___ReduceAction361___action;
35841 fra.me.has_broke = 0;
35842 fra.me.REG_size = 6;
35843 fra.me.REG[0] = NIT_NULL;
35844 fra.me.REG[1] = NIT_NULL;
35845 fra.me.REG[2] = NIT_NULL;
35846 fra.me.REG[3] = NIT_NULL;
35847 fra.me.REG[4] = NIT_NULL;
35848 fra.me.REG[5] = NIT_NULL;
35849 fra.me.REG[0] = p0;
35850 fra.me.REG[1] = p1;
35851 /* ./parser//parser.nit:10690 */
35852 fra.me.REG[2] = NIT_NULL;
35853 /* ./parser//parser.nit:10691 */
35854 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35855 /* ./parser//parser.nit:10692 */
35856 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35857 /* ./parser//parser.nit:10693 */
35858 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35859 /* ./parser//parser.nit:10694 */
35860 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35861 /* ./parser//parser.nit:10695 */
35862 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35863 /* ./parser//parser.nit:10696 */
35864 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35865 /* ./parser//parser.nit:10697 */
35866 fra.me.REG[5] = NEW_Array_array___Array___init();
35867 /* ./parser//parser.nit:10700 */
35868 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35869 if (UNTAG_Bool(REGB0)) {
35870 } else {
35871 nit_abort("Assert failed", NULL, LOCATE_parser, 10700);
35872 }
35873 /* ./parser//parser.nit:10701 */
35874 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35875 if (UNTAG_Bool(REGB0)) {
35876 } else {
35877 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35878 if (UNTAG_Bool(REGB1)) {
35879 REGB1 = TAG_Bool(false);
35880 REGB0 = REGB1;
35881 } else {
35882 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
35883 REGB0 = REGB1;
35884 }
35885 }
35886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35887 if (UNTAG_Bool(REGB0)) {
35888 /* ./parser//parser.nit:10702 */
35889 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
35890 }
35891 /* ./parser//parser.nit:10704 */
35892 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
35893 fra.me.REG[5] = fra.me.REG[3];
35894 /* ./parser//parser.nit:10705 */
35895 fra.me.REG[2] = fra.me.REG[5];
35896 /* ./parser//parser.nit:10706 */
35897 REGB0 = TAG_Bool(ATTR_parser___ReduceAction361____goto(fra.me.REG[0])!=NIT_NULL);
35898 if (UNTAG_Bool(REGB0)) {
35899 } else {
35900 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10706);
35901 }
35902 REGB0 = ATTR_parser___ReduceAction361____goto(fra.me.REG[0]);
35903 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35904 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35905 stack_frame_head = fra.me.prev;
35906 return;
35907 }
35908 void parser___ReduceAction361___init(val_t p0, val_t p1, int* init_table){
35909 int itpos333 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction361].i;
35910 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35911 val_t REGB0;
35912 val_t tmp;
35913 if (init_table[itpos333]) return;
35914 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35915 fra.me.file = LOCATE_parser;
35916 fra.me.line = 10709;
35917 fra.me.meth = LOCATE_parser___ReduceAction361___init;
35918 fra.me.has_broke = 0;
35919 fra.me.REG_size = 2;
35920 fra.me.REG[0] = NIT_NULL;
35921 fra.me.REG[1] = NIT_NULL;
35922 fra.me.REG[0] = p0;
35923 REGB0 = p1;
35924 /* ./parser//parser.nit:10709 */
35925 fra.me.REG[1] = fra.me.REG[0];
35926 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35927 ATTR_parser___ReduceAction361____goto(fra.me.REG[1]) = REGB0;
35928 stack_frame_head = fra.me.prev;
35929 init_table[itpos333] = 1;
35930 return;
35931 }
35932 void parser___ReduceAction363___action(val_t p0, val_t p1){
35933 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35934 val_t REGB0;
35935 val_t tmp;
35936 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35937 fra.me.file = LOCATE_parser;
35938 fra.me.line = 10713;
35939 fra.me.meth = LOCATE_parser___ReduceAction363___action;
35940 fra.me.has_broke = 0;
35941 fra.me.REG_size = 4;
35942 fra.me.REG[0] = NIT_NULL;
35943 fra.me.REG[1] = NIT_NULL;
35944 fra.me.REG[2] = NIT_NULL;
35945 fra.me.REG[3] = NIT_NULL;
35946 fra.me.REG[0] = p0;
35947 fra.me.REG[1] = p1;
35948 /* ./parser//parser.nit:10715 */
35949 fra.me.REG[2] = NIT_NULL;
35950 /* ./parser//parser.nit:10716 */
35951 fra.me.REG[3] = NEW_Array_array___Array___init();
35952 /* ./parser//parser.nit:10717 */
35953 fra.me.REG[2] = fra.me.REG[3];
35954 /* ./parser//parser.nit:10718 */
35955 REGB0 = TAG_Bool(ATTR_parser___ReduceAction363____goto(fra.me.REG[0])!=NIT_NULL);
35956 if (UNTAG_Bool(REGB0)) {
35957 } else {
35958 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10718);
35959 }
35960 REGB0 = ATTR_parser___ReduceAction363____goto(fra.me.REG[0]);
35961 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35962 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35963 stack_frame_head = fra.me.prev;
35964 return;
35965 }
35966 void parser___ReduceAction363___init(val_t p0, val_t p1, int* init_table){
35967 int itpos334 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction363].i;
35968 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35969 val_t REGB0;
35970 val_t tmp;
35971 if (init_table[itpos334]) return;
35972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35973 fra.me.file = LOCATE_parser;
35974 fra.me.line = 10721;
35975 fra.me.meth = LOCATE_parser___ReduceAction363___init;
35976 fra.me.has_broke = 0;
35977 fra.me.REG_size = 2;
35978 fra.me.REG[0] = NIT_NULL;
35979 fra.me.REG[1] = NIT_NULL;
35980 fra.me.REG[0] = p0;
35981 REGB0 = p1;
35982 /* ./parser//parser.nit:10721 */
35983 fra.me.REG[1] = fra.me.REG[0];
35984 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35985 ATTR_parser___ReduceAction363____goto(fra.me.REG[1]) = REGB0;
35986 stack_frame_head = fra.me.prev;
35987 init_table[itpos334] = 1;
35988 return;
35989 }
35990 void parser___ReduceAction366___action(val_t p0, val_t p1){
35991 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
35992 val_t REGB0;
35993 val_t REGB1;
35994 val_t tmp;
35995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35996 fra.me.file = LOCATE_parser;
35997 fra.me.line = 10725;
35998 fra.me.meth = LOCATE_parser___ReduceAction366___action;
35999 fra.me.has_broke = 0;
36000 fra.me.REG_size = 5;
36001 fra.me.REG[0] = NIT_NULL;
36002 fra.me.REG[1] = NIT_NULL;
36003 fra.me.REG[2] = NIT_NULL;
36004 fra.me.REG[3] = NIT_NULL;
36005 fra.me.REG[4] = NIT_NULL;
36006 fra.me.REG[0] = p0;
36007 fra.me.REG[1] = p1;
36008 /* ./parser//parser.nit:10727 */
36009 fra.me.REG[2] = NIT_NULL;
36010 /* ./parser//parser.nit:10728 */
36011 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36012 /* ./parser//parser.nit:10729 */
36013 fra.me.REG[4] = NEW_Array_array___Array___init();
36014 /* ./parser//parser.nit:10731 */
36015 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36016 if (UNTAG_Bool(REGB0)) {
36017 } else {
36018 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36019 if (UNTAG_Bool(REGB1)) {
36020 REGB1 = TAG_Bool(false);
36021 REGB0 = REGB1;
36022 } else {
36023 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36024 REGB0 = REGB1;
36025 }
36026 }
36027 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36028 if (UNTAG_Bool(REGB0)) {
36029 /* ./parser//parser.nit:10732 */
36030 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
36031 }
36032 /* ./parser//parser.nit:10734 */
36033 fra.me.REG[2] = fra.me.REG[4];
36034 /* ./parser//parser.nit:10735 */
36035 REGB0 = TAG_Bool(ATTR_parser___ReduceAction366____goto(fra.me.REG[0])!=NIT_NULL);
36036 if (UNTAG_Bool(REGB0)) {
36037 } else {
36038 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10735);
36039 }
36040 REGB0 = ATTR_parser___ReduceAction366____goto(fra.me.REG[0]);
36041 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36042 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36043 stack_frame_head = fra.me.prev;
36044 return;
36045 }
36046 void parser___ReduceAction366___init(val_t p0, val_t p1, int* init_table){
36047 int itpos335 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction366].i;
36048 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36049 val_t REGB0;
36050 val_t tmp;
36051 if (init_table[itpos335]) return;
36052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36053 fra.me.file = LOCATE_parser;
36054 fra.me.line = 10738;
36055 fra.me.meth = LOCATE_parser___ReduceAction366___init;
36056 fra.me.has_broke = 0;
36057 fra.me.REG_size = 2;
36058 fra.me.REG[0] = NIT_NULL;
36059 fra.me.REG[1] = NIT_NULL;
36060 fra.me.REG[0] = p0;
36061 REGB0 = p1;
36062 /* ./parser//parser.nit:10738 */
36063 fra.me.REG[1] = fra.me.REG[0];
36064 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36065 ATTR_parser___ReduceAction366____goto(fra.me.REG[1]) = REGB0;
36066 stack_frame_head = fra.me.prev;
36067 init_table[itpos335] = 1;
36068 return;
36069 }
36070 void parser___ReduceAction371___action(val_t p0, val_t p1){
36071 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36072 val_t REGB0;
36073 val_t tmp;
36074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36075 fra.me.file = LOCATE_parser;
36076 fra.me.line = 10742;
36077 fra.me.meth = LOCATE_parser___ReduceAction371___action;
36078 fra.me.has_broke = 0;
36079 fra.me.REG_size = 5;
36080 fra.me.REG[0] = NIT_NULL;
36081 fra.me.REG[1] = NIT_NULL;
36082 fra.me.REG[2] = NIT_NULL;
36083 fra.me.REG[3] = NIT_NULL;
36084 fra.me.REG[4] = NIT_NULL;
36085 fra.me.REG[0] = p0;
36086 fra.me.REG[1] = p1;
36087 /* ./parser//parser.nit:10744 */
36088 fra.me.REG[2] = NIT_NULL;
36089 /* ./parser//parser.nit:10745 */
36090 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36091 /* ./parser//parser.nit:10746 */
36092 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36093 /* ./parser//parser.nit:10747 */
36094 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36095 /* ./parser//parser.nit:10748 */
36096 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36097 /* ./parser//parser.nit:10750 */
36098 fra.me.REG[2] = fra.me.REG[3];
36099 /* ./parser//parser.nit:10751 */
36100 REGB0 = TAG_Bool(ATTR_parser___ReduceAction371____goto(fra.me.REG[0])!=NIT_NULL);
36101 if (UNTAG_Bool(REGB0)) {
36102 } else {
36103 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10751);
36104 }
36105 REGB0 = ATTR_parser___ReduceAction371____goto(fra.me.REG[0]);
36106 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36107 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36108 stack_frame_head = fra.me.prev;
36109 return;
36110 }
36111 void parser___ReduceAction371___init(val_t p0, val_t p1, int* init_table){
36112 int itpos336 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction371].i;
36113 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36114 val_t REGB0;
36115 val_t tmp;
36116 if (init_table[itpos336]) return;
36117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36118 fra.me.file = LOCATE_parser;
36119 fra.me.line = 10754;
36120 fra.me.meth = LOCATE_parser___ReduceAction371___init;
36121 fra.me.has_broke = 0;
36122 fra.me.REG_size = 2;
36123 fra.me.REG[0] = NIT_NULL;
36124 fra.me.REG[1] = NIT_NULL;
36125 fra.me.REG[0] = p0;
36126 REGB0 = p1;
36127 /* ./parser//parser.nit:10754 */
36128 fra.me.REG[1] = fra.me.REG[0];
36129 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36130 ATTR_parser___ReduceAction371____goto(fra.me.REG[1]) = REGB0;
36131 stack_frame_head = fra.me.prev;
36132 init_table[itpos336] = 1;
36133 return;
36134 }
36135 void parser___ReduceAction372___action(val_t p0, val_t p1){
36136 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36137 val_t REGB0;
36138 val_t tmp;
36139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36140 fra.me.file = LOCATE_parser;
36141 fra.me.line = 10758;
36142 fra.me.meth = LOCATE_parser___ReduceAction372___action;
36143 fra.me.has_broke = 0;
36144 fra.me.REG_size = 5;
36145 fra.me.REG[0] = NIT_NULL;
36146 fra.me.REG[1] = NIT_NULL;
36147 fra.me.REG[2] = NIT_NULL;
36148 fra.me.REG[3] = NIT_NULL;
36149 fra.me.REG[4] = NIT_NULL;
36150 fra.me.REG[0] = p0;
36151 fra.me.REG[1] = p1;
36152 /* ./parser//parser.nit:10760 */
36153 fra.me.REG[2] = NIT_NULL;
36154 /* ./parser//parser.nit:10761 */
36155 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36156 /* ./parser//parser.nit:10762 */
36157 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36158 /* ./parser//parser.nit:10763 */
36159 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36160 /* ./parser//parser.nit:10764 */
36161 fra.me.REG[4] = NEW_Array_array___Array___init();
36162 /* ./parser//parser.nit:10766 */
36163 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36164 if (UNTAG_Bool(REGB0)) {
36165 } else {
36166 nit_abort("Assert failed", NULL, LOCATE_parser, 10766);
36167 }
36168 /* ./parser//parser.nit:10767 */
36169 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36170 fra.me.REG[4] = fra.me.REG[3];
36171 /* ./parser//parser.nit:10768 */
36172 fra.me.REG[2] = fra.me.REG[4];
36173 /* ./parser//parser.nit:10769 */
36174 REGB0 = TAG_Bool(ATTR_parser___ReduceAction372____goto(fra.me.REG[0])!=NIT_NULL);
36175 if (UNTAG_Bool(REGB0)) {
36176 } else {
36177 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10769);
36178 }
36179 REGB0 = ATTR_parser___ReduceAction372____goto(fra.me.REG[0]);
36180 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36181 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36182 stack_frame_head = fra.me.prev;
36183 return;
36184 }
36185 void parser___ReduceAction372___init(val_t p0, val_t p1, int* init_table){
36186 int itpos337 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction372].i;
36187 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36188 val_t REGB0;
36189 val_t tmp;
36190 if (init_table[itpos337]) return;
36191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36192 fra.me.file = LOCATE_parser;
36193 fra.me.line = 10772;
36194 fra.me.meth = LOCATE_parser___ReduceAction372___init;
36195 fra.me.has_broke = 0;
36196 fra.me.REG_size = 2;
36197 fra.me.REG[0] = NIT_NULL;
36198 fra.me.REG[1] = NIT_NULL;
36199 fra.me.REG[0] = p0;
36200 REGB0 = p1;
36201 /* ./parser//parser.nit:10772 */
36202 fra.me.REG[1] = fra.me.REG[0];
36203 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36204 ATTR_parser___ReduceAction372____goto(fra.me.REG[1]) = REGB0;
36205 stack_frame_head = fra.me.prev;
36206 init_table[itpos337] = 1;
36207 return;
36208 }
36209 void parser___ReduceAction373___action(val_t p0, val_t p1){
36210 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36211 val_t REGB0;
36212 val_t tmp;
36213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36214 fra.me.file = LOCATE_parser;
36215 fra.me.line = 10776;
36216 fra.me.meth = LOCATE_parser___ReduceAction373___action;
36217 fra.me.has_broke = 0;
36218 fra.me.REG_size = 5;
36219 fra.me.REG[0] = NIT_NULL;
36220 fra.me.REG[1] = NIT_NULL;
36221 fra.me.REG[2] = NIT_NULL;
36222 fra.me.REG[3] = NIT_NULL;
36223 fra.me.REG[4] = NIT_NULL;
36224 fra.me.REG[0] = p0;
36225 fra.me.REG[1] = p1;
36226 /* ./parser//parser.nit:10778 */
36227 fra.me.REG[2] = NIT_NULL;
36228 /* ./parser//parser.nit:10779 */
36229 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36230 /* ./parser//parser.nit:10780 */
36231 fra.me.REG[4] = NEW_Array_array___Array___init();
36232 /* ./parser//parser.nit:10782 */
36233 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36234 if (UNTAG_Bool(REGB0)) {
36235 } else {
36236 nit_abort("Assert failed", NULL, LOCATE_parser, 10782);
36237 }
36238 /* ./parser//parser.nit:10783 */
36239 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36240 fra.me.REG[4] = fra.me.REG[3];
36241 /* ./parser//parser.nit:10784 */
36242 fra.me.REG[2] = fra.me.REG[4];
36243 /* ./parser//parser.nit:10785 */
36244 REGB0 = TAG_Bool(ATTR_parser___ReduceAction373____goto(fra.me.REG[0])!=NIT_NULL);
36245 if (UNTAG_Bool(REGB0)) {
36246 } else {
36247 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10785);
36248 }
36249 REGB0 = ATTR_parser___ReduceAction373____goto(fra.me.REG[0]);
36250 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36251 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36252 stack_frame_head = fra.me.prev;
36253 return;
36254 }
36255 void parser___ReduceAction373___init(val_t p0, val_t p1, int* init_table){
36256 int itpos338 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction373].i;
36257 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36258 val_t REGB0;
36259 val_t tmp;
36260 if (init_table[itpos338]) return;
36261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36262 fra.me.file = LOCATE_parser;
36263 fra.me.line = 10788;
36264 fra.me.meth = LOCATE_parser___ReduceAction373___init;
36265 fra.me.has_broke = 0;
36266 fra.me.REG_size = 2;
36267 fra.me.REG[0] = NIT_NULL;
36268 fra.me.REG[1] = NIT_NULL;
36269 fra.me.REG[0] = p0;
36270 REGB0 = p1;
36271 /* ./parser//parser.nit:10788 */
36272 fra.me.REG[1] = fra.me.REG[0];
36273 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36274 ATTR_parser___ReduceAction373____goto(fra.me.REG[1]) = REGB0;
36275 stack_frame_head = fra.me.prev;
36276 init_table[itpos338] = 1;
36277 return;
36278 }
36279 void parser___ReduceAction374___action(val_t p0, val_t p1){
36280 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36281 val_t REGB0;
36282 val_t REGB1;
36283 val_t tmp;
36284 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36285 fra.me.file = LOCATE_parser;
36286 fra.me.line = 10792;
36287 fra.me.meth = LOCATE_parser___ReduceAction374___action;
36288 fra.me.has_broke = 0;
36289 fra.me.REG_size = 5;
36290 fra.me.REG[0] = NIT_NULL;
36291 fra.me.REG[1] = NIT_NULL;
36292 fra.me.REG[2] = NIT_NULL;
36293 fra.me.REG[3] = NIT_NULL;
36294 fra.me.REG[4] = NIT_NULL;
36295 fra.me.REG[0] = p0;
36296 fra.me.REG[1] = p1;
36297 /* ./parser//parser.nit:10794 */
36298 fra.me.REG[2] = NIT_NULL;
36299 /* ./parser//parser.nit:10795 */
36300 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36301 /* ./parser//parser.nit:10796 */
36302 fra.me.REG[4] = NEW_Array_array___Array___init();
36303 /* ./parser//parser.nit:10798 */
36304 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36305 if (UNTAG_Bool(REGB0)) {
36306 } else {
36307 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36308 if (UNTAG_Bool(REGB1)) {
36309 REGB1 = TAG_Bool(false);
36310 REGB0 = REGB1;
36311 } else {
36312 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36313 REGB0 = REGB1;
36314 }
36315 }
36316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36317 if (UNTAG_Bool(REGB0)) {
36318 /* ./parser//parser.nit:10799 */
36319 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
36320 }
36321 /* ./parser//parser.nit:10801 */
36322 fra.me.REG[2] = fra.me.REG[4];
36323 /* ./parser//parser.nit:10802 */
36324 REGB0 = TAG_Bool(ATTR_parser___ReduceAction374____goto(fra.me.REG[0])!=NIT_NULL);
36325 if (UNTAG_Bool(REGB0)) {
36326 } else {
36327 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10802);
36328 }
36329 REGB0 = ATTR_parser___ReduceAction374____goto(fra.me.REG[0]);
36330 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36331 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36332 stack_frame_head = fra.me.prev;
36333 return;
36334 }
36335 void parser___ReduceAction374___init(val_t p0, val_t p1, int* init_table){
36336 int itpos339 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction374].i;
36337 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36338 val_t REGB0;
36339 val_t tmp;
36340 if (init_table[itpos339]) return;
36341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36342 fra.me.file = LOCATE_parser;
36343 fra.me.line = 10805;
36344 fra.me.meth = LOCATE_parser___ReduceAction374___init;
36345 fra.me.has_broke = 0;
36346 fra.me.REG_size = 2;
36347 fra.me.REG[0] = NIT_NULL;
36348 fra.me.REG[1] = NIT_NULL;
36349 fra.me.REG[0] = p0;
36350 REGB0 = p1;
36351 /* ./parser//parser.nit:10805 */
36352 fra.me.REG[1] = fra.me.REG[0];
36353 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36354 ATTR_parser___ReduceAction374____goto(fra.me.REG[1]) = REGB0;
36355 stack_frame_head = fra.me.prev;
36356 init_table[itpos339] = 1;
36357 return;
36358 }
36359 void parser___ReduceAction375___action(val_t p0, val_t p1){
36360 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
36361 val_t REGB0;
36362 val_t REGB1;
36363 val_t tmp;
36364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36365 fra.me.file = LOCATE_parser;
36366 fra.me.line = 10809;
36367 fra.me.meth = LOCATE_parser___ReduceAction375___action;
36368 fra.me.has_broke = 0;
36369 fra.me.REG_size = 6;
36370 fra.me.REG[0] = NIT_NULL;
36371 fra.me.REG[1] = NIT_NULL;
36372 fra.me.REG[2] = NIT_NULL;
36373 fra.me.REG[3] = NIT_NULL;
36374 fra.me.REG[4] = NIT_NULL;
36375 fra.me.REG[5] = NIT_NULL;
36376 fra.me.REG[0] = p0;
36377 fra.me.REG[1] = p1;
36378 /* ./parser//parser.nit:10811 */
36379 fra.me.REG[2] = NIT_NULL;
36380 /* ./parser//parser.nit:10812 */
36381 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36382 /* ./parser//parser.nit:10813 */
36383 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36384 /* ./parser//parser.nit:10814 */
36385 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36386 /* ./parser//parser.nit:10815 */
36387 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36388 /* ./parser//parser.nit:10816 */
36389 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36390 /* ./parser//parser.nit:10817 */
36391 fra.me.REG[5] = NEW_Array_array___Array___init();
36392 /* ./parser//parser.nit:10819 */
36393 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36394 if (UNTAG_Bool(REGB0)) {
36395 } else {
36396 nit_abort("Assert failed", NULL, LOCATE_parser, 10819);
36397 }
36398 /* ./parser//parser.nit:10821 */
36399 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
36400 fra.me.REG[5] = fra.me.REG[4];
36401 /* ./parser//parser.nit:10822 */
36402 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36403 if (UNTAG_Bool(REGB0)) {
36404 } else {
36405 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36406 if (UNTAG_Bool(REGB1)) {
36407 REGB1 = TAG_Bool(false);
36408 REGB0 = REGB1;
36409 } else {
36410 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36411 REGB0 = REGB1;
36412 }
36413 }
36414 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36415 if (UNTAG_Bool(REGB0)) {
36416 /* ./parser//parser.nit:10823 */
36417 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
36418 }
36419 /* ./parser//parser.nit:10825 */
36420 fra.me.REG[2] = fra.me.REG[5];
36421 /* ./parser//parser.nit:10826 */
36422 REGB0 = TAG_Bool(ATTR_parser___ReduceAction375____goto(fra.me.REG[0])!=NIT_NULL);
36423 if (UNTAG_Bool(REGB0)) {
36424 } else {
36425 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10826);
36426 }
36427 REGB0 = ATTR_parser___ReduceAction375____goto(fra.me.REG[0]);
36428 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36429 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36430 stack_frame_head = fra.me.prev;
36431 return;
36432 }
36433 void parser___ReduceAction375___init(val_t p0, val_t p1, int* init_table){
36434 int itpos340 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction375].i;
36435 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36436 val_t REGB0;
36437 val_t tmp;
36438 if (init_table[itpos340]) return;
36439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36440 fra.me.file = LOCATE_parser;
36441 fra.me.line = 10829;
36442 fra.me.meth = LOCATE_parser___ReduceAction375___init;
36443 fra.me.has_broke = 0;
36444 fra.me.REG_size = 2;
36445 fra.me.REG[0] = NIT_NULL;
36446 fra.me.REG[1] = NIT_NULL;
36447 fra.me.REG[0] = p0;
36448 REGB0 = p1;
36449 /* ./parser//parser.nit:10829 */
36450 fra.me.REG[1] = fra.me.REG[0];
36451 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36452 ATTR_parser___ReduceAction375____goto(fra.me.REG[1]) = REGB0;
36453 stack_frame_head = fra.me.prev;
36454 init_table[itpos340] = 1;
36455 return;
36456 }
36457 void parser___ReduceAction376___action(val_t p0, val_t p1){
36458 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36459 val_t REGB0;
36460 val_t tmp;
36461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36462 fra.me.file = LOCATE_parser;
36463 fra.me.line = 10833;
36464 fra.me.meth = LOCATE_parser___ReduceAction376___action;
36465 fra.me.has_broke = 0;
36466 fra.me.REG_size = 5;
36467 fra.me.REG[0] = NIT_NULL;
36468 fra.me.REG[1] = NIT_NULL;
36469 fra.me.REG[2] = NIT_NULL;
36470 fra.me.REG[3] = NIT_NULL;
36471 fra.me.REG[4] = NIT_NULL;
36472 fra.me.REG[0] = p0;
36473 fra.me.REG[1] = p1;
36474 /* ./parser//parser.nit:10835 */
36475 fra.me.REG[2] = NIT_NULL;
36476 /* ./parser//parser.nit:10836 */
36477 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36478 /* ./parser//parser.nit:10837 */
36479 fra.me.REG[4] = NEW_Array_array___Array___init();
36480 /* ./parser//parser.nit:10839 */
36481 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
36482 if (UNTAG_Bool(REGB0)) {
36483 } else {
36484 nit_abort("Assert failed", NULL, LOCATE_parser, 10839);
36485 }
36486 /* ./parser//parser.nit:10840 */
36487 fra.me.REG[3] = NEW_AQualified_parser_prod___AQualified___init_aqualified(fra.me.REG[4], fra.me.REG[3]);
36488 /* ./parser//parser.nit:10844 */
36489 fra.me.REG[2] = fra.me.REG[3];
36490 /* ./parser//parser.nit:10845 */
36491 REGB0 = TAG_Bool(ATTR_parser___ReduceAction376____goto(fra.me.REG[0])!=NIT_NULL);
36492 if (UNTAG_Bool(REGB0)) {
36493 } else {
36494 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10845);
36495 }
36496 REGB0 = ATTR_parser___ReduceAction376____goto(fra.me.REG[0]);
36497 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36498 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36499 stack_frame_head = fra.me.prev;
36500 return;
36501 }
36502 void parser___ReduceAction376___init(val_t p0, val_t p1, int* init_table){
36503 int itpos341 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction376].i;
36504 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36505 val_t REGB0;
36506 val_t tmp;
36507 if (init_table[itpos341]) return;
36508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36509 fra.me.file = LOCATE_parser;
36510 fra.me.line = 10848;
36511 fra.me.meth = LOCATE_parser___ReduceAction376___init;
36512 fra.me.has_broke = 0;
36513 fra.me.REG_size = 2;
36514 fra.me.REG[0] = NIT_NULL;
36515 fra.me.REG[1] = NIT_NULL;
36516 fra.me.REG[0] = p0;
36517 REGB0 = p1;
36518 /* ./parser//parser.nit:10848 */
36519 fra.me.REG[1] = fra.me.REG[0];
36520 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36521 ATTR_parser___ReduceAction376____goto(fra.me.REG[1]) = REGB0;
36522 stack_frame_head = fra.me.prev;
36523 init_table[itpos341] = 1;
36524 return;
36525 }
36526 void parser___ReduceAction377___action(val_t p0, val_t p1){
36527 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
36528 val_t REGB0;
36529 val_t tmp;
36530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36531 fra.me.file = LOCATE_parser;
36532 fra.me.line = 10852;
36533 fra.me.meth = LOCATE_parser___ReduceAction377___action;
36534 fra.me.has_broke = 0;
36535 fra.me.REG_size = 6;
36536 fra.me.REG[0] = NIT_NULL;
36537 fra.me.REG[1] = NIT_NULL;
36538 fra.me.REG[2] = NIT_NULL;
36539 fra.me.REG[3] = NIT_NULL;
36540 fra.me.REG[4] = NIT_NULL;
36541 fra.me.REG[5] = NIT_NULL;
36542 fra.me.REG[0] = p0;
36543 fra.me.REG[1] = p1;
36544 /* ./parser//parser.nit:10854 */
36545 fra.me.REG[2] = NIT_NULL;
36546 /* ./parser//parser.nit:10855 */
36547 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36548 /* ./parser//parser.nit:10856 */
36549 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36550 /* ./parser//parser.nit:10857 */
36551 fra.me.REG[5] = NEW_Array_array___Array___init();
36552 /* ./parser//parser.nit:10859 */
36553 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36554 if (UNTAG_Bool(REGB0)) {
36555 } else {
36556 nit_abort("Assert failed", NULL, LOCATE_parser, 10859);
36557 }
36558 /* ./parser//parser.nit:10860 */
36559 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
36560 fra.me.REG[5] = fra.me.REG[4];
36561 /* ./parser//parser.nit:10862 */
36562 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
36563 if (UNTAG_Bool(REGB0)) {
36564 } else {
36565 nit_abort("Assert failed", NULL, LOCATE_parser, 10862);
36566 }
36567 /* ./parser//parser.nit:10863 */
36568 fra.me.REG[3] = NEW_AQualified_parser_prod___AQualified___init_aqualified(fra.me.REG[5], fra.me.REG[3]);
36569 /* ./parser//parser.nit:10867 */
36570 fra.me.REG[2] = fra.me.REG[3];
36571 /* ./parser//parser.nit:10868 */
36572 REGB0 = TAG_Bool(ATTR_parser___ReduceAction377____goto(fra.me.REG[0])!=NIT_NULL);
36573 if (UNTAG_Bool(REGB0)) {
36574 } else {
36575 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10868);
36576 }
36577 REGB0 = ATTR_parser___ReduceAction377____goto(fra.me.REG[0]);
36578 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36579 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36580 stack_frame_head = fra.me.prev;
36581 return;
36582 }
36583 void parser___ReduceAction377___init(val_t p0, val_t p1, int* init_table){
36584 int itpos342 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction377].i;
36585 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36586 val_t REGB0;
36587 val_t tmp;
36588 if (init_table[itpos342]) return;
36589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36590 fra.me.file = LOCATE_parser;
36591 fra.me.line = 10871;
36592 fra.me.meth = LOCATE_parser___ReduceAction377___init;
36593 fra.me.has_broke = 0;
36594 fra.me.REG_size = 2;
36595 fra.me.REG[0] = NIT_NULL;
36596 fra.me.REG[1] = NIT_NULL;
36597 fra.me.REG[0] = p0;
36598 REGB0 = p1;
36599 /* ./parser//parser.nit:10871 */
36600 fra.me.REG[1] = fra.me.REG[0];
36601 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36602 ATTR_parser___ReduceAction377____goto(fra.me.REG[1]) = REGB0;
36603 stack_frame_head = fra.me.prev;
36604 init_table[itpos342] = 1;
36605 return;
36606 }
36607 void parser___ReduceAction378___action(val_t p0, val_t p1){
36608 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36609 val_t REGB0;
36610 val_t tmp;
36611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36612 fra.me.file = LOCATE_parser;
36613 fra.me.line = 10875;
36614 fra.me.meth = LOCATE_parser___ReduceAction378___action;
36615 fra.me.has_broke = 0;
36616 fra.me.REG_size = 5;
36617 fra.me.REG[0] = NIT_NULL;
36618 fra.me.REG[1] = NIT_NULL;
36619 fra.me.REG[2] = NIT_NULL;
36620 fra.me.REG[3] = NIT_NULL;
36621 fra.me.REG[4] = NIT_NULL;
36622 fra.me.REG[0] = p0;
36623 fra.me.REG[1] = p1;
36624 /* ./parser//parser.nit:10877 */
36625 fra.me.REG[2] = NIT_NULL;
36626 /* ./parser//parser.nit:10878 */
36627 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36628 /* ./parser//parser.nit:10879 */
36629 fra.me.REG[4] = NEW_Array_array___Array___init();
36630 /* ./parser//parser.nit:10881 */
36631 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36632 if (UNTAG_Bool(REGB0)) {
36633 } else {
36634 nit_abort("Assert failed", NULL, LOCATE_parser, 10881);
36635 }
36636 /* ./parser//parser.nit:10882 */
36637 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36638 fra.me.REG[4] = fra.me.REG[3];
36639 /* ./parser//parser.nit:10883 */
36640 fra.me.REG[4] = NEW_AQualified_parser_prod___AQualified___init_aqualified(fra.me.REG[4], NIT_NULL);
36641 /* ./parser//parser.nit:10887 */
36642 fra.me.REG[2] = fra.me.REG[4];
36643 /* ./parser//parser.nit:10888 */
36644 REGB0 = TAG_Bool(ATTR_parser___ReduceAction378____goto(fra.me.REG[0])!=NIT_NULL);
36645 if (UNTAG_Bool(REGB0)) {
36646 } else {
36647 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10888);
36648 }
36649 REGB0 = ATTR_parser___ReduceAction378____goto(fra.me.REG[0]);
36650 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36651 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36652 stack_frame_head = fra.me.prev;
36653 return;
36654 }
36655 void parser___ReduceAction378___init(val_t p0, val_t p1, int* init_table){
36656 int itpos343 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction378].i;
36657 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36658 val_t REGB0;
36659 val_t tmp;
36660 if (init_table[itpos343]) return;
36661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36662 fra.me.file = LOCATE_parser;
36663 fra.me.line = 10891;
36664 fra.me.meth = LOCATE_parser___ReduceAction378___init;
36665 fra.me.has_broke = 0;
36666 fra.me.REG_size = 2;
36667 fra.me.REG[0] = NIT_NULL;
36668 fra.me.REG[1] = NIT_NULL;
36669 fra.me.REG[0] = p0;
36670 REGB0 = p1;
36671 /* ./parser//parser.nit:10891 */
36672 fra.me.REG[1] = fra.me.REG[0];
36673 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36674 ATTR_parser___ReduceAction378____goto(fra.me.REG[1]) = REGB0;
36675 stack_frame_head = fra.me.prev;
36676 init_table[itpos343] = 1;
36677 return;
36678 }
36679 void parser___ReduceAction379___action(val_t p0, val_t p1){
36680 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36681 val_t REGB0;
36682 val_t tmp;
36683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36684 fra.me.file = LOCATE_parser;
36685 fra.me.line = 10895;
36686 fra.me.meth = LOCATE_parser___ReduceAction379___action;
36687 fra.me.has_broke = 0;
36688 fra.me.REG_size = 4;
36689 fra.me.REG[0] = NIT_NULL;
36690 fra.me.REG[1] = NIT_NULL;
36691 fra.me.REG[2] = NIT_NULL;
36692 fra.me.REG[3] = NIT_NULL;
36693 fra.me.REG[0] = p0;
36694 fra.me.REG[1] = p1;
36695 /* ./parser//parser.nit:10897 */
36696 fra.me.REG[2] = NIT_NULL;
36697 /* ./parser//parser.nit:10898 */
36698 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36699 /* ./parser//parser.nit:10899 */
36700 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36701 /* ./parser//parser.nit:10900 */
36702 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36703 /* ./parser//parser.nit:10902 */
36704 fra.me.REG[2] = fra.me.REG[3];
36705 /* ./parser//parser.nit:10903 */
36706 REGB0 = TAG_Bool(ATTR_parser___ReduceAction379____goto(fra.me.REG[0])!=NIT_NULL);
36707 if (UNTAG_Bool(REGB0)) {
36708 } else {
36709 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10903);
36710 }
36711 REGB0 = ATTR_parser___ReduceAction379____goto(fra.me.REG[0]);
36712 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36713 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36714 stack_frame_head = fra.me.prev;
36715 return;
36716 }
36717 void parser___ReduceAction379___init(val_t p0, val_t p1, int* init_table){
36718 int itpos344 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction379].i;
36719 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36720 val_t REGB0;
36721 val_t tmp;
36722 if (init_table[itpos344]) return;
36723 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36724 fra.me.file = LOCATE_parser;
36725 fra.me.line = 10906;
36726 fra.me.meth = LOCATE_parser___ReduceAction379___init;
36727 fra.me.has_broke = 0;
36728 fra.me.REG_size = 2;
36729 fra.me.REG[0] = NIT_NULL;
36730 fra.me.REG[1] = NIT_NULL;
36731 fra.me.REG[0] = p0;
36732 REGB0 = p1;
36733 /* ./parser//parser.nit:10906 */
36734 fra.me.REG[1] = fra.me.REG[0];
36735 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36736 ATTR_parser___ReduceAction379____goto(fra.me.REG[1]) = REGB0;
36737 stack_frame_head = fra.me.prev;
36738 init_table[itpos344] = 1;
36739 return;
36740 }
36741 void parser___ReduceAction380___action(val_t p0, val_t p1){
36742 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36743 val_t REGB0;
36744 val_t tmp;
36745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36746 fra.me.file = LOCATE_parser;
36747 fra.me.line = 10910;
36748 fra.me.meth = LOCATE_parser___ReduceAction380___action;
36749 fra.me.has_broke = 0;
36750 fra.me.REG_size = 4;
36751 fra.me.REG[0] = NIT_NULL;
36752 fra.me.REG[1] = NIT_NULL;
36753 fra.me.REG[2] = NIT_NULL;
36754 fra.me.REG[3] = NIT_NULL;
36755 fra.me.REG[0] = p0;
36756 fra.me.REG[1] = p1;
36757 /* ./parser//parser.nit:10912 */
36758 fra.me.REG[2] = NIT_NULL;
36759 /* ./parser//parser.nit:10913 */
36760 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36761 /* ./parser//parser.nit:10914 */
36762 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36763 /* ./parser//parser.nit:10915 */
36764 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36765 /* ./parser//parser.nit:10917 */
36766 fra.me.REG[2] = fra.me.REG[3];
36767 /* ./parser//parser.nit:10918 */
36768 REGB0 = TAG_Bool(ATTR_parser___ReduceAction380____goto(fra.me.REG[0])!=NIT_NULL);
36769 if (UNTAG_Bool(REGB0)) {
36770 } else {
36771 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10918);
36772 }
36773 REGB0 = ATTR_parser___ReduceAction380____goto(fra.me.REG[0]);
36774 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36775 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36776 stack_frame_head = fra.me.prev;
36777 return;
36778 }
36779 void parser___ReduceAction380___init(val_t p0, val_t p1, int* init_table){
36780 int itpos345 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction380].i;
36781 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36782 val_t REGB0;
36783 val_t tmp;
36784 if (init_table[itpos345]) return;
36785 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36786 fra.me.file = LOCATE_parser;
36787 fra.me.line = 10921;
36788 fra.me.meth = LOCATE_parser___ReduceAction380___init;
36789 fra.me.has_broke = 0;
36790 fra.me.REG_size = 2;
36791 fra.me.REG[0] = NIT_NULL;
36792 fra.me.REG[1] = NIT_NULL;
36793 fra.me.REG[0] = p0;
36794 REGB0 = p1;
36795 /* ./parser//parser.nit:10921 */
36796 fra.me.REG[1] = fra.me.REG[0];
36797 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36798 ATTR_parser___ReduceAction380____goto(fra.me.REG[1]) = REGB0;
36799 stack_frame_head = fra.me.prev;
36800 init_table[itpos345] = 1;
36801 return;
36802 }
36803 void parser___ReduceAction381___action(val_t p0, val_t p1){
36804 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36805 val_t REGB0;
36806 val_t tmp;
36807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36808 fra.me.file = LOCATE_parser;
36809 fra.me.line = 10925;
36810 fra.me.meth = LOCATE_parser___ReduceAction381___action;
36811 fra.me.has_broke = 0;
36812 fra.me.REG_size = 4;
36813 fra.me.REG[0] = NIT_NULL;
36814 fra.me.REG[1] = NIT_NULL;
36815 fra.me.REG[2] = NIT_NULL;
36816 fra.me.REG[3] = NIT_NULL;
36817 fra.me.REG[0] = p0;
36818 fra.me.REG[1] = p1;
36819 /* ./parser//parser.nit:10927 */
36820 fra.me.REG[2] = NIT_NULL;
36821 /* ./parser//parser.nit:10928 */
36822 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36823 /* ./parser//parser.nit:10929 */
36824 REGB0 = TAG_Bool(ATTR_parser___ReduceAction381____goto(fra.me.REG[0])!=NIT_NULL);
36825 if (UNTAG_Bool(REGB0)) {
36826 } else {
36827 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10929);
36828 }
36829 REGB0 = ATTR_parser___ReduceAction381____goto(fra.me.REG[0]);
36830 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36831 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36832 stack_frame_head = fra.me.prev;
36833 return;
36834 }
36835 void parser___ReduceAction381___init(val_t p0, val_t p1, int* init_table){
36836 int itpos346 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction381].i;
36837 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36838 val_t REGB0;
36839 val_t tmp;
36840 if (init_table[itpos346]) return;
36841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36842 fra.me.file = LOCATE_parser;
36843 fra.me.line = 10932;
36844 fra.me.meth = LOCATE_parser___ReduceAction381___init;
36845 fra.me.has_broke = 0;
36846 fra.me.REG_size = 2;
36847 fra.me.REG[0] = NIT_NULL;
36848 fra.me.REG[1] = NIT_NULL;
36849 fra.me.REG[0] = p0;
36850 REGB0 = p1;
36851 /* ./parser//parser.nit:10932 */
36852 fra.me.REG[1] = fra.me.REG[0];
36853 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36854 ATTR_parser___ReduceAction381____goto(fra.me.REG[1]) = REGB0;
36855 stack_frame_head = fra.me.prev;
36856 init_table[itpos346] = 1;
36857 return;
36858 }
36859 void parser___ReduceAction383___action(val_t p0, val_t p1){
36860 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36861 val_t REGB0;
36862 val_t tmp;
36863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36864 fra.me.file = LOCATE_parser;
36865 fra.me.line = 10936;
36866 fra.me.meth = LOCATE_parser___ReduceAction383___action;
36867 fra.me.has_broke = 0;
36868 fra.me.REG_size = 5;
36869 fra.me.REG[0] = NIT_NULL;
36870 fra.me.REG[1] = NIT_NULL;
36871 fra.me.REG[2] = NIT_NULL;
36872 fra.me.REG[3] = NIT_NULL;
36873 fra.me.REG[4] = NIT_NULL;
36874 fra.me.REG[0] = p0;
36875 fra.me.REG[1] = p1;
36876 /* ./parser//parser.nit:10938 */
36877 fra.me.REG[2] = NIT_NULL;
36878 /* ./parser//parser.nit:10939 */
36879 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36880 /* ./parser//parser.nit:10940 */
36881 fra.me.REG[4] = NEW_Array_array___Array___init();
36882 /* ./parser//parser.nit:10942 */
36883 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36884 if (UNTAG_Bool(REGB0)) {
36885 } else {
36886 nit_abort("Assert failed", NULL, LOCATE_parser, 10942);
36887 }
36888 /* ./parser//parser.nit:10943 */
36889 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36890 fra.me.REG[4] = fra.me.REG[3];
36891 /* ./parser//parser.nit:10944 */
36892 fra.me.REG[4] = NEW_ADoc_parser_prod___ADoc___init_adoc(fra.me.REG[4]);
36893 /* ./parser//parser.nit:10947 */
36894 fra.me.REG[2] = fra.me.REG[4];
36895 /* ./parser//parser.nit:10948 */
36896 REGB0 = TAG_Bool(ATTR_parser___ReduceAction383____goto(fra.me.REG[0])!=NIT_NULL);
36897 if (UNTAG_Bool(REGB0)) {
36898 } else {
36899 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10948);
36900 }
36901 REGB0 = ATTR_parser___ReduceAction383____goto(fra.me.REG[0]);
36902 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36903 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36904 stack_frame_head = fra.me.prev;
36905 return;
36906 }
36907 void parser___ReduceAction383___init(val_t p0, val_t p1, int* init_table){
36908 int itpos347 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction383].i;
36909 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36910 val_t REGB0;
36911 val_t tmp;
36912 if (init_table[itpos347]) return;
36913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36914 fra.me.file = LOCATE_parser;
36915 fra.me.line = 10951;
36916 fra.me.meth = LOCATE_parser___ReduceAction383___init;
36917 fra.me.has_broke = 0;
36918 fra.me.REG_size = 2;
36919 fra.me.REG[0] = NIT_NULL;
36920 fra.me.REG[1] = NIT_NULL;
36921 fra.me.REG[0] = p0;
36922 REGB0 = p1;
36923 /* ./parser//parser.nit:10951 */
36924 fra.me.REG[1] = fra.me.REG[0];
36925 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36926 ATTR_parser___ReduceAction383____goto(fra.me.REG[1]) = REGB0;
36927 stack_frame_head = fra.me.prev;
36928 init_table[itpos347] = 1;
36929 return;
36930 }
36931 void parser___ReduceAction384___action(val_t p0, val_t p1){
36932 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36933 val_t REGB0;
36934 val_t tmp;
36935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36936 fra.me.file = LOCATE_parser;
36937 fra.me.line = 10955;
36938 fra.me.meth = LOCATE_parser___ReduceAction384___action;
36939 fra.me.has_broke = 0;
36940 fra.me.REG_size = 5;
36941 fra.me.REG[0] = NIT_NULL;
36942 fra.me.REG[1] = NIT_NULL;
36943 fra.me.REG[2] = NIT_NULL;
36944 fra.me.REG[3] = NIT_NULL;
36945 fra.me.REG[4] = NIT_NULL;
36946 fra.me.REG[0] = p0;
36947 fra.me.REG[1] = p1;
36948 /* ./parser//parser.nit:10957 */
36949 fra.me.REG[2] = NIT_NULL;
36950 /* ./parser//parser.nit:10958 */
36951 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36952 /* ./parser//parser.nit:10959 */
36953 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36954 /* ./parser//parser.nit:10960 */
36955 fra.me.REG[4] = NEW_Array_array___Array___init();
36956 /* ./parser//parser.nit:10962 */
36957 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36958 if (UNTAG_Bool(REGB0)) {
36959 } else {
36960 nit_abort("Assert failed", NULL, LOCATE_parser, 10962);
36961 }
36962 /* ./parser//parser.nit:10963 */
36963 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36964 fra.me.REG[4] = fra.me.REG[3];
36965 /* ./parser//parser.nit:10964 */
36966 fra.me.REG[4] = NEW_ADoc_parser_prod___ADoc___init_adoc(fra.me.REG[4]);
36967 /* ./parser//parser.nit:10967 */
36968 fra.me.REG[2] = fra.me.REG[4];
36969 /* ./parser//parser.nit:10968 */
36970 REGB0 = TAG_Bool(ATTR_parser___ReduceAction384____goto(fra.me.REG[0])!=NIT_NULL);
36971 if (UNTAG_Bool(REGB0)) {
36972 } else {
36973 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10968);
36974 }
36975 REGB0 = ATTR_parser___ReduceAction384____goto(fra.me.REG[0]);
36976 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36977 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36978 stack_frame_head = fra.me.prev;
36979 return;
36980 }
36981 void parser___ReduceAction384___init(val_t p0, val_t p1, int* init_table){
36982 int itpos348 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction384].i;
36983 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36984 val_t REGB0;
36985 val_t tmp;
36986 if (init_table[itpos348]) return;
36987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36988 fra.me.file = LOCATE_parser;
36989 fra.me.line = 10971;
36990 fra.me.meth = LOCATE_parser___ReduceAction384___init;
36991 fra.me.has_broke = 0;
36992 fra.me.REG_size = 2;
36993 fra.me.REG[0] = NIT_NULL;
36994 fra.me.REG[1] = NIT_NULL;
36995 fra.me.REG[0] = p0;
36996 REGB0 = p1;
36997 /* ./parser//parser.nit:10971 */
36998 fra.me.REG[1] = fra.me.REG[0];
36999 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37000 ATTR_parser___ReduceAction384____goto(fra.me.REG[1]) = REGB0;
37001 stack_frame_head = fra.me.prev;
37002 init_table[itpos348] = 1;
37003 return;
37004 }
37005 void parser___ReduceAction386___action(val_t p0, val_t p1){
37006 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37007 val_t REGB0;
37008 val_t tmp;
37009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37010 fra.me.file = LOCATE_parser;
37011 fra.me.line = 10975;
37012 fra.me.meth = LOCATE_parser___ReduceAction386___action;
37013 fra.me.has_broke = 0;
37014 fra.me.REG_size = 3;
37015 fra.me.REG[0] = NIT_NULL;
37016 fra.me.REG[1] = NIT_NULL;
37017 fra.me.REG[2] = NIT_NULL;
37018 fra.me.REG[0] = p0;
37019 fra.me.REG[1] = p1;
37020 /* ./parser//parser.nit:10977 */
37021 fra.me.REG[2] = NIT_NULL;
37022 /* ./parser//parser.nit:10978 */
37023 fra.me.REG[2] = NIT_NULL;
37024 /* ./parser//parser.nit:10979 */
37025 REGB0 = TAG_Bool(ATTR_parser___ReduceAction386____goto(fra.me.REG[0])!=NIT_NULL);
37026 if (UNTAG_Bool(REGB0)) {
37027 } else {
37028 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10979);
37029 }
37030 REGB0 = ATTR_parser___ReduceAction386____goto(fra.me.REG[0]);
37031 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37032 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37033 stack_frame_head = fra.me.prev;
37034 return;
37035 }
37036 void parser___ReduceAction386___init(val_t p0, val_t p1, int* init_table){
37037 int itpos349 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction386].i;
37038 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37039 val_t REGB0;
37040 val_t tmp;
37041 if (init_table[itpos349]) return;
37042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37043 fra.me.file = LOCATE_parser;
37044 fra.me.line = 10982;
37045 fra.me.meth = LOCATE_parser___ReduceAction386___init;
37046 fra.me.has_broke = 0;
37047 fra.me.REG_size = 2;
37048 fra.me.REG[0] = NIT_NULL;
37049 fra.me.REG[1] = NIT_NULL;
37050 fra.me.REG[0] = p0;
37051 REGB0 = p1;
37052 /* ./parser//parser.nit:10982 */
37053 fra.me.REG[1] = fra.me.REG[0];
37054 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37055 ATTR_parser___ReduceAction386____goto(fra.me.REG[1]) = REGB0;
37056 stack_frame_head = fra.me.prev;
37057 init_table[itpos349] = 1;
37058 return;
37059 }
37060 void parser___ReduceAction387___action(val_t p0, val_t p1){
37061 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37062 val_t REGB0;
37063 val_t tmp;
37064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37065 fra.me.file = LOCATE_parser;
37066 fra.me.line = 10986;
37067 fra.me.meth = LOCATE_parser___ReduceAction387___action;
37068 fra.me.has_broke = 0;
37069 fra.me.REG_size = 4;
37070 fra.me.REG[0] = NIT_NULL;
37071 fra.me.REG[1] = NIT_NULL;
37072 fra.me.REG[2] = NIT_NULL;
37073 fra.me.REG[3] = NIT_NULL;
37074 fra.me.REG[0] = p0;
37075 fra.me.REG[1] = p1;
37076 /* ./parser//parser.nit:10988 */
37077 fra.me.REG[2] = NIT_NULL;
37078 /* ./parser//parser.nit:10989 */
37079 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37080 /* ./parser//parser.nit:10991 */
37081 fra.me.REG[2] = fra.me.REG[3];
37082 /* ./parser//parser.nit:10992 */
37083 REGB0 = TAG_Bool(ATTR_parser___ReduceAction387____goto(fra.me.REG[0])!=NIT_NULL);
37084 if (UNTAG_Bool(REGB0)) {
37085 } else {
37086 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10992);
37087 }
37088 REGB0 = ATTR_parser___ReduceAction387____goto(fra.me.REG[0]);
37089 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37090 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37091 stack_frame_head = fra.me.prev;
37092 return;
37093 }
37094 void parser___ReduceAction387___init(val_t p0, val_t p1, int* init_table){
37095 int itpos350 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction387].i;
37096 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37097 val_t REGB0;
37098 val_t tmp;
37099 if (init_table[itpos350]) return;
37100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37101 fra.me.file = LOCATE_parser;
37102 fra.me.line = 10995;
37103 fra.me.meth = LOCATE_parser___ReduceAction387___init;
37104 fra.me.has_broke = 0;
37105 fra.me.REG_size = 2;
37106 fra.me.REG[0] = NIT_NULL;
37107 fra.me.REG[1] = NIT_NULL;
37108 fra.me.REG[0] = p0;
37109 REGB0 = p1;
37110 /* ./parser//parser.nit:10995 */
37111 fra.me.REG[1] = fra.me.REG[0];
37112 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37113 ATTR_parser___ReduceAction387____goto(fra.me.REG[1]) = REGB0;
37114 stack_frame_head = fra.me.prev;
37115 init_table[itpos350] = 1;
37116 return;
37117 }
37118 void parser___ReduceAction388___action(val_t p0, val_t p1){
37119 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37120 val_t REGB0;
37121 val_t tmp;
37122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37123 fra.me.file = LOCATE_parser;
37124 fra.me.line = 10999;
37125 fra.me.meth = LOCATE_parser___ReduceAction388___action;
37126 fra.me.has_broke = 0;
37127 fra.me.REG_size = 4;
37128 fra.me.REG[0] = NIT_NULL;
37129 fra.me.REG[1] = NIT_NULL;
37130 fra.me.REG[2] = NIT_NULL;
37131 fra.me.REG[3] = NIT_NULL;
37132 fra.me.REG[0] = p0;
37133 fra.me.REG[1] = p1;
37134 /* ./parser//parser.nit:11001 */
37135 fra.me.REG[2] = NIT_NULL;
37136 /* ./parser//parser.nit:11002 */
37137 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37138 /* ./parser//parser.nit:11003 */
37139 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37140 /* ./parser//parser.nit:11004 */
37141 REGB0 = TAG_Bool(ATTR_parser___ReduceAction388____goto(fra.me.REG[0])!=NIT_NULL);
37142 if (UNTAG_Bool(REGB0)) {
37143 } else {
37144 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11004);
37145 }
37146 REGB0 = ATTR_parser___ReduceAction388____goto(fra.me.REG[0]);
37147 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37148 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37149 stack_frame_head = fra.me.prev;
37150 return;
37151 }
37152 void parser___ReduceAction388___init(val_t p0, val_t p1, int* init_table){
37153 int itpos351 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction388].i;
37154 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37155 val_t REGB0;
37156 val_t tmp;
37157 if (init_table[itpos351]) return;
37158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37159 fra.me.file = LOCATE_parser;
37160 fra.me.line = 11007;
37161 fra.me.meth = LOCATE_parser___ReduceAction388___init;
37162 fra.me.has_broke = 0;
37163 fra.me.REG_size = 2;
37164 fra.me.REG[0] = NIT_NULL;
37165 fra.me.REG[1] = NIT_NULL;
37166 fra.me.REG[0] = p0;
37167 REGB0 = p1;
37168 /* ./parser//parser.nit:11007 */
37169 fra.me.REG[1] = fra.me.REG[0];
37170 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37171 ATTR_parser___ReduceAction388____goto(fra.me.REG[1]) = REGB0;
37172 stack_frame_head = fra.me.prev;
37173 init_table[itpos351] = 1;
37174 return;
37175 }
37176 void parser___ReduceAction389___action(val_t p0, val_t p1){
37177 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37178 val_t REGB0;
37179 val_t tmp;
37180 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37181 fra.me.file = LOCATE_parser;
37182 fra.me.line = 11011;
37183 fra.me.meth = LOCATE_parser___ReduceAction389___action;
37184 fra.me.has_broke = 0;
37185 fra.me.REG_size = 4;
37186 fra.me.REG[0] = NIT_NULL;
37187 fra.me.REG[1] = NIT_NULL;
37188 fra.me.REG[2] = NIT_NULL;
37189 fra.me.REG[3] = NIT_NULL;
37190 fra.me.REG[0] = p0;
37191 fra.me.REG[1] = p1;
37192 /* ./parser//parser.nit:11013 */
37193 fra.me.REG[2] = NIT_NULL;
37194 /* ./parser//parser.nit:11014 */
37195 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37196 /* ./parser//parser.nit:11015 */
37197 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37198 /* ./parser//parser.nit:11016 */
37199 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37200 /* ./parser//parser.nit:11017 */
37201 REGB0 = TAG_Bool(ATTR_parser___ReduceAction389____goto(fra.me.REG[0])!=NIT_NULL);
37202 if (UNTAG_Bool(REGB0)) {
37203 } else {
37204 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11017);
37205 }
37206 REGB0 = ATTR_parser___ReduceAction389____goto(fra.me.REG[0]);
37207 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37208 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37209 stack_frame_head = fra.me.prev;
37210 return;
37211 }
37212 void parser___ReduceAction389___init(val_t p0, val_t p1, int* init_table){
37213 int itpos352 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction389].i;
37214 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37215 val_t REGB0;
37216 val_t tmp;
37217 if (init_table[itpos352]) return;
37218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37219 fra.me.file = LOCATE_parser;
37220 fra.me.line = 11020;
37221 fra.me.meth = LOCATE_parser___ReduceAction389___init;
37222 fra.me.has_broke = 0;
37223 fra.me.REG_size = 2;
37224 fra.me.REG[0] = NIT_NULL;
37225 fra.me.REG[1] = NIT_NULL;
37226 fra.me.REG[0] = p0;
37227 REGB0 = p1;
37228 /* ./parser//parser.nit:11020 */
37229 fra.me.REG[1] = fra.me.REG[0];
37230 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37231 ATTR_parser___ReduceAction389____goto(fra.me.REG[1]) = REGB0;
37232 stack_frame_head = fra.me.prev;
37233 init_table[itpos352] = 1;
37234 return;
37235 }
37236 void parser___ReduceAction637___action(val_t p0, val_t p1){
37237 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37238 val_t REGB0;
37239 val_t tmp;
37240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37241 fra.me.file = LOCATE_parser;
37242 fra.me.line = 11024;
37243 fra.me.meth = LOCATE_parser___ReduceAction637___action;
37244 fra.me.has_broke = 0;
37245 fra.me.REG_size = 6;
37246 fra.me.REG[0] = NIT_NULL;
37247 fra.me.REG[1] = NIT_NULL;
37248 fra.me.REG[2] = NIT_NULL;
37249 fra.me.REG[3] = NIT_NULL;
37250 fra.me.REG[4] = NIT_NULL;
37251 fra.me.REG[5] = NIT_NULL;
37252 fra.me.REG[0] = p0;
37253 fra.me.REG[1] = p1;
37254 /* ./parser//parser.nit:11026 */
37255 fra.me.REG[2] = NIT_NULL;
37256 /* ./parser//parser.nit:11027 */
37257 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37258 /* ./parser//parser.nit:11028 */
37259 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37260 /* ./parser//parser.nit:11029 */
37261 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37262 /* ./parser//parser.nit:11031 */
37263 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwisset, ID_TKwisset)) /*cast nullable TKwisset*/;
37264 if (UNTAG_Bool(REGB0)) {
37265 } else {
37266 nit_abort("Assert failed", NULL, LOCATE_parser, 11031);
37267 }
37268 /* ./parser//parser.nit:11033 */
37269 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37270 if (UNTAG_Bool(REGB0)) {
37271 } else {
37272 nit_abort("Assert failed", NULL, LOCATE_parser, 11033);
37273 }
37274 /* ./parser//parser.nit:11035 */
37275 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
37276 if (UNTAG_Bool(REGB0)) {
37277 } else {
37278 nit_abort("Assert failed", NULL, LOCATE_parser, 11035);
37279 }
37280 /* ./parser//parser.nit:11036 */
37281 fra.me.REG[3] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
37282 /* ./parser//parser.nit:11041 */
37283 fra.me.REG[2] = fra.me.REG[3];
37284 /* ./parser//parser.nit:11042 */
37285 REGB0 = TAG_Bool(ATTR_parser___ReduceAction637____goto(fra.me.REG[0])!=NIT_NULL);
37286 if (UNTAG_Bool(REGB0)) {
37287 } else {
37288 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11042);
37289 }
37290 REGB0 = ATTR_parser___ReduceAction637____goto(fra.me.REG[0]);
37291 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37292 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37293 stack_frame_head = fra.me.prev;
37294 return;
37295 }
37296 void parser___ReduceAction637___init(val_t p0, val_t p1, int* init_table){
37297 int itpos353 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction637].i;
37298 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37299 val_t REGB0;
37300 val_t tmp;
37301 if (init_table[itpos353]) return;
37302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37303 fra.me.file = LOCATE_parser;
37304 fra.me.line = 11045;
37305 fra.me.meth = LOCATE_parser___ReduceAction637___init;
37306 fra.me.has_broke = 0;
37307 fra.me.REG_size = 2;
37308 fra.me.REG[0] = NIT_NULL;
37309 fra.me.REG[1] = NIT_NULL;
37310 fra.me.REG[0] = p0;
37311 REGB0 = p1;
37312 /* ./parser//parser.nit:11045 */
37313 fra.me.REG[1] = fra.me.REG[0];
37314 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37315 ATTR_parser___ReduceAction637____goto(fra.me.REG[1]) = REGB0;
37316 stack_frame_head = fra.me.prev;
37317 init_table[itpos353] = 1;
37318 return;
37319 }
37320 void parser___ReduceAction638___action(val_t p0, val_t p1){
37321 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37322 val_t REGB0;
37323 val_t tmp;
37324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37325 fra.me.file = LOCATE_parser;
37326 fra.me.line = 11049;
37327 fra.me.meth = LOCATE_parser___ReduceAction638___action;
37328 fra.me.has_broke = 0;
37329 fra.me.REG_size = 5;
37330 fra.me.REG[0] = NIT_NULL;
37331 fra.me.REG[1] = NIT_NULL;
37332 fra.me.REG[2] = NIT_NULL;
37333 fra.me.REG[3] = NIT_NULL;
37334 fra.me.REG[4] = NIT_NULL;
37335 fra.me.REG[0] = p0;
37336 fra.me.REG[1] = p1;
37337 /* ./parser//parser.nit:11051 */
37338 fra.me.REG[2] = NIT_NULL;
37339 /* ./parser//parser.nit:11052 */
37340 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37341 /* ./parser//parser.nit:11053 */
37342 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37343 /* ./parser//parser.nit:11055 */
37344 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37345 if (UNTAG_Bool(REGB0)) {
37346 } else {
37347 nit_abort("Assert failed", NULL, LOCATE_parser, 11055);
37348 }
37349 /* ./parser//parser.nit:11057 */
37350 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
37351 if (UNTAG_Bool(REGB0)) {
37352 } else {
37353 nit_abort("Assert failed", NULL, LOCATE_parser, 11057);
37354 }
37355 /* ./parser//parser.nit:11058 */
37356 fra.me.REG[3] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
37357 /* ./parser//parser.nit:11062 */
37358 fra.me.REG[2] = fra.me.REG[3];
37359 /* ./parser//parser.nit:11063 */
37360 REGB0 = TAG_Bool(ATTR_parser___ReduceAction638____goto(fra.me.REG[0])!=NIT_NULL);
37361 if (UNTAG_Bool(REGB0)) {
37362 } else {
37363 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11063);
37364 }
37365 REGB0 = ATTR_parser___ReduceAction638____goto(fra.me.REG[0]);
37366 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37367 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37368 stack_frame_head = fra.me.prev;
37369 return;
37370 }
37371 void parser___ReduceAction638___init(val_t p0, val_t p1, int* init_table){
37372 int itpos354 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction638].i;
37373 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37374 val_t REGB0;
37375 val_t tmp;
37376 if (init_table[itpos354]) return;
37377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37378 fra.me.file = LOCATE_parser;
37379 fra.me.line = 11066;
37380 fra.me.meth = LOCATE_parser___ReduceAction638___init;
37381 fra.me.has_broke = 0;
37382 fra.me.REG_size = 2;
37383 fra.me.REG[0] = NIT_NULL;
37384 fra.me.REG[1] = NIT_NULL;
37385 fra.me.REG[0] = p0;
37386 REGB0 = p1;
37387 /* ./parser//parser.nit:11066 */
37388 fra.me.REG[1] = fra.me.REG[0];
37389 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37390 ATTR_parser___ReduceAction638____goto(fra.me.REG[1]) = REGB0;
37391 stack_frame_head = fra.me.prev;
37392 init_table[itpos354] = 1;
37393 return;
37394 }
37395 void parser___ReduceAction639___action(val_t p0, val_t p1){
37396 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
37397 val_t REGB0;
37398 val_t tmp;
37399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37400 fra.me.file = LOCATE_parser;
37401 fra.me.line = 11070;
37402 fra.me.meth = LOCATE_parser___ReduceAction639___action;
37403 fra.me.has_broke = 0;
37404 fra.me.REG_size = 8;
37405 fra.me.REG[0] = NIT_NULL;
37406 fra.me.REG[1] = NIT_NULL;
37407 fra.me.REG[2] = NIT_NULL;
37408 fra.me.REG[3] = NIT_NULL;
37409 fra.me.REG[4] = NIT_NULL;
37410 fra.me.REG[5] = NIT_NULL;
37411 fra.me.REG[6] = NIT_NULL;
37412 fra.me.REG[7] = NIT_NULL;
37413 fra.me.REG[0] = p0;
37414 fra.me.REG[1] = p1;
37415 /* ./parser//parser.nit:11072 */
37416 fra.me.REG[2] = NIT_NULL;
37417 /* ./parser//parser.nit:11073 */
37418 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37419 /* ./parser//parser.nit:11074 */
37420 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37421 /* ./parser//parser.nit:11075 */
37422 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37423 /* ./parser//parser.nit:11076 */
37424 fra.me.REG[6] = NEW_Array_array___Array___init();
37425 /* ./parser//parser.nit:11077 */
37426 fra.me.REG[7] = NEW_Array_array___Array___init();
37427 /* ./parser//parser.nit:11079 */
37428 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37429 if (UNTAG_Bool(REGB0)) {
37430 } else {
37431 nit_abort("Assert failed", NULL, LOCATE_parser, 11079);
37432 }
37433 /* ./parser//parser.nit:11081 */
37434 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
37435 if (UNTAG_Bool(REGB0)) {
37436 } else {
37437 nit_abort("Assert failed", NULL, LOCATE_parser, 11081);
37438 }
37439 /* ./parser//parser.nit:11083 */
37440 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37441 if (UNTAG_Bool(REGB0)) {
37442 } else {
37443 nit_abort("Assert failed", NULL, LOCATE_parser, 11083);
37444 }
37445 /* ./parser//parser.nit:11084 */
37446 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
37447 fra.me.REG[6] = fra.me.REG[3];
37448 /* ./parser//parser.nit:11085 */
37449 fra.me.REG[7] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], fra.me.REG[7]);
37450 /* ./parser//parser.nit:11091 */
37451 fra.me.REG[2] = fra.me.REG[7];
37452 /* ./parser//parser.nit:11092 */
37453 REGB0 = TAG_Bool(ATTR_parser___ReduceAction639____goto(fra.me.REG[0])!=NIT_NULL);
37454 if (UNTAG_Bool(REGB0)) {
37455 } else {
37456 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11092);
37457 }
37458 REGB0 = ATTR_parser___ReduceAction639____goto(fra.me.REG[0]);
37459 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37460 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37461 stack_frame_head = fra.me.prev;
37462 return;
37463 }
37464 void parser___ReduceAction639___init(val_t p0, val_t p1, int* init_table){
37465 int itpos355 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction639].i;
37466 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37467 val_t REGB0;
37468 val_t tmp;
37469 if (init_table[itpos355]) return;
37470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37471 fra.me.file = LOCATE_parser;
37472 fra.me.line = 11095;
37473 fra.me.meth = LOCATE_parser___ReduceAction639___init;
37474 fra.me.has_broke = 0;
37475 fra.me.REG_size = 2;
37476 fra.me.REG[0] = NIT_NULL;
37477 fra.me.REG[1] = NIT_NULL;
37478 fra.me.REG[0] = p0;
37479 REGB0 = p1;
37480 /* ./parser//parser.nit:11095 */
37481 fra.me.REG[1] = fra.me.REG[0];
37482 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37483 ATTR_parser___ReduceAction639____goto(fra.me.REG[1]) = REGB0;
37484 stack_frame_head = fra.me.prev;
37485 init_table[itpos355] = 1;
37486 return;
37487 }
37488 void parser___ReduceAction642___action(val_t p0, val_t p1){
37489 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
37490 val_t REGB0;
37491 val_t tmp;
37492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37493 fra.me.file = LOCATE_parser;
37494 fra.me.line = 11099;
37495 fra.me.meth = LOCATE_parser___ReduceAction642___action;
37496 fra.me.has_broke = 0;
37497 fra.me.REG_size = 7;
37498 fra.me.REG[0] = NIT_NULL;
37499 fra.me.REG[1] = NIT_NULL;
37500 fra.me.REG[2] = NIT_NULL;
37501 fra.me.REG[3] = NIT_NULL;
37502 fra.me.REG[4] = NIT_NULL;
37503 fra.me.REG[5] = NIT_NULL;
37504 fra.me.REG[6] = NIT_NULL;
37505 fra.me.REG[0] = p0;
37506 fra.me.REG[1] = p1;
37507 /* ./parser//parser.nit:11101 */
37508 fra.me.REG[2] = NIT_NULL;
37509 /* ./parser//parser.nit:11102 */
37510 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37511 /* ./parser//parser.nit:11103 */
37512 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37513 /* ./parser//parser.nit:11104 */
37514 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37515 /* ./parser//parser.nit:11105 */
37516 fra.me.REG[6] = NEW_Array_array___Array___init();
37517 /* ./parser//parser.nit:11107 */
37518 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37519 if (UNTAG_Bool(REGB0)) {
37520 } else {
37521 nit_abort("Assert failed", NULL, LOCATE_parser, 11107);
37522 }
37523 /* ./parser//parser.nit:11109 */
37524 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
37525 if (UNTAG_Bool(REGB0)) {
37526 } else {
37527 nit_abort("Assert failed", NULL, LOCATE_parser, 11109);
37528 }
37529 /* ./parser//parser.nit:11111 */
37530 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37531 if (UNTAG_Bool(REGB0)) {
37532 } else {
37533 nit_abort("Assert failed", NULL, LOCATE_parser, 11111);
37534 }
37535 /* ./parser//parser.nit:11112 */
37536 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
37537 fra.me.REG[6] = fra.me.REG[3];
37538 /* ./parser//parser.nit:11113 */
37539 fra.me.REG[6] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
37540 /* ./parser//parser.nit:11118 */
37541 fra.me.REG[2] = fra.me.REG[6];
37542 /* ./parser//parser.nit:11119 */
37543 REGB0 = TAG_Bool(ATTR_parser___ReduceAction642____goto(fra.me.REG[0])!=NIT_NULL);
37544 if (UNTAG_Bool(REGB0)) {
37545 } else {
37546 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11119);
37547 }
37548 REGB0 = ATTR_parser___ReduceAction642____goto(fra.me.REG[0]);
37549 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37550 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37551 stack_frame_head = fra.me.prev;
37552 return;
37553 }
37554 void parser___ReduceAction642___init(val_t p0, val_t p1, int* init_table){
37555 int itpos356 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction642].i;
37556 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37557 val_t REGB0;
37558 val_t tmp;
37559 if (init_table[itpos356]) return;
37560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37561 fra.me.file = LOCATE_parser;
37562 fra.me.line = 11122;
37563 fra.me.meth = LOCATE_parser___ReduceAction642___init;
37564 fra.me.has_broke = 0;
37565 fra.me.REG_size = 2;
37566 fra.me.REG[0] = NIT_NULL;
37567 fra.me.REG[1] = NIT_NULL;
37568 fra.me.REG[0] = p0;
37569 REGB0 = p1;
37570 /* ./parser//parser.nit:11122 */
37571 fra.me.REG[1] = fra.me.REG[0];
37572 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37573 ATTR_parser___ReduceAction642____goto(fra.me.REG[1]) = REGB0;
37574 stack_frame_head = fra.me.prev;
37575 init_table[itpos356] = 1;
37576 return;
37577 }
37578 void parser___ReduceAction655___action(val_t p0, val_t p1){
37579 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37580 val_t REGB0;
37581 val_t tmp;
37582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37583 fra.me.file = LOCATE_parser;
37584 fra.me.line = 11126;
37585 fra.me.meth = LOCATE_parser___ReduceAction655___action;
37586 fra.me.has_broke = 0;
37587 fra.me.REG_size = 4;
37588 fra.me.REG[0] = NIT_NULL;
37589 fra.me.REG[1] = NIT_NULL;
37590 fra.me.REG[2] = NIT_NULL;
37591 fra.me.REG[3] = NIT_NULL;
37592 fra.me.REG[0] = p0;
37593 fra.me.REG[1] = p1;
37594 /* ./parser//parser.nit:11128 */
37595 fra.me.REG[2] = NIT_NULL;
37596 /* ./parser//parser.nit:11129 */
37597 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37598 /* ./parser//parser.nit:11130 */
37599 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37600 /* ./parser//parser.nit:11131 */
37601 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37602 /* ./parser//parser.nit:11133 */
37603 fra.me.REG[2] = fra.me.REG[3];
37604 /* ./parser//parser.nit:11134 */
37605 REGB0 = TAG_Bool(ATTR_parser___ReduceAction655____goto(fra.me.REG[0])!=NIT_NULL);
37606 if (UNTAG_Bool(REGB0)) {
37607 } else {
37608 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11134);
37609 }
37610 REGB0 = ATTR_parser___ReduceAction655____goto(fra.me.REG[0]);
37611 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37612 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37613 stack_frame_head = fra.me.prev;
37614 return;
37615 }
37616 void parser___ReduceAction655___init(val_t p0, val_t p1, int* init_table){
37617 int itpos357 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction655].i;
37618 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37619 val_t REGB0;
37620 val_t tmp;
37621 if (init_table[itpos357]) return;
37622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37623 fra.me.file = LOCATE_parser;
37624 fra.me.line = 11137;
37625 fra.me.meth = LOCATE_parser___ReduceAction655___init;
37626 fra.me.has_broke = 0;
37627 fra.me.REG_size = 2;
37628 fra.me.REG[0] = NIT_NULL;
37629 fra.me.REG[1] = NIT_NULL;
37630 fra.me.REG[0] = p0;
37631 REGB0 = p1;
37632 /* ./parser//parser.nit:11137 */
37633 fra.me.REG[1] = fra.me.REG[0];
37634 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37635 ATTR_parser___ReduceAction655____goto(fra.me.REG[1]) = REGB0;
37636 stack_frame_head = fra.me.prev;
37637 init_table[itpos357] = 1;
37638 return;
37639 }
37640 void parser___ReduceAction656___action(val_t p0, val_t p1){
37641 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37642 val_t REGB0;
37643 val_t tmp;
37644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37645 fra.me.file = LOCATE_parser;
37646 fra.me.line = 11141;
37647 fra.me.meth = LOCATE_parser___ReduceAction656___action;
37648 fra.me.has_broke = 0;
37649 fra.me.REG_size = 4;
37650 fra.me.REG[0] = NIT_NULL;
37651 fra.me.REG[1] = NIT_NULL;
37652 fra.me.REG[2] = NIT_NULL;
37653 fra.me.REG[3] = NIT_NULL;
37654 fra.me.REG[0] = p0;
37655 fra.me.REG[1] = p1;
37656 /* ./parser//parser.nit:11143 */
37657 fra.me.REG[2] = NIT_NULL;
37658 /* ./parser//parser.nit:11144 */
37659 fra.me.REG[3] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
37660 /* ./parser//parser.nit:11146 */
37661 fra.me.REG[2] = fra.me.REG[3];
37662 /* ./parser//parser.nit:11147 */
37663 REGB0 = TAG_Bool(ATTR_parser___ReduceAction656____goto(fra.me.REG[0])!=NIT_NULL);
37664 if (UNTAG_Bool(REGB0)) {
37665 } else {
37666 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11147);
37667 }
37668 REGB0 = ATTR_parser___ReduceAction656____goto(fra.me.REG[0]);
37669 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37670 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37671 stack_frame_head = fra.me.prev;
37672 return;
37673 }
37674 void parser___ReduceAction656___init(val_t p0, val_t p1, int* init_table){
37675 int itpos358 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction656].i;
37676 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37677 val_t REGB0;
37678 val_t tmp;
37679 if (init_table[itpos358]) return;
37680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37681 fra.me.file = LOCATE_parser;
37682 fra.me.line = 11150;
37683 fra.me.meth = LOCATE_parser___ReduceAction656___init;
37684 fra.me.has_broke = 0;
37685 fra.me.REG_size = 2;
37686 fra.me.REG[0] = NIT_NULL;
37687 fra.me.REG[1] = NIT_NULL;
37688 fra.me.REG[0] = p0;
37689 REGB0 = p1;
37690 /* ./parser//parser.nit:11150 */
37691 fra.me.REG[1] = fra.me.REG[0];
37692 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37693 ATTR_parser___ReduceAction656____goto(fra.me.REG[1]) = REGB0;
37694 stack_frame_head = fra.me.prev;
37695 init_table[itpos358] = 1;
37696 return;
37697 }
37698 void parser___ReduceAction663___action(val_t p0, val_t p1){
37699 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37700 val_t REGB0;
37701 val_t REGB1;
37702 val_t tmp;
37703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37704 fra.me.file = LOCATE_parser;
37705 fra.me.line = 11154;
37706 fra.me.meth = LOCATE_parser___ReduceAction663___action;
37707 fra.me.has_broke = 0;
37708 fra.me.REG_size = 5;
37709 fra.me.REG[0] = NIT_NULL;
37710 fra.me.REG[1] = NIT_NULL;
37711 fra.me.REG[2] = NIT_NULL;
37712 fra.me.REG[3] = NIT_NULL;
37713 fra.me.REG[4] = NIT_NULL;
37714 fra.me.REG[0] = p0;
37715 fra.me.REG[1] = p1;
37716 /* ./parser//parser.nit:11156 */
37717 fra.me.REG[2] = NIT_NULL;
37718 /* ./parser//parser.nit:11157 */
37719 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37720 /* ./parser//parser.nit:11158 */
37721 fra.me.REG[4] = NEW_Array_array___Array___init();
37722 /* ./parser//parser.nit:11160 */
37723 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37724 if (UNTAG_Bool(REGB0)) {
37725 } else {
37726 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37727 if (UNTAG_Bool(REGB1)) {
37728 REGB1 = TAG_Bool(false);
37729 REGB0 = REGB1;
37730 } else {
37731 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37732 REGB0 = REGB1;
37733 }
37734 }
37735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37736 if (UNTAG_Bool(REGB0)) {
37737 /* ./parser//parser.nit:11161 */
37738 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
37739 }
37740 /* ./parser//parser.nit:11163 */
37741 fra.me.REG[2] = fra.me.REG[4];
37742 /* ./parser//parser.nit:11164 */
37743 REGB0 = TAG_Bool(ATTR_parser___ReduceAction663____goto(fra.me.REG[0])!=NIT_NULL);
37744 if (UNTAG_Bool(REGB0)) {
37745 } else {
37746 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11164);
37747 }
37748 REGB0 = ATTR_parser___ReduceAction663____goto(fra.me.REG[0]);
37749 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37750 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37751 stack_frame_head = fra.me.prev;
37752 return;
37753 }
37754 void parser___ReduceAction663___init(val_t p0, val_t p1, int* init_table){
37755 int itpos359 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction663].i;
37756 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37757 val_t REGB0;
37758 val_t tmp;
37759 if (init_table[itpos359]) return;
37760 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37761 fra.me.file = LOCATE_parser;
37762 fra.me.line = 11167;
37763 fra.me.meth = LOCATE_parser___ReduceAction663___init;
37764 fra.me.has_broke = 0;
37765 fra.me.REG_size = 2;
37766 fra.me.REG[0] = NIT_NULL;
37767 fra.me.REG[1] = NIT_NULL;
37768 fra.me.REG[0] = p0;
37769 REGB0 = p1;
37770 /* ./parser//parser.nit:11167 */
37771 fra.me.REG[1] = fra.me.REG[0];
37772 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37773 ATTR_parser___ReduceAction663____goto(fra.me.REG[1]) = REGB0;
37774 stack_frame_head = fra.me.prev;
37775 init_table[itpos359] = 1;
37776 return;
37777 }
37778 void parser___ReduceAction664___action(val_t p0, val_t p1){
37779 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37780 val_t REGB0;
37781 val_t REGB1;
37782 val_t tmp;
37783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37784 fra.me.file = LOCATE_parser;
37785 fra.me.line = 11171;
37786 fra.me.meth = LOCATE_parser___ReduceAction664___action;
37787 fra.me.has_broke = 0;
37788 fra.me.REG_size = 6;
37789 fra.me.REG[0] = NIT_NULL;
37790 fra.me.REG[1] = NIT_NULL;
37791 fra.me.REG[2] = NIT_NULL;
37792 fra.me.REG[3] = NIT_NULL;
37793 fra.me.REG[4] = NIT_NULL;
37794 fra.me.REG[5] = NIT_NULL;
37795 fra.me.REG[0] = p0;
37796 fra.me.REG[1] = p1;
37797 /* ./parser//parser.nit:11173 */
37798 fra.me.REG[2] = NIT_NULL;
37799 /* ./parser//parser.nit:11174 */
37800 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37801 /* ./parser//parser.nit:11175 */
37802 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37803 /* ./parser//parser.nit:11176 */
37804 fra.me.REG[5] = NEW_Array_array___Array___init();
37805 /* ./parser//parser.nit:11178 */
37806 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37807 if (UNTAG_Bool(REGB0)) {
37808 } else {
37809 nit_abort("Assert failed", NULL, LOCATE_parser, 11178);
37810 }
37811 /* ./parser//parser.nit:11180 */
37812 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
37813 fra.me.REG[5] = fra.me.REG[4];
37814 /* ./parser//parser.nit:11181 */
37815 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37816 if (UNTAG_Bool(REGB0)) {
37817 } else {
37818 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37819 if (UNTAG_Bool(REGB1)) {
37820 REGB1 = TAG_Bool(false);
37821 REGB0 = REGB1;
37822 } else {
37823 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37824 REGB0 = REGB1;
37825 }
37826 }
37827 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37828 if (UNTAG_Bool(REGB0)) {
37829 /* ./parser//parser.nit:11182 */
37830 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
37831 }
37832 /* ./parser//parser.nit:11184 */
37833 fra.me.REG[2] = fra.me.REG[5];
37834 /* ./parser//parser.nit:11185 */
37835 REGB0 = TAG_Bool(ATTR_parser___ReduceAction664____goto(fra.me.REG[0])!=NIT_NULL);
37836 if (UNTAG_Bool(REGB0)) {
37837 } else {
37838 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11185);
37839 }
37840 REGB0 = ATTR_parser___ReduceAction664____goto(fra.me.REG[0]);
37841 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37842 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37843 stack_frame_head = fra.me.prev;
37844 return;
37845 }
37846 void parser___ReduceAction664___init(val_t p0, val_t p1, int* init_table){
37847 int itpos360 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction664].i;
37848 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37849 val_t REGB0;
37850 val_t tmp;
37851 if (init_table[itpos360]) return;
37852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37853 fra.me.file = LOCATE_parser;
37854 fra.me.line = 11188;
37855 fra.me.meth = LOCATE_parser___ReduceAction664___init;
37856 fra.me.has_broke = 0;
37857 fra.me.REG_size = 2;
37858 fra.me.REG[0] = NIT_NULL;
37859 fra.me.REG[1] = NIT_NULL;
37860 fra.me.REG[0] = p0;
37861 REGB0 = p1;
37862 /* ./parser//parser.nit:11188 */
37863 fra.me.REG[1] = fra.me.REG[0];
37864 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37865 ATTR_parser___ReduceAction664____goto(fra.me.REG[1]) = REGB0;
37866 stack_frame_head = fra.me.prev;
37867 init_table[itpos360] = 1;
37868 return;
37869 }
37870 void parser___ReduceAction665___action(val_t p0, val_t p1){
37871 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37872 val_t REGB0;
37873 val_t REGB1;
37874 val_t tmp;
37875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37876 fra.me.file = LOCATE_parser;
37877 fra.me.line = 11192;
37878 fra.me.meth = LOCATE_parser___ReduceAction665___action;
37879 fra.me.has_broke = 0;
37880 fra.me.REG_size = 5;
37881 fra.me.REG[0] = NIT_NULL;
37882 fra.me.REG[1] = NIT_NULL;
37883 fra.me.REG[2] = NIT_NULL;
37884 fra.me.REG[3] = NIT_NULL;
37885 fra.me.REG[4] = NIT_NULL;
37886 fra.me.REG[0] = p0;
37887 fra.me.REG[1] = p1;
37888 /* ./parser//parser.nit:11194 */
37889 fra.me.REG[2] = NIT_NULL;
37890 /* ./parser//parser.nit:11195 */
37891 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37892 /* ./parser//parser.nit:11196 */
37893 fra.me.REG[4] = NEW_Array_array___Array___init();
37894 /* ./parser//parser.nit:11198 */
37895 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37896 if (UNTAG_Bool(REGB0)) {
37897 } else {
37898 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37899 if (UNTAG_Bool(REGB1)) {
37900 REGB1 = TAG_Bool(false);
37901 REGB0 = REGB1;
37902 } else {
37903 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37904 REGB0 = REGB1;
37905 }
37906 }
37907 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37908 if (UNTAG_Bool(REGB0)) {
37909 /* ./parser//parser.nit:11199 */
37910 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
37911 }
37912 /* ./parser//parser.nit:11201 */
37913 fra.me.REG[2] = fra.me.REG[4];
37914 /* ./parser//parser.nit:11202 */
37915 REGB0 = TAG_Bool(ATTR_parser___ReduceAction665____goto(fra.me.REG[0])!=NIT_NULL);
37916 if (UNTAG_Bool(REGB0)) {
37917 } else {
37918 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11202);
37919 }
37920 REGB0 = ATTR_parser___ReduceAction665____goto(fra.me.REG[0]);
37921 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37922 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37923 stack_frame_head = fra.me.prev;
37924 return;
37925 }
37926 void parser___ReduceAction665___init(val_t p0, val_t p1, int* init_table){
37927 int itpos361 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction665].i;
37928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37929 val_t REGB0;
37930 val_t tmp;
37931 if (init_table[itpos361]) return;
37932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37933 fra.me.file = LOCATE_parser;
37934 fra.me.line = 11205;
37935 fra.me.meth = LOCATE_parser___ReduceAction665___init;
37936 fra.me.has_broke = 0;
37937 fra.me.REG_size = 2;
37938 fra.me.REG[0] = NIT_NULL;
37939 fra.me.REG[1] = NIT_NULL;
37940 fra.me.REG[0] = p0;
37941 REGB0 = p1;
37942 /* ./parser//parser.nit:11205 */
37943 fra.me.REG[1] = fra.me.REG[0];
37944 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37945 ATTR_parser___ReduceAction665____goto(fra.me.REG[1]) = REGB0;
37946 stack_frame_head = fra.me.prev;
37947 init_table[itpos361] = 1;
37948 return;
37949 }
37950 void parser___ReduceAction666___action(val_t p0, val_t p1){
37951 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37952 val_t REGB0;
37953 val_t REGB1;
37954 val_t tmp;
37955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37956 fra.me.file = LOCATE_parser;
37957 fra.me.line = 11209;
37958 fra.me.meth = LOCATE_parser___ReduceAction666___action;
37959 fra.me.has_broke = 0;
37960 fra.me.REG_size = 6;
37961 fra.me.REG[0] = NIT_NULL;
37962 fra.me.REG[1] = NIT_NULL;
37963 fra.me.REG[2] = NIT_NULL;
37964 fra.me.REG[3] = NIT_NULL;
37965 fra.me.REG[4] = NIT_NULL;
37966 fra.me.REG[5] = NIT_NULL;
37967 fra.me.REG[0] = p0;
37968 fra.me.REG[1] = p1;
37969 /* ./parser//parser.nit:11211 */
37970 fra.me.REG[2] = NIT_NULL;
37971 /* ./parser//parser.nit:11212 */
37972 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37973 /* ./parser//parser.nit:11213 */
37974 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37975 /* ./parser//parser.nit:11214 */
37976 fra.me.REG[5] = NEW_Array_array___Array___init();
37977 /* ./parser//parser.nit:11216 */
37978 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37979 if (UNTAG_Bool(REGB0)) {
37980 } else {
37981 nit_abort("Assert failed", NULL, LOCATE_parser, 11216);
37982 }
37983 /* ./parser//parser.nit:11218 */
37984 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
37985 fra.me.REG[5] = fra.me.REG[4];
37986 /* ./parser//parser.nit:11219 */
37987 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37988 if (UNTAG_Bool(REGB0)) {
37989 } else {
37990 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37991 if (UNTAG_Bool(REGB1)) {
37992 REGB1 = TAG_Bool(false);
37993 REGB0 = REGB1;
37994 } else {
37995 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37996 REGB0 = REGB1;
37997 }
37998 }
37999 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38000 if (UNTAG_Bool(REGB0)) {
38001 /* ./parser//parser.nit:11220 */
38002 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38003 }
38004 /* ./parser//parser.nit:11222 */
38005 fra.me.REG[2] = fra.me.REG[5];
38006 /* ./parser//parser.nit:11223 */
38007 REGB0 = TAG_Bool(ATTR_parser___ReduceAction666____goto(fra.me.REG[0])!=NIT_NULL);
38008 if (UNTAG_Bool(REGB0)) {
38009 } else {
38010 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11223);
38011 }
38012 REGB0 = ATTR_parser___ReduceAction666____goto(fra.me.REG[0]);
38013 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38014 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38015 stack_frame_head = fra.me.prev;
38016 return;
38017 }
38018 void parser___ReduceAction666___init(val_t p0, val_t p1, int* init_table){
38019 int itpos362 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction666].i;
38020 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38021 val_t REGB0;
38022 val_t tmp;
38023 if (init_table[itpos362]) return;
38024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38025 fra.me.file = LOCATE_parser;
38026 fra.me.line = 11226;
38027 fra.me.meth = LOCATE_parser___ReduceAction666___init;
38028 fra.me.has_broke = 0;
38029 fra.me.REG_size = 2;
38030 fra.me.REG[0] = NIT_NULL;
38031 fra.me.REG[1] = NIT_NULL;
38032 fra.me.REG[0] = p0;
38033 REGB0 = p1;
38034 /* ./parser//parser.nit:11226 */
38035 fra.me.REG[1] = fra.me.REG[0];
38036 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38037 ATTR_parser___ReduceAction666____goto(fra.me.REG[1]) = REGB0;
38038 stack_frame_head = fra.me.prev;
38039 init_table[itpos362] = 1;
38040 return;
38041 }
38042 void parser___ReduceAction667___action(val_t p0, val_t p1){
38043 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38044 val_t REGB0;
38045 val_t REGB1;
38046 val_t tmp;
38047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38048 fra.me.file = LOCATE_parser;
38049 fra.me.line = 11230;
38050 fra.me.meth = LOCATE_parser___ReduceAction667___action;
38051 fra.me.has_broke = 0;
38052 fra.me.REG_size = 5;
38053 fra.me.REG[0] = NIT_NULL;
38054 fra.me.REG[1] = NIT_NULL;
38055 fra.me.REG[2] = NIT_NULL;
38056 fra.me.REG[3] = NIT_NULL;
38057 fra.me.REG[4] = NIT_NULL;
38058 fra.me.REG[0] = p0;
38059 fra.me.REG[1] = p1;
38060 /* ./parser//parser.nit:11232 */
38061 fra.me.REG[2] = NIT_NULL;
38062 /* ./parser//parser.nit:11233 */
38063 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38064 /* ./parser//parser.nit:11234 */
38065 fra.me.REG[4] = NEW_Array_array___Array___init();
38066 /* ./parser//parser.nit:11236 */
38067 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38068 if (UNTAG_Bool(REGB0)) {
38069 } else {
38070 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38071 if (UNTAG_Bool(REGB1)) {
38072 REGB1 = TAG_Bool(false);
38073 REGB0 = REGB1;
38074 } else {
38075 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38076 REGB0 = REGB1;
38077 }
38078 }
38079 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38080 if (UNTAG_Bool(REGB0)) {
38081 /* ./parser//parser.nit:11237 */
38082 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38083 }
38084 /* ./parser//parser.nit:11239 */
38085 fra.me.REG[2] = fra.me.REG[4];
38086 /* ./parser//parser.nit:11240 */
38087 REGB0 = TAG_Bool(ATTR_parser___ReduceAction667____goto(fra.me.REG[0])!=NIT_NULL);
38088 if (UNTAG_Bool(REGB0)) {
38089 } else {
38090 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11240);
38091 }
38092 REGB0 = ATTR_parser___ReduceAction667____goto(fra.me.REG[0]);
38093 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38094 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38095 stack_frame_head = fra.me.prev;
38096 return;
38097 }
38098 void parser___ReduceAction667___init(val_t p0, val_t p1, int* init_table){
38099 int itpos363 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction667].i;
38100 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38101 val_t REGB0;
38102 val_t tmp;
38103 if (init_table[itpos363]) return;
38104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38105 fra.me.file = LOCATE_parser;
38106 fra.me.line = 11243;
38107 fra.me.meth = LOCATE_parser___ReduceAction667___init;
38108 fra.me.has_broke = 0;
38109 fra.me.REG_size = 2;
38110 fra.me.REG[0] = NIT_NULL;
38111 fra.me.REG[1] = NIT_NULL;
38112 fra.me.REG[0] = p0;
38113 REGB0 = p1;
38114 /* ./parser//parser.nit:11243 */
38115 fra.me.REG[1] = fra.me.REG[0];
38116 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38117 ATTR_parser___ReduceAction667____goto(fra.me.REG[1]) = REGB0;
38118 stack_frame_head = fra.me.prev;
38119 init_table[itpos363] = 1;
38120 return;
38121 }
38122 void parser___ReduceAction668___action(val_t p0, val_t p1){
38123 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38124 val_t REGB0;
38125 val_t REGB1;
38126 val_t tmp;
38127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38128 fra.me.file = LOCATE_parser;
38129 fra.me.line = 11247;
38130 fra.me.meth = LOCATE_parser___ReduceAction668___action;
38131 fra.me.has_broke = 0;
38132 fra.me.REG_size = 6;
38133 fra.me.REG[0] = NIT_NULL;
38134 fra.me.REG[1] = NIT_NULL;
38135 fra.me.REG[2] = NIT_NULL;
38136 fra.me.REG[3] = NIT_NULL;
38137 fra.me.REG[4] = NIT_NULL;
38138 fra.me.REG[5] = NIT_NULL;
38139 fra.me.REG[0] = p0;
38140 fra.me.REG[1] = p1;
38141 /* ./parser//parser.nit:11249 */
38142 fra.me.REG[2] = NIT_NULL;
38143 /* ./parser//parser.nit:11250 */
38144 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38145 /* ./parser//parser.nit:11251 */
38146 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38147 /* ./parser//parser.nit:11252 */
38148 fra.me.REG[5] = NEW_Array_array___Array___init();
38149 /* ./parser//parser.nit:11254 */
38150 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38151 if (UNTAG_Bool(REGB0)) {
38152 } else {
38153 nit_abort("Assert failed", NULL, LOCATE_parser, 11254);
38154 }
38155 /* ./parser//parser.nit:11256 */
38156 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38157 fra.me.REG[5] = fra.me.REG[4];
38158 /* ./parser//parser.nit:11257 */
38159 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38160 if (UNTAG_Bool(REGB0)) {
38161 } else {
38162 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38163 if (UNTAG_Bool(REGB1)) {
38164 REGB1 = TAG_Bool(false);
38165 REGB0 = REGB1;
38166 } else {
38167 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38168 REGB0 = REGB1;
38169 }
38170 }
38171 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38172 if (UNTAG_Bool(REGB0)) {
38173 /* ./parser//parser.nit:11258 */
38174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38175 }
38176 /* ./parser//parser.nit:11260 */
38177 fra.me.REG[2] = fra.me.REG[5];
38178 /* ./parser//parser.nit:11261 */
38179 REGB0 = TAG_Bool(ATTR_parser___ReduceAction668____goto(fra.me.REG[0])!=NIT_NULL);
38180 if (UNTAG_Bool(REGB0)) {
38181 } else {
38182 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11261);
38183 }
38184 REGB0 = ATTR_parser___ReduceAction668____goto(fra.me.REG[0]);
38185 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38186 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38187 stack_frame_head = fra.me.prev;
38188 return;
38189 }
38190 void parser___ReduceAction668___init(val_t p0, val_t p1, int* init_table){
38191 int itpos364 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction668].i;
38192 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38193 val_t REGB0;
38194 val_t tmp;
38195 if (init_table[itpos364]) return;
38196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38197 fra.me.file = LOCATE_parser;
38198 fra.me.line = 11264;
38199 fra.me.meth = LOCATE_parser___ReduceAction668___init;
38200 fra.me.has_broke = 0;
38201 fra.me.REG_size = 2;
38202 fra.me.REG[0] = NIT_NULL;
38203 fra.me.REG[1] = NIT_NULL;
38204 fra.me.REG[0] = p0;
38205 REGB0 = p1;
38206 /* ./parser//parser.nit:11264 */
38207 fra.me.REG[1] = fra.me.REG[0];
38208 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38209 ATTR_parser___ReduceAction668____goto(fra.me.REG[1]) = REGB0;
38210 stack_frame_head = fra.me.prev;
38211 init_table[itpos364] = 1;
38212 return;
38213 }
38214 void parser___ReduceAction669___action(val_t p0, val_t p1){
38215 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38216 val_t REGB0;
38217 val_t REGB1;
38218 val_t tmp;
38219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38220 fra.me.file = LOCATE_parser;
38221 fra.me.line = 11268;
38222 fra.me.meth = LOCATE_parser___ReduceAction669___action;
38223 fra.me.has_broke = 0;
38224 fra.me.REG_size = 5;
38225 fra.me.REG[0] = NIT_NULL;
38226 fra.me.REG[1] = NIT_NULL;
38227 fra.me.REG[2] = NIT_NULL;
38228 fra.me.REG[3] = NIT_NULL;
38229 fra.me.REG[4] = NIT_NULL;
38230 fra.me.REG[0] = p0;
38231 fra.me.REG[1] = p1;
38232 /* ./parser//parser.nit:11270 */
38233 fra.me.REG[2] = NIT_NULL;
38234 /* ./parser//parser.nit:11271 */
38235 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38236 /* ./parser//parser.nit:11272 */
38237 fra.me.REG[4] = NEW_Array_array___Array___init();
38238 /* ./parser//parser.nit:11274 */
38239 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38240 if (UNTAG_Bool(REGB0)) {
38241 } else {
38242 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38243 if (UNTAG_Bool(REGB1)) {
38244 REGB1 = TAG_Bool(false);
38245 REGB0 = REGB1;
38246 } else {
38247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38248 REGB0 = REGB1;
38249 }
38250 }
38251 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38252 if (UNTAG_Bool(REGB0)) {
38253 /* ./parser//parser.nit:11275 */
38254 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38255 }
38256 /* ./parser//parser.nit:11277 */
38257 fra.me.REG[2] = fra.me.REG[4];
38258 /* ./parser//parser.nit:11278 */
38259 REGB0 = TAG_Bool(ATTR_parser___ReduceAction669____goto(fra.me.REG[0])!=NIT_NULL);
38260 if (UNTAG_Bool(REGB0)) {
38261 } else {
38262 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11278);
38263 }
38264 REGB0 = ATTR_parser___ReduceAction669____goto(fra.me.REG[0]);
38265 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38266 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38267 stack_frame_head = fra.me.prev;
38268 return;
38269 }
38270 void parser___ReduceAction669___init(val_t p0, val_t p1, int* init_table){
38271 int itpos365 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction669].i;
38272 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38273 val_t REGB0;
38274 val_t tmp;
38275 if (init_table[itpos365]) return;
38276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38277 fra.me.file = LOCATE_parser;
38278 fra.me.line = 11281;
38279 fra.me.meth = LOCATE_parser___ReduceAction669___init;
38280 fra.me.has_broke = 0;
38281 fra.me.REG_size = 2;
38282 fra.me.REG[0] = NIT_NULL;
38283 fra.me.REG[1] = NIT_NULL;
38284 fra.me.REG[0] = p0;
38285 REGB0 = p1;
38286 /* ./parser//parser.nit:11281 */
38287 fra.me.REG[1] = fra.me.REG[0];
38288 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38289 ATTR_parser___ReduceAction669____goto(fra.me.REG[1]) = REGB0;
38290 stack_frame_head = fra.me.prev;
38291 init_table[itpos365] = 1;
38292 return;
38293 }
38294 void parser___ReduceAction670___action(val_t p0, val_t p1){
38295 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38296 val_t REGB0;
38297 val_t REGB1;
38298 val_t tmp;
38299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38300 fra.me.file = LOCATE_parser;
38301 fra.me.line = 11285;
38302 fra.me.meth = LOCATE_parser___ReduceAction670___action;
38303 fra.me.has_broke = 0;
38304 fra.me.REG_size = 6;
38305 fra.me.REG[0] = NIT_NULL;
38306 fra.me.REG[1] = NIT_NULL;
38307 fra.me.REG[2] = NIT_NULL;
38308 fra.me.REG[3] = NIT_NULL;
38309 fra.me.REG[4] = NIT_NULL;
38310 fra.me.REG[5] = NIT_NULL;
38311 fra.me.REG[0] = p0;
38312 fra.me.REG[1] = p1;
38313 /* ./parser//parser.nit:11287 */
38314 fra.me.REG[2] = NIT_NULL;
38315 /* ./parser//parser.nit:11288 */
38316 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38317 /* ./parser//parser.nit:11289 */
38318 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38319 /* ./parser//parser.nit:11290 */
38320 fra.me.REG[5] = NEW_Array_array___Array___init();
38321 /* ./parser//parser.nit:11292 */
38322 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38323 if (UNTAG_Bool(REGB0)) {
38324 } else {
38325 nit_abort("Assert failed", NULL, LOCATE_parser, 11292);
38326 }
38327 /* ./parser//parser.nit:11294 */
38328 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38329 fra.me.REG[5] = fra.me.REG[4];
38330 /* ./parser//parser.nit:11295 */
38331 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38332 if (UNTAG_Bool(REGB0)) {
38333 } else {
38334 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38335 if (UNTAG_Bool(REGB1)) {
38336 REGB1 = TAG_Bool(false);
38337 REGB0 = REGB1;
38338 } else {
38339 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38340 REGB0 = REGB1;
38341 }
38342 }
38343 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38344 if (UNTAG_Bool(REGB0)) {
38345 /* ./parser//parser.nit:11296 */
38346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38347 }
38348 /* ./parser//parser.nit:11298 */
38349 fra.me.REG[2] = fra.me.REG[5];
38350 /* ./parser//parser.nit:11299 */
38351 REGB0 = TAG_Bool(ATTR_parser___ReduceAction670____goto(fra.me.REG[0])!=NIT_NULL);
38352 if (UNTAG_Bool(REGB0)) {
38353 } else {
38354 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11299);
38355 }
38356 REGB0 = ATTR_parser___ReduceAction670____goto(fra.me.REG[0]);
38357 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38358 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38359 stack_frame_head = fra.me.prev;
38360 return;
38361 }
38362 void parser___ReduceAction670___init(val_t p0, val_t p1, int* init_table){
38363 int itpos366 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction670].i;
38364 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38365 val_t REGB0;
38366 val_t tmp;
38367 if (init_table[itpos366]) return;
38368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38369 fra.me.file = LOCATE_parser;
38370 fra.me.line = 11302;
38371 fra.me.meth = LOCATE_parser___ReduceAction670___init;
38372 fra.me.has_broke = 0;
38373 fra.me.REG_size = 2;
38374 fra.me.REG[0] = NIT_NULL;
38375 fra.me.REG[1] = NIT_NULL;
38376 fra.me.REG[0] = p0;
38377 REGB0 = p1;
38378 /* ./parser//parser.nit:11302 */
38379 fra.me.REG[1] = fra.me.REG[0];
38380 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38381 ATTR_parser___ReduceAction670____goto(fra.me.REG[1]) = REGB0;
38382 stack_frame_head = fra.me.prev;
38383 init_table[itpos366] = 1;
38384 return;
38385 }
38386 void parser___ReduceAction673___action(val_t p0, val_t p1){
38387 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38388 val_t REGB0;
38389 val_t REGB1;
38390 val_t tmp;
38391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38392 fra.me.file = LOCATE_parser;
38393 fra.me.line = 11306;
38394 fra.me.meth = LOCATE_parser___ReduceAction673___action;
38395 fra.me.has_broke = 0;
38396 fra.me.REG_size = 5;
38397 fra.me.REG[0] = NIT_NULL;
38398 fra.me.REG[1] = NIT_NULL;
38399 fra.me.REG[2] = NIT_NULL;
38400 fra.me.REG[3] = NIT_NULL;
38401 fra.me.REG[4] = NIT_NULL;
38402 fra.me.REG[0] = p0;
38403 fra.me.REG[1] = p1;
38404 /* ./parser//parser.nit:11308 */
38405 fra.me.REG[2] = NIT_NULL;
38406 /* ./parser//parser.nit:11309 */
38407 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38408 /* ./parser//parser.nit:11310 */
38409 fra.me.REG[4] = NEW_Array_array___Array___init();
38410 /* ./parser//parser.nit:11312 */
38411 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38412 if (UNTAG_Bool(REGB0)) {
38413 } else {
38414 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38415 if (UNTAG_Bool(REGB1)) {
38416 REGB1 = TAG_Bool(false);
38417 REGB0 = REGB1;
38418 } else {
38419 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38420 REGB0 = REGB1;
38421 }
38422 }
38423 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38424 if (UNTAG_Bool(REGB0)) {
38425 /* ./parser//parser.nit:11313 */
38426 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38427 }
38428 /* ./parser//parser.nit:11315 */
38429 fra.me.REG[2] = fra.me.REG[4];
38430 /* ./parser//parser.nit:11316 */
38431 REGB0 = TAG_Bool(ATTR_parser___ReduceAction673____goto(fra.me.REG[0])!=NIT_NULL);
38432 if (UNTAG_Bool(REGB0)) {
38433 } else {
38434 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11316);
38435 }
38436 REGB0 = ATTR_parser___ReduceAction673____goto(fra.me.REG[0]);
38437 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38438 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38439 stack_frame_head = fra.me.prev;
38440 return;
38441 }
38442 void parser___ReduceAction673___init(val_t p0, val_t p1, int* init_table){
38443 int itpos367 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction673].i;
38444 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38445 val_t REGB0;
38446 val_t tmp;
38447 if (init_table[itpos367]) return;
38448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38449 fra.me.file = LOCATE_parser;
38450 fra.me.line = 11319;
38451 fra.me.meth = LOCATE_parser___ReduceAction673___init;
38452 fra.me.has_broke = 0;
38453 fra.me.REG_size = 2;
38454 fra.me.REG[0] = NIT_NULL;
38455 fra.me.REG[1] = NIT_NULL;
38456 fra.me.REG[0] = p0;
38457 REGB0 = p1;
38458 /* ./parser//parser.nit:11319 */
38459 fra.me.REG[1] = fra.me.REG[0];
38460 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38461 ATTR_parser___ReduceAction673____goto(fra.me.REG[1]) = REGB0;
38462 stack_frame_head = fra.me.prev;
38463 init_table[itpos367] = 1;
38464 return;
38465 }
38466 void parser___ReduceAction674___action(val_t p0, val_t p1){
38467 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38468 val_t REGB0;
38469 val_t REGB1;
38470 val_t tmp;
38471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38472 fra.me.file = LOCATE_parser;
38473 fra.me.line = 11323;
38474 fra.me.meth = LOCATE_parser___ReduceAction674___action;
38475 fra.me.has_broke = 0;
38476 fra.me.REG_size = 6;
38477 fra.me.REG[0] = NIT_NULL;
38478 fra.me.REG[1] = NIT_NULL;
38479 fra.me.REG[2] = NIT_NULL;
38480 fra.me.REG[3] = NIT_NULL;
38481 fra.me.REG[4] = NIT_NULL;
38482 fra.me.REG[5] = NIT_NULL;
38483 fra.me.REG[0] = p0;
38484 fra.me.REG[1] = p1;
38485 /* ./parser//parser.nit:11325 */
38486 fra.me.REG[2] = NIT_NULL;
38487 /* ./parser//parser.nit:11326 */
38488 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38489 /* ./parser//parser.nit:11327 */
38490 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38491 /* ./parser//parser.nit:11328 */
38492 fra.me.REG[5] = NEW_Array_array___Array___init();
38493 /* ./parser//parser.nit:11330 */
38494 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38495 if (UNTAG_Bool(REGB0)) {
38496 } else {
38497 nit_abort("Assert failed", NULL, LOCATE_parser, 11330);
38498 }
38499 /* ./parser//parser.nit:11332 */
38500 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38501 fra.me.REG[5] = fra.me.REG[4];
38502 /* ./parser//parser.nit:11333 */
38503 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38504 if (UNTAG_Bool(REGB0)) {
38505 } else {
38506 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38507 if (UNTAG_Bool(REGB1)) {
38508 REGB1 = TAG_Bool(false);
38509 REGB0 = REGB1;
38510 } else {
38511 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38512 REGB0 = REGB1;
38513 }
38514 }
38515 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38516 if (UNTAG_Bool(REGB0)) {
38517 /* ./parser//parser.nit:11334 */
38518 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38519 }
38520 /* ./parser//parser.nit:11336 */
38521 fra.me.REG[2] = fra.me.REG[5];
38522 /* ./parser//parser.nit:11337 */
38523 REGB0 = TAG_Bool(ATTR_parser___ReduceAction674____goto(fra.me.REG[0])!=NIT_NULL);
38524 if (UNTAG_Bool(REGB0)) {
38525 } else {
38526 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11337);
38527 }
38528 REGB0 = ATTR_parser___ReduceAction674____goto(fra.me.REG[0]);
38529 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38530 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38531 stack_frame_head = fra.me.prev;
38532 return;
38533 }
38534 void parser___ReduceAction674___init(val_t p0, val_t p1, int* init_table){
38535 int itpos368 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction674].i;
38536 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38537 val_t REGB0;
38538 val_t tmp;
38539 if (init_table[itpos368]) return;
38540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38541 fra.me.file = LOCATE_parser;
38542 fra.me.line = 11340;
38543 fra.me.meth = LOCATE_parser___ReduceAction674___init;
38544 fra.me.has_broke = 0;
38545 fra.me.REG_size = 2;
38546 fra.me.REG[0] = NIT_NULL;
38547 fra.me.REG[1] = NIT_NULL;
38548 fra.me.REG[0] = p0;
38549 REGB0 = p1;
38550 /* ./parser//parser.nit:11340 */
38551 fra.me.REG[1] = fra.me.REG[0];
38552 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38553 ATTR_parser___ReduceAction674____goto(fra.me.REG[1]) = REGB0;
38554 stack_frame_head = fra.me.prev;
38555 init_table[itpos368] = 1;
38556 return;
38557 }
38558 void parser___ReduceAction675___action(val_t p0, val_t p1){
38559 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38560 val_t REGB0;
38561 val_t REGB1;
38562 val_t tmp;
38563 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38564 fra.me.file = LOCATE_parser;
38565 fra.me.line = 11344;
38566 fra.me.meth = LOCATE_parser___ReduceAction675___action;
38567 fra.me.has_broke = 0;
38568 fra.me.REG_size = 5;
38569 fra.me.REG[0] = NIT_NULL;
38570 fra.me.REG[1] = NIT_NULL;
38571 fra.me.REG[2] = NIT_NULL;
38572 fra.me.REG[3] = NIT_NULL;
38573 fra.me.REG[4] = NIT_NULL;
38574 fra.me.REG[0] = p0;
38575 fra.me.REG[1] = p1;
38576 /* ./parser//parser.nit:11346 */
38577 fra.me.REG[2] = NIT_NULL;
38578 /* ./parser//parser.nit:11347 */
38579 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38580 /* ./parser//parser.nit:11348 */
38581 fra.me.REG[4] = NEW_Array_array___Array___init();
38582 /* ./parser//parser.nit:11350 */
38583 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38584 if (UNTAG_Bool(REGB0)) {
38585 } else {
38586 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38587 if (UNTAG_Bool(REGB1)) {
38588 REGB1 = TAG_Bool(false);
38589 REGB0 = REGB1;
38590 } else {
38591 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38592 REGB0 = REGB1;
38593 }
38594 }
38595 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38596 if (UNTAG_Bool(REGB0)) {
38597 /* ./parser//parser.nit:11351 */
38598 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38599 }
38600 /* ./parser//parser.nit:11353 */
38601 fra.me.REG[2] = fra.me.REG[4];
38602 /* ./parser//parser.nit:11354 */
38603 REGB0 = TAG_Bool(ATTR_parser___ReduceAction675____goto(fra.me.REG[0])!=NIT_NULL);
38604 if (UNTAG_Bool(REGB0)) {
38605 } else {
38606 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11354);
38607 }
38608 REGB0 = ATTR_parser___ReduceAction675____goto(fra.me.REG[0]);
38609 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38610 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38611 stack_frame_head = fra.me.prev;
38612 return;
38613 }
38614 void parser___ReduceAction675___init(val_t p0, val_t p1, int* init_table){
38615 int itpos369 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction675].i;
38616 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38617 val_t REGB0;
38618 val_t tmp;
38619 if (init_table[itpos369]) return;
38620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38621 fra.me.file = LOCATE_parser;
38622 fra.me.line = 11357;
38623 fra.me.meth = LOCATE_parser___ReduceAction675___init;
38624 fra.me.has_broke = 0;
38625 fra.me.REG_size = 2;
38626 fra.me.REG[0] = NIT_NULL;
38627 fra.me.REG[1] = NIT_NULL;
38628 fra.me.REG[0] = p0;
38629 REGB0 = p1;
38630 /* ./parser//parser.nit:11357 */
38631 fra.me.REG[1] = fra.me.REG[0];
38632 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38633 ATTR_parser___ReduceAction675____goto(fra.me.REG[1]) = REGB0;
38634 stack_frame_head = fra.me.prev;
38635 init_table[itpos369] = 1;
38636 return;
38637 }
38638 void parser___ReduceAction676___action(val_t p0, val_t p1){
38639 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38640 val_t REGB0;
38641 val_t REGB1;
38642 val_t tmp;
38643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38644 fra.me.file = LOCATE_parser;
38645 fra.me.line = 11361;
38646 fra.me.meth = LOCATE_parser___ReduceAction676___action;
38647 fra.me.has_broke = 0;
38648 fra.me.REG_size = 6;
38649 fra.me.REG[0] = NIT_NULL;
38650 fra.me.REG[1] = NIT_NULL;
38651 fra.me.REG[2] = NIT_NULL;
38652 fra.me.REG[3] = NIT_NULL;
38653 fra.me.REG[4] = NIT_NULL;
38654 fra.me.REG[5] = NIT_NULL;
38655 fra.me.REG[0] = p0;
38656 fra.me.REG[1] = p1;
38657 /* ./parser//parser.nit:11363 */
38658 fra.me.REG[2] = NIT_NULL;
38659 /* ./parser//parser.nit:11364 */
38660 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38661 /* ./parser//parser.nit:11365 */
38662 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38663 /* ./parser//parser.nit:11366 */
38664 fra.me.REG[5] = NEW_Array_array___Array___init();
38665 /* ./parser//parser.nit:11368 */
38666 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38667 if (UNTAG_Bool(REGB0)) {
38668 } else {
38669 nit_abort("Assert failed", NULL, LOCATE_parser, 11368);
38670 }
38671 /* ./parser//parser.nit:11370 */
38672 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38673 fra.me.REG[5] = fra.me.REG[4];
38674 /* ./parser//parser.nit:11371 */
38675 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38676 if (UNTAG_Bool(REGB0)) {
38677 } else {
38678 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38679 if (UNTAG_Bool(REGB1)) {
38680 REGB1 = TAG_Bool(false);
38681 REGB0 = REGB1;
38682 } else {
38683 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38684 REGB0 = REGB1;
38685 }
38686 }
38687 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38688 if (UNTAG_Bool(REGB0)) {
38689 /* ./parser//parser.nit:11372 */
38690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38691 }
38692 /* ./parser//parser.nit:11374 */
38693 fra.me.REG[2] = fra.me.REG[5];
38694 /* ./parser//parser.nit:11375 */
38695 REGB0 = TAG_Bool(ATTR_parser___ReduceAction676____goto(fra.me.REG[0])!=NIT_NULL);
38696 if (UNTAG_Bool(REGB0)) {
38697 } else {
38698 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11375);
38699 }
38700 REGB0 = ATTR_parser___ReduceAction676____goto(fra.me.REG[0]);
38701 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38702 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38703 stack_frame_head = fra.me.prev;
38704 return;
38705 }
38706 void parser___ReduceAction676___init(val_t p0, val_t p1, int* init_table){
38707 int itpos370 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction676].i;
38708 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38709 val_t REGB0;
38710 val_t tmp;
38711 if (init_table[itpos370]) return;
38712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38713 fra.me.file = LOCATE_parser;
38714 fra.me.line = 11378;
38715 fra.me.meth = LOCATE_parser___ReduceAction676___init;
38716 fra.me.has_broke = 0;
38717 fra.me.REG_size = 2;
38718 fra.me.REG[0] = NIT_NULL;
38719 fra.me.REG[1] = NIT_NULL;
38720 fra.me.REG[0] = p0;
38721 REGB0 = p1;
38722 /* ./parser//parser.nit:11378 */
38723 fra.me.REG[1] = fra.me.REG[0];
38724 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38725 ATTR_parser___ReduceAction676____goto(fra.me.REG[1]) = REGB0;
38726 stack_frame_head = fra.me.prev;
38727 init_table[itpos370] = 1;
38728 return;
38729 }
38730 void parser___ReduceAction677___action(val_t p0, val_t p1){
38731 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38732 val_t REGB0;
38733 val_t REGB1;
38734 val_t tmp;
38735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38736 fra.me.file = LOCATE_parser;
38737 fra.me.line = 11382;
38738 fra.me.meth = LOCATE_parser___ReduceAction677___action;
38739 fra.me.has_broke = 0;
38740 fra.me.REG_size = 5;
38741 fra.me.REG[0] = NIT_NULL;
38742 fra.me.REG[1] = NIT_NULL;
38743 fra.me.REG[2] = NIT_NULL;
38744 fra.me.REG[3] = NIT_NULL;
38745 fra.me.REG[4] = NIT_NULL;
38746 fra.me.REG[0] = p0;
38747 fra.me.REG[1] = p1;
38748 /* ./parser//parser.nit:11384 */
38749 fra.me.REG[2] = NIT_NULL;
38750 /* ./parser//parser.nit:11385 */
38751 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38752 /* ./parser//parser.nit:11386 */
38753 fra.me.REG[4] = NEW_Array_array___Array___init();
38754 /* ./parser//parser.nit:11388 */
38755 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38756 if (UNTAG_Bool(REGB0)) {
38757 } else {
38758 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38759 if (UNTAG_Bool(REGB1)) {
38760 REGB1 = TAG_Bool(false);
38761 REGB0 = REGB1;
38762 } else {
38763 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38764 REGB0 = REGB1;
38765 }
38766 }
38767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38768 if (UNTAG_Bool(REGB0)) {
38769 /* ./parser//parser.nit:11389 */
38770 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38771 }
38772 /* ./parser//parser.nit:11391 */
38773 fra.me.REG[2] = fra.me.REG[4];
38774 /* ./parser//parser.nit:11392 */
38775 REGB0 = TAG_Bool(ATTR_parser___ReduceAction677____goto(fra.me.REG[0])!=NIT_NULL);
38776 if (UNTAG_Bool(REGB0)) {
38777 } else {
38778 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11392);
38779 }
38780 REGB0 = ATTR_parser___ReduceAction677____goto(fra.me.REG[0]);
38781 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38782 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38783 stack_frame_head = fra.me.prev;
38784 return;
38785 }
38786 void parser___ReduceAction677___init(val_t p0, val_t p1, int* init_table){
38787 int itpos371 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction677].i;
38788 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38789 val_t REGB0;
38790 val_t tmp;
38791 if (init_table[itpos371]) return;
38792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38793 fra.me.file = LOCATE_parser;
38794 fra.me.line = 11395;
38795 fra.me.meth = LOCATE_parser___ReduceAction677___init;
38796 fra.me.has_broke = 0;
38797 fra.me.REG_size = 2;
38798 fra.me.REG[0] = NIT_NULL;
38799 fra.me.REG[1] = NIT_NULL;
38800 fra.me.REG[0] = p0;
38801 REGB0 = p1;
38802 /* ./parser//parser.nit:11395 */
38803 fra.me.REG[1] = fra.me.REG[0];
38804 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38805 ATTR_parser___ReduceAction677____goto(fra.me.REG[1]) = REGB0;
38806 stack_frame_head = fra.me.prev;
38807 init_table[itpos371] = 1;
38808 return;
38809 }
38810 void parser___ReduceAction678___action(val_t p0, val_t p1){
38811 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38812 val_t REGB0;
38813 val_t REGB1;
38814 val_t tmp;
38815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38816 fra.me.file = LOCATE_parser;
38817 fra.me.line = 11399;
38818 fra.me.meth = LOCATE_parser___ReduceAction678___action;
38819 fra.me.has_broke = 0;
38820 fra.me.REG_size = 6;
38821 fra.me.REG[0] = NIT_NULL;
38822 fra.me.REG[1] = NIT_NULL;
38823 fra.me.REG[2] = NIT_NULL;
38824 fra.me.REG[3] = NIT_NULL;
38825 fra.me.REG[4] = NIT_NULL;
38826 fra.me.REG[5] = NIT_NULL;
38827 fra.me.REG[0] = p0;
38828 fra.me.REG[1] = p1;
38829 /* ./parser//parser.nit:11401 */
38830 fra.me.REG[2] = NIT_NULL;
38831 /* ./parser//parser.nit:11402 */
38832 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38833 /* ./parser//parser.nit:11403 */
38834 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38835 /* ./parser//parser.nit:11404 */
38836 fra.me.REG[5] = NEW_Array_array___Array___init();
38837 /* ./parser//parser.nit:11406 */
38838 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38839 if (UNTAG_Bool(REGB0)) {
38840 } else {
38841 nit_abort("Assert failed", NULL, LOCATE_parser, 11406);
38842 }
38843 /* ./parser//parser.nit:11408 */
38844 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38845 fra.me.REG[5] = fra.me.REG[4];
38846 /* ./parser//parser.nit:11409 */
38847 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38848 if (UNTAG_Bool(REGB0)) {
38849 } else {
38850 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38851 if (UNTAG_Bool(REGB1)) {
38852 REGB1 = TAG_Bool(false);
38853 REGB0 = REGB1;
38854 } else {
38855 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38856 REGB0 = REGB1;
38857 }
38858 }
38859 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38860 if (UNTAG_Bool(REGB0)) {
38861 /* ./parser//parser.nit:11410 */
38862 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38863 }
38864 /* ./parser//parser.nit:11412 */
38865 fra.me.REG[2] = fra.me.REG[5];
38866 /* ./parser//parser.nit:11413 */
38867 REGB0 = TAG_Bool(ATTR_parser___ReduceAction678____goto(fra.me.REG[0])!=NIT_NULL);
38868 if (UNTAG_Bool(REGB0)) {
38869 } else {
38870 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11413);
38871 }
38872 REGB0 = ATTR_parser___ReduceAction678____goto(fra.me.REG[0]);
38873 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38874 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38875 stack_frame_head = fra.me.prev;
38876 return;
38877 }
38878 void parser___ReduceAction678___init(val_t p0, val_t p1, int* init_table){
38879 int itpos372 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction678].i;
38880 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38881 val_t REGB0;
38882 val_t tmp;
38883 if (init_table[itpos372]) return;
38884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38885 fra.me.file = LOCATE_parser;
38886 fra.me.line = 11416;
38887 fra.me.meth = LOCATE_parser___ReduceAction678___init;
38888 fra.me.has_broke = 0;
38889 fra.me.REG_size = 2;
38890 fra.me.REG[0] = NIT_NULL;
38891 fra.me.REG[1] = NIT_NULL;
38892 fra.me.REG[0] = p0;
38893 REGB0 = p1;
38894 /* ./parser//parser.nit:11416 */
38895 fra.me.REG[1] = fra.me.REG[0];
38896 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38897 ATTR_parser___ReduceAction678____goto(fra.me.REG[1]) = REGB0;
38898 stack_frame_head = fra.me.prev;
38899 init_table[itpos372] = 1;
38900 return;
38901 }
38902 void parser___ReduceAction680___action(val_t p0, val_t p1){
38903 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38904 val_t REGB0;
38905 val_t REGB1;
38906 val_t tmp;
38907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38908 fra.me.file = LOCATE_parser;
38909 fra.me.line = 11420;
38910 fra.me.meth = LOCATE_parser___ReduceAction680___action;
38911 fra.me.has_broke = 0;
38912 fra.me.REG_size = 6;
38913 fra.me.REG[0] = NIT_NULL;
38914 fra.me.REG[1] = NIT_NULL;
38915 fra.me.REG[2] = NIT_NULL;
38916 fra.me.REG[3] = NIT_NULL;
38917 fra.me.REG[4] = NIT_NULL;
38918 fra.me.REG[5] = NIT_NULL;
38919 fra.me.REG[0] = p0;
38920 fra.me.REG[1] = p1;
38921 /* ./parser//parser.nit:11422 */
38922 fra.me.REG[2] = NIT_NULL;
38923 /* ./parser//parser.nit:11423 */
38924 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38925 /* ./parser//parser.nit:11424 */
38926 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38927 /* ./parser//parser.nit:11425 */
38928 fra.me.REG[5] = NEW_Array_array___Array___init();
38929 /* ./parser//parser.nit:11427 */
38930 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38931 if (UNTAG_Bool(REGB0)) {
38932 } else {
38933 nit_abort("Assert failed", NULL, LOCATE_parser, 11427);
38934 }
38935 /* ./parser//parser.nit:11429 */
38936 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38937 fra.me.REG[5] = fra.me.REG[4];
38938 /* ./parser//parser.nit:11430 */
38939 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38940 if (UNTAG_Bool(REGB0)) {
38941 } else {
38942 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38943 if (UNTAG_Bool(REGB1)) {
38944 REGB1 = TAG_Bool(false);
38945 REGB0 = REGB1;
38946 } else {
38947 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38948 REGB0 = REGB1;
38949 }
38950 }
38951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38952 if (UNTAG_Bool(REGB0)) {
38953 /* ./parser//parser.nit:11431 */
38954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38955 }
38956 /* ./parser//parser.nit:11433 */
38957 fra.me.REG[2] = fra.me.REG[5];
38958 /* ./parser//parser.nit:11434 */
38959 REGB0 = TAG_Bool(ATTR_parser___ReduceAction680____goto(fra.me.REG[0])!=NIT_NULL);
38960 if (UNTAG_Bool(REGB0)) {
38961 } else {
38962 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11434);
38963 }
38964 REGB0 = ATTR_parser___ReduceAction680____goto(fra.me.REG[0]);
38965 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38966 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38967 stack_frame_head = fra.me.prev;
38968 return;
38969 }
38970 void parser___ReduceAction680___init(val_t p0, val_t p1, int* init_table){
38971 int itpos373 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction680].i;
38972 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38973 val_t REGB0;
38974 val_t tmp;
38975 if (init_table[itpos373]) return;
38976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38977 fra.me.file = LOCATE_parser;
38978 fra.me.line = 11437;
38979 fra.me.meth = LOCATE_parser___ReduceAction680___init;
38980 fra.me.has_broke = 0;
38981 fra.me.REG_size = 2;
38982 fra.me.REG[0] = NIT_NULL;
38983 fra.me.REG[1] = NIT_NULL;
38984 fra.me.REG[0] = p0;
38985 REGB0 = p1;
38986 /* ./parser//parser.nit:11437 */
38987 fra.me.REG[1] = fra.me.REG[0];
38988 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38989 ATTR_parser___ReduceAction680____goto(fra.me.REG[1]) = REGB0;
38990 stack_frame_head = fra.me.prev;
38991 init_table[itpos373] = 1;
38992 return;
38993 }
38994 void parser___ReduceAction682___action(val_t p0, val_t p1){
38995 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38996 val_t REGB0;
38997 val_t REGB1;
38998 val_t tmp;
38999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39000 fra.me.file = LOCATE_parser;
39001 fra.me.line = 11441;
39002 fra.me.meth = LOCATE_parser___ReduceAction682___action;
39003 fra.me.has_broke = 0;
39004 fra.me.REG_size = 6;
39005 fra.me.REG[0] = NIT_NULL;
39006 fra.me.REG[1] = NIT_NULL;
39007 fra.me.REG[2] = NIT_NULL;
39008 fra.me.REG[3] = NIT_NULL;
39009 fra.me.REG[4] = NIT_NULL;
39010 fra.me.REG[5] = NIT_NULL;
39011 fra.me.REG[0] = p0;
39012 fra.me.REG[1] = p1;
39013 /* ./parser//parser.nit:11443 */
39014 fra.me.REG[2] = NIT_NULL;
39015 /* ./parser//parser.nit:11444 */
39016 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39017 /* ./parser//parser.nit:11445 */
39018 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39019 /* ./parser//parser.nit:11446 */
39020 fra.me.REG[5] = NEW_Array_array___Array___init();
39021 /* ./parser//parser.nit:11448 */
39022 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39023 if (UNTAG_Bool(REGB0)) {
39024 } else {
39025 nit_abort("Assert failed", NULL, LOCATE_parser, 11448);
39026 }
39027 /* ./parser//parser.nit:11450 */
39028 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39029 fra.me.REG[5] = fra.me.REG[4];
39030 /* ./parser//parser.nit:11451 */
39031 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39032 if (UNTAG_Bool(REGB0)) {
39033 } else {
39034 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39035 if (UNTAG_Bool(REGB1)) {
39036 REGB1 = TAG_Bool(false);
39037 REGB0 = REGB1;
39038 } else {
39039 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39040 REGB0 = REGB1;
39041 }
39042 }
39043 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39044 if (UNTAG_Bool(REGB0)) {
39045 /* ./parser//parser.nit:11452 */
39046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39047 }
39048 /* ./parser//parser.nit:11454 */
39049 fra.me.REG[2] = fra.me.REG[5];
39050 /* ./parser//parser.nit:11455 */
39051 REGB0 = TAG_Bool(ATTR_parser___ReduceAction682____goto(fra.me.REG[0])!=NIT_NULL);
39052 if (UNTAG_Bool(REGB0)) {
39053 } else {
39054 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11455);
39055 }
39056 REGB0 = ATTR_parser___ReduceAction682____goto(fra.me.REG[0]);
39057 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39058 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39059 stack_frame_head = fra.me.prev;
39060 return;
39061 }
39062 void parser___ReduceAction682___init(val_t p0, val_t p1, int* init_table){
39063 int itpos374 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction682].i;
39064 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39065 val_t REGB0;
39066 val_t tmp;
39067 if (init_table[itpos374]) return;
39068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39069 fra.me.file = LOCATE_parser;
39070 fra.me.line = 11458;
39071 fra.me.meth = LOCATE_parser___ReduceAction682___init;
39072 fra.me.has_broke = 0;
39073 fra.me.REG_size = 2;
39074 fra.me.REG[0] = NIT_NULL;
39075 fra.me.REG[1] = NIT_NULL;
39076 fra.me.REG[0] = p0;
39077 REGB0 = p1;
39078 /* ./parser//parser.nit:11458 */
39079 fra.me.REG[1] = fra.me.REG[0];
39080 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39081 ATTR_parser___ReduceAction682____goto(fra.me.REG[1]) = REGB0;
39082 stack_frame_head = fra.me.prev;
39083 init_table[itpos374] = 1;
39084 return;
39085 }
39086 void parser___ReduceAction684___action(val_t p0, val_t p1){
39087 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39088 val_t REGB0;
39089 val_t tmp;
39090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39091 fra.me.file = LOCATE_parser;
39092 fra.me.line = 11462;
39093 fra.me.meth = LOCATE_parser___ReduceAction684___action;
39094 fra.me.has_broke = 0;
39095 fra.me.REG_size = 6;
39096 fra.me.REG[0] = NIT_NULL;
39097 fra.me.REG[1] = NIT_NULL;
39098 fra.me.REG[2] = NIT_NULL;
39099 fra.me.REG[3] = NIT_NULL;
39100 fra.me.REG[4] = NIT_NULL;
39101 fra.me.REG[5] = NIT_NULL;
39102 fra.me.REG[0] = p0;
39103 fra.me.REG[1] = p1;
39104 /* ./parser//parser.nit:11464 */
39105 fra.me.REG[2] = NIT_NULL;
39106 /* ./parser//parser.nit:11465 */
39107 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39108 /* ./parser//parser.nit:11466 */
39109 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39110 /* ./parser//parser.nit:11467 */
39111 fra.me.REG[5] = NEW_Array_array___Array___init();
39112 /* ./parser//parser.nit:11469 */
39113 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39114 if (UNTAG_Bool(REGB0)) {
39115 } else {
39116 nit_abort("Assert failed", NULL, LOCATE_parser, 11469);
39117 }
39118 /* ./parser//parser.nit:11471 */
39119 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39120 if (UNTAG_Bool(REGB0)) {
39121 } else {
39122 nit_abort("Assert failed", NULL, LOCATE_parser, 11471);
39123 }
39124 /* ./parser//parser.nit:11472 */
39125 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39126 fra.me.REG[5] = fra.me.REG[4];
39127 /* ./parser//parser.nit:11473 */
39128 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
39129 fra.me.REG[5] = fra.me.REG[3];
39130 /* ./parser//parser.nit:11474 */
39131 fra.me.REG[2] = fra.me.REG[5];
39132 /* ./parser//parser.nit:11475 */
39133 REGB0 = TAG_Bool(ATTR_parser___ReduceAction684____goto(fra.me.REG[0])!=NIT_NULL);
39134 if (UNTAG_Bool(REGB0)) {
39135 } else {
39136 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11475);
39137 }
39138 REGB0 = ATTR_parser___ReduceAction684____goto(fra.me.REG[0]);
39139 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39140 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39141 stack_frame_head = fra.me.prev;
39142 return;
39143 }
39144 void parser___ReduceAction684___init(val_t p0, val_t p1, int* init_table){
39145 int itpos375 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction684].i;
39146 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39147 val_t REGB0;
39148 val_t tmp;
39149 if (init_table[itpos375]) return;
39150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39151 fra.me.file = LOCATE_parser;
39152 fra.me.line = 11478;
39153 fra.me.meth = LOCATE_parser___ReduceAction684___init;
39154 fra.me.has_broke = 0;
39155 fra.me.REG_size = 2;
39156 fra.me.REG[0] = NIT_NULL;
39157 fra.me.REG[1] = NIT_NULL;
39158 fra.me.REG[0] = p0;
39159 REGB0 = p1;
39160 /* ./parser//parser.nit:11478 */
39161 fra.me.REG[1] = fra.me.REG[0];
39162 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39163 ATTR_parser___ReduceAction684____goto(fra.me.REG[1]) = REGB0;
39164 stack_frame_head = fra.me.prev;
39165 init_table[itpos375] = 1;
39166 return;
39167 }
39168 void parser___ReduceAction688___action(val_t p0, val_t p1){
39169 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39170 val_t REGB0;
39171 val_t REGB1;
39172 val_t tmp;
39173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39174 fra.me.file = LOCATE_parser;
39175 fra.me.line = 11482;
39176 fra.me.meth = LOCATE_parser___ReduceAction688___action;
39177 fra.me.has_broke = 0;
39178 fra.me.REG_size = 6;
39179 fra.me.REG[0] = NIT_NULL;
39180 fra.me.REG[1] = NIT_NULL;
39181 fra.me.REG[2] = NIT_NULL;
39182 fra.me.REG[3] = NIT_NULL;
39183 fra.me.REG[4] = NIT_NULL;
39184 fra.me.REG[5] = NIT_NULL;
39185 fra.me.REG[0] = p0;
39186 fra.me.REG[1] = p1;
39187 /* ./parser//parser.nit:11484 */
39188 fra.me.REG[2] = NIT_NULL;
39189 /* ./parser//parser.nit:11485 */
39190 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39191 /* ./parser//parser.nit:11486 */
39192 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39193 /* ./parser//parser.nit:11487 */
39194 fra.me.REG[5] = NEW_Array_array___Array___init();
39195 /* ./parser//parser.nit:11489 */
39196 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39197 if (UNTAG_Bool(REGB0)) {
39198 } else {
39199 nit_abort("Assert failed", NULL, LOCATE_parser, 11489);
39200 }
39201 /* ./parser//parser.nit:11491 */
39202 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39203 fra.me.REG[5] = fra.me.REG[4];
39204 /* ./parser//parser.nit:11492 */
39205 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39206 if (UNTAG_Bool(REGB0)) {
39207 } else {
39208 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39209 if (UNTAG_Bool(REGB1)) {
39210 REGB1 = TAG_Bool(false);
39211 REGB0 = REGB1;
39212 } else {
39213 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39214 REGB0 = REGB1;
39215 }
39216 }
39217 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39218 if (UNTAG_Bool(REGB0)) {
39219 /* ./parser//parser.nit:11493 */
39220 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39221 }
39222 /* ./parser//parser.nit:11495 */
39223 fra.me.REG[2] = fra.me.REG[5];
39224 /* ./parser//parser.nit:11496 */
39225 REGB0 = TAG_Bool(ATTR_parser___ReduceAction688____goto(fra.me.REG[0])!=NIT_NULL);
39226 if (UNTAG_Bool(REGB0)) {
39227 } else {
39228 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11496);
39229 }
39230 REGB0 = ATTR_parser___ReduceAction688____goto(fra.me.REG[0]);
39231 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39232 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39233 stack_frame_head = fra.me.prev;
39234 return;
39235 }
39236 void parser___ReduceAction688___init(val_t p0, val_t p1, int* init_table){
39237 int itpos376 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction688].i;
39238 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39239 val_t REGB0;
39240 val_t tmp;
39241 if (init_table[itpos376]) return;
39242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39243 fra.me.file = LOCATE_parser;
39244 fra.me.line = 11499;
39245 fra.me.meth = LOCATE_parser___ReduceAction688___init;
39246 fra.me.has_broke = 0;
39247 fra.me.REG_size = 2;
39248 fra.me.REG[0] = NIT_NULL;
39249 fra.me.REG[1] = NIT_NULL;
39250 fra.me.REG[0] = p0;
39251 REGB0 = p1;
39252 /* ./parser//parser.nit:11499 */
39253 fra.me.REG[1] = fra.me.REG[0];
39254 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39255 ATTR_parser___ReduceAction688____goto(fra.me.REG[1]) = REGB0;
39256 stack_frame_head = fra.me.prev;
39257 init_table[itpos376] = 1;
39258 return;
39259 }
39260 void parser___ReduceAction689___action(val_t p0, val_t p1){
39261 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39262 val_t REGB0;
39263 val_t REGB1;
39264 val_t tmp;
39265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39266 fra.me.file = LOCATE_parser;
39267 fra.me.line = 11503;
39268 fra.me.meth = LOCATE_parser___ReduceAction689___action;
39269 fra.me.has_broke = 0;
39270 fra.me.REG_size = 5;
39271 fra.me.REG[0] = NIT_NULL;
39272 fra.me.REG[1] = NIT_NULL;
39273 fra.me.REG[2] = NIT_NULL;
39274 fra.me.REG[3] = NIT_NULL;
39275 fra.me.REG[4] = NIT_NULL;
39276 fra.me.REG[0] = p0;
39277 fra.me.REG[1] = p1;
39278 /* ./parser//parser.nit:11505 */
39279 fra.me.REG[2] = NIT_NULL;
39280 /* ./parser//parser.nit:11506 */
39281 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39282 /* ./parser//parser.nit:11507 */
39283 fra.me.REG[4] = NEW_Array_array___Array___init();
39284 /* ./parser//parser.nit:11509 */
39285 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39286 if (UNTAG_Bool(REGB0)) {
39287 } else {
39288 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39289 if (UNTAG_Bool(REGB1)) {
39290 REGB1 = TAG_Bool(false);
39291 REGB0 = REGB1;
39292 } else {
39293 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39294 REGB0 = REGB1;
39295 }
39296 }
39297 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39298 if (UNTAG_Bool(REGB0)) {
39299 /* ./parser//parser.nit:11510 */
39300 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
39301 }
39302 /* ./parser//parser.nit:11512 */
39303 fra.me.REG[2] = fra.me.REG[4];
39304 /* ./parser//parser.nit:11513 */
39305 REGB0 = TAG_Bool(ATTR_parser___ReduceAction689____goto(fra.me.REG[0])!=NIT_NULL);
39306 if (UNTAG_Bool(REGB0)) {
39307 } else {
39308 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11513);
39309 }
39310 REGB0 = ATTR_parser___ReduceAction689____goto(fra.me.REG[0]);
39311 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39312 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39313 stack_frame_head = fra.me.prev;
39314 return;
39315 }
39316 void parser___ReduceAction689___init(val_t p0, val_t p1, int* init_table){
39317 int itpos377 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction689].i;
39318 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39319 val_t REGB0;
39320 val_t tmp;
39321 if (init_table[itpos377]) return;
39322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39323 fra.me.file = LOCATE_parser;
39324 fra.me.line = 11516;
39325 fra.me.meth = LOCATE_parser___ReduceAction689___init;
39326 fra.me.has_broke = 0;
39327 fra.me.REG_size = 2;
39328 fra.me.REG[0] = NIT_NULL;
39329 fra.me.REG[1] = NIT_NULL;
39330 fra.me.REG[0] = p0;
39331 REGB0 = p1;
39332 /* ./parser//parser.nit:11516 */
39333 fra.me.REG[1] = fra.me.REG[0];
39334 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39335 ATTR_parser___ReduceAction689____goto(fra.me.REG[1]) = REGB0;
39336 stack_frame_head = fra.me.prev;
39337 init_table[itpos377] = 1;
39338 return;
39339 }
39340 void parser___ReduceAction690___action(val_t p0, val_t p1){
39341 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39342 val_t REGB0;
39343 val_t REGB1;
39344 val_t tmp;
39345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39346 fra.me.file = LOCATE_parser;
39347 fra.me.line = 11520;
39348 fra.me.meth = LOCATE_parser___ReduceAction690___action;
39349 fra.me.has_broke = 0;
39350 fra.me.REG_size = 6;
39351 fra.me.REG[0] = NIT_NULL;
39352 fra.me.REG[1] = NIT_NULL;
39353 fra.me.REG[2] = NIT_NULL;
39354 fra.me.REG[3] = NIT_NULL;
39355 fra.me.REG[4] = NIT_NULL;
39356 fra.me.REG[5] = NIT_NULL;
39357 fra.me.REG[0] = p0;
39358 fra.me.REG[1] = p1;
39359 /* ./parser//parser.nit:11522 */
39360 fra.me.REG[2] = NIT_NULL;
39361 /* ./parser//parser.nit:11523 */
39362 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39363 /* ./parser//parser.nit:11524 */
39364 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39365 /* ./parser//parser.nit:11525 */
39366 fra.me.REG[5] = NEW_Array_array___Array___init();
39367 /* ./parser//parser.nit:11527 */
39368 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39369 if (UNTAG_Bool(REGB0)) {
39370 } else {
39371 nit_abort("Assert failed", NULL, LOCATE_parser, 11527);
39372 }
39373 /* ./parser//parser.nit:11529 */
39374 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39375 fra.me.REG[5] = fra.me.REG[4];
39376 /* ./parser//parser.nit:11530 */
39377 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39378 if (UNTAG_Bool(REGB0)) {
39379 } else {
39380 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39381 if (UNTAG_Bool(REGB1)) {
39382 REGB1 = TAG_Bool(false);
39383 REGB0 = REGB1;
39384 } else {
39385 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39386 REGB0 = REGB1;
39387 }
39388 }
39389 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39390 if (UNTAG_Bool(REGB0)) {
39391 /* ./parser//parser.nit:11531 */
39392 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39393 }
39394 /* ./parser//parser.nit:11533 */
39395 fra.me.REG[2] = fra.me.REG[5];
39396 /* ./parser//parser.nit:11534 */
39397 REGB0 = TAG_Bool(ATTR_parser___ReduceAction690____goto(fra.me.REG[0])!=NIT_NULL);
39398 if (UNTAG_Bool(REGB0)) {
39399 } else {
39400 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11534);
39401 }
39402 REGB0 = ATTR_parser___ReduceAction690____goto(fra.me.REG[0]);
39403 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39404 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39405 stack_frame_head = fra.me.prev;
39406 return;
39407 }
39408 void parser___ReduceAction690___init(val_t p0, val_t p1, int* init_table){
39409 int itpos378 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction690].i;
39410 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39411 val_t REGB0;
39412 val_t tmp;
39413 if (init_table[itpos378]) return;
39414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39415 fra.me.file = LOCATE_parser;
39416 fra.me.line = 11537;
39417 fra.me.meth = LOCATE_parser___ReduceAction690___init;
39418 fra.me.has_broke = 0;
39419 fra.me.REG_size = 2;
39420 fra.me.REG[0] = NIT_NULL;
39421 fra.me.REG[1] = NIT_NULL;
39422 fra.me.REG[0] = p0;
39423 REGB0 = p1;
39424 /* ./parser//parser.nit:11537 */
39425 fra.me.REG[1] = fra.me.REG[0];
39426 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39427 ATTR_parser___ReduceAction690____goto(fra.me.REG[1]) = REGB0;
39428 stack_frame_head = fra.me.prev;
39429 init_table[itpos378] = 1;
39430 return;
39431 }
39432 void parser___ReduceAction691___action(val_t p0, val_t p1){
39433 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39434 val_t REGB0;
39435 val_t REGB1;
39436 val_t tmp;
39437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39438 fra.me.file = LOCATE_parser;
39439 fra.me.line = 11541;
39440 fra.me.meth = LOCATE_parser___ReduceAction691___action;
39441 fra.me.has_broke = 0;
39442 fra.me.REG_size = 5;
39443 fra.me.REG[0] = NIT_NULL;
39444 fra.me.REG[1] = NIT_NULL;
39445 fra.me.REG[2] = NIT_NULL;
39446 fra.me.REG[3] = NIT_NULL;
39447 fra.me.REG[4] = NIT_NULL;
39448 fra.me.REG[0] = p0;
39449 fra.me.REG[1] = p1;
39450 /* ./parser//parser.nit:11543 */
39451 fra.me.REG[2] = NIT_NULL;
39452 /* ./parser//parser.nit:11544 */
39453 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39454 /* ./parser//parser.nit:11545 */
39455 fra.me.REG[4] = NEW_Array_array___Array___init();
39456 /* ./parser//parser.nit:11547 */
39457 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39458 if (UNTAG_Bool(REGB0)) {
39459 } else {
39460 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39461 if (UNTAG_Bool(REGB1)) {
39462 REGB1 = TAG_Bool(false);
39463 REGB0 = REGB1;
39464 } else {
39465 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39466 REGB0 = REGB1;
39467 }
39468 }
39469 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39470 if (UNTAG_Bool(REGB0)) {
39471 /* ./parser//parser.nit:11548 */
39472 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
39473 }
39474 /* ./parser//parser.nit:11550 */
39475 fra.me.REG[2] = fra.me.REG[4];
39476 /* ./parser//parser.nit:11551 */
39477 REGB0 = TAG_Bool(ATTR_parser___ReduceAction691____goto(fra.me.REG[0])!=NIT_NULL);
39478 if (UNTAG_Bool(REGB0)) {
39479 } else {
39480 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11551);
39481 }
39482 REGB0 = ATTR_parser___ReduceAction691____goto(fra.me.REG[0]);
39483 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39484 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39485 stack_frame_head = fra.me.prev;
39486 return;
39487 }
39488 void parser___ReduceAction691___init(val_t p0, val_t p1, int* init_table){
39489 int itpos379 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction691].i;
39490 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39491 val_t REGB0;
39492 val_t tmp;
39493 if (init_table[itpos379]) return;
39494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39495 fra.me.file = LOCATE_parser;
39496 fra.me.line = 11554;
39497 fra.me.meth = LOCATE_parser___ReduceAction691___init;
39498 fra.me.has_broke = 0;
39499 fra.me.REG_size = 2;
39500 fra.me.REG[0] = NIT_NULL;
39501 fra.me.REG[1] = NIT_NULL;
39502 fra.me.REG[0] = p0;
39503 REGB0 = p1;
39504 /* ./parser//parser.nit:11554 */
39505 fra.me.REG[1] = fra.me.REG[0];
39506 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39507 ATTR_parser___ReduceAction691____goto(fra.me.REG[1]) = REGB0;
39508 stack_frame_head = fra.me.prev;
39509 init_table[itpos379] = 1;
39510 return;
39511 }
39512 void parser___ReduceAction692___action(val_t p0, val_t p1){
39513 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39514 val_t REGB0;
39515 val_t REGB1;
39516 val_t tmp;
39517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39518 fra.me.file = LOCATE_parser;
39519 fra.me.line = 11558;
39520 fra.me.meth = LOCATE_parser___ReduceAction692___action;
39521 fra.me.has_broke = 0;
39522 fra.me.REG_size = 6;
39523 fra.me.REG[0] = NIT_NULL;
39524 fra.me.REG[1] = NIT_NULL;
39525 fra.me.REG[2] = NIT_NULL;
39526 fra.me.REG[3] = NIT_NULL;
39527 fra.me.REG[4] = NIT_NULL;
39528 fra.me.REG[5] = NIT_NULL;
39529 fra.me.REG[0] = p0;
39530 fra.me.REG[1] = p1;
39531 /* ./parser//parser.nit:11560 */
39532 fra.me.REG[2] = NIT_NULL;
39533 /* ./parser//parser.nit:11561 */
39534 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39535 /* ./parser//parser.nit:11562 */
39536 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39537 /* ./parser//parser.nit:11563 */
39538 fra.me.REG[5] = NEW_Array_array___Array___init();
39539 /* ./parser//parser.nit:11565 */
39540 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39541 if (UNTAG_Bool(REGB0)) {
39542 } else {
39543 nit_abort("Assert failed", NULL, LOCATE_parser, 11565);
39544 }
39545 /* ./parser//parser.nit:11567 */
39546 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39547 fra.me.REG[5] = fra.me.REG[4];
39548 /* ./parser//parser.nit:11568 */
39549 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39550 if (UNTAG_Bool(REGB0)) {
39551 } else {
39552 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39553 if (UNTAG_Bool(REGB1)) {
39554 REGB1 = TAG_Bool(false);
39555 REGB0 = REGB1;
39556 } else {
39557 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39558 REGB0 = REGB1;
39559 }
39560 }
39561 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39562 if (UNTAG_Bool(REGB0)) {
39563 /* ./parser//parser.nit:11569 */
39564 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39565 }
39566 /* ./parser//parser.nit:11571 */
39567 fra.me.REG[2] = fra.me.REG[5];
39568 /* ./parser//parser.nit:11572 */
39569 REGB0 = TAG_Bool(ATTR_parser___ReduceAction692____goto(fra.me.REG[0])!=NIT_NULL);
39570 if (UNTAG_Bool(REGB0)) {
39571 } else {
39572 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11572);
39573 }
39574 REGB0 = ATTR_parser___ReduceAction692____goto(fra.me.REG[0]);
39575 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39576 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39577 stack_frame_head = fra.me.prev;
39578 return;
39579 }
39580 void parser___ReduceAction692___init(val_t p0, val_t p1, int* init_table){
39581 int itpos380 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction692].i;
39582 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39583 val_t REGB0;
39584 val_t tmp;
39585 if (init_table[itpos380]) return;
39586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39587 fra.me.file = LOCATE_parser;
39588 fra.me.line = 11575;
39589 fra.me.meth = LOCATE_parser___ReduceAction692___init;
39590 fra.me.has_broke = 0;
39591 fra.me.REG_size = 2;
39592 fra.me.REG[0] = NIT_NULL;
39593 fra.me.REG[1] = NIT_NULL;
39594 fra.me.REG[0] = p0;
39595 REGB0 = p1;
39596 /* ./parser//parser.nit:11575 */
39597 fra.me.REG[1] = fra.me.REG[0];
39598 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39599 ATTR_parser___ReduceAction692____goto(fra.me.REG[1]) = REGB0;
39600 stack_frame_head = fra.me.prev;
39601 init_table[itpos380] = 1;
39602 return;
39603 }