c_src: update
[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 REGB5 = TAG_Int(1);
629 /* ./../lib/standard//kernel.nit:217 */
630 REGB5 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB5));
631 /* ./parser//parser.nit:125 */
632 REGB4 = REGB5;
633 }
634 }
635 } else {
636 /* ./parser//parser.nit:113 */
637 goto label2;
638 }
639 }
640 label2: while(0);
641 /* ./parser//parser.nit:129 */
642 REGB4 = TAG_Int(0);
643 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
644 if (UNTAG_Bool(REGB1)) {
645 } else {
646 /* ./../lib/standard//kernel.nit:207 */
647 REGB4 = TAG_Bool((REGB2)==(REGB4));
648 /* ./parser//parser.nit:129 */
649 REGB1 = REGB4;
650 }
651 if (UNTAG_Bool(REGB1)) {
652 /* ./parser//parser.nit:130 */
653 fra.me.REG[4] = CALL_lexer___Lexer___next(fra.me.REG[1])(fra.me.REG[1]);
654 CALL_parser___Parser___push(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[4]);
655 } else {
656 /* ./parser//parser.nit:131 */
657 REGB1 = TAG_Int(1);
658 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
659 if (UNTAG_Bool(REGB4)) {
660 } else {
661 /* ./../lib/standard//kernel.nit:207 */
662 REGB1 = TAG_Bool((REGB2)==(REGB1));
663 /* ./parser//parser.nit:131 */
664 REGB4 = REGB1;
665 }
666 if (UNTAG_Bool(REGB4)) {
667 /* ./parser//parser.nit:132 */
668 REGB4 = TAG_Bool(ATTR_parser___Parser____reduce_table(fra.me.REG[0])!=NIT_NULL);
669 if (UNTAG_Bool(REGB4)) {
670 } else {
671 nit_abort("Uninitialized attribute %s", "_reduce_table", LOCATE_parser, 132);
672 }
673 fra.me.REG[4] = ATTR_parser___Parser____reduce_table(fra.me.REG[0]);
674 /* ./../lib/standard//collection//array.nit:245 */
675 REGB4 = TAG_Int(0);
676 /* ./../lib/standard//kernel.nit:213 */
677 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
678 /* ./../lib/standard//collection//array.nit:245 */
679 if (UNTAG_Bool(REGB4)) {
680 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
681 if (UNTAG_Bool(REGB4)) {
682 } else {
683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
684 }
685 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
686 /* ./../lib/standard//kernel.nit:212 */
687 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
688 } else {
689 /* ./../lib/standard//collection//array.nit:245 */
690 REGB1 = TAG_Bool(false);
691 REGB4 = REGB1;
692 }
693 if (UNTAG_Bool(REGB4)) {
694 } else {
695 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
696 }
697 /* ./../lib/standard//collection//array.nit:246 */
698 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
699 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
700 if (UNTAG_Bool(REGB4)) {
701 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
702 }
703 /* ./../lib/standard//collection//array.nit:654 */
704 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
705 /* ./../lib/standard//collection//array.nit:246 */
706 goto label3;
707 label3: while(0);
708 /* ./parser//parser.nit:132 */
709 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
710 if (UNTAG_Bool(REGB3)) {
711 nit_abort("Reciever is null", NULL, LOCATE_parser, 132);
712 }
713 CALL_parser___ReduceAction___action(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
714 } else {
715 /* ./parser//parser.nit:133 */
716 REGB3 = TAG_Int(2);
717 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
718 if (UNTAG_Bool(REGB4)) {
719 } else {
720 /* ./../lib/standard//kernel.nit:207 */
721 REGB3 = TAG_Bool((REGB2)==(REGB3));
722 /* ./parser//parser.nit:133 */
723 REGB4 = REGB3;
724 }
725 if (UNTAG_Bool(REGB4)) {
726 /* ./parser//parser.nit:134 */
727 fra.me.REG[4] = CALL_lexer___Lexer___next(fra.me.REG[1])(fra.me.REG[1]);
728 /* ./parser//parser.nit:135 */
729 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_EOF, ID_EOF)) /*cast EOF*/;
730 if (UNTAG_Bool(REGB4)) {
731 } else {
732 nit_abort("Assert failed", NULL, LOCATE_parser, 135);
733 }
734 /* ./parser//parser.nit:136 */
735 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[0])(fra.me.REG[0]);
736 /* ./parser//parser.nit:137 */
737 REGB4 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_AModule, ID_AModule)) /*cast AModule*/;
738 if (UNTAG_Bool(REGB4)) {
739 } else {
740 nit_abort("Assert failed", NULL, LOCATE_parser, 137);
741 }
742 /* ./parser//parser.nit:138 */
743 fra.me.REG[4] = NEW_Start_parser_prod___Start___init(fra.me.REG[5], fra.me.REG[4]);
744 /* ./parser//parser.nit:139 */
745 fra.me.REG[5] = NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init();
746 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
747 /* ./parser//parser.nit:140 */
748 fra.me.REG[3] = fra.me.REG[4];
749 goto label1;
750 } else {
751 /* ./parser//parser.nit:141 */
752 REGB4 = TAG_Int(3);
753 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
754 if (UNTAG_Bool(REGB3)) {
755 } else {
756 /* ./../lib/standard//kernel.nit:207 */
757 REGB4 = TAG_Bool((REGB2)==(REGB4));
758 /* ./parser//parser.nit:141 */
759 REGB3 = REGB4;
760 }
761 if (UNTAG_Bool(REGB3)) {
762 /* ./parser//parser.nit:142 */
763 if (!once_value_4) {
764 fra.me.REG[4] = BOX_NativeString("Syntax error: unexpected token.");
765 REGB3 = TAG_Int(31);
766 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB3);
767 once_value_4 = fra.me.REG[4];
768 register_static_object(&once_value_4);
769 } else fra.me.REG[4] = once_value_4;
770 fra.me.REG[4] = fra.me.REG[4];
771 fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
772 fra.me.REG[2] = NEW_AError_lexer___AError___init_error(fra.me.REG[4], fra.me.REG[2]);
773 /* ./parser//parser.nit:143 */
774 fra.me.REG[2] = NEW_Start_parser_prod___Start___init(NIT_NULL, fra.me.REG[2]);
775 /* ./parser//parser.nit:144 */
776 fra.me.REG[3] = fra.me.REG[2];
777 goto label1;
778 }
779 }
780 }
781 }
782 /* ./parser//parser.nit:146 */
783 REGB3 = TAG_Bool(false);
784 if (UNTAG_Bool(REGB3)) {
785 goto label5;
786 }
787 }
788 label5: while(0);
789 /* ./parser//parser.nit:148 */
790 nit_abort("Aborted", NULL, LOCATE_parser, 148);
791 label1: while(0);
792 stack_frame_head = fra.me.prev;
793 return fra.me.REG[3];
794 }
795 void parser___Parser___build_reduce_table(val_t p0){
796 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
797 val_t REGB0;
798 val_t tmp;
799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
800 fra.me.file = LOCATE_parser;
801 fra.me.line = 152;
802 fra.me.meth = LOCATE_parser___Parser___build_reduce_table;
803 fra.me.has_broke = 0;
804 fra.me.REG_size = 3;
805 fra.me.REG[0] = NIT_NULL;
806 fra.me.REG[1] = NIT_NULL;
807 fra.me.REG[2] = NIT_NULL;
808 fra.me.REG[0] = p0;
809 /* ./parser//parser.nit:154 */
810 REGB0 = TAG_Int(692);
811 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
812 /* ./parser//parser.nit:155 */
813 REGB0 = TAG_Int(0);
814 fra.me.REG[2] = NEW_ReduceAction0_parser___ReduceAction0___init(REGB0);
815 /* ./parser//parser.nit:154 */
816 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
817 /* ./parser//parser.nit:156 */
818 REGB0 = TAG_Int(0);
819 fra.me.REG[2] = NEW_ReduceAction1_parser___ReduceAction1___init(REGB0);
820 /* ./parser//parser.nit:154 */
821 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
822 /* ./parser//parser.nit:157 */
823 REGB0 = TAG_Int(0);
824 fra.me.REG[2] = NEW_ReduceAction2_parser___ReduceAction2___init(REGB0);
825 /* ./parser//parser.nit:154 */
826 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
827 /* ./parser//parser.nit:158 */
828 REGB0 = TAG_Int(0);
829 fra.me.REG[2] = NEW_ReduceAction3_parser___ReduceAction3___init(REGB0);
830 /* ./parser//parser.nit:154 */
831 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
832 /* ./parser//parser.nit:159 */
833 REGB0 = TAG_Int(0);
834 fra.me.REG[2] = NEW_ReduceAction4_parser___ReduceAction4___init(REGB0);
835 /* ./parser//parser.nit:154 */
836 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
837 /* ./parser//parser.nit:160 */
838 REGB0 = TAG_Int(0);
839 fra.me.REG[2] = NEW_ReduceAction5_parser___ReduceAction5___init(REGB0);
840 /* ./parser//parser.nit:154 */
841 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
842 /* ./parser//parser.nit:161 */
843 REGB0 = TAG_Int(0);
844 fra.me.REG[2] = NEW_ReduceAction6_parser___ReduceAction6___init(REGB0);
845 /* ./parser//parser.nit:154 */
846 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
847 /* ./parser//parser.nit:162 */
848 REGB0 = TAG_Int(0);
849 fra.me.REG[2] = NEW_ReduceAction7_parser___ReduceAction7___init(REGB0);
850 /* ./parser//parser.nit:154 */
851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
852 /* ./parser//parser.nit:163 */
853 REGB0 = TAG_Int(0);
854 fra.me.REG[2] = NEW_ReduceAction8_parser___ReduceAction8___init(REGB0);
855 /* ./parser//parser.nit:154 */
856 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
857 /* ./parser//parser.nit:164 */
858 REGB0 = TAG_Int(0);
859 fra.me.REG[2] = NEW_ReduceAction9_parser___ReduceAction9___init(REGB0);
860 /* ./parser//parser.nit:154 */
861 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
862 /* ./parser//parser.nit:165 */
863 REGB0 = TAG_Int(0);
864 fra.me.REG[2] = NEW_ReduceAction10_parser___ReduceAction10___init(REGB0);
865 /* ./parser//parser.nit:154 */
866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
867 /* ./parser//parser.nit:166 */
868 REGB0 = TAG_Int(0);
869 fra.me.REG[2] = NEW_ReduceAction11_parser___ReduceAction11___init(REGB0);
870 /* ./parser//parser.nit:154 */
871 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
872 /* ./parser//parser.nit:167 */
873 REGB0 = TAG_Int(0);
874 fra.me.REG[2] = NEW_ReduceAction12_parser___ReduceAction12___init(REGB0);
875 /* ./parser//parser.nit:154 */
876 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
877 /* ./parser//parser.nit:168 */
878 REGB0 = TAG_Int(0);
879 fra.me.REG[2] = NEW_ReduceAction13_parser___ReduceAction13___init(REGB0);
880 /* ./parser//parser.nit:154 */
881 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
882 /* ./parser//parser.nit:169 */
883 REGB0 = TAG_Int(0);
884 fra.me.REG[2] = NEW_ReduceAction14_parser___ReduceAction14___init(REGB0);
885 /* ./parser//parser.nit:154 */
886 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
887 /* ./parser//parser.nit:170 */
888 REGB0 = TAG_Int(0);
889 fra.me.REG[2] = NEW_ReduceAction15_parser___ReduceAction15___init(REGB0);
890 /* ./parser//parser.nit:154 */
891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
892 /* ./parser//parser.nit:171 */
893 REGB0 = TAG_Int(0);
894 fra.me.REG[2] = NEW_ReduceAction16_parser___ReduceAction16___init(REGB0);
895 /* ./parser//parser.nit:154 */
896 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
897 /* ./parser//parser.nit:172 */
898 REGB0 = TAG_Int(0);
899 fra.me.REG[2] = NEW_ReduceAction17_parser___ReduceAction17___init(REGB0);
900 /* ./parser//parser.nit:154 */
901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
902 /* ./parser//parser.nit:173 */
903 REGB0 = TAG_Int(0);
904 fra.me.REG[2] = NEW_ReduceAction18_parser___ReduceAction18___init(REGB0);
905 /* ./parser//parser.nit:154 */
906 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
907 /* ./parser//parser.nit:174 */
908 REGB0 = TAG_Int(0);
909 fra.me.REG[2] = NEW_ReduceAction19_parser___ReduceAction19___init(REGB0);
910 /* ./parser//parser.nit:154 */
911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
912 /* ./parser//parser.nit:175 */
913 REGB0 = TAG_Int(0);
914 fra.me.REG[2] = NEW_ReduceAction20_parser___ReduceAction20___init(REGB0);
915 /* ./parser//parser.nit:154 */
916 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
917 /* ./parser//parser.nit:176 */
918 REGB0 = TAG_Int(0);
919 fra.me.REG[2] = NEW_ReduceAction21_parser___ReduceAction21___init(REGB0);
920 /* ./parser//parser.nit:154 */
921 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
922 /* ./parser//parser.nit:177 */
923 REGB0 = TAG_Int(0);
924 fra.me.REG[2] = NEW_ReduceAction22_parser___ReduceAction22___init(REGB0);
925 /* ./parser//parser.nit:154 */
926 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
927 /* ./parser//parser.nit:178 */
928 REGB0 = TAG_Int(0);
929 fra.me.REG[2] = NEW_ReduceAction23_parser___ReduceAction23___init(REGB0);
930 /* ./parser//parser.nit:154 */
931 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
932 /* ./parser//parser.nit:179 */
933 REGB0 = TAG_Int(0);
934 fra.me.REG[2] = NEW_ReduceAction24_parser___ReduceAction24___init(REGB0);
935 /* ./parser//parser.nit:154 */
936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
937 /* ./parser//parser.nit:180 */
938 REGB0 = TAG_Int(0);
939 fra.me.REG[2] = NEW_ReduceAction25_parser___ReduceAction25___init(REGB0);
940 /* ./parser//parser.nit:154 */
941 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
942 /* ./parser//parser.nit:181 */
943 REGB0 = TAG_Int(0);
944 fra.me.REG[2] = NEW_ReduceAction26_parser___ReduceAction26___init(REGB0);
945 /* ./parser//parser.nit:154 */
946 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
947 /* ./parser//parser.nit:182 */
948 REGB0 = TAG_Int(0);
949 fra.me.REG[2] = NEW_ReduceAction27_parser___ReduceAction27___init(REGB0);
950 /* ./parser//parser.nit:154 */
951 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
952 /* ./parser//parser.nit:183 */
953 REGB0 = TAG_Int(0);
954 fra.me.REG[2] = NEW_ReduceAction28_parser___ReduceAction28___init(REGB0);
955 /* ./parser//parser.nit:154 */
956 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
957 /* ./parser//parser.nit:184 */
958 REGB0 = TAG_Int(0);
959 fra.me.REG[2] = NEW_ReduceAction29_parser___ReduceAction29___init(REGB0);
960 /* ./parser//parser.nit:154 */
961 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
962 /* ./parser//parser.nit:185 */
963 REGB0 = TAG_Int(0);
964 fra.me.REG[2] = NEW_ReduceAction30_parser___ReduceAction30___init(REGB0);
965 /* ./parser//parser.nit:154 */
966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
967 /* ./parser//parser.nit:186 */
968 REGB0 = TAG_Int(0);
969 fra.me.REG[2] = NEW_ReduceAction31_parser___ReduceAction31___init(REGB0);
970 /* ./parser//parser.nit:154 */
971 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
972 /* ./parser//parser.nit:187 */
973 REGB0 = TAG_Int(1);
974 fra.me.REG[2] = NEW_ReduceAction32_parser___ReduceAction32___init(REGB0);
975 /* ./parser//parser.nit:154 */
976 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
977 /* ./parser//parser.nit:188 */
978 REGB0 = TAG_Int(2);
979 fra.me.REG[2] = NEW_ReduceAction33_parser___ReduceAction33___init(REGB0);
980 /* ./parser//parser.nit:154 */
981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
982 /* ./parser//parser.nit:189 */
983 REGB0 = TAG_Int(2);
984 fra.me.REG[2] = NEW_ReduceAction34_parser___ReduceAction34___init(REGB0);
985 /* ./parser//parser.nit:154 */
986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
987 /* ./parser//parser.nit:190 */
988 REGB0 = TAG_Int(3);
989 fra.me.REG[2] = NEW_ReduceAction35_parser___ReduceAction35___init(REGB0);
990 /* ./parser//parser.nit:154 */
991 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
992 /* ./parser//parser.nit:191 */
993 REGB0 = TAG_Int(3);
994 fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction36___init(REGB0);
995 /* ./parser//parser.nit:154 */
996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
997 /* ./parser//parser.nit:192 */
998 REGB0 = TAG_Int(4);
999 fra.me.REG[2] = NEW_ReduceAction37_parser___ReduceAction37___init(REGB0);
1000 /* ./parser//parser.nit:154 */
1001 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1002 /* ./parser//parser.nit:193 */
1003 REGB0 = TAG_Int(4);
1004 fra.me.REG[2] = NEW_ReduceAction37_parser___ReduceAction37___init(REGB0);
1005 /* ./parser//parser.nit:154 */
1006 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1007 /* ./parser//parser.nit:194 */
1008 REGB0 = TAG_Int(5);
1009 fra.me.REG[2] = NEW_ReduceAction39_parser___ReduceAction39___init(REGB0);
1010 /* ./parser//parser.nit:154 */
1011 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1012 /* ./parser//parser.nit:195 */
1013 REGB0 = TAG_Int(5);
1014 fra.me.REG[2] = NEW_ReduceAction40_parser___ReduceAction40___init(REGB0);
1015 /* ./parser//parser.nit:154 */
1016 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1017 /* ./parser//parser.nit:196 */
1018 REGB0 = TAG_Int(5);
1019 fra.me.REG[2] = NEW_ReduceAction41_parser___ReduceAction41___init(REGB0);
1020 /* ./parser//parser.nit:154 */
1021 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1022 /* ./parser//parser.nit:197 */
1023 REGB0 = TAG_Int(5);
1024 fra.me.REG[2] = NEW_ReduceAction42_parser___ReduceAction42___init(REGB0);
1025 /* ./parser//parser.nit:154 */
1026 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1027 /* ./parser//parser.nit:198 */
1028 REGB0 = TAG_Int(5);
1029 fra.me.REG[2] = NEW_ReduceAction43_parser___ReduceAction43___init(REGB0);
1030 /* ./parser//parser.nit:154 */
1031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1032 /* ./parser//parser.nit:199 */
1033 REGB0 = TAG_Int(5);
1034 fra.me.REG[2] = NEW_ReduceAction44_parser___ReduceAction44___init(REGB0);
1035 /* ./parser//parser.nit:154 */
1036 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1037 /* ./parser//parser.nit:200 */
1038 REGB0 = TAG_Int(5);
1039 fra.me.REG[2] = NEW_ReduceAction45_parser___ReduceAction45___init(REGB0);
1040 /* ./parser//parser.nit:154 */
1041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1042 /* ./parser//parser.nit:201 */
1043 REGB0 = TAG_Int(5);
1044 fra.me.REG[2] = NEW_ReduceAction46_parser___ReduceAction46___init(REGB0);
1045 /* ./parser//parser.nit:154 */
1046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1047 /* ./parser//parser.nit:202 */
1048 REGB0 = TAG_Int(5);
1049 fra.me.REG[2] = NEW_ReduceAction47_parser___ReduceAction47___init(REGB0);
1050 /* ./parser//parser.nit:154 */
1051 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1052 /* ./parser//parser.nit:203 */
1053 REGB0 = TAG_Int(5);
1054 fra.me.REG[2] = NEW_ReduceAction48_parser___ReduceAction48___init(REGB0);
1055 /* ./parser//parser.nit:154 */
1056 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1057 /* ./parser//parser.nit:204 */
1058 REGB0 = TAG_Int(5);
1059 fra.me.REG[2] = NEW_ReduceAction49_parser___ReduceAction49___init(REGB0);
1060 /* ./parser//parser.nit:154 */
1061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1062 /* ./parser//parser.nit:205 */
1063 REGB0 = TAG_Int(5);
1064 fra.me.REG[2] = NEW_ReduceAction50_parser___ReduceAction50___init(REGB0);
1065 /* ./parser//parser.nit:154 */
1066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1067 /* ./parser//parser.nit:206 */
1068 REGB0 = TAG_Int(5);
1069 fra.me.REG[2] = NEW_ReduceAction51_parser___ReduceAction51___init(REGB0);
1070 /* ./parser//parser.nit:154 */
1071 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1072 /* ./parser//parser.nit:207 */
1073 REGB0 = TAG_Int(5);
1074 fra.me.REG[2] = NEW_ReduceAction52_parser___ReduceAction52___init(REGB0);
1075 /* ./parser//parser.nit:154 */
1076 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1077 /* ./parser//parser.nit:208 */
1078 REGB0 = TAG_Int(5);
1079 fra.me.REG[2] = NEW_ReduceAction53_parser___ReduceAction53___init(REGB0);
1080 /* ./parser//parser.nit:154 */
1081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1082 /* ./parser//parser.nit:209 */
1083 REGB0 = TAG_Int(5);
1084 fra.me.REG[2] = NEW_ReduceAction54_parser___ReduceAction54___init(REGB0);
1085 /* ./parser//parser.nit:154 */
1086 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1087 /* ./parser//parser.nit:210 */
1088 REGB0 = TAG_Int(6);
1089 fra.me.REG[2] = NEW_ReduceAction55_parser___ReduceAction55___init(REGB0);
1090 /* ./parser//parser.nit:154 */
1091 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1092 /* ./parser//parser.nit:211 */
1093 REGB0 = TAG_Int(6);
1094 fra.me.REG[2] = NEW_ReduceAction56_parser___ReduceAction56___init(REGB0);
1095 /* ./parser//parser.nit:154 */
1096 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1097 /* ./parser//parser.nit:212 */
1098 REGB0 = TAG_Int(6);
1099 fra.me.REG[2] = NEW_ReduceAction57_parser___ReduceAction57___init(REGB0);
1100 /* ./parser//parser.nit:154 */
1101 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1102 /* ./parser//parser.nit:213 */
1103 REGB0 = TAG_Int(6);
1104 fra.me.REG[2] = NEW_ReduceAction58_parser___ReduceAction58___init(REGB0);
1105 /* ./parser//parser.nit:154 */
1106 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1107 /* ./parser//parser.nit:214 */
1108 REGB0 = TAG_Int(7);
1109 fra.me.REG[2] = NEW_ReduceAction59_parser___ReduceAction59___init(REGB0);
1110 /* ./parser//parser.nit:154 */
1111 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1112 /* ./parser//parser.nit:215 */
1113 REGB0 = TAG_Int(7);
1114 fra.me.REG[2] = NEW_ReduceAction60_parser___ReduceAction60___init(REGB0);
1115 /* ./parser//parser.nit:154 */
1116 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1117 /* ./parser//parser.nit:216 */
1118 REGB0 = TAG_Int(8);
1119 fra.me.REG[2] = NEW_ReduceAction61_parser___ReduceAction61___init(REGB0);
1120 /* ./parser//parser.nit:154 */
1121 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1122 /* ./parser//parser.nit:217 */
1123 REGB0 = TAG_Int(9);
1124 fra.me.REG[2] = NEW_ReduceAction62_parser___ReduceAction62___init(REGB0);
1125 /* ./parser//parser.nit:154 */
1126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1127 /* ./parser//parser.nit:218 */
1128 REGB0 = TAG_Int(9);
1129 fra.me.REG[2] = NEW_ReduceAction63_parser___ReduceAction63___init(REGB0);
1130 /* ./parser//parser.nit:154 */
1131 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1132 /* ./parser//parser.nit:219 */
1133 REGB0 = TAG_Int(10);
1134 fra.me.REG[2] = NEW_ReduceAction64_parser___ReduceAction64___init(REGB0);
1135 /* ./parser//parser.nit:154 */
1136 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1137 /* ./parser//parser.nit:220 */
1138 REGB0 = TAG_Int(10);
1139 fra.me.REG[2] = NEW_ReduceAction65_parser___ReduceAction65___init(REGB0);
1140 /* ./parser//parser.nit:154 */
1141 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1142 /* ./parser//parser.nit:221 */
1143 REGB0 = TAG_Int(11);
1144 fra.me.REG[2] = NEW_ReduceAction66_parser___ReduceAction66___init(REGB0);
1145 /* ./parser//parser.nit:154 */
1146 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1147 /* ./parser//parser.nit:222 */
1148 REGB0 = TAG_Int(12);
1149 fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction67___init(REGB0);
1150 /* ./parser//parser.nit:154 */
1151 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1152 /* ./parser//parser.nit:223 */
1153 REGB0 = TAG_Int(12);
1154 fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction68___init(REGB0);
1155 /* ./parser//parser.nit:154 */
1156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1157 /* ./parser//parser.nit:224 */
1158 REGB0 = TAG_Int(12);
1159 fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction69___init(REGB0);
1160 /* ./parser//parser.nit:154 */
1161 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1162 /* ./parser//parser.nit:225 */
1163 REGB0 = TAG_Int(12);
1164 fra.me.REG[2] = NEW_ReduceAction70_parser___ReduceAction70___init(REGB0);
1165 /* ./parser//parser.nit:154 */
1166 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1167 /* ./parser//parser.nit:226 */
1168 REGB0 = TAG_Int(12);
1169 fra.me.REG[2] = NEW_ReduceAction71_parser___ReduceAction71___init(REGB0);
1170 /* ./parser//parser.nit:154 */
1171 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1172 /* ./parser//parser.nit:227 */
1173 REGB0 = TAG_Int(12);
1174 fra.me.REG[2] = NEW_ReduceAction72_parser___ReduceAction72___init(REGB0);
1175 /* ./parser//parser.nit:154 */
1176 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1177 /* ./parser//parser.nit:228 */
1178 REGB0 = TAG_Int(12);
1179 fra.me.REG[2] = NEW_ReduceAction73_parser___ReduceAction73___init(REGB0);
1180 /* ./parser//parser.nit:154 */
1181 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1182 /* ./parser//parser.nit:229 */
1183 REGB0 = TAG_Int(12);
1184 fra.me.REG[2] = NEW_ReduceAction74_parser___ReduceAction74___init(REGB0);
1185 /* ./parser//parser.nit:154 */
1186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1187 /* ./parser//parser.nit:230 */
1188 REGB0 = TAG_Int(12);
1189 fra.me.REG[2] = NEW_ReduceAction75_parser___ReduceAction75___init(REGB0);
1190 /* ./parser//parser.nit:154 */
1191 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1192 /* ./parser//parser.nit:231 */
1193 REGB0 = TAG_Int(12);
1194 fra.me.REG[2] = NEW_ReduceAction76_parser___ReduceAction76___init(REGB0);
1195 /* ./parser//parser.nit:154 */
1196 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1197 /* ./parser//parser.nit:232 */
1198 REGB0 = TAG_Int(12);
1199 fra.me.REG[2] = NEW_ReduceAction77_parser___ReduceAction77___init(REGB0);
1200 /* ./parser//parser.nit:154 */
1201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1202 /* ./parser//parser.nit:233 */
1203 REGB0 = TAG_Int(12);
1204 fra.me.REG[2] = NEW_ReduceAction78_parser___ReduceAction78___init(REGB0);
1205 /* ./parser//parser.nit:154 */
1206 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1207 /* ./parser//parser.nit:234 */
1208 REGB0 = TAG_Int(12);
1209 fra.me.REG[2] = NEW_ReduceAction79_parser___ReduceAction79___init(REGB0);
1210 /* ./parser//parser.nit:154 */
1211 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1212 /* ./parser//parser.nit:235 */
1213 REGB0 = TAG_Int(12);
1214 fra.me.REG[2] = NEW_ReduceAction80_parser___ReduceAction80___init(REGB0);
1215 /* ./parser//parser.nit:154 */
1216 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1217 /* ./parser//parser.nit:236 */
1218 REGB0 = TAG_Int(12);
1219 fra.me.REG[2] = NEW_ReduceAction81_parser___ReduceAction81___init(REGB0);
1220 /* ./parser//parser.nit:154 */
1221 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1222 /* ./parser//parser.nit:237 */
1223 REGB0 = TAG_Int(12);
1224 fra.me.REG[2] = NEW_ReduceAction82_parser___ReduceAction82___init(REGB0);
1225 /* ./parser//parser.nit:154 */
1226 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1227 /* ./parser//parser.nit:238 */
1228 REGB0 = TAG_Int(12);
1229 fra.me.REG[2] = NEW_ReduceAction83_parser___ReduceAction83___init(REGB0);
1230 /* ./parser//parser.nit:154 */
1231 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1232 /* ./parser//parser.nit:239 */
1233 REGB0 = TAG_Int(12);
1234 fra.me.REG[2] = NEW_ReduceAction84_parser___ReduceAction84___init(REGB0);
1235 /* ./parser//parser.nit:154 */
1236 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1237 /* ./parser//parser.nit:240 */
1238 REGB0 = TAG_Int(12);
1239 fra.me.REG[2] = NEW_ReduceAction85_parser___ReduceAction85___init(REGB0);
1240 /* ./parser//parser.nit:154 */
1241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1242 /* ./parser//parser.nit:241 */
1243 REGB0 = TAG_Int(12);
1244 fra.me.REG[2] = NEW_ReduceAction86_parser___ReduceAction86___init(REGB0);
1245 /* ./parser//parser.nit:154 */
1246 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1247 /* ./parser//parser.nit:242 */
1248 REGB0 = TAG_Int(12);
1249 fra.me.REG[2] = NEW_ReduceAction87_parser___ReduceAction87___init(REGB0);
1250 /* ./parser//parser.nit:154 */
1251 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1252 /* ./parser//parser.nit:243 */
1253 REGB0 = TAG_Int(12);
1254 fra.me.REG[2] = NEW_ReduceAction88_parser___ReduceAction88___init(REGB0);
1255 /* ./parser//parser.nit:154 */
1256 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1257 /* ./parser//parser.nit:244 */
1258 REGB0 = TAG_Int(12);
1259 fra.me.REG[2] = NEW_ReduceAction89_parser___ReduceAction89___init(REGB0);
1260 /* ./parser//parser.nit:154 */
1261 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1262 /* ./parser//parser.nit:245 */
1263 REGB0 = TAG_Int(12);
1264 fra.me.REG[2] = NEW_ReduceAction90_parser___ReduceAction90___init(REGB0);
1265 /* ./parser//parser.nit:154 */
1266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1267 /* ./parser//parser.nit:246 */
1268 REGB0 = TAG_Int(12);
1269 fra.me.REG[2] = NEW_ReduceAction91_parser___ReduceAction91___init(REGB0);
1270 /* ./parser//parser.nit:154 */
1271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1272 /* ./parser//parser.nit:247 */
1273 REGB0 = TAG_Int(12);
1274 fra.me.REG[2] = NEW_ReduceAction92_parser___ReduceAction92___init(REGB0);
1275 /* ./parser//parser.nit:154 */
1276 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1277 /* ./parser//parser.nit:248 */
1278 REGB0 = TAG_Int(12);
1279 fra.me.REG[2] = NEW_ReduceAction93_parser___ReduceAction93___init(REGB0);
1280 /* ./parser//parser.nit:154 */
1281 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1282 /* ./parser//parser.nit:249 */
1283 REGB0 = TAG_Int(12);
1284 fra.me.REG[2] = NEW_ReduceAction94_parser___ReduceAction94___init(REGB0);
1285 /* ./parser//parser.nit:154 */
1286 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1287 /* ./parser//parser.nit:250 */
1288 REGB0 = TAG_Int(12);
1289 fra.me.REG[2] = NEW_ReduceAction95_parser___ReduceAction95___init(REGB0);
1290 /* ./parser//parser.nit:154 */
1291 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1292 /* ./parser//parser.nit:251 */
1293 REGB0 = TAG_Int(12);
1294 fra.me.REG[2] = NEW_ReduceAction96_parser___ReduceAction96___init(REGB0);
1295 /* ./parser//parser.nit:154 */
1296 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1297 /* ./parser//parser.nit:252 */
1298 REGB0 = TAG_Int(12);
1299 fra.me.REG[2] = NEW_ReduceAction97_parser___ReduceAction97___init(REGB0);
1300 /* ./parser//parser.nit:154 */
1301 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1302 /* ./parser//parser.nit:253 */
1303 REGB0 = TAG_Int(12);
1304 fra.me.REG[2] = NEW_ReduceAction98_parser___ReduceAction98___init(REGB0);
1305 /* ./parser//parser.nit:154 */
1306 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1307 /* ./parser//parser.nit:254 */
1308 REGB0 = TAG_Int(12);
1309 fra.me.REG[2] = NEW_ReduceAction99_parser___ReduceAction99___init(REGB0);
1310 /* ./parser//parser.nit:154 */
1311 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1312 /* ./parser//parser.nit:255 */
1313 REGB0 = TAG_Int(12);
1314 fra.me.REG[2] = NEW_ReduceAction100_parser___ReduceAction100___init(REGB0);
1315 /* ./parser//parser.nit:154 */
1316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1317 /* ./parser//parser.nit:256 */
1318 REGB0 = TAG_Int(12);
1319 fra.me.REG[2] = NEW_ReduceAction101_parser___ReduceAction101___init(REGB0);
1320 /* ./parser//parser.nit:154 */
1321 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1322 /* ./parser//parser.nit:257 */
1323 REGB0 = TAG_Int(12);
1324 fra.me.REG[2] = NEW_ReduceAction102_parser___ReduceAction102___init(REGB0);
1325 /* ./parser//parser.nit:154 */
1326 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1327 /* ./parser//parser.nit:258 */
1328 REGB0 = TAG_Int(12);
1329 fra.me.REG[2] = NEW_ReduceAction103_parser___ReduceAction103___init(REGB0);
1330 /* ./parser//parser.nit:154 */
1331 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1332 /* ./parser//parser.nit:259 */
1333 REGB0 = TAG_Int(12);
1334 fra.me.REG[2] = NEW_ReduceAction104_parser___ReduceAction104___init(REGB0);
1335 /* ./parser//parser.nit:154 */
1336 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1337 /* ./parser//parser.nit:260 */
1338 REGB0 = TAG_Int(12);
1339 fra.me.REG[2] = NEW_ReduceAction105_parser___ReduceAction105___init(REGB0);
1340 /* ./parser//parser.nit:154 */
1341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1342 /* ./parser//parser.nit:261 */
1343 REGB0 = TAG_Int(12);
1344 fra.me.REG[2] = NEW_ReduceAction106_parser___ReduceAction106___init(REGB0);
1345 /* ./parser//parser.nit:154 */
1346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1347 /* ./parser//parser.nit:262 */
1348 REGB0 = TAG_Int(12);
1349 fra.me.REG[2] = NEW_ReduceAction107_parser___ReduceAction107___init(REGB0);
1350 /* ./parser//parser.nit:154 */
1351 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1352 /* ./parser//parser.nit:263 */
1353 REGB0 = TAG_Int(12);
1354 fra.me.REG[2] = NEW_ReduceAction108_parser___ReduceAction108___init(REGB0);
1355 /* ./parser//parser.nit:154 */
1356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1357 /* ./parser//parser.nit:264 */
1358 REGB0 = TAG_Int(12);
1359 fra.me.REG[2] = NEW_ReduceAction109_parser___ReduceAction109___init(REGB0);
1360 /* ./parser//parser.nit:154 */
1361 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1362 /* ./parser//parser.nit:265 */
1363 REGB0 = TAG_Int(12);
1364 fra.me.REG[2] = NEW_ReduceAction110_parser___ReduceAction110___init(REGB0);
1365 /* ./parser//parser.nit:154 */
1366 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1367 /* ./parser//parser.nit:266 */
1368 REGB0 = TAG_Int(12);
1369 fra.me.REG[2] = NEW_ReduceAction111_parser___ReduceAction111___init(REGB0);
1370 /* ./parser//parser.nit:154 */
1371 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1372 /* ./parser//parser.nit:267 */
1373 REGB0 = TAG_Int(12);
1374 fra.me.REG[2] = NEW_ReduceAction112_parser___ReduceAction112___init(REGB0);
1375 /* ./parser//parser.nit:154 */
1376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1377 /* ./parser//parser.nit:268 */
1378 REGB0 = TAG_Int(12);
1379 fra.me.REG[2] = NEW_ReduceAction113_parser___ReduceAction113___init(REGB0);
1380 /* ./parser//parser.nit:154 */
1381 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1382 /* ./parser//parser.nit:269 */
1383 REGB0 = TAG_Int(12);
1384 fra.me.REG[2] = NEW_ReduceAction114_parser___ReduceAction114___init(REGB0);
1385 /* ./parser//parser.nit:154 */
1386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1387 /* ./parser//parser.nit:270 */
1388 REGB0 = TAG_Int(12);
1389 fra.me.REG[2] = NEW_ReduceAction115_parser___ReduceAction115___init(REGB0);
1390 /* ./parser//parser.nit:154 */
1391 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1392 /* ./parser//parser.nit:271 */
1393 REGB0 = TAG_Int(12);
1394 fra.me.REG[2] = NEW_ReduceAction116_parser___ReduceAction116___init(REGB0);
1395 /* ./parser//parser.nit:154 */
1396 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1397 /* ./parser//parser.nit:272 */
1398 REGB0 = TAG_Int(12);
1399 fra.me.REG[2] = NEW_ReduceAction117_parser___ReduceAction117___init(REGB0);
1400 /* ./parser//parser.nit:154 */
1401 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1402 /* ./parser//parser.nit:273 */
1403 REGB0 = TAG_Int(12);
1404 fra.me.REG[2] = NEW_ReduceAction118_parser___ReduceAction118___init(REGB0);
1405 /* ./parser//parser.nit:154 */
1406 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1407 /* ./parser//parser.nit:274 */
1408 REGB0 = TAG_Int(12);
1409 fra.me.REG[2] = NEW_ReduceAction119_parser___ReduceAction119___init(REGB0);
1410 /* ./parser//parser.nit:154 */
1411 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1412 /* ./parser//parser.nit:275 */
1413 REGB0 = TAG_Int(12);
1414 fra.me.REG[2] = NEW_ReduceAction120_parser___ReduceAction120___init(REGB0);
1415 /* ./parser//parser.nit:154 */
1416 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1417 /* ./parser//parser.nit:276 */
1418 REGB0 = TAG_Int(12);
1419 fra.me.REG[2] = NEW_ReduceAction121_parser___ReduceAction121___init(REGB0);
1420 /* ./parser//parser.nit:154 */
1421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1422 /* ./parser//parser.nit:277 */
1423 REGB0 = TAG_Int(12);
1424 fra.me.REG[2] = NEW_ReduceAction122_parser___ReduceAction122___init(REGB0);
1425 /* ./parser//parser.nit:154 */
1426 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1427 /* ./parser//parser.nit:278 */
1428 REGB0 = TAG_Int(12);
1429 fra.me.REG[2] = NEW_ReduceAction123_parser___ReduceAction123___init(REGB0);
1430 /* ./parser//parser.nit:154 */
1431 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1432 /* ./parser//parser.nit:279 */
1433 REGB0 = TAG_Int(12);
1434 fra.me.REG[2] = NEW_ReduceAction124_parser___ReduceAction124___init(REGB0);
1435 /* ./parser//parser.nit:154 */
1436 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1437 /* ./parser//parser.nit:280 */
1438 REGB0 = TAG_Int(12);
1439 fra.me.REG[2] = NEW_ReduceAction125_parser___ReduceAction125___init(REGB0);
1440 /* ./parser//parser.nit:154 */
1441 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1442 /* ./parser//parser.nit:281 */
1443 REGB0 = TAG_Int(12);
1444 fra.me.REG[2] = NEW_ReduceAction126_parser___ReduceAction126___init(REGB0);
1445 /* ./parser//parser.nit:154 */
1446 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1447 /* ./parser//parser.nit:282 */
1448 REGB0 = TAG_Int(12);
1449 fra.me.REG[2] = NEW_ReduceAction127_parser___ReduceAction127___init(REGB0);
1450 /* ./parser//parser.nit:154 */
1451 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1452 /* ./parser//parser.nit:283 */
1453 REGB0 = TAG_Int(12);
1454 fra.me.REG[2] = NEW_ReduceAction128_parser___ReduceAction128___init(REGB0);
1455 /* ./parser//parser.nit:154 */
1456 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1457 /* ./parser//parser.nit:284 */
1458 REGB0 = TAG_Int(12);
1459 fra.me.REG[2] = NEW_ReduceAction129_parser___ReduceAction129___init(REGB0);
1460 /* ./parser//parser.nit:154 */
1461 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1462 /* ./parser//parser.nit:285 */
1463 REGB0 = TAG_Int(12);
1464 fra.me.REG[2] = NEW_ReduceAction130_parser___ReduceAction130___init(REGB0);
1465 /* ./parser//parser.nit:154 */
1466 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1467 /* ./parser//parser.nit:286 */
1468 REGB0 = TAG_Int(12);
1469 fra.me.REG[2] = NEW_ReduceAction131_parser___ReduceAction131___init(REGB0);
1470 /* ./parser//parser.nit:154 */
1471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1472 /* ./parser//parser.nit:287 */
1473 REGB0 = TAG_Int(12);
1474 fra.me.REG[2] = NEW_ReduceAction132_parser___ReduceAction132___init(REGB0);
1475 /* ./parser//parser.nit:154 */
1476 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1477 /* ./parser//parser.nit:288 */
1478 REGB0 = TAG_Int(12);
1479 fra.me.REG[2] = NEW_ReduceAction133_parser___ReduceAction133___init(REGB0);
1480 /* ./parser//parser.nit:154 */
1481 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1482 /* ./parser//parser.nit:289 */
1483 REGB0 = TAG_Int(12);
1484 fra.me.REG[2] = NEW_ReduceAction134_parser___ReduceAction134___init(REGB0);
1485 /* ./parser//parser.nit:154 */
1486 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1487 /* ./parser//parser.nit:290 */
1488 REGB0 = TAG_Int(12);
1489 fra.me.REG[2] = NEW_ReduceAction135_parser___ReduceAction135___init(REGB0);
1490 /* ./parser//parser.nit:154 */
1491 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1492 /* ./parser//parser.nit:291 */
1493 REGB0 = TAG_Int(12);
1494 fra.me.REG[2] = NEW_ReduceAction136_parser___ReduceAction136___init(REGB0);
1495 /* ./parser//parser.nit:154 */
1496 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1497 /* ./parser//parser.nit:292 */
1498 REGB0 = TAG_Int(12);
1499 fra.me.REG[2] = NEW_ReduceAction137_parser___ReduceAction137___init(REGB0);
1500 /* ./parser//parser.nit:154 */
1501 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1502 /* ./parser//parser.nit:293 */
1503 REGB0 = TAG_Int(12);
1504 fra.me.REG[2] = NEW_ReduceAction138_parser___ReduceAction138___init(REGB0);
1505 /* ./parser//parser.nit:154 */
1506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1507 /* ./parser//parser.nit:294 */
1508 REGB0 = TAG_Int(13);
1509 fra.me.REG[2] = NEW_ReduceAction139_parser___ReduceAction139___init(REGB0);
1510 /* ./parser//parser.nit:154 */
1511 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1512 /* ./parser//parser.nit:295 */
1513 REGB0 = TAG_Int(13);
1514 fra.me.REG[2] = NEW_ReduceAction140_parser___ReduceAction140___init(REGB0);
1515 /* ./parser//parser.nit:154 */
1516 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1517 /* ./parser//parser.nit:296 */
1518 REGB0 = TAG_Int(14);
1519 fra.me.REG[2] = NEW_ReduceAction141_parser___ReduceAction141___init(REGB0);
1520 /* ./parser//parser.nit:154 */
1521 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1522 /* ./parser//parser.nit:297 */
1523 REGB0 = TAG_Int(14);
1524 fra.me.REG[2] = NEW_ReduceAction142_parser___ReduceAction142___init(REGB0);
1525 /* ./parser//parser.nit:154 */
1526 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1527 /* ./parser//parser.nit:298 */
1528 REGB0 = TAG_Int(15);
1529 fra.me.REG[2] = NEW_ReduceAction143_parser___ReduceAction143___init(REGB0);
1530 /* ./parser//parser.nit:154 */
1531 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1532 /* ./parser//parser.nit:299 */
1533 REGB0 = TAG_Int(15);
1534 fra.me.REG[2] = NEW_ReduceAction144_parser___ReduceAction144___init(REGB0);
1535 /* ./parser//parser.nit:154 */
1536 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1537 /* ./parser//parser.nit:300 */
1538 REGB0 = TAG_Int(16);
1539 fra.me.REG[2] = NEW_ReduceAction145_parser___ReduceAction145___init(REGB0);
1540 /* ./parser//parser.nit:154 */
1541 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1542 /* ./parser//parser.nit:301 */
1543 REGB0 = TAG_Int(16);
1544 fra.me.REG[2] = NEW_ReduceAction146_parser___ReduceAction146___init(REGB0);
1545 /* ./parser//parser.nit:154 */
1546 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1547 /* ./parser//parser.nit:302 */
1548 REGB0 = TAG_Int(16);
1549 fra.me.REG[2] = NEW_ReduceAction147_parser___ReduceAction147___init(REGB0);
1550 /* ./parser//parser.nit:154 */
1551 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1552 /* ./parser//parser.nit:303 */
1553 REGB0 = TAG_Int(16);
1554 fra.me.REG[2] = NEW_ReduceAction148_parser___ReduceAction148___init(REGB0);
1555 /* ./parser//parser.nit:154 */
1556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1557 /* ./parser//parser.nit:304 */
1558 REGB0 = TAG_Int(17);
1559 fra.me.REG[2] = NEW_ReduceAction149_parser___ReduceAction149___init(REGB0);
1560 /* ./parser//parser.nit:154 */
1561 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1562 /* ./parser//parser.nit:305 */
1563 REGB0 = TAG_Int(17);
1564 fra.me.REG[2] = NEW_ReduceAction150_parser___ReduceAction150___init(REGB0);
1565 /* ./parser//parser.nit:154 */
1566 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1567 /* ./parser//parser.nit:306 */
1568 REGB0 = TAG_Int(17);
1569 fra.me.REG[2] = NEW_ReduceAction151_parser___ReduceAction151___init(REGB0);
1570 /* ./parser//parser.nit:154 */
1571 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1572 /* ./parser//parser.nit:307 */
1573 REGB0 = TAG_Int(17);
1574 fra.me.REG[2] = NEW_ReduceAction152_parser___ReduceAction152___init(REGB0);
1575 /* ./parser//parser.nit:154 */
1576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1577 /* ./parser//parser.nit:308 */
1578 REGB0 = TAG_Int(17);
1579 fra.me.REG[2] = NEW_ReduceAction153_parser___ReduceAction153___init(REGB0);
1580 /* ./parser//parser.nit:154 */
1581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1582 /* ./parser//parser.nit:309 */
1583 REGB0 = TAG_Int(17);
1584 fra.me.REG[2] = NEW_ReduceAction154_parser___ReduceAction154___init(REGB0);
1585 /* ./parser//parser.nit:154 */
1586 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1587 /* ./parser//parser.nit:310 */
1588 REGB0 = TAG_Int(17);
1589 fra.me.REG[2] = NEW_ReduceAction155_parser___ReduceAction155___init(REGB0);
1590 /* ./parser//parser.nit:154 */
1591 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1592 /* ./parser//parser.nit:311 */
1593 REGB0 = TAG_Int(17);
1594 fra.me.REG[2] = NEW_ReduceAction156_parser___ReduceAction156___init(REGB0);
1595 /* ./parser//parser.nit:154 */
1596 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1597 /* ./parser//parser.nit:312 */
1598 REGB0 = TAG_Int(17);
1599 fra.me.REG[2] = NEW_ReduceAction157_parser___ReduceAction157___init(REGB0);
1600 /* ./parser//parser.nit:154 */
1601 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1602 /* ./parser//parser.nit:313 */
1603 REGB0 = TAG_Int(17);
1604 fra.me.REG[2] = NEW_ReduceAction158_parser___ReduceAction158___init(REGB0);
1605 /* ./parser//parser.nit:154 */
1606 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1607 /* ./parser//parser.nit:314 */
1608 REGB0 = TAG_Int(17);
1609 fra.me.REG[2] = NEW_ReduceAction159_parser___ReduceAction159___init(REGB0);
1610 /* ./parser//parser.nit:154 */
1611 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1612 /* ./parser//parser.nit:315 */
1613 REGB0 = TAG_Int(17);
1614 fra.me.REG[2] = NEW_ReduceAction160_parser___ReduceAction160___init(REGB0);
1615 /* ./parser//parser.nit:154 */
1616 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1617 /* ./parser//parser.nit:316 */
1618 REGB0 = TAG_Int(17);
1619 fra.me.REG[2] = NEW_ReduceAction161_parser___ReduceAction161___init(REGB0);
1620 /* ./parser//parser.nit:154 */
1621 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1622 /* ./parser//parser.nit:317 */
1623 REGB0 = TAG_Int(17);
1624 fra.me.REG[2] = NEW_ReduceAction162_parser___ReduceAction162___init(REGB0);
1625 /* ./parser//parser.nit:154 */
1626 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1627 /* ./parser//parser.nit:318 */
1628 REGB0 = TAG_Int(17);
1629 fra.me.REG[2] = NEW_ReduceAction163_parser___ReduceAction163___init(REGB0);
1630 /* ./parser//parser.nit:154 */
1631 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1632 /* ./parser//parser.nit:319 */
1633 REGB0 = TAG_Int(17);
1634 fra.me.REG[2] = NEW_ReduceAction164_parser___ReduceAction164___init(REGB0);
1635 /* ./parser//parser.nit:154 */
1636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1637 /* ./parser//parser.nit:320 */
1638 REGB0 = TAG_Int(17);
1639 fra.me.REG[2] = NEW_ReduceAction165_parser___ReduceAction165___init(REGB0);
1640 /* ./parser//parser.nit:154 */
1641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1642 /* ./parser//parser.nit:321 */
1643 REGB0 = TAG_Int(17);
1644 fra.me.REG[2] = NEW_ReduceAction166_parser___ReduceAction166___init(REGB0);
1645 /* ./parser//parser.nit:154 */
1646 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1647 /* ./parser//parser.nit:322 */
1648 REGB0 = TAG_Int(18);
1649 fra.me.REG[2] = NEW_ReduceAction167_parser___ReduceAction167___init(REGB0);
1650 /* ./parser//parser.nit:154 */
1651 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1652 /* ./parser//parser.nit:323 */
1653 REGB0 = TAG_Int(18);
1654 fra.me.REG[2] = NEW_ReduceAction168_parser___ReduceAction168___init(REGB0);
1655 /* ./parser//parser.nit:154 */
1656 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1657 /* ./parser//parser.nit:324 */
1658 REGB0 = TAG_Int(18);
1659 fra.me.REG[2] = NEW_ReduceAction169_parser___ReduceAction169___init(REGB0);
1660 /* ./parser//parser.nit:154 */
1661 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1662 /* ./parser//parser.nit:325 */
1663 REGB0 = TAG_Int(18);
1664 fra.me.REG[2] = NEW_ReduceAction170_parser___ReduceAction170___init(REGB0);
1665 /* ./parser//parser.nit:154 */
1666 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1667 /* ./parser//parser.nit:326 */
1668 REGB0 = TAG_Int(18);
1669 fra.me.REG[2] = NEW_ReduceAction171_parser___ReduceAction171___init(REGB0);
1670 /* ./parser//parser.nit:154 */
1671 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1672 /* ./parser//parser.nit:327 */
1673 REGB0 = TAG_Int(18);
1674 fra.me.REG[2] = NEW_ReduceAction172_parser___ReduceAction172___init(REGB0);
1675 /* ./parser//parser.nit:154 */
1676 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1677 /* ./parser//parser.nit:328 */
1678 REGB0 = TAG_Int(18);
1679 fra.me.REG[2] = NEW_ReduceAction173_parser___ReduceAction173___init(REGB0);
1680 /* ./parser//parser.nit:154 */
1681 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1682 /* ./parser//parser.nit:329 */
1683 REGB0 = TAG_Int(18);
1684 fra.me.REG[2] = NEW_ReduceAction174_parser___ReduceAction174___init(REGB0);
1685 /* ./parser//parser.nit:154 */
1686 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1687 /* ./parser//parser.nit:330 */
1688 REGB0 = TAG_Int(19);
1689 fra.me.REG[2] = NEW_ReduceAction175_parser___ReduceAction175___init(REGB0);
1690 /* ./parser//parser.nit:154 */
1691 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1692 /* ./parser//parser.nit:331 */
1693 REGB0 = TAG_Int(19);
1694 fra.me.REG[2] = NEW_ReduceAction176_parser___ReduceAction176___init(REGB0);
1695 /* ./parser//parser.nit:154 */
1696 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1697 /* ./parser//parser.nit:332 */
1698 REGB0 = TAG_Int(19);
1699 fra.me.REG[2] = NEW_ReduceAction177_parser___ReduceAction177___init(REGB0);
1700 /* ./parser//parser.nit:154 */
1701 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1702 /* ./parser//parser.nit:333 */
1703 REGB0 = TAG_Int(19);
1704 fra.me.REG[2] = NEW_ReduceAction178_parser___ReduceAction178___init(REGB0);
1705 /* ./parser//parser.nit:154 */
1706 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1707 /* ./parser//parser.nit:334 */
1708 REGB0 = TAG_Int(20);
1709 fra.me.REG[2] = NEW_ReduceAction179_parser___ReduceAction179___init(REGB0);
1710 /* ./parser//parser.nit:154 */
1711 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1712 /* ./parser//parser.nit:335 */
1713 REGB0 = TAG_Int(20);
1714 fra.me.REG[2] = NEW_ReduceAction180_parser___ReduceAction180___init(REGB0);
1715 /* ./parser//parser.nit:154 */
1716 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1717 /* ./parser//parser.nit:336 */
1718 REGB0 = TAG_Int(20);
1719 fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction181___init(REGB0);
1720 /* ./parser//parser.nit:154 */
1721 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1722 /* ./parser//parser.nit:337 */
1723 REGB0 = TAG_Int(21);
1724 fra.me.REG[2] = NEW_ReduceAction182_parser___ReduceAction182___init(REGB0);
1725 /* ./parser//parser.nit:154 */
1726 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1727 /* ./parser//parser.nit:338 */
1728 REGB0 = TAG_Int(22);
1729 fra.me.REG[2] = NEW_ReduceAction183_parser___ReduceAction183___init(REGB0);
1730 /* ./parser//parser.nit:154 */
1731 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1732 /* ./parser//parser.nit:339 */
1733 REGB0 = TAG_Int(22);
1734 fra.me.REG[2] = NEW_ReduceAction184_parser___ReduceAction184___init(REGB0);
1735 /* ./parser//parser.nit:154 */
1736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1737 /* ./parser//parser.nit:340 */
1738 REGB0 = TAG_Int(22);
1739 fra.me.REG[2] = NEW_ReduceAction185_parser___ReduceAction185___init(REGB0);
1740 /* ./parser//parser.nit:154 */
1741 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1742 /* ./parser//parser.nit:341 */
1743 REGB0 = TAG_Int(23);
1744 fra.me.REG[2] = NEW_ReduceAction186_parser___ReduceAction186___init(REGB0);
1745 /* ./parser//parser.nit:154 */
1746 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1747 /* ./parser//parser.nit:342 */
1748 REGB0 = TAG_Int(24);
1749 fra.me.REG[2] = NEW_ReduceAction187_parser___ReduceAction187___init(REGB0);
1750 /* ./parser//parser.nit:154 */
1751 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1752 /* ./parser//parser.nit:343 */
1753 REGB0 = TAG_Int(24);
1754 fra.me.REG[2] = NEW_ReduceAction188_parser___ReduceAction188___init(REGB0);
1755 /* ./parser//parser.nit:154 */
1756 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1757 /* ./parser//parser.nit:344 */
1758 REGB0 = TAG_Int(24);
1759 fra.me.REG[2] = NEW_ReduceAction189_parser___ReduceAction189___init(REGB0);
1760 /* ./parser//parser.nit:154 */
1761 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1762 /* ./parser//parser.nit:345 */
1763 REGB0 = TAG_Int(24);
1764 fra.me.REG[2] = NEW_ReduceAction190_parser___ReduceAction190___init(REGB0);
1765 /* ./parser//parser.nit:154 */
1766 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1767 /* ./parser//parser.nit:346 */
1768 REGB0 = TAG_Int(24);
1769 fra.me.REG[2] = NEW_ReduceAction191_parser___ReduceAction191___init(REGB0);
1770 /* ./parser//parser.nit:154 */
1771 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1772 /* ./parser//parser.nit:347 */
1773 REGB0 = TAG_Int(24);
1774 fra.me.REG[2] = NEW_ReduceAction192_parser___ReduceAction192___init(REGB0);
1775 /* ./parser//parser.nit:154 */
1776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1777 /* ./parser//parser.nit:348 */
1778 REGB0 = TAG_Int(25);
1779 fra.me.REG[2] = NEW_ReduceAction193_parser___ReduceAction193___init(REGB0);
1780 /* ./parser//parser.nit:154 */
1781 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1782 /* ./parser//parser.nit:349 */
1783 REGB0 = TAG_Int(26);
1784 fra.me.REG[2] = NEW_ReduceAction194_parser___ReduceAction194___init(REGB0);
1785 /* ./parser//parser.nit:154 */
1786 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1787 /* ./parser//parser.nit:350 */
1788 REGB0 = TAG_Int(26);
1789 fra.me.REG[2] = NEW_ReduceAction195_parser___ReduceAction195___init(REGB0);
1790 /* ./parser//parser.nit:154 */
1791 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1792 /* ./parser//parser.nit:351 */
1793 REGB0 = TAG_Int(26);
1794 fra.me.REG[2] = NEW_ReduceAction196_parser___ReduceAction196___init(REGB0);
1795 /* ./parser//parser.nit:154 */
1796 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1797 /* ./parser//parser.nit:352 */
1798 REGB0 = TAG_Int(26);
1799 fra.me.REG[2] = NEW_ReduceAction197_parser___ReduceAction197___init(REGB0);
1800 /* ./parser//parser.nit:154 */
1801 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1802 /* ./parser//parser.nit:353 */
1803 REGB0 = TAG_Int(27);
1804 fra.me.REG[2] = NEW_ReduceAction198_parser___ReduceAction198___init(REGB0);
1805 /* ./parser//parser.nit:154 */
1806 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1807 /* ./parser//parser.nit:354 */
1808 REGB0 = TAG_Int(27);
1809 fra.me.REG[2] = NEW_ReduceAction199_parser___ReduceAction199___init(REGB0);
1810 /* ./parser//parser.nit:154 */
1811 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1812 /* ./parser//parser.nit:355 */
1813 REGB0 = TAG_Int(28);
1814 fra.me.REG[2] = NEW_ReduceAction200_parser___ReduceAction200___init(REGB0);
1815 /* ./parser//parser.nit:154 */
1816 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1817 /* ./parser//parser.nit:356 */
1818 REGB0 = TAG_Int(29);
1819 fra.me.REG[2] = NEW_ReduceAction200_parser___ReduceAction200___init(REGB0);
1820 /* ./parser//parser.nit:154 */
1821 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1822 /* ./parser//parser.nit:357 */
1823 REGB0 = TAG_Int(30);
1824 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
1825 /* ./parser//parser.nit:154 */
1826 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1827 /* ./parser//parser.nit:358 */
1828 REGB0 = TAG_Int(30);
1829 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
1830 /* ./parser//parser.nit:154 */
1831 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1832 /* ./parser//parser.nit:359 */
1833 REGB0 = TAG_Int(30);
1834 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
1835 /* ./parser//parser.nit:154 */
1836 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1837 /* ./parser//parser.nit:360 */
1838 REGB0 = TAG_Int(30);
1839 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1840 /* ./parser//parser.nit:154 */
1841 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1842 /* ./parser//parser.nit:361 */
1843 REGB0 = TAG_Int(31);
1844 fra.me.REG[2] = NEW_ReduceAction206_parser___ReduceAction206___init(REGB0);
1845 /* ./parser//parser.nit:154 */
1846 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1847 /* ./parser//parser.nit:362 */
1848 REGB0 = TAG_Int(31);
1849 fra.me.REG[2] = NEW_ReduceAction207_parser___ReduceAction207___init(REGB0);
1850 /* ./parser//parser.nit:154 */
1851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1852 /* ./parser//parser.nit:363 */
1853 REGB0 = TAG_Int(32);
1854 fra.me.REG[2] = NEW_ReduceAction208_parser___ReduceAction208___init(REGB0);
1855 /* ./parser//parser.nit:154 */
1856 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1857 /* ./parser//parser.nit:364 */
1858 REGB0 = TAG_Int(32);
1859 fra.me.REG[2] = NEW_ReduceAction209_parser___ReduceAction209___init(REGB0);
1860 /* ./parser//parser.nit:154 */
1861 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1862 /* ./parser//parser.nit:365 */
1863 REGB0 = TAG_Int(33);
1864 fra.me.REG[2] = NEW_ReduceAction210_parser___ReduceAction210___init(REGB0);
1865 /* ./parser//parser.nit:154 */
1866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1867 /* ./parser//parser.nit:366 */
1868 REGB0 = TAG_Int(34);
1869 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1870 /* ./parser//parser.nit:154 */
1871 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1872 /* ./parser//parser.nit:367 */
1873 REGB0 = TAG_Int(34);
1874 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1875 /* ./parser//parser.nit:154 */
1876 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1877 /* ./parser//parser.nit:368 */
1878 REGB0 = TAG_Int(34);
1879 fra.me.REG[2] = NEW_ReduceAction213_parser___ReduceAction213___init(REGB0);
1880 /* ./parser//parser.nit:154 */
1881 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1882 /* ./parser//parser.nit:369 */
1883 REGB0 = TAG_Int(34);
1884 fra.me.REG[2] = NEW_ReduceAction214_parser___ReduceAction214___init(REGB0);
1885 /* ./parser//parser.nit:154 */
1886 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1887 /* ./parser//parser.nit:370 */
1888 REGB0 = TAG_Int(34);
1889 fra.me.REG[2] = NEW_ReduceAction215_parser___ReduceAction215___init(REGB0);
1890 /* ./parser//parser.nit:154 */
1891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1892 /* ./parser//parser.nit:371 */
1893 REGB0 = TAG_Int(34);
1894 fra.me.REG[2] = NEW_ReduceAction216_parser___ReduceAction216___init(REGB0);
1895 /* ./parser//parser.nit:154 */
1896 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1897 /* ./parser//parser.nit:372 */
1898 REGB0 = TAG_Int(34);
1899 fra.me.REG[2] = NEW_ReduceAction217_parser___ReduceAction217___init(REGB0);
1900 /* ./parser//parser.nit:154 */
1901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1902 /* ./parser//parser.nit:373 */
1903 REGB0 = TAG_Int(34);
1904 fra.me.REG[2] = NEW_ReduceAction218_parser___ReduceAction218___init(REGB0);
1905 /* ./parser//parser.nit:154 */
1906 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1907 /* ./parser//parser.nit:374 */
1908 REGB0 = TAG_Int(34);
1909 fra.me.REG[2] = NEW_ReduceAction219_parser___ReduceAction219___init(REGB0);
1910 /* ./parser//parser.nit:154 */
1911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1912 /* ./parser//parser.nit:375 */
1913 REGB0 = TAG_Int(34);
1914 fra.me.REG[2] = NEW_ReduceAction220_parser___ReduceAction220___init(REGB0);
1915 /* ./parser//parser.nit:154 */
1916 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1917 /* ./parser//parser.nit:376 */
1918 REGB0 = TAG_Int(34);
1919 fra.me.REG[2] = NEW_ReduceAction221_parser___ReduceAction221___init(REGB0);
1920 /* ./parser//parser.nit:154 */
1921 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1922 /* ./parser//parser.nit:377 */
1923 REGB0 = TAG_Int(34);
1924 fra.me.REG[2] = NEW_ReduceAction222_parser___ReduceAction222___init(REGB0);
1925 /* ./parser//parser.nit:154 */
1926 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1927 /* ./parser//parser.nit:378 */
1928 REGB0 = TAG_Int(34);
1929 fra.me.REG[2] = NEW_ReduceAction223_parser___ReduceAction223___init(REGB0);
1930 /* ./parser//parser.nit:154 */
1931 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1932 /* ./parser//parser.nit:379 */
1933 REGB0 = TAG_Int(34);
1934 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1935 /* ./parser//parser.nit:154 */
1936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1937 /* ./parser//parser.nit:380 */
1938 REGB0 = TAG_Int(34);
1939 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1940 /* ./parser//parser.nit:154 */
1941 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1942 /* ./parser//parser.nit:381 */
1943 REGB0 = TAG_Int(34);
1944 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1945 /* ./parser//parser.nit:154 */
1946 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1947 /* ./parser//parser.nit:382 */
1948 REGB0 = TAG_Int(34);
1949 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1950 /* ./parser//parser.nit:154 */
1951 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1952 /* ./parser//parser.nit:383 */
1953 REGB0 = TAG_Int(34);
1954 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1955 /* ./parser//parser.nit:154 */
1956 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1957 /* ./parser//parser.nit:384 */
1958 REGB0 = TAG_Int(34);
1959 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
1960 /* ./parser//parser.nit:154 */
1961 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1962 /* ./parser//parser.nit:385 */
1963 REGB0 = TAG_Int(34);
1964 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
1965 /* ./parser//parser.nit:154 */
1966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1967 /* ./parser//parser.nit:386 */
1968 REGB0 = TAG_Int(34);
1969 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
1970 /* ./parser//parser.nit:154 */
1971 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1972 /* ./parser//parser.nit:387 */
1973 REGB0 = TAG_Int(34);
1974 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
1975 /* ./parser//parser.nit:154 */
1976 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1977 /* ./parser//parser.nit:388 */
1978 REGB0 = TAG_Int(34);
1979 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
1980 /* ./parser//parser.nit:154 */
1981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1982 /* ./parser//parser.nit:389 */
1983 REGB0 = TAG_Int(34);
1984 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
1985 /* ./parser//parser.nit:154 */
1986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1987 /* ./parser//parser.nit:390 */
1988 REGB0 = TAG_Int(34);
1989 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
1990 /* ./parser//parser.nit:154 */
1991 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1992 /* ./parser//parser.nit:391 */
1993 REGB0 = TAG_Int(34);
1994 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
1995 /* ./parser//parser.nit:154 */
1996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1997 /* ./parser//parser.nit:392 */
1998 REGB0 = TAG_Int(34);
1999 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
2000 /* ./parser//parser.nit:154 */
2001 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2002 /* ./parser//parser.nit:393 */
2003 REGB0 = TAG_Int(35);
2004 fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction238___init(REGB0);
2005 /* ./parser//parser.nit:154 */
2006 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2007 /* ./parser//parser.nit:394 */
2008 REGB0 = TAG_Int(36);
2009 fra.me.REG[2] = NEW_ReduceAction239_parser___ReduceAction239___init(REGB0);
2010 /* ./parser//parser.nit:154 */
2011 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2012 /* ./parser//parser.nit:395 */
2013 REGB0 = TAG_Int(36);
2014 fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction240___init(REGB0);
2015 /* ./parser//parser.nit:154 */
2016 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2017 /* ./parser//parser.nit:396 */
2018 REGB0 = TAG_Int(37);
2019 fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction241___init(REGB0);
2020 /* ./parser//parser.nit:154 */
2021 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2022 /* ./parser//parser.nit:397 */
2023 REGB0 = TAG_Int(37);
2024 fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction242___init(REGB0);
2025 /* ./parser//parser.nit:154 */
2026 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2027 /* ./parser//parser.nit:398 */
2028 REGB0 = TAG_Int(37);
2029 fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction243___init(REGB0);
2030 /* ./parser//parser.nit:154 */
2031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2032 /* ./parser//parser.nit:399 */
2033 REGB0 = TAG_Int(37);
2034 fra.me.REG[2] = NEW_ReduceAction244_parser___ReduceAction244___init(REGB0);
2035 /* ./parser//parser.nit:154 */
2036 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2037 /* ./parser//parser.nit:400 */
2038 REGB0 = TAG_Int(37);
2039 fra.me.REG[2] = NEW_ReduceAction245_parser___ReduceAction245___init(REGB0);
2040 /* ./parser//parser.nit:154 */
2041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2042 /* ./parser//parser.nit:401 */
2043 REGB0 = TAG_Int(37);
2044 fra.me.REG[2] = NEW_ReduceAction246_parser___ReduceAction246___init(REGB0);
2045 /* ./parser//parser.nit:154 */
2046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2047 /* ./parser//parser.nit:402 */
2048 REGB0 = TAG_Int(38);
2049 fra.me.REG[2] = NEW_ReduceAction247_parser___ReduceAction247___init(REGB0);
2050 /* ./parser//parser.nit:154 */
2051 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2052 /* ./parser//parser.nit:403 */
2053 REGB0 = TAG_Int(38);
2054 fra.me.REG[2] = NEW_ReduceAction248_parser___ReduceAction248___init(REGB0);
2055 /* ./parser//parser.nit:154 */
2056 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2057 /* ./parser//parser.nit:404 */
2058 REGB0 = TAG_Int(38);
2059 fra.me.REG[2] = NEW_ReduceAction249_parser___ReduceAction249___init(REGB0);
2060 /* ./parser//parser.nit:154 */
2061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2062 /* ./parser//parser.nit:405 */
2063 REGB0 = TAG_Int(38);
2064 fra.me.REG[2] = NEW_ReduceAction250_parser___ReduceAction250___init(REGB0);
2065 /* ./parser//parser.nit:154 */
2066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2067 /* ./parser//parser.nit:406 */
2068 REGB0 = TAG_Int(39);
2069 fra.me.REG[2] = NEW_ReduceAction251_parser___ReduceAction251___init(REGB0);
2070 /* ./parser//parser.nit:154 */
2071 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2072 /* ./parser//parser.nit:407 */
2073 REGB0 = TAG_Int(39);
2074 fra.me.REG[2] = NEW_ReduceAction252_parser___ReduceAction252___init(REGB0);
2075 /* ./parser//parser.nit:154 */
2076 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2077 /* ./parser//parser.nit:408 */
2078 REGB0 = TAG_Int(40);
2079 fra.me.REG[2] = NEW_ReduceAction253_parser___ReduceAction253___init(REGB0);
2080 /* ./parser//parser.nit:154 */
2081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2082 /* ./parser//parser.nit:409 */
2083 REGB0 = TAG_Int(41);
2084 fra.me.REG[2] = NEW_ReduceAction254_parser___ReduceAction254___init(REGB0);
2085 /* ./parser//parser.nit:154 */
2086 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2087 /* ./parser//parser.nit:410 */
2088 REGB0 = TAG_Int(41);
2089 fra.me.REG[2] = NEW_ReduceAction255_parser___ReduceAction255___init(REGB0);
2090 /* ./parser//parser.nit:154 */
2091 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2092 /* ./parser//parser.nit:411 */
2093 REGB0 = TAG_Int(41);
2094 fra.me.REG[2] = NEW_ReduceAction256_parser___ReduceAction256___init(REGB0);
2095 /* ./parser//parser.nit:154 */
2096 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2097 /* ./parser//parser.nit:412 */
2098 REGB0 = TAG_Int(41);
2099 fra.me.REG[2] = NEW_ReduceAction257_parser___ReduceAction257___init(REGB0);
2100 /* ./parser//parser.nit:154 */
2101 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2102 /* ./parser//parser.nit:413 */
2103 REGB0 = TAG_Int(42);
2104 fra.me.REG[2] = NEW_ReduceAction258_parser___ReduceAction258___init(REGB0);
2105 /* ./parser//parser.nit:154 */
2106 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2107 /* ./parser//parser.nit:414 */
2108 REGB0 = TAG_Int(42);
2109 fra.me.REG[2] = NEW_ReduceAction259_parser___ReduceAction259___init(REGB0);
2110 /* ./parser//parser.nit:154 */
2111 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2112 /* ./parser//parser.nit:415 */
2113 REGB0 = TAG_Int(42);
2114 fra.me.REG[2] = NEW_ReduceAction260_parser___ReduceAction260___init(REGB0);
2115 /* ./parser//parser.nit:154 */
2116 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2117 /* ./parser//parser.nit:416 */
2118 REGB0 = TAG_Int(42);
2119 fra.me.REG[2] = NEW_ReduceAction261_parser___ReduceAction261___init(REGB0);
2120 /* ./parser//parser.nit:154 */
2121 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2122 /* ./parser//parser.nit:417 */
2123 REGB0 = TAG_Int(42);
2124 fra.me.REG[2] = NEW_ReduceAction262_parser___ReduceAction262___init(REGB0);
2125 /* ./parser//parser.nit:154 */
2126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2127 /* ./parser//parser.nit:418 */
2128 REGB0 = TAG_Int(42);
2129 fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction263___init(REGB0);
2130 /* ./parser//parser.nit:154 */
2131 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2132 /* ./parser//parser.nit:419 */
2133 REGB0 = TAG_Int(42);
2134 fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction264___init(REGB0);
2135 /* ./parser//parser.nit:154 */
2136 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2137 /* ./parser//parser.nit:420 */
2138 REGB0 = TAG_Int(42);
2139 fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction265___init(REGB0);
2140 /* ./parser//parser.nit:154 */
2141 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2142 /* ./parser//parser.nit:421 */
2143 REGB0 = TAG_Int(42);
2144 fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction266___init(REGB0);
2145 /* ./parser//parser.nit:154 */
2146 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2147 /* ./parser//parser.nit:422 */
2148 REGB0 = TAG_Int(42);
2149 fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction267___init(REGB0);
2150 /* ./parser//parser.nit:154 */
2151 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2152 /* ./parser//parser.nit:423 */
2153 REGB0 = TAG_Int(43);
2154 fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction268___init(REGB0);
2155 /* ./parser//parser.nit:154 */
2156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2157 /* ./parser//parser.nit:424 */
2158 REGB0 = TAG_Int(43);
2159 fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction269___init(REGB0);
2160 /* ./parser//parser.nit:154 */
2161 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2162 /* ./parser//parser.nit:425 */
2163 REGB0 = TAG_Int(44);
2164 fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction270___init(REGB0);
2165 /* ./parser//parser.nit:154 */
2166 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2167 /* ./parser//parser.nit:426 */
2168 REGB0 = TAG_Int(44);
2169 fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction271___init(REGB0);
2170 /* ./parser//parser.nit:154 */
2171 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2172 /* ./parser//parser.nit:427 */
2173 REGB0 = TAG_Int(45);
2174 fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction272___init(REGB0);
2175 /* ./parser//parser.nit:154 */
2176 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2177 /* ./parser//parser.nit:428 */
2178 REGB0 = TAG_Int(45);
2179 fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction273___init(REGB0);
2180 /* ./parser//parser.nit:154 */
2181 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2182 /* ./parser//parser.nit:429 */
2183 REGB0 = TAG_Int(45);
2184 fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction274___init(REGB0);
2185 /* ./parser//parser.nit:154 */
2186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2187 /* ./parser//parser.nit:430 */
2188 REGB0 = TAG_Int(45);
2189 fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction275___init(REGB0);
2190 /* ./parser//parser.nit:154 */
2191 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2192 /* ./parser//parser.nit:431 */
2193 REGB0 = TAG_Int(45);
2194 fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction276___init(REGB0);
2195 /* ./parser//parser.nit:154 */
2196 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2197 /* ./parser//parser.nit:432 */
2198 REGB0 = TAG_Int(46);
2199 fra.me.REG[2] = NEW_ReduceAction210_parser___ReduceAction210___init(REGB0);
2200 /* ./parser//parser.nit:154 */
2201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2202 /* ./parser//parser.nit:433 */
2203 REGB0 = TAG_Int(46);
2204 fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction36___init(REGB0);
2205 /* ./parser//parser.nit:154 */
2206 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2207 /* ./parser//parser.nit:434 */
2208 REGB0 = TAG_Int(47);
2209 fra.me.REG[2] = NEW_ReduceAction279_parser___ReduceAction279___init(REGB0);
2210 /* ./parser//parser.nit:154 */
2211 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2212 /* ./parser//parser.nit:435 */
2213 REGB0 = TAG_Int(47);
2214 fra.me.REG[2] = NEW_ReduceAction280_parser___ReduceAction280___init(REGB0);
2215 /* ./parser//parser.nit:154 */
2216 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2217 /* ./parser//parser.nit:436 */
2218 REGB0 = TAG_Int(48);
2219 fra.me.REG[2] = NEW_ReduceAction281_parser___ReduceAction281___init(REGB0);
2220 /* ./parser//parser.nit:154 */
2221 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2222 /* ./parser//parser.nit:437 */
2223 REGB0 = TAG_Int(48);
2224 fra.me.REG[2] = NEW_ReduceAction282_parser___ReduceAction282___init(REGB0);
2225 /* ./parser//parser.nit:154 */
2226 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2227 /* ./parser//parser.nit:438 */
2228 REGB0 = TAG_Int(49);
2229 fra.me.REG[2] = NEW_ReduceAction283_parser___ReduceAction283___init(REGB0);
2230 /* ./parser//parser.nit:154 */
2231 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2232 /* ./parser//parser.nit:439 */
2233 REGB0 = TAG_Int(49);
2234 fra.me.REG[2] = NEW_ReduceAction284_parser___ReduceAction284___init(REGB0);
2235 /* ./parser//parser.nit:154 */
2236 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2237 /* ./parser//parser.nit:440 */
2238 REGB0 = TAG_Int(50);
2239 fra.me.REG[2] = NEW_ReduceAction285_parser___ReduceAction285___init(REGB0);
2240 /* ./parser//parser.nit:154 */
2241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2242 /* ./parser//parser.nit:441 */
2243 REGB0 = TAG_Int(50);
2244 fra.me.REG[2] = NEW_ReduceAction286_parser___ReduceAction286___init(REGB0);
2245 /* ./parser//parser.nit:154 */
2246 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2247 /* ./parser//parser.nit:442 */
2248 REGB0 = TAG_Int(50);
2249 fra.me.REG[2] = NEW_ReduceAction287_parser___ReduceAction287___init(REGB0);
2250 /* ./parser//parser.nit:154 */
2251 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2252 /* ./parser//parser.nit:443 */
2253 REGB0 = TAG_Int(50);
2254 fra.me.REG[2] = NEW_ReduceAction288_parser___ReduceAction288___init(REGB0);
2255 /* ./parser//parser.nit:154 */
2256 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2257 /* ./parser//parser.nit:444 */
2258 REGB0 = TAG_Int(51);
2259 fra.me.REG[2] = NEW_ReduceAction289_parser___ReduceAction289___init(REGB0);
2260 /* ./parser//parser.nit:154 */
2261 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2262 /* ./parser//parser.nit:445 */
2263 REGB0 = TAG_Int(52);
2264 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2265 /* ./parser//parser.nit:154 */
2266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2267 /* ./parser//parser.nit:446 */
2268 REGB0 = TAG_Int(52);
2269 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
2270 /* ./parser//parser.nit:154 */
2271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2272 /* ./parser//parser.nit:447 */
2273 REGB0 = TAG_Int(52);
2274 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
2275 /* ./parser//parser.nit:154 */
2276 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2277 /* ./parser//parser.nit:448 */
2278 REGB0 = TAG_Int(52);
2279 fra.me.REG[2] = NEW_ReduceAction293_parser___ReduceAction293___init(REGB0);
2280 /* ./parser//parser.nit:154 */
2281 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2282 /* ./parser//parser.nit:449 */
2283 REGB0 = TAG_Int(53);
2284 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2285 /* ./parser//parser.nit:154 */
2286 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2287 /* ./parser//parser.nit:450 */
2288 REGB0 = TAG_Int(53);
2289 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
2290 /* ./parser//parser.nit:154 */
2291 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2292 /* ./parser//parser.nit:451 */
2293 REGB0 = TAG_Int(54);
2294 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2295 /* ./parser//parser.nit:154 */
2296 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2297 /* ./parser//parser.nit:452 */
2298 REGB0 = TAG_Int(54);
2299 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
2300 /* ./parser//parser.nit:154 */
2301 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2302 /* ./parser//parser.nit:453 */
2303 REGB0 = TAG_Int(54);
2304 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
2305 /* ./parser//parser.nit:154 */
2306 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2307 /* ./parser//parser.nit:454 */
2308 REGB0 = TAG_Int(54);
2309 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
2310 /* ./parser//parser.nit:154 */
2311 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2312 /* ./parser//parser.nit:455 */
2313 REGB0 = TAG_Int(55);
2314 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2315 /* ./parser//parser.nit:154 */
2316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2317 /* ./parser//parser.nit:456 */
2318 REGB0 = TAG_Int(55);
2319 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
2320 /* ./parser//parser.nit:154 */
2321 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2322 /* ./parser//parser.nit:457 */
2323 REGB0 = TAG_Int(56);
2324 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2325 /* ./parser//parser.nit:154 */
2326 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2327 /* ./parser//parser.nit:458 */
2328 REGB0 = TAG_Int(56);
2329 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
2330 /* ./parser//parser.nit:154 */
2331 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2332 /* ./parser//parser.nit:459 */
2333 REGB0 = TAG_Int(56);
2334 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
2335 /* ./parser//parser.nit:154 */
2336 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2337 /* ./parser//parser.nit:460 */
2338 REGB0 = TAG_Int(56);
2339 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
2340 /* ./parser//parser.nit:154 */
2341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2342 /* ./parser//parser.nit:461 */
2343 REGB0 = TAG_Int(56);
2344 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
2345 /* ./parser//parser.nit:154 */
2346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2347 /* ./parser//parser.nit:462 */
2348 REGB0 = TAG_Int(56);
2349 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
2350 /* ./parser//parser.nit:154 */
2351 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2352 /* ./parser//parser.nit:463 */
2353 REGB0 = TAG_Int(56);
2354 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
2355 /* ./parser//parser.nit:154 */
2356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2357 /* ./parser//parser.nit:464 */
2358 REGB0 = TAG_Int(56);
2359 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
2360 /* ./parser//parser.nit:154 */
2361 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2362 /* ./parser//parser.nit:465 */
2363 REGB0 = TAG_Int(56);
2364 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
2365 /* ./parser//parser.nit:154 */
2366 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2367 /* ./parser//parser.nit:466 */
2368 REGB0 = TAG_Int(56);
2369 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
2370 /* ./parser//parser.nit:154 */
2371 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2372 /* ./parser//parser.nit:467 */
2373 REGB0 = TAG_Int(56);
2374 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
2375 /* ./parser//parser.nit:154 */
2376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2377 /* ./parser//parser.nit:468 */
2378 REGB0 = TAG_Int(56);
2379 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
2380 /* ./parser//parser.nit:154 */
2381 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2382 /* ./parser//parser.nit:469 */
2383 REGB0 = TAG_Int(57);
2384 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2385 /* ./parser//parser.nit:154 */
2386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2387 /* ./parser//parser.nit:470 */
2388 REGB0 = TAG_Int(57);
2389 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
2390 /* ./parser//parser.nit:154 */
2391 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2392 /* ./parser//parser.nit:471 */
2393 REGB0 = TAG_Int(57);
2394 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
2395 /* ./parser//parser.nit:154 */
2396 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2397 /* ./parser//parser.nit:472 */
2398 REGB0 = TAG_Int(58);
2399 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2400 /* ./parser//parser.nit:154 */
2401 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2402 /* ./parser//parser.nit:473 */
2403 REGB0 = TAG_Int(58);
2404 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
2405 /* ./parser//parser.nit:154 */
2406 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2407 /* ./parser//parser.nit:474 */
2408 REGB0 = TAG_Int(58);
2409 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
2410 /* ./parser//parser.nit:154 */
2411 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2412 /* ./parser//parser.nit:475 */
2413 REGB0 = TAG_Int(58);
2414 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
2415 /* ./parser//parser.nit:154 */
2416 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2417 /* ./parser//parser.nit:476 */
2418 REGB0 = TAG_Int(59);
2419 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2420 /* ./parser//parser.nit:154 */
2421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2422 /* ./parser//parser.nit:477 */
2423 REGB0 = TAG_Int(59);
2424 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
2425 /* ./parser//parser.nit:154 */
2426 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2427 /* ./parser//parser.nit:478 */
2428 REGB0 = TAG_Int(59);
2429 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
2430 /* ./parser//parser.nit:154 */
2431 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2432 /* ./parser//parser.nit:479 */
2433 REGB0 = TAG_Int(60);
2434 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2435 /* ./parser//parser.nit:154 */
2436 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2437 /* ./parser//parser.nit:480 */
2438 REGB0 = TAG_Int(60);
2439 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
2440 /* ./parser//parser.nit:154 */
2441 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2442 /* ./parser//parser.nit:481 */
2443 REGB0 = TAG_Int(60);
2444 fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction326___init(REGB0);
2445 /* ./parser//parser.nit:154 */
2446 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2447 /* ./parser//parser.nit:482 */
2448 REGB0 = TAG_Int(60);
2449 fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction327___init(REGB0);
2450 /* ./parser//parser.nit:154 */
2451 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2452 /* ./parser//parser.nit:483 */
2453 REGB0 = TAG_Int(61);
2454 fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction328___init(REGB0);
2455 /* ./parser//parser.nit:154 */
2456 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2457 /* ./parser//parser.nit:484 */
2458 REGB0 = TAG_Int(61);
2459 fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction329___init(REGB0);
2460 /* ./parser//parser.nit:154 */
2461 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2462 /* ./parser//parser.nit:485 */
2463 REGB0 = TAG_Int(61);
2464 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
2465 /* ./parser//parser.nit:154 */
2466 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2467 /* ./parser//parser.nit:486 */
2468 REGB0 = TAG_Int(61);
2469 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
2470 /* ./parser//parser.nit:154 */
2471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2472 /* ./parser//parser.nit:487 */
2473 REGB0 = TAG_Int(61);
2474 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
2475 /* ./parser//parser.nit:154 */
2476 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2477 /* ./parser//parser.nit:488 */
2478 REGB0 = TAG_Int(61);
2479 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
2480 /* ./parser//parser.nit:154 */
2481 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2482 /* ./parser//parser.nit:489 */
2483 REGB0 = TAG_Int(61);
2484 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
2485 /* ./parser//parser.nit:154 */
2486 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2487 /* ./parser//parser.nit:490 */
2488 REGB0 = TAG_Int(61);
2489 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
2490 /* ./parser//parser.nit:154 */
2491 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2492 /* ./parser//parser.nit:491 */
2493 REGB0 = TAG_Int(61);
2494 fra.me.REG[2] = NEW_ReduceAction336_parser___ReduceAction336___init(REGB0);
2495 /* ./parser//parser.nit:154 */
2496 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2497 /* ./parser//parser.nit:492 */
2498 REGB0 = TAG_Int(61);
2499 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
2500 /* ./parser//parser.nit:154 */
2501 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2502 /* ./parser//parser.nit:493 */
2503 REGB0 = TAG_Int(61);
2504 fra.me.REG[2] = NEW_ReduceAction338_parser___ReduceAction338___init(REGB0);
2505 /* ./parser//parser.nit:154 */
2506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2507 /* ./parser//parser.nit:494 */
2508 REGB0 = TAG_Int(61);
2509 fra.me.REG[2] = NEW_ReduceAction339_parser___ReduceAction339___init(REGB0);
2510 /* ./parser//parser.nit:154 */
2511 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2512 /* ./parser//parser.nit:495 */
2513 REGB0 = TAG_Int(61);
2514 fra.me.REG[2] = NEW_ReduceAction340_parser___ReduceAction340___init(REGB0);
2515 /* ./parser//parser.nit:154 */
2516 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2517 /* ./parser//parser.nit:496 */
2518 REGB0 = TAG_Int(61);
2519 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
2520 /* ./parser//parser.nit:154 */
2521 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2522 /* ./parser//parser.nit:497 */
2523 REGB0 = TAG_Int(61);
2524 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
2525 /* ./parser//parser.nit:154 */
2526 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2527 /* ./parser//parser.nit:498 */
2528 REGB0 = TAG_Int(61);
2529 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
2530 /* ./parser//parser.nit:154 */
2531 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2532 /* ./parser//parser.nit:499 */
2533 REGB0 = TAG_Int(61);
2534 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
2535 /* ./parser//parser.nit:154 */
2536 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2537 /* ./parser//parser.nit:500 */
2538 REGB0 = TAG_Int(61);
2539 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
2540 /* ./parser//parser.nit:154 */
2541 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2542 /* ./parser//parser.nit:501 */
2543 REGB0 = TAG_Int(61);
2544 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
2545 /* ./parser//parser.nit:154 */
2546 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2547 /* ./parser//parser.nit:502 */
2548 REGB0 = TAG_Int(61);
2549 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
2550 /* ./parser//parser.nit:154 */
2551 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2552 /* ./parser//parser.nit:503 */
2553 REGB0 = TAG_Int(61);
2554 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
2555 /* ./parser//parser.nit:154 */
2556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2557 /* ./parser//parser.nit:504 */
2558 REGB0 = TAG_Int(61);
2559 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2560 /* ./parser//parser.nit:154 */
2561 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2562 /* ./parser//parser.nit:505 */
2563 REGB0 = TAG_Int(61);
2564 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
2565 /* ./parser//parser.nit:154 */
2566 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2567 /* ./parser//parser.nit:506 */
2568 REGB0 = TAG_Int(61);
2569 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
2570 /* ./parser//parser.nit:154 */
2571 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2572 /* ./parser//parser.nit:507 */
2573 REGB0 = TAG_Int(61);
2574 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
2575 /* ./parser//parser.nit:154 */
2576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2577 /* ./parser//parser.nit:508 */
2578 REGB0 = TAG_Int(62);
2579 fra.me.REG[2] = NEW_ReduceAction353_parser___ReduceAction353___init(REGB0);
2580 /* ./parser//parser.nit:154 */
2581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2582 /* ./parser//parser.nit:509 */
2583 REGB0 = TAG_Int(62);
2584 fra.me.REG[2] = NEW_ReduceAction354_parser___ReduceAction354___init(REGB0);
2585 /* ./parser//parser.nit:154 */
2586 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2587 /* ./parser//parser.nit:510 */
2588 REGB0 = TAG_Int(63);
2589 fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction355___init(REGB0);
2590 /* ./parser//parser.nit:154 */
2591 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2592 /* ./parser//parser.nit:511 */
2593 REGB0 = TAG_Int(64);
2594 fra.me.REG[2] = NEW_ReduceAction356_parser___ReduceAction356___init(REGB0);
2595 /* ./parser//parser.nit:154 */
2596 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2597 /* ./parser//parser.nit:512 */
2598 REGB0 = TAG_Int(65);
2599 fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction355___init(REGB0);
2600 /* ./parser//parser.nit:154 */
2601 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2602 /* ./parser//parser.nit:513 */
2603 REGB0 = TAG_Int(66);
2604 fra.me.REG[2] = NEW_ReduceAction358_parser___ReduceAction358___init(REGB0);
2605 /* ./parser//parser.nit:154 */
2606 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2607 /* ./parser//parser.nit:514 */
2608 REGB0 = TAG_Int(67);
2609 fra.me.REG[2] = NEW_ReduceAction359_parser___ReduceAction359___init(REGB0);
2610 /* ./parser//parser.nit:154 */
2611 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2612 /* ./parser//parser.nit:515 */
2613 REGB0 = TAG_Int(68);
2614 fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction360___init(REGB0);
2615 /* ./parser//parser.nit:154 */
2616 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2617 /* ./parser//parser.nit:516 */
2618 REGB0 = TAG_Int(68);
2619 fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction361___init(REGB0);
2620 /* ./parser//parser.nit:154 */
2621 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2622 /* ./parser//parser.nit:517 */
2623 REGB0 = TAG_Int(68);
2624 fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction181___init(REGB0);
2625 /* ./parser//parser.nit:154 */
2626 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2627 /* ./parser//parser.nit:518 */
2628 REGB0 = TAG_Int(68);
2629 fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction363___init(REGB0);
2630 /* ./parser//parser.nit:154 */
2631 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2632 /* ./parser//parser.nit:519 */
2633 REGB0 = TAG_Int(69);
2634 fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction360___init(REGB0);
2635 /* ./parser//parser.nit:154 */
2636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2637 /* ./parser//parser.nit:520 */
2638 REGB0 = TAG_Int(69);
2639 fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction361___init(REGB0);
2640 /* ./parser//parser.nit:154 */
2641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2642 /* ./parser//parser.nit:521 */
2643 REGB0 = TAG_Int(69);
2644 fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction366___init(REGB0);
2645 /* ./parser//parser.nit:154 */
2646 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2647 /* ./parser//parser.nit:522 */
2648 REGB0 = TAG_Int(69);
2649 fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction181___init(REGB0);
2650 /* ./parser//parser.nit:154 */
2651 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2652 /* ./parser//parser.nit:523 */
2653 REGB0 = TAG_Int(69);
2654 fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction363___init(REGB0);
2655 /* ./parser//parser.nit:154 */
2656 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2657 /* ./parser//parser.nit:524 */
2658 REGB0 = TAG_Int(70);
2659 fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction360___init(REGB0);
2660 /* ./parser//parser.nit:154 */
2661 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2662 /* ./parser//parser.nit:525 */
2663 REGB0 = TAG_Int(70);
2664 fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction361___init(REGB0);
2665 /* ./parser//parser.nit:154 */
2666 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2667 /* ./parser//parser.nit:526 */
2668 REGB0 = TAG_Int(71);
2669 fra.me.REG[2] = NEW_ReduceAction371_parser___ReduceAction371___init(REGB0);
2670 /* ./parser//parser.nit:154 */
2671 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2672 /* ./parser//parser.nit:527 */
2673 REGB0 = TAG_Int(72);
2674 fra.me.REG[2] = NEW_ReduceAction372_parser___ReduceAction372___init(REGB0);
2675 /* ./parser//parser.nit:154 */
2676 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2677 /* ./parser//parser.nit:528 */
2678 REGB0 = TAG_Int(72);
2679 fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction373___init(REGB0);
2680 /* ./parser//parser.nit:154 */
2681 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2682 /* ./parser//parser.nit:529 */
2683 REGB0 = TAG_Int(73);
2684 fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction374___init(REGB0);
2685 /* ./parser//parser.nit:154 */
2686 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2687 /* ./parser//parser.nit:530 */
2688 REGB0 = TAG_Int(73);
2689 fra.me.REG[2] = NEW_ReduceAction375_parser___ReduceAction375___init(REGB0);
2690 /* ./parser//parser.nit:154 */
2691 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2692 /* ./parser//parser.nit:531 */
2693 REGB0 = TAG_Int(74);
2694 fra.me.REG[2] = NEW_ReduceAction376_parser___ReduceAction376___init(REGB0);
2695 /* ./parser//parser.nit:154 */
2696 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2697 /* ./parser//parser.nit:532 */
2698 REGB0 = TAG_Int(74);
2699 fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction377___init(REGB0);
2700 /* ./parser//parser.nit:154 */
2701 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2702 /* ./parser//parser.nit:533 */
2703 REGB0 = TAG_Int(74);
2704 fra.me.REG[2] = NEW_ReduceAction378_parser___ReduceAction378___init(REGB0);
2705 /* ./parser//parser.nit:154 */
2706 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2707 /* ./parser//parser.nit:534 */
2708 REGB0 = TAG_Int(75);
2709 fra.me.REG[2] = NEW_ReduceAction379_parser___ReduceAction379___init(REGB0);
2710 /* ./parser//parser.nit:154 */
2711 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2712 /* ./parser//parser.nit:535 */
2713 REGB0 = TAG_Int(76);
2714 fra.me.REG[2] = NEW_ReduceAction380_parser___ReduceAction380___init(REGB0);
2715 /* ./parser//parser.nit:154 */
2716 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2717 /* ./parser//parser.nit:536 */
2718 REGB0 = TAG_Int(77);
2719 fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction381___init(REGB0);
2720 /* ./parser//parser.nit:154 */
2721 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2722 /* ./parser//parser.nit:537 */
2723 REGB0 = TAG_Int(77);
2724 fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction381___init(REGB0);
2725 /* ./parser//parser.nit:154 */
2726 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2727 /* ./parser//parser.nit:538 */
2728 REGB0 = TAG_Int(78);
2729 fra.me.REG[2] = NEW_ReduceAction383_parser___ReduceAction383___init(REGB0);
2730 /* ./parser//parser.nit:154 */
2731 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2732 /* ./parser//parser.nit:539 */
2733 REGB0 = TAG_Int(78);
2734 fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction384___init(REGB0);
2735 /* ./parser//parser.nit:154 */
2736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2737 /* ./parser//parser.nit:540 */
2738 REGB0 = TAG_Int(78);
2739 fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction36___init(REGB0);
2740 /* ./parser//parser.nit:154 */
2741 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2742 /* ./parser//parser.nit:541 */
2743 REGB0 = TAG_Int(79);
2744 fra.me.REG[2] = NEW_ReduceAction386_parser___ReduceAction386___init(REGB0);
2745 /* ./parser//parser.nit:154 */
2746 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2747 /* ./parser//parser.nit:542 */
2748 REGB0 = TAG_Int(79);
2749 fra.me.REG[2] = NEW_ReduceAction387_parser___ReduceAction387___init(REGB0);
2750 /* ./parser//parser.nit:154 */
2751 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2752 /* ./parser//parser.nit:543 */
2753 REGB0 = TAG_Int(80);
2754 fra.me.REG[2] = NEW_ReduceAction388_parser___ReduceAction388___init(REGB0);
2755 /* ./parser//parser.nit:154 */
2756 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2757 /* ./parser//parser.nit:544 */
2758 REGB0 = TAG_Int(80);
2759 fra.me.REG[2] = NEW_ReduceAction389_parser___ReduceAction389___init(REGB0);
2760 /* ./parser//parser.nit:154 */
2761 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2762 /* ./parser//parser.nit:545 */
2763 REGB0 = TAG_Int(80);
2764 fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction381___init(REGB0);
2765 /* ./parser//parser.nit:154 */
2766 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2767 /* ./parser//parser.nit:546 */
2768 REGB0 = TAG_Int(81);
2769 fra.me.REG[2] = NEW_ReduceAction66_parser___ReduceAction66___init(REGB0);
2770 /* ./parser//parser.nit:154 */
2771 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2772 /* ./parser//parser.nit:547 */
2773 REGB0 = TAG_Int(82);
2774 fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction67___init(REGB0);
2775 /* ./parser//parser.nit:154 */
2776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2777 /* ./parser//parser.nit:548 */
2778 REGB0 = TAG_Int(82);
2779 fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction68___init(REGB0);
2780 /* ./parser//parser.nit:154 */
2781 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2782 /* ./parser//parser.nit:549 */
2783 REGB0 = TAG_Int(82);
2784 fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction69___init(REGB0);
2785 /* ./parser//parser.nit:154 */
2786 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2787 /* ./parser//parser.nit:550 */
2788 REGB0 = TAG_Int(82);
2789 fra.me.REG[2] = NEW_ReduceAction70_parser___ReduceAction70___init(REGB0);
2790 /* ./parser//parser.nit:154 */
2791 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2792 /* ./parser//parser.nit:551 */
2793 REGB0 = TAG_Int(82);
2794 fra.me.REG[2] = NEW_ReduceAction71_parser___ReduceAction71___init(REGB0);
2795 /* ./parser//parser.nit:154 */
2796 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2797 /* ./parser//parser.nit:552 */
2798 REGB0 = TAG_Int(82);
2799 fra.me.REG[2] = NEW_ReduceAction72_parser___ReduceAction72___init(REGB0);
2800 /* ./parser//parser.nit:154 */
2801 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2802 /* ./parser//parser.nit:553 */
2803 REGB0 = TAG_Int(82);
2804 fra.me.REG[2] = NEW_ReduceAction77_parser___ReduceAction77___init(REGB0);
2805 /* ./parser//parser.nit:154 */
2806 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2807 /* ./parser//parser.nit:554 */
2808 REGB0 = TAG_Int(82);
2809 fra.me.REG[2] = NEW_ReduceAction78_parser___ReduceAction78___init(REGB0);
2810 /* ./parser//parser.nit:154 */
2811 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2812 /* ./parser//parser.nit:555 */
2813 REGB0 = TAG_Int(82);
2814 fra.me.REG[2] = NEW_ReduceAction79_parser___ReduceAction79___init(REGB0);
2815 /* ./parser//parser.nit:154 */
2816 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2817 /* ./parser//parser.nit:556 */
2818 REGB0 = TAG_Int(82);
2819 fra.me.REG[2] = NEW_ReduceAction80_parser___ReduceAction80___init(REGB0);
2820 /* ./parser//parser.nit:154 */
2821 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2822 /* ./parser//parser.nit:557 */
2823 REGB0 = TAG_Int(83);
2824 fra.me.REG[2] = NEW_ReduceAction167_parser___ReduceAction167___init(REGB0);
2825 /* ./parser//parser.nit:154 */
2826 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2827 /* ./parser//parser.nit:558 */
2828 REGB0 = TAG_Int(83);
2829 fra.me.REG[2] = NEW_ReduceAction168_parser___ReduceAction168___init(REGB0);
2830 /* ./parser//parser.nit:154 */
2831 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2832 /* ./parser//parser.nit:559 */
2833 REGB0 = TAG_Int(83);
2834 fra.me.REG[2] = NEW_ReduceAction169_parser___ReduceAction169___init(REGB0);
2835 /* ./parser//parser.nit:154 */
2836 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2837 /* ./parser//parser.nit:560 */
2838 REGB0 = TAG_Int(83);
2839 fra.me.REG[2] = NEW_ReduceAction170_parser___ReduceAction170___init(REGB0);
2840 /* ./parser//parser.nit:154 */
2841 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2842 /* ./parser//parser.nit:561 */
2843 REGB0 = TAG_Int(84);
2844 fra.me.REG[2] = NEW_ReduceAction194_parser___ReduceAction194___init(REGB0);
2845 /* ./parser//parser.nit:154 */
2846 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2847 /* ./parser//parser.nit:562 */
2848 REGB0 = TAG_Int(84);
2849 fra.me.REG[2] = NEW_ReduceAction195_parser___ReduceAction195___init(REGB0);
2850 /* ./parser//parser.nit:154 */
2851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2852 /* ./parser//parser.nit:563 */
2853 REGB0 = TAG_Int(85);
2854 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2855 /* ./parser//parser.nit:154 */
2856 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2857 /* ./parser//parser.nit:564 */
2858 REGB0 = TAG_Int(85);
2859 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
2860 /* ./parser//parser.nit:154 */
2861 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2862 /* ./parser//parser.nit:565 */
2863 REGB0 = TAG_Int(85);
2864 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
2865 /* ./parser//parser.nit:154 */
2866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2867 /* ./parser//parser.nit:566 */
2868 REGB0 = TAG_Int(86);
2869 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2870 /* ./parser//parser.nit:154 */
2871 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2872 /* ./parser//parser.nit:567 */
2873 REGB0 = TAG_Int(86);
2874 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
2875 /* ./parser//parser.nit:154 */
2876 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2877 /* ./parser//parser.nit:568 */
2878 REGB0 = TAG_Int(87);
2879 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2880 /* ./parser//parser.nit:154 */
2881 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2882 /* ./parser//parser.nit:569 */
2883 REGB0 = TAG_Int(87);
2884 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
2885 /* ./parser//parser.nit:154 */
2886 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2887 /* ./parser//parser.nit:570 */
2888 REGB0 = TAG_Int(87);
2889 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
2890 /* ./parser//parser.nit:154 */
2891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2892 /* ./parser//parser.nit:571 */
2893 REGB0 = TAG_Int(87);
2894 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
2895 /* ./parser//parser.nit:154 */
2896 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2897 /* ./parser//parser.nit:572 */
2898 REGB0 = TAG_Int(88);
2899 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2900 /* ./parser//parser.nit:154 */
2901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2902 /* ./parser//parser.nit:573 */
2903 REGB0 = TAG_Int(88);
2904 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
2905 /* ./parser//parser.nit:154 */
2906 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2907 /* ./parser//parser.nit:574 */
2908 REGB0 = TAG_Int(89);
2909 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2910 /* ./parser//parser.nit:154 */
2911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2912 /* ./parser//parser.nit:575 */
2913 REGB0 = TAG_Int(89);
2914 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
2915 /* ./parser//parser.nit:154 */
2916 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2917 /* ./parser//parser.nit:576 */
2918 REGB0 = TAG_Int(89);
2919 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
2920 /* ./parser//parser.nit:154 */
2921 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2922 /* ./parser//parser.nit:577 */
2923 REGB0 = TAG_Int(89);
2924 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
2925 /* ./parser//parser.nit:154 */
2926 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2927 /* ./parser//parser.nit:578 */
2928 REGB0 = TAG_Int(89);
2929 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
2930 /* ./parser//parser.nit:154 */
2931 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2932 /* ./parser//parser.nit:579 */
2933 REGB0 = TAG_Int(89);
2934 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
2935 /* ./parser//parser.nit:154 */
2936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2937 /* ./parser//parser.nit:580 */
2938 REGB0 = TAG_Int(89);
2939 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
2940 /* ./parser//parser.nit:154 */
2941 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2942 /* ./parser//parser.nit:581 */
2943 REGB0 = TAG_Int(89);
2944 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
2945 /* ./parser//parser.nit:154 */
2946 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2947 /* ./parser//parser.nit:582 */
2948 REGB0 = TAG_Int(89);
2949 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
2950 /* ./parser//parser.nit:154 */
2951 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2952 /* ./parser//parser.nit:583 */
2953 REGB0 = TAG_Int(89);
2954 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
2955 /* ./parser//parser.nit:154 */
2956 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2957 /* ./parser//parser.nit:584 */
2958 REGB0 = TAG_Int(89);
2959 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
2960 /* ./parser//parser.nit:154 */
2961 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2962 /* ./parser//parser.nit:585 */
2963 REGB0 = TAG_Int(89);
2964 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
2965 /* ./parser//parser.nit:154 */
2966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2967 /* ./parser//parser.nit:586 */
2968 REGB0 = TAG_Int(90);
2969 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2970 /* ./parser//parser.nit:154 */
2971 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2972 /* ./parser//parser.nit:587 */
2973 REGB0 = TAG_Int(90);
2974 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
2975 /* ./parser//parser.nit:154 */
2976 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2977 /* ./parser//parser.nit:588 */
2978 REGB0 = TAG_Int(90);
2979 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
2980 /* ./parser//parser.nit:154 */
2981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2982 /* ./parser//parser.nit:589 */
2983 REGB0 = TAG_Int(91);
2984 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
2985 /* ./parser//parser.nit:154 */
2986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2987 /* ./parser//parser.nit:590 */
2988 REGB0 = TAG_Int(91);
2989 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
2990 /* ./parser//parser.nit:154 */
2991 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2992 /* ./parser//parser.nit:591 */
2993 REGB0 = TAG_Int(91);
2994 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
2995 /* ./parser//parser.nit:154 */
2996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2997 /* ./parser//parser.nit:592 */
2998 REGB0 = TAG_Int(91);
2999 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
3000 /* ./parser//parser.nit:154 */
3001 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3002 /* ./parser//parser.nit:593 */
3003 REGB0 = TAG_Int(92);
3004 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3005 /* ./parser//parser.nit:154 */
3006 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3007 /* ./parser//parser.nit:594 */
3008 REGB0 = TAG_Int(92);
3009 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
3010 /* ./parser//parser.nit:154 */
3011 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3012 /* ./parser//parser.nit:595 */
3013 REGB0 = TAG_Int(92);
3014 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
3015 /* ./parser//parser.nit:154 */
3016 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3017 /* ./parser//parser.nit:596 */
3018 REGB0 = TAG_Int(93);
3019 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3020 /* ./parser//parser.nit:154 */
3021 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3022 /* ./parser//parser.nit:597 */
3023 REGB0 = TAG_Int(93);
3024 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
3025 /* ./parser//parser.nit:154 */
3026 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3027 /* ./parser//parser.nit:598 */
3028 REGB0 = TAG_Int(93);
3029 fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction326___init(REGB0);
3030 /* ./parser//parser.nit:154 */
3031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3032 /* ./parser//parser.nit:599 */
3033 REGB0 = TAG_Int(93);
3034 fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction327___init(REGB0);
3035 /* ./parser//parser.nit:154 */
3036 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3037 /* ./parser//parser.nit:600 */
3038 REGB0 = TAG_Int(94);
3039 fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction328___init(REGB0);
3040 /* ./parser//parser.nit:154 */
3041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3042 /* ./parser//parser.nit:601 */
3043 REGB0 = TAG_Int(94);
3044 fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction329___init(REGB0);
3045 /* ./parser//parser.nit:154 */
3046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3047 /* ./parser//parser.nit:602 */
3048 REGB0 = TAG_Int(94);
3049 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
3050 /* ./parser//parser.nit:154 */
3051 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3052 /* ./parser//parser.nit:603 */
3053 REGB0 = TAG_Int(94);
3054 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
3055 /* ./parser//parser.nit:154 */
3056 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3057 /* ./parser//parser.nit:604 */
3058 REGB0 = TAG_Int(94);
3059 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
3060 /* ./parser//parser.nit:154 */
3061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3062 /* ./parser//parser.nit:605 */
3063 REGB0 = TAG_Int(94);
3064 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
3065 /* ./parser//parser.nit:154 */
3066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3067 /* ./parser//parser.nit:606 */
3068 REGB0 = TAG_Int(94);
3069 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
3070 /* ./parser//parser.nit:154 */
3071 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3072 /* ./parser//parser.nit:607 */
3073 REGB0 = TAG_Int(94);
3074 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
3075 /* ./parser//parser.nit:154 */
3076 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3077 /* ./parser//parser.nit:608 */
3078 REGB0 = TAG_Int(94);
3079 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
3080 /* ./parser//parser.nit:154 */
3081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3082 /* ./parser//parser.nit:609 */
3083 REGB0 = TAG_Int(94);
3084 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
3085 /* ./parser//parser.nit:154 */
3086 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3087 /* ./parser//parser.nit:610 */
3088 REGB0 = TAG_Int(94);
3089 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
3090 /* ./parser//parser.nit:154 */
3091 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3092 /* ./parser//parser.nit:611 */
3093 REGB0 = TAG_Int(94);
3094 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
3095 /* ./parser//parser.nit:154 */
3096 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3097 /* ./parser//parser.nit:612 */
3098 REGB0 = TAG_Int(94);
3099 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
3100 /* ./parser//parser.nit:154 */
3101 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3102 /* ./parser//parser.nit:613 */
3103 REGB0 = TAG_Int(94);
3104 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
3105 /* ./parser//parser.nit:154 */
3106 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3107 /* ./parser//parser.nit:614 */
3108 REGB0 = TAG_Int(94);
3109 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
3110 /* ./parser//parser.nit:154 */
3111 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3112 /* ./parser//parser.nit:615 */
3113 REGB0 = TAG_Int(94);
3114 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
3115 /* ./parser//parser.nit:154 */
3116 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3117 /* ./parser//parser.nit:616 */
3118 REGB0 = TAG_Int(94);
3119 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
3120 /* ./parser//parser.nit:154 */
3121 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3122 /* ./parser//parser.nit:617 */
3123 REGB0 = TAG_Int(94);
3124 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3125 /* ./parser//parser.nit:154 */
3126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3127 /* ./parser//parser.nit:618 */
3128 REGB0 = TAG_Int(94);
3129 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3130 /* ./parser//parser.nit:154 */
3131 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3132 /* ./parser//parser.nit:619 */
3133 REGB0 = TAG_Int(94);
3134 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
3135 /* ./parser//parser.nit:154 */
3136 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3137 /* ./parser//parser.nit:620 */
3138 REGB0 = TAG_Int(94);
3139 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
3140 /* ./parser//parser.nit:154 */
3141 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3142 /* ./parser//parser.nit:621 */
3143 REGB0 = TAG_Int(95);
3144 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3145 /* ./parser//parser.nit:154 */
3146 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3147 /* ./parser//parser.nit:622 */
3148 REGB0 = TAG_Int(95);
3149 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
3150 /* ./parser//parser.nit:154 */
3151 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3152 /* ./parser//parser.nit:623 */
3153 REGB0 = TAG_Int(95);
3154 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
3155 /* ./parser//parser.nit:154 */
3156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3157 /* ./parser//parser.nit:624 */
3158 REGB0 = TAG_Int(95);
3159 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3160 /* ./parser//parser.nit:154 */
3161 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3162 /* ./parser//parser.nit:625 */
3163 REGB0 = TAG_Int(96);
3164 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3165 /* ./parser//parser.nit:154 */
3166 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3167 /* ./parser//parser.nit:626 */
3168 REGB0 = TAG_Int(96);
3169 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3170 /* ./parser//parser.nit:154 */
3171 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3172 /* ./parser//parser.nit:627 */
3173 REGB0 = TAG_Int(96);
3174 fra.me.REG[2] = NEW_ReduceAction213_parser___ReduceAction213___init(REGB0);
3175 /* ./parser//parser.nit:154 */
3176 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3177 /* ./parser//parser.nit:628 */
3178 REGB0 = TAG_Int(96);
3179 fra.me.REG[2] = NEW_ReduceAction214_parser___ReduceAction214___init(REGB0);
3180 /* ./parser//parser.nit:154 */
3181 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3182 /* ./parser//parser.nit:629 */
3183 REGB0 = TAG_Int(96);
3184 fra.me.REG[2] = NEW_ReduceAction215_parser___ReduceAction215___init(REGB0);
3185 /* ./parser//parser.nit:154 */
3186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3187 /* ./parser//parser.nit:630 */
3188 REGB0 = TAG_Int(96);
3189 fra.me.REG[2] = NEW_ReduceAction216_parser___ReduceAction216___init(REGB0);
3190 /* ./parser//parser.nit:154 */
3191 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3192 /* ./parser//parser.nit:631 */
3193 REGB0 = TAG_Int(96);
3194 fra.me.REG[2] = NEW_ReduceAction217_parser___ReduceAction217___init(REGB0);
3195 /* ./parser//parser.nit:154 */
3196 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3197 /* ./parser//parser.nit:632 */
3198 REGB0 = TAG_Int(96);
3199 fra.me.REG[2] = NEW_ReduceAction218_parser___ReduceAction218___init(REGB0);
3200 /* ./parser//parser.nit:154 */
3201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3202 /* ./parser//parser.nit:633 */
3203 REGB0 = TAG_Int(96);
3204 fra.me.REG[2] = NEW_ReduceAction219_parser___ReduceAction219___init(REGB0);
3205 /* ./parser//parser.nit:154 */
3206 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3207 /* ./parser//parser.nit:634 */
3208 REGB0 = TAG_Int(96);
3209 fra.me.REG[2] = NEW_ReduceAction220_parser___ReduceAction220___init(REGB0);
3210 /* ./parser//parser.nit:154 */
3211 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3212 /* ./parser//parser.nit:635 */
3213 REGB0 = TAG_Int(96);
3214 fra.me.REG[2] = NEW_ReduceAction221_parser___ReduceAction221___init(REGB0);
3215 /* ./parser//parser.nit:154 */
3216 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3217 /* ./parser//parser.nit:636 */
3218 REGB0 = TAG_Int(96);
3219 fra.me.REG[2] = NEW_ReduceAction222_parser___ReduceAction222___init(REGB0);
3220 /* ./parser//parser.nit:154 */
3221 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3222 /* ./parser//parser.nit:637 */
3223 REGB0 = TAG_Int(96);
3224 fra.me.REG[2] = NEW_ReduceAction223_parser___ReduceAction223___init(REGB0);
3225 /* ./parser//parser.nit:154 */
3226 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3227 /* ./parser//parser.nit:638 */
3228 REGB0 = TAG_Int(96);
3229 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3230 /* ./parser//parser.nit:154 */
3231 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3232 /* ./parser//parser.nit:639 */
3233 REGB0 = TAG_Int(96);
3234 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3235 /* ./parser//parser.nit:154 */
3236 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3237 /* ./parser//parser.nit:640 */
3238 REGB0 = TAG_Int(96);
3239 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3240 /* ./parser//parser.nit:154 */
3241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3242 /* ./parser//parser.nit:641 */
3243 REGB0 = TAG_Int(96);
3244 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3245 /* ./parser//parser.nit:154 */
3246 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3247 /* ./parser//parser.nit:642 */
3248 REGB0 = TAG_Int(96);
3249 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3250 /* ./parser//parser.nit:154 */
3251 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3252 /* ./parser//parser.nit:643 */
3253 REGB0 = TAG_Int(96);
3254 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3255 /* ./parser//parser.nit:154 */
3256 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3257 /* ./parser//parser.nit:644 */
3258 REGB0 = TAG_Int(96);
3259 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
3260 /* ./parser//parser.nit:154 */
3261 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3262 /* ./parser//parser.nit:645 */
3263 REGB0 = TAG_Int(96);
3264 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
3265 /* ./parser//parser.nit:154 */
3266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3267 /* ./parser//parser.nit:646 */
3268 REGB0 = TAG_Int(96);
3269 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3270 /* ./parser//parser.nit:154 */
3271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3272 /* ./parser//parser.nit:647 */
3273 REGB0 = TAG_Int(96);
3274 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3275 /* ./parser//parser.nit:154 */
3276 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3277 /* ./parser//parser.nit:648 */
3278 REGB0 = TAG_Int(96);
3279 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
3280 /* ./parser//parser.nit:154 */
3281 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3282 /* ./parser//parser.nit:649 */
3283 REGB0 = TAG_Int(96);
3284 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
3285 /* ./parser//parser.nit:154 */
3286 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3287 /* ./parser//parser.nit:650 */
3288 REGB0 = TAG_Int(96);
3289 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
3290 /* ./parser//parser.nit:154 */
3291 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3292 /* ./parser//parser.nit:651 */
3293 REGB0 = TAG_Int(96);
3294 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
3295 /* ./parser//parser.nit:154 */
3296 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3297 /* ./parser//parser.nit:652 */
3298 REGB0 = TAG_Int(97);
3299 fra.me.REG[2] = NEW_ReduceAction239_parser___ReduceAction239___init(REGB0);
3300 /* ./parser//parser.nit:154 */
3301 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3302 /* ./parser//parser.nit:653 */
3303 REGB0 = TAG_Int(97);
3304 fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction240___init(REGB0);
3305 /* ./parser//parser.nit:154 */
3306 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3307 /* ./parser//parser.nit:654 */
3308 REGB0 = TAG_Int(98);
3309 fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction241___init(REGB0);
3310 /* ./parser//parser.nit:154 */
3311 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3312 /* ./parser//parser.nit:655 */
3313 REGB0 = TAG_Int(98);
3314 fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction242___init(REGB0);
3315 /* ./parser//parser.nit:154 */
3316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3317 /* ./parser//parser.nit:656 */
3318 REGB0 = TAG_Int(98);
3319 fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction243___init(REGB0);
3320 /* ./parser//parser.nit:154 */
3321 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3322 /* ./parser//parser.nit:657 */
3323 REGB0 = TAG_Int(98);
3324 fra.me.REG[2] = NEW_ReduceAction244_parser___ReduceAction244___init(REGB0);
3325 /* ./parser//parser.nit:154 */
3326 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3327 /* ./parser//parser.nit:658 */
3328 REGB0 = TAG_Int(98);
3329 fra.me.REG[2] = NEW_ReduceAction245_parser___ReduceAction245___init(REGB0);
3330 /* ./parser//parser.nit:154 */
3331 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3332 /* ./parser//parser.nit:659 */
3333 REGB0 = TAG_Int(98);
3334 fra.me.REG[2] = NEW_ReduceAction246_parser___ReduceAction246___init(REGB0);
3335 /* ./parser//parser.nit:154 */
3336 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3337 /* ./parser//parser.nit:660 */
3338 REGB0 = TAG_Int(99);
3339 fra.me.REG[2] = NEW_ReduceAction253_parser___ReduceAction253___init(REGB0);
3340 /* ./parser//parser.nit:154 */
3341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3342 /* ./parser//parser.nit:661 */
3343 REGB0 = TAG_Int(100);
3344 fra.me.REG[2] = NEW_ReduceAction254_parser___ReduceAction254___init(REGB0);
3345 /* ./parser//parser.nit:154 */
3346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3347 /* ./parser//parser.nit:662 */
3348 REGB0 = TAG_Int(100);
3349 fra.me.REG[2] = NEW_ReduceAction255_parser___ReduceAction255___init(REGB0);
3350 /* ./parser//parser.nit:154 */
3351 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3352 /* ./parser//parser.nit:663 */
3353 REGB0 = TAG_Int(100);
3354 fra.me.REG[2] = NEW_ReduceAction256_parser___ReduceAction256___init(REGB0);
3355 /* ./parser//parser.nit:154 */
3356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3357 /* ./parser//parser.nit:664 */
3358 REGB0 = TAG_Int(100);
3359 fra.me.REG[2] = NEW_ReduceAction257_parser___ReduceAction257___init(REGB0);
3360 /* ./parser//parser.nit:154 */
3361 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3362 /* ./parser//parser.nit:665 */
3363 REGB0 = TAG_Int(101);
3364 fra.me.REG[2] = NEW_ReduceAction258_parser___ReduceAction258___init(REGB0);
3365 /* ./parser//parser.nit:154 */
3366 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3367 /* ./parser//parser.nit:666 */
3368 REGB0 = TAG_Int(101);
3369 fra.me.REG[2] = NEW_ReduceAction259_parser___ReduceAction259___init(REGB0);
3370 /* ./parser//parser.nit:154 */
3371 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3372 /* ./parser//parser.nit:667 */
3373 REGB0 = TAG_Int(101);
3374 fra.me.REG[2] = NEW_ReduceAction260_parser___ReduceAction260___init(REGB0);
3375 /* ./parser//parser.nit:154 */
3376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3377 /* ./parser//parser.nit:668 */
3378 REGB0 = TAG_Int(101);
3379 fra.me.REG[2] = NEW_ReduceAction261_parser___ReduceAction261___init(REGB0);
3380 /* ./parser//parser.nit:154 */
3381 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3382 /* ./parser//parser.nit:669 */
3383 REGB0 = TAG_Int(101);
3384 fra.me.REG[2] = NEW_ReduceAction262_parser___ReduceAction262___init(REGB0);
3385 /* ./parser//parser.nit:154 */
3386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3387 /* ./parser//parser.nit:670 */
3388 REGB0 = TAG_Int(101);
3389 fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction263___init(REGB0);
3390 /* ./parser//parser.nit:154 */
3391 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3392 /* ./parser//parser.nit:671 */
3393 REGB0 = TAG_Int(101);
3394 fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction264___init(REGB0);
3395 /* ./parser//parser.nit:154 */
3396 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3397 /* ./parser//parser.nit:672 */
3398 REGB0 = TAG_Int(101);
3399 fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction265___init(REGB0);
3400 /* ./parser//parser.nit:154 */
3401 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3402 /* ./parser//parser.nit:673 */
3403 REGB0 = TAG_Int(101);
3404 fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction266___init(REGB0);
3405 /* ./parser//parser.nit:154 */
3406 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3407 /* ./parser//parser.nit:674 */
3408 REGB0 = TAG_Int(101);
3409 fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction267___init(REGB0);
3410 /* ./parser//parser.nit:154 */
3411 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3412 /* ./parser//parser.nit:675 */
3413 REGB0 = TAG_Int(102);
3414 fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction270___init(REGB0);
3415 /* ./parser//parser.nit:154 */
3416 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3417 /* ./parser//parser.nit:676 */
3418 REGB0 = TAG_Int(102);
3419 fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction271___init(REGB0);
3420 /* ./parser//parser.nit:154 */
3421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3422 /* ./parser//parser.nit:677 */
3423 REGB0 = TAG_Int(103);
3424 fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction272___init(REGB0);
3425 /* ./parser//parser.nit:154 */
3426 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3427 /* ./parser//parser.nit:678 */
3428 REGB0 = TAG_Int(104);
3429 fra.me.REG[2] = NEW_ReduceAction279_parser___ReduceAction279___init(REGB0);
3430 /* ./parser//parser.nit:154 */
3431 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3432 /* ./parser//parser.nit:679 */
3433 REGB0 = TAG_Int(104);
3434 fra.me.REG[2] = NEW_ReduceAction280_parser___ReduceAction280___init(REGB0);
3435 /* ./parser//parser.nit:154 */
3436 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3437 /* ./parser//parser.nit:680 */
3438 REGB0 = TAG_Int(105);
3439 fra.me.REG[2] = NEW_ReduceAction281_parser___ReduceAction281___init(REGB0);
3440 /* ./parser//parser.nit:154 */
3441 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3442 /* ./parser//parser.nit:681 */
3443 REGB0 = TAG_Int(105);
3444 fra.me.REG[2] = NEW_ReduceAction282_parser___ReduceAction282___init(REGB0);
3445 /* ./parser//parser.nit:154 */
3446 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3447 /* ./parser//parser.nit:682 */
3448 REGB0 = TAG_Int(106);
3449 fra.me.REG[2] = NEW_ReduceAction283_parser___ReduceAction283___init(REGB0);
3450 /* ./parser//parser.nit:154 */
3451 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3452 /* ./parser//parser.nit:683 */
3453 REGB0 = TAG_Int(106);
3454 fra.me.REG[2] = NEW_ReduceAction284_parser___ReduceAction284___init(REGB0);
3455 /* ./parser//parser.nit:154 */
3456 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3457 /* ./parser//parser.nit:684 */
3458 REGB0 = TAG_Int(107);
3459 fra.me.REG[2] = NEW_ReduceAction285_parser___ReduceAction285___init(REGB0);
3460 /* ./parser//parser.nit:154 */
3461 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3462 /* ./parser//parser.nit:685 */
3463 REGB0 = TAG_Int(107);
3464 fra.me.REG[2] = NEW_ReduceAction286_parser___ReduceAction286___init(REGB0);
3465 /* ./parser//parser.nit:154 */
3466 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3467 /* ./parser//parser.nit:686 */
3468 REGB0 = TAG_Int(108);
3469 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3470 /* ./parser//parser.nit:154 */
3471 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3472 /* ./parser//parser.nit:687 */
3473 REGB0 = TAG_Int(108);
3474 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3475 /* ./parser//parser.nit:154 */
3476 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3477 /* ./parser//parser.nit:688 */
3478 REGB0 = TAG_Int(108);
3479 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3480 /* ./parser//parser.nit:154 */
3481 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3482 /* ./parser//parser.nit:689 */
3483 REGB0 = TAG_Int(108);
3484 fra.me.REG[2] = NEW_ReduceAction293_parser___ReduceAction293___init(REGB0);
3485 /* ./parser//parser.nit:154 */
3486 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3487 /* ./parser//parser.nit:690 */
3488 REGB0 = TAG_Int(109);
3489 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3490 /* ./parser//parser.nit:154 */
3491 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3492 /* ./parser//parser.nit:691 */
3493 REGB0 = TAG_Int(109);
3494 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3495 /* ./parser//parser.nit:154 */
3496 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3497 /* ./parser//parser.nit:692 */
3498 REGB0 = TAG_Int(109);
3499 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3500 /* ./parser//parser.nit:154 */
3501 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3502 /* ./parser//parser.nit:693 */
3503 REGB0 = TAG_Int(110);
3504 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3505 /* ./parser//parser.nit:154 */
3506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3507 /* ./parser//parser.nit:694 */
3508 REGB0 = TAG_Int(110);
3509 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
3510 /* ./parser//parser.nit:154 */
3511 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3512 /* ./parser//parser.nit:695 */
3513 REGB0 = TAG_Int(110);
3514 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
3515 /* ./parser//parser.nit:154 */
3516 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3517 /* ./parser//parser.nit:696 */
3518 REGB0 = TAG_Int(111);
3519 fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction202___init(REGB0);
3520 /* ./parser//parser.nit:154 */
3521 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3522 /* ./parser//parser.nit:697 */
3523 REGB0 = TAG_Int(111);
3524 fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction203___init(REGB0);
3525 /* ./parser//parser.nit:154 */
3526 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3527 /* ./parser//parser.nit:698 */
3528 REGB0 = TAG_Int(111);
3529 fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction204___init(REGB0);
3530 /* ./parser//parser.nit:154 */
3531 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3532 /* ./parser//parser.nit:699 */
3533 REGB0 = TAG_Int(112);
3534 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3535 /* ./parser//parser.nit:154 */
3536 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3537 /* ./parser//parser.nit:700 */
3538 REGB0 = TAG_Int(112);
3539 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3540 /* ./parser//parser.nit:154 */
3541 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3542 /* ./parser//parser.nit:701 */
3543 REGB0 = TAG_Int(112);
3544 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3545 /* ./parser//parser.nit:154 */
3546 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3547 /* ./parser//parser.nit:702 */
3548 REGB0 = TAG_Int(113);
3549 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3550 /* ./parser//parser.nit:154 */
3551 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3552 /* ./parser//parser.nit:703 */
3553 REGB0 = TAG_Int(113);
3554 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
3555 /* ./parser//parser.nit:154 */
3556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3557 /* ./parser//parser.nit:704 */
3558 REGB0 = TAG_Int(114);
3559 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3560 /* ./parser//parser.nit:154 */
3561 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3562 /* ./parser//parser.nit:705 */
3563 REGB0 = TAG_Int(114);
3564 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
3565 /* ./parser//parser.nit:154 */
3566 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3567 /* ./parser//parser.nit:706 */
3568 REGB0 = TAG_Int(114);
3569 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
3570 /* ./parser//parser.nit:154 */
3571 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3572 /* ./parser//parser.nit:707 */
3573 REGB0 = TAG_Int(114);
3574 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
3575 /* ./parser//parser.nit:154 */
3576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3577 /* ./parser//parser.nit:708 */
3578 REGB0 = TAG_Int(115);
3579 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3580 /* ./parser//parser.nit:154 */
3581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3582 /* ./parser//parser.nit:709 */
3583 REGB0 = TAG_Int(115);
3584 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
3585 /* ./parser//parser.nit:154 */
3586 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3587 /* ./parser//parser.nit:710 */
3588 REGB0 = TAG_Int(116);
3589 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3590 /* ./parser//parser.nit:154 */
3591 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3592 /* ./parser//parser.nit:711 */
3593 REGB0 = TAG_Int(116);
3594 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
3595 /* ./parser//parser.nit:154 */
3596 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3597 /* ./parser//parser.nit:712 */
3598 REGB0 = TAG_Int(116);
3599 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
3600 /* ./parser//parser.nit:154 */
3601 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3602 /* ./parser//parser.nit:713 */
3603 REGB0 = TAG_Int(116);
3604 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
3605 /* ./parser//parser.nit:154 */
3606 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3607 /* ./parser//parser.nit:714 */
3608 REGB0 = TAG_Int(116);
3609 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
3610 /* ./parser//parser.nit:154 */
3611 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3612 /* ./parser//parser.nit:715 */
3613 REGB0 = TAG_Int(116);
3614 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
3615 /* ./parser//parser.nit:154 */
3616 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3617 /* ./parser//parser.nit:716 */
3618 REGB0 = TAG_Int(116);
3619 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
3620 /* ./parser//parser.nit:154 */
3621 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3622 /* ./parser//parser.nit:717 */
3623 REGB0 = TAG_Int(116);
3624 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
3625 /* ./parser//parser.nit:154 */
3626 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3627 /* ./parser//parser.nit:718 */
3628 REGB0 = TAG_Int(116);
3629 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
3630 /* ./parser//parser.nit:154 */
3631 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3632 /* ./parser//parser.nit:719 */
3633 REGB0 = TAG_Int(116);
3634 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
3635 /* ./parser//parser.nit:154 */
3636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3637 /* ./parser//parser.nit:720 */
3638 REGB0 = TAG_Int(116);
3639 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
3640 /* ./parser//parser.nit:154 */
3641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3642 /* ./parser//parser.nit:721 */
3643 REGB0 = TAG_Int(116);
3644 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
3645 /* ./parser//parser.nit:154 */
3646 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3647 /* ./parser//parser.nit:722 */
3648 REGB0 = TAG_Int(117);
3649 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3650 /* ./parser//parser.nit:154 */
3651 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3652 /* ./parser//parser.nit:723 */
3653 REGB0 = TAG_Int(117);
3654 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
3655 /* ./parser//parser.nit:154 */
3656 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3657 /* ./parser//parser.nit:724 */
3658 REGB0 = TAG_Int(117);
3659 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
3660 /* ./parser//parser.nit:154 */
3661 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3662 /* ./parser//parser.nit:725 */
3663 REGB0 = TAG_Int(118);
3664 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3665 /* ./parser//parser.nit:154 */
3666 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3667 /* ./parser//parser.nit:726 */
3668 REGB0 = TAG_Int(118);
3669 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
3670 /* ./parser//parser.nit:154 */
3671 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3672 /* ./parser//parser.nit:727 */
3673 REGB0 = TAG_Int(118);
3674 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
3675 /* ./parser//parser.nit:154 */
3676 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3677 /* ./parser//parser.nit:728 */
3678 REGB0 = TAG_Int(118);
3679 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
3680 /* ./parser//parser.nit:154 */
3681 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3682 /* ./parser//parser.nit:729 */
3683 REGB0 = TAG_Int(119);
3684 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3685 /* ./parser//parser.nit:154 */
3686 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3687 /* ./parser//parser.nit:730 */
3688 REGB0 = TAG_Int(119);
3689 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
3690 /* ./parser//parser.nit:154 */
3691 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3692 /* ./parser//parser.nit:731 */
3693 REGB0 = TAG_Int(119);
3694 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
3695 /* ./parser//parser.nit:154 */
3696 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3697 /* ./parser//parser.nit:732 */
3698 REGB0 = TAG_Int(120);
3699 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3700 /* ./parser//parser.nit:154 */
3701 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3702 /* ./parser//parser.nit:733 */
3703 REGB0 = TAG_Int(120);
3704 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
3705 /* ./parser//parser.nit:154 */
3706 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3707 /* ./parser//parser.nit:734 */
3708 REGB0 = TAG_Int(120);
3709 fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction326___init(REGB0);
3710 /* ./parser//parser.nit:154 */
3711 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3712 /* ./parser//parser.nit:735 */
3713 REGB0 = TAG_Int(120);
3714 fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction327___init(REGB0);
3715 /* ./parser//parser.nit:154 */
3716 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3717 /* ./parser//parser.nit:736 */
3718 REGB0 = TAG_Int(121);
3719 fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction328___init(REGB0);
3720 /* ./parser//parser.nit:154 */
3721 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3722 /* ./parser//parser.nit:737 */
3723 REGB0 = TAG_Int(121);
3724 fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction329___init(REGB0);
3725 /* ./parser//parser.nit:154 */
3726 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3727 /* ./parser//parser.nit:738 */
3728 REGB0 = TAG_Int(121);
3729 fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction230___init(REGB0);
3730 /* ./parser//parser.nit:154 */
3731 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3732 /* ./parser//parser.nit:739 */
3733 REGB0 = TAG_Int(121);
3734 fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction231___init(REGB0);
3735 /* ./parser//parser.nit:154 */
3736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3737 /* ./parser//parser.nit:740 */
3738 REGB0 = TAG_Int(121);
3739 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
3740 /* ./parser//parser.nit:154 */
3741 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3742 /* ./parser//parser.nit:741 */
3743 REGB0 = TAG_Int(121);
3744 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
3745 /* ./parser//parser.nit:154 */
3746 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3747 /* ./parser//parser.nit:742 */
3748 REGB0 = TAG_Int(121);
3749 fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction236___init(REGB0);
3750 /* ./parser//parser.nit:154 */
3751 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3752 /* ./parser//parser.nit:743 */
3753 REGB0 = TAG_Int(121);
3754 fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction237___init(REGB0);
3755 /* ./parser//parser.nit:154 */
3756 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3757 /* ./parser//parser.nit:744 */
3758 REGB0 = TAG_Int(121);
3759 fra.me.REG[2] = NEW_ReduceAction336_parser___ReduceAction336___init(REGB0);
3760 /* ./parser//parser.nit:154 */
3761 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3762 /* ./parser//parser.nit:745 */
3763 REGB0 = TAG_Int(121);
3764 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
3765 /* ./parser//parser.nit:154 */
3766 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3767 /* ./parser//parser.nit:746 */
3768 REGB0 = TAG_Int(121);
3769 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
3770 /* ./parser//parser.nit:154 */
3771 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3772 /* ./parser//parser.nit:747 */
3773 REGB0 = TAG_Int(121);
3774 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
3775 /* ./parser//parser.nit:154 */
3776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3777 /* ./parser//parser.nit:748 */
3778 REGB0 = TAG_Int(121);
3779 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
3780 /* ./parser//parser.nit:154 */
3781 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3782 /* ./parser//parser.nit:749 */
3783 REGB0 = TAG_Int(121);
3784 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
3785 /* ./parser//parser.nit:154 */
3786 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3787 /* ./parser//parser.nit:750 */
3788 REGB0 = TAG_Int(121);
3789 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
3790 /* ./parser//parser.nit:154 */
3791 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3792 /* ./parser//parser.nit:751 */
3793 REGB0 = TAG_Int(121);
3794 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
3795 /* ./parser//parser.nit:154 */
3796 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3797 /* ./parser//parser.nit:752 */
3798 REGB0 = TAG_Int(121);
3799 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
3800 /* ./parser//parser.nit:154 */
3801 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3802 /* ./parser//parser.nit:753 */
3803 REGB0 = TAG_Int(121);
3804 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
3805 /* ./parser//parser.nit:154 */
3806 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3807 /* ./parser//parser.nit:754 */
3808 REGB0 = TAG_Int(121);
3809 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3810 /* ./parser//parser.nit:154 */
3811 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3812 /* ./parser//parser.nit:755 */
3813 REGB0 = TAG_Int(121);
3814 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
3815 /* ./parser//parser.nit:154 */
3816 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3817 /* ./parser//parser.nit:756 */
3818 REGB0 = TAG_Int(121);
3819 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
3820 /* ./parser//parser.nit:154 */
3821 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3822 /* ./parser//parser.nit:757 */
3823 REGB0 = TAG_Int(122);
3824 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3825 /* ./parser//parser.nit:154 */
3826 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3827 /* ./parser//parser.nit:758 */
3828 REGB0 = TAG_Int(122);
3829 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
3830 /* ./parser//parser.nit:154 */
3831 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3832 /* ./parser//parser.nit:759 */
3833 REGB0 = TAG_Int(122);
3834 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
3835 /* ./parser//parser.nit:154 */
3836 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3837 /* ./parser//parser.nit:760 */
3838 REGB0 = TAG_Int(123);
3839 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3840 /* ./parser//parser.nit:154 */
3841 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3842 /* ./parser//parser.nit:761 */
3843 REGB0 = TAG_Int(123);
3844 fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction295___init(REGB0);
3845 /* ./parser//parser.nit:154 */
3846 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3847 /* ./parser//parser.nit:762 */
3848 REGB0 = TAG_Int(124);
3849 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3850 /* ./parser//parser.nit:154 */
3851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3852 /* ./parser//parser.nit:763 */
3853 REGB0 = TAG_Int(124);
3854 fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction297___init(REGB0);
3855 /* ./parser//parser.nit:154 */
3856 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3857 /* ./parser//parser.nit:764 */
3858 REGB0 = TAG_Int(124);
3859 fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction298___init(REGB0);
3860 /* ./parser//parser.nit:154 */
3861 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3862 /* ./parser//parser.nit:765 */
3863 REGB0 = TAG_Int(124);
3864 fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction299___init(REGB0);
3865 /* ./parser//parser.nit:154 */
3866 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3867 /* ./parser//parser.nit:766 */
3868 REGB0 = TAG_Int(125);
3869 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3870 /* ./parser//parser.nit:154 */
3871 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3872 /* ./parser//parser.nit:767 */
3873 REGB0 = TAG_Int(125);
3874 fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction301___init(REGB0);
3875 /* ./parser//parser.nit:154 */
3876 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3877 /* ./parser//parser.nit:768 */
3878 REGB0 = TAG_Int(126);
3879 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3880 /* ./parser//parser.nit:154 */
3881 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3882 /* ./parser//parser.nit:769 */
3883 REGB0 = TAG_Int(126);
3884 fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction303___init(REGB0);
3885 /* ./parser//parser.nit:154 */
3886 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3887 /* ./parser//parser.nit:770 */
3888 REGB0 = TAG_Int(126);
3889 fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction304___init(REGB0);
3890 /* ./parser//parser.nit:154 */
3891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3892 /* ./parser//parser.nit:771 */
3893 REGB0 = TAG_Int(126);
3894 fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction305___init(REGB0);
3895 /* ./parser//parser.nit:154 */
3896 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3897 /* ./parser//parser.nit:772 */
3898 REGB0 = TAG_Int(126);
3899 fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction306___init(REGB0);
3900 /* ./parser//parser.nit:154 */
3901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3902 /* ./parser//parser.nit:773 */
3903 REGB0 = TAG_Int(126);
3904 fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction307___init(REGB0);
3905 /* ./parser//parser.nit:154 */
3906 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3907 /* ./parser//parser.nit:774 */
3908 REGB0 = TAG_Int(126);
3909 fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction308___init(REGB0);
3910 /* ./parser//parser.nit:154 */
3911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3912 /* ./parser//parser.nit:775 */
3913 REGB0 = TAG_Int(126);
3914 fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction309___init(REGB0);
3915 /* ./parser//parser.nit:154 */
3916 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3917 /* ./parser//parser.nit:776 */
3918 REGB0 = TAG_Int(126);
3919 fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction310___init(REGB0);
3920 /* ./parser//parser.nit:154 */
3921 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3922 /* ./parser//parser.nit:777 */
3923 REGB0 = TAG_Int(126);
3924 fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction311___init(REGB0);
3925 /* ./parser//parser.nit:154 */
3926 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3927 /* ./parser//parser.nit:778 */
3928 REGB0 = TAG_Int(126);
3929 fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction312___init(REGB0);
3930 /* ./parser//parser.nit:154 */
3931 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3932 /* ./parser//parser.nit:779 */
3933 REGB0 = TAG_Int(126);
3934 fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction313___init(REGB0);
3935 /* ./parser//parser.nit:154 */
3936 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3937 /* ./parser//parser.nit:780 */
3938 REGB0 = TAG_Int(127);
3939 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3940 /* ./parser//parser.nit:154 */
3941 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3942 /* ./parser//parser.nit:781 */
3943 REGB0 = TAG_Int(127);
3944 fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction315___init(REGB0);
3945 /* ./parser//parser.nit:154 */
3946 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3947 /* ./parser//parser.nit:782 */
3948 REGB0 = TAG_Int(127);
3949 fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction316___init(REGB0);
3950 /* ./parser//parser.nit:154 */
3951 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3952 /* ./parser//parser.nit:783 */
3953 REGB0 = TAG_Int(128);
3954 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3955 /* ./parser//parser.nit:154 */
3956 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3957 /* ./parser//parser.nit:784 */
3958 REGB0 = TAG_Int(128);
3959 fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction318___init(REGB0);
3960 /* ./parser//parser.nit:154 */
3961 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3962 /* ./parser//parser.nit:785 */
3963 REGB0 = TAG_Int(128);
3964 fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction319___init(REGB0);
3965 /* ./parser//parser.nit:154 */
3966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3967 /* ./parser//parser.nit:786 */
3968 REGB0 = TAG_Int(128);
3969 fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction320___init(REGB0);
3970 /* ./parser//parser.nit:154 */
3971 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3972 /* ./parser//parser.nit:787 */
3973 REGB0 = TAG_Int(129);
3974 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3975 /* ./parser//parser.nit:154 */
3976 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3977 /* ./parser//parser.nit:788 */
3978 REGB0 = TAG_Int(129);
3979 fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction322___init(REGB0);
3980 /* ./parser//parser.nit:154 */
3981 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3982 /* ./parser//parser.nit:789 */
3983 REGB0 = TAG_Int(129);
3984 fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction323___init(REGB0);
3985 /* ./parser//parser.nit:154 */
3986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3987 /* ./parser//parser.nit:790 */
3988 REGB0 = TAG_Int(130);
3989 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
3990 /* ./parser//parser.nit:154 */
3991 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3992 /* ./parser//parser.nit:791 */
3993 REGB0 = TAG_Int(130);
3994 fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction325___init(REGB0);
3995 /* ./parser//parser.nit:154 */
3996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3997 /* ./parser//parser.nit:792 */
3998 REGB0 = TAG_Int(130);
3999 fra.me.REG[2] = NEW_ReduceAction637_parser___ReduceAction637___init(REGB0);
4000 /* ./parser//parser.nit:154 */
4001 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4002 /* ./parser//parser.nit:793 */
4003 REGB0 = TAG_Int(131);
4004 fra.me.REG[2] = NEW_ReduceAction638_parser___ReduceAction638___init(REGB0);
4005 /* ./parser//parser.nit:154 */
4006 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4007 /* ./parser//parser.nit:794 */
4008 REGB0 = TAG_Int(131);
4009 fra.me.REG[2] = NEW_ReduceAction639_parser___ReduceAction639___init(REGB0);
4010 /* ./parser//parser.nit:154 */
4011 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4012 /* ./parser//parser.nit:795 */
4013 REGB0 = TAG_Int(131);
4014 fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction234___init(REGB0);
4015 /* ./parser//parser.nit:154 */
4016 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4017 /* ./parser//parser.nit:796 */
4018 REGB0 = TAG_Int(131);
4019 fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction235___init(REGB0);
4020 /* ./parser//parser.nit:154 */
4021 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4022 /* ./parser//parser.nit:797 */
4023 REGB0 = TAG_Int(131);
4024 fra.me.REG[2] = NEW_ReduceAction642_parser___ReduceAction642___init(REGB0);
4025 /* ./parser//parser.nit:154 */
4026 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4027 /* ./parser//parser.nit:798 */
4028 REGB0 = TAG_Int(131);
4029 fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction337___init(REGB0);
4030 /* ./parser//parser.nit:154 */
4031 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4032 /* ./parser//parser.nit:799 */
4033 REGB0 = TAG_Int(131);
4034 fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction341___init(REGB0);
4035 /* ./parser//parser.nit:154 */
4036 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4037 /* ./parser//parser.nit:800 */
4038 REGB0 = TAG_Int(131);
4039 fra.me.REG[2] = NEW_ReduceAction342_parser___ReduceAction342___init(REGB0);
4040 /* ./parser//parser.nit:154 */
4041 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4042 /* ./parser//parser.nit:801 */
4043 REGB0 = TAG_Int(131);
4044 fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction343___init(REGB0);
4045 /* ./parser//parser.nit:154 */
4046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4047 /* ./parser//parser.nit:802 */
4048 REGB0 = TAG_Int(131);
4049 fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction344___init(REGB0);
4050 /* ./parser//parser.nit:154 */
4051 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4052 /* ./parser//parser.nit:803 */
4053 REGB0 = TAG_Int(131);
4054 fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction345___init(REGB0);
4055 /* ./parser//parser.nit:154 */
4056 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4057 /* ./parser//parser.nit:804 */
4058 REGB0 = TAG_Int(131);
4059 fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction346___init(REGB0);
4060 /* ./parser//parser.nit:154 */
4061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4062 /* ./parser//parser.nit:805 */
4063 REGB0 = TAG_Int(131);
4064 fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction347___init(REGB0);
4065 /* ./parser//parser.nit:154 */
4066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4067 /* ./parser//parser.nit:806 */
4068 REGB0 = TAG_Int(131);
4069 fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction348___init(REGB0);
4070 /* ./parser//parser.nit:154 */
4071 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4072 /* ./parser//parser.nit:807 */
4073 REGB0 = TAG_Int(131);
4074 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
4075 /* ./parser//parser.nit:154 */
4076 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4077 /* ./parser//parser.nit:808 */
4078 REGB0 = TAG_Int(131);
4079 fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction351___init(REGB0);
4080 /* ./parser//parser.nit:154 */
4081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4082 /* ./parser//parser.nit:809 */
4083 REGB0 = TAG_Int(131);
4084 fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction352___init(REGB0);
4085 /* ./parser//parser.nit:154 */
4086 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4087 /* ./parser//parser.nit:810 */
4088 REGB0 = TAG_Int(132);
4089 fra.me.REG[2] = NEW_ReduceAction655_parser___ReduceAction655___init(REGB0);
4090 /* ./parser//parser.nit:154 */
4091 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4092 /* ./parser//parser.nit:811 */
4093 REGB0 = TAG_Int(132);
4094 fra.me.REG[2] = NEW_ReduceAction656_parser___ReduceAction656___init(REGB0);
4095 /* ./parser//parser.nit:154 */
4096 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4097 /* ./parser//parser.nit:812 */
4098 REGB0 = TAG_Int(133);
4099 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
4100 /* ./parser//parser.nit:154 */
4101 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4102 /* ./parser//parser.nit:813 */
4103 REGB0 = TAG_Int(133);
4104 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
4105 /* ./parser//parser.nit:154 */
4106 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4107 /* ./parser//parser.nit:814 */
4108 REGB0 = TAG_Int(133);
4109 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
4110 /* ./parser//parser.nit:154 */
4111 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4112 /* ./parser//parser.nit:815 */
4113 REGB0 = TAG_Int(134);
4114 fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction205___init(REGB0);
4115 /* ./parser//parser.nit:154 */
4116 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4117 /* ./parser//parser.nit:816 */
4118 REGB0 = TAG_Int(134);
4119 fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction232___init(REGB0);
4120 /* ./parser//parser.nit:154 */
4121 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4122 /* ./parser//parser.nit:817 */
4123 REGB0 = TAG_Int(134);
4124 fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction233___init(REGB0);
4125 /* ./parser//parser.nit:154 */
4126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4127 /* ./parser//parser.nit:818 */
4128 REGB0 = TAG_Int(135);
4129 fra.me.REG[2] = NEW_ReduceAction663_parser___ReduceAction663___init(REGB0);
4130 /* ./parser//parser.nit:154 */
4131 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4132 /* ./parser//parser.nit:819 */
4133 REGB0 = TAG_Int(135);
4134 fra.me.REG[2] = NEW_ReduceAction664_parser___ReduceAction664___init(REGB0);
4135 /* ./parser//parser.nit:154 */
4136 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4137 /* ./parser//parser.nit:820 */
4138 REGB0 = TAG_Int(136);
4139 fra.me.REG[2] = NEW_ReduceAction665_parser___ReduceAction665___init(REGB0);
4140 /* ./parser//parser.nit:154 */
4141 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4142 /* ./parser//parser.nit:821 */
4143 REGB0 = TAG_Int(136);
4144 fra.me.REG[2] = NEW_ReduceAction666_parser___ReduceAction666___init(REGB0);
4145 /* ./parser//parser.nit:154 */
4146 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4147 /* ./parser//parser.nit:822 */
4148 REGB0 = TAG_Int(137);
4149 fra.me.REG[2] = NEW_ReduceAction667_parser___ReduceAction667___init(REGB0);
4150 /* ./parser//parser.nit:154 */
4151 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4152 /* ./parser//parser.nit:823 */
4153 REGB0 = TAG_Int(137);
4154 fra.me.REG[2] = NEW_ReduceAction668_parser___ReduceAction668___init(REGB0);
4155 /* ./parser//parser.nit:154 */
4156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4157 /* ./parser//parser.nit:824 */
4158 REGB0 = TAG_Int(138);
4159 fra.me.REG[2] = NEW_ReduceAction669_parser___ReduceAction669___init(REGB0);
4160 /* ./parser//parser.nit:154 */
4161 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4162 /* ./parser//parser.nit:825 */
4163 REGB0 = TAG_Int(138);
4164 fra.me.REG[2] = NEW_ReduceAction670_parser___ReduceAction670___init(REGB0);
4165 /* ./parser//parser.nit:154 */
4166 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4167 /* ./parser//parser.nit:826 */
4168 REGB0 = TAG_Int(139);
4169 fra.me.REG[2] = NEW_ReduceAction667_parser___ReduceAction667___init(REGB0);
4170 /* ./parser//parser.nit:154 */
4171 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4172 /* ./parser//parser.nit:827 */
4173 REGB0 = TAG_Int(139);
4174 fra.me.REG[2] = NEW_ReduceAction668_parser___ReduceAction668___init(REGB0);
4175 /* ./parser//parser.nit:154 */
4176 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4177 /* ./parser//parser.nit:828 */
4178 REGB0 = TAG_Int(140);
4179 fra.me.REG[2] = NEW_ReduceAction673_parser___ReduceAction673___init(REGB0);
4180 /* ./parser//parser.nit:154 */
4181 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4182 /* ./parser//parser.nit:829 */
4183 REGB0 = TAG_Int(140);
4184 fra.me.REG[2] = NEW_ReduceAction674_parser___ReduceAction674___init(REGB0);
4185 /* ./parser//parser.nit:154 */
4186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4187 /* ./parser//parser.nit:830 */
4188 REGB0 = TAG_Int(141);
4189 fra.me.REG[2] = NEW_ReduceAction675_parser___ReduceAction675___init(REGB0);
4190 /* ./parser//parser.nit:154 */
4191 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4192 /* ./parser//parser.nit:831 */
4193 REGB0 = TAG_Int(141);
4194 fra.me.REG[2] = NEW_ReduceAction676_parser___ReduceAction676___init(REGB0);
4195 /* ./parser//parser.nit:154 */
4196 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4197 /* ./parser//parser.nit:832 */
4198 REGB0 = TAG_Int(142);
4199 fra.me.REG[2] = NEW_ReduceAction677_parser___ReduceAction677___init(REGB0);
4200 /* ./parser//parser.nit:154 */
4201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4202 /* ./parser//parser.nit:833 */
4203 REGB0 = TAG_Int(142);
4204 fra.me.REG[2] = NEW_ReduceAction678_parser___ReduceAction678___init(REGB0);
4205 /* ./parser//parser.nit:154 */
4206 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4207 /* ./parser//parser.nit:834 */
4208 REGB0 = TAG_Int(143);
4209 fra.me.REG[2] = NEW_ReduceAction198_parser___ReduceAction198___init(REGB0);
4210 /* ./parser//parser.nit:154 */
4211 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4212 /* ./parser//parser.nit:835 */
4213 REGB0 = TAG_Int(143);
4214 fra.me.REG[2] = NEW_ReduceAction680_parser___ReduceAction680___init(REGB0);
4215 /* ./parser//parser.nit:154 */
4216 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4217 /* ./parser//parser.nit:836 */
4218 REGB0 = TAG_Int(144);
4219 fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction366___init(REGB0);
4220 /* ./parser//parser.nit:154 */
4221 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4222 /* ./parser//parser.nit:837 */
4223 REGB0 = TAG_Int(144);
4224 fra.me.REG[2] = NEW_ReduceAction682_parser___ReduceAction682___init(REGB0);
4225 /* ./parser//parser.nit:154 */
4226 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4227 /* ./parser//parser.nit:838 */
4228 REGB0 = TAG_Int(145);
4229 fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction373___init(REGB0);
4230 /* ./parser//parser.nit:154 */
4231 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4232 /* ./parser//parser.nit:839 */
4233 REGB0 = TAG_Int(145);
4234 fra.me.REG[2] = NEW_ReduceAction684_parser___ReduceAction684___init(REGB0);
4235 /* ./parser//parser.nit:154 */
4236 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4237 /* ./parser//parser.nit:840 */
4238 REGB0 = TAG_Int(146);
4239 fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction366___init(REGB0);
4240 /* ./parser//parser.nit:154 */
4241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4242 /* ./parser//parser.nit:841 */
4243 REGB0 = TAG_Int(146);
4244 fra.me.REG[2] = NEW_ReduceAction682_parser___ReduceAction682___init(REGB0);
4245 /* ./parser//parser.nit:154 */
4246 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4247 /* ./parser//parser.nit:842 */
4248 REGB0 = TAG_Int(147);
4249 fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction374___init(REGB0);
4250 /* ./parser//parser.nit:154 */
4251 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4252 /* ./parser//parser.nit:843 */
4253 REGB0 = TAG_Int(147);
4254 fra.me.REG[2] = NEW_ReduceAction688_parser___ReduceAction688___init(REGB0);
4255 /* ./parser//parser.nit:154 */
4256 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4257 /* ./parser//parser.nit:844 */
4258 REGB0 = TAG_Int(148);
4259 fra.me.REG[2] = NEW_ReduceAction689_parser___ReduceAction689___init(REGB0);
4260 /* ./parser//parser.nit:154 */
4261 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4262 /* ./parser//parser.nit:845 */
4263 REGB0 = TAG_Int(148);
4264 fra.me.REG[2] = NEW_ReduceAction690_parser___ReduceAction690___init(REGB0);
4265 /* ./parser//parser.nit:154 */
4266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4267 /* ./parser//parser.nit:846 */
4268 REGB0 = TAG_Int(149);
4269 fra.me.REG[2] = NEW_ReduceAction691_parser___ReduceAction691___init(REGB0);
4270 /* ./parser//parser.nit:154 */
4271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4272 /* ./parser//parser.nit:847 */
4273 REGB0 = TAG_Int(149);
4274 fra.me.REG[2] = NEW_ReduceAction692_parser___ReduceAction692___init(REGB0);
4275 /* ./parser//parser.nit:154 */
4276 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4277 fra.me.REG[1] = NEW_Array_array___Array___with_items(fra.me.REG[1]);
4278 ATTR_parser___Parser____reduce_table(fra.me.REG[0]) = fra.me.REG[1];
4279 stack_frame_head = fra.me.prev;
4280 return;
4281 }
4282 void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
4283 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4284 val_t REGB0;
4285 val_t REGB1;
4286 val_t REGB2;
4287 val_t REGB3;
4288 val_t REGB4;
4289 val_t tmp;
4290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4291 fra.me.file = LOCATE_parser;
4292 fra.me.line = 878;
4293 fra.me.meth = LOCATE_parser___ComputeProdLocationVisitor___visit;
4294 fra.me.has_broke = 0;
4295 fra.me.REG_size = 9;
4296 fra.me.REG[0] = NIT_NULL;
4297 fra.me.REG[1] = NIT_NULL;
4298 fra.me.REG[2] = NIT_NULL;
4299 fra.me.REG[3] = NIT_NULL;
4300 fra.me.REG[4] = NIT_NULL;
4301 fra.me.REG[5] = NIT_NULL;
4302 fra.me.REG[6] = NIT_NULL;
4303 fra.me.REG[7] = NIT_NULL;
4304 fra.me.REG[8] = NIT_NULL;
4305 fra.me.REG[0] = p0;
4306 fra.me.REG[1] = p1;
4307 /* ./parser//parser.nit:880 */
4308 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4309 if (UNTAG_Bool(REGB0)) {
4310 } else {
4311 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4312 if (UNTAG_Bool(REGB1)) {
4313 REGB1 = TAG_Bool(false);
4314 REGB0 = REGB1;
4315 } else {
4316 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4317 REGB0 = REGB1;
4318 }
4319 }
4320 if (UNTAG_Bool(REGB0)) {
4321 /* ./parser//parser.nit:881 */
4322 goto label1;
4323 } else {
4324 /* ./parser//parser.nit:882 */
4325 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/;
4326 if (UNTAG_Bool(REGB0)) {
4327 /* ./parser//parser.nit:883 */
4328 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4329 if (UNTAG_Bool(REGB0)) {
4330 nit_abort("Reciever is null", NULL, LOCATE_parser, 883);
4331 }
4332 fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
4333 /* ./parser//parser.nit:884 */
4334 ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[2];
4335 /* ./parser//parser.nit:887 */
4336 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
4337 if (UNTAG_Bool(REGB0)) {
4338 } else {
4339 nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 887);
4340 }
4341 fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
4342 /* ./../lib/standard//collection//array.nit:234 */
4343 REGB0 = TAG_Int(0);
4344 /* ./../lib/standard//collection//array.nit:235 */
4345 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
4346 if (UNTAG_Bool(REGB1)) {
4347 } else {
4348 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4349 }
4350 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
4351 /* ./../lib/standard//collection//array.nit:236 */
4352 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
4353 /* ./../lib/standard//collection//array.nit:237 */
4354 while(1) {
4355 /* ./../lib/standard//collection//array.nit:23 */
4356 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
4357 if (UNTAG_Bool(REGB1)) {
4358 } else {
4359 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4360 }
4361 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
4362 /* ./../lib/standard//kernel.nit:212 */
4363 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4364 /* ./../lib/standard//collection//array.nit:237 */
4365 if (UNTAG_Bool(REGB1)) {
4366 /* ./../lib/standard//collection//array.nit:238 */
4367 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4368 if (UNTAG_Bool(REGB1)) {
4369 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4370 }
4371 /* ./../lib/standard//collection//array.nit:654 */
4372 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
4373 /* ./parser//parser.nit:888 */
4374 ATTR_parser___Prod____first_location(fra.me.REG[5]) = fra.me.REG[2];
4375 /* ./../lib/standard//collection//array.nit:239 */
4376 REGB1 = TAG_Int(1);
4377 /* ./../lib/standard//kernel.nit:215 */
4378 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4379 /* ./../lib/standard//collection//array.nit:239 */
4380 REGB0 = REGB1;
4381 } else {
4382 /* ./../lib/standard//collection//array.nit:237 */
4383 goto label2;
4384 }
4385 }
4386 label2: while(0);
4387 /* ./parser//parser.nit:890 */
4388 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
4389 if (UNTAG_Bool(REGB0)) {
4390 } else {
4391 nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 890);
4392 }
4393 fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
4394 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
4395 /* ./parser//parser.nit:893 */
4396 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4397 if (UNTAG_Bool(REGB0)) {
4398 } else {
4399 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 893);
4400 }
4401 fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4402 /* ./../lib/standard//collection//array.nit:234 */
4403 REGB0 = TAG_Int(0);
4404 /* ./../lib/standard//collection//array.nit:235 */
4405 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4406 if (UNTAG_Bool(REGB1)) {
4407 } else {
4408 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4409 }
4410 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4411 /* ./../lib/standard//collection//array.nit:236 */
4412 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[4]);
4413 /* ./../lib/standard//collection//array.nit:237 */
4414 while(1) {
4415 /* ./../lib/standard//collection//array.nit:23 */
4416 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4417 if (UNTAG_Bool(REGB1)) {
4418 } else {
4419 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4420 }
4421 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4422 /* ./../lib/standard//kernel.nit:212 */
4423 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4424 /* ./../lib/standard//collection//array.nit:237 */
4425 if (UNTAG_Bool(REGB1)) {
4426 /* ./../lib/standard//collection//array.nit:238 */
4427 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4428 if (UNTAG_Bool(REGB1)) {
4429 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4430 }
4431 /* ./../lib/standard//collection//array.nit:654 */
4432 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
4433 /* ./parser//parser.nit:896 */
4434 fra.me.REG[6] = fra.me.REG[2];
4435 /* ./parser//parser.nit:897 */
4436 fra.me.REG[7] = ATTR_parser___Prod____last_location(fra.me.REG[5]);
4437 /* ./parser//parser.nit:898 */
4438 fra.me.REG[8] = CALL_location___Location___file(fra.me.REG[6])(fra.me.REG[6]);
4439 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4440 if (UNTAG_Bool(REGB1)) {
4441 nit_abort("Reciever is null", NULL, LOCATE_parser, 898);
4442 }
4443 REGB1 = CALL_location___Location___line_end(fra.me.REG[7])(fra.me.REG[7]);
4444 REGB2 = CALL_location___Location___line_start(fra.me.REG[6])(fra.me.REG[6]);
4445 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4446 if (UNTAG_Bool(REGB3)) {
4447 nit_abort("Reciever is null", NULL, LOCATE_parser, 898);
4448 }
4449 REGB3 = CALL_location___Location___column_end(fra.me.REG[7])(fra.me.REG[7]);
4450 REGB4 = CALL_location___Location___column_start(fra.me.REG[6])(fra.me.REG[6]);
4451 fra.me.REG[8] = NEW_Location_location___Location___init(fra.me.REG[8], REGB1, REGB2, REGB3, REGB4);
4452 CALL_parser_nodes___Prod___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
4453 /* ./../lib/standard//collection//array.nit:239 */
4454 REGB4 = TAG_Int(1);
4455 /* ./../lib/standard//kernel.nit:215 */
4456 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
4457 /* ./../lib/standard//collection//array.nit:239 */
4458 REGB0 = REGB4;
4459 } else {
4460 /* ./../lib/standard//collection//array.nit:237 */
4461 goto label3;
4462 }
4463 }
4464 label3: while(0);
4465 /* ./parser//parser.nit:900 */
4466 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4467 if (UNTAG_Bool(REGB0)) {
4468 } else {
4469 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 900);
4470 }
4471 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4472 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
4473 } else {
4474 /* ./parser//parser.nit:902 */
4475 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Prod, ID_Prod)) /*cast Prod*/;
4476 if (UNTAG_Bool(REGB0)) {
4477 } else {
4478 nit_abort("Assert failed", NULL, LOCATE_parser, 902);
4479 }
4480 /* ./parser//parser.nit:903 */
4481 REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
4482 if (UNTAG_Bool(REGB0)) {
4483 } else {
4484 nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 903);
4485 }
4486 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
4487 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4488 /* ./parser//parser.nit:905 */
4489 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]);
4490 /* ./parser//parser.nit:906 */
4491 ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = NIT_NULL;
4492 /* ./parser//parser.nit:907 */
4493 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4494 if (UNTAG_Bool(REGB0)) {
4495 nit_abort("Reciever is null", NULL, LOCATE_parser, 907);
4496 }
4497 CALL_parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4498 /* ./parser//parser.nit:908 */
4499 fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]);
4500 /* ./parser//parser.nit:909 */
4501 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4502 if (UNTAG_Bool(REGB0)) {
4503 } else {
4504 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4505 if (UNTAG_Bool(REGB4)) {
4506 REGB4 = TAG_Bool(false);
4507 REGB0 = REGB4;
4508 } else {
4509 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4510 REGB0 = REGB4;
4511 }
4512 }
4513 if (UNTAG_Bool(REGB0)) {
4514 ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[2];
4515 }
4516 /* ./parser//parser.nit:911 */
4517 ATTR_parser___Prod____last_location(fra.me.REG[1]) = fra.me.REG[3];
4518 /* ./parser//parser.nit:912 */
4519 fra.me.REG[2] = ATTR_parser___Prod____first_location(fra.me.REG[1]);
4520 /* ./parser//parser.nit:913 */
4521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4522 if (UNTAG_Bool(REGB0)) {
4523 } else {
4524 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4525 if (UNTAG_Bool(REGB4)) {
4526 REGB4 = TAG_Bool(false);
4527 REGB0 = REGB4;
4528 } else {
4529 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4530 REGB0 = REGB4;
4531 }
4532 }
4533 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4534 if (UNTAG_Bool(REGB0)) {
4535 /* ./parser//parser.nit:915 */
4536 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4537 if (UNTAG_Bool(REGB0)) {
4538 } else {
4539 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4540 if (UNTAG_Bool(REGB4)) {
4541 REGB4 = TAG_Bool(false);
4542 REGB0 = REGB4;
4543 } else {
4544 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4545 REGB0 = REGB4;
4546 }
4547 }
4548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4549 if (UNTAG_Bool(REGB0)) {
4550 } else {
4551 nit_abort("Assert failed", NULL, LOCATE_parser, 915);
4552 }
4553 /* ./parser//parser.nit:917 */
4554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4555 if (UNTAG_Bool(REGB0)) {
4556 nit_abort("Reciever is null", NULL, LOCATE_parser, 917);
4557 }
4558 fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
4559 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4560 if (UNTAG_Bool(REGB0)) {
4561 nit_abort("Reciever is null", NULL, LOCATE_parser, 917);
4562 }
4563 REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
4564 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4565 if (UNTAG_Bool(REGB4)) {
4566 nit_abort("Reciever is null", NULL, LOCATE_parser, 917);
4567 }
4568 REGB4 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
4569 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4570 if (UNTAG_Bool(REGB3)) {
4571 nit_abort("Reciever is null", NULL, LOCATE_parser, 917);
4572 }
4573 REGB3 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
4574 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4575 if (UNTAG_Bool(REGB2)) {
4576 nit_abort("Reciever is null", NULL, LOCATE_parser, 917);
4577 }
4578 REGB2 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
4579 fra.me.REG[4] = NEW_Location_location___Location___init(fra.me.REG[4], REGB0, REGB4, REGB3, REGB2);
4580 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4581 if (UNTAG_Bool(REGB2)) {
4582 nit_abort("Reciever is null", NULL, LOCATE_parser, 917);
4583 }
4584 CALL_parser_nodes___Prod___location__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4585 /* ./parser//parser.nit:919 */
4586 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
4587 if (UNTAG_Bool(REGB2)) {
4588 } else {
4589 nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 919);
4590 }
4591 fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
4592 /* ./../lib/standard//collection//array.nit:234 */
4593 REGB2 = TAG_Int(0);
4594 /* ./../lib/standard//collection//array.nit:235 */
4595 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4596 if (UNTAG_Bool(REGB3)) {
4597 } else {
4598 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4599 }
4600 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4601 /* ./../lib/standard//collection//array.nit:236 */
4602 fra.me.REG[8] = ATTR_array___Array____items(fra.me.REG[4]);
4603 /* ./../lib/standard//collection//array.nit:237 */
4604 while(1) {
4605 /* ./../lib/standard//collection//array.nit:23 */
4606 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4607 if (UNTAG_Bool(REGB3)) {
4608 } else {
4609 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4610 }
4611 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4612 /* ./../lib/standard//kernel.nit:212 */
4613 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
4614 /* ./../lib/standard//collection//array.nit:237 */
4615 if (UNTAG_Bool(REGB3)) {
4616 /* ./../lib/standard//collection//array.nit:238 */
4617 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
4618 if (UNTAG_Bool(REGB3)) {
4619 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4620 }
4621 /* ./../lib/standard//collection//array.nit:654 */
4622 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
4623 /* ./parser//parser.nit:922 */
4624 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4625 if (UNTAG_Bool(REGB3)) {
4626 nit_abort("Reciever is null", NULL, LOCATE_parser, 922);
4627 }
4628 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
4629 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4630 if (UNTAG_Bool(REGB3)) {
4631 nit_abort("Reciever is null", NULL, LOCATE_parser, 922);
4632 }
4633 REGB3 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
4634 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4635 if (UNTAG_Bool(REGB4)) {
4636 nit_abort("Reciever is null", NULL, LOCATE_parser, 922);
4637 }
4638 REGB4 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
4639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4640 if (UNTAG_Bool(REGB0)) {
4641 nit_abort("Reciever is null", NULL, LOCATE_parser, 922);
4642 }
4643 REGB0 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
4644 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4645 if (UNTAG_Bool(REGB1)) {
4646 nit_abort("Reciever is null", NULL, LOCATE_parser, 922);
4647 }
4648 REGB1 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
4649 fra.me.REG[6] = NEW_Location_location___Location___init(fra.me.REG[6], REGB3, REGB4, REGB0, REGB1);
4650 CALL_parser_nodes___Prod___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4651 /* ./../lib/standard//collection//array.nit:239 */
4652 REGB1 = TAG_Int(1);
4653 /* ./../lib/standard//kernel.nit:215 */
4654 REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
4655 /* ./../lib/standard//collection//array.nit:239 */
4656 REGB2 = REGB1;
4657 } else {
4658 /* ./../lib/standard//collection//array.nit:237 */
4659 goto label4;
4660 }
4661 }
4662 label4: while(0);
4663 /* ./parser//parser.nit:924 */
4664 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
4665 if (UNTAG_Bool(REGB2)) {
4666 } else {
4667 nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 924);
4668 }
4669 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
4670 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
4671 /* ./parser//parser.nit:926 */
4672 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4673 if (UNTAG_Bool(REGB2)) {
4674 } else {
4675 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 926);
4676 }
4677 fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4678 /* ./../lib/standard//collection//array.nit:234 */
4679 REGB2 = TAG_Int(0);
4680 /* ./../lib/standard//collection//array.nit:235 */
4681 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4682 if (UNTAG_Bool(REGB1)) {
4683 } else {
4684 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4685 }
4686 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4687 /* ./../lib/standard//collection//array.nit:236 */
4688 fra.me.REG[8] = ATTR_array___Array____items(fra.me.REG[2]);
4689 /* ./../lib/standard//collection//array.nit:237 */
4690 while(1) {
4691 /* ./../lib/standard//collection//array.nit:23 */
4692 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4693 if (UNTAG_Bool(REGB1)) {
4694 } else {
4695 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4696 }
4697 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
4698 /* ./../lib/standard//kernel.nit:212 */
4699 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
4700 /* ./../lib/standard//collection//array.nit:237 */
4701 if (UNTAG_Bool(REGB1)) {
4702 /* ./../lib/standard//collection//array.nit:238 */
4703 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
4704 if (UNTAG_Bool(REGB1)) {
4705 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4706 }
4707 /* ./../lib/standard//collection//array.nit:654 */
4708 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
4709 /* ./parser//parser.nit:929 */
4710 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4711 if (UNTAG_Bool(REGB1)) {
4712 nit_abort("Reciever is null", NULL, LOCATE_parser, 929);
4713 }
4714 fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[3])(fra.me.REG[3]);
4715 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4716 if (UNTAG_Bool(REGB1)) {
4717 nit_abort("Reciever is null", NULL, LOCATE_parser, 929);
4718 }
4719 REGB1 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
4720 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4721 if (UNTAG_Bool(REGB0)) {
4722 nit_abort("Reciever is null", NULL, LOCATE_parser, 929);
4723 }
4724 REGB0 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
4725 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4726 if (UNTAG_Bool(REGB4)) {
4727 nit_abort("Reciever is null", NULL, LOCATE_parser, 929);
4728 }
4729 REGB4 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
4730 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4731 if (UNTAG_Bool(REGB3)) {
4732 nit_abort("Reciever is null", NULL, LOCATE_parser, 929);
4733 }
4734 REGB3 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
4735 fra.me.REG[6] = NEW_Location_location___Location___init(fra.me.REG[6], REGB1, REGB0, REGB4, REGB3);
4736 CALL_parser_nodes___Prod___location__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
4737 /* ./../lib/standard//collection//array.nit:239 */
4738 REGB3 = TAG_Int(1);
4739 /* ./../lib/standard//kernel.nit:215 */
4740 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
4741 /* ./../lib/standard//collection//array.nit:239 */
4742 REGB2 = REGB3;
4743 } else {
4744 /* ./../lib/standard//collection//array.nit:237 */
4745 goto label5;
4746 }
4747 }
4748 label5: while(0);
4749 /* ./parser//parser.nit:931 */
4750 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4751 if (UNTAG_Bool(REGB2)) {
4752 } else {
4753 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 931);
4754 }
4755 fra.me.REG[8] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4756 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[8])(fra.me.REG[8]);
4757 } else {
4758 /* ./parser//parser.nit:935 */
4759 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4760 if (UNTAG_Bool(REGB2)) {
4761 } else {
4762 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4763 if (UNTAG_Bool(REGB3)) {
4764 REGB3 = TAG_Bool(false);
4765 REGB2 = REGB3;
4766 } else {
4767 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4768 REGB2 = REGB3;
4769 }
4770 }
4771 if (UNTAG_Bool(REGB2)) {
4772 /* ./parser//parser.nit:937 */
4773 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
4774 if (UNTAG_Bool(REGB2)) {
4775 } else {
4776 nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 937);
4777 }
4778 fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
4779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4780 } else {
4781 /* ./parser//parser.nit:940 */
4782 REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
4783 if (UNTAG_Bool(REGB2)) {
4784 } else {
4785 nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 940);
4786 }
4787 fra.me.REG[0] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
4788 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4789 }
4790 }
4791 }
4792 }
4793 label1: while(0);
4794 stack_frame_head = fra.me.prev;
4795 return;
4796 }
4797 void parser___ComputeProdLocationVisitor___init(val_t p0, int* init_table){
4798 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ComputeProdLocationVisitor].i;
4799 struct {struct stack_frame_t me;} fra;
4800 val_t tmp;
4801 if (init_table[itpos2]) return;
4802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4803 fra.me.file = LOCATE_parser;
4804 fra.me.line = 946;
4805 fra.me.meth = LOCATE_parser___ComputeProdLocationVisitor___init;
4806 fra.me.has_broke = 0;
4807 fra.me.REG_size = 1;
4808 fra.me.REG[0] = NIT_NULL;
4809 fra.me.REG[0] = p0;
4810 /* ./parser//parser.nit:946 */
4811 CALL_parser_prod___Visitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
4812 stack_frame_head = fra.me.prev;
4813 init_table[itpos2] = 1;
4814 return;
4815 }
4816 void parser___ReduceAction___action(val_t p0, val_t p1){
4817 struct {struct stack_frame_t me;} fra;
4818 val_t tmp;
4819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4820 fra.me.file = LOCATE_parser;
4821 fra.me.line = 951;
4822 fra.me.meth = LOCATE_parser___ReduceAction___action;
4823 fra.me.has_broke = 0;
4824 fra.me.REG_size = 0;
4825 /* ./parser//parser.nit:951 */
4826 nit_abort("Deferred method called", NULL, LOCATE_parser, 951);
4827 stack_frame_head = fra.me.prev;
4828 return;
4829 }
4830 val_t parser___ReduceAction___concat(val_t p0, val_t p1, val_t p2){
4831 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4832 val_t REGB0;
4833 val_t tmp;
4834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4835 fra.me.file = LOCATE_parser;
4836 fra.me.line = 952;
4837 fra.me.meth = LOCATE_parser___ReduceAction___concat;
4838 fra.me.has_broke = 0;
4839 fra.me.REG_size = 3;
4840 fra.me.REG[0] = NIT_NULL;
4841 fra.me.REG[1] = NIT_NULL;
4842 fra.me.REG[2] = NIT_NULL;
4843 fra.me.REG[0] = p0;
4844 fra.me.REG[1] = p1;
4845 fra.me.REG[2] = p2;
4846 /* ./parser//parser.nit:954 */
4847 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
4848 if (UNTAG_Bool(REGB0)) {
4849 fra.me.REG[0] = fra.me.REG[2];
4850 goto label1;
4851 }
4852 /* ./parser//parser.nit:955 */
4853 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4854 /* ./parser//parser.nit:956 */
4855 fra.me.REG[0] = fra.me.REG[1];
4856 goto label1;
4857 label1: while(0);
4858 stack_frame_head = fra.me.prev;
4859 return fra.me.REG[0];
4860 }
4861 void parser___ReduceAction___init(val_t p0, int* init_table){
4862 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction].i;
4863 struct {struct stack_frame_t me;} fra;
4864 val_t tmp;
4865 if (init_table[itpos3]) return;
4866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4867 fra.me.file = LOCATE_parser;
4868 fra.me.line = 0;
4869 fra.me.meth = LOCATE_parser___ReduceAction___init;
4870 fra.me.has_broke = 0;
4871 fra.me.REG_size = 0;
4872 stack_frame_head = fra.me.prev;
4873 init_table[itpos3] = 1;
4874 return;
4875 }
4876 void parser___ReduceAction0___action(val_t p0, val_t p1){
4877 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4878 val_t REGB0;
4879 val_t tmp;
4880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4881 fra.me.file = LOCATE_parser;
4882 fra.me.line = 962;
4883 fra.me.meth = LOCATE_parser___ReduceAction0___action;
4884 fra.me.has_broke = 0;
4885 fra.me.REG_size = 5;
4886 fra.me.REG[0] = NIT_NULL;
4887 fra.me.REG[1] = NIT_NULL;
4888 fra.me.REG[2] = NIT_NULL;
4889 fra.me.REG[3] = NIT_NULL;
4890 fra.me.REG[4] = NIT_NULL;
4891 fra.me.REG[0] = p0;
4892 fra.me.REG[1] = p1;
4893 /* ./parser//parser.nit:964 */
4894 fra.me.REG[2] = NIT_NULL;
4895 /* ./parser//parser.nit:965 */
4896 fra.me.REG[3] = NEW_Array_array___Array___init();
4897 /* ./parser//parser.nit:966 */
4898 fra.me.REG[4] = NEW_Array_array___Array___init();
4899 /* ./parser//parser.nit:967 */
4900 fra.me.REG[4] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[3], fra.me.REG[4]);
4901 /* ./parser//parser.nit:972 */
4902 fra.me.REG[2] = fra.me.REG[4];
4903 /* ./parser//parser.nit:973 */
4904 REGB0 = TAG_Bool(ATTR_parser___ReduceAction0____goto(fra.me.REG[0])!=NIT_NULL);
4905 if (UNTAG_Bool(REGB0)) {
4906 } else {
4907 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 973);
4908 }
4909 REGB0 = ATTR_parser___ReduceAction0____goto(fra.me.REG[0]);
4910 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
4911 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4912 stack_frame_head = fra.me.prev;
4913 return;
4914 }
4915 void parser___ReduceAction0___init(val_t p0, val_t p1, int* init_table){
4916 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction0].i;
4917 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4918 val_t REGB0;
4919 val_t tmp;
4920 if (init_table[itpos4]) return;
4921 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4922 fra.me.file = LOCATE_parser;
4923 fra.me.line = 976;
4924 fra.me.meth = LOCATE_parser___ReduceAction0___init;
4925 fra.me.has_broke = 0;
4926 fra.me.REG_size = 2;
4927 fra.me.REG[0] = NIT_NULL;
4928 fra.me.REG[1] = NIT_NULL;
4929 fra.me.REG[0] = p0;
4930 REGB0 = p1;
4931 /* ./parser//parser.nit:976 */
4932 fra.me.REG[1] = fra.me.REG[0];
4933 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
4934 ATTR_parser___ReduceAction0____goto(fra.me.REG[1]) = REGB0;
4935 stack_frame_head = fra.me.prev;
4936 init_table[itpos4] = 1;
4937 return;
4938 }
4939 void parser___ReduceAction1___action(val_t p0, val_t p1){
4940 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4941 val_t REGB0;
4942 val_t tmp;
4943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4944 fra.me.file = LOCATE_parser;
4945 fra.me.line = 980;
4946 fra.me.meth = LOCATE_parser___ReduceAction1___action;
4947 fra.me.has_broke = 0;
4948 fra.me.REG_size = 6;
4949 fra.me.REG[0] = NIT_NULL;
4950 fra.me.REG[1] = NIT_NULL;
4951 fra.me.REG[2] = NIT_NULL;
4952 fra.me.REG[3] = NIT_NULL;
4953 fra.me.REG[4] = NIT_NULL;
4954 fra.me.REG[5] = NIT_NULL;
4955 fra.me.REG[0] = p0;
4956 fra.me.REG[1] = p1;
4957 /* ./parser//parser.nit:982 */
4958 fra.me.REG[2] = NIT_NULL;
4959 /* ./parser//parser.nit:983 */
4960 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
4961 /* ./parser//parser.nit:984 */
4962 fra.me.REG[4] = NEW_Array_array___Array___init();
4963 /* ./parser//parser.nit:985 */
4964 fra.me.REG[5] = NEW_Array_array___Array___init();
4965 /* ./parser//parser.nit:987 */
4966 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
4967 if (UNTAG_Bool(REGB0)) {
4968 } else {
4969 nit_abort("Assert failed", NULL, LOCATE_parser, 987);
4970 }
4971 /* ./parser//parser.nit:988 */
4972 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
4973 /* ./parser//parser.nit:993 */
4974 fra.me.REG[2] = fra.me.REG[5];
4975 /* ./parser//parser.nit:994 */
4976 REGB0 = TAG_Bool(ATTR_parser___ReduceAction1____goto(fra.me.REG[0])!=NIT_NULL);
4977 if (UNTAG_Bool(REGB0)) {
4978 } else {
4979 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 994);
4980 }
4981 REGB0 = ATTR_parser___ReduceAction1____goto(fra.me.REG[0]);
4982 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
4983 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4984 stack_frame_head = fra.me.prev;
4985 return;
4986 }
4987 void parser___ReduceAction1___init(val_t p0, val_t p1, int* init_table){
4988 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction1].i;
4989 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4990 val_t REGB0;
4991 val_t tmp;
4992 if (init_table[itpos5]) return;
4993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4994 fra.me.file = LOCATE_parser;
4995 fra.me.line = 997;
4996 fra.me.meth = LOCATE_parser___ReduceAction1___init;
4997 fra.me.has_broke = 0;
4998 fra.me.REG_size = 2;
4999 fra.me.REG[0] = NIT_NULL;
5000 fra.me.REG[1] = NIT_NULL;
5001 fra.me.REG[0] = p0;
5002 REGB0 = p1;
5003 /* ./parser//parser.nit:997 */
5004 fra.me.REG[1] = fra.me.REG[0];
5005 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5006 ATTR_parser___ReduceAction1____goto(fra.me.REG[1]) = REGB0;
5007 stack_frame_head = fra.me.prev;
5008 init_table[itpos5] = 1;
5009 return;
5010 }
5011 void parser___ReduceAction2___action(val_t p0, val_t p1){
5012 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5013 val_t REGB0;
5014 val_t tmp;
5015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5016 fra.me.file = LOCATE_parser;
5017 fra.me.line = 1001;
5018 fra.me.meth = LOCATE_parser___ReduceAction2___action;
5019 fra.me.has_broke = 0;
5020 fra.me.REG_size = 6;
5021 fra.me.REG[0] = NIT_NULL;
5022 fra.me.REG[1] = NIT_NULL;
5023 fra.me.REG[2] = NIT_NULL;
5024 fra.me.REG[3] = NIT_NULL;
5025 fra.me.REG[4] = NIT_NULL;
5026 fra.me.REG[5] = NIT_NULL;
5027 fra.me.REG[0] = p0;
5028 fra.me.REG[1] = p1;
5029 /* ./parser//parser.nit:1003 */
5030 fra.me.REG[2] = NIT_NULL;
5031 /* ./parser//parser.nit:1004 */
5032 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5033 /* ./parser//parser.nit:1005 */
5034 fra.me.REG[4] = NEW_Array_array___Array___init();
5035 /* ./parser//parser.nit:1006 */
5036 fra.me.REG[5] = NEW_Array_array___Array___init();
5037 /* ./parser//parser.nit:1008 */
5038 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5039 if (UNTAG_Bool(REGB0)) {
5040 } else {
5041 nit_abort("Assert failed", NULL, LOCATE_parser, 1008);
5042 }
5043 /* ./parser//parser.nit:1009 */
5044 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
5045 fra.me.REG[4] = fra.me.REG[3];
5046 /* ./parser//parser.nit:1010 */
5047 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
5048 /* ./parser//parser.nit:1015 */
5049 fra.me.REG[2] = fra.me.REG[5];
5050 /* ./parser//parser.nit:1016 */
5051 REGB0 = TAG_Bool(ATTR_parser___ReduceAction2____goto(fra.me.REG[0])!=NIT_NULL);
5052 if (UNTAG_Bool(REGB0)) {
5053 } else {
5054 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1016);
5055 }
5056 REGB0 = ATTR_parser___ReduceAction2____goto(fra.me.REG[0]);
5057 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5058 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5059 stack_frame_head = fra.me.prev;
5060 return;
5061 }
5062 void parser___ReduceAction2___init(val_t p0, val_t p1, int* init_table){
5063 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction2].i;
5064 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5065 val_t REGB0;
5066 val_t tmp;
5067 if (init_table[itpos6]) return;
5068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5069 fra.me.file = LOCATE_parser;
5070 fra.me.line = 1019;
5071 fra.me.meth = LOCATE_parser___ReduceAction2___init;
5072 fra.me.has_broke = 0;
5073 fra.me.REG_size = 2;
5074 fra.me.REG[0] = NIT_NULL;
5075 fra.me.REG[1] = NIT_NULL;
5076 fra.me.REG[0] = p0;
5077 REGB0 = p1;
5078 /* ./parser//parser.nit:1019 */
5079 fra.me.REG[1] = fra.me.REG[0];
5080 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5081 ATTR_parser___ReduceAction2____goto(fra.me.REG[1]) = REGB0;
5082 stack_frame_head = fra.me.prev;
5083 init_table[itpos6] = 1;
5084 return;
5085 }
5086 void parser___ReduceAction3___action(val_t p0, val_t p1){
5087 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5088 val_t REGB0;
5089 val_t tmp;
5090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5091 fra.me.file = LOCATE_parser;
5092 fra.me.line = 1023;
5093 fra.me.meth = LOCATE_parser___ReduceAction3___action;
5094 fra.me.has_broke = 0;
5095 fra.me.REG_size = 7;
5096 fra.me.REG[0] = NIT_NULL;
5097 fra.me.REG[1] = NIT_NULL;
5098 fra.me.REG[2] = NIT_NULL;
5099 fra.me.REG[3] = NIT_NULL;
5100 fra.me.REG[4] = NIT_NULL;
5101 fra.me.REG[5] = NIT_NULL;
5102 fra.me.REG[6] = NIT_NULL;
5103 fra.me.REG[0] = p0;
5104 fra.me.REG[1] = p1;
5105 /* ./parser//parser.nit:1025 */
5106 fra.me.REG[2] = NIT_NULL;
5107 /* ./parser//parser.nit:1026 */
5108 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5109 /* ./parser//parser.nit:1027 */
5110 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5111 /* ./parser//parser.nit:1028 */
5112 fra.me.REG[5] = NEW_Array_array___Array___init();
5113 /* ./parser//parser.nit:1029 */
5114 fra.me.REG[6] = NEW_Array_array___Array___init();
5115 /* ./parser//parser.nit:1031 */
5116 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5117 if (UNTAG_Bool(REGB0)) {
5118 } else {
5119 nit_abort("Assert failed", NULL, LOCATE_parser, 1031);
5120 }
5121 /* ./parser//parser.nit:1033 */
5122 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5123 if (UNTAG_Bool(REGB0)) {
5124 } else {
5125 nit_abort("Assert failed", NULL, LOCATE_parser, 1033);
5126 }
5127 /* ./parser//parser.nit:1034 */
5128 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
5129 fra.me.REG[5] = fra.me.REG[3];
5130 /* ./parser//parser.nit:1035 */
5131 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
5132 /* ./parser//parser.nit:1040 */
5133 fra.me.REG[2] = fra.me.REG[6];
5134 /* ./parser//parser.nit:1041 */
5135 REGB0 = TAG_Bool(ATTR_parser___ReduceAction3____goto(fra.me.REG[0])!=NIT_NULL);
5136 if (UNTAG_Bool(REGB0)) {
5137 } else {
5138 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1041);
5139 }
5140 REGB0 = ATTR_parser___ReduceAction3____goto(fra.me.REG[0]);
5141 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5142 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5143 stack_frame_head = fra.me.prev;
5144 return;
5145 }
5146 void parser___ReduceAction3___init(val_t p0, val_t p1, int* init_table){
5147 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction3].i;
5148 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5149 val_t REGB0;
5150 val_t tmp;
5151 if (init_table[itpos7]) return;
5152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5153 fra.me.file = LOCATE_parser;
5154 fra.me.line = 1044;
5155 fra.me.meth = LOCATE_parser___ReduceAction3___init;
5156 fra.me.has_broke = 0;
5157 fra.me.REG_size = 2;
5158 fra.me.REG[0] = NIT_NULL;
5159 fra.me.REG[1] = NIT_NULL;
5160 fra.me.REG[0] = p0;
5161 REGB0 = p1;
5162 /* ./parser//parser.nit:1044 */
5163 fra.me.REG[1] = fra.me.REG[0];
5164 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5165 ATTR_parser___ReduceAction3____goto(fra.me.REG[1]) = REGB0;
5166 stack_frame_head = fra.me.prev;
5167 init_table[itpos7] = 1;
5168 return;
5169 }
5170 void parser___ReduceAction4___action(val_t p0, val_t p1){
5171 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5172 val_t REGB0;
5173 val_t tmp;
5174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5175 fra.me.file = LOCATE_parser;
5176 fra.me.line = 1048;
5177 fra.me.meth = LOCATE_parser___ReduceAction4___action;
5178 fra.me.has_broke = 0;
5179 fra.me.REG_size = 6;
5180 fra.me.REG[0] = NIT_NULL;
5181 fra.me.REG[1] = NIT_NULL;
5182 fra.me.REG[2] = NIT_NULL;
5183 fra.me.REG[3] = NIT_NULL;
5184 fra.me.REG[4] = NIT_NULL;
5185 fra.me.REG[5] = NIT_NULL;
5186 fra.me.REG[0] = p0;
5187 fra.me.REG[1] = p1;
5188 /* ./parser//parser.nit:1050 */
5189 fra.me.REG[2] = NIT_NULL;
5190 /* ./parser//parser.nit:1051 */
5191 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5192 /* ./parser//parser.nit:1052 */
5193 fra.me.REG[4] = NEW_Array_array___Array___init();
5194 /* ./parser//parser.nit:1053 */
5195 fra.me.REG[5] = NEW_Array_array___Array___init();
5196 /* ./parser//parser.nit:1055 */
5197 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5198 if (UNTAG_Bool(REGB0)) {
5199 } else {
5200 nit_abort("Assert failed", NULL, LOCATE_parser, 1055);
5201 }
5202 /* ./parser//parser.nit:1056 */
5203 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
5204 fra.me.REG[5] = fra.me.REG[3];
5205 /* ./parser//parser.nit:1057 */
5206 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
5207 /* ./parser//parser.nit:1062 */
5208 fra.me.REG[2] = fra.me.REG[5];
5209 /* ./parser//parser.nit:1063 */
5210 REGB0 = TAG_Bool(ATTR_parser___ReduceAction4____goto(fra.me.REG[0])!=NIT_NULL);
5211 if (UNTAG_Bool(REGB0)) {
5212 } else {
5213 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1063);
5214 }
5215 REGB0 = ATTR_parser___ReduceAction4____goto(fra.me.REG[0]);
5216 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5217 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5218 stack_frame_head = fra.me.prev;
5219 return;
5220 }
5221 void parser___ReduceAction4___init(val_t p0, val_t p1, int* init_table){
5222 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction4].i;
5223 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5224 val_t REGB0;
5225 val_t tmp;
5226 if (init_table[itpos8]) return;
5227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5228 fra.me.file = LOCATE_parser;
5229 fra.me.line = 1066;
5230 fra.me.meth = LOCATE_parser___ReduceAction4___init;
5231 fra.me.has_broke = 0;
5232 fra.me.REG_size = 2;
5233 fra.me.REG[0] = NIT_NULL;
5234 fra.me.REG[1] = NIT_NULL;
5235 fra.me.REG[0] = p0;
5236 REGB0 = p1;
5237 /* ./parser//parser.nit:1066 */
5238 fra.me.REG[1] = fra.me.REG[0];
5239 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5240 ATTR_parser___ReduceAction4____goto(fra.me.REG[1]) = REGB0;
5241 stack_frame_head = fra.me.prev;
5242 init_table[itpos8] = 1;
5243 return;
5244 }
5245 void parser___ReduceAction5___action(val_t p0, val_t p1){
5246 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5247 val_t REGB0;
5248 val_t tmp;
5249 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5250 fra.me.file = LOCATE_parser;
5251 fra.me.line = 1070;
5252 fra.me.meth = LOCATE_parser___ReduceAction5___action;
5253 fra.me.has_broke = 0;
5254 fra.me.REG_size = 7;
5255 fra.me.REG[0] = NIT_NULL;
5256 fra.me.REG[1] = NIT_NULL;
5257 fra.me.REG[2] = NIT_NULL;
5258 fra.me.REG[3] = NIT_NULL;
5259 fra.me.REG[4] = NIT_NULL;
5260 fra.me.REG[5] = NIT_NULL;
5261 fra.me.REG[6] = NIT_NULL;
5262 fra.me.REG[0] = p0;
5263 fra.me.REG[1] = p1;
5264 /* ./parser//parser.nit:1072 */
5265 fra.me.REG[2] = NIT_NULL;
5266 /* ./parser//parser.nit:1073 */
5267 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5268 /* ./parser//parser.nit:1074 */
5269 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5270 /* ./parser//parser.nit:1075 */
5271 fra.me.REG[5] = NEW_Array_array___Array___init();
5272 /* ./parser//parser.nit:1076 */
5273 fra.me.REG[6] = NEW_Array_array___Array___init();
5274 /* ./parser//parser.nit:1078 */
5275 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5276 if (UNTAG_Bool(REGB0)) {
5277 } else {
5278 nit_abort("Assert failed", NULL, LOCATE_parser, 1078);
5279 }
5280 /* ./parser//parser.nit:1080 */
5281 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5282 if (UNTAG_Bool(REGB0)) {
5283 } else {
5284 nit_abort("Assert failed", NULL, LOCATE_parser, 1080);
5285 }
5286 /* ./parser//parser.nit:1081 */
5287 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
5288 fra.me.REG[6] = fra.me.REG[3];
5289 /* ./parser//parser.nit:1082 */
5290 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
5291 /* ./parser//parser.nit:1087 */
5292 fra.me.REG[2] = fra.me.REG[6];
5293 /* ./parser//parser.nit:1088 */
5294 REGB0 = TAG_Bool(ATTR_parser___ReduceAction5____goto(fra.me.REG[0])!=NIT_NULL);
5295 if (UNTAG_Bool(REGB0)) {
5296 } else {
5297 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1088);
5298 }
5299 REGB0 = ATTR_parser___ReduceAction5____goto(fra.me.REG[0]);
5300 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5301 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5302 stack_frame_head = fra.me.prev;
5303 return;
5304 }
5305 void parser___ReduceAction5___init(val_t p0, val_t p1, int* init_table){
5306 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction5].i;
5307 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5308 val_t REGB0;
5309 val_t tmp;
5310 if (init_table[itpos9]) return;
5311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5312 fra.me.file = LOCATE_parser;
5313 fra.me.line = 1091;
5314 fra.me.meth = LOCATE_parser___ReduceAction5___init;
5315 fra.me.has_broke = 0;
5316 fra.me.REG_size = 2;
5317 fra.me.REG[0] = NIT_NULL;
5318 fra.me.REG[1] = NIT_NULL;
5319 fra.me.REG[0] = p0;
5320 REGB0 = p1;
5321 /* ./parser//parser.nit:1091 */
5322 fra.me.REG[1] = fra.me.REG[0];
5323 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5324 ATTR_parser___ReduceAction5____goto(fra.me.REG[1]) = REGB0;
5325 stack_frame_head = fra.me.prev;
5326 init_table[itpos9] = 1;
5327 return;
5328 }
5329 void parser___ReduceAction6___action(val_t p0, val_t p1){
5330 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5331 val_t REGB0;
5332 val_t tmp;
5333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5334 fra.me.file = LOCATE_parser;
5335 fra.me.line = 1095;
5336 fra.me.meth = LOCATE_parser___ReduceAction6___action;
5337 fra.me.has_broke = 0;
5338 fra.me.REG_size = 7;
5339 fra.me.REG[0] = NIT_NULL;
5340 fra.me.REG[1] = NIT_NULL;
5341 fra.me.REG[2] = NIT_NULL;
5342 fra.me.REG[3] = NIT_NULL;
5343 fra.me.REG[4] = NIT_NULL;
5344 fra.me.REG[5] = NIT_NULL;
5345 fra.me.REG[6] = NIT_NULL;
5346 fra.me.REG[0] = p0;
5347 fra.me.REG[1] = p1;
5348 /* ./parser//parser.nit:1097 */
5349 fra.me.REG[2] = NIT_NULL;
5350 /* ./parser//parser.nit:1098 */
5351 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5352 /* ./parser//parser.nit:1099 */
5353 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5354 /* ./parser//parser.nit:1100 */
5355 fra.me.REG[5] = NEW_Array_array___Array___init();
5356 /* ./parser//parser.nit:1101 */
5357 fra.me.REG[6] = NEW_Array_array___Array___init();
5358 /* ./parser//parser.nit:1103 */
5359 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5360 if (UNTAG_Bool(REGB0)) {
5361 } else {
5362 nit_abort("Assert failed", NULL, LOCATE_parser, 1103);
5363 }
5364 /* ./parser//parser.nit:1104 */
5365 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
5366 fra.me.REG[5] = fra.me.REG[4];
5367 /* ./parser//parser.nit:1106 */
5368 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5369 if (UNTAG_Bool(REGB0)) {
5370 } else {
5371 nit_abort("Assert failed", NULL, LOCATE_parser, 1106);
5372 }
5373 /* ./parser//parser.nit:1107 */
5374 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
5375 fra.me.REG[6] = fra.me.REG[3];
5376 /* ./parser//parser.nit:1108 */
5377 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
5378 /* ./parser//parser.nit:1113 */
5379 fra.me.REG[2] = fra.me.REG[6];
5380 /* ./parser//parser.nit:1114 */
5381 REGB0 = TAG_Bool(ATTR_parser___ReduceAction6____goto(fra.me.REG[0])!=NIT_NULL);
5382 if (UNTAG_Bool(REGB0)) {
5383 } else {
5384 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1114);
5385 }
5386 REGB0 = ATTR_parser___ReduceAction6____goto(fra.me.REG[0]);
5387 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5388 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5389 stack_frame_head = fra.me.prev;
5390 return;
5391 }
5392 void parser___ReduceAction6___init(val_t p0, val_t p1, int* init_table){
5393 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction6].i;
5394 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5395 val_t REGB0;
5396 val_t tmp;
5397 if (init_table[itpos10]) return;
5398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5399 fra.me.file = LOCATE_parser;
5400 fra.me.line = 1117;
5401 fra.me.meth = LOCATE_parser___ReduceAction6___init;
5402 fra.me.has_broke = 0;
5403 fra.me.REG_size = 2;
5404 fra.me.REG[0] = NIT_NULL;
5405 fra.me.REG[1] = NIT_NULL;
5406 fra.me.REG[0] = p0;
5407 REGB0 = p1;
5408 /* ./parser//parser.nit:1117 */
5409 fra.me.REG[1] = fra.me.REG[0];
5410 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5411 ATTR_parser___ReduceAction6____goto(fra.me.REG[1]) = REGB0;
5412 stack_frame_head = fra.me.prev;
5413 init_table[itpos10] = 1;
5414 return;
5415 }
5416 void parser___ReduceAction7___action(val_t p0, val_t p1){
5417 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5418 val_t REGB0;
5419 val_t tmp;
5420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5421 fra.me.file = LOCATE_parser;
5422 fra.me.line = 1121;
5423 fra.me.meth = LOCATE_parser___ReduceAction7___action;
5424 fra.me.has_broke = 0;
5425 fra.me.REG_size = 8;
5426 fra.me.REG[0] = NIT_NULL;
5427 fra.me.REG[1] = NIT_NULL;
5428 fra.me.REG[2] = NIT_NULL;
5429 fra.me.REG[3] = NIT_NULL;
5430 fra.me.REG[4] = NIT_NULL;
5431 fra.me.REG[5] = NIT_NULL;
5432 fra.me.REG[6] = NIT_NULL;
5433 fra.me.REG[7] = NIT_NULL;
5434 fra.me.REG[0] = p0;
5435 fra.me.REG[1] = p1;
5436 /* ./parser//parser.nit:1123 */
5437 fra.me.REG[2] = NIT_NULL;
5438 /* ./parser//parser.nit:1124 */
5439 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5440 /* ./parser//parser.nit:1125 */
5441 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5442 /* ./parser//parser.nit:1126 */
5443 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5444 /* ./parser//parser.nit:1127 */
5445 fra.me.REG[6] = NEW_Array_array___Array___init();
5446 /* ./parser//parser.nit:1128 */
5447 fra.me.REG[7] = NEW_Array_array___Array___init();
5448 /* ./parser//parser.nit:1130 */
5449 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5450 if (UNTAG_Bool(REGB0)) {
5451 } else {
5452 nit_abort("Assert failed", NULL, LOCATE_parser, 1130);
5453 }
5454 /* ./parser//parser.nit:1132 */
5455 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5456 if (UNTAG_Bool(REGB0)) {
5457 } else {
5458 nit_abort("Assert failed", NULL, LOCATE_parser, 1132);
5459 }
5460 /* ./parser//parser.nit:1133 */
5461 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
5462 fra.me.REG[6] = fra.me.REG[4];
5463 /* ./parser//parser.nit:1135 */
5464 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5465 if (UNTAG_Bool(REGB0)) {
5466 } else {
5467 nit_abort("Assert failed", NULL, LOCATE_parser, 1135);
5468 }
5469 /* ./parser//parser.nit:1136 */
5470 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
5471 fra.me.REG[7] = fra.me.REG[3];
5472 /* ./parser//parser.nit:1137 */
5473 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
5474 /* ./parser//parser.nit:1142 */
5475 fra.me.REG[2] = fra.me.REG[7];
5476 /* ./parser//parser.nit:1143 */
5477 REGB0 = TAG_Bool(ATTR_parser___ReduceAction7____goto(fra.me.REG[0])!=NIT_NULL);
5478 if (UNTAG_Bool(REGB0)) {
5479 } else {
5480 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1143);
5481 }
5482 REGB0 = ATTR_parser___ReduceAction7____goto(fra.me.REG[0]);
5483 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5484 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5485 stack_frame_head = fra.me.prev;
5486 return;
5487 }
5488 void parser___ReduceAction7___init(val_t p0, val_t p1, int* init_table){
5489 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction7].i;
5490 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5491 val_t REGB0;
5492 val_t tmp;
5493 if (init_table[itpos11]) return;
5494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5495 fra.me.file = LOCATE_parser;
5496 fra.me.line = 1146;
5497 fra.me.meth = LOCATE_parser___ReduceAction7___init;
5498 fra.me.has_broke = 0;
5499 fra.me.REG_size = 2;
5500 fra.me.REG[0] = NIT_NULL;
5501 fra.me.REG[1] = NIT_NULL;
5502 fra.me.REG[0] = p0;
5503 REGB0 = p1;
5504 /* ./parser//parser.nit:1146 */
5505 fra.me.REG[1] = fra.me.REG[0];
5506 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5507 ATTR_parser___ReduceAction7____goto(fra.me.REG[1]) = REGB0;
5508 stack_frame_head = fra.me.prev;
5509 init_table[itpos11] = 1;
5510 return;
5511 }
5512 void parser___ReduceAction8___action(val_t p0, val_t p1){
5513 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5514 val_t REGB0;
5515 val_t REGB1;
5516 val_t tmp;
5517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5518 fra.me.file = LOCATE_parser;
5519 fra.me.line = 1150;
5520 fra.me.meth = LOCATE_parser___ReduceAction8___action;
5521 fra.me.has_broke = 0;
5522 fra.me.REG_size = 7;
5523 fra.me.REG[0] = NIT_NULL;
5524 fra.me.REG[1] = NIT_NULL;
5525 fra.me.REG[2] = NIT_NULL;
5526 fra.me.REG[3] = NIT_NULL;
5527 fra.me.REG[4] = NIT_NULL;
5528 fra.me.REG[5] = NIT_NULL;
5529 fra.me.REG[6] = NIT_NULL;
5530 fra.me.REG[0] = p0;
5531 fra.me.REG[1] = p1;
5532 /* ./parser//parser.nit:1152 */
5533 fra.me.REG[2] = NIT_NULL;
5534 /* ./parser//parser.nit:1153 */
5535 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5536 /* ./parser//parser.nit:1154 */
5537 fra.me.REG[4] = NEW_Array_array___Array___init();
5538 /* ./parser//parser.nit:1155 */
5539 fra.me.REG[5] = NEW_Array_array___Array___init();
5540 /* ./parser//parser.nit:1156 */
5541 fra.me.REG[6] = NEW_Array_array___Array___init();
5542 /* ./parser//parser.nit:1158 */
5543 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5544 if (UNTAG_Bool(REGB0)) {
5545 } else {
5546 nit_abort("Assert failed", NULL, LOCATE_parser, 1158);
5547 }
5548 /* ./parser//parser.nit:1159 */
5549 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
5550 fra.me.REG[6] = fra.me.REG[3];
5551 /* ./parser//parser.nit:1160 */
5552 fra.me.REG[6] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
5553 /* ./parser//parser.nit:1163 */
5554 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5555 if (UNTAG_Bool(REGB0)) {
5556 } else {
5557 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5558 if (UNTAG_Bool(REGB1)) {
5559 REGB1 = TAG_Bool(false);
5560 REGB0 = REGB1;
5561 } else {
5562 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5563 REGB0 = REGB1;
5564 }
5565 }
5566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5567 if (UNTAG_Bool(REGB0)) {
5568 /* ./parser//parser.nit:1164 */
5569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5570 }
5571 /* ./parser//parser.nit:1166 */
5572 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
5573 /* ./parser//parser.nit:1171 */
5574 fra.me.REG[2] = fra.me.REG[5];
5575 /* ./parser//parser.nit:1172 */
5576 REGB0 = TAG_Bool(ATTR_parser___ReduceAction8____goto(fra.me.REG[0])!=NIT_NULL);
5577 if (UNTAG_Bool(REGB0)) {
5578 } else {
5579 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1172);
5580 }
5581 REGB0 = ATTR_parser___ReduceAction8____goto(fra.me.REG[0]);
5582 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5583 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5584 stack_frame_head = fra.me.prev;
5585 return;
5586 }
5587 void parser___ReduceAction8___init(val_t p0, val_t p1, int* init_table){
5588 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction8].i;
5589 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5590 val_t REGB0;
5591 val_t tmp;
5592 if (init_table[itpos12]) return;
5593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5594 fra.me.file = LOCATE_parser;
5595 fra.me.line = 1175;
5596 fra.me.meth = LOCATE_parser___ReduceAction8___init;
5597 fra.me.has_broke = 0;
5598 fra.me.REG_size = 2;
5599 fra.me.REG[0] = NIT_NULL;
5600 fra.me.REG[1] = NIT_NULL;
5601 fra.me.REG[0] = p0;
5602 REGB0 = p1;
5603 /* ./parser//parser.nit:1175 */
5604 fra.me.REG[1] = fra.me.REG[0];
5605 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5606 ATTR_parser___ReduceAction8____goto(fra.me.REG[1]) = REGB0;
5607 stack_frame_head = fra.me.prev;
5608 init_table[itpos12] = 1;
5609 return;
5610 }
5611 void parser___ReduceAction9___action(val_t p0, val_t p1){
5612 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5613 val_t REGB0;
5614 val_t REGB1;
5615 val_t tmp;
5616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5617 fra.me.file = LOCATE_parser;
5618 fra.me.line = 1179;
5619 fra.me.meth = LOCATE_parser___ReduceAction9___action;
5620 fra.me.has_broke = 0;
5621 fra.me.REG_size = 8;
5622 fra.me.REG[0] = NIT_NULL;
5623 fra.me.REG[1] = NIT_NULL;
5624 fra.me.REG[2] = NIT_NULL;
5625 fra.me.REG[3] = NIT_NULL;
5626 fra.me.REG[4] = NIT_NULL;
5627 fra.me.REG[5] = NIT_NULL;
5628 fra.me.REG[6] = NIT_NULL;
5629 fra.me.REG[7] = NIT_NULL;
5630 fra.me.REG[0] = p0;
5631 fra.me.REG[1] = p1;
5632 /* ./parser//parser.nit:1181 */
5633 fra.me.REG[2] = NIT_NULL;
5634 /* ./parser//parser.nit:1182 */
5635 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5636 /* ./parser//parser.nit:1183 */
5637 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5638 /* ./parser//parser.nit:1184 */
5639 fra.me.REG[5] = NEW_Array_array___Array___init();
5640 /* ./parser//parser.nit:1185 */
5641 fra.me.REG[6] = NEW_Array_array___Array___init();
5642 /* ./parser//parser.nit:1187 */
5643 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5644 if (UNTAG_Bool(REGB0)) {
5645 } else {
5646 nit_abort("Assert failed", NULL, LOCATE_parser, 1187);
5647 }
5648 /* ./parser//parser.nit:1188 */
5649 fra.me.REG[7] = NEW_Array_array___Array___init();
5650 /* ./parser//parser.nit:1190 */
5651 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5652 if (UNTAG_Bool(REGB0)) {
5653 } else {
5654 nit_abort("Assert failed", NULL, LOCATE_parser, 1190);
5655 }
5656 /* ./parser//parser.nit:1191 */
5657 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
5658 fra.me.REG[7] = fra.me.REG[3];
5659 /* ./parser//parser.nit:1192 */
5660 fra.me.REG[7] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
5661 /* ./parser//parser.nit:1195 */
5662 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5663 if (UNTAG_Bool(REGB0)) {
5664 } else {
5665 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5666 if (UNTAG_Bool(REGB1)) {
5667 REGB1 = TAG_Bool(false);
5668 REGB0 = REGB1;
5669 } else {
5670 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5671 REGB0 = REGB1;
5672 }
5673 }
5674 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5675 if (UNTAG_Bool(REGB0)) {
5676 /* ./parser//parser.nit:1196 */
5677 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
5678 }
5679 /* ./parser//parser.nit:1198 */
5680 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
5681 /* ./parser//parser.nit:1203 */
5682 fra.me.REG[2] = fra.me.REG[6];
5683 /* ./parser//parser.nit:1204 */
5684 REGB0 = TAG_Bool(ATTR_parser___ReduceAction9____goto(fra.me.REG[0])!=NIT_NULL);
5685 if (UNTAG_Bool(REGB0)) {
5686 } else {
5687 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1204);
5688 }
5689 REGB0 = ATTR_parser___ReduceAction9____goto(fra.me.REG[0]);
5690 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5691 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5692 stack_frame_head = fra.me.prev;
5693 return;
5694 }
5695 void parser___ReduceAction9___init(val_t p0, val_t p1, int* init_table){
5696 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction9].i;
5697 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5698 val_t REGB0;
5699 val_t tmp;
5700 if (init_table[itpos13]) return;
5701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5702 fra.me.file = LOCATE_parser;
5703 fra.me.line = 1207;
5704 fra.me.meth = LOCATE_parser___ReduceAction9___init;
5705 fra.me.has_broke = 0;
5706 fra.me.REG_size = 2;
5707 fra.me.REG[0] = NIT_NULL;
5708 fra.me.REG[1] = NIT_NULL;
5709 fra.me.REG[0] = p0;
5710 REGB0 = p1;
5711 /* ./parser//parser.nit:1207 */
5712 fra.me.REG[1] = fra.me.REG[0];
5713 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5714 ATTR_parser___ReduceAction9____goto(fra.me.REG[1]) = REGB0;
5715 stack_frame_head = fra.me.prev;
5716 init_table[itpos13] = 1;
5717 return;
5718 }
5719 void parser___ReduceAction10___action(val_t p0, val_t p1){
5720 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5721 val_t REGB0;
5722 val_t REGB1;
5723 val_t tmp;
5724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5725 fra.me.file = LOCATE_parser;
5726 fra.me.line = 1211;
5727 fra.me.meth = LOCATE_parser___ReduceAction10___action;
5728 fra.me.has_broke = 0;
5729 fra.me.REG_size = 7;
5730 fra.me.REG[0] = NIT_NULL;
5731 fra.me.REG[1] = NIT_NULL;
5732 fra.me.REG[2] = NIT_NULL;
5733 fra.me.REG[3] = NIT_NULL;
5734 fra.me.REG[4] = NIT_NULL;
5735 fra.me.REG[5] = NIT_NULL;
5736 fra.me.REG[6] = NIT_NULL;
5737 fra.me.REG[0] = p0;
5738 fra.me.REG[1] = p1;
5739 /* ./parser//parser.nit:1213 */
5740 fra.me.REG[2] = NIT_NULL;
5741 /* ./parser//parser.nit:1214 */
5742 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5743 /* ./parser//parser.nit:1215 */
5744 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5745 /* ./parser//parser.nit:1216 */
5746 fra.me.REG[5] = NEW_Array_array___Array___init();
5747 /* ./parser//parser.nit:1217 */
5748 fra.me.REG[6] = NEW_Array_array___Array___init();
5749 /* ./parser//parser.nit:1219 */
5750 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5751 if (UNTAG_Bool(REGB0)) {
5752 } else {
5753 nit_abort("Assert failed", NULL, LOCATE_parser, 1219);
5754 }
5755 /* ./parser//parser.nit:1220 */
5756 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
5757 fra.me.REG[5] = fra.me.REG[4];
5758 /* ./parser//parser.nit:1221 */
5759 fra.me.REG[4] = NEW_Array_array___Array___init();
5760 /* ./parser//parser.nit:1223 */
5761 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5762 if (UNTAG_Bool(REGB0)) {
5763 } else {
5764 nit_abort("Assert failed", NULL, LOCATE_parser, 1223);
5765 }
5766 /* ./parser//parser.nit:1224 */
5767 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
5768 fra.me.REG[4] = fra.me.REG[3];
5769 /* ./parser//parser.nit:1225 */
5770 fra.me.REG[4] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[4]);
5771 /* ./parser//parser.nit:1228 */
5772 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5773 if (UNTAG_Bool(REGB0)) {
5774 } else {
5775 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5776 if (UNTAG_Bool(REGB1)) {
5777 REGB1 = TAG_Bool(false);
5778 REGB0 = REGB1;
5779 } else {
5780 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5781 REGB0 = REGB1;
5782 }
5783 }
5784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5785 if (UNTAG_Bool(REGB0)) {
5786 /* ./parser//parser.nit:1229 */
5787 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
5788 }
5789 /* ./parser//parser.nit:1231 */
5790 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
5791 /* ./parser//parser.nit:1236 */
5792 fra.me.REG[2] = fra.me.REG[6];
5793 /* ./parser//parser.nit:1237 */
5794 REGB0 = TAG_Bool(ATTR_parser___ReduceAction10____goto(fra.me.REG[0])!=NIT_NULL);
5795 if (UNTAG_Bool(REGB0)) {
5796 } else {
5797 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1237);
5798 }
5799 REGB0 = ATTR_parser___ReduceAction10____goto(fra.me.REG[0]);
5800 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5801 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5802 stack_frame_head = fra.me.prev;
5803 return;
5804 }
5805 void parser___ReduceAction10___init(val_t p0, val_t p1, int* init_table){
5806 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction10].i;
5807 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5808 val_t REGB0;
5809 val_t tmp;
5810 if (init_table[itpos14]) return;
5811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5812 fra.me.file = LOCATE_parser;
5813 fra.me.line = 1240;
5814 fra.me.meth = LOCATE_parser___ReduceAction10___init;
5815 fra.me.has_broke = 0;
5816 fra.me.REG_size = 2;
5817 fra.me.REG[0] = NIT_NULL;
5818 fra.me.REG[1] = NIT_NULL;
5819 fra.me.REG[0] = p0;
5820 REGB0 = p1;
5821 /* ./parser//parser.nit:1240 */
5822 fra.me.REG[1] = fra.me.REG[0];
5823 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5824 ATTR_parser___ReduceAction10____goto(fra.me.REG[1]) = REGB0;
5825 stack_frame_head = fra.me.prev;
5826 init_table[itpos14] = 1;
5827 return;
5828 }
5829 void parser___ReduceAction11___action(val_t p0, val_t p1){
5830 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5831 val_t REGB0;
5832 val_t REGB1;
5833 val_t tmp;
5834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5835 fra.me.file = LOCATE_parser;
5836 fra.me.line = 1244;
5837 fra.me.meth = LOCATE_parser___ReduceAction11___action;
5838 fra.me.has_broke = 0;
5839 fra.me.REG_size = 8;
5840 fra.me.REG[0] = NIT_NULL;
5841 fra.me.REG[1] = NIT_NULL;
5842 fra.me.REG[2] = NIT_NULL;
5843 fra.me.REG[3] = NIT_NULL;
5844 fra.me.REG[4] = NIT_NULL;
5845 fra.me.REG[5] = NIT_NULL;
5846 fra.me.REG[6] = NIT_NULL;
5847 fra.me.REG[7] = NIT_NULL;
5848 fra.me.REG[0] = p0;
5849 fra.me.REG[1] = p1;
5850 /* ./parser//parser.nit:1246 */
5851 fra.me.REG[2] = NIT_NULL;
5852 /* ./parser//parser.nit:1247 */
5853 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5854 /* ./parser//parser.nit:1248 */
5855 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5856 /* ./parser//parser.nit:1249 */
5857 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5858 /* ./parser//parser.nit:1250 */
5859 fra.me.REG[6] = NEW_Array_array___Array___init();
5860 /* ./parser//parser.nit:1251 */
5861 fra.me.REG[7] = NEW_Array_array___Array___init();
5862 /* ./parser//parser.nit:1253 */
5863 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
5864 if (UNTAG_Bool(REGB0)) {
5865 } else {
5866 nit_abort("Assert failed", NULL, LOCATE_parser, 1253);
5867 }
5868 /* ./parser//parser.nit:1255 */
5869 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5870 if (UNTAG_Bool(REGB0)) {
5871 } else {
5872 nit_abort("Assert failed", NULL, LOCATE_parser, 1255);
5873 }
5874 /* ./parser//parser.nit:1256 */
5875 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
5876 fra.me.REG[6] = fra.me.REG[4];
5877 /* ./parser//parser.nit:1257 */
5878 fra.me.REG[4] = NEW_Array_array___Array___init();
5879 /* ./parser//parser.nit:1259 */
5880 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5881 if (UNTAG_Bool(REGB0)) {
5882 } else {
5883 nit_abort("Assert failed", NULL, LOCATE_parser, 1259);
5884 }
5885 /* ./parser//parser.nit:1260 */
5886 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
5887 fra.me.REG[4] = fra.me.REG[3];
5888 /* ./parser//parser.nit:1261 */
5889 fra.me.REG[4] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[4]);
5890 /* ./parser//parser.nit:1264 */
5891 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5892 if (UNTAG_Bool(REGB0)) {
5893 } else {
5894 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5895 if (UNTAG_Bool(REGB1)) {
5896 REGB1 = TAG_Bool(false);
5897 REGB0 = REGB1;
5898 } else {
5899 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5900 REGB0 = REGB1;
5901 }
5902 }
5903 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5904 if (UNTAG_Bool(REGB0)) {
5905 /* ./parser//parser.nit:1265 */
5906 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
5907 }
5908 /* ./parser//parser.nit:1267 */
5909 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
5910 /* ./parser//parser.nit:1272 */
5911 fra.me.REG[2] = fra.me.REG[7];
5912 /* ./parser//parser.nit:1273 */
5913 REGB0 = TAG_Bool(ATTR_parser___ReduceAction11____goto(fra.me.REG[0])!=NIT_NULL);
5914 if (UNTAG_Bool(REGB0)) {
5915 } else {
5916 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1273);
5917 }
5918 REGB0 = ATTR_parser___ReduceAction11____goto(fra.me.REG[0]);
5919 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
5920 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
5921 stack_frame_head = fra.me.prev;
5922 return;
5923 }
5924 void parser___ReduceAction11___init(val_t p0, val_t p1, int* init_table){
5925 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction11].i;
5926 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5927 val_t REGB0;
5928 val_t tmp;
5929 if (init_table[itpos15]) return;
5930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5931 fra.me.file = LOCATE_parser;
5932 fra.me.line = 1276;
5933 fra.me.meth = LOCATE_parser___ReduceAction11___init;
5934 fra.me.has_broke = 0;
5935 fra.me.REG_size = 2;
5936 fra.me.REG[0] = NIT_NULL;
5937 fra.me.REG[1] = NIT_NULL;
5938 fra.me.REG[0] = p0;
5939 REGB0 = p1;
5940 /* ./parser//parser.nit:1276 */
5941 fra.me.REG[1] = fra.me.REG[0];
5942 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
5943 ATTR_parser___ReduceAction11____goto(fra.me.REG[1]) = REGB0;
5944 stack_frame_head = fra.me.prev;
5945 init_table[itpos15] = 1;
5946 return;
5947 }
5948 void parser___ReduceAction12___action(val_t p0, val_t p1){
5949 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5950 val_t REGB0;
5951 val_t REGB1;
5952 val_t tmp;
5953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5954 fra.me.file = LOCATE_parser;
5955 fra.me.line = 1280;
5956 fra.me.meth = LOCATE_parser___ReduceAction12___action;
5957 fra.me.has_broke = 0;
5958 fra.me.REG_size = 8;
5959 fra.me.REG[0] = NIT_NULL;
5960 fra.me.REG[1] = NIT_NULL;
5961 fra.me.REG[2] = NIT_NULL;
5962 fra.me.REG[3] = NIT_NULL;
5963 fra.me.REG[4] = NIT_NULL;
5964 fra.me.REG[5] = NIT_NULL;
5965 fra.me.REG[6] = NIT_NULL;
5966 fra.me.REG[7] = NIT_NULL;
5967 fra.me.REG[0] = p0;
5968 fra.me.REG[1] = p1;
5969 /* ./parser//parser.nit:1282 */
5970 fra.me.REG[2] = NIT_NULL;
5971 /* ./parser//parser.nit:1283 */
5972 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5973 /* ./parser//parser.nit:1284 */
5974 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
5975 /* ./parser//parser.nit:1285 */
5976 fra.me.REG[5] = NEW_Array_array___Array___init();
5977 /* ./parser//parser.nit:1286 */
5978 fra.me.REG[6] = NEW_Array_array___Array___init();
5979 /* ./parser//parser.nit:1288 */
5980 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5981 if (UNTAG_Bool(REGB0)) {
5982 } else {
5983 nit_abort("Assert failed", NULL, LOCATE_parser, 1288);
5984 }
5985 /* ./parser//parser.nit:1289 */
5986 fra.me.REG[7] = NEW_Array_array___Array___init();
5987 /* ./parser//parser.nit:1291 */
5988 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
5989 if (UNTAG_Bool(REGB0)) {
5990 } else {
5991 nit_abort("Assert failed", NULL, LOCATE_parser, 1291);
5992 }
5993 /* ./parser//parser.nit:1292 */
5994 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
5995 fra.me.REG[7] = fra.me.REG[3];
5996 /* ./parser//parser.nit:1293 */
5997 fra.me.REG[7] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
5998 /* ./parser//parser.nit:1296 */
5999 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
6000 fra.me.REG[6] = fra.me.REG[4];
6001 /* ./parser//parser.nit:1297 */
6002 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6003 if (UNTAG_Bool(REGB0)) {
6004 } else {
6005 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6006 if (UNTAG_Bool(REGB1)) {
6007 REGB1 = TAG_Bool(false);
6008 REGB0 = REGB1;
6009 } else {
6010 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6011 REGB0 = REGB1;
6012 }
6013 }
6014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6015 if (UNTAG_Bool(REGB0)) {
6016 /* ./parser//parser.nit:1298 */
6017 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6018 }
6019 /* ./parser//parser.nit:1300 */
6020 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
6021 /* ./parser//parser.nit:1305 */
6022 fra.me.REG[2] = fra.me.REG[6];
6023 /* ./parser//parser.nit:1306 */
6024 REGB0 = TAG_Bool(ATTR_parser___ReduceAction12____goto(fra.me.REG[0])!=NIT_NULL);
6025 if (UNTAG_Bool(REGB0)) {
6026 } else {
6027 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1306);
6028 }
6029 REGB0 = ATTR_parser___ReduceAction12____goto(fra.me.REG[0]);
6030 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6031 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6032 stack_frame_head = fra.me.prev;
6033 return;
6034 }
6035 void parser___ReduceAction12___init(val_t p0, val_t p1, int* init_table){
6036 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction12].i;
6037 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6038 val_t REGB0;
6039 val_t tmp;
6040 if (init_table[itpos16]) return;
6041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6042 fra.me.file = LOCATE_parser;
6043 fra.me.line = 1309;
6044 fra.me.meth = LOCATE_parser___ReduceAction12___init;
6045 fra.me.has_broke = 0;
6046 fra.me.REG_size = 2;
6047 fra.me.REG[0] = NIT_NULL;
6048 fra.me.REG[1] = NIT_NULL;
6049 fra.me.REG[0] = p0;
6050 REGB0 = p1;
6051 /* ./parser//parser.nit:1309 */
6052 fra.me.REG[1] = fra.me.REG[0];
6053 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6054 ATTR_parser___ReduceAction12____goto(fra.me.REG[1]) = REGB0;
6055 stack_frame_head = fra.me.prev;
6056 init_table[itpos16] = 1;
6057 return;
6058 }
6059 void parser___ReduceAction13___action(val_t p0, val_t p1){
6060 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
6061 val_t REGB0;
6062 val_t REGB1;
6063 val_t tmp;
6064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6065 fra.me.file = LOCATE_parser;
6066 fra.me.line = 1313;
6067 fra.me.meth = LOCATE_parser___ReduceAction13___action;
6068 fra.me.has_broke = 0;
6069 fra.me.REG_size = 9;
6070 fra.me.REG[0] = NIT_NULL;
6071 fra.me.REG[1] = NIT_NULL;
6072 fra.me.REG[2] = NIT_NULL;
6073 fra.me.REG[3] = NIT_NULL;
6074 fra.me.REG[4] = NIT_NULL;
6075 fra.me.REG[5] = NIT_NULL;
6076 fra.me.REG[6] = NIT_NULL;
6077 fra.me.REG[7] = NIT_NULL;
6078 fra.me.REG[8] = NIT_NULL;
6079 fra.me.REG[0] = p0;
6080 fra.me.REG[1] = p1;
6081 /* ./parser//parser.nit:1315 */
6082 fra.me.REG[2] = NIT_NULL;
6083 /* ./parser//parser.nit:1316 */
6084 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6085 /* ./parser//parser.nit:1317 */
6086 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6087 /* ./parser//parser.nit:1318 */
6088 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6089 /* ./parser//parser.nit:1319 */
6090 fra.me.REG[6] = NEW_Array_array___Array___init();
6091 /* ./parser//parser.nit:1320 */
6092 fra.me.REG[7] = NEW_Array_array___Array___init();
6093 /* ./parser//parser.nit:1322 */
6094 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6095 if (UNTAG_Bool(REGB0)) {
6096 } else {
6097 nit_abort("Assert failed", NULL, LOCATE_parser, 1322);
6098 }
6099 /* ./parser//parser.nit:1324 */
6100 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6101 if (UNTAG_Bool(REGB0)) {
6102 } else {
6103 nit_abort("Assert failed", NULL, LOCATE_parser, 1324);
6104 }
6105 /* ./parser//parser.nit:1325 */
6106 fra.me.REG[8] = NEW_Array_array___Array___init();
6107 /* ./parser//parser.nit:1327 */
6108 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6109 if (UNTAG_Bool(REGB0)) {
6110 } else {
6111 nit_abort("Assert failed", NULL, LOCATE_parser, 1327);
6112 }
6113 /* ./parser//parser.nit:1328 */
6114 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
6115 fra.me.REG[8] = fra.me.REG[3];
6116 /* ./parser//parser.nit:1329 */
6117 fra.me.REG[8] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
6118 /* ./parser//parser.nit:1332 */
6119 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
6120 fra.me.REG[7] = fra.me.REG[4];
6121 /* ./parser//parser.nit:1333 */
6122 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6123 if (UNTAG_Bool(REGB0)) {
6124 } else {
6125 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6126 if (UNTAG_Bool(REGB1)) {
6127 REGB1 = TAG_Bool(false);
6128 REGB0 = REGB1;
6129 } else {
6130 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6131 REGB0 = REGB1;
6132 }
6133 }
6134 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6135 if (UNTAG_Bool(REGB0)) {
6136 /* ./parser//parser.nit:1334 */
6137 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6138 }
6139 /* ./parser//parser.nit:1336 */
6140 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
6141 /* ./parser//parser.nit:1341 */
6142 fra.me.REG[2] = fra.me.REG[7];
6143 /* ./parser//parser.nit:1342 */
6144 REGB0 = TAG_Bool(ATTR_parser___ReduceAction13____goto(fra.me.REG[0])!=NIT_NULL);
6145 if (UNTAG_Bool(REGB0)) {
6146 } else {
6147 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1342);
6148 }
6149 REGB0 = ATTR_parser___ReduceAction13____goto(fra.me.REG[0]);
6150 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6151 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6152 stack_frame_head = fra.me.prev;
6153 return;
6154 }
6155 void parser___ReduceAction13___init(val_t p0, val_t p1, int* init_table){
6156 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction13].i;
6157 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6158 val_t REGB0;
6159 val_t tmp;
6160 if (init_table[itpos17]) return;
6161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6162 fra.me.file = LOCATE_parser;
6163 fra.me.line = 1345;
6164 fra.me.meth = LOCATE_parser___ReduceAction13___init;
6165 fra.me.has_broke = 0;
6166 fra.me.REG_size = 2;
6167 fra.me.REG[0] = NIT_NULL;
6168 fra.me.REG[1] = NIT_NULL;
6169 fra.me.REG[0] = p0;
6170 REGB0 = p1;
6171 /* ./parser//parser.nit:1345 */
6172 fra.me.REG[1] = fra.me.REG[0];
6173 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6174 ATTR_parser___ReduceAction13____goto(fra.me.REG[1]) = REGB0;
6175 stack_frame_head = fra.me.prev;
6176 init_table[itpos17] = 1;
6177 return;
6178 }
6179 void parser___ReduceAction14___action(val_t p0, val_t p1){
6180 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6181 val_t REGB0;
6182 val_t REGB1;
6183 val_t tmp;
6184 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6185 fra.me.file = LOCATE_parser;
6186 fra.me.line = 1349;
6187 fra.me.meth = LOCATE_parser___ReduceAction14___action;
6188 fra.me.has_broke = 0;
6189 fra.me.REG_size = 8;
6190 fra.me.REG[0] = NIT_NULL;
6191 fra.me.REG[1] = NIT_NULL;
6192 fra.me.REG[2] = NIT_NULL;
6193 fra.me.REG[3] = NIT_NULL;
6194 fra.me.REG[4] = NIT_NULL;
6195 fra.me.REG[5] = NIT_NULL;
6196 fra.me.REG[6] = NIT_NULL;
6197 fra.me.REG[7] = NIT_NULL;
6198 fra.me.REG[0] = p0;
6199 fra.me.REG[1] = p1;
6200 /* ./parser//parser.nit:1351 */
6201 fra.me.REG[2] = NIT_NULL;
6202 /* ./parser//parser.nit:1352 */
6203 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6204 /* ./parser//parser.nit:1353 */
6205 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6206 /* ./parser//parser.nit:1354 */
6207 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6208 /* ./parser//parser.nit:1355 */
6209 fra.me.REG[6] = NEW_Array_array___Array___init();
6210 /* ./parser//parser.nit:1356 */
6211 fra.me.REG[7] = NEW_Array_array___Array___init();
6212 /* ./parser//parser.nit:1358 */
6213 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6214 if (UNTAG_Bool(REGB0)) {
6215 } else {
6216 nit_abort("Assert failed", NULL, LOCATE_parser, 1358);
6217 }
6218 /* ./parser//parser.nit:1359 */
6219 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
6220 fra.me.REG[6] = fra.me.REG[5];
6221 /* ./parser//parser.nit:1361 */
6222 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6223 if (UNTAG_Bool(REGB0)) {
6224 } else {
6225 nit_abort("Assert failed", NULL, LOCATE_parser, 1361);
6226 }
6227 /* ./parser//parser.nit:1362 */
6228 fra.me.REG[5] = NEW_Array_array___Array___init();
6229 /* ./parser//parser.nit:1364 */
6230 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6231 if (UNTAG_Bool(REGB0)) {
6232 } else {
6233 nit_abort("Assert failed", NULL, LOCATE_parser, 1364);
6234 }
6235 /* ./parser//parser.nit:1365 */
6236 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
6237 fra.me.REG[5] = fra.me.REG[3];
6238 /* ./parser//parser.nit:1366 */
6239 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
6240 /* ./parser//parser.nit:1369 */
6241 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
6242 fra.me.REG[7] = fra.me.REG[4];
6243 /* ./parser//parser.nit:1370 */
6244 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6245 if (UNTAG_Bool(REGB0)) {
6246 } else {
6247 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6248 if (UNTAG_Bool(REGB1)) {
6249 REGB1 = TAG_Bool(false);
6250 REGB0 = REGB1;
6251 } else {
6252 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6253 REGB0 = REGB1;
6254 }
6255 }
6256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6257 if (UNTAG_Bool(REGB0)) {
6258 /* ./parser//parser.nit:1371 */
6259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
6260 }
6261 /* ./parser//parser.nit:1373 */
6262 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
6263 /* ./parser//parser.nit:1378 */
6264 fra.me.REG[2] = fra.me.REG[7];
6265 /* ./parser//parser.nit:1379 */
6266 REGB0 = TAG_Bool(ATTR_parser___ReduceAction14____goto(fra.me.REG[0])!=NIT_NULL);
6267 if (UNTAG_Bool(REGB0)) {
6268 } else {
6269 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1379);
6270 }
6271 REGB0 = ATTR_parser___ReduceAction14____goto(fra.me.REG[0]);
6272 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6273 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6274 stack_frame_head = fra.me.prev;
6275 return;
6276 }
6277 void parser___ReduceAction14___init(val_t p0, val_t p1, int* init_table){
6278 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction14].i;
6279 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6280 val_t REGB0;
6281 val_t tmp;
6282 if (init_table[itpos18]) return;
6283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6284 fra.me.file = LOCATE_parser;
6285 fra.me.line = 1382;
6286 fra.me.meth = LOCATE_parser___ReduceAction14___init;
6287 fra.me.has_broke = 0;
6288 fra.me.REG_size = 2;
6289 fra.me.REG[0] = NIT_NULL;
6290 fra.me.REG[1] = NIT_NULL;
6291 fra.me.REG[0] = p0;
6292 REGB0 = p1;
6293 /* ./parser//parser.nit:1382 */
6294 fra.me.REG[1] = fra.me.REG[0];
6295 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6296 ATTR_parser___ReduceAction14____goto(fra.me.REG[1]) = REGB0;
6297 stack_frame_head = fra.me.prev;
6298 init_table[itpos18] = 1;
6299 return;
6300 }
6301 void parser___ReduceAction15___action(val_t p0, val_t p1){
6302 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
6303 val_t REGB0;
6304 val_t REGB1;
6305 val_t tmp;
6306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6307 fra.me.file = LOCATE_parser;
6308 fra.me.line = 1386;
6309 fra.me.meth = LOCATE_parser___ReduceAction15___action;
6310 fra.me.has_broke = 0;
6311 fra.me.REG_size = 9;
6312 fra.me.REG[0] = NIT_NULL;
6313 fra.me.REG[1] = NIT_NULL;
6314 fra.me.REG[2] = NIT_NULL;
6315 fra.me.REG[3] = NIT_NULL;
6316 fra.me.REG[4] = NIT_NULL;
6317 fra.me.REG[5] = NIT_NULL;
6318 fra.me.REG[6] = NIT_NULL;
6319 fra.me.REG[7] = NIT_NULL;
6320 fra.me.REG[8] = NIT_NULL;
6321 fra.me.REG[0] = p0;
6322 fra.me.REG[1] = p1;
6323 /* ./parser//parser.nit:1388 */
6324 fra.me.REG[2] = NIT_NULL;
6325 /* ./parser//parser.nit:1389 */
6326 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6327 /* ./parser//parser.nit:1390 */
6328 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6329 /* ./parser//parser.nit:1391 */
6330 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6331 /* ./parser//parser.nit:1392 */
6332 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6333 /* ./parser//parser.nit:1393 */
6334 fra.me.REG[7] = NEW_Array_array___Array___init();
6335 /* ./parser//parser.nit:1394 */
6336 fra.me.REG[8] = NEW_Array_array___Array___init();
6337 /* ./parser//parser.nit:1396 */
6338 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6339 if (UNTAG_Bool(REGB0)) {
6340 } else {
6341 nit_abort("Assert failed", NULL, LOCATE_parser, 1396);
6342 }
6343 /* ./parser//parser.nit:1398 */
6344 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6345 if (UNTAG_Bool(REGB0)) {
6346 } else {
6347 nit_abort("Assert failed", NULL, LOCATE_parser, 1398);
6348 }
6349 /* ./parser//parser.nit:1399 */
6350 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
6351 fra.me.REG[7] = fra.me.REG[5];
6352 /* ./parser//parser.nit:1401 */
6353 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6354 if (UNTAG_Bool(REGB0)) {
6355 } else {
6356 nit_abort("Assert failed", NULL, LOCATE_parser, 1401);
6357 }
6358 /* ./parser//parser.nit:1402 */
6359 fra.me.REG[5] = NEW_Array_array___Array___init();
6360 /* ./parser//parser.nit:1404 */
6361 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6362 if (UNTAG_Bool(REGB0)) {
6363 } else {
6364 nit_abort("Assert failed", NULL, LOCATE_parser, 1404);
6365 }
6366 /* ./parser//parser.nit:1405 */
6367 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
6368 fra.me.REG[5] = fra.me.REG[3];
6369 /* ./parser//parser.nit:1406 */
6370 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
6371 /* ./parser//parser.nit:1409 */
6372 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
6373 fra.me.REG[8] = fra.me.REG[4];
6374 /* ./parser//parser.nit:1410 */
6375 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6376 if (UNTAG_Bool(REGB0)) {
6377 } else {
6378 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6379 if (UNTAG_Bool(REGB1)) {
6380 REGB1 = TAG_Bool(false);
6381 REGB0 = REGB1;
6382 } else {
6383 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6384 REGB0 = REGB1;
6385 }
6386 }
6387 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6388 if (UNTAG_Bool(REGB0)) {
6389 /* ./parser//parser.nit:1411 */
6390 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
6391 }
6392 /* ./parser//parser.nit:1413 */
6393 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
6394 /* ./parser//parser.nit:1418 */
6395 fra.me.REG[2] = fra.me.REG[8];
6396 /* ./parser//parser.nit:1419 */
6397 REGB0 = TAG_Bool(ATTR_parser___ReduceAction15____goto(fra.me.REG[0])!=NIT_NULL);
6398 if (UNTAG_Bool(REGB0)) {
6399 } else {
6400 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1419);
6401 }
6402 REGB0 = ATTR_parser___ReduceAction15____goto(fra.me.REG[0]);
6403 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6404 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6405 stack_frame_head = fra.me.prev;
6406 return;
6407 }
6408 void parser___ReduceAction15___init(val_t p0, val_t p1, int* init_table){
6409 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction15].i;
6410 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6411 val_t REGB0;
6412 val_t tmp;
6413 if (init_table[itpos19]) return;
6414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6415 fra.me.file = LOCATE_parser;
6416 fra.me.line = 1422;
6417 fra.me.meth = LOCATE_parser___ReduceAction15___init;
6418 fra.me.has_broke = 0;
6419 fra.me.REG_size = 2;
6420 fra.me.REG[0] = NIT_NULL;
6421 fra.me.REG[1] = NIT_NULL;
6422 fra.me.REG[0] = p0;
6423 REGB0 = p1;
6424 /* ./parser//parser.nit:1422 */
6425 fra.me.REG[1] = fra.me.REG[0];
6426 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6427 ATTR_parser___ReduceAction15____goto(fra.me.REG[1]) = REGB0;
6428 stack_frame_head = fra.me.prev;
6429 init_table[itpos19] = 1;
6430 return;
6431 }
6432 void parser___ReduceAction16___action(val_t p0, val_t p1){
6433 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6434 val_t REGB0;
6435 val_t REGB1;
6436 val_t tmp;
6437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6438 fra.me.file = LOCATE_parser;
6439 fra.me.line = 1426;
6440 fra.me.meth = LOCATE_parser___ReduceAction16___action;
6441 fra.me.has_broke = 0;
6442 fra.me.REG_size = 6;
6443 fra.me.REG[0] = NIT_NULL;
6444 fra.me.REG[1] = NIT_NULL;
6445 fra.me.REG[2] = NIT_NULL;
6446 fra.me.REG[3] = NIT_NULL;
6447 fra.me.REG[4] = NIT_NULL;
6448 fra.me.REG[5] = NIT_NULL;
6449 fra.me.REG[0] = p0;
6450 fra.me.REG[1] = p1;
6451 /* ./parser//parser.nit:1428 */
6452 fra.me.REG[2] = NIT_NULL;
6453 /* ./parser//parser.nit:1429 */
6454 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6455 /* ./parser//parser.nit:1430 */
6456 fra.me.REG[4] = NEW_Array_array___Array___init();
6457 /* ./parser//parser.nit:1431 */
6458 fra.me.REG[5] = NEW_Array_array___Array___init();
6459 /* ./parser//parser.nit:1433 */
6460 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6461 if (UNTAG_Bool(REGB0)) {
6462 } else {
6463 nit_abort("Assert failed", NULL, LOCATE_parser, 1433);
6464 }
6465 /* ./parser//parser.nit:1434 */
6466 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6467 if (UNTAG_Bool(REGB0)) {
6468 } else {
6469 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6470 if (UNTAG_Bool(REGB1)) {
6471 REGB1 = TAG_Bool(false);
6472 REGB0 = REGB1;
6473 } else {
6474 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6475 REGB0 = REGB1;
6476 }
6477 }
6478 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6479 if (UNTAG_Bool(REGB0)) {
6480 /* ./parser//parser.nit:1435 */
6481 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
6482 }
6483 /* ./parser//parser.nit:1437 */
6484 fra.me.REG[5] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
6485 /* ./parser//parser.nit:1442 */
6486 fra.me.REG[2] = fra.me.REG[5];
6487 /* ./parser//parser.nit:1443 */
6488 REGB0 = TAG_Bool(ATTR_parser___ReduceAction16____goto(fra.me.REG[0])!=NIT_NULL);
6489 if (UNTAG_Bool(REGB0)) {
6490 } else {
6491 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1443);
6492 }
6493 REGB0 = ATTR_parser___ReduceAction16____goto(fra.me.REG[0]);
6494 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6495 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6496 stack_frame_head = fra.me.prev;
6497 return;
6498 }
6499 void parser___ReduceAction16___init(val_t p0, val_t p1, int* init_table){
6500 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction16].i;
6501 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6502 val_t REGB0;
6503 val_t tmp;
6504 if (init_table[itpos20]) return;
6505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6506 fra.me.file = LOCATE_parser;
6507 fra.me.line = 1446;
6508 fra.me.meth = LOCATE_parser___ReduceAction16___init;
6509 fra.me.has_broke = 0;
6510 fra.me.REG_size = 2;
6511 fra.me.REG[0] = NIT_NULL;
6512 fra.me.REG[1] = NIT_NULL;
6513 fra.me.REG[0] = p0;
6514 REGB0 = p1;
6515 /* ./parser//parser.nit:1446 */
6516 fra.me.REG[1] = fra.me.REG[0];
6517 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6518 ATTR_parser___ReduceAction16____goto(fra.me.REG[1]) = REGB0;
6519 stack_frame_head = fra.me.prev;
6520 init_table[itpos20] = 1;
6521 return;
6522 }
6523 void parser___ReduceAction17___action(val_t p0, val_t p1){
6524 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6525 val_t REGB0;
6526 val_t REGB1;
6527 val_t tmp;
6528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6529 fra.me.file = LOCATE_parser;
6530 fra.me.line = 1450;
6531 fra.me.meth = LOCATE_parser___ReduceAction17___action;
6532 fra.me.has_broke = 0;
6533 fra.me.REG_size = 7;
6534 fra.me.REG[0] = NIT_NULL;
6535 fra.me.REG[1] = NIT_NULL;
6536 fra.me.REG[2] = NIT_NULL;
6537 fra.me.REG[3] = NIT_NULL;
6538 fra.me.REG[4] = NIT_NULL;
6539 fra.me.REG[5] = NIT_NULL;
6540 fra.me.REG[6] = NIT_NULL;
6541 fra.me.REG[0] = p0;
6542 fra.me.REG[1] = p1;
6543 /* ./parser//parser.nit:1452 */
6544 fra.me.REG[2] = NIT_NULL;
6545 /* ./parser//parser.nit:1453 */
6546 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6547 /* ./parser//parser.nit:1454 */
6548 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6549 /* ./parser//parser.nit:1455 */
6550 fra.me.REG[5] = NEW_Array_array___Array___init();
6551 /* ./parser//parser.nit:1456 */
6552 fra.me.REG[6] = NEW_Array_array___Array___init();
6553 /* ./parser//parser.nit:1458 */
6554 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6555 if (UNTAG_Bool(REGB0)) {
6556 } else {
6557 nit_abort("Assert failed", NULL, LOCATE_parser, 1458);
6558 }
6559 /* ./parser//parser.nit:1460 */
6560 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6561 if (UNTAG_Bool(REGB0)) {
6562 } else {
6563 nit_abort("Assert failed", NULL, LOCATE_parser, 1460);
6564 }
6565 /* ./parser//parser.nit:1461 */
6566 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6567 if (UNTAG_Bool(REGB0)) {
6568 } else {
6569 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6570 if (UNTAG_Bool(REGB1)) {
6571 REGB1 = TAG_Bool(false);
6572 REGB0 = REGB1;
6573 } else {
6574 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6575 REGB0 = REGB1;
6576 }
6577 }
6578 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6579 if (UNTAG_Bool(REGB0)) {
6580 /* ./parser//parser.nit:1462 */
6581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
6582 }
6583 /* ./parser//parser.nit:1464 */
6584 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
6585 /* ./parser//parser.nit:1469 */
6586 fra.me.REG[2] = fra.me.REG[6];
6587 /* ./parser//parser.nit:1470 */
6588 REGB0 = TAG_Bool(ATTR_parser___ReduceAction17____goto(fra.me.REG[0])!=NIT_NULL);
6589 if (UNTAG_Bool(REGB0)) {
6590 } else {
6591 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1470);
6592 }
6593 REGB0 = ATTR_parser___ReduceAction17____goto(fra.me.REG[0]);
6594 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6595 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6596 stack_frame_head = fra.me.prev;
6597 return;
6598 }
6599 void parser___ReduceAction17___init(val_t p0, val_t p1, int* init_table){
6600 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction17].i;
6601 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6602 val_t REGB0;
6603 val_t tmp;
6604 if (init_table[itpos21]) return;
6605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6606 fra.me.file = LOCATE_parser;
6607 fra.me.line = 1473;
6608 fra.me.meth = LOCATE_parser___ReduceAction17___init;
6609 fra.me.has_broke = 0;
6610 fra.me.REG_size = 2;
6611 fra.me.REG[0] = NIT_NULL;
6612 fra.me.REG[1] = NIT_NULL;
6613 fra.me.REG[0] = p0;
6614 REGB0 = p1;
6615 /* ./parser//parser.nit:1473 */
6616 fra.me.REG[1] = fra.me.REG[0];
6617 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6618 ATTR_parser___ReduceAction17____goto(fra.me.REG[1]) = REGB0;
6619 stack_frame_head = fra.me.prev;
6620 init_table[itpos21] = 1;
6621 return;
6622 }
6623 void parser___ReduceAction18___action(val_t p0, val_t p1){
6624 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6625 val_t REGB0;
6626 val_t REGB1;
6627 val_t tmp;
6628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6629 fra.me.file = LOCATE_parser;
6630 fra.me.line = 1477;
6631 fra.me.meth = LOCATE_parser___ReduceAction18___action;
6632 fra.me.has_broke = 0;
6633 fra.me.REG_size = 7;
6634 fra.me.REG[0] = NIT_NULL;
6635 fra.me.REG[1] = NIT_NULL;
6636 fra.me.REG[2] = NIT_NULL;
6637 fra.me.REG[3] = NIT_NULL;
6638 fra.me.REG[4] = NIT_NULL;
6639 fra.me.REG[5] = NIT_NULL;
6640 fra.me.REG[6] = NIT_NULL;
6641 fra.me.REG[0] = p0;
6642 fra.me.REG[1] = p1;
6643 /* ./parser//parser.nit:1479 */
6644 fra.me.REG[2] = NIT_NULL;
6645 /* ./parser//parser.nit:1480 */
6646 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6647 /* ./parser//parser.nit:1481 */
6648 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6649 /* ./parser//parser.nit:1482 */
6650 fra.me.REG[5] = NEW_Array_array___Array___init();
6651 /* ./parser//parser.nit:1483 */
6652 fra.me.REG[6] = NEW_Array_array___Array___init();
6653 /* ./parser//parser.nit:1485 */
6654 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6655 if (UNTAG_Bool(REGB0)) {
6656 } else {
6657 nit_abort("Assert failed", NULL, LOCATE_parser, 1485);
6658 }
6659 /* ./parser//parser.nit:1486 */
6660 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
6661 fra.me.REG[5] = fra.me.REG[4];
6662 /* ./parser//parser.nit:1488 */
6663 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6664 if (UNTAG_Bool(REGB0)) {
6665 } else {
6666 nit_abort("Assert failed", NULL, LOCATE_parser, 1488);
6667 }
6668 /* ./parser//parser.nit:1489 */
6669 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6670 if (UNTAG_Bool(REGB0)) {
6671 } else {
6672 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6673 if (UNTAG_Bool(REGB1)) {
6674 REGB1 = TAG_Bool(false);
6675 REGB0 = REGB1;
6676 } else {
6677 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6678 REGB0 = REGB1;
6679 }
6680 }
6681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6682 if (UNTAG_Bool(REGB0)) {
6683 /* ./parser//parser.nit:1490 */
6684 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
6685 }
6686 /* ./parser//parser.nit:1492 */
6687 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
6688 /* ./parser//parser.nit:1497 */
6689 fra.me.REG[2] = fra.me.REG[6];
6690 /* ./parser//parser.nit:1498 */
6691 REGB0 = TAG_Bool(ATTR_parser___ReduceAction18____goto(fra.me.REG[0])!=NIT_NULL);
6692 if (UNTAG_Bool(REGB0)) {
6693 } else {
6694 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1498);
6695 }
6696 REGB0 = ATTR_parser___ReduceAction18____goto(fra.me.REG[0]);
6697 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6698 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6699 stack_frame_head = fra.me.prev;
6700 return;
6701 }
6702 void parser___ReduceAction18___init(val_t p0, val_t p1, int* init_table){
6703 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction18].i;
6704 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6705 val_t REGB0;
6706 val_t tmp;
6707 if (init_table[itpos22]) return;
6708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6709 fra.me.file = LOCATE_parser;
6710 fra.me.line = 1501;
6711 fra.me.meth = LOCATE_parser___ReduceAction18___init;
6712 fra.me.has_broke = 0;
6713 fra.me.REG_size = 2;
6714 fra.me.REG[0] = NIT_NULL;
6715 fra.me.REG[1] = NIT_NULL;
6716 fra.me.REG[0] = p0;
6717 REGB0 = p1;
6718 /* ./parser//parser.nit:1501 */
6719 fra.me.REG[1] = fra.me.REG[0];
6720 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6721 ATTR_parser___ReduceAction18____goto(fra.me.REG[1]) = REGB0;
6722 stack_frame_head = fra.me.prev;
6723 init_table[itpos22] = 1;
6724 return;
6725 }
6726 void parser___ReduceAction19___action(val_t p0, val_t p1){
6727 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6728 val_t REGB0;
6729 val_t REGB1;
6730 val_t tmp;
6731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6732 fra.me.file = LOCATE_parser;
6733 fra.me.line = 1505;
6734 fra.me.meth = LOCATE_parser___ReduceAction19___action;
6735 fra.me.has_broke = 0;
6736 fra.me.REG_size = 8;
6737 fra.me.REG[0] = NIT_NULL;
6738 fra.me.REG[1] = NIT_NULL;
6739 fra.me.REG[2] = NIT_NULL;
6740 fra.me.REG[3] = NIT_NULL;
6741 fra.me.REG[4] = NIT_NULL;
6742 fra.me.REG[5] = NIT_NULL;
6743 fra.me.REG[6] = NIT_NULL;
6744 fra.me.REG[7] = NIT_NULL;
6745 fra.me.REG[0] = p0;
6746 fra.me.REG[1] = p1;
6747 /* ./parser//parser.nit:1507 */
6748 fra.me.REG[2] = NIT_NULL;
6749 /* ./parser//parser.nit:1508 */
6750 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6751 /* ./parser//parser.nit:1509 */
6752 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6753 /* ./parser//parser.nit:1510 */
6754 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6755 /* ./parser//parser.nit:1511 */
6756 fra.me.REG[6] = NEW_Array_array___Array___init();
6757 /* ./parser//parser.nit:1512 */
6758 fra.me.REG[7] = NEW_Array_array___Array___init();
6759 /* ./parser//parser.nit:1514 */
6760 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6761 if (UNTAG_Bool(REGB0)) {
6762 } else {
6763 nit_abort("Assert failed", NULL, LOCATE_parser, 1514);
6764 }
6765 /* ./parser//parser.nit:1516 */
6766 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6767 if (UNTAG_Bool(REGB0)) {
6768 } else {
6769 nit_abort("Assert failed", NULL, LOCATE_parser, 1516);
6770 }
6771 /* ./parser//parser.nit:1517 */
6772 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
6773 fra.me.REG[6] = fra.me.REG[4];
6774 /* ./parser//parser.nit:1519 */
6775 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6776 if (UNTAG_Bool(REGB0)) {
6777 } else {
6778 nit_abort("Assert failed", NULL, LOCATE_parser, 1519);
6779 }
6780 /* ./parser//parser.nit:1520 */
6781 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6782 if (UNTAG_Bool(REGB0)) {
6783 } else {
6784 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6785 if (UNTAG_Bool(REGB1)) {
6786 REGB1 = TAG_Bool(false);
6787 REGB0 = REGB1;
6788 } else {
6789 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6790 REGB0 = REGB1;
6791 }
6792 }
6793 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6794 if (UNTAG_Bool(REGB0)) {
6795 /* ./parser//parser.nit:1521 */
6796 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
6797 }
6798 /* ./parser//parser.nit:1523 */
6799 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
6800 /* ./parser//parser.nit:1528 */
6801 fra.me.REG[2] = fra.me.REG[7];
6802 /* ./parser//parser.nit:1529 */
6803 REGB0 = TAG_Bool(ATTR_parser___ReduceAction19____goto(fra.me.REG[0])!=NIT_NULL);
6804 if (UNTAG_Bool(REGB0)) {
6805 } else {
6806 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1529);
6807 }
6808 REGB0 = ATTR_parser___ReduceAction19____goto(fra.me.REG[0]);
6809 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6810 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6811 stack_frame_head = fra.me.prev;
6812 return;
6813 }
6814 void parser___ReduceAction19___init(val_t p0, val_t p1, int* init_table){
6815 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction19].i;
6816 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6817 val_t REGB0;
6818 val_t tmp;
6819 if (init_table[itpos23]) return;
6820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6821 fra.me.file = LOCATE_parser;
6822 fra.me.line = 1532;
6823 fra.me.meth = LOCATE_parser___ReduceAction19___init;
6824 fra.me.has_broke = 0;
6825 fra.me.REG_size = 2;
6826 fra.me.REG[0] = NIT_NULL;
6827 fra.me.REG[1] = NIT_NULL;
6828 fra.me.REG[0] = p0;
6829 REGB0 = p1;
6830 /* ./parser//parser.nit:1532 */
6831 fra.me.REG[1] = fra.me.REG[0];
6832 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6833 ATTR_parser___ReduceAction19____goto(fra.me.REG[1]) = REGB0;
6834 stack_frame_head = fra.me.prev;
6835 init_table[itpos23] = 1;
6836 return;
6837 }
6838 void parser___ReduceAction20___action(val_t p0, val_t p1){
6839 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6840 val_t REGB0;
6841 val_t REGB1;
6842 val_t tmp;
6843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6844 fra.me.file = LOCATE_parser;
6845 fra.me.line = 1536;
6846 fra.me.meth = LOCATE_parser___ReduceAction20___action;
6847 fra.me.has_broke = 0;
6848 fra.me.REG_size = 7;
6849 fra.me.REG[0] = NIT_NULL;
6850 fra.me.REG[1] = NIT_NULL;
6851 fra.me.REG[2] = NIT_NULL;
6852 fra.me.REG[3] = NIT_NULL;
6853 fra.me.REG[4] = NIT_NULL;
6854 fra.me.REG[5] = NIT_NULL;
6855 fra.me.REG[6] = NIT_NULL;
6856 fra.me.REG[0] = p0;
6857 fra.me.REG[1] = p1;
6858 /* ./parser//parser.nit:1538 */
6859 fra.me.REG[2] = NIT_NULL;
6860 /* ./parser//parser.nit:1539 */
6861 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6862 /* ./parser//parser.nit:1540 */
6863 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6864 /* ./parser//parser.nit:1541 */
6865 fra.me.REG[5] = NEW_Array_array___Array___init();
6866 /* ./parser//parser.nit:1542 */
6867 fra.me.REG[6] = NEW_Array_array___Array___init();
6868 /* ./parser//parser.nit:1544 */
6869 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6870 if (UNTAG_Bool(REGB0)) {
6871 } else {
6872 nit_abort("Assert failed", NULL, LOCATE_parser, 1544);
6873 }
6874 /* ./parser//parser.nit:1546 */
6875 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6876 if (UNTAG_Bool(REGB0)) {
6877 } else {
6878 nit_abort("Assert failed", NULL, LOCATE_parser, 1546);
6879 }
6880 /* ./parser//parser.nit:1547 */
6881 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
6882 fra.me.REG[6] = fra.me.REG[4];
6883 /* ./parser//parser.nit:1548 */
6884 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6885 if (UNTAG_Bool(REGB0)) {
6886 } else {
6887 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6888 if (UNTAG_Bool(REGB1)) {
6889 REGB1 = TAG_Bool(false);
6890 REGB0 = REGB1;
6891 } else {
6892 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6893 REGB0 = REGB1;
6894 }
6895 }
6896 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6897 if (UNTAG_Bool(REGB0)) {
6898 /* ./parser//parser.nit:1549 */
6899 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
6900 }
6901 /* ./parser//parser.nit:1551 */
6902 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
6903 /* ./parser//parser.nit:1556 */
6904 fra.me.REG[2] = fra.me.REG[6];
6905 /* ./parser//parser.nit:1557 */
6906 REGB0 = TAG_Bool(ATTR_parser___ReduceAction20____goto(fra.me.REG[0])!=NIT_NULL);
6907 if (UNTAG_Bool(REGB0)) {
6908 } else {
6909 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1557);
6910 }
6911 REGB0 = ATTR_parser___ReduceAction20____goto(fra.me.REG[0]);
6912 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
6913 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
6914 stack_frame_head = fra.me.prev;
6915 return;
6916 }
6917 void parser___ReduceAction20___init(val_t p0, val_t p1, int* init_table){
6918 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction20].i;
6919 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6920 val_t REGB0;
6921 val_t tmp;
6922 if (init_table[itpos24]) return;
6923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6924 fra.me.file = LOCATE_parser;
6925 fra.me.line = 1560;
6926 fra.me.meth = LOCATE_parser___ReduceAction20___init;
6927 fra.me.has_broke = 0;
6928 fra.me.REG_size = 2;
6929 fra.me.REG[0] = NIT_NULL;
6930 fra.me.REG[1] = NIT_NULL;
6931 fra.me.REG[0] = p0;
6932 REGB0 = p1;
6933 /* ./parser//parser.nit:1560 */
6934 fra.me.REG[1] = fra.me.REG[0];
6935 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
6936 ATTR_parser___ReduceAction20____goto(fra.me.REG[1]) = REGB0;
6937 stack_frame_head = fra.me.prev;
6938 init_table[itpos24] = 1;
6939 return;
6940 }
6941 void parser___ReduceAction21___action(val_t p0, val_t p1){
6942 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6943 val_t REGB0;
6944 val_t REGB1;
6945 val_t tmp;
6946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6947 fra.me.file = LOCATE_parser;
6948 fra.me.line = 1564;
6949 fra.me.meth = LOCATE_parser___ReduceAction21___action;
6950 fra.me.has_broke = 0;
6951 fra.me.REG_size = 8;
6952 fra.me.REG[0] = NIT_NULL;
6953 fra.me.REG[1] = NIT_NULL;
6954 fra.me.REG[2] = NIT_NULL;
6955 fra.me.REG[3] = NIT_NULL;
6956 fra.me.REG[4] = NIT_NULL;
6957 fra.me.REG[5] = NIT_NULL;
6958 fra.me.REG[6] = NIT_NULL;
6959 fra.me.REG[7] = NIT_NULL;
6960 fra.me.REG[0] = p0;
6961 fra.me.REG[1] = p1;
6962 /* ./parser//parser.nit:1566 */
6963 fra.me.REG[2] = NIT_NULL;
6964 /* ./parser//parser.nit:1567 */
6965 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6966 /* ./parser//parser.nit:1568 */
6967 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6968 /* ./parser//parser.nit:1569 */
6969 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
6970 /* ./parser//parser.nit:1570 */
6971 fra.me.REG[6] = NEW_Array_array___Array___init();
6972 /* ./parser//parser.nit:1571 */
6973 fra.me.REG[7] = NEW_Array_array___Array___init();
6974 /* ./parser//parser.nit:1573 */
6975 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
6976 if (UNTAG_Bool(REGB0)) {
6977 } else {
6978 nit_abort("Assert failed", NULL, LOCATE_parser, 1573);
6979 }
6980 /* ./parser//parser.nit:1575 */
6981 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
6982 if (UNTAG_Bool(REGB0)) {
6983 } else {
6984 nit_abort("Assert failed", NULL, LOCATE_parser, 1575);
6985 }
6986 /* ./parser//parser.nit:1577 */
6987 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
6988 if (UNTAG_Bool(REGB0)) {
6989 } else {
6990 nit_abort("Assert failed", NULL, LOCATE_parser, 1577);
6991 }
6992 /* ./parser//parser.nit:1578 */
6993 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
6994 fra.me.REG[7] = fra.me.REG[4];
6995 /* ./parser//parser.nit:1579 */
6996 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6997 if (UNTAG_Bool(REGB0)) {
6998 } else {
6999 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7000 if (UNTAG_Bool(REGB1)) {
7001 REGB1 = TAG_Bool(false);
7002 REGB0 = REGB1;
7003 } else {
7004 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7005 REGB0 = REGB1;
7006 }
7007 }
7008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7009 if (UNTAG_Bool(REGB0)) {
7010 /* ./parser//parser.nit:1580 */
7011 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7012 }
7013 /* ./parser//parser.nit:1582 */
7014 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
7015 /* ./parser//parser.nit:1587 */
7016 fra.me.REG[2] = fra.me.REG[7];
7017 /* ./parser//parser.nit:1588 */
7018 REGB0 = TAG_Bool(ATTR_parser___ReduceAction21____goto(fra.me.REG[0])!=NIT_NULL);
7019 if (UNTAG_Bool(REGB0)) {
7020 } else {
7021 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1588);
7022 }
7023 REGB0 = ATTR_parser___ReduceAction21____goto(fra.me.REG[0]);
7024 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7025 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7026 stack_frame_head = fra.me.prev;
7027 return;
7028 }
7029 void parser___ReduceAction21___init(val_t p0, val_t p1, int* init_table){
7030 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction21].i;
7031 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7032 val_t REGB0;
7033 val_t tmp;
7034 if (init_table[itpos25]) return;
7035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7036 fra.me.file = LOCATE_parser;
7037 fra.me.line = 1591;
7038 fra.me.meth = LOCATE_parser___ReduceAction21___init;
7039 fra.me.has_broke = 0;
7040 fra.me.REG_size = 2;
7041 fra.me.REG[0] = NIT_NULL;
7042 fra.me.REG[1] = NIT_NULL;
7043 fra.me.REG[0] = p0;
7044 REGB0 = p1;
7045 /* ./parser//parser.nit:1591 */
7046 fra.me.REG[1] = fra.me.REG[0];
7047 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7048 ATTR_parser___ReduceAction21____goto(fra.me.REG[1]) = REGB0;
7049 stack_frame_head = fra.me.prev;
7050 init_table[itpos25] = 1;
7051 return;
7052 }
7053 void parser___ReduceAction22___action(val_t p0, val_t p1){
7054 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7055 val_t REGB0;
7056 val_t REGB1;
7057 val_t tmp;
7058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7059 fra.me.file = LOCATE_parser;
7060 fra.me.line = 1595;
7061 fra.me.meth = LOCATE_parser___ReduceAction22___action;
7062 fra.me.has_broke = 0;
7063 fra.me.REG_size = 8;
7064 fra.me.REG[0] = NIT_NULL;
7065 fra.me.REG[1] = NIT_NULL;
7066 fra.me.REG[2] = NIT_NULL;
7067 fra.me.REG[3] = NIT_NULL;
7068 fra.me.REG[4] = NIT_NULL;
7069 fra.me.REG[5] = NIT_NULL;
7070 fra.me.REG[6] = NIT_NULL;
7071 fra.me.REG[7] = NIT_NULL;
7072 fra.me.REG[0] = p0;
7073 fra.me.REG[1] = p1;
7074 /* ./parser//parser.nit:1597 */
7075 fra.me.REG[2] = NIT_NULL;
7076 /* ./parser//parser.nit:1598 */
7077 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7078 /* ./parser//parser.nit:1599 */
7079 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7080 /* ./parser//parser.nit:1600 */
7081 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7082 /* ./parser//parser.nit:1601 */
7083 fra.me.REG[6] = NEW_Array_array___Array___init();
7084 /* ./parser//parser.nit:1602 */
7085 fra.me.REG[7] = NEW_Array_array___Array___init();
7086 /* ./parser//parser.nit:1604 */
7087 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7088 if (UNTAG_Bool(REGB0)) {
7089 } else {
7090 nit_abort("Assert failed", NULL, LOCATE_parser, 1604);
7091 }
7092 /* ./parser//parser.nit:1605 */
7093 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
7094 fra.me.REG[6] = fra.me.REG[5];
7095 /* ./parser//parser.nit:1607 */
7096 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7097 if (UNTAG_Bool(REGB0)) {
7098 } else {
7099 nit_abort("Assert failed", NULL, LOCATE_parser, 1607);
7100 }
7101 /* ./parser//parser.nit:1609 */
7102 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7103 if (UNTAG_Bool(REGB0)) {
7104 } else {
7105 nit_abort("Assert failed", NULL, LOCATE_parser, 1609);
7106 }
7107 /* ./parser//parser.nit:1610 */
7108 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
7109 fra.me.REG[7] = fra.me.REG[4];
7110 /* ./parser//parser.nit:1611 */
7111 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7112 if (UNTAG_Bool(REGB0)) {
7113 } else {
7114 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7115 if (UNTAG_Bool(REGB1)) {
7116 REGB1 = TAG_Bool(false);
7117 REGB0 = REGB1;
7118 } else {
7119 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7120 REGB0 = REGB1;
7121 }
7122 }
7123 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7124 if (UNTAG_Bool(REGB0)) {
7125 /* ./parser//parser.nit:1612 */
7126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7127 }
7128 /* ./parser//parser.nit:1614 */
7129 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
7130 /* ./parser//parser.nit:1619 */
7131 fra.me.REG[2] = fra.me.REG[7];
7132 /* ./parser//parser.nit:1620 */
7133 REGB0 = TAG_Bool(ATTR_parser___ReduceAction22____goto(fra.me.REG[0])!=NIT_NULL);
7134 if (UNTAG_Bool(REGB0)) {
7135 } else {
7136 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1620);
7137 }
7138 REGB0 = ATTR_parser___ReduceAction22____goto(fra.me.REG[0]);
7139 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7140 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7141 stack_frame_head = fra.me.prev;
7142 return;
7143 }
7144 void parser___ReduceAction22___init(val_t p0, val_t p1, int* init_table){
7145 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction22].i;
7146 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7147 val_t REGB0;
7148 val_t tmp;
7149 if (init_table[itpos26]) return;
7150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7151 fra.me.file = LOCATE_parser;
7152 fra.me.line = 1623;
7153 fra.me.meth = LOCATE_parser___ReduceAction22___init;
7154 fra.me.has_broke = 0;
7155 fra.me.REG_size = 2;
7156 fra.me.REG[0] = NIT_NULL;
7157 fra.me.REG[1] = NIT_NULL;
7158 fra.me.REG[0] = p0;
7159 REGB0 = p1;
7160 /* ./parser//parser.nit:1623 */
7161 fra.me.REG[1] = fra.me.REG[0];
7162 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7163 ATTR_parser___ReduceAction22____goto(fra.me.REG[1]) = REGB0;
7164 stack_frame_head = fra.me.prev;
7165 init_table[itpos26] = 1;
7166 return;
7167 }
7168 void parser___ReduceAction23___action(val_t p0, val_t p1){
7169 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7170 val_t REGB0;
7171 val_t REGB1;
7172 val_t tmp;
7173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7174 fra.me.file = LOCATE_parser;
7175 fra.me.line = 1627;
7176 fra.me.meth = LOCATE_parser___ReduceAction23___action;
7177 fra.me.has_broke = 0;
7178 fra.me.REG_size = 9;
7179 fra.me.REG[0] = NIT_NULL;
7180 fra.me.REG[1] = NIT_NULL;
7181 fra.me.REG[2] = NIT_NULL;
7182 fra.me.REG[3] = NIT_NULL;
7183 fra.me.REG[4] = NIT_NULL;
7184 fra.me.REG[5] = NIT_NULL;
7185 fra.me.REG[6] = NIT_NULL;
7186 fra.me.REG[7] = NIT_NULL;
7187 fra.me.REG[8] = NIT_NULL;
7188 fra.me.REG[0] = p0;
7189 fra.me.REG[1] = p1;
7190 /* ./parser//parser.nit:1629 */
7191 fra.me.REG[2] = NIT_NULL;
7192 /* ./parser//parser.nit:1630 */
7193 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7194 /* ./parser//parser.nit:1631 */
7195 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7196 /* ./parser//parser.nit:1632 */
7197 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7198 /* ./parser//parser.nit:1633 */
7199 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7200 /* ./parser//parser.nit:1634 */
7201 fra.me.REG[7] = NEW_Array_array___Array___init();
7202 /* ./parser//parser.nit:1635 */
7203 fra.me.REG[8] = NEW_Array_array___Array___init();
7204 /* ./parser//parser.nit:1637 */
7205 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
7206 if (UNTAG_Bool(REGB0)) {
7207 } else {
7208 nit_abort("Assert failed", NULL, LOCATE_parser, 1637);
7209 }
7210 /* ./parser//parser.nit:1639 */
7211 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7212 if (UNTAG_Bool(REGB0)) {
7213 } else {
7214 nit_abort("Assert failed", NULL, LOCATE_parser, 1639);
7215 }
7216 /* ./parser//parser.nit:1640 */
7217 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
7218 fra.me.REG[7] = fra.me.REG[5];
7219 /* ./parser//parser.nit:1642 */
7220 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7221 if (UNTAG_Bool(REGB0)) {
7222 } else {
7223 nit_abort("Assert failed", NULL, LOCATE_parser, 1642);
7224 }
7225 /* ./parser//parser.nit:1644 */
7226 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7227 if (UNTAG_Bool(REGB0)) {
7228 } else {
7229 nit_abort("Assert failed", NULL, LOCATE_parser, 1644);
7230 }
7231 /* ./parser//parser.nit:1645 */
7232 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
7233 fra.me.REG[8] = fra.me.REG[4];
7234 /* ./parser//parser.nit:1646 */
7235 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7236 if (UNTAG_Bool(REGB0)) {
7237 } else {
7238 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7239 if (UNTAG_Bool(REGB1)) {
7240 REGB1 = TAG_Bool(false);
7241 REGB0 = REGB1;
7242 } else {
7243 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7244 REGB0 = REGB1;
7245 }
7246 }
7247 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7248 if (UNTAG_Bool(REGB0)) {
7249 /* ./parser//parser.nit:1647 */
7250 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
7251 }
7252 /* ./parser//parser.nit:1649 */
7253 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
7254 /* ./parser//parser.nit:1654 */
7255 fra.me.REG[2] = fra.me.REG[8];
7256 /* ./parser//parser.nit:1655 */
7257 REGB0 = TAG_Bool(ATTR_parser___ReduceAction23____goto(fra.me.REG[0])!=NIT_NULL);
7258 if (UNTAG_Bool(REGB0)) {
7259 } else {
7260 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1655);
7261 }
7262 REGB0 = ATTR_parser___ReduceAction23____goto(fra.me.REG[0]);
7263 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7264 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7265 stack_frame_head = fra.me.prev;
7266 return;
7267 }
7268 void parser___ReduceAction23___init(val_t p0, val_t p1, int* init_table){
7269 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction23].i;
7270 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7271 val_t REGB0;
7272 val_t tmp;
7273 if (init_table[itpos27]) return;
7274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7275 fra.me.file = LOCATE_parser;
7276 fra.me.line = 1658;
7277 fra.me.meth = LOCATE_parser___ReduceAction23___init;
7278 fra.me.has_broke = 0;
7279 fra.me.REG_size = 2;
7280 fra.me.REG[0] = NIT_NULL;
7281 fra.me.REG[1] = NIT_NULL;
7282 fra.me.REG[0] = p0;
7283 REGB0 = p1;
7284 /* ./parser//parser.nit:1658 */
7285 fra.me.REG[1] = fra.me.REG[0];
7286 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7287 ATTR_parser___ReduceAction23____goto(fra.me.REG[1]) = REGB0;
7288 stack_frame_head = fra.me.prev;
7289 init_table[itpos27] = 1;
7290 return;
7291 }
7292 void parser___ReduceAction24___action(val_t p0, val_t p1){
7293 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7294 val_t REGB0;
7295 val_t REGB1;
7296 val_t tmp;
7297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7298 fra.me.file = LOCATE_parser;
7299 fra.me.line = 1662;
7300 fra.me.meth = LOCATE_parser___ReduceAction24___action;
7301 fra.me.has_broke = 0;
7302 fra.me.REG_size = 8;
7303 fra.me.REG[0] = NIT_NULL;
7304 fra.me.REG[1] = NIT_NULL;
7305 fra.me.REG[2] = NIT_NULL;
7306 fra.me.REG[3] = NIT_NULL;
7307 fra.me.REG[4] = NIT_NULL;
7308 fra.me.REG[5] = NIT_NULL;
7309 fra.me.REG[6] = NIT_NULL;
7310 fra.me.REG[7] = NIT_NULL;
7311 fra.me.REG[0] = p0;
7312 fra.me.REG[1] = p1;
7313 /* ./parser//parser.nit:1664 */
7314 fra.me.REG[2] = NIT_NULL;
7315 /* ./parser//parser.nit:1665 */
7316 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7317 /* ./parser//parser.nit:1666 */
7318 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7319 /* ./parser//parser.nit:1667 */
7320 fra.me.REG[5] = NEW_Array_array___Array___init();
7321 /* ./parser//parser.nit:1668 */
7322 fra.me.REG[6] = NEW_Array_array___Array___init();
7323 /* ./parser//parser.nit:1669 */
7324 fra.me.REG[7] = NEW_Array_array___Array___init();
7325 /* ./parser//parser.nit:1671 */
7326 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7327 if (UNTAG_Bool(REGB0)) {
7328 } else {
7329 nit_abort("Assert failed", NULL, LOCATE_parser, 1671);
7330 }
7331 /* ./parser//parser.nit:1672 */
7332 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
7333 fra.me.REG[7] = fra.me.REG[4];
7334 /* ./parser//parser.nit:1673 */
7335 fra.me.REG[7] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
7336 /* ./parser//parser.nit:1677 */
7337 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7338 if (UNTAG_Bool(REGB0)) {
7339 } else {
7340 nit_abort("Assert failed", NULL, LOCATE_parser, 1677);
7341 }
7342 /* ./parser//parser.nit:1678 */
7343 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7344 if (UNTAG_Bool(REGB0)) {
7345 } else {
7346 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7347 if (UNTAG_Bool(REGB1)) {
7348 REGB1 = TAG_Bool(false);
7349 REGB0 = REGB1;
7350 } else {
7351 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
7352 REGB0 = REGB1;
7353 }
7354 }
7355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7356 if (UNTAG_Bool(REGB0)) {
7357 /* ./parser//parser.nit:1679 */
7358 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7359 }
7360 /* ./parser//parser.nit:1681 */
7361 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7362 if (UNTAG_Bool(REGB0)) {
7363 } else {
7364 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7365 if (UNTAG_Bool(REGB1)) {
7366 REGB1 = TAG_Bool(false);
7367 REGB0 = REGB1;
7368 } else {
7369 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7370 REGB0 = REGB1;
7371 }
7372 }
7373 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7374 if (UNTAG_Bool(REGB0)) {
7375 /* ./parser//parser.nit:1682 */
7376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
7377 }
7378 /* ./parser//parser.nit:1684 */
7379 fra.me.REG[6] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
7380 /* ./parser//parser.nit:1689 */
7381 fra.me.REG[2] = fra.me.REG[6];
7382 /* ./parser//parser.nit:1690 */
7383 REGB0 = TAG_Bool(ATTR_parser___ReduceAction24____goto(fra.me.REG[0])!=NIT_NULL);
7384 if (UNTAG_Bool(REGB0)) {
7385 } else {
7386 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1690);
7387 }
7388 REGB0 = ATTR_parser___ReduceAction24____goto(fra.me.REG[0]);
7389 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7390 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7391 stack_frame_head = fra.me.prev;
7392 return;
7393 }
7394 void parser___ReduceAction24___init(val_t p0, val_t p1, int* init_table){
7395 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction24].i;
7396 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7397 val_t REGB0;
7398 val_t tmp;
7399 if (init_table[itpos28]) return;
7400 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7401 fra.me.file = LOCATE_parser;
7402 fra.me.line = 1693;
7403 fra.me.meth = LOCATE_parser___ReduceAction24___init;
7404 fra.me.has_broke = 0;
7405 fra.me.REG_size = 2;
7406 fra.me.REG[0] = NIT_NULL;
7407 fra.me.REG[1] = NIT_NULL;
7408 fra.me.REG[0] = p0;
7409 REGB0 = p1;
7410 /* ./parser//parser.nit:1693 */
7411 fra.me.REG[1] = fra.me.REG[0];
7412 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7413 ATTR_parser___ReduceAction24____goto(fra.me.REG[1]) = REGB0;
7414 stack_frame_head = fra.me.prev;
7415 init_table[itpos28] = 1;
7416 return;
7417 }
7418 void parser___ReduceAction25___action(val_t p0, val_t p1){
7419 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7420 val_t REGB0;
7421 val_t REGB1;
7422 val_t tmp;
7423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7424 fra.me.file = LOCATE_parser;
7425 fra.me.line = 1697;
7426 fra.me.meth = LOCATE_parser___ReduceAction25___action;
7427 fra.me.has_broke = 0;
7428 fra.me.REG_size = 9;
7429 fra.me.REG[0] = NIT_NULL;
7430 fra.me.REG[1] = NIT_NULL;
7431 fra.me.REG[2] = NIT_NULL;
7432 fra.me.REG[3] = NIT_NULL;
7433 fra.me.REG[4] = NIT_NULL;
7434 fra.me.REG[5] = NIT_NULL;
7435 fra.me.REG[6] = NIT_NULL;
7436 fra.me.REG[7] = NIT_NULL;
7437 fra.me.REG[8] = NIT_NULL;
7438 fra.me.REG[0] = p0;
7439 fra.me.REG[1] = p1;
7440 /* ./parser//parser.nit:1699 */
7441 fra.me.REG[2] = NIT_NULL;
7442 /* ./parser//parser.nit:1700 */
7443 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7444 /* ./parser//parser.nit:1701 */
7445 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7446 /* ./parser//parser.nit:1702 */
7447 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7448 /* ./parser//parser.nit:1703 */
7449 fra.me.REG[6] = NEW_Array_array___Array___init();
7450 /* ./parser//parser.nit:1704 */
7451 fra.me.REG[7] = NEW_Array_array___Array___init();
7452 /* ./parser//parser.nit:1706 */
7453 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
7454 if (UNTAG_Bool(REGB0)) {
7455 } else {
7456 nit_abort("Assert failed", NULL, LOCATE_parser, 1706);
7457 }
7458 /* ./parser//parser.nit:1707 */
7459 fra.me.REG[8] = NEW_Array_array___Array___init();
7460 /* ./parser//parser.nit:1709 */
7461 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7462 if (UNTAG_Bool(REGB0)) {
7463 } else {
7464 nit_abort("Assert failed", NULL, LOCATE_parser, 1709);
7465 }
7466 /* ./parser//parser.nit:1710 */
7467 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
7468 fra.me.REG[8] = fra.me.REG[4];
7469 /* ./parser//parser.nit:1711 */
7470 fra.me.REG[8] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
7471 /* ./parser//parser.nit:1715 */
7472 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7473 if (UNTAG_Bool(REGB0)) {
7474 } else {
7475 nit_abort("Assert failed", NULL, LOCATE_parser, 1715);
7476 }
7477 /* ./parser//parser.nit:1716 */
7478 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7479 if (UNTAG_Bool(REGB0)) {
7480 } else {
7481 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7482 if (UNTAG_Bool(REGB1)) {
7483 REGB1 = TAG_Bool(false);
7484 REGB0 = REGB1;
7485 } else {
7486 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7487 REGB0 = REGB1;
7488 }
7489 }
7490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7491 if (UNTAG_Bool(REGB0)) {
7492 /* ./parser//parser.nit:1717 */
7493 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
7494 }
7495 /* ./parser//parser.nit:1719 */
7496 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7497 if (UNTAG_Bool(REGB0)) {
7498 } else {
7499 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7500 if (UNTAG_Bool(REGB1)) {
7501 REGB1 = TAG_Bool(false);
7502 REGB0 = REGB1;
7503 } else {
7504 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7505 REGB0 = REGB1;
7506 }
7507 }
7508 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7509 if (UNTAG_Bool(REGB0)) {
7510 /* ./parser//parser.nit:1720 */
7511 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7512 }
7513 /* ./parser//parser.nit:1722 */
7514 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
7515 /* ./parser//parser.nit:1727 */
7516 fra.me.REG[2] = fra.me.REG[7];
7517 /* ./parser//parser.nit:1728 */
7518 REGB0 = TAG_Bool(ATTR_parser___ReduceAction25____goto(fra.me.REG[0])!=NIT_NULL);
7519 if (UNTAG_Bool(REGB0)) {
7520 } else {
7521 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1728);
7522 }
7523 REGB0 = ATTR_parser___ReduceAction25____goto(fra.me.REG[0]);
7524 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7525 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7526 stack_frame_head = fra.me.prev;
7527 return;
7528 }
7529 void parser___ReduceAction25___init(val_t p0, val_t p1, int* init_table){
7530 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction25].i;
7531 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7532 val_t REGB0;
7533 val_t tmp;
7534 if (init_table[itpos29]) return;
7535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7536 fra.me.file = LOCATE_parser;
7537 fra.me.line = 1731;
7538 fra.me.meth = LOCATE_parser___ReduceAction25___init;
7539 fra.me.has_broke = 0;
7540 fra.me.REG_size = 2;
7541 fra.me.REG[0] = NIT_NULL;
7542 fra.me.REG[1] = NIT_NULL;
7543 fra.me.REG[0] = p0;
7544 REGB0 = p1;
7545 /* ./parser//parser.nit:1731 */
7546 fra.me.REG[1] = fra.me.REG[0];
7547 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7548 ATTR_parser___ReduceAction25____goto(fra.me.REG[1]) = REGB0;
7549 stack_frame_head = fra.me.prev;
7550 init_table[itpos29] = 1;
7551 return;
7552 }
7553 void parser___ReduceAction26___action(val_t p0, val_t p1){
7554 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7555 val_t REGB0;
7556 val_t REGB1;
7557 val_t tmp;
7558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7559 fra.me.file = LOCATE_parser;
7560 fra.me.line = 1735;
7561 fra.me.meth = LOCATE_parser___ReduceAction26___action;
7562 fra.me.has_broke = 0;
7563 fra.me.REG_size = 8;
7564 fra.me.REG[0] = NIT_NULL;
7565 fra.me.REG[1] = NIT_NULL;
7566 fra.me.REG[2] = NIT_NULL;
7567 fra.me.REG[3] = NIT_NULL;
7568 fra.me.REG[4] = NIT_NULL;
7569 fra.me.REG[5] = NIT_NULL;
7570 fra.me.REG[6] = NIT_NULL;
7571 fra.me.REG[7] = NIT_NULL;
7572 fra.me.REG[0] = p0;
7573 fra.me.REG[1] = p1;
7574 /* ./parser//parser.nit:1737 */
7575 fra.me.REG[2] = NIT_NULL;
7576 /* ./parser//parser.nit:1738 */
7577 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7578 /* ./parser//parser.nit:1739 */
7579 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7580 /* ./parser//parser.nit:1740 */
7581 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7582 /* ./parser//parser.nit:1741 */
7583 fra.me.REG[6] = NEW_Array_array___Array___init();
7584 /* ./parser//parser.nit:1742 */
7585 fra.me.REG[7] = NEW_Array_array___Array___init();
7586 /* ./parser//parser.nit:1744 */
7587 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7588 if (UNTAG_Bool(REGB0)) {
7589 } else {
7590 nit_abort("Assert failed", NULL, LOCATE_parser, 1744);
7591 }
7592 /* ./parser//parser.nit:1745 */
7593 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
7594 fra.me.REG[6] = fra.me.REG[5];
7595 /* ./parser//parser.nit:1746 */
7596 fra.me.REG[5] = NEW_Array_array___Array___init();
7597 /* ./parser//parser.nit:1748 */
7598 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7599 if (UNTAG_Bool(REGB0)) {
7600 } else {
7601 nit_abort("Assert failed", NULL, LOCATE_parser, 1748);
7602 }
7603 /* ./parser//parser.nit:1749 */
7604 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
7605 fra.me.REG[5] = fra.me.REG[4];
7606 /* ./parser//parser.nit:1750 */
7607 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
7608 /* ./parser//parser.nit:1754 */
7609 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7610 if (UNTAG_Bool(REGB0)) {
7611 } else {
7612 nit_abort("Assert failed", NULL, LOCATE_parser, 1754);
7613 }
7614 /* ./parser//parser.nit:1755 */
7615 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7616 if (UNTAG_Bool(REGB0)) {
7617 } else {
7618 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7619 if (UNTAG_Bool(REGB1)) {
7620 REGB1 = TAG_Bool(false);
7621 REGB0 = REGB1;
7622 } else {
7623 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7624 REGB0 = REGB1;
7625 }
7626 }
7627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7628 if (UNTAG_Bool(REGB0)) {
7629 /* ./parser//parser.nit:1756 */
7630 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
7631 }
7632 /* ./parser//parser.nit:1758 */
7633 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7634 if (UNTAG_Bool(REGB0)) {
7635 } else {
7636 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7637 if (UNTAG_Bool(REGB1)) {
7638 REGB1 = TAG_Bool(false);
7639 REGB0 = REGB1;
7640 } else {
7641 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7642 REGB0 = REGB1;
7643 }
7644 }
7645 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7646 if (UNTAG_Bool(REGB0)) {
7647 /* ./parser//parser.nit:1759 */
7648 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7649 }
7650 /* ./parser//parser.nit:1761 */
7651 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
7652 /* ./parser//parser.nit:1766 */
7653 fra.me.REG[2] = fra.me.REG[7];
7654 /* ./parser//parser.nit:1767 */
7655 REGB0 = TAG_Bool(ATTR_parser___ReduceAction26____goto(fra.me.REG[0])!=NIT_NULL);
7656 if (UNTAG_Bool(REGB0)) {
7657 } else {
7658 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1767);
7659 }
7660 REGB0 = ATTR_parser___ReduceAction26____goto(fra.me.REG[0]);
7661 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7662 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7663 stack_frame_head = fra.me.prev;
7664 return;
7665 }
7666 void parser___ReduceAction26___init(val_t p0, val_t p1, int* init_table){
7667 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction26].i;
7668 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7669 val_t REGB0;
7670 val_t tmp;
7671 if (init_table[itpos30]) return;
7672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7673 fra.me.file = LOCATE_parser;
7674 fra.me.line = 1770;
7675 fra.me.meth = LOCATE_parser___ReduceAction26___init;
7676 fra.me.has_broke = 0;
7677 fra.me.REG_size = 2;
7678 fra.me.REG[0] = NIT_NULL;
7679 fra.me.REG[1] = NIT_NULL;
7680 fra.me.REG[0] = p0;
7681 REGB0 = p1;
7682 /* ./parser//parser.nit:1770 */
7683 fra.me.REG[1] = fra.me.REG[0];
7684 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7685 ATTR_parser___ReduceAction26____goto(fra.me.REG[1]) = REGB0;
7686 stack_frame_head = fra.me.prev;
7687 init_table[itpos30] = 1;
7688 return;
7689 }
7690 void parser___ReduceAction27___action(val_t p0, val_t p1){
7691 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7692 val_t REGB0;
7693 val_t REGB1;
7694 val_t tmp;
7695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7696 fra.me.file = LOCATE_parser;
7697 fra.me.line = 1774;
7698 fra.me.meth = LOCATE_parser___ReduceAction27___action;
7699 fra.me.has_broke = 0;
7700 fra.me.REG_size = 9;
7701 fra.me.REG[0] = NIT_NULL;
7702 fra.me.REG[1] = NIT_NULL;
7703 fra.me.REG[2] = NIT_NULL;
7704 fra.me.REG[3] = NIT_NULL;
7705 fra.me.REG[4] = NIT_NULL;
7706 fra.me.REG[5] = NIT_NULL;
7707 fra.me.REG[6] = NIT_NULL;
7708 fra.me.REG[7] = NIT_NULL;
7709 fra.me.REG[8] = NIT_NULL;
7710 fra.me.REG[0] = p0;
7711 fra.me.REG[1] = p1;
7712 /* ./parser//parser.nit:1776 */
7713 fra.me.REG[2] = NIT_NULL;
7714 /* ./parser//parser.nit:1777 */
7715 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7716 /* ./parser//parser.nit:1778 */
7717 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7718 /* ./parser//parser.nit:1779 */
7719 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7720 /* ./parser//parser.nit:1780 */
7721 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7722 /* ./parser//parser.nit:1781 */
7723 fra.me.REG[7] = NEW_Array_array___Array___init();
7724 /* ./parser//parser.nit:1782 */
7725 fra.me.REG[8] = NEW_Array_array___Array___init();
7726 /* ./parser//parser.nit:1784 */
7727 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
7728 if (UNTAG_Bool(REGB0)) {
7729 } else {
7730 nit_abort("Assert failed", NULL, LOCATE_parser, 1784);
7731 }
7732 /* ./parser//parser.nit:1786 */
7733 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7734 if (UNTAG_Bool(REGB0)) {
7735 } else {
7736 nit_abort("Assert failed", NULL, LOCATE_parser, 1786);
7737 }
7738 /* ./parser//parser.nit:1787 */
7739 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
7740 fra.me.REG[7] = fra.me.REG[5];
7741 /* ./parser//parser.nit:1788 */
7742 fra.me.REG[5] = NEW_Array_array___Array___init();
7743 /* ./parser//parser.nit:1790 */
7744 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7745 if (UNTAG_Bool(REGB0)) {
7746 } else {
7747 nit_abort("Assert failed", NULL, LOCATE_parser, 1790);
7748 }
7749 /* ./parser//parser.nit:1791 */
7750 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
7751 fra.me.REG[5] = fra.me.REG[4];
7752 /* ./parser//parser.nit:1792 */
7753 fra.me.REG[5] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
7754 /* ./parser//parser.nit:1796 */
7755 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7756 if (UNTAG_Bool(REGB0)) {
7757 } else {
7758 nit_abort("Assert failed", NULL, LOCATE_parser, 1796);
7759 }
7760 /* ./parser//parser.nit:1797 */
7761 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7762 if (UNTAG_Bool(REGB0)) {
7763 } else {
7764 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7765 if (UNTAG_Bool(REGB1)) {
7766 REGB1 = TAG_Bool(false);
7767 REGB0 = REGB1;
7768 } else {
7769 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7770 REGB0 = REGB1;
7771 }
7772 }
7773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7774 if (UNTAG_Bool(REGB0)) {
7775 /* ./parser//parser.nit:1798 */
7776 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
7777 }
7778 /* ./parser//parser.nit:1800 */
7779 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7780 if (UNTAG_Bool(REGB0)) {
7781 } else {
7782 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7783 if (UNTAG_Bool(REGB1)) {
7784 REGB1 = TAG_Bool(false);
7785 REGB0 = REGB1;
7786 } else {
7787 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7788 REGB0 = REGB1;
7789 }
7790 }
7791 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7792 if (UNTAG_Bool(REGB0)) {
7793 /* ./parser//parser.nit:1801 */
7794 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
7795 }
7796 /* ./parser//parser.nit:1803 */
7797 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
7798 /* ./parser//parser.nit:1808 */
7799 fra.me.REG[2] = fra.me.REG[8];
7800 /* ./parser//parser.nit:1809 */
7801 REGB0 = TAG_Bool(ATTR_parser___ReduceAction27____goto(fra.me.REG[0])!=NIT_NULL);
7802 if (UNTAG_Bool(REGB0)) {
7803 } else {
7804 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1809);
7805 }
7806 REGB0 = ATTR_parser___ReduceAction27____goto(fra.me.REG[0]);
7807 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7808 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7809 stack_frame_head = fra.me.prev;
7810 return;
7811 }
7812 void parser___ReduceAction27___init(val_t p0, val_t p1, int* init_table){
7813 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction27].i;
7814 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7815 val_t REGB0;
7816 val_t tmp;
7817 if (init_table[itpos31]) return;
7818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7819 fra.me.file = LOCATE_parser;
7820 fra.me.line = 1812;
7821 fra.me.meth = LOCATE_parser___ReduceAction27___init;
7822 fra.me.has_broke = 0;
7823 fra.me.REG_size = 2;
7824 fra.me.REG[0] = NIT_NULL;
7825 fra.me.REG[1] = NIT_NULL;
7826 fra.me.REG[0] = p0;
7827 REGB0 = p1;
7828 /* ./parser//parser.nit:1812 */
7829 fra.me.REG[1] = fra.me.REG[0];
7830 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7831 ATTR_parser___ReduceAction27____goto(fra.me.REG[1]) = REGB0;
7832 stack_frame_head = fra.me.prev;
7833 init_table[itpos31] = 1;
7834 return;
7835 }
7836 void parser___ReduceAction28___action(val_t p0, val_t p1){
7837 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7838 val_t REGB0;
7839 val_t REGB1;
7840 val_t tmp;
7841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7842 fra.me.file = LOCATE_parser;
7843 fra.me.line = 1816;
7844 fra.me.meth = LOCATE_parser___ReduceAction28___action;
7845 fra.me.has_broke = 0;
7846 fra.me.REG_size = 9;
7847 fra.me.REG[0] = NIT_NULL;
7848 fra.me.REG[1] = NIT_NULL;
7849 fra.me.REG[2] = NIT_NULL;
7850 fra.me.REG[3] = NIT_NULL;
7851 fra.me.REG[4] = NIT_NULL;
7852 fra.me.REG[5] = NIT_NULL;
7853 fra.me.REG[6] = NIT_NULL;
7854 fra.me.REG[7] = NIT_NULL;
7855 fra.me.REG[8] = NIT_NULL;
7856 fra.me.REG[0] = p0;
7857 fra.me.REG[1] = p1;
7858 /* ./parser//parser.nit:1818 */
7859 fra.me.REG[2] = NIT_NULL;
7860 /* ./parser//parser.nit:1819 */
7861 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7862 /* ./parser//parser.nit:1820 */
7863 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7864 /* ./parser//parser.nit:1821 */
7865 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
7866 /* ./parser//parser.nit:1822 */
7867 fra.me.REG[6] = NEW_Array_array___Array___init();
7868 /* ./parser//parser.nit:1823 */
7869 fra.me.REG[7] = NEW_Array_array___Array___init();
7870 /* ./parser//parser.nit:1825 */
7871 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7872 if (UNTAG_Bool(REGB0)) {
7873 } else {
7874 nit_abort("Assert failed", NULL, LOCATE_parser, 1825);
7875 }
7876 /* ./parser//parser.nit:1826 */
7877 fra.me.REG[8] = NEW_Array_array___Array___init();
7878 /* ./parser//parser.nit:1828 */
7879 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
7880 if (UNTAG_Bool(REGB0)) {
7881 } else {
7882 nit_abort("Assert failed", NULL, LOCATE_parser, 1828);
7883 }
7884 /* ./parser//parser.nit:1829 */
7885 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
7886 fra.me.REG[8] = fra.me.REG[4];
7887 /* ./parser//parser.nit:1830 */
7888 fra.me.REG[8] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
7889 /* ./parser//parser.nit:1834 */
7890 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
7891 if (UNTAG_Bool(REGB0)) {
7892 } else {
7893 nit_abort("Assert failed", NULL, LOCATE_parser, 1834);
7894 }
7895 /* ./parser//parser.nit:1835 */
7896 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
7897 fra.me.REG[7] = fra.me.REG[5];
7898 /* ./parser//parser.nit:1836 */
7899 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7900 if (UNTAG_Bool(REGB0)) {
7901 } else {
7902 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7903 if (UNTAG_Bool(REGB1)) {
7904 REGB1 = TAG_Bool(false);
7905 REGB0 = REGB1;
7906 } else {
7907 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7908 REGB0 = REGB1;
7909 }
7910 }
7911 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7912 if (UNTAG_Bool(REGB0)) {
7913 /* ./parser//parser.nit:1837 */
7914 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
7915 }
7916 /* ./parser//parser.nit:1839 */
7917 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7918 if (UNTAG_Bool(REGB0)) {
7919 } else {
7920 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7921 if (UNTAG_Bool(REGB1)) {
7922 REGB1 = TAG_Bool(false);
7923 REGB0 = REGB1;
7924 } else {
7925 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7926 REGB0 = REGB1;
7927 }
7928 }
7929 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7930 if (UNTAG_Bool(REGB0)) {
7931 /* ./parser//parser.nit:1840 */
7932 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
7933 }
7934 /* ./parser//parser.nit:1842 */
7935 fra.me.REG[7] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
7936 /* ./parser//parser.nit:1847 */
7937 fra.me.REG[2] = fra.me.REG[7];
7938 /* ./parser//parser.nit:1848 */
7939 REGB0 = TAG_Bool(ATTR_parser___ReduceAction28____goto(fra.me.REG[0])!=NIT_NULL);
7940 if (UNTAG_Bool(REGB0)) {
7941 } else {
7942 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1848);
7943 }
7944 REGB0 = ATTR_parser___ReduceAction28____goto(fra.me.REG[0]);
7945 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
7946 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
7947 stack_frame_head = fra.me.prev;
7948 return;
7949 }
7950 void parser___ReduceAction28___init(val_t p0, val_t p1, int* init_table){
7951 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction28].i;
7952 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7953 val_t REGB0;
7954 val_t tmp;
7955 if (init_table[itpos32]) return;
7956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7957 fra.me.file = LOCATE_parser;
7958 fra.me.line = 1851;
7959 fra.me.meth = LOCATE_parser___ReduceAction28___init;
7960 fra.me.has_broke = 0;
7961 fra.me.REG_size = 2;
7962 fra.me.REG[0] = NIT_NULL;
7963 fra.me.REG[1] = NIT_NULL;
7964 fra.me.REG[0] = p0;
7965 REGB0 = p1;
7966 /* ./parser//parser.nit:1851 */
7967 fra.me.REG[1] = fra.me.REG[0];
7968 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
7969 ATTR_parser___ReduceAction28____goto(fra.me.REG[1]) = REGB0;
7970 stack_frame_head = fra.me.prev;
7971 init_table[itpos32] = 1;
7972 return;
7973 }
7974 void parser___ReduceAction29___action(val_t p0, val_t p1){
7975 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
7976 val_t REGB0;
7977 val_t REGB1;
7978 val_t tmp;
7979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7980 fra.me.file = LOCATE_parser;
7981 fra.me.line = 1855;
7982 fra.me.meth = LOCATE_parser___ReduceAction29___action;
7983 fra.me.has_broke = 0;
7984 fra.me.REG_size = 10;
7985 fra.me.REG[0] = NIT_NULL;
7986 fra.me.REG[1] = NIT_NULL;
7987 fra.me.REG[2] = NIT_NULL;
7988 fra.me.REG[3] = NIT_NULL;
7989 fra.me.REG[4] = NIT_NULL;
7990 fra.me.REG[5] = NIT_NULL;
7991 fra.me.REG[6] = NIT_NULL;
7992 fra.me.REG[7] = NIT_NULL;
7993 fra.me.REG[8] = NIT_NULL;
7994 fra.me.REG[9] = NIT_NULL;
7995 fra.me.REG[0] = p0;
7996 fra.me.REG[1] = p1;
7997 /* ./parser//parser.nit:1857 */
7998 fra.me.REG[2] = NIT_NULL;
7999 /* ./parser//parser.nit:1858 */
8000 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8001 /* ./parser//parser.nit:1859 */
8002 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8003 /* ./parser//parser.nit:1860 */
8004 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8005 /* ./parser//parser.nit:1861 */
8006 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8007 /* ./parser//parser.nit:1862 */
8008 fra.me.REG[7] = NEW_Array_array___Array___init();
8009 /* ./parser//parser.nit:1863 */
8010 fra.me.REG[8] = NEW_Array_array___Array___init();
8011 /* ./parser//parser.nit:1865 */
8012 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
8013 if (UNTAG_Bool(REGB0)) {
8014 } else {
8015 nit_abort("Assert failed", NULL, LOCATE_parser, 1865);
8016 }
8017 /* ./parser//parser.nit:1867 */
8018 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8019 if (UNTAG_Bool(REGB0)) {
8020 } else {
8021 nit_abort("Assert failed", NULL, LOCATE_parser, 1867);
8022 }
8023 /* ./parser//parser.nit:1868 */
8024 fra.me.REG[9] = NEW_Array_array___Array___init();
8025 /* ./parser//parser.nit:1870 */
8026 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8027 if (UNTAG_Bool(REGB0)) {
8028 } else {
8029 nit_abort("Assert failed", NULL, LOCATE_parser, 1870);
8030 }
8031 /* ./parser//parser.nit:1871 */
8032 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
8033 fra.me.REG[9] = fra.me.REG[4];
8034 /* ./parser//parser.nit:1872 */
8035 fra.me.REG[9] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[9]);
8036 /* ./parser//parser.nit:1876 */
8037 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
8038 if (UNTAG_Bool(REGB0)) {
8039 } else {
8040 nit_abort("Assert failed", NULL, LOCATE_parser, 1876);
8041 }
8042 /* ./parser//parser.nit:1877 */
8043 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
8044 fra.me.REG[8] = fra.me.REG[5];
8045 /* ./parser//parser.nit:1878 */
8046 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8047 if (UNTAG_Bool(REGB0)) {
8048 } else {
8049 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
8050 if (UNTAG_Bool(REGB1)) {
8051 REGB1 = TAG_Bool(false);
8052 REGB0 = REGB1;
8053 } else {
8054 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
8055 REGB0 = REGB1;
8056 }
8057 }
8058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8059 if (UNTAG_Bool(REGB0)) {
8060 /* ./parser//parser.nit:1879 */
8061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
8062 }
8063 /* ./parser//parser.nit:1881 */
8064 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8065 if (UNTAG_Bool(REGB0)) {
8066 } else {
8067 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8068 if (UNTAG_Bool(REGB1)) {
8069 REGB1 = TAG_Bool(false);
8070 REGB0 = REGB1;
8071 } else {
8072 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8073 REGB0 = REGB1;
8074 }
8075 }
8076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8077 if (UNTAG_Bool(REGB0)) {
8078 /* ./parser//parser.nit:1882 */
8079 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
8080 }
8081 /* ./parser//parser.nit:1884 */
8082 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
8083 /* ./parser//parser.nit:1889 */
8084 fra.me.REG[2] = fra.me.REG[8];
8085 /* ./parser//parser.nit:1890 */
8086 REGB0 = TAG_Bool(ATTR_parser___ReduceAction29____goto(fra.me.REG[0])!=NIT_NULL);
8087 if (UNTAG_Bool(REGB0)) {
8088 } else {
8089 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1890);
8090 }
8091 REGB0 = ATTR_parser___ReduceAction29____goto(fra.me.REG[0]);
8092 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8093 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8094 stack_frame_head = fra.me.prev;
8095 return;
8096 }
8097 void parser___ReduceAction29___init(val_t p0, val_t p1, int* init_table){
8098 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction29].i;
8099 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8100 val_t REGB0;
8101 val_t tmp;
8102 if (init_table[itpos33]) return;
8103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8104 fra.me.file = LOCATE_parser;
8105 fra.me.line = 1893;
8106 fra.me.meth = LOCATE_parser___ReduceAction29___init;
8107 fra.me.has_broke = 0;
8108 fra.me.REG_size = 2;
8109 fra.me.REG[0] = NIT_NULL;
8110 fra.me.REG[1] = NIT_NULL;
8111 fra.me.REG[0] = p0;
8112 REGB0 = p1;
8113 /* ./parser//parser.nit:1893 */
8114 fra.me.REG[1] = fra.me.REG[0];
8115 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8116 ATTR_parser___ReduceAction29____goto(fra.me.REG[1]) = REGB0;
8117 stack_frame_head = fra.me.prev;
8118 init_table[itpos33] = 1;
8119 return;
8120 }
8121 void parser___ReduceAction30___action(val_t p0, val_t p1){
8122 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
8123 val_t REGB0;
8124 val_t REGB1;
8125 val_t tmp;
8126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8127 fra.me.file = LOCATE_parser;
8128 fra.me.line = 1897;
8129 fra.me.meth = LOCATE_parser___ReduceAction30___action;
8130 fra.me.has_broke = 0;
8131 fra.me.REG_size = 9;
8132 fra.me.REG[0] = NIT_NULL;
8133 fra.me.REG[1] = NIT_NULL;
8134 fra.me.REG[2] = NIT_NULL;
8135 fra.me.REG[3] = NIT_NULL;
8136 fra.me.REG[4] = NIT_NULL;
8137 fra.me.REG[5] = NIT_NULL;
8138 fra.me.REG[6] = NIT_NULL;
8139 fra.me.REG[7] = NIT_NULL;
8140 fra.me.REG[8] = NIT_NULL;
8141 fra.me.REG[0] = p0;
8142 fra.me.REG[1] = p1;
8143 /* ./parser//parser.nit:1899 */
8144 fra.me.REG[2] = NIT_NULL;
8145 /* ./parser//parser.nit:1900 */
8146 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8147 /* ./parser//parser.nit:1901 */
8148 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8149 /* ./parser//parser.nit:1902 */
8150 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8151 /* ./parser//parser.nit:1903 */
8152 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8153 /* ./parser//parser.nit:1904 */
8154 fra.me.REG[7] = NEW_Array_array___Array___init();
8155 /* ./parser//parser.nit:1905 */
8156 fra.me.REG[8] = NEW_Array_array___Array___init();
8157 /* ./parser//parser.nit:1907 */
8158 REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8159 if (UNTAG_Bool(REGB0)) {
8160 } else {
8161 nit_abort("Assert failed", NULL, LOCATE_parser, 1907);
8162 }
8163 /* ./parser//parser.nit:1908 */
8164 fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6]);
8165 fra.me.REG[7] = fra.me.REG[6];
8166 /* ./parser//parser.nit:1910 */
8167 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8168 if (UNTAG_Bool(REGB0)) {
8169 } else {
8170 nit_abort("Assert failed", NULL, LOCATE_parser, 1910);
8171 }
8172 /* ./parser//parser.nit:1911 */
8173 fra.me.REG[6] = NEW_Array_array___Array___init();
8174 /* ./parser//parser.nit:1913 */
8175 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8176 if (UNTAG_Bool(REGB0)) {
8177 } else {
8178 nit_abort("Assert failed", NULL, LOCATE_parser, 1913);
8179 }
8180 /* ./parser//parser.nit:1914 */
8181 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
8182 fra.me.REG[6] = fra.me.REG[4];
8183 /* ./parser//parser.nit:1915 */
8184 fra.me.REG[6] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
8185 /* ./parser//parser.nit:1919 */
8186 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
8187 if (UNTAG_Bool(REGB0)) {
8188 } else {
8189 nit_abort("Assert failed", NULL, LOCATE_parser, 1919);
8190 }
8191 /* ./parser//parser.nit:1920 */
8192 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
8193 fra.me.REG[8] = fra.me.REG[5];
8194 /* ./parser//parser.nit:1921 */
8195 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8196 if (UNTAG_Bool(REGB0)) {
8197 } else {
8198 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8199 if (UNTAG_Bool(REGB1)) {
8200 REGB1 = TAG_Bool(false);
8201 REGB0 = REGB1;
8202 } else {
8203 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8204 REGB0 = REGB1;
8205 }
8206 }
8207 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8208 if (UNTAG_Bool(REGB0)) {
8209 /* ./parser//parser.nit:1922 */
8210 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
8211 }
8212 /* ./parser//parser.nit:1924 */
8213 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8214 if (UNTAG_Bool(REGB0)) {
8215 } else {
8216 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8217 if (UNTAG_Bool(REGB1)) {
8218 REGB1 = TAG_Bool(false);
8219 REGB0 = REGB1;
8220 } else {
8221 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8222 REGB0 = REGB1;
8223 }
8224 }
8225 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8226 if (UNTAG_Bool(REGB0)) {
8227 /* ./parser//parser.nit:1925 */
8228 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
8229 }
8230 /* ./parser//parser.nit:1927 */
8231 fra.me.REG[8] = NEW_AModule_parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[7], fra.me.REG[8]);
8232 /* ./parser//parser.nit:1932 */
8233 fra.me.REG[2] = fra.me.REG[8];
8234 /* ./parser//parser.nit:1933 */
8235 REGB0 = TAG_Bool(ATTR_parser___ReduceAction30____goto(fra.me.REG[0])!=NIT_NULL);
8236 if (UNTAG_Bool(REGB0)) {
8237 } else {
8238 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1933);
8239 }
8240 REGB0 = ATTR_parser___ReduceAction30____goto(fra.me.REG[0]);
8241 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8242 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8243 stack_frame_head = fra.me.prev;
8244 return;
8245 }
8246 void parser___ReduceAction30___init(val_t p0, val_t p1, int* init_table){
8247 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction30].i;
8248 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8249 val_t REGB0;
8250 val_t tmp;
8251 if (init_table[itpos34]) return;
8252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8253 fra.me.file = LOCATE_parser;
8254 fra.me.line = 1936;
8255 fra.me.meth = LOCATE_parser___ReduceAction30___init;
8256 fra.me.has_broke = 0;
8257 fra.me.REG_size = 2;
8258 fra.me.REG[0] = NIT_NULL;
8259 fra.me.REG[1] = NIT_NULL;
8260 fra.me.REG[0] = p0;
8261 REGB0 = p1;
8262 /* ./parser//parser.nit:1936 */
8263 fra.me.REG[1] = fra.me.REG[0];
8264 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8265 ATTR_parser___ReduceAction30____goto(fra.me.REG[1]) = REGB0;
8266 stack_frame_head = fra.me.prev;
8267 init_table[itpos34] = 1;
8268 return;
8269 }
8270 void parser___ReduceAction31___action(val_t p0, val_t p1){
8271 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
8272 val_t REGB0;
8273 val_t REGB1;
8274 val_t tmp;
8275 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8276 fra.me.file = LOCATE_parser;
8277 fra.me.line = 1940;
8278 fra.me.meth = LOCATE_parser___ReduceAction31___action;
8279 fra.me.has_broke = 0;
8280 fra.me.REG_size = 10;
8281 fra.me.REG[0] = NIT_NULL;
8282 fra.me.REG[1] = NIT_NULL;
8283 fra.me.REG[2] = NIT_NULL;
8284 fra.me.REG[3] = NIT_NULL;
8285 fra.me.REG[4] = NIT_NULL;
8286 fra.me.REG[5] = NIT_NULL;
8287 fra.me.REG[6] = NIT_NULL;
8288 fra.me.REG[7] = NIT_NULL;
8289 fra.me.REG[8] = NIT_NULL;
8290 fra.me.REG[9] = NIT_NULL;
8291 fra.me.REG[0] = p0;
8292 fra.me.REG[1] = p1;
8293 /* ./parser//parser.nit:1942 */
8294 fra.me.REG[2] = NIT_NULL;
8295 /* ./parser//parser.nit:1943 */
8296 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8297 /* ./parser//parser.nit:1944 */
8298 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8299 /* ./parser//parser.nit:1945 */
8300 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8301 /* ./parser//parser.nit:1946 */
8302 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8303 /* ./parser//parser.nit:1947 */
8304 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8305 /* ./parser//parser.nit:1948 */
8306 fra.me.REG[8] = NEW_Array_array___Array___init();
8307 /* ./parser//parser.nit:1949 */
8308 fra.me.REG[9] = NEW_Array_array___Array___init();
8309 /* ./parser//parser.nit:1951 */
8310 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AModuledecl, ID_AModuledecl)) /*cast nullable AModuledecl*/;
8311 if (UNTAG_Bool(REGB0)) {
8312 } else {
8313 nit_abort("Assert failed", NULL, LOCATE_parser, 1951);
8314 }
8315 /* ./parser//parser.nit:1953 */
8316 REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8317 if (UNTAG_Bool(REGB0)) {
8318 } else {
8319 nit_abort("Assert failed", NULL, LOCATE_parser, 1953);
8320 }
8321 /* ./parser//parser.nit:1954 */
8322 fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[6]);
8323 fra.me.REG[8] = fra.me.REG[6];
8324 /* ./parser//parser.nit:1956 */
8325 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8326 if (UNTAG_Bool(REGB0)) {
8327 } else {
8328 nit_abort("Assert failed", NULL, LOCATE_parser, 1956);
8329 }
8330 /* ./parser//parser.nit:1957 */
8331 fra.me.REG[6] = NEW_Array_array___Array___init();
8332 /* ./parser//parser.nit:1959 */
8333 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
8334 if (UNTAG_Bool(REGB0)) {
8335 } else {
8336 nit_abort("Assert failed", NULL, LOCATE_parser, 1959);
8337 }
8338 /* ./parser//parser.nit:1960 */
8339 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
8340 fra.me.REG[6] = fra.me.REG[4];
8341 /* ./parser//parser.nit:1961 */
8342 fra.me.REG[6] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
8343 /* ./parser//parser.nit:1965 */
8344 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
8345 if (UNTAG_Bool(REGB0)) {
8346 } else {
8347 nit_abort("Assert failed", NULL, LOCATE_parser, 1965);
8348 }
8349 /* ./parser//parser.nit:1966 */
8350 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[5]);
8351 fra.me.REG[9] = fra.me.REG[5];
8352 /* ./parser//parser.nit:1967 */
8353 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8354 if (UNTAG_Bool(REGB0)) {
8355 } else {
8356 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8357 if (UNTAG_Bool(REGB1)) {
8358 REGB1 = TAG_Bool(false);
8359 REGB0 = REGB1;
8360 } else {
8361 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8362 REGB0 = REGB1;
8363 }
8364 }
8365 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8366 if (UNTAG_Bool(REGB0)) {
8367 /* ./parser//parser.nit:1968 */
8368 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[6]);
8369 }
8370 /* ./parser//parser.nit:1970 */
8371 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8372 if (UNTAG_Bool(REGB0)) {
8373 } else {
8374 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8375 if (UNTAG_Bool(REGB1)) {
8376 REGB1 = TAG_Bool(false);
8377 REGB0 = REGB1;
8378 } else {
8379 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8380 REGB0 = REGB1;
8381 }
8382 }
8383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8384 if (UNTAG_Bool(REGB0)) {
8385 /* ./parser//parser.nit:1971 */
8386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[3]);
8387 }
8388 /* ./parser//parser.nit:1973 */
8389 fra.me.REG[9] = NEW_AModule_parser_prod___AModule___init_amodule(fra.me.REG[7], fra.me.REG[8], fra.me.REG[9]);
8390 /* ./parser//parser.nit:1978 */
8391 fra.me.REG[2] = fra.me.REG[9];
8392 /* ./parser//parser.nit:1979 */
8393 REGB0 = TAG_Bool(ATTR_parser___ReduceAction31____goto(fra.me.REG[0])!=NIT_NULL);
8394 if (UNTAG_Bool(REGB0)) {
8395 } else {
8396 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1979);
8397 }
8398 REGB0 = ATTR_parser___ReduceAction31____goto(fra.me.REG[0]);
8399 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8400 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8401 stack_frame_head = fra.me.prev;
8402 return;
8403 }
8404 void parser___ReduceAction31___init(val_t p0, val_t p1, int* init_table){
8405 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction31].i;
8406 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8407 val_t REGB0;
8408 val_t tmp;
8409 if (init_table[itpos35]) return;
8410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8411 fra.me.file = LOCATE_parser;
8412 fra.me.line = 1982;
8413 fra.me.meth = LOCATE_parser___ReduceAction31___init;
8414 fra.me.has_broke = 0;
8415 fra.me.REG_size = 2;
8416 fra.me.REG[0] = NIT_NULL;
8417 fra.me.REG[1] = NIT_NULL;
8418 fra.me.REG[0] = p0;
8419 REGB0 = p1;
8420 /* ./parser//parser.nit:1982 */
8421 fra.me.REG[1] = fra.me.REG[0];
8422 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8423 ATTR_parser___ReduceAction31____goto(fra.me.REG[1]) = REGB0;
8424 stack_frame_head = fra.me.prev;
8425 init_table[itpos35] = 1;
8426 return;
8427 }
8428 void parser___ReduceAction32___action(val_t p0, val_t p1){
8429 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
8430 val_t REGB0;
8431 val_t tmp;
8432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8433 fra.me.file = LOCATE_parser;
8434 fra.me.line = 1986;
8435 fra.me.meth = LOCATE_parser___ReduceAction32___action;
8436 fra.me.has_broke = 0;
8437 fra.me.REG_size = 6;
8438 fra.me.REG[0] = NIT_NULL;
8439 fra.me.REG[1] = NIT_NULL;
8440 fra.me.REG[2] = NIT_NULL;
8441 fra.me.REG[3] = NIT_NULL;
8442 fra.me.REG[4] = NIT_NULL;
8443 fra.me.REG[5] = NIT_NULL;
8444 fra.me.REG[0] = p0;
8445 fra.me.REG[1] = p1;
8446 /* ./parser//parser.nit:1988 */
8447 fra.me.REG[2] = NIT_NULL;
8448 /* ./parser//parser.nit:1989 */
8449 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8450 /* ./parser//parser.nit:1990 */
8451 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8452 /* ./parser//parser.nit:1991 */
8453 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8454 /* ./parser//parser.nit:1992 */
8455 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8456 /* ./parser//parser.nit:1993 */
8457 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8458 /* ./parser//parser.nit:1995 */
8459 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
8460 if (UNTAG_Bool(REGB0)) {
8461 } else {
8462 nit_abort("Assert failed", NULL, LOCATE_parser, 1995);
8463 }
8464 /* ./parser//parser.nit:1997 */
8465 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwmodule, ID_TKwmodule)) /*cast nullable TKwmodule*/;
8466 if (UNTAG_Bool(REGB0)) {
8467 } else {
8468 nit_abort("Assert failed", NULL, LOCATE_parser, 1997);
8469 }
8470 /* ./parser//parser.nit:1999 */
8471 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
8472 if (UNTAG_Bool(REGB0)) {
8473 } else {
8474 nit_abort("Assert failed", NULL, LOCATE_parser, 1999);
8475 }
8476 /* ./parser//parser.nit:2000 */
8477 fra.me.REG[3] = NEW_AModuledecl_parser_prod___AModuledecl___init_amoduledecl(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
8478 /* ./parser//parser.nit:2005 */
8479 fra.me.REG[2] = fra.me.REG[3];
8480 /* ./parser//parser.nit:2006 */
8481 REGB0 = TAG_Bool(ATTR_parser___ReduceAction32____goto(fra.me.REG[0])!=NIT_NULL);
8482 if (UNTAG_Bool(REGB0)) {
8483 } else {
8484 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2006);
8485 }
8486 REGB0 = ATTR_parser___ReduceAction32____goto(fra.me.REG[0]);
8487 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8488 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8489 stack_frame_head = fra.me.prev;
8490 return;
8491 }
8492 void parser___ReduceAction32___init(val_t p0, val_t p1, int* init_table){
8493 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction32].i;
8494 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8495 val_t REGB0;
8496 val_t tmp;
8497 if (init_table[itpos36]) return;
8498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8499 fra.me.file = LOCATE_parser;
8500 fra.me.line = 2009;
8501 fra.me.meth = LOCATE_parser___ReduceAction32___init;
8502 fra.me.has_broke = 0;
8503 fra.me.REG_size = 2;
8504 fra.me.REG[0] = NIT_NULL;
8505 fra.me.REG[1] = NIT_NULL;
8506 fra.me.REG[0] = p0;
8507 REGB0 = p1;
8508 /* ./parser//parser.nit:2009 */
8509 fra.me.REG[1] = fra.me.REG[0];
8510 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8511 ATTR_parser___ReduceAction32____goto(fra.me.REG[1]) = REGB0;
8512 stack_frame_head = fra.me.prev;
8513 init_table[itpos36] = 1;
8514 return;
8515 }
8516 void parser___ReduceAction33___action(val_t p0, val_t p1){
8517 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8518 val_t REGB0;
8519 val_t tmp;
8520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8521 fra.me.file = LOCATE_parser;
8522 fra.me.line = 2013;
8523 fra.me.meth = LOCATE_parser___ReduceAction33___action;
8524 fra.me.has_broke = 0;
8525 fra.me.REG_size = 7;
8526 fra.me.REG[0] = NIT_NULL;
8527 fra.me.REG[1] = NIT_NULL;
8528 fra.me.REG[2] = NIT_NULL;
8529 fra.me.REG[3] = NIT_NULL;
8530 fra.me.REG[4] = NIT_NULL;
8531 fra.me.REG[5] = NIT_NULL;
8532 fra.me.REG[6] = NIT_NULL;
8533 fra.me.REG[0] = p0;
8534 fra.me.REG[1] = p1;
8535 /* ./parser//parser.nit:2015 */
8536 fra.me.REG[2] = NIT_NULL;
8537 /* ./parser//parser.nit:2016 */
8538 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8539 /* ./parser//parser.nit:2017 */
8540 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8541 /* ./parser//parser.nit:2018 */
8542 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8543 /* ./parser//parser.nit:2019 */
8544 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8545 /* ./parser//parser.nit:2020 */
8546 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8547 /* ./parser//parser.nit:2021 */
8548 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8549 /* ./parser//parser.nit:2023 */
8550 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
8551 if (UNTAG_Bool(REGB0)) {
8552 } else {
8553 nit_abort("Assert failed", NULL, LOCATE_parser, 2023);
8554 }
8555 /* ./parser//parser.nit:2025 */
8556 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwimport, ID_TKwimport)) /*cast nullable TKwimport*/;
8557 if (UNTAG_Bool(REGB0)) {
8558 } else {
8559 nit_abort("Assert failed", NULL, LOCATE_parser, 2025);
8560 }
8561 /* ./parser//parser.nit:2027 */
8562 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
8563 if (UNTAG_Bool(REGB0)) {
8564 } else {
8565 nit_abort("Assert failed", NULL, LOCATE_parser, 2027);
8566 }
8567 /* ./parser//parser.nit:2028 */
8568 fra.me.REG[3] = NEW_AStdImport_parser_prod___AStdImport___init_astdimport(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
8569 /* ./parser//parser.nit:2033 */
8570 fra.me.REG[2] = fra.me.REG[3];
8571 /* ./parser//parser.nit:2034 */
8572 REGB0 = TAG_Bool(ATTR_parser___ReduceAction33____goto(fra.me.REG[0])!=NIT_NULL);
8573 if (UNTAG_Bool(REGB0)) {
8574 } else {
8575 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2034);
8576 }
8577 REGB0 = ATTR_parser___ReduceAction33____goto(fra.me.REG[0]);
8578 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8579 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8580 stack_frame_head = fra.me.prev;
8581 return;
8582 }
8583 void parser___ReduceAction33___init(val_t p0, val_t p1, int* init_table){
8584 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction33].i;
8585 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8586 val_t REGB0;
8587 val_t tmp;
8588 if (init_table[itpos37]) return;
8589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8590 fra.me.file = LOCATE_parser;
8591 fra.me.line = 2037;
8592 fra.me.meth = LOCATE_parser___ReduceAction33___init;
8593 fra.me.has_broke = 0;
8594 fra.me.REG_size = 2;
8595 fra.me.REG[0] = NIT_NULL;
8596 fra.me.REG[1] = NIT_NULL;
8597 fra.me.REG[0] = p0;
8598 REGB0 = p1;
8599 /* ./parser//parser.nit:2037 */
8600 fra.me.REG[1] = fra.me.REG[0];
8601 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8602 ATTR_parser___ReduceAction33____goto(fra.me.REG[1]) = REGB0;
8603 stack_frame_head = fra.me.prev;
8604 init_table[itpos37] = 1;
8605 return;
8606 }
8607 void parser___ReduceAction34___action(val_t p0, val_t p1){
8608 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8609 val_t REGB0;
8610 val_t tmp;
8611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8612 fra.me.file = LOCATE_parser;
8613 fra.me.line = 2041;
8614 fra.me.meth = LOCATE_parser___ReduceAction34___action;
8615 fra.me.has_broke = 0;
8616 fra.me.REG_size = 7;
8617 fra.me.REG[0] = NIT_NULL;
8618 fra.me.REG[1] = NIT_NULL;
8619 fra.me.REG[2] = NIT_NULL;
8620 fra.me.REG[3] = NIT_NULL;
8621 fra.me.REG[4] = NIT_NULL;
8622 fra.me.REG[5] = NIT_NULL;
8623 fra.me.REG[6] = NIT_NULL;
8624 fra.me.REG[0] = p0;
8625 fra.me.REG[1] = p1;
8626 /* ./parser//parser.nit:2043 */
8627 fra.me.REG[2] = NIT_NULL;
8628 /* ./parser//parser.nit:2044 */
8629 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8630 /* ./parser//parser.nit:2045 */
8631 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8632 /* ./parser//parser.nit:2046 */
8633 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8634 /* ./parser//parser.nit:2047 */
8635 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8636 /* ./parser//parser.nit:2048 */
8637 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8638 /* ./parser//parser.nit:2049 */
8639 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8640 /* ./parser//parser.nit:2051 */
8641 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
8642 if (UNTAG_Bool(REGB0)) {
8643 } else {
8644 nit_abort("Assert failed", NULL, LOCATE_parser, 2051);
8645 }
8646 /* ./parser//parser.nit:2053 */
8647 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwimport, ID_TKwimport)) /*cast nullable TKwimport*/;
8648 if (UNTAG_Bool(REGB0)) {
8649 } else {
8650 nit_abort("Assert failed", NULL, LOCATE_parser, 2053);
8651 }
8652 /* ./parser//parser.nit:2055 */
8653 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwend, ID_TKwend)) /*cast nullable TKwend*/;
8654 if (UNTAG_Bool(REGB0)) {
8655 } else {
8656 nit_abort("Assert failed", NULL, LOCATE_parser, 2055);
8657 }
8658 /* ./parser//parser.nit:2056 */
8659 fra.me.REG[3] = NEW_ANoImport_parser_prod___ANoImport___init_anoimport(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
8660 /* ./parser//parser.nit:2061 */
8661 fra.me.REG[2] = fra.me.REG[3];
8662 /* ./parser//parser.nit:2062 */
8663 REGB0 = TAG_Bool(ATTR_parser___ReduceAction34____goto(fra.me.REG[0])!=NIT_NULL);
8664 if (UNTAG_Bool(REGB0)) {
8665 } else {
8666 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2062);
8667 }
8668 REGB0 = ATTR_parser___ReduceAction34____goto(fra.me.REG[0]);
8669 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8670 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8671 stack_frame_head = fra.me.prev;
8672 return;
8673 }
8674 void parser___ReduceAction34___init(val_t p0, val_t p1, int* init_table){
8675 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction34].i;
8676 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8677 val_t REGB0;
8678 val_t tmp;
8679 if (init_table[itpos38]) return;
8680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8681 fra.me.file = LOCATE_parser;
8682 fra.me.line = 2065;
8683 fra.me.meth = LOCATE_parser___ReduceAction34___init;
8684 fra.me.has_broke = 0;
8685 fra.me.REG_size = 2;
8686 fra.me.REG[0] = NIT_NULL;
8687 fra.me.REG[1] = NIT_NULL;
8688 fra.me.REG[0] = p0;
8689 REGB0 = p1;
8690 /* ./parser//parser.nit:2065 */
8691 fra.me.REG[1] = fra.me.REG[0];
8692 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8693 ATTR_parser___ReduceAction34____goto(fra.me.REG[1]) = REGB0;
8694 stack_frame_head = fra.me.prev;
8695 init_table[itpos38] = 1;
8696 return;
8697 }
8698 void parser___ReduceAction35___action(val_t p0, val_t p1){
8699 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8700 val_t REGB0;
8701 val_t REGB1;
8702 val_t tmp;
8703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8704 fra.me.file = LOCATE_parser;
8705 fra.me.line = 2069;
8706 fra.me.meth = LOCATE_parser___ReduceAction35___action;
8707 fra.me.has_broke = 0;
8708 fra.me.REG_size = 5;
8709 fra.me.REG[0] = NIT_NULL;
8710 fra.me.REG[1] = NIT_NULL;
8711 fra.me.REG[2] = NIT_NULL;
8712 fra.me.REG[3] = NIT_NULL;
8713 fra.me.REG[4] = NIT_NULL;
8714 fra.me.REG[0] = p0;
8715 fra.me.REG[1] = p1;
8716 /* ./parser//parser.nit:2071 */
8717 fra.me.REG[2] = NIT_NULL;
8718 /* ./parser//parser.nit:2072 */
8719 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8720 /* ./parser//parser.nit:2073 */
8721 fra.me.REG[4] = NEW_Array_array___Array___init();
8722 /* ./parser//parser.nit:2075 */
8723 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_APropdef, ID_APropdef)) /*cast nullable APropdef*/;
8724 if (UNTAG_Bool(REGB0)) {
8725 } else {
8726 nit_abort("Assert failed", NULL, LOCATE_parser, 2075);
8727 }
8728 /* ./parser//parser.nit:2076 */
8729 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8730 if (UNTAG_Bool(REGB0)) {
8731 } else {
8732 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8733 if (UNTAG_Bool(REGB1)) {
8734 REGB1 = TAG_Bool(false);
8735 REGB0 = REGB1;
8736 } else {
8737 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8738 REGB0 = REGB1;
8739 }
8740 }
8741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8742 if (UNTAG_Bool(REGB0)) {
8743 /* ./parser//parser.nit:2077 */
8744 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8745 }
8746 /* ./parser//parser.nit:2079 */
8747 fra.me.REG[4] = NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef(fra.me.REG[4]);
8748 /* ./parser//parser.nit:2082 */
8749 fra.me.REG[2] = fra.me.REG[4];
8750 /* ./parser//parser.nit:2083 */
8751 REGB0 = TAG_Bool(ATTR_parser___ReduceAction35____goto(fra.me.REG[0])!=NIT_NULL);
8752 if (UNTAG_Bool(REGB0)) {
8753 } else {
8754 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2083);
8755 }
8756 REGB0 = ATTR_parser___ReduceAction35____goto(fra.me.REG[0]);
8757 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8758 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8759 stack_frame_head = fra.me.prev;
8760 return;
8761 }
8762 void parser___ReduceAction35___init(val_t p0, val_t p1, int* init_table){
8763 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction35].i;
8764 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8765 val_t REGB0;
8766 val_t tmp;
8767 if (init_table[itpos39]) return;
8768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8769 fra.me.file = LOCATE_parser;
8770 fra.me.line = 2086;
8771 fra.me.meth = LOCATE_parser___ReduceAction35___init;
8772 fra.me.has_broke = 0;
8773 fra.me.REG_size = 2;
8774 fra.me.REG[0] = NIT_NULL;
8775 fra.me.REG[1] = NIT_NULL;
8776 fra.me.REG[0] = p0;
8777 REGB0 = p1;
8778 /* ./parser//parser.nit:2086 */
8779 fra.me.REG[1] = fra.me.REG[0];
8780 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8781 ATTR_parser___ReduceAction35____goto(fra.me.REG[1]) = REGB0;
8782 stack_frame_head = fra.me.prev;
8783 init_table[itpos39] = 1;
8784 return;
8785 }
8786 void parser___ReduceAction36___action(val_t p0, val_t p1){
8787 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8788 val_t REGB0;
8789 val_t tmp;
8790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8791 fra.me.file = LOCATE_parser;
8792 fra.me.line = 2090;
8793 fra.me.meth = LOCATE_parser___ReduceAction36___action;
8794 fra.me.has_broke = 0;
8795 fra.me.REG_size = 4;
8796 fra.me.REG[0] = NIT_NULL;
8797 fra.me.REG[1] = NIT_NULL;
8798 fra.me.REG[2] = NIT_NULL;
8799 fra.me.REG[3] = NIT_NULL;
8800 fra.me.REG[0] = p0;
8801 fra.me.REG[1] = p1;
8802 /* ./parser//parser.nit:2092 */
8803 fra.me.REG[2] = NIT_NULL;
8804 /* ./parser//parser.nit:2093 */
8805 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8806 /* ./parser//parser.nit:2094 */
8807 fra.me.REG[2] = NIT_NULL;
8808 /* ./parser//parser.nit:2095 */
8809 REGB0 = TAG_Bool(ATTR_parser___ReduceAction36____goto(fra.me.REG[0])!=NIT_NULL);
8810 if (UNTAG_Bool(REGB0)) {
8811 } else {
8812 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2095);
8813 }
8814 REGB0 = ATTR_parser___ReduceAction36____goto(fra.me.REG[0]);
8815 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8816 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8817 stack_frame_head = fra.me.prev;
8818 return;
8819 }
8820 void parser___ReduceAction36___init(val_t p0, val_t p1, int* init_table){
8821 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction36].i;
8822 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8823 val_t REGB0;
8824 val_t tmp;
8825 if (init_table[itpos40]) return;
8826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8827 fra.me.file = LOCATE_parser;
8828 fra.me.line = 2098;
8829 fra.me.meth = LOCATE_parser___ReduceAction36___init;
8830 fra.me.has_broke = 0;
8831 fra.me.REG_size = 2;
8832 fra.me.REG[0] = NIT_NULL;
8833 fra.me.REG[1] = NIT_NULL;
8834 fra.me.REG[0] = p0;
8835 REGB0 = p1;
8836 /* ./parser//parser.nit:2098 */
8837 fra.me.REG[1] = fra.me.REG[0];
8838 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8839 ATTR_parser___ReduceAction36____goto(fra.me.REG[1]) = REGB0;
8840 stack_frame_head = fra.me.prev;
8841 init_table[itpos40] = 1;
8842 return;
8843 }
8844 void parser___ReduceAction37___action(val_t p0, val_t p1){
8845 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8846 val_t REGB0;
8847 val_t tmp;
8848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8849 fra.me.file = LOCATE_parser;
8850 fra.me.line = 2102;
8851 fra.me.meth = LOCATE_parser___ReduceAction37___action;
8852 fra.me.has_broke = 0;
8853 fra.me.REG_size = 5;
8854 fra.me.REG[0] = NIT_NULL;
8855 fra.me.REG[1] = NIT_NULL;
8856 fra.me.REG[2] = NIT_NULL;
8857 fra.me.REG[3] = NIT_NULL;
8858 fra.me.REG[4] = NIT_NULL;
8859 fra.me.REG[0] = p0;
8860 fra.me.REG[1] = p1;
8861 /* ./parser//parser.nit:2104 */
8862 fra.me.REG[2] = NIT_NULL;
8863 /* ./parser//parser.nit:2105 */
8864 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8865 /* ./parser//parser.nit:2106 */
8866 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8867 /* ./parser//parser.nit:2108 */
8868 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
8869 if (UNTAG_Bool(REGB0)) {
8870 } else {
8871 nit_abort("Assert failed", NULL, LOCATE_parser, 2108);
8872 }
8873 /* ./parser//parser.nit:2109 */
8874 fra.me.REG[3] = NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef(NIT_NULL, fra.me.REG[3]);
8875 /* ./parser//parser.nit:2113 */
8876 fra.me.REG[2] = fra.me.REG[3];
8877 /* ./parser//parser.nit:2114 */
8878 REGB0 = TAG_Bool(ATTR_parser___ReduceAction37____goto(fra.me.REG[0])!=NIT_NULL);
8879 if (UNTAG_Bool(REGB0)) {
8880 } else {
8881 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2114);
8882 }
8883 REGB0 = ATTR_parser___ReduceAction37____goto(fra.me.REG[0]);
8884 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8885 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8886 stack_frame_head = fra.me.prev;
8887 return;
8888 }
8889 void parser___ReduceAction37___init(val_t p0, val_t p1, int* init_table){
8890 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction37].i;
8891 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8892 val_t REGB0;
8893 val_t tmp;
8894 if (init_table[itpos41]) return;
8895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8896 fra.me.file = LOCATE_parser;
8897 fra.me.line = 2117;
8898 fra.me.meth = LOCATE_parser___ReduceAction37___init;
8899 fra.me.has_broke = 0;
8900 fra.me.REG_size = 2;
8901 fra.me.REG[0] = NIT_NULL;
8902 fra.me.REG[1] = NIT_NULL;
8903 fra.me.REG[0] = p0;
8904 REGB0 = p1;
8905 /* ./parser//parser.nit:2117 */
8906 fra.me.REG[1] = fra.me.REG[0];
8907 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
8908 ATTR_parser___ReduceAction37____goto(fra.me.REG[1]) = REGB0;
8909 stack_frame_head = fra.me.prev;
8910 init_table[itpos41] = 1;
8911 return;
8912 }
8913 void parser___ReduceAction39___action(val_t p0, val_t p1){
8914 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
8915 val_t REGB0;
8916 val_t tmp;
8917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8918 fra.me.file = LOCATE_parser;
8919 fra.me.line = 2121;
8920 fra.me.meth = LOCATE_parser___ReduceAction39___action;
8921 fra.me.has_broke = 0;
8922 fra.me.REG_size = 10;
8923 fra.me.REG[0] = NIT_NULL;
8924 fra.me.REG[1] = NIT_NULL;
8925 fra.me.REG[2] = NIT_NULL;
8926 fra.me.REG[3] = NIT_NULL;
8927 fra.me.REG[4] = NIT_NULL;
8928 fra.me.REG[5] = NIT_NULL;
8929 fra.me.REG[6] = NIT_NULL;
8930 fra.me.REG[7] = NIT_NULL;
8931 fra.me.REG[8] = NIT_NULL;
8932 fra.me.REG[9] = NIT_NULL;
8933 fra.me.REG[0] = p0;
8934 fra.me.REG[1] = p1;
8935 /* ./parser//parser.nit:2123 */
8936 fra.me.REG[2] = NIT_NULL;
8937 /* ./parser//parser.nit:2124 */
8938 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8939 /* ./parser//parser.nit:2125 */
8940 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8941 /* ./parser//parser.nit:2126 */
8942 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8943 /* ./parser//parser.nit:2127 */
8944 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8945 /* ./parser//parser.nit:2128 */
8946 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8947 /* ./parser//parser.nit:2129 */
8948 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8949 /* ./parser//parser.nit:2130 */
8950 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
8951 /* ./parser//parser.nit:2131 */
8952 fra.me.REG[7] = NEW_Array_array___Array___init();
8953 /* ./parser//parser.nit:2132 */
8954 fra.me.REG[8] = NEW_Array_array___Array___init();
8955 /* ./parser//parser.nit:2133 */
8956 fra.me.REG[9] = NEW_Array_array___Array___init();
8957 /* ./parser//parser.nit:2135 */
8958 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
8959 if (UNTAG_Bool(REGB0)) {
8960 } else {
8961 nit_abort("Assert failed", NULL, LOCATE_parser, 2135);
8962 }
8963 /* ./parser//parser.nit:2137 */
8964 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
8965 if (UNTAG_Bool(REGB0)) {
8966 } else {
8967 nit_abort("Assert failed", NULL, LOCATE_parser, 2137);
8968 }
8969 /* ./parser//parser.nit:2139 */
8970 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
8971 if (UNTAG_Bool(REGB0)) {
8972 } else {
8973 nit_abort("Assert failed", NULL, LOCATE_parser, 2139);
8974 }
8975 /* ./parser//parser.nit:2141 */
8976 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
8977 if (UNTAG_Bool(REGB0)) {
8978 } else {
8979 nit_abort("Assert failed", NULL, LOCATE_parser, 2141);
8980 }
8981 /* ./parser//parser.nit:2142 */
8982 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]);
8983 /* ./parser//parser.nit:2152 */
8984 fra.me.REG[2] = fra.me.REG[9];
8985 /* ./parser//parser.nit:2153 */
8986 REGB0 = TAG_Bool(ATTR_parser___ReduceAction39____goto(fra.me.REG[0])!=NIT_NULL);
8987 if (UNTAG_Bool(REGB0)) {
8988 } else {
8989 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2153);
8990 }
8991 REGB0 = ATTR_parser___ReduceAction39____goto(fra.me.REG[0]);
8992 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
8993 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
8994 stack_frame_head = fra.me.prev;
8995 return;
8996 }
8997 void parser___ReduceAction39___init(val_t p0, val_t p1, int* init_table){
8998 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction39].i;
8999 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9000 val_t REGB0;
9001 val_t tmp;
9002 if (init_table[itpos42]) return;
9003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9004 fra.me.file = LOCATE_parser;
9005 fra.me.line = 2156;
9006 fra.me.meth = LOCATE_parser___ReduceAction39___init;
9007 fra.me.has_broke = 0;
9008 fra.me.REG_size = 2;
9009 fra.me.REG[0] = NIT_NULL;
9010 fra.me.REG[1] = NIT_NULL;
9011 fra.me.REG[0] = p0;
9012 REGB0 = p1;
9013 /* ./parser//parser.nit:2156 */
9014 fra.me.REG[1] = fra.me.REG[0];
9015 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9016 ATTR_parser___ReduceAction39____goto(fra.me.REG[1]) = REGB0;
9017 stack_frame_head = fra.me.prev;
9018 init_table[itpos42] = 1;
9019 return;
9020 }
9021 void parser___ReduceAction40___action(val_t p0, val_t p1){
9022 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9023 val_t REGB0;
9024 val_t tmp;
9025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9026 fra.me.file = LOCATE_parser;
9027 fra.me.line = 2160;
9028 fra.me.meth = LOCATE_parser___ReduceAction40___action;
9029 fra.me.has_broke = 0;
9030 fra.me.REG_size = 11;
9031 fra.me.REG[0] = NIT_NULL;
9032 fra.me.REG[1] = NIT_NULL;
9033 fra.me.REG[2] = NIT_NULL;
9034 fra.me.REG[3] = NIT_NULL;
9035 fra.me.REG[4] = NIT_NULL;
9036 fra.me.REG[5] = NIT_NULL;
9037 fra.me.REG[6] = NIT_NULL;
9038 fra.me.REG[7] = NIT_NULL;
9039 fra.me.REG[8] = NIT_NULL;
9040 fra.me.REG[9] = NIT_NULL;
9041 fra.me.REG[10] = NIT_NULL;
9042 fra.me.REG[0] = p0;
9043 fra.me.REG[1] = p1;
9044 /* ./parser//parser.nit:2162 */
9045 fra.me.REG[2] = NIT_NULL;
9046 /* ./parser//parser.nit:2163 */
9047 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9048 /* ./parser//parser.nit:2164 */
9049 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9050 /* ./parser//parser.nit:2165 */
9051 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9052 /* ./parser//parser.nit:2166 */
9053 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9054 /* ./parser//parser.nit:2167 */
9055 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9056 /* ./parser//parser.nit:2168 */
9057 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9058 /* ./parser//parser.nit:2169 */
9059 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9060 /* ./parser//parser.nit:2170 */
9061 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9062 /* ./parser//parser.nit:2171 */
9063 fra.me.REG[8] = NEW_Array_array___Array___init();
9064 /* ./parser//parser.nit:2172 */
9065 fra.me.REG[9] = NEW_Array_array___Array___init();
9066 /* ./parser//parser.nit:2173 */
9067 fra.me.REG[10] = NEW_Array_array___Array___init();
9068 /* ./parser//parser.nit:2175 */
9069 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9070 if (UNTAG_Bool(REGB0)) {
9071 } else {
9072 nit_abort("Assert failed", NULL, LOCATE_parser, 2175);
9073 }
9074 /* ./parser//parser.nit:2177 */
9075 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9076 if (UNTAG_Bool(REGB0)) {
9077 } else {
9078 nit_abort("Assert failed", NULL, LOCATE_parser, 2177);
9079 }
9080 /* ./parser//parser.nit:2179 */
9081 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9082 if (UNTAG_Bool(REGB0)) {
9083 } else {
9084 nit_abort("Assert failed", NULL, LOCATE_parser, 2179);
9085 }
9086 /* ./parser//parser.nit:2181 */
9087 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9088 if (UNTAG_Bool(REGB0)) {
9089 } else {
9090 nit_abort("Assert failed", NULL, LOCATE_parser, 2181);
9091 }
9092 /* ./parser//parser.nit:2183 */
9093 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9094 if (UNTAG_Bool(REGB0)) {
9095 } else {
9096 nit_abort("Assert failed", NULL, LOCATE_parser, 2183);
9097 }
9098 /* ./parser//parser.nit:2184 */
9099 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]);
9100 /* ./parser//parser.nit:2194 */
9101 fra.me.REG[2] = fra.me.REG[10];
9102 /* ./parser//parser.nit:2195 */
9103 REGB0 = TAG_Bool(ATTR_parser___ReduceAction40____goto(fra.me.REG[0])!=NIT_NULL);
9104 if (UNTAG_Bool(REGB0)) {
9105 } else {
9106 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2195);
9107 }
9108 REGB0 = ATTR_parser___ReduceAction40____goto(fra.me.REG[0]);
9109 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9110 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9111 stack_frame_head = fra.me.prev;
9112 return;
9113 }
9114 void parser___ReduceAction40___init(val_t p0, val_t p1, int* init_table){
9115 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction40].i;
9116 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9117 val_t REGB0;
9118 val_t tmp;
9119 if (init_table[itpos43]) return;
9120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9121 fra.me.file = LOCATE_parser;
9122 fra.me.line = 2198;
9123 fra.me.meth = LOCATE_parser___ReduceAction40___init;
9124 fra.me.has_broke = 0;
9125 fra.me.REG_size = 2;
9126 fra.me.REG[0] = NIT_NULL;
9127 fra.me.REG[1] = NIT_NULL;
9128 fra.me.REG[0] = p0;
9129 REGB0 = p1;
9130 /* ./parser//parser.nit:2198 */
9131 fra.me.REG[1] = fra.me.REG[0];
9132 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9133 ATTR_parser___ReduceAction40____goto(fra.me.REG[1]) = REGB0;
9134 stack_frame_head = fra.me.prev;
9135 init_table[itpos43] = 1;
9136 return;
9137 }
9138 void parser___ReduceAction41___action(val_t p0, val_t p1){
9139 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9140 val_t REGB0;
9141 val_t tmp;
9142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9143 fra.me.file = LOCATE_parser;
9144 fra.me.line = 2202;
9145 fra.me.meth = LOCATE_parser___ReduceAction41___action;
9146 fra.me.has_broke = 0;
9147 fra.me.REG_size = 11;
9148 fra.me.REG[0] = NIT_NULL;
9149 fra.me.REG[1] = NIT_NULL;
9150 fra.me.REG[2] = NIT_NULL;
9151 fra.me.REG[3] = NIT_NULL;
9152 fra.me.REG[4] = NIT_NULL;
9153 fra.me.REG[5] = NIT_NULL;
9154 fra.me.REG[6] = NIT_NULL;
9155 fra.me.REG[7] = NIT_NULL;
9156 fra.me.REG[8] = NIT_NULL;
9157 fra.me.REG[9] = NIT_NULL;
9158 fra.me.REG[10] = NIT_NULL;
9159 fra.me.REG[0] = p0;
9160 fra.me.REG[1] = p1;
9161 /* ./parser//parser.nit:2204 */
9162 fra.me.REG[2] = NIT_NULL;
9163 /* ./parser//parser.nit:2205 */
9164 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9165 /* ./parser//parser.nit:2206 */
9166 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9167 /* ./parser//parser.nit:2207 */
9168 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9169 /* ./parser//parser.nit:2208 */
9170 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9171 /* ./parser//parser.nit:2209 */
9172 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9173 /* ./parser//parser.nit:2210 */
9174 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9175 /* ./parser//parser.nit:2211 */
9176 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9177 /* ./parser//parser.nit:2212 */
9178 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9179 /* ./parser//parser.nit:2213 */
9180 fra.me.REG[8] = NEW_Array_array___Array___init();
9181 /* ./parser//parser.nit:2214 */
9182 fra.me.REG[9] = NEW_Array_array___Array___init();
9183 /* ./parser//parser.nit:2215 */
9184 fra.me.REG[10] = NEW_Array_array___Array___init();
9185 /* ./parser//parser.nit:2217 */
9186 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9187 if (UNTAG_Bool(REGB0)) {
9188 } else {
9189 nit_abort("Assert failed", NULL, LOCATE_parser, 2217);
9190 }
9191 /* ./parser//parser.nit:2219 */
9192 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9193 if (UNTAG_Bool(REGB0)) {
9194 } else {
9195 nit_abort("Assert failed", NULL, LOCATE_parser, 2219);
9196 }
9197 /* ./parser//parser.nit:2221 */
9198 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9199 if (UNTAG_Bool(REGB0)) {
9200 } else {
9201 nit_abort("Assert failed", NULL, LOCATE_parser, 2221);
9202 }
9203 /* ./parser//parser.nit:2223 */
9204 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9205 if (UNTAG_Bool(REGB0)) {
9206 } else {
9207 nit_abort("Assert failed", NULL, LOCATE_parser, 2223);
9208 }
9209 /* ./parser//parser.nit:2225 */
9210 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9211 if (UNTAG_Bool(REGB0)) {
9212 } else {
9213 nit_abort("Assert failed", NULL, LOCATE_parser, 2225);
9214 }
9215 /* ./parser//parser.nit:2226 */
9216 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
9217 fra.me.REG[8] = fra.me.REG[3];
9218 /* ./parser//parser.nit:2227 */
9219 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]);
9220 /* ./parser//parser.nit:2237 */
9221 fra.me.REG[2] = fra.me.REG[10];
9222 /* ./parser//parser.nit:2238 */
9223 REGB0 = TAG_Bool(ATTR_parser___ReduceAction41____goto(fra.me.REG[0])!=NIT_NULL);
9224 if (UNTAG_Bool(REGB0)) {
9225 } else {
9226 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2238);
9227 }
9228 REGB0 = ATTR_parser___ReduceAction41____goto(fra.me.REG[0]);
9229 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9230 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9231 stack_frame_head = fra.me.prev;
9232 return;
9233 }
9234 void parser___ReduceAction41___init(val_t p0, val_t p1, int* init_table){
9235 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction41].i;
9236 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9237 val_t REGB0;
9238 val_t tmp;
9239 if (init_table[itpos44]) return;
9240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9241 fra.me.file = LOCATE_parser;
9242 fra.me.line = 2241;
9243 fra.me.meth = LOCATE_parser___ReduceAction41___init;
9244 fra.me.has_broke = 0;
9245 fra.me.REG_size = 2;
9246 fra.me.REG[0] = NIT_NULL;
9247 fra.me.REG[1] = NIT_NULL;
9248 fra.me.REG[0] = p0;
9249 REGB0 = p1;
9250 /* ./parser//parser.nit:2241 */
9251 fra.me.REG[1] = fra.me.REG[0];
9252 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9253 ATTR_parser___ReduceAction41____goto(fra.me.REG[1]) = REGB0;
9254 stack_frame_head = fra.me.prev;
9255 init_table[itpos44] = 1;
9256 return;
9257 }
9258 void parser___ReduceAction42___action(val_t p0, val_t p1){
9259 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
9260 val_t REGB0;
9261 val_t tmp;
9262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9263 fra.me.file = LOCATE_parser;
9264 fra.me.line = 2245;
9265 fra.me.meth = LOCATE_parser___ReduceAction42___action;
9266 fra.me.has_broke = 0;
9267 fra.me.REG_size = 12;
9268 fra.me.REG[0] = NIT_NULL;
9269 fra.me.REG[1] = NIT_NULL;
9270 fra.me.REG[2] = NIT_NULL;
9271 fra.me.REG[3] = NIT_NULL;
9272 fra.me.REG[4] = NIT_NULL;
9273 fra.me.REG[5] = NIT_NULL;
9274 fra.me.REG[6] = NIT_NULL;
9275 fra.me.REG[7] = NIT_NULL;
9276 fra.me.REG[8] = NIT_NULL;
9277 fra.me.REG[9] = NIT_NULL;
9278 fra.me.REG[10] = NIT_NULL;
9279 fra.me.REG[11] = NIT_NULL;
9280 fra.me.REG[0] = p0;
9281 fra.me.REG[1] = p1;
9282 /* ./parser//parser.nit:2247 */
9283 fra.me.REG[2] = NIT_NULL;
9284 /* ./parser//parser.nit:2248 */
9285 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9286 /* ./parser//parser.nit:2249 */
9287 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9288 /* ./parser//parser.nit:2250 */
9289 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9290 /* ./parser//parser.nit:2251 */
9291 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9292 /* ./parser//parser.nit:2252 */
9293 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9294 /* ./parser//parser.nit:2253 */
9295 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9296 /* ./parser//parser.nit:2254 */
9297 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9298 /* ./parser//parser.nit:2255 */
9299 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9300 /* ./parser//parser.nit:2256 */
9301 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9302 /* ./parser//parser.nit:2257 */
9303 fra.me.REG[9] = NEW_Array_array___Array___init();
9304 /* ./parser//parser.nit:2258 */
9305 fra.me.REG[10] = NEW_Array_array___Array___init();
9306 /* ./parser//parser.nit:2259 */
9307 fra.me.REG[11] = NEW_Array_array___Array___init();
9308 /* ./parser//parser.nit:2261 */
9309 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9310 if (UNTAG_Bool(REGB0)) {
9311 } else {
9312 nit_abort("Assert failed", NULL, LOCATE_parser, 2261);
9313 }
9314 /* ./parser//parser.nit:2263 */
9315 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9316 if (UNTAG_Bool(REGB0)) {
9317 } else {
9318 nit_abort("Assert failed", NULL, LOCATE_parser, 2263);
9319 }
9320 /* ./parser//parser.nit:2265 */
9321 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9322 if (UNTAG_Bool(REGB0)) {
9323 } else {
9324 nit_abort("Assert failed", NULL, LOCATE_parser, 2265);
9325 }
9326 /* ./parser//parser.nit:2267 */
9327 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9328 if (UNTAG_Bool(REGB0)) {
9329 } else {
9330 nit_abort("Assert failed", NULL, LOCATE_parser, 2267);
9331 }
9332 /* ./parser//parser.nit:2269 */
9333 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9334 if (UNTAG_Bool(REGB0)) {
9335 } else {
9336 nit_abort("Assert failed", NULL, LOCATE_parser, 2269);
9337 }
9338 /* ./parser//parser.nit:2271 */
9339 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9340 if (UNTAG_Bool(REGB0)) {
9341 } else {
9342 nit_abort("Assert failed", NULL, LOCATE_parser, 2271);
9343 }
9344 /* ./parser//parser.nit:2272 */
9345 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
9346 fra.me.REG[9] = fra.me.REG[3];
9347 /* ./parser//parser.nit:2273 */
9348 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]);
9349 /* ./parser//parser.nit:2283 */
9350 fra.me.REG[2] = fra.me.REG[11];
9351 /* ./parser//parser.nit:2284 */
9352 REGB0 = TAG_Bool(ATTR_parser___ReduceAction42____goto(fra.me.REG[0])!=NIT_NULL);
9353 if (UNTAG_Bool(REGB0)) {
9354 } else {
9355 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2284);
9356 }
9357 REGB0 = ATTR_parser___ReduceAction42____goto(fra.me.REG[0]);
9358 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9359 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9360 stack_frame_head = fra.me.prev;
9361 return;
9362 }
9363 void parser___ReduceAction42___init(val_t p0, val_t p1, int* init_table){
9364 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction42].i;
9365 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9366 val_t REGB0;
9367 val_t tmp;
9368 if (init_table[itpos45]) return;
9369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9370 fra.me.file = LOCATE_parser;
9371 fra.me.line = 2287;
9372 fra.me.meth = LOCATE_parser___ReduceAction42___init;
9373 fra.me.has_broke = 0;
9374 fra.me.REG_size = 2;
9375 fra.me.REG[0] = NIT_NULL;
9376 fra.me.REG[1] = NIT_NULL;
9377 fra.me.REG[0] = p0;
9378 REGB0 = p1;
9379 /* ./parser//parser.nit:2287 */
9380 fra.me.REG[1] = fra.me.REG[0];
9381 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9382 ATTR_parser___ReduceAction42____goto(fra.me.REG[1]) = REGB0;
9383 stack_frame_head = fra.me.prev;
9384 init_table[itpos45] = 1;
9385 return;
9386 }
9387 void parser___ReduceAction43___action(val_t p0, val_t p1){
9388 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9389 val_t REGB0;
9390 val_t tmp;
9391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9392 fra.me.file = LOCATE_parser;
9393 fra.me.line = 2291;
9394 fra.me.meth = LOCATE_parser___ReduceAction43___action;
9395 fra.me.has_broke = 0;
9396 fra.me.REG_size = 11;
9397 fra.me.REG[0] = NIT_NULL;
9398 fra.me.REG[1] = NIT_NULL;
9399 fra.me.REG[2] = NIT_NULL;
9400 fra.me.REG[3] = NIT_NULL;
9401 fra.me.REG[4] = NIT_NULL;
9402 fra.me.REG[5] = NIT_NULL;
9403 fra.me.REG[6] = NIT_NULL;
9404 fra.me.REG[7] = NIT_NULL;
9405 fra.me.REG[8] = NIT_NULL;
9406 fra.me.REG[9] = NIT_NULL;
9407 fra.me.REG[10] = NIT_NULL;
9408 fra.me.REG[0] = p0;
9409 fra.me.REG[1] = p1;
9410 /* ./parser//parser.nit:2293 */
9411 fra.me.REG[2] = NIT_NULL;
9412 /* ./parser//parser.nit:2294 */
9413 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9414 /* ./parser//parser.nit:2295 */
9415 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9416 /* ./parser//parser.nit:2296 */
9417 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9418 /* ./parser//parser.nit:2297 */
9419 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9420 /* ./parser//parser.nit:2298 */
9421 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9422 /* ./parser//parser.nit:2299 */
9423 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9424 /* ./parser//parser.nit:2300 */
9425 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9426 /* ./parser//parser.nit:2301 */
9427 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9428 /* ./parser//parser.nit:2302 */
9429 fra.me.REG[8] = NEW_Array_array___Array___init();
9430 /* ./parser//parser.nit:2303 */
9431 fra.me.REG[9] = NEW_Array_array___Array___init();
9432 /* ./parser//parser.nit:2304 */
9433 fra.me.REG[10] = NEW_Array_array___Array___init();
9434 /* ./parser//parser.nit:2306 */
9435 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9436 if (UNTAG_Bool(REGB0)) {
9437 } else {
9438 nit_abort("Assert failed", NULL, LOCATE_parser, 2306);
9439 }
9440 /* ./parser//parser.nit:2308 */
9441 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9442 if (UNTAG_Bool(REGB0)) {
9443 } else {
9444 nit_abort("Assert failed", NULL, LOCATE_parser, 2308);
9445 }
9446 /* ./parser//parser.nit:2310 */
9447 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9448 if (UNTAG_Bool(REGB0)) {
9449 } else {
9450 nit_abort("Assert failed", NULL, LOCATE_parser, 2310);
9451 }
9452 /* ./parser//parser.nit:2312 */
9453 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9454 if (UNTAG_Bool(REGB0)) {
9455 } else {
9456 nit_abort("Assert failed", NULL, LOCATE_parser, 2312);
9457 }
9458 /* ./parser//parser.nit:2314 */
9459 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9460 if (UNTAG_Bool(REGB0)) {
9461 } else {
9462 nit_abort("Assert failed", NULL, LOCATE_parser, 2314);
9463 }
9464 /* ./parser//parser.nit:2315 */
9465 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
9466 fra.me.REG[9] = fra.me.REG[3];
9467 /* ./parser//parser.nit:2316 */
9468 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]);
9469 /* ./parser//parser.nit:2326 */
9470 fra.me.REG[2] = fra.me.REG[10];
9471 /* ./parser//parser.nit:2327 */
9472 REGB0 = TAG_Bool(ATTR_parser___ReduceAction43____goto(fra.me.REG[0])!=NIT_NULL);
9473 if (UNTAG_Bool(REGB0)) {
9474 } else {
9475 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2327);
9476 }
9477 REGB0 = ATTR_parser___ReduceAction43____goto(fra.me.REG[0]);
9478 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9479 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9480 stack_frame_head = fra.me.prev;
9481 return;
9482 }
9483 void parser___ReduceAction43___init(val_t p0, val_t p1, int* init_table){
9484 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction43].i;
9485 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9486 val_t REGB0;
9487 val_t tmp;
9488 if (init_table[itpos46]) return;
9489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9490 fra.me.file = LOCATE_parser;
9491 fra.me.line = 2330;
9492 fra.me.meth = LOCATE_parser___ReduceAction43___init;
9493 fra.me.has_broke = 0;
9494 fra.me.REG_size = 2;
9495 fra.me.REG[0] = NIT_NULL;
9496 fra.me.REG[1] = NIT_NULL;
9497 fra.me.REG[0] = p0;
9498 REGB0 = p1;
9499 /* ./parser//parser.nit:2330 */
9500 fra.me.REG[1] = fra.me.REG[0];
9501 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9502 ATTR_parser___ReduceAction43____goto(fra.me.REG[1]) = REGB0;
9503 stack_frame_head = fra.me.prev;
9504 init_table[itpos46] = 1;
9505 return;
9506 }
9507 void parser___ReduceAction44___action(val_t p0, val_t p1){
9508 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
9509 val_t REGB0;
9510 val_t tmp;
9511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9512 fra.me.file = LOCATE_parser;
9513 fra.me.line = 2334;
9514 fra.me.meth = LOCATE_parser___ReduceAction44___action;
9515 fra.me.has_broke = 0;
9516 fra.me.REG_size = 12;
9517 fra.me.REG[0] = NIT_NULL;
9518 fra.me.REG[1] = NIT_NULL;
9519 fra.me.REG[2] = NIT_NULL;
9520 fra.me.REG[3] = NIT_NULL;
9521 fra.me.REG[4] = NIT_NULL;
9522 fra.me.REG[5] = NIT_NULL;
9523 fra.me.REG[6] = NIT_NULL;
9524 fra.me.REG[7] = NIT_NULL;
9525 fra.me.REG[8] = NIT_NULL;
9526 fra.me.REG[9] = NIT_NULL;
9527 fra.me.REG[10] = NIT_NULL;
9528 fra.me.REG[11] = NIT_NULL;
9529 fra.me.REG[0] = p0;
9530 fra.me.REG[1] = p1;
9531 /* ./parser//parser.nit:2336 */
9532 fra.me.REG[2] = NIT_NULL;
9533 /* ./parser//parser.nit:2337 */
9534 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9535 /* ./parser//parser.nit:2338 */
9536 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9537 /* ./parser//parser.nit:2339 */
9538 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9539 /* ./parser//parser.nit:2340 */
9540 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9541 /* ./parser//parser.nit:2341 */
9542 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9543 /* ./parser//parser.nit:2342 */
9544 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9545 /* ./parser//parser.nit:2343 */
9546 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9547 /* ./parser//parser.nit:2344 */
9548 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9549 /* ./parser//parser.nit:2345 */
9550 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9551 /* ./parser//parser.nit:2346 */
9552 fra.me.REG[9] = NEW_Array_array___Array___init();
9553 /* ./parser//parser.nit:2347 */
9554 fra.me.REG[10] = NEW_Array_array___Array___init();
9555 /* ./parser//parser.nit:2348 */
9556 fra.me.REG[11] = NEW_Array_array___Array___init();
9557 /* ./parser//parser.nit:2350 */
9558 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9559 if (UNTAG_Bool(REGB0)) {
9560 } else {
9561 nit_abort("Assert failed", NULL, LOCATE_parser, 2350);
9562 }
9563 /* ./parser//parser.nit:2352 */
9564 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9565 if (UNTAG_Bool(REGB0)) {
9566 } else {
9567 nit_abort("Assert failed", NULL, LOCATE_parser, 2352);
9568 }
9569 /* ./parser//parser.nit:2354 */
9570 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9571 if (UNTAG_Bool(REGB0)) {
9572 } else {
9573 nit_abort("Assert failed", NULL, LOCATE_parser, 2354);
9574 }
9575 /* ./parser//parser.nit:2356 */
9576 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9577 if (UNTAG_Bool(REGB0)) {
9578 } else {
9579 nit_abort("Assert failed", NULL, LOCATE_parser, 2356);
9580 }
9581 /* ./parser//parser.nit:2358 */
9582 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9583 if (UNTAG_Bool(REGB0)) {
9584 } else {
9585 nit_abort("Assert failed", NULL, LOCATE_parser, 2358);
9586 }
9587 /* ./parser//parser.nit:2360 */
9588 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9589 if (UNTAG_Bool(REGB0)) {
9590 } else {
9591 nit_abort("Assert failed", NULL, LOCATE_parser, 2360);
9592 }
9593 /* ./parser//parser.nit:2361 */
9594 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
9595 fra.me.REG[10] = fra.me.REG[3];
9596 /* ./parser//parser.nit:2362 */
9597 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]);
9598 /* ./parser//parser.nit:2372 */
9599 fra.me.REG[2] = fra.me.REG[11];
9600 /* ./parser//parser.nit:2373 */
9601 REGB0 = TAG_Bool(ATTR_parser___ReduceAction44____goto(fra.me.REG[0])!=NIT_NULL);
9602 if (UNTAG_Bool(REGB0)) {
9603 } else {
9604 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2373);
9605 }
9606 REGB0 = ATTR_parser___ReduceAction44____goto(fra.me.REG[0]);
9607 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9608 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9609 stack_frame_head = fra.me.prev;
9610 return;
9611 }
9612 void parser___ReduceAction44___init(val_t p0, val_t p1, int* init_table){
9613 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction44].i;
9614 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9615 val_t REGB0;
9616 val_t tmp;
9617 if (init_table[itpos47]) return;
9618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9619 fra.me.file = LOCATE_parser;
9620 fra.me.line = 2376;
9621 fra.me.meth = LOCATE_parser___ReduceAction44___init;
9622 fra.me.has_broke = 0;
9623 fra.me.REG_size = 2;
9624 fra.me.REG[0] = NIT_NULL;
9625 fra.me.REG[1] = NIT_NULL;
9626 fra.me.REG[0] = p0;
9627 REGB0 = p1;
9628 /* ./parser//parser.nit:2376 */
9629 fra.me.REG[1] = fra.me.REG[0];
9630 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9631 ATTR_parser___ReduceAction44____goto(fra.me.REG[1]) = REGB0;
9632 stack_frame_head = fra.me.prev;
9633 init_table[itpos47] = 1;
9634 return;
9635 }
9636 void parser___ReduceAction45___action(val_t p0, val_t p1){
9637 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
9638 val_t REGB0;
9639 val_t tmp;
9640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9641 fra.me.file = LOCATE_parser;
9642 fra.me.line = 2380;
9643 fra.me.meth = LOCATE_parser___ReduceAction45___action;
9644 fra.me.has_broke = 0;
9645 fra.me.REG_size = 12;
9646 fra.me.REG[0] = NIT_NULL;
9647 fra.me.REG[1] = NIT_NULL;
9648 fra.me.REG[2] = NIT_NULL;
9649 fra.me.REG[3] = NIT_NULL;
9650 fra.me.REG[4] = NIT_NULL;
9651 fra.me.REG[5] = NIT_NULL;
9652 fra.me.REG[6] = NIT_NULL;
9653 fra.me.REG[7] = NIT_NULL;
9654 fra.me.REG[8] = NIT_NULL;
9655 fra.me.REG[9] = NIT_NULL;
9656 fra.me.REG[10] = NIT_NULL;
9657 fra.me.REG[11] = NIT_NULL;
9658 fra.me.REG[0] = p0;
9659 fra.me.REG[1] = p1;
9660 /* ./parser//parser.nit:2382 */
9661 fra.me.REG[2] = NIT_NULL;
9662 /* ./parser//parser.nit:2383 */
9663 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9664 /* ./parser//parser.nit:2384 */
9665 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9666 /* ./parser//parser.nit:2385 */
9667 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9668 /* ./parser//parser.nit:2386 */
9669 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9670 /* ./parser//parser.nit:2387 */
9671 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9672 /* ./parser//parser.nit:2388 */
9673 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9674 /* ./parser//parser.nit:2389 */
9675 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9676 /* ./parser//parser.nit:2390 */
9677 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9678 /* ./parser//parser.nit:2391 */
9679 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9680 /* ./parser//parser.nit:2392 */
9681 fra.me.REG[9] = NEW_Array_array___Array___init();
9682 /* ./parser//parser.nit:2393 */
9683 fra.me.REG[10] = NEW_Array_array___Array___init();
9684 /* ./parser//parser.nit:2394 */
9685 fra.me.REG[11] = NEW_Array_array___Array___init();
9686 /* ./parser//parser.nit:2396 */
9687 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9688 if (UNTAG_Bool(REGB0)) {
9689 } else {
9690 nit_abort("Assert failed", NULL, LOCATE_parser, 2396);
9691 }
9692 /* ./parser//parser.nit:2398 */
9693 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9694 if (UNTAG_Bool(REGB0)) {
9695 } else {
9696 nit_abort("Assert failed", NULL, LOCATE_parser, 2398);
9697 }
9698 /* ./parser//parser.nit:2400 */
9699 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9700 if (UNTAG_Bool(REGB0)) {
9701 } else {
9702 nit_abort("Assert failed", NULL, LOCATE_parser, 2400);
9703 }
9704 /* ./parser//parser.nit:2402 */
9705 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9706 if (UNTAG_Bool(REGB0)) {
9707 } else {
9708 nit_abort("Assert failed", NULL, LOCATE_parser, 2402);
9709 }
9710 /* ./parser//parser.nit:2404 */
9711 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9712 if (UNTAG_Bool(REGB0)) {
9713 } else {
9714 nit_abort("Assert failed", NULL, LOCATE_parser, 2404);
9715 }
9716 /* ./parser//parser.nit:2405 */
9717 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
9718 fra.me.REG[9] = fra.me.REG[4];
9719 /* ./parser//parser.nit:2407 */
9720 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9721 if (UNTAG_Bool(REGB0)) {
9722 } else {
9723 nit_abort("Assert failed", NULL, LOCATE_parser, 2407);
9724 }
9725 /* ./parser//parser.nit:2408 */
9726 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
9727 fra.me.REG[10] = fra.me.REG[3];
9728 /* ./parser//parser.nit:2409 */
9729 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]);
9730 /* ./parser//parser.nit:2419 */
9731 fra.me.REG[2] = fra.me.REG[11];
9732 /* ./parser//parser.nit:2420 */
9733 REGB0 = TAG_Bool(ATTR_parser___ReduceAction45____goto(fra.me.REG[0])!=NIT_NULL);
9734 if (UNTAG_Bool(REGB0)) {
9735 } else {
9736 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2420);
9737 }
9738 REGB0 = ATTR_parser___ReduceAction45____goto(fra.me.REG[0]);
9739 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9740 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9741 stack_frame_head = fra.me.prev;
9742 return;
9743 }
9744 void parser___ReduceAction45___init(val_t p0, val_t p1, int* init_table){
9745 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction45].i;
9746 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9747 val_t REGB0;
9748 val_t tmp;
9749 if (init_table[itpos48]) return;
9750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9751 fra.me.file = LOCATE_parser;
9752 fra.me.line = 2423;
9753 fra.me.meth = LOCATE_parser___ReduceAction45___init;
9754 fra.me.has_broke = 0;
9755 fra.me.REG_size = 2;
9756 fra.me.REG[0] = NIT_NULL;
9757 fra.me.REG[1] = NIT_NULL;
9758 fra.me.REG[0] = p0;
9759 REGB0 = p1;
9760 /* ./parser//parser.nit:2423 */
9761 fra.me.REG[1] = fra.me.REG[0];
9762 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9763 ATTR_parser___ReduceAction45____goto(fra.me.REG[1]) = REGB0;
9764 stack_frame_head = fra.me.prev;
9765 init_table[itpos48] = 1;
9766 return;
9767 }
9768 void parser___ReduceAction46___action(val_t p0, val_t p1){
9769 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
9770 val_t REGB0;
9771 val_t tmp;
9772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9773 fra.me.file = LOCATE_parser;
9774 fra.me.line = 2427;
9775 fra.me.meth = LOCATE_parser___ReduceAction46___action;
9776 fra.me.has_broke = 0;
9777 fra.me.REG_size = 13;
9778 fra.me.REG[0] = NIT_NULL;
9779 fra.me.REG[1] = NIT_NULL;
9780 fra.me.REG[2] = NIT_NULL;
9781 fra.me.REG[3] = NIT_NULL;
9782 fra.me.REG[4] = NIT_NULL;
9783 fra.me.REG[5] = NIT_NULL;
9784 fra.me.REG[6] = NIT_NULL;
9785 fra.me.REG[7] = NIT_NULL;
9786 fra.me.REG[8] = NIT_NULL;
9787 fra.me.REG[9] = NIT_NULL;
9788 fra.me.REG[10] = NIT_NULL;
9789 fra.me.REG[11] = NIT_NULL;
9790 fra.me.REG[12] = NIT_NULL;
9791 fra.me.REG[0] = p0;
9792 fra.me.REG[1] = p1;
9793 /* ./parser//parser.nit:2429 */
9794 fra.me.REG[2] = NIT_NULL;
9795 /* ./parser//parser.nit:2430 */
9796 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9797 /* ./parser//parser.nit:2431 */
9798 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9799 /* ./parser//parser.nit:2432 */
9800 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9801 /* ./parser//parser.nit:2433 */
9802 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9803 /* ./parser//parser.nit:2434 */
9804 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9805 /* ./parser//parser.nit:2435 */
9806 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9807 /* ./parser//parser.nit:2436 */
9808 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9809 /* ./parser//parser.nit:2437 */
9810 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9811 /* ./parser//parser.nit:2438 */
9812 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9813 /* ./parser//parser.nit:2439 */
9814 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9815 /* ./parser//parser.nit:2440 */
9816 fra.me.REG[10] = NEW_Array_array___Array___init();
9817 /* ./parser//parser.nit:2441 */
9818 fra.me.REG[11] = NEW_Array_array___Array___init();
9819 /* ./parser//parser.nit:2442 */
9820 fra.me.REG[12] = NEW_Array_array___Array___init();
9821 /* ./parser//parser.nit:2444 */
9822 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9823 if (UNTAG_Bool(REGB0)) {
9824 } else {
9825 nit_abort("Assert failed", NULL, LOCATE_parser, 2444);
9826 }
9827 /* ./parser//parser.nit:2446 */
9828 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
9829 if (UNTAG_Bool(REGB0)) {
9830 } else {
9831 nit_abort("Assert failed", NULL, LOCATE_parser, 2446);
9832 }
9833 /* ./parser//parser.nit:2448 */
9834 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9835 if (UNTAG_Bool(REGB0)) {
9836 } else {
9837 nit_abort("Assert failed", NULL, LOCATE_parser, 2448);
9838 }
9839 /* ./parser//parser.nit:2450 */
9840 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9841 if (UNTAG_Bool(REGB0)) {
9842 } else {
9843 nit_abort("Assert failed", NULL, LOCATE_parser, 2450);
9844 }
9845 /* ./parser//parser.nit:2452 */
9846 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9847 if (UNTAG_Bool(REGB0)) {
9848 } else {
9849 nit_abort("Assert failed", NULL, LOCATE_parser, 2452);
9850 }
9851 /* ./parser//parser.nit:2454 */
9852 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9853 if (UNTAG_Bool(REGB0)) {
9854 } else {
9855 nit_abort("Assert failed", NULL, LOCATE_parser, 2454);
9856 }
9857 /* ./parser//parser.nit:2455 */
9858 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
9859 fra.me.REG[10] = fra.me.REG[4];
9860 /* ./parser//parser.nit:2457 */
9861 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9862 if (UNTAG_Bool(REGB0)) {
9863 } else {
9864 nit_abort("Assert failed", NULL, LOCATE_parser, 2457);
9865 }
9866 /* ./parser//parser.nit:2458 */
9867 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
9868 fra.me.REG[11] = fra.me.REG[3];
9869 /* ./parser//parser.nit:2459 */
9870 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]);
9871 /* ./parser//parser.nit:2469 */
9872 fra.me.REG[2] = fra.me.REG[12];
9873 /* ./parser//parser.nit:2470 */
9874 REGB0 = TAG_Bool(ATTR_parser___ReduceAction46____goto(fra.me.REG[0])!=NIT_NULL);
9875 if (UNTAG_Bool(REGB0)) {
9876 } else {
9877 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2470);
9878 }
9879 REGB0 = ATTR_parser___ReduceAction46____goto(fra.me.REG[0]);
9880 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
9881 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
9882 stack_frame_head = fra.me.prev;
9883 return;
9884 }
9885 void parser___ReduceAction46___init(val_t p0, val_t p1, int* init_table){
9886 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction46].i;
9887 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9888 val_t REGB0;
9889 val_t tmp;
9890 if (init_table[itpos49]) return;
9891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9892 fra.me.file = LOCATE_parser;
9893 fra.me.line = 2473;
9894 fra.me.meth = LOCATE_parser___ReduceAction46___init;
9895 fra.me.has_broke = 0;
9896 fra.me.REG_size = 2;
9897 fra.me.REG[0] = NIT_NULL;
9898 fra.me.REG[1] = NIT_NULL;
9899 fra.me.REG[0] = p0;
9900 REGB0 = p1;
9901 /* ./parser//parser.nit:2473 */
9902 fra.me.REG[1] = fra.me.REG[0];
9903 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9904 ATTR_parser___ReduceAction46____goto(fra.me.REG[1]) = REGB0;
9905 stack_frame_head = fra.me.prev;
9906 init_table[itpos49] = 1;
9907 return;
9908 }
9909 void parser___ReduceAction47___action(val_t p0, val_t p1){
9910 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9911 val_t REGB0;
9912 val_t tmp;
9913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9914 fra.me.file = LOCATE_parser;
9915 fra.me.line = 2477;
9916 fra.me.meth = LOCATE_parser___ReduceAction47___action;
9917 fra.me.has_broke = 0;
9918 fra.me.REG_size = 11;
9919 fra.me.REG[0] = NIT_NULL;
9920 fra.me.REG[1] = NIT_NULL;
9921 fra.me.REG[2] = NIT_NULL;
9922 fra.me.REG[3] = NIT_NULL;
9923 fra.me.REG[4] = NIT_NULL;
9924 fra.me.REG[5] = NIT_NULL;
9925 fra.me.REG[6] = NIT_NULL;
9926 fra.me.REG[7] = NIT_NULL;
9927 fra.me.REG[8] = NIT_NULL;
9928 fra.me.REG[9] = NIT_NULL;
9929 fra.me.REG[10] = NIT_NULL;
9930 fra.me.REG[0] = p0;
9931 fra.me.REG[1] = p1;
9932 /* ./parser//parser.nit:2479 */
9933 fra.me.REG[2] = NIT_NULL;
9934 /* ./parser//parser.nit:2480 */
9935 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9936 /* ./parser//parser.nit:2481 */
9937 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9938 /* ./parser//parser.nit:2482 */
9939 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9940 /* ./parser//parser.nit:2483 */
9941 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9942 /* ./parser//parser.nit:2484 */
9943 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9944 /* ./parser//parser.nit:2485 */
9945 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9946 /* ./parser//parser.nit:2486 */
9947 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9948 /* ./parser//parser.nit:2487 */
9949 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
9950 /* ./parser//parser.nit:2488 */
9951 fra.me.REG[8] = NEW_Array_array___Array___init();
9952 /* ./parser//parser.nit:2489 */
9953 fra.me.REG[9] = NEW_Array_array___Array___init();
9954 /* ./parser//parser.nit:2490 */
9955 fra.me.REG[10] = NEW_Array_array___Array___init();
9956 /* ./parser//parser.nit:2492 */
9957 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
9958 if (UNTAG_Bool(REGB0)) {
9959 } else {
9960 nit_abort("Assert failed", NULL, LOCATE_parser, 2492);
9961 }
9962 /* ./parser//parser.nit:2494 */
9963 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
9964 if (UNTAG_Bool(REGB0)) {
9965 } else {
9966 nit_abort("Assert failed", NULL, LOCATE_parser, 2494);
9967 }
9968 /* ./parser//parser.nit:2496 */
9969 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
9970 if (UNTAG_Bool(REGB0)) {
9971 } else {
9972 nit_abort("Assert failed", NULL, LOCATE_parser, 2496);
9973 }
9974 /* ./parser//parser.nit:2498 */
9975 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
9976 if (UNTAG_Bool(REGB0)) {
9977 } else {
9978 nit_abort("Assert failed", NULL, LOCATE_parser, 2498);
9979 }
9980 /* ./parser//parser.nit:2500 */
9981 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
9982 if (UNTAG_Bool(REGB0)) {
9983 } else {
9984 nit_abort("Assert failed", NULL, LOCATE_parser, 2500);
9985 }
9986 /* ./parser//parser.nit:2501 */
9987 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
9988 fra.me.REG[10] = fra.me.REG[3];
9989 /* ./parser//parser.nit:2502 */
9990 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]);
9991 /* ./parser//parser.nit:2512 */
9992 fra.me.REG[2] = fra.me.REG[10];
9993 /* ./parser//parser.nit:2513 */
9994 REGB0 = TAG_Bool(ATTR_parser___ReduceAction47____goto(fra.me.REG[0])!=NIT_NULL);
9995 if (UNTAG_Bool(REGB0)) {
9996 } else {
9997 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2513);
9998 }
9999 REGB0 = ATTR_parser___ReduceAction47____goto(fra.me.REG[0]);
10000 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10001 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10002 stack_frame_head = fra.me.prev;
10003 return;
10004 }
10005 void parser___ReduceAction47___init(val_t p0, val_t p1, int* init_table){
10006 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction47].i;
10007 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10008 val_t REGB0;
10009 val_t tmp;
10010 if (init_table[itpos50]) return;
10011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10012 fra.me.file = LOCATE_parser;
10013 fra.me.line = 2516;
10014 fra.me.meth = LOCATE_parser___ReduceAction47___init;
10015 fra.me.has_broke = 0;
10016 fra.me.REG_size = 2;
10017 fra.me.REG[0] = NIT_NULL;
10018 fra.me.REG[1] = NIT_NULL;
10019 fra.me.REG[0] = p0;
10020 REGB0 = p1;
10021 /* ./parser//parser.nit:2516 */
10022 fra.me.REG[1] = fra.me.REG[0];
10023 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10024 ATTR_parser___ReduceAction47____goto(fra.me.REG[1]) = REGB0;
10025 stack_frame_head = fra.me.prev;
10026 init_table[itpos50] = 1;
10027 return;
10028 }
10029 void parser___ReduceAction48___action(val_t p0, val_t p1){
10030 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
10031 val_t REGB0;
10032 val_t tmp;
10033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10034 fra.me.file = LOCATE_parser;
10035 fra.me.line = 2520;
10036 fra.me.meth = LOCATE_parser___ReduceAction48___action;
10037 fra.me.has_broke = 0;
10038 fra.me.REG_size = 12;
10039 fra.me.REG[0] = NIT_NULL;
10040 fra.me.REG[1] = NIT_NULL;
10041 fra.me.REG[2] = NIT_NULL;
10042 fra.me.REG[3] = NIT_NULL;
10043 fra.me.REG[4] = NIT_NULL;
10044 fra.me.REG[5] = NIT_NULL;
10045 fra.me.REG[6] = NIT_NULL;
10046 fra.me.REG[7] = NIT_NULL;
10047 fra.me.REG[8] = NIT_NULL;
10048 fra.me.REG[9] = NIT_NULL;
10049 fra.me.REG[10] = NIT_NULL;
10050 fra.me.REG[11] = NIT_NULL;
10051 fra.me.REG[0] = p0;
10052 fra.me.REG[1] = p1;
10053 /* ./parser//parser.nit:2522 */
10054 fra.me.REG[2] = NIT_NULL;
10055 /* ./parser//parser.nit:2523 */
10056 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10057 /* ./parser//parser.nit:2524 */
10058 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10059 /* ./parser//parser.nit:2525 */
10060 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10061 /* ./parser//parser.nit:2526 */
10062 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10063 /* ./parser//parser.nit:2527 */
10064 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10065 /* ./parser//parser.nit:2528 */
10066 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10067 /* ./parser//parser.nit:2529 */
10068 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10069 /* ./parser//parser.nit:2530 */
10070 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10071 /* ./parser//parser.nit:2531 */
10072 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10073 /* ./parser//parser.nit:2532 */
10074 fra.me.REG[9] = NEW_Array_array___Array___init();
10075 /* ./parser//parser.nit:2533 */
10076 fra.me.REG[10] = NEW_Array_array___Array___init();
10077 /* ./parser//parser.nit:2534 */
10078 fra.me.REG[11] = NEW_Array_array___Array___init();
10079 /* ./parser//parser.nit:2536 */
10080 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10081 if (UNTAG_Bool(REGB0)) {
10082 } else {
10083 nit_abort("Assert failed", NULL, LOCATE_parser, 2536);
10084 }
10085 /* ./parser//parser.nit:2538 */
10086 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10087 if (UNTAG_Bool(REGB0)) {
10088 } else {
10089 nit_abort("Assert failed", NULL, LOCATE_parser, 2538);
10090 }
10091 /* ./parser//parser.nit:2540 */
10092 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10093 if (UNTAG_Bool(REGB0)) {
10094 } else {
10095 nit_abort("Assert failed", NULL, LOCATE_parser, 2540);
10096 }
10097 /* ./parser//parser.nit:2542 */
10098 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10099 if (UNTAG_Bool(REGB0)) {
10100 } else {
10101 nit_abort("Assert failed", NULL, LOCATE_parser, 2542);
10102 }
10103 /* ./parser//parser.nit:2544 */
10104 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10105 if (UNTAG_Bool(REGB0)) {
10106 } else {
10107 nit_abort("Assert failed", NULL, LOCATE_parser, 2544);
10108 }
10109 /* ./parser//parser.nit:2546 */
10110 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10111 if (UNTAG_Bool(REGB0)) {
10112 } else {
10113 nit_abort("Assert failed", NULL, LOCATE_parser, 2546);
10114 }
10115 /* ./parser//parser.nit:2547 */
10116 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
10117 fra.me.REG[11] = fra.me.REG[3];
10118 /* ./parser//parser.nit:2548 */
10119 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]);
10120 /* ./parser//parser.nit:2558 */
10121 fra.me.REG[2] = fra.me.REG[11];
10122 /* ./parser//parser.nit:2559 */
10123 REGB0 = TAG_Bool(ATTR_parser___ReduceAction48____goto(fra.me.REG[0])!=NIT_NULL);
10124 if (UNTAG_Bool(REGB0)) {
10125 } else {
10126 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2559);
10127 }
10128 REGB0 = ATTR_parser___ReduceAction48____goto(fra.me.REG[0]);
10129 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10130 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10131 stack_frame_head = fra.me.prev;
10132 return;
10133 }
10134 void parser___ReduceAction48___init(val_t p0, val_t p1, int* init_table){
10135 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction48].i;
10136 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10137 val_t REGB0;
10138 val_t tmp;
10139 if (init_table[itpos51]) return;
10140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10141 fra.me.file = LOCATE_parser;
10142 fra.me.line = 2562;
10143 fra.me.meth = LOCATE_parser___ReduceAction48___init;
10144 fra.me.has_broke = 0;
10145 fra.me.REG_size = 2;
10146 fra.me.REG[0] = NIT_NULL;
10147 fra.me.REG[1] = NIT_NULL;
10148 fra.me.REG[0] = p0;
10149 REGB0 = p1;
10150 /* ./parser//parser.nit:2562 */
10151 fra.me.REG[1] = fra.me.REG[0];
10152 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10153 ATTR_parser___ReduceAction48____goto(fra.me.REG[1]) = REGB0;
10154 stack_frame_head = fra.me.prev;
10155 init_table[itpos51] = 1;
10156 return;
10157 }
10158 void parser___ReduceAction49___action(val_t p0, val_t p1){
10159 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
10160 val_t REGB0;
10161 val_t tmp;
10162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10163 fra.me.file = LOCATE_parser;
10164 fra.me.line = 2566;
10165 fra.me.meth = LOCATE_parser___ReduceAction49___action;
10166 fra.me.has_broke = 0;
10167 fra.me.REG_size = 12;
10168 fra.me.REG[0] = NIT_NULL;
10169 fra.me.REG[1] = NIT_NULL;
10170 fra.me.REG[2] = NIT_NULL;
10171 fra.me.REG[3] = NIT_NULL;
10172 fra.me.REG[4] = NIT_NULL;
10173 fra.me.REG[5] = NIT_NULL;
10174 fra.me.REG[6] = NIT_NULL;
10175 fra.me.REG[7] = NIT_NULL;
10176 fra.me.REG[8] = NIT_NULL;
10177 fra.me.REG[9] = NIT_NULL;
10178 fra.me.REG[10] = NIT_NULL;
10179 fra.me.REG[11] = NIT_NULL;
10180 fra.me.REG[0] = p0;
10181 fra.me.REG[1] = p1;
10182 /* ./parser//parser.nit:2568 */
10183 fra.me.REG[2] = NIT_NULL;
10184 /* ./parser//parser.nit:2569 */
10185 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10186 /* ./parser//parser.nit:2570 */
10187 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10188 /* ./parser//parser.nit:2571 */
10189 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10190 /* ./parser//parser.nit:2572 */
10191 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10192 /* ./parser//parser.nit:2573 */
10193 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10194 /* ./parser//parser.nit:2574 */
10195 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10196 /* ./parser//parser.nit:2575 */
10197 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10198 /* ./parser//parser.nit:2576 */
10199 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10200 /* ./parser//parser.nit:2577 */
10201 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10202 /* ./parser//parser.nit:2578 */
10203 fra.me.REG[9] = NEW_Array_array___Array___init();
10204 /* ./parser//parser.nit:2579 */
10205 fra.me.REG[10] = NEW_Array_array___Array___init();
10206 /* ./parser//parser.nit:2580 */
10207 fra.me.REG[11] = NEW_Array_array___Array___init();
10208 /* ./parser//parser.nit:2582 */
10209 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10210 if (UNTAG_Bool(REGB0)) {
10211 } else {
10212 nit_abort("Assert failed", NULL, LOCATE_parser, 2582);
10213 }
10214 /* ./parser//parser.nit:2584 */
10215 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10216 if (UNTAG_Bool(REGB0)) {
10217 } else {
10218 nit_abort("Assert failed", NULL, LOCATE_parser, 2584);
10219 }
10220 /* ./parser//parser.nit:2586 */
10221 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10222 if (UNTAG_Bool(REGB0)) {
10223 } else {
10224 nit_abort("Assert failed", NULL, LOCATE_parser, 2586);
10225 }
10226 /* ./parser//parser.nit:2588 */
10227 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10228 if (UNTAG_Bool(REGB0)) {
10229 } else {
10230 nit_abort("Assert failed", NULL, LOCATE_parser, 2588);
10231 }
10232 /* ./parser//parser.nit:2590 */
10233 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10234 if (UNTAG_Bool(REGB0)) {
10235 } else {
10236 nit_abort("Assert failed", NULL, LOCATE_parser, 2590);
10237 }
10238 /* ./parser//parser.nit:2591 */
10239 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
10240 fra.me.REG[9] = fra.me.REG[4];
10241 /* ./parser//parser.nit:2593 */
10242 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10243 if (UNTAG_Bool(REGB0)) {
10244 } else {
10245 nit_abort("Assert failed", NULL, LOCATE_parser, 2593);
10246 }
10247 /* ./parser//parser.nit:2594 */
10248 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
10249 fra.me.REG[11] = fra.me.REG[3];
10250 /* ./parser//parser.nit:2595 */
10251 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]);
10252 /* ./parser//parser.nit:2605 */
10253 fra.me.REG[2] = fra.me.REG[11];
10254 /* ./parser//parser.nit:2606 */
10255 REGB0 = TAG_Bool(ATTR_parser___ReduceAction49____goto(fra.me.REG[0])!=NIT_NULL);
10256 if (UNTAG_Bool(REGB0)) {
10257 } else {
10258 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2606);
10259 }
10260 REGB0 = ATTR_parser___ReduceAction49____goto(fra.me.REG[0]);
10261 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10262 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10263 stack_frame_head = fra.me.prev;
10264 return;
10265 }
10266 void parser___ReduceAction49___init(val_t p0, val_t p1, int* init_table){
10267 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction49].i;
10268 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10269 val_t REGB0;
10270 val_t tmp;
10271 if (init_table[itpos52]) return;
10272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10273 fra.me.file = LOCATE_parser;
10274 fra.me.line = 2609;
10275 fra.me.meth = LOCATE_parser___ReduceAction49___init;
10276 fra.me.has_broke = 0;
10277 fra.me.REG_size = 2;
10278 fra.me.REG[0] = NIT_NULL;
10279 fra.me.REG[1] = NIT_NULL;
10280 fra.me.REG[0] = p0;
10281 REGB0 = p1;
10282 /* ./parser//parser.nit:2609 */
10283 fra.me.REG[1] = fra.me.REG[0];
10284 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10285 ATTR_parser___ReduceAction49____goto(fra.me.REG[1]) = REGB0;
10286 stack_frame_head = fra.me.prev;
10287 init_table[itpos52] = 1;
10288 return;
10289 }
10290 void parser___ReduceAction50___action(val_t p0, val_t p1){
10291 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
10292 val_t REGB0;
10293 val_t tmp;
10294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10295 fra.me.file = LOCATE_parser;
10296 fra.me.line = 2613;
10297 fra.me.meth = LOCATE_parser___ReduceAction50___action;
10298 fra.me.has_broke = 0;
10299 fra.me.REG_size = 13;
10300 fra.me.REG[0] = NIT_NULL;
10301 fra.me.REG[1] = NIT_NULL;
10302 fra.me.REG[2] = NIT_NULL;
10303 fra.me.REG[3] = NIT_NULL;
10304 fra.me.REG[4] = NIT_NULL;
10305 fra.me.REG[5] = NIT_NULL;
10306 fra.me.REG[6] = NIT_NULL;
10307 fra.me.REG[7] = NIT_NULL;
10308 fra.me.REG[8] = NIT_NULL;
10309 fra.me.REG[9] = NIT_NULL;
10310 fra.me.REG[10] = NIT_NULL;
10311 fra.me.REG[11] = NIT_NULL;
10312 fra.me.REG[12] = NIT_NULL;
10313 fra.me.REG[0] = p0;
10314 fra.me.REG[1] = p1;
10315 /* ./parser//parser.nit:2615 */
10316 fra.me.REG[2] = NIT_NULL;
10317 /* ./parser//parser.nit:2616 */
10318 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10319 /* ./parser//parser.nit:2617 */
10320 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10321 /* ./parser//parser.nit:2618 */
10322 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10323 /* ./parser//parser.nit:2619 */
10324 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10325 /* ./parser//parser.nit:2620 */
10326 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10327 /* ./parser//parser.nit:2621 */
10328 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10329 /* ./parser//parser.nit:2622 */
10330 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10331 /* ./parser//parser.nit:2623 */
10332 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10333 /* ./parser//parser.nit:2624 */
10334 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10335 /* ./parser//parser.nit:2625 */
10336 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10337 /* ./parser//parser.nit:2626 */
10338 fra.me.REG[10] = NEW_Array_array___Array___init();
10339 /* ./parser//parser.nit:2627 */
10340 fra.me.REG[11] = NEW_Array_array___Array___init();
10341 /* ./parser//parser.nit:2628 */
10342 fra.me.REG[12] = NEW_Array_array___Array___init();
10343 /* ./parser//parser.nit:2630 */
10344 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10345 if (UNTAG_Bool(REGB0)) {
10346 } else {
10347 nit_abort("Assert failed", NULL, LOCATE_parser, 2630);
10348 }
10349 /* ./parser//parser.nit:2632 */
10350 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10351 if (UNTAG_Bool(REGB0)) {
10352 } else {
10353 nit_abort("Assert failed", NULL, LOCATE_parser, 2632);
10354 }
10355 /* ./parser//parser.nit:2634 */
10356 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10357 if (UNTAG_Bool(REGB0)) {
10358 } else {
10359 nit_abort("Assert failed", NULL, LOCATE_parser, 2634);
10360 }
10361 /* ./parser//parser.nit:2636 */
10362 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10363 if (UNTAG_Bool(REGB0)) {
10364 } else {
10365 nit_abort("Assert failed", NULL, LOCATE_parser, 2636);
10366 }
10367 /* ./parser//parser.nit:2638 */
10368 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10369 if (UNTAG_Bool(REGB0)) {
10370 } else {
10371 nit_abort("Assert failed", NULL, LOCATE_parser, 2638);
10372 }
10373 /* ./parser//parser.nit:2640 */
10374 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10375 if (UNTAG_Bool(REGB0)) {
10376 } else {
10377 nit_abort("Assert failed", NULL, LOCATE_parser, 2640);
10378 }
10379 /* ./parser//parser.nit:2641 */
10380 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
10381 fra.me.REG[10] = fra.me.REG[4];
10382 /* ./parser//parser.nit:2643 */
10383 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10384 if (UNTAG_Bool(REGB0)) {
10385 } else {
10386 nit_abort("Assert failed", NULL, LOCATE_parser, 2643);
10387 }
10388 /* ./parser//parser.nit:2644 */
10389 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
10390 fra.me.REG[12] = fra.me.REG[3];
10391 /* ./parser//parser.nit:2645 */
10392 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]);
10393 /* ./parser//parser.nit:2655 */
10394 fra.me.REG[2] = fra.me.REG[12];
10395 /* ./parser//parser.nit:2656 */
10396 REGB0 = TAG_Bool(ATTR_parser___ReduceAction50____goto(fra.me.REG[0])!=NIT_NULL);
10397 if (UNTAG_Bool(REGB0)) {
10398 } else {
10399 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2656);
10400 }
10401 REGB0 = ATTR_parser___ReduceAction50____goto(fra.me.REG[0]);
10402 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10403 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10404 stack_frame_head = fra.me.prev;
10405 return;
10406 }
10407 void parser___ReduceAction50___init(val_t p0, val_t p1, int* init_table){
10408 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction50].i;
10409 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10410 val_t REGB0;
10411 val_t tmp;
10412 if (init_table[itpos53]) return;
10413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10414 fra.me.file = LOCATE_parser;
10415 fra.me.line = 2659;
10416 fra.me.meth = LOCATE_parser___ReduceAction50___init;
10417 fra.me.has_broke = 0;
10418 fra.me.REG_size = 2;
10419 fra.me.REG[0] = NIT_NULL;
10420 fra.me.REG[1] = NIT_NULL;
10421 fra.me.REG[0] = p0;
10422 REGB0 = p1;
10423 /* ./parser//parser.nit:2659 */
10424 fra.me.REG[1] = fra.me.REG[0];
10425 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10426 ATTR_parser___ReduceAction50____goto(fra.me.REG[1]) = REGB0;
10427 stack_frame_head = fra.me.prev;
10428 init_table[itpos53] = 1;
10429 return;
10430 }
10431 void parser___ReduceAction51___action(val_t p0, val_t p1){
10432 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
10433 val_t REGB0;
10434 val_t tmp;
10435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10436 fra.me.file = LOCATE_parser;
10437 fra.me.line = 2663;
10438 fra.me.meth = LOCATE_parser___ReduceAction51___action;
10439 fra.me.has_broke = 0;
10440 fra.me.REG_size = 12;
10441 fra.me.REG[0] = NIT_NULL;
10442 fra.me.REG[1] = NIT_NULL;
10443 fra.me.REG[2] = NIT_NULL;
10444 fra.me.REG[3] = NIT_NULL;
10445 fra.me.REG[4] = NIT_NULL;
10446 fra.me.REG[5] = NIT_NULL;
10447 fra.me.REG[6] = NIT_NULL;
10448 fra.me.REG[7] = NIT_NULL;
10449 fra.me.REG[8] = NIT_NULL;
10450 fra.me.REG[9] = NIT_NULL;
10451 fra.me.REG[10] = NIT_NULL;
10452 fra.me.REG[11] = NIT_NULL;
10453 fra.me.REG[0] = p0;
10454 fra.me.REG[1] = p1;
10455 /* ./parser//parser.nit:2665 */
10456 fra.me.REG[2] = NIT_NULL;
10457 /* ./parser//parser.nit:2666 */
10458 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10459 /* ./parser//parser.nit:2667 */
10460 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10461 /* ./parser//parser.nit:2668 */
10462 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10463 /* ./parser//parser.nit:2669 */
10464 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10465 /* ./parser//parser.nit:2670 */
10466 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10467 /* ./parser//parser.nit:2671 */
10468 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10469 /* ./parser//parser.nit:2672 */
10470 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10471 /* ./parser//parser.nit:2673 */
10472 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10473 /* ./parser//parser.nit:2674 */
10474 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10475 /* ./parser//parser.nit:2675 */
10476 fra.me.REG[9] = NEW_Array_array___Array___init();
10477 /* ./parser//parser.nit:2676 */
10478 fra.me.REG[10] = NEW_Array_array___Array___init();
10479 /* ./parser//parser.nit:2677 */
10480 fra.me.REG[11] = NEW_Array_array___Array___init();
10481 /* ./parser//parser.nit:2679 */
10482 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10483 if (UNTAG_Bool(REGB0)) {
10484 } else {
10485 nit_abort("Assert failed", NULL, LOCATE_parser, 2679);
10486 }
10487 /* ./parser//parser.nit:2681 */
10488 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10489 if (UNTAG_Bool(REGB0)) {
10490 } else {
10491 nit_abort("Assert failed", NULL, LOCATE_parser, 2681);
10492 }
10493 /* ./parser//parser.nit:2683 */
10494 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10495 if (UNTAG_Bool(REGB0)) {
10496 } else {
10497 nit_abort("Assert failed", NULL, LOCATE_parser, 2683);
10498 }
10499 /* ./parser//parser.nit:2685 */
10500 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10501 if (UNTAG_Bool(REGB0)) {
10502 } else {
10503 nit_abort("Assert failed", NULL, LOCATE_parser, 2685);
10504 }
10505 /* ./parser//parser.nit:2687 */
10506 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10507 if (UNTAG_Bool(REGB0)) {
10508 } else {
10509 nit_abort("Assert failed", NULL, LOCATE_parser, 2687);
10510 }
10511 /* ./parser//parser.nit:2688 */
10512 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
10513 fra.me.REG[10] = fra.me.REG[4];
10514 /* ./parser//parser.nit:2690 */
10515 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10516 if (UNTAG_Bool(REGB0)) {
10517 } else {
10518 nit_abort("Assert failed", NULL, LOCATE_parser, 2690);
10519 }
10520 /* ./parser//parser.nit:2691 */
10521 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
10522 fra.me.REG[11] = fra.me.REG[3];
10523 /* ./parser//parser.nit:2692 */
10524 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]);
10525 /* ./parser//parser.nit:2702 */
10526 fra.me.REG[2] = fra.me.REG[11];
10527 /* ./parser//parser.nit:2703 */
10528 REGB0 = TAG_Bool(ATTR_parser___ReduceAction51____goto(fra.me.REG[0])!=NIT_NULL);
10529 if (UNTAG_Bool(REGB0)) {
10530 } else {
10531 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2703);
10532 }
10533 REGB0 = ATTR_parser___ReduceAction51____goto(fra.me.REG[0]);
10534 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10535 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10536 stack_frame_head = fra.me.prev;
10537 return;
10538 }
10539 void parser___ReduceAction51___init(val_t p0, val_t p1, int* init_table){
10540 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction51].i;
10541 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10542 val_t REGB0;
10543 val_t tmp;
10544 if (init_table[itpos54]) return;
10545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10546 fra.me.file = LOCATE_parser;
10547 fra.me.line = 2706;
10548 fra.me.meth = LOCATE_parser___ReduceAction51___init;
10549 fra.me.has_broke = 0;
10550 fra.me.REG_size = 2;
10551 fra.me.REG[0] = NIT_NULL;
10552 fra.me.REG[1] = NIT_NULL;
10553 fra.me.REG[0] = p0;
10554 REGB0 = p1;
10555 /* ./parser//parser.nit:2706 */
10556 fra.me.REG[1] = fra.me.REG[0];
10557 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10558 ATTR_parser___ReduceAction51____goto(fra.me.REG[1]) = REGB0;
10559 stack_frame_head = fra.me.prev;
10560 init_table[itpos54] = 1;
10561 return;
10562 }
10563 void parser___ReduceAction52___action(val_t p0, val_t p1){
10564 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
10565 val_t REGB0;
10566 val_t tmp;
10567 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10568 fra.me.file = LOCATE_parser;
10569 fra.me.line = 2710;
10570 fra.me.meth = LOCATE_parser___ReduceAction52___action;
10571 fra.me.has_broke = 0;
10572 fra.me.REG_size = 13;
10573 fra.me.REG[0] = NIT_NULL;
10574 fra.me.REG[1] = NIT_NULL;
10575 fra.me.REG[2] = NIT_NULL;
10576 fra.me.REG[3] = NIT_NULL;
10577 fra.me.REG[4] = NIT_NULL;
10578 fra.me.REG[5] = NIT_NULL;
10579 fra.me.REG[6] = NIT_NULL;
10580 fra.me.REG[7] = NIT_NULL;
10581 fra.me.REG[8] = NIT_NULL;
10582 fra.me.REG[9] = NIT_NULL;
10583 fra.me.REG[10] = NIT_NULL;
10584 fra.me.REG[11] = NIT_NULL;
10585 fra.me.REG[12] = NIT_NULL;
10586 fra.me.REG[0] = p0;
10587 fra.me.REG[1] = p1;
10588 /* ./parser//parser.nit:2712 */
10589 fra.me.REG[2] = NIT_NULL;
10590 /* ./parser//parser.nit:2713 */
10591 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10592 /* ./parser//parser.nit:2714 */
10593 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10594 /* ./parser//parser.nit:2715 */
10595 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10596 /* ./parser//parser.nit:2716 */
10597 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10598 /* ./parser//parser.nit:2717 */
10599 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10600 /* ./parser//parser.nit:2718 */
10601 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10602 /* ./parser//parser.nit:2719 */
10603 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10604 /* ./parser//parser.nit:2720 */
10605 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10606 /* ./parser//parser.nit:2721 */
10607 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10608 /* ./parser//parser.nit:2722 */
10609 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10610 /* ./parser//parser.nit:2723 */
10611 fra.me.REG[10] = NEW_Array_array___Array___init();
10612 /* ./parser//parser.nit:2724 */
10613 fra.me.REG[11] = NEW_Array_array___Array___init();
10614 /* ./parser//parser.nit:2725 */
10615 fra.me.REG[12] = NEW_Array_array___Array___init();
10616 /* ./parser//parser.nit:2727 */
10617 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10618 if (UNTAG_Bool(REGB0)) {
10619 } else {
10620 nit_abort("Assert failed", NULL, LOCATE_parser, 2727);
10621 }
10622 /* ./parser//parser.nit:2729 */
10623 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10624 if (UNTAG_Bool(REGB0)) {
10625 } else {
10626 nit_abort("Assert failed", NULL, LOCATE_parser, 2729);
10627 }
10628 /* ./parser//parser.nit:2731 */
10629 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10630 if (UNTAG_Bool(REGB0)) {
10631 } else {
10632 nit_abort("Assert failed", NULL, LOCATE_parser, 2731);
10633 }
10634 /* ./parser//parser.nit:2733 */
10635 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10636 if (UNTAG_Bool(REGB0)) {
10637 } else {
10638 nit_abort("Assert failed", NULL, LOCATE_parser, 2733);
10639 }
10640 /* ./parser//parser.nit:2735 */
10641 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10642 if (UNTAG_Bool(REGB0)) {
10643 } else {
10644 nit_abort("Assert failed", NULL, LOCATE_parser, 2735);
10645 }
10646 /* ./parser//parser.nit:2737 */
10647 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10648 if (UNTAG_Bool(REGB0)) {
10649 } else {
10650 nit_abort("Assert failed", NULL, LOCATE_parser, 2737);
10651 }
10652 /* ./parser//parser.nit:2738 */
10653 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
10654 fra.me.REG[11] = fra.me.REG[4];
10655 /* ./parser//parser.nit:2740 */
10656 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10657 if (UNTAG_Bool(REGB0)) {
10658 } else {
10659 nit_abort("Assert failed", NULL, LOCATE_parser, 2740);
10660 }
10661 /* ./parser//parser.nit:2741 */
10662 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
10663 fra.me.REG[12] = fra.me.REG[3];
10664 /* ./parser//parser.nit:2742 */
10665 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]);
10666 /* ./parser//parser.nit:2752 */
10667 fra.me.REG[2] = fra.me.REG[12];
10668 /* ./parser//parser.nit:2753 */
10669 REGB0 = TAG_Bool(ATTR_parser___ReduceAction52____goto(fra.me.REG[0])!=NIT_NULL);
10670 if (UNTAG_Bool(REGB0)) {
10671 } else {
10672 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2753);
10673 }
10674 REGB0 = ATTR_parser___ReduceAction52____goto(fra.me.REG[0]);
10675 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10676 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10677 stack_frame_head = fra.me.prev;
10678 return;
10679 }
10680 void parser___ReduceAction52___init(val_t p0, val_t p1, int* init_table){
10681 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction52].i;
10682 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10683 val_t REGB0;
10684 val_t tmp;
10685 if (init_table[itpos55]) return;
10686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10687 fra.me.file = LOCATE_parser;
10688 fra.me.line = 2756;
10689 fra.me.meth = LOCATE_parser___ReduceAction52___init;
10690 fra.me.has_broke = 0;
10691 fra.me.REG_size = 2;
10692 fra.me.REG[0] = NIT_NULL;
10693 fra.me.REG[1] = NIT_NULL;
10694 fra.me.REG[0] = p0;
10695 REGB0 = p1;
10696 /* ./parser//parser.nit:2756 */
10697 fra.me.REG[1] = fra.me.REG[0];
10698 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10699 ATTR_parser___ReduceAction52____goto(fra.me.REG[1]) = REGB0;
10700 stack_frame_head = fra.me.prev;
10701 init_table[itpos55] = 1;
10702 return;
10703 }
10704 void parser___ReduceAction53___action(val_t p0, val_t p1){
10705 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
10706 val_t REGB0;
10707 val_t tmp;
10708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10709 fra.me.file = LOCATE_parser;
10710 fra.me.line = 2760;
10711 fra.me.meth = LOCATE_parser___ReduceAction53___action;
10712 fra.me.has_broke = 0;
10713 fra.me.REG_size = 13;
10714 fra.me.REG[0] = NIT_NULL;
10715 fra.me.REG[1] = NIT_NULL;
10716 fra.me.REG[2] = NIT_NULL;
10717 fra.me.REG[3] = NIT_NULL;
10718 fra.me.REG[4] = NIT_NULL;
10719 fra.me.REG[5] = NIT_NULL;
10720 fra.me.REG[6] = NIT_NULL;
10721 fra.me.REG[7] = NIT_NULL;
10722 fra.me.REG[8] = NIT_NULL;
10723 fra.me.REG[9] = NIT_NULL;
10724 fra.me.REG[10] = NIT_NULL;
10725 fra.me.REG[11] = NIT_NULL;
10726 fra.me.REG[12] = NIT_NULL;
10727 fra.me.REG[0] = p0;
10728 fra.me.REG[1] = p1;
10729 /* ./parser//parser.nit:2762 */
10730 fra.me.REG[2] = NIT_NULL;
10731 /* ./parser//parser.nit:2763 */
10732 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10733 /* ./parser//parser.nit:2764 */
10734 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10735 /* ./parser//parser.nit:2765 */
10736 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10737 /* ./parser//parser.nit:2766 */
10738 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10739 /* ./parser//parser.nit:2767 */
10740 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10741 /* ./parser//parser.nit:2768 */
10742 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10743 /* ./parser//parser.nit:2769 */
10744 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10745 /* ./parser//parser.nit:2770 */
10746 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10747 /* ./parser//parser.nit:2771 */
10748 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10749 /* ./parser//parser.nit:2772 */
10750 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10751 /* ./parser//parser.nit:2773 */
10752 fra.me.REG[10] = NEW_Array_array___Array___init();
10753 /* ./parser//parser.nit:2774 */
10754 fra.me.REG[11] = NEW_Array_array___Array___init();
10755 /* ./parser//parser.nit:2775 */
10756 fra.me.REG[12] = NEW_Array_array___Array___init();
10757 /* ./parser//parser.nit:2777 */
10758 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10759 if (UNTAG_Bool(REGB0)) {
10760 } else {
10761 nit_abort("Assert failed", NULL, LOCATE_parser, 2777);
10762 }
10763 /* ./parser//parser.nit:2779 */
10764 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10765 if (UNTAG_Bool(REGB0)) {
10766 } else {
10767 nit_abort("Assert failed", NULL, LOCATE_parser, 2779);
10768 }
10769 /* ./parser//parser.nit:2781 */
10770 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10771 if (UNTAG_Bool(REGB0)) {
10772 } else {
10773 nit_abort("Assert failed", NULL, LOCATE_parser, 2781);
10774 }
10775 /* ./parser//parser.nit:2783 */
10776 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10777 if (UNTAG_Bool(REGB0)) {
10778 } else {
10779 nit_abort("Assert failed", NULL, LOCATE_parser, 2783);
10780 }
10781 /* ./parser//parser.nit:2785 */
10782 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10783 if (UNTAG_Bool(REGB0)) {
10784 } else {
10785 nit_abort("Assert failed", NULL, LOCATE_parser, 2785);
10786 }
10787 /* ./parser//parser.nit:2786 */
10788 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[5]);
10789 fra.me.REG[10] = fra.me.REG[5];
10790 /* ./parser//parser.nit:2788 */
10791 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10792 if (UNTAG_Bool(REGB0)) {
10793 } else {
10794 nit_abort("Assert failed", NULL, LOCATE_parser, 2788);
10795 }
10796 /* ./parser//parser.nit:2789 */
10797 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
10798 fra.me.REG[11] = fra.me.REG[4];
10799 /* ./parser//parser.nit:2791 */
10800 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10801 if (UNTAG_Bool(REGB0)) {
10802 } else {
10803 nit_abort("Assert failed", NULL, LOCATE_parser, 2791);
10804 }
10805 /* ./parser//parser.nit:2792 */
10806 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
10807 fra.me.REG[12] = fra.me.REG[3];
10808 /* ./parser//parser.nit:2793 */
10809 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]);
10810 /* ./parser//parser.nit:2803 */
10811 fra.me.REG[2] = fra.me.REG[12];
10812 /* ./parser//parser.nit:2804 */
10813 REGB0 = TAG_Bool(ATTR_parser___ReduceAction53____goto(fra.me.REG[0])!=NIT_NULL);
10814 if (UNTAG_Bool(REGB0)) {
10815 } else {
10816 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2804);
10817 }
10818 REGB0 = ATTR_parser___ReduceAction53____goto(fra.me.REG[0]);
10819 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10820 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10821 stack_frame_head = fra.me.prev;
10822 return;
10823 }
10824 void parser___ReduceAction53___init(val_t p0, val_t p1, int* init_table){
10825 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction53].i;
10826 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10827 val_t REGB0;
10828 val_t tmp;
10829 if (init_table[itpos56]) return;
10830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10831 fra.me.file = LOCATE_parser;
10832 fra.me.line = 2807;
10833 fra.me.meth = LOCATE_parser___ReduceAction53___init;
10834 fra.me.has_broke = 0;
10835 fra.me.REG_size = 2;
10836 fra.me.REG[0] = NIT_NULL;
10837 fra.me.REG[1] = NIT_NULL;
10838 fra.me.REG[0] = p0;
10839 REGB0 = p1;
10840 /* ./parser//parser.nit:2807 */
10841 fra.me.REG[1] = fra.me.REG[0];
10842 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10843 ATTR_parser___ReduceAction53____goto(fra.me.REG[1]) = REGB0;
10844 stack_frame_head = fra.me.prev;
10845 init_table[itpos56] = 1;
10846 return;
10847 }
10848 void parser___ReduceAction54___action(val_t p0, val_t p1){
10849 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
10850 val_t REGB0;
10851 val_t tmp;
10852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10853 fra.me.file = LOCATE_parser;
10854 fra.me.line = 2811;
10855 fra.me.meth = LOCATE_parser___ReduceAction54___action;
10856 fra.me.has_broke = 0;
10857 fra.me.REG_size = 14;
10858 fra.me.REG[0] = NIT_NULL;
10859 fra.me.REG[1] = NIT_NULL;
10860 fra.me.REG[2] = NIT_NULL;
10861 fra.me.REG[3] = NIT_NULL;
10862 fra.me.REG[4] = NIT_NULL;
10863 fra.me.REG[5] = NIT_NULL;
10864 fra.me.REG[6] = NIT_NULL;
10865 fra.me.REG[7] = NIT_NULL;
10866 fra.me.REG[8] = NIT_NULL;
10867 fra.me.REG[9] = NIT_NULL;
10868 fra.me.REG[10] = NIT_NULL;
10869 fra.me.REG[11] = NIT_NULL;
10870 fra.me.REG[12] = NIT_NULL;
10871 fra.me.REG[13] = NIT_NULL;
10872 fra.me.REG[0] = p0;
10873 fra.me.REG[1] = p1;
10874 /* ./parser//parser.nit:2813 */
10875 fra.me.REG[2] = NIT_NULL;
10876 /* ./parser//parser.nit:2814 */
10877 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10878 /* ./parser//parser.nit:2815 */
10879 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10880 /* ./parser//parser.nit:2816 */
10881 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10882 /* ./parser//parser.nit:2817 */
10883 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10884 /* ./parser//parser.nit:2818 */
10885 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10886 /* ./parser//parser.nit:2819 */
10887 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10888 /* ./parser//parser.nit:2820 */
10889 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10890 /* ./parser//parser.nit:2821 */
10891 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10892 /* ./parser//parser.nit:2822 */
10893 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10894 /* ./parser//parser.nit:2823 */
10895 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10896 /* ./parser//parser.nit:2824 */
10897 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
10898 /* ./parser//parser.nit:2825 */
10899 fra.me.REG[11] = NEW_Array_array___Array___init();
10900 /* ./parser//parser.nit:2826 */
10901 fra.me.REG[12] = NEW_Array_array___Array___init();
10902 /* ./parser//parser.nit:2827 */
10903 fra.me.REG[13] = NEW_Array_array___Array___init();
10904 /* ./parser//parser.nit:2829 */
10905 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
10906 if (UNTAG_Bool(REGB0)) {
10907 } else {
10908 nit_abort("Assert failed", NULL, LOCATE_parser, 2829);
10909 }
10910 /* ./parser//parser.nit:2831 */
10911 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
10912 if (UNTAG_Bool(REGB0)) {
10913 } else {
10914 nit_abort("Assert failed", NULL, LOCATE_parser, 2831);
10915 }
10916 /* ./parser//parser.nit:2833 */
10917 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
10918 if (UNTAG_Bool(REGB0)) {
10919 } else {
10920 nit_abort("Assert failed", NULL, LOCATE_parser, 2833);
10921 }
10922 /* ./parser//parser.nit:2835 */
10923 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AClasskind, ID_AClasskind)) /*cast nullable AClasskind*/;
10924 if (UNTAG_Bool(REGB0)) {
10925 } else {
10926 nit_abort("Assert failed", NULL, LOCATE_parser, 2835);
10927 }
10928 /* ./parser//parser.nit:2837 */
10929 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
10930 if (UNTAG_Bool(REGB0)) {
10931 } else {
10932 nit_abort("Assert failed", NULL, LOCATE_parser, 2837);
10933 }
10934 /* ./parser//parser.nit:2839 */
10935 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10936 if (UNTAG_Bool(REGB0)) {
10937 } else {
10938 nit_abort("Assert failed", NULL, LOCATE_parser, 2839);
10939 }
10940 /* ./parser//parser.nit:2840 */
10941 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[5]);
10942 fra.me.REG[11] = fra.me.REG[5];
10943 /* ./parser//parser.nit:2842 */
10944 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10945 if (UNTAG_Bool(REGB0)) {
10946 } else {
10947 nit_abort("Assert failed", NULL, LOCATE_parser, 2842);
10948 }
10949 /* ./parser//parser.nit:2843 */
10950 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
10951 fra.me.REG[12] = fra.me.REG[4];
10952 /* ./parser//parser.nit:2845 */
10953 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
10954 if (UNTAG_Bool(REGB0)) {
10955 } else {
10956 nit_abort("Assert failed", NULL, LOCATE_parser, 2845);
10957 }
10958 /* ./parser//parser.nit:2846 */
10959 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[3]);
10960 fra.me.REG[13] = fra.me.REG[3];
10961 /* ./parser//parser.nit:2847 */
10962 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]);
10963 /* ./parser//parser.nit:2857 */
10964 fra.me.REG[2] = fra.me.REG[13];
10965 /* ./parser//parser.nit:2858 */
10966 REGB0 = TAG_Bool(ATTR_parser___ReduceAction54____goto(fra.me.REG[0])!=NIT_NULL);
10967 if (UNTAG_Bool(REGB0)) {
10968 } else {
10969 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2858);
10970 }
10971 REGB0 = ATTR_parser___ReduceAction54____goto(fra.me.REG[0]);
10972 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
10973 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
10974 stack_frame_head = fra.me.prev;
10975 return;
10976 }
10977 void parser___ReduceAction54___init(val_t p0, val_t p1, int* init_table){
10978 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction54].i;
10979 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10980 val_t REGB0;
10981 val_t tmp;
10982 if (init_table[itpos57]) return;
10983 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10984 fra.me.file = LOCATE_parser;
10985 fra.me.line = 2861;
10986 fra.me.meth = LOCATE_parser___ReduceAction54___init;
10987 fra.me.has_broke = 0;
10988 fra.me.REG_size = 2;
10989 fra.me.REG[0] = NIT_NULL;
10990 fra.me.REG[1] = NIT_NULL;
10991 fra.me.REG[0] = p0;
10992 REGB0 = p1;
10993 /* ./parser//parser.nit:2861 */
10994 fra.me.REG[1] = fra.me.REG[0];
10995 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10996 ATTR_parser___ReduceAction54____goto(fra.me.REG[1]) = REGB0;
10997 stack_frame_head = fra.me.prev;
10998 init_table[itpos57] = 1;
10999 return;
11000 }
11001 void parser___ReduceAction55___action(val_t p0, val_t p1){
11002 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11003 val_t REGB0;
11004 val_t tmp;
11005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11006 fra.me.file = LOCATE_parser;
11007 fra.me.line = 2865;
11008 fra.me.meth = LOCATE_parser___ReduceAction55___action;
11009 fra.me.has_broke = 0;
11010 fra.me.REG_size = 4;
11011 fra.me.REG[0] = NIT_NULL;
11012 fra.me.REG[1] = NIT_NULL;
11013 fra.me.REG[2] = NIT_NULL;
11014 fra.me.REG[3] = NIT_NULL;
11015 fra.me.REG[0] = p0;
11016 fra.me.REG[1] = p1;
11017 /* ./parser//parser.nit:2867 */
11018 fra.me.REG[2] = NIT_NULL;
11019 /* ./parser//parser.nit:2868 */
11020 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11021 /* ./parser//parser.nit:2870 */
11022 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwclass, ID_TKwclass)) /*cast nullable TKwclass*/;
11023 if (UNTAG_Bool(REGB0)) {
11024 } else {
11025 nit_abort("Assert failed", NULL, LOCATE_parser, 2870);
11026 }
11027 /* ./parser//parser.nit:2871 */
11028 fra.me.REG[3] = NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind(fra.me.REG[3]);
11029 /* ./parser//parser.nit:2874 */
11030 fra.me.REG[2] = fra.me.REG[3];
11031 /* ./parser//parser.nit:2875 */
11032 REGB0 = TAG_Bool(ATTR_parser___ReduceAction55____goto(fra.me.REG[0])!=NIT_NULL);
11033 if (UNTAG_Bool(REGB0)) {
11034 } else {
11035 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2875);
11036 }
11037 REGB0 = ATTR_parser___ReduceAction55____goto(fra.me.REG[0]);
11038 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11039 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11040 stack_frame_head = fra.me.prev;
11041 return;
11042 }
11043 void parser___ReduceAction55___init(val_t p0, val_t p1, int* init_table){
11044 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction55].i;
11045 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11046 val_t REGB0;
11047 val_t tmp;
11048 if (init_table[itpos58]) return;
11049 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11050 fra.me.file = LOCATE_parser;
11051 fra.me.line = 2878;
11052 fra.me.meth = LOCATE_parser___ReduceAction55___init;
11053 fra.me.has_broke = 0;
11054 fra.me.REG_size = 2;
11055 fra.me.REG[0] = NIT_NULL;
11056 fra.me.REG[1] = NIT_NULL;
11057 fra.me.REG[0] = p0;
11058 REGB0 = p1;
11059 /* ./parser//parser.nit:2878 */
11060 fra.me.REG[1] = fra.me.REG[0];
11061 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11062 ATTR_parser___ReduceAction55____goto(fra.me.REG[1]) = REGB0;
11063 stack_frame_head = fra.me.prev;
11064 init_table[itpos58] = 1;
11065 return;
11066 }
11067 void parser___ReduceAction56___action(val_t p0, val_t p1){
11068 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11069 val_t REGB0;
11070 val_t tmp;
11071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11072 fra.me.file = LOCATE_parser;
11073 fra.me.line = 2882;
11074 fra.me.meth = LOCATE_parser___ReduceAction56___action;
11075 fra.me.has_broke = 0;
11076 fra.me.REG_size = 5;
11077 fra.me.REG[0] = NIT_NULL;
11078 fra.me.REG[1] = NIT_NULL;
11079 fra.me.REG[2] = NIT_NULL;
11080 fra.me.REG[3] = NIT_NULL;
11081 fra.me.REG[4] = NIT_NULL;
11082 fra.me.REG[0] = p0;
11083 fra.me.REG[1] = p1;
11084 /* ./parser//parser.nit:2884 */
11085 fra.me.REG[2] = NIT_NULL;
11086 /* ./parser//parser.nit:2885 */
11087 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11088 /* ./parser//parser.nit:2886 */
11089 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11090 /* ./parser//parser.nit:2888 */
11091 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwabstract, ID_TKwabstract)) /*cast nullable TKwabstract*/;
11092 if (UNTAG_Bool(REGB0)) {
11093 } else {
11094 nit_abort("Assert failed", NULL, LOCATE_parser, 2888);
11095 }
11096 /* ./parser//parser.nit:2890 */
11097 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwclass, ID_TKwclass)) /*cast nullable TKwclass*/;
11098 if (UNTAG_Bool(REGB0)) {
11099 } else {
11100 nit_abort("Assert failed", NULL, LOCATE_parser, 2890);
11101 }
11102 /* ./parser//parser.nit:2891 */
11103 fra.me.REG[3] = NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind(fra.me.REG[4], fra.me.REG[3]);
11104 /* ./parser//parser.nit:2895 */
11105 fra.me.REG[2] = fra.me.REG[3];
11106 /* ./parser//parser.nit:2896 */
11107 REGB0 = TAG_Bool(ATTR_parser___ReduceAction56____goto(fra.me.REG[0])!=NIT_NULL);
11108 if (UNTAG_Bool(REGB0)) {
11109 } else {
11110 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2896);
11111 }
11112 REGB0 = ATTR_parser___ReduceAction56____goto(fra.me.REG[0]);
11113 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11114 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11115 stack_frame_head = fra.me.prev;
11116 return;
11117 }
11118 void parser___ReduceAction56___init(val_t p0, val_t p1, int* init_table){
11119 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction56].i;
11120 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11121 val_t REGB0;
11122 val_t tmp;
11123 if (init_table[itpos59]) return;
11124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11125 fra.me.file = LOCATE_parser;
11126 fra.me.line = 2899;
11127 fra.me.meth = LOCATE_parser___ReduceAction56___init;
11128 fra.me.has_broke = 0;
11129 fra.me.REG_size = 2;
11130 fra.me.REG[0] = NIT_NULL;
11131 fra.me.REG[1] = NIT_NULL;
11132 fra.me.REG[0] = p0;
11133 REGB0 = p1;
11134 /* ./parser//parser.nit:2899 */
11135 fra.me.REG[1] = fra.me.REG[0];
11136 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11137 ATTR_parser___ReduceAction56____goto(fra.me.REG[1]) = REGB0;
11138 stack_frame_head = fra.me.prev;
11139 init_table[itpos59] = 1;
11140 return;
11141 }
11142 void parser___ReduceAction57___action(val_t p0, val_t p1){
11143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11144 val_t REGB0;
11145 val_t tmp;
11146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11147 fra.me.file = LOCATE_parser;
11148 fra.me.line = 2903;
11149 fra.me.meth = LOCATE_parser___ReduceAction57___action;
11150 fra.me.has_broke = 0;
11151 fra.me.REG_size = 4;
11152 fra.me.REG[0] = NIT_NULL;
11153 fra.me.REG[1] = NIT_NULL;
11154 fra.me.REG[2] = NIT_NULL;
11155 fra.me.REG[3] = NIT_NULL;
11156 fra.me.REG[0] = p0;
11157 fra.me.REG[1] = p1;
11158 /* ./parser//parser.nit:2905 */
11159 fra.me.REG[2] = NIT_NULL;
11160 /* ./parser//parser.nit:2906 */
11161 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11162 /* ./parser//parser.nit:2908 */
11163 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwinterface, ID_TKwinterface)) /*cast nullable TKwinterface*/;
11164 if (UNTAG_Bool(REGB0)) {
11165 } else {
11166 nit_abort("Assert failed", NULL, LOCATE_parser, 2908);
11167 }
11168 /* ./parser//parser.nit:2909 */
11169 fra.me.REG[3] = NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(fra.me.REG[3]);
11170 /* ./parser//parser.nit:2912 */
11171 fra.me.REG[2] = fra.me.REG[3];
11172 /* ./parser//parser.nit:2913 */
11173 REGB0 = TAG_Bool(ATTR_parser___ReduceAction57____goto(fra.me.REG[0])!=NIT_NULL);
11174 if (UNTAG_Bool(REGB0)) {
11175 } else {
11176 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2913);
11177 }
11178 REGB0 = ATTR_parser___ReduceAction57____goto(fra.me.REG[0]);
11179 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11180 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11181 stack_frame_head = fra.me.prev;
11182 return;
11183 }
11184 void parser___ReduceAction57___init(val_t p0, val_t p1, int* init_table){
11185 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction57].i;
11186 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11187 val_t REGB0;
11188 val_t tmp;
11189 if (init_table[itpos60]) return;
11190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11191 fra.me.file = LOCATE_parser;
11192 fra.me.line = 2916;
11193 fra.me.meth = LOCATE_parser___ReduceAction57___init;
11194 fra.me.has_broke = 0;
11195 fra.me.REG_size = 2;
11196 fra.me.REG[0] = NIT_NULL;
11197 fra.me.REG[1] = NIT_NULL;
11198 fra.me.REG[0] = p0;
11199 REGB0 = p1;
11200 /* ./parser//parser.nit:2916 */
11201 fra.me.REG[1] = fra.me.REG[0];
11202 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11203 ATTR_parser___ReduceAction57____goto(fra.me.REG[1]) = REGB0;
11204 stack_frame_head = fra.me.prev;
11205 init_table[itpos60] = 1;
11206 return;
11207 }
11208 void parser___ReduceAction58___action(val_t p0, val_t p1){
11209 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11210 val_t REGB0;
11211 val_t tmp;
11212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11213 fra.me.file = LOCATE_parser;
11214 fra.me.line = 2920;
11215 fra.me.meth = LOCATE_parser___ReduceAction58___action;
11216 fra.me.has_broke = 0;
11217 fra.me.REG_size = 4;
11218 fra.me.REG[0] = NIT_NULL;
11219 fra.me.REG[1] = NIT_NULL;
11220 fra.me.REG[2] = NIT_NULL;
11221 fra.me.REG[3] = NIT_NULL;
11222 fra.me.REG[0] = p0;
11223 fra.me.REG[1] = p1;
11224 /* ./parser//parser.nit:2922 */
11225 fra.me.REG[2] = NIT_NULL;
11226 /* ./parser//parser.nit:2923 */
11227 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11228 /* ./parser//parser.nit:2925 */
11229 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwuniversal, ID_TKwuniversal)) /*cast nullable TKwuniversal*/;
11230 if (UNTAG_Bool(REGB0)) {
11231 } else {
11232 nit_abort("Assert failed", NULL, LOCATE_parser, 2925);
11233 }
11234 /* ./parser//parser.nit:2926 */
11235 fra.me.REG[3] = NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind(fra.me.REG[3]);
11236 /* ./parser//parser.nit:2929 */
11237 fra.me.REG[2] = fra.me.REG[3];
11238 /* ./parser//parser.nit:2930 */
11239 REGB0 = TAG_Bool(ATTR_parser___ReduceAction58____goto(fra.me.REG[0])!=NIT_NULL);
11240 if (UNTAG_Bool(REGB0)) {
11241 } else {
11242 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2930);
11243 }
11244 REGB0 = ATTR_parser___ReduceAction58____goto(fra.me.REG[0]);
11245 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11246 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11247 stack_frame_head = fra.me.prev;
11248 return;
11249 }
11250 void parser___ReduceAction58___init(val_t p0, val_t p1, int* init_table){
11251 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction58].i;
11252 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11253 val_t REGB0;
11254 val_t tmp;
11255 if (init_table[itpos61]) return;
11256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11257 fra.me.file = LOCATE_parser;
11258 fra.me.line = 2933;
11259 fra.me.meth = LOCATE_parser___ReduceAction58___init;
11260 fra.me.has_broke = 0;
11261 fra.me.REG_size = 2;
11262 fra.me.REG[0] = NIT_NULL;
11263 fra.me.REG[1] = NIT_NULL;
11264 fra.me.REG[0] = p0;
11265 REGB0 = p1;
11266 /* ./parser//parser.nit:2933 */
11267 fra.me.REG[1] = fra.me.REG[0];
11268 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11269 ATTR_parser___ReduceAction58____goto(fra.me.REG[1]) = REGB0;
11270 stack_frame_head = fra.me.prev;
11271 init_table[itpos61] = 1;
11272 return;
11273 }
11274 void parser___ReduceAction59___action(val_t p0, val_t p1){
11275 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11276 val_t REGB0;
11277 val_t REGB1;
11278 val_t tmp;
11279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11280 fra.me.file = LOCATE_parser;
11281 fra.me.line = 2937;
11282 fra.me.meth = LOCATE_parser___ReduceAction59___action;
11283 fra.me.has_broke = 0;
11284 fra.me.REG_size = 5;
11285 fra.me.REG[0] = NIT_NULL;
11286 fra.me.REG[1] = NIT_NULL;
11287 fra.me.REG[2] = NIT_NULL;
11288 fra.me.REG[3] = NIT_NULL;
11289 fra.me.REG[4] = NIT_NULL;
11290 fra.me.REG[0] = p0;
11291 fra.me.REG[1] = p1;
11292 /* ./parser//parser.nit:2939 */
11293 fra.me.REG[2] = NIT_NULL;
11294 /* ./parser//parser.nit:2940 */
11295 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11296 /* ./parser//parser.nit:2941 */
11297 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11298 /* ./parser//parser.nit:2942 */
11299 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11300 /* ./parser//parser.nit:2943 */
11301 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11302 /* ./parser//parser.nit:2944 */
11303 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11304 /* ./parser//parser.nit:2945 */
11305 fra.me.REG[4] = NEW_Array_array___Array___init();
11306 /* ./parser//parser.nit:2947 */
11307 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11308 if (UNTAG_Bool(REGB0)) {
11309 } else {
11310 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11311 if (UNTAG_Bool(REGB1)) {
11312 REGB1 = TAG_Bool(false);
11313 REGB0 = REGB1;
11314 } else {
11315 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11316 REGB0 = REGB1;
11317 }
11318 }
11319 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11320 if (UNTAG_Bool(REGB0)) {
11321 /* ./parser//parser.nit:2948 */
11322 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
11323 }
11324 /* ./parser//parser.nit:2950 */
11325 fra.me.REG[2] = fra.me.REG[4];
11326 /* ./parser//parser.nit:2951 */
11327 REGB0 = TAG_Bool(ATTR_parser___ReduceAction59____goto(fra.me.REG[0])!=NIT_NULL);
11328 if (UNTAG_Bool(REGB0)) {
11329 } else {
11330 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2951);
11331 }
11332 REGB0 = ATTR_parser___ReduceAction59____goto(fra.me.REG[0]);
11333 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11334 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11335 stack_frame_head = fra.me.prev;
11336 return;
11337 }
11338 void parser___ReduceAction59___init(val_t p0, val_t p1, int* init_table){
11339 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction59].i;
11340 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11341 val_t REGB0;
11342 val_t tmp;
11343 if (init_table[itpos62]) return;
11344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11345 fra.me.file = LOCATE_parser;
11346 fra.me.line = 2954;
11347 fra.me.meth = LOCATE_parser___ReduceAction59___init;
11348 fra.me.has_broke = 0;
11349 fra.me.REG_size = 2;
11350 fra.me.REG[0] = NIT_NULL;
11351 fra.me.REG[1] = NIT_NULL;
11352 fra.me.REG[0] = p0;
11353 REGB0 = p1;
11354 /* ./parser//parser.nit:2954 */
11355 fra.me.REG[1] = fra.me.REG[0];
11356 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11357 ATTR_parser___ReduceAction59____goto(fra.me.REG[1]) = REGB0;
11358 stack_frame_head = fra.me.prev;
11359 init_table[itpos62] = 1;
11360 return;
11361 }
11362 void parser___ReduceAction60___action(val_t p0, val_t p1){
11363 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
11364 val_t REGB0;
11365 val_t REGB1;
11366 val_t tmp;
11367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11368 fra.me.file = LOCATE_parser;
11369 fra.me.line = 2958;
11370 fra.me.meth = LOCATE_parser___ReduceAction60___action;
11371 fra.me.has_broke = 0;
11372 fra.me.REG_size = 6;
11373 fra.me.REG[0] = NIT_NULL;
11374 fra.me.REG[1] = NIT_NULL;
11375 fra.me.REG[2] = NIT_NULL;
11376 fra.me.REG[3] = NIT_NULL;
11377 fra.me.REG[4] = NIT_NULL;
11378 fra.me.REG[5] = NIT_NULL;
11379 fra.me.REG[0] = p0;
11380 fra.me.REG[1] = p1;
11381 /* ./parser//parser.nit:2960 */
11382 fra.me.REG[2] = NIT_NULL;
11383 /* ./parser//parser.nit:2961 */
11384 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11385 /* ./parser//parser.nit:2962 */
11386 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11387 /* ./parser//parser.nit:2963 */
11388 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11389 /* ./parser//parser.nit:2964 */
11390 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11391 /* ./parser//parser.nit:2965 */
11392 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11393 /* ./parser//parser.nit:2966 */
11394 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11395 /* ./parser//parser.nit:2967 */
11396 fra.me.REG[5] = NEW_Array_array___Array___init();
11397 /* ./parser//parser.nit:2970 */
11398 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
11399 if (UNTAG_Bool(REGB0)) {
11400 } else {
11401 nit_abort("Assert failed", NULL, LOCATE_parser, 2970);
11402 }
11403 /* ./parser//parser.nit:2971 */
11404 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11405 if (UNTAG_Bool(REGB0)) {
11406 } else {
11407 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11408 if (UNTAG_Bool(REGB1)) {
11409 REGB1 = TAG_Bool(false);
11410 REGB0 = REGB1;
11411 } else {
11412 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
11413 REGB0 = REGB1;
11414 }
11415 }
11416 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11417 if (UNTAG_Bool(REGB0)) {
11418 /* ./parser//parser.nit:2972 */
11419 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
11420 }
11421 /* ./parser//parser.nit:2974 */
11422 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
11423 fra.me.REG[5] = fra.me.REG[3];
11424 /* ./parser//parser.nit:2975 */
11425 fra.me.REG[2] = fra.me.REG[5];
11426 /* ./parser//parser.nit:2976 */
11427 REGB0 = TAG_Bool(ATTR_parser___ReduceAction60____goto(fra.me.REG[0])!=NIT_NULL);
11428 if (UNTAG_Bool(REGB0)) {
11429 } else {
11430 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2976);
11431 }
11432 REGB0 = ATTR_parser___ReduceAction60____goto(fra.me.REG[0]);
11433 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11434 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11435 stack_frame_head = fra.me.prev;
11436 return;
11437 }
11438 void parser___ReduceAction60___init(val_t p0, val_t p1, int* init_table){
11439 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction60].i;
11440 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11441 val_t REGB0;
11442 val_t tmp;
11443 if (init_table[itpos63]) return;
11444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11445 fra.me.file = LOCATE_parser;
11446 fra.me.line = 2979;
11447 fra.me.meth = LOCATE_parser___ReduceAction60___init;
11448 fra.me.has_broke = 0;
11449 fra.me.REG_size = 2;
11450 fra.me.REG[0] = NIT_NULL;
11451 fra.me.REG[1] = NIT_NULL;
11452 fra.me.REG[0] = p0;
11453 REGB0 = p1;
11454 /* ./parser//parser.nit:2979 */
11455 fra.me.REG[1] = fra.me.REG[0];
11456 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11457 ATTR_parser___ReduceAction60____goto(fra.me.REG[1]) = REGB0;
11458 stack_frame_head = fra.me.prev;
11459 init_table[itpos63] = 1;
11460 return;
11461 }
11462 void parser___ReduceAction61___action(val_t p0, val_t p1){
11463 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11464 val_t REGB0;
11465 val_t tmp;
11466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11467 fra.me.file = LOCATE_parser;
11468 fra.me.line = 2983;
11469 fra.me.meth = LOCATE_parser___ReduceAction61___action;
11470 fra.me.has_broke = 0;
11471 fra.me.REG_size = 5;
11472 fra.me.REG[0] = NIT_NULL;
11473 fra.me.REG[1] = NIT_NULL;
11474 fra.me.REG[2] = NIT_NULL;
11475 fra.me.REG[3] = NIT_NULL;
11476 fra.me.REG[4] = NIT_NULL;
11477 fra.me.REG[0] = p0;
11478 fra.me.REG[1] = p1;
11479 /* ./parser//parser.nit:2985 */
11480 fra.me.REG[2] = NIT_NULL;
11481 /* ./parser//parser.nit:2986 */
11482 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11483 /* ./parser//parser.nit:2987 */
11484 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11485 /* ./parser//parser.nit:2988 */
11486 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11487 /* ./parser//parser.nit:2990 */
11488 fra.me.REG[2] = fra.me.REG[3];
11489 /* ./parser//parser.nit:2991 */
11490 REGB0 = TAG_Bool(ATTR_parser___ReduceAction61____goto(fra.me.REG[0])!=NIT_NULL);
11491 if (UNTAG_Bool(REGB0)) {
11492 } else {
11493 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2991);
11494 }
11495 REGB0 = ATTR_parser___ReduceAction61____goto(fra.me.REG[0]);
11496 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11497 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11498 stack_frame_head = fra.me.prev;
11499 return;
11500 }
11501 void parser___ReduceAction61___init(val_t p0, val_t p1, int* init_table){
11502 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction61].i;
11503 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11504 val_t REGB0;
11505 val_t tmp;
11506 if (init_table[itpos64]) return;
11507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11508 fra.me.file = LOCATE_parser;
11509 fra.me.line = 2994;
11510 fra.me.meth = LOCATE_parser___ReduceAction61___init;
11511 fra.me.has_broke = 0;
11512 fra.me.REG_size = 2;
11513 fra.me.REG[0] = NIT_NULL;
11514 fra.me.REG[1] = NIT_NULL;
11515 fra.me.REG[0] = p0;
11516 REGB0 = p1;
11517 /* ./parser//parser.nit:2994 */
11518 fra.me.REG[1] = fra.me.REG[0];
11519 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11520 ATTR_parser___ReduceAction61____goto(fra.me.REG[1]) = REGB0;
11521 stack_frame_head = fra.me.prev;
11522 init_table[itpos64] = 1;
11523 return;
11524 }
11525 void parser___ReduceAction62___action(val_t p0, val_t p1){
11526 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11527 val_t REGB0;
11528 val_t tmp;
11529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11530 fra.me.file = LOCATE_parser;
11531 fra.me.line = 2998;
11532 fra.me.meth = LOCATE_parser___ReduceAction62___action;
11533 fra.me.has_broke = 0;
11534 fra.me.REG_size = 4;
11535 fra.me.REG[0] = NIT_NULL;
11536 fra.me.REG[1] = NIT_NULL;
11537 fra.me.REG[2] = NIT_NULL;
11538 fra.me.REG[3] = NIT_NULL;
11539 fra.me.REG[0] = p0;
11540 fra.me.REG[1] = p1;
11541 /* ./parser//parser.nit:3000 */
11542 fra.me.REG[2] = NIT_NULL;
11543 /* ./parser//parser.nit:3001 */
11544 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11545 /* ./parser//parser.nit:3003 */
11546 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
11547 if (UNTAG_Bool(REGB0)) {
11548 } else {
11549 nit_abort("Assert failed", NULL, LOCATE_parser, 3003);
11550 }
11551 /* ./parser//parser.nit:3004 */
11552 fra.me.REG[3] = NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(fra.me.REG[3], NIT_NULL);
11553 /* ./parser//parser.nit:3008 */
11554 fra.me.REG[2] = fra.me.REG[3];
11555 /* ./parser//parser.nit:3009 */
11556 REGB0 = TAG_Bool(ATTR_parser___ReduceAction62____goto(fra.me.REG[0])!=NIT_NULL);
11557 if (UNTAG_Bool(REGB0)) {
11558 } else {
11559 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3009);
11560 }
11561 REGB0 = ATTR_parser___ReduceAction62____goto(fra.me.REG[0]);
11562 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11563 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11564 stack_frame_head = fra.me.prev;
11565 return;
11566 }
11567 void parser___ReduceAction62___init(val_t p0, val_t p1, int* init_table){
11568 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction62].i;
11569 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11570 val_t REGB0;
11571 val_t tmp;
11572 if (init_table[itpos65]) return;
11573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11574 fra.me.file = LOCATE_parser;
11575 fra.me.line = 3012;
11576 fra.me.meth = LOCATE_parser___ReduceAction62___init;
11577 fra.me.has_broke = 0;
11578 fra.me.REG_size = 2;
11579 fra.me.REG[0] = NIT_NULL;
11580 fra.me.REG[1] = NIT_NULL;
11581 fra.me.REG[0] = p0;
11582 REGB0 = p1;
11583 /* ./parser//parser.nit:3012 */
11584 fra.me.REG[1] = fra.me.REG[0];
11585 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11586 ATTR_parser___ReduceAction62____goto(fra.me.REG[1]) = REGB0;
11587 stack_frame_head = fra.me.prev;
11588 init_table[itpos65] = 1;
11589 return;
11590 }
11591 void parser___ReduceAction63___action(val_t p0, val_t p1){
11592 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
11593 val_t REGB0;
11594 val_t tmp;
11595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11596 fra.me.file = LOCATE_parser;
11597 fra.me.line = 3016;
11598 fra.me.meth = LOCATE_parser___ReduceAction63___action;
11599 fra.me.has_broke = 0;
11600 fra.me.REG_size = 5;
11601 fra.me.REG[0] = NIT_NULL;
11602 fra.me.REG[1] = NIT_NULL;
11603 fra.me.REG[2] = NIT_NULL;
11604 fra.me.REG[3] = NIT_NULL;
11605 fra.me.REG[4] = NIT_NULL;
11606 fra.me.REG[0] = p0;
11607 fra.me.REG[1] = p1;
11608 /* ./parser//parser.nit:3018 */
11609 fra.me.REG[2] = NIT_NULL;
11610 /* ./parser//parser.nit:3019 */
11611 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11612 /* ./parser//parser.nit:3020 */
11613 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11614 /* ./parser//parser.nit:3022 */
11615 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
11616 if (UNTAG_Bool(REGB0)) {
11617 } else {
11618 nit_abort("Assert failed", NULL, LOCATE_parser, 3022);
11619 }
11620 /* ./parser//parser.nit:3024 */
11621 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
11622 if (UNTAG_Bool(REGB0)) {
11623 } else {
11624 nit_abort("Assert failed", NULL, LOCATE_parser, 3024);
11625 }
11626 /* ./parser//parser.nit:3025 */
11627 fra.me.REG[3] = NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(fra.me.REG[4], fra.me.REG[3]);
11628 /* ./parser//parser.nit:3029 */
11629 fra.me.REG[2] = fra.me.REG[3];
11630 /* ./parser//parser.nit:3030 */
11631 REGB0 = TAG_Bool(ATTR_parser___ReduceAction63____goto(fra.me.REG[0])!=NIT_NULL);
11632 if (UNTAG_Bool(REGB0)) {
11633 } else {
11634 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3030);
11635 }
11636 REGB0 = ATTR_parser___ReduceAction63____goto(fra.me.REG[0]);
11637 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11638 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11639 stack_frame_head = fra.me.prev;
11640 return;
11641 }
11642 void parser___ReduceAction63___init(val_t p0, val_t p1, int* init_table){
11643 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction63].i;
11644 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11645 val_t REGB0;
11646 val_t tmp;
11647 if (init_table[itpos66]) return;
11648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11649 fra.me.file = LOCATE_parser;
11650 fra.me.line = 3033;
11651 fra.me.meth = LOCATE_parser___ReduceAction63___init;
11652 fra.me.has_broke = 0;
11653 fra.me.REG_size = 2;
11654 fra.me.REG[0] = NIT_NULL;
11655 fra.me.REG[1] = NIT_NULL;
11656 fra.me.REG[0] = p0;
11657 REGB0 = p1;
11658 /* ./parser//parser.nit:3033 */
11659 fra.me.REG[1] = fra.me.REG[0];
11660 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11661 ATTR_parser___ReduceAction63____goto(fra.me.REG[1]) = REGB0;
11662 stack_frame_head = fra.me.prev;
11663 init_table[itpos66] = 1;
11664 return;
11665 }
11666 void parser___ReduceAction64___action(val_t p0, val_t p1){
11667 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
11668 val_t REGB0;
11669 val_t tmp;
11670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11671 fra.me.file = LOCATE_parser;
11672 fra.me.line = 3037;
11673 fra.me.meth = LOCATE_parser___ReduceAction64___action;
11674 fra.me.has_broke = 0;
11675 fra.me.REG_size = 6;
11676 fra.me.REG[0] = NIT_NULL;
11677 fra.me.REG[1] = NIT_NULL;
11678 fra.me.REG[2] = NIT_NULL;
11679 fra.me.REG[3] = NIT_NULL;
11680 fra.me.REG[4] = NIT_NULL;
11681 fra.me.REG[5] = NIT_NULL;
11682 fra.me.REG[0] = p0;
11683 fra.me.REG[1] = p1;
11684 /* ./parser//parser.nit:3039 */
11685 fra.me.REG[2] = NIT_NULL;
11686 /* ./parser//parser.nit:3040 */
11687 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11688 /* ./parser//parser.nit:3041 */
11689 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11690 /* ./parser//parser.nit:3042 */
11691 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11692 /* ./parser//parser.nit:3043 */
11693 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11694 /* ./parser//parser.nit:3045 */
11695 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwspecial, ID_TKwspecial)) /*cast nullable TKwspecial*/;
11696 if (UNTAG_Bool(REGB0)) {
11697 } else {
11698 nit_abort("Assert failed", NULL, LOCATE_parser, 3045);
11699 }
11700 /* ./parser//parser.nit:3047 */
11701 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
11702 if (UNTAG_Bool(REGB0)) {
11703 } else {
11704 nit_abort("Assert failed", NULL, LOCATE_parser, 3047);
11705 }
11706 /* ./parser//parser.nit:3048 */
11707 fra.me.REG[3] = NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
11708 /* ./parser//parser.nit:3053 */
11709 fra.me.REG[2] = fra.me.REG[3];
11710 /* ./parser//parser.nit:3054 */
11711 REGB0 = TAG_Bool(ATTR_parser___ReduceAction64____goto(fra.me.REG[0])!=NIT_NULL);
11712 if (UNTAG_Bool(REGB0)) {
11713 } else {
11714 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3054);
11715 }
11716 REGB0 = ATTR_parser___ReduceAction64____goto(fra.me.REG[0]);
11717 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11718 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11719 stack_frame_head = fra.me.prev;
11720 return;
11721 }
11722 void parser___ReduceAction64___init(val_t p0, val_t p1, int* init_table){
11723 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction64].i;
11724 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11725 val_t REGB0;
11726 val_t tmp;
11727 if (init_table[itpos67]) return;
11728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11729 fra.me.file = LOCATE_parser;
11730 fra.me.line = 3057;
11731 fra.me.meth = LOCATE_parser___ReduceAction64___init;
11732 fra.me.has_broke = 0;
11733 fra.me.REG_size = 2;
11734 fra.me.REG[0] = NIT_NULL;
11735 fra.me.REG[1] = NIT_NULL;
11736 fra.me.REG[0] = p0;
11737 REGB0 = p1;
11738 /* ./parser//parser.nit:3057 */
11739 fra.me.REG[1] = fra.me.REG[0];
11740 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11741 ATTR_parser___ReduceAction64____goto(fra.me.REG[1]) = REGB0;
11742 stack_frame_head = fra.me.prev;
11743 init_table[itpos67] = 1;
11744 return;
11745 }
11746 void parser___ReduceAction65___action(val_t p0, val_t p1){
11747 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
11748 val_t REGB0;
11749 val_t tmp;
11750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11751 fra.me.file = LOCATE_parser;
11752 fra.me.line = 3061;
11753 fra.me.meth = LOCATE_parser___ReduceAction65___action;
11754 fra.me.has_broke = 0;
11755 fra.me.REG_size = 6;
11756 fra.me.REG[0] = NIT_NULL;
11757 fra.me.REG[1] = NIT_NULL;
11758 fra.me.REG[2] = NIT_NULL;
11759 fra.me.REG[3] = NIT_NULL;
11760 fra.me.REG[4] = NIT_NULL;
11761 fra.me.REG[5] = NIT_NULL;
11762 fra.me.REG[0] = p0;
11763 fra.me.REG[1] = p1;
11764 /* ./parser//parser.nit:3063 */
11765 fra.me.REG[2] = NIT_NULL;
11766 /* ./parser//parser.nit:3064 */
11767 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11768 /* ./parser//parser.nit:3065 */
11769 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11770 /* ./parser//parser.nit:3066 */
11771 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11772 /* ./parser//parser.nit:3067 */
11773 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11774 /* ./parser//parser.nit:3069 */
11775 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwsuper, ID_TKwsuper)) /*cast nullable TKwsuper*/;
11776 if (UNTAG_Bool(REGB0)) {
11777 } else {
11778 nit_abort("Assert failed", NULL, LOCATE_parser, 3069);
11779 }
11780 /* ./parser//parser.nit:3071 */
11781 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
11782 if (UNTAG_Bool(REGB0)) {
11783 } else {
11784 nit_abort("Assert failed", NULL, LOCATE_parser, 3071);
11785 }
11786 /* ./parser//parser.nit:3072 */
11787 fra.me.REG[3] = NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
11788 /* ./parser//parser.nit:3077 */
11789 fra.me.REG[2] = fra.me.REG[3];
11790 /* ./parser//parser.nit:3078 */
11791 REGB0 = TAG_Bool(ATTR_parser___ReduceAction65____goto(fra.me.REG[0])!=NIT_NULL);
11792 if (UNTAG_Bool(REGB0)) {
11793 } else {
11794 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3078);
11795 }
11796 REGB0 = ATTR_parser___ReduceAction65____goto(fra.me.REG[0]);
11797 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11798 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11799 stack_frame_head = fra.me.prev;
11800 return;
11801 }
11802 void parser___ReduceAction65___init(val_t p0, val_t p1, int* init_table){
11803 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction65].i;
11804 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11805 val_t REGB0;
11806 val_t tmp;
11807 if (init_table[itpos68]) return;
11808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11809 fra.me.file = LOCATE_parser;
11810 fra.me.line = 3081;
11811 fra.me.meth = LOCATE_parser___ReduceAction65___init;
11812 fra.me.has_broke = 0;
11813 fra.me.REG_size = 2;
11814 fra.me.REG[0] = NIT_NULL;
11815 fra.me.REG[1] = NIT_NULL;
11816 fra.me.REG[0] = p0;
11817 REGB0 = p1;
11818 /* ./parser//parser.nit:3081 */
11819 fra.me.REG[1] = fra.me.REG[0];
11820 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11821 ATTR_parser___ReduceAction65____goto(fra.me.REG[1]) = REGB0;
11822 stack_frame_head = fra.me.prev;
11823 init_table[itpos68] = 1;
11824 return;
11825 }
11826 void parser___ReduceAction66___action(val_t p0, val_t p1){
11827 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11828 val_t REGB0;
11829 val_t tmp;
11830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11831 fra.me.file = LOCATE_parser;
11832 fra.me.line = 3085;
11833 fra.me.meth = LOCATE_parser___ReduceAction66___action;
11834 fra.me.has_broke = 0;
11835 fra.me.REG_size = 4;
11836 fra.me.REG[0] = NIT_NULL;
11837 fra.me.REG[1] = NIT_NULL;
11838 fra.me.REG[2] = NIT_NULL;
11839 fra.me.REG[3] = NIT_NULL;
11840 fra.me.REG[0] = p0;
11841 fra.me.REG[1] = p1;
11842 /* ./parser//parser.nit:3087 */
11843 fra.me.REG[2] = NIT_NULL;
11844 /* ./parser//parser.nit:3088 */
11845 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11846 /* ./parser//parser.nit:3089 */
11847 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11848 /* ./parser//parser.nit:3091 */
11849 fra.me.REG[2] = fra.me.REG[3];
11850 /* ./parser//parser.nit:3092 */
11851 REGB0 = TAG_Bool(ATTR_parser___ReduceAction66____goto(fra.me.REG[0])!=NIT_NULL);
11852 if (UNTAG_Bool(REGB0)) {
11853 } else {
11854 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3092);
11855 }
11856 REGB0 = ATTR_parser___ReduceAction66____goto(fra.me.REG[0]);
11857 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11858 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11859 stack_frame_head = fra.me.prev;
11860 return;
11861 }
11862 void parser___ReduceAction66___init(val_t p0, val_t p1, int* init_table){
11863 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction66].i;
11864 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11865 val_t REGB0;
11866 val_t tmp;
11867 if (init_table[itpos69]) return;
11868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11869 fra.me.file = LOCATE_parser;
11870 fra.me.line = 3095;
11871 fra.me.meth = LOCATE_parser___ReduceAction66___init;
11872 fra.me.has_broke = 0;
11873 fra.me.REG_size = 2;
11874 fra.me.REG[0] = NIT_NULL;
11875 fra.me.REG[1] = NIT_NULL;
11876 fra.me.REG[0] = p0;
11877 REGB0 = p1;
11878 /* ./parser//parser.nit:3095 */
11879 fra.me.REG[1] = fra.me.REG[0];
11880 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11881 ATTR_parser___ReduceAction66____goto(fra.me.REG[1]) = REGB0;
11882 stack_frame_head = fra.me.prev;
11883 init_table[itpos69] = 1;
11884 return;
11885 }
11886 void parser___ReduceAction67___action(val_t p0, val_t p1){
11887 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
11888 val_t REGB0;
11889 val_t tmp;
11890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11891 fra.me.file = LOCATE_parser;
11892 fra.me.line = 3099;
11893 fra.me.meth = LOCATE_parser___ReduceAction67___action;
11894 fra.me.has_broke = 0;
11895 fra.me.REG_size = 9;
11896 fra.me.REG[0] = NIT_NULL;
11897 fra.me.REG[1] = NIT_NULL;
11898 fra.me.REG[2] = NIT_NULL;
11899 fra.me.REG[3] = NIT_NULL;
11900 fra.me.REG[4] = NIT_NULL;
11901 fra.me.REG[5] = NIT_NULL;
11902 fra.me.REG[6] = NIT_NULL;
11903 fra.me.REG[7] = NIT_NULL;
11904 fra.me.REG[8] = NIT_NULL;
11905 fra.me.REG[0] = p0;
11906 fra.me.REG[1] = p1;
11907 /* ./parser//parser.nit:3101 */
11908 fra.me.REG[2] = NIT_NULL;
11909 /* ./parser//parser.nit:3102 */
11910 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11911 /* ./parser//parser.nit:3103 */
11912 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11913 /* ./parser//parser.nit:3104 */
11914 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11915 /* ./parser//parser.nit:3105 */
11916 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11917 /* ./parser//parser.nit:3106 */
11918 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11919 /* ./parser//parser.nit:3107 */
11920 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11921 /* ./parser//parser.nit:3108 */
11922 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
11923 /* ./parser//parser.nit:3110 */
11924 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
11925 if (UNTAG_Bool(REGB0)) {
11926 } else {
11927 nit_abort("Assert failed", NULL, LOCATE_parser, 3110);
11928 }
11929 /* ./parser//parser.nit:3112 */
11930 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
11931 if (UNTAG_Bool(REGB0)) {
11932 } else {
11933 nit_abort("Assert failed", NULL, LOCATE_parser, 3112);
11934 }
11935 /* ./parser//parser.nit:3114 */
11936 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
11937 if (UNTAG_Bool(REGB0)) {
11938 } else {
11939 nit_abort("Assert failed", NULL, LOCATE_parser, 3114);
11940 }
11941 /* ./parser//parser.nit:3116 */
11942 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
11943 if (UNTAG_Bool(REGB0)) {
11944 } else {
11945 nit_abort("Assert failed", NULL, LOCATE_parser, 3116);
11946 }
11947 /* ./parser//parser.nit:3118 */
11948 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
11949 if (UNTAG_Bool(REGB0)) {
11950 } else {
11951 nit_abort("Assert failed", NULL, LOCATE_parser, 3118);
11952 }
11953 /* ./parser//parser.nit:3120 */
11954 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
11955 if (UNTAG_Bool(REGB0)) {
11956 } else {
11957 nit_abort("Assert failed", NULL, LOCATE_parser, 3120);
11958 }
11959 /* ./parser//parser.nit:3121 */
11960 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]);
11961 /* ./parser//parser.nit:3130 */
11962 fra.me.REG[2] = fra.me.REG[3];
11963 /* ./parser//parser.nit:3131 */
11964 REGB0 = TAG_Bool(ATTR_parser___ReduceAction67____goto(fra.me.REG[0])!=NIT_NULL);
11965 if (UNTAG_Bool(REGB0)) {
11966 } else {
11967 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3131);
11968 }
11969 REGB0 = ATTR_parser___ReduceAction67____goto(fra.me.REG[0]);
11970 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
11971 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
11972 stack_frame_head = fra.me.prev;
11973 return;
11974 }
11975 void parser___ReduceAction67___init(val_t p0, val_t p1, int* init_table){
11976 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction67].i;
11977 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11978 val_t REGB0;
11979 val_t tmp;
11980 if (init_table[itpos70]) return;
11981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11982 fra.me.file = LOCATE_parser;
11983 fra.me.line = 3134;
11984 fra.me.meth = LOCATE_parser___ReduceAction67___init;
11985 fra.me.has_broke = 0;
11986 fra.me.REG_size = 2;
11987 fra.me.REG[0] = NIT_NULL;
11988 fra.me.REG[1] = NIT_NULL;
11989 fra.me.REG[0] = p0;
11990 REGB0 = p1;
11991 /* ./parser//parser.nit:3134 */
11992 fra.me.REG[1] = fra.me.REG[0];
11993 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
11994 ATTR_parser___ReduceAction67____goto(fra.me.REG[1]) = REGB0;
11995 stack_frame_head = fra.me.prev;
11996 init_table[itpos70] = 1;
11997 return;
11998 }
11999 void parser___ReduceAction68___action(val_t p0, val_t p1){
12000 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
12001 val_t REGB0;
12002 val_t tmp;
12003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12004 fra.me.file = LOCATE_parser;
12005 fra.me.line = 3138;
12006 fra.me.meth = LOCATE_parser___ReduceAction68___action;
12007 fra.me.has_broke = 0;
12008 fra.me.REG_size = 10;
12009 fra.me.REG[0] = NIT_NULL;
12010 fra.me.REG[1] = NIT_NULL;
12011 fra.me.REG[2] = NIT_NULL;
12012 fra.me.REG[3] = NIT_NULL;
12013 fra.me.REG[4] = NIT_NULL;
12014 fra.me.REG[5] = NIT_NULL;
12015 fra.me.REG[6] = NIT_NULL;
12016 fra.me.REG[7] = NIT_NULL;
12017 fra.me.REG[8] = NIT_NULL;
12018 fra.me.REG[9] = NIT_NULL;
12019 fra.me.REG[0] = p0;
12020 fra.me.REG[1] = p1;
12021 /* ./parser//parser.nit:3140 */
12022 fra.me.REG[2] = NIT_NULL;
12023 /* ./parser//parser.nit:3141 */
12024 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12025 /* ./parser//parser.nit:3142 */
12026 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12027 /* ./parser//parser.nit:3143 */
12028 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12029 /* ./parser//parser.nit:3144 */
12030 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12031 /* ./parser//parser.nit:3145 */
12032 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12033 /* ./parser//parser.nit:3146 */
12034 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12035 /* ./parser//parser.nit:3147 */
12036 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12037 /* ./parser//parser.nit:3148 */
12038 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12039 /* ./parser//parser.nit:3150 */
12040 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12041 if (UNTAG_Bool(REGB0)) {
12042 } else {
12043 nit_abort("Assert failed", NULL, LOCATE_parser, 3150);
12044 }
12045 /* ./parser//parser.nit:3152 */
12046 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12047 if (UNTAG_Bool(REGB0)) {
12048 } else {
12049 nit_abort("Assert failed", NULL, LOCATE_parser, 3152);
12050 }
12051 /* ./parser//parser.nit:3154 */
12052 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12053 if (UNTAG_Bool(REGB0)) {
12054 } else {
12055 nit_abort("Assert failed", NULL, LOCATE_parser, 3154);
12056 }
12057 /* ./parser//parser.nit:3156 */
12058 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12059 if (UNTAG_Bool(REGB0)) {
12060 } else {
12061 nit_abort("Assert failed", NULL, LOCATE_parser, 3156);
12062 }
12063 /* ./parser//parser.nit:3158 */
12064 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12065 if (UNTAG_Bool(REGB0)) {
12066 } else {
12067 nit_abort("Assert failed", NULL, LOCATE_parser, 3158);
12068 }
12069 /* ./parser//parser.nit:3160 */
12070 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12071 if (UNTAG_Bool(REGB0)) {
12072 } else {
12073 nit_abort("Assert failed", NULL, LOCATE_parser, 3160);
12074 }
12075 /* ./parser//parser.nit:3162 */
12076 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12077 if (UNTAG_Bool(REGB0)) {
12078 } else {
12079 nit_abort("Assert failed", NULL, LOCATE_parser, 3162);
12080 }
12081 /* ./parser//parser.nit:3163 */
12082 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]);
12083 /* ./parser//parser.nit:3172 */
12084 fra.me.REG[2] = fra.me.REG[3];
12085 /* ./parser//parser.nit:3173 */
12086 REGB0 = TAG_Bool(ATTR_parser___ReduceAction68____goto(fra.me.REG[0])!=NIT_NULL);
12087 if (UNTAG_Bool(REGB0)) {
12088 } else {
12089 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3173);
12090 }
12091 REGB0 = ATTR_parser___ReduceAction68____goto(fra.me.REG[0]);
12092 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12093 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12094 stack_frame_head = fra.me.prev;
12095 return;
12096 }
12097 void parser___ReduceAction68___init(val_t p0, val_t p1, int* init_table){
12098 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction68].i;
12099 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12100 val_t REGB0;
12101 val_t tmp;
12102 if (init_table[itpos71]) return;
12103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12104 fra.me.file = LOCATE_parser;
12105 fra.me.line = 3176;
12106 fra.me.meth = LOCATE_parser___ReduceAction68___init;
12107 fra.me.has_broke = 0;
12108 fra.me.REG_size = 2;
12109 fra.me.REG[0] = NIT_NULL;
12110 fra.me.REG[1] = NIT_NULL;
12111 fra.me.REG[0] = p0;
12112 REGB0 = p1;
12113 /* ./parser//parser.nit:3176 */
12114 fra.me.REG[1] = fra.me.REG[0];
12115 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12116 ATTR_parser___ReduceAction68____goto(fra.me.REG[1]) = REGB0;
12117 stack_frame_head = fra.me.prev;
12118 init_table[itpos71] = 1;
12119 return;
12120 }
12121 void parser___ReduceAction69___action(val_t p0, val_t p1){
12122 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12123 val_t REGB0;
12124 val_t tmp;
12125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12126 fra.me.file = LOCATE_parser;
12127 fra.me.line = 3180;
12128 fra.me.meth = LOCATE_parser___ReduceAction69___action;
12129 fra.me.has_broke = 0;
12130 fra.me.REG_size = 9;
12131 fra.me.REG[0] = NIT_NULL;
12132 fra.me.REG[1] = NIT_NULL;
12133 fra.me.REG[2] = NIT_NULL;
12134 fra.me.REG[3] = NIT_NULL;
12135 fra.me.REG[4] = NIT_NULL;
12136 fra.me.REG[5] = NIT_NULL;
12137 fra.me.REG[6] = NIT_NULL;
12138 fra.me.REG[7] = NIT_NULL;
12139 fra.me.REG[8] = NIT_NULL;
12140 fra.me.REG[0] = p0;
12141 fra.me.REG[1] = p1;
12142 /* ./parser//parser.nit:3182 */
12143 fra.me.REG[2] = NIT_NULL;
12144 /* ./parser//parser.nit:3183 */
12145 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12146 /* ./parser//parser.nit:3184 */
12147 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12148 /* ./parser//parser.nit:3185 */
12149 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12150 /* ./parser//parser.nit:3186 */
12151 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12152 /* ./parser//parser.nit:3187 */
12153 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12154 /* ./parser//parser.nit:3188 */
12155 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12156 /* ./parser//parser.nit:3189 */
12157 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12158 /* ./parser//parser.nit:3190 */
12159 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12160 /* ./parser//parser.nit:3192 */
12161 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12162 if (UNTAG_Bool(REGB0)) {
12163 } else {
12164 nit_abort("Assert failed", NULL, LOCATE_parser, 3192);
12165 }
12166 /* ./parser//parser.nit:3194 */
12167 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12168 if (UNTAG_Bool(REGB0)) {
12169 } else {
12170 nit_abort("Assert failed", NULL, LOCATE_parser, 3194);
12171 }
12172 /* ./parser//parser.nit:3196 */
12173 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12174 if (UNTAG_Bool(REGB0)) {
12175 } else {
12176 nit_abort("Assert failed", NULL, LOCATE_parser, 3196);
12177 }
12178 /* ./parser//parser.nit:3198 */
12179 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12180 if (UNTAG_Bool(REGB0)) {
12181 } else {
12182 nit_abort("Assert failed", NULL, LOCATE_parser, 3198);
12183 }
12184 /* ./parser//parser.nit:3200 */
12185 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12186 if (UNTAG_Bool(REGB0)) {
12187 } else {
12188 nit_abort("Assert failed", NULL, LOCATE_parser, 3200);
12189 }
12190 /* ./parser//parser.nit:3202 */
12191 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12192 if (UNTAG_Bool(REGB0)) {
12193 } else {
12194 nit_abort("Assert failed", NULL, LOCATE_parser, 3202);
12195 }
12196 /* ./parser//parser.nit:3203 */
12197 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]);
12198 /* ./parser//parser.nit:3212 */
12199 fra.me.REG[2] = fra.me.REG[3];
12200 /* ./parser//parser.nit:3213 */
12201 REGB0 = TAG_Bool(ATTR_parser___ReduceAction69____goto(fra.me.REG[0])!=NIT_NULL);
12202 if (UNTAG_Bool(REGB0)) {
12203 } else {
12204 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3213);
12205 }
12206 REGB0 = ATTR_parser___ReduceAction69____goto(fra.me.REG[0]);
12207 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12208 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12209 stack_frame_head = fra.me.prev;
12210 return;
12211 }
12212 void parser___ReduceAction69___init(val_t p0, val_t p1, int* init_table){
12213 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction69].i;
12214 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12215 val_t REGB0;
12216 val_t tmp;
12217 if (init_table[itpos72]) return;
12218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12219 fra.me.file = LOCATE_parser;
12220 fra.me.line = 3216;
12221 fra.me.meth = LOCATE_parser___ReduceAction69___init;
12222 fra.me.has_broke = 0;
12223 fra.me.REG_size = 2;
12224 fra.me.REG[0] = NIT_NULL;
12225 fra.me.REG[1] = NIT_NULL;
12226 fra.me.REG[0] = p0;
12227 REGB0 = p1;
12228 /* ./parser//parser.nit:3216 */
12229 fra.me.REG[1] = fra.me.REG[0];
12230 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12231 ATTR_parser___ReduceAction69____goto(fra.me.REG[1]) = REGB0;
12232 stack_frame_head = fra.me.prev;
12233 init_table[itpos72] = 1;
12234 return;
12235 }
12236 void parser___ReduceAction70___action(val_t p0, val_t p1){
12237 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
12238 val_t REGB0;
12239 val_t tmp;
12240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12241 fra.me.file = LOCATE_parser;
12242 fra.me.line = 3220;
12243 fra.me.meth = LOCATE_parser___ReduceAction70___action;
12244 fra.me.has_broke = 0;
12245 fra.me.REG_size = 10;
12246 fra.me.REG[0] = NIT_NULL;
12247 fra.me.REG[1] = NIT_NULL;
12248 fra.me.REG[2] = NIT_NULL;
12249 fra.me.REG[3] = NIT_NULL;
12250 fra.me.REG[4] = NIT_NULL;
12251 fra.me.REG[5] = NIT_NULL;
12252 fra.me.REG[6] = NIT_NULL;
12253 fra.me.REG[7] = NIT_NULL;
12254 fra.me.REG[8] = NIT_NULL;
12255 fra.me.REG[9] = NIT_NULL;
12256 fra.me.REG[0] = p0;
12257 fra.me.REG[1] = p1;
12258 /* ./parser//parser.nit:3222 */
12259 fra.me.REG[2] = NIT_NULL;
12260 /* ./parser//parser.nit:3223 */
12261 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12262 /* ./parser//parser.nit:3224 */
12263 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12264 /* ./parser//parser.nit:3225 */
12265 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12266 /* ./parser//parser.nit:3226 */
12267 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12268 /* ./parser//parser.nit:3227 */
12269 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12270 /* ./parser//parser.nit:3228 */
12271 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12272 /* ./parser//parser.nit:3229 */
12273 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12274 /* ./parser//parser.nit:3230 */
12275 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12276 /* ./parser//parser.nit:3231 */
12277 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12278 /* ./parser//parser.nit:3233 */
12279 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12280 if (UNTAG_Bool(REGB0)) {
12281 } else {
12282 nit_abort("Assert failed", NULL, LOCATE_parser, 3233);
12283 }
12284 /* ./parser//parser.nit:3235 */
12285 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12286 if (UNTAG_Bool(REGB0)) {
12287 } else {
12288 nit_abort("Assert failed", NULL, LOCATE_parser, 3235);
12289 }
12290 /* ./parser//parser.nit:3237 */
12291 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12292 if (UNTAG_Bool(REGB0)) {
12293 } else {
12294 nit_abort("Assert failed", NULL, LOCATE_parser, 3237);
12295 }
12296 /* ./parser//parser.nit:3239 */
12297 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12298 if (UNTAG_Bool(REGB0)) {
12299 } else {
12300 nit_abort("Assert failed", NULL, LOCATE_parser, 3239);
12301 }
12302 /* ./parser//parser.nit:3241 */
12303 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12304 if (UNTAG_Bool(REGB0)) {
12305 } else {
12306 nit_abort("Assert failed", NULL, LOCATE_parser, 3241);
12307 }
12308 /* ./parser//parser.nit:3243 */
12309 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12310 if (UNTAG_Bool(REGB0)) {
12311 } else {
12312 nit_abort("Assert failed", NULL, LOCATE_parser, 3243);
12313 }
12314 /* ./parser//parser.nit:3245 */
12315 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12316 if (UNTAG_Bool(REGB0)) {
12317 } else {
12318 nit_abort("Assert failed", NULL, LOCATE_parser, 3245);
12319 }
12320 /* ./parser//parser.nit:3246 */
12321 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]);
12322 /* ./parser//parser.nit:3255 */
12323 fra.me.REG[2] = fra.me.REG[3];
12324 /* ./parser//parser.nit:3256 */
12325 REGB0 = TAG_Bool(ATTR_parser___ReduceAction70____goto(fra.me.REG[0])!=NIT_NULL);
12326 if (UNTAG_Bool(REGB0)) {
12327 } else {
12328 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3256);
12329 }
12330 REGB0 = ATTR_parser___ReduceAction70____goto(fra.me.REG[0]);
12331 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12332 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12333 stack_frame_head = fra.me.prev;
12334 return;
12335 }
12336 void parser___ReduceAction70___init(val_t p0, val_t p1, int* init_table){
12337 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction70].i;
12338 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12339 val_t REGB0;
12340 val_t tmp;
12341 if (init_table[itpos73]) return;
12342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12343 fra.me.file = LOCATE_parser;
12344 fra.me.line = 3259;
12345 fra.me.meth = LOCATE_parser___ReduceAction70___init;
12346 fra.me.has_broke = 0;
12347 fra.me.REG_size = 2;
12348 fra.me.REG[0] = NIT_NULL;
12349 fra.me.REG[1] = NIT_NULL;
12350 fra.me.REG[0] = p0;
12351 REGB0 = p1;
12352 /* ./parser//parser.nit:3259 */
12353 fra.me.REG[1] = fra.me.REG[0];
12354 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12355 ATTR_parser___ReduceAction70____goto(fra.me.REG[1]) = REGB0;
12356 stack_frame_head = fra.me.prev;
12357 init_table[itpos73] = 1;
12358 return;
12359 }
12360 void parser___ReduceAction71___action(val_t p0, val_t p1){
12361 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12362 val_t REGB0;
12363 val_t tmp;
12364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12365 fra.me.file = LOCATE_parser;
12366 fra.me.line = 3263;
12367 fra.me.meth = LOCATE_parser___ReduceAction71___action;
12368 fra.me.has_broke = 0;
12369 fra.me.REG_size = 9;
12370 fra.me.REG[0] = NIT_NULL;
12371 fra.me.REG[1] = NIT_NULL;
12372 fra.me.REG[2] = NIT_NULL;
12373 fra.me.REG[3] = NIT_NULL;
12374 fra.me.REG[4] = NIT_NULL;
12375 fra.me.REG[5] = NIT_NULL;
12376 fra.me.REG[6] = NIT_NULL;
12377 fra.me.REG[7] = NIT_NULL;
12378 fra.me.REG[8] = NIT_NULL;
12379 fra.me.REG[0] = p0;
12380 fra.me.REG[1] = p1;
12381 /* ./parser//parser.nit:3265 */
12382 fra.me.REG[2] = NIT_NULL;
12383 /* ./parser//parser.nit:3266 */
12384 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12385 /* ./parser//parser.nit:3267 */
12386 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12387 /* ./parser//parser.nit:3268 */
12388 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12389 /* ./parser//parser.nit:3269 */
12390 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12391 /* ./parser//parser.nit:3270 */
12392 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12393 /* ./parser//parser.nit:3271 */
12394 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12395 /* ./parser//parser.nit:3272 */
12396 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12397 /* ./parser//parser.nit:3273 */
12398 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12399 /* ./parser//parser.nit:3275 */
12400 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12401 if (UNTAG_Bool(REGB0)) {
12402 } else {
12403 nit_abort("Assert failed", NULL, LOCATE_parser, 3275);
12404 }
12405 /* ./parser//parser.nit:3277 */
12406 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12407 if (UNTAG_Bool(REGB0)) {
12408 } else {
12409 nit_abort("Assert failed", NULL, LOCATE_parser, 3277);
12410 }
12411 /* ./parser//parser.nit:3279 */
12412 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12413 if (UNTAG_Bool(REGB0)) {
12414 } else {
12415 nit_abort("Assert failed", NULL, LOCATE_parser, 3279);
12416 }
12417 /* ./parser//parser.nit:3281 */
12418 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12419 if (UNTAG_Bool(REGB0)) {
12420 } else {
12421 nit_abort("Assert failed", NULL, LOCATE_parser, 3281);
12422 }
12423 /* ./parser//parser.nit:3283 */
12424 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12425 if (UNTAG_Bool(REGB0)) {
12426 } else {
12427 nit_abort("Assert failed", NULL, LOCATE_parser, 3283);
12428 }
12429 /* ./parser//parser.nit:3285 */
12430 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12431 if (UNTAG_Bool(REGB0)) {
12432 } else {
12433 nit_abort("Assert failed", NULL, LOCATE_parser, 3285);
12434 }
12435 /* ./parser//parser.nit:3286 */
12436 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]);
12437 /* ./parser//parser.nit:3295 */
12438 fra.me.REG[2] = fra.me.REG[3];
12439 /* ./parser//parser.nit:3296 */
12440 REGB0 = TAG_Bool(ATTR_parser___ReduceAction71____goto(fra.me.REG[0])!=NIT_NULL);
12441 if (UNTAG_Bool(REGB0)) {
12442 } else {
12443 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3296);
12444 }
12445 REGB0 = ATTR_parser___ReduceAction71____goto(fra.me.REG[0]);
12446 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12447 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12448 stack_frame_head = fra.me.prev;
12449 return;
12450 }
12451 void parser___ReduceAction71___init(val_t p0, val_t p1, int* init_table){
12452 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction71].i;
12453 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12454 val_t REGB0;
12455 val_t tmp;
12456 if (init_table[itpos74]) return;
12457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12458 fra.me.file = LOCATE_parser;
12459 fra.me.line = 3299;
12460 fra.me.meth = LOCATE_parser___ReduceAction71___init;
12461 fra.me.has_broke = 0;
12462 fra.me.REG_size = 2;
12463 fra.me.REG[0] = NIT_NULL;
12464 fra.me.REG[1] = NIT_NULL;
12465 fra.me.REG[0] = p0;
12466 REGB0 = p1;
12467 /* ./parser//parser.nit:3299 */
12468 fra.me.REG[1] = fra.me.REG[0];
12469 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12470 ATTR_parser___ReduceAction71____goto(fra.me.REG[1]) = REGB0;
12471 stack_frame_head = fra.me.prev;
12472 init_table[itpos74] = 1;
12473 return;
12474 }
12475 void parser___ReduceAction72___action(val_t p0, val_t p1){
12476 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
12477 val_t REGB0;
12478 val_t tmp;
12479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12480 fra.me.file = LOCATE_parser;
12481 fra.me.line = 3303;
12482 fra.me.meth = LOCATE_parser___ReduceAction72___action;
12483 fra.me.has_broke = 0;
12484 fra.me.REG_size = 10;
12485 fra.me.REG[0] = NIT_NULL;
12486 fra.me.REG[1] = NIT_NULL;
12487 fra.me.REG[2] = NIT_NULL;
12488 fra.me.REG[3] = NIT_NULL;
12489 fra.me.REG[4] = NIT_NULL;
12490 fra.me.REG[5] = NIT_NULL;
12491 fra.me.REG[6] = NIT_NULL;
12492 fra.me.REG[7] = NIT_NULL;
12493 fra.me.REG[8] = NIT_NULL;
12494 fra.me.REG[9] = NIT_NULL;
12495 fra.me.REG[0] = p0;
12496 fra.me.REG[1] = p1;
12497 /* ./parser//parser.nit:3305 */
12498 fra.me.REG[2] = NIT_NULL;
12499 /* ./parser//parser.nit:3306 */
12500 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12501 /* ./parser//parser.nit:3307 */
12502 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12503 /* ./parser//parser.nit:3308 */
12504 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12505 /* ./parser//parser.nit:3309 */
12506 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12507 /* ./parser//parser.nit:3310 */
12508 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12509 /* ./parser//parser.nit:3311 */
12510 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12511 /* ./parser//parser.nit:3312 */
12512 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12513 /* ./parser//parser.nit:3313 */
12514 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12515 /* ./parser//parser.nit:3314 */
12516 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12517 /* ./parser//parser.nit:3316 */
12518 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12519 if (UNTAG_Bool(REGB0)) {
12520 } else {
12521 nit_abort("Assert failed", NULL, LOCATE_parser, 3316);
12522 }
12523 /* ./parser//parser.nit:3318 */
12524 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12525 if (UNTAG_Bool(REGB0)) {
12526 } else {
12527 nit_abort("Assert failed", NULL, LOCATE_parser, 3318);
12528 }
12529 /* ./parser//parser.nit:3320 */
12530 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12531 if (UNTAG_Bool(REGB0)) {
12532 } else {
12533 nit_abort("Assert failed", NULL, LOCATE_parser, 3320);
12534 }
12535 /* ./parser//parser.nit:3322 */
12536 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12537 if (UNTAG_Bool(REGB0)) {
12538 } else {
12539 nit_abort("Assert failed", NULL, LOCATE_parser, 3322);
12540 }
12541 /* ./parser//parser.nit:3324 */
12542 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12543 if (UNTAG_Bool(REGB0)) {
12544 } else {
12545 nit_abort("Assert failed", NULL, LOCATE_parser, 3324);
12546 }
12547 /* ./parser//parser.nit:3326 */
12548 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12549 if (UNTAG_Bool(REGB0)) {
12550 } else {
12551 nit_abort("Assert failed", NULL, LOCATE_parser, 3326);
12552 }
12553 /* ./parser//parser.nit:3328 */
12554 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
12555 if (UNTAG_Bool(REGB0)) {
12556 } else {
12557 nit_abort("Assert failed", NULL, LOCATE_parser, 3328);
12558 }
12559 /* ./parser//parser.nit:3329 */
12560 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]);
12561 /* ./parser//parser.nit:3338 */
12562 fra.me.REG[2] = fra.me.REG[3];
12563 /* ./parser//parser.nit:3339 */
12564 REGB0 = TAG_Bool(ATTR_parser___ReduceAction72____goto(fra.me.REG[0])!=NIT_NULL);
12565 if (UNTAG_Bool(REGB0)) {
12566 } else {
12567 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3339);
12568 }
12569 REGB0 = ATTR_parser___ReduceAction72____goto(fra.me.REG[0]);
12570 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12571 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12572 stack_frame_head = fra.me.prev;
12573 return;
12574 }
12575 void parser___ReduceAction72___init(val_t p0, val_t p1, int* init_table){
12576 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction72].i;
12577 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12578 val_t REGB0;
12579 val_t tmp;
12580 if (init_table[itpos75]) return;
12581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12582 fra.me.file = LOCATE_parser;
12583 fra.me.line = 3342;
12584 fra.me.meth = LOCATE_parser___ReduceAction72___init;
12585 fra.me.has_broke = 0;
12586 fra.me.REG_size = 2;
12587 fra.me.REG[0] = NIT_NULL;
12588 fra.me.REG[1] = NIT_NULL;
12589 fra.me.REG[0] = p0;
12590 REGB0 = p1;
12591 /* ./parser//parser.nit:3342 */
12592 fra.me.REG[1] = fra.me.REG[0];
12593 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12594 ATTR_parser___ReduceAction72____goto(fra.me.REG[1]) = REGB0;
12595 stack_frame_head = fra.me.prev;
12596 init_table[itpos75] = 1;
12597 return;
12598 }
12599 void parser___ReduceAction73___action(val_t p0, val_t p1){
12600 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
12601 val_t REGB0;
12602 val_t tmp;
12603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12604 fra.me.file = LOCATE_parser;
12605 fra.me.line = 3346;
12606 fra.me.meth = LOCATE_parser___ReduceAction73___action;
12607 fra.me.has_broke = 0;
12608 fra.me.REG_size = 8;
12609 fra.me.REG[0] = NIT_NULL;
12610 fra.me.REG[1] = NIT_NULL;
12611 fra.me.REG[2] = NIT_NULL;
12612 fra.me.REG[3] = NIT_NULL;
12613 fra.me.REG[4] = NIT_NULL;
12614 fra.me.REG[5] = NIT_NULL;
12615 fra.me.REG[6] = NIT_NULL;
12616 fra.me.REG[7] = NIT_NULL;
12617 fra.me.REG[0] = p0;
12618 fra.me.REG[1] = p1;
12619 /* ./parser//parser.nit:3348 */
12620 fra.me.REG[2] = NIT_NULL;
12621 /* ./parser//parser.nit:3349 */
12622 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12623 /* ./parser//parser.nit:3350 */
12624 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12625 /* ./parser//parser.nit:3351 */
12626 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12627 /* ./parser//parser.nit:3352 */
12628 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12629 /* ./parser//parser.nit:3353 */
12630 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12631 /* ./parser//parser.nit:3354 */
12632 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12633 /* ./parser//parser.nit:3355 */
12634 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12635 /* ./parser//parser.nit:3357 */
12636 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12637 if (UNTAG_Bool(REGB0)) {
12638 } else {
12639 nit_abort("Assert failed", NULL, LOCATE_parser, 3357);
12640 }
12641 /* ./parser//parser.nit:3359 */
12642 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12643 if (UNTAG_Bool(REGB0)) {
12644 } else {
12645 nit_abort("Assert failed", NULL, LOCATE_parser, 3359);
12646 }
12647 /* ./parser//parser.nit:3361 */
12648 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12649 if (UNTAG_Bool(REGB0)) {
12650 } else {
12651 nit_abort("Assert failed", NULL, LOCATE_parser, 3361);
12652 }
12653 /* ./parser//parser.nit:3363 */
12654 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12655 if (UNTAG_Bool(REGB0)) {
12656 } else {
12657 nit_abort("Assert failed", NULL, LOCATE_parser, 3363);
12658 }
12659 /* ./parser//parser.nit:3365 */
12660 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12661 if (UNTAG_Bool(REGB0)) {
12662 } else {
12663 nit_abort("Assert failed", NULL, LOCATE_parser, 3365);
12664 }
12665 /* ./parser//parser.nit:3366 */
12666 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]);
12667 /* ./parser//parser.nit:3374 */
12668 fra.me.REG[2] = fra.me.REG[3];
12669 /* ./parser//parser.nit:3375 */
12670 REGB0 = TAG_Bool(ATTR_parser___ReduceAction73____goto(fra.me.REG[0])!=NIT_NULL);
12671 if (UNTAG_Bool(REGB0)) {
12672 } else {
12673 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3375);
12674 }
12675 REGB0 = ATTR_parser___ReduceAction73____goto(fra.me.REG[0]);
12676 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12677 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12678 stack_frame_head = fra.me.prev;
12679 return;
12680 }
12681 void parser___ReduceAction73___init(val_t p0, val_t p1, int* init_table){
12682 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction73].i;
12683 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12684 val_t REGB0;
12685 val_t tmp;
12686 if (init_table[itpos76]) return;
12687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12688 fra.me.file = LOCATE_parser;
12689 fra.me.line = 3378;
12690 fra.me.meth = LOCATE_parser___ReduceAction73___init;
12691 fra.me.has_broke = 0;
12692 fra.me.REG_size = 2;
12693 fra.me.REG[0] = NIT_NULL;
12694 fra.me.REG[1] = NIT_NULL;
12695 fra.me.REG[0] = p0;
12696 REGB0 = p1;
12697 /* ./parser//parser.nit:3378 */
12698 fra.me.REG[1] = fra.me.REG[0];
12699 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12700 ATTR_parser___ReduceAction73____goto(fra.me.REG[1]) = REGB0;
12701 stack_frame_head = fra.me.prev;
12702 init_table[itpos76] = 1;
12703 return;
12704 }
12705 void parser___ReduceAction74___action(val_t p0, val_t p1){
12706 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12707 val_t REGB0;
12708 val_t tmp;
12709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12710 fra.me.file = LOCATE_parser;
12711 fra.me.line = 3382;
12712 fra.me.meth = LOCATE_parser___ReduceAction74___action;
12713 fra.me.has_broke = 0;
12714 fra.me.REG_size = 9;
12715 fra.me.REG[0] = NIT_NULL;
12716 fra.me.REG[1] = NIT_NULL;
12717 fra.me.REG[2] = NIT_NULL;
12718 fra.me.REG[3] = NIT_NULL;
12719 fra.me.REG[4] = NIT_NULL;
12720 fra.me.REG[5] = NIT_NULL;
12721 fra.me.REG[6] = NIT_NULL;
12722 fra.me.REG[7] = NIT_NULL;
12723 fra.me.REG[8] = NIT_NULL;
12724 fra.me.REG[0] = p0;
12725 fra.me.REG[1] = p1;
12726 /* ./parser//parser.nit:3384 */
12727 fra.me.REG[2] = NIT_NULL;
12728 /* ./parser//parser.nit:3385 */
12729 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12730 /* ./parser//parser.nit:3386 */
12731 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12732 /* ./parser//parser.nit:3387 */
12733 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12734 /* ./parser//parser.nit:3388 */
12735 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12736 /* ./parser//parser.nit:3389 */
12737 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12738 /* ./parser//parser.nit:3390 */
12739 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12740 /* ./parser//parser.nit:3391 */
12741 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12742 /* ./parser//parser.nit:3392 */
12743 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12744 /* ./parser//parser.nit:3394 */
12745 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12746 if (UNTAG_Bool(REGB0)) {
12747 } else {
12748 nit_abort("Assert failed", NULL, LOCATE_parser, 3394);
12749 }
12750 /* ./parser//parser.nit:3396 */
12751 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12752 if (UNTAG_Bool(REGB0)) {
12753 } else {
12754 nit_abort("Assert failed", NULL, LOCATE_parser, 3396);
12755 }
12756 /* ./parser//parser.nit:3398 */
12757 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12758 if (UNTAG_Bool(REGB0)) {
12759 } else {
12760 nit_abort("Assert failed", NULL, LOCATE_parser, 3398);
12761 }
12762 /* ./parser//parser.nit:3400 */
12763 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12764 if (UNTAG_Bool(REGB0)) {
12765 } else {
12766 nit_abort("Assert failed", NULL, LOCATE_parser, 3400);
12767 }
12768 /* ./parser//parser.nit:3402 */
12769 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12770 if (UNTAG_Bool(REGB0)) {
12771 } else {
12772 nit_abort("Assert failed", NULL, LOCATE_parser, 3402);
12773 }
12774 /* ./parser//parser.nit:3404 */
12775 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12776 if (UNTAG_Bool(REGB0)) {
12777 } else {
12778 nit_abort("Assert failed", NULL, LOCATE_parser, 3404);
12779 }
12780 /* ./parser//parser.nit:3405 */
12781 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]);
12782 /* ./parser//parser.nit:3413 */
12783 fra.me.REG[2] = fra.me.REG[3];
12784 /* ./parser//parser.nit:3414 */
12785 REGB0 = TAG_Bool(ATTR_parser___ReduceAction74____goto(fra.me.REG[0])!=NIT_NULL);
12786 if (UNTAG_Bool(REGB0)) {
12787 } else {
12788 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3414);
12789 }
12790 REGB0 = ATTR_parser___ReduceAction74____goto(fra.me.REG[0]);
12791 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12792 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12793 stack_frame_head = fra.me.prev;
12794 return;
12795 }
12796 void parser___ReduceAction74___init(val_t p0, val_t p1, int* init_table){
12797 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction74].i;
12798 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12799 val_t REGB0;
12800 val_t tmp;
12801 if (init_table[itpos77]) return;
12802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12803 fra.me.file = LOCATE_parser;
12804 fra.me.line = 3417;
12805 fra.me.meth = LOCATE_parser___ReduceAction74___init;
12806 fra.me.has_broke = 0;
12807 fra.me.REG_size = 2;
12808 fra.me.REG[0] = NIT_NULL;
12809 fra.me.REG[1] = NIT_NULL;
12810 fra.me.REG[0] = p0;
12811 REGB0 = p1;
12812 /* ./parser//parser.nit:3417 */
12813 fra.me.REG[1] = fra.me.REG[0];
12814 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12815 ATTR_parser___ReduceAction74____goto(fra.me.REG[1]) = REGB0;
12816 stack_frame_head = fra.me.prev;
12817 init_table[itpos77] = 1;
12818 return;
12819 }
12820 void parser___ReduceAction75___action(val_t p0, val_t p1){
12821 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
12822 val_t REGB0;
12823 val_t tmp;
12824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12825 fra.me.file = LOCATE_parser;
12826 fra.me.line = 3421;
12827 fra.me.meth = LOCATE_parser___ReduceAction75___action;
12828 fra.me.has_broke = 0;
12829 fra.me.REG_size = 8;
12830 fra.me.REG[0] = NIT_NULL;
12831 fra.me.REG[1] = NIT_NULL;
12832 fra.me.REG[2] = NIT_NULL;
12833 fra.me.REG[3] = NIT_NULL;
12834 fra.me.REG[4] = NIT_NULL;
12835 fra.me.REG[5] = NIT_NULL;
12836 fra.me.REG[6] = NIT_NULL;
12837 fra.me.REG[7] = NIT_NULL;
12838 fra.me.REG[0] = p0;
12839 fra.me.REG[1] = p1;
12840 /* ./parser//parser.nit:3423 */
12841 fra.me.REG[2] = NIT_NULL;
12842 /* ./parser//parser.nit:3424 */
12843 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12844 /* ./parser//parser.nit:3425 */
12845 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12846 /* ./parser//parser.nit:3426 */
12847 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12848 /* ./parser//parser.nit:3427 */
12849 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12850 /* ./parser//parser.nit:3428 */
12851 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12852 /* ./parser//parser.nit:3429 */
12853 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12854 /* ./parser//parser.nit:3430 */
12855 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12856 /* ./parser//parser.nit:3432 */
12857 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12858 if (UNTAG_Bool(REGB0)) {
12859 } else {
12860 nit_abort("Assert failed", NULL, LOCATE_parser, 3432);
12861 }
12862 /* ./parser//parser.nit:3434 */
12863 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12864 if (UNTAG_Bool(REGB0)) {
12865 } else {
12866 nit_abort("Assert failed", NULL, LOCATE_parser, 3434);
12867 }
12868 /* ./parser//parser.nit:3436 */
12869 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12870 if (UNTAG_Bool(REGB0)) {
12871 } else {
12872 nit_abort("Assert failed", NULL, LOCATE_parser, 3436);
12873 }
12874 /* ./parser//parser.nit:3438 */
12875 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12876 if (UNTAG_Bool(REGB0)) {
12877 } else {
12878 nit_abort("Assert failed", NULL, LOCATE_parser, 3438);
12879 }
12880 /* ./parser//parser.nit:3440 */
12881 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12882 if (UNTAG_Bool(REGB0)) {
12883 } else {
12884 nit_abort("Assert failed", NULL, LOCATE_parser, 3440);
12885 }
12886 /* ./parser//parser.nit:3441 */
12887 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]);
12888 /* ./parser//parser.nit:3449 */
12889 fra.me.REG[2] = fra.me.REG[3];
12890 /* ./parser//parser.nit:3450 */
12891 REGB0 = TAG_Bool(ATTR_parser___ReduceAction75____goto(fra.me.REG[0])!=NIT_NULL);
12892 if (UNTAG_Bool(REGB0)) {
12893 } else {
12894 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3450);
12895 }
12896 REGB0 = ATTR_parser___ReduceAction75____goto(fra.me.REG[0]);
12897 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
12898 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
12899 stack_frame_head = fra.me.prev;
12900 return;
12901 }
12902 void parser___ReduceAction75___init(val_t p0, val_t p1, int* init_table){
12903 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction75].i;
12904 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12905 val_t REGB0;
12906 val_t tmp;
12907 if (init_table[itpos78]) return;
12908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12909 fra.me.file = LOCATE_parser;
12910 fra.me.line = 3453;
12911 fra.me.meth = LOCATE_parser___ReduceAction75___init;
12912 fra.me.has_broke = 0;
12913 fra.me.REG_size = 2;
12914 fra.me.REG[0] = NIT_NULL;
12915 fra.me.REG[1] = NIT_NULL;
12916 fra.me.REG[0] = p0;
12917 REGB0 = p1;
12918 /* ./parser//parser.nit:3453 */
12919 fra.me.REG[1] = fra.me.REG[0];
12920 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
12921 ATTR_parser___ReduceAction75____goto(fra.me.REG[1]) = REGB0;
12922 stack_frame_head = fra.me.prev;
12923 init_table[itpos78] = 1;
12924 return;
12925 }
12926 void parser___ReduceAction76___action(val_t p0, val_t p1){
12927 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12928 val_t REGB0;
12929 val_t tmp;
12930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12931 fra.me.file = LOCATE_parser;
12932 fra.me.line = 3457;
12933 fra.me.meth = LOCATE_parser___ReduceAction76___action;
12934 fra.me.has_broke = 0;
12935 fra.me.REG_size = 9;
12936 fra.me.REG[0] = NIT_NULL;
12937 fra.me.REG[1] = NIT_NULL;
12938 fra.me.REG[2] = NIT_NULL;
12939 fra.me.REG[3] = NIT_NULL;
12940 fra.me.REG[4] = NIT_NULL;
12941 fra.me.REG[5] = NIT_NULL;
12942 fra.me.REG[6] = NIT_NULL;
12943 fra.me.REG[7] = NIT_NULL;
12944 fra.me.REG[8] = NIT_NULL;
12945 fra.me.REG[0] = p0;
12946 fra.me.REG[1] = p1;
12947 /* ./parser//parser.nit:3459 */
12948 fra.me.REG[2] = NIT_NULL;
12949 /* ./parser//parser.nit:3460 */
12950 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12951 /* ./parser//parser.nit:3461 */
12952 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12953 /* ./parser//parser.nit:3462 */
12954 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12955 /* ./parser//parser.nit:3463 */
12956 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12957 /* ./parser//parser.nit:3464 */
12958 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12959 /* ./parser//parser.nit:3465 */
12960 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12961 /* ./parser//parser.nit:3466 */
12962 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12963 /* ./parser//parser.nit:3467 */
12964 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
12965 /* ./parser//parser.nit:3469 */
12966 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
12967 if (UNTAG_Bool(REGB0)) {
12968 } else {
12969 nit_abort("Assert failed", NULL, LOCATE_parser, 3469);
12970 }
12971 /* ./parser//parser.nit:3471 */
12972 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
12973 if (UNTAG_Bool(REGB0)) {
12974 } else {
12975 nit_abort("Assert failed", NULL, LOCATE_parser, 3471);
12976 }
12977 /* ./parser//parser.nit:3473 */
12978 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
12979 if (UNTAG_Bool(REGB0)) {
12980 } else {
12981 nit_abort("Assert failed", NULL, LOCATE_parser, 3473);
12982 }
12983 /* ./parser//parser.nit:3475 */
12984 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
12985 if (UNTAG_Bool(REGB0)) {
12986 } else {
12987 nit_abort("Assert failed", NULL, LOCATE_parser, 3475);
12988 }
12989 /* ./parser//parser.nit:3477 */
12990 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
12991 if (UNTAG_Bool(REGB0)) {
12992 } else {
12993 nit_abort("Assert failed", NULL, LOCATE_parser, 3477);
12994 }
12995 /* ./parser//parser.nit:3479 */
12996 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
12997 if (UNTAG_Bool(REGB0)) {
12998 } else {
12999 nit_abort("Assert failed", NULL, LOCATE_parser, 3479);
13000 }
13001 /* ./parser//parser.nit:3480 */
13002 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]);
13003 /* ./parser//parser.nit:3488 */
13004 fra.me.REG[2] = fra.me.REG[3];
13005 /* ./parser//parser.nit:3489 */
13006 REGB0 = TAG_Bool(ATTR_parser___ReduceAction76____goto(fra.me.REG[0])!=NIT_NULL);
13007 if (UNTAG_Bool(REGB0)) {
13008 } else {
13009 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3489);
13010 }
13011 REGB0 = ATTR_parser___ReduceAction76____goto(fra.me.REG[0]);
13012 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13013 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13014 stack_frame_head = fra.me.prev;
13015 return;
13016 }
13017 void parser___ReduceAction76___init(val_t p0, val_t p1, int* init_table){
13018 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction76].i;
13019 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13020 val_t REGB0;
13021 val_t tmp;
13022 if (init_table[itpos79]) return;
13023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13024 fra.me.file = LOCATE_parser;
13025 fra.me.line = 3492;
13026 fra.me.meth = LOCATE_parser___ReduceAction76___init;
13027 fra.me.has_broke = 0;
13028 fra.me.REG_size = 2;
13029 fra.me.REG[0] = NIT_NULL;
13030 fra.me.REG[1] = NIT_NULL;
13031 fra.me.REG[0] = p0;
13032 REGB0 = p1;
13033 /* ./parser//parser.nit:3492 */
13034 fra.me.REG[1] = fra.me.REG[0];
13035 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13036 ATTR_parser___ReduceAction76____goto(fra.me.REG[1]) = REGB0;
13037 stack_frame_head = fra.me.prev;
13038 init_table[itpos79] = 1;
13039 return;
13040 }
13041 void parser___ReduceAction77___action(val_t p0, val_t p1){
13042 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13043 val_t REGB0;
13044 val_t tmp;
13045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13046 fra.me.file = LOCATE_parser;
13047 fra.me.line = 3496;
13048 fra.me.meth = LOCATE_parser___ReduceAction77___action;
13049 fra.me.has_broke = 0;
13050 fra.me.REG_size = 8;
13051 fra.me.REG[0] = NIT_NULL;
13052 fra.me.REG[1] = NIT_NULL;
13053 fra.me.REG[2] = NIT_NULL;
13054 fra.me.REG[3] = NIT_NULL;
13055 fra.me.REG[4] = NIT_NULL;
13056 fra.me.REG[5] = NIT_NULL;
13057 fra.me.REG[6] = NIT_NULL;
13058 fra.me.REG[7] = NIT_NULL;
13059 fra.me.REG[0] = p0;
13060 fra.me.REG[1] = p1;
13061 /* ./parser//parser.nit:3498 */
13062 fra.me.REG[2] = NIT_NULL;
13063 /* ./parser//parser.nit:3499 */
13064 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13065 /* ./parser//parser.nit:3500 */
13066 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13067 /* ./parser//parser.nit:3501 */
13068 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13069 /* ./parser//parser.nit:3502 */
13070 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13071 /* ./parser//parser.nit:3503 */
13072 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13073 /* ./parser//parser.nit:3504 */
13074 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13075 /* ./parser//parser.nit:3505 */
13076 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13077 /* ./parser//parser.nit:3507 */
13078 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13079 if (UNTAG_Bool(REGB0)) {
13080 } else {
13081 nit_abort("Assert failed", NULL, LOCATE_parser, 3507);
13082 }
13083 /* ./parser//parser.nit:3509 */
13084 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13085 if (UNTAG_Bool(REGB0)) {
13086 } else {
13087 nit_abort("Assert failed", NULL, LOCATE_parser, 3509);
13088 }
13089 /* ./parser//parser.nit:3511 */
13090 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13091 if (UNTAG_Bool(REGB0)) {
13092 } else {
13093 nit_abort("Assert failed", NULL, LOCATE_parser, 3511);
13094 }
13095 /* ./parser//parser.nit:3513 */
13096 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13097 if (UNTAG_Bool(REGB0)) {
13098 } else {
13099 nit_abort("Assert failed", NULL, LOCATE_parser, 3513);
13100 }
13101 /* ./parser//parser.nit:3515 */
13102 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13103 if (UNTAG_Bool(REGB0)) {
13104 } else {
13105 nit_abort("Assert failed", NULL, LOCATE_parser, 3515);
13106 }
13107 /* ./parser//parser.nit:3516 */
13108 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);
13109 /* ./parser//parser.nit:3525 */
13110 fra.me.REG[2] = fra.me.REG[3];
13111 /* ./parser//parser.nit:3526 */
13112 REGB0 = TAG_Bool(ATTR_parser___ReduceAction77____goto(fra.me.REG[0])!=NIT_NULL);
13113 if (UNTAG_Bool(REGB0)) {
13114 } else {
13115 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3526);
13116 }
13117 REGB0 = ATTR_parser___ReduceAction77____goto(fra.me.REG[0]);
13118 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13119 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13120 stack_frame_head = fra.me.prev;
13121 return;
13122 }
13123 void parser___ReduceAction77___init(val_t p0, val_t p1, int* init_table){
13124 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction77].i;
13125 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13126 val_t REGB0;
13127 val_t tmp;
13128 if (init_table[itpos80]) return;
13129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13130 fra.me.file = LOCATE_parser;
13131 fra.me.line = 3529;
13132 fra.me.meth = LOCATE_parser___ReduceAction77___init;
13133 fra.me.has_broke = 0;
13134 fra.me.REG_size = 2;
13135 fra.me.REG[0] = NIT_NULL;
13136 fra.me.REG[1] = NIT_NULL;
13137 fra.me.REG[0] = p0;
13138 REGB0 = p1;
13139 /* ./parser//parser.nit:3529 */
13140 fra.me.REG[1] = fra.me.REG[0];
13141 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13142 ATTR_parser___ReduceAction77____goto(fra.me.REG[1]) = REGB0;
13143 stack_frame_head = fra.me.prev;
13144 init_table[itpos80] = 1;
13145 return;
13146 }
13147 void parser___ReduceAction78___action(val_t p0, val_t p1){
13148 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
13149 val_t REGB0;
13150 val_t tmp;
13151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13152 fra.me.file = LOCATE_parser;
13153 fra.me.line = 3533;
13154 fra.me.meth = LOCATE_parser___ReduceAction78___action;
13155 fra.me.has_broke = 0;
13156 fra.me.REG_size = 9;
13157 fra.me.REG[0] = NIT_NULL;
13158 fra.me.REG[1] = NIT_NULL;
13159 fra.me.REG[2] = NIT_NULL;
13160 fra.me.REG[3] = NIT_NULL;
13161 fra.me.REG[4] = NIT_NULL;
13162 fra.me.REG[5] = NIT_NULL;
13163 fra.me.REG[6] = NIT_NULL;
13164 fra.me.REG[7] = NIT_NULL;
13165 fra.me.REG[8] = NIT_NULL;
13166 fra.me.REG[0] = p0;
13167 fra.me.REG[1] = p1;
13168 /* ./parser//parser.nit:3535 */
13169 fra.me.REG[2] = NIT_NULL;
13170 /* ./parser//parser.nit:3536 */
13171 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13172 /* ./parser//parser.nit:3537 */
13173 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13174 /* ./parser//parser.nit:3538 */
13175 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13176 /* ./parser//parser.nit:3539 */
13177 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13178 /* ./parser//parser.nit:3540 */
13179 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13180 /* ./parser//parser.nit:3541 */
13181 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13182 /* ./parser//parser.nit:3542 */
13183 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13184 /* ./parser//parser.nit:3543 */
13185 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13186 /* ./parser//parser.nit:3545 */
13187 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13188 if (UNTAG_Bool(REGB0)) {
13189 } else {
13190 nit_abort("Assert failed", NULL, LOCATE_parser, 3545);
13191 }
13192 /* ./parser//parser.nit:3547 */
13193 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13194 if (UNTAG_Bool(REGB0)) {
13195 } else {
13196 nit_abort("Assert failed", NULL, LOCATE_parser, 3547);
13197 }
13198 /* ./parser//parser.nit:3549 */
13199 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13200 if (UNTAG_Bool(REGB0)) {
13201 } else {
13202 nit_abort("Assert failed", NULL, LOCATE_parser, 3549);
13203 }
13204 /* ./parser//parser.nit:3551 */
13205 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13206 if (UNTAG_Bool(REGB0)) {
13207 } else {
13208 nit_abort("Assert failed", NULL, LOCATE_parser, 3551);
13209 }
13210 /* ./parser//parser.nit:3553 */
13211 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13212 if (UNTAG_Bool(REGB0)) {
13213 } else {
13214 nit_abort("Assert failed", NULL, LOCATE_parser, 3553);
13215 }
13216 /* ./parser//parser.nit:3555 */
13217 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13218 if (UNTAG_Bool(REGB0)) {
13219 } else {
13220 nit_abort("Assert failed", NULL, LOCATE_parser, 3555);
13221 }
13222 /* ./parser//parser.nit:3556 */
13223 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);
13224 /* ./parser//parser.nit:3565 */
13225 fra.me.REG[2] = fra.me.REG[3];
13226 /* ./parser//parser.nit:3566 */
13227 REGB0 = TAG_Bool(ATTR_parser___ReduceAction78____goto(fra.me.REG[0])!=NIT_NULL);
13228 if (UNTAG_Bool(REGB0)) {
13229 } else {
13230 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3566);
13231 }
13232 REGB0 = ATTR_parser___ReduceAction78____goto(fra.me.REG[0]);
13233 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13234 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13235 stack_frame_head = fra.me.prev;
13236 return;
13237 }
13238 void parser___ReduceAction78___init(val_t p0, val_t p1, int* init_table){
13239 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction78].i;
13240 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13241 val_t REGB0;
13242 val_t tmp;
13243 if (init_table[itpos81]) return;
13244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13245 fra.me.file = LOCATE_parser;
13246 fra.me.line = 3569;
13247 fra.me.meth = LOCATE_parser___ReduceAction78___init;
13248 fra.me.has_broke = 0;
13249 fra.me.REG_size = 2;
13250 fra.me.REG[0] = NIT_NULL;
13251 fra.me.REG[1] = NIT_NULL;
13252 fra.me.REG[0] = p0;
13253 REGB0 = p1;
13254 /* ./parser//parser.nit:3569 */
13255 fra.me.REG[1] = fra.me.REG[0];
13256 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13257 ATTR_parser___ReduceAction78____goto(fra.me.REG[1]) = REGB0;
13258 stack_frame_head = fra.me.prev;
13259 init_table[itpos81] = 1;
13260 return;
13261 }
13262 void parser___ReduceAction79___action(val_t p0, val_t p1){
13263 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
13264 val_t REGB0;
13265 val_t tmp;
13266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13267 fra.me.file = LOCATE_parser;
13268 fra.me.line = 3573;
13269 fra.me.meth = LOCATE_parser___ReduceAction79___action;
13270 fra.me.has_broke = 0;
13271 fra.me.REG_size = 9;
13272 fra.me.REG[0] = NIT_NULL;
13273 fra.me.REG[1] = NIT_NULL;
13274 fra.me.REG[2] = NIT_NULL;
13275 fra.me.REG[3] = NIT_NULL;
13276 fra.me.REG[4] = NIT_NULL;
13277 fra.me.REG[5] = NIT_NULL;
13278 fra.me.REG[6] = NIT_NULL;
13279 fra.me.REG[7] = NIT_NULL;
13280 fra.me.REG[8] = NIT_NULL;
13281 fra.me.REG[0] = p0;
13282 fra.me.REG[1] = p1;
13283 /* ./parser//parser.nit:3575 */
13284 fra.me.REG[2] = NIT_NULL;
13285 /* ./parser//parser.nit:3576 */
13286 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13287 /* ./parser//parser.nit:3577 */
13288 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13289 /* ./parser//parser.nit:3578 */
13290 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13291 /* ./parser//parser.nit:3579 */
13292 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13293 /* ./parser//parser.nit:3580 */
13294 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13295 /* ./parser//parser.nit:3581 */
13296 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13297 /* ./parser//parser.nit:3582 */
13298 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13299 /* ./parser//parser.nit:3583 */
13300 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13301 /* ./parser//parser.nit:3585 */
13302 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13303 if (UNTAG_Bool(REGB0)) {
13304 } else {
13305 nit_abort("Assert failed", NULL, LOCATE_parser, 3585);
13306 }
13307 /* ./parser//parser.nit:3587 */
13308 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13309 if (UNTAG_Bool(REGB0)) {
13310 } else {
13311 nit_abort("Assert failed", NULL, LOCATE_parser, 3587);
13312 }
13313 /* ./parser//parser.nit:3589 */
13314 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13315 if (UNTAG_Bool(REGB0)) {
13316 } else {
13317 nit_abort("Assert failed", NULL, LOCATE_parser, 3589);
13318 }
13319 /* ./parser//parser.nit:3591 */
13320 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13321 if (UNTAG_Bool(REGB0)) {
13322 } else {
13323 nit_abort("Assert failed", NULL, LOCATE_parser, 3591);
13324 }
13325 /* ./parser//parser.nit:3593 */
13326 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13327 if (UNTAG_Bool(REGB0)) {
13328 } else {
13329 nit_abort("Assert failed", NULL, LOCATE_parser, 3593);
13330 }
13331 /* ./parser//parser.nit:3595 */
13332 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TString, ID_TString)) /*cast nullable TString*/;
13333 if (UNTAG_Bool(REGB0)) {
13334 } else {
13335 nit_abort("Assert failed", NULL, LOCATE_parser, 3595);
13336 }
13337 /* ./parser//parser.nit:3596 */
13338 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]);
13339 /* ./parser//parser.nit:3605 */
13340 fra.me.REG[2] = fra.me.REG[3];
13341 /* ./parser//parser.nit:3606 */
13342 REGB0 = TAG_Bool(ATTR_parser___ReduceAction79____goto(fra.me.REG[0])!=NIT_NULL);
13343 if (UNTAG_Bool(REGB0)) {
13344 } else {
13345 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3606);
13346 }
13347 REGB0 = ATTR_parser___ReduceAction79____goto(fra.me.REG[0]);
13348 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13349 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13350 stack_frame_head = fra.me.prev;
13351 return;
13352 }
13353 void parser___ReduceAction79___init(val_t p0, val_t p1, int* init_table){
13354 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction79].i;
13355 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13356 val_t REGB0;
13357 val_t tmp;
13358 if (init_table[itpos82]) return;
13359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13360 fra.me.file = LOCATE_parser;
13361 fra.me.line = 3609;
13362 fra.me.meth = LOCATE_parser___ReduceAction79___init;
13363 fra.me.has_broke = 0;
13364 fra.me.REG_size = 2;
13365 fra.me.REG[0] = NIT_NULL;
13366 fra.me.REG[1] = NIT_NULL;
13367 fra.me.REG[0] = p0;
13368 REGB0 = p1;
13369 /* ./parser//parser.nit:3609 */
13370 fra.me.REG[1] = fra.me.REG[0];
13371 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13372 ATTR_parser___ReduceAction79____goto(fra.me.REG[1]) = REGB0;
13373 stack_frame_head = fra.me.prev;
13374 init_table[itpos82] = 1;
13375 return;
13376 }
13377 void parser___ReduceAction80___action(val_t p0, val_t p1){
13378 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
13379 val_t REGB0;
13380 val_t tmp;
13381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13382 fra.me.file = LOCATE_parser;
13383 fra.me.line = 3613;
13384 fra.me.meth = LOCATE_parser___ReduceAction80___action;
13385 fra.me.has_broke = 0;
13386 fra.me.REG_size = 10;
13387 fra.me.REG[0] = NIT_NULL;
13388 fra.me.REG[1] = NIT_NULL;
13389 fra.me.REG[2] = NIT_NULL;
13390 fra.me.REG[3] = NIT_NULL;
13391 fra.me.REG[4] = NIT_NULL;
13392 fra.me.REG[5] = NIT_NULL;
13393 fra.me.REG[6] = NIT_NULL;
13394 fra.me.REG[7] = NIT_NULL;
13395 fra.me.REG[8] = NIT_NULL;
13396 fra.me.REG[9] = NIT_NULL;
13397 fra.me.REG[0] = p0;
13398 fra.me.REG[1] = p1;
13399 /* ./parser//parser.nit:3615 */
13400 fra.me.REG[2] = NIT_NULL;
13401 /* ./parser//parser.nit:3616 */
13402 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13403 /* ./parser//parser.nit:3617 */
13404 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13405 /* ./parser//parser.nit:3618 */
13406 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13407 /* ./parser//parser.nit:3619 */
13408 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13409 /* ./parser//parser.nit:3620 */
13410 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13411 /* ./parser//parser.nit:3621 */
13412 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13413 /* ./parser//parser.nit:3622 */
13414 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13415 /* ./parser//parser.nit:3623 */
13416 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13417 /* ./parser//parser.nit:3624 */
13418 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13419 /* ./parser//parser.nit:3626 */
13420 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13421 if (UNTAG_Bool(REGB0)) {
13422 } else {
13423 nit_abort("Assert failed", NULL, LOCATE_parser, 3626);
13424 }
13425 /* ./parser//parser.nit:3628 */
13426 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13427 if (UNTAG_Bool(REGB0)) {
13428 } else {
13429 nit_abort("Assert failed", NULL, LOCATE_parser, 3628);
13430 }
13431 /* ./parser//parser.nit:3630 */
13432 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13433 if (UNTAG_Bool(REGB0)) {
13434 } else {
13435 nit_abort("Assert failed", NULL, LOCATE_parser, 3630);
13436 }
13437 /* ./parser//parser.nit:3632 */
13438 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwmeth, ID_TKwmeth)) /*cast nullable TKwmeth*/;
13439 if (UNTAG_Bool(REGB0)) {
13440 } else {
13441 nit_abort("Assert failed", NULL, LOCATE_parser, 3632);
13442 }
13443 /* ./parser//parser.nit:3634 */
13444 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
13445 if (UNTAG_Bool(REGB0)) {
13446 } else {
13447 nit_abort("Assert failed", NULL, LOCATE_parser, 3634);
13448 }
13449 /* ./parser//parser.nit:3636 */
13450 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
13451 if (UNTAG_Bool(REGB0)) {
13452 } else {
13453 nit_abort("Assert failed", NULL, LOCATE_parser, 3636);
13454 }
13455 /* ./parser//parser.nit:3638 */
13456 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TString, ID_TString)) /*cast nullable TString*/;
13457 if (UNTAG_Bool(REGB0)) {
13458 } else {
13459 nit_abort("Assert failed", NULL, LOCATE_parser, 3638);
13460 }
13461 /* ./parser//parser.nit:3639 */
13462 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]);
13463 /* ./parser//parser.nit:3648 */
13464 fra.me.REG[2] = fra.me.REG[3];
13465 /* ./parser//parser.nit:3649 */
13466 REGB0 = TAG_Bool(ATTR_parser___ReduceAction80____goto(fra.me.REG[0])!=NIT_NULL);
13467 if (UNTAG_Bool(REGB0)) {
13468 } else {
13469 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3649);
13470 }
13471 REGB0 = ATTR_parser___ReduceAction80____goto(fra.me.REG[0]);
13472 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13473 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13474 stack_frame_head = fra.me.prev;
13475 return;
13476 }
13477 void parser___ReduceAction80___init(val_t p0, val_t p1, int* init_table){
13478 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction80].i;
13479 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13480 val_t REGB0;
13481 val_t tmp;
13482 if (init_table[itpos83]) return;
13483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13484 fra.me.file = LOCATE_parser;
13485 fra.me.line = 3652;
13486 fra.me.meth = LOCATE_parser___ReduceAction80___init;
13487 fra.me.has_broke = 0;
13488 fra.me.REG_size = 2;
13489 fra.me.REG[0] = NIT_NULL;
13490 fra.me.REG[1] = NIT_NULL;
13491 fra.me.REG[0] = p0;
13492 REGB0 = p1;
13493 /* ./parser//parser.nit:3652 */
13494 fra.me.REG[1] = fra.me.REG[0];
13495 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13496 ATTR_parser___ReduceAction80____goto(fra.me.REG[1]) = REGB0;
13497 stack_frame_head = fra.me.prev;
13498 init_table[itpos83] = 1;
13499 return;
13500 }
13501 void parser___ReduceAction81___action(val_t p0, val_t p1){
13502 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
13503 val_t REGB0;
13504 val_t tmp;
13505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13506 fra.me.file = LOCATE_parser;
13507 fra.me.line = 3656;
13508 fra.me.meth = LOCATE_parser___ReduceAction81___action;
13509 fra.me.has_broke = 0;
13510 fra.me.REG_size = 7;
13511 fra.me.REG[0] = NIT_NULL;
13512 fra.me.REG[1] = NIT_NULL;
13513 fra.me.REG[2] = NIT_NULL;
13514 fra.me.REG[3] = NIT_NULL;
13515 fra.me.REG[4] = NIT_NULL;
13516 fra.me.REG[5] = NIT_NULL;
13517 fra.me.REG[6] = NIT_NULL;
13518 fra.me.REG[0] = p0;
13519 fra.me.REG[1] = p1;
13520 /* ./parser//parser.nit:3658 */
13521 fra.me.REG[2] = NIT_NULL;
13522 /* ./parser//parser.nit:3659 */
13523 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13524 /* ./parser//parser.nit:3660 */
13525 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13526 /* ./parser//parser.nit:3661 */
13527 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13528 /* ./parser//parser.nit:3662 */
13529 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13530 /* ./parser//parser.nit:3664 */
13531 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13532 if (UNTAG_Bool(REGB0)) {
13533 } else {
13534 nit_abort("Assert failed", NULL, LOCATE_parser, 3664);
13535 }
13536 /* ./parser//parser.nit:3666 */
13537 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13538 if (UNTAG_Bool(REGB0)) {
13539 } else {
13540 nit_abort("Assert failed", NULL, LOCATE_parser, 3666);
13541 }
13542 /* ./parser//parser.nit:3668 */
13543 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13544 if (UNTAG_Bool(REGB0)) {
13545 } else {
13546 nit_abort("Assert failed", NULL, LOCATE_parser, 3668);
13547 }
13548 /* ./parser//parser.nit:3670 */
13549 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13550 if (UNTAG_Bool(REGB0)) {
13551 } else {
13552 nit_abort("Assert failed", NULL, LOCATE_parser, 3670);
13553 }
13554 /* ./parser//parser.nit:3671 */
13555 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);
13556 /* ./parser//parser.nit:3683 */
13557 fra.me.REG[2] = fra.me.REG[3];
13558 /* ./parser//parser.nit:3684 */
13559 REGB0 = TAG_Bool(ATTR_parser___ReduceAction81____goto(fra.me.REG[0])!=NIT_NULL);
13560 if (UNTAG_Bool(REGB0)) {
13561 } else {
13562 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3684);
13563 }
13564 REGB0 = ATTR_parser___ReduceAction81____goto(fra.me.REG[0]);
13565 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13566 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13567 stack_frame_head = fra.me.prev;
13568 return;
13569 }
13570 void parser___ReduceAction81___init(val_t p0, val_t p1, int* init_table){
13571 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction81].i;
13572 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13573 val_t REGB0;
13574 val_t tmp;
13575 if (init_table[itpos84]) return;
13576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13577 fra.me.file = LOCATE_parser;
13578 fra.me.line = 3687;
13579 fra.me.meth = LOCATE_parser___ReduceAction81___init;
13580 fra.me.has_broke = 0;
13581 fra.me.REG_size = 2;
13582 fra.me.REG[0] = NIT_NULL;
13583 fra.me.REG[1] = NIT_NULL;
13584 fra.me.REG[0] = p0;
13585 REGB0 = p1;
13586 /* ./parser//parser.nit:3687 */
13587 fra.me.REG[1] = fra.me.REG[0];
13588 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13589 ATTR_parser___ReduceAction81____goto(fra.me.REG[1]) = REGB0;
13590 stack_frame_head = fra.me.prev;
13591 init_table[itpos84] = 1;
13592 return;
13593 }
13594 void parser___ReduceAction82___action(val_t p0, val_t p1){
13595 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13596 val_t REGB0;
13597 val_t tmp;
13598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13599 fra.me.file = LOCATE_parser;
13600 fra.me.line = 3691;
13601 fra.me.meth = LOCATE_parser___ReduceAction82___action;
13602 fra.me.has_broke = 0;
13603 fra.me.REG_size = 8;
13604 fra.me.REG[0] = NIT_NULL;
13605 fra.me.REG[1] = NIT_NULL;
13606 fra.me.REG[2] = NIT_NULL;
13607 fra.me.REG[3] = NIT_NULL;
13608 fra.me.REG[4] = NIT_NULL;
13609 fra.me.REG[5] = NIT_NULL;
13610 fra.me.REG[6] = NIT_NULL;
13611 fra.me.REG[7] = NIT_NULL;
13612 fra.me.REG[0] = p0;
13613 fra.me.REG[1] = p1;
13614 /* ./parser//parser.nit:3693 */
13615 fra.me.REG[2] = NIT_NULL;
13616 /* ./parser//parser.nit:3694 */
13617 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13618 /* ./parser//parser.nit:3695 */
13619 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13620 /* ./parser//parser.nit:3696 */
13621 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13622 /* ./parser//parser.nit:3697 */
13623 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13624 /* ./parser//parser.nit:3698 */
13625 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13626 /* ./parser//parser.nit:3700 */
13627 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13628 if (UNTAG_Bool(REGB0)) {
13629 } else {
13630 nit_abort("Assert failed", NULL, LOCATE_parser, 3700);
13631 }
13632 /* ./parser//parser.nit:3702 */
13633 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13634 if (UNTAG_Bool(REGB0)) {
13635 } else {
13636 nit_abort("Assert failed", NULL, LOCATE_parser, 3702);
13637 }
13638 /* ./parser//parser.nit:3704 */
13639 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13640 if (UNTAG_Bool(REGB0)) {
13641 } else {
13642 nit_abort("Assert failed", NULL, LOCATE_parser, 3704);
13643 }
13644 /* ./parser//parser.nit:3706 */
13645 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13646 if (UNTAG_Bool(REGB0)) {
13647 } else {
13648 nit_abort("Assert failed", NULL, LOCATE_parser, 3706);
13649 }
13650 /* ./parser//parser.nit:3708 */
13651 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13652 if (UNTAG_Bool(REGB0)) {
13653 } else {
13654 nit_abort("Assert failed", NULL, LOCATE_parser, 3708);
13655 }
13656 /* ./parser//parser.nit:3709 */
13657 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);
13658 /* ./parser//parser.nit:3721 */
13659 fra.me.REG[2] = fra.me.REG[3];
13660 /* ./parser//parser.nit:3722 */
13661 REGB0 = TAG_Bool(ATTR_parser___ReduceAction82____goto(fra.me.REG[0])!=NIT_NULL);
13662 if (UNTAG_Bool(REGB0)) {
13663 } else {
13664 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3722);
13665 }
13666 REGB0 = ATTR_parser___ReduceAction82____goto(fra.me.REG[0]);
13667 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13668 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13669 stack_frame_head = fra.me.prev;
13670 return;
13671 }
13672 void parser___ReduceAction82___init(val_t p0, val_t p1, int* init_table){
13673 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction82].i;
13674 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13675 val_t REGB0;
13676 val_t tmp;
13677 if (init_table[itpos85]) return;
13678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13679 fra.me.file = LOCATE_parser;
13680 fra.me.line = 3725;
13681 fra.me.meth = LOCATE_parser___ReduceAction82___init;
13682 fra.me.has_broke = 0;
13683 fra.me.REG_size = 2;
13684 fra.me.REG[0] = NIT_NULL;
13685 fra.me.REG[1] = NIT_NULL;
13686 fra.me.REG[0] = p0;
13687 REGB0 = p1;
13688 /* ./parser//parser.nit:3725 */
13689 fra.me.REG[1] = fra.me.REG[0];
13690 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13691 ATTR_parser___ReduceAction82____goto(fra.me.REG[1]) = REGB0;
13692 stack_frame_head = fra.me.prev;
13693 init_table[itpos85] = 1;
13694 return;
13695 }
13696 void parser___ReduceAction83___action(val_t p0, val_t p1){
13697 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13698 val_t REGB0;
13699 val_t tmp;
13700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13701 fra.me.file = LOCATE_parser;
13702 fra.me.line = 3729;
13703 fra.me.meth = LOCATE_parser___ReduceAction83___action;
13704 fra.me.has_broke = 0;
13705 fra.me.REG_size = 8;
13706 fra.me.REG[0] = NIT_NULL;
13707 fra.me.REG[1] = NIT_NULL;
13708 fra.me.REG[2] = NIT_NULL;
13709 fra.me.REG[3] = NIT_NULL;
13710 fra.me.REG[4] = NIT_NULL;
13711 fra.me.REG[5] = NIT_NULL;
13712 fra.me.REG[6] = NIT_NULL;
13713 fra.me.REG[7] = NIT_NULL;
13714 fra.me.REG[0] = p0;
13715 fra.me.REG[1] = p1;
13716 /* ./parser//parser.nit:3731 */
13717 fra.me.REG[2] = NIT_NULL;
13718 /* ./parser//parser.nit:3732 */
13719 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13720 /* ./parser//parser.nit:3733 */
13721 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13722 /* ./parser//parser.nit:3734 */
13723 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13724 /* ./parser//parser.nit:3735 */
13725 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13726 /* ./parser//parser.nit:3736 */
13727 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13728 /* ./parser//parser.nit:3738 */
13729 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13730 if (UNTAG_Bool(REGB0)) {
13731 } else {
13732 nit_abort("Assert failed", NULL, LOCATE_parser, 3738);
13733 }
13734 /* ./parser//parser.nit:3740 */
13735 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
13736 if (UNTAG_Bool(REGB0)) {
13737 } else {
13738 nit_abort("Assert failed", NULL, LOCATE_parser, 3740);
13739 }
13740 /* ./parser//parser.nit:3742 */
13741 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13742 if (UNTAG_Bool(REGB0)) {
13743 } else {
13744 nit_abort("Assert failed", NULL, LOCATE_parser, 3742);
13745 }
13746 /* ./parser//parser.nit:3744 */
13747 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13748 if (UNTAG_Bool(REGB0)) {
13749 } else {
13750 nit_abort("Assert failed", NULL, LOCATE_parser, 3744);
13751 }
13752 /* ./parser//parser.nit:3746 */
13753 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13754 if (UNTAG_Bool(REGB0)) {
13755 } else {
13756 nit_abort("Assert failed", NULL, LOCATE_parser, 3746);
13757 }
13758 /* ./parser//parser.nit:3747 */
13759 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);
13760 /* ./parser//parser.nit:3759 */
13761 fra.me.REG[2] = fra.me.REG[3];
13762 /* ./parser//parser.nit:3760 */
13763 REGB0 = TAG_Bool(ATTR_parser___ReduceAction83____goto(fra.me.REG[0])!=NIT_NULL);
13764 if (UNTAG_Bool(REGB0)) {
13765 } else {
13766 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3760);
13767 }
13768 REGB0 = ATTR_parser___ReduceAction83____goto(fra.me.REG[0]);
13769 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13770 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13771 stack_frame_head = fra.me.prev;
13772 return;
13773 }
13774 void parser___ReduceAction83___init(val_t p0, val_t p1, int* init_table){
13775 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction83].i;
13776 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13777 val_t REGB0;
13778 val_t tmp;
13779 if (init_table[itpos86]) return;
13780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13781 fra.me.file = LOCATE_parser;
13782 fra.me.line = 3763;
13783 fra.me.meth = LOCATE_parser___ReduceAction83___init;
13784 fra.me.has_broke = 0;
13785 fra.me.REG_size = 2;
13786 fra.me.REG[0] = NIT_NULL;
13787 fra.me.REG[1] = NIT_NULL;
13788 fra.me.REG[0] = p0;
13789 REGB0 = p1;
13790 /* ./parser//parser.nit:3763 */
13791 fra.me.REG[1] = fra.me.REG[0];
13792 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13793 ATTR_parser___ReduceAction83____goto(fra.me.REG[1]) = REGB0;
13794 stack_frame_head = fra.me.prev;
13795 init_table[itpos86] = 1;
13796 return;
13797 }
13798 void parser___ReduceAction84___action(val_t p0, val_t p1){
13799 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
13800 val_t REGB0;
13801 val_t tmp;
13802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13803 fra.me.file = LOCATE_parser;
13804 fra.me.line = 3767;
13805 fra.me.meth = LOCATE_parser___ReduceAction84___action;
13806 fra.me.has_broke = 0;
13807 fra.me.REG_size = 9;
13808 fra.me.REG[0] = NIT_NULL;
13809 fra.me.REG[1] = NIT_NULL;
13810 fra.me.REG[2] = NIT_NULL;
13811 fra.me.REG[3] = NIT_NULL;
13812 fra.me.REG[4] = NIT_NULL;
13813 fra.me.REG[5] = NIT_NULL;
13814 fra.me.REG[6] = NIT_NULL;
13815 fra.me.REG[7] = NIT_NULL;
13816 fra.me.REG[8] = NIT_NULL;
13817 fra.me.REG[0] = p0;
13818 fra.me.REG[1] = p1;
13819 /* ./parser//parser.nit:3769 */
13820 fra.me.REG[2] = NIT_NULL;
13821 /* ./parser//parser.nit:3770 */
13822 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13823 /* ./parser//parser.nit:3771 */
13824 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13825 /* ./parser//parser.nit:3772 */
13826 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13827 /* ./parser//parser.nit:3773 */
13828 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13829 /* ./parser//parser.nit:3774 */
13830 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13831 /* ./parser//parser.nit:3775 */
13832 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13833 /* ./parser//parser.nit:3777 */
13834 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13835 if (UNTAG_Bool(REGB0)) {
13836 } else {
13837 nit_abort("Assert failed", NULL, LOCATE_parser, 3777);
13838 }
13839 /* ./parser//parser.nit:3779 */
13840 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
13841 if (UNTAG_Bool(REGB0)) {
13842 } else {
13843 nit_abort("Assert failed", NULL, LOCATE_parser, 3779);
13844 }
13845 /* ./parser//parser.nit:3781 */
13846 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
13847 if (UNTAG_Bool(REGB0)) {
13848 } else {
13849 nit_abort("Assert failed", NULL, LOCATE_parser, 3781);
13850 }
13851 /* ./parser//parser.nit:3783 */
13852 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13853 if (UNTAG_Bool(REGB0)) {
13854 } else {
13855 nit_abort("Assert failed", NULL, LOCATE_parser, 3783);
13856 }
13857 /* ./parser//parser.nit:3785 */
13858 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13859 if (UNTAG_Bool(REGB0)) {
13860 } else {
13861 nit_abort("Assert failed", NULL, LOCATE_parser, 3785);
13862 }
13863 /* ./parser//parser.nit:3787 */
13864 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13865 if (UNTAG_Bool(REGB0)) {
13866 } else {
13867 nit_abort("Assert failed", NULL, LOCATE_parser, 3787);
13868 }
13869 /* ./parser//parser.nit:3788 */
13870 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);
13871 /* ./parser//parser.nit:3800 */
13872 fra.me.REG[2] = fra.me.REG[3];
13873 /* ./parser//parser.nit:3801 */
13874 REGB0 = TAG_Bool(ATTR_parser___ReduceAction84____goto(fra.me.REG[0])!=NIT_NULL);
13875 if (UNTAG_Bool(REGB0)) {
13876 } else {
13877 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3801);
13878 }
13879 REGB0 = ATTR_parser___ReduceAction84____goto(fra.me.REG[0]);
13880 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13881 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13882 stack_frame_head = fra.me.prev;
13883 return;
13884 }
13885 void parser___ReduceAction84___init(val_t p0, val_t p1, int* init_table){
13886 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction84].i;
13887 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13888 val_t REGB0;
13889 val_t tmp;
13890 if (init_table[itpos87]) return;
13891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13892 fra.me.file = LOCATE_parser;
13893 fra.me.line = 3804;
13894 fra.me.meth = LOCATE_parser___ReduceAction84___init;
13895 fra.me.has_broke = 0;
13896 fra.me.REG_size = 2;
13897 fra.me.REG[0] = NIT_NULL;
13898 fra.me.REG[1] = NIT_NULL;
13899 fra.me.REG[0] = p0;
13900 REGB0 = p1;
13901 /* ./parser//parser.nit:3804 */
13902 fra.me.REG[1] = fra.me.REG[0];
13903 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
13904 ATTR_parser___ReduceAction84____goto(fra.me.REG[1]) = REGB0;
13905 stack_frame_head = fra.me.prev;
13906 init_table[itpos87] = 1;
13907 return;
13908 }
13909 void parser___ReduceAction85___action(val_t p0, val_t p1){
13910 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
13911 val_t REGB0;
13912 val_t tmp;
13913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13914 fra.me.file = LOCATE_parser;
13915 fra.me.line = 3808;
13916 fra.me.meth = LOCATE_parser___ReduceAction85___action;
13917 fra.me.has_broke = 0;
13918 fra.me.REG_size = 8;
13919 fra.me.REG[0] = NIT_NULL;
13920 fra.me.REG[1] = NIT_NULL;
13921 fra.me.REG[2] = NIT_NULL;
13922 fra.me.REG[3] = NIT_NULL;
13923 fra.me.REG[4] = NIT_NULL;
13924 fra.me.REG[5] = NIT_NULL;
13925 fra.me.REG[6] = NIT_NULL;
13926 fra.me.REG[7] = NIT_NULL;
13927 fra.me.REG[0] = p0;
13928 fra.me.REG[1] = p1;
13929 /* ./parser//parser.nit:3810 */
13930 fra.me.REG[2] = NIT_NULL;
13931 /* ./parser//parser.nit:3811 */
13932 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13933 /* ./parser//parser.nit:3812 */
13934 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13935 /* ./parser//parser.nit:3813 */
13936 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13937 /* ./parser//parser.nit:3814 */
13938 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13939 /* ./parser//parser.nit:3815 */
13940 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
13941 /* ./parser//parser.nit:3817 */
13942 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
13943 if (UNTAG_Bool(REGB0)) {
13944 } else {
13945 nit_abort("Assert failed", NULL, LOCATE_parser, 3817);
13946 }
13947 /* ./parser//parser.nit:3819 */
13948 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
13949 if (UNTAG_Bool(REGB0)) {
13950 } else {
13951 nit_abort("Assert failed", NULL, LOCATE_parser, 3819);
13952 }
13953 /* ./parser//parser.nit:3821 */
13954 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
13955 if (UNTAG_Bool(REGB0)) {
13956 } else {
13957 nit_abort("Assert failed", NULL, LOCATE_parser, 3821);
13958 }
13959 /* ./parser//parser.nit:3823 */
13960 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
13961 if (UNTAG_Bool(REGB0)) {
13962 } else {
13963 nit_abort("Assert failed", NULL, LOCATE_parser, 3823);
13964 }
13965 /* ./parser//parser.nit:3825 */
13966 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
13967 if (UNTAG_Bool(REGB0)) {
13968 } else {
13969 nit_abort("Assert failed", NULL, LOCATE_parser, 3825);
13970 }
13971 /* ./parser//parser.nit:3826 */
13972 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);
13973 /* ./parser//parser.nit:3838 */
13974 fra.me.REG[2] = fra.me.REG[3];
13975 /* ./parser//parser.nit:3839 */
13976 REGB0 = TAG_Bool(ATTR_parser___ReduceAction85____goto(fra.me.REG[0])!=NIT_NULL);
13977 if (UNTAG_Bool(REGB0)) {
13978 } else {
13979 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3839);
13980 }
13981 REGB0 = ATTR_parser___ReduceAction85____goto(fra.me.REG[0]);
13982 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
13983 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
13984 stack_frame_head = fra.me.prev;
13985 return;
13986 }
13987 void parser___ReduceAction85___init(val_t p0, val_t p1, int* init_table){
13988 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction85].i;
13989 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13990 val_t REGB0;
13991 val_t tmp;
13992 if (init_table[itpos88]) return;
13993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13994 fra.me.file = LOCATE_parser;
13995 fra.me.line = 3842;
13996 fra.me.meth = LOCATE_parser___ReduceAction85___init;
13997 fra.me.has_broke = 0;
13998 fra.me.REG_size = 2;
13999 fra.me.REG[0] = NIT_NULL;
14000 fra.me.REG[1] = NIT_NULL;
14001 fra.me.REG[0] = p0;
14002 REGB0 = p1;
14003 /* ./parser//parser.nit:3842 */
14004 fra.me.REG[1] = fra.me.REG[0];
14005 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14006 ATTR_parser___ReduceAction85____goto(fra.me.REG[1]) = REGB0;
14007 stack_frame_head = fra.me.prev;
14008 init_table[itpos88] = 1;
14009 return;
14010 }
14011 void parser___ReduceAction86___action(val_t p0, val_t p1){
14012 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14013 val_t REGB0;
14014 val_t tmp;
14015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14016 fra.me.file = LOCATE_parser;
14017 fra.me.line = 3846;
14018 fra.me.meth = LOCATE_parser___ReduceAction86___action;
14019 fra.me.has_broke = 0;
14020 fra.me.REG_size = 9;
14021 fra.me.REG[0] = NIT_NULL;
14022 fra.me.REG[1] = NIT_NULL;
14023 fra.me.REG[2] = NIT_NULL;
14024 fra.me.REG[3] = NIT_NULL;
14025 fra.me.REG[4] = NIT_NULL;
14026 fra.me.REG[5] = NIT_NULL;
14027 fra.me.REG[6] = NIT_NULL;
14028 fra.me.REG[7] = NIT_NULL;
14029 fra.me.REG[8] = NIT_NULL;
14030 fra.me.REG[0] = p0;
14031 fra.me.REG[1] = p1;
14032 /* ./parser//parser.nit:3848 */
14033 fra.me.REG[2] = NIT_NULL;
14034 /* ./parser//parser.nit:3849 */
14035 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14036 /* ./parser//parser.nit:3850 */
14037 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14038 /* ./parser//parser.nit:3851 */
14039 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14040 /* ./parser//parser.nit:3852 */
14041 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14042 /* ./parser//parser.nit:3853 */
14043 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14044 /* ./parser//parser.nit:3854 */
14045 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14046 /* ./parser//parser.nit:3856 */
14047 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14048 if (UNTAG_Bool(REGB0)) {
14049 } else {
14050 nit_abort("Assert failed", NULL, LOCATE_parser, 3856);
14051 }
14052 /* ./parser//parser.nit:3858 */
14053 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14054 if (UNTAG_Bool(REGB0)) {
14055 } else {
14056 nit_abort("Assert failed", NULL, LOCATE_parser, 3858);
14057 }
14058 /* ./parser//parser.nit:3860 */
14059 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14060 if (UNTAG_Bool(REGB0)) {
14061 } else {
14062 nit_abort("Assert failed", NULL, LOCATE_parser, 3860);
14063 }
14064 /* ./parser//parser.nit:3862 */
14065 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14066 if (UNTAG_Bool(REGB0)) {
14067 } else {
14068 nit_abort("Assert failed", NULL, LOCATE_parser, 3862);
14069 }
14070 /* ./parser//parser.nit:3864 */
14071 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14072 if (UNTAG_Bool(REGB0)) {
14073 } else {
14074 nit_abort("Assert failed", NULL, LOCATE_parser, 3864);
14075 }
14076 /* ./parser//parser.nit:3866 */
14077 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14078 if (UNTAG_Bool(REGB0)) {
14079 } else {
14080 nit_abort("Assert failed", NULL, LOCATE_parser, 3866);
14081 }
14082 /* ./parser//parser.nit:3867 */
14083 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);
14084 /* ./parser//parser.nit:3879 */
14085 fra.me.REG[2] = fra.me.REG[3];
14086 /* ./parser//parser.nit:3880 */
14087 REGB0 = TAG_Bool(ATTR_parser___ReduceAction86____goto(fra.me.REG[0])!=NIT_NULL);
14088 if (UNTAG_Bool(REGB0)) {
14089 } else {
14090 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3880);
14091 }
14092 REGB0 = ATTR_parser___ReduceAction86____goto(fra.me.REG[0]);
14093 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14094 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14095 stack_frame_head = fra.me.prev;
14096 return;
14097 }
14098 void parser___ReduceAction86___init(val_t p0, val_t p1, int* init_table){
14099 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction86].i;
14100 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14101 val_t REGB0;
14102 val_t tmp;
14103 if (init_table[itpos89]) return;
14104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14105 fra.me.file = LOCATE_parser;
14106 fra.me.line = 3883;
14107 fra.me.meth = LOCATE_parser___ReduceAction86___init;
14108 fra.me.has_broke = 0;
14109 fra.me.REG_size = 2;
14110 fra.me.REG[0] = NIT_NULL;
14111 fra.me.REG[1] = NIT_NULL;
14112 fra.me.REG[0] = p0;
14113 REGB0 = p1;
14114 /* ./parser//parser.nit:3883 */
14115 fra.me.REG[1] = fra.me.REG[0];
14116 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14117 ATTR_parser___ReduceAction86____goto(fra.me.REG[1]) = REGB0;
14118 stack_frame_head = fra.me.prev;
14119 init_table[itpos89] = 1;
14120 return;
14121 }
14122 void parser___ReduceAction87___action(val_t p0, val_t p1){
14123 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14124 val_t REGB0;
14125 val_t tmp;
14126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14127 fra.me.file = LOCATE_parser;
14128 fra.me.line = 3887;
14129 fra.me.meth = LOCATE_parser___ReduceAction87___action;
14130 fra.me.has_broke = 0;
14131 fra.me.REG_size = 9;
14132 fra.me.REG[0] = NIT_NULL;
14133 fra.me.REG[1] = NIT_NULL;
14134 fra.me.REG[2] = NIT_NULL;
14135 fra.me.REG[3] = NIT_NULL;
14136 fra.me.REG[4] = NIT_NULL;
14137 fra.me.REG[5] = NIT_NULL;
14138 fra.me.REG[6] = NIT_NULL;
14139 fra.me.REG[7] = NIT_NULL;
14140 fra.me.REG[8] = NIT_NULL;
14141 fra.me.REG[0] = p0;
14142 fra.me.REG[1] = p1;
14143 /* ./parser//parser.nit:3889 */
14144 fra.me.REG[2] = NIT_NULL;
14145 /* ./parser//parser.nit:3890 */
14146 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14147 /* ./parser//parser.nit:3891 */
14148 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14149 /* ./parser//parser.nit:3892 */
14150 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14151 /* ./parser//parser.nit:3893 */
14152 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14153 /* ./parser//parser.nit:3894 */
14154 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14155 /* ./parser//parser.nit:3895 */
14156 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14157 /* ./parser//parser.nit:3897 */
14158 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14159 if (UNTAG_Bool(REGB0)) {
14160 } else {
14161 nit_abort("Assert failed", NULL, LOCATE_parser, 3897);
14162 }
14163 /* ./parser//parser.nit:3899 */
14164 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14165 if (UNTAG_Bool(REGB0)) {
14166 } else {
14167 nit_abort("Assert failed", NULL, LOCATE_parser, 3899);
14168 }
14169 /* ./parser//parser.nit:3901 */
14170 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14171 if (UNTAG_Bool(REGB0)) {
14172 } else {
14173 nit_abort("Assert failed", NULL, LOCATE_parser, 3901);
14174 }
14175 /* ./parser//parser.nit:3903 */
14176 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14177 if (UNTAG_Bool(REGB0)) {
14178 } else {
14179 nit_abort("Assert failed", NULL, LOCATE_parser, 3903);
14180 }
14181 /* ./parser//parser.nit:3905 */
14182 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14183 if (UNTAG_Bool(REGB0)) {
14184 } else {
14185 nit_abort("Assert failed", NULL, LOCATE_parser, 3905);
14186 }
14187 /* ./parser//parser.nit:3907 */
14188 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14189 if (UNTAG_Bool(REGB0)) {
14190 } else {
14191 nit_abort("Assert failed", NULL, LOCATE_parser, 3907);
14192 }
14193 /* ./parser//parser.nit:3908 */
14194 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);
14195 /* ./parser//parser.nit:3920 */
14196 fra.me.REG[2] = fra.me.REG[3];
14197 /* ./parser//parser.nit:3921 */
14198 REGB0 = TAG_Bool(ATTR_parser___ReduceAction87____goto(fra.me.REG[0])!=NIT_NULL);
14199 if (UNTAG_Bool(REGB0)) {
14200 } else {
14201 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3921);
14202 }
14203 REGB0 = ATTR_parser___ReduceAction87____goto(fra.me.REG[0]);
14204 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14205 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14206 stack_frame_head = fra.me.prev;
14207 return;
14208 }
14209 void parser___ReduceAction87___init(val_t p0, val_t p1, int* init_table){
14210 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction87].i;
14211 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14212 val_t REGB0;
14213 val_t tmp;
14214 if (init_table[itpos90]) return;
14215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14216 fra.me.file = LOCATE_parser;
14217 fra.me.line = 3924;
14218 fra.me.meth = LOCATE_parser___ReduceAction87___init;
14219 fra.me.has_broke = 0;
14220 fra.me.REG_size = 2;
14221 fra.me.REG[0] = NIT_NULL;
14222 fra.me.REG[1] = NIT_NULL;
14223 fra.me.REG[0] = p0;
14224 REGB0 = p1;
14225 /* ./parser//parser.nit:3924 */
14226 fra.me.REG[1] = fra.me.REG[0];
14227 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14228 ATTR_parser___ReduceAction87____goto(fra.me.REG[1]) = REGB0;
14229 stack_frame_head = fra.me.prev;
14230 init_table[itpos90] = 1;
14231 return;
14232 }
14233 void parser___ReduceAction88___action(val_t p0, val_t p1){
14234 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
14235 val_t REGB0;
14236 val_t tmp;
14237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14238 fra.me.file = LOCATE_parser;
14239 fra.me.line = 3928;
14240 fra.me.meth = LOCATE_parser___ReduceAction88___action;
14241 fra.me.has_broke = 0;
14242 fra.me.REG_size = 10;
14243 fra.me.REG[0] = NIT_NULL;
14244 fra.me.REG[1] = NIT_NULL;
14245 fra.me.REG[2] = NIT_NULL;
14246 fra.me.REG[3] = NIT_NULL;
14247 fra.me.REG[4] = NIT_NULL;
14248 fra.me.REG[5] = NIT_NULL;
14249 fra.me.REG[6] = NIT_NULL;
14250 fra.me.REG[7] = NIT_NULL;
14251 fra.me.REG[8] = NIT_NULL;
14252 fra.me.REG[9] = NIT_NULL;
14253 fra.me.REG[0] = p0;
14254 fra.me.REG[1] = p1;
14255 /* ./parser//parser.nit:3930 */
14256 fra.me.REG[2] = NIT_NULL;
14257 /* ./parser//parser.nit:3931 */
14258 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14259 /* ./parser//parser.nit:3932 */
14260 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14261 /* ./parser//parser.nit:3933 */
14262 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14263 /* ./parser//parser.nit:3934 */
14264 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14265 /* ./parser//parser.nit:3935 */
14266 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14267 /* ./parser//parser.nit:3936 */
14268 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14269 /* ./parser//parser.nit:3937 */
14270 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14271 /* ./parser//parser.nit:3939 */
14272 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14273 if (UNTAG_Bool(REGB0)) {
14274 } else {
14275 nit_abort("Assert failed", NULL, LOCATE_parser, 3939);
14276 }
14277 /* ./parser//parser.nit:3941 */
14278 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14279 if (UNTAG_Bool(REGB0)) {
14280 } else {
14281 nit_abort("Assert failed", NULL, LOCATE_parser, 3941);
14282 }
14283 /* ./parser//parser.nit:3943 */
14284 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14285 if (UNTAG_Bool(REGB0)) {
14286 } else {
14287 nit_abort("Assert failed", NULL, LOCATE_parser, 3943);
14288 }
14289 /* ./parser//parser.nit:3945 */
14290 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14291 if (UNTAG_Bool(REGB0)) {
14292 } else {
14293 nit_abort("Assert failed", NULL, LOCATE_parser, 3945);
14294 }
14295 /* ./parser//parser.nit:3947 */
14296 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14297 if (UNTAG_Bool(REGB0)) {
14298 } else {
14299 nit_abort("Assert failed", NULL, LOCATE_parser, 3947);
14300 }
14301 /* ./parser//parser.nit:3949 */
14302 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14303 if (UNTAG_Bool(REGB0)) {
14304 } else {
14305 nit_abort("Assert failed", NULL, LOCATE_parser, 3949);
14306 }
14307 /* ./parser//parser.nit:3951 */
14308 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14309 if (UNTAG_Bool(REGB0)) {
14310 } else {
14311 nit_abort("Assert failed", NULL, LOCATE_parser, 3951);
14312 }
14313 /* ./parser//parser.nit:3952 */
14314 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);
14315 /* ./parser//parser.nit:3964 */
14316 fra.me.REG[2] = fra.me.REG[3];
14317 /* ./parser//parser.nit:3965 */
14318 REGB0 = TAG_Bool(ATTR_parser___ReduceAction88____goto(fra.me.REG[0])!=NIT_NULL);
14319 if (UNTAG_Bool(REGB0)) {
14320 } else {
14321 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3965);
14322 }
14323 REGB0 = ATTR_parser___ReduceAction88____goto(fra.me.REG[0]);
14324 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14325 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14326 stack_frame_head = fra.me.prev;
14327 return;
14328 }
14329 void parser___ReduceAction88___init(val_t p0, val_t p1, int* init_table){
14330 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction88].i;
14331 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14332 val_t REGB0;
14333 val_t tmp;
14334 if (init_table[itpos91]) return;
14335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14336 fra.me.file = LOCATE_parser;
14337 fra.me.line = 3968;
14338 fra.me.meth = LOCATE_parser___ReduceAction88___init;
14339 fra.me.has_broke = 0;
14340 fra.me.REG_size = 2;
14341 fra.me.REG[0] = NIT_NULL;
14342 fra.me.REG[1] = NIT_NULL;
14343 fra.me.REG[0] = p0;
14344 REGB0 = p1;
14345 /* ./parser//parser.nit:3968 */
14346 fra.me.REG[1] = fra.me.REG[0];
14347 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14348 ATTR_parser___ReduceAction88____goto(fra.me.REG[1]) = REGB0;
14349 stack_frame_head = fra.me.prev;
14350 init_table[itpos91] = 1;
14351 return;
14352 }
14353 void parser___ReduceAction89___action(val_t p0, val_t p1){
14354 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
14355 val_t REGB0;
14356 val_t tmp;
14357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14358 fra.me.file = LOCATE_parser;
14359 fra.me.line = 3972;
14360 fra.me.meth = LOCATE_parser___ReduceAction89___action;
14361 fra.me.has_broke = 0;
14362 fra.me.REG_size = 8;
14363 fra.me.REG[0] = NIT_NULL;
14364 fra.me.REG[1] = NIT_NULL;
14365 fra.me.REG[2] = NIT_NULL;
14366 fra.me.REG[3] = NIT_NULL;
14367 fra.me.REG[4] = NIT_NULL;
14368 fra.me.REG[5] = NIT_NULL;
14369 fra.me.REG[6] = NIT_NULL;
14370 fra.me.REG[7] = NIT_NULL;
14371 fra.me.REG[0] = p0;
14372 fra.me.REG[1] = p1;
14373 /* ./parser//parser.nit:3974 */
14374 fra.me.REG[2] = NIT_NULL;
14375 /* ./parser//parser.nit:3975 */
14376 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14377 /* ./parser//parser.nit:3976 */
14378 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14379 /* ./parser//parser.nit:3977 */
14380 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14381 /* ./parser//parser.nit:3978 */
14382 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14383 /* ./parser//parser.nit:3979 */
14384 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14385 /* ./parser//parser.nit:3981 */
14386 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14387 if (UNTAG_Bool(REGB0)) {
14388 } else {
14389 nit_abort("Assert failed", NULL, LOCATE_parser, 3981);
14390 }
14391 /* ./parser//parser.nit:3983 */
14392 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14393 if (UNTAG_Bool(REGB0)) {
14394 } else {
14395 nit_abort("Assert failed", NULL, LOCATE_parser, 3983);
14396 }
14397 /* ./parser//parser.nit:3985 */
14398 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14399 if (UNTAG_Bool(REGB0)) {
14400 } else {
14401 nit_abort("Assert failed", NULL, LOCATE_parser, 3985);
14402 }
14403 /* ./parser//parser.nit:3987 */
14404 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14405 if (UNTAG_Bool(REGB0)) {
14406 } else {
14407 nit_abort("Assert failed", NULL, LOCATE_parser, 3987);
14408 }
14409 /* ./parser//parser.nit:3989 */
14410 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14411 if (UNTAG_Bool(REGB0)) {
14412 } else {
14413 nit_abort("Assert failed", NULL, LOCATE_parser, 3989);
14414 }
14415 /* ./parser//parser.nit:3990 */
14416 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);
14417 /* ./parser//parser.nit:4002 */
14418 fra.me.REG[2] = fra.me.REG[3];
14419 /* ./parser//parser.nit:4003 */
14420 REGB0 = TAG_Bool(ATTR_parser___ReduceAction89____goto(fra.me.REG[0])!=NIT_NULL);
14421 if (UNTAG_Bool(REGB0)) {
14422 } else {
14423 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4003);
14424 }
14425 REGB0 = ATTR_parser___ReduceAction89____goto(fra.me.REG[0]);
14426 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14427 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14428 stack_frame_head = fra.me.prev;
14429 return;
14430 }
14431 void parser___ReduceAction89___init(val_t p0, val_t p1, int* init_table){
14432 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction89].i;
14433 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14434 val_t REGB0;
14435 val_t tmp;
14436 if (init_table[itpos92]) return;
14437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14438 fra.me.file = LOCATE_parser;
14439 fra.me.line = 4006;
14440 fra.me.meth = LOCATE_parser___ReduceAction89___init;
14441 fra.me.has_broke = 0;
14442 fra.me.REG_size = 2;
14443 fra.me.REG[0] = NIT_NULL;
14444 fra.me.REG[1] = NIT_NULL;
14445 fra.me.REG[0] = p0;
14446 REGB0 = p1;
14447 /* ./parser//parser.nit:4006 */
14448 fra.me.REG[1] = fra.me.REG[0];
14449 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14450 ATTR_parser___ReduceAction89____goto(fra.me.REG[1]) = REGB0;
14451 stack_frame_head = fra.me.prev;
14452 init_table[itpos92] = 1;
14453 return;
14454 }
14455 void parser___ReduceAction90___action(val_t p0, val_t p1){
14456 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14457 val_t REGB0;
14458 val_t tmp;
14459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14460 fra.me.file = LOCATE_parser;
14461 fra.me.line = 4010;
14462 fra.me.meth = LOCATE_parser___ReduceAction90___action;
14463 fra.me.has_broke = 0;
14464 fra.me.REG_size = 9;
14465 fra.me.REG[0] = NIT_NULL;
14466 fra.me.REG[1] = NIT_NULL;
14467 fra.me.REG[2] = NIT_NULL;
14468 fra.me.REG[3] = NIT_NULL;
14469 fra.me.REG[4] = NIT_NULL;
14470 fra.me.REG[5] = NIT_NULL;
14471 fra.me.REG[6] = NIT_NULL;
14472 fra.me.REG[7] = NIT_NULL;
14473 fra.me.REG[8] = NIT_NULL;
14474 fra.me.REG[0] = p0;
14475 fra.me.REG[1] = p1;
14476 /* ./parser//parser.nit:4012 */
14477 fra.me.REG[2] = NIT_NULL;
14478 /* ./parser//parser.nit:4013 */
14479 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14480 /* ./parser//parser.nit:4014 */
14481 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14482 /* ./parser//parser.nit:4015 */
14483 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14484 /* ./parser//parser.nit:4016 */
14485 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14486 /* ./parser//parser.nit:4017 */
14487 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14488 /* ./parser//parser.nit:4018 */
14489 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14490 /* ./parser//parser.nit:4020 */
14491 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14492 if (UNTAG_Bool(REGB0)) {
14493 } else {
14494 nit_abort("Assert failed", NULL, LOCATE_parser, 4020);
14495 }
14496 /* ./parser//parser.nit:4022 */
14497 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14498 if (UNTAG_Bool(REGB0)) {
14499 } else {
14500 nit_abort("Assert failed", NULL, LOCATE_parser, 4022);
14501 }
14502 /* ./parser//parser.nit:4024 */
14503 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14504 if (UNTAG_Bool(REGB0)) {
14505 } else {
14506 nit_abort("Assert failed", NULL, LOCATE_parser, 4024);
14507 }
14508 /* ./parser//parser.nit:4026 */
14509 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14510 if (UNTAG_Bool(REGB0)) {
14511 } else {
14512 nit_abort("Assert failed", NULL, LOCATE_parser, 4026);
14513 }
14514 /* ./parser//parser.nit:4028 */
14515 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14516 if (UNTAG_Bool(REGB0)) {
14517 } else {
14518 nit_abort("Assert failed", NULL, LOCATE_parser, 4028);
14519 }
14520 /* ./parser//parser.nit:4030 */
14521 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14522 if (UNTAG_Bool(REGB0)) {
14523 } else {
14524 nit_abort("Assert failed", NULL, LOCATE_parser, 4030);
14525 }
14526 /* ./parser//parser.nit:4031 */
14527 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);
14528 /* ./parser//parser.nit:4043 */
14529 fra.me.REG[2] = fra.me.REG[3];
14530 /* ./parser//parser.nit:4044 */
14531 REGB0 = TAG_Bool(ATTR_parser___ReduceAction90____goto(fra.me.REG[0])!=NIT_NULL);
14532 if (UNTAG_Bool(REGB0)) {
14533 } else {
14534 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4044);
14535 }
14536 REGB0 = ATTR_parser___ReduceAction90____goto(fra.me.REG[0]);
14537 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14538 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14539 stack_frame_head = fra.me.prev;
14540 return;
14541 }
14542 void parser___ReduceAction90___init(val_t p0, val_t p1, int* init_table){
14543 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction90].i;
14544 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14545 val_t REGB0;
14546 val_t tmp;
14547 if (init_table[itpos93]) return;
14548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14549 fra.me.file = LOCATE_parser;
14550 fra.me.line = 4047;
14551 fra.me.meth = LOCATE_parser___ReduceAction90___init;
14552 fra.me.has_broke = 0;
14553 fra.me.REG_size = 2;
14554 fra.me.REG[0] = NIT_NULL;
14555 fra.me.REG[1] = NIT_NULL;
14556 fra.me.REG[0] = p0;
14557 REGB0 = p1;
14558 /* ./parser//parser.nit:4047 */
14559 fra.me.REG[1] = fra.me.REG[0];
14560 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14561 ATTR_parser___ReduceAction90____goto(fra.me.REG[1]) = REGB0;
14562 stack_frame_head = fra.me.prev;
14563 init_table[itpos93] = 1;
14564 return;
14565 }
14566 void parser___ReduceAction91___action(val_t p0, val_t p1){
14567 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14568 val_t REGB0;
14569 val_t tmp;
14570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14571 fra.me.file = LOCATE_parser;
14572 fra.me.line = 4051;
14573 fra.me.meth = LOCATE_parser___ReduceAction91___action;
14574 fra.me.has_broke = 0;
14575 fra.me.REG_size = 9;
14576 fra.me.REG[0] = NIT_NULL;
14577 fra.me.REG[1] = NIT_NULL;
14578 fra.me.REG[2] = NIT_NULL;
14579 fra.me.REG[3] = NIT_NULL;
14580 fra.me.REG[4] = NIT_NULL;
14581 fra.me.REG[5] = NIT_NULL;
14582 fra.me.REG[6] = NIT_NULL;
14583 fra.me.REG[7] = NIT_NULL;
14584 fra.me.REG[8] = NIT_NULL;
14585 fra.me.REG[0] = p0;
14586 fra.me.REG[1] = p1;
14587 /* ./parser//parser.nit:4053 */
14588 fra.me.REG[2] = NIT_NULL;
14589 /* ./parser//parser.nit:4054 */
14590 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14591 /* ./parser//parser.nit:4055 */
14592 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14593 /* ./parser//parser.nit:4056 */
14594 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14595 /* ./parser//parser.nit:4057 */
14596 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14597 /* ./parser//parser.nit:4058 */
14598 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14599 /* ./parser//parser.nit:4059 */
14600 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14601 /* ./parser//parser.nit:4061 */
14602 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14603 if (UNTAG_Bool(REGB0)) {
14604 } else {
14605 nit_abort("Assert failed", NULL, LOCATE_parser, 4061);
14606 }
14607 /* ./parser//parser.nit:4063 */
14608 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14609 if (UNTAG_Bool(REGB0)) {
14610 } else {
14611 nit_abort("Assert failed", NULL, LOCATE_parser, 4063);
14612 }
14613 /* ./parser//parser.nit:4065 */
14614 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14615 if (UNTAG_Bool(REGB0)) {
14616 } else {
14617 nit_abort("Assert failed", NULL, LOCATE_parser, 4065);
14618 }
14619 /* ./parser//parser.nit:4067 */
14620 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14621 if (UNTAG_Bool(REGB0)) {
14622 } else {
14623 nit_abort("Assert failed", NULL, LOCATE_parser, 4067);
14624 }
14625 /* ./parser//parser.nit:4069 */
14626 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14627 if (UNTAG_Bool(REGB0)) {
14628 } else {
14629 nit_abort("Assert failed", NULL, LOCATE_parser, 4069);
14630 }
14631 /* ./parser//parser.nit:4071 */
14632 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14633 if (UNTAG_Bool(REGB0)) {
14634 } else {
14635 nit_abort("Assert failed", NULL, LOCATE_parser, 4071);
14636 }
14637 /* ./parser//parser.nit:4072 */
14638 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);
14639 /* ./parser//parser.nit:4084 */
14640 fra.me.REG[2] = fra.me.REG[3];
14641 /* ./parser//parser.nit:4085 */
14642 REGB0 = TAG_Bool(ATTR_parser___ReduceAction91____goto(fra.me.REG[0])!=NIT_NULL);
14643 if (UNTAG_Bool(REGB0)) {
14644 } else {
14645 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4085);
14646 }
14647 REGB0 = ATTR_parser___ReduceAction91____goto(fra.me.REG[0]);
14648 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14649 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14650 stack_frame_head = fra.me.prev;
14651 return;
14652 }
14653 void parser___ReduceAction91___init(val_t p0, val_t p1, int* init_table){
14654 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction91].i;
14655 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14656 val_t REGB0;
14657 val_t tmp;
14658 if (init_table[itpos94]) return;
14659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14660 fra.me.file = LOCATE_parser;
14661 fra.me.line = 4088;
14662 fra.me.meth = LOCATE_parser___ReduceAction91___init;
14663 fra.me.has_broke = 0;
14664 fra.me.REG_size = 2;
14665 fra.me.REG[0] = NIT_NULL;
14666 fra.me.REG[1] = NIT_NULL;
14667 fra.me.REG[0] = p0;
14668 REGB0 = p1;
14669 /* ./parser//parser.nit:4088 */
14670 fra.me.REG[1] = fra.me.REG[0];
14671 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14672 ATTR_parser___ReduceAction91____goto(fra.me.REG[1]) = REGB0;
14673 stack_frame_head = fra.me.prev;
14674 init_table[itpos94] = 1;
14675 return;
14676 }
14677 void parser___ReduceAction92___action(val_t p0, val_t p1){
14678 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
14679 val_t REGB0;
14680 val_t tmp;
14681 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14682 fra.me.file = LOCATE_parser;
14683 fra.me.line = 4092;
14684 fra.me.meth = LOCATE_parser___ReduceAction92___action;
14685 fra.me.has_broke = 0;
14686 fra.me.REG_size = 10;
14687 fra.me.REG[0] = NIT_NULL;
14688 fra.me.REG[1] = NIT_NULL;
14689 fra.me.REG[2] = NIT_NULL;
14690 fra.me.REG[3] = NIT_NULL;
14691 fra.me.REG[4] = NIT_NULL;
14692 fra.me.REG[5] = NIT_NULL;
14693 fra.me.REG[6] = NIT_NULL;
14694 fra.me.REG[7] = NIT_NULL;
14695 fra.me.REG[8] = NIT_NULL;
14696 fra.me.REG[9] = NIT_NULL;
14697 fra.me.REG[0] = p0;
14698 fra.me.REG[1] = p1;
14699 /* ./parser//parser.nit:4094 */
14700 fra.me.REG[2] = NIT_NULL;
14701 /* ./parser//parser.nit:4095 */
14702 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14703 /* ./parser//parser.nit:4096 */
14704 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14705 /* ./parser//parser.nit:4097 */
14706 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14707 /* ./parser//parser.nit:4098 */
14708 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14709 /* ./parser//parser.nit:4099 */
14710 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14711 /* ./parser//parser.nit:4100 */
14712 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14713 /* ./parser//parser.nit:4101 */
14714 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14715 /* ./parser//parser.nit:4103 */
14716 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14717 if (UNTAG_Bool(REGB0)) {
14718 } else {
14719 nit_abort("Assert failed", NULL, LOCATE_parser, 4103);
14720 }
14721 /* ./parser//parser.nit:4105 */
14722 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14723 if (UNTAG_Bool(REGB0)) {
14724 } else {
14725 nit_abort("Assert failed", NULL, LOCATE_parser, 4105);
14726 }
14727 /* ./parser//parser.nit:4107 */
14728 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14729 if (UNTAG_Bool(REGB0)) {
14730 } else {
14731 nit_abort("Assert failed", NULL, LOCATE_parser, 4107);
14732 }
14733 /* ./parser//parser.nit:4109 */
14734 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14735 if (UNTAG_Bool(REGB0)) {
14736 } else {
14737 nit_abort("Assert failed", NULL, LOCATE_parser, 4109);
14738 }
14739 /* ./parser//parser.nit:4111 */
14740 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14741 if (UNTAG_Bool(REGB0)) {
14742 } else {
14743 nit_abort("Assert failed", NULL, LOCATE_parser, 4111);
14744 }
14745 /* ./parser//parser.nit:4113 */
14746 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14747 if (UNTAG_Bool(REGB0)) {
14748 } else {
14749 nit_abort("Assert failed", NULL, LOCATE_parser, 4113);
14750 }
14751 /* ./parser//parser.nit:4115 */
14752 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14753 if (UNTAG_Bool(REGB0)) {
14754 } else {
14755 nit_abort("Assert failed", NULL, LOCATE_parser, 4115);
14756 }
14757 /* ./parser//parser.nit:4116 */
14758 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);
14759 /* ./parser//parser.nit:4128 */
14760 fra.me.REG[2] = fra.me.REG[3];
14761 /* ./parser//parser.nit:4129 */
14762 REGB0 = TAG_Bool(ATTR_parser___ReduceAction92____goto(fra.me.REG[0])!=NIT_NULL);
14763 if (UNTAG_Bool(REGB0)) {
14764 } else {
14765 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4129);
14766 }
14767 REGB0 = ATTR_parser___ReduceAction92____goto(fra.me.REG[0]);
14768 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14769 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14770 stack_frame_head = fra.me.prev;
14771 return;
14772 }
14773 void parser___ReduceAction92___init(val_t p0, val_t p1, int* init_table){
14774 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction92].i;
14775 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14776 val_t REGB0;
14777 val_t tmp;
14778 if (init_table[itpos95]) return;
14779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14780 fra.me.file = LOCATE_parser;
14781 fra.me.line = 4132;
14782 fra.me.meth = LOCATE_parser___ReduceAction92___init;
14783 fra.me.has_broke = 0;
14784 fra.me.REG_size = 2;
14785 fra.me.REG[0] = NIT_NULL;
14786 fra.me.REG[1] = NIT_NULL;
14787 fra.me.REG[0] = p0;
14788 REGB0 = p1;
14789 /* ./parser//parser.nit:4132 */
14790 fra.me.REG[1] = fra.me.REG[0];
14791 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14792 ATTR_parser___ReduceAction92____goto(fra.me.REG[1]) = REGB0;
14793 stack_frame_head = fra.me.prev;
14794 init_table[itpos95] = 1;
14795 return;
14796 }
14797 void parser___ReduceAction93___action(val_t p0, val_t p1){
14798 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
14799 val_t REGB0;
14800 val_t tmp;
14801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14802 fra.me.file = LOCATE_parser;
14803 fra.me.line = 4136;
14804 fra.me.meth = LOCATE_parser___ReduceAction93___action;
14805 fra.me.has_broke = 0;
14806 fra.me.REG_size = 9;
14807 fra.me.REG[0] = NIT_NULL;
14808 fra.me.REG[1] = NIT_NULL;
14809 fra.me.REG[2] = NIT_NULL;
14810 fra.me.REG[3] = NIT_NULL;
14811 fra.me.REG[4] = NIT_NULL;
14812 fra.me.REG[5] = NIT_NULL;
14813 fra.me.REG[6] = NIT_NULL;
14814 fra.me.REG[7] = NIT_NULL;
14815 fra.me.REG[8] = NIT_NULL;
14816 fra.me.REG[0] = p0;
14817 fra.me.REG[1] = p1;
14818 /* ./parser//parser.nit:4138 */
14819 fra.me.REG[2] = NIT_NULL;
14820 /* ./parser//parser.nit:4139 */
14821 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14822 /* ./parser//parser.nit:4140 */
14823 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14824 /* ./parser//parser.nit:4141 */
14825 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14826 /* ./parser//parser.nit:4142 */
14827 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14828 /* ./parser//parser.nit:4143 */
14829 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14830 /* ./parser//parser.nit:4144 */
14831 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14832 /* ./parser//parser.nit:4146 */
14833 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14834 if (UNTAG_Bool(REGB0)) {
14835 } else {
14836 nit_abort("Assert failed", NULL, LOCATE_parser, 4146);
14837 }
14838 /* ./parser//parser.nit:4148 */
14839 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14840 if (UNTAG_Bool(REGB0)) {
14841 } else {
14842 nit_abort("Assert failed", NULL, LOCATE_parser, 4148);
14843 }
14844 /* ./parser//parser.nit:4150 */
14845 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14846 if (UNTAG_Bool(REGB0)) {
14847 } else {
14848 nit_abort("Assert failed", NULL, LOCATE_parser, 4150);
14849 }
14850 /* ./parser//parser.nit:4152 */
14851 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14852 if (UNTAG_Bool(REGB0)) {
14853 } else {
14854 nit_abort("Assert failed", NULL, LOCATE_parser, 4152);
14855 }
14856 /* ./parser//parser.nit:4154 */
14857 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14858 if (UNTAG_Bool(REGB0)) {
14859 } else {
14860 nit_abort("Assert failed", NULL, LOCATE_parser, 4154);
14861 }
14862 /* ./parser//parser.nit:4156 */
14863 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14864 if (UNTAG_Bool(REGB0)) {
14865 } else {
14866 nit_abort("Assert failed", NULL, LOCATE_parser, 4156);
14867 }
14868 /* ./parser//parser.nit:4157 */
14869 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);
14870 /* ./parser//parser.nit:4169 */
14871 fra.me.REG[2] = fra.me.REG[3];
14872 /* ./parser//parser.nit:4170 */
14873 REGB0 = TAG_Bool(ATTR_parser___ReduceAction93____goto(fra.me.REG[0])!=NIT_NULL);
14874 if (UNTAG_Bool(REGB0)) {
14875 } else {
14876 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4170);
14877 }
14878 REGB0 = ATTR_parser___ReduceAction93____goto(fra.me.REG[0]);
14879 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
14880 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
14881 stack_frame_head = fra.me.prev;
14882 return;
14883 }
14884 void parser___ReduceAction93___init(val_t p0, val_t p1, int* init_table){
14885 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction93].i;
14886 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14887 val_t REGB0;
14888 val_t tmp;
14889 if (init_table[itpos96]) return;
14890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14891 fra.me.file = LOCATE_parser;
14892 fra.me.line = 4173;
14893 fra.me.meth = LOCATE_parser___ReduceAction93___init;
14894 fra.me.has_broke = 0;
14895 fra.me.REG_size = 2;
14896 fra.me.REG[0] = NIT_NULL;
14897 fra.me.REG[1] = NIT_NULL;
14898 fra.me.REG[0] = p0;
14899 REGB0 = p1;
14900 /* ./parser//parser.nit:4173 */
14901 fra.me.REG[1] = fra.me.REG[0];
14902 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
14903 ATTR_parser___ReduceAction93____goto(fra.me.REG[1]) = REGB0;
14904 stack_frame_head = fra.me.prev;
14905 init_table[itpos96] = 1;
14906 return;
14907 }
14908 void parser___ReduceAction94___action(val_t p0, val_t p1){
14909 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
14910 val_t REGB0;
14911 val_t tmp;
14912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14913 fra.me.file = LOCATE_parser;
14914 fra.me.line = 4177;
14915 fra.me.meth = LOCATE_parser___ReduceAction94___action;
14916 fra.me.has_broke = 0;
14917 fra.me.REG_size = 10;
14918 fra.me.REG[0] = NIT_NULL;
14919 fra.me.REG[1] = NIT_NULL;
14920 fra.me.REG[2] = NIT_NULL;
14921 fra.me.REG[3] = NIT_NULL;
14922 fra.me.REG[4] = NIT_NULL;
14923 fra.me.REG[5] = NIT_NULL;
14924 fra.me.REG[6] = NIT_NULL;
14925 fra.me.REG[7] = NIT_NULL;
14926 fra.me.REG[8] = NIT_NULL;
14927 fra.me.REG[9] = NIT_NULL;
14928 fra.me.REG[0] = p0;
14929 fra.me.REG[1] = p1;
14930 /* ./parser//parser.nit:4179 */
14931 fra.me.REG[2] = NIT_NULL;
14932 /* ./parser//parser.nit:4180 */
14933 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14934 /* ./parser//parser.nit:4181 */
14935 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14936 /* ./parser//parser.nit:4182 */
14937 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14938 /* ./parser//parser.nit:4183 */
14939 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14940 /* ./parser//parser.nit:4184 */
14941 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14942 /* ./parser//parser.nit:4185 */
14943 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14944 /* ./parser//parser.nit:4186 */
14945 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
14946 /* ./parser//parser.nit:4188 */
14947 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
14948 if (UNTAG_Bool(REGB0)) {
14949 } else {
14950 nit_abort("Assert failed", NULL, LOCATE_parser, 4188);
14951 }
14952 /* ./parser//parser.nit:4190 */
14953 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
14954 if (UNTAG_Bool(REGB0)) {
14955 } else {
14956 nit_abort("Assert failed", NULL, LOCATE_parser, 4190);
14957 }
14958 /* ./parser//parser.nit:4192 */
14959 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
14960 if (UNTAG_Bool(REGB0)) {
14961 } else {
14962 nit_abort("Assert failed", NULL, LOCATE_parser, 4192);
14963 }
14964 /* ./parser//parser.nit:4194 */
14965 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
14966 if (UNTAG_Bool(REGB0)) {
14967 } else {
14968 nit_abort("Assert failed", NULL, LOCATE_parser, 4194);
14969 }
14970 /* ./parser//parser.nit:4196 */
14971 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
14972 if (UNTAG_Bool(REGB0)) {
14973 } else {
14974 nit_abort("Assert failed", NULL, LOCATE_parser, 4196);
14975 }
14976 /* ./parser//parser.nit:4198 */
14977 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
14978 if (UNTAG_Bool(REGB0)) {
14979 } else {
14980 nit_abort("Assert failed", NULL, LOCATE_parser, 4198);
14981 }
14982 /* ./parser//parser.nit:4200 */
14983 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
14984 if (UNTAG_Bool(REGB0)) {
14985 } else {
14986 nit_abort("Assert failed", NULL, LOCATE_parser, 4200);
14987 }
14988 /* ./parser//parser.nit:4201 */
14989 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);
14990 /* ./parser//parser.nit:4213 */
14991 fra.me.REG[2] = fra.me.REG[3];
14992 /* ./parser//parser.nit:4214 */
14993 REGB0 = TAG_Bool(ATTR_parser___ReduceAction94____goto(fra.me.REG[0])!=NIT_NULL);
14994 if (UNTAG_Bool(REGB0)) {
14995 } else {
14996 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4214);
14997 }
14998 REGB0 = ATTR_parser___ReduceAction94____goto(fra.me.REG[0]);
14999 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15000 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15001 stack_frame_head = fra.me.prev;
15002 return;
15003 }
15004 void parser___ReduceAction94___init(val_t p0, val_t p1, int* init_table){
15005 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction94].i;
15006 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15007 val_t REGB0;
15008 val_t tmp;
15009 if (init_table[itpos97]) return;
15010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15011 fra.me.file = LOCATE_parser;
15012 fra.me.line = 4217;
15013 fra.me.meth = LOCATE_parser___ReduceAction94___init;
15014 fra.me.has_broke = 0;
15015 fra.me.REG_size = 2;
15016 fra.me.REG[0] = NIT_NULL;
15017 fra.me.REG[1] = NIT_NULL;
15018 fra.me.REG[0] = p0;
15019 REGB0 = p1;
15020 /* ./parser//parser.nit:4217 */
15021 fra.me.REG[1] = fra.me.REG[0];
15022 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15023 ATTR_parser___ReduceAction94____goto(fra.me.REG[1]) = REGB0;
15024 stack_frame_head = fra.me.prev;
15025 init_table[itpos97] = 1;
15026 return;
15027 }
15028 void parser___ReduceAction95___action(val_t p0, val_t p1){
15029 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15030 val_t REGB0;
15031 val_t tmp;
15032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15033 fra.me.file = LOCATE_parser;
15034 fra.me.line = 4221;
15035 fra.me.meth = LOCATE_parser___ReduceAction95___action;
15036 fra.me.has_broke = 0;
15037 fra.me.REG_size = 10;
15038 fra.me.REG[0] = NIT_NULL;
15039 fra.me.REG[1] = NIT_NULL;
15040 fra.me.REG[2] = NIT_NULL;
15041 fra.me.REG[3] = NIT_NULL;
15042 fra.me.REG[4] = NIT_NULL;
15043 fra.me.REG[5] = NIT_NULL;
15044 fra.me.REG[6] = NIT_NULL;
15045 fra.me.REG[7] = NIT_NULL;
15046 fra.me.REG[8] = NIT_NULL;
15047 fra.me.REG[9] = NIT_NULL;
15048 fra.me.REG[0] = p0;
15049 fra.me.REG[1] = p1;
15050 /* ./parser//parser.nit:4223 */
15051 fra.me.REG[2] = NIT_NULL;
15052 /* ./parser//parser.nit:4224 */
15053 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15054 /* ./parser//parser.nit:4225 */
15055 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15056 /* ./parser//parser.nit:4226 */
15057 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15058 /* ./parser//parser.nit:4227 */
15059 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15060 /* ./parser//parser.nit:4228 */
15061 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15062 /* ./parser//parser.nit:4229 */
15063 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15064 /* ./parser//parser.nit:4230 */
15065 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15066 /* ./parser//parser.nit:4232 */
15067 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15068 if (UNTAG_Bool(REGB0)) {
15069 } else {
15070 nit_abort("Assert failed", NULL, LOCATE_parser, 4232);
15071 }
15072 /* ./parser//parser.nit:4234 */
15073 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15074 if (UNTAG_Bool(REGB0)) {
15075 } else {
15076 nit_abort("Assert failed", NULL, LOCATE_parser, 4234);
15077 }
15078 /* ./parser//parser.nit:4236 */
15079 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15080 if (UNTAG_Bool(REGB0)) {
15081 } else {
15082 nit_abort("Assert failed", NULL, LOCATE_parser, 4236);
15083 }
15084 /* ./parser//parser.nit:4238 */
15085 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15086 if (UNTAG_Bool(REGB0)) {
15087 } else {
15088 nit_abort("Assert failed", NULL, LOCATE_parser, 4238);
15089 }
15090 /* ./parser//parser.nit:4240 */
15091 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15092 if (UNTAG_Bool(REGB0)) {
15093 } else {
15094 nit_abort("Assert failed", NULL, LOCATE_parser, 4240);
15095 }
15096 /* ./parser//parser.nit:4242 */
15097 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15098 if (UNTAG_Bool(REGB0)) {
15099 } else {
15100 nit_abort("Assert failed", NULL, LOCATE_parser, 4242);
15101 }
15102 /* ./parser//parser.nit:4244 */
15103 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
15104 if (UNTAG_Bool(REGB0)) {
15105 } else {
15106 nit_abort("Assert failed", NULL, LOCATE_parser, 4244);
15107 }
15108 /* ./parser//parser.nit:4245 */
15109 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);
15110 /* ./parser//parser.nit:4257 */
15111 fra.me.REG[2] = fra.me.REG[3];
15112 /* ./parser//parser.nit:4258 */
15113 REGB0 = TAG_Bool(ATTR_parser___ReduceAction95____goto(fra.me.REG[0])!=NIT_NULL);
15114 if (UNTAG_Bool(REGB0)) {
15115 } else {
15116 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4258);
15117 }
15118 REGB0 = ATTR_parser___ReduceAction95____goto(fra.me.REG[0]);
15119 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15120 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15121 stack_frame_head = fra.me.prev;
15122 return;
15123 }
15124 void parser___ReduceAction95___init(val_t p0, val_t p1, int* init_table){
15125 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction95].i;
15126 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15127 val_t REGB0;
15128 val_t tmp;
15129 if (init_table[itpos98]) return;
15130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15131 fra.me.file = LOCATE_parser;
15132 fra.me.line = 4261;
15133 fra.me.meth = LOCATE_parser___ReduceAction95___init;
15134 fra.me.has_broke = 0;
15135 fra.me.REG_size = 2;
15136 fra.me.REG[0] = NIT_NULL;
15137 fra.me.REG[1] = NIT_NULL;
15138 fra.me.REG[0] = p0;
15139 REGB0 = p1;
15140 /* ./parser//parser.nit:4261 */
15141 fra.me.REG[1] = fra.me.REG[0];
15142 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15143 ATTR_parser___ReduceAction95____goto(fra.me.REG[1]) = REGB0;
15144 stack_frame_head = fra.me.prev;
15145 init_table[itpos98] = 1;
15146 return;
15147 }
15148 void parser___ReduceAction96___action(val_t p0, val_t p1){
15149 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
15150 val_t REGB0;
15151 val_t tmp;
15152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15153 fra.me.file = LOCATE_parser;
15154 fra.me.line = 4265;
15155 fra.me.meth = LOCATE_parser___ReduceAction96___action;
15156 fra.me.has_broke = 0;
15157 fra.me.REG_size = 11;
15158 fra.me.REG[0] = NIT_NULL;
15159 fra.me.REG[1] = NIT_NULL;
15160 fra.me.REG[2] = NIT_NULL;
15161 fra.me.REG[3] = NIT_NULL;
15162 fra.me.REG[4] = NIT_NULL;
15163 fra.me.REG[5] = NIT_NULL;
15164 fra.me.REG[6] = NIT_NULL;
15165 fra.me.REG[7] = NIT_NULL;
15166 fra.me.REG[8] = NIT_NULL;
15167 fra.me.REG[9] = NIT_NULL;
15168 fra.me.REG[10] = NIT_NULL;
15169 fra.me.REG[0] = p0;
15170 fra.me.REG[1] = p1;
15171 /* ./parser//parser.nit:4267 */
15172 fra.me.REG[2] = NIT_NULL;
15173 /* ./parser//parser.nit:4268 */
15174 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15175 /* ./parser//parser.nit:4269 */
15176 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15177 /* ./parser//parser.nit:4270 */
15178 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15179 /* ./parser//parser.nit:4271 */
15180 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15181 /* ./parser//parser.nit:4272 */
15182 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15183 /* ./parser//parser.nit:4273 */
15184 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15185 /* ./parser//parser.nit:4274 */
15186 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15187 /* ./parser//parser.nit:4275 */
15188 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15189 /* ./parser//parser.nit:4277 */
15190 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15191 if (UNTAG_Bool(REGB0)) {
15192 } else {
15193 nit_abort("Assert failed", NULL, LOCATE_parser, 4277);
15194 }
15195 /* ./parser//parser.nit:4279 */
15196 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15197 if (UNTAG_Bool(REGB0)) {
15198 } else {
15199 nit_abort("Assert failed", NULL, LOCATE_parser, 4279);
15200 }
15201 /* ./parser//parser.nit:4281 */
15202 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15203 if (UNTAG_Bool(REGB0)) {
15204 } else {
15205 nit_abort("Assert failed", NULL, LOCATE_parser, 4281);
15206 }
15207 /* ./parser//parser.nit:4283 */
15208 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15209 if (UNTAG_Bool(REGB0)) {
15210 } else {
15211 nit_abort("Assert failed", NULL, LOCATE_parser, 4283);
15212 }
15213 /* ./parser//parser.nit:4285 */
15214 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15215 if (UNTAG_Bool(REGB0)) {
15216 } else {
15217 nit_abort("Assert failed", NULL, LOCATE_parser, 4285);
15218 }
15219 /* ./parser//parser.nit:4287 */
15220 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15221 if (UNTAG_Bool(REGB0)) {
15222 } else {
15223 nit_abort("Assert failed", NULL, LOCATE_parser, 4287);
15224 }
15225 /* ./parser//parser.nit:4289 */
15226 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15227 if (UNTAG_Bool(REGB0)) {
15228 } else {
15229 nit_abort("Assert failed", NULL, LOCATE_parser, 4289);
15230 }
15231 /* ./parser//parser.nit:4291 */
15232 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
15233 if (UNTAG_Bool(REGB0)) {
15234 } else {
15235 nit_abort("Assert failed", NULL, LOCATE_parser, 4291);
15236 }
15237 /* ./parser//parser.nit:4292 */
15238 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);
15239 /* ./parser//parser.nit:4304 */
15240 fra.me.REG[2] = fra.me.REG[3];
15241 /* ./parser//parser.nit:4305 */
15242 REGB0 = TAG_Bool(ATTR_parser___ReduceAction96____goto(fra.me.REG[0])!=NIT_NULL);
15243 if (UNTAG_Bool(REGB0)) {
15244 } else {
15245 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4305);
15246 }
15247 REGB0 = ATTR_parser___ReduceAction96____goto(fra.me.REG[0]);
15248 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15249 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15250 stack_frame_head = fra.me.prev;
15251 return;
15252 }
15253 void parser___ReduceAction96___init(val_t p0, val_t p1, int* init_table){
15254 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction96].i;
15255 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15256 val_t REGB0;
15257 val_t tmp;
15258 if (init_table[itpos99]) return;
15259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15260 fra.me.file = LOCATE_parser;
15261 fra.me.line = 4308;
15262 fra.me.meth = LOCATE_parser___ReduceAction96___init;
15263 fra.me.has_broke = 0;
15264 fra.me.REG_size = 2;
15265 fra.me.REG[0] = NIT_NULL;
15266 fra.me.REG[1] = NIT_NULL;
15267 fra.me.REG[0] = p0;
15268 REGB0 = p1;
15269 /* ./parser//parser.nit:4308 */
15270 fra.me.REG[1] = fra.me.REG[0];
15271 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15272 ATTR_parser___ReduceAction96____goto(fra.me.REG[1]) = REGB0;
15273 stack_frame_head = fra.me.prev;
15274 init_table[itpos99] = 1;
15275 return;
15276 }
15277 void parser___ReduceAction97___action(val_t p0, val_t p1){
15278 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
15279 val_t REGB0;
15280 val_t tmp;
15281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15282 fra.me.file = LOCATE_parser;
15283 fra.me.line = 4312;
15284 fra.me.meth = LOCATE_parser___ReduceAction97___action;
15285 fra.me.has_broke = 0;
15286 fra.me.REG_size = 8;
15287 fra.me.REG[0] = NIT_NULL;
15288 fra.me.REG[1] = NIT_NULL;
15289 fra.me.REG[2] = NIT_NULL;
15290 fra.me.REG[3] = NIT_NULL;
15291 fra.me.REG[4] = NIT_NULL;
15292 fra.me.REG[5] = NIT_NULL;
15293 fra.me.REG[6] = NIT_NULL;
15294 fra.me.REG[7] = NIT_NULL;
15295 fra.me.REG[0] = p0;
15296 fra.me.REG[1] = p1;
15297 /* ./parser//parser.nit:4314 */
15298 fra.me.REG[2] = NIT_NULL;
15299 /* ./parser//parser.nit:4315 */
15300 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15301 /* ./parser//parser.nit:4316 */
15302 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15303 /* ./parser//parser.nit:4317 */
15304 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15305 /* ./parser//parser.nit:4318 */
15306 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15307 /* ./parser//parser.nit:4319 */
15308 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15309 /* ./parser//parser.nit:4320 */
15310 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15311 /* ./parser//parser.nit:4321 */
15312 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15313 /* ./parser//parser.nit:4323 */
15314 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15315 if (UNTAG_Bool(REGB0)) {
15316 } else {
15317 nit_abort("Assert failed", NULL, LOCATE_parser, 4323);
15318 }
15319 /* ./parser//parser.nit:4325 */
15320 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15321 if (UNTAG_Bool(REGB0)) {
15322 } else {
15323 nit_abort("Assert failed", NULL, LOCATE_parser, 4325);
15324 }
15325 /* ./parser//parser.nit:4327 */
15326 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15327 if (UNTAG_Bool(REGB0)) {
15328 } else {
15329 nit_abort("Assert failed", NULL, LOCATE_parser, 4327);
15330 }
15331 /* ./parser//parser.nit:4329 */
15332 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15333 if (UNTAG_Bool(REGB0)) {
15334 } else {
15335 nit_abort("Assert failed", NULL, LOCATE_parser, 4329);
15336 }
15337 /* ./parser//parser.nit:4331 */
15338 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15339 if (UNTAG_Bool(REGB0)) {
15340 } else {
15341 nit_abort("Assert failed", NULL, LOCATE_parser, 4331);
15342 }
15343 /* ./parser//parser.nit:4332 */
15344 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]);
15345 /* ./parser//parser.nit:4344 */
15346 fra.me.REG[2] = fra.me.REG[3];
15347 /* ./parser//parser.nit:4345 */
15348 REGB0 = TAG_Bool(ATTR_parser___ReduceAction97____goto(fra.me.REG[0])!=NIT_NULL);
15349 if (UNTAG_Bool(REGB0)) {
15350 } else {
15351 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4345);
15352 }
15353 REGB0 = ATTR_parser___ReduceAction97____goto(fra.me.REG[0]);
15354 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15355 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15356 stack_frame_head = fra.me.prev;
15357 return;
15358 }
15359 void parser___ReduceAction97___init(val_t p0, val_t p1, int* init_table){
15360 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction97].i;
15361 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15362 val_t REGB0;
15363 val_t tmp;
15364 if (init_table[itpos100]) return;
15365 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15366 fra.me.file = LOCATE_parser;
15367 fra.me.line = 4348;
15368 fra.me.meth = LOCATE_parser___ReduceAction97___init;
15369 fra.me.has_broke = 0;
15370 fra.me.REG_size = 2;
15371 fra.me.REG[0] = NIT_NULL;
15372 fra.me.REG[1] = NIT_NULL;
15373 fra.me.REG[0] = p0;
15374 REGB0 = p1;
15375 /* ./parser//parser.nit:4348 */
15376 fra.me.REG[1] = fra.me.REG[0];
15377 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15378 ATTR_parser___ReduceAction97____goto(fra.me.REG[1]) = REGB0;
15379 stack_frame_head = fra.me.prev;
15380 init_table[itpos100] = 1;
15381 return;
15382 }
15383 void parser___ReduceAction98___action(val_t p0, val_t p1){
15384 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15385 val_t REGB0;
15386 val_t tmp;
15387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15388 fra.me.file = LOCATE_parser;
15389 fra.me.line = 4352;
15390 fra.me.meth = LOCATE_parser___ReduceAction98___action;
15391 fra.me.has_broke = 0;
15392 fra.me.REG_size = 9;
15393 fra.me.REG[0] = NIT_NULL;
15394 fra.me.REG[1] = NIT_NULL;
15395 fra.me.REG[2] = NIT_NULL;
15396 fra.me.REG[3] = NIT_NULL;
15397 fra.me.REG[4] = NIT_NULL;
15398 fra.me.REG[5] = NIT_NULL;
15399 fra.me.REG[6] = NIT_NULL;
15400 fra.me.REG[7] = NIT_NULL;
15401 fra.me.REG[8] = NIT_NULL;
15402 fra.me.REG[0] = p0;
15403 fra.me.REG[1] = p1;
15404 /* ./parser//parser.nit:4354 */
15405 fra.me.REG[2] = NIT_NULL;
15406 /* ./parser//parser.nit:4355 */
15407 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15408 /* ./parser//parser.nit:4356 */
15409 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15410 /* ./parser//parser.nit:4357 */
15411 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15412 /* ./parser//parser.nit:4358 */
15413 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15414 /* ./parser//parser.nit:4359 */
15415 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15416 /* ./parser//parser.nit:4360 */
15417 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15418 /* ./parser//parser.nit:4361 */
15419 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15420 /* ./parser//parser.nit:4362 */
15421 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15422 /* ./parser//parser.nit:4364 */
15423 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15424 if (UNTAG_Bool(REGB0)) {
15425 } else {
15426 nit_abort("Assert failed", NULL, LOCATE_parser, 4364);
15427 }
15428 /* ./parser//parser.nit:4366 */
15429 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15430 if (UNTAG_Bool(REGB0)) {
15431 } else {
15432 nit_abort("Assert failed", NULL, LOCATE_parser, 4366);
15433 }
15434 /* ./parser//parser.nit:4368 */
15435 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15436 if (UNTAG_Bool(REGB0)) {
15437 } else {
15438 nit_abort("Assert failed", NULL, LOCATE_parser, 4368);
15439 }
15440 /* ./parser//parser.nit:4370 */
15441 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15442 if (UNTAG_Bool(REGB0)) {
15443 } else {
15444 nit_abort("Assert failed", NULL, LOCATE_parser, 4370);
15445 }
15446 /* ./parser//parser.nit:4372 */
15447 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15448 if (UNTAG_Bool(REGB0)) {
15449 } else {
15450 nit_abort("Assert failed", NULL, LOCATE_parser, 4372);
15451 }
15452 /* ./parser//parser.nit:4374 */
15453 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15454 if (UNTAG_Bool(REGB0)) {
15455 } else {
15456 nit_abort("Assert failed", NULL, LOCATE_parser, 4374);
15457 }
15458 /* ./parser//parser.nit:4375 */
15459 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]);
15460 /* ./parser//parser.nit:4387 */
15461 fra.me.REG[2] = fra.me.REG[3];
15462 /* ./parser//parser.nit:4388 */
15463 REGB0 = TAG_Bool(ATTR_parser___ReduceAction98____goto(fra.me.REG[0])!=NIT_NULL);
15464 if (UNTAG_Bool(REGB0)) {
15465 } else {
15466 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4388);
15467 }
15468 REGB0 = ATTR_parser___ReduceAction98____goto(fra.me.REG[0]);
15469 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15470 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15471 stack_frame_head = fra.me.prev;
15472 return;
15473 }
15474 void parser___ReduceAction98___init(val_t p0, val_t p1, int* init_table){
15475 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction98].i;
15476 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15477 val_t REGB0;
15478 val_t tmp;
15479 if (init_table[itpos101]) return;
15480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15481 fra.me.file = LOCATE_parser;
15482 fra.me.line = 4391;
15483 fra.me.meth = LOCATE_parser___ReduceAction98___init;
15484 fra.me.has_broke = 0;
15485 fra.me.REG_size = 2;
15486 fra.me.REG[0] = NIT_NULL;
15487 fra.me.REG[1] = NIT_NULL;
15488 fra.me.REG[0] = p0;
15489 REGB0 = p1;
15490 /* ./parser//parser.nit:4391 */
15491 fra.me.REG[1] = fra.me.REG[0];
15492 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15493 ATTR_parser___ReduceAction98____goto(fra.me.REG[1]) = REGB0;
15494 stack_frame_head = fra.me.prev;
15495 init_table[itpos101] = 1;
15496 return;
15497 }
15498 void parser___ReduceAction99___action(val_t p0, val_t p1){
15499 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15500 val_t REGB0;
15501 val_t tmp;
15502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15503 fra.me.file = LOCATE_parser;
15504 fra.me.line = 4395;
15505 fra.me.meth = LOCATE_parser___ReduceAction99___action;
15506 fra.me.has_broke = 0;
15507 fra.me.REG_size = 9;
15508 fra.me.REG[0] = NIT_NULL;
15509 fra.me.REG[1] = NIT_NULL;
15510 fra.me.REG[2] = NIT_NULL;
15511 fra.me.REG[3] = NIT_NULL;
15512 fra.me.REG[4] = NIT_NULL;
15513 fra.me.REG[5] = NIT_NULL;
15514 fra.me.REG[6] = NIT_NULL;
15515 fra.me.REG[7] = NIT_NULL;
15516 fra.me.REG[8] = NIT_NULL;
15517 fra.me.REG[0] = p0;
15518 fra.me.REG[1] = p1;
15519 /* ./parser//parser.nit:4397 */
15520 fra.me.REG[2] = NIT_NULL;
15521 /* ./parser//parser.nit:4398 */
15522 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15523 /* ./parser//parser.nit:4399 */
15524 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15525 /* ./parser//parser.nit:4400 */
15526 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15527 /* ./parser//parser.nit:4401 */
15528 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15529 /* ./parser//parser.nit:4402 */
15530 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15531 /* ./parser//parser.nit:4403 */
15532 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15533 /* ./parser//parser.nit:4404 */
15534 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15535 /* ./parser//parser.nit:4405 */
15536 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15537 /* ./parser//parser.nit:4407 */
15538 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15539 if (UNTAG_Bool(REGB0)) {
15540 } else {
15541 nit_abort("Assert failed", NULL, LOCATE_parser, 4407);
15542 }
15543 /* ./parser//parser.nit:4409 */
15544 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15545 if (UNTAG_Bool(REGB0)) {
15546 } else {
15547 nit_abort("Assert failed", NULL, LOCATE_parser, 4409);
15548 }
15549 /* ./parser//parser.nit:4411 */
15550 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15551 if (UNTAG_Bool(REGB0)) {
15552 } else {
15553 nit_abort("Assert failed", NULL, LOCATE_parser, 4411);
15554 }
15555 /* ./parser//parser.nit:4413 */
15556 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15557 if (UNTAG_Bool(REGB0)) {
15558 } else {
15559 nit_abort("Assert failed", NULL, LOCATE_parser, 4413);
15560 }
15561 /* ./parser//parser.nit:4415 */
15562 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15563 if (UNTAG_Bool(REGB0)) {
15564 } else {
15565 nit_abort("Assert failed", NULL, LOCATE_parser, 4415);
15566 }
15567 /* ./parser//parser.nit:4417 */
15568 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15569 if (UNTAG_Bool(REGB0)) {
15570 } else {
15571 nit_abort("Assert failed", NULL, LOCATE_parser, 4417);
15572 }
15573 /* ./parser//parser.nit:4418 */
15574 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]);
15575 /* ./parser//parser.nit:4430 */
15576 fra.me.REG[2] = fra.me.REG[3];
15577 /* ./parser//parser.nit:4431 */
15578 REGB0 = TAG_Bool(ATTR_parser___ReduceAction99____goto(fra.me.REG[0])!=NIT_NULL);
15579 if (UNTAG_Bool(REGB0)) {
15580 } else {
15581 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4431);
15582 }
15583 REGB0 = ATTR_parser___ReduceAction99____goto(fra.me.REG[0]);
15584 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15585 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15586 stack_frame_head = fra.me.prev;
15587 return;
15588 }
15589 void parser___ReduceAction99___init(val_t p0, val_t p1, int* init_table){
15590 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction99].i;
15591 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15592 val_t REGB0;
15593 val_t tmp;
15594 if (init_table[itpos102]) return;
15595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15596 fra.me.file = LOCATE_parser;
15597 fra.me.line = 4434;
15598 fra.me.meth = LOCATE_parser___ReduceAction99___init;
15599 fra.me.has_broke = 0;
15600 fra.me.REG_size = 2;
15601 fra.me.REG[0] = NIT_NULL;
15602 fra.me.REG[1] = NIT_NULL;
15603 fra.me.REG[0] = p0;
15604 REGB0 = p1;
15605 /* ./parser//parser.nit:4434 */
15606 fra.me.REG[1] = fra.me.REG[0];
15607 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15608 ATTR_parser___ReduceAction99____goto(fra.me.REG[1]) = REGB0;
15609 stack_frame_head = fra.me.prev;
15610 init_table[itpos102] = 1;
15611 return;
15612 }
15613 void parser___ReduceAction100___action(val_t p0, val_t p1){
15614 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15615 val_t REGB0;
15616 val_t tmp;
15617 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15618 fra.me.file = LOCATE_parser;
15619 fra.me.line = 4438;
15620 fra.me.meth = LOCATE_parser___ReduceAction100___action;
15621 fra.me.has_broke = 0;
15622 fra.me.REG_size = 10;
15623 fra.me.REG[0] = NIT_NULL;
15624 fra.me.REG[1] = NIT_NULL;
15625 fra.me.REG[2] = NIT_NULL;
15626 fra.me.REG[3] = NIT_NULL;
15627 fra.me.REG[4] = NIT_NULL;
15628 fra.me.REG[5] = NIT_NULL;
15629 fra.me.REG[6] = NIT_NULL;
15630 fra.me.REG[7] = NIT_NULL;
15631 fra.me.REG[8] = NIT_NULL;
15632 fra.me.REG[9] = NIT_NULL;
15633 fra.me.REG[0] = p0;
15634 fra.me.REG[1] = p1;
15635 /* ./parser//parser.nit:4440 */
15636 fra.me.REG[2] = NIT_NULL;
15637 /* ./parser//parser.nit:4441 */
15638 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15639 /* ./parser//parser.nit:4442 */
15640 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15641 /* ./parser//parser.nit:4443 */
15642 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15643 /* ./parser//parser.nit:4444 */
15644 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15645 /* ./parser//parser.nit:4445 */
15646 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15647 /* ./parser//parser.nit:4446 */
15648 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15649 /* ./parser//parser.nit:4447 */
15650 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15651 /* ./parser//parser.nit:4448 */
15652 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15653 /* ./parser//parser.nit:4449 */
15654 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15655 /* ./parser//parser.nit:4451 */
15656 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15657 if (UNTAG_Bool(REGB0)) {
15658 } else {
15659 nit_abort("Assert failed", NULL, LOCATE_parser, 4451);
15660 }
15661 /* ./parser//parser.nit:4453 */
15662 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15663 if (UNTAG_Bool(REGB0)) {
15664 } else {
15665 nit_abort("Assert failed", NULL, LOCATE_parser, 4453);
15666 }
15667 /* ./parser//parser.nit:4455 */
15668 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15669 if (UNTAG_Bool(REGB0)) {
15670 } else {
15671 nit_abort("Assert failed", NULL, LOCATE_parser, 4455);
15672 }
15673 /* ./parser//parser.nit:4457 */
15674 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15675 if (UNTAG_Bool(REGB0)) {
15676 } else {
15677 nit_abort("Assert failed", NULL, LOCATE_parser, 4457);
15678 }
15679 /* ./parser//parser.nit:4459 */
15680 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15681 if (UNTAG_Bool(REGB0)) {
15682 } else {
15683 nit_abort("Assert failed", NULL, LOCATE_parser, 4459);
15684 }
15685 /* ./parser//parser.nit:4461 */
15686 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15687 if (UNTAG_Bool(REGB0)) {
15688 } else {
15689 nit_abort("Assert failed", NULL, LOCATE_parser, 4461);
15690 }
15691 /* ./parser//parser.nit:4463 */
15692 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15693 if (UNTAG_Bool(REGB0)) {
15694 } else {
15695 nit_abort("Assert failed", NULL, LOCATE_parser, 4463);
15696 }
15697 /* ./parser//parser.nit:4464 */
15698 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]);
15699 /* ./parser//parser.nit:4476 */
15700 fra.me.REG[2] = fra.me.REG[3];
15701 /* ./parser//parser.nit:4477 */
15702 REGB0 = TAG_Bool(ATTR_parser___ReduceAction100____goto(fra.me.REG[0])!=NIT_NULL);
15703 if (UNTAG_Bool(REGB0)) {
15704 } else {
15705 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4477);
15706 }
15707 REGB0 = ATTR_parser___ReduceAction100____goto(fra.me.REG[0]);
15708 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15709 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15710 stack_frame_head = fra.me.prev;
15711 return;
15712 }
15713 void parser___ReduceAction100___init(val_t p0, val_t p1, int* init_table){
15714 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction100].i;
15715 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15716 val_t REGB0;
15717 val_t tmp;
15718 if (init_table[itpos103]) return;
15719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15720 fra.me.file = LOCATE_parser;
15721 fra.me.line = 4480;
15722 fra.me.meth = LOCATE_parser___ReduceAction100___init;
15723 fra.me.has_broke = 0;
15724 fra.me.REG_size = 2;
15725 fra.me.REG[0] = NIT_NULL;
15726 fra.me.REG[1] = NIT_NULL;
15727 fra.me.REG[0] = p0;
15728 REGB0 = p1;
15729 /* ./parser//parser.nit:4480 */
15730 fra.me.REG[1] = fra.me.REG[0];
15731 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15732 ATTR_parser___ReduceAction100____goto(fra.me.REG[1]) = REGB0;
15733 stack_frame_head = fra.me.prev;
15734 init_table[itpos103] = 1;
15735 return;
15736 }
15737 void parser___ReduceAction101___action(val_t p0, val_t p1){
15738 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
15739 val_t REGB0;
15740 val_t tmp;
15741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15742 fra.me.file = LOCATE_parser;
15743 fra.me.line = 4484;
15744 fra.me.meth = LOCATE_parser___ReduceAction101___action;
15745 fra.me.has_broke = 0;
15746 fra.me.REG_size = 9;
15747 fra.me.REG[0] = NIT_NULL;
15748 fra.me.REG[1] = NIT_NULL;
15749 fra.me.REG[2] = NIT_NULL;
15750 fra.me.REG[3] = NIT_NULL;
15751 fra.me.REG[4] = NIT_NULL;
15752 fra.me.REG[5] = NIT_NULL;
15753 fra.me.REG[6] = NIT_NULL;
15754 fra.me.REG[7] = NIT_NULL;
15755 fra.me.REG[8] = NIT_NULL;
15756 fra.me.REG[0] = p0;
15757 fra.me.REG[1] = p1;
15758 /* ./parser//parser.nit:4486 */
15759 fra.me.REG[2] = NIT_NULL;
15760 /* ./parser//parser.nit:4487 */
15761 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15762 /* ./parser//parser.nit:4488 */
15763 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15764 /* ./parser//parser.nit:4489 */
15765 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15766 /* ./parser//parser.nit:4490 */
15767 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15768 /* ./parser//parser.nit:4491 */
15769 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15770 /* ./parser//parser.nit:4492 */
15771 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15772 /* ./parser//parser.nit:4493 */
15773 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15774 /* ./parser//parser.nit:4494 */
15775 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15776 /* ./parser//parser.nit:4496 */
15777 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15778 if (UNTAG_Bool(REGB0)) {
15779 } else {
15780 nit_abort("Assert failed", NULL, LOCATE_parser, 4496);
15781 }
15782 /* ./parser//parser.nit:4498 */
15783 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15784 if (UNTAG_Bool(REGB0)) {
15785 } else {
15786 nit_abort("Assert failed", NULL, LOCATE_parser, 4498);
15787 }
15788 /* ./parser//parser.nit:4500 */
15789 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15790 if (UNTAG_Bool(REGB0)) {
15791 } else {
15792 nit_abort("Assert failed", NULL, LOCATE_parser, 4500);
15793 }
15794 /* ./parser//parser.nit:4502 */
15795 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15796 if (UNTAG_Bool(REGB0)) {
15797 } else {
15798 nit_abort("Assert failed", NULL, LOCATE_parser, 4502);
15799 }
15800 /* ./parser//parser.nit:4504 */
15801 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15802 if (UNTAG_Bool(REGB0)) {
15803 } else {
15804 nit_abort("Assert failed", NULL, LOCATE_parser, 4504);
15805 }
15806 /* ./parser//parser.nit:4506 */
15807 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15808 if (UNTAG_Bool(REGB0)) {
15809 } else {
15810 nit_abort("Assert failed", NULL, LOCATE_parser, 4506);
15811 }
15812 /* ./parser//parser.nit:4507 */
15813 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]);
15814 /* ./parser//parser.nit:4519 */
15815 fra.me.REG[2] = fra.me.REG[3];
15816 /* ./parser//parser.nit:4520 */
15817 REGB0 = TAG_Bool(ATTR_parser___ReduceAction101____goto(fra.me.REG[0])!=NIT_NULL);
15818 if (UNTAG_Bool(REGB0)) {
15819 } else {
15820 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4520);
15821 }
15822 REGB0 = ATTR_parser___ReduceAction101____goto(fra.me.REG[0]);
15823 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15824 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15825 stack_frame_head = fra.me.prev;
15826 return;
15827 }
15828 void parser___ReduceAction101___init(val_t p0, val_t p1, int* init_table){
15829 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction101].i;
15830 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15831 val_t REGB0;
15832 val_t tmp;
15833 if (init_table[itpos104]) return;
15834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15835 fra.me.file = LOCATE_parser;
15836 fra.me.line = 4523;
15837 fra.me.meth = LOCATE_parser___ReduceAction101___init;
15838 fra.me.has_broke = 0;
15839 fra.me.REG_size = 2;
15840 fra.me.REG[0] = NIT_NULL;
15841 fra.me.REG[1] = NIT_NULL;
15842 fra.me.REG[0] = p0;
15843 REGB0 = p1;
15844 /* ./parser//parser.nit:4523 */
15845 fra.me.REG[1] = fra.me.REG[0];
15846 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15847 ATTR_parser___ReduceAction101____goto(fra.me.REG[1]) = REGB0;
15848 stack_frame_head = fra.me.prev;
15849 init_table[itpos104] = 1;
15850 return;
15851 }
15852 void parser___ReduceAction102___action(val_t p0, val_t p1){
15853 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15854 val_t REGB0;
15855 val_t tmp;
15856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15857 fra.me.file = LOCATE_parser;
15858 fra.me.line = 4527;
15859 fra.me.meth = LOCATE_parser___ReduceAction102___action;
15860 fra.me.has_broke = 0;
15861 fra.me.REG_size = 10;
15862 fra.me.REG[0] = NIT_NULL;
15863 fra.me.REG[1] = NIT_NULL;
15864 fra.me.REG[2] = NIT_NULL;
15865 fra.me.REG[3] = NIT_NULL;
15866 fra.me.REG[4] = NIT_NULL;
15867 fra.me.REG[5] = NIT_NULL;
15868 fra.me.REG[6] = NIT_NULL;
15869 fra.me.REG[7] = NIT_NULL;
15870 fra.me.REG[8] = NIT_NULL;
15871 fra.me.REG[9] = NIT_NULL;
15872 fra.me.REG[0] = p0;
15873 fra.me.REG[1] = p1;
15874 /* ./parser//parser.nit:4529 */
15875 fra.me.REG[2] = NIT_NULL;
15876 /* ./parser//parser.nit:4530 */
15877 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15878 /* ./parser//parser.nit:4531 */
15879 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15880 /* ./parser//parser.nit:4532 */
15881 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15882 /* ./parser//parser.nit:4533 */
15883 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15884 /* ./parser//parser.nit:4534 */
15885 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15886 /* ./parser//parser.nit:4535 */
15887 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15888 /* ./parser//parser.nit:4536 */
15889 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15890 /* ./parser//parser.nit:4537 */
15891 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15892 /* ./parser//parser.nit:4538 */
15893 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
15894 /* ./parser//parser.nit:4540 */
15895 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
15896 if (UNTAG_Bool(REGB0)) {
15897 } else {
15898 nit_abort("Assert failed", NULL, LOCATE_parser, 4540);
15899 }
15900 /* ./parser//parser.nit:4542 */
15901 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
15902 if (UNTAG_Bool(REGB0)) {
15903 } else {
15904 nit_abort("Assert failed", NULL, LOCATE_parser, 4542);
15905 }
15906 /* ./parser//parser.nit:4544 */
15907 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
15908 if (UNTAG_Bool(REGB0)) {
15909 } else {
15910 nit_abort("Assert failed", NULL, LOCATE_parser, 4544);
15911 }
15912 /* ./parser//parser.nit:4546 */
15913 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
15914 if (UNTAG_Bool(REGB0)) {
15915 } else {
15916 nit_abort("Assert failed", NULL, LOCATE_parser, 4546);
15917 }
15918 /* ./parser//parser.nit:4548 */
15919 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
15920 if (UNTAG_Bool(REGB0)) {
15921 } else {
15922 nit_abort("Assert failed", NULL, LOCATE_parser, 4548);
15923 }
15924 /* ./parser//parser.nit:4550 */
15925 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
15926 if (UNTAG_Bool(REGB0)) {
15927 } else {
15928 nit_abort("Assert failed", NULL, LOCATE_parser, 4550);
15929 }
15930 /* ./parser//parser.nit:4552 */
15931 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
15932 if (UNTAG_Bool(REGB0)) {
15933 } else {
15934 nit_abort("Assert failed", NULL, LOCATE_parser, 4552);
15935 }
15936 /* ./parser//parser.nit:4553 */
15937 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]);
15938 /* ./parser//parser.nit:4565 */
15939 fra.me.REG[2] = fra.me.REG[3];
15940 /* ./parser//parser.nit:4566 */
15941 REGB0 = TAG_Bool(ATTR_parser___ReduceAction102____goto(fra.me.REG[0])!=NIT_NULL);
15942 if (UNTAG_Bool(REGB0)) {
15943 } else {
15944 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4566);
15945 }
15946 REGB0 = ATTR_parser___ReduceAction102____goto(fra.me.REG[0]);
15947 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
15948 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
15949 stack_frame_head = fra.me.prev;
15950 return;
15951 }
15952 void parser___ReduceAction102___init(val_t p0, val_t p1, int* init_table){
15953 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction102].i;
15954 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15955 val_t REGB0;
15956 val_t tmp;
15957 if (init_table[itpos105]) return;
15958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15959 fra.me.file = LOCATE_parser;
15960 fra.me.line = 4569;
15961 fra.me.meth = LOCATE_parser___ReduceAction102___init;
15962 fra.me.has_broke = 0;
15963 fra.me.REG_size = 2;
15964 fra.me.REG[0] = NIT_NULL;
15965 fra.me.REG[1] = NIT_NULL;
15966 fra.me.REG[0] = p0;
15967 REGB0 = p1;
15968 /* ./parser//parser.nit:4569 */
15969 fra.me.REG[1] = fra.me.REG[0];
15970 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
15971 ATTR_parser___ReduceAction102____goto(fra.me.REG[1]) = REGB0;
15972 stack_frame_head = fra.me.prev;
15973 init_table[itpos105] = 1;
15974 return;
15975 }
15976 void parser___ReduceAction103___action(val_t p0, val_t p1){
15977 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
15978 val_t REGB0;
15979 val_t tmp;
15980 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15981 fra.me.file = LOCATE_parser;
15982 fra.me.line = 4573;
15983 fra.me.meth = LOCATE_parser___ReduceAction103___action;
15984 fra.me.has_broke = 0;
15985 fra.me.REG_size = 10;
15986 fra.me.REG[0] = NIT_NULL;
15987 fra.me.REG[1] = NIT_NULL;
15988 fra.me.REG[2] = NIT_NULL;
15989 fra.me.REG[3] = NIT_NULL;
15990 fra.me.REG[4] = NIT_NULL;
15991 fra.me.REG[5] = NIT_NULL;
15992 fra.me.REG[6] = NIT_NULL;
15993 fra.me.REG[7] = NIT_NULL;
15994 fra.me.REG[8] = NIT_NULL;
15995 fra.me.REG[9] = NIT_NULL;
15996 fra.me.REG[0] = p0;
15997 fra.me.REG[1] = p1;
15998 /* ./parser//parser.nit:4575 */
15999 fra.me.REG[2] = NIT_NULL;
16000 /* ./parser//parser.nit:4576 */
16001 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16002 /* ./parser//parser.nit:4577 */
16003 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16004 /* ./parser//parser.nit:4578 */
16005 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16006 /* ./parser//parser.nit:4579 */
16007 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16008 /* ./parser//parser.nit:4580 */
16009 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16010 /* ./parser//parser.nit:4581 */
16011 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16012 /* ./parser//parser.nit:4582 */
16013 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16014 /* ./parser//parser.nit:4583 */
16015 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16016 /* ./parser//parser.nit:4584 */
16017 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16018 /* ./parser//parser.nit:4586 */
16019 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16020 if (UNTAG_Bool(REGB0)) {
16021 } else {
16022 nit_abort("Assert failed", NULL, LOCATE_parser, 4586);
16023 }
16024 /* ./parser//parser.nit:4588 */
16025 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16026 if (UNTAG_Bool(REGB0)) {
16027 } else {
16028 nit_abort("Assert failed", NULL, LOCATE_parser, 4588);
16029 }
16030 /* ./parser//parser.nit:4590 */
16031 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16032 if (UNTAG_Bool(REGB0)) {
16033 } else {
16034 nit_abort("Assert failed", NULL, LOCATE_parser, 4590);
16035 }
16036 /* ./parser//parser.nit:4592 */
16037 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16038 if (UNTAG_Bool(REGB0)) {
16039 } else {
16040 nit_abort("Assert failed", NULL, LOCATE_parser, 4592);
16041 }
16042 /* ./parser//parser.nit:4594 */
16043 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16044 if (UNTAG_Bool(REGB0)) {
16045 } else {
16046 nit_abort("Assert failed", NULL, LOCATE_parser, 4594);
16047 }
16048 /* ./parser//parser.nit:4596 */
16049 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16050 if (UNTAG_Bool(REGB0)) {
16051 } else {
16052 nit_abort("Assert failed", NULL, LOCATE_parser, 4596);
16053 }
16054 /* ./parser//parser.nit:4598 */
16055 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16056 if (UNTAG_Bool(REGB0)) {
16057 } else {
16058 nit_abort("Assert failed", NULL, LOCATE_parser, 4598);
16059 }
16060 /* ./parser//parser.nit:4599 */
16061 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]);
16062 /* ./parser//parser.nit:4611 */
16063 fra.me.REG[2] = fra.me.REG[3];
16064 /* ./parser//parser.nit:4612 */
16065 REGB0 = TAG_Bool(ATTR_parser___ReduceAction103____goto(fra.me.REG[0])!=NIT_NULL);
16066 if (UNTAG_Bool(REGB0)) {
16067 } else {
16068 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4612);
16069 }
16070 REGB0 = ATTR_parser___ReduceAction103____goto(fra.me.REG[0]);
16071 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16072 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16073 stack_frame_head = fra.me.prev;
16074 return;
16075 }
16076 void parser___ReduceAction103___init(val_t p0, val_t p1, int* init_table){
16077 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction103].i;
16078 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16079 val_t REGB0;
16080 val_t tmp;
16081 if (init_table[itpos106]) return;
16082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16083 fra.me.file = LOCATE_parser;
16084 fra.me.line = 4615;
16085 fra.me.meth = LOCATE_parser___ReduceAction103___init;
16086 fra.me.has_broke = 0;
16087 fra.me.REG_size = 2;
16088 fra.me.REG[0] = NIT_NULL;
16089 fra.me.REG[1] = NIT_NULL;
16090 fra.me.REG[0] = p0;
16091 REGB0 = p1;
16092 /* ./parser//parser.nit:4615 */
16093 fra.me.REG[1] = fra.me.REG[0];
16094 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16095 ATTR_parser___ReduceAction103____goto(fra.me.REG[1]) = REGB0;
16096 stack_frame_head = fra.me.prev;
16097 init_table[itpos106] = 1;
16098 return;
16099 }
16100 void parser___ReduceAction104___action(val_t p0, val_t p1){
16101 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16102 val_t REGB0;
16103 val_t tmp;
16104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16105 fra.me.file = LOCATE_parser;
16106 fra.me.line = 4619;
16107 fra.me.meth = LOCATE_parser___ReduceAction104___action;
16108 fra.me.has_broke = 0;
16109 fra.me.REG_size = 11;
16110 fra.me.REG[0] = NIT_NULL;
16111 fra.me.REG[1] = NIT_NULL;
16112 fra.me.REG[2] = NIT_NULL;
16113 fra.me.REG[3] = NIT_NULL;
16114 fra.me.REG[4] = NIT_NULL;
16115 fra.me.REG[5] = NIT_NULL;
16116 fra.me.REG[6] = NIT_NULL;
16117 fra.me.REG[7] = NIT_NULL;
16118 fra.me.REG[8] = NIT_NULL;
16119 fra.me.REG[9] = NIT_NULL;
16120 fra.me.REG[10] = NIT_NULL;
16121 fra.me.REG[0] = p0;
16122 fra.me.REG[1] = p1;
16123 /* ./parser//parser.nit:4621 */
16124 fra.me.REG[2] = NIT_NULL;
16125 /* ./parser//parser.nit:4622 */
16126 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16127 /* ./parser//parser.nit:4623 */
16128 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16129 /* ./parser//parser.nit:4624 */
16130 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16131 /* ./parser//parser.nit:4625 */
16132 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16133 /* ./parser//parser.nit:4626 */
16134 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16135 /* ./parser//parser.nit:4627 */
16136 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16137 /* ./parser//parser.nit:4628 */
16138 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16139 /* ./parser//parser.nit:4629 */
16140 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16141 /* ./parser//parser.nit:4630 */
16142 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16143 /* ./parser//parser.nit:4631 */
16144 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16145 /* ./parser//parser.nit:4633 */
16146 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16147 if (UNTAG_Bool(REGB0)) {
16148 } else {
16149 nit_abort("Assert failed", NULL, LOCATE_parser, 4633);
16150 }
16151 /* ./parser//parser.nit:4635 */
16152 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16153 if (UNTAG_Bool(REGB0)) {
16154 } else {
16155 nit_abort("Assert failed", NULL, LOCATE_parser, 4635);
16156 }
16157 /* ./parser//parser.nit:4637 */
16158 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16159 if (UNTAG_Bool(REGB0)) {
16160 } else {
16161 nit_abort("Assert failed", NULL, LOCATE_parser, 4637);
16162 }
16163 /* ./parser//parser.nit:4639 */
16164 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16165 if (UNTAG_Bool(REGB0)) {
16166 } else {
16167 nit_abort("Assert failed", NULL, LOCATE_parser, 4639);
16168 }
16169 /* ./parser//parser.nit:4641 */
16170 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16171 if (UNTAG_Bool(REGB0)) {
16172 } else {
16173 nit_abort("Assert failed", NULL, LOCATE_parser, 4641);
16174 }
16175 /* ./parser//parser.nit:4643 */
16176 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16177 if (UNTAG_Bool(REGB0)) {
16178 } else {
16179 nit_abort("Assert failed", NULL, LOCATE_parser, 4643);
16180 }
16181 /* ./parser//parser.nit:4645 */
16182 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16183 if (UNTAG_Bool(REGB0)) {
16184 } else {
16185 nit_abort("Assert failed", NULL, LOCATE_parser, 4645);
16186 }
16187 /* ./parser//parser.nit:4647 */
16188 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16189 if (UNTAG_Bool(REGB0)) {
16190 } else {
16191 nit_abort("Assert failed", NULL, LOCATE_parser, 4647);
16192 }
16193 /* ./parser//parser.nit:4648 */
16194 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]);
16195 /* ./parser//parser.nit:4660 */
16196 fra.me.REG[2] = fra.me.REG[3];
16197 /* ./parser//parser.nit:4661 */
16198 REGB0 = TAG_Bool(ATTR_parser___ReduceAction104____goto(fra.me.REG[0])!=NIT_NULL);
16199 if (UNTAG_Bool(REGB0)) {
16200 } else {
16201 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4661);
16202 }
16203 REGB0 = ATTR_parser___ReduceAction104____goto(fra.me.REG[0]);
16204 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16205 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16206 stack_frame_head = fra.me.prev;
16207 return;
16208 }
16209 void parser___ReduceAction104___init(val_t p0, val_t p1, int* init_table){
16210 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction104].i;
16211 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16212 val_t REGB0;
16213 val_t tmp;
16214 if (init_table[itpos107]) return;
16215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16216 fra.me.file = LOCATE_parser;
16217 fra.me.line = 4664;
16218 fra.me.meth = LOCATE_parser___ReduceAction104___init;
16219 fra.me.has_broke = 0;
16220 fra.me.REG_size = 2;
16221 fra.me.REG[0] = NIT_NULL;
16222 fra.me.REG[1] = NIT_NULL;
16223 fra.me.REG[0] = p0;
16224 REGB0 = p1;
16225 /* ./parser//parser.nit:4664 */
16226 fra.me.REG[1] = fra.me.REG[0];
16227 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16228 ATTR_parser___ReduceAction104____goto(fra.me.REG[1]) = REGB0;
16229 stack_frame_head = fra.me.prev;
16230 init_table[itpos107] = 1;
16231 return;
16232 }
16233 void parser___ReduceAction105___action(val_t p0, val_t p1){
16234 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
16235 val_t REGB0;
16236 val_t tmp;
16237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16238 fra.me.file = LOCATE_parser;
16239 fra.me.line = 4668;
16240 fra.me.meth = LOCATE_parser___ReduceAction105___action;
16241 fra.me.has_broke = 0;
16242 fra.me.REG_size = 9;
16243 fra.me.REG[0] = NIT_NULL;
16244 fra.me.REG[1] = NIT_NULL;
16245 fra.me.REG[2] = NIT_NULL;
16246 fra.me.REG[3] = NIT_NULL;
16247 fra.me.REG[4] = NIT_NULL;
16248 fra.me.REG[5] = NIT_NULL;
16249 fra.me.REG[6] = NIT_NULL;
16250 fra.me.REG[7] = NIT_NULL;
16251 fra.me.REG[8] = NIT_NULL;
16252 fra.me.REG[0] = p0;
16253 fra.me.REG[1] = p1;
16254 /* ./parser//parser.nit:4670 */
16255 fra.me.REG[2] = NIT_NULL;
16256 /* ./parser//parser.nit:4671 */
16257 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16258 /* ./parser//parser.nit:4672 */
16259 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16260 /* ./parser//parser.nit:4673 */
16261 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16262 /* ./parser//parser.nit:4674 */
16263 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16264 /* ./parser//parser.nit:4675 */
16265 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16266 /* ./parser//parser.nit:4676 */
16267 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16268 /* ./parser//parser.nit:4677 */
16269 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16270 /* ./parser//parser.nit:4678 */
16271 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16272 /* ./parser//parser.nit:4680 */
16273 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16274 if (UNTAG_Bool(REGB0)) {
16275 } else {
16276 nit_abort("Assert failed", NULL, LOCATE_parser, 4680);
16277 }
16278 /* ./parser//parser.nit:4682 */
16279 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16280 if (UNTAG_Bool(REGB0)) {
16281 } else {
16282 nit_abort("Assert failed", NULL, LOCATE_parser, 4682);
16283 }
16284 /* ./parser//parser.nit:4684 */
16285 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16286 if (UNTAG_Bool(REGB0)) {
16287 } else {
16288 nit_abort("Assert failed", NULL, LOCATE_parser, 4684);
16289 }
16290 /* ./parser//parser.nit:4686 */
16291 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16292 if (UNTAG_Bool(REGB0)) {
16293 } else {
16294 nit_abort("Assert failed", NULL, LOCATE_parser, 4686);
16295 }
16296 /* ./parser//parser.nit:4688 */
16297 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16298 if (UNTAG_Bool(REGB0)) {
16299 } else {
16300 nit_abort("Assert failed", NULL, LOCATE_parser, 4688);
16301 }
16302 /* ./parser//parser.nit:4690 */
16303 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16304 if (UNTAG_Bool(REGB0)) {
16305 } else {
16306 nit_abort("Assert failed", NULL, LOCATE_parser, 4690);
16307 }
16308 /* ./parser//parser.nit:4691 */
16309 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]);
16310 /* ./parser//parser.nit:4703 */
16311 fra.me.REG[2] = fra.me.REG[3];
16312 /* ./parser//parser.nit:4704 */
16313 REGB0 = TAG_Bool(ATTR_parser___ReduceAction105____goto(fra.me.REG[0])!=NIT_NULL);
16314 if (UNTAG_Bool(REGB0)) {
16315 } else {
16316 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4704);
16317 }
16318 REGB0 = ATTR_parser___ReduceAction105____goto(fra.me.REG[0]);
16319 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16320 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16321 stack_frame_head = fra.me.prev;
16322 return;
16323 }
16324 void parser___ReduceAction105___init(val_t p0, val_t p1, int* init_table){
16325 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction105].i;
16326 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16327 val_t REGB0;
16328 val_t tmp;
16329 if (init_table[itpos108]) return;
16330 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16331 fra.me.file = LOCATE_parser;
16332 fra.me.line = 4707;
16333 fra.me.meth = LOCATE_parser___ReduceAction105___init;
16334 fra.me.has_broke = 0;
16335 fra.me.REG_size = 2;
16336 fra.me.REG[0] = NIT_NULL;
16337 fra.me.REG[1] = NIT_NULL;
16338 fra.me.REG[0] = p0;
16339 REGB0 = p1;
16340 /* ./parser//parser.nit:4707 */
16341 fra.me.REG[1] = fra.me.REG[0];
16342 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16343 ATTR_parser___ReduceAction105____goto(fra.me.REG[1]) = REGB0;
16344 stack_frame_head = fra.me.prev;
16345 init_table[itpos108] = 1;
16346 return;
16347 }
16348 void parser___ReduceAction106___action(val_t p0, val_t p1){
16349 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
16350 val_t REGB0;
16351 val_t tmp;
16352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16353 fra.me.file = LOCATE_parser;
16354 fra.me.line = 4711;
16355 fra.me.meth = LOCATE_parser___ReduceAction106___action;
16356 fra.me.has_broke = 0;
16357 fra.me.REG_size = 10;
16358 fra.me.REG[0] = NIT_NULL;
16359 fra.me.REG[1] = NIT_NULL;
16360 fra.me.REG[2] = NIT_NULL;
16361 fra.me.REG[3] = NIT_NULL;
16362 fra.me.REG[4] = NIT_NULL;
16363 fra.me.REG[5] = NIT_NULL;
16364 fra.me.REG[6] = NIT_NULL;
16365 fra.me.REG[7] = NIT_NULL;
16366 fra.me.REG[8] = NIT_NULL;
16367 fra.me.REG[9] = NIT_NULL;
16368 fra.me.REG[0] = p0;
16369 fra.me.REG[1] = p1;
16370 /* ./parser//parser.nit:4713 */
16371 fra.me.REG[2] = NIT_NULL;
16372 /* ./parser//parser.nit:4714 */
16373 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16374 /* ./parser//parser.nit:4715 */
16375 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16376 /* ./parser//parser.nit:4716 */
16377 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16378 /* ./parser//parser.nit:4717 */
16379 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16380 /* ./parser//parser.nit:4718 */
16381 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16382 /* ./parser//parser.nit:4719 */
16383 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16384 /* ./parser//parser.nit:4720 */
16385 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16386 /* ./parser//parser.nit:4721 */
16387 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16388 /* ./parser//parser.nit:4722 */
16389 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16390 /* ./parser//parser.nit:4724 */
16391 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16392 if (UNTAG_Bool(REGB0)) {
16393 } else {
16394 nit_abort("Assert failed", NULL, LOCATE_parser, 4724);
16395 }
16396 /* ./parser//parser.nit:4726 */
16397 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16398 if (UNTAG_Bool(REGB0)) {
16399 } else {
16400 nit_abort("Assert failed", NULL, LOCATE_parser, 4726);
16401 }
16402 /* ./parser//parser.nit:4728 */
16403 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16404 if (UNTAG_Bool(REGB0)) {
16405 } else {
16406 nit_abort("Assert failed", NULL, LOCATE_parser, 4728);
16407 }
16408 /* ./parser//parser.nit:4730 */
16409 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16410 if (UNTAG_Bool(REGB0)) {
16411 } else {
16412 nit_abort("Assert failed", NULL, LOCATE_parser, 4730);
16413 }
16414 /* ./parser//parser.nit:4732 */
16415 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16416 if (UNTAG_Bool(REGB0)) {
16417 } else {
16418 nit_abort("Assert failed", NULL, LOCATE_parser, 4732);
16419 }
16420 /* ./parser//parser.nit:4734 */
16421 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16422 if (UNTAG_Bool(REGB0)) {
16423 } else {
16424 nit_abort("Assert failed", NULL, LOCATE_parser, 4734);
16425 }
16426 /* ./parser//parser.nit:4736 */
16427 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16428 if (UNTAG_Bool(REGB0)) {
16429 } else {
16430 nit_abort("Assert failed", NULL, LOCATE_parser, 4736);
16431 }
16432 /* ./parser//parser.nit:4737 */
16433 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]);
16434 /* ./parser//parser.nit:4749 */
16435 fra.me.REG[2] = fra.me.REG[3];
16436 /* ./parser//parser.nit:4750 */
16437 REGB0 = TAG_Bool(ATTR_parser___ReduceAction106____goto(fra.me.REG[0])!=NIT_NULL);
16438 if (UNTAG_Bool(REGB0)) {
16439 } else {
16440 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4750);
16441 }
16442 REGB0 = ATTR_parser___ReduceAction106____goto(fra.me.REG[0]);
16443 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16444 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16445 stack_frame_head = fra.me.prev;
16446 return;
16447 }
16448 void parser___ReduceAction106___init(val_t p0, val_t p1, int* init_table){
16449 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction106].i;
16450 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16451 val_t REGB0;
16452 val_t tmp;
16453 if (init_table[itpos109]) return;
16454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16455 fra.me.file = LOCATE_parser;
16456 fra.me.line = 4753;
16457 fra.me.meth = LOCATE_parser___ReduceAction106___init;
16458 fra.me.has_broke = 0;
16459 fra.me.REG_size = 2;
16460 fra.me.REG[0] = NIT_NULL;
16461 fra.me.REG[1] = NIT_NULL;
16462 fra.me.REG[0] = p0;
16463 REGB0 = p1;
16464 /* ./parser//parser.nit:4753 */
16465 fra.me.REG[1] = fra.me.REG[0];
16466 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16467 ATTR_parser___ReduceAction106____goto(fra.me.REG[1]) = REGB0;
16468 stack_frame_head = fra.me.prev;
16469 init_table[itpos109] = 1;
16470 return;
16471 }
16472 void parser___ReduceAction107___action(val_t p0, val_t p1){
16473 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
16474 val_t REGB0;
16475 val_t tmp;
16476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16477 fra.me.file = LOCATE_parser;
16478 fra.me.line = 4757;
16479 fra.me.meth = LOCATE_parser___ReduceAction107___action;
16480 fra.me.has_broke = 0;
16481 fra.me.REG_size = 10;
16482 fra.me.REG[0] = NIT_NULL;
16483 fra.me.REG[1] = NIT_NULL;
16484 fra.me.REG[2] = NIT_NULL;
16485 fra.me.REG[3] = NIT_NULL;
16486 fra.me.REG[4] = NIT_NULL;
16487 fra.me.REG[5] = NIT_NULL;
16488 fra.me.REG[6] = NIT_NULL;
16489 fra.me.REG[7] = NIT_NULL;
16490 fra.me.REG[8] = NIT_NULL;
16491 fra.me.REG[9] = NIT_NULL;
16492 fra.me.REG[0] = p0;
16493 fra.me.REG[1] = p1;
16494 /* ./parser//parser.nit:4759 */
16495 fra.me.REG[2] = NIT_NULL;
16496 /* ./parser//parser.nit:4760 */
16497 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16498 /* ./parser//parser.nit:4761 */
16499 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16500 /* ./parser//parser.nit:4762 */
16501 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16502 /* ./parser//parser.nit:4763 */
16503 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16504 /* ./parser//parser.nit:4764 */
16505 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16506 /* ./parser//parser.nit:4765 */
16507 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16508 /* ./parser//parser.nit:4766 */
16509 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16510 /* ./parser//parser.nit:4767 */
16511 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16512 /* ./parser//parser.nit:4768 */
16513 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16514 /* ./parser//parser.nit:4770 */
16515 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16516 if (UNTAG_Bool(REGB0)) {
16517 } else {
16518 nit_abort("Assert failed", NULL, LOCATE_parser, 4770);
16519 }
16520 /* ./parser//parser.nit:4772 */
16521 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16522 if (UNTAG_Bool(REGB0)) {
16523 } else {
16524 nit_abort("Assert failed", NULL, LOCATE_parser, 4772);
16525 }
16526 /* ./parser//parser.nit:4774 */
16527 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16528 if (UNTAG_Bool(REGB0)) {
16529 } else {
16530 nit_abort("Assert failed", NULL, LOCATE_parser, 4774);
16531 }
16532 /* ./parser//parser.nit:4776 */
16533 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16534 if (UNTAG_Bool(REGB0)) {
16535 } else {
16536 nit_abort("Assert failed", NULL, LOCATE_parser, 4776);
16537 }
16538 /* ./parser//parser.nit:4778 */
16539 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16540 if (UNTAG_Bool(REGB0)) {
16541 } else {
16542 nit_abort("Assert failed", NULL, LOCATE_parser, 4778);
16543 }
16544 /* ./parser//parser.nit:4780 */
16545 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16546 if (UNTAG_Bool(REGB0)) {
16547 } else {
16548 nit_abort("Assert failed", NULL, LOCATE_parser, 4780);
16549 }
16550 /* ./parser//parser.nit:4782 */
16551 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16552 if (UNTAG_Bool(REGB0)) {
16553 } else {
16554 nit_abort("Assert failed", NULL, LOCATE_parser, 4782);
16555 }
16556 /* ./parser//parser.nit:4783 */
16557 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]);
16558 /* ./parser//parser.nit:4795 */
16559 fra.me.REG[2] = fra.me.REG[3];
16560 /* ./parser//parser.nit:4796 */
16561 REGB0 = TAG_Bool(ATTR_parser___ReduceAction107____goto(fra.me.REG[0])!=NIT_NULL);
16562 if (UNTAG_Bool(REGB0)) {
16563 } else {
16564 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4796);
16565 }
16566 REGB0 = ATTR_parser___ReduceAction107____goto(fra.me.REG[0]);
16567 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16568 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16569 stack_frame_head = fra.me.prev;
16570 return;
16571 }
16572 void parser___ReduceAction107___init(val_t p0, val_t p1, int* init_table){
16573 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction107].i;
16574 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16575 val_t REGB0;
16576 val_t tmp;
16577 if (init_table[itpos110]) return;
16578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16579 fra.me.file = LOCATE_parser;
16580 fra.me.line = 4799;
16581 fra.me.meth = LOCATE_parser___ReduceAction107___init;
16582 fra.me.has_broke = 0;
16583 fra.me.REG_size = 2;
16584 fra.me.REG[0] = NIT_NULL;
16585 fra.me.REG[1] = NIT_NULL;
16586 fra.me.REG[0] = p0;
16587 REGB0 = p1;
16588 /* ./parser//parser.nit:4799 */
16589 fra.me.REG[1] = fra.me.REG[0];
16590 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16591 ATTR_parser___ReduceAction107____goto(fra.me.REG[1]) = REGB0;
16592 stack_frame_head = fra.me.prev;
16593 init_table[itpos110] = 1;
16594 return;
16595 }
16596 void parser___ReduceAction108___action(val_t p0, val_t p1){
16597 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16598 val_t REGB0;
16599 val_t tmp;
16600 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16601 fra.me.file = LOCATE_parser;
16602 fra.me.line = 4803;
16603 fra.me.meth = LOCATE_parser___ReduceAction108___action;
16604 fra.me.has_broke = 0;
16605 fra.me.REG_size = 11;
16606 fra.me.REG[0] = NIT_NULL;
16607 fra.me.REG[1] = NIT_NULL;
16608 fra.me.REG[2] = NIT_NULL;
16609 fra.me.REG[3] = NIT_NULL;
16610 fra.me.REG[4] = NIT_NULL;
16611 fra.me.REG[5] = NIT_NULL;
16612 fra.me.REG[6] = NIT_NULL;
16613 fra.me.REG[7] = NIT_NULL;
16614 fra.me.REG[8] = NIT_NULL;
16615 fra.me.REG[9] = NIT_NULL;
16616 fra.me.REG[10] = NIT_NULL;
16617 fra.me.REG[0] = p0;
16618 fra.me.REG[1] = p1;
16619 /* ./parser//parser.nit:4805 */
16620 fra.me.REG[2] = NIT_NULL;
16621 /* ./parser//parser.nit:4806 */
16622 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16623 /* ./parser//parser.nit:4807 */
16624 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16625 /* ./parser//parser.nit:4808 */
16626 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16627 /* ./parser//parser.nit:4809 */
16628 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16629 /* ./parser//parser.nit:4810 */
16630 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16631 /* ./parser//parser.nit:4811 */
16632 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16633 /* ./parser//parser.nit:4812 */
16634 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16635 /* ./parser//parser.nit:4813 */
16636 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16637 /* ./parser//parser.nit:4814 */
16638 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16639 /* ./parser//parser.nit:4815 */
16640 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16641 /* ./parser//parser.nit:4817 */
16642 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16643 if (UNTAG_Bool(REGB0)) {
16644 } else {
16645 nit_abort("Assert failed", NULL, LOCATE_parser, 4817);
16646 }
16647 /* ./parser//parser.nit:4819 */
16648 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16649 if (UNTAG_Bool(REGB0)) {
16650 } else {
16651 nit_abort("Assert failed", NULL, LOCATE_parser, 4819);
16652 }
16653 /* ./parser//parser.nit:4821 */
16654 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16655 if (UNTAG_Bool(REGB0)) {
16656 } else {
16657 nit_abort("Assert failed", NULL, LOCATE_parser, 4821);
16658 }
16659 /* ./parser//parser.nit:4823 */
16660 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16661 if (UNTAG_Bool(REGB0)) {
16662 } else {
16663 nit_abort("Assert failed", NULL, LOCATE_parser, 4823);
16664 }
16665 /* ./parser//parser.nit:4825 */
16666 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16667 if (UNTAG_Bool(REGB0)) {
16668 } else {
16669 nit_abort("Assert failed", NULL, LOCATE_parser, 4825);
16670 }
16671 /* ./parser//parser.nit:4827 */
16672 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16673 if (UNTAG_Bool(REGB0)) {
16674 } else {
16675 nit_abort("Assert failed", NULL, LOCATE_parser, 4827);
16676 }
16677 /* ./parser//parser.nit:4829 */
16678 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16679 if (UNTAG_Bool(REGB0)) {
16680 } else {
16681 nit_abort("Assert failed", NULL, LOCATE_parser, 4829);
16682 }
16683 /* ./parser//parser.nit:4831 */
16684 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16685 if (UNTAG_Bool(REGB0)) {
16686 } else {
16687 nit_abort("Assert failed", NULL, LOCATE_parser, 4831);
16688 }
16689 /* ./parser//parser.nit:4832 */
16690 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]);
16691 /* ./parser//parser.nit:4844 */
16692 fra.me.REG[2] = fra.me.REG[3];
16693 /* ./parser//parser.nit:4845 */
16694 REGB0 = TAG_Bool(ATTR_parser___ReduceAction108____goto(fra.me.REG[0])!=NIT_NULL);
16695 if (UNTAG_Bool(REGB0)) {
16696 } else {
16697 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4845);
16698 }
16699 REGB0 = ATTR_parser___ReduceAction108____goto(fra.me.REG[0]);
16700 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16701 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16702 stack_frame_head = fra.me.prev;
16703 return;
16704 }
16705 void parser___ReduceAction108___init(val_t p0, val_t p1, int* init_table){
16706 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction108].i;
16707 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16708 val_t REGB0;
16709 val_t tmp;
16710 if (init_table[itpos111]) return;
16711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16712 fra.me.file = LOCATE_parser;
16713 fra.me.line = 4848;
16714 fra.me.meth = LOCATE_parser___ReduceAction108___init;
16715 fra.me.has_broke = 0;
16716 fra.me.REG_size = 2;
16717 fra.me.REG[0] = NIT_NULL;
16718 fra.me.REG[1] = NIT_NULL;
16719 fra.me.REG[0] = p0;
16720 REGB0 = p1;
16721 /* ./parser//parser.nit:4848 */
16722 fra.me.REG[1] = fra.me.REG[0];
16723 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16724 ATTR_parser___ReduceAction108____goto(fra.me.REG[1]) = REGB0;
16725 stack_frame_head = fra.me.prev;
16726 init_table[itpos111] = 1;
16727 return;
16728 }
16729 void parser___ReduceAction109___action(val_t p0, val_t p1){
16730 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
16731 val_t REGB0;
16732 val_t tmp;
16733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16734 fra.me.file = LOCATE_parser;
16735 fra.me.line = 4852;
16736 fra.me.meth = LOCATE_parser___ReduceAction109___action;
16737 fra.me.has_broke = 0;
16738 fra.me.REG_size = 10;
16739 fra.me.REG[0] = NIT_NULL;
16740 fra.me.REG[1] = NIT_NULL;
16741 fra.me.REG[2] = NIT_NULL;
16742 fra.me.REG[3] = NIT_NULL;
16743 fra.me.REG[4] = NIT_NULL;
16744 fra.me.REG[5] = NIT_NULL;
16745 fra.me.REG[6] = NIT_NULL;
16746 fra.me.REG[7] = NIT_NULL;
16747 fra.me.REG[8] = NIT_NULL;
16748 fra.me.REG[9] = NIT_NULL;
16749 fra.me.REG[0] = p0;
16750 fra.me.REG[1] = p1;
16751 /* ./parser//parser.nit:4854 */
16752 fra.me.REG[2] = NIT_NULL;
16753 /* ./parser//parser.nit:4855 */
16754 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16755 /* ./parser//parser.nit:4856 */
16756 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16757 /* ./parser//parser.nit:4857 */
16758 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16759 /* ./parser//parser.nit:4858 */
16760 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16761 /* ./parser//parser.nit:4859 */
16762 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16763 /* ./parser//parser.nit:4860 */
16764 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16765 /* ./parser//parser.nit:4861 */
16766 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16767 /* ./parser//parser.nit:4862 */
16768 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16769 /* ./parser//parser.nit:4863 */
16770 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16771 /* ./parser//parser.nit:4865 */
16772 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16773 if (UNTAG_Bool(REGB0)) {
16774 } else {
16775 nit_abort("Assert failed", NULL, LOCATE_parser, 4865);
16776 }
16777 /* ./parser//parser.nit:4867 */
16778 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16779 if (UNTAG_Bool(REGB0)) {
16780 } else {
16781 nit_abort("Assert failed", NULL, LOCATE_parser, 4867);
16782 }
16783 /* ./parser//parser.nit:4869 */
16784 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16785 if (UNTAG_Bool(REGB0)) {
16786 } else {
16787 nit_abort("Assert failed", NULL, LOCATE_parser, 4869);
16788 }
16789 /* ./parser//parser.nit:4871 */
16790 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16791 if (UNTAG_Bool(REGB0)) {
16792 } else {
16793 nit_abort("Assert failed", NULL, LOCATE_parser, 4871);
16794 }
16795 /* ./parser//parser.nit:4873 */
16796 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16797 if (UNTAG_Bool(REGB0)) {
16798 } else {
16799 nit_abort("Assert failed", NULL, LOCATE_parser, 4873);
16800 }
16801 /* ./parser//parser.nit:4875 */
16802 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16803 if (UNTAG_Bool(REGB0)) {
16804 } else {
16805 nit_abort("Assert failed", NULL, LOCATE_parser, 4875);
16806 }
16807 /* ./parser//parser.nit:4877 */
16808 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16809 if (UNTAG_Bool(REGB0)) {
16810 } else {
16811 nit_abort("Assert failed", NULL, LOCATE_parser, 4877);
16812 }
16813 /* ./parser//parser.nit:4878 */
16814 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]);
16815 /* ./parser//parser.nit:4890 */
16816 fra.me.REG[2] = fra.me.REG[3];
16817 /* ./parser//parser.nit:4891 */
16818 REGB0 = TAG_Bool(ATTR_parser___ReduceAction109____goto(fra.me.REG[0])!=NIT_NULL);
16819 if (UNTAG_Bool(REGB0)) {
16820 } else {
16821 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4891);
16822 }
16823 REGB0 = ATTR_parser___ReduceAction109____goto(fra.me.REG[0]);
16824 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16825 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16826 stack_frame_head = fra.me.prev;
16827 return;
16828 }
16829 void parser___ReduceAction109___init(val_t p0, val_t p1, int* init_table){
16830 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction109].i;
16831 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16832 val_t REGB0;
16833 val_t tmp;
16834 if (init_table[itpos112]) return;
16835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16836 fra.me.file = LOCATE_parser;
16837 fra.me.line = 4894;
16838 fra.me.meth = LOCATE_parser___ReduceAction109___init;
16839 fra.me.has_broke = 0;
16840 fra.me.REG_size = 2;
16841 fra.me.REG[0] = NIT_NULL;
16842 fra.me.REG[1] = NIT_NULL;
16843 fra.me.REG[0] = p0;
16844 REGB0 = p1;
16845 /* ./parser//parser.nit:4894 */
16846 fra.me.REG[1] = fra.me.REG[0];
16847 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16848 ATTR_parser___ReduceAction109____goto(fra.me.REG[1]) = REGB0;
16849 stack_frame_head = fra.me.prev;
16850 init_table[itpos112] = 1;
16851 return;
16852 }
16853 void parser___ReduceAction110___action(val_t p0, val_t p1){
16854 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16855 val_t REGB0;
16856 val_t tmp;
16857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16858 fra.me.file = LOCATE_parser;
16859 fra.me.line = 4898;
16860 fra.me.meth = LOCATE_parser___ReduceAction110___action;
16861 fra.me.has_broke = 0;
16862 fra.me.REG_size = 11;
16863 fra.me.REG[0] = NIT_NULL;
16864 fra.me.REG[1] = NIT_NULL;
16865 fra.me.REG[2] = NIT_NULL;
16866 fra.me.REG[3] = NIT_NULL;
16867 fra.me.REG[4] = NIT_NULL;
16868 fra.me.REG[5] = NIT_NULL;
16869 fra.me.REG[6] = NIT_NULL;
16870 fra.me.REG[7] = NIT_NULL;
16871 fra.me.REG[8] = NIT_NULL;
16872 fra.me.REG[9] = NIT_NULL;
16873 fra.me.REG[10] = NIT_NULL;
16874 fra.me.REG[0] = p0;
16875 fra.me.REG[1] = p1;
16876 /* ./parser//parser.nit:4900 */
16877 fra.me.REG[2] = NIT_NULL;
16878 /* ./parser//parser.nit:4901 */
16879 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16880 /* ./parser//parser.nit:4902 */
16881 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16882 /* ./parser//parser.nit:4903 */
16883 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16884 /* ./parser//parser.nit:4904 */
16885 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16886 /* ./parser//parser.nit:4905 */
16887 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16888 /* ./parser//parser.nit:4906 */
16889 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16890 /* ./parser//parser.nit:4907 */
16891 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16892 /* ./parser//parser.nit:4908 */
16893 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16894 /* ./parser//parser.nit:4909 */
16895 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16896 /* ./parser//parser.nit:4910 */
16897 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
16898 /* ./parser//parser.nit:4912 */
16899 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
16900 if (UNTAG_Bool(REGB0)) {
16901 } else {
16902 nit_abort("Assert failed", NULL, LOCATE_parser, 4912);
16903 }
16904 /* ./parser//parser.nit:4914 */
16905 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
16906 if (UNTAG_Bool(REGB0)) {
16907 } else {
16908 nit_abort("Assert failed", NULL, LOCATE_parser, 4914);
16909 }
16910 /* ./parser//parser.nit:4916 */
16911 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
16912 if (UNTAG_Bool(REGB0)) {
16913 } else {
16914 nit_abort("Assert failed", NULL, LOCATE_parser, 4916);
16915 }
16916 /* ./parser//parser.nit:4918 */
16917 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
16918 if (UNTAG_Bool(REGB0)) {
16919 } else {
16920 nit_abort("Assert failed", NULL, LOCATE_parser, 4918);
16921 }
16922 /* ./parser//parser.nit:4920 */
16923 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
16924 if (UNTAG_Bool(REGB0)) {
16925 } else {
16926 nit_abort("Assert failed", NULL, LOCATE_parser, 4920);
16927 }
16928 /* ./parser//parser.nit:4922 */
16929 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
16930 if (UNTAG_Bool(REGB0)) {
16931 } else {
16932 nit_abort("Assert failed", NULL, LOCATE_parser, 4922);
16933 }
16934 /* ./parser//parser.nit:4924 */
16935 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
16936 if (UNTAG_Bool(REGB0)) {
16937 } else {
16938 nit_abort("Assert failed", NULL, LOCATE_parser, 4924);
16939 }
16940 /* ./parser//parser.nit:4926 */
16941 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
16942 if (UNTAG_Bool(REGB0)) {
16943 } else {
16944 nit_abort("Assert failed", NULL, LOCATE_parser, 4926);
16945 }
16946 /* ./parser//parser.nit:4927 */
16947 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]);
16948 /* ./parser//parser.nit:4939 */
16949 fra.me.REG[2] = fra.me.REG[3];
16950 /* ./parser//parser.nit:4940 */
16951 REGB0 = TAG_Bool(ATTR_parser___ReduceAction110____goto(fra.me.REG[0])!=NIT_NULL);
16952 if (UNTAG_Bool(REGB0)) {
16953 } else {
16954 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4940);
16955 }
16956 REGB0 = ATTR_parser___ReduceAction110____goto(fra.me.REG[0]);
16957 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
16958 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
16959 stack_frame_head = fra.me.prev;
16960 return;
16961 }
16962 void parser___ReduceAction110___init(val_t p0, val_t p1, int* init_table){
16963 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction110].i;
16964 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16965 val_t REGB0;
16966 val_t tmp;
16967 if (init_table[itpos113]) return;
16968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16969 fra.me.file = LOCATE_parser;
16970 fra.me.line = 4943;
16971 fra.me.meth = LOCATE_parser___ReduceAction110___init;
16972 fra.me.has_broke = 0;
16973 fra.me.REG_size = 2;
16974 fra.me.REG[0] = NIT_NULL;
16975 fra.me.REG[1] = NIT_NULL;
16976 fra.me.REG[0] = p0;
16977 REGB0 = p1;
16978 /* ./parser//parser.nit:4943 */
16979 fra.me.REG[1] = fra.me.REG[0];
16980 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
16981 ATTR_parser___ReduceAction110____goto(fra.me.REG[1]) = REGB0;
16982 stack_frame_head = fra.me.prev;
16983 init_table[itpos113] = 1;
16984 return;
16985 }
16986 void parser___ReduceAction111___action(val_t p0, val_t p1){
16987 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
16988 val_t REGB0;
16989 val_t tmp;
16990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16991 fra.me.file = LOCATE_parser;
16992 fra.me.line = 4947;
16993 fra.me.meth = LOCATE_parser___ReduceAction111___action;
16994 fra.me.has_broke = 0;
16995 fra.me.REG_size = 11;
16996 fra.me.REG[0] = NIT_NULL;
16997 fra.me.REG[1] = NIT_NULL;
16998 fra.me.REG[2] = NIT_NULL;
16999 fra.me.REG[3] = NIT_NULL;
17000 fra.me.REG[4] = NIT_NULL;
17001 fra.me.REG[5] = NIT_NULL;
17002 fra.me.REG[6] = NIT_NULL;
17003 fra.me.REG[7] = NIT_NULL;
17004 fra.me.REG[8] = NIT_NULL;
17005 fra.me.REG[9] = NIT_NULL;
17006 fra.me.REG[10] = NIT_NULL;
17007 fra.me.REG[0] = p0;
17008 fra.me.REG[1] = p1;
17009 /* ./parser//parser.nit:4949 */
17010 fra.me.REG[2] = NIT_NULL;
17011 /* ./parser//parser.nit:4950 */
17012 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17013 /* ./parser//parser.nit:4951 */
17014 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17015 /* ./parser//parser.nit:4952 */
17016 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17017 /* ./parser//parser.nit:4953 */
17018 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17019 /* ./parser//parser.nit:4954 */
17020 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17021 /* ./parser//parser.nit:4955 */
17022 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17023 /* ./parser//parser.nit:4956 */
17024 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17025 /* ./parser//parser.nit:4957 */
17026 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17027 /* ./parser//parser.nit:4958 */
17028 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17029 /* ./parser//parser.nit:4959 */
17030 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17031 /* ./parser//parser.nit:4961 */
17032 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17033 if (UNTAG_Bool(REGB0)) {
17034 } else {
17035 nit_abort("Assert failed", NULL, LOCATE_parser, 4961);
17036 }
17037 /* ./parser//parser.nit:4963 */
17038 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17039 if (UNTAG_Bool(REGB0)) {
17040 } else {
17041 nit_abort("Assert failed", NULL, LOCATE_parser, 4963);
17042 }
17043 /* ./parser//parser.nit:4965 */
17044 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17045 if (UNTAG_Bool(REGB0)) {
17046 } else {
17047 nit_abort("Assert failed", NULL, LOCATE_parser, 4965);
17048 }
17049 /* ./parser//parser.nit:4967 */
17050 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17051 if (UNTAG_Bool(REGB0)) {
17052 } else {
17053 nit_abort("Assert failed", NULL, LOCATE_parser, 4967);
17054 }
17055 /* ./parser//parser.nit:4969 */
17056 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17057 if (UNTAG_Bool(REGB0)) {
17058 } else {
17059 nit_abort("Assert failed", NULL, LOCATE_parser, 4969);
17060 }
17061 /* ./parser//parser.nit:4971 */
17062 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
17063 if (UNTAG_Bool(REGB0)) {
17064 } else {
17065 nit_abort("Assert failed", NULL, LOCATE_parser, 4971);
17066 }
17067 /* ./parser//parser.nit:4973 */
17068 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17069 if (UNTAG_Bool(REGB0)) {
17070 } else {
17071 nit_abort("Assert failed", NULL, LOCATE_parser, 4973);
17072 }
17073 /* ./parser//parser.nit:4975 */
17074 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
17075 if (UNTAG_Bool(REGB0)) {
17076 } else {
17077 nit_abort("Assert failed", NULL, LOCATE_parser, 4975);
17078 }
17079 /* ./parser//parser.nit:4976 */
17080 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]);
17081 /* ./parser//parser.nit:4988 */
17082 fra.me.REG[2] = fra.me.REG[3];
17083 /* ./parser//parser.nit:4989 */
17084 REGB0 = TAG_Bool(ATTR_parser___ReduceAction111____goto(fra.me.REG[0])!=NIT_NULL);
17085 if (UNTAG_Bool(REGB0)) {
17086 } else {
17087 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4989);
17088 }
17089 REGB0 = ATTR_parser___ReduceAction111____goto(fra.me.REG[0]);
17090 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17091 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17092 stack_frame_head = fra.me.prev;
17093 return;
17094 }
17095 void parser___ReduceAction111___init(val_t p0, val_t p1, int* init_table){
17096 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction111].i;
17097 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17098 val_t REGB0;
17099 val_t tmp;
17100 if (init_table[itpos114]) return;
17101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17102 fra.me.file = LOCATE_parser;
17103 fra.me.line = 4992;
17104 fra.me.meth = LOCATE_parser___ReduceAction111___init;
17105 fra.me.has_broke = 0;
17106 fra.me.REG_size = 2;
17107 fra.me.REG[0] = NIT_NULL;
17108 fra.me.REG[1] = NIT_NULL;
17109 fra.me.REG[0] = p0;
17110 REGB0 = p1;
17111 /* ./parser//parser.nit:4992 */
17112 fra.me.REG[1] = fra.me.REG[0];
17113 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17114 ATTR_parser___ReduceAction111____goto(fra.me.REG[1]) = REGB0;
17115 stack_frame_head = fra.me.prev;
17116 init_table[itpos114] = 1;
17117 return;
17118 }
17119 void parser___ReduceAction112___action(val_t p0, val_t p1){
17120 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
17121 val_t REGB0;
17122 val_t tmp;
17123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17124 fra.me.file = LOCATE_parser;
17125 fra.me.line = 4996;
17126 fra.me.meth = LOCATE_parser___ReduceAction112___action;
17127 fra.me.has_broke = 0;
17128 fra.me.REG_size = 12;
17129 fra.me.REG[0] = NIT_NULL;
17130 fra.me.REG[1] = NIT_NULL;
17131 fra.me.REG[2] = NIT_NULL;
17132 fra.me.REG[3] = NIT_NULL;
17133 fra.me.REG[4] = NIT_NULL;
17134 fra.me.REG[5] = NIT_NULL;
17135 fra.me.REG[6] = NIT_NULL;
17136 fra.me.REG[7] = NIT_NULL;
17137 fra.me.REG[8] = NIT_NULL;
17138 fra.me.REG[9] = NIT_NULL;
17139 fra.me.REG[10] = NIT_NULL;
17140 fra.me.REG[11] = NIT_NULL;
17141 fra.me.REG[0] = p0;
17142 fra.me.REG[1] = p1;
17143 /* ./parser//parser.nit:4998 */
17144 fra.me.REG[2] = NIT_NULL;
17145 /* ./parser//parser.nit:4999 */
17146 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17147 /* ./parser//parser.nit:5000 */
17148 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17149 /* ./parser//parser.nit:5001 */
17150 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17151 /* ./parser//parser.nit:5002 */
17152 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17153 /* ./parser//parser.nit:5003 */
17154 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17155 /* ./parser//parser.nit:5004 */
17156 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17157 /* ./parser//parser.nit:5005 */
17158 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17159 /* ./parser//parser.nit:5006 */
17160 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17161 /* ./parser//parser.nit:5007 */
17162 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17163 /* ./parser//parser.nit:5008 */
17164 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17165 /* ./parser//parser.nit:5009 */
17166 fra.me.REG[11] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17167 /* ./parser//parser.nit:5011 */
17168 REGB0 = TAG_Bool((fra.me.REG[11]==NIT_NULL) || VAL_ISA(fra.me.REG[11], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17169 if (UNTAG_Bool(REGB0)) {
17170 } else {
17171 nit_abort("Assert failed", NULL, LOCATE_parser, 5011);
17172 }
17173 /* ./parser//parser.nit:5013 */
17174 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17175 if (UNTAG_Bool(REGB0)) {
17176 } else {
17177 nit_abort("Assert failed", NULL, LOCATE_parser, 5013);
17178 }
17179 /* ./parser//parser.nit:5015 */
17180 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17181 if (UNTAG_Bool(REGB0)) {
17182 } else {
17183 nit_abort("Assert failed", NULL, LOCATE_parser, 5015);
17184 }
17185 /* ./parser//parser.nit:5017 */
17186 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17187 if (UNTAG_Bool(REGB0)) {
17188 } else {
17189 nit_abort("Assert failed", NULL, LOCATE_parser, 5017);
17190 }
17191 /* ./parser//parser.nit:5019 */
17192 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17193 if (UNTAG_Bool(REGB0)) {
17194 } else {
17195 nit_abort("Assert failed", NULL, LOCATE_parser, 5019);
17196 }
17197 /* ./parser//parser.nit:5021 */
17198 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17199 if (UNTAG_Bool(REGB0)) {
17200 } else {
17201 nit_abort("Assert failed", NULL, LOCATE_parser, 5021);
17202 }
17203 /* ./parser//parser.nit:5023 */
17204 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
17205 if (UNTAG_Bool(REGB0)) {
17206 } else {
17207 nit_abort("Assert failed", NULL, LOCATE_parser, 5023);
17208 }
17209 /* ./parser//parser.nit:5025 */
17210 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17211 if (UNTAG_Bool(REGB0)) {
17212 } else {
17213 nit_abort("Assert failed", NULL, LOCATE_parser, 5025);
17214 }
17215 /* ./parser//parser.nit:5027 */
17216 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
17217 if (UNTAG_Bool(REGB0)) {
17218 } else {
17219 nit_abort("Assert failed", NULL, LOCATE_parser, 5027);
17220 }
17221 /* ./parser//parser.nit:5028 */
17222 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]);
17223 /* ./parser//parser.nit:5040 */
17224 fra.me.REG[2] = fra.me.REG[3];
17225 /* ./parser//parser.nit:5041 */
17226 REGB0 = TAG_Bool(ATTR_parser___ReduceAction112____goto(fra.me.REG[0])!=NIT_NULL);
17227 if (UNTAG_Bool(REGB0)) {
17228 } else {
17229 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5041);
17230 }
17231 REGB0 = ATTR_parser___ReduceAction112____goto(fra.me.REG[0]);
17232 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17233 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17234 stack_frame_head = fra.me.prev;
17235 return;
17236 }
17237 void parser___ReduceAction112___init(val_t p0, val_t p1, int* init_table){
17238 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction112].i;
17239 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17240 val_t REGB0;
17241 val_t tmp;
17242 if (init_table[itpos115]) return;
17243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17244 fra.me.file = LOCATE_parser;
17245 fra.me.line = 5044;
17246 fra.me.meth = LOCATE_parser___ReduceAction112___init;
17247 fra.me.has_broke = 0;
17248 fra.me.REG_size = 2;
17249 fra.me.REG[0] = NIT_NULL;
17250 fra.me.REG[1] = NIT_NULL;
17251 fra.me.REG[0] = p0;
17252 REGB0 = p1;
17253 /* ./parser//parser.nit:5044 */
17254 fra.me.REG[1] = fra.me.REG[0];
17255 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17256 ATTR_parser___ReduceAction112____goto(fra.me.REG[1]) = REGB0;
17257 stack_frame_head = fra.me.prev;
17258 init_table[itpos115] = 1;
17259 return;
17260 }
17261 void parser___ReduceAction113___action(val_t p0, val_t p1){
17262 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17263 val_t REGB0;
17264 val_t tmp;
17265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17266 fra.me.file = LOCATE_parser;
17267 fra.me.line = 5048;
17268 fra.me.meth = LOCATE_parser___ReduceAction113___action;
17269 fra.me.has_broke = 0;
17270 fra.me.REG_size = 7;
17271 fra.me.REG[0] = NIT_NULL;
17272 fra.me.REG[1] = NIT_NULL;
17273 fra.me.REG[2] = NIT_NULL;
17274 fra.me.REG[3] = NIT_NULL;
17275 fra.me.REG[4] = NIT_NULL;
17276 fra.me.REG[5] = NIT_NULL;
17277 fra.me.REG[6] = NIT_NULL;
17278 fra.me.REG[0] = p0;
17279 fra.me.REG[1] = p1;
17280 /* ./parser//parser.nit:5050 */
17281 fra.me.REG[2] = NIT_NULL;
17282 /* ./parser//parser.nit:5051 */
17283 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17284 /* ./parser//parser.nit:5052 */
17285 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17286 /* ./parser//parser.nit:5053 */
17287 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17288 /* ./parser//parser.nit:5054 */
17289 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17290 /* ./parser//parser.nit:5056 */
17291 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17292 if (UNTAG_Bool(REGB0)) {
17293 } else {
17294 nit_abort("Assert failed", NULL, LOCATE_parser, 5056);
17295 }
17296 /* ./parser//parser.nit:5058 */
17297 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17298 if (UNTAG_Bool(REGB0)) {
17299 } else {
17300 nit_abort("Assert failed", NULL, LOCATE_parser, 5058);
17301 }
17302 /* ./parser//parser.nit:5060 */
17303 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17304 if (UNTAG_Bool(REGB0)) {
17305 } else {
17306 nit_abort("Assert failed", NULL, LOCATE_parser, 5060);
17307 }
17308 /* ./parser//parser.nit:5062 */
17309 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17310 if (UNTAG_Bool(REGB0)) {
17311 } else {
17312 nit_abort("Assert failed", NULL, LOCATE_parser, 5062);
17313 }
17314 /* ./parser//parser.nit:5063 */
17315 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);
17316 /* ./parser//parser.nit:5075 */
17317 fra.me.REG[2] = fra.me.REG[3];
17318 /* ./parser//parser.nit:5076 */
17319 REGB0 = TAG_Bool(ATTR_parser___ReduceAction113____goto(fra.me.REG[0])!=NIT_NULL);
17320 if (UNTAG_Bool(REGB0)) {
17321 } else {
17322 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5076);
17323 }
17324 REGB0 = ATTR_parser___ReduceAction113____goto(fra.me.REG[0]);
17325 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17326 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17327 stack_frame_head = fra.me.prev;
17328 return;
17329 }
17330 void parser___ReduceAction113___init(val_t p0, val_t p1, int* init_table){
17331 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction113].i;
17332 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17333 val_t REGB0;
17334 val_t tmp;
17335 if (init_table[itpos116]) return;
17336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17337 fra.me.file = LOCATE_parser;
17338 fra.me.line = 5079;
17339 fra.me.meth = LOCATE_parser___ReduceAction113___init;
17340 fra.me.has_broke = 0;
17341 fra.me.REG_size = 2;
17342 fra.me.REG[0] = NIT_NULL;
17343 fra.me.REG[1] = NIT_NULL;
17344 fra.me.REG[0] = p0;
17345 REGB0 = p1;
17346 /* ./parser//parser.nit:5079 */
17347 fra.me.REG[1] = fra.me.REG[0];
17348 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17349 ATTR_parser___ReduceAction113____goto(fra.me.REG[1]) = REGB0;
17350 stack_frame_head = fra.me.prev;
17351 init_table[itpos116] = 1;
17352 return;
17353 }
17354 void parser___ReduceAction114___action(val_t p0, val_t p1){
17355 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
17356 val_t REGB0;
17357 val_t tmp;
17358 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17359 fra.me.file = LOCATE_parser;
17360 fra.me.line = 5083;
17361 fra.me.meth = LOCATE_parser___ReduceAction114___action;
17362 fra.me.has_broke = 0;
17363 fra.me.REG_size = 8;
17364 fra.me.REG[0] = NIT_NULL;
17365 fra.me.REG[1] = NIT_NULL;
17366 fra.me.REG[2] = NIT_NULL;
17367 fra.me.REG[3] = NIT_NULL;
17368 fra.me.REG[4] = NIT_NULL;
17369 fra.me.REG[5] = NIT_NULL;
17370 fra.me.REG[6] = NIT_NULL;
17371 fra.me.REG[7] = NIT_NULL;
17372 fra.me.REG[0] = p0;
17373 fra.me.REG[1] = p1;
17374 /* ./parser//parser.nit:5085 */
17375 fra.me.REG[2] = NIT_NULL;
17376 /* ./parser//parser.nit:5086 */
17377 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17378 /* ./parser//parser.nit:5087 */
17379 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17380 /* ./parser//parser.nit:5088 */
17381 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17382 /* ./parser//parser.nit:5089 */
17383 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17384 /* ./parser//parser.nit:5090 */
17385 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17386 /* ./parser//parser.nit:5092 */
17387 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17388 if (UNTAG_Bool(REGB0)) {
17389 } else {
17390 nit_abort("Assert failed", NULL, LOCATE_parser, 5092);
17391 }
17392 /* ./parser//parser.nit:5094 */
17393 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17394 if (UNTAG_Bool(REGB0)) {
17395 } else {
17396 nit_abort("Assert failed", NULL, LOCATE_parser, 5094);
17397 }
17398 /* ./parser//parser.nit:5096 */
17399 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17400 if (UNTAG_Bool(REGB0)) {
17401 } else {
17402 nit_abort("Assert failed", NULL, LOCATE_parser, 5096);
17403 }
17404 /* ./parser//parser.nit:5098 */
17405 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17406 if (UNTAG_Bool(REGB0)) {
17407 } else {
17408 nit_abort("Assert failed", NULL, LOCATE_parser, 5098);
17409 }
17410 /* ./parser//parser.nit:5100 */
17411 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17412 if (UNTAG_Bool(REGB0)) {
17413 } else {
17414 nit_abort("Assert failed", NULL, LOCATE_parser, 5100);
17415 }
17416 /* ./parser//parser.nit:5101 */
17417 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);
17418 /* ./parser//parser.nit:5113 */
17419 fra.me.REG[2] = fra.me.REG[3];
17420 /* ./parser//parser.nit:5114 */
17421 REGB0 = TAG_Bool(ATTR_parser___ReduceAction114____goto(fra.me.REG[0])!=NIT_NULL);
17422 if (UNTAG_Bool(REGB0)) {
17423 } else {
17424 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5114);
17425 }
17426 REGB0 = ATTR_parser___ReduceAction114____goto(fra.me.REG[0]);
17427 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17428 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17429 stack_frame_head = fra.me.prev;
17430 return;
17431 }
17432 void parser___ReduceAction114___init(val_t p0, val_t p1, int* init_table){
17433 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction114].i;
17434 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17435 val_t REGB0;
17436 val_t tmp;
17437 if (init_table[itpos117]) return;
17438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17439 fra.me.file = LOCATE_parser;
17440 fra.me.line = 5117;
17441 fra.me.meth = LOCATE_parser___ReduceAction114___init;
17442 fra.me.has_broke = 0;
17443 fra.me.REG_size = 2;
17444 fra.me.REG[0] = NIT_NULL;
17445 fra.me.REG[1] = NIT_NULL;
17446 fra.me.REG[0] = p0;
17447 REGB0 = p1;
17448 /* ./parser//parser.nit:5117 */
17449 fra.me.REG[1] = fra.me.REG[0];
17450 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17451 ATTR_parser___ReduceAction114____goto(fra.me.REG[1]) = REGB0;
17452 stack_frame_head = fra.me.prev;
17453 init_table[itpos117] = 1;
17454 return;
17455 }
17456 void parser___ReduceAction115___action(val_t p0, val_t p1){
17457 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
17458 val_t REGB0;
17459 val_t tmp;
17460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17461 fra.me.file = LOCATE_parser;
17462 fra.me.line = 5121;
17463 fra.me.meth = LOCATE_parser___ReduceAction115___action;
17464 fra.me.has_broke = 0;
17465 fra.me.REG_size = 8;
17466 fra.me.REG[0] = NIT_NULL;
17467 fra.me.REG[1] = NIT_NULL;
17468 fra.me.REG[2] = NIT_NULL;
17469 fra.me.REG[3] = NIT_NULL;
17470 fra.me.REG[4] = NIT_NULL;
17471 fra.me.REG[5] = NIT_NULL;
17472 fra.me.REG[6] = NIT_NULL;
17473 fra.me.REG[7] = NIT_NULL;
17474 fra.me.REG[0] = p0;
17475 fra.me.REG[1] = p1;
17476 /* ./parser//parser.nit:5123 */
17477 fra.me.REG[2] = NIT_NULL;
17478 /* ./parser//parser.nit:5124 */
17479 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17480 /* ./parser//parser.nit:5125 */
17481 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17482 /* ./parser//parser.nit:5126 */
17483 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17484 /* ./parser//parser.nit:5127 */
17485 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17486 /* ./parser//parser.nit:5128 */
17487 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17488 /* ./parser//parser.nit:5130 */
17489 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17490 if (UNTAG_Bool(REGB0)) {
17491 } else {
17492 nit_abort("Assert failed", NULL, LOCATE_parser, 5130);
17493 }
17494 /* ./parser//parser.nit:5132 */
17495 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17496 if (UNTAG_Bool(REGB0)) {
17497 } else {
17498 nit_abort("Assert failed", NULL, LOCATE_parser, 5132);
17499 }
17500 /* ./parser//parser.nit:5134 */
17501 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17502 if (UNTAG_Bool(REGB0)) {
17503 } else {
17504 nit_abort("Assert failed", NULL, LOCATE_parser, 5134);
17505 }
17506 /* ./parser//parser.nit:5136 */
17507 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17508 if (UNTAG_Bool(REGB0)) {
17509 } else {
17510 nit_abort("Assert failed", NULL, LOCATE_parser, 5136);
17511 }
17512 /* ./parser//parser.nit:5138 */
17513 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17514 if (UNTAG_Bool(REGB0)) {
17515 } else {
17516 nit_abort("Assert failed", NULL, LOCATE_parser, 5138);
17517 }
17518 /* ./parser//parser.nit:5139 */
17519 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);
17520 /* ./parser//parser.nit:5151 */
17521 fra.me.REG[2] = fra.me.REG[3];
17522 /* ./parser//parser.nit:5152 */
17523 REGB0 = TAG_Bool(ATTR_parser___ReduceAction115____goto(fra.me.REG[0])!=NIT_NULL);
17524 if (UNTAG_Bool(REGB0)) {
17525 } else {
17526 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5152);
17527 }
17528 REGB0 = ATTR_parser___ReduceAction115____goto(fra.me.REG[0]);
17529 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17530 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17531 stack_frame_head = fra.me.prev;
17532 return;
17533 }
17534 void parser___ReduceAction115___init(val_t p0, val_t p1, int* init_table){
17535 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction115].i;
17536 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17537 val_t REGB0;
17538 val_t tmp;
17539 if (init_table[itpos118]) return;
17540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17541 fra.me.file = LOCATE_parser;
17542 fra.me.line = 5155;
17543 fra.me.meth = LOCATE_parser___ReduceAction115___init;
17544 fra.me.has_broke = 0;
17545 fra.me.REG_size = 2;
17546 fra.me.REG[0] = NIT_NULL;
17547 fra.me.REG[1] = NIT_NULL;
17548 fra.me.REG[0] = p0;
17549 REGB0 = p1;
17550 /* ./parser//parser.nit:5155 */
17551 fra.me.REG[1] = fra.me.REG[0];
17552 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17553 ATTR_parser___ReduceAction115____goto(fra.me.REG[1]) = REGB0;
17554 stack_frame_head = fra.me.prev;
17555 init_table[itpos118] = 1;
17556 return;
17557 }
17558 void parser___ReduceAction116___action(val_t p0, val_t p1){
17559 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17560 val_t REGB0;
17561 val_t tmp;
17562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17563 fra.me.file = LOCATE_parser;
17564 fra.me.line = 5159;
17565 fra.me.meth = LOCATE_parser___ReduceAction116___action;
17566 fra.me.has_broke = 0;
17567 fra.me.REG_size = 9;
17568 fra.me.REG[0] = NIT_NULL;
17569 fra.me.REG[1] = NIT_NULL;
17570 fra.me.REG[2] = NIT_NULL;
17571 fra.me.REG[3] = NIT_NULL;
17572 fra.me.REG[4] = NIT_NULL;
17573 fra.me.REG[5] = NIT_NULL;
17574 fra.me.REG[6] = NIT_NULL;
17575 fra.me.REG[7] = NIT_NULL;
17576 fra.me.REG[8] = NIT_NULL;
17577 fra.me.REG[0] = p0;
17578 fra.me.REG[1] = p1;
17579 /* ./parser//parser.nit:5161 */
17580 fra.me.REG[2] = NIT_NULL;
17581 /* ./parser//parser.nit:5162 */
17582 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17583 /* ./parser//parser.nit:5163 */
17584 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17585 /* ./parser//parser.nit:5164 */
17586 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17587 /* ./parser//parser.nit:5165 */
17588 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17589 /* ./parser//parser.nit:5166 */
17590 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17591 /* ./parser//parser.nit:5167 */
17592 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17593 /* ./parser//parser.nit:5169 */
17594 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17595 if (UNTAG_Bool(REGB0)) {
17596 } else {
17597 nit_abort("Assert failed", NULL, LOCATE_parser, 5169);
17598 }
17599 /* ./parser//parser.nit:5171 */
17600 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17601 if (UNTAG_Bool(REGB0)) {
17602 } else {
17603 nit_abort("Assert failed", NULL, LOCATE_parser, 5171);
17604 }
17605 /* ./parser//parser.nit:5173 */
17606 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17607 if (UNTAG_Bool(REGB0)) {
17608 } else {
17609 nit_abort("Assert failed", NULL, LOCATE_parser, 5173);
17610 }
17611 /* ./parser//parser.nit:5175 */
17612 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17613 if (UNTAG_Bool(REGB0)) {
17614 } else {
17615 nit_abort("Assert failed", NULL, LOCATE_parser, 5175);
17616 }
17617 /* ./parser//parser.nit:5177 */
17618 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17619 if (UNTAG_Bool(REGB0)) {
17620 } else {
17621 nit_abort("Assert failed", NULL, LOCATE_parser, 5177);
17622 }
17623 /* ./parser//parser.nit:5179 */
17624 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17625 if (UNTAG_Bool(REGB0)) {
17626 } else {
17627 nit_abort("Assert failed", NULL, LOCATE_parser, 5179);
17628 }
17629 /* ./parser//parser.nit:5180 */
17630 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);
17631 /* ./parser//parser.nit:5192 */
17632 fra.me.REG[2] = fra.me.REG[3];
17633 /* ./parser//parser.nit:5193 */
17634 REGB0 = TAG_Bool(ATTR_parser___ReduceAction116____goto(fra.me.REG[0])!=NIT_NULL);
17635 if (UNTAG_Bool(REGB0)) {
17636 } else {
17637 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5193);
17638 }
17639 REGB0 = ATTR_parser___ReduceAction116____goto(fra.me.REG[0]);
17640 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17641 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17642 stack_frame_head = fra.me.prev;
17643 return;
17644 }
17645 void parser___ReduceAction116___init(val_t p0, val_t p1, int* init_table){
17646 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction116].i;
17647 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17648 val_t REGB0;
17649 val_t tmp;
17650 if (init_table[itpos119]) return;
17651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17652 fra.me.file = LOCATE_parser;
17653 fra.me.line = 5196;
17654 fra.me.meth = LOCATE_parser___ReduceAction116___init;
17655 fra.me.has_broke = 0;
17656 fra.me.REG_size = 2;
17657 fra.me.REG[0] = NIT_NULL;
17658 fra.me.REG[1] = NIT_NULL;
17659 fra.me.REG[0] = p0;
17660 REGB0 = p1;
17661 /* ./parser//parser.nit:5196 */
17662 fra.me.REG[1] = fra.me.REG[0];
17663 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17664 ATTR_parser___ReduceAction116____goto(fra.me.REG[1]) = REGB0;
17665 stack_frame_head = fra.me.prev;
17666 init_table[itpos119] = 1;
17667 return;
17668 }
17669 void parser___ReduceAction117___action(val_t p0, val_t p1){
17670 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
17671 val_t REGB0;
17672 val_t tmp;
17673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17674 fra.me.file = LOCATE_parser;
17675 fra.me.line = 5200;
17676 fra.me.meth = LOCATE_parser___ReduceAction117___action;
17677 fra.me.has_broke = 0;
17678 fra.me.REG_size = 8;
17679 fra.me.REG[0] = NIT_NULL;
17680 fra.me.REG[1] = NIT_NULL;
17681 fra.me.REG[2] = NIT_NULL;
17682 fra.me.REG[3] = NIT_NULL;
17683 fra.me.REG[4] = NIT_NULL;
17684 fra.me.REG[5] = NIT_NULL;
17685 fra.me.REG[6] = NIT_NULL;
17686 fra.me.REG[7] = NIT_NULL;
17687 fra.me.REG[0] = p0;
17688 fra.me.REG[1] = p1;
17689 /* ./parser//parser.nit:5202 */
17690 fra.me.REG[2] = NIT_NULL;
17691 /* ./parser//parser.nit:5203 */
17692 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17693 /* ./parser//parser.nit:5204 */
17694 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17695 /* ./parser//parser.nit:5205 */
17696 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17697 /* ./parser//parser.nit:5206 */
17698 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17699 /* ./parser//parser.nit:5207 */
17700 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17701 /* ./parser//parser.nit:5209 */
17702 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17703 if (UNTAG_Bool(REGB0)) {
17704 } else {
17705 nit_abort("Assert failed", NULL, LOCATE_parser, 5209);
17706 }
17707 /* ./parser//parser.nit:5211 */
17708 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17709 if (UNTAG_Bool(REGB0)) {
17710 } else {
17711 nit_abort("Assert failed", NULL, LOCATE_parser, 5211);
17712 }
17713 /* ./parser//parser.nit:5213 */
17714 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17715 if (UNTAG_Bool(REGB0)) {
17716 } else {
17717 nit_abort("Assert failed", NULL, LOCATE_parser, 5213);
17718 }
17719 /* ./parser//parser.nit:5215 */
17720 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17721 if (UNTAG_Bool(REGB0)) {
17722 } else {
17723 nit_abort("Assert failed", NULL, LOCATE_parser, 5215);
17724 }
17725 /* ./parser//parser.nit:5217 */
17726 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17727 if (UNTAG_Bool(REGB0)) {
17728 } else {
17729 nit_abort("Assert failed", NULL, LOCATE_parser, 5217);
17730 }
17731 /* ./parser//parser.nit:5218 */
17732 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);
17733 /* ./parser//parser.nit:5230 */
17734 fra.me.REG[2] = fra.me.REG[4];
17735 /* ./parser//parser.nit:5231 */
17736 REGB0 = TAG_Bool(ATTR_parser___ReduceAction117____goto(fra.me.REG[0])!=NIT_NULL);
17737 if (UNTAG_Bool(REGB0)) {
17738 } else {
17739 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5231);
17740 }
17741 REGB0 = ATTR_parser___ReduceAction117____goto(fra.me.REG[0]);
17742 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17743 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17744 stack_frame_head = fra.me.prev;
17745 return;
17746 }
17747 void parser___ReduceAction117___init(val_t p0, val_t p1, int* init_table){
17748 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction117].i;
17749 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17750 val_t REGB0;
17751 val_t tmp;
17752 if (init_table[itpos120]) return;
17753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17754 fra.me.file = LOCATE_parser;
17755 fra.me.line = 5234;
17756 fra.me.meth = LOCATE_parser___ReduceAction117___init;
17757 fra.me.has_broke = 0;
17758 fra.me.REG_size = 2;
17759 fra.me.REG[0] = NIT_NULL;
17760 fra.me.REG[1] = NIT_NULL;
17761 fra.me.REG[0] = p0;
17762 REGB0 = p1;
17763 /* ./parser//parser.nit:5234 */
17764 fra.me.REG[1] = fra.me.REG[0];
17765 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17766 ATTR_parser___ReduceAction117____goto(fra.me.REG[1]) = REGB0;
17767 stack_frame_head = fra.me.prev;
17768 init_table[itpos120] = 1;
17769 return;
17770 }
17771 void parser___ReduceAction118___action(val_t p0, val_t p1){
17772 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17773 val_t REGB0;
17774 val_t tmp;
17775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17776 fra.me.file = LOCATE_parser;
17777 fra.me.line = 5238;
17778 fra.me.meth = LOCATE_parser___ReduceAction118___action;
17779 fra.me.has_broke = 0;
17780 fra.me.REG_size = 9;
17781 fra.me.REG[0] = NIT_NULL;
17782 fra.me.REG[1] = NIT_NULL;
17783 fra.me.REG[2] = NIT_NULL;
17784 fra.me.REG[3] = NIT_NULL;
17785 fra.me.REG[4] = NIT_NULL;
17786 fra.me.REG[5] = NIT_NULL;
17787 fra.me.REG[6] = NIT_NULL;
17788 fra.me.REG[7] = NIT_NULL;
17789 fra.me.REG[8] = NIT_NULL;
17790 fra.me.REG[0] = p0;
17791 fra.me.REG[1] = p1;
17792 /* ./parser//parser.nit:5240 */
17793 fra.me.REG[2] = NIT_NULL;
17794 /* ./parser//parser.nit:5241 */
17795 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17796 /* ./parser//parser.nit:5242 */
17797 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17798 /* ./parser//parser.nit:5243 */
17799 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17800 /* ./parser//parser.nit:5244 */
17801 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17802 /* ./parser//parser.nit:5245 */
17803 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17804 /* ./parser//parser.nit:5246 */
17805 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17806 /* ./parser//parser.nit:5248 */
17807 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17808 if (UNTAG_Bool(REGB0)) {
17809 } else {
17810 nit_abort("Assert failed", NULL, LOCATE_parser, 5248);
17811 }
17812 /* ./parser//parser.nit:5250 */
17813 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17814 if (UNTAG_Bool(REGB0)) {
17815 } else {
17816 nit_abort("Assert failed", NULL, LOCATE_parser, 5250);
17817 }
17818 /* ./parser//parser.nit:5252 */
17819 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
17820 if (UNTAG_Bool(REGB0)) {
17821 } else {
17822 nit_abort("Assert failed", NULL, LOCATE_parser, 5252);
17823 }
17824 /* ./parser//parser.nit:5254 */
17825 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17826 if (UNTAG_Bool(REGB0)) {
17827 } else {
17828 nit_abort("Assert failed", NULL, LOCATE_parser, 5254);
17829 }
17830 /* ./parser//parser.nit:5256 */
17831 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17832 if (UNTAG_Bool(REGB0)) {
17833 } else {
17834 nit_abort("Assert failed", NULL, LOCATE_parser, 5256);
17835 }
17836 /* ./parser//parser.nit:5258 */
17837 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17838 if (UNTAG_Bool(REGB0)) {
17839 } else {
17840 nit_abort("Assert failed", NULL, LOCATE_parser, 5258);
17841 }
17842 /* ./parser//parser.nit:5259 */
17843 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);
17844 /* ./parser//parser.nit:5271 */
17845 fra.me.REG[2] = fra.me.REG[4];
17846 /* ./parser//parser.nit:5272 */
17847 REGB0 = TAG_Bool(ATTR_parser___ReduceAction118____goto(fra.me.REG[0])!=NIT_NULL);
17848 if (UNTAG_Bool(REGB0)) {
17849 } else {
17850 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5272);
17851 }
17852 REGB0 = ATTR_parser___ReduceAction118____goto(fra.me.REG[0]);
17853 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17854 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17855 stack_frame_head = fra.me.prev;
17856 return;
17857 }
17858 void parser___ReduceAction118___init(val_t p0, val_t p1, int* init_table){
17859 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction118].i;
17860 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17861 val_t REGB0;
17862 val_t tmp;
17863 if (init_table[itpos121]) return;
17864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17865 fra.me.file = LOCATE_parser;
17866 fra.me.line = 5275;
17867 fra.me.meth = LOCATE_parser___ReduceAction118___init;
17868 fra.me.has_broke = 0;
17869 fra.me.REG_size = 2;
17870 fra.me.REG[0] = NIT_NULL;
17871 fra.me.REG[1] = NIT_NULL;
17872 fra.me.REG[0] = p0;
17873 REGB0 = p1;
17874 /* ./parser//parser.nit:5275 */
17875 fra.me.REG[1] = fra.me.REG[0];
17876 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17877 ATTR_parser___ReduceAction118____goto(fra.me.REG[1]) = REGB0;
17878 stack_frame_head = fra.me.prev;
17879 init_table[itpos121] = 1;
17880 return;
17881 }
17882 void parser___ReduceAction119___action(val_t p0, val_t p1){
17883 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
17884 val_t REGB0;
17885 val_t tmp;
17886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17887 fra.me.file = LOCATE_parser;
17888 fra.me.line = 5279;
17889 fra.me.meth = LOCATE_parser___ReduceAction119___action;
17890 fra.me.has_broke = 0;
17891 fra.me.REG_size = 9;
17892 fra.me.REG[0] = NIT_NULL;
17893 fra.me.REG[1] = NIT_NULL;
17894 fra.me.REG[2] = NIT_NULL;
17895 fra.me.REG[3] = NIT_NULL;
17896 fra.me.REG[4] = NIT_NULL;
17897 fra.me.REG[5] = NIT_NULL;
17898 fra.me.REG[6] = NIT_NULL;
17899 fra.me.REG[7] = NIT_NULL;
17900 fra.me.REG[8] = NIT_NULL;
17901 fra.me.REG[0] = p0;
17902 fra.me.REG[1] = p1;
17903 /* ./parser//parser.nit:5281 */
17904 fra.me.REG[2] = NIT_NULL;
17905 /* ./parser//parser.nit:5282 */
17906 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17907 /* ./parser//parser.nit:5283 */
17908 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17909 /* ./parser//parser.nit:5284 */
17910 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17911 /* ./parser//parser.nit:5285 */
17912 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17913 /* ./parser//parser.nit:5286 */
17914 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17915 /* ./parser//parser.nit:5287 */
17916 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
17917 /* ./parser//parser.nit:5289 */
17918 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
17919 if (UNTAG_Bool(REGB0)) {
17920 } else {
17921 nit_abort("Assert failed", NULL, LOCATE_parser, 5289);
17922 }
17923 /* ./parser//parser.nit:5291 */
17924 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
17925 if (UNTAG_Bool(REGB0)) {
17926 } else {
17927 nit_abort("Assert failed", NULL, LOCATE_parser, 5291);
17928 }
17929 /* ./parser//parser.nit:5293 */
17930 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
17931 if (UNTAG_Bool(REGB0)) {
17932 } else {
17933 nit_abort("Assert failed", NULL, LOCATE_parser, 5293);
17934 }
17935 /* ./parser//parser.nit:5295 */
17936 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
17937 if (UNTAG_Bool(REGB0)) {
17938 } else {
17939 nit_abort("Assert failed", NULL, LOCATE_parser, 5295);
17940 }
17941 /* ./parser//parser.nit:5297 */
17942 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
17943 if (UNTAG_Bool(REGB0)) {
17944 } else {
17945 nit_abort("Assert failed", NULL, LOCATE_parser, 5297);
17946 }
17947 /* ./parser//parser.nit:5299 */
17948 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
17949 if (UNTAG_Bool(REGB0)) {
17950 } else {
17951 nit_abort("Assert failed", NULL, LOCATE_parser, 5299);
17952 }
17953 /* ./parser//parser.nit:5300 */
17954 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);
17955 /* ./parser//parser.nit:5312 */
17956 fra.me.REG[2] = fra.me.REG[4];
17957 /* ./parser//parser.nit:5313 */
17958 REGB0 = TAG_Bool(ATTR_parser___ReduceAction119____goto(fra.me.REG[0])!=NIT_NULL);
17959 if (UNTAG_Bool(REGB0)) {
17960 } else {
17961 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5313);
17962 }
17963 REGB0 = ATTR_parser___ReduceAction119____goto(fra.me.REG[0]);
17964 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
17965 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
17966 stack_frame_head = fra.me.prev;
17967 return;
17968 }
17969 void parser___ReduceAction119___init(val_t p0, val_t p1, int* init_table){
17970 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction119].i;
17971 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17972 val_t REGB0;
17973 val_t tmp;
17974 if (init_table[itpos122]) return;
17975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17976 fra.me.file = LOCATE_parser;
17977 fra.me.line = 5316;
17978 fra.me.meth = LOCATE_parser___ReduceAction119___init;
17979 fra.me.has_broke = 0;
17980 fra.me.REG_size = 2;
17981 fra.me.REG[0] = NIT_NULL;
17982 fra.me.REG[1] = NIT_NULL;
17983 fra.me.REG[0] = p0;
17984 REGB0 = p1;
17985 /* ./parser//parser.nit:5316 */
17986 fra.me.REG[1] = fra.me.REG[0];
17987 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
17988 ATTR_parser___ReduceAction119____goto(fra.me.REG[1]) = REGB0;
17989 stack_frame_head = fra.me.prev;
17990 init_table[itpos122] = 1;
17991 return;
17992 }
17993 void parser___ReduceAction120___action(val_t p0, val_t p1){
17994 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
17995 val_t REGB0;
17996 val_t tmp;
17997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17998 fra.me.file = LOCATE_parser;
17999 fra.me.line = 5320;
18000 fra.me.meth = LOCATE_parser___ReduceAction120___action;
18001 fra.me.has_broke = 0;
18002 fra.me.REG_size = 10;
18003 fra.me.REG[0] = NIT_NULL;
18004 fra.me.REG[1] = NIT_NULL;
18005 fra.me.REG[2] = NIT_NULL;
18006 fra.me.REG[3] = NIT_NULL;
18007 fra.me.REG[4] = NIT_NULL;
18008 fra.me.REG[5] = NIT_NULL;
18009 fra.me.REG[6] = NIT_NULL;
18010 fra.me.REG[7] = NIT_NULL;
18011 fra.me.REG[8] = NIT_NULL;
18012 fra.me.REG[9] = NIT_NULL;
18013 fra.me.REG[0] = p0;
18014 fra.me.REG[1] = p1;
18015 /* ./parser//parser.nit:5322 */
18016 fra.me.REG[2] = NIT_NULL;
18017 /* ./parser//parser.nit:5323 */
18018 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18019 /* ./parser//parser.nit:5324 */
18020 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18021 /* ./parser//parser.nit:5325 */
18022 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18023 /* ./parser//parser.nit:5326 */
18024 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18025 /* ./parser//parser.nit:5327 */
18026 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18027 /* ./parser//parser.nit:5328 */
18028 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18029 /* ./parser//parser.nit:5329 */
18030 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18031 /* ./parser//parser.nit:5331 */
18032 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18033 if (UNTAG_Bool(REGB0)) {
18034 } else {
18035 nit_abort("Assert failed", NULL, LOCATE_parser, 5331);
18036 }
18037 /* ./parser//parser.nit:5333 */
18038 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18039 if (UNTAG_Bool(REGB0)) {
18040 } else {
18041 nit_abort("Assert failed", NULL, LOCATE_parser, 5333);
18042 }
18043 /* ./parser//parser.nit:5335 */
18044 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18045 if (UNTAG_Bool(REGB0)) {
18046 } else {
18047 nit_abort("Assert failed", NULL, LOCATE_parser, 5335);
18048 }
18049 /* ./parser//parser.nit:5337 */
18050 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18051 if (UNTAG_Bool(REGB0)) {
18052 } else {
18053 nit_abort("Assert failed", NULL, LOCATE_parser, 5337);
18054 }
18055 /* ./parser//parser.nit:5339 */
18056 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18057 if (UNTAG_Bool(REGB0)) {
18058 } else {
18059 nit_abort("Assert failed", NULL, LOCATE_parser, 5339);
18060 }
18061 /* ./parser//parser.nit:5341 */
18062 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18063 if (UNTAG_Bool(REGB0)) {
18064 } else {
18065 nit_abort("Assert failed", NULL, LOCATE_parser, 5341);
18066 }
18067 /* ./parser//parser.nit:5343 */
18068 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18069 if (UNTAG_Bool(REGB0)) {
18070 } else {
18071 nit_abort("Assert failed", NULL, LOCATE_parser, 5343);
18072 }
18073 /* ./parser//parser.nit:5344 */
18074 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);
18075 /* ./parser//parser.nit:5356 */
18076 fra.me.REG[2] = fra.me.REG[4];
18077 /* ./parser//parser.nit:5357 */
18078 REGB0 = TAG_Bool(ATTR_parser___ReduceAction120____goto(fra.me.REG[0])!=NIT_NULL);
18079 if (UNTAG_Bool(REGB0)) {
18080 } else {
18081 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5357);
18082 }
18083 REGB0 = ATTR_parser___ReduceAction120____goto(fra.me.REG[0]);
18084 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18085 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18086 stack_frame_head = fra.me.prev;
18087 return;
18088 }
18089 void parser___ReduceAction120___init(val_t p0, val_t p1, int* init_table){
18090 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction120].i;
18091 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18092 val_t REGB0;
18093 val_t tmp;
18094 if (init_table[itpos123]) return;
18095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18096 fra.me.file = LOCATE_parser;
18097 fra.me.line = 5360;
18098 fra.me.meth = LOCATE_parser___ReduceAction120___init;
18099 fra.me.has_broke = 0;
18100 fra.me.REG_size = 2;
18101 fra.me.REG[0] = NIT_NULL;
18102 fra.me.REG[1] = NIT_NULL;
18103 fra.me.REG[0] = p0;
18104 REGB0 = p1;
18105 /* ./parser//parser.nit:5360 */
18106 fra.me.REG[1] = fra.me.REG[0];
18107 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18108 ATTR_parser___ReduceAction120____goto(fra.me.REG[1]) = REGB0;
18109 stack_frame_head = fra.me.prev;
18110 init_table[itpos123] = 1;
18111 return;
18112 }
18113 void parser___ReduceAction121___action(val_t p0, val_t p1){
18114 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
18115 val_t REGB0;
18116 val_t tmp;
18117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18118 fra.me.file = LOCATE_parser;
18119 fra.me.line = 5364;
18120 fra.me.meth = LOCATE_parser___ReduceAction121___action;
18121 fra.me.has_broke = 0;
18122 fra.me.REG_size = 8;
18123 fra.me.REG[0] = NIT_NULL;
18124 fra.me.REG[1] = NIT_NULL;
18125 fra.me.REG[2] = NIT_NULL;
18126 fra.me.REG[3] = NIT_NULL;
18127 fra.me.REG[4] = NIT_NULL;
18128 fra.me.REG[5] = NIT_NULL;
18129 fra.me.REG[6] = NIT_NULL;
18130 fra.me.REG[7] = NIT_NULL;
18131 fra.me.REG[0] = p0;
18132 fra.me.REG[1] = p1;
18133 /* ./parser//parser.nit:5366 */
18134 fra.me.REG[2] = NIT_NULL;
18135 /* ./parser//parser.nit:5367 */
18136 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18137 /* ./parser//parser.nit:5368 */
18138 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18139 /* ./parser//parser.nit:5369 */
18140 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18141 /* ./parser//parser.nit:5370 */
18142 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18143 /* ./parser//parser.nit:5371 */
18144 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18145 /* ./parser//parser.nit:5372 */
18146 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18147 /* ./parser//parser.nit:5373 */
18148 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18149 /* ./parser//parser.nit:5375 */
18150 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18151 if (UNTAG_Bool(REGB0)) {
18152 } else {
18153 nit_abort("Assert failed", NULL, LOCATE_parser, 5375);
18154 }
18155 /* ./parser//parser.nit:5377 */
18156 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18157 if (UNTAG_Bool(REGB0)) {
18158 } else {
18159 nit_abort("Assert failed", NULL, LOCATE_parser, 5377);
18160 }
18161 /* ./parser//parser.nit:5379 */
18162 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18163 if (UNTAG_Bool(REGB0)) {
18164 } else {
18165 nit_abort("Assert failed", NULL, LOCATE_parser, 5379);
18166 }
18167 /* ./parser//parser.nit:5381 */
18168 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18169 if (UNTAG_Bool(REGB0)) {
18170 } else {
18171 nit_abort("Assert failed", NULL, LOCATE_parser, 5381);
18172 }
18173 /* ./parser//parser.nit:5383 */
18174 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18175 if (UNTAG_Bool(REGB0)) {
18176 } else {
18177 nit_abort("Assert failed", NULL, LOCATE_parser, 5383);
18178 }
18179 /* ./parser//parser.nit:5384 */
18180 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]);
18181 /* ./parser//parser.nit:5396 */
18182 fra.me.REG[2] = fra.me.REG[3];
18183 /* ./parser//parser.nit:5397 */
18184 REGB0 = TAG_Bool(ATTR_parser___ReduceAction121____goto(fra.me.REG[0])!=NIT_NULL);
18185 if (UNTAG_Bool(REGB0)) {
18186 } else {
18187 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5397);
18188 }
18189 REGB0 = ATTR_parser___ReduceAction121____goto(fra.me.REG[0]);
18190 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18191 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18192 stack_frame_head = fra.me.prev;
18193 return;
18194 }
18195 void parser___ReduceAction121___init(val_t p0, val_t p1, int* init_table){
18196 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction121].i;
18197 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18198 val_t REGB0;
18199 val_t tmp;
18200 if (init_table[itpos124]) return;
18201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18202 fra.me.file = LOCATE_parser;
18203 fra.me.line = 5400;
18204 fra.me.meth = LOCATE_parser___ReduceAction121___init;
18205 fra.me.has_broke = 0;
18206 fra.me.REG_size = 2;
18207 fra.me.REG[0] = NIT_NULL;
18208 fra.me.REG[1] = NIT_NULL;
18209 fra.me.REG[0] = p0;
18210 REGB0 = p1;
18211 /* ./parser//parser.nit:5400 */
18212 fra.me.REG[1] = fra.me.REG[0];
18213 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18214 ATTR_parser___ReduceAction121____goto(fra.me.REG[1]) = REGB0;
18215 stack_frame_head = fra.me.prev;
18216 init_table[itpos124] = 1;
18217 return;
18218 }
18219 void parser___ReduceAction122___action(val_t p0, val_t p1){
18220 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
18221 val_t REGB0;
18222 val_t tmp;
18223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18224 fra.me.file = LOCATE_parser;
18225 fra.me.line = 5404;
18226 fra.me.meth = LOCATE_parser___ReduceAction122___action;
18227 fra.me.has_broke = 0;
18228 fra.me.REG_size = 9;
18229 fra.me.REG[0] = NIT_NULL;
18230 fra.me.REG[1] = NIT_NULL;
18231 fra.me.REG[2] = NIT_NULL;
18232 fra.me.REG[3] = NIT_NULL;
18233 fra.me.REG[4] = NIT_NULL;
18234 fra.me.REG[5] = NIT_NULL;
18235 fra.me.REG[6] = NIT_NULL;
18236 fra.me.REG[7] = NIT_NULL;
18237 fra.me.REG[8] = NIT_NULL;
18238 fra.me.REG[0] = p0;
18239 fra.me.REG[1] = p1;
18240 /* ./parser//parser.nit:5406 */
18241 fra.me.REG[2] = NIT_NULL;
18242 /* ./parser//parser.nit:5407 */
18243 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18244 /* ./parser//parser.nit:5408 */
18245 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18246 /* ./parser//parser.nit:5409 */
18247 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18248 /* ./parser//parser.nit:5410 */
18249 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18250 /* ./parser//parser.nit:5411 */
18251 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18252 /* ./parser//parser.nit:5412 */
18253 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18254 /* ./parser//parser.nit:5413 */
18255 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18256 /* ./parser//parser.nit:5414 */
18257 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18258 /* ./parser//parser.nit:5416 */
18259 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18260 if (UNTAG_Bool(REGB0)) {
18261 } else {
18262 nit_abort("Assert failed", NULL, LOCATE_parser, 5416);
18263 }
18264 /* ./parser//parser.nit:5418 */
18265 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18266 if (UNTAG_Bool(REGB0)) {
18267 } else {
18268 nit_abort("Assert failed", NULL, LOCATE_parser, 5418);
18269 }
18270 /* ./parser//parser.nit:5420 */
18271 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18272 if (UNTAG_Bool(REGB0)) {
18273 } else {
18274 nit_abort("Assert failed", NULL, LOCATE_parser, 5420);
18275 }
18276 /* ./parser//parser.nit:5422 */
18277 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18278 if (UNTAG_Bool(REGB0)) {
18279 } else {
18280 nit_abort("Assert failed", NULL, LOCATE_parser, 5422);
18281 }
18282 /* ./parser//parser.nit:5424 */
18283 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18284 if (UNTAG_Bool(REGB0)) {
18285 } else {
18286 nit_abort("Assert failed", NULL, LOCATE_parser, 5424);
18287 }
18288 /* ./parser//parser.nit:5426 */
18289 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18290 if (UNTAG_Bool(REGB0)) {
18291 } else {
18292 nit_abort("Assert failed", NULL, LOCATE_parser, 5426);
18293 }
18294 /* ./parser//parser.nit:5427 */
18295 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]);
18296 /* ./parser//parser.nit:5439 */
18297 fra.me.REG[2] = fra.me.REG[3];
18298 /* ./parser//parser.nit:5440 */
18299 REGB0 = TAG_Bool(ATTR_parser___ReduceAction122____goto(fra.me.REG[0])!=NIT_NULL);
18300 if (UNTAG_Bool(REGB0)) {
18301 } else {
18302 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5440);
18303 }
18304 REGB0 = ATTR_parser___ReduceAction122____goto(fra.me.REG[0]);
18305 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18306 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18307 stack_frame_head = fra.me.prev;
18308 return;
18309 }
18310 void parser___ReduceAction122___init(val_t p0, val_t p1, int* init_table){
18311 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction122].i;
18312 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18313 val_t REGB0;
18314 val_t tmp;
18315 if (init_table[itpos125]) return;
18316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18317 fra.me.file = LOCATE_parser;
18318 fra.me.line = 5443;
18319 fra.me.meth = LOCATE_parser___ReduceAction122___init;
18320 fra.me.has_broke = 0;
18321 fra.me.REG_size = 2;
18322 fra.me.REG[0] = NIT_NULL;
18323 fra.me.REG[1] = NIT_NULL;
18324 fra.me.REG[0] = p0;
18325 REGB0 = p1;
18326 /* ./parser//parser.nit:5443 */
18327 fra.me.REG[1] = fra.me.REG[0];
18328 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18329 ATTR_parser___ReduceAction122____goto(fra.me.REG[1]) = REGB0;
18330 stack_frame_head = fra.me.prev;
18331 init_table[itpos125] = 1;
18332 return;
18333 }
18334 void parser___ReduceAction123___action(val_t p0, val_t p1){
18335 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
18336 val_t REGB0;
18337 val_t tmp;
18338 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18339 fra.me.file = LOCATE_parser;
18340 fra.me.line = 5447;
18341 fra.me.meth = LOCATE_parser___ReduceAction123___action;
18342 fra.me.has_broke = 0;
18343 fra.me.REG_size = 9;
18344 fra.me.REG[0] = NIT_NULL;
18345 fra.me.REG[1] = NIT_NULL;
18346 fra.me.REG[2] = NIT_NULL;
18347 fra.me.REG[3] = NIT_NULL;
18348 fra.me.REG[4] = NIT_NULL;
18349 fra.me.REG[5] = NIT_NULL;
18350 fra.me.REG[6] = NIT_NULL;
18351 fra.me.REG[7] = NIT_NULL;
18352 fra.me.REG[8] = NIT_NULL;
18353 fra.me.REG[0] = p0;
18354 fra.me.REG[1] = p1;
18355 /* ./parser//parser.nit:5449 */
18356 fra.me.REG[2] = NIT_NULL;
18357 /* ./parser//parser.nit:5450 */
18358 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18359 /* ./parser//parser.nit:5451 */
18360 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18361 /* ./parser//parser.nit:5452 */
18362 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18363 /* ./parser//parser.nit:5453 */
18364 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18365 /* ./parser//parser.nit:5454 */
18366 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18367 /* ./parser//parser.nit:5455 */
18368 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18369 /* ./parser//parser.nit:5456 */
18370 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18371 /* ./parser//parser.nit:5457 */
18372 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18373 /* ./parser//parser.nit:5459 */
18374 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18375 if (UNTAG_Bool(REGB0)) {
18376 } else {
18377 nit_abort("Assert failed", NULL, LOCATE_parser, 5459);
18378 }
18379 /* ./parser//parser.nit:5461 */
18380 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18381 if (UNTAG_Bool(REGB0)) {
18382 } else {
18383 nit_abort("Assert failed", NULL, LOCATE_parser, 5461);
18384 }
18385 /* ./parser//parser.nit:5463 */
18386 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18387 if (UNTAG_Bool(REGB0)) {
18388 } else {
18389 nit_abort("Assert failed", NULL, LOCATE_parser, 5463);
18390 }
18391 /* ./parser//parser.nit:5465 */
18392 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18393 if (UNTAG_Bool(REGB0)) {
18394 } else {
18395 nit_abort("Assert failed", NULL, LOCATE_parser, 5465);
18396 }
18397 /* ./parser//parser.nit:5467 */
18398 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18399 if (UNTAG_Bool(REGB0)) {
18400 } else {
18401 nit_abort("Assert failed", NULL, LOCATE_parser, 5467);
18402 }
18403 /* ./parser//parser.nit:5469 */
18404 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18405 if (UNTAG_Bool(REGB0)) {
18406 } else {
18407 nit_abort("Assert failed", NULL, LOCATE_parser, 5469);
18408 }
18409 /* ./parser//parser.nit:5470 */
18410 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]);
18411 /* ./parser//parser.nit:5482 */
18412 fra.me.REG[2] = fra.me.REG[3];
18413 /* ./parser//parser.nit:5483 */
18414 REGB0 = TAG_Bool(ATTR_parser___ReduceAction123____goto(fra.me.REG[0])!=NIT_NULL);
18415 if (UNTAG_Bool(REGB0)) {
18416 } else {
18417 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5483);
18418 }
18419 REGB0 = ATTR_parser___ReduceAction123____goto(fra.me.REG[0]);
18420 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18421 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18422 stack_frame_head = fra.me.prev;
18423 return;
18424 }
18425 void parser___ReduceAction123___init(val_t p0, val_t p1, int* init_table){
18426 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction123].i;
18427 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18428 val_t REGB0;
18429 val_t tmp;
18430 if (init_table[itpos126]) return;
18431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18432 fra.me.file = LOCATE_parser;
18433 fra.me.line = 5486;
18434 fra.me.meth = LOCATE_parser___ReduceAction123___init;
18435 fra.me.has_broke = 0;
18436 fra.me.REG_size = 2;
18437 fra.me.REG[0] = NIT_NULL;
18438 fra.me.REG[1] = NIT_NULL;
18439 fra.me.REG[0] = p0;
18440 REGB0 = p1;
18441 /* ./parser//parser.nit:5486 */
18442 fra.me.REG[1] = fra.me.REG[0];
18443 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18444 ATTR_parser___ReduceAction123____goto(fra.me.REG[1]) = REGB0;
18445 stack_frame_head = fra.me.prev;
18446 init_table[itpos126] = 1;
18447 return;
18448 }
18449 void parser___ReduceAction124___action(val_t p0, val_t p1){
18450 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
18451 val_t REGB0;
18452 val_t tmp;
18453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18454 fra.me.file = LOCATE_parser;
18455 fra.me.line = 5490;
18456 fra.me.meth = LOCATE_parser___ReduceAction124___action;
18457 fra.me.has_broke = 0;
18458 fra.me.REG_size = 10;
18459 fra.me.REG[0] = NIT_NULL;
18460 fra.me.REG[1] = NIT_NULL;
18461 fra.me.REG[2] = NIT_NULL;
18462 fra.me.REG[3] = NIT_NULL;
18463 fra.me.REG[4] = NIT_NULL;
18464 fra.me.REG[5] = NIT_NULL;
18465 fra.me.REG[6] = NIT_NULL;
18466 fra.me.REG[7] = NIT_NULL;
18467 fra.me.REG[8] = NIT_NULL;
18468 fra.me.REG[9] = NIT_NULL;
18469 fra.me.REG[0] = p0;
18470 fra.me.REG[1] = p1;
18471 /* ./parser//parser.nit:5492 */
18472 fra.me.REG[2] = NIT_NULL;
18473 /* ./parser//parser.nit:5493 */
18474 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18475 /* ./parser//parser.nit:5494 */
18476 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18477 /* ./parser//parser.nit:5495 */
18478 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18479 /* ./parser//parser.nit:5496 */
18480 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18481 /* ./parser//parser.nit:5497 */
18482 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18483 /* ./parser//parser.nit:5498 */
18484 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18485 /* ./parser//parser.nit:5499 */
18486 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18487 /* ./parser//parser.nit:5500 */
18488 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18489 /* ./parser//parser.nit:5501 */
18490 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18491 /* ./parser//parser.nit:5503 */
18492 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18493 if (UNTAG_Bool(REGB0)) {
18494 } else {
18495 nit_abort("Assert failed", NULL, LOCATE_parser, 5503);
18496 }
18497 /* ./parser//parser.nit:5505 */
18498 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18499 if (UNTAG_Bool(REGB0)) {
18500 } else {
18501 nit_abort("Assert failed", NULL, LOCATE_parser, 5505);
18502 }
18503 /* ./parser//parser.nit:5507 */
18504 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18505 if (UNTAG_Bool(REGB0)) {
18506 } else {
18507 nit_abort("Assert failed", NULL, LOCATE_parser, 5507);
18508 }
18509 /* ./parser//parser.nit:5509 */
18510 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18511 if (UNTAG_Bool(REGB0)) {
18512 } else {
18513 nit_abort("Assert failed", NULL, LOCATE_parser, 5509);
18514 }
18515 /* ./parser//parser.nit:5511 */
18516 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18517 if (UNTAG_Bool(REGB0)) {
18518 } else {
18519 nit_abort("Assert failed", NULL, LOCATE_parser, 5511);
18520 }
18521 /* ./parser//parser.nit:5513 */
18522 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18523 if (UNTAG_Bool(REGB0)) {
18524 } else {
18525 nit_abort("Assert failed", NULL, LOCATE_parser, 5513);
18526 }
18527 /* ./parser//parser.nit:5515 */
18528 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18529 if (UNTAG_Bool(REGB0)) {
18530 } else {
18531 nit_abort("Assert failed", NULL, LOCATE_parser, 5515);
18532 }
18533 /* ./parser//parser.nit:5516 */
18534 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]);
18535 /* ./parser//parser.nit:5528 */
18536 fra.me.REG[2] = fra.me.REG[3];
18537 /* ./parser//parser.nit:5529 */
18538 REGB0 = TAG_Bool(ATTR_parser___ReduceAction124____goto(fra.me.REG[0])!=NIT_NULL);
18539 if (UNTAG_Bool(REGB0)) {
18540 } else {
18541 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5529);
18542 }
18543 REGB0 = ATTR_parser___ReduceAction124____goto(fra.me.REG[0]);
18544 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18545 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18546 stack_frame_head = fra.me.prev;
18547 return;
18548 }
18549 void parser___ReduceAction124___init(val_t p0, val_t p1, int* init_table){
18550 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction124].i;
18551 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18552 val_t REGB0;
18553 val_t tmp;
18554 if (init_table[itpos127]) return;
18555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18556 fra.me.file = LOCATE_parser;
18557 fra.me.line = 5532;
18558 fra.me.meth = LOCATE_parser___ReduceAction124___init;
18559 fra.me.has_broke = 0;
18560 fra.me.REG_size = 2;
18561 fra.me.REG[0] = NIT_NULL;
18562 fra.me.REG[1] = NIT_NULL;
18563 fra.me.REG[0] = p0;
18564 REGB0 = p1;
18565 /* ./parser//parser.nit:5532 */
18566 fra.me.REG[1] = fra.me.REG[0];
18567 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18568 ATTR_parser___ReduceAction124____goto(fra.me.REG[1]) = REGB0;
18569 stack_frame_head = fra.me.prev;
18570 init_table[itpos127] = 1;
18571 return;
18572 }
18573 void parser___ReduceAction125___action(val_t p0, val_t p1){
18574 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
18575 val_t REGB0;
18576 val_t tmp;
18577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18578 fra.me.file = LOCATE_parser;
18579 fra.me.line = 5536;
18580 fra.me.meth = LOCATE_parser___ReduceAction125___action;
18581 fra.me.has_broke = 0;
18582 fra.me.REG_size = 9;
18583 fra.me.REG[0] = NIT_NULL;
18584 fra.me.REG[1] = NIT_NULL;
18585 fra.me.REG[2] = NIT_NULL;
18586 fra.me.REG[3] = NIT_NULL;
18587 fra.me.REG[4] = NIT_NULL;
18588 fra.me.REG[5] = NIT_NULL;
18589 fra.me.REG[6] = NIT_NULL;
18590 fra.me.REG[7] = NIT_NULL;
18591 fra.me.REG[8] = NIT_NULL;
18592 fra.me.REG[0] = p0;
18593 fra.me.REG[1] = p1;
18594 /* ./parser//parser.nit:5538 */
18595 fra.me.REG[2] = NIT_NULL;
18596 /* ./parser//parser.nit:5539 */
18597 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18598 /* ./parser//parser.nit:5540 */
18599 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18600 /* ./parser//parser.nit:5541 */
18601 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18602 /* ./parser//parser.nit:5542 */
18603 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18604 /* ./parser//parser.nit:5543 */
18605 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18606 /* ./parser//parser.nit:5544 */
18607 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18608 /* ./parser//parser.nit:5545 */
18609 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18610 /* ./parser//parser.nit:5546 */
18611 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18612 /* ./parser//parser.nit:5548 */
18613 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18614 if (UNTAG_Bool(REGB0)) {
18615 } else {
18616 nit_abort("Assert failed", NULL, LOCATE_parser, 5548);
18617 }
18618 /* ./parser//parser.nit:5550 */
18619 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18620 if (UNTAG_Bool(REGB0)) {
18621 } else {
18622 nit_abort("Assert failed", NULL, LOCATE_parser, 5550);
18623 }
18624 /* ./parser//parser.nit:5552 */
18625 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18626 if (UNTAG_Bool(REGB0)) {
18627 } else {
18628 nit_abort("Assert failed", NULL, LOCATE_parser, 5552);
18629 }
18630 /* ./parser//parser.nit:5554 */
18631 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18632 if (UNTAG_Bool(REGB0)) {
18633 } else {
18634 nit_abort("Assert failed", NULL, LOCATE_parser, 5554);
18635 }
18636 /* ./parser//parser.nit:5556 */
18637 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18638 if (UNTAG_Bool(REGB0)) {
18639 } else {
18640 nit_abort("Assert failed", NULL, LOCATE_parser, 5556);
18641 }
18642 /* ./parser//parser.nit:5558 */
18643 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18644 if (UNTAG_Bool(REGB0)) {
18645 } else {
18646 nit_abort("Assert failed", NULL, LOCATE_parser, 5558);
18647 }
18648 /* ./parser//parser.nit:5559 */
18649 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]);
18650 /* ./parser//parser.nit:5571 */
18651 fra.me.REG[2] = fra.me.REG[3];
18652 /* ./parser//parser.nit:5572 */
18653 REGB0 = TAG_Bool(ATTR_parser___ReduceAction125____goto(fra.me.REG[0])!=NIT_NULL);
18654 if (UNTAG_Bool(REGB0)) {
18655 } else {
18656 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5572);
18657 }
18658 REGB0 = ATTR_parser___ReduceAction125____goto(fra.me.REG[0]);
18659 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18660 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18661 stack_frame_head = fra.me.prev;
18662 return;
18663 }
18664 void parser___ReduceAction125___init(val_t p0, val_t p1, int* init_table){
18665 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction125].i;
18666 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18667 val_t REGB0;
18668 val_t tmp;
18669 if (init_table[itpos128]) return;
18670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18671 fra.me.file = LOCATE_parser;
18672 fra.me.line = 5575;
18673 fra.me.meth = LOCATE_parser___ReduceAction125___init;
18674 fra.me.has_broke = 0;
18675 fra.me.REG_size = 2;
18676 fra.me.REG[0] = NIT_NULL;
18677 fra.me.REG[1] = NIT_NULL;
18678 fra.me.REG[0] = p0;
18679 REGB0 = p1;
18680 /* ./parser//parser.nit:5575 */
18681 fra.me.REG[1] = fra.me.REG[0];
18682 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18683 ATTR_parser___ReduceAction125____goto(fra.me.REG[1]) = REGB0;
18684 stack_frame_head = fra.me.prev;
18685 init_table[itpos128] = 1;
18686 return;
18687 }
18688 void parser___ReduceAction126___action(val_t p0, val_t p1){
18689 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
18690 val_t REGB0;
18691 val_t tmp;
18692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18693 fra.me.file = LOCATE_parser;
18694 fra.me.line = 5579;
18695 fra.me.meth = LOCATE_parser___ReduceAction126___action;
18696 fra.me.has_broke = 0;
18697 fra.me.REG_size = 10;
18698 fra.me.REG[0] = NIT_NULL;
18699 fra.me.REG[1] = NIT_NULL;
18700 fra.me.REG[2] = NIT_NULL;
18701 fra.me.REG[3] = NIT_NULL;
18702 fra.me.REG[4] = NIT_NULL;
18703 fra.me.REG[5] = NIT_NULL;
18704 fra.me.REG[6] = NIT_NULL;
18705 fra.me.REG[7] = NIT_NULL;
18706 fra.me.REG[8] = NIT_NULL;
18707 fra.me.REG[9] = NIT_NULL;
18708 fra.me.REG[0] = p0;
18709 fra.me.REG[1] = p1;
18710 /* ./parser//parser.nit:5581 */
18711 fra.me.REG[2] = NIT_NULL;
18712 /* ./parser//parser.nit:5582 */
18713 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18714 /* ./parser//parser.nit:5583 */
18715 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18716 /* ./parser//parser.nit:5584 */
18717 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18718 /* ./parser//parser.nit:5585 */
18719 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18720 /* ./parser//parser.nit:5586 */
18721 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18722 /* ./parser//parser.nit:5587 */
18723 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18724 /* ./parser//parser.nit:5588 */
18725 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18726 /* ./parser//parser.nit:5589 */
18727 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18728 /* ./parser//parser.nit:5590 */
18729 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18730 /* ./parser//parser.nit:5592 */
18731 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18732 if (UNTAG_Bool(REGB0)) {
18733 } else {
18734 nit_abort("Assert failed", NULL, LOCATE_parser, 5592);
18735 }
18736 /* ./parser//parser.nit:5594 */
18737 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18738 if (UNTAG_Bool(REGB0)) {
18739 } else {
18740 nit_abort("Assert failed", NULL, LOCATE_parser, 5594);
18741 }
18742 /* ./parser//parser.nit:5596 */
18743 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18744 if (UNTAG_Bool(REGB0)) {
18745 } else {
18746 nit_abort("Assert failed", NULL, LOCATE_parser, 5596);
18747 }
18748 /* ./parser//parser.nit:5598 */
18749 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18750 if (UNTAG_Bool(REGB0)) {
18751 } else {
18752 nit_abort("Assert failed", NULL, LOCATE_parser, 5598);
18753 }
18754 /* ./parser//parser.nit:5600 */
18755 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18756 if (UNTAG_Bool(REGB0)) {
18757 } else {
18758 nit_abort("Assert failed", NULL, LOCATE_parser, 5600);
18759 }
18760 /* ./parser//parser.nit:5602 */
18761 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18762 if (UNTAG_Bool(REGB0)) {
18763 } else {
18764 nit_abort("Assert failed", NULL, LOCATE_parser, 5602);
18765 }
18766 /* ./parser//parser.nit:5604 */
18767 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18768 if (UNTAG_Bool(REGB0)) {
18769 } else {
18770 nit_abort("Assert failed", NULL, LOCATE_parser, 5604);
18771 }
18772 /* ./parser//parser.nit:5605 */
18773 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]);
18774 /* ./parser//parser.nit:5617 */
18775 fra.me.REG[2] = fra.me.REG[3];
18776 /* ./parser//parser.nit:5618 */
18777 REGB0 = TAG_Bool(ATTR_parser___ReduceAction126____goto(fra.me.REG[0])!=NIT_NULL);
18778 if (UNTAG_Bool(REGB0)) {
18779 } else {
18780 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5618);
18781 }
18782 REGB0 = ATTR_parser___ReduceAction126____goto(fra.me.REG[0]);
18783 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18784 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18785 stack_frame_head = fra.me.prev;
18786 return;
18787 }
18788 void parser___ReduceAction126___init(val_t p0, val_t p1, int* init_table){
18789 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction126].i;
18790 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18791 val_t REGB0;
18792 val_t tmp;
18793 if (init_table[itpos129]) return;
18794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18795 fra.me.file = LOCATE_parser;
18796 fra.me.line = 5621;
18797 fra.me.meth = LOCATE_parser___ReduceAction126___init;
18798 fra.me.has_broke = 0;
18799 fra.me.REG_size = 2;
18800 fra.me.REG[0] = NIT_NULL;
18801 fra.me.REG[1] = NIT_NULL;
18802 fra.me.REG[0] = p0;
18803 REGB0 = p1;
18804 /* ./parser//parser.nit:5621 */
18805 fra.me.REG[1] = fra.me.REG[0];
18806 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18807 ATTR_parser___ReduceAction126____goto(fra.me.REG[1]) = REGB0;
18808 stack_frame_head = fra.me.prev;
18809 init_table[itpos129] = 1;
18810 return;
18811 }
18812 void parser___ReduceAction127___action(val_t p0, val_t p1){
18813 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
18814 val_t REGB0;
18815 val_t tmp;
18816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18817 fra.me.file = LOCATE_parser;
18818 fra.me.line = 5625;
18819 fra.me.meth = LOCATE_parser___ReduceAction127___action;
18820 fra.me.has_broke = 0;
18821 fra.me.REG_size = 10;
18822 fra.me.REG[0] = NIT_NULL;
18823 fra.me.REG[1] = NIT_NULL;
18824 fra.me.REG[2] = NIT_NULL;
18825 fra.me.REG[3] = NIT_NULL;
18826 fra.me.REG[4] = NIT_NULL;
18827 fra.me.REG[5] = NIT_NULL;
18828 fra.me.REG[6] = NIT_NULL;
18829 fra.me.REG[7] = NIT_NULL;
18830 fra.me.REG[8] = NIT_NULL;
18831 fra.me.REG[9] = NIT_NULL;
18832 fra.me.REG[0] = p0;
18833 fra.me.REG[1] = p1;
18834 /* ./parser//parser.nit:5627 */
18835 fra.me.REG[2] = NIT_NULL;
18836 /* ./parser//parser.nit:5628 */
18837 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18838 /* ./parser//parser.nit:5629 */
18839 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18840 /* ./parser//parser.nit:5630 */
18841 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18842 /* ./parser//parser.nit:5631 */
18843 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18844 /* ./parser//parser.nit:5632 */
18845 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18846 /* ./parser//parser.nit:5633 */
18847 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18848 /* ./parser//parser.nit:5634 */
18849 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18850 /* ./parser//parser.nit:5635 */
18851 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18852 /* ./parser//parser.nit:5636 */
18853 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18854 /* ./parser//parser.nit:5638 */
18855 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18856 if (UNTAG_Bool(REGB0)) {
18857 } else {
18858 nit_abort("Assert failed", NULL, LOCATE_parser, 5638);
18859 }
18860 /* ./parser//parser.nit:5640 */
18861 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18862 if (UNTAG_Bool(REGB0)) {
18863 } else {
18864 nit_abort("Assert failed", NULL, LOCATE_parser, 5640);
18865 }
18866 /* ./parser//parser.nit:5642 */
18867 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
18868 if (UNTAG_Bool(REGB0)) {
18869 } else {
18870 nit_abort("Assert failed", NULL, LOCATE_parser, 5642);
18871 }
18872 /* ./parser//parser.nit:5644 */
18873 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
18874 if (UNTAG_Bool(REGB0)) {
18875 } else {
18876 nit_abort("Assert failed", NULL, LOCATE_parser, 5644);
18877 }
18878 /* ./parser//parser.nit:5646 */
18879 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
18880 if (UNTAG_Bool(REGB0)) {
18881 } else {
18882 nit_abort("Assert failed", NULL, LOCATE_parser, 5646);
18883 }
18884 /* ./parser//parser.nit:5648 */
18885 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
18886 if (UNTAG_Bool(REGB0)) {
18887 } else {
18888 nit_abort("Assert failed", NULL, LOCATE_parser, 5648);
18889 }
18890 /* ./parser//parser.nit:5650 */
18891 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
18892 if (UNTAG_Bool(REGB0)) {
18893 } else {
18894 nit_abort("Assert failed", NULL, LOCATE_parser, 5650);
18895 }
18896 /* ./parser//parser.nit:5651 */
18897 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]);
18898 /* ./parser//parser.nit:5663 */
18899 fra.me.REG[2] = fra.me.REG[3];
18900 /* ./parser//parser.nit:5664 */
18901 REGB0 = TAG_Bool(ATTR_parser___ReduceAction127____goto(fra.me.REG[0])!=NIT_NULL);
18902 if (UNTAG_Bool(REGB0)) {
18903 } else {
18904 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5664);
18905 }
18906 REGB0 = ATTR_parser___ReduceAction127____goto(fra.me.REG[0]);
18907 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
18908 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
18909 stack_frame_head = fra.me.prev;
18910 return;
18911 }
18912 void parser___ReduceAction127___init(val_t p0, val_t p1, int* init_table){
18913 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction127].i;
18914 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18915 val_t REGB0;
18916 val_t tmp;
18917 if (init_table[itpos130]) return;
18918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18919 fra.me.file = LOCATE_parser;
18920 fra.me.line = 5667;
18921 fra.me.meth = LOCATE_parser___ReduceAction127___init;
18922 fra.me.has_broke = 0;
18923 fra.me.REG_size = 2;
18924 fra.me.REG[0] = NIT_NULL;
18925 fra.me.REG[1] = NIT_NULL;
18926 fra.me.REG[0] = p0;
18927 REGB0 = p1;
18928 /* ./parser//parser.nit:5667 */
18929 fra.me.REG[1] = fra.me.REG[0];
18930 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
18931 ATTR_parser___ReduceAction127____goto(fra.me.REG[1]) = REGB0;
18932 stack_frame_head = fra.me.prev;
18933 init_table[itpos130] = 1;
18934 return;
18935 }
18936 void parser___ReduceAction128___action(val_t p0, val_t p1){
18937 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
18938 val_t REGB0;
18939 val_t tmp;
18940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18941 fra.me.file = LOCATE_parser;
18942 fra.me.line = 5671;
18943 fra.me.meth = LOCATE_parser___ReduceAction128___action;
18944 fra.me.has_broke = 0;
18945 fra.me.REG_size = 11;
18946 fra.me.REG[0] = NIT_NULL;
18947 fra.me.REG[1] = NIT_NULL;
18948 fra.me.REG[2] = NIT_NULL;
18949 fra.me.REG[3] = NIT_NULL;
18950 fra.me.REG[4] = NIT_NULL;
18951 fra.me.REG[5] = NIT_NULL;
18952 fra.me.REG[6] = NIT_NULL;
18953 fra.me.REG[7] = NIT_NULL;
18954 fra.me.REG[8] = NIT_NULL;
18955 fra.me.REG[9] = NIT_NULL;
18956 fra.me.REG[10] = NIT_NULL;
18957 fra.me.REG[0] = p0;
18958 fra.me.REG[1] = p1;
18959 /* ./parser//parser.nit:5673 */
18960 fra.me.REG[2] = NIT_NULL;
18961 /* ./parser//parser.nit:5674 */
18962 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18963 /* ./parser//parser.nit:5675 */
18964 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18965 /* ./parser//parser.nit:5676 */
18966 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18967 /* ./parser//parser.nit:5677 */
18968 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18969 /* ./parser//parser.nit:5678 */
18970 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18971 /* ./parser//parser.nit:5679 */
18972 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18973 /* ./parser//parser.nit:5680 */
18974 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18975 /* ./parser//parser.nit:5681 */
18976 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18977 /* ./parser//parser.nit:5682 */
18978 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18979 /* ./parser//parser.nit:5683 */
18980 fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
18981 /* ./parser//parser.nit:5685 */
18982 REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
18983 if (UNTAG_Bool(REGB0)) {
18984 } else {
18985 nit_abort("Assert failed", NULL, LOCATE_parser, 5685);
18986 }
18987 /* ./parser//parser.nit:5687 */
18988 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAble, ID_AAble)) /*cast nullable AAble*/;
18989 if (UNTAG_Bool(REGB0)) {
18990 } else {
18991 nit_abort("Assert failed", NULL, LOCATE_parser, 5687);
18992 }
18993 /* ./parser//parser.nit:5689 */
18994 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
18995 if (UNTAG_Bool(REGB0)) {
18996 } else {
18997 nit_abort("Assert failed", NULL, LOCATE_parser, 5689);
18998 }
18999 /* ./parser//parser.nit:5691 */
19000 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19001 if (UNTAG_Bool(REGB0)) {
19002 } else {
19003 nit_abort("Assert failed", NULL, LOCATE_parser, 5691);
19004 }
19005 /* ./parser//parser.nit:5693 */
19006 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
19007 if (UNTAG_Bool(REGB0)) {
19008 } else {
19009 nit_abort("Assert failed", NULL, LOCATE_parser, 5693);
19010 }
19011 /* ./parser//parser.nit:5695 */
19012 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
19013 if (UNTAG_Bool(REGB0)) {
19014 } else {
19015 nit_abort("Assert failed", NULL, LOCATE_parser, 5695);
19016 }
19017 /* ./parser//parser.nit:5697 */
19018 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
19019 if (UNTAG_Bool(REGB0)) {
19020 } else {
19021 nit_abort("Assert failed", NULL, LOCATE_parser, 5697);
19022 }
19023 /* ./parser//parser.nit:5699 */
19024 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19025 if (UNTAG_Bool(REGB0)) {
19026 } else {
19027 nit_abort("Assert failed", NULL, LOCATE_parser, 5699);
19028 }
19029 /* ./parser//parser.nit:5700 */
19030 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]);
19031 /* ./parser//parser.nit:5712 */
19032 fra.me.REG[2] = fra.me.REG[3];
19033 /* ./parser//parser.nit:5713 */
19034 REGB0 = TAG_Bool(ATTR_parser___ReduceAction128____goto(fra.me.REG[0])!=NIT_NULL);
19035 if (UNTAG_Bool(REGB0)) {
19036 } else {
19037 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5713);
19038 }
19039 REGB0 = ATTR_parser___ReduceAction128____goto(fra.me.REG[0]);
19040 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19041 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19042 stack_frame_head = fra.me.prev;
19043 return;
19044 }
19045 void parser___ReduceAction128___init(val_t p0, val_t p1, int* init_table){
19046 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction128].i;
19047 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19048 val_t REGB0;
19049 val_t tmp;
19050 if (init_table[itpos131]) return;
19051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19052 fra.me.file = LOCATE_parser;
19053 fra.me.line = 5716;
19054 fra.me.meth = LOCATE_parser___ReduceAction128___init;
19055 fra.me.has_broke = 0;
19056 fra.me.REG_size = 2;
19057 fra.me.REG[0] = NIT_NULL;
19058 fra.me.REG[1] = NIT_NULL;
19059 fra.me.REG[0] = p0;
19060 REGB0 = p1;
19061 /* ./parser//parser.nit:5716 */
19062 fra.me.REG[1] = fra.me.REG[0];
19063 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19064 ATTR_parser___ReduceAction128____goto(fra.me.REG[1]) = REGB0;
19065 stack_frame_head = fra.me.prev;
19066 init_table[itpos131] = 1;
19067 return;
19068 }
19069 void parser___ReduceAction129___action(val_t p0, val_t p1){
19070 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19071 val_t REGB0;
19072 val_t tmp;
19073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19074 fra.me.file = LOCATE_parser;
19075 fra.me.line = 5720;
19076 fra.me.meth = LOCATE_parser___ReduceAction129___action;
19077 fra.me.has_broke = 0;
19078 fra.me.REG_size = 8;
19079 fra.me.REG[0] = NIT_NULL;
19080 fra.me.REG[1] = NIT_NULL;
19081 fra.me.REG[2] = NIT_NULL;
19082 fra.me.REG[3] = NIT_NULL;
19083 fra.me.REG[4] = NIT_NULL;
19084 fra.me.REG[5] = NIT_NULL;
19085 fra.me.REG[6] = NIT_NULL;
19086 fra.me.REG[7] = NIT_NULL;
19087 fra.me.REG[0] = p0;
19088 fra.me.REG[1] = p1;
19089 /* ./parser//parser.nit:5722 */
19090 fra.me.REG[2] = NIT_NULL;
19091 /* ./parser//parser.nit:5723 */
19092 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19093 /* ./parser//parser.nit:5724 */
19094 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19095 /* ./parser//parser.nit:5725 */
19096 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19097 /* ./parser//parser.nit:5726 */
19098 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19099 /* ./parser//parser.nit:5727 */
19100 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19101 /* ./parser//parser.nit:5728 */
19102 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19103 /* ./parser//parser.nit:5730 */
19104 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19105 if (UNTAG_Bool(REGB0)) {
19106 } else {
19107 nit_abort("Assert failed", NULL, LOCATE_parser, 5730);
19108 }
19109 /* ./parser//parser.nit:5732 */
19110 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19111 if (UNTAG_Bool(REGB0)) {
19112 } else {
19113 nit_abort("Assert failed", NULL, LOCATE_parser, 5732);
19114 }
19115 /* ./parser//parser.nit:5734 */
19116 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19117 if (UNTAG_Bool(REGB0)) {
19118 } else {
19119 nit_abort("Assert failed", NULL, LOCATE_parser, 5734);
19120 }
19121 /* ./parser//parser.nit:5736 */
19122 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19123 if (UNTAG_Bool(REGB0)) {
19124 } else {
19125 nit_abort("Assert failed", NULL, LOCATE_parser, 5736);
19126 }
19127 /* ./parser//parser.nit:5738 */
19128 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19129 if (UNTAG_Bool(REGB0)) {
19130 } else {
19131 nit_abort("Assert failed", NULL, LOCATE_parser, 5738);
19132 }
19133 /* ./parser//parser.nit:5739 */
19134 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]);
19135 /* ./parser//parser.nit:5748 */
19136 fra.me.REG[2] = fra.me.REG[3];
19137 /* ./parser//parser.nit:5749 */
19138 REGB0 = TAG_Bool(ATTR_parser___ReduceAction129____goto(fra.me.REG[0])!=NIT_NULL);
19139 if (UNTAG_Bool(REGB0)) {
19140 } else {
19141 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5749);
19142 }
19143 REGB0 = ATTR_parser___ReduceAction129____goto(fra.me.REG[0]);
19144 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19145 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19146 stack_frame_head = fra.me.prev;
19147 return;
19148 }
19149 void parser___ReduceAction129___init(val_t p0, val_t p1, int* init_table){
19150 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction129].i;
19151 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19152 val_t REGB0;
19153 val_t tmp;
19154 if (init_table[itpos132]) return;
19155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19156 fra.me.file = LOCATE_parser;
19157 fra.me.line = 5752;
19158 fra.me.meth = LOCATE_parser___ReduceAction129___init;
19159 fra.me.has_broke = 0;
19160 fra.me.REG_size = 2;
19161 fra.me.REG[0] = NIT_NULL;
19162 fra.me.REG[1] = NIT_NULL;
19163 fra.me.REG[0] = p0;
19164 REGB0 = p1;
19165 /* ./parser//parser.nit:5752 */
19166 fra.me.REG[1] = fra.me.REG[0];
19167 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19168 ATTR_parser___ReduceAction129____goto(fra.me.REG[1]) = REGB0;
19169 stack_frame_head = fra.me.prev;
19170 init_table[itpos132] = 1;
19171 return;
19172 }
19173 void parser___ReduceAction130___action(val_t p0, val_t p1){
19174 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19175 val_t REGB0;
19176 val_t tmp;
19177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19178 fra.me.file = LOCATE_parser;
19179 fra.me.line = 5756;
19180 fra.me.meth = LOCATE_parser___ReduceAction130___action;
19181 fra.me.has_broke = 0;
19182 fra.me.REG_size = 9;
19183 fra.me.REG[0] = NIT_NULL;
19184 fra.me.REG[1] = NIT_NULL;
19185 fra.me.REG[2] = NIT_NULL;
19186 fra.me.REG[3] = NIT_NULL;
19187 fra.me.REG[4] = NIT_NULL;
19188 fra.me.REG[5] = NIT_NULL;
19189 fra.me.REG[6] = NIT_NULL;
19190 fra.me.REG[7] = NIT_NULL;
19191 fra.me.REG[8] = NIT_NULL;
19192 fra.me.REG[0] = p0;
19193 fra.me.REG[1] = p1;
19194 /* ./parser//parser.nit:5758 */
19195 fra.me.REG[2] = NIT_NULL;
19196 /* ./parser//parser.nit:5759 */
19197 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19198 /* ./parser//parser.nit:5760 */
19199 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19200 /* ./parser//parser.nit:5761 */
19201 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19202 /* ./parser//parser.nit:5762 */
19203 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19204 /* ./parser//parser.nit:5763 */
19205 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19206 /* ./parser//parser.nit:5764 */
19207 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19208 /* ./parser//parser.nit:5765 */
19209 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19210 /* ./parser//parser.nit:5767 */
19211 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19212 if (UNTAG_Bool(REGB0)) {
19213 } else {
19214 nit_abort("Assert failed", NULL, LOCATE_parser, 5767);
19215 }
19216 /* ./parser//parser.nit:5769 */
19217 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19218 if (UNTAG_Bool(REGB0)) {
19219 } else {
19220 nit_abort("Assert failed", NULL, LOCATE_parser, 5769);
19221 }
19222 /* ./parser//parser.nit:5771 */
19223 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19224 if (UNTAG_Bool(REGB0)) {
19225 } else {
19226 nit_abort("Assert failed", NULL, LOCATE_parser, 5771);
19227 }
19228 /* ./parser//parser.nit:5773 */
19229 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19230 if (UNTAG_Bool(REGB0)) {
19231 } else {
19232 nit_abort("Assert failed", NULL, LOCATE_parser, 5773);
19233 }
19234 /* ./parser//parser.nit:5775 */
19235 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19236 if (UNTAG_Bool(REGB0)) {
19237 } else {
19238 nit_abort("Assert failed", NULL, LOCATE_parser, 5775);
19239 }
19240 /* ./parser//parser.nit:5777 */
19241 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19242 if (UNTAG_Bool(REGB0)) {
19243 } else {
19244 nit_abort("Assert failed", NULL, LOCATE_parser, 5777);
19245 }
19246 /* ./parser//parser.nit:5778 */
19247 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]);
19248 /* ./parser//parser.nit:5787 */
19249 fra.me.REG[2] = fra.me.REG[3];
19250 /* ./parser//parser.nit:5788 */
19251 REGB0 = TAG_Bool(ATTR_parser___ReduceAction130____goto(fra.me.REG[0])!=NIT_NULL);
19252 if (UNTAG_Bool(REGB0)) {
19253 } else {
19254 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5788);
19255 }
19256 REGB0 = ATTR_parser___ReduceAction130____goto(fra.me.REG[0]);
19257 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19258 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19259 stack_frame_head = fra.me.prev;
19260 return;
19261 }
19262 void parser___ReduceAction130___init(val_t p0, val_t p1, int* init_table){
19263 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction130].i;
19264 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19265 val_t REGB0;
19266 val_t tmp;
19267 if (init_table[itpos133]) return;
19268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19269 fra.me.file = LOCATE_parser;
19270 fra.me.line = 5791;
19271 fra.me.meth = LOCATE_parser___ReduceAction130___init;
19272 fra.me.has_broke = 0;
19273 fra.me.REG_size = 2;
19274 fra.me.REG[0] = NIT_NULL;
19275 fra.me.REG[1] = NIT_NULL;
19276 fra.me.REG[0] = p0;
19277 REGB0 = p1;
19278 /* ./parser//parser.nit:5791 */
19279 fra.me.REG[1] = fra.me.REG[0];
19280 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19281 ATTR_parser___ReduceAction130____goto(fra.me.REG[1]) = REGB0;
19282 stack_frame_head = fra.me.prev;
19283 init_table[itpos133] = 1;
19284 return;
19285 }
19286 void parser___ReduceAction131___action(val_t p0, val_t p1){
19287 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19288 val_t REGB0;
19289 val_t tmp;
19290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19291 fra.me.file = LOCATE_parser;
19292 fra.me.line = 5795;
19293 fra.me.meth = LOCATE_parser___ReduceAction131___action;
19294 fra.me.has_broke = 0;
19295 fra.me.REG_size = 9;
19296 fra.me.REG[0] = NIT_NULL;
19297 fra.me.REG[1] = NIT_NULL;
19298 fra.me.REG[2] = NIT_NULL;
19299 fra.me.REG[3] = NIT_NULL;
19300 fra.me.REG[4] = NIT_NULL;
19301 fra.me.REG[5] = NIT_NULL;
19302 fra.me.REG[6] = NIT_NULL;
19303 fra.me.REG[7] = NIT_NULL;
19304 fra.me.REG[8] = NIT_NULL;
19305 fra.me.REG[0] = p0;
19306 fra.me.REG[1] = p1;
19307 /* ./parser//parser.nit:5797 */
19308 fra.me.REG[2] = NIT_NULL;
19309 /* ./parser//parser.nit:5798 */
19310 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19311 /* ./parser//parser.nit:5799 */
19312 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19313 /* ./parser//parser.nit:5800 */
19314 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19315 /* ./parser//parser.nit:5801 */
19316 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19317 /* ./parser//parser.nit:5802 */
19318 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19319 /* ./parser//parser.nit:5803 */
19320 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19321 /* ./parser//parser.nit:5804 */
19322 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19323 /* ./parser//parser.nit:5806 */
19324 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19325 if (UNTAG_Bool(REGB0)) {
19326 } else {
19327 nit_abort("Assert failed", NULL, LOCATE_parser, 5806);
19328 }
19329 /* ./parser//parser.nit:5808 */
19330 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19331 if (UNTAG_Bool(REGB0)) {
19332 } else {
19333 nit_abort("Assert failed", NULL, LOCATE_parser, 5808);
19334 }
19335 /* ./parser//parser.nit:5810 */
19336 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19337 if (UNTAG_Bool(REGB0)) {
19338 } else {
19339 nit_abort("Assert failed", NULL, LOCATE_parser, 5810);
19340 }
19341 /* ./parser//parser.nit:5812 */
19342 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19343 if (UNTAG_Bool(REGB0)) {
19344 } else {
19345 nit_abort("Assert failed", NULL, LOCATE_parser, 5812);
19346 }
19347 /* ./parser//parser.nit:5814 */
19348 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19349 if (UNTAG_Bool(REGB0)) {
19350 } else {
19351 nit_abort("Assert failed", NULL, LOCATE_parser, 5814);
19352 }
19353 /* ./parser//parser.nit:5816 */
19354 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19355 if (UNTAG_Bool(REGB0)) {
19356 } else {
19357 nit_abort("Assert failed", NULL, LOCATE_parser, 5816);
19358 }
19359 /* ./parser//parser.nit:5817 */
19360 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]);
19361 /* ./parser//parser.nit:5826 */
19362 fra.me.REG[2] = fra.me.REG[3];
19363 /* ./parser//parser.nit:5827 */
19364 REGB0 = TAG_Bool(ATTR_parser___ReduceAction131____goto(fra.me.REG[0])!=NIT_NULL);
19365 if (UNTAG_Bool(REGB0)) {
19366 } else {
19367 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5827);
19368 }
19369 REGB0 = ATTR_parser___ReduceAction131____goto(fra.me.REG[0]);
19370 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19371 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19372 stack_frame_head = fra.me.prev;
19373 return;
19374 }
19375 void parser___ReduceAction131___init(val_t p0, val_t p1, int* init_table){
19376 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction131].i;
19377 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19378 val_t REGB0;
19379 val_t tmp;
19380 if (init_table[itpos134]) return;
19381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19382 fra.me.file = LOCATE_parser;
19383 fra.me.line = 5830;
19384 fra.me.meth = LOCATE_parser___ReduceAction131___init;
19385 fra.me.has_broke = 0;
19386 fra.me.REG_size = 2;
19387 fra.me.REG[0] = NIT_NULL;
19388 fra.me.REG[1] = NIT_NULL;
19389 fra.me.REG[0] = p0;
19390 REGB0 = p1;
19391 /* ./parser//parser.nit:5830 */
19392 fra.me.REG[1] = fra.me.REG[0];
19393 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19394 ATTR_parser___ReduceAction131____goto(fra.me.REG[1]) = REGB0;
19395 stack_frame_head = fra.me.prev;
19396 init_table[itpos134] = 1;
19397 return;
19398 }
19399 void parser___ReduceAction132___action(val_t p0, val_t p1){
19400 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
19401 val_t REGB0;
19402 val_t tmp;
19403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19404 fra.me.file = LOCATE_parser;
19405 fra.me.line = 5834;
19406 fra.me.meth = LOCATE_parser___ReduceAction132___action;
19407 fra.me.has_broke = 0;
19408 fra.me.REG_size = 10;
19409 fra.me.REG[0] = NIT_NULL;
19410 fra.me.REG[1] = NIT_NULL;
19411 fra.me.REG[2] = NIT_NULL;
19412 fra.me.REG[3] = NIT_NULL;
19413 fra.me.REG[4] = NIT_NULL;
19414 fra.me.REG[5] = NIT_NULL;
19415 fra.me.REG[6] = NIT_NULL;
19416 fra.me.REG[7] = NIT_NULL;
19417 fra.me.REG[8] = NIT_NULL;
19418 fra.me.REG[9] = NIT_NULL;
19419 fra.me.REG[0] = p0;
19420 fra.me.REG[1] = p1;
19421 /* ./parser//parser.nit:5836 */
19422 fra.me.REG[2] = NIT_NULL;
19423 /* ./parser//parser.nit:5837 */
19424 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19425 /* ./parser//parser.nit:5838 */
19426 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19427 /* ./parser//parser.nit:5839 */
19428 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19429 /* ./parser//parser.nit:5840 */
19430 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19431 /* ./parser//parser.nit:5841 */
19432 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19433 /* ./parser//parser.nit:5842 */
19434 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19435 /* ./parser//parser.nit:5843 */
19436 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19437 /* ./parser//parser.nit:5844 */
19438 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19439 /* ./parser//parser.nit:5846 */
19440 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19441 if (UNTAG_Bool(REGB0)) {
19442 } else {
19443 nit_abort("Assert failed", NULL, LOCATE_parser, 5846);
19444 }
19445 /* ./parser//parser.nit:5848 */
19446 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19447 if (UNTAG_Bool(REGB0)) {
19448 } else {
19449 nit_abort("Assert failed", NULL, LOCATE_parser, 5848);
19450 }
19451 /* ./parser//parser.nit:5850 */
19452 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19453 if (UNTAG_Bool(REGB0)) {
19454 } else {
19455 nit_abort("Assert failed", NULL, LOCATE_parser, 5850);
19456 }
19457 /* ./parser//parser.nit:5852 */
19458 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19459 if (UNTAG_Bool(REGB0)) {
19460 } else {
19461 nit_abort("Assert failed", NULL, LOCATE_parser, 5852);
19462 }
19463 /* ./parser//parser.nit:5854 */
19464 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19465 if (UNTAG_Bool(REGB0)) {
19466 } else {
19467 nit_abort("Assert failed", NULL, LOCATE_parser, 5854);
19468 }
19469 /* ./parser//parser.nit:5856 */
19470 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19471 if (UNTAG_Bool(REGB0)) {
19472 } else {
19473 nit_abort("Assert failed", NULL, LOCATE_parser, 5856);
19474 }
19475 /* ./parser//parser.nit:5858 */
19476 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19477 if (UNTAG_Bool(REGB0)) {
19478 } else {
19479 nit_abort("Assert failed", NULL, LOCATE_parser, 5858);
19480 }
19481 /* ./parser//parser.nit:5859 */
19482 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]);
19483 /* ./parser//parser.nit:5868 */
19484 fra.me.REG[2] = fra.me.REG[3];
19485 /* ./parser//parser.nit:5869 */
19486 REGB0 = TAG_Bool(ATTR_parser___ReduceAction132____goto(fra.me.REG[0])!=NIT_NULL);
19487 if (UNTAG_Bool(REGB0)) {
19488 } else {
19489 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5869);
19490 }
19491 REGB0 = ATTR_parser___ReduceAction132____goto(fra.me.REG[0]);
19492 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19493 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19494 stack_frame_head = fra.me.prev;
19495 return;
19496 }
19497 void parser___ReduceAction132___init(val_t p0, val_t p1, int* init_table){
19498 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction132].i;
19499 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19500 val_t REGB0;
19501 val_t tmp;
19502 if (init_table[itpos135]) return;
19503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19504 fra.me.file = LOCATE_parser;
19505 fra.me.line = 5872;
19506 fra.me.meth = LOCATE_parser___ReduceAction132___init;
19507 fra.me.has_broke = 0;
19508 fra.me.REG_size = 2;
19509 fra.me.REG[0] = NIT_NULL;
19510 fra.me.REG[1] = NIT_NULL;
19511 fra.me.REG[0] = p0;
19512 REGB0 = p1;
19513 /* ./parser//parser.nit:5872 */
19514 fra.me.REG[1] = fra.me.REG[0];
19515 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19516 ATTR_parser___ReduceAction132____goto(fra.me.REG[1]) = REGB0;
19517 stack_frame_head = fra.me.prev;
19518 init_table[itpos135] = 1;
19519 return;
19520 }
19521 void parser___ReduceAction133___action(val_t p0, val_t p1){
19522 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19523 val_t REGB0;
19524 val_t tmp;
19525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19526 fra.me.file = LOCATE_parser;
19527 fra.me.line = 5876;
19528 fra.me.meth = LOCATE_parser___ReduceAction133___action;
19529 fra.me.has_broke = 0;
19530 fra.me.REG_size = 8;
19531 fra.me.REG[0] = NIT_NULL;
19532 fra.me.REG[1] = NIT_NULL;
19533 fra.me.REG[2] = NIT_NULL;
19534 fra.me.REG[3] = NIT_NULL;
19535 fra.me.REG[4] = NIT_NULL;
19536 fra.me.REG[5] = NIT_NULL;
19537 fra.me.REG[6] = NIT_NULL;
19538 fra.me.REG[7] = NIT_NULL;
19539 fra.me.REG[0] = p0;
19540 fra.me.REG[1] = p1;
19541 /* ./parser//parser.nit:5878 */
19542 fra.me.REG[2] = NIT_NULL;
19543 /* ./parser//parser.nit:5879 */
19544 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19545 /* ./parser//parser.nit:5880 */
19546 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19547 /* ./parser//parser.nit:5881 */
19548 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19549 /* ./parser//parser.nit:5882 */
19550 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19551 /* ./parser//parser.nit:5883 */
19552 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19553 /* ./parser//parser.nit:5884 */
19554 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19555 /* ./parser//parser.nit:5885 */
19556 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19557 /* ./parser//parser.nit:5887 */
19558 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19559 if (UNTAG_Bool(REGB0)) {
19560 } else {
19561 nit_abort("Assert failed", NULL, LOCATE_parser, 5887);
19562 }
19563 /* ./parser//parser.nit:5889 */
19564 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19565 if (UNTAG_Bool(REGB0)) {
19566 } else {
19567 nit_abort("Assert failed", NULL, LOCATE_parser, 5889);
19568 }
19569 /* ./parser//parser.nit:5891 */
19570 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19571 if (UNTAG_Bool(REGB0)) {
19572 } else {
19573 nit_abort("Assert failed", NULL, LOCATE_parser, 5891);
19574 }
19575 /* ./parser//parser.nit:5893 */
19576 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19577 if (UNTAG_Bool(REGB0)) {
19578 } else {
19579 nit_abort("Assert failed", NULL, LOCATE_parser, 5893);
19580 }
19581 /* ./parser//parser.nit:5895 */
19582 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19583 if (UNTAG_Bool(REGB0)) {
19584 } else {
19585 nit_abort("Assert failed", NULL, LOCATE_parser, 5895);
19586 }
19587 /* ./parser//parser.nit:5896 */
19588 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]);
19589 /* ./parser//parser.nit:5905 */
19590 fra.me.REG[2] = fra.me.REG[3];
19591 /* ./parser//parser.nit:5906 */
19592 REGB0 = TAG_Bool(ATTR_parser___ReduceAction133____goto(fra.me.REG[0])!=NIT_NULL);
19593 if (UNTAG_Bool(REGB0)) {
19594 } else {
19595 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5906);
19596 }
19597 REGB0 = ATTR_parser___ReduceAction133____goto(fra.me.REG[0]);
19598 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19599 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19600 stack_frame_head = fra.me.prev;
19601 return;
19602 }
19603 void parser___ReduceAction133___init(val_t p0, val_t p1, int* init_table){
19604 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction133].i;
19605 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19606 val_t REGB0;
19607 val_t tmp;
19608 if (init_table[itpos136]) return;
19609 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19610 fra.me.file = LOCATE_parser;
19611 fra.me.line = 5909;
19612 fra.me.meth = LOCATE_parser___ReduceAction133___init;
19613 fra.me.has_broke = 0;
19614 fra.me.REG_size = 2;
19615 fra.me.REG[0] = NIT_NULL;
19616 fra.me.REG[1] = NIT_NULL;
19617 fra.me.REG[0] = p0;
19618 REGB0 = p1;
19619 /* ./parser//parser.nit:5909 */
19620 fra.me.REG[1] = fra.me.REG[0];
19621 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19622 ATTR_parser___ReduceAction133____goto(fra.me.REG[1]) = REGB0;
19623 stack_frame_head = fra.me.prev;
19624 init_table[itpos136] = 1;
19625 return;
19626 }
19627 void parser___ReduceAction134___action(val_t p0, val_t p1){
19628 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19629 val_t REGB0;
19630 val_t tmp;
19631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19632 fra.me.file = LOCATE_parser;
19633 fra.me.line = 5913;
19634 fra.me.meth = LOCATE_parser___ReduceAction134___action;
19635 fra.me.has_broke = 0;
19636 fra.me.REG_size = 9;
19637 fra.me.REG[0] = NIT_NULL;
19638 fra.me.REG[1] = NIT_NULL;
19639 fra.me.REG[2] = NIT_NULL;
19640 fra.me.REG[3] = NIT_NULL;
19641 fra.me.REG[4] = NIT_NULL;
19642 fra.me.REG[5] = NIT_NULL;
19643 fra.me.REG[6] = NIT_NULL;
19644 fra.me.REG[7] = NIT_NULL;
19645 fra.me.REG[8] = NIT_NULL;
19646 fra.me.REG[0] = p0;
19647 fra.me.REG[1] = p1;
19648 /* ./parser//parser.nit:5915 */
19649 fra.me.REG[2] = NIT_NULL;
19650 /* ./parser//parser.nit:5916 */
19651 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19652 /* ./parser//parser.nit:5917 */
19653 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19654 /* ./parser//parser.nit:5918 */
19655 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19656 /* ./parser//parser.nit:5919 */
19657 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19658 /* ./parser//parser.nit:5920 */
19659 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19660 /* ./parser//parser.nit:5921 */
19661 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19662 /* ./parser//parser.nit:5922 */
19663 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19664 /* ./parser//parser.nit:5923 */
19665 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19666 /* ./parser//parser.nit:5925 */
19667 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19668 if (UNTAG_Bool(REGB0)) {
19669 } else {
19670 nit_abort("Assert failed", NULL, LOCATE_parser, 5925);
19671 }
19672 /* ./parser//parser.nit:5927 */
19673 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19674 if (UNTAG_Bool(REGB0)) {
19675 } else {
19676 nit_abort("Assert failed", NULL, LOCATE_parser, 5927);
19677 }
19678 /* ./parser//parser.nit:5929 */
19679 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19680 if (UNTAG_Bool(REGB0)) {
19681 } else {
19682 nit_abort("Assert failed", NULL, LOCATE_parser, 5929);
19683 }
19684 /* ./parser//parser.nit:5931 */
19685 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19686 if (UNTAG_Bool(REGB0)) {
19687 } else {
19688 nit_abort("Assert failed", NULL, LOCATE_parser, 5931);
19689 }
19690 /* ./parser//parser.nit:5933 */
19691 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19692 if (UNTAG_Bool(REGB0)) {
19693 } else {
19694 nit_abort("Assert failed", NULL, LOCATE_parser, 5933);
19695 }
19696 /* ./parser//parser.nit:5935 */
19697 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19698 if (UNTAG_Bool(REGB0)) {
19699 } else {
19700 nit_abort("Assert failed", NULL, LOCATE_parser, 5935);
19701 }
19702 /* ./parser//parser.nit:5936 */
19703 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]);
19704 /* ./parser//parser.nit:5945 */
19705 fra.me.REG[2] = fra.me.REG[3];
19706 /* ./parser//parser.nit:5946 */
19707 REGB0 = TAG_Bool(ATTR_parser___ReduceAction134____goto(fra.me.REG[0])!=NIT_NULL);
19708 if (UNTAG_Bool(REGB0)) {
19709 } else {
19710 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5946);
19711 }
19712 REGB0 = ATTR_parser___ReduceAction134____goto(fra.me.REG[0]);
19713 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19714 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19715 stack_frame_head = fra.me.prev;
19716 return;
19717 }
19718 void parser___ReduceAction134___init(val_t p0, val_t p1, int* init_table){
19719 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction134].i;
19720 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19721 val_t REGB0;
19722 val_t tmp;
19723 if (init_table[itpos137]) return;
19724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19725 fra.me.file = LOCATE_parser;
19726 fra.me.line = 5949;
19727 fra.me.meth = LOCATE_parser___ReduceAction134___init;
19728 fra.me.has_broke = 0;
19729 fra.me.REG_size = 2;
19730 fra.me.REG[0] = NIT_NULL;
19731 fra.me.REG[1] = NIT_NULL;
19732 fra.me.REG[0] = p0;
19733 REGB0 = p1;
19734 /* ./parser//parser.nit:5949 */
19735 fra.me.REG[1] = fra.me.REG[0];
19736 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19737 ATTR_parser___ReduceAction134____goto(fra.me.REG[1]) = REGB0;
19738 stack_frame_head = fra.me.prev;
19739 init_table[itpos137] = 1;
19740 return;
19741 }
19742 void parser___ReduceAction135___action(val_t p0, val_t p1){
19743 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
19744 val_t REGB0;
19745 val_t tmp;
19746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19747 fra.me.file = LOCATE_parser;
19748 fra.me.line = 5953;
19749 fra.me.meth = LOCATE_parser___ReduceAction135___action;
19750 fra.me.has_broke = 0;
19751 fra.me.REG_size = 9;
19752 fra.me.REG[0] = NIT_NULL;
19753 fra.me.REG[1] = NIT_NULL;
19754 fra.me.REG[2] = NIT_NULL;
19755 fra.me.REG[3] = NIT_NULL;
19756 fra.me.REG[4] = NIT_NULL;
19757 fra.me.REG[5] = NIT_NULL;
19758 fra.me.REG[6] = NIT_NULL;
19759 fra.me.REG[7] = NIT_NULL;
19760 fra.me.REG[8] = NIT_NULL;
19761 fra.me.REG[0] = p0;
19762 fra.me.REG[1] = p1;
19763 /* ./parser//parser.nit:5955 */
19764 fra.me.REG[2] = NIT_NULL;
19765 /* ./parser//parser.nit:5956 */
19766 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19767 /* ./parser//parser.nit:5957 */
19768 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19769 /* ./parser//parser.nit:5958 */
19770 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19771 /* ./parser//parser.nit:5959 */
19772 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19773 /* ./parser//parser.nit:5960 */
19774 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19775 /* ./parser//parser.nit:5961 */
19776 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19777 /* ./parser//parser.nit:5962 */
19778 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19779 /* ./parser//parser.nit:5963 */
19780 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19781 /* ./parser//parser.nit:5965 */
19782 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19783 if (UNTAG_Bool(REGB0)) {
19784 } else {
19785 nit_abort("Assert failed", NULL, LOCATE_parser, 5965);
19786 }
19787 /* ./parser//parser.nit:5967 */
19788 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19789 if (UNTAG_Bool(REGB0)) {
19790 } else {
19791 nit_abort("Assert failed", NULL, LOCATE_parser, 5967);
19792 }
19793 /* ./parser//parser.nit:5969 */
19794 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19795 if (UNTAG_Bool(REGB0)) {
19796 } else {
19797 nit_abort("Assert failed", NULL, LOCATE_parser, 5969);
19798 }
19799 /* ./parser//parser.nit:5971 */
19800 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19801 if (UNTAG_Bool(REGB0)) {
19802 } else {
19803 nit_abort("Assert failed", NULL, LOCATE_parser, 5971);
19804 }
19805 /* ./parser//parser.nit:5973 */
19806 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19807 if (UNTAG_Bool(REGB0)) {
19808 } else {
19809 nit_abort("Assert failed", NULL, LOCATE_parser, 5973);
19810 }
19811 /* ./parser//parser.nit:5975 */
19812 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19813 if (UNTAG_Bool(REGB0)) {
19814 } else {
19815 nit_abort("Assert failed", NULL, LOCATE_parser, 5975);
19816 }
19817 /* ./parser//parser.nit:5976 */
19818 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]);
19819 /* ./parser//parser.nit:5985 */
19820 fra.me.REG[2] = fra.me.REG[3];
19821 /* ./parser//parser.nit:5986 */
19822 REGB0 = TAG_Bool(ATTR_parser___ReduceAction135____goto(fra.me.REG[0])!=NIT_NULL);
19823 if (UNTAG_Bool(REGB0)) {
19824 } else {
19825 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5986);
19826 }
19827 REGB0 = ATTR_parser___ReduceAction135____goto(fra.me.REG[0]);
19828 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19829 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19830 stack_frame_head = fra.me.prev;
19831 return;
19832 }
19833 void parser___ReduceAction135___init(val_t p0, val_t p1, int* init_table){
19834 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction135].i;
19835 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19836 val_t REGB0;
19837 val_t tmp;
19838 if (init_table[itpos138]) return;
19839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19840 fra.me.file = LOCATE_parser;
19841 fra.me.line = 5989;
19842 fra.me.meth = LOCATE_parser___ReduceAction135___init;
19843 fra.me.has_broke = 0;
19844 fra.me.REG_size = 2;
19845 fra.me.REG[0] = NIT_NULL;
19846 fra.me.REG[1] = NIT_NULL;
19847 fra.me.REG[0] = p0;
19848 REGB0 = p1;
19849 /* ./parser//parser.nit:5989 */
19850 fra.me.REG[1] = fra.me.REG[0];
19851 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19852 ATTR_parser___ReduceAction135____goto(fra.me.REG[1]) = REGB0;
19853 stack_frame_head = fra.me.prev;
19854 init_table[itpos138] = 1;
19855 return;
19856 }
19857 void parser___ReduceAction136___action(val_t p0, val_t p1){
19858 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
19859 val_t REGB0;
19860 val_t tmp;
19861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19862 fra.me.file = LOCATE_parser;
19863 fra.me.line = 5993;
19864 fra.me.meth = LOCATE_parser___ReduceAction136___action;
19865 fra.me.has_broke = 0;
19866 fra.me.REG_size = 10;
19867 fra.me.REG[0] = NIT_NULL;
19868 fra.me.REG[1] = NIT_NULL;
19869 fra.me.REG[2] = NIT_NULL;
19870 fra.me.REG[3] = NIT_NULL;
19871 fra.me.REG[4] = NIT_NULL;
19872 fra.me.REG[5] = NIT_NULL;
19873 fra.me.REG[6] = NIT_NULL;
19874 fra.me.REG[7] = NIT_NULL;
19875 fra.me.REG[8] = NIT_NULL;
19876 fra.me.REG[9] = NIT_NULL;
19877 fra.me.REG[0] = p0;
19878 fra.me.REG[1] = p1;
19879 /* ./parser//parser.nit:5995 */
19880 fra.me.REG[2] = NIT_NULL;
19881 /* ./parser//parser.nit:5996 */
19882 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19883 /* ./parser//parser.nit:5997 */
19884 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19885 /* ./parser//parser.nit:5998 */
19886 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19887 /* ./parser//parser.nit:5999 */
19888 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19889 /* ./parser//parser.nit:6000 */
19890 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19891 /* ./parser//parser.nit:6001 */
19892 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19893 /* ./parser//parser.nit:6002 */
19894 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19895 /* ./parser//parser.nit:6003 */
19896 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19897 /* ./parser//parser.nit:6004 */
19898 fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
19899 /* ./parser//parser.nit:6006 */
19900 REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
19901 if (UNTAG_Bool(REGB0)) {
19902 } else {
19903 nit_abort("Assert failed", NULL, LOCATE_parser, 6006);
19904 }
19905 /* ./parser//parser.nit:6008 */
19906 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
19907 if (UNTAG_Bool(REGB0)) {
19908 } else {
19909 nit_abort("Assert failed", NULL, LOCATE_parser, 6008);
19910 }
19911 /* ./parser//parser.nit:6010 */
19912 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
19913 if (UNTAG_Bool(REGB0)) {
19914 } else {
19915 nit_abort("Assert failed", NULL, LOCATE_parser, 6010);
19916 }
19917 /* ./parser//parser.nit:6012 */
19918 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
19919 if (UNTAG_Bool(REGB0)) {
19920 } else {
19921 nit_abort("Assert failed", NULL, LOCATE_parser, 6012);
19922 }
19923 /* ./parser//parser.nit:6014 */
19924 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AMethid, ID_AMethid)) /*cast nullable AMethid*/;
19925 if (UNTAG_Bool(REGB0)) {
19926 } else {
19927 nit_abort("Assert failed", NULL, LOCATE_parser, 6014);
19928 }
19929 /* ./parser//parser.nit:6016 */
19930 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
19931 if (UNTAG_Bool(REGB0)) {
19932 } else {
19933 nit_abort("Assert failed", NULL, LOCATE_parser, 6016);
19934 }
19935 /* ./parser//parser.nit:6018 */
19936 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
19937 if (UNTAG_Bool(REGB0)) {
19938 } else {
19939 nit_abort("Assert failed", NULL, LOCATE_parser, 6018);
19940 }
19941 /* ./parser//parser.nit:6019 */
19942 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]);
19943 /* ./parser//parser.nit:6028 */
19944 fra.me.REG[2] = fra.me.REG[3];
19945 /* ./parser//parser.nit:6029 */
19946 REGB0 = TAG_Bool(ATTR_parser___ReduceAction136____goto(fra.me.REG[0])!=NIT_NULL);
19947 if (UNTAG_Bool(REGB0)) {
19948 } else {
19949 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6029);
19950 }
19951 REGB0 = ATTR_parser___ReduceAction136____goto(fra.me.REG[0]);
19952 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
19953 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
19954 stack_frame_head = fra.me.prev;
19955 return;
19956 }
19957 void parser___ReduceAction136___init(val_t p0, val_t p1, int* init_table){
19958 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction136].i;
19959 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19960 val_t REGB0;
19961 val_t tmp;
19962 if (init_table[itpos139]) return;
19963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19964 fra.me.file = LOCATE_parser;
19965 fra.me.line = 6032;
19966 fra.me.meth = LOCATE_parser___ReduceAction136___init;
19967 fra.me.has_broke = 0;
19968 fra.me.REG_size = 2;
19969 fra.me.REG[0] = NIT_NULL;
19970 fra.me.REG[1] = NIT_NULL;
19971 fra.me.REG[0] = p0;
19972 REGB0 = p1;
19973 /* ./parser//parser.nit:6032 */
19974 fra.me.REG[1] = fra.me.REG[0];
19975 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
19976 ATTR_parser___ReduceAction136____goto(fra.me.REG[1]) = REGB0;
19977 stack_frame_head = fra.me.prev;
19978 init_table[itpos139] = 1;
19979 return;
19980 }
19981 void parser___ReduceAction137___action(val_t p0, val_t p1){
19982 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19983 val_t REGB0;
19984 val_t tmp;
19985 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19986 fra.me.file = LOCATE_parser;
19987 fra.me.line = 6036;
19988 fra.me.meth = LOCATE_parser___ReduceAction137___action;
19989 fra.me.has_broke = 0;
19990 fra.me.REG_size = 8;
19991 fra.me.REG[0] = NIT_NULL;
19992 fra.me.REG[1] = NIT_NULL;
19993 fra.me.REG[2] = NIT_NULL;
19994 fra.me.REG[3] = NIT_NULL;
19995 fra.me.REG[4] = NIT_NULL;
19996 fra.me.REG[5] = NIT_NULL;
19997 fra.me.REG[6] = NIT_NULL;
19998 fra.me.REG[7] = NIT_NULL;
19999 fra.me.REG[0] = p0;
20000 fra.me.REG[1] = p1;
20001 /* ./parser//parser.nit:6038 */
20002 fra.me.REG[2] = NIT_NULL;
20003 /* ./parser//parser.nit:6039 */
20004 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20005 /* ./parser//parser.nit:6040 */
20006 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20007 /* ./parser//parser.nit:6041 */
20008 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20009 /* ./parser//parser.nit:6042 */
20010 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20011 /* ./parser//parser.nit:6043 */
20012 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20013 /* ./parser//parser.nit:6045 */
20014 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
20015 if (UNTAG_Bool(REGB0)) {
20016 } else {
20017 nit_abort("Assert failed", NULL, LOCATE_parser, 6045);
20018 }
20019 /* ./parser//parser.nit:6047 */
20020 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20021 if (UNTAG_Bool(REGB0)) {
20022 } else {
20023 nit_abort("Assert failed", NULL, LOCATE_parser, 6047);
20024 }
20025 /* ./parser//parser.nit:6049 */
20026 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwtype, ID_TKwtype)) /*cast nullable TKwtype*/;
20027 if (UNTAG_Bool(REGB0)) {
20028 } else {
20029 nit_abort("Assert failed", NULL, LOCATE_parser, 6049);
20030 }
20031 /* ./parser//parser.nit:6051 */
20032 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
20033 if (UNTAG_Bool(REGB0)) {
20034 } else {
20035 nit_abort("Assert failed", NULL, LOCATE_parser, 6051);
20036 }
20037 /* ./parser//parser.nit:6053 */
20038 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
20039 if (UNTAG_Bool(REGB0)) {
20040 } else {
20041 nit_abort("Assert failed", NULL, LOCATE_parser, 6053);
20042 }
20043 /* ./parser//parser.nit:6054 */
20044 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]);
20045 /* ./parser//parser.nit:6062 */
20046 fra.me.REG[2] = fra.me.REG[3];
20047 /* ./parser//parser.nit:6063 */
20048 REGB0 = TAG_Bool(ATTR_parser___ReduceAction137____goto(fra.me.REG[0])!=NIT_NULL);
20049 if (UNTAG_Bool(REGB0)) {
20050 } else {
20051 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6063);
20052 }
20053 REGB0 = ATTR_parser___ReduceAction137____goto(fra.me.REG[0]);
20054 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20055 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20056 stack_frame_head = fra.me.prev;
20057 return;
20058 }
20059 void parser___ReduceAction137___init(val_t p0, val_t p1, int* init_table){
20060 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction137].i;
20061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20062 val_t REGB0;
20063 val_t tmp;
20064 if (init_table[itpos140]) return;
20065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20066 fra.me.file = LOCATE_parser;
20067 fra.me.line = 6066;
20068 fra.me.meth = LOCATE_parser___ReduceAction137___init;
20069 fra.me.has_broke = 0;
20070 fra.me.REG_size = 2;
20071 fra.me.REG[0] = NIT_NULL;
20072 fra.me.REG[1] = NIT_NULL;
20073 fra.me.REG[0] = p0;
20074 REGB0 = p1;
20075 /* ./parser//parser.nit:6066 */
20076 fra.me.REG[1] = fra.me.REG[0];
20077 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20078 ATTR_parser___ReduceAction137____goto(fra.me.REG[1]) = REGB0;
20079 stack_frame_head = fra.me.prev;
20080 init_table[itpos140] = 1;
20081 return;
20082 }
20083 void parser___ReduceAction138___action(val_t p0, val_t p1){
20084 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
20085 val_t REGB0;
20086 val_t tmp;
20087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20088 fra.me.file = LOCATE_parser;
20089 fra.me.line = 6070;
20090 fra.me.meth = LOCATE_parser___ReduceAction138___action;
20091 fra.me.has_broke = 0;
20092 fra.me.REG_size = 9;
20093 fra.me.REG[0] = NIT_NULL;
20094 fra.me.REG[1] = NIT_NULL;
20095 fra.me.REG[2] = NIT_NULL;
20096 fra.me.REG[3] = NIT_NULL;
20097 fra.me.REG[4] = NIT_NULL;
20098 fra.me.REG[5] = NIT_NULL;
20099 fra.me.REG[6] = NIT_NULL;
20100 fra.me.REG[7] = NIT_NULL;
20101 fra.me.REG[8] = NIT_NULL;
20102 fra.me.REG[0] = p0;
20103 fra.me.REG[1] = p1;
20104 /* ./parser//parser.nit:6072 */
20105 fra.me.REG[2] = NIT_NULL;
20106 /* ./parser//parser.nit:6073 */
20107 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20108 /* ./parser//parser.nit:6074 */
20109 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20110 /* ./parser//parser.nit:6075 */
20111 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20112 /* ./parser//parser.nit:6076 */
20113 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20114 /* ./parser//parser.nit:6077 */
20115 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20116 /* ./parser//parser.nit:6078 */
20117 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20118 /* ./parser//parser.nit:6080 */
20119 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_ADoc, ID_ADoc)) /*cast nullable ADoc*/;
20120 if (UNTAG_Bool(REGB0)) {
20121 } else {
20122 nit_abort("Assert failed", NULL, LOCATE_parser, 6080);
20123 }
20124 /* ./parser//parser.nit:6082 */
20125 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20126 if (UNTAG_Bool(REGB0)) {
20127 } else {
20128 nit_abort("Assert failed", NULL, LOCATE_parser, 6082);
20129 }
20130 /* ./parser//parser.nit:6084 */
20131 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20132 if (UNTAG_Bool(REGB0)) {
20133 } else {
20134 nit_abort("Assert failed", NULL, LOCATE_parser, 6084);
20135 }
20136 /* ./parser//parser.nit:6086 */
20137 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwtype, ID_TKwtype)) /*cast nullable TKwtype*/;
20138 if (UNTAG_Bool(REGB0)) {
20139 } else {
20140 nit_abort("Assert failed", NULL, LOCATE_parser, 6086);
20141 }
20142 /* ./parser//parser.nit:6088 */
20143 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
20144 if (UNTAG_Bool(REGB0)) {
20145 } else {
20146 nit_abort("Assert failed", NULL, LOCATE_parser, 6088);
20147 }
20148 /* ./parser//parser.nit:6090 */
20149 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
20150 if (UNTAG_Bool(REGB0)) {
20151 } else {
20152 nit_abort("Assert failed", NULL, LOCATE_parser, 6090);
20153 }
20154 /* ./parser//parser.nit:6091 */
20155 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]);
20156 /* ./parser//parser.nit:6099 */
20157 fra.me.REG[2] = fra.me.REG[3];
20158 /* ./parser//parser.nit:6100 */
20159 REGB0 = TAG_Bool(ATTR_parser___ReduceAction138____goto(fra.me.REG[0])!=NIT_NULL);
20160 if (UNTAG_Bool(REGB0)) {
20161 } else {
20162 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6100);
20163 }
20164 REGB0 = ATTR_parser___ReduceAction138____goto(fra.me.REG[0]);
20165 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20166 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20167 stack_frame_head = fra.me.prev;
20168 return;
20169 }
20170 void parser___ReduceAction138___init(val_t p0, val_t p1, int* init_table){
20171 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction138].i;
20172 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20173 val_t REGB0;
20174 val_t tmp;
20175 if (init_table[itpos141]) return;
20176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20177 fra.me.file = LOCATE_parser;
20178 fra.me.line = 6103;
20179 fra.me.meth = LOCATE_parser___ReduceAction138___init;
20180 fra.me.has_broke = 0;
20181 fra.me.REG_size = 2;
20182 fra.me.REG[0] = NIT_NULL;
20183 fra.me.REG[1] = NIT_NULL;
20184 fra.me.REG[0] = p0;
20185 REGB0 = p1;
20186 /* ./parser//parser.nit:6103 */
20187 fra.me.REG[1] = fra.me.REG[0];
20188 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20189 ATTR_parser___ReduceAction138____goto(fra.me.REG[1]) = REGB0;
20190 stack_frame_head = fra.me.prev;
20191 init_table[itpos141] = 1;
20192 return;
20193 }
20194 void parser___ReduceAction139___action(val_t p0, val_t p1){
20195 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20196 val_t REGB0;
20197 val_t tmp;
20198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20199 fra.me.file = LOCATE_parser;
20200 fra.me.line = 6107;
20201 fra.me.meth = LOCATE_parser___ReduceAction139___action;
20202 fra.me.has_broke = 0;
20203 fra.me.REG_size = 4;
20204 fra.me.REG[0] = NIT_NULL;
20205 fra.me.REG[1] = NIT_NULL;
20206 fra.me.REG[2] = NIT_NULL;
20207 fra.me.REG[3] = NIT_NULL;
20208 fra.me.REG[0] = p0;
20209 fra.me.REG[1] = p1;
20210 /* ./parser//parser.nit:6109 */
20211 fra.me.REG[2] = NIT_NULL;
20212 /* ./parser//parser.nit:6110 */
20213 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20214 /* ./parser//parser.nit:6112 */
20215 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwreadable, ID_TKwreadable)) /*cast nullable TKwreadable*/;
20216 if (UNTAG_Bool(REGB0)) {
20217 } else {
20218 nit_abort("Assert failed", NULL, LOCATE_parser, 6112);
20219 }
20220 /* ./parser//parser.nit:6113 */
20221 fra.me.REG[3] = NEW_AReadAble_parser_prod___AReadAble___init_areadable(NIT_NULL, fra.me.REG[3]);
20222 /* ./parser//parser.nit:6117 */
20223 fra.me.REG[2] = fra.me.REG[3];
20224 /* ./parser//parser.nit:6118 */
20225 REGB0 = TAG_Bool(ATTR_parser___ReduceAction139____goto(fra.me.REG[0])!=NIT_NULL);
20226 if (UNTAG_Bool(REGB0)) {
20227 } else {
20228 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6118);
20229 }
20230 REGB0 = ATTR_parser___ReduceAction139____goto(fra.me.REG[0]);
20231 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20232 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20233 stack_frame_head = fra.me.prev;
20234 return;
20235 }
20236 void parser___ReduceAction139___init(val_t p0, val_t p1, int* init_table){
20237 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction139].i;
20238 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20239 val_t REGB0;
20240 val_t tmp;
20241 if (init_table[itpos142]) return;
20242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20243 fra.me.file = LOCATE_parser;
20244 fra.me.line = 6121;
20245 fra.me.meth = LOCATE_parser___ReduceAction139___init;
20246 fra.me.has_broke = 0;
20247 fra.me.REG_size = 2;
20248 fra.me.REG[0] = NIT_NULL;
20249 fra.me.REG[1] = NIT_NULL;
20250 fra.me.REG[0] = p0;
20251 REGB0 = p1;
20252 /* ./parser//parser.nit:6121 */
20253 fra.me.REG[1] = fra.me.REG[0];
20254 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20255 ATTR_parser___ReduceAction139____goto(fra.me.REG[1]) = REGB0;
20256 stack_frame_head = fra.me.prev;
20257 init_table[itpos142] = 1;
20258 return;
20259 }
20260 void parser___ReduceAction140___action(val_t p0, val_t p1){
20261 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20262 val_t REGB0;
20263 val_t tmp;
20264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20265 fra.me.file = LOCATE_parser;
20266 fra.me.line = 6125;
20267 fra.me.meth = LOCATE_parser___ReduceAction140___action;
20268 fra.me.has_broke = 0;
20269 fra.me.REG_size = 5;
20270 fra.me.REG[0] = NIT_NULL;
20271 fra.me.REG[1] = NIT_NULL;
20272 fra.me.REG[2] = NIT_NULL;
20273 fra.me.REG[3] = NIT_NULL;
20274 fra.me.REG[4] = NIT_NULL;
20275 fra.me.REG[0] = p0;
20276 fra.me.REG[1] = p1;
20277 /* ./parser//parser.nit:6127 */
20278 fra.me.REG[2] = NIT_NULL;
20279 /* ./parser//parser.nit:6128 */
20280 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20281 /* ./parser//parser.nit:6129 */
20282 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20283 /* ./parser//parser.nit:6131 */
20284 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20285 if (UNTAG_Bool(REGB0)) {
20286 } else {
20287 nit_abort("Assert failed", NULL, LOCATE_parser, 6131);
20288 }
20289 /* ./parser//parser.nit:6133 */
20290 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwreadable, ID_TKwreadable)) /*cast nullable TKwreadable*/;
20291 if (UNTAG_Bool(REGB0)) {
20292 } else {
20293 nit_abort("Assert failed", NULL, LOCATE_parser, 6133);
20294 }
20295 /* ./parser//parser.nit:6134 */
20296 fra.me.REG[3] = NEW_AReadAble_parser_prod___AReadAble___init_areadable(fra.me.REG[4], fra.me.REG[3]);
20297 /* ./parser//parser.nit:6138 */
20298 fra.me.REG[2] = fra.me.REG[3];
20299 /* ./parser//parser.nit:6139 */
20300 REGB0 = TAG_Bool(ATTR_parser___ReduceAction140____goto(fra.me.REG[0])!=NIT_NULL);
20301 if (UNTAG_Bool(REGB0)) {
20302 } else {
20303 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6139);
20304 }
20305 REGB0 = ATTR_parser___ReduceAction140____goto(fra.me.REG[0]);
20306 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20307 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20308 stack_frame_head = fra.me.prev;
20309 return;
20310 }
20311 void parser___ReduceAction140___init(val_t p0, val_t p1, int* init_table){
20312 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction140].i;
20313 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20314 val_t REGB0;
20315 val_t tmp;
20316 if (init_table[itpos143]) return;
20317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20318 fra.me.file = LOCATE_parser;
20319 fra.me.line = 6142;
20320 fra.me.meth = LOCATE_parser___ReduceAction140___init;
20321 fra.me.has_broke = 0;
20322 fra.me.REG_size = 2;
20323 fra.me.REG[0] = NIT_NULL;
20324 fra.me.REG[1] = NIT_NULL;
20325 fra.me.REG[0] = p0;
20326 REGB0 = p1;
20327 /* ./parser//parser.nit:6142 */
20328 fra.me.REG[1] = fra.me.REG[0];
20329 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20330 ATTR_parser___ReduceAction140____goto(fra.me.REG[1]) = REGB0;
20331 stack_frame_head = fra.me.prev;
20332 init_table[itpos143] = 1;
20333 return;
20334 }
20335 void parser___ReduceAction141___action(val_t p0, val_t p1){
20336 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20337 val_t REGB0;
20338 val_t tmp;
20339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20340 fra.me.file = LOCATE_parser;
20341 fra.me.line = 6146;
20342 fra.me.meth = LOCATE_parser___ReduceAction141___action;
20343 fra.me.has_broke = 0;
20344 fra.me.REG_size = 4;
20345 fra.me.REG[0] = NIT_NULL;
20346 fra.me.REG[1] = NIT_NULL;
20347 fra.me.REG[2] = NIT_NULL;
20348 fra.me.REG[3] = NIT_NULL;
20349 fra.me.REG[0] = p0;
20350 fra.me.REG[1] = p1;
20351 /* ./parser//parser.nit:6148 */
20352 fra.me.REG[2] = NIT_NULL;
20353 /* ./parser//parser.nit:6149 */
20354 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20355 /* ./parser//parser.nit:6151 */
20356 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20357 if (UNTAG_Bool(REGB0)) {
20358 } else {
20359 nit_abort("Assert failed", NULL, LOCATE_parser, 6151);
20360 }
20361 /* ./parser//parser.nit:6152 */
20362 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(NIT_NULL, NIT_NULL, fra.me.REG[3]);
20363 /* ./parser//parser.nit:6157 */
20364 fra.me.REG[2] = fra.me.REG[3];
20365 /* ./parser//parser.nit:6158 */
20366 REGB0 = TAG_Bool(ATTR_parser___ReduceAction141____goto(fra.me.REG[0])!=NIT_NULL);
20367 if (UNTAG_Bool(REGB0)) {
20368 } else {
20369 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6158);
20370 }
20371 REGB0 = ATTR_parser___ReduceAction141____goto(fra.me.REG[0]);
20372 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20373 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20374 stack_frame_head = fra.me.prev;
20375 return;
20376 }
20377 void parser___ReduceAction141___init(val_t p0, val_t p1, int* init_table){
20378 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction141].i;
20379 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20380 val_t REGB0;
20381 val_t tmp;
20382 if (init_table[itpos144]) return;
20383 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20384 fra.me.file = LOCATE_parser;
20385 fra.me.line = 6161;
20386 fra.me.meth = LOCATE_parser___ReduceAction141___init;
20387 fra.me.has_broke = 0;
20388 fra.me.REG_size = 2;
20389 fra.me.REG[0] = NIT_NULL;
20390 fra.me.REG[1] = NIT_NULL;
20391 fra.me.REG[0] = p0;
20392 REGB0 = p1;
20393 /* ./parser//parser.nit:6161 */
20394 fra.me.REG[1] = fra.me.REG[0];
20395 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20396 ATTR_parser___ReduceAction141____goto(fra.me.REG[1]) = REGB0;
20397 stack_frame_head = fra.me.prev;
20398 init_table[itpos144] = 1;
20399 return;
20400 }
20401 void parser___ReduceAction142___action(val_t p0, val_t p1){
20402 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20403 val_t REGB0;
20404 val_t tmp;
20405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20406 fra.me.file = LOCATE_parser;
20407 fra.me.line = 6165;
20408 fra.me.meth = LOCATE_parser___ReduceAction142___action;
20409 fra.me.has_broke = 0;
20410 fra.me.REG_size = 5;
20411 fra.me.REG[0] = NIT_NULL;
20412 fra.me.REG[1] = NIT_NULL;
20413 fra.me.REG[2] = NIT_NULL;
20414 fra.me.REG[3] = NIT_NULL;
20415 fra.me.REG[4] = NIT_NULL;
20416 fra.me.REG[0] = p0;
20417 fra.me.REG[1] = p1;
20418 /* ./parser//parser.nit:6167 */
20419 fra.me.REG[2] = NIT_NULL;
20420 /* ./parser//parser.nit:6168 */
20421 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20422 /* ./parser//parser.nit:6169 */
20423 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20424 /* ./parser//parser.nit:6171 */
20425 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20426 if (UNTAG_Bool(REGB0)) {
20427 } else {
20428 nit_abort("Assert failed", NULL, LOCATE_parser, 6171);
20429 }
20430 /* ./parser//parser.nit:6173 */
20431 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20432 if (UNTAG_Bool(REGB0)) {
20433 } else {
20434 nit_abort("Assert failed", NULL, LOCATE_parser, 6173);
20435 }
20436 /* ./parser//parser.nit:6174 */
20437 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
20438 /* ./parser//parser.nit:6179 */
20439 fra.me.REG[2] = fra.me.REG[3];
20440 /* ./parser//parser.nit:6180 */
20441 REGB0 = TAG_Bool(ATTR_parser___ReduceAction142____goto(fra.me.REG[0])!=NIT_NULL);
20442 if (UNTAG_Bool(REGB0)) {
20443 } else {
20444 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6180);
20445 }
20446 REGB0 = ATTR_parser___ReduceAction142____goto(fra.me.REG[0]);
20447 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20448 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20449 stack_frame_head = fra.me.prev;
20450 return;
20451 }
20452 void parser___ReduceAction142___init(val_t p0, val_t p1, int* init_table){
20453 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction142].i;
20454 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20455 val_t REGB0;
20456 val_t tmp;
20457 if (init_table[itpos145]) return;
20458 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20459 fra.me.file = LOCATE_parser;
20460 fra.me.line = 6183;
20461 fra.me.meth = LOCATE_parser___ReduceAction142___init;
20462 fra.me.has_broke = 0;
20463 fra.me.REG_size = 2;
20464 fra.me.REG[0] = NIT_NULL;
20465 fra.me.REG[1] = NIT_NULL;
20466 fra.me.REG[0] = p0;
20467 REGB0 = p1;
20468 /* ./parser//parser.nit:6183 */
20469 fra.me.REG[1] = fra.me.REG[0];
20470 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20471 ATTR_parser___ReduceAction142____goto(fra.me.REG[1]) = REGB0;
20472 stack_frame_head = fra.me.prev;
20473 init_table[itpos145] = 1;
20474 return;
20475 }
20476 void parser___ReduceAction143___action(val_t p0, val_t p1){
20477 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20478 val_t REGB0;
20479 val_t tmp;
20480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20481 fra.me.file = LOCATE_parser;
20482 fra.me.line = 6187;
20483 fra.me.meth = LOCATE_parser___ReduceAction143___action;
20484 fra.me.has_broke = 0;
20485 fra.me.REG_size = 5;
20486 fra.me.REG[0] = NIT_NULL;
20487 fra.me.REG[1] = NIT_NULL;
20488 fra.me.REG[2] = NIT_NULL;
20489 fra.me.REG[3] = NIT_NULL;
20490 fra.me.REG[4] = NIT_NULL;
20491 fra.me.REG[0] = p0;
20492 fra.me.REG[1] = p1;
20493 /* ./parser//parser.nit:6189 */
20494 fra.me.REG[2] = NIT_NULL;
20495 /* ./parser//parser.nit:6190 */
20496 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20497 /* ./parser//parser.nit:6191 */
20498 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20499 /* ./parser//parser.nit:6193 */
20500 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20501 if (UNTAG_Bool(REGB0)) {
20502 } else {
20503 nit_abort("Assert failed", NULL, LOCATE_parser, 6193);
20504 }
20505 /* ./parser//parser.nit:6195 */
20506 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20507 if (UNTAG_Bool(REGB0)) {
20508 } else {
20509 nit_abort("Assert failed", NULL, LOCATE_parser, 6195);
20510 }
20511 /* ./parser//parser.nit:6196 */
20512 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
20513 /* ./parser//parser.nit:6201 */
20514 fra.me.REG[2] = fra.me.REG[3];
20515 /* ./parser//parser.nit:6202 */
20516 REGB0 = TAG_Bool(ATTR_parser___ReduceAction143____goto(fra.me.REG[0])!=NIT_NULL);
20517 if (UNTAG_Bool(REGB0)) {
20518 } else {
20519 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6202);
20520 }
20521 REGB0 = ATTR_parser___ReduceAction143____goto(fra.me.REG[0]);
20522 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20523 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20524 stack_frame_head = fra.me.prev;
20525 return;
20526 }
20527 void parser___ReduceAction143___init(val_t p0, val_t p1, int* init_table){
20528 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction143].i;
20529 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20530 val_t REGB0;
20531 val_t tmp;
20532 if (init_table[itpos146]) return;
20533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20534 fra.me.file = LOCATE_parser;
20535 fra.me.line = 6205;
20536 fra.me.meth = LOCATE_parser___ReduceAction143___init;
20537 fra.me.has_broke = 0;
20538 fra.me.REG_size = 2;
20539 fra.me.REG[0] = NIT_NULL;
20540 fra.me.REG[1] = NIT_NULL;
20541 fra.me.REG[0] = p0;
20542 REGB0 = p1;
20543 /* ./parser//parser.nit:6205 */
20544 fra.me.REG[1] = fra.me.REG[0];
20545 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20546 ATTR_parser___ReduceAction143____goto(fra.me.REG[1]) = REGB0;
20547 stack_frame_head = fra.me.prev;
20548 init_table[itpos146] = 1;
20549 return;
20550 }
20551 void parser___ReduceAction144___action(val_t p0, val_t p1){
20552 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
20553 val_t REGB0;
20554 val_t tmp;
20555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20556 fra.me.file = LOCATE_parser;
20557 fra.me.line = 6209;
20558 fra.me.meth = LOCATE_parser___ReduceAction144___action;
20559 fra.me.has_broke = 0;
20560 fra.me.REG_size = 6;
20561 fra.me.REG[0] = NIT_NULL;
20562 fra.me.REG[1] = NIT_NULL;
20563 fra.me.REG[2] = NIT_NULL;
20564 fra.me.REG[3] = NIT_NULL;
20565 fra.me.REG[4] = NIT_NULL;
20566 fra.me.REG[5] = NIT_NULL;
20567 fra.me.REG[0] = p0;
20568 fra.me.REG[1] = p1;
20569 /* ./parser//parser.nit:6211 */
20570 fra.me.REG[2] = NIT_NULL;
20571 /* ./parser//parser.nit:6212 */
20572 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20573 /* ./parser//parser.nit:6213 */
20574 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20575 /* ./parser//parser.nit:6214 */
20576 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20577 /* ./parser//parser.nit:6216 */
20578 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwredef, ID_TKwredef)) /*cast nullable TKwredef*/;
20579 if (UNTAG_Bool(REGB0)) {
20580 } else {
20581 nit_abort("Assert failed", NULL, LOCATE_parser, 6216);
20582 }
20583 /* ./parser//parser.nit:6218 */
20584 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AVisibility, ID_AVisibility)) /*cast nullable AVisibility*/;
20585 if (UNTAG_Bool(REGB0)) {
20586 } else {
20587 nit_abort("Assert failed", NULL, LOCATE_parser, 6218);
20588 }
20589 /* ./parser//parser.nit:6220 */
20590 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwwritable, ID_TKwwritable)) /*cast nullable TKwwritable*/;
20591 if (UNTAG_Bool(REGB0)) {
20592 } else {
20593 nit_abort("Assert failed", NULL, LOCATE_parser, 6220);
20594 }
20595 /* ./parser//parser.nit:6221 */
20596 fra.me.REG[3] = NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
20597 /* ./parser//parser.nit:6226 */
20598 fra.me.REG[2] = fra.me.REG[3];
20599 /* ./parser//parser.nit:6227 */
20600 REGB0 = TAG_Bool(ATTR_parser___ReduceAction144____goto(fra.me.REG[0])!=NIT_NULL);
20601 if (UNTAG_Bool(REGB0)) {
20602 } else {
20603 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6227);
20604 }
20605 REGB0 = ATTR_parser___ReduceAction144____goto(fra.me.REG[0]);
20606 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20607 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20608 stack_frame_head = fra.me.prev;
20609 return;
20610 }
20611 void parser___ReduceAction144___init(val_t p0, val_t p1, int* init_table){
20612 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction144].i;
20613 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20614 val_t REGB0;
20615 val_t tmp;
20616 if (init_table[itpos147]) return;
20617 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20618 fra.me.file = LOCATE_parser;
20619 fra.me.line = 6230;
20620 fra.me.meth = LOCATE_parser___ReduceAction144___init;
20621 fra.me.has_broke = 0;
20622 fra.me.REG_size = 2;
20623 fra.me.REG[0] = NIT_NULL;
20624 fra.me.REG[1] = NIT_NULL;
20625 fra.me.REG[0] = p0;
20626 REGB0 = p1;
20627 /* ./parser//parser.nit:6230 */
20628 fra.me.REG[1] = fra.me.REG[0];
20629 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20630 ATTR_parser___ReduceAction144____goto(fra.me.REG[1]) = REGB0;
20631 stack_frame_head = fra.me.prev;
20632 init_table[itpos147] = 1;
20633 return;
20634 }
20635 void parser___ReduceAction145___action(val_t p0, val_t p1){
20636 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20637 val_t REGB0;
20638 val_t tmp;
20639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20640 fra.me.file = LOCATE_parser;
20641 fra.me.line = 6234;
20642 fra.me.meth = LOCATE_parser___ReduceAction145___action;
20643 fra.me.has_broke = 0;
20644 fra.me.REG_size = 4;
20645 fra.me.REG[0] = NIT_NULL;
20646 fra.me.REG[1] = NIT_NULL;
20647 fra.me.REG[2] = NIT_NULL;
20648 fra.me.REG[3] = NIT_NULL;
20649 fra.me.REG[0] = p0;
20650 fra.me.REG[1] = p1;
20651 /* ./parser//parser.nit:6236 */
20652 fra.me.REG[2] = NIT_NULL;
20653 /* ./parser//parser.nit:6237 */
20654 fra.me.REG[3] = NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility();
20655 /* ./parser//parser.nit:6239 */
20656 fra.me.REG[2] = fra.me.REG[3];
20657 /* ./parser//parser.nit:6240 */
20658 REGB0 = TAG_Bool(ATTR_parser___ReduceAction145____goto(fra.me.REG[0])!=NIT_NULL);
20659 if (UNTAG_Bool(REGB0)) {
20660 } else {
20661 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6240);
20662 }
20663 REGB0 = ATTR_parser___ReduceAction145____goto(fra.me.REG[0]);
20664 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20665 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20666 stack_frame_head = fra.me.prev;
20667 return;
20668 }
20669 void parser___ReduceAction145___init(val_t p0, val_t p1, int* init_table){
20670 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction145].i;
20671 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20672 val_t REGB0;
20673 val_t tmp;
20674 if (init_table[itpos148]) return;
20675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20676 fra.me.file = LOCATE_parser;
20677 fra.me.line = 6243;
20678 fra.me.meth = LOCATE_parser___ReduceAction145___init;
20679 fra.me.has_broke = 0;
20680 fra.me.REG_size = 2;
20681 fra.me.REG[0] = NIT_NULL;
20682 fra.me.REG[1] = NIT_NULL;
20683 fra.me.REG[0] = p0;
20684 REGB0 = p1;
20685 /* ./parser//parser.nit:6243 */
20686 fra.me.REG[1] = fra.me.REG[0];
20687 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20688 ATTR_parser___ReduceAction145____goto(fra.me.REG[1]) = REGB0;
20689 stack_frame_head = fra.me.prev;
20690 init_table[itpos148] = 1;
20691 return;
20692 }
20693 void parser___ReduceAction146___action(val_t p0, val_t p1){
20694 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20695 val_t REGB0;
20696 val_t tmp;
20697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20698 fra.me.file = LOCATE_parser;
20699 fra.me.line = 6247;
20700 fra.me.meth = LOCATE_parser___ReduceAction146___action;
20701 fra.me.has_broke = 0;
20702 fra.me.REG_size = 4;
20703 fra.me.REG[0] = NIT_NULL;
20704 fra.me.REG[1] = NIT_NULL;
20705 fra.me.REG[2] = NIT_NULL;
20706 fra.me.REG[3] = NIT_NULL;
20707 fra.me.REG[0] = p0;
20708 fra.me.REG[1] = p1;
20709 /* ./parser//parser.nit:6249 */
20710 fra.me.REG[2] = NIT_NULL;
20711 /* ./parser//parser.nit:6250 */
20712 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20713 /* ./parser//parser.nit:6251 */
20714 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20715 /* ./parser//parser.nit:6253 */
20716 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwprivate, ID_TKwprivate)) /*cast nullable TKwprivate*/;
20717 if (UNTAG_Bool(REGB0)) {
20718 } else {
20719 nit_abort("Assert failed", NULL, LOCATE_parser, 6253);
20720 }
20721 /* ./parser//parser.nit:6254 */
20722 fra.me.REG[3] = NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility(fra.me.REG[3]);
20723 /* ./parser//parser.nit:6257 */
20724 fra.me.REG[2] = fra.me.REG[3];
20725 /* ./parser//parser.nit:6258 */
20726 REGB0 = TAG_Bool(ATTR_parser___ReduceAction146____goto(fra.me.REG[0])!=NIT_NULL);
20727 if (UNTAG_Bool(REGB0)) {
20728 } else {
20729 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6258);
20730 }
20731 REGB0 = ATTR_parser___ReduceAction146____goto(fra.me.REG[0]);
20732 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20733 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20734 stack_frame_head = fra.me.prev;
20735 return;
20736 }
20737 void parser___ReduceAction146___init(val_t p0, val_t p1, int* init_table){
20738 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction146].i;
20739 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20740 val_t REGB0;
20741 val_t tmp;
20742 if (init_table[itpos149]) return;
20743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20744 fra.me.file = LOCATE_parser;
20745 fra.me.line = 6261;
20746 fra.me.meth = LOCATE_parser___ReduceAction146___init;
20747 fra.me.has_broke = 0;
20748 fra.me.REG_size = 2;
20749 fra.me.REG[0] = NIT_NULL;
20750 fra.me.REG[1] = NIT_NULL;
20751 fra.me.REG[0] = p0;
20752 REGB0 = p1;
20753 /* ./parser//parser.nit:6261 */
20754 fra.me.REG[1] = fra.me.REG[0];
20755 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20756 ATTR_parser___ReduceAction146____goto(fra.me.REG[1]) = REGB0;
20757 stack_frame_head = fra.me.prev;
20758 init_table[itpos149] = 1;
20759 return;
20760 }
20761 void parser___ReduceAction147___action(val_t p0, val_t p1){
20762 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20763 val_t REGB0;
20764 val_t tmp;
20765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20766 fra.me.file = LOCATE_parser;
20767 fra.me.line = 6265;
20768 fra.me.meth = LOCATE_parser___ReduceAction147___action;
20769 fra.me.has_broke = 0;
20770 fra.me.REG_size = 4;
20771 fra.me.REG[0] = NIT_NULL;
20772 fra.me.REG[1] = NIT_NULL;
20773 fra.me.REG[2] = NIT_NULL;
20774 fra.me.REG[3] = NIT_NULL;
20775 fra.me.REG[0] = p0;
20776 fra.me.REG[1] = p1;
20777 /* ./parser//parser.nit:6267 */
20778 fra.me.REG[2] = NIT_NULL;
20779 /* ./parser//parser.nit:6268 */
20780 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20781 /* ./parser//parser.nit:6269 */
20782 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20783 /* ./parser//parser.nit:6271 */
20784 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwprotected, ID_TKwprotected)) /*cast nullable TKwprotected*/;
20785 if (UNTAG_Bool(REGB0)) {
20786 } else {
20787 nit_abort("Assert failed", NULL, LOCATE_parser, 6271);
20788 }
20789 /* ./parser//parser.nit:6272 */
20790 fra.me.REG[3] = NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility(fra.me.REG[3]);
20791 /* ./parser//parser.nit:6275 */
20792 fra.me.REG[2] = fra.me.REG[3];
20793 /* ./parser//parser.nit:6276 */
20794 REGB0 = TAG_Bool(ATTR_parser___ReduceAction147____goto(fra.me.REG[0])!=NIT_NULL);
20795 if (UNTAG_Bool(REGB0)) {
20796 } else {
20797 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6276);
20798 }
20799 REGB0 = ATTR_parser___ReduceAction147____goto(fra.me.REG[0]);
20800 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20801 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20802 stack_frame_head = fra.me.prev;
20803 return;
20804 }
20805 void parser___ReduceAction147___init(val_t p0, val_t p1, int* init_table){
20806 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction147].i;
20807 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20808 val_t REGB0;
20809 val_t tmp;
20810 if (init_table[itpos150]) return;
20811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20812 fra.me.file = LOCATE_parser;
20813 fra.me.line = 6279;
20814 fra.me.meth = LOCATE_parser___ReduceAction147___init;
20815 fra.me.has_broke = 0;
20816 fra.me.REG_size = 2;
20817 fra.me.REG[0] = NIT_NULL;
20818 fra.me.REG[1] = NIT_NULL;
20819 fra.me.REG[0] = p0;
20820 REGB0 = p1;
20821 /* ./parser//parser.nit:6279 */
20822 fra.me.REG[1] = fra.me.REG[0];
20823 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20824 ATTR_parser___ReduceAction147____goto(fra.me.REG[1]) = REGB0;
20825 stack_frame_head = fra.me.prev;
20826 init_table[itpos150] = 1;
20827 return;
20828 }
20829 void parser___ReduceAction148___action(val_t p0, val_t p1){
20830 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20831 val_t REGB0;
20832 val_t tmp;
20833 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20834 fra.me.file = LOCATE_parser;
20835 fra.me.line = 6283;
20836 fra.me.meth = LOCATE_parser___ReduceAction148___action;
20837 fra.me.has_broke = 0;
20838 fra.me.REG_size = 4;
20839 fra.me.REG[0] = NIT_NULL;
20840 fra.me.REG[1] = NIT_NULL;
20841 fra.me.REG[2] = NIT_NULL;
20842 fra.me.REG[3] = NIT_NULL;
20843 fra.me.REG[0] = p0;
20844 fra.me.REG[1] = p1;
20845 /* ./parser//parser.nit:6285 */
20846 fra.me.REG[2] = NIT_NULL;
20847 /* ./parser//parser.nit:6286 */
20848 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20849 /* ./parser//parser.nit:6287 */
20850 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20851 /* ./parser//parser.nit:6289 */
20852 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwintrude, ID_TKwintrude)) /*cast nullable TKwintrude*/;
20853 if (UNTAG_Bool(REGB0)) {
20854 } else {
20855 nit_abort("Assert failed", NULL, LOCATE_parser, 6289);
20856 }
20857 /* ./parser//parser.nit:6290 */
20858 fra.me.REG[3] = NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[3]);
20859 /* ./parser//parser.nit:6293 */
20860 fra.me.REG[2] = fra.me.REG[3];
20861 /* ./parser//parser.nit:6294 */
20862 REGB0 = TAG_Bool(ATTR_parser___ReduceAction148____goto(fra.me.REG[0])!=NIT_NULL);
20863 if (UNTAG_Bool(REGB0)) {
20864 } else {
20865 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6294);
20866 }
20867 REGB0 = ATTR_parser___ReduceAction148____goto(fra.me.REG[0]);
20868 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20869 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20870 stack_frame_head = fra.me.prev;
20871 return;
20872 }
20873 void parser___ReduceAction148___init(val_t p0, val_t p1, int* init_table){
20874 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction148].i;
20875 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20876 val_t REGB0;
20877 val_t tmp;
20878 if (init_table[itpos151]) return;
20879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20880 fra.me.file = LOCATE_parser;
20881 fra.me.line = 6297;
20882 fra.me.meth = LOCATE_parser___ReduceAction148___init;
20883 fra.me.has_broke = 0;
20884 fra.me.REG_size = 2;
20885 fra.me.REG[0] = NIT_NULL;
20886 fra.me.REG[1] = NIT_NULL;
20887 fra.me.REG[0] = p0;
20888 REGB0 = p1;
20889 /* ./parser//parser.nit:6297 */
20890 fra.me.REG[1] = fra.me.REG[0];
20891 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20892 ATTR_parser___ReduceAction148____goto(fra.me.REG[1]) = REGB0;
20893 stack_frame_head = fra.me.prev;
20894 init_table[itpos151] = 1;
20895 return;
20896 }
20897 void parser___ReduceAction149___action(val_t p0, val_t p1){
20898 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20899 val_t REGB0;
20900 val_t tmp;
20901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20902 fra.me.file = LOCATE_parser;
20903 fra.me.line = 6301;
20904 fra.me.meth = LOCATE_parser___ReduceAction149___action;
20905 fra.me.has_broke = 0;
20906 fra.me.REG_size = 4;
20907 fra.me.REG[0] = NIT_NULL;
20908 fra.me.REG[1] = NIT_NULL;
20909 fra.me.REG[2] = NIT_NULL;
20910 fra.me.REG[3] = NIT_NULL;
20911 fra.me.REG[0] = p0;
20912 fra.me.REG[1] = p1;
20913 /* ./parser//parser.nit:6303 */
20914 fra.me.REG[2] = NIT_NULL;
20915 /* ./parser//parser.nit:6304 */
20916 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20917 /* ./parser//parser.nit:6306 */
20918 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
20919 if (UNTAG_Bool(REGB0)) {
20920 } else {
20921 nit_abort("Assert failed", NULL, LOCATE_parser, 6306);
20922 }
20923 /* ./parser//parser.nit:6307 */
20924 fra.me.REG[3] = NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid(fra.me.REG[3]);
20925 /* ./parser//parser.nit:6310 */
20926 fra.me.REG[2] = fra.me.REG[3];
20927 /* ./parser//parser.nit:6311 */
20928 REGB0 = TAG_Bool(ATTR_parser___ReduceAction149____goto(fra.me.REG[0])!=NIT_NULL);
20929 if (UNTAG_Bool(REGB0)) {
20930 } else {
20931 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6311);
20932 }
20933 REGB0 = ATTR_parser___ReduceAction149____goto(fra.me.REG[0]);
20934 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
20935 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
20936 stack_frame_head = fra.me.prev;
20937 return;
20938 }
20939 void parser___ReduceAction149___init(val_t p0, val_t p1, int* init_table){
20940 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction149].i;
20941 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20942 val_t REGB0;
20943 val_t tmp;
20944 if (init_table[itpos152]) return;
20945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20946 fra.me.file = LOCATE_parser;
20947 fra.me.line = 6314;
20948 fra.me.meth = LOCATE_parser___ReduceAction149___init;
20949 fra.me.has_broke = 0;
20950 fra.me.REG_size = 2;
20951 fra.me.REG[0] = NIT_NULL;
20952 fra.me.REG[1] = NIT_NULL;
20953 fra.me.REG[0] = p0;
20954 REGB0 = p1;
20955 /* ./parser//parser.nit:6314 */
20956 fra.me.REG[1] = fra.me.REG[0];
20957 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
20958 ATTR_parser___ReduceAction149____goto(fra.me.REG[1]) = REGB0;
20959 stack_frame_head = fra.me.prev;
20960 init_table[itpos152] = 1;
20961 return;
20962 }
20963 void parser___ReduceAction150___action(val_t p0, val_t p1){
20964 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20965 val_t REGB0;
20966 val_t tmp;
20967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20968 fra.me.file = LOCATE_parser;
20969 fra.me.line = 6318;
20970 fra.me.meth = LOCATE_parser___ReduceAction150___action;
20971 fra.me.has_broke = 0;
20972 fra.me.REG_size = 4;
20973 fra.me.REG[0] = NIT_NULL;
20974 fra.me.REG[1] = NIT_NULL;
20975 fra.me.REG[2] = NIT_NULL;
20976 fra.me.REG[3] = NIT_NULL;
20977 fra.me.REG[0] = p0;
20978 fra.me.REG[1] = p1;
20979 /* ./parser//parser.nit:6320 */
20980 fra.me.REG[2] = NIT_NULL;
20981 /* ./parser//parser.nit:6321 */
20982 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
20983 /* ./parser//parser.nit:6323 */
20984 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TPlus, ID_TPlus)) /*cast nullable TPlus*/;
20985 if (UNTAG_Bool(REGB0)) {
20986 } else {
20987 nit_abort("Assert failed", NULL, LOCATE_parser, 6323);
20988 }
20989 /* ./parser//parser.nit:6324 */
20990 fra.me.REG[3] = NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid(fra.me.REG[3]);
20991 /* ./parser//parser.nit:6327 */
20992 fra.me.REG[2] = fra.me.REG[3];
20993 /* ./parser//parser.nit:6328 */
20994 REGB0 = TAG_Bool(ATTR_parser___ReduceAction150____goto(fra.me.REG[0])!=NIT_NULL);
20995 if (UNTAG_Bool(REGB0)) {
20996 } else {
20997 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6328);
20998 }
20999 REGB0 = ATTR_parser___ReduceAction150____goto(fra.me.REG[0]);
21000 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21001 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21002 stack_frame_head = fra.me.prev;
21003 return;
21004 }
21005 void parser___ReduceAction150___init(val_t p0, val_t p1, int* init_table){
21006 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction150].i;
21007 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21008 val_t REGB0;
21009 val_t tmp;
21010 if (init_table[itpos153]) return;
21011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21012 fra.me.file = LOCATE_parser;
21013 fra.me.line = 6331;
21014 fra.me.meth = LOCATE_parser___ReduceAction150___init;
21015 fra.me.has_broke = 0;
21016 fra.me.REG_size = 2;
21017 fra.me.REG[0] = NIT_NULL;
21018 fra.me.REG[1] = NIT_NULL;
21019 fra.me.REG[0] = p0;
21020 REGB0 = p1;
21021 /* ./parser//parser.nit:6331 */
21022 fra.me.REG[1] = fra.me.REG[0];
21023 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21024 ATTR_parser___ReduceAction150____goto(fra.me.REG[1]) = REGB0;
21025 stack_frame_head = fra.me.prev;
21026 init_table[itpos153] = 1;
21027 return;
21028 }
21029 void parser___ReduceAction151___action(val_t p0, val_t p1){
21030 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21031 val_t REGB0;
21032 val_t tmp;
21033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21034 fra.me.file = LOCATE_parser;
21035 fra.me.line = 6335;
21036 fra.me.meth = LOCATE_parser___ReduceAction151___action;
21037 fra.me.has_broke = 0;
21038 fra.me.REG_size = 4;
21039 fra.me.REG[0] = NIT_NULL;
21040 fra.me.REG[1] = NIT_NULL;
21041 fra.me.REG[2] = NIT_NULL;
21042 fra.me.REG[3] = NIT_NULL;
21043 fra.me.REG[0] = p0;
21044 fra.me.REG[1] = p1;
21045 /* ./parser//parser.nit:6337 */
21046 fra.me.REG[2] = NIT_NULL;
21047 /* ./parser//parser.nit:6338 */
21048 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21049 /* ./parser//parser.nit:6340 */
21050 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TMinus, ID_TMinus)) /*cast nullable TMinus*/;
21051 if (UNTAG_Bool(REGB0)) {
21052 } else {
21053 nit_abort("Assert failed", NULL, LOCATE_parser, 6340);
21054 }
21055 /* ./parser//parser.nit:6341 */
21056 fra.me.REG[3] = NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid(fra.me.REG[3]);
21057 /* ./parser//parser.nit:6344 */
21058 fra.me.REG[2] = fra.me.REG[3];
21059 /* ./parser//parser.nit:6345 */
21060 REGB0 = TAG_Bool(ATTR_parser___ReduceAction151____goto(fra.me.REG[0])!=NIT_NULL);
21061 if (UNTAG_Bool(REGB0)) {
21062 } else {
21063 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6345);
21064 }
21065 REGB0 = ATTR_parser___ReduceAction151____goto(fra.me.REG[0]);
21066 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21067 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21068 stack_frame_head = fra.me.prev;
21069 return;
21070 }
21071 void parser___ReduceAction151___init(val_t p0, val_t p1, int* init_table){
21072 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction151].i;
21073 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21074 val_t REGB0;
21075 val_t tmp;
21076 if (init_table[itpos154]) return;
21077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21078 fra.me.file = LOCATE_parser;
21079 fra.me.line = 6348;
21080 fra.me.meth = LOCATE_parser___ReduceAction151___init;
21081 fra.me.has_broke = 0;
21082 fra.me.REG_size = 2;
21083 fra.me.REG[0] = NIT_NULL;
21084 fra.me.REG[1] = NIT_NULL;
21085 fra.me.REG[0] = p0;
21086 REGB0 = p1;
21087 /* ./parser//parser.nit:6348 */
21088 fra.me.REG[1] = fra.me.REG[0];
21089 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21090 ATTR_parser___ReduceAction151____goto(fra.me.REG[1]) = REGB0;
21091 stack_frame_head = fra.me.prev;
21092 init_table[itpos154] = 1;
21093 return;
21094 }
21095 void parser___ReduceAction152___action(val_t p0, val_t p1){
21096 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21097 val_t REGB0;
21098 val_t tmp;
21099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21100 fra.me.file = LOCATE_parser;
21101 fra.me.line = 6352;
21102 fra.me.meth = LOCATE_parser___ReduceAction152___action;
21103 fra.me.has_broke = 0;
21104 fra.me.REG_size = 4;
21105 fra.me.REG[0] = NIT_NULL;
21106 fra.me.REG[1] = NIT_NULL;
21107 fra.me.REG[2] = NIT_NULL;
21108 fra.me.REG[3] = NIT_NULL;
21109 fra.me.REG[0] = p0;
21110 fra.me.REG[1] = p1;
21111 /* ./parser//parser.nit:6354 */
21112 fra.me.REG[2] = NIT_NULL;
21113 /* ./parser//parser.nit:6355 */
21114 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21115 /* ./parser//parser.nit:6357 */
21116 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TStar, ID_TStar)) /*cast nullable TStar*/;
21117 if (UNTAG_Bool(REGB0)) {
21118 } else {
21119 nit_abort("Assert failed", NULL, LOCATE_parser, 6357);
21120 }
21121 /* ./parser//parser.nit:6358 */
21122 fra.me.REG[3] = NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid(fra.me.REG[3]);
21123 /* ./parser//parser.nit:6361 */
21124 fra.me.REG[2] = fra.me.REG[3];
21125 /* ./parser//parser.nit:6362 */
21126 REGB0 = TAG_Bool(ATTR_parser___ReduceAction152____goto(fra.me.REG[0])!=NIT_NULL);
21127 if (UNTAG_Bool(REGB0)) {
21128 } else {
21129 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6362);
21130 }
21131 REGB0 = ATTR_parser___ReduceAction152____goto(fra.me.REG[0]);
21132 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21133 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21134 stack_frame_head = fra.me.prev;
21135 return;
21136 }
21137 void parser___ReduceAction152___init(val_t p0, val_t p1, int* init_table){
21138 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction152].i;
21139 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21140 val_t REGB0;
21141 val_t tmp;
21142 if (init_table[itpos155]) return;
21143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21144 fra.me.file = LOCATE_parser;
21145 fra.me.line = 6365;
21146 fra.me.meth = LOCATE_parser___ReduceAction152___init;
21147 fra.me.has_broke = 0;
21148 fra.me.REG_size = 2;
21149 fra.me.REG[0] = NIT_NULL;
21150 fra.me.REG[1] = NIT_NULL;
21151 fra.me.REG[0] = p0;
21152 REGB0 = p1;
21153 /* ./parser//parser.nit:6365 */
21154 fra.me.REG[1] = fra.me.REG[0];
21155 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21156 ATTR_parser___ReduceAction152____goto(fra.me.REG[1]) = REGB0;
21157 stack_frame_head = fra.me.prev;
21158 init_table[itpos155] = 1;
21159 return;
21160 }
21161 void parser___ReduceAction153___action(val_t p0, val_t p1){
21162 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21163 val_t REGB0;
21164 val_t tmp;
21165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21166 fra.me.file = LOCATE_parser;
21167 fra.me.line = 6369;
21168 fra.me.meth = LOCATE_parser___ReduceAction153___action;
21169 fra.me.has_broke = 0;
21170 fra.me.REG_size = 4;
21171 fra.me.REG[0] = NIT_NULL;
21172 fra.me.REG[1] = NIT_NULL;
21173 fra.me.REG[2] = NIT_NULL;
21174 fra.me.REG[3] = NIT_NULL;
21175 fra.me.REG[0] = p0;
21176 fra.me.REG[1] = p1;
21177 /* ./parser//parser.nit:6371 */
21178 fra.me.REG[2] = NIT_NULL;
21179 /* ./parser//parser.nit:6372 */
21180 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21181 /* ./parser//parser.nit:6374 */
21182 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TSlash, ID_TSlash)) /*cast nullable TSlash*/;
21183 if (UNTAG_Bool(REGB0)) {
21184 } else {
21185 nit_abort("Assert failed", NULL, LOCATE_parser, 6374);
21186 }
21187 /* ./parser//parser.nit:6375 */
21188 fra.me.REG[3] = NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid(fra.me.REG[3]);
21189 /* ./parser//parser.nit:6378 */
21190 fra.me.REG[2] = fra.me.REG[3];
21191 /* ./parser//parser.nit:6379 */
21192 REGB0 = TAG_Bool(ATTR_parser___ReduceAction153____goto(fra.me.REG[0])!=NIT_NULL);
21193 if (UNTAG_Bool(REGB0)) {
21194 } else {
21195 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6379);
21196 }
21197 REGB0 = ATTR_parser___ReduceAction153____goto(fra.me.REG[0]);
21198 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21199 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21200 stack_frame_head = fra.me.prev;
21201 return;
21202 }
21203 void parser___ReduceAction153___init(val_t p0, val_t p1, int* init_table){
21204 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction153].i;
21205 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21206 val_t REGB0;
21207 val_t tmp;
21208 if (init_table[itpos156]) return;
21209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21210 fra.me.file = LOCATE_parser;
21211 fra.me.line = 6382;
21212 fra.me.meth = LOCATE_parser___ReduceAction153___init;
21213 fra.me.has_broke = 0;
21214 fra.me.REG_size = 2;
21215 fra.me.REG[0] = NIT_NULL;
21216 fra.me.REG[1] = NIT_NULL;
21217 fra.me.REG[0] = p0;
21218 REGB0 = p1;
21219 /* ./parser//parser.nit:6382 */
21220 fra.me.REG[1] = fra.me.REG[0];
21221 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21222 ATTR_parser___ReduceAction153____goto(fra.me.REG[1]) = REGB0;
21223 stack_frame_head = fra.me.prev;
21224 init_table[itpos156] = 1;
21225 return;
21226 }
21227 void parser___ReduceAction154___action(val_t p0, val_t p1){
21228 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21229 val_t REGB0;
21230 val_t tmp;
21231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21232 fra.me.file = LOCATE_parser;
21233 fra.me.line = 6386;
21234 fra.me.meth = LOCATE_parser___ReduceAction154___action;
21235 fra.me.has_broke = 0;
21236 fra.me.REG_size = 4;
21237 fra.me.REG[0] = NIT_NULL;
21238 fra.me.REG[1] = NIT_NULL;
21239 fra.me.REG[2] = NIT_NULL;
21240 fra.me.REG[3] = NIT_NULL;
21241 fra.me.REG[0] = p0;
21242 fra.me.REG[1] = p1;
21243 /* ./parser//parser.nit:6388 */
21244 fra.me.REG[2] = NIT_NULL;
21245 /* ./parser//parser.nit:6389 */
21246 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21247 /* ./parser//parser.nit:6391 */
21248 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TPercent, ID_TPercent)) /*cast nullable TPercent*/;
21249 if (UNTAG_Bool(REGB0)) {
21250 } else {
21251 nit_abort("Assert failed", NULL, LOCATE_parser, 6391);
21252 }
21253 /* ./parser//parser.nit:6392 */
21254 fra.me.REG[3] = NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid(fra.me.REG[3]);
21255 /* ./parser//parser.nit:6395 */
21256 fra.me.REG[2] = fra.me.REG[3];
21257 /* ./parser//parser.nit:6396 */
21258 REGB0 = TAG_Bool(ATTR_parser___ReduceAction154____goto(fra.me.REG[0])!=NIT_NULL);
21259 if (UNTAG_Bool(REGB0)) {
21260 } else {
21261 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6396);
21262 }
21263 REGB0 = ATTR_parser___ReduceAction154____goto(fra.me.REG[0]);
21264 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21265 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21266 stack_frame_head = fra.me.prev;
21267 return;
21268 }
21269 void parser___ReduceAction154___init(val_t p0, val_t p1, int* init_table){
21270 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction154].i;
21271 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21272 val_t REGB0;
21273 val_t tmp;
21274 if (init_table[itpos157]) return;
21275 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21276 fra.me.file = LOCATE_parser;
21277 fra.me.line = 6399;
21278 fra.me.meth = LOCATE_parser___ReduceAction154___init;
21279 fra.me.has_broke = 0;
21280 fra.me.REG_size = 2;
21281 fra.me.REG[0] = NIT_NULL;
21282 fra.me.REG[1] = NIT_NULL;
21283 fra.me.REG[0] = p0;
21284 REGB0 = p1;
21285 /* ./parser//parser.nit:6399 */
21286 fra.me.REG[1] = fra.me.REG[0];
21287 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21288 ATTR_parser___ReduceAction154____goto(fra.me.REG[1]) = REGB0;
21289 stack_frame_head = fra.me.prev;
21290 init_table[itpos157] = 1;
21291 return;
21292 }
21293 void parser___ReduceAction155___action(val_t p0, val_t p1){
21294 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21295 val_t REGB0;
21296 val_t tmp;
21297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21298 fra.me.file = LOCATE_parser;
21299 fra.me.line = 6403;
21300 fra.me.meth = LOCATE_parser___ReduceAction155___action;
21301 fra.me.has_broke = 0;
21302 fra.me.REG_size = 4;
21303 fra.me.REG[0] = NIT_NULL;
21304 fra.me.REG[1] = NIT_NULL;
21305 fra.me.REG[2] = NIT_NULL;
21306 fra.me.REG[3] = NIT_NULL;
21307 fra.me.REG[0] = p0;
21308 fra.me.REG[1] = p1;
21309 /* ./parser//parser.nit:6405 */
21310 fra.me.REG[2] = NIT_NULL;
21311 /* ./parser//parser.nit:6406 */
21312 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21313 /* ./parser//parser.nit:6408 */
21314 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TEq, ID_TEq)) /*cast nullable TEq*/;
21315 if (UNTAG_Bool(REGB0)) {
21316 } else {
21317 nit_abort("Assert failed", NULL, LOCATE_parser, 6408);
21318 }
21319 /* ./parser//parser.nit:6409 */
21320 fra.me.REG[3] = NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid(fra.me.REG[3]);
21321 /* ./parser//parser.nit:6412 */
21322 fra.me.REG[2] = fra.me.REG[3];
21323 /* ./parser//parser.nit:6413 */
21324 REGB0 = TAG_Bool(ATTR_parser___ReduceAction155____goto(fra.me.REG[0])!=NIT_NULL);
21325 if (UNTAG_Bool(REGB0)) {
21326 } else {
21327 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6413);
21328 }
21329 REGB0 = ATTR_parser___ReduceAction155____goto(fra.me.REG[0]);
21330 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21331 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21332 stack_frame_head = fra.me.prev;
21333 return;
21334 }
21335 void parser___ReduceAction155___init(val_t p0, val_t p1, int* init_table){
21336 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction155].i;
21337 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21338 val_t REGB0;
21339 val_t tmp;
21340 if (init_table[itpos158]) return;
21341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21342 fra.me.file = LOCATE_parser;
21343 fra.me.line = 6416;
21344 fra.me.meth = LOCATE_parser___ReduceAction155___init;
21345 fra.me.has_broke = 0;
21346 fra.me.REG_size = 2;
21347 fra.me.REG[0] = NIT_NULL;
21348 fra.me.REG[1] = NIT_NULL;
21349 fra.me.REG[0] = p0;
21350 REGB0 = p1;
21351 /* ./parser//parser.nit:6416 */
21352 fra.me.REG[1] = fra.me.REG[0];
21353 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21354 ATTR_parser___ReduceAction155____goto(fra.me.REG[1]) = REGB0;
21355 stack_frame_head = fra.me.prev;
21356 init_table[itpos158] = 1;
21357 return;
21358 }
21359 void parser___ReduceAction156___action(val_t p0, val_t p1){
21360 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21361 val_t REGB0;
21362 val_t tmp;
21363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21364 fra.me.file = LOCATE_parser;
21365 fra.me.line = 6420;
21366 fra.me.meth = LOCATE_parser___ReduceAction156___action;
21367 fra.me.has_broke = 0;
21368 fra.me.REG_size = 4;
21369 fra.me.REG[0] = NIT_NULL;
21370 fra.me.REG[1] = NIT_NULL;
21371 fra.me.REG[2] = NIT_NULL;
21372 fra.me.REG[3] = NIT_NULL;
21373 fra.me.REG[0] = p0;
21374 fra.me.REG[1] = p1;
21375 /* ./parser//parser.nit:6422 */
21376 fra.me.REG[2] = NIT_NULL;
21377 /* ./parser//parser.nit:6423 */
21378 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21379 /* ./parser//parser.nit:6425 */
21380 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TNe, ID_TNe)) /*cast nullable TNe*/;
21381 if (UNTAG_Bool(REGB0)) {
21382 } else {
21383 nit_abort("Assert failed", NULL, LOCATE_parser, 6425);
21384 }
21385 /* ./parser//parser.nit:6426 */
21386 fra.me.REG[3] = NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid(fra.me.REG[3]);
21387 /* ./parser//parser.nit:6429 */
21388 fra.me.REG[2] = fra.me.REG[3];
21389 /* ./parser//parser.nit:6430 */
21390 REGB0 = TAG_Bool(ATTR_parser___ReduceAction156____goto(fra.me.REG[0])!=NIT_NULL);
21391 if (UNTAG_Bool(REGB0)) {
21392 } else {
21393 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6430);
21394 }
21395 REGB0 = ATTR_parser___ReduceAction156____goto(fra.me.REG[0]);
21396 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21397 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21398 stack_frame_head = fra.me.prev;
21399 return;
21400 }
21401 void parser___ReduceAction156___init(val_t p0, val_t p1, int* init_table){
21402 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction156].i;
21403 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21404 val_t REGB0;
21405 val_t tmp;
21406 if (init_table[itpos159]) return;
21407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21408 fra.me.file = LOCATE_parser;
21409 fra.me.line = 6433;
21410 fra.me.meth = LOCATE_parser___ReduceAction156___init;
21411 fra.me.has_broke = 0;
21412 fra.me.REG_size = 2;
21413 fra.me.REG[0] = NIT_NULL;
21414 fra.me.REG[1] = NIT_NULL;
21415 fra.me.REG[0] = p0;
21416 REGB0 = p1;
21417 /* ./parser//parser.nit:6433 */
21418 fra.me.REG[1] = fra.me.REG[0];
21419 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21420 ATTR_parser___ReduceAction156____goto(fra.me.REG[1]) = REGB0;
21421 stack_frame_head = fra.me.prev;
21422 init_table[itpos159] = 1;
21423 return;
21424 }
21425 void parser___ReduceAction157___action(val_t p0, val_t p1){
21426 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21427 val_t REGB0;
21428 val_t tmp;
21429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21430 fra.me.file = LOCATE_parser;
21431 fra.me.line = 6437;
21432 fra.me.meth = LOCATE_parser___ReduceAction157___action;
21433 fra.me.has_broke = 0;
21434 fra.me.REG_size = 4;
21435 fra.me.REG[0] = NIT_NULL;
21436 fra.me.REG[1] = NIT_NULL;
21437 fra.me.REG[2] = NIT_NULL;
21438 fra.me.REG[3] = NIT_NULL;
21439 fra.me.REG[0] = p0;
21440 fra.me.REG[1] = p1;
21441 /* ./parser//parser.nit:6439 */
21442 fra.me.REG[2] = NIT_NULL;
21443 /* ./parser//parser.nit:6440 */
21444 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21445 /* ./parser//parser.nit:6442 */
21446 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TLe, ID_TLe)) /*cast nullable TLe*/;
21447 if (UNTAG_Bool(REGB0)) {
21448 } else {
21449 nit_abort("Assert failed", NULL, LOCATE_parser, 6442);
21450 }
21451 /* ./parser//parser.nit:6443 */
21452 fra.me.REG[3] = NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid(fra.me.REG[3]);
21453 /* ./parser//parser.nit:6446 */
21454 fra.me.REG[2] = fra.me.REG[3];
21455 /* ./parser//parser.nit:6447 */
21456 REGB0 = TAG_Bool(ATTR_parser___ReduceAction157____goto(fra.me.REG[0])!=NIT_NULL);
21457 if (UNTAG_Bool(REGB0)) {
21458 } else {
21459 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6447);
21460 }
21461 REGB0 = ATTR_parser___ReduceAction157____goto(fra.me.REG[0]);
21462 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21463 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21464 stack_frame_head = fra.me.prev;
21465 return;
21466 }
21467 void parser___ReduceAction157___init(val_t p0, val_t p1, int* init_table){
21468 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction157].i;
21469 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21470 val_t REGB0;
21471 val_t tmp;
21472 if (init_table[itpos160]) return;
21473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21474 fra.me.file = LOCATE_parser;
21475 fra.me.line = 6450;
21476 fra.me.meth = LOCATE_parser___ReduceAction157___init;
21477 fra.me.has_broke = 0;
21478 fra.me.REG_size = 2;
21479 fra.me.REG[0] = NIT_NULL;
21480 fra.me.REG[1] = NIT_NULL;
21481 fra.me.REG[0] = p0;
21482 REGB0 = p1;
21483 /* ./parser//parser.nit:6450 */
21484 fra.me.REG[1] = fra.me.REG[0];
21485 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21486 ATTR_parser___ReduceAction157____goto(fra.me.REG[1]) = REGB0;
21487 stack_frame_head = fra.me.prev;
21488 init_table[itpos160] = 1;
21489 return;
21490 }
21491 void parser___ReduceAction158___action(val_t p0, val_t p1){
21492 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21493 val_t REGB0;
21494 val_t tmp;
21495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21496 fra.me.file = LOCATE_parser;
21497 fra.me.line = 6454;
21498 fra.me.meth = LOCATE_parser___ReduceAction158___action;
21499 fra.me.has_broke = 0;
21500 fra.me.REG_size = 4;
21501 fra.me.REG[0] = NIT_NULL;
21502 fra.me.REG[1] = NIT_NULL;
21503 fra.me.REG[2] = NIT_NULL;
21504 fra.me.REG[3] = NIT_NULL;
21505 fra.me.REG[0] = p0;
21506 fra.me.REG[1] = p1;
21507 /* ./parser//parser.nit:6456 */
21508 fra.me.REG[2] = NIT_NULL;
21509 /* ./parser//parser.nit:6457 */
21510 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21511 /* ./parser//parser.nit:6459 */
21512 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TGe, ID_TGe)) /*cast nullable TGe*/;
21513 if (UNTAG_Bool(REGB0)) {
21514 } else {
21515 nit_abort("Assert failed", NULL, LOCATE_parser, 6459);
21516 }
21517 /* ./parser//parser.nit:6460 */
21518 fra.me.REG[3] = NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid(fra.me.REG[3]);
21519 /* ./parser//parser.nit:6463 */
21520 fra.me.REG[2] = fra.me.REG[3];
21521 /* ./parser//parser.nit:6464 */
21522 REGB0 = TAG_Bool(ATTR_parser___ReduceAction158____goto(fra.me.REG[0])!=NIT_NULL);
21523 if (UNTAG_Bool(REGB0)) {
21524 } else {
21525 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6464);
21526 }
21527 REGB0 = ATTR_parser___ReduceAction158____goto(fra.me.REG[0]);
21528 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21529 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21530 stack_frame_head = fra.me.prev;
21531 return;
21532 }
21533 void parser___ReduceAction158___init(val_t p0, val_t p1, int* init_table){
21534 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction158].i;
21535 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21536 val_t REGB0;
21537 val_t tmp;
21538 if (init_table[itpos161]) return;
21539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21540 fra.me.file = LOCATE_parser;
21541 fra.me.line = 6467;
21542 fra.me.meth = LOCATE_parser___ReduceAction158___init;
21543 fra.me.has_broke = 0;
21544 fra.me.REG_size = 2;
21545 fra.me.REG[0] = NIT_NULL;
21546 fra.me.REG[1] = NIT_NULL;
21547 fra.me.REG[0] = p0;
21548 REGB0 = p1;
21549 /* ./parser//parser.nit:6467 */
21550 fra.me.REG[1] = fra.me.REG[0];
21551 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21552 ATTR_parser___ReduceAction158____goto(fra.me.REG[1]) = REGB0;
21553 stack_frame_head = fra.me.prev;
21554 init_table[itpos161] = 1;
21555 return;
21556 }
21557 void parser___ReduceAction159___action(val_t p0, val_t p1){
21558 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21559 val_t REGB0;
21560 val_t tmp;
21561 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21562 fra.me.file = LOCATE_parser;
21563 fra.me.line = 6471;
21564 fra.me.meth = LOCATE_parser___ReduceAction159___action;
21565 fra.me.has_broke = 0;
21566 fra.me.REG_size = 4;
21567 fra.me.REG[0] = NIT_NULL;
21568 fra.me.REG[1] = NIT_NULL;
21569 fra.me.REG[2] = NIT_NULL;
21570 fra.me.REG[3] = NIT_NULL;
21571 fra.me.REG[0] = p0;
21572 fra.me.REG[1] = p1;
21573 /* ./parser//parser.nit:6473 */
21574 fra.me.REG[2] = NIT_NULL;
21575 /* ./parser//parser.nit:6474 */
21576 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21577 /* ./parser//parser.nit:6476 */
21578 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TLt, ID_TLt)) /*cast nullable TLt*/;
21579 if (UNTAG_Bool(REGB0)) {
21580 } else {
21581 nit_abort("Assert failed", NULL, LOCATE_parser, 6476);
21582 }
21583 /* ./parser//parser.nit:6477 */
21584 fra.me.REG[3] = NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid(fra.me.REG[3]);
21585 /* ./parser//parser.nit:6480 */
21586 fra.me.REG[2] = fra.me.REG[3];
21587 /* ./parser//parser.nit:6481 */
21588 REGB0 = TAG_Bool(ATTR_parser___ReduceAction159____goto(fra.me.REG[0])!=NIT_NULL);
21589 if (UNTAG_Bool(REGB0)) {
21590 } else {
21591 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6481);
21592 }
21593 REGB0 = ATTR_parser___ReduceAction159____goto(fra.me.REG[0]);
21594 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21595 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21596 stack_frame_head = fra.me.prev;
21597 return;
21598 }
21599 void parser___ReduceAction159___init(val_t p0, val_t p1, int* init_table){
21600 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction159].i;
21601 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21602 val_t REGB0;
21603 val_t tmp;
21604 if (init_table[itpos162]) return;
21605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21606 fra.me.file = LOCATE_parser;
21607 fra.me.line = 6484;
21608 fra.me.meth = LOCATE_parser___ReduceAction159___init;
21609 fra.me.has_broke = 0;
21610 fra.me.REG_size = 2;
21611 fra.me.REG[0] = NIT_NULL;
21612 fra.me.REG[1] = NIT_NULL;
21613 fra.me.REG[0] = p0;
21614 REGB0 = p1;
21615 /* ./parser//parser.nit:6484 */
21616 fra.me.REG[1] = fra.me.REG[0];
21617 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21618 ATTR_parser___ReduceAction159____goto(fra.me.REG[1]) = REGB0;
21619 stack_frame_head = fra.me.prev;
21620 init_table[itpos162] = 1;
21621 return;
21622 }
21623 void parser___ReduceAction160___action(val_t p0, val_t p1){
21624 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21625 val_t REGB0;
21626 val_t tmp;
21627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21628 fra.me.file = LOCATE_parser;
21629 fra.me.line = 6488;
21630 fra.me.meth = LOCATE_parser___ReduceAction160___action;
21631 fra.me.has_broke = 0;
21632 fra.me.REG_size = 4;
21633 fra.me.REG[0] = NIT_NULL;
21634 fra.me.REG[1] = NIT_NULL;
21635 fra.me.REG[2] = NIT_NULL;
21636 fra.me.REG[3] = NIT_NULL;
21637 fra.me.REG[0] = p0;
21638 fra.me.REG[1] = p1;
21639 /* ./parser//parser.nit:6490 */
21640 fra.me.REG[2] = NIT_NULL;
21641 /* ./parser//parser.nit:6491 */
21642 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21643 /* ./parser//parser.nit:6493 */
21644 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TGt, ID_TGt)) /*cast nullable TGt*/;
21645 if (UNTAG_Bool(REGB0)) {
21646 } else {
21647 nit_abort("Assert failed", NULL, LOCATE_parser, 6493);
21648 }
21649 /* ./parser//parser.nit:6494 */
21650 fra.me.REG[3] = NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid(fra.me.REG[3]);
21651 /* ./parser//parser.nit:6497 */
21652 fra.me.REG[2] = fra.me.REG[3];
21653 /* ./parser//parser.nit:6498 */
21654 REGB0 = TAG_Bool(ATTR_parser___ReduceAction160____goto(fra.me.REG[0])!=NIT_NULL);
21655 if (UNTAG_Bool(REGB0)) {
21656 } else {
21657 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6498);
21658 }
21659 REGB0 = ATTR_parser___ReduceAction160____goto(fra.me.REG[0]);
21660 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21661 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21662 stack_frame_head = fra.me.prev;
21663 return;
21664 }
21665 void parser___ReduceAction160___init(val_t p0, val_t p1, int* init_table){
21666 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction160].i;
21667 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21668 val_t REGB0;
21669 val_t tmp;
21670 if (init_table[itpos163]) return;
21671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21672 fra.me.file = LOCATE_parser;
21673 fra.me.line = 6501;
21674 fra.me.meth = LOCATE_parser___ReduceAction160___init;
21675 fra.me.has_broke = 0;
21676 fra.me.REG_size = 2;
21677 fra.me.REG[0] = NIT_NULL;
21678 fra.me.REG[1] = NIT_NULL;
21679 fra.me.REG[0] = p0;
21680 REGB0 = p1;
21681 /* ./parser//parser.nit:6501 */
21682 fra.me.REG[1] = fra.me.REG[0];
21683 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21684 ATTR_parser___ReduceAction160____goto(fra.me.REG[1]) = REGB0;
21685 stack_frame_head = fra.me.prev;
21686 init_table[itpos163] = 1;
21687 return;
21688 }
21689 void parser___ReduceAction161___action(val_t p0, val_t p1){
21690 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21691 val_t REGB0;
21692 val_t tmp;
21693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21694 fra.me.file = LOCATE_parser;
21695 fra.me.line = 6505;
21696 fra.me.meth = LOCATE_parser___ReduceAction161___action;
21697 fra.me.has_broke = 0;
21698 fra.me.REG_size = 4;
21699 fra.me.REG[0] = NIT_NULL;
21700 fra.me.REG[1] = NIT_NULL;
21701 fra.me.REG[2] = NIT_NULL;
21702 fra.me.REG[3] = NIT_NULL;
21703 fra.me.REG[0] = p0;
21704 fra.me.REG[1] = p1;
21705 /* ./parser//parser.nit:6507 */
21706 fra.me.REG[2] = NIT_NULL;
21707 /* ./parser//parser.nit:6508 */
21708 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21709 /* ./parser//parser.nit:6510 */
21710 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TLl, ID_TLl)) /*cast nullable TLl*/;
21711 if (UNTAG_Bool(REGB0)) {
21712 } else {
21713 nit_abort("Assert failed", NULL, LOCATE_parser, 6510);
21714 }
21715 /* ./parser//parser.nit:6511 */
21716 fra.me.REG[3] = NEW_ALlMethid_parser_prod___ALlMethid___init_allmethid(fra.me.REG[3]);
21717 /* ./parser//parser.nit:6514 */
21718 fra.me.REG[2] = fra.me.REG[3];
21719 /* ./parser//parser.nit:6515 */
21720 REGB0 = TAG_Bool(ATTR_parser___ReduceAction161____goto(fra.me.REG[0])!=NIT_NULL);
21721 if (UNTAG_Bool(REGB0)) {
21722 } else {
21723 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6515);
21724 }
21725 REGB0 = ATTR_parser___ReduceAction161____goto(fra.me.REG[0]);
21726 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21727 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21728 stack_frame_head = fra.me.prev;
21729 return;
21730 }
21731 void parser___ReduceAction161___init(val_t p0, val_t p1, int* init_table){
21732 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction161].i;
21733 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21734 val_t REGB0;
21735 val_t tmp;
21736 if (init_table[itpos164]) return;
21737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21738 fra.me.file = LOCATE_parser;
21739 fra.me.line = 6518;
21740 fra.me.meth = LOCATE_parser___ReduceAction161___init;
21741 fra.me.has_broke = 0;
21742 fra.me.REG_size = 2;
21743 fra.me.REG[0] = NIT_NULL;
21744 fra.me.REG[1] = NIT_NULL;
21745 fra.me.REG[0] = p0;
21746 REGB0 = p1;
21747 /* ./parser//parser.nit:6518 */
21748 fra.me.REG[1] = fra.me.REG[0];
21749 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21750 ATTR_parser___ReduceAction161____goto(fra.me.REG[1]) = REGB0;
21751 stack_frame_head = fra.me.prev;
21752 init_table[itpos164] = 1;
21753 return;
21754 }
21755 void parser___ReduceAction162___action(val_t p0, val_t p1){
21756 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21757 val_t REGB0;
21758 val_t tmp;
21759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21760 fra.me.file = LOCATE_parser;
21761 fra.me.line = 6522;
21762 fra.me.meth = LOCATE_parser___ReduceAction162___action;
21763 fra.me.has_broke = 0;
21764 fra.me.REG_size = 4;
21765 fra.me.REG[0] = NIT_NULL;
21766 fra.me.REG[1] = NIT_NULL;
21767 fra.me.REG[2] = NIT_NULL;
21768 fra.me.REG[3] = NIT_NULL;
21769 fra.me.REG[0] = p0;
21770 fra.me.REG[1] = p1;
21771 /* ./parser//parser.nit:6524 */
21772 fra.me.REG[2] = NIT_NULL;
21773 /* ./parser//parser.nit:6525 */
21774 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21775 /* ./parser//parser.nit:6527 */
21776 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TGg, ID_TGg)) /*cast nullable TGg*/;
21777 if (UNTAG_Bool(REGB0)) {
21778 } else {
21779 nit_abort("Assert failed", NULL, LOCATE_parser, 6527);
21780 }
21781 /* ./parser//parser.nit:6528 */
21782 fra.me.REG[3] = NEW_AGgMethid_parser_prod___AGgMethid___init_aggmethid(fra.me.REG[3]);
21783 /* ./parser//parser.nit:6531 */
21784 fra.me.REG[2] = fra.me.REG[3];
21785 /* ./parser//parser.nit:6532 */
21786 REGB0 = TAG_Bool(ATTR_parser___ReduceAction162____goto(fra.me.REG[0])!=NIT_NULL);
21787 if (UNTAG_Bool(REGB0)) {
21788 } else {
21789 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6532);
21790 }
21791 REGB0 = ATTR_parser___ReduceAction162____goto(fra.me.REG[0]);
21792 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21793 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21794 stack_frame_head = fra.me.prev;
21795 return;
21796 }
21797 void parser___ReduceAction162___init(val_t p0, val_t p1, int* init_table){
21798 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction162].i;
21799 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21800 val_t REGB0;
21801 val_t tmp;
21802 if (init_table[itpos165]) return;
21803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21804 fra.me.file = LOCATE_parser;
21805 fra.me.line = 6535;
21806 fra.me.meth = LOCATE_parser___ReduceAction162___init;
21807 fra.me.has_broke = 0;
21808 fra.me.REG_size = 2;
21809 fra.me.REG[0] = NIT_NULL;
21810 fra.me.REG[1] = NIT_NULL;
21811 fra.me.REG[0] = p0;
21812 REGB0 = p1;
21813 /* ./parser//parser.nit:6535 */
21814 fra.me.REG[1] = fra.me.REG[0];
21815 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21816 ATTR_parser___ReduceAction162____goto(fra.me.REG[1]) = REGB0;
21817 stack_frame_head = fra.me.prev;
21818 init_table[itpos165] = 1;
21819 return;
21820 }
21821 void parser___ReduceAction163___action(val_t p0, val_t p1){
21822 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21823 val_t REGB0;
21824 val_t tmp;
21825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21826 fra.me.file = LOCATE_parser;
21827 fra.me.line = 6539;
21828 fra.me.meth = LOCATE_parser___ReduceAction163___action;
21829 fra.me.has_broke = 0;
21830 fra.me.REG_size = 5;
21831 fra.me.REG[0] = NIT_NULL;
21832 fra.me.REG[1] = NIT_NULL;
21833 fra.me.REG[2] = NIT_NULL;
21834 fra.me.REG[3] = NIT_NULL;
21835 fra.me.REG[4] = NIT_NULL;
21836 fra.me.REG[0] = p0;
21837 fra.me.REG[1] = p1;
21838 /* ./parser//parser.nit:6541 */
21839 fra.me.REG[2] = NIT_NULL;
21840 /* ./parser//parser.nit:6542 */
21841 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21842 /* ./parser//parser.nit:6543 */
21843 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21844 /* ./parser//parser.nit:6545 */
21845 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TObra, ID_TObra)) /*cast nullable TObra*/;
21846 if (UNTAG_Bool(REGB0)) {
21847 } else {
21848 nit_abort("Assert failed", NULL, LOCATE_parser, 6545);
21849 }
21850 /* ./parser//parser.nit:6547 */
21851 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TCbra, ID_TCbra)) /*cast nullable TCbra*/;
21852 if (UNTAG_Bool(REGB0)) {
21853 } else {
21854 nit_abort("Assert failed", NULL, LOCATE_parser, 6547);
21855 }
21856 /* ./parser//parser.nit:6548 */
21857 fra.me.REG[3] = NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid(fra.me.REG[4], fra.me.REG[3]);
21858 /* ./parser//parser.nit:6552 */
21859 fra.me.REG[2] = fra.me.REG[3];
21860 /* ./parser//parser.nit:6553 */
21861 REGB0 = TAG_Bool(ATTR_parser___ReduceAction163____goto(fra.me.REG[0])!=NIT_NULL);
21862 if (UNTAG_Bool(REGB0)) {
21863 } else {
21864 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6553);
21865 }
21866 REGB0 = ATTR_parser___ReduceAction163____goto(fra.me.REG[0]);
21867 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21868 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21869 stack_frame_head = fra.me.prev;
21870 return;
21871 }
21872 void parser___ReduceAction163___init(val_t p0, val_t p1, int* init_table){
21873 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction163].i;
21874 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21875 val_t REGB0;
21876 val_t tmp;
21877 if (init_table[itpos166]) return;
21878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21879 fra.me.file = LOCATE_parser;
21880 fra.me.line = 6556;
21881 fra.me.meth = LOCATE_parser___ReduceAction163___init;
21882 fra.me.has_broke = 0;
21883 fra.me.REG_size = 2;
21884 fra.me.REG[0] = NIT_NULL;
21885 fra.me.REG[1] = NIT_NULL;
21886 fra.me.REG[0] = p0;
21887 REGB0 = p1;
21888 /* ./parser//parser.nit:6556 */
21889 fra.me.REG[1] = fra.me.REG[0];
21890 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21891 ATTR_parser___ReduceAction163____goto(fra.me.REG[1]) = REGB0;
21892 stack_frame_head = fra.me.prev;
21893 init_table[itpos166] = 1;
21894 return;
21895 }
21896 void parser___ReduceAction164___action(val_t p0, val_t p1){
21897 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21898 val_t REGB0;
21899 val_t tmp;
21900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21901 fra.me.file = LOCATE_parser;
21902 fra.me.line = 6560;
21903 fra.me.meth = LOCATE_parser___ReduceAction164___action;
21904 fra.me.has_broke = 0;
21905 fra.me.REG_size = 4;
21906 fra.me.REG[0] = NIT_NULL;
21907 fra.me.REG[1] = NIT_NULL;
21908 fra.me.REG[2] = NIT_NULL;
21909 fra.me.REG[3] = NIT_NULL;
21910 fra.me.REG[0] = p0;
21911 fra.me.REG[1] = p1;
21912 /* ./parser//parser.nit:6562 */
21913 fra.me.REG[2] = NIT_NULL;
21914 /* ./parser//parser.nit:6563 */
21915 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21916 /* ./parser//parser.nit:6565 */
21917 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TStarship, ID_TStarship)) /*cast nullable TStarship*/;
21918 if (UNTAG_Bool(REGB0)) {
21919 } else {
21920 nit_abort("Assert failed", NULL, LOCATE_parser, 6565);
21921 }
21922 /* ./parser//parser.nit:6566 */
21923 fra.me.REG[3] = NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid(fra.me.REG[3]);
21924 /* ./parser//parser.nit:6569 */
21925 fra.me.REG[2] = fra.me.REG[3];
21926 /* ./parser//parser.nit:6570 */
21927 REGB0 = TAG_Bool(ATTR_parser___ReduceAction164____goto(fra.me.REG[0])!=NIT_NULL);
21928 if (UNTAG_Bool(REGB0)) {
21929 } else {
21930 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6570);
21931 }
21932 REGB0 = ATTR_parser___ReduceAction164____goto(fra.me.REG[0]);
21933 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
21934 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
21935 stack_frame_head = fra.me.prev;
21936 return;
21937 }
21938 void parser___ReduceAction164___init(val_t p0, val_t p1, int* init_table){
21939 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction164].i;
21940 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21941 val_t REGB0;
21942 val_t tmp;
21943 if (init_table[itpos167]) return;
21944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21945 fra.me.file = LOCATE_parser;
21946 fra.me.line = 6573;
21947 fra.me.meth = LOCATE_parser___ReduceAction164___init;
21948 fra.me.has_broke = 0;
21949 fra.me.REG_size = 2;
21950 fra.me.REG[0] = NIT_NULL;
21951 fra.me.REG[1] = NIT_NULL;
21952 fra.me.REG[0] = p0;
21953 REGB0 = p1;
21954 /* ./parser//parser.nit:6573 */
21955 fra.me.REG[1] = fra.me.REG[0];
21956 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
21957 ATTR_parser___ReduceAction164____goto(fra.me.REG[1]) = REGB0;
21958 stack_frame_head = fra.me.prev;
21959 init_table[itpos167] = 1;
21960 return;
21961 }
21962 void parser___ReduceAction165___action(val_t p0, val_t p1){
21963 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21964 val_t REGB0;
21965 val_t tmp;
21966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21967 fra.me.file = LOCATE_parser;
21968 fra.me.line = 6577;
21969 fra.me.meth = LOCATE_parser___ReduceAction165___action;
21970 fra.me.has_broke = 0;
21971 fra.me.REG_size = 5;
21972 fra.me.REG[0] = NIT_NULL;
21973 fra.me.REG[1] = NIT_NULL;
21974 fra.me.REG[2] = NIT_NULL;
21975 fra.me.REG[3] = NIT_NULL;
21976 fra.me.REG[4] = NIT_NULL;
21977 fra.me.REG[0] = p0;
21978 fra.me.REG[1] = p1;
21979 /* ./parser//parser.nit:6579 */
21980 fra.me.REG[2] = NIT_NULL;
21981 /* ./parser//parser.nit:6580 */
21982 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21983 /* ./parser//parser.nit:6581 */
21984 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
21985 /* ./parser//parser.nit:6583 */
21986 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
21987 if (UNTAG_Bool(REGB0)) {
21988 } else {
21989 nit_abort("Assert failed", NULL, LOCATE_parser, 6583);
21990 }
21991 /* ./parser//parser.nit:6585 */
21992 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
21993 if (UNTAG_Bool(REGB0)) {
21994 } else {
21995 nit_abort("Assert failed", NULL, LOCATE_parser, 6585);
21996 }
21997 /* ./parser//parser.nit:6586 */
21998 fra.me.REG[3] = NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid(fra.me.REG[4], fra.me.REG[3]);
21999 /* ./parser//parser.nit:6590 */
22000 fra.me.REG[2] = fra.me.REG[3];
22001 /* ./parser//parser.nit:6591 */
22002 REGB0 = TAG_Bool(ATTR_parser___ReduceAction165____goto(fra.me.REG[0])!=NIT_NULL);
22003 if (UNTAG_Bool(REGB0)) {
22004 } else {
22005 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6591);
22006 }
22007 REGB0 = ATTR_parser___ReduceAction165____goto(fra.me.REG[0]);
22008 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22009 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22010 stack_frame_head = fra.me.prev;
22011 return;
22012 }
22013 void parser___ReduceAction165___init(val_t p0, val_t p1, int* init_table){
22014 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction165].i;
22015 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22016 val_t REGB0;
22017 val_t tmp;
22018 if (init_table[itpos168]) return;
22019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22020 fra.me.file = LOCATE_parser;
22021 fra.me.line = 6594;
22022 fra.me.meth = LOCATE_parser___ReduceAction165___init;
22023 fra.me.has_broke = 0;
22024 fra.me.REG_size = 2;
22025 fra.me.REG[0] = NIT_NULL;
22026 fra.me.REG[1] = NIT_NULL;
22027 fra.me.REG[0] = p0;
22028 REGB0 = p1;
22029 /* ./parser//parser.nit:6594 */
22030 fra.me.REG[1] = fra.me.REG[0];
22031 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22032 ATTR_parser___ReduceAction165____goto(fra.me.REG[1]) = REGB0;
22033 stack_frame_head = fra.me.prev;
22034 init_table[itpos168] = 1;
22035 return;
22036 }
22037 void parser___ReduceAction166___action(val_t p0, val_t p1){
22038 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22039 val_t REGB0;
22040 val_t tmp;
22041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22042 fra.me.file = LOCATE_parser;
22043 fra.me.line = 6598;
22044 fra.me.meth = LOCATE_parser___ReduceAction166___action;
22045 fra.me.has_broke = 0;
22046 fra.me.REG_size = 6;
22047 fra.me.REG[0] = NIT_NULL;
22048 fra.me.REG[1] = NIT_NULL;
22049 fra.me.REG[2] = NIT_NULL;
22050 fra.me.REG[3] = NIT_NULL;
22051 fra.me.REG[4] = NIT_NULL;
22052 fra.me.REG[5] = NIT_NULL;
22053 fra.me.REG[0] = p0;
22054 fra.me.REG[1] = p1;
22055 /* ./parser//parser.nit:6600 */
22056 fra.me.REG[2] = NIT_NULL;
22057 /* ./parser//parser.nit:6601 */
22058 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22059 /* ./parser//parser.nit:6602 */
22060 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22061 /* ./parser//parser.nit:6603 */
22062 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22063 /* ./parser//parser.nit:6605 */
22064 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TObra, ID_TObra)) /*cast nullable TObra*/;
22065 if (UNTAG_Bool(REGB0)) {
22066 } else {
22067 nit_abort("Assert failed", NULL, LOCATE_parser, 6605);
22068 }
22069 /* ./parser//parser.nit:6607 */
22070 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TCbra, ID_TCbra)) /*cast nullable TCbra*/;
22071 if (UNTAG_Bool(REGB0)) {
22072 } else {
22073 nit_abort("Assert failed", NULL, LOCATE_parser, 6607);
22074 }
22075 /* ./parser//parser.nit:6609 */
22076 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
22077 if (UNTAG_Bool(REGB0)) {
22078 } else {
22079 nit_abort("Assert failed", NULL, LOCATE_parser, 6609);
22080 }
22081 /* ./parser//parser.nit:6610 */
22082 fra.me.REG[3] = NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
22083 /* ./parser//parser.nit:6615 */
22084 fra.me.REG[2] = fra.me.REG[3];
22085 /* ./parser//parser.nit:6616 */
22086 REGB0 = TAG_Bool(ATTR_parser___ReduceAction166____goto(fra.me.REG[0])!=NIT_NULL);
22087 if (UNTAG_Bool(REGB0)) {
22088 } else {
22089 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6616);
22090 }
22091 REGB0 = ATTR_parser___ReduceAction166____goto(fra.me.REG[0]);
22092 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22093 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22094 stack_frame_head = fra.me.prev;
22095 return;
22096 }
22097 void parser___ReduceAction166___init(val_t p0, val_t p1, int* init_table){
22098 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction166].i;
22099 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22100 val_t REGB0;
22101 val_t tmp;
22102 if (init_table[itpos169]) return;
22103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22104 fra.me.file = LOCATE_parser;
22105 fra.me.line = 6619;
22106 fra.me.meth = LOCATE_parser___ReduceAction166___init;
22107 fra.me.has_broke = 0;
22108 fra.me.REG_size = 2;
22109 fra.me.REG[0] = NIT_NULL;
22110 fra.me.REG[1] = NIT_NULL;
22111 fra.me.REG[0] = p0;
22112 REGB0 = p1;
22113 /* ./parser//parser.nit:6619 */
22114 fra.me.REG[1] = fra.me.REG[0];
22115 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22116 ATTR_parser___ReduceAction166____goto(fra.me.REG[1]) = REGB0;
22117 stack_frame_head = fra.me.prev;
22118 init_table[itpos169] = 1;
22119 return;
22120 }
22121 void parser___ReduceAction167___action(val_t p0, val_t p1){
22122 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22123 val_t REGB0;
22124 val_t tmp;
22125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22126 fra.me.file = LOCATE_parser;
22127 fra.me.line = 6623;
22128 fra.me.meth = LOCATE_parser___ReduceAction167___action;
22129 fra.me.has_broke = 0;
22130 fra.me.REG_size = 7;
22131 fra.me.REG[0] = NIT_NULL;
22132 fra.me.REG[1] = NIT_NULL;
22133 fra.me.REG[2] = NIT_NULL;
22134 fra.me.REG[3] = NIT_NULL;
22135 fra.me.REG[4] = NIT_NULL;
22136 fra.me.REG[5] = NIT_NULL;
22137 fra.me.REG[6] = NIT_NULL;
22138 fra.me.REG[0] = p0;
22139 fra.me.REG[1] = p1;
22140 /* ./parser//parser.nit:6625 */
22141 fra.me.REG[2] = NIT_NULL;
22142 /* ./parser//parser.nit:6626 */
22143 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22144 /* ./parser//parser.nit:6627 */
22145 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22146 /* ./parser//parser.nit:6628 */
22147 fra.me.REG[5] = NEW_Array_array___Array___init();
22148 /* ./parser//parser.nit:6629 */
22149 fra.me.REG[6] = NEW_Array_array___Array___init();
22150 /* ./parser//parser.nit:6631 */
22151 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22152 if (UNTAG_Bool(REGB0)) {
22153 } else {
22154 nit_abort("Assert failed", NULL, LOCATE_parser, 6631);
22155 }
22156 /* ./parser//parser.nit:6633 */
22157 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22158 if (UNTAG_Bool(REGB0)) {
22159 } else {
22160 nit_abort("Assert failed", NULL, LOCATE_parser, 6633);
22161 }
22162 /* ./parser//parser.nit:6634 */
22163 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
22164 fra.me.REG[6] = fra.me.REG[3];
22165 /* ./parser//parser.nit:6635 */
22166 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
22167 /* ./parser//parser.nit:6640 */
22168 fra.me.REG[2] = fra.me.REG[6];
22169 /* ./parser//parser.nit:6641 */
22170 REGB0 = TAG_Bool(ATTR_parser___ReduceAction167____goto(fra.me.REG[0])!=NIT_NULL);
22171 if (UNTAG_Bool(REGB0)) {
22172 } else {
22173 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6641);
22174 }
22175 REGB0 = ATTR_parser___ReduceAction167____goto(fra.me.REG[0]);
22176 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22177 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22178 stack_frame_head = fra.me.prev;
22179 return;
22180 }
22181 void parser___ReduceAction167___init(val_t p0, val_t p1, int* init_table){
22182 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction167].i;
22183 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22184 val_t REGB0;
22185 val_t tmp;
22186 if (init_table[itpos170]) return;
22187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22188 fra.me.file = LOCATE_parser;
22189 fra.me.line = 6644;
22190 fra.me.meth = LOCATE_parser___ReduceAction167___init;
22191 fra.me.has_broke = 0;
22192 fra.me.REG_size = 2;
22193 fra.me.REG[0] = NIT_NULL;
22194 fra.me.REG[1] = NIT_NULL;
22195 fra.me.REG[0] = p0;
22196 REGB0 = p1;
22197 /* ./parser//parser.nit:6644 */
22198 fra.me.REG[1] = fra.me.REG[0];
22199 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22200 ATTR_parser___ReduceAction167____goto(fra.me.REG[1]) = REGB0;
22201 stack_frame_head = fra.me.prev;
22202 init_table[itpos170] = 1;
22203 return;
22204 }
22205 void parser___ReduceAction168___action(val_t p0, val_t p1){
22206 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
22207 val_t REGB0;
22208 val_t tmp;
22209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22210 fra.me.file = LOCATE_parser;
22211 fra.me.line = 6648;
22212 fra.me.meth = LOCATE_parser___ReduceAction168___action;
22213 fra.me.has_broke = 0;
22214 fra.me.REG_size = 8;
22215 fra.me.REG[0] = NIT_NULL;
22216 fra.me.REG[1] = NIT_NULL;
22217 fra.me.REG[2] = NIT_NULL;
22218 fra.me.REG[3] = NIT_NULL;
22219 fra.me.REG[4] = NIT_NULL;
22220 fra.me.REG[5] = NIT_NULL;
22221 fra.me.REG[6] = NIT_NULL;
22222 fra.me.REG[7] = NIT_NULL;
22223 fra.me.REG[0] = p0;
22224 fra.me.REG[1] = p1;
22225 /* ./parser//parser.nit:6650 */
22226 fra.me.REG[2] = NIT_NULL;
22227 /* ./parser//parser.nit:6651 */
22228 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22229 /* ./parser//parser.nit:6652 */
22230 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22231 /* ./parser//parser.nit:6653 */
22232 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22233 /* ./parser//parser.nit:6654 */
22234 fra.me.REG[6] = NEW_Array_array___Array___init();
22235 /* ./parser//parser.nit:6655 */
22236 fra.me.REG[7] = NEW_Array_array___Array___init();
22237 /* ./parser//parser.nit:6657 */
22238 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22239 if (UNTAG_Bool(REGB0)) {
22240 } else {
22241 nit_abort("Assert failed", NULL, LOCATE_parser, 6657);
22242 }
22243 /* ./parser//parser.nit:6658 */
22244 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
22245 fra.me.REG[6] = fra.me.REG[5];
22246 /* ./parser//parser.nit:6660 */
22247 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22248 if (UNTAG_Bool(REGB0)) {
22249 } else {
22250 nit_abort("Assert failed", NULL, LOCATE_parser, 6660);
22251 }
22252 /* ./parser//parser.nit:6662 */
22253 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22254 if (UNTAG_Bool(REGB0)) {
22255 } else {
22256 nit_abort("Assert failed", NULL, LOCATE_parser, 6662);
22257 }
22258 /* ./parser//parser.nit:6663 */
22259 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
22260 fra.me.REG[7] = fra.me.REG[3];
22261 /* ./parser//parser.nit:6664 */
22262 fra.me.REG[7] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[4], fra.me.REG[7]);
22263 /* ./parser//parser.nit:6669 */
22264 fra.me.REG[2] = fra.me.REG[7];
22265 /* ./parser//parser.nit:6670 */
22266 REGB0 = TAG_Bool(ATTR_parser___ReduceAction168____goto(fra.me.REG[0])!=NIT_NULL);
22267 if (UNTAG_Bool(REGB0)) {
22268 } else {
22269 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6670);
22270 }
22271 REGB0 = ATTR_parser___ReduceAction168____goto(fra.me.REG[0]);
22272 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22273 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22274 stack_frame_head = fra.me.prev;
22275 return;
22276 }
22277 void parser___ReduceAction168___init(val_t p0, val_t p1, int* init_table){
22278 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction168].i;
22279 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22280 val_t REGB0;
22281 val_t tmp;
22282 if (init_table[itpos171]) return;
22283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22284 fra.me.file = LOCATE_parser;
22285 fra.me.line = 6673;
22286 fra.me.meth = LOCATE_parser___ReduceAction168___init;
22287 fra.me.has_broke = 0;
22288 fra.me.REG_size = 2;
22289 fra.me.REG[0] = NIT_NULL;
22290 fra.me.REG[1] = NIT_NULL;
22291 fra.me.REG[0] = p0;
22292 REGB0 = p1;
22293 /* ./parser//parser.nit:6673 */
22294 fra.me.REG[1] = fra.me.REG[0];
22295 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22296 ATTR_parser___ReduceAction168____goto(fra.me.REG[1]) = REGB0;
22297 stack_frame_head = fra.me.prev;
22298 init_table[itpos171] = 1;
22299 return;
22300 }
22301 void parser___ReduceAction169___action(val_t p0, val_t p1){
22302 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22303 val_t REGB0;
22304 val_t tmp;
22305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22306 fra.me.file = LOCATE_parser;
22307 fra.me.line = 6677;
22308 fra.me.meth = LOCATE_parser___ReduceAction169___action;
22309 fra.me.has_broke = 0;
22310 fra.me.REG_size = 6;
22311 fra.me.REG[0] = NIT_NULL;
22312 fra.me.REG[1] = NIT_NULL;
22313 fra.me.REG[2] = NIT_NULL;
22314 fra.me.REG[3] = NIT_NULL;
22315 fra.me.REG[4] = NIT_NULL;
22316 fra.me.REG[5] = NIT_NULL;
22317 fra.me.REG[0] = p0;
22318 fra.me.REG[1] = p1;
22319 /* ./parser//parser.nit:6679 */
22320 fra.me.REG[2] = NIT_NULL;
22321 /* ./parser//parser.nit:6680 */
22322 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22323 /* ./parser//parser.nit:6681 */
22324 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22325 /* ./parser//parser.nit:6682 */
22326 fra.me.REG[4] = NEW_Array_array___Array___init();
22327 /* ./parser//parser.nit:6683 */
22328 fra.me.REG[5] = NEW_Array_array___Array___init();
22329 /* ./parser//parser.nit:6685 */
22330 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22331 if (UNTAG_Bool(REGB0)) {
22332 } else {
22333 nit_abort("Assert failed", NULL, LOCATE_parser, 6685);
22334 }
22335 /* ./parser//parser.nit:6686 */
22336 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
22337 /* ./parser//parser.nit:6691 */
22338 fra.me.REG[2] = fra.me.REG[5];
22339 /* ./parser//parser.nit:6692 */
22340 REGB0 = TAG_Bool(ATTR_parser___ReduceAction169____goto(fra.me.REG[0])!=NIT_NULL);
22341 if (UNTAG_Bool(REGB0)) {
22342 } else {
22343 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6692);
22344 }
22345 REGB0 = ATTR_parser___ReduceAction169____goto(fra.me.REG[0]);
22346 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22347 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22348 stack_frame_head = fra.me.prev;
22349 return;
22350 }
22351 void parser___ReduceAction169___init(val_t p0, val_t p1, int* init_table){
22352 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction169].i;
22353 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22354 val_t REGB0;
22355 val_t tmp;
22356 if (init_table[itpos172]) return;
22357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22358 fra.me.file = LOCATE_parser;
22359 fra.me.line = 6695;
22360 fra.me.meth = LOCATE_parser___ReduceAction169___init;
22361 fra.me.has_broke = 0;
22362 fra.me.REG_size = 2;
22363 fra.me.REG[0] = NIT_NULL;
22364 fra.me.REG[1] = NIT_NULL;
22365 fra.me.REG[0] = p0;
22366 REGB0 = p1;
22367 /* ./parser//parser.nit:6695 */
22368 fra.me.REG[1] = fra.me.REG[0];
22369 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22370 ATTR_parser___ReduceAction169____goto(fra.me.REG[1]) = REGB0;
22371 stack_frame_head = fra.me.prev;
22372 init_table[itpos172] = 1;
22373 return;
22374 }
22375 void parser___ReduceAction170___action(val_t p0, val_t p1){
22376 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22377 val_t REGB0;
22378 val_t tmp;
22379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22380 fra.me.file = LOCATE_parser;
22381 fra.me.line = 6699;
22382 fra.me.meth = LOCATE_parser___ReduceAction170___action;
22383 fra.me.has_broke = 0;
22384 fra.me.REG_size = 7;
22385 fra.me.REG[0] = NIT_NULL;
22386 fra.me.REG[1] = NIT_NULL;
22387 fra.me.REG[2] = NIT_NULL;
22388 fra.me.REG[3] = NIT_NULL;
22389 fra.me.REG[4] = NIT_NULL;
22390 fra.me.REG[5] = NIT_NULL;
22391 fra.me.REG[6] = NIT_NULL;
22392 fra.me.REG[0] = p0;
22393 fra.me.REG[1] = p1;
22394 /* ./parser//parser.nit:6701 */
22395 fra.me.REG[2] = NIT_NULL;
22396 /* ./parser//parser.nit:6702 */
22397 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22398 /* ./parser//parser.nit:6703 */
22399 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22400 /* ./parser//parser.nit:6704 */
22401 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22402 /* ./parser//parser.nit:6705 */
22403 fra.me.REG[5] = NEW_Array_array___Array___init();
22404 /* ./parser//parser.nit:6706 */
22405 fra.me.REG[6] = NEW_Array_array___Array___init();
22406 /* ./parser//parser.nit:6708 */
22407 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22408 if (UNTAG_Bool(REGB0)) {
22409 } else {
22410 nit_abort("Assert failed", NULL, LOCATE_parser, 6708);
22411 }
22412 /* ./parser//parser.nit:6709 */
22413 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
22414 fra.me.REG[5] = fra.me.REG[4];
22415 /* ./parser//parser.nit:6711 */
22416 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22417 if (UNTAG_Bool(REGB0)) {
22418 } else {
22419 nit_abort("Assert failed", NULL, LOCATE_parser, 6711);
22420 }
22421 /* ./parser//parser.nit:6712 */
22422 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[3], fra.me.REG[6]);
22423 /* ./parser//parser.nit:6717 */
22424 fra.me.REG[2] = fra.me.REG[6];
22425 /* ./parser//parser.nit:6718 */
22426 REGB0 = TAG_Bool(ATTR_parser___ReduceAction170____goto(fra.me.REG[0])!=NIT_NULL);
22427 if (UNTAG_Bool(REGB0)) {
22428 } else {
22429 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6718);
22430 }
22431 REGB0 = ATTR_parser___ReduceAction170____goto(fra.me.REG[0]);
22432 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22433 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22434 stack_frame_head = fra.me.prev;
22435 return;
22436 }
22437 void parser___ReduceAction170___init(val_t p0, val_t p1, int* init_table){
22438 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction170].i;
22439 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22440 val_t REGB0;
22441 val_t tmp;
22442 if (init_table[itpos173]) return;
22443 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22444 fra.me.file = LOCATE_parser;
22445 fra.me.line = 6721;
22446 fra.me.meth = LOCATE_parser___ReduceAction170___init;
22447 fra.me.has_broke = 0;
22448 fra.me.REG_size = 2;
22449 fra.me.REG[0] = NIT_NULL;
22450 fra.me.REG[1] = NIT_NULL;
22451 fra.me.REG[0] = p0;
22452 REGB0 = p1;
22453 /* ./parser//parser.nit:6721 */
22454 fra.me.REG[1] = fra.me.REG[0];
22455 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22456 ATTR_parser___ReduceAction170____goto(fra.me.REG[1]) = REGB0;
22457 stack_frame_head = fra.me.prev;
22458 init_table[itpos173] = 1;
22459 return;
22460 }
22461 void parser___ReduceAction171___action(val_t p0, val_t p1){
22462 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22463 val_t REGB0;
22464 val_t tmp;
22465 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22466 fra.me.file = LOCATE_parser;
22467 fra.me.line = 6725;
22468 fra.me.meth = LOCATE_parser___ReduceAction171___action;
22469 fra.me.has_broke = 0;
22470 fra.me.REG_size = 6;
22471 fra.me.REG[0] = NIT_NULL;
22472 fra.me.REG[1] = NIT_NULL;
22473 fra.me.REG[2] = NIT_NULL;
22474 fra.me.REG[3] = NIT_NULL;
22475 fra.me.REG[4] = NIT_NULL;
22476 fra.me.REG[5] = NIT_NULL;
22477 fra.me.REG[0] = p0;
22478 fra.me.REG[1] = p1;
22479 /* ./parser//parser.nit:6727 */
22480 fra.me.REG[2] = NIT_NULL;
22481 /* ./parser//parser.nit:6728 */
22482 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22483 /* ./parser//parser.nit:6729 */
22484 fra.me.REG[4] = NEW_Array_array___Array___init();
22485 /* ./parser//parser.nit:6730 */
22486 fra.me.REG[5] = NEW_Array_array___Array___init();
22487 /* ./parser//parser.nit:6732 */
22488 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22489 if (UNTAG_Bool(REGB0)) {
22490 } else {
22491 nit_abort("Assert failed", NULL, LOCATE_parser, 6732);
22492 }
22493 /* ./parser//parser.nit:6733 */
22494 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
22495 fra.me.REG[5] = fra.me.REG[3];
22496 /* ./parser//parser.nit:6734 */
22497 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
22498 /* ./parser//parser.nit:6739 */
22499 fra.me.REG[2] = fra.me.REG[5];
22500 /* ./parser//parser.nit:6740 */
22501 REGB0 = TAG_Bool(ATTR_parser___ReduceAction171____goto(fra.me.REG[0])!=NIT_NULL);
22502 if (UNTAG_Bool(REGB0)) {
22503 } else {
22504 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6740);
22505 }
22506 REGB0 = ATTR_parser___ReduceAction171____goto(fra.me.REG[0]);
22507 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22508 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22509 stack_frame_head = fra.me.prev;
22510 return;
22511 }
22512 void parser___ReduceAction171___init(val_t p0, val_t p1, int* init_table){
22513 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction171].i;
22514 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22515 val_t REGB0;
22516 val_t tmp;
22517 if (init_table[itpos174]) return;
22518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22519 fra.me.file = LOCATE_parser;
22520 fra.me.line = 6743;
22521 fra.me.meth = LOCATE_parser___ReduceAction171___init;
22522 fra.me.has_broke = 0;
22523 fra.me.REG_size = 2;
22524 fra.me.REG[0] = NIT_NULL;
22525 fra.me.REG[1] = NIT_NULL;
22526 fra.me.REG[0] = p0;
22527 REGB0 = p1;
22528 /* ./parser//parser.nit:6743 */
22529 fra.me.REG[1] = fra.me.REG[0];
22530 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22531 ATTR_parser___ReduceAction171____goto(fra.me.REG[1]) = REGB0;
22532 stack_frame_head = fra.me.prev;
22533 init_table[itpos174] = 1;
22534 return;
22535 }
22536 void parser___ReduceAction172___action(val_t p0, val_t p1){
22537 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22538 val_t REGB0;
22539 val_t tmp;
22540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22541 fra.me.file = LOCATE_parser;
22542 fra.me.line = 6747;
22543 fra.me.meth = LOCATE_parser___ReduceAction172___action;
22544 fra.me.has_broke = 0;
22545 fra.me.REG_size = 7;
22546 fra.me.REG[0] = NIT_NULL;
22547 fra.me.REG[1] = NIT_NULL;
22548 fra.me.REG[2] = NIT_NULL;
22549 fra.me.REG[3] = NIT_NULL;
22550 fra.me.REG[4] = NIT_NULL;
22551 fra.me.REG[5] = NIT_NULL;
22552 fra.me.REG[6] = NIT_NULL;
22553 fra.me.REG[0] = p0;
22554 fra.me.REG[1] = p1;
22555 /* ./parser//parser.nit:6749 */
22556 fra.me.REG[2] = NIT_NULL;
22557 /* ./parser//parser.nit:6750 */
22558 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22559 /* ./parser//parser.nit:6751 */
22560 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22561 /* ./parser//parser.nit:6752 */
22562 fra.me.REG[5] = NEW_Array_array___Array___init();
22563 /* ./parser//parser.nit:6753 */
22564 fra.me.REG[6] = NEW_Array_array___Array___init();
22565 /* ./parser//parser.nit:6755 */
22566 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22567 if (UNTAG_Bool(REGB0)) {
22568 } else {
22569 nit_abort("Assert failed", NULL, LOCATE_parser, 6755);
22570 }
22571 /* ./parser//parser.nit:6756 */
22572 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
22573 fra.me.REG[5] = fra.me.REG[4];
22574 /* ./parser//parser.nit:6758 */
22575 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22576 if (UNTAG_Bool(REGB0)) {
22577 } else {
22578 nit_abort("Assert failed", NULL, LOCATE_parser, 6758);
22579 }
22580 /* ./parser//parser.nit:6759 */
22581 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
22582 fra.me.REG[6] = fra.me.REG[3];
22583 /* ./parser//parser.nit:6760 */
22584 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], NIT_NULL, fra.me.REG[6]);
22585 /* ./parser//parser.nit:6765 */
22586 fra.me.REG[2] = fra.me.REG[6];
22587 /* ./parser//parser.nit:6766 */
22588 REGB0 = TAG_Bool(ATTR_parser___ReduceAction172____goto(fra.me.REG[0])!=NIT_NULL);
22589 if (UNTAG_Bool(REGB0)) {
22590 } else {
22591 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6766);
22592 }
22593 REGB0 = ATTR_parser___ReduceAction172____goto(fra.me.REG[0]);
22594 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22595 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22596 stack_frame_head = fra.me.prev;
22597 return;
22598 }
22599 void parser___ReduceAction172___init(val_t p0, val_t p1, int* init_table){
22600 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction172].i;
22601 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22602 val_t REGB0;
22603 val_t tmp;
22604 if (init_table[itpos175]) return;
22605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22606 fra.me.file = LOCATE_parser;
22607 fra.me.line = 6769;
22608 fra.me.meth = LOCATE_parser___ReduceAction172___init;
22609 fra.me.has_broke = 0;
22610 fra.me.REG_size = 2;
22611 fra.me.REG[0] = NIT_NULL;
22612 fra.me.REG[1] = NIT_NULL;
22613 fra.me.REG[0] = p0;
22614 REGB0 = p1;
22615 /* ./parser//parser.nit:6769 */
22616 fra.me.REG[1] = fra.me.REG[0];
22617 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22618 ATTR_parser___ReduceAction172____goto(fra.me.REG[1]) = REGB0;
22619 stack_frame_head = fra.me.prev;
22620 init_table[itpos175] = 1;
22621 return;
22622 }
22623 void parser___ReduceAction173___action(val_t p0, val_t p1){
22624 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
22625 val_t REGB0;
22626 val_t tmp;
22627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22628 fra.me.file = LOCATE_parser;
22629 fra.me.line = 6773;
22630 fra.me.meth = LOCATE_parser___ReduceAction173___action;
22631 fra.me.has_broke = 0;
22632 fra.me.REG_size = 5;
22633 fra.me.REG[0] = NIT_NULL;
22634 fra.me.REG[1] = NIT_NULL;
22635 fra.me.REG[2] = NIT_NULL;
22636 fra.me.REG[3] = NIT_NULL;
22637 fra.me.REG[4] = NIT_NULL;
22638 fra.me.REG[0] = p0;
22639 fra.me.REG[1] = p1;
22640 /* ./parser//parser.nit:6775 */
22641 fra.me.REG[2] = NIT_NULL;
22642 /* ./parser//parser.nit:6776 */
22643 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22644 /* ./parser//parser.nit:6777 */
22645 fra.me.REG[3] = NEW_Array_array___Array___init();
22646 /* ./parser//parser.nit:6778 */
22647 fra.me.REG[4] = NEW_Array_array___Array___init();
22648 /* ./parser//parser.nit:6779 */
22649 fra.me.REG[4] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
22650 /* ./parser//parser.nit:6784 */
22651 fra.me.REG[2] = fra.me.REG[4];
22652 /* ./parser//parser.nit:6785 */
22653 REGB0 = TAG_Bool(ATTR_parser___ReduceAction173____goto(fra.me.REG[0])!=NIT_NULL);
22654 if (UNTAG_Bool(REGB0)) {
22655 } else {
22656 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6785);
22657 }
22658 REGB0 = ATTR_parser___ReduceAction173____goto(fra.me.REG[0]);
22659 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22660 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22661 stack_frame_head = fra.me.prev;
22662 return;
22663 }
22664 void parser___ReduceAction173___init(val_t p0, val_t p1, int* init_table){
22665 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction173].i;
22666 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22667 val_t REGB0;
22668 val_t tmp;
22669 if (init_table[itpos176]) return;
22670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22671 fra.me.file = LOCATE_parser;
22672 fra.me.line = 6788;
22673 fra.me.meth = LOCATE_parser___ReduceAction173___init;
22674 fra.me.has_broke = 0;
22675 fra.me.REG_size = 2;
22676 fra.me.REG[0] = NIT_NULL;
22677 fra.me.REG[1] = NIT_NULL;
22678 fra.me.REG[0] = p0;
22679 REGB0 = p1;
22680 /* ./parser//parser.nit:6788 */
22681 fra.me.REG[1] = fra.me.REG[0];
22682 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22683 ATTR_parser___ReduceAction173____goto(fra.me.REG[1]) = REGB0;
22684 stack_frame_head = fra.me.prev;
22685 init_table[itpos176] = 1;
22686 return;
22687 }
22688 void parser___ReduceAction174___action(val_t p0, val_t p1){
22689 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22690 val_t REGB0;
22691 val_t tmp;
22692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22693 fra.me.file = LOCATE_parser;
22694 fra.me.line = 6792;
22695 fra.me.meth = LOCATE_parser___ReduceAction174___action;
22696 fra.me.has_broke = 0;
22697 fra.me.REG_size = 6;
22698 fra.me.REG[0] = NIT_NULL;
22699 fra.me.REG[1] = NIT_NULL;
22700 fra.me.REG[2] = NIT_NULL;
22701 fra.me.REG[3] = NIT_NULL;
22702 fra.me.REG[4] = NIT_NULL;
22703 fra.me.REG[5] = NIT_NULL;
22704 fra.me.REG[0] = p0;
22705 fra.me.REG[1] = p1;
22706 /* ./parser//parser.nit:6794 */
22707 fra.me.REG[2] = NIT_NULL;
22708 /* ./parser//parser.nit:6795 */
22709 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22710 /* ./parser//parser.nit:6796 */
22711 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22712 /* ./parser//parser.nit:6797 */
22713 fra.me.REG[4] = NEW_Array_array___Array___init();
22714 /* ./parser//parser.nit:6798 */
22715 fra.me.REG[5] = NEW_Array_array___Array___init();
22716 /* ./parser//parser.nit:6800 */
22717 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22718 if (UNTAG_Bool(REGB0)) {
22719 } else {
22720 nit_abort("Assert failed", NULL, LOCATE_parser, 6800);
22721 }
22722 /* ./parser//parser.nit:6801 */
22723 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
22724 fra.me.REG[4] = fra.me.REG[3];
22725 /* ./parser//parser.nit:6802 */
22726 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
22727 /* ./parser//parser.nit:6807 */
22728 fra.me.REG[2] = fra.me.REG[5];
22729 /* ./parser//parser.nit:6808 */
22730 REGB0 = TAG_Bool(ATTR_parser___ReduceAction174____goto(fra.me.REG[0])!=NIT_NULL);
22731 if (UNTAG_Bool(REGB0)) {
22732 } else {
22733 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6808);
22734 }
22735 REGB0 = ATTR_parser___ReduceAction174____goto(fra.me.REG[0]);
22736 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22737 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22738 stack_frame_head = fra.me.prev;
22739 return;
22740 }
22741 void parser___ReduceAction174___init(val_t p0, val_t p1, int* init_table){
22742 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction174].i;
22743 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22744 val_t REGB0;
22745 val_t tmp;
22746 if (init_table[itpos177]) return;
22747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22748 fra.me.file = LOCATE_parser;
22749 fra.me.line = 6811;
22750 fra.me.meth = LOCATE_parser___ReduceAction174___init;
22751 fra.me.has_broke = 0;
22752 fra.me.REG_size = 2;
22753 fra.me.REG[0] = NIT_NULL;
22754 fra.me.REG[1] = NIT_NULL;
22755 fra.me.REG[0] = p0;
22756 REGB0 = p1;
22757 /* ./parser//parser.nit:6811 */
22758 fra.me.REG[1] = fra.me.REG[0];
22759 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22760 ATTR_parser___ReduceAction174____goto(fra.me.REG[1]) = REGB0;
22761 stack_frame_head = fra.me.prev;
22762 init_table[itpos177] = 1;
22763 return;
22764 }
22765 void parser___ReduceAction175___action(val_t p0, val_t p1){
22766 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
22767 val_t REGB0;
22768 val_t tmp;
22769 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22770 fra.me.file = LOCATE_parser;
22771 fra.me.line = 6815;
22772 fra.me.meth = LOCATE_parser___ReduceAction175___action;
22773 fra.me.has_broke = 0;
22774 fra.me.REG_size = 5;
22775 fra.me.REG[0] = NIT_NULL;
22776 fra.me.REG[1] = NIT_NULL;
22777 fra.me.REG[2] = NIT_NULL;
22778 fra.me.REG[3] = NIT_NULL;
22779 fra.me.REG[4] = NIT_NULL;
22780 fra.me.REG[0] = p0;
22781 fra.me.REG[1] = p1;
22782 /* ./parser//parser.nit:6817 */
22783 fra.me.REG[2] = NIT_NULL;
22784 /* ./parser//parser.nit:6818 */
22785 fra.me.REG[3] = NEW_Array_array___Array___init();
22786 /* ./parser//parser.nit:6819 */
22787 fra.me.REG[4] = NEW_Array_array___Array___init();
22788 /* ./parser//parser.nit:6820 */
22789 fra.me.REG[4] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
22790 /* ./parser//parser.nit:6825 */
22791 fra.me.REG[2] = fra.me.REG[4];
22792 /* ./parser//parser.nit:6826 */
22793 REGB0 = TAG_Bool(ATTR_parser___ReduceAction175____goto(fra.me.REG[0])!=NIT_NULL);
22794 if (UNTAG_Bool(REGB0)) {
22795 } else {
22796 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6826);
22797 }
22798 REGB0 = ATTR_parser___ReduceAction175____goto(fra.me.REG[0]);
22799 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22800 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22801 stack_frame_head = fra.me.prev;
22802 return;
22803 }
22804 void parser___ReduceAction175___init(val_t p0, val_t p1, int* init_table){
22805 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction175].i;
22806 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22807 val_t REGB0;
22808 val_t tmp;
22809 if (init_table[itpos178]) return;
22810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22811 fra.me.file = LOCATE_parser;
22812 fra.me.line = 6829;
22813 fra.me.meth = LOCATE_parser___ReduceAction175___init;
22814 fra.me.has_broke = 0;
22815 fra.me.REG_size = 2;
22816 fra.me.REG[0] = NIT_NULL;
22817 fra.me.REG[1] = NIT_NULL;
22818 fra.me.REG[0] = p0;
22819 REGB0 = p1;
22820 /* ./parser//parser.nit:6829 */
22821 fra.me.REG[1] = fra.me.REG[0];
22822 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22823 ATTR_parser___ReduceAction175____goto(fra.me.REG[1]) = REGB0;
22824 stack_frame_head = fra.me.prev;
22825 init_table[itpos178] = 1;
22826 return;
22827 }
22828 void parser___ReduceAction176___action(val_t p0, val_t p1){
22829 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22830 val_t REGB0;
22831 val_t tmp;
22832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22833 fra.me.file = LOCATE_parser;
22834 fra.me.line = 6833;
22835 fra.me.meth = LOCATE_parser___ReduceAction176___action;
22836 fra.me.has_broke = 0;
22837 fra.me.REG_size = 6;
22838 fra.me.REG[0] = NIT_NULL;
22839 fra.me.REG[1] = NIT_NULL;
22840 fra.me.REG[2] = NIT_NULL;
22841 fra.me.REG[3] = NIT_NULL;
22842 fra.me.REG[4] = NIT_NULL;
22843 fra.me.REG[5] = NIT_NULL;
22844 fra.me.REG[0] = p0;
22845 fra.me.REG[1] = p1;
22846 /* ./parser//parser.nit:6835 */
22847 fra.me.REG[2] = NIT_NULL;
22848 /* ./parser//parser.nit:6836 */
22849 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22850 /* ./parser//parser.nit:6837 */
22851 fra.me.REG[4] = NEW_Array_array___Array___init();
22852 /* ./parser//parser.nit:6838 */
22853 fra.me.REG[5] = NEW_Array_array___Array___init();
22854 /* ./parser//parser.nit:6840 */
22855 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
22856 if (UNTAG_Bool(REGB0)) {
22857 } else {
22858 nit_abort("Assert failed", NULL, LOCATE_parser, 6840);
22859 }
22860 /* ./parser//parser.nit:6841 */
22861 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
22862 fra.me.REG[4] = fra.me.REG[3];
22863 /* ./parser//parser.nit:6842 */
22864 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
22865 /* ./parser//parser.nit:6847 */
22866 fra.me.REG[2] = fra.me.REG[5];
22867 /* ./parser//parser.nit:6848 */
22868 REGB0 = TAG_Bool(ATTR_parser___ReduceAction176____goto(fra.me.REG[0])!=NIT_NULL);
22869 if (UNTAG_Bool(REGB0)) {
22870 } else {
22871 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6848);
22872 }
22873 REGB0 = ATTR_parser___ReduceAction176____goto(fra.me.REG[0]);
22874 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22875 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22876 stack_frame_head = fra.me.prev;
22877 return;
22878 }
22879 void parser___ReduceAction176___init(val_t p0, val_t p1, int* init_table){
22880 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction176].i;
22881 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22882 val_t REGB0;
22883 val_t tmp;
22884 if (init_table[itpos179]) return;
22885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22886 fra.me.file = LOCATE_parser;
22887 fra.me.line = 6851;
22888 fra.me.meth = LOCATE_parser___ReduceAction176___init;
22889 fra.me.has_broke = 0;
22890 fra.me.REG_size = 2;
22891 fra.me.REG[0] = NIT_NULL;
22892 fra.me.REG[1] = NIT_NULL;
22893 fra.me.REG[0] = p0;
22894 REGB0 = p1;
22895 /* ./parser//parser.nit:6851 */
22896 fra.me.REG[1] = fra.me.REG[0];
22897 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22898 ATTR_parser___ReduceAction176____goto(fra.me.REG[1]) = REGB0;
22899 stack_frame_head = fra.me.prev;
22900 init_table[itpos179] = 1;
22901 return;
22902 }
22903 void parser___ReduceAction177___action(val_t p0, val_t p1){
22904 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22905 val_t REGB0;
22906 val_t tmp;
22907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22908 fra.me.file = LOCATE_parser;
22909 fra.me.line = 6855;
22910 fra.me.meth = LOCATE_parser___ReduceAction177___action;
22911 fra.me.has_broke = 0;
22912 fra.me.REG_size = 6;
22913 fra.me.REG[0] = NIT_NULL;
22914 fra.me.REG[1] = NIT_NULL;
22915 fra.me.REG[2] = NIT_NULL;
22916 fra.me.REG[3] = NIT_NULL;
22917 fra.me.REG[4] = NIT_NULL;
22918 fra.me.REG[5] = NIT_NULL;
22919 fra.me.REG[0] = p0;
22920 fra.me.REG[1] = p1;
22921 /* ./parser//parser.nit:6857 */
22922 fra.me.REG[2] = NIT_NULL;
22923 /* ./parser//parser.nit:6858 */
22924 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22925 /* ./parser//parser.nit:6859 */
22926 fra.me.REG[4] = NEW_Array_array___Array___init();
22927 /* ./parser//parser.nit:6860 */
22928 fra.me.REG[5] = NEW_Array_array___Array___init();
22929 /* ./parser//parser.nit:6862 */
22930 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
22931 if (UNTAG_Bool(REGB0)) {
22932 } else {
22933 nit_abort("Assert failed", NULL, LOCATE_parser, 6862);
22934 }
22935 /* ./parser//parser.nit:6863 */
22936 fra.me.REG[5] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
22937 /* ./parser//parser.nit:6868 */
22938 fra.me.REG[2] = fra.me.REG[5];
22939 /* ./parser//parser.nit:6869 */
22940 REGB0 = TAG_Bool(ATTR_parser___ReduceAction177____goto(fra.me.REG[0])!=NIT_NULL);
22941 if (UNTAG_Bool(REGB0)) {
22942 } else {
22943 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6869);
22944 }
22945 REGB0 = ATTR_parser___ReduceAction177____goto(fra.me.REG[0]);
22946 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
22947 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
22948 stack_frame_head = fra.me.prev;
22949 return;
22950 }
22951 void parser___ReduceAction177___init(val_t p0, val_t p1, int* init_table){
22952 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction177].i;
22953 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22954 val_t REGB0;
22955 val_t tmp;
22956 if (init_table[itpos180]) return;
22957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22958 fra.me.file = LOCATE_parser;
22959 fra.me.line = 6872;
22960 fra.me.meth = LOCATE_parser___ReduceAction177___init;
22961 fra.me.has_broke = 0;
22962 fra.me.REG_size = 2;
22963 fra.me.REG[0] = NIT_NULL;
22964 fra.me.REG[1] = NIT_NULL;
22965 fra.me.REG[0] = p0;
22966 REGB0 = p1;
22967 /* ./parser//parser.nit:6872 */
22968 fra.me.REG[1] = fra.me.REG[0];
22969 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
22970 ATTR_parser___ReduceAction177____goto(fra.me.REG[1]) = REGB0;
22971 stack_frame_head = fra.me.prev;
22972 init_table[itpos180] = 1;
22973 return;
22974 }
22975 void parser___ReduceAction178___action(val_t p0, val_t p1){
22976 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
22977 val_t REGB0;
22978 val_t tmp;
22979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22980 fra.me.file = LOCATE_parser;
22981 fra.me.line = 6876;
22982 fra.me.meth = LOCATE_parser___ReduceAction178___action;
22983 fra.me.has_broke = 0;
22984 fra.me.REG_size = 7;
22985 fra.me.REG[0] = NIT_NULL;
22986 fra.me.REG[1] = NIT_NULL;
22987 fra.me.REG[2] = NIT_NULL;
22988 fra.me.REG[3] = NIT_NULL;
22989 fra.me.REG[4] = NIT_NULL;
22990 fra.me.REG[5] = NIT_NULL;
22991 fra.me.REG[6] = NIT_NULL;
22992 fra.me.REG[0] = p0;
22993 fra.me.REG[1] = p1;
22994 /* ./parser//parser.nit:6878 */
22995 fra.me.REG[2] = NIT_NULL;
22996 /* ./parser//parser.nit:6879 */
22997 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
22998 /* ./parser//parser.nit:6880 */
22999 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23000 /* ./parser//parser.nit:6881 */
23001 fra.me.REG[5] = NEW_Array_array___Array___init();
23002 /* ./parser//parser.nit:6882 */
23003 fra.me.REG[6] = NEW_Array_array___Array___init();
23004 /* ./parser//parser.nit:6884 */
23005 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
23006 if (UNTAG_Bool(REGB0)) {
23007 } else {
23008 nit_abort("Assert failed", NULL, LOCATE_parser, 6884);
23009 }
23010 /* ./parser//parser.nit:6885 */
23011 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
23012 fra.me.REG[5] = fra.me.REG[4];
23013 /* ./parser//parser.nit:6887 */
23014 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
23015 if (UNTAG_Bool(REGB0)) {
23016 } else {
23017 nit_abort("Assert failed", NULL, LOCATE_parser, 6887);
23018 }
23019 /* ./parser//parser.nit:6888 */
23020 fra.me.REG[6] = NEW_ASignature_parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[3], fra.me.REG[6]);
23021 /* ./parser//parser.nit:6893 */
23022 fra.me.REG[2] = fra.me.REG[6];
23023 /* ./parser//parser.nit:6894 */
23024 REGB0 = TAG_Bool(ATTR_parser___ReduceAction178____goto(fra.me.REG[0])!=NIT_NULL);
23025 if (UNTAG_Bool(REGB0)) {
23026 } else {
23027 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6894);
23028 }
23029 REGB0 = ATTR_parser___ReduceAction178____goto(fra.me.REG[0]);
23030 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23031 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23032 stack_frame_head = fra.me.prev;
23033 return;
23034 }
23035 void parser___ReduceAction178___init(val_t p0, val_t p1, int* init_table){
23036 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction178].i;
23037 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23038 val_t REGB0;
23039 val_t tmp;
23040 if (init_table[itpos181]) return;
23041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23042 fra.me.file = LOCATE_parser;
23043 fra.me.line = 6897;
23044 fra.me.meth = LOCATE_parser___ReduceAction178___init;
23045 fra.me.has_broke = 0;
23046 fra.me.REG_size = 2;
23047 fra.me.REG[0] = NIT_NULL;
23048 fra.me.REG[1] = NIT_NULL;
23049 fra.me.REG[0] = p0;
23050 REGB0 = p1;
23051 /* ./parser//parser.nit:6897 */
23052 fra.me.REG[1] = fra.me.REG[0];
23053 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23054 ATTR_parser___ReduceAction178____goto(fra.me.REG[1]) = REGB0;
23055 stack_frame_head = fra.me.prev;
23056 init_table[itpos181] = 1;
23057 return;
23058 }
23059 void parser___ReduceAction179___action(val_t p0, val_t p1){
23060 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23061 val_t REGB0;
23062 val_t REGB1;
23063 val_t tmp;
23064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23065 fra.me.file = LOCATE_parser;
23066 fra.me.line = 6901;
23067 fra.me.meth = LOCATE_parser___ReduceAction179___action;
23068 fra.me.has_broke = 0;
23069 fra.me.REG_size = 5;
23070 fra.me.REG[0] = NIT_NULL;
23071 fra.me.REG[1] = NIT_NULL;
23072 fra.me.REG[2] = NIT_NULL;
23073 fra.me.REG[3] = NIT_NULL;
23074 fra.me.REG[4] = NIT_NULL;
23075 fra.me.REG[0] = p0;
23076 fra.me.REG[1] = p1;
23077 /* ./parser//parser.nit:6903 */
23078 fra.me.REG[2] = NIT_NULL;
23079 /* ./parser//parser.nit:6904 */
23080 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23081 /* ./parser//parser.nit:6905 */
23082 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23083 /* ./parser//parser.nit:6906 */
23084 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23085 /* ./parser//parser.nit:6907 */
23086 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23087 /* ./parser//parser.nit:6908 */
23088 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23089 /* ./parser//parser.nit:6909 */
23090 fra.me.REG[4] = NEW_Array_array___Array___init();
23091 /* ./parser//parser.nit:6911 */
23092 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23093 if (UNTAG_Bool(REGB0)) {
23094 } else {
23095 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23096 if (UNTAG_Bool(REGB1)) {
23097 REGB1 = TAG_Bool(false);
23098 REGB0 = REGB1;
23099 } else {
23100 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23101 REGB0 = REGB1;
23102 }
23103 }
23104 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23105 if (UNTAG_Bool(REGB0)) {
23106 /* ./parser//parser.nit:6912 */
23107 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
23108 }
23109 /* ./parser//parser.nit:6914 */
23110 fra.me.REG[2] = fra.me.REG[4];
23111 /* ./parser//parser.nit:6915 */
23112 REGB0 = TAG_Bool(ATTR_parser___ReduceAction179____goto(fra.me.REG[0])!=NIT_NULL);
23113 if (UNTAG_Bool(REGB0)) {
23114 } else {
23115 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6915);
23116 }
23117 REGB0 = ATTR_parser___ReduceAction179____goto(fra.me.REG[0]);
23118 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23119 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23120 stack_frame_head = fra.me.prev;
23121 return;
23122 }
23123 void parser___ReduceAction179___init(val_t p0, val_t p1, int* init_table){
23124 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction179].i;
23125 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23126 val_t REGB0;
23127 val_t tmp;
23128 if (init_table[itpos182]) return;
23129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23130 fra.me.file = LOCATE_parser;
23131 fra.me.line = 6918;
23132 fra.me.meth = LOCATE_parser___ReduceAction179___init;
23133 fra.me.has_broke = 0;
23134 fra.me.REG_size = 2;
23135 fra.me.REG[0] = NIT_NULL;
23136 fra.me.REG[1] = NIT_NULL;
23137 fra.me.REG[0] = p0;
23138 REGB0 = p1;
23139 /* ./parser//parser.nit:6918 */
23140 fra.me.REG[1] = fra.me.REG[0];
23141 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23142 ATTR_parser___ReduceAction179____goto(fra.me.REG[1]) = REGB0;
23143 stack_frame_head = fra.me.prev;
23144 init_table[itpos182] = 1;
23145 return;
23146 }
23147 void parser___ReduceAction180___action(val_t p0, val_t p1){
23148 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23149 val_t REGB0;
23150 val_t REGB1;
23151 val_t tmp;
23152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23153 fra.me.file = LOCATE_parser;
23154 fra.me.line = 6922;
23155 fra.me.meth = LOCATE_parser___ReduceAction180___action;
23156 fra.me.has_broke = 0;
23157 fra.me.REG_size = 6;
23158 fra.me.REG[0] = NIT_NULL;
23159 fra.me.REG[1] = NIT_NULL;
23160 fra.me.REG[2] = NIT_NULL;
23161 fra.me.REG[3] = NIT_NULL;
23162 fra.me.REG[4] = NIT_NULL;
23163 fra.me.REG[5] = NIT_NULL;
23164 fra.me.REG[0] = p0;
23165 fra.me.REG[1] = p1;
23166 /* ./parser//parser.nit:6924 */
23167 fra.me.REG[2] = NIT_NULL;
23168 /* ./parser//parser.nit:6925 */
23169 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23170 /* ./parser//parser.nit:6926 */
23171 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23172 /* ./parser//parser.nit:6927 */
23173 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23174 /* ./parser//parser.nit:6928 */
23175 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23176 /* ./parser//parser.nit:6929 */
23177 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23178 /* ./parser//parser.nit:6930 */
23179 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23180 /* ./parser//parser.nit:6931 */
23181 fra.me.REG[5] = NEW_Array_array___Array___init();
23182 /* ./parser//parser.nit:6934 */
23183 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
23184 if (UNTAG_Bool(REGB0)) {
23185 } else {
23186 nit_abort("Assert failed", NULL, LOCATE_parser, 6934);
23187 }
23188 /* ./parser//parser.nit:6935 */
23189 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23190 if (UNTAG_Bool(REGB0)) {
23191 } else {
23192 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23193 if (UNTAG_Bool(REGB1)) {
23194 REGB1 = TAG_Bool(false);
23195 REGB0 = REGB1;
23196 } else {
23197 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
23198 REGB0 = REGB1;
23199 }
23200 }
23201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23202 if (UNTAG_Bool(REGB0)) {
23203 /* ./parser//parser.nit:6936 */
23204 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
23205 }
23206 /* ./parser//parser.nit:6938 */
23207 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
23208 fra.me.REG[5] = fra.me.REG[3];
23209 /* ./parser//parser.nit:6939 */
23210 fra.me.REG[2] = fra.me.REG[5];
23211 /* ./parser//parser.nit:6940 */
23212 REGB0 = TAG_Bool(ATTR_parser___ReduceAction180____goto(fra.me.REG[0])!=NIT_NULL);
23213 if (UNTAG_Bool(REGB0)) {
23214 } else {
23215 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6940);
23216 }
23217 REGB0 = ATTR_parser___ReduceAction180____goto(fra.me.REG[0]);
23218 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23219 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23220 stack_frame_head = fra.me.prev;
23221 return;
23222 }
23223 void parser___ReduceAction180___init(val_t p0, val_t p1, int* init_table){
23224 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction180].i;
23225 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23226 val_t REGB0;
23227 val_t tmp;
23228 if (init_table[itpos183]) return;
23229 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23230 fra.me.file = LOCATE_parser;
23231 fra.me.line = 6943;
23232 fra.me.meth = LOCATE_parser___ReduceAction180___init;
23233 fra.me.has_broke = 0;
23234 fra.me.REG_size = 2;
23235 fra.me.REG[0] = NIT_NULL;
23236 fra.me.REG[1] = NIT_NULL;
23237 fra.me.REG[0] = p0;
23238 REGB0 = p1;
23239 /* ./parser//parser.nit:6943 */
23240 fra.me.REG[1] = fra.me.REG[0];
23241 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23242 ATTR_parser___ReduceAction180____goto(fra.me.REG[1]) = REGB0;
23243 stack_frame_head = fra.me.prev;
23244 init_table[itpos183] = 1;
23245 return;
23246 }
23247 void parser___ReduceAction181___action(val_t p0, val_t p1){
23248 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23249 val_t REGB0;
23250 val_t tmp;
23251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23252 fra.me.file = LOCATE_parser;
23253 fra.me.line = 6947;
23254 fra.me.meth = LOCATE_parser___ReduceAction181___action;
23255 fra.me.has_broke = 0;
23256 fra.me.REG_size = 4;
23257 fra.me.REG[0] = NIT_NULL;
23258 fra.me.REG[1] = NIT_NULL;
23259 fra.me.REG[2] = NIT_NULL;
23260 fra.me.REG[3] = NIT_NULL;
23261 fra.me.REG[0] = p0;
23262 fra.me.REG[1] = p1;
23263 /* ./parser//parser.nit:6949 */
23264 fra.me.REG[2] = NIT_NULL;
23265 /* ./parser//parser.nit:6950 */
23266 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23267 /* ./parser//parser.nit:6951 */
23268 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23269 /* ./parser//parser.nit:6952 */
23270 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23271 /* ./parser//parser.nit:6953 */
23272 fra.me.REG[3] = NEW_Array_array___Array___init();
23273 /* ./parser//parser.nit:6954 */
23274 fra.me.REG[2] = fra.me.REG[3];
23275 /* ./parser//parser.nit:6955 */
23276 REGB0 = TAG_Bool(ATTR_parser___ReduceAction181____goto(fra.me.REG[0])!=NIT_NULL);
23277 if (UNTAG_Bool(REGB0)) {
23278 } else {
23279 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6955);
23280 }
23281 REGB0 = ATTR_parser___ReduceAction181____goto(fra.me.REG[0]);
23282 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23283 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23284 stack_frame_head = fra.me.prev;
23285 return;
23286 }
23287 void parser___ReduceAction181___init(val_t p0, val_t p1, int* init_table){
23288 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction181].i;
23289 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23290 val_t REGB0;
23291 val_t tmp;
23292 if (init_table[itpos184]) return;
23293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23294 fra.me.file = LOCATE_parser;
23295 fra.me.line = 6958;
23296 fra.me.meth = LOCATE_parser___ReduceAction181___init;
23297 fra.me.has_broke = 0;
23298 fra.me.REG_size = 2;
23299 fra.me.REG[0] = NIT_NULL;
23300 fra.me.REG[1] = NIT_NULL;
23301 fra.me.REG[0] = p0;
23302 REGB0 = p1;
23303 /* ./parser//parser.nit:6958 */
23304 fra.me.REG[1] = fra.me.REG[0];
23305 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23306 ATTR_parser___ReduceAction181____goto(fra.me.REG[1]) = REGB0;
23307 stack_frame_head = fra.me.prev;
23308 init_table[itpos184] = 1;
23309 return;
23310 }
23311 void parser___ReduceAction182___action(val_t p0, val_t p1){
23312 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23313 val_t REGB0;
23314 val_t tmp;
23315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23316 fra.me.file = LOCATE_parser;
23317 fra.me.line = 6962;
23318 fra.me.meth = LOCATE_parser___ReduceAction182___action;
23319 fra.me.has_broke = 0;
23320 fra.me.REG_size = 5;
23321 fra.me.REG[0] = NIT_NULL;
23322 fra.me.REG[1] = NIT_NULL;
23323 fra.me.REG[2] = NIT_NULL;
23324 fra.me.REG[3] = NIT_NULL;
23325 fra.me.REG[4] = NIT_NULL;
23326 fra.me.REG[0] = p0;
23327 fra.me.REG[1] = p1;
23328 /* ./parser//parser.nit:6964 */
23329 fra.me.REG[2] = NIT_NULL;
23330 /* ./parser//parser.nit:6965 */
23331 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23332 /* ./parser//parser.nit:6966 */
23333 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23334 /* ./parser//parser.nit:6967 */
23335 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23336 /* ./parser//parser.nit:6969 */
23337 fra.me.REG[2] = fra.me.REG[3];
23338 /* ./parser//parser.nit:6970 */
23339 REGB0 = TAG_Bool(ATTR_parser___ReduceAction182____goto(fra.me.REG[0])!=NIT_NULL);
23340 if (UNTAG_Bool(REGB0)) {
23341 } else {
23342 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6970);
23343 }
23344 REGB0 = ATTR_parser___ReduceAction182____goto(fra.me.REG[0]);
23345 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23346 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23347 stack_frame_head = fra.me.prev;
23348 return;
23349 }
23350 void parser___ReduceAction182___init(val_t p0, val_t p1, int* init_table){
23351 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction182].i;
23352 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23353 val_t REGB0;
23354 val_t tmp;
23355 if (init_table[itpos185]) return;
23356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23357 fra.me.file = LOCATE_parser;
23358 fra.me.line = 6973;
23359 fra.me.meth = LOCATE_parser___ReduceAction182___init;
23360 fra.me.has_broke = 0;
23361 fra.me.REG_size = 2;
23362 fra.me.REG[0] = NIT_NULL;
23363 fra.me.REG[1] = NIT_NULL;
23364 fra.me.REG[0] = p0;
23365 REGB0 = p1;
23366 /* ./parser//parser.nit:6973 */
23367 fra.me.REG[1] = fra.me.REG[0];
23368 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23369 ATTR_parser___ReduceAction182____goto(fra.me.REG[1]) = REGB0;
23370 stack_frame_head = fra.me.prev;
23371 init_table[itpos185] = 1;
23372 return;
23373 }
23374 void parser___ReduceAction183___action(val_t p0, val_t p1){
23375 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23376 val_t REGB0;
23377 val_t tmp;
23378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23379 fra.me.file = LOCATE_parser;
23380 fra.me.line = 6977;
23381 fra.me.meth = LOCATE_parser___ReduceAction183___action;
23382 fra.me.has_broke = 0;
23383 fra.me.REG_size = 4;
23384 fra.me.REG[0] = NIT_NULL;
23385 fra.me.REG[1] = NIT_NULL;
23386 fra.me.REG[2] = NIT_NULL;
23387 fra.me.REG[3] = NIT_NULL;
23388 fra.me.REG[0] = p0;
23389 fra.me.REG[1] = p1;
23390 /* ./parser//parser.nit:6979 */
23391 fra.me.REG[2] = NIT_NULL;
23392 /* ./parser//parser.nit:6980 */
23393 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23394 /* ./parser//parser.nit:6982 */
23395 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23396 if (UNTAG_Bool(REGB0)) {
23397 } else {
23398 nit_abort("Assert failed", NULL, LOCATE_parser, 6982);
23399 }
23400 /* ./parser//parser.nit:6983 */
23401 fra.me.REG[3] = NEW_AParam_parser_prod___AParam___init_aparam(fra.me.REG[3], NIT_NULL, NIT_NULL);
23402 /* ./parser//parser.nit:6988 */
23403 fra.me.REG[2] = fra.me.REG[3];
23404 /* ./parser//parser.nit:6989 */
23405 REGB0 = TAG_Bool(ATTR_parser___ReduceAction183____goto(fra.me.REG[0])!=NIT_NULL);
23406 if (UNTAG_Bool(REGB0)) {
23407 } else {
23408 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6989);
23409 }
23410 REGB0 = ATTR_parser___ReduceAction183____goto(fra.me.REG[0]);
23411 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23412 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23413 stack_frame_head = fra.me.prev;
23414 return;
23415 }
23416 void parser___ReduceAction183___init(val_t p0, val_t p1, int* init_table){
23417 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction183].i;
23418 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23419 val_t REGB0;
23420 val_t tmp;
23421 if (init_table[itpos186]) return;
23422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23423 fra.me.file = LOCATE_parser;
23424 fra.me.line = 6992;
23425 fra.me.meth = LOCATE_parser___ReduceAction183___init;
23426 fra.me.has_broke = 0;
23427 fra.me.REG_size = 2;
23428 fra.me.REG[0] = NIT_NULL;
23429 fra.me.REG[1] = NIT_NULL;
23430 fra.me.REG[0] = p0;
23431 REGB0 = p1;
23432 /* ./parser//parser.nit:6992 */
23433 fra.me.REG[1] = fra.me.REG[0];
23434 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23435 ATTR_parser___ReduceAction183____goto(fra.me.REG[1]) = REGB0;
23436 stack_frame_head = fra.me.prev;
23437 init_table[itpos186] = 1;
23438 return;
23439 }
23440 void parser___ReduceAction184___action(val_t p0, val_t p1){
23441 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23442 val_t REGB0;
23443 val_t tmp;
23444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23445 fra.me.file = LOCATE_parser;
23446 fra.me.line = 6996;
23447 fra.me.meth = LOCATE_parser___ReduceAction184___action;
23448 fra.me.has_broke = 0;
23449 fra.me.REG_size = 5;
23450 fra.me.REG[0] = NIT_NULL;
23451 fra.me.REG[1] = NIT_NULL;
23452 fra.me.REG[2] = NIT_NULL;
23453 fra.me.REG[3] = NIT_NULL;
23454 fra.me.REG[4] = NIT_NULL;
23455 fra.me.REG[0] = p0;
23456 fra.me.REG[1] = p1;
23457 /* ./parser//parser.nit:6998 */
23458 fra.me.REG[2] = NIT_NULL;
23459 /* ./parser//parser.nit:6999 */
23460 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23461 /* ./parser//parser.nit:7000 */
23462 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23463 /* ./parser//parser.nit:7002 */
23464 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23465 if (UNTAG_Bool(REGB0)) {
23466 } else {
23467 nit_abort("Assert failed", NULL, LOCATE_parser, 7002);
23468 }
23469 /* ./parser//parser.nit:7004 */
23470 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
23471 if (UNTAG_Bool(REGB0)) {
23472 } else {
23473 nit_abort("Assert failed", NULL, LOCATE_parser, 7004);
23474 }
23475 /* ./parser//parser.nit:7005 */
23476 fra.me.REG[3] = NEW_AParam_parser_prod___AParam___init_aparam(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
23477 /* ./parser//parser.nit:7010 */
23478 fra.me.REG[2] = fra.me.REG[3];
23479 /* ./parser//parser.nit:7011 */
23480 REGB0 = TAG_Bool(ATTR_parser___ReduceAction184____goto(fra.me.REG[0])!=NIT_NULL);
23481 if (UNTAG_Bool(REGB0)) {
23482 } else {
23483 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7011);
23484 }
23485 REGB0 = ATTR_parser___ReduceAction184____goto(fra.me.REG[0]);
23486 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23487 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23488 stack_frame_head = fra.me.prev;
23489 return;
23490 }
23491 void parser___ReduceAction184___init(val_t p0, val_t p1, int* init_table){
23492 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction184].i;
23493 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23494 val_t REGB0;
23495 val_t tmp;
23496 if (init_table[itpos187]) return;
23497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23498 fra.me.file = LOCATE_parser;
23499 fra.me.line = 7014;
23500 fra.me.meth = LOCATE_parser___ReduceAction184___init;
23501 fra.me.has_broke = 0;
23502 fra.me.REG_size = 2;
23503 fra.me.REG[0] = NIT_NULL;
23504 fra.me.REG[1] = NIT_NULL;
23505 fra.me.REG[0] = p0;
23506 REGB0 = p1;
23507 /* ./parser//parser.nit:7014 */
23508 fra.me.REG[1] = fra.me.REG[0];
23509 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23510 ATTR_parser___ReduceAction184____goto(fra.me.REG[1]) = REGB0;
23511 stack_frame_head = fra.me.prev;
23512 init_table[itpos187] = 1;
23513 return;
23514 }
23515 void parser___ReduceAction185___action(val_t p0, val_t p1){
23516 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23517 val_t REGB0;
23518 val_t tmp;
23519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23520 fra.me.file = LOCATE_parser;
23521 fra.me.line = 7018;
23522 fra.me.meth = LOCATE_parser___ReduceAction185___action;
23523 fra.me.has_broke = 0;
23524 fra.me.REG_size = 6;
23525 fra.me.REG[0] = NIT_NULL;
23526 fra.me.REG[1] = NIT_NULL;
23527 fra.me.REG[2] = NIT_NULL;
23528 fra.me.REG[3] = NIT_NULL;
23529 fra.me.REG[4] = NIT_NULL;
23530 fra.me.REG[5] = NIT_NULL;
23531 fra.me.REG[0] = p0;
23532 fra.me.REG[1] = p1;
23533 /* ./parser//parser.nit:7020 */
23534 fra.me.REG[2] = NIT_NULL;
23535 /* ./parser//parser.nit:7021 */
23536 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23537 /* ./parser//parser.nit:7022 */
23538 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23539 /* ./parser//parser.nit:7023 */
23540 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23541 /* ./parser//parser.nit:7025 */
23542 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23543 if (UNTAG_Bool(REGB0)) {
23544 } else {
23545 nit_abort("Assert failed", NULL, LOCATE_parser, 7025);
23546 }
23547 /* ./parser//parser.nit:7027 */
23548 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
23549 if (UNTAG_Bool(REGB0)) {
23550 } else {
23551 nit_abort("Assert failed", NULL, LOCATE_parser, 7027);
23552 }
23553 /* ./parser//parser.nit:7029 */
23554 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TDotdotdot, ID_TDotdotdot)) /*cast nullable TDotdotdot*/;
23555 if (UNTAG_Bool(REGB0)) {
23556 } else {
23557 nit_abort("Assert failed", NULL, LOCATE_parser, 7029);
23558 }
23559 /* ./parser//parser.nit:7030 */
23560 fra.me.REG[3] = NEW_AParam_parser_prod___AParam___init_aparam(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
23561 /* ./parser//parser.nit:7035 */
23562 fra.me.REG[2] = fra.me.REG[3];
23563 /* ./parser//parser.nit:7036 */
23564 REGB0 = TAG_Bool(ATTR_parser___ReduceAction185____goto(fra.me.REG[0])!=NIT_NULL);
23565 if (UNTAG_Bool(REGB0)) {
23566 } else {
23567 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7036);
23568 }
23569 REGB0 = ATTR_parser___ReduceAction185____goto(fra.me.REG[0]);
23570 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23571 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23572 stack_frame_head = fra.me.prev;
23573 return;
23574 }
23575 void parser___ReduceAction185___init(val_t p0, val_t p1, int* init_table){
23576 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction185].i;
23577 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23578 val_t REGB0;
23579 val_t tmp;
23580 if (init_table[itpos188]) return;
23581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23582 fra.me.file = LOCATE_parser;
23583 fra.me.line = 7039;
23584 fra.me.meth = LOCATE_parser___ReduceAction185___init;
23585 fra.me.has_broke = 0;
23586 fra.me.REG_size = 2;
23587 fra.me.REG[0] = NIT_NULL;
23588 fra.me.REG[1] = NIT_NULL;
23589 fra.me.REG[0] = p0;
23590 REGB0 = p1;
23591 /* ./parser//parser.nit:7039 */
23592 fra.me.REG[1] = fra.me.REG[0];
23593 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23594 ATTR_parser___ReduceAction185____goto(fra.me.REG[1]) = REGB0;
23595 stack_frame_head = fra.me.prev;
23596 init_table[itpos188] = 1;
23597 return;
23598 }
23599 void parser___ReduceAction186___action(val_t p0, val_t p1){
23600 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
23601 val_t REGB0;
23602 val_t tmp;
23603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23604 fra.me.file = LOCATE_parser;
23605 fra.me.line = 7043;
23606 fra.me.meth = LOCATE_parser___ReduceAction186___action;
23607 fra.me.has_broke = 0;
23608 fra.me.REG_size = 5;
23609 fra.me.REG[0] = NIT_NULL;
23610 fra.me.REG[1] = NIT_NULL;
23611 fra.me.REG[2] = NIT_NULL;
23612 fra.me.REG[3] = NIT_NULL;
23613 fra.me.REG[4] = NIT_NULL;
23614 fra.me.REG[0] = p0;
23615 fra.me.REG[1] = p1;
23616 /* ./parser//parser.nit:7045 */
23617 fra.me.REG[2] = NIT_NULL;
23618 /* ./parser//parser.nit:7046 */
23619 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23620 /* ./parser//parser.nit:7047 */
23621 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23622 /* ./parser//parser.nit:7048 */
23623 fra.me.REG[4] = NEW_Array_array___Array___init();
23624 /* ./parser//parser.nit:7050 */
23625 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
23626 if (UNTAG_Bool(REGB0)) {
23627 } else {
23628 nit_abort("Assert failed", NULL, LOCATE_parser, 7050);
23629 }
23630 /* ./parser//parser.nit:7051 */
23631 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
23632 fra.me.REG[4] = fra.me.REG[3];
23633 /* ./parser//parser.nit:7052 */
23634 fra.me.REG[2] = fra.me.REG[4];
23635 /* ./parser//parser.nit:7053 */
23636 REGB0 = TAG_Bool(ATTR_parser___ReduceAction186____goto(fra.me.REG[0])!=NIT_NULL);
23637 if (UNTAG_Bool(REGB0)) {
23638 } else {
23639 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7053);
23640 }
23641 REGB0 = ATTR_parser___ReduceAction186____goto(fra.me.REG[0]);
23642 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23643 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23644 stack_frame_head = fra.me.prev;
23645 return;
23646 }
23647 void parser___ReduceAction186___init(val_t p0, val_t p1, int* init_table){
23648 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction186].i;
23649 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23650 val_t REGB0;
23651 val_t tmp;
23652 if (init_table[itpos189]) return;
23653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23654 fra.me.file = LOCATE_parser;
23655 fra.me.line = 7056;
23656 fra.me.meth = LOCATE_parser___ReduceAction186___init;
23657 fra.me.has_broke = 0;
23658 fra.me.REG_size = 2;
23659 fra.me.REG[0] = NIT_NULL;
23660 fra.me.REG[1] = NIT_NULL;
23661 fra.me.REG[0] = p0;
23662 REGB0 = p1;
23663 /* ./parser//parser.nit:7056 */
23664 fra.me.REG[1] = fra.me.REG[0];
23665 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23666 ATTR_parser___ReduceAction186____goto(fra.me.REG[1]) = REGB0;
23667 stack_frame_head = fra.me.prev;
23668 init_table[itpos189] = 1;
23669 return;
23670 }
23671 void parser___ReduceAction187___action(val_t p0, val_t p1){
23672 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23673 val_t REGB0;
23674 val_t tmp;
23675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23676 fra.me.file = LOCATE_parser;
23677 fra.me.line = 7060;
23678 fra.me.meth = LOCATE_parser___ReduceAction187___action;
23679 fra.me.has_broke = 0;
23680 fra.me.REG_size = 6;
23681 fra.me.REG[0] = NIT_NULL;
23682 fra.me.REG[1] = NIT_NULL;
23683 fra.me.REG[2] = NIT_NULL;
23684 fra.me.REG[3] = NIT_NULL;
23685 fra.me.REG[4] = NIT_NULL;
23686 fra.me.REG[5] = NIT_NULL;
23687 fra.me.REG[0] = p0;
23688 fra.me.REG[1] = p1;
23689 /* ./parser//parser.nit:7062 */
23690 fra.me.REG[2] = NIT_NULL;
23691 /* ./parser//parser.nit:7063 */
23692 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23693 /* ./parser//parser.nit:7064 */
23694 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23695 /* ./parser//parser.nit:7065 */
23696 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23697 /* ./parser//parser.nit:7066 */
23698 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23699 /* ./parser//parser.nit:7068 */
23700 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23701 if (UNTAG_Bool(REGB0)) {
23702 } else {
23703 nit_abort("Assert failed", NULL, LOCATE_parser, 7068);
23704 }
23705 /* ./parser//parser.nit:7070 */
23706 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23707 if (UNTAG_Bool(REGB0)) {
23708 } else {
23709 nit_abort("Assert failed", NULL, LOCATE_parser, 7070);
23710 }
23711 /* ./parser//parser.nit:7072 */
23712 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23713 if (UNTAG_Bool(REGB0)) {
23714 } else {
23715 nit_abort("Assert failed", NULL, LOCATE_parser, 7072);
23716 }
23717 /* ./parser//parser.nit:7073 */
23718 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);
23719 /* ./parser//parser.nit:7080 */
23720 fra.me.REG[2] = fra.me.REG[3];
23721 /* ./parser//parser.nit:7081 */
23722 REGB0 = TAG_Bool(ATTR_parser___ReduceAction187____goto(fra.me.REG[0])!=NIT_NULL);
23723 if (UNTAG_Bool(REGB0)) {
23724 } else {
23725 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7081);
23726 }
23727 REGB0 = ATTR_parser___ReduceAction187____goto(fra.me.REG[0]);
23728 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23729 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23730 stack_frame_head = fra.me.prev;
23731 return;
23732 }
23733 void parser___ReduceAction187___init(val_t p0, val_t p1, int* init_table){
23734 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction187].i;
23735 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23736 val_t REGB0;
23737 val_t tmp;
23738 if (init_table[itpos190]) return;
23739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23740 fra.me.file = LOCATE_parser;
23741 fra.me.line = 7084;
23742 fra.me.meth = LOCATE_parser___ReduceAction187___init;
23743 fra.me.has_broke = 0;
23744 fra.me.REG_size = 2;
23745 fra.me.REG[0] = NIT_NULL;
23746 fra.me.REG[1] = NIT_NULL;
23747 fra.me.REG[0] = p0;
23748 REGB0 = p1;
23749 /* ./parser//parser.nit:7084 */
23750 fra.me.REG[1] = fra.me.REG[0];
23751 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23752 ATTR_parser___ReduceAction187____goto(fra.me.REG[1]) = REGB0;
23753 stack_frame_head = fra.me.prev;
23754 init_table[itpos190] = 1;
23755 return;
23756 }
23757 void parser___ReduceAction188___action(val_t p0, val_t p1){
23758 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
23759 val_t REGB0;
23760 val_t tmp;
23761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23762 fra.me.file = LOCATE_parser;
23763 fra.me.line = 7088;
23764 fra.me.meth = LOCATE_parser___ReduceAction188___action;
23765 fra.me.has_broke = 0;
23766 fra.me.REG_size = 7;
23767 fra.me.REG[0] = NIT_NULL;
23768 fra.me.REG[1] = NIT_NULL;
23769 fra.me.REG[2] = NIT_NULL;
23770 fra.me.REG[3] = NIT_NULL;
23771 fra.me.REG[4] = NIT_NULL;
23772 fra.me.REG[5] = NIT_NULL;
23773 fra.me.REG[6] = NIT_NULL;
23774 fra.me.REG[0] = p0;
23775 fra.me.REG[1] = p1;
23776 /* ./parser//parser.nit:7090 */
23777 fra.me.REG[2] = NIT_NULL;
23778 /* ./parser//parser.nit:7091 */
23779 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23780 /* ./parser//parser.nit:7092 */
23781 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23782 /* ./parser//parser.nit:7093 */
23783 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23784 /* ./parser//parser.nit:7094 */
23785 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23786 /* ./parser//parser.nit:7095 */
23787 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23788 /* ./parser//parser.nit:7097 */
23789 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
23790 if (UNTAG_Bool(REGB0)) {
23791 } else {
23792 nit_abort("Assert failed", NULL, LOCATE_parser, 7097);
23793 }
23794 /* ./parser//parser.nit:7099 */
23795 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23796 if (UNTAG_Bool(REGB0)) {
23797 } else {
23798 nit_abort("Assert failed", NULL, LOCATE_parser, 7099);
23799 }
23800 /* ./parser//parser.nit:7101 */
23801 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23802 if (UNTAG_Bool(REGB0)) {
23803 } else {
23804 nit_abort("Assert failed", NULL, LOCATE_parser, 7101);
23805 }
23806 /* ./parser//parser.nit:7103 */
23807 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23808 if (UNTAG_Bool(REGB0)) {
23809 } else {
23810 nit_abort("Assert failed", NULL, LOCATE_parser, 7103);
23811 }
23812 /* ./parser//parser.nit:7104 */
23813 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);
23814 /* ./parser//parser.nit:7111 */
23815 fra.me.REG[2] = fra.me.REG[3];
23816 /* ./parser//parser.nit:7112 */
23817 REGB0 = TAG_Bool(ATTR_parser___ReduceAction188____goto(fra.me.REG[0])!=NIT_NULL);
23818 if (UNTAG_Bool(REGB0)) {
23819 } else {
23820 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7112);
23821 }
23822 REGB0 = ATTR_parser___ReduceAction188____goto(fra.me.REG[0]);
23823 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23824 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23825 stack_frame_head = fra.me.prev;
23826 return;
23827 }
23828 void parser___ReduceAction188___init(val_t p0, val_t p1, int* init_table){
23829 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction188].i;
23830 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23831 val_t REGB0;
23832 val_t tmp;
23833 if (init_table[itpos191]) return;
23834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23835 fra.me.file = LOCATE_parser;
23836 fra.me.line = 7115;
23837 fra.me.meth = LOCATE_parser___ReduceAction188___init;
23838 fra.me.has_broke = 0;
23839 fra.me.REG_size = 2;
23840 fra.me.REG[0] = NIT_NULL;
23841 fra.me.REG[1] = NIT_NULL;
23842 fra.me.REG[0] = p0;
23843 REGB0 = p1;
23844 /* ./parser//parser.nit:7115 */
23845 fra.me.REG[1] = fra.me.REG[0];
23846 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23847 ATTR_parser___ReduceAction188____goto(fra.me.REG[1]) = REGB0;
23848 stack_frame_head = fra.me.prev;
23849 init_table[itpos191] = 1;
23850 return;
23851 }
23852 void parser___ReduceAction189___action(val_t p0, val_t p1){
23853 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
23854 val_t REGB0;
23855 val_t tmp;
23856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23857 fra.me.file = LOCATE_parser;
23858 fra.me.line = 7119;
23859 fra.me.meth = LOCATE_parser___ReduceAction189___action;
23860 fra.me.has_broke = 0;
23861 fra.me.REG_size = 7;
23862 fra.me.REG[0] = NIT_NULL;
23863 fra.me.REG[1] = NIT_NULL;
23864 fra.me.REG[2] = NIT_NULL;
23865 fra.me.REG[3] = NIT_NULL;
23866 fra.me.REG[4] = NIT_NULL;
23867 fra.me.REG[5] = NIT_NULL;
23868 fra.me.REG[6] = NIT_NULL;
23869 fra.me.REG[0] = p0;
23870 fra.me.REG[1] = p1;
23871 /* ./parser//parser.nit:7121 */
23872 fra.me.REG[2] = NIT_NULL;
23873 /* ./parser//parser.nit:7122 */
23874 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23875 /* ./parser//parser.nit:7123 */
23876 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23877 /* ./parser//parser.nit:7124 */
23878 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23879 /* ./parser//parser.nit:7125 */
23880 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23881 /* ./parser//parser.nit:7126 */
23882 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23883 /* ./parser//parser.nit:7127 */
23884 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23885 /* ./parser//parser.nit:7129 */
23886 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23887 if (UNTAG_Bool(REGB0)) {
23888 } else {
23889 nit_abort("Assert failed", NULL, LOCATE_parser, 7129);
23890 }
23891 /* ./parser//parser.nit:7131 */
23892 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23893 if (UNTAG_Bool(REGB0)) {
23894 } else {
23895 nit_abort("Assert failed", NULL, LOCATE_parser, 7131);
23896 }
23897 /* ./parser//parser.nit:7133 */
23898 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
23899 if (UNTAG_Bool(REGB0)) {
23900 } else {
23901 nit_abort("Assert failed", NULL, LOCATE_parser, 7133);
23902 }
23903 /* ./parser//parser.nit:7135 */
23904 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
23905 if (UNTAG_Bool(REGB0)) {
23906 } else {
23907 nit_abort("Assert failed", NULL, LOCATE_parser, 7135);
23908 }
23909 /* ./parser//parser.nit:7136 */
23910 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]);
23911 /* ./parser//parser.nit:7143 */
23912 fra.me.REG[2] = fra.me.REG[3];
23913 /* ./parser//parser.nit:7144 */
23914 REGB0 = TAG_Bool(ATTR_parser___ReduceAction189____goto(fra.me.REG[0])!=NIT_NULL);
23915 if (UNTAG_Bool(REGB0)) {
23916 } else {
23917 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7144);
23918 }
23919 REGB0 = ATTR_parser___ReduceAction189____goto(fra.me.REG[0]);
23920 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
23921 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
23922 stack_frame_head = fra.me.prev;
23923 return;
23924 }
23925 void parser___ReduceAction189___init(val_t p0, val_t p1, int* init_table){
23926 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction189].i;
23927 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23928 val_t REGB0;
23929 val_t tmp;
23930 if (init_table[itpos192]) return;
23931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23932 fra.me.file = LOCATE_parser;
23933 fra.me.line = 7147;
23934 fra.me.meth = LOCATE_parser___ReduceAction189___init;
23935 fra.me.has_broke = 0;
23936 fra.me.REG_size = 2;
23937 fra.me.REG[0] = NIT_NULL;
23938 fra.me.REG[1] = NIT_NULL;
23939 fra.me.REG[0] = p0;
23940 REGB0 = p1;
23941 /* ./parser//parser.nit:7147 */
23942 fra.me.REG[1] = fra.me.REG[0];
23943 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
23944 ATTR_parser___ReduceAction189____goto(fra.me.REG[1]) = REGB0;
23945 stack_frame_head = fra.me.prev;
23946 init_table[itpos192] = 1;
23947 return;
23948 }
23949 void parser___ReduceAction190___action(val_t p0, val_t p1){
23950 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
23951 val_t REGB0;
23952 val_t tmp;
23953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23954 fra.me.file = LOCATE_parser;
23955 fra.me.line = 7151;
23956 fra.me.meth = LOCATE_parser___ReduceAction190___action;
23957 fra.me.has_broke = 0;
23958 fra.me.REG_size = 8;
23959 fra.me.REG[0] = NIT_NULL;
23960 fra.me.REG[1] = NIT_NULL;
23961 fra.me.REG[2] = NIT_NULL;
23962 fra.me.REG[3] = NIT_NULL;
23963 fra.me.REG[4] = NIT_NULL;
23964 fra.me.REG[5] = NIT_NULL;
23965 fra.me.REG[6] = NIT_NULL;
23966 fra.me.REG[7] = NIT_NULL;
23967 fra.me.REG[0] = p0;
23968 fra.me.REG[1] = p1;
23969 /* ./parser//parser.nit:7153 */
23970 fra.me.REG[2] = NIT_NULL;
23971 /* ./parser//parser.nit:7154 */
23972 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23973 /* ./parser//parser.nit:7155 */
23974 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23975 /* ./parser//parser.nit:7156 */
23976 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23977 /* ./parser//parser.nit:7157 */
23978 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23979 /* ./parser//parser.nit:7158 */
23980 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23981 /* ./parser//parser.nit:7159 */
23982 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23983 /* ./parser//parser.nit:7160 */
23984 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
23985 /* ./parser//parser.nit:7162 */
23986 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
23987 if (UNTAG_Bool(REGB0)) {
23988 } else {
23989 nit_abort("Assert failed", NULL, LOCATE_parser, 7162);
23990 }
23991 /* ./parser//parser.nit:7164 */
23992 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
23993 if (UNTAG_Bool(REGB0)) {
23994 } else {
23995 nit_abort("Assert failed", NULL, LOCATE_parser, 7164);
23996 }
23997 /* ./parser//parser.nit:7166 */
23998 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
23999 if (UNTAG_Bool(REGB0)) {
24000 } else {
24001 nit_abort("Assert failed", NULL, LOCATE_parser, 7166);
24002 }
24003 /* ./parser//parser.nit:7168 */
24004 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
24005 if (UNTAG_Bool(REGB0)) {
24006 } else {
24007 nit_abort("Assert failed", NULL, LOCATE_parser, 7168);
24008 }
24009 /* ./parser//parser.nit:7170 */
24010 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24011 if (UNTAG_Bool(REGB0)) {
24012 } else {
24013 nit_abort("Assert failed", NULL, LOCATE_parser, 7170);
24014 }
24015 /* ./parser//parser.nit:7171 */
24016 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]);
24017 /* ./parser//parser.nit:7178 */
24018 fra.me.REG[2] = fra.me.REG[3];
24019 /* ./parser//parser.nit:7179 */
24020 REGB0 = TAG_Bool(ATTR_parser___ReduceAction190____goto(fra.me.REG[0])!=NIT_NULL);
24021 if (UNTAG_Bool(REGB0)) {
24022 } else {
24023 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7179);
24024 }
24025 REGB0 = ATTR_parser___ReduceAction190____goto(fra.me.REG[0]);
24026 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24027 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24028 stack_frame_head = fra.me.prev;
24029 return;
24030 }
24031 void parser___ReduceAction190___init(val_t p0, val_t p1, int* init_table){
24032 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction190].i;
24033 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24034 val_t REGB0;
24035 val_t tmp;
24036 if (init_table[itpos193]) return;
24037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24038 fra.me.file = LOCATE_parser;
24039 fra.me.line = 7182;
24040 fra.me.meth = LOCATE_parser___ReduceAction190___init;
24041 fra.me.has_broke = 0;
24042 fra.me.REG_size = 2;
24043 fra.me.REG[0] = NIT_NULL;
24044 fra.me.REG[1] = NIT_NULL;
24045 fra.me.REG[0] = p0;
24046 REGB0 = p1;
24047 /* ./parser//parser.nit:7182 */
24048 fra.me.REG[1] = fra.me.REG[0];
24049 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24050 ATTR_parser___ReduceAction190____goto(fra.me.REG[1]) = REGB0;
24051 stack_frame_head = fra.me.prev;
24052 init_table[itpos193] = 1;
24053 return;
24054 }
24055 void parser___ReduceAction191___action(val_t p0, val_t p1){
24056 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
24057 val_t REGB0;
24058 val_t tmp;
24059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24060 fra.me.file = LOCATE_parser;
24061 fra.me.line = 7186;
24062 fra.me.meth = LOCATE_parser___ReduceAction191___action;
24063 fra.me.has_broke = 0;
24064 fra.me.REG_size = 7;
24065 fra.me.REG[0] = NIT_NULL;
24066 fra.me.REG[1] = NIT_NULL;
24067 fra.me.REG[2] = NIT_NULL;
24068 fra.me.REG[3] = NIT_NULL;
24069 fra.me.REG[4] = NIT_NULL;
24070 fra.me.REG[5] = NIT_NULL;
24071 fra.me.REG[6] = NIT_NULL;
24072 fra.me.REG[0] = p0;
24073 fra.me.REG[1] = p1;
24074 /* ./parser//parser.nit:7188 */
24075 fra.me.REG[2] = NIT_NULL;
24076 /* ./parser//parser.nit:7189 */
24077 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24078 /* ./parser//parser.nit:7190 */
24079 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24080 /* ./parser//parser.nit:7191 */
24081 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24082 /* ./parser//parser.nit:7192 */
24083 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24084 /* ./parser//parser.nit:7193 */
24085 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24086 /* ./parser//parser.nit:7194 */
24087 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24088 /* ./parser//parser.nit:7195 */
24089 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24090 /* ./parser//parser.nit:7197 */
24091 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
24092 if (UNTAG_Bool(REGB0)) {
24093 } else {
24094 nit_abort("Assert failed", NULL, LOCATE_parser, 7197);
24095 }
24096 /* ./parser//parser.nit:7199 */
24097 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
24098 if (UNTAG_Bool(REGB0)) {
24099 } else {
24100 nit_abort("Assert failed", NULL, LOCATE_parser, 7199);
24101 }
24102 /* ./parser//parser.nit:7201 */
24103 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
24104 if (UNTAG_Bool(REGB0)) {
24105 } else {
24106 nit_abort("Assert failed", NULL, LOCATE_parser, 7201);
24107 }
24108 /* ./parser//parser.nit:7203 */
24109 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24110 if (UNTAG_Bool(REGB0)) {
24111 } else {
24112 nit_abort("Assert failed", NULL, LOCATE_parser, 7203);
24113 }
24114 /* ./parser//parser.nit:7204 */
24115 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]);
24116 /* ./parser//parser.nit:7211 */
24117 fra.me.REG[2] = fra.me.REG[3];
24118 /* ./parser//parser.nit:7212 */
24119 REGB0 = TAG_Bool(ATTR_parser___ReduceAction191____goto(fra.me.REG[0])!=NIT_NULL);
24120 if (UNTAG_Bool(REGB0)) {
24121 } else {
24122 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7212);
24123 }
24124 REGB0 = ATTR_parser___ReduceAction191____goto(fra.me.REG[0]);
24125 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24126 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24127 stack_frame_head = fra.me.prev;
24128 return;
24129 }
24130 void parser___ReduceAction191___init(val_t p0, val_t p1, int* init_table){
24131 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction191].i;
24132 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24133 val_t REGB0;
24134 val_t tmp;
24135 if (init_table[itpos194]) return;
24136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24137 fra.me.file = LOCATE_parser;
24138 fra.me.line = 7215;
24139 fra.me.meth = LOCATE_parser___ReduceAction191___init;
24140 fra.me.has_broke = 0;
24141 fra.me.REG_size = 2;
24142 fra.me.REG[0] = NIT_NULL;
24143 fra.me.REG[1] = NIT_NULL;
24144 fra.me.REG[0] = p0;
24145 REGB0 = p1;
24146 /* ./parser//parser.nit:7215 */
24147 fra.me.REG[1] = fra.me.REG[0];
24148 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24149 ATTR_parser___ReduceAction191____goto(fra.me.REG[1]) = REGB0;
24150 stack_frame_head = fra.me.prev;
24151 init_table[itpos194] = 1;
24152 return;
24153 }
24154 void parser___ReduceAction192___action(val_t p0, val_t p1){
24155 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
24156 val_t REGB0;
24157 val_t tmp;
24158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24159 fra.me.file = LOCATE_parser;
24160 fra.me.line = 7219;
24161 fra.me.meth = LOCATE_parser___ReduceAction192___action;
24162 fra.me.has_broke = 0;
24163 fra.me.REG_size = 8;
24164 fra.me.REG[0] = NIT_NULL;
24165 fra.me.REG[1] = NIT_NULL;
24166 fra.me.REG[2] = NIT_NULL;
24167 fra.me.REG[3] = NIT_NULL;
24168 fra.me.REG[4] = NIT_NULL;
24169 fra.me.REG[5] = NIT_NULL;
24170 fra.me.REG[6] = NIT_NULL;
24171 fra.me.REG[7] = NIT_NULL;
24172 fra.me.REG[0] = p0;
24173 fra.me.REG[1] = p1;
24174 /* ./parser//parser.nit:7221 */
24175 fra.me.REG[2] = NIT_NULL;
24176 /* ./parser//parser.nit:7222 */
24177 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24178 /* ./parser//parser.nit:7223 */
24179 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24180 /* ./parser//parser.nit:7224 */
24181 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24182 /* ./parser//parser.nit:7225 */
24183 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24184 /* ./parser//parser.nit:7226 */
24185 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24186 /* ./parser//parser.nit:7227 */
24187 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24188 /* ./parser//parser.nit:7228 */
24189 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24190 /* ./parser//parser.nit:7229 */
24191 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24192 /* ./parser//parser.nit:7231 */
24193 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
24194 if (UNTAG_Bool(REGB0)) {
24195 } else {
24196 nit_abort("Assert failed", NULL, LOCATE_parser, 7231);
24197 }
24198 /* ./parser//parser.nit:7233 */
24199 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
24200 if (UNTAG_Bool(REGB0)) {
24201 } else {
24202 nit_abort("Assert failed", NULL, LOCATE_parser, 7233);
24203 }
24204 /* ./parser//parser.nit:7235 */
24205 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
24206 if (UNTAG_Bool(REGB0)) {
24207 } else {
24208 nit_abort("Assert failed", NULL, LOCATE_parser, 7235);
24209 }
24210 /* ./parser//parser.nit:7237 */
24211 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ASignature, ID_ASignature)) /*cast nullable ASignature*/;
24212 if (UNTAG_Bool(REGB0)) {
24213 } else {
24214 nit_abort("Assert failed", NULL, LOCATE_parser, 7237);
24215 }
24216 /* ./parser//parser.nit:7239 */
24217 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24218 if (UNTAG_Bool(REGB0)) {
24219 } else {
24220 nit_abort("Assert failed", NULL, LOCATE_parser, 7239);
24221 }
24222 /* ./parser//parser.nit:7240 */
24223 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]);
24224 /* ./parser//parser.nit:7247 */
24225 fra.me.REG[2] = fra.me.REG[3];
24226 /* ./parser//parser.nit:7248 */
24227 REGB0 = TAG_Bool(ATTR_parser___ReduceAction192____goto(fra.me.REG[0])!=NIT_NULL);
24228 if (UNTAG_Bool(REGB0)) {
24229 } else {
24230 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7248);
24231 }
24232 REGB0 = ATTR_parser___ReduceAction192____goto(fra.me.REG[0]);
24233 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24234 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24235 stack_frame_head = fra.me.prev;
24236 return;
24237 }
24238 void parser___ReduceAction192___init(val_t p0, val_t p1, int* init_table){
24239 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction192].i;
24240 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24241 val_t REGB0;
24242 val_t tmp;
24243 if (init_table[itpos195]) return;
24244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24245 fra.me.file = LOCATE_parser;
24246 fra.me.line = 7251;
24247 fra.me.meth = LOCATE_parser___ReduceAction192___init;
24248 fra.me.has_broke = 0;
24249 fra.me.REG_size = 2;
24250 fra.me.REG[0] = NIT_NULL;
24251 fra.me.REG[1] = NIT_NULL;
24252 fra.me.REG[0] = p0;
24253 REGB0 = p1;
24254 /* ./parser//parser.nit:7251 */
24255 fra.me.REG[1] = fra.me.REG[0];
24256 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24257 ATTR_parser___ReduceAction192____goto(fra.me.REG[1]) = REGB0;
24258 stack_frame_head = fra.me.prev;
24259 init_table[itpos195] = 1;
24260 return;
24261 }
24262 void parser___ReduceAction193___action(val_t p0, val_t p1){
24263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24264 val_t REGB0;
24265 val_t tmp;
24266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24267 fra.me.file = LOCATE_parser;
24268 fra.me.line = 7255;
24269 fra.me.meth = LOCATE_parser___ReduceAction193___action;
24270 fra.me.has_broke = 0;
24271 fra.me.REG_size = 4;
24272 fra.me.REG[0] = NIT_NULL;
24273 fra.me.REG[1] = NIT_NULL;
24274 fra.me.REG[2] = NIT_NULL;
24275 fra.me.REG[3] = NIT_NULL;
24276 fra.me.REG[0] = p0;
24277 fra.me.REG[1] = p1;
24278 /* ./parser//parser.nit:7257 */
24279 fra.me.REG[2] = NIT_NULL;
24280 /* ./parser//parser.nit:7258 */
24281 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24282 /* ./parser//parser.nit:7260 */
24283 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
24284 if (UNTAG_Bool(REGB0)) {
24285 } else {
24286 nit_abort("Assert failed", NULL, LOCATE_parser, 7260);
24287 }
24288 /* ./parser//parser.nit:7261 */
24289 fra.me.REG[3] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(NIT_NULL, fra.me.REG[3]);
24290 /* ./parser//parser.nit:7265 */
24291 fra.me.REG[2] = fra.me.REG[3];
24292 /* ./parser//parser.nit:7266 */
24293 REGB0 = TAG_Bool(ATTR_parser___ReduceAction193____goto(fra.me.REG[0])!=NIT_NULL);
24294 if (UNTAG_Bool(REGB0)) {
24295 } else {
24296 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7266);
24297 }
24298 REGB0 = ATTR_parser___ReduceAction193____goto(fra.me.REG[0]);
24299 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24300 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24301 stack_frame_head = fra.me.prev;
24302 return;
24303 }
24304 void parser___ReduceAction193___init(val_t p0, val_t p1, int* init_table){
24305 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction193].i;
24306 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24307 val_t REGB0;
24308 val_t tmp;
24309 if (init_table[itpos196]) return;
24310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24311 fra.me.file = LOCATE_parser;
24312 fra.me.line = 7269;
24313 fra.me.meth = LOCATE_parser___ReduceAction193___init;
24314 fra.me.has_broke = 0;
24315 fra.me.REG_size = 2;
24316 fra.me.REG[0] = NIT_NULL;
24317 fra.me.REG[1] = NIT_NULL;
24318 fra.me.REG[0] = p0;
24319 REGB0 = p1;
24320 /* ./parser//parser.nit:7269 */
24321 fra.me.REG[1] = fra.me.REG[0];
24322 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24323 ATTR_parser___ReduceAction193____goto(fra.me.REG[1]) = REGB0;
24324 stack_frame_head = fra.me.prev;
24325 init_table[itpos196] = 1;
24326 return;
24327 }
24328 void parser___ReduceAction194___action(val_t p0, val_t p1){
24329 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24330 val_t REGB0;
24331 val_t tmp;
24332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24333 fra.me.file = LOCATE_parser;
24334 fra.me.line = 7273;
24335 fra.me.meth = LOCATE_parser___ReduceAction194___action;
24336 fra.me.has_broke = 0;
24337 fra.me.REG_size = 5;
24338 fra.me.REG[0] = NIT_NULL;
24339 fra.me.REG[1] = NIT_NULL;
24340 fra.me.REG[2] = NIT_NULL;
24341 fra.me.REG[3] = NIT_NULL;
24342 fra.me.REG[4] = NIT_NULL;
24343 fra.me.REG[0] = p0;
24344 fra.me.REG[1] = p1;
24345 /* ./parser//parser.nit:7275 */
24346 fra.me.REG[2] = NIT_NULL;
24347 /* ./parser//parser.nit:7276 */
24348 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24349 /* ./parser//parser.nit:7277 */
24350 fra.me.REG[4] = NEW_Array_array___Array___init();
24351 /* ./parser//parser.nit:7279 */
24352 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24353 if (UNTAG_Bool(REGB0)) {
24354 } else {
24355 nit_abort("Assert failed", NULL, LOCATE_parser, 7279);
24356 }
24357 /* ./parser//parser.nit:7280 */
24358 fra.me.REG[4] = NEW_AType_parser_prod___AType___init_atype(NIT_NULL, fra.me.REG[3], fra.me.REG[4]);
24359 /* ./parser//parser.nit:7285 */
24360 fra.me.REG[2] = fra.me.REG[4];
24361 /* ./parser//parser.nit:7286 */
24362 REGB0 = TAG_Bool(ATTR_parser___ReduceAction194____goto(fra.me.REG[0])!=NIT_NULL);
24363 if (UNTAG_Bool(REGB0)) {
24364 } else {
24365 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7286);
24366 }
24367 REGB0 = ATTR_parser___ReduceAction194____goto(fra.me.REG[0]);
24368 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24369 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24370 stack_frame_head = fra.me.prev;
24371 return;
24372 }
24373 void parser___ReduceAction194___init(val_t p0, val_t p1, int* init_table){
24374 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction194].i;
24375 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24376 val_t REGB0;
24377 val_t tmp;
24378 if (init_table[itpos197]) return;
24379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24380 fra.me.file = LOCATE_parser;
24381 fra.me.line = 7289;
24382 fra.me.meth = LOCATE_parser___ReduceAction194___init;
24383 fra.me.has_broke = 0;
24384 fra.me.REG_size = 2;
24385 fra.me.REG[0] = NIT_NULL;
24386 fra.me.REG[1] = NIT_NULL;
24387 fra.me.REG[0] = p0;
24388 REGB0 = p1;
24389 /* ./parser//parser.nit:7289 */
24390 fra.me.REG[1] = fra.me.REG[0];
24391 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24392 ATTR_parser___ReduceAction194____goto(fra.me.REG[1]) = REGB0;
24393 stack_frame_head = fra.me.prev;
24394 init_table[itpos197] = 1;
24395 return;
24396 }
24397 void parser___ReduceAction195___action(val_t p0, val_t p1){
24398 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
24399 val_t REGB0;
24400 val_t tmp;
24401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24402 fra.me.file = LOCATE_parser;
24403 fra.me.line = 7293;
24404 fra.me.meth = LOCATE_parser___ReduceAction195___action;
24405 fra.me.has_broke = 0;
24406 fra.me.REG_size = 6;
24407 fra.me.REG[0] = NIT_NULL;
24408 fra.me.REG[1] = NIT_NULL;
24409 fra.me.REG[2] = NIT_NULL;
24410 fra.me.REG[3] = NIT_NULL;
24411 fra.me.REG[4] = NIT_NULL;
24412 fra.me.REG[5] = NIT_NULL;
24413 fra.me.REG[0] = p0;
24414 fra.me.REG[1] = p1;
24415 /* ./parser//parser.nit:7295 */
24416 fra.me.REG[2] = NIT_NULL;
24417 /* ./parser//parser.nit:7296 */
24418 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24419 /* ./parser//parser.nit:7297 */
24420 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24421 /* ./parser//parser.nit:7298 */
24422 fra.me.REG[5] = NEW_Array_array___Array___init();
24423 /* ./parser//parser.nit:7300 */
24424 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwnullable, ID_TKwnullable)) /*cast nullable TKwnullable*/;
24425 if (UNTAG_Bool(REGB0)) {
24426 } else {
24427 nit_abort("Assert failed", NULL, LOCATE_parser, 7300);
24428 }
24429 /* ./parser//parser.nit:7302 */
24430 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24431 if (UNTAG_Bool(REGB0)) {
24432 } else {
24433 nit_abort("Assert failed", NULL, LOCATE_parser, 7302);
24434 }
24435 /* ./parser//parser.nit:7303 */
24436 fra.me.REG[5] = NEW_AType_parser_prod___AType___init_atype(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
24437 /* ./parser//parser.nit:7308 */
24438 fra.me.REG[2] = fra.me.REG[5];
24439 /* ./parser//parser.nit:7309 */
24440 REGB0 = TAG_Bool(ATTR_parser___ReduceAction195____goto(fra.me.REG[0])!=NIT_NULL);
24441 if (UNTAG_Bool(REGB0)) {
24442 } else {
24443 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7309);
24444 }
24445 REGB0 = ATTR_parser___ReduceAction195____goto(fra.me.REG[0]);
24446 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24447 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24448 stack_frame_head = fra.me.prev;
24449 return;
24450 }
24451 void parser___ReduceAction195___init(val_t p0, val_t p1, int* init_table){
24452 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction195].i;
24453 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24454 val_t REGB0;
24455 val_t tmp;
24456 if (init_table[itpos198]) return;
24457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24458 fra.me.file = LOCATE_parser;
24459 fra.me.line = 7312;
24460 fra.me.meth = LOCATE_parser___ReduceAction195___init;
24461 fra.me.has_broke = 0;
24462 fra.me.REG_size = 2;
24463 fra.me.REG[0] = NIT_NULL;
24464 fra.me.REG[1] = NIT_NULL;
24465 fra.me.REG[0] = p0;
24466 REGB0 = p1;
24467 /* ./parser//parser.nit:7312 */
24468 fra.me.REG[1] = fra.me.REG[0];
24469 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24470 ATTR_parser___ReduceAction195____goto(fra.me.REG[1]) = REGB0;
24471 stack_frame_head = fra.me.prev;
24472 init_table[itpos198] = 1;
24473 return;
24474 }
24475 void parser___ReduceAction196___action(val_t p0, val_t p1){
24476 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
24477 val_t REGB0;
24478 val_t tmp;
24479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24480 fra.me.file = LOCATE_parser;
24481 fra.me.line = 7316;
24482 fra.me.meth = LOCATE_parser___ReduceAction196___action;
24483 fra.me.has_broke = 0;
24484 fra.me.REG_size = 6;
24485 fra.me.REG[0] = NIT_NULL;
24486 fra.me.REG[1] = NIT_NULL;
24487 fra.me.REG[2] = NIT_NULL;
24488 fra.me.REG[3] = NIT_NULL;
24489 fra.me.REG[4] = NIT_NULL;
24490 fra.me.REG[5] = NIT_NULL;
24491 fra.me.REG[0] = p0;
24492 fra.me.REG[1] = p1;
24493 /* ./parser//parser.nit:7318 */
24494 fra.me.REG[2] = NIT_NULL;
24495 /* ./parser//parser.nit:7319 */
24496 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24497 /* ./parser//parser.nit:7320 */
24498 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24499 /* ./parser//parser.nit:7321 */
24500 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24501 /* ./parser//parser.nit:7322 */
24502 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24503 /* ./parser//parser.nit:7323 */
24504 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24505 /* ./parser//parser.nit:7324 */
24506 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24507 /* ./parser//parser.nit:7325 */
24508 fra.me.REG[5] = NEW_Array_array___Array___init();
24509 /* ./parser//parser.nit:7327 */
24510 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24511 if (UNTAG_Bool(REGB0)) {
24512 } else {
24513 nit_abort("Assert failed", NULL, LOCATE_parser, 7327);
24514 }
24515 /* ./parser//parser.nit:7329 */
24516 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
24517 if (UNTAG_Bool(REGB0)) {
24518 } else {
24519 nit_abort("Assert failed", NULL, LOCATE_parser, 7329);
24520 }
24521 /* ./parser//parser.nit:7330 */
24522 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
24523 fra.me.REG[5] = fra.me.REG[3];
24524 /* ./parser//parser.nit:7331 */
24525 fra.me.REG[5] = NEW_AType_parser_prod___AType___init_atype(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
24526 /* ./parser//parser.nit:7336 */
24527 fra.me.REG[2] = fra.me.REG[5];
24528 /* ./parser//parser.nit:7337 */
24529 REGB0 = TAG_Bool(ATTR_parser___ReduceAction196____goto(fra.me.REG[0])!=NIT_NULL);
24530 if (UNTAG_Bool(REGB0)) {
24531 } else {
24532 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7337);
24533 }
24534 REGB0 = ATTR_parser___ReduceAction196____goto(fra.me.REG[0]);
24535 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24536 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24537 stack_frame_head = fra.me.prev;
24538 return;
24539 }
24540 void parser___ReduceAction196___init(val_t p0, val_t p1, int* init_table){
24541 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction196].i;
24542 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24543 val_t REGB0;
24544 val_t tmp;
24545 if (init_table[itpos199]) return;
24546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24547 fra.me.file = LOCATE_parser;
24548 fra.me.line = 7340;
24549 fra.me.meth = LOCATE_parser___ReduceAction196___init;
24550 fra.me.has_broke = 0;
24551 fra.me.REG_size = 2;
24552 fra.me.REG[0] = NIT_NULL;
24553 fra.me.REG[1] = NIT_NULL;
24554 fra.me.REG[0] = p0;
24555 REGB0 = p1;
24556 /* ./parser//parser.nit:7340 */
24557 fra.me.REG[1] = fra.me.REG[0];
24558 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24559 ATTR_parser___ReduceAction196____goto(fra.me.REG[1]) = REGB0;
24560 stack_frame_head = fra.me.prev;
24561 init_table[itpos199] = 1;
24562 return;
24563 }
24564 void parser___ReduceAction197___action(val_t p0, val_t p1){
24565 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
24566 val_t REGB0;
24567 val_t tmp;
24568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24569 fra.me.file = LOCATE_parser;
24570 fra.me.line = 7344;
24571 fra.me.meth = LOCATE_parser___ReduceAction197___action;
24572 fra.me.has_broke = 0;
24573 fra.me.REG_size = 7;
24574 fra.me.REG[0] = NIT_NULL;
24575 fra.me.REG[1] = NIT_NULL;
24576 fra.me.REG[2] = NIT_NULL;
24577 fra.me.REG[3] = NIT_NULL;
24578 fra.me.REG[4] = NIT_NULL;
24579 fra.me.REG[5] = NIT_NULL;
24580 fra.me.REG[6] = NIT_NULL;
24581 fra.me.REG[0] = p0;
24582 fra.me.REG[1] = p1;
24583 /* ./parser//parser.nit:7346 */
24584 fra.me.REG[2] = NIT_NULL;
24585 /* ./parser//parser.nit:7347 */
24586 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24587 /* ./parser//parser.nit:7348 */
24588 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24589 /* ./parser//parser.nit:7349 */
24590 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24591 /* ./parser//parser.nit:7350 */
24592 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24593 /* ./parser//parser.nit:7351 */
24594 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24595 /* ./parser//parser.nit:7352 */
24596 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24597 /* ./parser//parser.nit:7353 */
24598 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24599 /* ./parser//parser.nit:7354 */
24600 fra.me.REG[6] = NEW_Array_array___Array___init();
24601 /* ./parser//parser.nit:7356 */
24602 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwnullable, ID_TKwnullable)) /*cast nullable TKwnullable*/;
24603 if (UNTAG_Bool(REGB0)) {
24604 } else {
24605 nit_abort("Assert failed", NULL, LOCATE_parser, 7356);
24606 }
24607 /* ./parser//parser.nit:7358 */
24608 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
24609 if (UNTAG_Bool(REGB0)) {
24610 } else {
24611 nit_abort("Assert failed", NULL, LOCATE_parser, 7358);
24612 }
24613 /* ./parser//parser.nit:7360 */
24614 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
24615 if (UNTAG_Bool(REGB0)) {
24616 } else {
24617 nit_abort("Assert failed", NULL, LOCATE_parser, 7360);
24618 }
24619 /* ./parser//parser.nit:7361 */
24620 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
24621 fra.me.REG[6] = fra.me.REG[3];
24622 /* ./parser//parser.nit:7362 */
24623 fra.me.REG[6] = NEW_AType_parser_prod___AType___init_atype(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
24624 /* ./parser//parser.nit:7367 */
24625 fra.me.REG[2] = fra.me.REG[6];
24626 /* ./parser//parser.nit:7368 */
24627 REGB0 = TAG_Bool(ATTR_parser___ReduceAction197____goto(fra.me.REG[0])!=NIT_NULL);
24628 if (UNTAG_Bool(REGB0)) {
24629 } else {
24630 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7368);
24631 }
24632 REGB0 = ATTR_parser___ReduceAction197____goto(fra.me.REG[0]);
24633 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24634 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24635 stack_frame_head = fra.me.prev;
24636 return;
24637 }
24638 void parser___ReduceAction197___init(val_t p0, val_t p1, int* init_table){
24639 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction197].i;
24640 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24641 val_t REGB0;
24642 val_t tmp;
24643 if (init_table[itpos200]) return;
24644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24645 fra.me.file = LOCATE_parser;
24646 fra.me.line = 7371;
24647 fra.me.meth = LOCATE_parser___ReduceAction197___init;
24648 fra.me.has_broke = 0;
24649 fra.me.REG_size = 2;
24650 fra.me.REG[0] = NIT_NULL;
24651 fra.me.REG[1] = NIT_NULL;
24652 fra.me.REG[0] = p0;
24653 REGB0 = p1;
24654 /* ./parser//parser.nit:7371 */
24655 fra.me.REG[1] = fra.me.REG[0];
24656 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24657 ATTR_parser___ReduceAction197____goto(fra.me.REG[1]) = REGB0;
24658 stack_frame_head = fra.me.prev;
24659 init_table[itpos200] = 1;
24660 return;
24661 }
24662 void parser___ReduceAction198___action(val_t p0, val_t p1){
24663 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24664 val_t REGB0;
24665 val_t REGB1;
24666 val_t tmp;
24667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24668 fra.me.file = LOCATE_parser;
24669 fra.me.line = 7375;
24670 fra.me.meth = LOCATE_parser___ReduceAction198___action;
24671 fra.me.has_broke = 0;
24672 fra.me.REG_size = 5;
24673 fra.me.REG[0] = NIT_NULL;
24674 fra.me.REG[1] = NIT_NULL;
24675 fra.me.REG[2] = NIT_NULL;
24676 fra.me.REG[3] = NIT_NULL;
24677 fra.me.REG[4] = NIT_NULL;
24678 fra.me.REG[0] = p0;
24679 fra.me.REG[1] = p1;
24680 /* ./parser//parser.nit:7377 */
24681 fra.me.REG[2] = NIT_NULL;
24682 /* ./parser//parser.nit:7378 */
24683 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24684 /* ./parser//parser.nit:7379 */
24685 fra.me.REG[4] = NEW_Array_array___Array___init();
24686 /* ./parser//parser.nit:7381 */
24687 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24688 if (UNTAG_Bool(REGB0)) {
24689 } else {
24690 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24691 if (UNTAG_Bool(REGB1)) {
24692 REGB1 = TAG_Bool(false);
24693 REGB0 = REGB1;
24694 } else {
24695 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24696 REGB0 = REGB1;
24697 }
24698 }
24699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24700 if (UNTAG_Bool(REGB0)) {
24701 /* ./parser//parser.nit:7382 */
24702 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
24703 }
24704 /* ./parser//parser.nit:7384 */
24705 fra.me.REG[2] = fra.me.REG[4];
24706 /* ./parser//parser.nit:7385 */
24707 REGB0 = TAG_Bool(ATTR_parser___ReduceAction198____goto(fra.me.REG[0])!=NIT_NULL);
24708 if (UNTAG_Bool(REGB0)) {
24709 } else {
24710 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7385);
24711 }
24712 REGB0 = ATTR_parser___ReduceAction198____goto(fra.me.REG[0]);
24713 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24714 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24715 stack_frame_head = fra.me.prev;
24716 return;
24717 }
24718 void parser___ReduceAction198___init(val_t p0, val_t p1, int* init_table){
24719 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction198].i;
24720 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24721 val_t REGB0;
24722 val_t tmp;
24723 if (init_table[itpos201]) return;
24724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24725 fra.me.file = LOCATE_parser;
24726 fra.me.line = 7388;
24727 fra.me.meth = LOCATE_parser___ReduceAction198___init;
24728 fra.me.has_broke = 0;
24729 fra.me.REG_size = 2;
24730 fra.me.REG[0] = NIT_NULL;
24731 fra.me.REG[1] = NIT_NULL;
24732 fra.me.REG[0] = p0;
24733 REGB0 = p1;
24734 /* ./parser//parser.nit:7388 */
24735 fra.me.REG[1] = fra.me.REG[0];
24736 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24737 ATTR_parser___ReduceAction198____goto(fra.me.REG[1]) = REGB0;
24738 stack_frame_head = fra.me.prev;
24739 init_table[itpos201] = 1;
24740 return;
24741 }
24742 void parser___ReduceAction199___action(val_t p0, val_t p1){
24743 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
24744 val_t REGB0;
24745 val_t REGB1;
24746 val_t tmp;
24747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24748 fra.me.file = LOCATE_parser;
24749 fra.me.line = 7392;
24750 fra.me.meth = LOCATE_parser___ReduceAction199___action;
24751 fra.me.has_broke = 0;
24752 fra.me.REG_size = 6;
24753 fra.me.REG[0] = NIT_NULL;
24754 fra.me.REG[1] = NIT_NULL;
24755 fra.me.REG[2] = NIT_NULL;
24756 fra.me.REG[3] = NIT_NULL;
24757 fra.me.REG[4] = NIT_NULL;
24758 fra.me.REG[5] = NIT_NULL;
24759 fra.me.REG[0] = p0;
24760 fra.me.REG[1] = p1;
24761 /* ./parser//parser.nit:7394 */
24762 fra.me.REG[2] = NIT_NULL;
24763 /* ./parser//parser.nit:7395 */
24764 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24765 /* ./parser//parser.nit:7396 */
24766 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24767 /* ./parser//parser.nit:7397 */
24768 fra.me.REG[5] = NEW_Array_array___Array___init();
24769 /* ./parser//parser.nit:7400 */
24770 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
24771 if (UNTAG_Bool(REGB0)) {
24772 } else {
24773 nit_abort("Assert failed", NULL, LOCATE_parser, 7400);
24774 }
24775 /* ./parser//parser.nit:7401 */
24776 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
24777 if (UNTAG_Bool(REGB0)) {
24778 } else {
24779 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
24780 if (UNTAG_Bool(REGB1)) {
24781 REGB1 = TAG_Bool(false);
24782 REGB0 = REGB1;
24783 } else {
24784 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
24785 REGB0 = REGB1;
24786 }
24787 }
24788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24789 if (UNTAG_Bool(REGB0)) {
24790 /* ./parser//parser.nit:7402 */
24791 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
24792 }
24793 /* ./parser//parser.nit:7404 */
24794 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
24795 fra.me.REG[5] = fra.me.REG[3];
24796 /* ./parser//parser.nit:7405 */
24797 fra.me.REG[2] = fra.me.REG[5];
24798 /* ./parser//parser.nit:7406 */
24799 REGB0 = TAG_Bool(ATTR_parser___ReduceAction199____goto(fra.me.REG[0])!=NIT_NULL);
24800 if (UNTAG_Bool(REGB0)) {
24801 } else {
24802 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7406);
24803 }
24804 REGB0 = ATTR_parser___ReduceAction199____goto(fra.me.REG[0]);
24805 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24806 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24807 stack_frame_head = fra.me.prev;
24808 return;
24809 }
24810 void parser___ReduceAction199___init(val_t p0, val_t p1, int* init_table){
24811 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction199].i;
24812 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24813 val_t REGB0;
24814 val_t tmp;
24815 if (init_table[itpos202]) return;
24816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24817 fra.me.file = LOCATE_parser;
24818 fra.me.line = 7409;
24819 fra.me.meth = LOCATE_parser___ReduceAction199___init;
24820 fra.me.has_broke = 0;
24821 fra.me.REG_size = 2;
24822 fra.me.REG[0] = NIT_NULL;
24823 fra.me.REG[1] = NIT_NULL;
24824 fra.me.REG[0] = p0;
24825 REGB0 = p1;
24826 /* ./parser//parser.nit:7409 */
24827 fra.me.REG[1] = fra.me.REG[0];
24828 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24829 ATTR_parser___ReduceAction199____goto(fra.me.REG[1]) = REGB0;
24830 stack_frame_head = fra.me.prev;
24831 init_table[itpos202] = 1;
24832 return;
24833 }
24834 void parser___ReduceAction200___action(val_t p0, val_t p1){
24835 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24836 val_t REGB0;
24837 val_t tmp;
24838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24839 fra.me.file = LOCATE_parser;
24840 fra.me.line = 7413;
24841 fra.me.meth = LOCATE_parser___ReduceAction200___action;
24842 fra.me.has_broke = 0;
24843 fra.me.REG_size = 5;
24844 fra.me.REG[0] = NIT_NULL;
24845 fra.me.REG[1] = NIT_NULL;
24846 fra.me.REG[2] = NIT_NULL;
24847 fra.me.REG[3] = NIT_NULL;
24848 fra.me.REG[4] = NIT_NULL;
24849 fra.me.REG[0] = p0;
24850 fra.me.REG[1] = p1;
24851 /* ./parser//parser.nit:7415 */
24852 fra.me.REG[2] = NIT_NULL;
24853 /* ./parser//parser.nit:7416 */
24854 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24855 /* ./parser//parser.nit:7417 */
24856 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24857 /* ./parser//parser.nit:7418 */
24858 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24859 /* ./parser//parser.nit:7420 */
24860 fra.me.REG[2] = fra.me.REG[3];
24861 /* ./parser//parser.nit:7421 */
24862 REGB0 = TAG_Bool(ATTR_parser___ReduceAction200____goto(fra.me.REG[0])!=NIT_NULL);
24863 if (UNTAG_Bool(REGB0)) {
24864 } else {
24865 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7421);
24866 }
24867 REGB0 = ATTR_parser___ReduceAction200____goto(fra.me.REG[0]);
24868 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24869 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24870 stack_frame_head = fra.me.prev;
24871 return;
24872 }
24873 void parser___ReduceAction200___init(val_t p0, val_t p1, int* init_table){
24874 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction200].i;
24875 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24876 val_t REGB0;
24877 val_t tmp;
24878 if (init_table[itpos203]) return;
24879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24880 fra.me.file = LOCATE_parser;
24881 fra.me.line = 7424;
24882 fra.me.meth = LOCATE_parser___ReduceAction200___init;
24883 fra.me.has_broke = 0;
24884 fra.me.REG_size = 2;
24885 fra.me.REG[0] = NIT_NULL;
24886 fra.me.REG[1] = NIT_NULL;
24887 fra.me.REG[0] = p0;
24888 REGB0 = p1;
24889 /* ./parser//parser.nit:7424 */
24890 fra.me.REG[1] = fra.me.REG[0];
24891 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24892 ATTR_parser___ReduceAction200____goto(fra.me.REG[1]) = REGB0;
24893 stack_frame_head = fra.me.prev;
24894 init_table[itpos203] = 1;
24895 return;
24896 }
24897 void parser___ReduceAction202___action(val_t p0, val_t p1){
24898 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24899 val_t REGB0;
24900 val_t tmp;
24901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24902 fra.me.file = LOCATE_parser;
24903 fra.me.line = 7428;
24904 fra.me.meth = LOCATE_parser___ReduceAction202___action;
24905 fra.me.has_broke = 0;
24906 fra.me.REG_size = 5;
24907 fra.me.REG[0] = NIT_NULL;
24908 fra.me.REG[1] = NIT_NULL;
24909 fra.me.REG[2] = NIT_NULL;
24910 fra.me.REG[3] = NIT_NULL;
24911 fra.me.REG[4] = NIT_NULL;
24912 fra.me.REG[0] = p0;
24913 fra.me.REG[1] = p1;
24914 /* ./parser//parser.nit:7430 */
24915 fra.me.REG[2] = NIT_NULL;
24916 /* ./parser//parser.nit:7431 */
24917 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24918 /* ./parser//parser.nit:7432 */
24919 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24920 /* ./parser//parser.nit:7433 */
24921 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24922 /* ./parser//parser.nit:7435 */
24923 fra.me.REG[2] = fra.me.REG[3];
24924 /* ./parser//parser.nit:7436 */
24925 REGB0 = TAG_Bool(ATTR_parser___ReduceAction202____goto(fra.me.REG[0])!=NIT_NULL);
24926 if (UNTAG_Bool(REGB0)) {
24927 } else {
24928 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7436);
24929 }
24930 REGB0 = ATTR_parser___ReduceAction202____goto(fra.me.REG[0]);
24931 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24932 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24933 stack_frame_head = fra.me.prev;
24934 return;
24935 }
24936 void parser___ReduceAction202___init(val_t p0, val_t p1, int* init_table){
24937 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction202].i;
24938 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24939 val_t REGB0;
24940 val_t tmp;
24941 if (init_table[itpos204]) return;
24942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24943 fra.me.file = LOCATE_parser;
24944 fra.me.line = 7439;
24945 fra.me.meth = LOCATE_parser___ReduceAction202___init;
24946 fra.me.has_broke = 0;
24947 fra.me.REG_size = 2;
24948 fra.me.REG[0] = NIT_NULL;
24949 fra.me.REG[1] = NIT_NULL;
24950 fra.me.REG[0] = p0;
24951 REGB0 = p1;
24952 /* ./parser//parser.nit:7439 */
24953 fra.me.REG[1] = fra.me.REG[0];
24954 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24955 ATTR_parser___ReduceAction202____goto(fra.me.REG[1]) = REGB0;
24956 stack_frame_head = fra.me.prev;
24957 init_table[itpos204] = 1;
24958 return;
24959 }
24960 void parser___ReduceAction203___action(val_t p0, val_t p1){
24961 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24962 val_t REGB0;
24963 val_t tmp;
24964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24965 fra.me.file = LOCATE_parser;
24966 fra.me.line = 7443;
24967 fra.me.meth = LOCATE_parser___ReduceAction203___action;
24968 fra.me.has_broke = 0;
24969 fra.me.REG_size = 4;
24970 fra.me.REG[0] = NIT_NULL;
24971 fra.me.REG[1] = NIT_NULL;
24972 fra.me.REG[2] = NIT_NULL;
24973 fra.me.REG[3] = NIT_NULL;
24974 fra.me.REG[0] = p0;
24975 fra.me.REG[1] = p1;
24976 /* ./parser//parser.nit:7445 */
24977 fra.me.REG[2] = NIT_NULL;
24978 /* ./parser//parser.nit:7446 */
24979 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24980 /* ./parser//parser.nit:7447 */
24981 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
24982 /* ./parser//parser.nit:7448 */
24983 fra.me.REG[3] = NEW_Array_array___Array___init();
24984 /* ./parser//parser.nit:7449 */
24985 fra.me.REG[3] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[3]);
24986 /* ./parser//parser.nit:7452 */
24987 fra.me.REG[2] = fra.me.REG[3];
24988 /* ./parser//parser.nit:7453 */
24989 REGB0 = TAG_Bool(ATTR_parser___ReduceAction203____goto(fra.me.REG[0])!=NIT_NULL);
24990 if (UNTAG_Bool(REGB0)) {
24991 } else {
24992 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7453);
24993 }
24994 REGB0 = ATTR_parser___ReduceAction203____goto(fra.me.REG[0]);
24995 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
24996 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
24997 stack_frame_head = fra.me.prev;
24998 return;
24999 }
25000 void parser___ReduceAction203___init(val_t p0, val_t p1, int* init_table){
25001 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction203].i;
25002 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25003 val_t REGB0;
25004 val_t tmp;
25005 if (init_table[itpos205]) return;
25006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25007 fra.me.file = LOCATE_parser;
25008 fra.me.line = 7456;
25009 fra.me.meth = LOCATE_parser___ReduceAction203___init;
25010 fra.me.has_broke = 0;
25011 fra.me.REG_size = 2;
25012 fra.me.REG[0] = NIT_NULL;
25013 fra.me.REG[1] = NIT_NULL;
25014 fra.me.REG[0] = p0;
25015 REGB0 = p1;
25016 /* ./parser//parser.nit:7456 */
25017 fra.me.REG[1] = fra.me.REG[0];
25018 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25019 ATTR_parser___ReduceAction203____goto(fra.me.REG[1]) = REGB0;
25020 stack_frame_head = fra.me.prev;
25021 init_table[itpos205] = 1;
25022 return;
25023 }
25024 void parser___ReduceAction204___action(val_t p0, val_t p1){
25025 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25026 val_t REGB0;
25027 val_t tmp;
25028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25029 fra.me.file = LOCATE_parser;
25030 fra.me.line = 7460;
25031 fra.me.meth = LOCATE_parser___ReduceAction204___action;
25032 fra.me.has_broke = 0;
25033 fra.me.REG_size = 4;
25034 fra.me.REG[0] = NIT_NULL;
25035 fra.me.REG[1] = NIT_NULL;
25036 fra.me.REG[2] = NIT_NULL;
25037 fra.me.REG[3] = NIT_NULL;
25038 fra.me.REG[0] = p0;
25039 fra.me.REG[1] = p1;
25040 /* ./parser//parser.nit:7462 */
25041 fra.me.REG[2] = NIT_NULL;
25042 /* ./parser//parser.nit:7463 */
25043 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25044 /* ./parser//parser.nit:7464 */
25045 fra.me.REG[3] = NEW_Array_array___Array___init();
25046 /* ./parser//parser.nit:7465 */
25047 fra.me.REG[3] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[3]);
25048 /* ./parser//parser.nit:7468 */
25049 fra.me.REG[2] = fra.me.REG[3];
25050 /* ./parser//parser.nit:7469 */
25051 REGB0 = TAG_Bool(ATTR_parser___ReduceAction204____goto(fra.me.REG[0])!=NIT_NULL);
25052 if (UNTAG_Bool(REGB0)) {
25053 } else {
25054 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7469);
25055 }
25056 REGB0 = ATTR_parser___ReduceAction204____goto(fra.me.REG[0]);
25057 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25058 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25059 stack_frame_head = fra.me.prev;
25060 return;
25061 }
25062 void parser___ReduceAction204___init(val_t p0, val_t p1, int* init_table){
25063 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction204].i;
25064 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25065 val_t REGB0;
25066 val_t tmp;
25067 if (init_table[itpos206]) return;
25068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25069 fra.me.file = LOCATE_parser;
25070 fra.me.line = 7472;
25071 fra.me.meth = LOCATE_parser___ReduceAction204___init;
25072 fra.me.has_broke = 0;
25073 fra.me.REG_size = 2;
25074 fra.me.REG[0] = NIT_NULL;
25075 fra.me.REG[1] = NIT_NULL;
25076 fra.me.REG[0] = p0;
25077 REGB0 = p1;
25078 /* ./parser//parser.nit:7472 */
25079 fra.me.REG[1] = fra.me.REG[0];
25080 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25081 ATTR_parser___ReduceAction204____goto(fra.me.REG[1]) = REGB0;
25082 stack_frame_head = fra.me.prev;
25083 init_table[itpos206] = 1;
25084 return;
25085 }
25086 void parser___ReduceAction205___action(val_t p0, val_t p1){
25087 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25088 val_t REGB0;
25089 val_t tmp;
25090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25091 fra.me.file = LOCATE_parser;
25092 fra.me.line = 7476;
25093 fra.me.meth = LOCATE_parser___ReduceAction205___action;
25094 fra.me.has_broke = 0;
25095 fra.me.REG_size = 4;
25096 fra.me.REG[0] = NIT_NULL;
25097 fra.me.REG[1] = NIT_NULL;
25098 fra.me.REG[2] = NIT_NULL;
25099 fra.me.REG[3] = NIT_NULL;
25100 fra.me.REG[0] = p0;
25101 fra.me.REG[1] = p1;
25102 /* ./parser//parser.nit:7478 */
25103 fra.me.REG[2] = NIT_NULL;
25104 /* ./parser//parser.nit:7479 */
25105 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25106 /* ./parser//parser.nit:7481 */
25107 fra.me.REG[2] = fra.me.REG[3];
25108 /* ./parser//parser.nit:7482 */
25109 REGB0 = TAG_Bool(ATTR_parser___ReduceAction205____goto(fra.me.REG[0])!=NIT_NULL);
25110 if (UNTAG_Bool(REGB0)) {
25111 } else {
25112 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7482);
25113 }
25114 REGB0 = ATTR_parser___ReduceAction205____goto(fra.me.REG[0]);
25115 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25116 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25117 stack_frame_head = fra.me.prev;
25118 return;
25119 }
25120 void parser___ReduceAction205___init(val_t p0, val_t p1, int* init_table){
25121 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction205].i;
25122 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25123 val_t REGB0;
25124 val_t tmp;
25125 if (init_table[itpos207]) return;
25126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25127 fra.me.file = LOCATE_parser;
25128 fra.me.line = 7485;
25129 fra.me.meth = LOCATE_parser___ReduceAction205___init;
25130 fra.me.has_broke = 0;
25131 fra.me.REG_size = 2;
25132 fra.me.REG[0] = NIT_NULL;
25133 fra.me.REG[1] = NIT_NULL;
25134 fra.me.REG[0] = p0;
25135 REGB0 = p1;
25136 /* ./parser//parser.nit:7485 */
25137 fra.me.REG[1] = fra.me.REG[0];
25138 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25139 ATTR_parser___ReduceAction205____goto(fra.me.REG[1]) = REGB0;
25140 stack_frame_head = fra.me.prev;
25141 init_table[itpos207] = 1;
25142 return;
25143 }
25144 void parser___ReduceAction206___action(val_t p0, val_t p1){
25145 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25146 val_t REGB0;
25147 val_t REGB1;
25148 val_t tmp;
25149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25150 fra.me.file = LOCATE_parser;
25151 fra.me.line = 7489;
25152 fra.me.meth = LOCATE_parser___ReduceAction206___action;
25153 fra.me.has_broke = 0;
25154 fra.me.REG_size = 5;
25155 fra.me.REG[0] = NIT_NULL;
25156 fra.me.REG[1] = NIT_NULL;
25157 fra.me.REG[2] = NIT_NULL;
25158 fra.me.REG[3] = NIT_NULL;
25159 fra.me.REG[4] = NIT_NULL;
25160 fra.me.REG[0] = p0;
25161 fra.me.REG[1] = p1;
25162 /* ./parser//parser.nit:7491 */
25163 fra.me.REG[2] = NIT_NULL;
25164 /* ./parser//parser.nit:7492 */
25165 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25166 /* ./parser//parser.nit:7493 */
25167 fra.me.REG[4] = NEW_Array_array___Array___init();
25168 /* ./parser//parser.nit:7495 */
25169 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25170 if (UNTAG_Bool(REGB0)) {
25171 } else {
25172 nit_abort("Assert failed", NULL, LOCATE_parser, 7495);
25173 }
25174 /* ./parser//parser.nit:7496 */
25175 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25176 if (UNTAG_Bool(REGB0)) {
25177 } else {
25178 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25179 if (UNTAG_Bool(REGB1)) {
25180 REGB1 = TAG_Bool(false);
25181 REGB0 = REGB1;
25182 } else {
25183 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25184 REGB0 = REGB1;
25185 }
25186 }
25187 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25188 if (UNTAG_Bool(REGB0)) {
25189 /* ./parser//parser.nit:7497 */
25190 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
25191 }
25192 /* ./parser//parser.nit:7499 */
25193 fra.me.REG[4] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4]);
25194 /* ./parser//parser.nit:7502 */
25195 fra.me.REG[2] = fra.me.REG[4];
25196 /* ./parser//parser.nit:7503 */
25197 REGB0 = TAG_Bool(ATTR_parser___ReduceAction206____goto(fra.me.REG[0])!=NIT_NULL);
25198 if (UNTAG_Bool(REGB0)) {
25199 } else {
25200 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7503);
25201 }
25202 REGB0 = ATTR_parser___ReduceAction206____goto(fra.me.REG[0]);
25203 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25204 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25205 stack_frame_head = fra.me.prev;
25206 return;
25207 }
25208 void parser___ReduceAction206___init(val_t p0, val_t p1, int* init_table){
25209 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction206].i;
25210 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25211 val_t REGB0;
25212 val_t tmp;
25213 if (init_table[itpos208]) return;
25214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25215 fra.me.file = LOCATE_parser;
25216 fra.me.line = 7506;
25217 fra.me.meth = LOCATE_parser___ReduceAction206___init;
25218 fra.me.has_broke = 0;
25219 fra.me.REG_size = 2;
25220 fra.me.REG[0] = NIT_NULL;
25221 fra.me.REG[1] = NIT_NULL;
25222 fra.me.REG[0] = p0;
25223 REGB0 = p1;
25224 /* ./parser//parser.nit:7506 */
25225 fra.me.REG[1] = fra.me.REG[0];
25226 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25227 ATTR_parser___ReduceAction206____goto(fra.me.REG[1]) = REGB0;
25228 stack_frame_head = fra.me.prev;
25229 init_table[itpos208] = 1;
25230 return;
25231 }
25232 void parser___ReduceAction207___action(val_t p0, val_t p1){
25233 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25234 val_t REGB0;
25235 val_t REGB1;
25236 val_t tmp;
25237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25238 fra.me.file = LOCATE_parser;
25239 fra.me.line = 7510;
25240 fra.me.meth = LOCATE_parser___ReduceAction207___action;
25241 fra.me.has_broke = 0;
25242 fra.me.REG_size = 6;
25243 fra.me.REG[0] = NIT_NULL;
25244 fra.me.REG[1] = NIT_NULL;
25245 fra.me.REG[2] = NIT_NULL;
25246 fra.me.REG[3] = NIT_NULL;
25247 fra.me.REG[4] = NIT_NULL;
25248 fra.me.REG[5] = NIT_NULL;
25249 fra.me.REG[0] = p0;
25250 fra.me.REG[1] = p1;
25251 /* ./parser//parser.nit:7512 */
25252 fra.me.REG[2] = NIT_NULL;
25253 /* ./parser//parser.nit:7513 */
25254 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25255 /* ./parser//parser.nit:7514 */
25256 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25257 /* ./parser//parser.nit:7515 */
25258 fra.me.REG[5] = NEW_Array_array___Array___init();
25259 /* ./parser//parser.nit:7517 */
25260 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25261 if (UNTAG_Bool(REGB0)) {
25262 } else {
25263 nit_abort("Assert failed", NULL, LOCATE_parser, 7517);
25264 }
25265 /* ./parser//parser.nit:7519 */
25266 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
25267 if (UNTAG_Bool(REGB0)) {
25268 } else {
25269 nit_abort("Assert failed", NULL, LOCATE_parser, 7519);
25270 }
25271 /* ./parser//parser.nit:7520 */
25272 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25273 if (UNTAG_Bool(REGB0)) {
25274 } else {
25275 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25276 if (UNTAG_Bool(REGB1)) {
25277 REGB1 = TAG_Bool(false);
25278 REGB0 = REGB1;
25279 } else {
25280 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
25281 REGB0 = REGB1;
25282 }
25283 }
25284 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25285 if (UNTAG_Bool(REGB0)) {
25286 /* ./parser//parser.nit:7521 */
25287 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
25288 }
25289 /* ./parser//parser.nit:7523 */
25290 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
25291 fra.me.REG[5] = fra.me.REG[3];
25292 /* ./parser//parser.nit:7524 */
25293 fra.me.REG[5] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5]);
25294 /* ./parser//parser.nit:7527 */
25295 fra.me.REG[2] = fra.me.REG[5];
25296 /* ./parser//parser.nit:7528 */
25297 REGB0 = TAG_Bool(ATTR_parser___ReduceAction207____goto(fra.me.REG[0])!=NIT_NULL);
25298 if (UNTAG_Bool(REGB0)) {
25299 } else {
25300 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7528);
25301 }
25302 REGB0 = ATTR_parser___ReduceAction207____goto(fra.me.REG[0]);
25303 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25304 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25305 stack_frame_head = fra.me.prev;
25306 return;
25307 }
25308 void parser___ReduceAction207___init(val_t p0, val_t p1, int* init_table){
25309 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction207].i;
25310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25311 val_t REGB0;
25312 val_t tmp;
25313 if (init_table[itpos209]) return;
25314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25315 fra.me.file = LOCATE_parser;
25316 fra.me.line = 7531;
25317 fra.me.meth = LOCATE_parser___ReduceAction207___init;
25318 fra.me.has_broke = 0;
25319 fra.me.REG_size = 2;
25320 fra.me.REG[0] = NIT_NULL;
25321 fra.me.REG[1] = NIT_NULL;
25322 fra.me.REG[0] = p0;
25323 REGB0 = p1;
25324 /* ./parser//parser.nit:7531 */
25325 fra.me.REG[1] = fra.me.REG[0];
25326 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25327 ATTR_parser___ReduceAction207____goto(fra.me.REG[1]) = REGB0;
25328 stack_frame_head = fra.me.prev;
25329 init_table[itpos209] = 1;
25330 return;
25331 }
25332 void parser___ReduceAction208___action(val_t p0, val_t p1){
25333 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25334 val_t REGB0;
25335 val_t REGB1;
25336 val_t tmp;
25337 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25338 fra.me.file = LOCATE_parser;
25339 fra.me.line = 7535;
25340 fra.me.meth = LOCATE_parser___ReduceAction208___action;
25341 fra.me.has_broke = 0;
25342 fra.me.REG_size = 5;
25343 fra.me.REG[0] = NIT_NULL;
25344 fra.me.REG[1] = NIT_NULL;
25345 fra.me.REG[2] = NIT_NULL;
25346 fra.me.REG[3] = NIT_NULL;
25347 fra.me.REG[4] = NIT_NULL;
25348 fra.me.REG[0] = p0;
25349 fra.me.REG[1] = p1;
25350 /* ./parser//parser.nit:7537 */
25351 fra.me.REG[2] = NIT_NULL;
25352 /* ./parser//parser.nit:7538 */
25353 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25354 /* ./parser//parser.nit:7539 */
25355 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25356 /* ./parser//parser.nit:7540 */
25357 fra.me.REG[4] = NEW_Array_array___Array___init();
25358 /* ./parser//parser.nit:7542 */
25359 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25360 if (UNTAG_Bool(REGB0)) {
25361 } else {
25362 nit_abort("Assert failed", NULL, LOCATE_parser, 7542);
25363 }
25364 /* ./parser//parser.nit:7543 */
25365 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25366 if (UNTAG_Bool(REGB0)) {
25367 } else {
25368 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25369 if (UNTAG_Bool(REGB1)) {
25370 REGB1 = TAG_Bool(false);
25371 REGB0 = REGB1;
25372 } else {
25373 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25374 REGB0 = REGB1;
25375 }
25376 }
25377 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25378 if (UNTAG_Bool(REGB0)) {
25379 /* ./parser//parser.nit:7544 */
25380 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
25381 }
25382 /* ./parser//parser.nit:7546 */
25383 fra.me.REG[4] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4]);
25384 /* ./parser//parser.nit:7549 */
25385 fra.me.REG[2] = fra.me.REG[4];
25386 /* ./parser//parser.nit:7550 */
25387 REGB0 = TAG_Bool(ATTR_parser___ReduceAction208____goto(fra.me.REG[0])!=NIT_NULL);
25388 if (UNTAG_Bool(REGB0)) {
25389 } else {
25390 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7550);
25391 }
25392 REGB0 = ATTR_parser___ReduceAction208____goto(fra.me.REG[0]);
25393 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25394 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25395 stack_frame_head = fra.me.prev;
25396 return;
25397 }
25398 void parser___ReduceAction208___init(val_t p0, val_t p1, int* init_table){
25399 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction208].i;
25400 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25401 val_t REGB0;
25402 val_t tmp;
25403 if (init_table[itpos210]) return;
25404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25405 fra.me.file = LOCATE_parser;
25406 fra.me.line = 7553;
25407 fra.me.meth = LOCATE_parser___ReduceAction208___init;
25408 fra.me.has_broke = 0;
25409 fra.me.REG_size = 2;
25410 fra.me.REG[0] = NIT_NULL;
25411 fra.me.REG[1] = NIT_NULL;
25412 fra.me.REG[0] = p0;
25413 REGB0 = p1;
25414 /* ./parser//parser.nit:7553 */
25415 fra.me.REG[1] = fra.me.REG[0];
25416 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25417 ATTR_parser___ReduceAction208____goto(fra.me.REG[1]) = REGB0;
25418 stack_frame_head = fra.me.prev;
25419 init_table[itpos210] = 1;
25420 return;
25421 }
25422 void parser___ReduceAction209___action(val_t p0, val_t p1){
25423 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25424 val_t REGB0;
25425 val_t REGB1;
25426 val_t tmp;
25427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25428 fra.me.file = LOCATE_parser;
25429 fra.me.line = 7557;
25430 fra.me.meth = LOCATE_parser___ReduceAction209___action;
25431 fra.me.has_broke = 0;
25432 fra.me.REG_size = 6;
25433 fra.me.REG[0] = NIT_NULL;
25434 fra.me.REG[1] = NIT_NULL;
25435 fra.me.REG[2] = NIT_NULL;
25436 fra.me.REG[3] = NIT_NULL;
25437 fra.me.REG[4] = NIT_NULL;
25438 fra.me.REG[5] = NIT_NULL;
25439 fra.me.REG[0] = p0;
25440 fra.me.REG[1] = p1;
25441 /* ./parser//parser.nit:7559 */
25442 fra.me.REG[2] = NIT_NULL;
25443 /* ./parser//parser.nit:7560 */
25444 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25445 /* ./parser//parser.nit:7561 */
25446 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25447 /* ./parser//parser.nit:7562 */
25448 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25449 /* ./parser//parser.nit:7563 */
25450 fra.me.REG[5] = NEW_Array_array___Array___init();
25451 /* ./parser//parser.nit:7565 */
25452 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25453 if (UNTAG_Bool(REGB0)) {
25454 } else {
25455 nit_abort("Assert failed", NULL, LOCATE_parser, 7565);
25456 }
25457 /* ./parser//parser.nit:7567 */
25458 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
25459 if (UNTAG_Bool(REGB0)) {
25460 } else {
25461 nit_abort("Assert failed", NULL, LOCATE_parser, 7567);
25462 }
25463 /* ./parser//parser.nit:7568 */
25464 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25465 if (UNTAG_Bool(REGB0)) {
25466 } else {
25467 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25468 if (UNTAG_Bool(REGB1)) {
25469 REGB1 = TAG_Bool(false);
25470 REGB0 = REGB1;
25471 } else {
25472 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
25473 REGB0 = REGB1;
25474 }
25475 }
25476 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25477 if (UNTAG_Bool(REGB0)) {
25478 /* ./parser//parser.nit:7569 */
25479 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
25480 }
25481 /* ./parser//parser.nit:7571 */
25482 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
25483 fra.me.REG[5] = fra.me.REG[3];
25484 /* ./parser//parser.nit:7572 */
25485 fra.me.REG[5] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5]);
25486 /* ./parser//parser.nit:7575 */
25487 fra.me.REG[2] = fra.me.REG[5];
25488 /* ./parser//parser.nit:7576 */
25489 REGB0 = TAG_Bool(ATTR_parser___ReduceAction209____goto(fra.me.REG[0])!=NIT_NULL);
25490 if (UNTAG_Bool(REGB0)) {
25491 } else {
25492 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7576);
25493 }
25494 REGB0 = ATTR_parser___ReduceAction209____goto(fra.me.REG[0]);
25495 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25496 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25497 stack_frame_head = fra.me.prev;
25498 return;
25499 }
25500 void parser___ReduceAction209___init(val_t p0, val_t p1, int* init_table){
25501 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction209].i;
25502 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25503 val_t REGB0;
25504 val_t tmp;
25505 if (init_table[itpos211]) return;
25506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25507 fra.me.file = LOCATE_parser;
25508 fra.me.line = 7579;
25509 fra.me.meth = LOCATE_parser___ReduceAction209___init;
25510 fra.me.has_broke = 0;
25511 fra.me.REG_size = 2;
25512 fra.me.REG[0] = NIT_NULL;
25513 fra.me.REG[1] = NIT_NULL;
25514 fra.me.REG[0] = p0;
25515 REGB0 = p1;
25516 /* ./parser//parser.nit:7579 */
25517 fra.me.REG[1] = fra.me.REG[0];
25518 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25519 ATTR_parser___ReduceAction209____goto(fra.me.REG[1]) = REGB0;
25520 stack_frame_head = fra.me.prev;
25521 init_table[itpos211] = 1;
25522 return;
25523 }
25524 void parser___ReduceAction210___action(val_t p0, val_t p1){
25525 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25526 val_t REGB0;
25527 val_t tmp;
25528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25529 fra.me.file = LOCATE_parser;
25530 fra.me.line = 7583;
25531 fra.me.meth = LOCATE_parser___ReduceAction210___action;
25532 fra.me.has_broke = 0;
25533 fra.me.REG_size = 5;
25534 fra.me.REG[0] = NIT_NULL;
25535 fra.me.REG[1] = NIT_NULL;
25536 fra.me.REG[2] = NIT_NULL;
25537 fra.me.REG[3] = NIT_NULL;
25538 fra.me.REG[4] = NIT_NULL;
25539 fra.me.REG[0] = p0;
25540 fra.me.REG[1] = p1;
25541 /* ./parser//parser.nit:7585 */
25542 fra.me.REG[2] = NIT_NULL;
25543 /* ./parser//parser.nit:7586 */
25544 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25545 /* ./parser//parser.nit:7587 */
25546 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25547 /* ./parser//parser.nit:7589 */
25548 fra.me.REG[2] = fra.me.REG[3];
25549 /* ./parser//parser.nit:7590 */
25550 REGB0 = TAG_Bool(ATTR_parser___ReduceAction210____goto(fra.me.REG[0])!=NIT_NULL);
25551 if (UNTAG_Bool(REGB0)) {
25552 } else {
25553 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7590);
25554 }
25555 REGB0 = ATTR_parser___ReduceAction210____goto(fra.me.REG[0]);
25556 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25557 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25558 stack_frame_head = fra.me.prev;
25559 return;
25560 }
25561 void parser___ReduceAction210___init(val_t p0, val_t p1, int* init_table){
25562 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction210].i;
25563 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25564 val_t REGB0;
25565 val_t tmp;
25566 if (init_table[itpos212]) return;
25567 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25568 fra.me.file = LOCATE_parser;
25569 fra.me.line = 7593;
25570 fra.me.meth = LOCATE_parser___ReduceAction210___init;
25571 fra.me.has_broke = 0;
25572 fra.me.REG_size = 2;
25573 fra.me.REG[0] = NIT_NULL;
25574 fra.me.REG[1] = NIT_NULL;
25575 fra.me.REG[0] = p0;
25576 REGB0 = p1;
25577 /* ./parser//parser.nit:7593 */
25578 fra.me.REG[1] = fra.me.REG[0];
25579 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25580 ATTR_parser___ReduceAction210____goto(fra.me.REG[1]) = REGB0;
25581 stack_frame_head = fra.me.prev;
25582 init_table[itpos212] = 1;
25583 return;
25584 }
25585 void parser___ReduceAction213___action(val_t p0, val_t p1){
25586 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25587 val_t REGB0;
25588 val_t tmp;
25589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25590 fra.me.file = LOCATE_parser;
25591 fra.me.line = 7597;
25592 fra.me.meth = LOCATE_parser___ReduceAction213___action;
25593 fra.me.has_broke = 0;
25594 fra.me.REG_size = 4;
25595 fra.me.REG[0] = NIT_NULL;
25596 fra.me.REG[1] = NIT_NULL;
25597 fra.me.REG[2] = NIT_NULL;
25598 fra.me.REG[3] = NIT_NULL;
25599 fra.me.REG[0] = p0;
25600 fra.me.REG[1] = p1;
25601 /* ./parser//parser.nit:7599 */
25602 fra.me.REG[2] = NIT_NULL;
25603 /* ./parser//parser.nit:7600 */
25604 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25605 /* ./parser//parser.nit:7602 */
25606 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwreturn, ID_TKwreturn)) /*cast nullable TKwreturn*/;
25607 if (UNTAG_Bool(REGB0)) {
25608 } else {
25609 nit_abort("Assert failed", NULL, LOCATE_parser, 7602);
25610 }
25611 /* ./parser//parser.nit:7603 */
25612 fra.me.REG[3] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[3], NIT_NULL);
25613 /* ./parser//parser.nit:7607 */
25614 fra.me.REG[2] = fra.me.REG[3];
25615 /* ./parser//parser.nit:7608 */
25616 REGB0 = TAG_Bool(ATTR_parser___ReduceAction213____goto(fra.me.REG[0])!=NIT_NULL);
25617 if (UNTAG_Bool(REGB0)) {
25618 } else {
25619 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7608);
25620 }
25621 REGB0 = ATTR_parser___ReduceAction213____goto(fra.me.REG[0]);
25622 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25623 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25624 stack_frame_head = fra.me.prev;
25625 return;
25626 }
25627 void parser___ReduceAction213___init(val_t p0, val_t p1, int* init_table){
25628 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction213].i;
25629 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25630 val_t REGB0;
25631 val_t tmp;
25632 if (init_table[itpos213]) return;
25633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25634 fra.me.file = LOCATE_parser;
25635 fra.me.line = 7611;
25636 fra.me.meth = LOCATE_parser___ReduceAction213___init;
25637 fra.me.has_broke = 0;
25638 fra.me.REG_size = 2;
25639 fra.me.REG[0] = NIT_NULL;
25640 fra.me.REG[1] = NIT_NULL;
25641 fra.me.REG[0] = p0;
25642 REGB0 = p1;
25643 /* ./parser//parser.nit:7611 */
25644 fra.me.REG[1] = fra.me.REG[0];
25645 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25646 ATTR_parser___ReduceAction213____goto(fra.me.REG[1]) = REGB0;
25647 stack_frame_head = fra.me.prev;
25648 init_table[itpos213] = 1;
25649 return;
25650 }
25651 void parser___ReduceAction214___action(val_t p0, val_t p1){
25652 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25653 val_t REGB0;
25654 val_t tmp;
25655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25656 fra.me.file = LOCATE_parser;
25657 fra.me.line = 7615;
25658 fra.me.meth = LOCATE_parser___ReduceAction214___action;
25659 fra.me.has_broke = 0;
25660 fra.me.REG_size = 5;
25661 fra.me.REG[0] = NIT_NULL;
25662 fra.me.REG[1] = NIT_NULL;
25663 fra.me.REG[2] = NIT_NULL;
25664 fra.me.REG[3] = NIT_NULL;
25665 fra.me.REG[4] = NIT_NULL;
25666 fra.me.REG[0] = p0;
25667 fra.me.REG[1] = p1;
25668 /* ./parser//parser.nit:7617 */
25669 fra.me.REG[2] = NIT_NULL;
25670 /* ./parser//parser.nit:7618 */
25671 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25672 /* ./parser//parser.nit:7619 */
25673 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25674 /* ./parser//parser.nit:7621 */
25675 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwreturn, ID_TKwreturn)) /*cast nullable TKwreturn*/;
25676 if (UNTAG_Bool(REGB0)) {
25677 } else {
25678 nit_abort("Assert failed", NULL, LOCATE_parser, 7621);
25679 }
25680 /* ./parser//parser.nit:7623 */
25681 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25682 if (UNTAG_Bool(REGB0)) {
25683 } else {
25684 nit_abort("Assert failed", NULL, LOCATE_parser, 7623);
25685 }
25686 /* ./parser//parser.nit:7624 */
25687 fra.me.REG[3] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[4], fra.me.REG[3]);
25688 /* ./parser//parser.nit:7628 */
25689 fra.me.REG[2] = fra.me.REG[3];
25690 /* ./parser//parser.nit:7629 */
25691 REGB0 = TAG_Bool(ATTR_parser___ReduceAction214____goto(fra.me.REG[0])!=NIT_NULL);
25692 if (UNTAG_Bool(REGB0)) {
25693 } else {
25694 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7629);
25695 }
25696 REGB0 = ATTR_parser___ReduceAction214____goto(fra.me.REG[0]);
25697 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25698 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25699 stack_frame_head = fra.me.prev;
25700 return;
25701 }
25702 void parser___ReduceAction214___init(val_t p0, val_t p1, int* init_table){
25703 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction214].i;
25704 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25705 val_t REGB0;
25706 val_t tmp;
25707 if (init_table[itpos214]) return;
25708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25709 fra.me.file = LOCATE_parser;
25710 fra.me.line = 7632;
25711 fra.me.meth = LOCATE_parser___ReduceAction214___init;
25712 fra.me.has_broke = 0;
25713 fra.me.REG_size = 2;
25714 fra.me.REG[0] = NIT_NULL;
25715 fra.me.REG[1] = NIT_NULL;
25716 fra.me.REG[0] = p0;
25717 REGB0 = p1;
25718 /* ./parser//parser.nit:7632 */
25719 fra.me.REG[1] = fra.me.REG[0];
25720 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25721 ATTR_parser___ReduceAction214____goto(fra.me.REG[1]) = REGB0;
25722 stack_frame_head = fra.me.prev;
25723 init_table[itpos214] = 1;
25724 return;
25725 }
25726 void parser___ReduceAction215___action(val_t p0, val_t p1){
25727 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25728 val_t REGB0;
25729 val_t tmp;
25730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25731 fra.me.file = LOCATE_parser;
25732 fra.me.line = 7636;
25733 fra.me.meth = LOCATE_parser___ReduceAction215___action;
25734 fra.me.has_broke = 0;
25735 fra.me.REG_size = 4;
25736 fra.me.REG[0] = NIT_NULL;
25737 fra.me.REG[1] = NIT_NULL;
25738 fra.me.REG[2] = NIT_NULL;
25739 fra.me.REG[3] = NIT_NULL;
25740 fra.me.REG[0] = p0;
25741 fra.me.REG[1] = p1;
25742 /* ./parser//parser.nit:7638 */
25743 fra.me.REG[2] = NIT_NULL;
25744 /* ./parser//parser.nit:7639 */
25745 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25746 /* ./parser//parser.nit:7641 */
25747 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25748 if (UNTAG_Bool(REGB0)) {
25749 } else {
25750 nit_abort("Assert failed", NULL, LOCATE_parser, 7641);
25751 }
25752 /* ./parser//parser.nit:7642 */
25753 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[3], NIT_NULL, NIT_NULL);
25754 /* ./parser//parser.nit:7647 */
25755 fra.me.REG[2] = fra.me.REG[3];
25756 /* ./parser//parser.nit:7648 */
25757 REGB0 = TAG_Bool(ATTR_parser___ReduceAction215____goto(fra.me.REG[0])!=NIT_NULL);
25758 if (UNTAG_Bool(REGB0)) {
25759 } else {
25760 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7648);
25761 }
25762 REGB0 = ATTR_parser___ReduceAction215____goto(fra.me.REG[0]);
25763 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25764 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25765 stack_frame_head = fra.me.prev;
25766 return;
25767 }
25768 void parser___ReduceAction215___init(val_t p0, val_t p1, int* init_table){
25769 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction215].i;
25770 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25771 val_t REGB0;
25772 val_t tmp;
25773 if (init_table[itpos215]) return;
25774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25775 fra.me.file = LOCATE_parser;
25776 fra.me.line = 7651;
25777 fra.me.meth = LOCATE_parser___ReduceAction215___init;
25778 fra.me.has_broke = 0;
25779 fra.me.REG_size = 2;
25780 fra.me.REG[0] = NIT_NULL;
25781 fra.me.REG[1] = NIT_NULL;
25782 fra.me.REG[0] = p0;
25783 REGB0 = p1;
25784 /* ./parser//parser.nit:7651 */
25785 fra.me.REG[1] = fra.me.REG[0];
25786 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25787 ATTR_parser___ReduceAction215____goto(fra.me.REG[1]) = REGB0;
25788 stack_frame_head = fra.me.prev;
25789 init_table[itpos215] = 1;
25790 return;
25791 }
25792 void parser___ReduceAction216___action(val_t p0, val_t p1){
25793 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25794 val_t REGB0;
25795 val_t tmp;
25796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25797 fra.me.file = LOCATE_parser;
25798 fra.me.line = 7655;
25799 fra.me.meth = LOCATE_parser___ReduceAction216___action;
25800 fra.me.has_broke = 0;
25801 fra.me.REG_size = 5;
25802 fra.me.REG[0] = NIT_NULL;
25803 fra.me.REG[1] = NIT_NULL;
25804 fra.me.REG[2] = NIT_NULL;
25805 fra.me.REG[3] = NIT_NULL;
25806 fra.me.REG[4] = NIT_NULL;
25807 fra.me.REG[0] = p0;
25808 fra.me.REG[1] = p1;
25809 /* ./parser//parser.nit:7657 */
25810 fra.me.REG[2] = NIT_NULL;
25811 /* ./parser//parser.nit:7658 */
25812 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25813 /* ./parser//parser.nit:7659 */
25814 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25815 /* ./parser//parser.nit:7661 */
25816 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25817 if (UNTAG_Bool(REGB0)) {
25818 } else {
25819 nit_abort("Assert failed", NULL, LOCATE_parser, 7661);
25820 }
25821 /* ./parser//parser.nit:7663 */
25822 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
25823 if (UNTAG_Bool(REGB0)) {
25824 } else {
25825 nit_abort("Assert failed", NULL, LOCATE_parser, 7663);
25826 }
25827 /* ./parser//parser.nit:7664 */
25828 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
25829 /* ./parser//parser.nit:7669 */
25830 fra.me.REG[2] = fra.me.REG[3];
25831 /* ./parser//parser.nit:7670 */
25832 REGB0 = TAG_Bool(ATTR_parser___ReduceAction216____goto(fra.me.REG[0])!=NIT_NULL);
25833 if (UNTAG_Bool(REGB0)) {
25834 } else {
25835 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7670);
25836 }
25837 REGB0 = ATTR_parser___ReduceAction216____goto(fra.me.REG[0]);
25838 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25839 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25840 stack_frame_head = fra.me.prev;
25841 return;
25842 }
25843 void parser___ReduceAction216___init(val_t p0, val_t p1, int* init_table){
25844 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction216].i;
25845 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25846 val_t REGB0;
25847 val_t tmp;
25848 if (init_table[itpos216]) return;
25849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25850 fra.me.file = LOCATE_parser;
25851 fra.me.line = 7673;
25852 fra.me.meth = LOCATE_parser___ReduceAction216___init;
25853 fra.me.has_broke = 0;
25854 fra.me.REG_size = 2;
25855 fra.me.REG[0] = NIT_NULL;
25856 fra.me.REG[1] = NIT_NULL;
25857 fra.me.REG[0] = p0;
25858 REGB0 = p1;
25859 /* ./parser//parser.nit:7673 */
25860 fra.me.REG[1] = fra.me.REG[0];
25861 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25862 ATTR_parser___ReduceAction216____goto(fra.me.REG[1]) = REGB0;
25863 stack_frame_head = fra.me.prev;
25864 init_table[itpos216] = 1;
25865 return;
25866 }
25867 void parser___ReduceAction217___action(val_t p0, val_t p1){
25868 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
25869 val_t REGB0;
25870 val_t tmp;
25871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25872 fra.me.file = LOCATE_parser;
25873 fra.me.line = 7677;
25874 fra.me.meth = LOCATE_parser___ReduceAction217___action;
25875 fra.me.has_broke = 0;
25876 fra.me.REG_size = 5;
25877 fra.me.REG[0] = NIT_NULL;
25878 fra.me.REG[1] = NIT_NULL;
25879 fra.me.REG[2] = NIT_NULL;
25880 fra.me.REG[3] = NIT_NULL;
25881 fra.me.REG[4] = NIT_NULL;
25882 fra.me.REG[0] = p0;
25883 fra.me.REG[1] = p1;
25884 /* ./parser//parser.nit:7679 */
25885 fra.me.REG[2] = NIT_NULL;
25886 /* ./parser//parser.nit:7680 */
25887 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25888 /* ./parser//parser.nit:7681 */
25889 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25890 /* ./parser//parser.nit:7683 */
25891 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25892 if (UNTAG_Bool(REGB0)) {
25893 } else {
25894 nit_abort("Assert failed", NULL, LOCATE_parser, 7683);
25895 }
25896 /* ./parser//parser.nit:7685 */
25897 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25898 if (UNTAG_Bool(REGB0)) {
25899 } else {
25900 nit_abort("Assert failed", NULL, LOCATE_parser, 7685);
25901 }
25902 /* ./parser//parser.nit:7686 */
25903 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
25904 /* ./parser//parser.nit:7691 */
25905 fra.me.REG[2] = fra.me.REG[3];
25906 /* ./parser//parser.nit:7692 */
25907 REGB0 = TAG_Bool(ATTR_parser___ReduceAction217____goto(fra.me.REG[0])!=NIT_NULL);
25908 if (UNTAG_Bool(REGB0)) {
25909 } else {
25910 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7692);
25911 }
25912 REGB0 = ATTR_parser___ReduceAction217____goto(fra.me.REG[0]);
25913 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25914 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25915 stack_frame_head = fra.me.prev;
25916 return;
25917 }
25918 void parser___ReduceAction217___init(val_t p0, val_t p1, int* init_table){
25919 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction217].i;
25920 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25921 val_t REGB0;
25922 val_t tmp;
25923 if (init_table[itpos217]) return;
25924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25925 fra.me.file = LOCATE_parser;
25926 fra.me.line = 7695;
25927 fra.me.meth = LOCATE_parser___ReduceAction217___init;
25928 fra.me.has_broke = 0;
25929 fra.me.REG_size = 2;
25930 fra.me.REG[0] = NIT_NULL;
25931 fra.me.REG[1] = NIT_NULL;
25932 fra.me.REG[0] = p0;
25933 REGB0 = p1;
25934 /* ./parser//parser.nit:7695 */
25935 fra.me.REG[1] = fra.me.REG[0];
25936 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25937 ATTR_parser___ReduceAction217____goto(fra.me.REG[1]) = REGB0;
25938 stack_frame_head = fra.me.prev;
25939 init_table[itpos217] = 1;
25940 return;
25941 }
25942 void parser___ReduceAction218___action(val_t p0, val_t p1){
25943 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25944 val_t REGB0;
25945 val_t tmp;
25946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25947 fra.me.file = LOCATE_parser;
25948 fra.me.line = 7699;
25949 fra.me.meth = LOCATE_parser___ReduceAction218___action;
25950 fra.me.has_broke = 0;
25951 fra.me.REG_size = 6;
25952 fra.me.REG[0] = NIT_NULL;
25953 fra.me.REG[1] = NIT_NULL;
25954 fra.me.REG[2] = NIT_NULL;
25955 fra.me.REG[3] = NIT_NULL;
25956 fra.me.REG[4] = NIT_NULL;
25957 fra.me.REG[5] = NIT_NULL;
25958 fra.me.REG[0] = p0;
25959 fra.me.REG[1] = p1;
25960 /* ./parser//parser.nit:7701 */
25961 fra.me.REG[2] = NIT_NULL;
25962 /* ./parser//parser.nit:7702 */
25963 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25964 /* ./parser//parser.nit:7703 */
25965 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25966 /* ./parser//parser.nit:7704 */
25967 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
25968 /* ./parser//parser.nit:7706 */
25969 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
25970 if (UNTAG_Bool(REGB0)) {
25971 } else {
25972 nit_abort("Assert failed", NULL, LOCATE_parser, 7706);
25973 }
25974 /* ./parser//parser.nit:7708 */
25975 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
25976 if (UNTAG_Bool(REGB0)) {
25977 } else {
25978 nit_abort("Assert failed", NULL, LOCATE_parser, 7708);
25979 }
25980 /* ./parser//parser.nit:7710 */
25981 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
25982 if (UNTAG_Bool(REGB0)) {
25983 } else {
25984 nit_abort("Assert failed", NULL, LOCATE_parser, 7710);
25985 }
25986 /* ./parser//parser.nit:7711 */
25987 fra.me.REG[3] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
25988 /* ./parser//parser.nit:7716 */
25989 fra.me.REG[2] = fra.me.REG[3];
25990 /* ./parser//parser.nit:7717 */
25991 REGB0 = TAG_Bool(ATTR_parser___ReduceAction218____goto(fra.me.REG[0])!=NIT_NULL);
25992 if (UNTAG_Bool(REGB0)) {
25993 } else {
25994 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7717);
25995 }
25996 REGB0 = ATTR_parser___ReduceAction218____goto(fra.me.REG[0]);
25997 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
25998 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
25999 stack_frame_head = fra.me.prev;
26000 return;
26001 }
26002 void parser___ReduceAction218___init(val_t p0, val_t p1, int* init_table){
26003 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction218].i;
26004 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26005 val_t REGB0;
26006 val_t tmp;
26007 if (init_table[itpos218]) return;
26008 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26009 fra.me.file = LOCATE_parser;
26010 fra.me.line = 7720;
26011 fra.me.meth = LOCATE_parser___ReduceAction218___init;
26012 fra.me.has_broke = 0;
26013 fra.me.REG_size = 2;
26014 fra.me.REG[0] = NIT_NULL;
26015 fra.me.REG[1] = NIT_NULL;
26016 fra.me.REG[0] = p0;
26017 REGB0 = p1;
26018 /* ./parser//parser.nit:7720 */
26019 fra.me.REG[1] = fra.me.REG[0];
26020 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26021 ATTR_parser___ReduceAction218____goto(fra.me.REG[1]) = REGB0;
26022 stack_frame_head = fra.me.prev;
26023 init_table[itpos218] = 1;
26024 return;
26025 }
26026 void parser___ReduceAction219___action(val_t p0, val_t p1){
26027 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26028 val_t REGB0;
26029 val_t tmp;
26030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26031 fra.me.file = LOCATE_parser;
26032 fra.me.line = 7724;
26033 fra.me.meth = LOCATE_parser___ReduceAction219___action;
26034 fra.me.has_broke = 0;
26035 fra.me.REG_size = 4;
26036 fra.me.REG[0] = NIT_NULL;
26037 fra.me.REG[1] = NIT_NULL;
26038 fra.me.REG[2] = NIT_NULL;
26039 fra.me.REG[3] = NIT_NULL;
26040 fra.me.REG[0] = p0;
26041 fra.me.REG[1] = p1;
26042 /* ./parser//parser.nit:7726 */
26043 fra.me.REG[2] = NIT_NULL;
26044 /* ./parser//parser.nit:7727 */
26045 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26046 /* ./parser//parser.nit:7729 */
26047 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwabort, ID_TKwabort)) /*cast nullable TKwabort*/;
26048 if (UNTAG_Bool(REGB0)) {
26049 } else {
26050 nit_abort("Assert failed", NULL, LOCATE_parser, 7729);
26051 }
26052 /* ./parser//parser.nit:7730 */
26053 fra.me.REG[3] = NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr(fra.me.REG[3]);
26054 /* ./parser//parser.nit:7733 */
26055 fra.me.REG[2] = fra.me.REG[3];
26056 /* ./parser//parser.nit:7734 */
26057 REGB0 = TAG_Bool(ATTR_parser___ReduceAction219____goto(fra.me.REG[0])!=NIT_NULL);
26058 if (UNTAG_Bool(REGB0)) {
26059 } else {
26060 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7734);
26061 }
26062 REGB0 = ATTR_parser___ReduceAction219____goto(fra.me.REG[0]);
26063 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26064 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26065 stack_frame_head = fra.me.prev;
26066 return;
26067 }
26068 void parser___ReduceAction219___init(val_t p0, val_t p1, int* init_table){
26069 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction219].i;
26070 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26071 val_t REGB0;
26072 val_t tmp;
26073 if (init_table[itpos219]) return;
26074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26075 fra.me.file = LOCATE_parser;
26076 fra.me.line = 7737;
26077 fra.me.meth = LOCATE_parser___ReduceAction219___init;
26078 fra.me.has_broke = 0;
26079 fra.me.REG_size = 2;
26080 fra.me.REG[0] = NIT_NULL;
26081 fra.me.REG[1] = NIT_NULL;
26082 fra.me.REG[0] = p0;
26083 REGB0 = p1;
26084 /* ./parser//parser.nit:7737 */
26085 fra.me.REG[1] = fra.me.REG[0];
26086 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26087 ATTR_parser___ReduceAction219____goto(fra.me.REG[1]) = REGB0;
26088 stack_frame_head = fra.me.prev;
26089 init_table[itpos219] = 1;
26090 return;
26091 }
26092 void parser___ReduceAction220___action(val_t p0, val_t p1){
26093 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26094 val_t REGB0;
26095 val_t tmp;
26096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26097 fra.me.file = LOCATE_parser;
26098 fra.me.line = 7741;
26099 fra.me.meth = LOCATE_parser___ReduceAction220___action;
26100 fra.me.has_broke = 0;
26101 fra.me.REG_size = 4;
26102 fra.me.REG[0] = NIT_NULL;
26103 fra.me.REG[1] = NIT_NULL;
26104 fra.me.REG[2] = NIT_NULL;
26105 fra.me.REG[3] = NIT_NULL;
26106 fra.me.REG[0] = p0;
26107 fra.me.REG[1] = p1;
26108 /* ./parser//parser.nit:7743 */
26109 fra.me.REG[2] = NIT_NULL;
26110 /* ./parser//parser.nit:7744 */
26111 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26112 /* ./parser//parser.nit:7746 */
26113 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26114 if (UNTAG_Bool(REGB0)) {
26115 } else {
26116 nit_abort("Assert failed", NULL, LOCATE_parser, 7746);
26117 }
26118 /* ./parser//parser.nit:7747 */
26119 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[3], NIT_NULL, NIT_NULL);
26120 /* ./parser//parser.nit:7752 */
26121 fra.me.REG[2] = fra.me.REG[3];
26122 /* ./parser//parser.nit:7753 */
26123 REGB0 = TAG_Bool(ATTR_parser___ReduceAction220____goto(fra.me.REG[0])!=NIT_NULL);
26124 if (UNTAG_Bool(REGB0)) {
26125 } else {
26126 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7753);
26127 }
26128 REGB0 = ATTR_parser___ReduceAction220____goto(fra.me.REG[0]);
26129 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26130 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26131 stack_frame_head = fra.me.prev;
26132 return;
26133 }
26134 void parser___ReduceAction220___init(val_t p0, val_t p1, int* init_table){
26135 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction220].i;
26136 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26137 val_t REGB0;
26138 val_t tmp;
26139 if (init_table[itpos220]) return;
26140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26141 fra.me.file = LOCATE_parser;
26142 fra.me.line = 7756;
26143 fra.me.meth = LOCATE_parser___ReduceAction220___init;
26144 fra.me.has_broke = 0;
26145 fra.me.REG_size = 2;
26146 fra.me.REG[0] = NIT_NULL;
26147 fra.me.REG[1] = NIT_NULL;
26148 fra.me.REG[0] = p0;
26149 REGB0 = p1;
26150 /* ./parser//parser.nit:7756 */
26151 fra.me.REG[1] = fra.me.REG[0];
26152 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26153 ATTR_parser___ReduceAction220____goto(fra.me.REG[1]) = REGB0;
26154 stack_frame_head = fra.me.prev;
26155 init_table[itpos220] = 1;
26156 return;
26157 }
26158 void parser___ReduceAction221___action(val_t p0, val_t p1){
26159 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
26160 val_t REGB0;
26161 val_t tmp;
26162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26163 fra.me.file = LOCATE_parser;
26164 fra.me.line = 7760;
26165 fra.me.meth = LOCATE_parser___ReduceAction221___action;
26166 fra.me.has_broke = 0;
26167 fra.me.REG_size = 5;
26168 fra.me.REG[0] = NIT_NULL;
26169 fra.me.REG[1] = NIT_NULL;
26170 fra.me.REG[2] = NIT_NULL;
26171 fra.me.REG[3] = NIT_NULL;
26172 fra.me.REG[4] = NIT_NULL;
26173 fra.me.REG[0] = p0;
26174 fra.me.REG[1] = p1;
26175 /* ./parser//parser.nit:7762 */
26176 fra.me.REG[2] = NIT_NULL;
26177 /* ./parser//parser.nit:7763 */
26178 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26179 /* ./parser//parser.nit:7764 */
26180 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26181 /* ./parser//parser.nit:7766 */
26182 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26183 if (UNTAG_Bool(REGB0)) {
26184 } else {
26185 nit_abort("Assert failed", NULL, LOCATE_parser, 7766);
26186 }
26187 /* ./parser//parser.nit:7768 */
26188 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
26189 if (UNTAG_Bool(REGB0)) {
26190 } else {
26191 nit_abort("Assert failed", NULL, LOCATE_parser, 7768);
26192 }
26193 /* ./parser//parser.nit:7769 */
26194 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
26195 /* ./parser//parser.nit:7774 */
26196 fra.me.REG[2] = fra.me.REG[3];
26197 /* ./parser//parser.nit:7775 */
26198 REGB0 = TAG_Bool(ATTR_parser___ReduceAction221____goto(fra.me.REG[0])!=NIT_NULL);
26199 if (UNTAG_Bool(REGB0)) {
26200 } else {
26201 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7775);
26202 }
26203 REGB0 = ATTR_parser___ReduceAction221____goto(fra.me.REG[0]);
26204 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26205 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26206 stack_frame_head = fra.me.prev;
26207 return;
26208 }
26209 void parser___ReduceAction221___init(val_t p0, val_t p1, int* init_table){
26210 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction221].i;
26211 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26212 val_t REGB0;
26213 val_t tmp;
26214 if (init_table[itpos221]) return;
26215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26216 fra.me.file = LOCATE_parser;
26217 fra.me.line = 7778;
26218 fra.me.meth = LOCATE_parser___ReduceAction221___init;
26219 fra.me.has_broke = 0;
26220 fra.me.REG_size = 2;
26221 fra.me.REG[0] = NIT_NULL;
26222 fra.me.REG[1] = NIT_NULL;
26223 fra.me.REG[0] = p0;
26224 REGB0 = p1;
26225 /* ./parser//parser.nit:7778 */
26226 fra.me.REG[1] = fra.me.REG[0];
26227 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26228 ATTR_parser___ReduceAction221____goto(fra.me.REG[1]) = REGB0;
26229 stack_frame_head = fra.me.prev;
26230 init_table[itpos221] = 1;
26231 return;
26232 }
26233 void parser___ReduceAction222___action(val_t p0, val_t p1){
26234 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
26235 val_t REGB0;
26236 val_t tmp;
26237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26238 fra.me.file = LOCATE_parser;
26239 fra.me.line = 7782;
26240 fra.me.meth = LOCATE_parser___ReduceAction222___action;
26241 fra.me.has_broke = 0;
26242 fra.me.REG_size = 5;
26243 fra.me.REG[0] = NIT_NULL;
26244 fra.me.REG[1] = NIT_NULL;
26245 fra.me.REG[2] = NIT_NULL;
26246 fra.me.REG[3] = NIT_NULL;
26247 fra.me.REG[4] = NIT_NULL;
26248 fra.me.REG[0] = p0;
26249 fra.me.REG[1] = p1;
26250 /* ./parser//parser.nit:7784 */
26251 fra.me.REG[2] = NIT_NULL;
26252 /* ./parser//parser.nit:7785 */
26253 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26254 /* ./parser//parser.nit:7786 */
26255 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26256 /* ./parser//parser.nit:7788 */
26257 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26258 if (UNTAG_Bool(REGB0)) {
26259 } else {
26260 nit_abort("Assert failed", NULL, LOCATE_parser, 7788);
26261 }
26262 /* ./parser//parser.nit:7790 */
26263 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26264 if (UNTAG_Bool(REGB0)) {
26265 } else {
26266 nit_abort("Assert failed", NULL, LOCATE_parser, 7790);
26267 }
26268 /* ./parser//parser.nit:7791 */
26269 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
26270 /* ./parser//parser.nit:7796 */
26271 fra.me.REG[2] = fra.me.REG[3];
26272 /* ./parser//parser.nit:7797 */
26273 REGB0 = TAG_Bool(ATTR_parser___ReduceAction222____goto(fra.me.REG[0])!=NIT_NULL);
26274 if (UNTAG_Bool(REGB0)) {
26275 } else {
26276 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7797);
26277 }
26278 REGB0 = ATTR_parser___ReduceAction222____goto(fra.me.REG[0]);
26279 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26280 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26281 stack_frame_head = fra.me.prev;
26282 return;
26283 }
26284 void parser___ReduceAction222___init(val_t p0, val_t p1, int* init_table){
26285 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction222].i;
26286 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26287 val_t REGB0;
26288 val_t tmp;
26289 if (init_table[itpos222]) return;
26290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26291 fra.me.file = LOCATE_parser;
26292 fra.me.line = 7800;
26293 fra.me.meth = LOCATE_parser___ReduceAction222___init;
26294 fra.me.has_broke = 0;
26295 fra.me.REG_size = 2;
26296 fra.me.REG[0] = NIT_NULL;
26297 fra.me.REG[1] = NIT_NULL;
26298 fra.me.REG[0] = p0;
26299 REGB0 = p1;
26300 /* ./parser//parser.nit:7800 */
26301 fra.me.REG[1] = fra.me.REG[0];
26302 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26303 ATTR_parser___ReduceAction222____goto(fra.me.REG[1]) = REGB0;
26304 stack_frame_head = fra.me.prev;
26305 init_table[itpos222] = 1;
26306 return;
26307 }
26308 void parser___ReduceAction223___action(val_t p0, val_t p1){
26309 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
26310 val_t REGB0;
26311 val_t tmp;
26312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26313 fra.me.file = LOCATE_parser;
26314 fra.me.line = 7804;
26315 fra.me.meth = LOCATE_parser___ReduceAction223___action;
26316 fra.me.has_broke = 0;
26317 fra.me.REG_size = 6;
26318 fra.me.REG[0] = NIT_NULL;
26319 fra.me.REG[1] = NIT_NULL;
26320 fra.me.REG[2] = NIT_NULL;
26321 fra.me.REG[3] = NIT_NULL;
26322 fra.me.REG[4] = NIT_NULL;
26323 fra.me.REG[5] = NIT_NULL;
26324 fra.me.REG[0] = p0;
26325 fra.me.REG[1] = p1;
26326 /* ./parser//parser.nit:7806 */
26327 fra.me.REG[2] = NIT_NULL;
26328 /* ./parser//parser.nit:7807 */
26329 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26330 /* ./parser//parser.nit:7808 */
26331 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26332 /* ./parser//parser.nit:7809 */
26333 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26334 /* ./parser//parser.nit:7811 */
26335 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast nullable TKwcontinue*/;
26336 if (UNTAG_Bool(REGB0)) {
26337 } else {
26338 nit_abort("Assert failed", NULL, LOCATE_parser, 7811);
26339 }
26340 /* ./parser//parser.nit:7813 */
26341 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
26342 if (UNTAG_Bool(REGB0)) {
26343 } else {
26344 nit_abort("Assert failed", NULL, LOCATE_parser, 7813);
26345 }
26346 /* ./parser//parser.nit:7815 */
26347 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26348 if (UNTAG_Bool(REGB0)) {
26349 } else {
26350 nit_abort("Assert failed", NULL, LOCATE_parser, 7815);
26351 }
26352 /* ./parser//parser.nit:7816 */
26353 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
26354 /* ./parser//parser.nit:7821 */
26355 fra.me.REG[2] = fra.me.REG[3];
26356 /* ./parser//parser.nit:7822 */
26357 REGB0 = TAG_Bool(ATTR_parser___ReduceAction223____goto(fra.me.REG[0])!=NIT_NULL);
26358 if (UNTAG_Bool(REGB0)) {
26359 } else {
26360 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7822);
26361 }
26362 REGB0 = ATTR_parser___ReduceAction223____goto(fra.me.REG[0]);
26363 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26364 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26365 stack_frame_head = fra.me.prev;
26366 return;
26367 }
26368 void parser___ReduceAction223___init(val_t p0, val_t p1, int* init_table){
26369 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction223].i;
26370 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26371 val_t REGB0;
26372 val_t tmp;
26373 if (init_table[itpos223]) return;
26374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26375 fra.me.file = LOCATE_parser;
26376 fra.me.line = 7825;
26377 fra.me.meth = LOCATE_parser___ReduceAction223___init;
26378 fra.me.has_broke = 0;
26379 fra.me.REG_size = 2;
26380 fra.me.REG[0] = NIT_NULL;
26381 fra.me.REG[1] = NIT_NULL;
26382 fra.me.REG[0] = p0;
26383 REGB0 = p1;
26384 /* ./parser//parser.nit:7825 */
26385 fra.me.REG[1] = fra.me.REG[0];
26386 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26387 ATTR_parser___ReduceAction223____goto(fra.me.REG[1]) = REGB0;
26388 stack_frame_head = fra.me.prev;
26389 init_table[itpos223] = 1;
26390 return;
26391 }
26392 void parser___ReduceAction230___action(val_t p0, val_t p1){
26393 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
26394 val_t REGB0;
26395 val_t tmp;
26396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26397 fra.me.file = LOCATE_parser;
26398 fra.me.line = 7829;
26399 fra.me.meth = LOCATE_parser___ReduceAction230___action;
26400 fra.me.has_broke = 0;
26401 fra.me.REG_size = 8;
26402 fra.me.REG[0] = NIT_NULL;
26403 fra.me.REG[1] = NIT_NULL;
26404 fra.me.REG[2] = NIT_NULL;
26405 fra.me.REG[3] = NIT_NULL;
26406 fra.me.REG[4] = NIT_NULL;
26407 fra.me.REG[5] = NIT_NULL;
26408 fra.me.REG[6] = NIT_NULL;
26409 fra.me.REG[7] = NIT_NULL;
26410 fra.me.REG[0] = p0;
26411 fra.me.REG[1] = p1;
26412 /* ./parser//parser.nit:7831 */
26413 fra.me.REG[2] = NIT_NULL;
26414 /* ./parser//parser.nit:7832 */
26415 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26416 /* ./parser//parser.nit:7833 */
26417 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26418 /* ./parser//parser.nit:7834 */
26419 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26420 /* ./parser//parser.nit:7835 */
26421 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26422 /* ./parser//parser.nit:7836 */
26423 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26424 /* ./parser//parser.nit:7837 */
26425 fra.me.REG[6] = NEW_Array_array___Array___init();
26426 /* ./parser//parser.nit:7838 */
26427 fra.me.REG[7] = NEW_Array_array___Array___init();
26428 /* ./parser//parser.nit:7840 */
26429 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26430 if (UNTAG_Bool(REGB0)) {
26431 } else {
26432 nit_abort("Assert failed", NULL, LOCATE_parser, 7840);
26433 }
26434 /* ./parser//parser.nit:7842 */
26435 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26436 if (UNTAG_Bool(REGB0)) {
26437 } else {
26438 nit_abort("Assert failed", NULL, LOCATE_parser, 7842);
26439 }
26440 /* ./parser//parser.nit:7844 */
26441 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26442 if (UNTAG_Bool(REGB0)) {
26443 } else {
26444 nit_abort("Assert failed", NULL, LOCATE_parser, 7844);
26445 }
26446 /* ./parser//parser.nit:7845 */
26447 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
26448 fra.me.REG[6] = fra.me.REG[3];
26449 /* ./parser//parser.nit:7846 */
26450 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]);
26451 /* ./parser//parser.nit:7852 */
26452 fra.me.REG[2] = fra.me.REG[7];
26453 /* ./parser//parser.nit:7853 */
26454 REGB0 = TAG_Bool(ATTR_parser___ReduceAction230____goto(fra.me.REG[0])!=NIT_NULL);
26455 if (UNTAG_Bool(REGB0)) {
26456 } else {
26457 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7853);
26458 }
26459 REGB0 = ATTR_parser___ReduceAction230____goto(fra.me.REG[0]);
26460 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26461 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26462 stack_frame_head = fra.me.prev;
26463 return;
26464 }
26465 void parser___ReduceAction230___init(val_t p0, val_t p1, int* init_table){
26466 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction230].i;
26467 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26468 val_t REGB0;
26469 val_t tmp;
26470 if (init_table[itpos224]) return;
26471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26472 fra.me.file = LOCATE_parser;
26473 fra.me.line = 7856;
26474 fra.me.meth = LOCATE_parser___ReduceAction230___init;
26475 fra.me.has_broke = 0;
26476 fra.me.REG_size = 2;
26477 fra.me.REG[0] = NIT_NULL;
26478 fra.me.REG[1] = NIT_NULL;
26479 fra.me.REG[0] = p0;
26480 REGB0 = p1;
26481 /* ./parser//parser.nit:7856 */
26482 fra.me.REG[1] = fra.me.REG[0];
26483 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26484 ATTR_parser___ReduceAction230____goto(fra.me.REG[1]) = REGB0;
26485 stack_frame_head = fra.me.prev;
26486 init_table[itpos224] = 1;
26487 return;
26488 }
26489 void parser___ReduceAction231___action(val_t p0, val_t p1){
26490 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
26491 val_t REGB0;
26492 val_t tmp;
26493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26494 fra.me.file = LOCATE_parser;
26495 fra.me.line = 7860;
26496 fra.me.meth = LOCATE_parser___ReduceAction231___action;
26497 fra.me.has_broke = 0;
26498 fra.me.REG_size = 8;
26499 fra.me.REG[0] = NIT_NULL;
26500 fra.me.REG[1] = NIT_NULL;
26501 fra.me.REG[2] = NIT_NULL;
26502 fra.me.REG[3] = NIT_NULL;
26503 fra.me.REG[4] = NIT_NULL;
26504 fra.me.REG[5] = NIT_NULL;
26505 fra.me.REG[6] = NIT_NULL;
26506 fra.me.REG[7] = NIT_NULL;
26507 fra.me.REG[0] = p0;
26508 fra.me.REG[1] = p1;
26509 /* ./parser//parser.nit:7862 */
26510 fra.me.REG[2] = NIT_NULL;
26511 /* ./parser//parser.nit:7863 */
26512 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26513 /* ./parser//parser.nit:7864 */
26514 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26515 /* ./parser//parser.nit:7865 */
26516 fra.me.REG[5] = NEW_Array_array___Array___init();
26517 /* ./parser//parser.nit:7866 */
26518 fra.me.REG[6] = NEW_Array_array___Array___init();
26519 /* ./parser//parser.nit:7867 */
26520 fra.me.REG[7] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
26521 /* ./parser//parser.nit:7870 */
26522 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26523 if (UNTAG_Bool(REGB0)) {
26524 } else {
26525 nit_abort("Assert failed", NULL, LOCATE_parser, 7870);
26526 }
26527 /* ./parser//parser.nit:7872 */
26528 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26529 if (UNTAG_Bool(REGB0)) {
26530 } else {
26531 nit_abort("Assert failed", NULL, LOCATE_parser, 7872);
26532 }
26533 /* ./parser//parser.nit:7873 */
26534 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
26535 fra.me.REG[5] = fra.me.REG[3];
26536 /* ./parser//parser.nit:7874 */
26537 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]);
26538 /* ./parser//parser.nit:7880 */
26539 fra.me.REG[2] = fra.me.REG[6];
26540 /* ./parser//parser.nit:7881 */
26541 REGB0 = TAG_Bool(ATTR_parser___ReduceAction231____goto(fra.me.REG[0])!=NIT_NULL);
26542 if (UNTAG_Bool(REGB0)) {
26543 } else {
26544 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7881);
26545 }
26546 REGB0 = ATTR_parser___ReduceAction231____goto(fra.me.REG[0]);
26547 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26548 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26549 stack_frame_head = fra.me.prev;
26550 return;
26551 }
26552 void parser___ReduceAction231___init(val_t p0, val_t p1, int* init_table){
26553 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction231].i;
26554 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26555 val_t REGB0;
26556 val_t tmp;
26557 if (init_table[itpos225]) return;
26558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26559 fra.me.file = LOCATE_parser;
26560 fra.me.line = 7884;
26561 fra.me.meth = LOCATE_parser___ReduceAction231___init;
26562 fra.me.has_broke = 0;
26563 fra.me.REG_size = 2;
26564 fra.me.REG[0] = NIT_NULL;
26565 fra.me.REG[1] = NIT_NULL;
26566 fra.me.REG[0] = p0;
26567 REGB0 = p1;
26568 /* ./parser//parser.nit:7884 */
26569 fra.me.REG[1] = fra.me.REG[0];
26570 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26571 ATTR_parser___ReduceAction231____goto(fra.me.REG[1]) = REGB0;
26572 stack_frame_head = fra.me.prev;
26573 init_table[itpos225] = 1;
26574 return;
26575 }
26576 void parser___ReduceAction232___action(val_t p0, val_t p1){
26577 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
26578 val_t REGB0;
26579 val_t tmp;
26580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26581 fra.me.file = LOCATE_parser;
26582 fra.me.line = 7888;
26583 fra.me.meth = LOCATE_parser___ReduceAction232___action;
26584 fra.me.has_broke = 0;
26585 fra.me.REG_size = 9;
26586 fra.me.REG[0] = NIT_NULL;
26587 fra.me.REG[1] = NIT_NULL;
26588 fra.me.REG[2] = NIT_NULL;
26589 fra.me.REG[3] = NIT_NULL;
26590 fra.me.REG[4] = NIT_NULL;
26591 fra.me.REG[5] = NIT_NULL;
26592 fra.me.REG[6] = NIT_NULL;
26593 fra.me.REG[7] = NIT_NULL;
26594 fra.me.REG[8] = NIT_NULL;
26595 fra.me.REG[0] = p0;
26596 fra.me.REG[1] = p1;
26597 /* ./parser//parser.nit:7890 */
26598 fra.me.REG[2] = NIT_NULL;
26599 /* ./parser//parser.nit:7891 */
26600 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26601 /* ./parser//parser.nit:7892 */
26602 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26603 /* ./parser//parser.nit:7893 */
26604 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26605 /* ./parser//parser.nit:7894 */
26606 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26607 /* ./parser//parser.nit:7895 */
26608 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26609 /* ./parser//parser.nit:7896 */
26610 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26611 /* ./parser//parser.nit:7897 */
26612 fra.me.REG[7] = NEW_Array_array___Array___init();
26613 /* ./parser//parser.nit:7898 */
26614 fra.me.REG[8] = NEW_Array_array___Array___init();
26615 /* ./parser//parser.nit:7900 */
26616 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26617 if (UNTAG_Bool(REGB0)) {
26618 } else {
26619 nit_abort("Assert failed", NULL, LOCATE_parser, 7900);
26620 }
26621 /* ./parser//parser.nit:7902 */
26622 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26623 if (UNTAG_Bool(REGB0)) {
26624 } else {
26625 nit_abort("Assert failed", NULL, LOCATE_parser, 7902);
26626 }
26627 /* ./parser//parser.nit:7904 */
26628 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26629 if (UNTAG_Bool(REGB0)) {
26630 } else {
26631 nit_abort("Assert failed", NULL, LOCATE_parser, 7904);
26632 }
26633 /* ./parser//parser.nit:7905 */
26634 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
26635 fra.me.REG[7] = fra.me.REG[4];
26636 /* ./parser//parser.nit:7907 */
26637 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26638 if (UNTAG_Bool(REGB0)) {
26639 } else {
26640 nit_abort("Assert failed", NULL, LOCATE_parser, 7907);
26641 }
26642 /* ./parser//parser.nit:7908 */
26643 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
26644 fra.me.REG[8] = fra.me.REG[3];
26645 /* ./parser//parser.nit:7909 */
26646 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]);
26647 /* ./parser//parser.nit:7915 */
26648 fra.me.REG[2] = fra.me.REG[8];
26649 /* ./parser//parser.nit:7916 */
26650 REGB0 = TAG_Bool(ATTR_parser___ReduceAction232____goto(fra.me.REG[0])!=NIT_NULL);
26651 if (UNTAG_Bool(REGB0)) {
26652 } else {
26653 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7916);
26654 }
26655 REGB0 = ATTR_parser___ReduceAction232____goto(fra.me.REG[0]);
26656 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26657 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26658 stack_frame_head = fra.me.prev;
26659 return;
26660 }
26661 void parser___ReduceAction232___init(val_t p0, val_t p1, int* init_table){
26662 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction232].i;
26663 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26664 val_t REGB0;
26665 val_t tmp;
26666 if (init_table[itpos226]) return;
26667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26668 fra.me.file = LOCATE_parser;
26669 fra.me.line = 7919;
26670 fra.me.meth = LOCATE_parser___ReduceAction232___init;
26671 fra.me.has_broke = 0;
26672 fra.me.REG_size = 2;
26673 fra.me.REG[0] = NIT_NULL;
26674 fra.me.REG[1] = NIT_NULL;
26675 fra.me.REG[0] = p0;
26676 REGB0 = p1;
26677 /* ./parser//parser.nit:7919 */
26678 fra.me.REG[1] = fra.me.REG[0];
26679 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26680 ATTR_parser___ReduceAction232____goto(fra.me.REG[1]) = REGB0;
26681 stack_frame_head = fra.me.prev;
26682 init_table[itpos226] = 1;
26683 return;
26684 }
26685 void parser___ReduceAction233___action(val_t p0, val_t p1){
26686 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
26687 val_t REGB0;
26688 val_t tmp;
26689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26690 fra.me.file = LOCATE_parser;
26691 fra.me.line = 7923;
26692 fra.me.meth = LOCATE_parser___ReduceAction233___action;
26693 fra.me.has_broke = 0;
26694 fra.me.REG_size = 9;
26695 fra.me.REG[0] = NIT_NULL;
26696 fra.me.REG[1] = NIT_NULL;
26697 fra.me.REG[2] = NIT_NULL;
26698 fra.me.REG[3] = NIT_NULL;
26699 fra.me.REG[4] = NIT_NULL;
26700 fra.me.REG[5] = NIT_NULL;
26701 fra.me.REG[6] = NIT_NULL;
26702 fra.me.REG[7] = NIT_NULL;
26703 fra.me.REG[8] = NIT_NULL;
26704 fra.me.REG[0] = p0;
26705 fra.me.REG[1] = p1;
26706 /* ./parser//parser.nit:7925 */
26707 fra.me.REG[2] = NIT_NULL;
26708 /* ./parser//parser.nit:7926 */
26709 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26710 /* ./parser//parser.nit:7927 */
26711 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26712 /* ./parser//parser.nit:7928 */
26713 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26714 /* ./parser//parser.nit:7929 */
26715 fra.me.REG[6] = NEW_Array_array___Array___init();
26716 /* ./parser//parser.nit:7930 */
26717 fra.me.REG[7] = NEW_Array_array___Array___init();
26718 /* ./parser//parser.nit:7931 */
26719 fra.me.REG[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
26720 /* ./parser//parser.nit:7934 */
26721 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
26722 if (UNTAG_Bool(REGB0)) {
26723 } else {
26724 nit_abort("Assert failed", NULL, LOCATE_parser, 7934);
26725 }
26726 /* ./parser//parser.nit:7936 */
26727 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26728 if (UNTAG_Bool(REGB0)) {
26729 } else {
26730 nit_abort("Assert failed", NULL, LOCATE_parser, 7936);
26731 }
26732 /* ./parser//parser.nit:7937 */
26733 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
26734 fra.me.REG[6] = fra.me.REG[4];
26735 /* ./parser//parser.nit:7939 */
26736 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26737 if (UNTAG_Bool(REGB0)) {
26738 } else {
26739 nit_abort("Assert failed", NULL, LOCATE_parser, 7939);
26740 }
26741 /* ./parser//parser.nit:7940 */
26742 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
26743 fra.me.REG[7] = fra.me.REG[3];
26744 /* ./parser//parser.nit:7941 */
26745 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]);
26746 /* ./parser//parser.nit:7947 */
26747 fra.me.REG[2] = fra.me.REG[7];
26748 /* ./parser//parser.nit:7948 */
26749 REGB0 = TAG_Bool(ATTR_parser___ReduceAction233____goto(fra.me.REG[0])!=NIT_NULL);
26750 if (UNTAG_Bool(REGB0)) {
26751 } else {
26752 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7948);
26753 }
26754 REGB0 = ATTR_parser___ReduceAction233____goto(fra.me.REG[0]);
26755 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26756 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26757 stack_frame_head = fra.me.prev;
26758 return;
26759 }
26760 void parser___ReduceAction233___init(val_t p0, val_t p1, int* init_table){
26761 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction233].i;
26762 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26763 val_t REGB0;
26764 val_t tmp;
26765 if (init_table[itpos227]) return;
26766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26767 fra.me.file = LOCATE_parser;
26768 fra.me.line = 7951;
26769 fra.me.meth = LOCATE_parser___ReduceAction233___init;
26770 fra.me.has_broke = 0;
26771 fra.me.REG_size = 2;
26772 fra.me.REG[0] = NIT_NULL;
26773 fra.me.REG[1] = NIT_NULL;
26774 fra.me.REG[0] = p0;
26775 REGB0 = p1;
26776 /* ./parser//parser.nit:7951 */
26777 fra.me.REG[1] = fra.me.REG[0];
26778 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26779 ATTR_parser___ReduceAction233____goto(fra.me.REG[1]) = REGB0;
26780 stack_frame_head = fra.me.prev;
26781 init_table[itpos227] = 1;
26782 return;
26783 }
26784 void parser___ReduceAction234___action(val_t p0, val_t p1){
26785 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
26786 val_t REGB0;
26787 val_t tmp;
26788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26789 fra.me.file = LOCATE_parser;
26790 fra.me.line = 7955;
26791 fra.me.meth = LOCATE_parser___ReduceAction234___action;
26792 fra.me.has_broke = 0;
26793 fra.me.REG_size = 6;
26794 fra.me.REG[0] = NIT_NULL;
26795 fra.me.REG[1] = NIT_NULL;
26796 fra.me.REG[2] = NIT_NULL;
26797 fra.me.REG[3] = NIT_NULL;
26798 fra.me.REG[4] = NIT_NULL;
26799 fra.me.REG[5] = NIT_NULL;
26800 fra.me.REG[0] = p0;
26801 fra.me.REG[1] = p1;
26802 /* ./parser//parser.nit:7957 */
26803 fra.me.REG[2] = NIT_NULL;
26804 /* ./parser//parser.nit:7958 */
26805 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26806 /* ./parser//parser.nit:7959 */
26807 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26808 /* ./parser//parser.nit:7960 */
26809 fra.me.REG[5] = NEW_Array_array___Array___init();
26810 /* ./parser//parser.nit:7962 */
26811 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwsuper, ID_TKwsuper)) /*cast nullable TKwsuper*/;
26812 if (UNTAG_Bool(REGB0)) {
26813 } else {
26814 nit_abort("Assert failed", NULL, LOCATE_parser, 7962);
26815 }
26816 /* ./parser//parser.nit:7964 */
26817 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26818 if (UNTAG_Bool(REGB0)) {
26819 } else {
26820 nit_abort("Assert failed", NULL, LOCATE_parser, 7964);
26821 }
26822 /* ./parser//parser.nit:7965 */
26823 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
26824 fra.me.REG[5] = fra.me.REG[3];
26825 /* ./parser//parser.nit:7966 */
26826 fra.me.REG[5] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
26827 /* ./parser//parser.nit:7971 */
26828 fra.me.REG[2] = fra.me.REG[5];
26829 /* ./parser//parser.nit:7972 */
26830 REGB0 = TAG_Bool(ATTR_parser___ReduceAction234____goto(fra.me.REG[0])!=NIT_NULL);
26831 if (UNTAG_Bool(REGB0)) {
26832 } else {
26833 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7972);
26834 }
26835 REGB0 = ATTR_parser___ReduceAction234____goto(fra.me.REG[0]);
26836 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26837 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26838 stack_frame_head = fra.me.prev;
26839 return;
26840 }
26841 void parser___ReduceAction234___init(val_t p0, val_t p1, int* init_table){
26842 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction234].i;
26843 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26844 val_t REGB0;
26845 val_t tmp;
26846 if (init_table[itpos228]) return;
26847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26848 fra.me.file = LOCATE_parser;
26849 fra.me.line = 7975;
26850 fra.me.meth = LOCATE_parser___ReduceAction234___init;
26851 fra.me.has_broke = 0;
26852 fra.me.REG_size = 2;
26853 fra.me.REG[0] = NIT_NULL;
26854 fra.me.REG[1] = NIT_NULL;
26855 fra.me.REG[0] = p0;
26856 REGB0 = p1;
26857 /* ./parser//parser.nit:7975 */
26858 fra.me.REG[1] = fra.me.REG[0];
26859 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26860 ATTR_parser___ReduceAction234____goto(fra.me.REG[1]) = REGB0;
26861 stack_frame_head = fra.me.prev;
26862 init_table[itpos228] = 1;
26863 return;
26864 }
26865 void parser___ReduceAction235___action(val_t p0, val_t p1){
26866 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
26867 val_t REGB0;
26868 val_t tmp;
26869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26870 fra.me.file = LOCATE_parser;
26871 fra.me.line = 7979;
26872 fra.me.meth = LOCATE_parser___ReduceAction235___action;
26873 fra.me.has_broke = 0;
26874 fra.me.REG_size = 7;
26875 fra.me.REG[0] = NIT_NULL;
26876 fra.me.REG[1] = NIT_NULL;
26877 fra.me.REG[2] = NIT_NULL;
26878 fra.me.REG[3] = NIT_NULL;
26879 fra.me.REG[4] = NIT_NULL;
26880 fra.me.REG[5] = NIT_NULL;
26881 fra.me.REG[6] = NIT_NULL;
26882 fra.me.REG[0] = p0;
26883 fra.me.REG[1] = p1;
26884 /* ./parser//parser.nit:7981 */
26885 fra.me.REG[2] = NIT_NULL;
26886 /* ./parser//parser.nit:7982 */
26887 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26888 /* ./parser//parser.nit:7983 */
26889 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26890 /* ./parser//parser.nit:7984 */
26891 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26892 /* ./parser//parser.nit:7985 */
26893 fra.me.REG[6] = NEW_Array_array___Array___init();
26894 /* ./parser//parser.nit:7987 */
26895 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AQualified, ID_AQualified)) /*cast nullable AQualified*/;
26896 if (UNTAG_Bool(REGB0)) {
26897 } else {
26898 nit_abort("Assert failed", NULL, LOCATE_parser, 7987);
26899 }
26900 /* ./parser//parser.nit:7989 */
26901 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwsuper, ID_TKwsuper)) /*cast nullable TKwsuper*/;
26902 if (UNTAG_Bool(REGB0)) {
26903 } else {
26904 nit_abort("Assert failed", NULL, LOCATE_parser, 7989);
26905 }
26906 /* ./parser//parser.nit:7991 */
26907 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
26908 if (UNTAG_Bool(REGB0)) {
26909 } else {
26910 nit_abort("Assert failed", NULL, LOCATE_parser, 7991);
26911 }
26912 /* ./parser//parser.nit:7992 */
26913 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
26914 fra.me.REG[6] = fra.me.REG[3];
26915 /* ./parser//parser.nit:7993 */
26916 fra.me.REG[6] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
26917 /* ./parser//parser.nit:7998 */
26918 fra.me.REG[2] = fra.me.REG[6];
26919 /* ./parser//parser.nit:7999 */
26920 REGB0 = TAG_Bool(ATTR_parser___ReduceAction235____goto(fra.me.REG[0])!=NIT_NULL);
26921 if (UNTAG_Bool(REGB0)) {
26922 } else {
26923 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7999);
26924 }
26925 REGB0 = ATTR_parser___ReduceAction235____goto(fra.me.REG[0]);
26926 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
26927 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
26928 stack_frame_head = fra.me.prev;
26929 return;
26930 }
26931 void parser___ReduceAction235___init(val_t p0, val_t p1, int* init_table){
26932 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction235].i;
26933 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26934 val_t REGB0;
26935 val_t tmp;
26936 if (init_table[itpos229]) return;
26937 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26938 fra.me.file = LOCATE_parser;
26939 fra.me.line = 8002;
26940 fra.me.meth = LOCATE_parser___ReduceAction235___init;
26941 fra.me.has_broke = 0;
26942 fra.me.REG_size = 2;
26943 fra.me.REG[0] = NIT_NULL;
26944 fra.me.REG[1] = NIT_NULL;
26945 fra.me.REG[0] = p0;
26946 REGB0 = p1;
26947 /* ./parser//parser.nit:8002 */
26948 fra.me.REG[1] = fra.me.REG[0];
26949 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
26950 ATTR_parser___ReduceAction235____goto(fra.me.REG[1]) = REGB0;
26951 stack_frame_head = fra.me.prev;
26952 init_table[itpos229] = 1;
26953 return;
26954 }
26955 void parser___ReduceAction236___action(val_t p0, val_t p1){
26956 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
26957 val_t REGB0;
26958 val_t tmp;
26959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26960 fra.me.file = LOCATE_parser;
26961 fra.me.line = 8006;
26962 fra.me.meth = LOCATE_parser___ReduceAction236___action;
26963 fra.me.has_broke = 0;
26964 fra.me.REG_size = 7;
26965 fra.me.REG[0] = NIT_NULL;
26966 fra.me.REG[1] = NIT_NULL;
26967 fra.me.REG[2] = NIT_NULL;
26968 fra.me.REG[3] = NIT_NULL;
26969 fra.me.REG[4] = NIT_NULL;
26970 fra.me.REG[5] = NIT_NULL;
26971 fra.me.REG[6] = NIT_NULL;
26972 fra.me.REG[0] = p0;
26973 fra.me.REG[1] = p1;
26974 /* ./parser//parser.nit:8008 */
26975 fra.me.REG[2] = NIT_NULL;
26976 /* ./parser//parser.nit:8009 */
26977 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26978 /* ./parser//parser.nit:8010 */
26979 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26980 /* ./parser//parser.nit:8011 */
26981 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26982 /* ./parser//parser.nit:8012 */
26983 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26984 /* ./parser//parser.nit:8013 */
26985 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
26986 /* ./parser//parser.nit:8014 */
26987 fra.me.REG[6] = NEW_Array_array___Array___init();
26988 /* ./parser//parser.nit:8016 */
26989 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
26990 if (UNTAG_Bool(REGB0)) {
26991 } else {
26992 nit_abort("Assert failed", NULL, LOCATE_parser, 8016);
26993 }
26994 /* ./parser//parser.nit:8018 */
26995 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
26996 if (UNTAG_Bool(REGB0)) {
26997 } else {
26998 nit_abort("Assert failed", NULL, LOCATE_parser, 8018);
26999 }
27000 /* ./parser//parser.nit:8020 */
27001 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27002 if (UNTAG_Bool(REGB0)) {
27003 } else {
27004 nit_abort("Assert failed", NULL, LOCATE_parser, 8020);
27005 }
27006 /* ./parser//parser.nit:8021 */
27007 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
27008 fra.me.REG[6] = fra.me.REG[3];
27009 /* ./parser//parser.nit:8022 */
27010 fra.me.REG[6] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
27011 /* ./parser//parser.nit:8027 */
27012 fra.me.REG[2] = fra.me.REG[6];
27013 /* ./parser//parser.nit:8028 */
27014 REGB0 = TAG_Bool(ATTR_parser___ReduceAction236____goto(fra.me.REG[0])!=NIT_NULL);
27015 if (UNTAG_Bool(REGB0)) {
27016 } else {
27017 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8028);
27018 }
27019 REGB0 = ATTR_parser___ReduceAction236____goto(fra.me.REG[0]);
27020 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27021 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27022 stack_frame_head = fra.me.prev;
27023 return;
27024 }
27025 void parser___ReduceAction236___init(val_t p0, val_t p1, int* init_table){
27026 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction236].i;
27027 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27028 val_t REGB0;
27029 val_t tmp;
27030 if (init_table[itpos230]) return;
27031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27032 fra.me.file = LOCATE_parser;
27033 fra.me.line = 8031;
27034 fra.me.meth = LOCATE_parser___ReduceAction236___init;
27035 fra.me.has_broke = 0;
27036 fra.me.REG_size = 2;
27037 fra.me.REG[0] = NIT_NULL;
27038 fra.me.REG[1] = NIT_NULL;
27039 fra.me.REG[0] = p0;
27040 REGB0 = p1;
27041 /* ./parser//parser.nit:8031 */
27042 fra.me.REG[1] = fra.me.REG[0];
27043 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27044 ATTR_parser___ReduceAction236____goto(fra.me.REG[1]) = REGB0;
27045 stack_frame_head = fra.me.prev;
27046 init_table[itpos230] = 1;
27047 return;
27048 }
27049 void parser___ReduceAction237___action(val_t p0, val_t p1){
27050 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
27051 val_t REGB0;
27052 val_t tmp;
27053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27054 fra.me.file = LOCATE_parser;
27055 fra.me.line = 8035;
27056 fra.me.meth = LOCATE_parser___ReduceAction237___action;
27057 fra.me.has_broke = 0;
27058 fra.me.REG_size = 7;
27059 fra.me.REG[0] = NIT_NULL;
27060 fra.me.REG[1] = NIT_NULL;
27061 fra.me.REG[2] = NIT_NULL;
27062 fra.me.REG[3] = NIT_NULL;
27063 fra.me.REG[4] = NIT_NULL;
27064 fra.me.REG[5] = NIT_NULL;
27065 fra.me.REG[6] = NIT_NULL;
27066 fra.me.REG[0] = p0;
27067 fra.me.REG[1] = p1;
27068 /* ./parser//parser.nit:8037 */
27069 fra.me.REG[2] = NIT_NULL;
27070 /* ./parser//parser.nit:8038 */
27071 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27072 /* ./parser//parser.nit:8039 */
27073 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27074 /* ./parser//parser.nit:8040 */
27075 fra.me.REG[5] = NEW_Array_array___Array___init();
27076 /* ./parser//parser.nit:8041 */
27077 fra.me.REG[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
27078 /* ./parser//parser.nit:8044 */
27079 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
27080 if (UNTAG_Bool(REGB0)) {
27081 } else {
27082 nit_abort("Assert failed", NULL, LOCATE_parser, 8044);
27083 }
27084 /* ./parser//parser.nit:8046 */
27085 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27086 if (UNTAG_Bool(REGB0)) {
27087 } else {
27088 nit_abort("Assert failed", NULL, LOCATE_parser, 8046);
27089 }
27090 /* ./parser//parser.nit:8047 */
27091 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
27092 fra.me.REG[5] = fra.me.REG[3];
27093 /* ./parser//parser.nit:8048 */
27094 fra.me.REG[5] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[6], fra.me.REG[4], fra.me.REG[5]);
27095 /* ./parser//parser.nit:8053 */
27096 fra.me.REG[2] = fra.me.REG[5];
27097 /* ./parser//parser.nit:8054 */
27098 REGB0 = TAG_Bool(ATTR_parser___ReduceAction237____goto(fra.me.REG[0])!=NIT_NULL);
27099 if (UNTAG_Bool(REGB0)) {
27100 } else {
27101 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8054);
27102 }
27103 REGB0 = ATTR_parser___ReduceAction237____goto(fra.me.REG[0]);
27104 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27105 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27106 stack_frame_head = fra.me.prev;
27107 return;
27108 }
27109 void parser___ReduceAction237___init(val_t p0, val_t p1, int* init_table){
27110 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction237].i;
27111 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27112 val_t REGB0;
27113 val_t tmp;
27114 if (init_table[itpos231]) return;
27115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27116 fra.me.file = LOCATE_parser;
27117 fra.me.line = 8057;
27118 fra.me.meth = LOCATE_parser___ReduceAction237___init;
27119 fra.me.has_broke = 0;
27120 fra.me.REG_size = 2;
27121 fra.me.REG[0] = NIT_NULL;
27122 fra.me.REG[1] = NIT_NULL;
27123 fra.me.REG[0] = p0;
27124 REGB0 = p1;
27125 /* ./parser//parser.nit:8057 */
27126 fra.me.REG[1] = fra.me.REG[0];
27127 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27128 ATTR_parser___ReduceAction237____goto(fra.me.REG[1]) = REGB0;
27129 stack_frame_head = fra.me.prev;
27130 init_table[itpos231] = 1;
27131 return;
27132 }
27133 void parser___ReduceAction238___action(val_t p0, val_t p1){
27134 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27135 val_t REGB0;
27136 val_t tmp;
27137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27138 fra.me.file = LOCATE_parser;
27139 fra.me.line = 8061;
27140 fra.me.meth = LOCATE_parser___ReduceAction238___action;
27141 fra.me.has_broke = 0;
27142 fra.me.REG_size = 5;
27143 fra.me.REG[0] = NIT_NULL;
27144 fra.me.REG[1] = NIT_NULL;
27145 fra.me.REG[2] = NIT_NULL;
27146 fra.me.REG[3] = NIT_NULL;
27147 fra.me.REG[4] = NIT_NULL;
27148 fra.me.REG[0] = p0;
27149 fra.me.REG[1] = p1;
27150 /* ./parser//parser.nit:8063 */
27151 fra.me.REG[2] = NIT_NULL;
27152 /* ./parser//parser.nit:8064 */
27153 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27154 /* ./parser//parser.nit:8065 */
27155 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27156 /* ./parser//parser.nit:8067 */
27157 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwlabel, ID_TKwlabel)) /*cast nullable TKwlabel*/;
27158 if (UNTAG_Bool(REGB0)) {
27159 } else {
27160 nit_abort("Assert failed", NULL, LOCATE_parser, 8067);
27161 }
27162 /* ./parser//parser.nit:8069 */
27163 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
27164 if (UNTAG_Bool(REGB0)) {
27165 } else {
27166 nit_abort("Assert failed", NULL, LOCATE_parser, 8069);
27167 }
27168 /* ./parser//parser.nit:8070 */
27169 fra.me.REG[3] = NEW_ALabel_parser_prod___ALabel___init_alabel(fra.me.REG[4], fra.me.REG[3]);
27170 /* ./parser//parser.nit:8074 */
27171 fra.me.REG[2] = fra.me.REG[3];
27172 /* ./parser//parser.nit:8075 */
27173 REGB0 = TAG_Bool(ATTR_parser___ReduceAction238____goto(fra.me.REG[0])!=NIT_NULL);
27174 if (UNTAG_Bool(REGB0)) {
27175 } else {
27176 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8075);
27177 }
27178 REGB0 = ATTR_parser___ReduceAction238____goto(fra.me.REG[0]);
27179 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27180 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27181 stack_frame_head = fra.me.prev;
27182 return;
27183 }
27184 void parser___ReduceAction238___init(val_t p0, val_t p1, int* init_table){
27185 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction238].i;
27186 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27187 val_t REGB0;
27188 val_t tmp;
27189 if (init_table[itpos232]) return;
27190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27191 fra.me.file = LOCATE_parser;
27192 fra.me.line = 8078;
27193 fra.me.meth = LOCATE_parser___ReduceAction238___init;
27194 fra.me.has_broke = 0;
27195 fra.me.REG_size = 2;
27196 fra.me.REG[0] = NIT_NULL;
27197 fra.me.REG[1] = NIT_NULL;
27198 fra.me.REG[0] = p0;
27199 REGB0 = p1;
27200 /* ./parser//parser.nit:8078 */
27201 fra.me.REG[1] = fra.me.REG[0];
27202 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27203 ATTR_parser___ReduceAction238____goto(fra.me.REG[1]) = REGB0;
27204 stack_frame_head = fra.me.prev;
27205 init_table[itpos232] = 1;
27206 return;
27207 }
27208 void parser___ReduceAction239___action(val_t p0, val_t p1){
27209 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27210 val_t REGB0;
27211 val_t REGB1;
27212 val_t tmp;
27213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27214 fra.me.file = LOCATE_parser;
27215 fra.me.line = 8082;
27216 fra.me.meth = LOCATE_parser___ReduceAction239___action;
27217 fra.me.has_broke = 0;
27218 fra.me.REG_size = 5;
27219 fra.me.REG[0] = NIT_NULL;
27220 fra.me.REG[1] = NIT_NULL;
27221 fra.me.REG[2] = NIT_NULL;
27222 fra.me.REG[3] = NIT_NULL;
27223 fra.me.REG[4] = NIT_NULL;
27224 fra.me.REG[0] = p0;
27225 fra.me.REG[1] = p1;
27226 /* ./parser//parser.nit:8084 */
27227 fra.me.REG[2] = NIT_NULL;
27228 /* ./parser//parser.nit:8085 */
27229 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27230 /* ./parser//parser.nit:8086 */
27231 fra.me.REG[4] = NEW_Array_array___Array___init();
27232 /* ./parser//parser.nit:8088 */
27233 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27234 if (UNTAG_Bool(REGB0)) {
27235 } else {
27236 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27237 if (UNTAG_Bool(REGB1)) {
27238 REGB1 = TAG_Bool(false);
27239 REGB0 = REGB1;
27240 } else {
27241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
27242 REGB0 = REGB1;
27243 }
27244 }
27245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27246 if (UNTAG_Bool(REGB0)) {
27247 /* ./parser//parser.nit:8089 */
27248 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
27249 }
27250 /* ./parser//parser.nit:8091 */
27251 fra.me.REG[2] = fra.me.REG[4];
27252 /* ./parser//parser.nit:8092 */
27253 REGB0 = TAG_Bool(ATTR_parser___ReduceAction239____goto(fra.me.REG[0])!=NIT_NULL);
27254 if (UNTAG_Bool(REGB0)) {
27255 } else {
27256 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8092);
27257 }
27258 REGB0 = ATTR_parser___ReduceAction239____goto(fra.me.REG[0]);
27259 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27260 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27261 stack_frame_head = fra.me.prev;
27262 return;
27263 }
27264 void parser___ReduceAction239___init(val_t p0, val_t p1, int* init_table){
27265 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction239].i;
27266 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27267 val_t REGB0;
27268 val_t tmp;
27269 if (init_table[itpos233]) return;
27270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27271 fra.me.file = LOCATE_parser;
27272 fra.me.line = 8095;
27273 fra.me.meth = LOCATE_parser___ReduceAction239___init;
27274 fra.me.has_broke = 0;
27275 fra.me.REG_size = 2;
27276 fra.me.REG[0] = NIT_NULL;
27277 fra.me.REG[1] = NIT_NULL;
27278 fra.me.REG[0] = p0;
27279 REGB0 = p1;
27280 /* ./parser//parser.nit:8095 */
27281 fra.me.REG[1] = fra.me.REG[0];
27282 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27283 ATTR_parser___ReduceAction239____goto(fra.me.REG[1]) = REGB0;
27284 stack_frame_head = fra.me.prev;
27285 init_table[itpos233] = 1;
27286 return;
27287 }
27288 void parser___ReduceAction240___action(val_t p0, val_t p1){
27289 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
27290 val_t REGB0;
27291 val_t REGB1;
27292 val_t tmp;
27293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27294 fra.me.file = LOCATE_parser;
27295 fra.me.line = 8099;
27296 fra.me.meth = LOCATE_parser___ReduceAction240___action;
27297 fra.me.has_broke = 0;
27298 fra.me.REG_size = 6;
27299 fra.me.REG[0] = NIT_NULL;
27300 fra.me.REG[1] = NIT_NULL;
27301 fra.me.REG[2] = NIT_NULL;
27302 fra.me.REG[3] = NIT_NULL;
27303 fra.me.REG[4] = NIT_NULL;
27304 fra.me.REG[5] = NIT_NULL;
27305 fra.me.REG[0] = p0;
27306 fra.me.REG[1] = p1;
27307 /* ./parser//parser.nit:8101 */
27308 fra.me.REG[2] = NIT_NULL;
27309 /* ./parser//parser.nit:8102 */
27310 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27311 /* ./parser//parser.nit:8103 */
27312 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27313 /* ./parser//parser.nit:8104 */
27314 fra.me.REG[5] = NEW_Array_array___Array___init();
27315 /* ./parser//parser.nit:8107 */
27316 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27317 if (UNTAG_Bool(REGB0)) {
27318 } else {
27319 nit_abort("Assert failed", NULL, LOCATE_parser, 8107);
27320 }
27321 /* ./parser//parser.nit:8108 */
27322 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27323 if (UNTAG_Bool(REGB0)) {
27324 } else {
27325 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27326 if (UNTAG_Bool(REGB1)) {
27327 REGB1 = TAG_Bool(false);
27328 REGB0 = REGB1;
27329 } else {
27330 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
27331 REGB0 = REGB1;
27332 }
27333 }
27334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27335 if (UNTAG_Bool(REGB0)) {
27336 /* ./parser//parser.nit:8109 */
27337 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
27338 }
27339 /* ./parser//parser.nit:8111 */
27340 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
27341 fra.me.REG[5] = fra.me.REG[3];
27342 /* ./parser//parser.nit:8112 */
27343 fra.me.REG[2] = fra.me.REG[5];
27344 /* ./parser//parser.nit:8113 */
27345 REGB0 = TAG_Bool(ATTR_parser___ReduceAction240____goto(fra.me.REG[0])!=NIT_NULL);
27346 if (UNTAG_Bool(REGB0)) {
27347 } else {
27348 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8113);
27349 }
27350 REGB0 = ATTR_parser___ReduceAction240____goto(fra.me.REG[0]);
27351 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27352 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27353 stack_frame_head = fra.me.prev;
27354 return;
27355 }
27356 void parser___ReduceAction240___init(val_t p0, val_t p1, int* init_table){
27357 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction240].i;
27358 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27359 val_t REGB0;
27360 val_t tmp;
27361 if (init_table[itpos234]) return;
27362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27363 fra.me.file = LOCATE_parser;
27364 fra.me.line = 8116;
27365 fra.me.meth = LOCATE_parser___ReduceAction240___init;
27366 fra.me.has_broke = 0;
27367 fra.me.REG_size = 2;
27368 fra.me.REG[0] = NIT_NULL;
27369 fra.me.REG[1] = NIT_NULL;
27370 fra.me.REG[0] = p0;
27371 REGB0 = p1;
27372 /* ./parser//parser.nit:8116 */
27373 fra.me.REG[1] = fra.me.REG[0];
27374 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27375 ATTR_parser___ReduceAction240____goto(fra.me.REG[1]) = REGB0;
27376 stack_frame_head = fra.me.prev;
27377 init_table[itpos234] = 1;
27378 return;
27379 }
27380 void parser___ReduceAction241___action(val_t p0, val_t p1){
27381 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
27382 val_t REGB0;
27383 val_t tmp;
27384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27385 fra.me.file = LOCATE_parser;
27386 fra.me.line = 8120;
27387 fra.me.meth = LOCATE_parser___ReduceAction241___action;
27388 fra.me.has_broke = 0;
27389 fra.me.REG_size = 9;
27390 fra.me.REG[0] = NIT_NULL;
27391 fra.me.REG[1] = NIT_NULL;
27392 fra.me.REG[2] = NIT_NULL;
27393 fra.me.REG[3] = NIT_NULL;
27394 fra.me.REG[4] = NIT_NULL;
27395 fra.me.REG[5] = NIT_NULL;
27396 fra.me.REG[6] = NIT_NULL;
27397 fra.me.REG[7] = NIT_NULL;
27398 fra.me.REG[8] = NIT_NULL;
27399 fra.me.REG[0] = p0;
27400 fra.me.REG[1] = p1;
27401 /* ./parser//parser.nit:8122 */
27402 fra.me.REG[2] = NIT_NULL;
27403 /* ./parser//parser.nit:8123 */
27404 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27405 /* ./parser//parser.nit:8124 */
27406 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27407 /* ./parser//parser.nit:8125 */
27408 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27409 /* ./parser//parser.nit:8126 */
27410 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27411 /* ./parser//parser.nit:8127 */
27412 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27413 /* ./parser//parser.nit:8128 */
27414 fra.me.REG[8] = NEW_Array_array___Array___init();
27415 /* ./parser//parser.nit:8130 */
27416 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27417 if (UNTAG_Bool(REGB0)) {
27418 } else {
27419 nit_abort("Assert failed", NULL, LOCATE_parser, 8130);
27420 }
27421 /* ./parser//parser.nit:8132 */
27422 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27423 if (UNTAG_Bool(REGB0)) {
27424 } else {
27425 nit_abort("Assert failed", NULL, LOCATE_parser, 8132);
27426 }
27427 /* ./parser//parser.nit:8134 */
27428 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27429 if (UNTAG_Bool(REGB0)) {
27430 } else {
27431 nit_abort("Assert failed", NULL, LOCATE_parser, 8134);
27432 }
27433 /* ./parser//parser.nit:8136 */
27434 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27435 if (UNTAG_Bool(REGB0)) {
27436 } else {
27437 nit_abort("Assert failed", NULL, LOCATE_parser, 8136);
27438 }
27439 /* ./parser//parser.nit:8138 */
27440 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
27441 if (UNTAG_Bool(REGB0)) {
27442 } else {
27443 nit_abort("Assert failed", NULL, LOCATE_parser, 8138);
27444 }
27445 /* ./parser//parser.nit:8139 */
27446 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]);
27447 /* ./parser//parser.nit:8147 */
27448 fra.me.REG[2] = fra.me.REG[3];
27449 /* ./parser//parser.nit:8148 */
27450 REGB0 = TAG_Bool(ATTR_parser___ReduceAction241____goto(fra.me.REG[0])!=NIT_NULL);
27451 if (UNTAG_Bool(REGB0)) {
27452 } else {
27453 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8148);
27454 }
27455 REGB0 = ATTR_parser___ReduceAction241____goto(fra.me.REG[0]);
27456 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27457 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27458 stack_frame_head = fra.me.prev;
27459 return;
27460 }
27461 void parser___ReduceAction241___init(val_t p0, val_t p1, int* init_table){
27462 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction241].i;
27463 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27464 val_t REGB0;
27465 val_t tmp;
27466 if (init_table[itpos235]) return;
27467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27468 fra.me.file = LOCATE_parser;
27469 fra.me.line = 8151;
27470 fra.me.meth = LOCATE_parser___ReduceAction241___init;
27471 fra.me.has_broke = 0;
27472 fra.me.REG_size = 2;
27473 fra.me.REG[0] = NIT_NULL;
27474 fra.me.REG[1] = NIT_NULL;
27475 fra.me.REG[0] = p0;
27476 REGB0 = p1;
27477 /* ./parser//parser.nit:8151 */
27478 fra.me.REG[1] = fra.me.REG[0];
27479 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27480 ATTR_parser___ReduceAction241____goto(fra.me.REG[1]) = REGB0;
27481 stack_frame_head = fra.me.prev;
27482 init_table[itpos235] = 1;
27483 return;
27484 }
27485 void parser___ReduceAction242___action(val_t p0, val_t p1){
27486 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
27487 val_t REGB0;
27488 val_t tmp;
27489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27490 fra.me.file = LOCATE_parser;
27491 fra.me.line = 8155;
27492 fra.me.meth = LOCATE_parser___ReduceAction242___action;
27493 fra.me.has_broke = 0;
27494 fra.me.REG_size = 10;
27495 fra.me.REG[0] = NIT_NULL;
27496 fra.me.REG[1] = NIT_NULL;
27497 fra.me.REG[2] = NIT_NULL;
27498 fra.me.REG[3] = NIT_NULL;
27499 fra.me.REG[4] = NIT_NULL;
27500 fra.me.REG[5] = NIT_NULL;
27501 fra.me.REG[6] = NIT_NULL;
27502 fra.me.REG[7] = NIT_NULL;
27503 fra.me.REG[8] = NIT_NULL;
27504 fra.me.REG[9] = NIT_NULL;
27505 fra.me.REG[0] = p0;
27506 fra.me.REG[1] = p1;
27507 /* ./parser//parser.nit:8157 */
27508 fra.me.REG[2] = NIT_NULL;
27509 /* ./parser//parser.nit:8158 */
27510 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27511 /* ./parser//parser.nit:8159 */
27512 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27513 /* ./parser//parser.nit:8160 */
27514 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27515 /* ./parser//parser.nit:8161 */
27516 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27517 /* ./parser//parser.nit:8162 */
27518 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27519 /* ./parser//parser.nit:8163 */
27520 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27521 /* ./parser//parser.nit:8164 */
27522 fra.me.REG[9] = NEW_Array_array___Array___init();
27523 /* ./parser//parser.nit:8166 */
27524 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27525 if (UNTAG_Bool(REGB0)) {
27526 } else {
27527 nit_abort("Assert failed", NULL, LOCATE_parser, 8166);
27528 }
27529 /* ./parser//parser.nit:8168 */
27530 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27531 if (UNTAG_Bool(REGB0)) {
27532 } else {
27533 nit_abort("Assert failed", NULL, LOCATE_parser, 8168);
27534 }
27535 /* ./parser//parser.nit:8170 */
27536 REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27537 if (UNTAG_Bool(REGB0)) {
27538 } else {
27539 nit_abort("Assert failed", NULL, LOCATE_parser, 8170);
27540 }
27541 /* ./parser//parser.nit:8171 */
27542 fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[6]);
27543 fra.me.REG[9] = fra.me.REG[6];
27544 /* ./parser//parser.nit:8173 */
27545 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27546 if (UNTAG_Bool(REGB0)) {
27547 } else {
27548 nit_abort("Assert failed", NULL, LOCATE_parser, 8173);
27549 }
27550 /* ./parser//parser.nit:8175 */
27551 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27552 if (UNTAG_Bool(REGB0)) {
27553 } else {
27554 nit_abort("Assert failed", NULL, LOCATE_parser, 8175);
27555 }
27556 /* ./parser//parser.nit:8177 */
27557 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
27558 if (UNTAG_Bool(REGB0)) {
27559 } else {
27560 nit_abort("Assert failed", NULL, LOCATE_parser, 8177);
27561 }
27562 /* ./parser//parser.nit:8178 */
27563 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]);
27564 /* ./parser//parser.nit:8186 */
27565 fra.me.REG[2] = fra.me.REG[3];
27566 /* ./parser//parser.nit:8187 */
27567 REGB0 = TAG_Bool(ATTR_parser___ReduceAction242____goto(fra.me.REG[0])!=NIT_NULL);
27568 if (UNTAG_Bool(REGB0)) {
27569 } else {
27570 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8187);
27571 }
27572 REGB0 = ATTR_parser___ReduceAction242____goto(fra.me.REG[0]);
27573 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27574 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27575 stack_frame_head = fra.me.prev;
27576 return;
27577 }
27578 void parser___ReduceAction242___init(val_t p0, val_t p1, int* init_table){
27579 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction242].i;
27580 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27581 val_t REGB0;
27582 val_t tmp;
27583 if (init_table[itpos236]) return;
27584 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27585 fra.me.file = LOCATE_parser;
27586 fra.me.line = 8190;
27587 fra.me.meth = LOCATE_parser___ReduceAction242___init;
27588 fra.me.has_broke = 0;
27589 fra.me.REG_size = 2;
27590 fra.me.REG[0] = NIT_NULL;
27591 fra.me.REG[1] = NIT_NULL;
27592 fra.me.REG[0] = p0;
27593 REGB0 = p1;
27594 /* ./parser//parser.nit:8190 */
27595 fra.me.REG[1] = fra.me.REG[0];
27596 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27597 ATTR_parser___ReduceAction242____goto(fra.me.REG[1]) = REGB0;
27598 stack_frame_head = fra.me.prev;
27599 init_table[itpos236] = 1;
27600 return;
27601 }
27602 void parser___ReduceAction243___action(val_t p0, val_t p1){
27603 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
27604 val_t REGB0;
27605 val_t tmp;
27606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27607 fra.me.file = LOCATE_parser;
27608 fra.me.line = 8194;
27609 fra.me.meth = LOCATE_parser___ReduceAction243___action;
27610 fra.me.has_broke = 0;
27611 fra.me.REG_size = 8;
27612 fra.me.REG[0] = NIT_NULL;
27613 fra.me.REG[1] = NIT_NULL;
27614 fra.me.REG[2] = NIT_NULL;
27615 fra.me.REG[3] = NIT_NULL;
27616 fra.me.REG[4] = NIT_NULL;
27617 fra.me.REG[5] = NIT_NULL;
27618 fra.me.REG[6] = NIT_NULL;
27619 fra.me.REG[7] = NIT_NULL;
27620 fra.me.REG[0] = p0;
27621 fra.me.REG[1] = p1;
27622 /* ./parser//parser.nit:8196 */
27623 fra.me.REG[2] = NIT_NULL;
27624 /* ./parser//parser.nit:8197 */
27625 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27626 /* ./parser//parser.nit:8198 */
27627 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27628 /* ./parser//parser.nit:8199 */
27629 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27630 /* ./parser//parser.nit:8200 */
27631 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27632 /* ./parser//parser.nit:8201 */
27633 fra.me.REG[7] = NEW_Array_array___Array___init();
27634 /* ./parser//parser.nit:8203 */
27635 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27636 if (UNTAG_Bool(REGB0)) {
27637 } else {
27638 nit_abort("Assert failed", NULL, LOCATE_parser, 8203);
27639 }
27640 /* ./parser//parser.nit:8205 */
27641 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27642 if (UNTAG_Bool(REGB0)) {
27643 } else {
27644 nit_abort("Assert failed", NULL, LOCATE_parser, 8205);
27645 }
27646 /* ./parser//parser.nit:8207 */
27647 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27648 if (UNTAG_Bool(REGB0)) {
27649 } else {
27650 nit_abort("Assert failed", NULL, LOCATE_parser, 8207);
27651 }
27652 /* ./parser//parser.nit:8209 */
27653 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27654 if (UNTAG_Bool(REGB0)) {
27655 } else {
27656 nit_abort("Assert failed", NULL, LOCATE_parser, 8209);
27657 }
27658 /* ./parser//parser.nit:8210 */
27659 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);
27660 /* ./parser//parser.nit:8218 */
27661 fra.me.REG[2] = fra.me.REG[3];
27662 /* ./parser//parser.nit:8219 */
27663 REGB0 = TAG_Bool(ATTR_parser___ReduceAction243____goto(fra.me.REG[0])!=NIT_NULL);
27664 if (UNTAG_Bool(REGB0)) {
27665 } else {
27666 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8219);
27667 }
27668 REGB0 = ATTR_parser___ReduceAction243____goto(fra.me.REG[0]);
27669 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27670 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27671 stack_frame_head = fra.me.prev;
27672 return;
27673 }
27674 void parser___ReduceAction243___init(val_t p0, val_t p1, int* init_table){
27675 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction243].i;
27676 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27677 val_t REGB0;
27678 val_t tmp;
27679 if (init_table[itpos237]) return;
27680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27681 fra.me.file = LOCATE_parser;
27682 fra.me.line = 8222;
27683 fra.me.meth = LOCATE_parser___ReduceAction243___init;
27684 fra.me.has_broke = 0;
27685 fra.me.REG_size = 2;
27686 fra.me.REG[0] = NIT_NULL;
27687 fra.me.REG[1] = NIT_NULL;
27688 fra.me.REG[0] = p0;
27689 REGB0 = p1;
27690 /* ./parser//parser.nit:8222 */
27691 fra.me.REG[1] = fra.me.REG[0];
27692 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27693 ATTR_parser___ReduceAction243____goto(fra.me.REG[1]) = REGB0;
27694 stack_frame_head = fra.me.prev;
27695 init_table[itpos237] = 1;
27696 return;
27697 }
27698 void parser___ReduceAction244___action(val_t p0, val_t p1){
27699 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
27700 val_t REGB0;
27701 val_t tmp;
27702 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27703 fra.me.file = LOCATE_parser;
27704 fra.me.line = 8226;
27705 fra.me.meth = LOCATE_parser___ReduceAction244___action;
27706 fra.me.has_broke = 0;
27707 fra.me.REG_size = 9;
27708 fra.me.REG[0] = NIT_NULL;
27709 fra.me.REG[1] = NIT_NULL;
27710 fra.me.REG[2] = NIT_NULL;
27711 fra.me.REG[3] = NIT_NULL;
27712 fra.me.REG[4] = NIT_NULL;
27713 fra.me.REG[5] = NIT_NULL;
27714 fra.me.REG[6] = NIT_NULL;
27715 fra.me.REG[7] = NIT_NULL;
27716 fra.me.REG[8] = NIT_NULL;
27717 fra.me.REG[0] = p0;
27718 fra.me.REG[1] = p1;
27719 /* ./parser//parser.nit:8228 */
27720 fra.me.REG[2] = NIT_NULL;
27721 /* ./parser//parser.nit:8229 */
27722 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27723 /* ./parser//parser.nit:8230 */
27724 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27725 /* ./parser//parser.nit:8231 */
27726 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27727 /* ./parser//parser.nit:8232 */
27728 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27729 /* ./parser//parser.nit:8233 */
27730 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27731 /* ./parser//parser.nit:8234 */
27732 fra.me.REG[8] = NEW_Array_array___Array___init();
27733 /* ./parser//parser.nit:8236 */
27734 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27735 if (UNTAG_Bool(REGB0)) {
27736 } else {
27737 nit_abort("Assert failed", NULL, LOCATE_parser, 8236);
27738 }
27739 /* ./parser//parser.nit:8238 */
27740 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27741 if (UNTAG_Bool(REGB0)) {
27742 } else {
27743 nit_abort("Assert failed", NULL, LOCATE_parser, 8238);
27744 }
27745 /* ./parser//parser.nit:8240 */
27746 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27747 if (UNTAG_Bool(REGB0)) {
27748 } else {
27749 nit_abort("Assert failed", NULL, LOCATE_parser, 8240);
27750 }
27751 /* ./parser//parser.nit:8241 */
27752 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
27753 fra.me.REG[8] = fra.me.REG[5];
27754 /* ./parser//parser.nit:8243 */
27755 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
27756 if (UNTAG_Bool(REGB0)) {
27757 } else {
27758 nit_abort("Assert failed", NULL, LOCATE_parser, 8243);
27759 }
27760 /* ./parser//parser.nit:8245 */
27761 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27762 if (UNTAG_Bool(REGB0)) {
27763 } else {
27764 nit_abort("Assert failed", NULL, LOCATE_parser, 8245);
27765 }
27766 /* ./parser//parser.nit:8246 */
27767 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);
27768 /* ./parser//parser.nit:8254 */
27769 fra.me.REG[2] = fra.me.REG[3];
27770 /* ./parser//parser.nit:8255 */
27771 REGB0 = TAG_Bool(ATTR_parser___ReduceAction244____goto(fra.me.REG[0])!=NIT_NULL);
27772 if (UNTAG_Bool(REGB0)) {
27773 } else {
27774 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8255);
27775 }
27776 REGB0 = ATTR_parser___ReduceAction244____goto(fra.me.REG[0]);
27777 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27778 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27779 stack_frame_head = fra.me.prev;
27780 return;
27781 }
27782 void parser___ReduceAction244___init(val_t p0, val_t p1, int* init_table){
27783 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction244].i;
27784 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27785 val_t REGB0;
27786 val_t tmp;
27787 if (init_table[itpos238]) return;
27788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27789 fra.me.file = LOCATE_parser;
27790 fra.me.line = 8258;
27791 fra.me.meth = LOCATE_parser___ReduceAction244___init;
27792 fra.me.has_broke = 0;
27793 fra.me.REG_size = 2;
27794 fra.me.REG[0] = NIT_NULL;
27795 fra.me.REG[1] = NIT_NULL;
27796 fra.me.REG[0] = p0;
27797 REGB0 = p1;
27798 /* ./parser//parser.nit:8258 */
27799 fra.me.REG[1] = fra.me.REG[0];
27800 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27801 ATTR_parser___ReduceAction244____goto(fra.me.REG[1]) = REGB0;
27802 stack_frame_head = fra.me.prev;
27803 init_table[itpos238] = 1;
27804 return;
27805 }
27806 void parser___ReduceAction245___action(val_t p0, val_t p1){
27807 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
27808 val_t REGB0;
27809 val_t tmp;
27810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27811 fra.me.file = LOCATE_parser;
27812 fra.me.line = 8262;
27813 fra.me.meth = LOCATE_parser___ReduceAction245___action;
27814 fra.me.has_broke = 0;
27815 fra.me.REG_size = 7;
27816 fra.me.REG[0] = NIT_NULL;
27817 fra.me.REG[1] = NIT_NULL;
27818 fra.me.REG[2] = NIT_NULL;
27819 fra.me.REG[3] = NIT_NULL;
27820 fra.me.REG[4] = NIT_NULL;
27821 fra.me.REG[5] = NIT_NULL;
27822 fra.me.REG[6] = NIT_NULL;
27823 fra.me.REG[0] = p0;
27824 fra.me.REG[1] = p1;
27825 /* ./parser//parser.nit:8264 */
27826 fra.me.REG[2] = NIT_NULL;
27827 /* ./parser//parser.nit:8265 */
27828 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27829 /* ./parser//parser.nit:8266 */
27830 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27831 /* ./parser//parser.nit:8267 */
27832 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27833 /* ./parser//parser.nit:8268 */
27834 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27835 /* ./parser//parser.nit:8269 */
27836 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27837 /* ./parser//parser.nit:8270 */
27838 fra.me.REG[6] = NEW_Array_array___Array___init();
27839 /* ./parser//parser.nit:8272 */
27840 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27841 if (UNTAG_Bool(REGB0)) {
27842 } else {
27843 nit_abort("Assert failed", NULL, LOCATE_parser, 8272);
27844 }
27845 /* ./parser//parser.nit:8274 */
27846 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27847 if (UNTAG_Bool(REGB0)) {
27848 } else {
27849 nit_abort("Assert failed", NULL, LOCATE_parser, 8274);
27850 }
27851 /* ./parser//parser.nit:8276 */
27852 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27853 if (UNTAG_Bool(REGB0)) {
27854 } else {
27855 nit_abort("Assert failed", NULL, LOCATE_parser, 8276);
27856 }
27857 /* ./parser//parser.nit:8277 */
27858 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);
27859 /* ./parser//parser.nit:8285 */
27860 fra.me.REG[2] = fra.me.REG[3];
27861 /* ./parser//parser.nit:8286 */
27862 REGB0 = TAG_Bool(ATTR_parser___ReduceAction245____goto(fra.me.REG[0])!=NIT_NULL);
27863 if (UNTAG_Bool(REGB0)) {
27864 } else {
27865 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8286);
27866 }
27867 REGB0 = ATTR_parser___ReduceAction245____goto(fra.me.REG[0]);
27868 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27869 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27870 stack_frame_head = fra.me.prev;
27871 return;
27872 }
27873 void parser___ReduceAction245___init(val_t p0, val_t p1, int* init_table){
27874 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction245].i;
27875 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27876 val_t REGB0;
27877 val_t tmp;
27878 if (init_table[itpos239]) return;
27879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27880 fra.me.file = LOCATE_parser;
27881 fra.me.line = 8289;
27882 fra.me.meth = LOCATE_parser___ReduceAction245___init;
27883 fra.me.has_broke = 0;
27884 fra.me.REG_size = 2;
27885 fra.me.REG[0] = NIT_NULL;
27886 fra.me.REG[1] = NIT_NULL;
27887 fra.me.REG[0] = p0;
27888 REGB0 = p1;
27889 /* ./parser//parser.nit:8289 */
27890 fra.me.REG[1] = fra.me.REG[0];
27891 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27892 ATTR_parser___ReduceAction245____goto(fra.me.REG[1]) = REGB0;
27893 stack_frame_head = fra.me.prev;
27894 init_table[itpos239] = 1;
27895 return;
27896 }
27897 void parser___ReduceAction246___action(val_t p0, val_t p1){
27898 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
27899 val_t REGB0;
27900 val_t tmp;
27901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27902 fra.me.file = LOCATE_parser;
27903 fra.me.line = 8293;
27904 fra.me.meth = LOCATE_parser___ReduceAction246___action;
27905 fra.me.has_broke = 0;
27906 fra.me.REG_size = 8;
27907 fra.me.REG[0] = NIT_NULL;
27908 fra.me.REG[1] = NIT_NULL;
27909 fra.me.REG[2] = NIT_NULL;
27910 fra.me.REG[3] = NIT_NULL;
27911 fra.me.REG[4] = NIT_NULL;
27912 fra.me.REG[5] = NIT_NULL;
27913 fra.me.REG[6] = NIT_NULL;
27914 fra.me.REG[7] = NIT_NULL;
27915 fra.me.REG[0] = p0;
27916 fra.me.REG[1] = p1;
27917 /* ./parser//parser.nit:8295 */
27918 fra.me.REG[2] = NIT_NULL;
27919 /* ./parser//parser.nit:8296 */
27920 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27921 /* ./parser//parser.nit:8297 */
27922 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27923 /* ./parser//parser.nit:8298 */
27924 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27925 /* ./parser//parser.nit:8299 */
27926 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27927 /* ./parser//parser.nit:8300 */
27928 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27929 /* ./parser//parser.nit:8301 */
27930 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
27931 /* ./parser//parser.nit:8302 */
27932 fra.me.REG[7] = NEW_Array_array___Array___init();
27933 /* ./parser//parser.nit:8304 */
27934 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
27935 if (UNTAG_Bool(REGB0)) {
27936 } else {
27937 nit_abort("Assert failed", NULL, LOCATE_parser, 8304);
27938 }
27939 /* ./parser//parser.nit:8306 */
27940 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
27941 if (UNTAG_Bool(REGB0)) {
27942 } else {
27943 nit_abort("Assert failed", NULL, LOCATE_parser, 8306);
27944 }
27945 /* ./parser//parser.nit:8308 */
27946 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
27947 if (UNTAG_Bool(REGB0)) {
27948 } else {
27949 nit_abort("Assert failed", NULL, LOCATE_parser, 8308);
27950 }
27951 /* ./parser//parser.nit:8309 */
27952 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
27953 fra.me.REG[7] = fra.me.REG[4];
27954 /* ./parser//parser.nit:8311 */
27955 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
27956 if (UNTAG_Bool(REGB0)) {
27957 } else {
27958 nit_abort("Assert failed", NULL, LOCATE_parser, 8311);
27959 }
27960 /* ./parser//parser.nit:8312 */
27961 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);
27962 /* ./parser//parser.nit:8320 */
27963 fra.me.REG[2] = fra.me.REG[3];
27964 /* ./parser//parser.nit:8321 */
27965 REGB0 = TAG_Bool(ATTR_parser___ReduceAction246____goto(fra.me.REG[0])!=NIT_NULL);
27966 if (UNTAG_Bool(REGB0)) {
27967 } else {
27968 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8321);
27969 }
27970 REGB0 = ATTR_parser___ReduceAction246____goto(fra.me.REG[0]);
27971 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
27972 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
27973 stack_frame_head = fra.me.prev;
27974 return;
27975 }
27976 void parser___ReduceAction246___init(val_t p0, val_t p1, int* init_table){
27977 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction246].i;
27978 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27979 val_t REGB0;
27980 val_t tmp;
27981 if (init_table[itpos240]) return;
27982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27983 fra.me.file = LOCATE_parser;
27984 fra.me.line = 8324;
27985 fra.me.meth = LOCATE_parser___ReduceAction246___init;
27986 fra.me.has_broke = 0;
27987 fra.me.REG_size = 2;
27988 fra.me.REG[0] = NIT_NULL;
27989 fra.me.REG[1] = NIT_NULL;
27990 fra.me.REG[0] = p0;
27991 REGB0 = p1;
27992 /* ./parser//parser.nit:8324 */
27993 fra.me.REG[1] = fra.me.REG[0];
27994 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
27995 ATTR_parser___ReduceAction246____goto(fra.me.REG[1]) = REGB0;
27996 stack_frame_head = fra.me.prev;
27997 init_table[itpos240] = 1;
27998 return;
27999 }
28000 void parser___ReduceAction247___action(val_t p0, val_t p1){
28001 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
28002 val_t REGB0;
28003 val_t tmp;
28004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28005 fra.me.file = LOCATE_parser;
28006 fra.me.line = 8328;
28007 fra.me.meth = LOCATE_parser___ReduceAction247___action;
28008 fra.me.has_broke = 0;
28009 fra.me.REG_size = 8;
28010 fra.me.REG[0] = NIT_NULL;
28011 fra.me.REG[1] = NIT_NULL;
28012 fra.me.REG[2] = NIT_NULL;
28013 fra.me.REG[3] = NIT_NULL;
28014 fra.me.REG[4] = NIT_NULL;
28015 fra.me.REG[5] = NIT_NULL;
28016 fra.me.REG[6] = NIT_NULL;
28017 fra.me.REG[7] = NIT_NULL;
28018 fra.me.REG[0] = p0;
28019 fra.me.REG[1] = p1;
28020 /* ./parser//parser.nit:8330 */
28021 fra.me.REG[2] = NIT_NULL;
28022 /* ./parser//parser.nit:8331 */
28023 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28024 /* ./parser//parser.nit:8332 */
28025 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28026 /* ./parser//parser.nit:8333 */
28027 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28028 /* ./parser//parser.nit:8334 */
28029 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28030 /* ./parser//parser.nit:8335 */
28031 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28032 /* ./parser//parser.nit:8336 */
28033 fra.me.REG[7] = NEW_Array_array___Array___init();
28034 /* ./parser//parser.nit:8338 */
28035 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28036 if (UNTAG_Bool(REGB0)) {
28037 } else {
28038 nit_abort("Assert failed", NULL, LOCATE_parser, 8338);
28039 }
28040 /* ./parser//parser.nit:8340 */
28041 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28042 if (UNTAG_Bool(REGB0)) {
28043 } else {
28044 nit_abort("Assert failed", NULL, LOCATE_parser, 8340);
28045 }
28046 /* ./parser//parser.nit:8342 */
28047 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28048 if (UNTAG_Bool(REGB0)) {
28049 } else {
28050 nit_abort("Assert failed", NULL, LOCATE_parser, 8342);
28051 }
28052 /* ./parser//parser.nit:8344 */
28053 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28054 if (UNTAG_Bool(REGB0)) {
28055 } else {
28056 nit_abort("Assert failed", NULL, LOCATE_parser, 8344);
28057 }
28058 /* ./parser//parser.nit:8345 */
28059 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);
28060 /* ./parser//parser.nit:8353 */
28061 fra.me.REG[2] = fra.me.REG[3];
28062 /* ./parser//parser.nit:8354 */
28063 REGB0 = TAG_Bool(ATTR_parser___ReduceAction247____goto(fra.me.REG[0])!=NIT_NULL);
28064 if (UNTAG_Bool(REGB0)) {
28065 } else {
28066 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8354);
28067 }
28068 REGB0 = ATTR_parser___ReduceAction247____goto(fra.me.REG[0]);
28069 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28070 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28071 stack_frame_head = fra.me.prev;
28072 return;
28073 }
28074 void parser___ReduceAction247___init(val_t p0, val_t p1, int* init_table){
28075 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction247].i;
28076 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28077 val_t REGB0;
28078 val_t tmp;
28079 if (init_table[itpos241]) return;
28080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28081 fra.me.file = LOCATE_parser;
28082 fra.me.line = 8357;
28083 fra.me.meth = LOCATE_parser___ReduceAction247___init;
28084 fra.me.has_broke = 0;
28085 fra.me.REG_size = 2;
28086 fra.me.REG[0] = NIT_NULL;
28087 fra.me.REG[1] = NIT_NULL;
28088 fra.me.REG[0] = p0;
28089 REGB0 = p1;
28090 /* ./parser//parser.nit:8357 */
28091 fra.me.REG[1] = fra.me.REG[0];
28092 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28093 ATTR_parser___ReduceAction247____goto(fra.me.REG[1]) = REGB0;
28094 stack_frame_head = fra.me.prev;
28095 init_table[itpos241] = 1;
28096 return;
28097 }
28098 void parser___ReduceAction248___action(val_t p0, val_t p1){
28099 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
28100 val_t REGB0;
28101 val_t tmp;
28102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28103 fra.me.file = LOCATE_parser;
28104 fra.me.line = 8361;
28105 fra.me.meth = LOCATE_parser___ReduceAction248___action;
28106 fra.me.has_broke = 0;
28107 fra.me.REG_size = 9;
28108 fra.me.REG[0] = NIT_NULL;
28109 fra.me.REG[1] = NIT_NULL;
28110 fra.me.REG[2] = NIT_NULL;
28111 fra.me.REG[3] = NIT_NULL;
28112 fra.me.REG[4] = NIT_NULL;
28113 fra.me.REG[5] = NIT_NULL;
28114 fra.me.REG[6] = NIT_NULL;
28115 fra.me.REG[7] = NIT_NULL;
28116 fra.me.REG[8] = NIT_NULL;
28117 fra.me.REG[0] = p0;
28118 fra.me.REG[1] = p1;
28119 /* ./parser//parser.nit:8363 */
28120 fra.me.REG[2] = NIT_NULL;
28121 /* ./parser//parser.nit:8364 */
28122 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28123 /* ./parser//parser.nit:8365 */
28124 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28125 /* ./parser//parser.nit:8366 */
28126 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28127 /* ./parser//parser.nit:8367 */
28128 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28129 /* ./parser//parser.nit:8368 */
28130 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28131 /* ./parser//parser.nit:8369 */
28132 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28133 /* ./parser//parser.nit:8370 */
28134 fra.me.REG[8] = NEW_Array_array___Array___init();
28135 /* ./parser//parser.nit:8372 */
28136 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28137 if (UNTAG_Bool(REGB0)) {
28138 } else {
28139 nit_abort("Assert failed", NULL, LOCATE_parser, 8372);
28140 }
28141 /* ./parser//parser.nit:8374 */
28142 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28143 if (UNTAG_Bool(REGB0)) {
28144 } else {
28145 nit_abort("Assert failed", NULL, LOCATE_parser, 8374);
28146 }
28147 /* ./parser//parser.nit:8376 */
28148 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
28149 if (UNTAG_Bool(REGB0)) {
28150 } else {
28151 nit_abort("Assert failed", NULL, LOCATE_parser, 8376);
28152 }
28153 /* ./parser//parser.nit:8377 */
28154 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
28155 fra.me.REG[8] = fra.me.REG[5];
28156 /* ./parser//parser.nit:8379 */
28157 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28158 if (UNTAG_Bool(REGB0)) {
28159 } else {
28160 nit_abort("Assert failed", NULL, LOCATE_parser, 8379);
28161 }
28162 /* ./parser//parser.nit:8381 */
28163 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28164 if (UNTAG_Bool(REGB0)) {
28165 } else {
28166 nit_abort("Assert failed", NULL, LOCATE_parser, 8381);
28167 }
28168 /* ./parser//parser.nit:8382 */
28169 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);
28170 /* ./parser//parser.nit:8390 */
28171 fra.me.REG[2] = fra.me.REG[3];
28172 /* ./parser//parser.nit:8391 */
28173 REGB0 = TAG_Bool(ATTR_parser___ReduceAction248____goto(fra.me.REG[0])!=NIT_NULL);
28174 if (UNTAG_Bool(REGB0)) {
28175 } else {
28176 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8391);
28177 }
28178 REGB0 = ATTR_parser___ReduceAction248____goto(fra.me.REG[0]);
28179 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28180 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28181 stack_frame_head = fra.me.prev;
28182 return;
28183 }
28184 void parser___ReduceAction248___init(val_t p0, val_t p1, int* init_table){
28185 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction248].i;
28186 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28187 val_t REGB0;
28188 val_t tmp;
28189 if (init_table[itpos242]) return;
28190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28191 fra.me.file = LOCATE_parser;
28192 fra.me.line = 8394;
28193 fra.me.meth = LOCATE_parser___ReduceAction248___init;
28194 fra.me.has_broke = 0;
28195 fra.me.REG_size = 2;
28196 fra.me.REG[0] = NIT_NULL;
28197 fra.me.REG[1] = NIT_NULL;
28198 fra.me.REG[0] = p0;
28199 REGB0 = p1;
28200 /* ./parser//parser.nit:8394 */
28201 fra.me.REG[1] = fra.me.REG[0];
28202 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28203 ATTR_parser___ReduceAction248____goto(fra.me.REG[1]) = REGB0;
28204 stack_frame_head = fra.me.prev;
28205 init_table[itpos242] = 1;
28206 return;
28207 }
28208 void parser___ReduceAction249___action(val_t p0, val_t p1){
28209 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
28210 val_t REGB0;
28211 val_t tmp;
28212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28213 fra.me.file = LOCATE_parser;
28214 fra.me.line = 8398;
28215 fra.me.meth = LOCATE_parser___ReduceAction249___action;
28216 fra.me.has_broke = 0;
28217 fra.me.REG_size = 7;
28218 fra.me.REG[0] = NIT_NULL;
28219 fra.me.REG[1] = NIT_NULL;
28220 fra.me.REG[2] = NIT_NULL;
28221 fra.me.REG[3] = NIT_NULL;
28222 fra.me.REG[4] = NIT_NULL;
28223 fra.me.REG[5] = NIT_NULL;
28224 fra.me.REG[6] = NIT_NULL;
28225 fra.me.REG[0] = p0;
28226 fra.me.REG[1] = p1;
28227 /* ./parser//parser.nit:8400 */
28228 fra.me.REG[2] = NIT_NULL;
28229 /* ./parser//parser.nit:8401 */
28230 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28231 /* ./parser//parser.nit:8402 */
28232 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28233 /* ./parser//parser.nit:8403 */
28234 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28235 /* ./parser//parser.nit:8404 */
28236 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28237 /* ./parser//parser.nit:8405 */
28238 fra.me.REG[6] = NEW_Array_array___Array___init();
28239 /* ./parser//parser.nit:8407 */
28240 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28241 if (UNTAG_Bool(REGB0)) {
28242 } else {
28243 nit_abort("Assert failed", NULL, LOCATE_parser, 8407);
28244 }
28245 /* ./parser//parser.nit:8409 */
28246 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28247 if (UNTAG_Bool(REGB0)) {
28248 } else {
28249 nit_abort("Assert failed", NULL, LOCATE_parser, 8409);
28250 }
28251 /* ./parser//parser.nit:8411 */
28252 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28253 if (UNTAG_Bool(REGB0)) {
28254 } else {
28255 nit_abort("Assert failed", NULL, LOCATE_parser, 8411);
28256 }
28257 /* ./parser//parser.nit:8412 */
28258 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);
28259 /* ./parser//parser.nit:8420 */
28260 fra.me.REG[2] = fra.me.REG[3];
28261 /* ./parser//parser.nit:8421 */
28262 REGB0 = TAG_Bool(ATTR_parser___ReduceAction249____goto(fra.me.REG[0])!=NIT_NULL);
28263 if (UNTAG_Bool(REGB0)) {
28264 } else {
28265 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8421);
28266 }
28267 REGB0 = ATTR_parser___ReduceAction249____goto(fra.me.REG[0]);
28268 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28269 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28270 stack_frame_head = fra.me.prev;
28271 return;
28272 }
28273 void parser___ReduceAction249___init(val_t p0, val_t p1, int* init_table){
28274 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction249].i;
28275 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28276 val_t REGB0;
28277 val_t tmp;
28278 if (init_table[itpos243]) return;
28279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28280 fra.me.file = LOCATE_parser;
28281 fra.me.line = 8424;
28282 fra.me.meth = LOCATE_parser___ReduceAction249___init;
28283 fra.me.has_broke = 0;
28284 fra.me.REG_size = 2;
28285 fra.me.REG[0] = NIT_NULL;
28286 fra.me.REG[1] = NIT_NULL;
28287 fra.me.REG[0] = p0;
28288 REGB0 = p1;
28289 /* ./parser//parser.nit:8424 */
28290 fra.me.REG[1] = fra.me.REG[0];
28291 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28292 ATTR_parser___ReduceAction249____goto(fra.me.REG[1]) = REGB0;
28293 stack_frame_head = fra.me.prev;
28294 init_table[itpos243] = 1;
28295 return;
28296 }
28297 void parser___ReduceAction250___action(val_t p0, val_t p1){
28298 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
28299 val_t REGB0;
28300 val_t tmp;
28301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28302 fra.me.file = LOCATE_parser;
28303 fra.me.line = 8428;
28304 fra.me.meth = LOCATE_parser___ReduceAction250___action;
28305 fra.me.has_broke = 0;
28306 fra.me.REG_size = 8;
28307 fra.me.REG[0] = NIT_NULL;
28308 fra.me.REG[1] = NIT_NULL;
28309 fra.me.REG[2] = NIT_NULL;
28310 fra.me.REG[3] = NIT_NULL;
28311 fra.me.REG[4] = NIT_NULL;
28312 fra.me.REG[5] = NIT_NULL;
28313 fra.me.REG[6] = NIT_NULL;
28314 fra.me.REG[7] = NIT_NULL;
28315 fra.me.REG[0] = p0;
28316 fra.me.REG[1] = p1;
28317 /* ./parser//parser.nit:8430 */
28318 fra.me.REG[2] = NIT_NULL;
28319 /* ./parser//parser.nit:8431 */
28320 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28321 /* ./parser//parser.nit:8432 */
28322 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28323 /* ./parser//parser.nit:8433 */
28324 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28325 /* ./parser//parser.nit:8434 */
28326 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28327 /* ./parser//parser.nit:8435 */
28328 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28329 /* ./parser//parser.nit:8436 */
28330 fra.me.REG[7] = NEW_Array_array___Array___init();
28331 /* ./parser//parser.nit:8438 */
28332 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TBang, ID_TBang)) /*cast nullable TBang*/;
28333 if (UNTAG_Bool(REGB0)) {
28334 } else {
28335 nit_abort("Assert failed", NULL, LOCATE_parser, 8438);
28336 }
28337 /* ./parser//parser.nit:8440 */
28338 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AClosureId, ID_AClosureId)) /*cast nullable AClosureId*/;
28339 if (UNTAG_Bool(REGB0)) {
28340 } else {
28341 nit_abort("Assert failed", NULL, LOCATE_parser, 8440);
28342 }
28343 /* ./parser//parser.nit:8442 */
28344 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
28345 if (UNTAG_Bool(REGB0)) {
28346 } else {
28347 nit_abort("Assert failed", NULL, LOCATE_parser, 8442);
28348 }
28349 /* ./parser//parser.nit:8443 */
28350 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
28351 fra.me.REG[7] = fra.me.REG[4];
28352 /* ./parser//parser.nit:8445 */
28353 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
28354 if (UNTAG_Bool(REGB0)) {
28355 } else {
28356 nit_abort("Assert failed", NULL, LOCATE_parser, 8445);
28357 }
28358 /* ./parser//parser.nit:8446 */
28359 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);
28360 /* ./parser//parser.nit:8454 */
28361 fra.me.REG[2] = fra.me.REG[3];
28362 /* ./parser//parser.nit:8455 */
28363 REGB0 = TAG_Bool(ATTR_parser___ReduceAction250____goto(fra.me.REG[0])!=NIT_NULL);
28364 if (UNTAG_Bool(REGB0)) {
28365 } else {
28366 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8455);
28367 }
28368 REGB0 = ATTR_parser___ReduceAction250____goto(fra.me.REG[0]);
28369 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28370 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28371 stack_frame_head = fra.me.prev;
28372 return;
28373 }
28374 void parser___ReduceAction250___init(val_t p0, val_t p1, int* init_table){
28375 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction250].i;
28376 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28377 val_t REGB0;
28378 val_t tmp;
28379 if (init_table[itpos244]) return;
28380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28381 fra.me.file = LOCATE_parser;
28382 fra.me.line = 8458;
28383 fra.me.meth = LOCATE_parser___ReduceAction250___init;
28384 fra.me.has_broke = 0;
28385 fra.me.REG_size = 2;
28386 fra.me.REG[0] = NIT_NULL;
28387 fra.me.REG[1] = NIT_NULL;
28388 fra.me.REG[0] = p0;
28389 REGB0 = p1;
28390 /* ./parser//parser.nit:8458 */
28391 fra.me.REG[1] = fra.me.REG[0];
28392 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28393 ATTR_parser___ReduceAction250____goto(fra.me.REG[1]) = REGB0;
28394 stack_frame_head = fra.me.prev;
28395 init_table[itpos244] = 1;
28396 return;
28397 }
28398 void parser___ReduceAction251___action(val_t p0, val_t p1){
28399 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28400 val_t REGB0;
28401 val_t tmp;
28402 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28403 fra.me.file = LOCATE_parser;
28404 fra.me.line = 8462;
28405 fra.me.meth = LOCATE_parser___ReduceAction251___action;
28406 fra.me.has_broke = 0;
28407 fra.me.REG_size = 4;
28408 fra.me.REG[0] = NIT_NULL;
28409 fra.me.REG[1] = NIT_NULL;
28410 fra.me.REG[2] = NIT_NULL;
28411 fra.me.REG[3] = NIT_NULL;
28412 fra.me.REG[0] = p0;
28413 fra.me.REG[1] = p1;
28414 /* ./parser//parser.nit:8464 */
28415 fra.me.REG[2] = NIT_NULL;
28416 /* ./parser//parser.nit:8465 */
28417 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28418 /* ./parser//parser.nit:8467 */
28419 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28420 if (UNTAG_Bool(REGB0)) {
28421 } else {
28422 nit_abort("Assert failed", NULL, LOCATE_parser, 8467);
28423 }
28424 /* ./parser//parser.nit:8468 */
28425 fra.me.REG[3] = NEW_ASimpleClosureId_parser_prod___ASimpleClosureId___init_asimpleclosureid(fra.me.REG[3]);
28426 /* ./parser//parser.nit:8471 */
28427 fra.me.REG[2] = fra.me.REG[3];
28428 /* ./parser//parser.nit:8472 */
28429 REGB0 = TAG_Bool(ATTR_parser___ReduceAction251____goto(fra.me.REG[0])!=NIT_NULL);
28430 if (UNTAG_Bool(REGB0)) {
28431 } else {
28432 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8472);
28433 }
28434 REGB0 = ATTR_parser___ReduceAction251____goto(fra.me.REG[0]);
28435 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28436 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28437 stack_frame_head = fra.me.prev;
28438 return;
28439 }
28440 void parser___ReduceAction251___init(val_t p0, val_t p1, int* init_table){
28441 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction251].i;
28442 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28443 val_t REGB0;
28444 val_t tmp;
28445 if (init_table[itpos245]) return;
28446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28447 fra.me.file = LOCATE_parser;
28448 fra.me.line = 8475;
28449 fra.me.meth = LOCATE_parser___ReduceAction251___init;
28450 fra.me.has_broke = 0;
28451 fra.me.REG_size = 2;
28452 fra.me.REG[0] = NIT_NULL;
28453 fra.me.REG[1] = NIT_NULL;
28454 fra.me.REG[0] = p0;
28455 REGB0 = p1;
28456 /* ./parser//parser.nit:8475 */
28457 fra.me.REG[1] = fra.me.REG[0];
28458 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28459 ATTR_parser___ReduceAction251____goto(fra.me.REG[1]) = REGB0;
28460 stack_frame_head = fra.me.prev;
28461 init_table[itpos245] = 1;
28462 return;
28463 }
28464 void parser___ReduceAction252___action(val_t p0, val_t p1){
28465 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28466 val_t REGB0;
28467 val_t tmp;
28468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28469 fra.me.file = LOCATE_parser;
28470 fra.me.line = 8479;
28471 fra.me.meth = LOCATE_parser___ReduceAction252___action;
28472 fra.me.has_broke = 0;
28473 fra.me.REG_size = 4;
28474 fra.me.REG[0] = NIT_NULL;
28475 fra.me.REG[1] = NIT_NULL;
28476 fra.me.REG[2] = NIT_NULL;
28477 fra.me.REG[3] = NIT_NULL;
28478 fra.me.REG[0] = p0;
28479 fra.me.REG[1] = p1;
28480 /* ./parser//parser.nit:8481 */
28481 fra.me.REG[2] = NIT_NULL;
28482 /* ./parser//parser.nit:8482 */
28483 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28484 /* ./parser//parser.nit:8484 */
28485 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwbreak, ID_TKwbreak)) /*cast nullable TKwbreak*/;
28486 if (UNTAG_Bool(REGB0)) {
28487 } else {
28488 nit_abort("Assert failed", NULL, LOCATE_parser, 8484);
28489 }
28490 /* ./parser//parser.nit:8485 */
28491 fra.me.REG[3] = NEW_ABreakClosureId_parser_prod___ABreakClosureId___init_abreakclosureid(fra.me.REG[3]);
28492 /* ./parser//parser.nit:8488 */
28493 fra.me.REG[2] = fra.me.REG[3];
28494 /* ./parser//parser.nit:8489 */
28495 REGB0 = TAG_Bool(ATTR_parser___ReduceAction252____goto(fra.me.REG[0])!=NIT_NULL);
28496 if (UNTAG_Bool(REGB0)) {
28497 } else {
28498 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8489);
28499 }
28500 REGB0 = ATTR_parser___ReduceAction252____goto(fra.me.REG[0]);
28501 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28502 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28503 stack_frame_head = fra.me.prev;
28504 return;
28505 }
28506 void parser___ReduceAction252___init(val_t p0, val_t p1, int* init_table){
28507 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction252].i;
28508 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28509 val_t REGB0;
28510 val_t tmp;
28511 if (init_table[itpos246]) return;
28512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28513 fra.me.file = LOCATE_parser;
28514 fra.me.line = 8492;
28515 fra.me.meth = LOCATE_parser___ReduceAction252___init;
28516 fra.me.has_broke = 0;
28517 fra.me.REG_size = 2;
28518 fra.me.REG[0] = NIT_NULL;
28519 fra.me.REG[1] = NIT_NULL;
28520 fra.me.REG[0] = p0;
28521 REGB0 = p1;
28522 /* ./parser//parser.nit:8492 */
28523 fra.me.REG[1] = fra.me.REG[0];
28524 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28525 ATTR_parser___ReduceAction252____goto(fra.me.REG[1]) = REGB0;
28526 stack_frame_head = fra.me.prev;
28527 init_table[itpos246] = 1;
28528 return;
28529 }
28530 void parser___ReduceAction253___action(val_t p0, val_t p1){
28531 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28532 val_t REGB0;
28533 val_t tmp;
28534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28535 fra.me.file = LOCATE_parser;
28536 fra.me.line = 8496;
28537 fra.me.meth = LOCATE_parser___ReduceAction253___action;
28538 fra.me.has_broke = 0;
28539 fra.me.REG_size = 4;
28540 fra.me.REG[0] = NIT_NULL;
28541 fra.me.REG[1] = NIT_NULL;
28542 fra.me.REG[2] = NIT_NULL;
28543 fra.me.REG[3] = NIT_NULL;
28544 fra.me.REG[0] = p0;
28545 fra.me.REG[1] = p1;
28546 /* ./parser//parser.nit:8498 */
28547 fra.me.REG[2] = NIT_NULL;
28548 /* ./parser//parser.nit:8499 */
28549 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28550 /* ./parser//parser.nit:8501 */
28551 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28552 if (UNTAG_Bool(REGB0)) {
28553 } else {
28554 nit_abort("Assert failed", NULL, LOCATE_parser, 8501);
28555 }
28556 /* ./parser//parser.nit:8502 */
28557 fra.me.REG[3] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(NIT_NULL, NIT_NULL, fra.me.REG[3]);
28558 /* ./parser//parser.nit:8507 */
28559 fra.me.REG[2] = fra.me.REG[3];
28560 /* ./parser//parser.nit:8508 */
28561 REGB0 = TAG_Bool(ATTR_parser___ReduceAction253____goto(fra.me.REG[0])!=NIT_NULL);
28562 if (UNTAG_Bool(REGB0)) {
28563 } else {
28564 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8508);
28565 }
28566 REGB0 = ATTR_parser___ReduceAction253____goto(fra.me.REG[0]);
28567 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28568 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28569 stack_frame_head = fra.me.prev;
28570 return;
28571 }
28572 void parser___ReduceAction253___init(val_t p0, val_t p1, int* init_table){
28573 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction253].i;
28574 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28575 val_t REGB0;
28576 val_t tmp;
28577 if (init_table[itpos247]) return;
28578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28579 fra.me.file = LOCATE_parser;
28580 fra.me.line = 8511;
28581 fra.me.meth = LOCATE_parser___ReduceAction253___init;
28582 fra.me.has_broke = 0;
28583 fra.me.REG_size = 2;
28584 fra.me.REG[0] = NIT_NULL;
28585 fra.me.REG[1] = NIT_NULL;
28586 fra.me.REG[0] = p0;
28587 REGB0 = p1;
28588 /* ./parser//parser.nit:8511 */
28589 fra.me.REG[1] = fra.me.REG[0];
28590 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28591 ATTR_parser___ReduceAction253____goto(fra.me.REG[1]) = REGB0;
28592 stack_frame_head = fra.me.prev;
28593 init_table[itpos247] = 1;
28594 return;
28595 }
28596 void parser___ReduceAction254___action(val_t p0, val_t p1){
28597 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
28598 val_t REGB0;
28599 val_t tmp;
28600 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28601 fra.me.file = LOCATE_parser;
28602 fra.me.line = 8515;
28603 fra.me.meth = LOCATE_parser___ReduceAction254___action;
28604 fra.me.has_broke = 0;
28605 fra.me.REG_size = 5;
28606 fra.me.REG[0] = NIT_NULL;
28607 fra.me.REG[1] = NIT_NULL;
28608 fra.me.REG[2] = NIT_NULL;
28609 fra.me.REG[3] = NIT_NULL;
28610 fra.me.REG[4] = NIT_NULL;
28611 fra.me.REG[0] = p0;
28612 fra.me.REG[1] = p1;
28613 /* ./parser//parser.nit:8517 */
28614 fra.me.REG[2] = NIT_NULL;
28615 /* ./parser//parser.nit:8518 */
28616 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28617 /* ./parser//parser.nit:8519 */
28618 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28619 /* ./parser//parser.nit:8521 */
28620 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28621 if (UNTAG_Bool(REGB0)) {
28622 } else {
28623 nit_abort("Assert failed", NULL, LOCATE_parser, 8521);
28624 }
28625 /* ./parser//parser.nit:8523 */
28626 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28627 if (UNTAG_Bool(REGB0)) {
28628 } else {
28629 nit_abort("Assert failed", NULL, LOCATE_parser, 8523);
28630 }
28631 /* ./parser//parser.nit:8524 */
28632 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);
28633 /* ./parser//parser.nit:8531 */
28634 fra.me.REG[2] = fra.me.REG[3];
28635 /* ./parser//parser.nit:8532 */
28636 REGB0 = TAG_Bool(ATTR_parser___ReduceAction254____goto(fra.me.REG[0])!=NIT_NULL);
28637 if (UNTAG_Bool(REGB0)) {
28638 } else {
28639 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8532);
28640 }
28641 REGB0 = ATTR_parser___ReduceAction254____goto(fra.me.REG[0]);
28642 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28643 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28644 stack_frame_head = fra.me.prev;
28645 return;
28646 }
28647 void parser___ReduceAction254___init(val_t p0, val_t p1, int* init_table){
28648 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction254].i;
28649 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28650 val_t REGB0;
28651 val_t tmp;
28652 if (init_table[itpos248]) return;
28653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28654 fra.me.file = LOCATE_parser;
28655 fra.me.line = 8535;
28656 fra.me.meth = LOCATE_parser___ReduceAction254___init;
28657 fra.me.has_broke = 0;
28658 fra.me.REG_size = 2;
28659 fra.me.REG[0] = NIT_NULL;
28660 fra.me.REG[1] = NIT_NULL;
28661 fra.me.REG[0] = p0;
28662 REGB0 = p1;
28663 /* ./parser//parser.nit:8535 */
28664 fra.me.REG[1] = fra.me.REG[0];
28665 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28666 ATTR_parser___ReduceAction254____goto(fra.me.REG[1]) = REGB0;
28667 stack_frame_head = fra.me.prev;
28668 init_table[itpos248] = 1;
28669 return;
28670 }
28671 void parser___ReduceAction255___action(val_t p0, val_t p1){
28672 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28673 val_t REGB0;
28674 val_t tmp;
28675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28676 fra.me.file = LOCATE_parser;
28677 fra.me.line = 8539;
28678 fra.me.meth = LOCATE_parser___ReduceAction255___action;
28679 fra.me.has_broke = 0;
28680 fra.me.REG_size = 6;
28681 fra.me.REG[0] = NIT_NULL;
28682 fra.me.REG[1] = NIT_NULL;
28683 fra.me.REG[2] = NIT_NULL;
28684 fra.me.REG[3] = NIT_NULL;
28685 fra.me.REG[4] = NIT_NULL;
28686 fra.me.REG[5] = NIT_NULL;
28687 fra.me.REG[0] = p0;
28688 fra.me.REG[1] = p1;
28689 /* ./parser//parser.nit:8541 */
28690 fra.me.REG[2] = NIT_NULL;
28691 /* ./parser//parser.nit:8542 */
28692 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28693 /* ./parser//parser.nit:8543 */
28694 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28695 /* ./parser//parser.nit:8544 */
28696 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28697 /* ./parser//parser.nit:8546 */
28698 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28699 if (UNTAG_Bool(REGB0)) {
28700 } else {
28701 nit_abort("Assert failed", NULL, LOCATE_parser, 8546);
28702 }
28703 /* ./parser//parser.nit:8548 */
28704 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28705 if (UNTAG_Bool(REGB0)) {
28706 } else {
28707 nit_abort("Assert failed", NULL, LOCATE_parser, 8548);
28708 }
28709 /* ./parser//parser.nit:8550 */
28710 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
28711 if (UNTAG_Bool(REGB0)) {
28712 } else {
28713 nit_abort("Assert failed", NULL, LOCATE_parser, 8550);
28714 }
28715 /* ./parser//parser.nit:8551 */
28716 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);
28717 /* ./parser//parser.nit:8558 */
28718 fra.me.REG[2] = fra.me.REG[3];
28719 /* ./parser//parser.nit:8559 */
28720 REGB0 = TAG_Bool(ATTR_parser___ReduceAction255____goto(fra.me.REG[0])!=NIT_NULL);
28721 if (UNTAG_Bool(REGB0)) {
28722 } else {
28723 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8559);
28724 }
28725 REGB0 = ATTR_parser___ReduceAction255____goto(fra.me.REG[0]);
28726 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28727 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28728 stack_frame_head = fra.me.prev;
28729 return;
28730 }
28731 void parser___ReduceAction255___init(val_t p0, val_t p1, int* init_table){
28732 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction255].i;
28733 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28734 val_t REGB0;
28735 val_t tmp;
28736 if (init_table[itpos249]) return;
28737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28738 fra.me.file = LOCATE_parser;
28739 fra.me.line = 8562;
28740 fra.me.meth = LOCATE_parser___ReduceAction255___init;
28741 fra.me.has_broke = 0;
28742 fra.me.REG_size = 2;
28743 fra.me.REG[0] = NIT_NULL;
28744 fra.me.REG[1] = NIT_NULL;
28745 fra.me.REG[0] = p0;
28746 REGB0 = p1;
28747 /* ./parser//parser.nit:8562 */
28748 fra.me.REG[1] = fra.me.REG[0];
28749 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28750 ATTR_parser___ReduceAction255____goto(fra.me.REG[1]) = REGB0;
28751 stack_frame_head = fra.me.prev;
28752 init_table[itpos249] = 1;
28753 return;
28754 }
28755 void parser___ReduceAction256___action(val_t p0, val_t p1){
28756 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
28757 val_t REGB0;
28758 val_t tmp;
28759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28760 fra.me.file = LOCATE_parser;
28761 fra.me.line = 8566;
28762 fra.me.meth = LOCATE_parser___ReduceAction256___action;
28763 fra.me.has_broke = 0;
28764 fra.me.REG_size = 7;
28765 fra.me.REG[0] = NIT_NULL;
28766 fra.me.REG[1] = NIT_NULL;
28767 fra.me.REG[2] = NIT_NULL;
28768 fra.me.REG[3] = NIT_NULL;
28769 fra.me.REG[4] = NIT_NULL;
28770 fra.me.REG[5] = NIT_NULL;
28771 fra.me.REG[6] = NIT_NULL;
28772 fra.me.REG[0] = p0;
28773 fra.me.REG[1] = p1;
28774 /* ./parser//parser.nit:8568 */
28775 fra.me.REG[2] = NIT_NULL;
28776 /* ./parser//parser.nit:8569 */
28777 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28778 /* ./parser//parser.nit:8570 */
28779 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28780 /* ./parser//parser.nit:8571 */
28781 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28782 /* ./parser//parser.nit:8572 */
28783 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28784 /* ./parser//parser.nit:8573 */
28785 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28786 /* ./parser//parser.nit:8575 */
28787 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28788 if (UNTAG_Bool(REGB0)) {
28789 } else {
28790 nit_abort("Assert failed", NULL, LOCATE_parser, 8575);
28791 }
28792 /* ./parser//parser.nit:8577 */
28793 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28794 if (UNTAG_Bool(REGB0)) {
28795 } else {
28796 nit_abort("Assert failed", NULL, LOCATE_parser, 8577);
28797 }
28798 /* ./parser//parser.nit:8579 */
28799 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
28800 if (UNTAG_Bool(REGB0)) {
28801 } else {
28802 nit_abort("Assert failed", NULL, LOCATE_parser, 8579);
28803 }
28804 /* ./parser//parser.nit:8581 */
28805 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28806 if (UNTAG_Bool(REGB0)) {
28807 } else {
28808 nit_abort("Assert failed", NULL, LOCATE_parser, 8581);
28809 }
28810 /* ./parser//parser.nit:8582 */
28811 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]);
28812 /* ./parser//parser.nit:8589 */
28813 fra.me.REG[2] = fra.me.REG[3];
28814 /* ./parser//parser.nit:8590 */
28815 REGB0 = TAG_Bool(ATTR_parser___ReduceAction256____goto(fra.me.REG[0])!=NIT_NULL);
28816 if (UNTAG_Bool(REGB0)) {
28817 } else {
28818 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8590);
28819 }
28820 REGB0 = ATTR_parser___ReduceAction256____goto(fra.me.REG[0]);
28821 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28822 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28823 stack_frame_head = fra.me.prev;
28824 return;
28825 }
28826 void parser___ReduceAction256___init(val_t p0, val_t p1, int* init_table){
28827 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction256].i;
28828 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28829 val_t REGB0;
28830 val_t tmp;
28831 if (init_table[itpos250]) return;
28832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28833 fra.me.file = LOCATE_parser;
28834 fra.me.line = 8593;
28835 fra.me.meth = LOCATE_parser___ReduceAction256___init;
28836 fra.me.has_broke = 0;
28837 fra.me.REG_size = 2;
28838 fra.me.REG[0] = NIT_NULL;
28839 fra.me.REG[1] = NIT_NULL;
28840 fra.me.REG[0] = p0;
28841 REGB0 = p1;
28842 /* ./parser//parser.nit:8593 */
28843 fra.me.REG[1] = fra.me.REG[0];
28844 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28845 ATTR_parser___ReduceAction256____goto(fra.me.REG[1]) = REGB0;
28846 stack_frame_head = fra.me.prev;
28847 init_table[itpos250] = 1;
28848 return;
28849 }
28850 void parser___ReduceAction257___action(val_t p0, val_t p1){
28851 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
28852 val_t REGB0;
28853 val_t tmp;
28854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28855 fra.me.file = LOCATE_parser;
28856 fra.me.line = 8597;
28857 fra.me.meth = LOCATE_parser___ReduceAction257___action;
28858 fra.me.has_broke = 0;
28859 fra.me.REG_size = 8;
28860 fra.me.REG[0] = NIT_NULL;
28861 fra.me.REG[1] = NIT_NULL;
28862 fra.me.REG[2] = NIT_NULL;
28863 fra.me.REG[3] = NIT_NULL;
28864 fra.me.REG[4] = NIT_NULL;
28865 fra.me.REG[5] = NIT_NULL;
28866 fra.me.REG[6] = NIT_NULL;
28867 fra.me.REG[7] = NIT_NULL;
28868 fra.me.REG[0] = p0;
28869 fra.me.REG[1] = p1;
28870 /* ./parser//parser.nit:8599 */
28871 fra.me.REG[2] = NIT_NULL;
28872 /* ./parser//parser.nit:8600 */
28873 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28874 /* ./parser//parser.nit:8601 */
28875 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28876 /* ./parser//parser.nit:8602 */
28877 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28878 /* ./parser//parser.nit:8603 */
28879 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28880 /* ./parser//parser.nit:8604 */
28881 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28882 /* ./parser//parser.nit:8605 */
28883 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28884 /* ./parser//parser.nit:8607 */
28885 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwvar, ID_TKwvar)) /*cast nullable TKwvar*/;
28886 if (UNTAG_Bool(REGB0)) {
28887 } else {
28888 nit_abort("Assert failed", NULL, LOCATE_parser, 8607);
28889 }
28890 /* ./parser//parser.nit:8609 */
28891 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
28892 if (UNTAG_Bool(REGB0)) {
28893 } else {
28894 nit_abort("Assert failed", NULL, LOCATE_parser, 8609);
28895 }
28896 /* ./parser//parser.nit:8611 */
28897 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
28898 if (UNTAG_Bool(REGB0)) {
28899 } else {
28900 nit_abort("Assert failed", NULL, LOCATE_parser, 8611);
28901 }
28902 /* ./parser//parser.nit:8613 */
28903 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
28904 if (UNTAG_Bool(REGB0)) {
28905 } else {
28906 nit_abort("Assert failed", NULL, LOCATE_parser, 8613);
28907 }
28908 /* ./parser//parser.nit:8615 */
28909 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28910 if (UNTAG_Bool(REGB0)) {
28911 } else {
28912 nit_abort("Assert failed", NULL, LOCATE_parser, 8615);
28913 }
28914 /* ./parser//parser.nit:8616 */
28915 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]);
28916 /* ./parser//parser.nit:8623 */
28917 fra.me.REG[2] = fra.me.REG[3];
28918 /* ./parser//parser.nit:8624 */
28919 REGB0 = TAG_Bool(ATTR_parser___ReduceAction257____goto(fra.me.REG[0])!=NIT_NULL);
28920 if (UNTAG_Bool(REGB0)) {
28921 } else {
28922 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8624);
28923 }
28924 REGB0 = ATTR_parser___ReduceAction257____goto(fra.me.REG[0]);
28925 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
28926 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
28927 stack_frame_head = fra.me.prev;
28928 return;
28929 }
28930 void parser___ReduceAction257___init(val_t p0, val_t p1, int* init_table){
28931 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction257].i;
28932 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28933 val_t REGB0;
28934 val_t tmp;
28935 if (init_table[itpos251]) return;
28936 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28937 fra.me.file = LOCATE_parser;
28938 fra.me.line = 8627;
28939 fra.me.meth = LOCATE_parser___ReduceAction257___init;
28940 fra.me.has_broke = 0;
28941 fra.me.REG_size = 2;
28942 fra.me.REG[0] = NIT_NULL;
28943 fra.me.REG[1] = NIT_NULL;
28944 fra.me.REG[0] = p0;
28945 REGB0 = p1;
28946 /* ./parser//parser.nit:8627 */
28947 fra.me.REG[1] = fra.me.REG[0];
28948 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
28949 ATTR_parser___ReduceAction257____goto(fra.me.REG[1]) = REGB0;
28950 stack_frame_head = fra.me.prev;
28951 init_table[itpos251] = 1;
28952 return;
28953 }
28954 void parser___ReduceAction258___action(val_t p0, val_t p1){
28955 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
28956 val_t REGB0;
28957 val_t tmp;
28958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28959 fra.me.file = LOCATE_parser;
28960 fra.me.line = 8631;
28961 fra.me.meth = LOCATE_parser___ReduceAction258___action;
28962 fra.me.has_broke = 0;
28963 fra.me.REG_size = 7;
28964 fra.me.REG[0] = NIT_NULL;
28965 fra.me.REG[1] = NIT_NULL;
28966 fra.me.REG[2] = NIT_NULL;
28967 fra.me.REG[3] = NIT_NULL;
28968 fra.me.REG[4] = NIT_NULL;
28969 fra.me.REG[5] = NIT_NULL;
28970 fra.me.REG[6] = NIT_NULL;
28971 fra.me.REG[0] = p0;
28972 fra.me.REG[1] = p1;
28973 /* ./parser//parser.nit:8633 */
28974 fra.me.REG[2] = NIT_NULL;
28975 /* ./parser//parser.nit:8634 */
28976 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28977 /* ./parser//parser.nit:8635 */
28978 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28979 /* ./parser//parser.nit:8636 */
28980 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28981 /* ./parser//parser.nit:8637 */
28982 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28983 /* ./parser//parser.nit:8638 */
28984 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28985 /* ./parser//parser.nit:8639 */
28986 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
28987 /* ./parser//parser.nit:8641 */
28988 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
28989 if (UNTAG_Bool(REGB0)) {
28990 } else {
28991 nit_abort("Assert failed", NULL, LOCATE_parser, 8641);
28992 }
28993 /* ./parser//parser.nit:8643 */
28994 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
28995 if (UNTAG_Bool(REGB0)) {
28996 } else {
28997 nit_abort("Assert failed", NULL, LOCATE_parser, 8643);
28998 }
28999 /* ./parser//parser.nit:8645 */
29000 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29001 if (UNTAG_Bool(REGB0)) {
29002 } else {
29003 nit_abort("Assert failed", NULL, LOCATE_parser, 8645);
29004 }
29005 /* ./parser//parser.nit:8647 */
29006 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29007 if (UNTAG_Bool(REGB0)) {
29008 } else {
29009 nit_abort("Assert failed", NULL, LOCATE_parser, 8647);
29010 }
29011 /* ./parser//parser.nit:8648 */
29012 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]);
29013 /* ./parser//parser.nit:8654 */
29014 fra.me.REG[2] = fra.me.REG[3];
29015 /* ./parser//parser.nit:8655 */
29016 REGB0 = TAG_Bool(ATTR_parser___ReduceAction258____goto(fra.me.REG[0])!=NIT_NULL);
29017 if (UNTAG_Bool(REGB0)) {
29018 } else {
29019 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8655);
29020 }
29021 REGB0 = ATTR_parser___ReduceAction258____goto(fra.me.REG[0]);
29022 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29023 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29024 stack_frame_head = fra.me.prev;
29025 return;
29026 }
29027 void parser___ReduceAction258___init(val_t p0, val_t p1, int* init_table){
29028 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction258].i;
29029 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29030 val_t REGB0;
29031 val_t tmp;
29032 if (init_table[itpos252]) return;
29033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29034 fra.me.file = LOCATE_parser;
29035 fra.me.line = 8658;
29036 fra.me.meth = LOCATE_parser___ReduceAction258___init;
29037 fra.me.has_broke = 0;
29038 fra.me.REG_size = 2;
29039 fra.me.REG[0] = NIT_NULL;
29040 fra.me.REG[1] = NIT_NULL;
29041 fra.me.REG[0] = p0;
29042 REGB0 = p1;
29043 /* ./parser//parser.nit:8658 */
29044 fra.me.REG[1] = fra.me.REG[0];
29045 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29046 ATTR_parser___ReduceAction258____goto(fra.me.REG[1]) = REGB0;
29047 stack_frame_head = fra.me.prev;
29048 init_table[itpos252] = 1;
29049 return;
29050 }
29051 void parser___ReduceAction259___action(val_t p0, val_t p1){
29052 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29053 val_t REGB0;
29054 val_t tmp;
29055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29056 fra.me.file = LOCATE_parser;
29057 fra.me.line = 8662;
29058 fra.me.meth = LOCATE_parser___ReduceAction259___action;
29059 fra.me.has_broke = 0;
29060 fra.me.REG_size = 7;
29061 fra.me.REG[0] = NIT_NULL;
29062 fra.me.REG[1] = NIT_NULL;
29063 fra.me.REG[2] = NIT_NULL;
29064 fra.me.REG[3] = NIT_NULL;
29065 fra.me.REG[4] = NIT_NULL;
29066 fra.me.REG[5] = NIT_NULL;
29067 fra.me.REG[6] = NIT_NULL;
29068 fra.me.REG[0] = p0;
29069 fra.me.REG[1] = p1;
29070 /* ./parser//parser.nit:8664 */
29071 fra.me.REG[2] = NIT_NULL;
29072 /* ./parser//parser.nit:8665 */
29073 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29074 /* ./parser//parser.nit:8666 */
29075 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29076 /* ./parser//parser.nit:8667 */
29077 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29078 /* ./parser//parser.nit:8668 */
29079 fra.me.REG[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29080 /* ./parser//parser.nit:8671 */
29081 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
29082 if (UNTAG_Bool(REGB0)) {
29083 } else {
29084 nit_abort("Assert failed", NULL, LOCATE_parser, 8671);
29085 }
29086 /* ./parser//parser.nit:8673 */
29087 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29088 if (UNTAG_Bool(REGB0)) {
29089 } else {
29090 nit_abort("Assert failed", NULL, LOCATE_parser, 8673);
29091 }
29092 /* ./parser//parser.nit:8675 */
29093 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29094 if (UNTAG_Bool(REGB0)) {
29095 } else {
29096 nit_abort("Assert failed", NULL, LOCATE_parser, 8675);
29097 }
29098 /* ./parser//parser.nit:8676 */
29099 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]);
29100 /* ./parser//parser.nit:8682 */
29101 fra.me.REG[2] = fra.me.REG[3];
29102 /* ./parser//parser.nit:8683 */
29103 REGB0 = TAG_Bool(ATTR_parser___ReduceAction259____goto(fra.me.REG[0])!=NIT_NULL);
29104 if (UNTAG_Bool(REGB0)) {
29105 } else {
29106 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8683);
29107 }
29108 REGB0 = ATTR_parser___ReduceAction259____goto(fra.me.REG[0]);
29109 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29110 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29111 stack_frame_head = fra.me.prev;
29112 return;
29113 }
29114 void parser___ReduceAction259___init(val_t p0, val_t p1, int* init_table){
29115 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction259].i;
29116 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29117 val_t REGB0;
29118 val_t tmp;
29119 if (init_table[itpos253]) return;
29120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29121 fra.me.file = LOCATE_parser;
29122 fra.me.line = 8686;
29123 fra.me.meth = LOCATE_parser___ReduceAction259___init;
29124 fra.me.has_broke = 0;
29125 fra.me.REG_size = 2;
29126 fra.me.REG[0] = NIT_NULL;
29127 fra.me.REG[1] = NIT_NULL;
29128 fra.me.REG[0] = p0;
29129 REGB0 = p1;
29130 /* ./parser//parser.nit:8686 */
29131 fra.me.REG[1] = fra.me.REG[0];
29132 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29133 ATTR_parser___ReduceAction259____goto(fra.me.REG[1]) = REGB0;
29134 stack_frame_head = fra.me.prev;
29135 init_table[itpos253] = 1;
29136 return;
29137 }
29138 void parser___ReduceAction260___action(val_t p0, val_t p1){
29139 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29140 val_t REGB0;
29141 val_t tmp;
29142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29143 fra.me.file = LOCATE_parser;
29144 fra.me.line = 8690;
29145 fra.me.meth = LOCATE_parser___ReduceAction260___action;
29146 fra.me.has_broke = 0;
29147 fra.me.REG_size = 9;
29148 fra.me.REG[0] = NIT_NULL;
29149 fra.me.REG[1] = NIT_NULL;
29150 fra.me.REG[2] = NIT_NULL;
29151 fra.me.REG[3] = NIT_NULL;
29152 fra.me.REG[4] = NIT_NULL;
29153 fra.me.REG[5] = NIT_NULL;
29154 fra.me.REG[6] = NIT_NULL;
29155 fra.me.REG[7] = NIT_NULL;
29156 fra.me.REG[8] = NIT_NULL;
29157 fra.me.REG[0] = p0;
29158 fra.me.REG[1] = p1;
29159 /* ./parser//parser.nit:8692 */
29160 fra.me.REG[2] = NIT_NULL;
29161 /* ./parser//parser.nit:8693 */
29162 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29163 /* ./parser//parser.nit:8694 */
29164 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29165 /* ./parser//parser.nit:8695 */
29166 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29167 /* ./parser//parser.nit:8696 */
29168 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29169 /* ./parser//parser.nit:8697 */
29170 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29171 /* ./parser//parser.nit:8698 */
29172 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29173 /* ./parser//parser.nit:8699 */
29174 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29175 /* ./parser//parser.nit:8700 */
29176 fra.me.REG[8] = NEW_Array_array___Array___init();
29177 /* ./parser//parser.nit:8702 */
29178 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29179 if (UNTAG_Bool(REGB0)) {
29180 } else {
29181 nit_abort("Assert failed", NULL, LOCATE_parser, 8702);
29182 }
29183 /* ./parser//parser.nit:8704 */
29184 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29185 if (UNTAG_Bool(REGB0)) {
29186 } else {
29187 nit_abort("Assert failed", NULL, LOCATE_parser, 8704);
29188 }
29189 /* ./parser//parser.nit:8706 */
29190 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29191 if (UNTAG_Bool(REGB0)) {
29192 } else {
29193 nit_abort("Assert failed", NULL, LOCATE_parser, 8706);
29194 }
29195 /* ./parser//parser.nit:8707 */
29196 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
29197 fra.me.REG[8] = fra.me.REG[5];
29198 /* ./parser//parser.nit:8709 */
29199 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29200 if (UNTAG_Bool(REGB0)) {
29201 } else {
29202 nit_abort("Assert failed", NULL, LOCATE_parser, 8709);
29203 }
29204 /* ./parser//parser.nit:8711 */
29205 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29206 if (UNTAG_Bool(REGB0)) {
29207 } else {
29208 nit_abort("Assert failed", NULL, LOCATE_parser, 8711);
29209 }
29210 /* ./parser//parser.nit:8712 */
29211 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]);
29212 /* ./parser//parser.nit:8719 */
29213 fra.me.REG[2] = fra.me.REG[3];
29214 /* ./parser//parser.nit:8720 */
29215 REGB0 = TAG_Bool(ATTR_parser___ReduceAction260____goto(fra.me.REG[0])!=NIT_NULL);
29216 if (UNTAG_Bool(REGB0)) {
29217 } else {
29218 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8720);
29219 }
29220 REGB0 = ATTR_parser___ReduceAction260____goto(fra.me.REG[0]);
29221 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29222 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29223 stack_frame_head = fra.me.prev;
29224 return;
29225 }
29226 void parser___ReduceAction260___init(val_t p0, val_t p1, int* init_table){
29227 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction260].i;
29228 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29229 val_t REGB0;
29230 val_t tmp;
29231 if (init_table[itpos254]) return;
29232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29233 fra.me.file = LOCATE_parser;
29234 fra.me.line = 8723;
29235 fra.me.meth = LOCATE_parser___ReduceAction260___init;
29236 fra.me.has_broke = 0;
29237 fra.me.REG_size = 2;
29238 fra.me.REG[0] = NIT_NULL;
29239 fra.me.REG[1] = NIT_NULL;
29240 fra.me.REG[0] = p0;
29241 REGB0 = p1;
29242 /* ./parser//parser.nit:8723 */
29243 fra.me.REG[1] = fra.me.REG[0];
29244 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29245 ATTR_parser___ReduceAction260____goto(fra.me.REG[1]) = REGB0;
29246 stack_frame_head = fra.me.prev;
29247 init_table[itpos254] = 1;
29248 return;
29249 }
29250 void parser___ReduceAction261___action(val_t p0, val_t p1){
29251 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29252 val_t REGB0;
29253 val_t tmp;
29254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29255 fra.me.file = LOCATE_parser;
29256 fra.me.line = 8727;
29257 fra.me.meth = LOCATE_parser___ReduceAction261___action;
29258 fra.me.has_broke = 0;
29259 fra.me.REG_size = 9;
29260 fra.me.REG[0] = NIT_NULL;
29261 fra.me.REG[1] = NIT_NULL;
29262 fra.me.REG[2] = NIT_NULL;
29263 fra.me.REG[3] = NIT_NULL;
29264 fra.me.REG[4] = NIT_NULL;
29265 fra.me.REG[5] = NIT_NULL;
29266 fra.me.REG[6] = NIT_NULL;
29267 fra.me.REG[7] = NIT_NULL;
29268 fra.me.REG[8] = NIT_NULL;
29269 fra.me.REG[0] = p0;
29270 fra.me.REG[1] = p1;
29271 /* ./parser//parser.nit:8729 */
29272 fra.me.REG[2] = NIT_NULL;
29273 /* ./parser//parser.nit:8730 */
29274 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29275 /* ./parser//parser.nit:8731 */
29276 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29277 /* ./parser//parser.nit:8732 */
29278 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29279 /* ./parser//parser.nit:8733 */
29280 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29281 /* ./parser//parser.nit:8734 */
29282 fra.me.REG[7] = NEW_Array_array___Array___init();
29283 /* ./parser//parser.nit:8735 */
29284 fra.me.REG[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29285 /* ./parser//parser.nit:8738 */
29286 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29287 if (UNTAG_Bool(REGB0)) {
29288 } else {
29289 nit_abort("Assert failed", NULL, LOCATE_parser, 8738);
29290 }
29291 /* ./parser//parser.nit:8740 */
29292 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29293 if (UNTAG_Bool(REGB0)) {
29294 } else {
29295 nit_abort("Assert failed", NULL, LOCATE_parser, 8740);
29296 }
29297 /* ./parser//parser.nit:8741 */
29298 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29299 fra.me.REG[7] = fra.me.REG[5];
29300 /* ./parser//parser.nit:8743 */
29301 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29302 if (UNTAG_Bool(REGB0)) {
29303 } else {
29304 nit_abort("Assert failed", NULL, LOCATE_parser, 8743);
29305 }
29306 /* ./parser//parser.nit:8745 */
29307 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29308 if (UNTAG_Bool(REGB0)) {
29309 } else {
29310 nit_abort("Assert failed", NULL, LOCATE_parser, 8745);
29311 }
29312 /* ./parser//parser.nit:8746 */
29313 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]);
29314 /* ./parser//parser.nit:8753 */
29315 fra.me.REG[2] = fra.me.REG[3];
29316 /* ./parser//parser.nit:8754 */
29317 REGB0 = TAG_Bool(ATTR_parser___ReduceAction261____goto(fra.me.REG[0])!=NIT_NULL);
29318 if (UNTAG_Bool(REGB0)) {
29319 } else {
29320 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8754);
29321 }
29322 REGB0 = ATTR_parser___ReduceAction261____goto(fra.me.REG[0]);
29323 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29324 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29325 stack_frame_head = fra.me.prev;
29326 return;
29327 }
29328 void parser___ReduceAction261___init(val_t p0, val_t p1, int* init_table){
29329 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction261].i;
29330 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29331 val_t REGB0;
29332 val_t tmp;
29333 if (init_table[itpos255]) return;
29334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29335 fra.me.file = LOCATE_parser;
29336 fra.me.line = 8757;
29337 fra.me.meth = LOCATE_parser___ReduceAction261___init;
29338 fra.me.has_broke = 0;
29339 fra.me.REG_size = 2;
29340 fra.me.REG[0] = NIT_NULL;
29341 fra.me.REG[1] = NIT_NULL;
29342 fra.me.REG[0] = p0;
29343 REGB0 = p1;
29344 /* ./parser//parser.nit:8757 */
29345 fra.me.REG[1] = fra.me.REG[0];
29346 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29347 ATTR_parser___ReduceAction261____goto(fra.me.REG[1]) = REGB0;
29348 stack_frame_head = fra.me.prev;
29349 init_table[itpos255] = 1;
29350 return;
29351 }
29352 void parser___ReduceAction262___action(val_t p0, val_t p1){
29353 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
29354 val_t REGB0;
29355 val_t tmp;
29356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29357 fra.me.file = LOCATE_parser;
29358 fra.me.line = 8761;
29359 fra.me.meth = LOCATE_parser___ReduceAction262___action;
29360 fra.me.has_broke = 0;
29361 fra.me.REG_size = 8;
29362 fra.me.REG[0] = NIT_NULL;
29363 fra.me.REG[1] = NIT_NULL;
29364 fra.me.REG[2] = NIT_NULL;
29365 fra.me.REG[3] = NIT_NULL;
29366 fra.me.REG[4] = NIT_NULL;
29367 fra.me.REG[5] = NIT_NULL;
29368 fra.me.REG[6] = NIT_NULL;
29369 fra.me.REG[7] = NIT_NULL;
29370 fra.me.REG[0] = p0;
29371 fra.me.REG[1] = p1;
29372 /* ./parser//parser.nit:8763 */
29373 fra.me.REG[2] = NIT_NULL;
29374 /* ./parser//parser.nit:8764 */
29375 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29376 /* ./parser//parser.nit:8765 */
29377 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29378 /* ./parser//parser.nit:8766 */
29379 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29380 /* ./parser//parser.nit:8767 */
29381 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29382 /* ./parser//parser.nit:8768 */
29383 fra.me.REG[7] = NEW_Array_array___Array___init();
29384 /* ./parser//parser.nit:8770 */
29385 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29386 if (UNTAG_Bool(REGB0)) {
29387 } else {
29388 nit_abort("Assert failed", NULL, LOCATE_parser, 8770);
29389 }
29390 /* ./parser//parser.nit:8772 */
29391 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29392 if (UNTAG_Bool(REGB0)) {
29393 } else {
29394 nit_abort("Assert failed", NULL, LOCATE_parser, 8772);
29395 }
29396 /* ./parser//parser.nit:8773 */
29397 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29398 fra.me.REG[7] = fra.me.REG[5];
29399 /* ./parser//parser.nit:8775 */
29400 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TAssign, ID_TAssign)) /*cast nullable TAssign*/;
29401 if (UNTAG_Bool(REGB0)) {
29402 } else {
29403 nit_abort("Assert failed", NULL, LOCATE_parser, 8775);
29404 }
29405 /* ./parser//parser.nit:8777 */
29406 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29407 if (UNTAG_Bool(REGB0)) {
29408 } else {
29409 nit_abort("Assert failed", NULL, LOCATE_parser, 8777);
29410 }
29411 /* ./parser//parser.nit:8778 */
29412 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]);
29413 /* ./parser//parser.nit:8784 */
29414 fra.me.REG[2] = fra.me.REG[3];
29415 /* ./parser//parser.nit:8785 */
29416 REGB0 = TAG_Bool(ATTR_parser___ReduceAction262____goto(fra.me.REG[0])!=NIT_NULL);
29417 if (UNTAG_Bool(REGB0)) {
29418 } else {
29419 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8785);
29420 }
29421 REGB0 = ATTR_parser___ReduceAction262____goto(fra.me.REG[0]);
29422 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29423 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29424 stack_frame_head = fra.me.prev;
29425 return;
29426 }
29427 void parser___ReduceAction262___init(val_t p0, val_t p1, int* init_table){
29428 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction262].i;
29429 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29430 val_t REGB0;
29431 val_t tmp;
29432 if (init_table[itpos256]) return;
29433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29434 fra.me.file = LOCATE_parser;
29435 fra.me.line = 8788;
29436 fra.me.meth = LOCATE_parser___ReduceAction262___init;
29437 fra.me.has_broke = 0;
29438 fra.me.REG_size = 2;
29439 fra.me.REG[0] = NIT_NULL;
29440 fra.me.REG[1] = NIT_NULL;
29441 fra.me.REG[0] = p0;
29442 REGB0 = p1;
29443 /* ./parser//parser.nit:8788 */
29444 fra.me.REG[1] = fra.me.REG[0];
29445 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29446 ATTR_parser___ReduceAction262____goto(fra.me.REG[1]) = REGB0;
29447 stack_frame_head = fra.me.prev;
29448 init_table[itpos256] = 1;
29449 return;
29450 }
29451 void parser___ReduceAction263___action(val_t p0, val_t p1){
29452 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29453 val_t REGB0;
29454 val_t tmp;
29455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29456 fra.me.file = LOCATE_parser;
29457 fra.me.line = 8792;
29458 fra.me.meth = LOCATE_parser___ReduceAction263___action;
29459 fra.me.has_broke = 0;
29460 fra.me.REG_size = 7;
29461 fra.me.REG[0] = NIT_NULL;
29462 fra.me.REG[1] = NIT_NULL;
29463 fra.me.REG[2] = NIT_NULL;
29464 fra.me.REG[3] = NIT_NULL;
29465 fra.me.REG[4] = NIT_NULL;
29466 fra.me.REG[5] = NIT_NULL;
29467 fra.me.REG[6] = NIT_NULL;
29468 fra.me.REG[0] = p0;
29469 fra.me.REG[1] = p1;
29470 /* ./parser//parser.nit:8794 */
29471 fra.me.REG[2] = NIT_NULL;
29472 /* ./parser//parser.nit:8795 */
29473 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29474 /* ./parser//parser.nit:8796 */
29475 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29476 /* ./parser//parser.nit:8797 */
29477 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29478 /* ./parser//parser.nit:8798 */
29479 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29480 /* ./parser//parser.nit:8799 */
29481 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29482 /* ./parser//parser.nit:8800 */
29483 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29484 /* ./parser//parser.nit:8802 */
29485 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29486 if (UNTAG_Bool(REGB0)) {
29487 } else {
29488 nit_abort("Assert failed", NULL, LOCATE_parser, 8802);
29489 }
29490 /* ./parser//parser.nit:8804 */
29491 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
29492 if (UNTAG_Bool(REGB0)) {
29493 } else {
29494 nit_abort("Assert failed", NULL, LOCATE_parser, 8804);
29495 }
29496 /* ./parser//parser.nit:8806 */
29497 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29498 if (UNTAG_Bool(REGB0)) {
29499 } else {
29500 nit_abort("Assert failed", NULL, LOCATE_parser, 8806);
29501 }
29502 /* ./parser//parser.nit:8808 */
29503 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29504 if (UNTAG_Bool(REGB0)) {
29505 } else {
29506 nit_abort("Assert failed", NULL, LOCATE_parser, 8808);
29507 }
29508 /* ./parser//parser.nit:8809 */
29509 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]);
29510 /* ./parser//parser.nit:8815 */
29511 fra.me.REG[2] = fra.me.REG[3];
29512 /* ./parser//parser.nit:8816 */
29513 REGB0 = TAG_Bool(ATTR_parser___ReduceAction263____goto(fra.me.REG[0])!=NIT_NULL);
29514 if (UNTAG_Bool(REGB0)) {
29515 } else {
29516 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8816);
29517 }
29518 REGB0 = ATTR_parser___ReduceAction263____goto(fra.me.REG[0]);
29519 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29520 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29521 stack_frame_head = fra.me.prev;
29522 return;
29523 }
29524 void parser___ReduceAction263___init(val_t p0, val_t p1, int* init_table){
29525 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction263].i;
29526 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29527 val_t REGB0;
29528 val_t tmp;
29529 if (init_table[itpos257]) return;
29530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29531 fra.me.file = LOCATE_parser;
29532 fra.me.line = 8819;
29533 fra.me.meth = LOCATE_parser___ReduceAction263___init;
29534 fra.me.has_broke = 0;
29535 fra.me.REG_size = 2;
29536 fra.me.REG[0] = NIT_NULL;
29537 fra.me.REG[1] = NIT_NULL;
29538 fra.me.REG[0] = p0;
29539 REGB0 = p1;
29540 /* ./parser//parser.nit:8819 */
29541 fra.me.REG[1] = fra.me.REG[0];
29542 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29543 ATTR_parser___ReduceAction263____goto(fra.me.REG[1]) = REGB0;
29544 stack_frame_head = fra.me.prev;
29545 init_table[itpos257] = 1;
29546 return;
29547 }
29548 void parser___ReduceAction264___action(val_t p0, val_t p1){
29549 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29550 val_t REGB0;
29551 val_t tmp;
29552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29553 fra.me.file = LOCATE_parser;
29554 fra.me.line = 8823;
29555 fra.me.meth = LOCATE_parser___ReduceAction264___action;
29556 fra.me.has_broke = 0;
29557 fra.me.REG_size = 7;
29558 fra.me.REG[0] = NIT_NULL;
29559 fra.me.REG[1] = NIT_NULL;
29560 fra.me.REG[2] = NIT_NULL;
29561 fra.me.REG[3] = NIT_NULL;
29562 fra.me.REG[4] = NIT_NULL;
29563 fra.me.REG[5] = NIT_NULL;
29564 fra.me.REG[6] = NIT_NULL;
29565 fra.me.REG[0] = p0;
29566 fra.me.REG[1] = p1;
29567 /* ./parser//parser.nit:8825 */
29568 fra.me.REG[2] = NIT_NULL;
29569 /* ./parser//parser.nit:8826 */
29570 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29571 /* ./parser//parser.nit:8827 */
29572 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29573 /* ./parser//parser.nit:8828 */
29574 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29575 /* ./parser//parser.nit:8829 */
29576 fra.me.REG[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29577 /* ./parser//parser.nit:8832 */
29578 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
29579 if (UNTAG_Bool(REGB0)) {
29580 } else {
29581 nit_abort("Assert failed", NULL, LOCATE_parser, 8832);
29582 }
29583 /* ./parser//parser.nit:8834 */
29584 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29585 if (UNTAG_Bool(REGB0)) {
29586 } else {
29587 nit_abort("Assert failed", NULL, LOCATE_parser, 8834);
29588 }
29589 /* ./parser//parser.nit:8836 */
29590 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29591 if (UNTAG_Bool(REGB0)) {
29592 } else {
29593 nit_abort("Assert failed", NULL, LOCATE_parser, 8836);
29594 }
29595 /* ./parser//parser.nit:8837 */
29596 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]);
29597 /* ./parser//parser.nit:8843 */
29598 fra.me.REG[2] = fra.me.REG[3];
29599 /* ./parser//parser.nit:8844 */
29600 REGB0 = TAG_Bool(ATTR_parser___ReduceAction264____goto(fra.me.REG[0])!=NIT_NULL);
29601 if (UNTAG_Bool(REGB0)) {
29602 } else {
29603 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8844);
29604 }
29605 REGB0 = ATTR_parser___ReduceAction264____goto(fra.me.REG[0]);
29606 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29607 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29608 stack_frame_head = fra.me.prev;
29609 return;
29610 }
29611 void parser___ReduceAction264___init(val_t p0, val_t p1, int* init_table){
29612 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction264].i;
29613 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29614 val_t REGB0;
29615 val_t tmp;
29616 if (init_table[itpos258]) return;
29617 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29618 fra.me.file = LOCATE_parser;
29619 fra.me.line = 8847;
29620 fra.me.meth = LOCATE_parser___ReduceAction264___init;
29621 fra.me.has_broke = 0;
29622 fra.me.REG_size = 2;
29623 fra.me.REG[0] = NIT_NULL;
29624 fra.me.REG[1] = NIT_NULL;
29625 fra.me.REG[0] = p0;
29626 REGB0 = p1;
29627 /* ./parser//parser.nit:8847 */
29628 fra.me.REG[1] = fra.me.REG[0];
29629 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29630 ATTR_parser___ReduceAction264____goto(fra.me.REG[1]) = REGB0;
29631 stack_frame_head = fra.me.prev;
29632 init_table[itpos258] = 1;
29633 return;
29634 }
29635 void parser___ReduceAction265___action(val_t p0, val_t p1){
29636 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29637 val_t REGB0;
29638 val_t tmp;
29639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29640 fra.me.file = LOCATE_parser;
29641 fra.me.line = 8851;
29642 fra.me.meth = LOCATE_parser___ReduceAction265___action;
29643 fra.me.has_broke = 0;
29644 fra.me.REG_size = 9;
29645 fra.me.REG[0] = NIT_NULL;
29646 fra.me.REG[1] = NIT_NULL;
29647 fra.me.REG[2] = NIT_NULL;
29648 fra.me.REG[3] = NIT_NULL;
29649 fra.me.REG[4] = NIT_NULL;
29650 fra.me.REG[5] = NIT_NULL;
29651 fra.me.REG[6] = NIT_NULL;
29652 fra.me.REG[7] = NIT_NULL;
29653 fra.me.REG[8] = NIT_NULL;
29654 fra.me.REG[0] = p0;
29655 fra.me.REG[1] = p1;
29656 /* ./parser//parser.nit:8853 */
29657 fra.me.REG[2] = NIT_NULL;
29658 /* ./parser//parser.nit:8854 */
29659 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29660 /* ./parser//parser.nit:8855 */
29661 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29662 /* ./parser//parser.nit:8856 */
29663 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29664 /* ./parser//parser.nit:8857 */
29665 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29666 /* ./parser//parser.nit:8858 */
29667 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29668 /* ./parser//parser.nit:8859 */
29669 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29670 /* ./parser//parser.nit:8860 */
29671 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29672 /* ./parser//parser.nit:8861 */
29673 fra.me.REG[8] = NEW_Array_array___Array___init();
29674 /* ./parser//parser.nit:8863 */
29675 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29676 if (UNTAG_Bool(REGB0)) {
29677 } else {
29678 nit_abort("Assert failed", NULL, LOCATE_parser, 8863);
29679 }
29680 /* ./parser//parser.nit:8865 */
29681 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29682 if (UNTAG_Bool(REGB0)) {
29683 } else {
29684 nit_abort("Assert failed", NULL, LOCATE_parser, 8865);
29685 }
29686 /* ./parser//parser.nit:8867 */
29687 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29688 if (UNTAG_Bool(REGB0)) {
29689 } else {
29690 nit_abort("Assert failed", NULL, LOCATE_parser, 8867);
29691 }
29692 /* ./parser//parser.nit:8868 */
29693 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
29694 fra.me.REG[8] = fra.me.REG[5];
29695 /* ./parser//parser.nit:8870 */
29696 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29697 if (UNTAG_Bool(REGB0)) {
29698 } else {
29699 nit_abort("Assert failed", NULL, LOCATE_parser, 8870);
29700 }
29701 /* ./parser//parser.nit:8872 */
29702 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29703 if (UNTAG_Bool(REGB0)) {
29704 } else {
29705 nit_abort("Assert failed", NULL, LOCATE_parser, 8872);
29706 }
29707 /* ./parser//parser.nit:8873 */
29708 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]);
29709 /* ./parser//parser.nit:8880 */
29710 fra.me.REG[2] = fra.me.REG[3];
29711 /* ./parser//parser.nit:8881 */
29712 REGB0 = TAG_Bool(ATTR_parser___ReduceAction265____goto(fra.me.REG[0])!=NIT_NULL);
29713 if (UNTAG_Bool(REGB0)) {
29714 } else {
29715 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8881);
29716 }
29717 REGB0 = ATTR_parser___ReduceAction265____goto(fra.me.REG[0]);
29718 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29719 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29720 stack_frame_head = fra.me.prev;
29721 return;
29722 }
29723 void parser___ReduceAction265___init(val_t p0, val_t p1, int* init_table){
29724 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction265].i;
29725 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29726 val_t REGB0;
29727 val_t tmp;
29728 if (init_table[itpos259]) return;
29729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29730 fra.me.file = LOCATE_parser;
29731 fra.me.line = 8884;
29732 fra.me.meth = LOCATE_parser___ReduceAction265___init;
29733 fra.me.has_broke = 0;
29734 fra.me.REG_size = 2;
29735 fra.me.REG[0] = NIT_NULL;
29736 fra.me.REG[1] = NIT_NULL;
29737 fra.me.REG[0] = p0;
29738 REGB0 = p1;
29739 /* ./parser//parser.nit:8884 */
29740 fra.me.REG[1] = fra.me.REG[0];
29741 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29742 ATTR_parser___ReduceAction265____goto(fra.me.REG[1]) = REGB0;
29743 stack_frame_head = fra.me.prev;
29744 init_table[itpos259] = 1;
29745 return;
29746 }
29747 void parser___ReduceAction266___action(val_t p0, val_t p1){
29748 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
29749 val_t REGB0;
29750 val_t tmp;
29751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29752 fra.me.file = LOCATE_parser;
29753 fra.me.line = 8888;
29754 fra.me.meth = LOCATE_parser___ReduceAction266___action;
29755 fra.me.has_broke = 0;
29756 fra.me.REG_size = 9;
29757 fra.me.REG[0] = NIT_NULL;
29758 fra.me.REG[1] = NIT_NULL;
29759 fra.me.REG[2] = NIT_NULL;
29760 fra.me.REG[3] = NIT_NULL;
29761 fra.me.REG[4] = NIT_NULL;
29762 fra.me.REG[5] = NIT_NULL;
29763 fra.me.REG[6] = NIT_NULL;
29764 fra.me.REG[7] = NIT_NULL;
29765 fra.me.REG[8] = NIT_NULL;
29766 fra.me.REG[0] = p0;
29767 fra.me.REG[1] = p1;
29768 /* ./parser//parser.nit:8890 */
29769 fra.me.REG[2] = NIT_NULL;
29770 /* ./parser//parser.nit:8891 */
29771 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29772 /* ./parser//parser.nit:8892 */
29773 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29774 /* ./parser//parser.nit:8893 */
29775 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29776 /* ./parser//parser.nit:8894 */
29777 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29778 /* ./parser//parser.nit:8895 */
29779 fra.me.REG[7] = NEW_Array_array___Array___init();
29780 /* ./parser//parser.nit:8896 */
29781 fra.me.REG[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
29782 /* ./parser//parser.nit:8899 */
29783 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
29784 if (UNTAG_Bool(REGB0)) {
29785 } else {
29786 nit_abort("Assert failed", NULL, LOCATE_parser, 8899);
29787 }
29788 /* ./parser//parser.nit:8901 */
29789 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29790 if (UNTAG_Bool(REGB0)) {
29791 } else {
29792 nit_abort("Assert failed", NULL, LOCATE_parser, 8901);
29793 }
29794 /* ./parser//parser.nit:8902 */
29795 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29796 fra.me.REG[7] = fra.me.REG[5];
29797 /* ./parser//parser.nit:8904 */
29798 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29799 if (UNTAG_Bool(REGB0)) {
29800 } else {
29801 nit_abort("Assert failed", NULL, LOCATE_parser, 8904);
29802 }
29803 /* ./parser//parser.nit:8906 */
29804 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29805 if (UNTAG_Bool(REGB0)) {
29806 } else {
29807 nit_abort("Assert failed", NULL, LOCATE_parser, 8906);
29808 }
29809 /* ./parser//parser.nit:8907 */
29810 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]);
29811 /* ./parser//parser.nit:8914 */
29812 fra.me.REG[2] = fra.me.REG[3];
29813 /* ./parser//parser.nit:8915 */
29814 REGB0 = TAG_Bool(ATTR_parser___ReduceAction266____goto(fra.me.REG[0])!=NIT_NULL);
29815 if (UNTAG_Bool(REGB0)) {
29816 } else {
29817 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8915);
29818 }
29819 REGB0 = ATTR_parser___ReduceAction266____goto(fra.me.REG[0]);
29820 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29821 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29822 stack_frame_head = fra.me.prev;
29823 return;
29824 }
29825 void parser___ReduceAction266___init(val_t p0, val_t p1, int* init_table){
29826 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction266].i;
29827 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29828 val_t REGB0;
29829 val_t tmp;
29830 if (init_table[itpos260]) return;
29831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29832 fra.me.file = LOCATE_parser;
29833 fra.me.line = 8918;
29834 fra.me.meth = LOCATE_parser___ReduceAction266___init;
29835 fra.me.has_broke = 0;
29836 fra.me.REG_size = 2;
29837 fra.me.REG[0] = NIT_NULL;
29838 fra.me.REG[1] = NIT_NULL;
29839 fra.me.REG[0] = p0;
29840 REGB0 = p1;
29841 /* ./parser//parser.nit:8918 */
29842 fra.me.REG[1] = fra.me.REG[0];
29843 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29844 ATTR_parser___ReduceAction266____goto(fra.me.REG[1]) = REGB0;
29845 stack_frame_head = fra.me.prev;
29846 init_table[itpos260] = 1;
29847 return;
29848 }
29849 void parser___ReduceAction267___action(val_t p0, val_t p1){
29850 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
29851 val_t REGB0;
29852 val_t tmp;
29853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29854 fra.me.file = LOCATE_parser;
29855 fra.me.line = 8922;
29856 fra.me.meth = LOCATE_parser___ReduceAction267___action;
29857 fra.me.has_broke = 0;
29858 fra.me.REG_size = 8;
29859 fra.me.REG[0] = NIT_NULL;
29860 fra.me.REG[1] = NIT_NULL;
29861 fra.me.REG[2] = NIT_NULL;
29862 fra.me.REG[3] = NIT_NULL;
29863 fra.me.REG[4] = NIT_NULL;
29864 fra.me.REG[5] = NIT_NULL;
29865 fra.me.REG[6] = NIT_NULL;
29866 fra.me.REG[7] = NIT_NULL;
29867 fra.me.REG[0] = p0;
29868 fra.me.REG[1] = p1;
29869 /* ./parser//parser.nit:8924 */
29870 fra.me.REG[2] = NIT_NULL;
29871 /* ./parser//parser.nit:8925 */
29872 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29873 /* ./parser//parser.nit:8926 */
29874 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29875 /* ./parser//parser.nit:8927 */
29876 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29877 /* ./parser//parser.nit:8928 */
29878 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29879 /* ./parser//parser.nit:8929 */
29880 fra.me.REG[7] = NEW_Array_array___Array___init();
29881 /* ./parser//parser.nit:8931 */
29882 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29883 if (UNTAG_Bool(REGB0)) {
29884 } else {
29885 nit_abort("Assert failed", NULL, LOCATE_parser, 8931);
29886 }
29887 /* ./parser//parser.nit:8933 */
29888 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
29889 if (UNTAG_Bool(REGB0)) {
29890 } else {
29891 nit_abort("Assert failed", NULL, LOCATE_parser, 8933);
29892 }
29893 /* ./parser//parser.nit:8934 */
29894 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
29895 fra.me.REG[7] = fra.me.REG[5];
29896 /* ./parser//parser.nit:8936 */
29897 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AAssignOp, ID_AAssignOp)) /*cast nullable AAssignOp*/;
29898 if (UNTAG_Bool(REGB0)) {
29899 } else {
29900 nit_abort("Assert failed", NULL, LOCATE_parser, 8936);
29901 }
29902 /* ./parser//parser.nit:8938 */
29903 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
29904 if (UNTAG_Bool(REGB0)) {
29905 } else {
29906 nit_abort("Assert failed", NULL, LOCATE_parser, 8938);
29907 }
29908 /* ./parser//parser.nit:8939 */
29909 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]);
29910 /* ./parser//parser.nit:8945 */
29911 fra.me.REG[2] = fra.me.REG[3];
29912 /* ./parser//parser.nit:8946 */
29913 REGB0 = TAG_Bool(ATTR_parser___ReduceAction267____goto(fra.me.REG[0])!=NIT_NULL);
29914 if (UNTAG_Bool(REGB0)) {
29915 } else {
29916 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8946);
29917 }
29918 REGB0 = ATTR_parser___ReduceAction267____goto(fra.me.REG[0]);
29919 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29920 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29921 stack_frame_head = fra.me.prev;
29922 return;
29923 }
29924 void parser___ReduceAction267___init(val_t p0, val_t p1, int* init_table){
29925 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction267].i;
29926 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29927 val_t REGB0;
29928 val_t tmp;
29929 if (init_table[itpos261]) return;
29930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29931 fra.me.file = LOCATE_parser;
29932 fra.me.line = 8949;
29933 fra.me.meth = LOCATE_parser___ReduceAction267___init;
29934 fra.me.has_broke = 0;
29935 fra.me.REG_size = 2;
29936 fra.me.REG[0] = NIT_NULL;
29937 fra.me.REG[1] = NIT_NULL;
29938 fra.me.REG[0] = p0;
29939 REGB0 = p1;
29940 /* ./parser//parser.nit:8949 */
29941 fra.me.REG[1] = fra.me.REG[0];
29942 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
29943 ATTR_parser___ReduceAction267____goto(fra.me.REG[1]) = REGB0;
29944 stack_frame_head = fra.me.prev;
29945 init_table[itpos261] = 1;
29946 return;
29947 }
29948 void parser___ReduceAction268___action(val_t p0, val_t p1){
29949 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29950 val_t REGB0;
29951 val_t tmp;
29952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29953 fra.me.file = LOCATE_parser;
29954 fra.me.line = 8953;
29955 fra.me.meth = LOCATE_parser___ReduceAction268___action;
29956 fra.me.has_broke = 0;
29957 fra.me.REG_size = 4;
29958 fra.me.REG[0] = NIT_NULL;
29959 fra.me.REG[1] = NIT_NULL;
29960 fra.me.REG[2] = NIT_NULL;
29961 fra.me.REG[3] = NIT_NULL;
29962 fra.me.REG[0] = p0;
29963 fra.me.REG[1] = p1;
29964 /* ./parser//parser.nit:8955 */
29965 fra.me.REG[2] = NIT_NULL;
29966 /* ./parser//parser.nit:8956 */
29967 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
29968 /* ./parser//parser.nit:8958 */
29969 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TPluseq, ID_TPluseq)) /*cast nullable TPluseq*/;
29970 if (UNTAG_Bool(REGB0)) {
29971 } else {
29972 nit_abort("Assert failed", NULL, LOCATE_parser, 8958);
29973 }
29974 /* ./parser//parser.nit:8959 */
29975 fra.me.REG[3] = NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop(fra.me.REG[3]);
29976 /* ./parser//parser.nit:8962 */
29977 fra.me.REG[2] = fra.me.REG[3];
29978 /* ./parser//parser.nit:8963 */
29979 REGB0 = TAG_Bool(ATTR_parser___ReduceAction268____goto(fra.me.REG[0])!=NIT_NULL);
29980 if (UNTAG_Bool(REGB0)) {
29981 } else {
29982 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8963);
29983 }
29984 REGB0 = ATTR_parser___ReduceAction268____goto(fra.me.REG[0]);
29985 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
29986 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
29987 stack_frame_head = fra.me.prev;
29988 return;
29989 }
29990 void parser___ReduceAction268___init(val_t p0, val_t p1, int* init_table){
29991 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction268].i;
29992 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29993 val_t REGB0;
29994 val_t tmp;
29995 if (init_table[itpos262]) return;
29996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29997 fra.me.file = LOCATE_parser;
29998 fra.me.line = 8966;
29999 fra.me.meth = LOCATE_parser___ReduceAction268___init;
30000 fra.me.has_broke = 0;
30001 fra.me.REG_size = 2;
30002 fra.me.REG[0] = NIT_NULL;
30003 fra.me.REG[1] = NIT_NULL;
30004 fra.me.REG[0] = p0;
30005 REGB0 = p1;
30006 /* ./parser//parser.nit:8966 */
30007 fra.me.REG[1] = fra.me.REG[0];
30008 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30009 ATTR_parser___ReduceAction268____goto(fra.me.REG[1]) = REGB0;
30010 stack_frame_head = fra.me.prev;
30011 init_table[itpos262] = 1;
30012 return;
30013 }
30014 void parser___ReduceAction269___action(val_t p0, val_t p1){
30015 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30016 val_t REGB0;
30017 val_t tmp;
30018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30019 fra.me.file = LOCATE_parser;
30020 fra.me.line = 8970;
30021 fra.me.meth = LOCATE_parser___ReduceAction269___action;
30022 fra.me.has_broke = 0;
30023 fra.me.REG_size = 4;
30024 fra.me.REG[0] = NIT_NULL;
30025 fra.me.REG[1] = NIT_NULL;
30026 fra.me.REG[2] = NIT_NULL;
30027 fra.me.REG[3] = NIT_NULL;
30028 fra.me.REG[0] = p0;
30029 fra.me.REG[1] = p1;
30030 /* ./parser//parser.nit:8972 */
30031 fra.me.REG[2] = NIT_NULL;
30032 /* ./parser//parser.nit:8973 */
30033 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30034 /* ./parser//parser.nit:8975 */
30035 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TMinuseq, ID_TMinuseq)) /*cast nullable TMinuseq*/;
30036 if (UNTAG_Bool(REGB0)) {
30037 } else {
30038 nit_abort("Assert failed", NULL, LOCATE_parser, 8975);
30039 }
30040 /* ./parser//parser.nit:8976 */
30041 fra.me.REG[3] = NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop(fra.me.REG[3]);
30042 /* ./parser//parser.nit:8979 */
30043 fra.me.REG[2] = fra.me.REG[3];
30044 /* ./parser//parser.nit:8980 */
30045 REGB0 = TAG_Bool(ATTR_parser___ReduceAction269____goto(fra.me.REG[0])!=NIT_NULL);
30046 if (UNTAG_Bool(REGB0)) {
30047 } else {
30048 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8980);
30049 }
30050 REGB0 = ATTR_parser___ReduceAction269____goto(fra.me.REG[0]);
30051 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30052 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30053 stack_frame_head = fra.me.prev;
30054 return;
30055 }
30056 void parser___ReduceAction269___init(val_t p0, val_t p1, int* init_table){
30057 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction269].i;
30058 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30059 val_t REGB0;
30060 val_t tmp;
30061 if (init_table[itpos263]) return;
30062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30063 fra.me.file = LOCATE_parser;
30064 fra.me.line = 8983;
30065 fra.me.meth = LOCATE_parser___ReduceAction269___init;
30066 fra.me.has_broke = 0;
30067 fra.me.REG_size = 2;
30068 fra.me.REG[0] = NIT_NULL;
30069 fra.me.REG[1] = NIT_NULL;
30070 fra.me.REG[0] = p0;
30071 REGB0 = p1;
30072 /* ./parser//parser.nit:8983 */
30073 fra.me.REG[1] = fra.me.REG[0];
30074 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30075 ATTR_parser___ReduceAction269____goto(fra.me.REG[1]) = REGB0;
30076 stack_frame_head = fra.me.prev;
30077 init_table[itpos263] = 1;
30078 return;
30079 }
30080 void parser___ReduceAction270___action(val_t p0, val_t p1){
30081 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30082 val_t REGB0;
30083 val_t tmp;
30084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30085 fra.me.file = LOCATE_parser;
30086 fra.me.line = 8987;
30087 fra.me.meth = LOCATE_parser___ReduceAction270___action;
30088 fra.me.has_broke = 0;
30089 fra.me.REG_size = 6;
30090 fra.me.REG[0] = NIT_NULL;
30091 fra.me.REG[1] = NIT_NULL;
30092 fra.me.REG[2] = NIT_NULL;
30093 fra.me.REG[3] = NIT_NULL;
30094 fra.me.REG[4] = NIT_NULL;
30095 fra.me.REG[5] = NIT_NULL;
30096 fra.me.REG[0] = p0;
30097 fra.me.REG[1] = p1;
30098 /* ./parser//parser.nit:8989 */
30099 fra.me.REG[2] = NIT_NULL;
30100 /* ./parser//parser.nit:8990 */
30101 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30102 /* ./parser//parser.nit:8991 */
30103 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30104 /* ./parser//parser.nit:8992 */
30105 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30106 /* ./parser//parser.nit:8994 */
30107 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
30108 if (UNTAG_Bool(REGB0)) {
30109 } else {
30110 nit_abort("Assert failed", NULL, LOCATE_parser, 8994);
30111 }
30112 /* ./parser//parser.nit:8996 */
30113 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30114 if (UNTAG_Bool(REGB0)) {
30115 } else {
30116 nit_abort("Assert failed", NULL, LOCATE_parser, 8996);
30117 }
30118 /* ./parser//parser.nit:8998 */
30119 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
30120 if (UNTAG_Bool(REGB0)) {
30121 } else {
30122 nit_abort("Assert failed", NULL, LOCATE_parser, 8998);
30123 }
30124 /* ./parser//parser.nit:8999 */
30125 fra.me.REG[3] = NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30126 /* ./parser//parser.nit:9004 */
30127 fra.me.REG[2] = fra.me.REG[3];
30128 /* ./parser//parser.nit:9005 */
30129 REGB0 = TAG_Bool(ATTR_parser___ReduceAction270____goto(fra.me.REG[0])!=NIT_NULL);
30130 if (UNTAG_Bool(REGB0)) {
30131 } else {
30132 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9005);
30133 }
30134 REGB0 = ATTR_parser___ReduceAction270____goto(fra.me.REG[0]);
30135 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30136 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30137 stack_frame_head = fra.me.prev;
30138 return;
30139 }
30140 void parser___ReduceAction270___init(val_t p0, val_t p1, int* init_table){
30141 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction270].i;
30142 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30143 val_t REGB0;
30144 val_t tmp;
30145 if (init_table[itpos264]) return;
30146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30147 fra.me.file = LOCATE_parser;
30148 fra.me.line = 9008;
30149 fra.me.meth = LOCATE_parser___ReduceAction270___init;
30150 fra.me.has_broke = 0;
30151 fra.me.REG_size = 2;
30152 fra.me.REG[0] = NIT_NULL;
30153 fra.me.REG[1] = NIT_NULL;
30154 fra.me.REG[0] = p0;
30155 REGB0 = p1;
30156 /* ./parser//parser.nit:9008 */
30157 fra.me.REG[1] = fra.me.REG[0];
30158 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30159 ATTR_parser___ReduceAction270____goto(fra.me.REG[1]) = REGB0;
30160 stack_frame_head = fra.me.prev;
30161 init_table[itpos264] = 1;
30162 return;
30163 }
30164 void parser___ReduceAction271___action(val_t p0, val_t p1){
30165 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30166 val_t REGB0;
30167 val_t tmp;
30168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30169 fra.me.file = LOCATE_parser;
30170 fra.me.line = 9012;
30171 fra.me.meth = LOCATE_parser___ReduceAction271___action;
30172 fra.me.has_broke = 0;
30173 fra.me.REG_size = 5;
30174 fra.me.REG[0] = NIT_NULL;
30175 fra.me.REG[1] = NIT_NULL;
30176 fra.me.REG[2] = NIT_NULL;
30177 fra.me.REG[3] = NIT_NULL;
30178 fra.me.REG[4] = NIT_NULL;
30179 fra.me.REG[0] = p0;
30180 fra.me.REG[1] = p1;
30181 /* ./parser//parser.nit:9014 */
30182 fra.me.REG[2] = NIT_NULL;
30183 /* ./parser//parser.nit:9015 */
30184 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30185 /* ./parser//parser.nit:9016 */
30186 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30187 /* ./parser//parser.nit:9018 */
30188 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
30189 if (UNTAG_Bool(REGB0)) {
30190 } else {
30191 nit_abort("Assert failed", NULL, LOCATE_parser, 9018);
30192 }
30193 /* ./parser//parser.nit:9020 */
30194 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30195 if (UNTAG_Bool(REGB0)) {
30196 } else {
30197 nit_abort("Assert failed", NULL, LOCATE_parser, 9020);
30198 }
30199 /* ./parser//parser.nit:9021 */
30200 fra.me.REG[3] = NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
30201 /* ./parser//parser.nit:9026 */
30202 fra.me.REG[2] = fra.me.REG[3];
30203 /* ./parser//parser.nit:9027 */
30204 REGB0 = TAG_Bool(ATTR_parser___ReduceAction271____goto(fra.me.REG[0])!=NIT_NULL);
30205 if (UNTAG_Bool(REGB0)) {
30206 } else {
30207 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9027);
30208 }
30209 REGB0 = ATTR_parser___ReduceAction271____goto(fra.me.REG[0]);
30210 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30211 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30212 stack_frame_head = fra.me.prev;
30213 return;
30214 }
30215 void parser___ReduceAction271___init(val_t p0, val_t p1, int* init_table){
30216 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction271].i;
30217 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30218 val_t REGB0;
30219 val_t tmp;
30220 if (init_table[itpos265]) return;
30221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30222 fra.me.file = LOCATE_parser;
30223 fra.me.line = 9030;
30224 fra.me.meth = LOCATE_parser___ReduceAction271___init;
30225 fra.me.has_broke = 0;
30226 fra.me.REG_size = 2;
30227 fra.me.REG[0] = NIT_NULL;
30228 fra.me.REG[1] = NIT_NULL;
30229 fra.me.REG[0] = p0;
30230 REGB0 = p1;
30231 /* ./parser//parser.nit:9030 */
30232 fra.me.REG[1] = fra.me.REG[0];
30233 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30234 ATTR_parser___ReduceAction271____goto(fra.me.REG[1]) = REGB0;
30235 stack_frame_head = fra.me.prev;
30236 init_table[itpos265] = 1;
30237 return;
30238 }
30239 void parser___ReduceAction272___action(val_t p0, val_t p1){
30240 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30241 val_t REGB0;
30242 val_t tmp;
30243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30244 fra.me.file = LOCATE_parser;
30245 fra.me.line = 9034;
30246 fra.me.meth = LOCATE_parser___ReduceAction272___action;
30247 fra.me.has_broke = 0;
30248 fra.me.REG_size = 7;
30249 fra.me.REG[0] = NIT_NULL;
30250 fra.me.REG[1] = NIT_NULL;
30251 fra.me.REG[2] = NIT_NULL;
30252 fra.me.REG[3] = NIT_NULL;
30253 fra.me.REG[4] = NIT_NULL;
30254 fra.me.REG[5] = NIT_NULL;
30255 fra.me.REG[6] = NIT_NULL;
30256 fra.me.REG[0] = p0;
30257 fra.me.REG[1] = p1;
30258 /* ./parser//parser.nit:9036 */
30259 fra.me.REG[2] = NIT_NULL;
30260 /* ./parser//parser.nit:9037 */
30261 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30262 /* ./parser//parser.nit:9038 */
30263 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30264 /* ./parser//parser.nit:9039 */
30265 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30266 /* ./parser//parser.nit:9040 */
30267 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30268 /* ./parser//parser.nit:9041 */
30269 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30270 /* ./parser//parser.nit:9042 */
30271 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30272 /* ./parser//parser.nit:9043 */
30273 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30274 /* ./parser//parser.nit:9044 */
30275 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30276 /* ./parser//parser.nit:9046 */
30277 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30278 if (UNTAG_Bool(REGB0)) {
30279 } else {
30280 nit_abort("Assert failed", NULL, LOCATE_parser, 9046);
30281 }
30282 /* ./parser//parser.nit:9048 */
30283 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30284 if (UNTAG_Bool(REGB0)) {
30285 } else {
30286 nit_abort("Assert failed", NULL, LOCATE_parser, 9048);
30287 }
30288 /* ./parser//parser.nit:9050 */
30289 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30290 if (UNTAG_Bool(REGB0)) {
30291 } else {
30292 nit_abort("Assert failed", NULL, LOCATE_parser, 9050);
30293 }
30294 /* ./parser//parser.nit:9052 */
30295 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30296 if (UNTAG_Bool(REGB0)) {
30297 } else {
30298 nit_abort("Assert failed", NULL, LOCATE_parser, 9052);
30299 }
30300 /* ./parser//parser.nit:9053 */
30301 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]);
30302 /* ./parser//parser.nit:9059 */
30303 fra.me.REG[2] = fra.me.REG[3];
30304 /* ./parser//parser.nit:9060 */
30305 REGB0 = TAG_Bool(ATTR_parser___ReduceAction272____goto(fra.me.REG[0])!=NIT_NULL);
30306 if (UNTAG_Bool(REGB0)) {
30307 } else {
30308 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9060);
30309 }
30310 REGB0 = ATTR_parser___ReduceAction272____goto(fra.me.REG[0]);
30311 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30312 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30313 stack_frame_head = fra.me.prev;
30314 return;
30315 }
30316 void parser___ReduceAction272___init(val_t p0, val_t p1, int* init_table){
30317 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction272].i;
30318 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30319 val_t REGB0;
30320 val_t tmp;
30321 if (init_table[itpos266]) return;
30322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30323 fra.me.file = LOCATE_parser;
30324 fra.me.line = 9063;
30325 fra.me.meth = LOCATE_parser___ReduceAction272___init;
30326 fra.me.has_broke = 0;
30327 fra.me.REG_size = 2;
30328 fra.me.REG[0] = NIT_NULL;
30329 fra.me.REG[1] = NIT_NULL;
30330 fra.me.REG[0] = p0;
30331 REGB0 = p1;
30332 /* ./parser//parser.nit:9063 */
30333 fra.me.REG[1] = fra.me.REG[0];
30334 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30335 ATTR_parser___ReduceAction272____goto(fra.me.REG[1]) = REGB0;
30336 stack_frame_head = fra.me.prev;
30337 init_table[itpos266] = 1;
30338 return;
30339 }
30340 void parser___ReduceAction273___action(val_t p0, val_t p1){
30341 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30342 val_t REGB0;
30343 val_t tmp;
30344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30345 fra.me.file = LOCATE_parser;
30346 fra.me.line = 9067;
30347 fra.me.meth = LOCATE_parser___ReduceAction273___action;
30348 fra.me.has_broke = 0;
30349 fra.me.REG_size = 6;
30350 fra.me.REG[0] = NIT_NULL;
30351 fra.me.REG[1] = NIT_NULL;
30352 fra.me.REG[2] = NIT_NULL;
30353 fra.me.REG[3] = NIT_NULL;
30354 fra.me.REG[4] = NIT_NULL;
30355 fra.me.REG[5] = NIT_NULL;
30356 fra.me.REG[0] = p0;
30357 fra.me.REG[1] = p1;
30358 /* ./parser//parser.nit:9069 */
30359 fra.me.REG[2] = NIT_NULL;
30360 /* ./parser//parser.nit:9070 */
30361 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30362 /* ./parser//parser.nit:9071 */
30363 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30364 /* ./parser//parser.nit:9072 */
30365 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30366 /* ./parser//parser.nit:9073 */
30367 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30368 /* ./parser//parser.nit:9074 */
30369 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30370 /* ./parser//parser.nit:9075 */
30371 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30372 /* ./parser//parser.nit:9077 */
30373 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30374 if (UNTAG_Bool(REGB0)) {
30375 } else {
30376 nit_abort("Assert failed", NULL, LOCATE_parser, 9077);
30377 }
30378 /* ./parser//parser.nit:9079 */
30379 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30380 if (UNTAG_Bool(REGB0)) {
30381 } else {
30382 nit_abort("Assert failed", NULL, LOCATE_parser, 9079);
30383 }
30384 /* ./parser//parser.nit:9081 */
30385 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30386 if (UNTAG_Bool(REGB0)) {
30387 } else {
30388 nit_abort("Assert failed", NULL, LOCATE_parser, 9081);
30389 }
30390 /* ./parser//parser.nit:9082 */
30391 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);
30392 /* ./parser//parser.nit:9088 */
30393 fra.me.REG[2] = fra.me.REG[3];
30394 /* ./parser//parser.nit:9089 */
30395 REGB0 = TAG_Bool(ATTR_parser___ReduceAction273____goto(fra.me.REG[0])!=NIT_NULL);
30396 if (UNTAG_Bool(REGB0)) {
30397 } else {
30398 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9089);
30399 }
30400 REGB0 = ATTR_parser___ReduceAction273____goto(fra.me.REG[0]);
30401 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30402 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30403 stack_frame_head = fra.me.prev;
30404 return;
30405 }
30406 void parser___ReduceAction273___init(val_t p0, val_t p1, int* init_table){
30407 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction273].i;
30408 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30409 val_t REGB0;
30410 val_t tmp;
30411 if (init_table[itpos267]) return;
30412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30413 fra.me.file = LOCATE_parser;
30414 fra.me.line = 9092;
30415 fra.me.meth = LOCATE_parser___ReduceAction273___init;
30416 fra.me.has_broke = 0;
30417 fra.me.REG_size = 2;
30418 fra.me.REG[0] = NIT_NULL;
30419 fra.me.REG[1] = NIT_NULL;
30420 fra.me.REG[0] = p0;
30421 REGB0 = p1;
30422 /* ./parser//parser.nit:9092 */
30423 fra.me.REG[1] = fra.me.REG[0];
30424 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30425 ATTR_parser___ReduceAction273____goto(fra.me.REG[1]) = REGB0;
30426 stack_frame_head = fra.me.prev;
30427 init_table[itpos267] = 1;
30428 return;
30429 }
30430 void parser___ReduceAction274___action(val_t p0, val_t p1){
30431 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30432 val_t REGB0;
30433 val_t tmp;
30434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30435 fra.me.file = LOCATE_parser;
30436 fra.me.line = 9096;
30437 fra.me.meth = LOCATE_parser___ReduceAction274___action;
30438 fra.me.has_broke = 0;
30439 fra.me.REG_size = 7;
30440 fra.me.REG[0] = NIT_NULL;
30441 fra.me.REG[1] = NIT_NULL;
30442 fra.me.REG[2] = NIT_NULL;
30443 fra.me.REG[3] = NIT_NULL;
30444 fra.me.REG[4] = NIT_NULL;
30445 fra.me.REG[5] = NIT_NULL;
30446 fra.me.REG[6] = NIT_NULL;
30447 fra.me.REG[0] = p0;
30448 fra.me.REG[1] = p1;
30449 /* ./parser//parser.nit:9098 */
30450 fra.me.REG[2] = NIT_NULL;
30451 /* ./parser//parser.nit:9099 */
30452 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30453 /* ./parser//parser.nit:9100 */
30454 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30455 /* ./parser//parser.nit:9101 */
30456 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30457 /* ./parser//parser.nit:9102 */
30458 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30459 /* ./parser//parser.nit:9103 */
30460 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30461 /* ./parser//parser.nit:9104 */
30462 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30463 /* ./parser//parser.nit:9105 */
30464 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30465 /* ./parser//parser.nit:9106 */
30466 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30467 /* ./parser//parser.nit:9108 */
30468 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30469 if (UNTAG_Bool(REGB0)) {
30470 } else {
30471 nit_abort("Assert failed", NULL, LOCATE_parser, 9108);
30472 }
30473 /* ./parser//parser.nit:9110 */
30474 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30475 if (UNTAG_Bool(REGB0)) {
30476 } else {
30477 nit_abort("Assert failed", NULL, LOCATE_parser, 9110);
30478 }
30479 /* ./parser//parser.nit:9112 */
30480 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30481 if (UNTAG_Bool(REGB0)) {
30482 } else {
30483 nit_abort("Assert failed", NULL, LOCATE_parser, 9112);
30484 }
30485 /* ./parser//parser.nit:9114 */
30486 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30487 if (UNTAG_Bool(REGB0)) {
30488 } else {
30489 nit_abort("Assert failed", NULL, LOCATE_parser, 9114);
30490 }
30491 /* ./parser//parser.nit:9115 */
30492 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]);
30493 /* ./parser//parser.nit:9121 */
30494 fra.me.REG[2] = fra.me.REG[3];
30495 /* ./parser//parser.nit:9122 */
30496 REGB0 = TAG_Bool(ATTR_parser___ReduceAction274____goto(fra.me.REG[0])!=NIT_NULL);
30497 if (UNTAG_Bool(REGB0)) {
30498 } else {
30499 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9122);
30500 }
30501 REGB0 = ATTR_parser___ReduceAction274____goto(fra.me.REG[0]);
30502 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30503 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30504 stack_frame_head = fra.me.prev;
30505 return;
30506 }
30507 void parser___ReduceAction274___init(val_t p0, val_t p1, int* init_table){
30508 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction274].i;
30509 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30510 val_t REGB0;
30511 val_t tmp;
30512 if (init_table[itpos268]) return;
30513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30514 fra.me.file = LOCATE_parser;
30515 fra.me.line = 9125;
30516 fra.me.meth = LOCATE_parser___ReduceAction274___init;
30517 fra.me.has_broke = 0;
30518 fra.me.REG_size = 2;
30519 fra.me.REG[0] = NIT_NULL;
30520 fra.me.REG[1] = NIT_NULL;
30521 fra.me.REG[0] = p0;
30522 REGB0 = p1;
30523 /* ./parser//parser.nit:9125 */
30524 fra.me.REG[1] = fra.me.REG[0];
30525 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30526 ATTR_parser___ReduceAction274____goto(fra.me.REG[1]) = REGB0;
30527 stack_frame_head = fra.me.prev;
30528 init_table[itpos268] = 1;
30529 return;
30530 }
30531 void parser___ReduceAction275___action(val_t p0, val_t p1){
30532 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30533 val_t REGB0;
30534 val_t tmp;
30535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30536 fra.me.file = LOCATE_parser;
30537 fra.me.line = 9129;
30538 fra.me.meth = LOCATE_parser___ReduceAction275___action;
30539 fra.me.has_broke = 0;
30540 fra.me.REG_size = 6;
30541 fra.me.REG[0] = NIT_NULL;
30542 fra.me.REG[1] = NIT_NULL;
30543 fra.me.REG[2] = NIT_NULL;
30544 fra.me.REG[3] = NIT_NULL;
30545 fra.me.REG[4] = NIT_NULL;
30546 fra.me.REG[5] = NIT_NULL;
30547 fra.me.REG[0] = p0;
30548 fra.me.REG[1] = p1;
30549 /* ./parser//parser.nit:9131 */
30550 fra.me.REG[2] = NIT_NULL;
30551 /* ./parser//parser.nit:9132 */
30552 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30553 /* ./parser//parser.nit:9133 */
30554 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30555 /* ./parser//parser.nit:9134 */
30556 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30557 /* ./parser//parser.nit:9135 */
30558 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30559 /* ./parser//parser.nit:9136 */
30560 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30561 /* ./parser//parser.nit:9137 */
30562 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30563 /* ./parser//parser.nit:9139 */
30564 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30565 if (UNTAG_Bool(REGB0)) {
30566 } else {
30567 nit_abort("Assert failed", NULL, LOCATE_parser, 9139);
30568 }
30569 /* ./parser//parser.nit:9141 */
30570 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30571 if (UNTAG_Bool(REGB0)) {
30572 } else {
30573 nit_abort("Assert failed", NULL, LOCATE_parser, 9141);
30574 }
30575 /* ./parser//parser.nit:9143 */
30576 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30577 if (UNTAG_Bool(REGB0)) {
30578 } else {
30579 nit_abort("Assert failed", NULL, LOCATE_parser, 9143);
30580 }
30581 /* ./parser//parser.nit:9144 */
30582 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]);
30583 /* ./parser//parser.nit:9150 */
30584 fra.me.REG[2] = fra.me.REG[3];
30585 /* ./parser//parser.nit:9151 */
30586 REGB0 = TAG_Bool(ATTR_parser___ReduceAction275____goto(fra.me.REG[0])!=NIT_NULL);
30587 if (UNTAG_Bool(REGB0)) {
30588 } else {
30589 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9151);
30590 }
30591 REGB0 = ATTR_parser___ReduceAction275____goto(fra.me.REG[0]);
30592 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30593 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30594 stack_frame_head = fra.me.prev;
30595 return;
30596 }
30597 void parser___ReduceAction275___init(val_t p0, val_t p1, int* init_table){
30598 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction275].i;
30599 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30600 val_t REGB0;
30601 val_t tmp;
30602 if (init_table[itpos269]) return;
30603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30604 fra.me.file = LOCATE_parser;
30605 fra.me.line = 9154;
30606 fra.me.meth = LOCATE_parser___ReduceAction275___init;
30607 fra.me.has_broke = 0;
30608 fra.me.REG_size = 2;
30609 fra.me.REG[0] = NIT_NULL;
30610 fra.me.REG[1] = NIT_NULL;
30611 fra.me.REG[0] = p0;
30612 REGB0 = p1;
30613 /* ./parser//parser.nit:9154 */
30614 fra.me.REG[1] = fra.me.REG[0];
30615 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30616 ATTR_parser___ReduceAction275____goto(fra.me.REG[1]) = REGB0;
30617 stack_frame_head = fra.me.prev;
30618 init_table[itpos269] = 1;
30619 return;
30620 }
30621 void parser___ReduceAction276___action(val_t p0, val_t p1){
30622 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30623 val_t REGB0;
30624 val_t tmp;
30625 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30626 fra.me.file = LOCATE_parser;
30627 fra.me.line = 9158;
30628 fra.me.meth = LOCATE_parser___ReduceAction276___action;
30629 fra.me.has_broke = 0;
30630 fra.me.REG_size = 6;
30631 fra.me.REG[0] = NIT_NULL;
30632 fra.me.REG[1] = NIT_NULL;
30633 fra.me.REG[2] = NIT_NULL;
30634 fra.me.REG[3] = NIT_NULL;
30635 fra.me.REG[4] = NIT_NULL;
30636 fra.me.REG[5] = NIT_NULL;
30637 fra.me.REG[0] = p0;
30638 fra.me.REG[1] = p1;
30639 /* ./parser//parser.nit:9160 */
30640 fra.me.REG[2] = NIT_NULL;
30641 /* ./parser//parser.nit:9161 */
30642 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30643 /* ./parser//parser.nit:9162 */
30644 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30645 /* ./parser//parser.nit:9163 */
30646 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30647 /* ./parser//parser.nit:9164 */
30648 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30649 /* ./parser//parser.nit:9165 */
30650 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30651 /* ./parser//parser.nit:9166 */
30652 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30653 /* ./parser//parser.nit:9167 */
30654 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30655 /* ./parser//parser.nit:9169 */
30656 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
30657 if (UNTAG_Bool(REGB0)) {
30658 } else {
30659 nit_abort("Assert failed", NULL, LOCATE_parser, 9169);
30660 }
30661 /* ./parser//parser.nit:9171 */
30662 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30663 if (UNTAG_Bool(REGB0)) {
30664 } else {
30665 nit_abort("Assert failed", NULL, LOCATE_parser, 9171);
30666 }
30667 /* ./parser//parser.nit:9173 */
30668 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30669 if (UNTAG_Bool(REGB0)) {
30670 } else {
30671 nit_abort("Assert failed", NULL, LOCATE_parser, 9173);
30672 }
30673 /* ./parser//parser.nit:9174 */
30674 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]);
30675 /* ./parser//parser.nit:9180 */
30676 fra.me.REG[2] = fra.me.REG[3];
30677 /* ./parser//parser.nit:9181 */
30678 REGB0 = TAG_Bool(ATTR_parser___ReduceAction276____goto(fra.me.REG[0])!=NIT_NULL);
30679 if (UNTAG_Bool(REGB0)) {
30680 } else {
30681 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9181);
30682 }
30683 REGB0 = ATTR_parser___ReduceAction276____goto(fra.me.REG[0]);
30684 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30685 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30686 stack_frame_head = fra.me.prev;
30687 return;
30688 }
30689 void parser___ReduceAction276___init(val_t p0, val_t p1, int* init_table){
30690 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction276].i;
30691 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30692 val_t REGB0;
30693 val_t tmp;
30694 if (init_table[itpos270]) return;
30695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30696 fra.me.file = LOCATE_parser;
30697 fra.me.line = 9184;
30698 fra.me.meth = LOCATE_parser___ReduceAction276___init;
30699 fra.me.has_broke = 0;
30700 fra.me.REG_size = 2;
30701 fra.me.REG[0] = NIT_NULL;
30702 fra.me.REG[1] = NIT_NULL;
30703 fra.me.REG[0] = p0;
30704 REGB0 = p1;
30705 /* ./parser//parser.nit:9184 */
30706 fra.me.REG[1] = fra.me.REG[0];
30707 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30708 ATTR_parser___ReduceAction276____goto(fra.me.REG[1]) = REGB0;
30709 stack_frame_head = fra.me.prev;
30710 init_table[itpos270] = 1;
30711 return;
30712 }
30713 void parser___ReduceAction279___action(val_t p0, val_t p1){
30714 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30715 val_t REGB0;
30716 val_t tmp;
30717 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30718 fra.me.file = LOCATE_parser;
30719 fra.me.line = 9188;
30720 fra.me.meth = LOCATE_parser___ReduceAction279___action;
30721 fra.me.has_broke = 0;
30722 fra.me.REG_size = 6;
30723 fra.me.REG[0] = NIT_NULL;
30724 fra.me.REG[1] = NIT_NULL;
30725 fra.me.REG[2] = NIT_NULL;
30726 fra.me.REG[3] = NIT_NULL;
30727 fra.me.REG[4] = NIT_NULL;
30728 fra.me.REG[5] = NIT_NULL;
30729 fra.me.REG[0] = p0;
30730 fra.me.REG[1] = p1;
30731 /* ./parser//parser.nit:9190 */
30732 fra.me.REG[2] = NIT_NULL;
30733 /* ./parser//parser.nit:9191 */
30734 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30735 /* ./parser//parser.nit:9192 */
30736 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30737 /* ./parser//parser.nit:9193 */
30738 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30739 /* ./parser//parser.nit:9195 */
30740 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwloop, ID_TKwloop)) /*cast nullable TKwloop*/;
30741 if (UNTAG_Bool(REGB0)) {
30742 } else {
30743 nit_abort("Assert failed", NULL, LOCATE_parser, 9195);
30744 }
30745 /* ./parser//parser.nit:9197 */
30746 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30747 if (UNTAG_Bool(REGB0)) {
30748 } else {
30749 nit_abort("Assert failed", NULL, LOCATE_parser, 9197);
30750 }
30751 /* ./parser//parser.nit:9199 */
30752 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
30753 if (UNTAG_Bool(REGB0)) {
30754 } else {
30755 nit_abort("Assert failed", NULL, LOCATE_parser, 9199);
30756 }
30757 /* ./parser//parser.nit:9200 */
30758 fra.me.REG[3] = NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
30759 /* ./parser//parser.nit:9205 */
30760 fra.me.REG[2] = fra.me.REG[3];
30761 /* ./parser//parser.nit:9206 */
30762 REGB0 = TAG_Bool(ATTR_parser___ReduceAction279____goto(fra.me.REG[0])!=NIT_NULL);
30763 if (UNTAG_Bool(REGB0)) {
30764 } else {
30765 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9206);
30766 }
30767 REGB0 = ATTR_parser___ReduceAction279____goto(fra.me.REG[0]);
30768 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30769 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30770 stack_frame_head = fra.me.prev;
30771 return;
30772 }
30773 void parser___ReduceAction279___init(val_t p0, val_t p1, int* init_table){
30774 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction279].i;
30775 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30776 val_t REGB0;
30777 val_t tmp;
30778 if (init_table[itpos271]) return;
30779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30780 fra.me.file = LOCATE_parser;
30781 fra.me.line = 9209;
30782 fra.me.meth = LOCATE_parser___ReduceAction279___init;
30783 fra.me.has_broke = 0;
30784 fra.me.REG_size = 2;
30785 fra.me.REG[0] = NIT_NULL;
30786 fra.me.REG[1] = NIT_NULL;
30787 fra.me.REG[0] = p0;
30788 REGB0 = p1;
30789 /* ./parser//parser.nit:9209 */
30790 fra.me.REG[1] = fra.me.REG[0];
30791 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30792 ATTR_parser___ReduceAction279____goto(fra.me.REG[1]) = REGB0;
30793 stack_frame_head = fra.me.prev;
30794 init_table[itpos271] = 1;
30795 return;
30796 }
30797 void parser___ReduceAction280___action(val_t p0, val_t p1){
30798 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30799 val_t REGB0;
30800 val_t tmp;
30801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30802 fra.me.file = LOCATE_parser;
30803 fra.me.line = 9213;
30804 fra.me.meth = LOCATE_parser___ReduceAction280___action;
30805 fra.me.has_broke = 0;
30806 fra.me.REG_size = 5;
30807 fra.me.REG[0] = NIT_NULL;
30808 fra.me.REG[1] = NIT_NULL;
30809 fra.me.REG[2] = NIT_NULL;
30810 fra.me.REG[3] = NIT_NULL;
30811 fra.me.REG[4] = NIT_NULL;
30812 fra.me.REG[0] = p0;
30813 fra.me.REG[1] = p1;
30814 /* ./parser//parser.nit:9215 */
30815 fra.me.REG[2] = NIT_NULL;
30816 /* ./parser//parser.nit:9216 */
30817 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30818 /* ./parser//parser.nit:9217 */
30819 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30820 /* ./parser//parser.nit:9219 */
30821 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwloop, ID_TKwloop)) /*cast nullable TKwloop*/;
30822 if (UNTAG_Bool(REGB0)) {
30823 } else {
30824 nit_abort("Assert failed", NULL, LOCATE_parser, 9219);
30825 }
30826 /* ./parser//parser.nit:9221 */
30827 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30828 if (UNTAG_Bool(REGB0)) {
30829 } else {
30830 nit_abort("Assert failed", NULL, LOCATE_parser, 9221);
30831 }
30832 /* ./parser//parser.nit:9222 */
30833 fra.me.REG[3] = NEW_ALoopExpr_parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
30834 /* ./parser//parser.nit:9227 */
30835 fra.me.REG[2] = fra.me.REG[3];
30836 /* ./parser//parser.nit:9228 */
30837 REGB0 = TAG_Bool(ATTR_parser___ReduceAction280____goto(fra.me.REG[0])!=NIT_NULL);
30838 if (UNTAG_Bool(REGB0)) {
30839 } else {
30840 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9228);
30841 }
30842 REGB0 = ATTR_parser___ReduceAction280____goto(fra.me.REG[0]);
30843 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30844 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30845 stack_frame_head = fra.me.prev;
30846 return;
30847 }
30848 void parser___ReduceAction280___init(val_t p0, val_t p1, int* init_table){
30849 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction280].i;
30850 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30851 val_t REGB0;
30852 val_t tmp;
30853 if (init_table[itpos272]) return;
30854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30855 fra.me.file = LOCATE_parser;
30856 fra.me.line = 9231;
30857 fra.me.meth = LOCATE_parser___ReduceAction280___init;
30858 fra.me.has_broke = 0;
30859 fra.me.REG_size = 2;
30860 fra.me.REG[0] = NIT_NULL;
30861 fra.me.REG[1] = NIT_NULL;
30862 fra.me.REG[0] = p0;
30863 REGB0 = p1;
30864 /* ./parser//parser.nit:9231 */
30865 fra.me.REG[1] = fra.me.REG[0];
30866 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30867 ATTR_parser___ReduceAction280____goto(fra.me.REG[1]) = REGB0;
30868 stack_frame_head = fra.me.prev;
30869 init_table[itpos272] = 1;
30870 return;
30871 }
30872 void parser___ReduceAction281___action(val_t p0, val_t p1){
30873 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
30874 val_t REGB0;
30875 val_t tmp;
30876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30877 fra.me.file = LOCATE_parser;
30878 fra.me.line = 9235;
30879 fra.me.meth = LOCATE_parser___ReduceAction281___action;
30880 fra.me.has_broke = 0;
30881 fra.me.REG_size = 8;
30882 fra.me.REG[0] = NIT_NULL;
30883 fra.me.REG[1] = NIT_NULL;
30884 fra.me.REG[2] = NIT_NULL;
30885 fra.me.REG[3] = NIT_NULL;
30886 fra.me.REG[4] = NIT_NULL;
30887 fra.me.REG[5] = NIT_NULL;
30888 fra.me.REG[6] = NIT_NULL;
30889 fra.me.REG[7] = NIT_NULL;
30890 fra.me.REG[0] = p0;
30891 fra.me.REG[1] = p1;
30892 /* ./parser//parser.nit:9237 */
30893 fra.me.REG[2] = NIT_NULL;
30894 /* ./parser//parser.nit:9238 */
30895 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30896 /* ./parser//parser.nit:9239 */
30897 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30898 /* ./parser//parser.nit:9240 */
30899 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30900 /* ./parser//parser.nit:9241 */
30901 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30902 /* ./parser//parser.nit:9242 */
30903 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30904 /* ./parser//parser.nit:9243 */
30905 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30906 /* ./parser//parser.nit:9244 */
30907 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
30908 /* ./parser//parser.nit:9246 */
30909 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwwhile, ID_TKwwhile)) /*cast nullable TKwwhile*/;
30910 if (UNTAG_Bool(REGB0)) {
30911 } else {
30912 nit_abort("Assert failed", NULL, LOCATE_parser, 9246);
30913 }
30914 /* ./parser//parser.nit:9248 */
30915 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30916 if (UNTAG_Bool(REGB0)) {
30917 } else {
30918 nit_abort("Assert failed", NULL, LOCATE_parser, 9248);
30919 }
30920 /* ./parser//parser.nit:9250 */
30921 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
30922 if (UNTAG_Bool(REGB0)) {
30923 } else {
30924 nit_abort("Assert failed", NULL, LOCATE_parser, 9250);
30925 }
30926 /* ./parser//parser.nit:9252 */
30927 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
30928 if (UNTAG_Bool(REGB0)) {
30929 } else {
30930 nit_abort("Assert failed", NULL, LOCATE_parser, 9252);
30931 }
30932 /* ./parser//parser.nit:9254 */
30933 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
30934 if (UNTAG_Bool(REGB0)) {
30935 } else {
30936 nit_abort("Assert failed", NULL, LOCATE_parser, 9254);
30937 }
30938 /* ./parser//parser.nit:9255 */
30939 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]);
30940 /* ./parser//parser.nit:9262 */
30941 fra.me.REG[2] = fra.me.REG[3];
30942 /* ./parser//parser.nit:9263 */
30943 REGB0 = TAG_Bool(ATTR_parser___ReduceAction281____goto(fra.me.REG[0])!=NIT_NULL);
30944 if (UNTAG_Bool(REGB0)) {
30945 } else {
30946 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9263);
30947 }
30948 REGB0 = ATTR_parser___ReduceAction281____goto(fra.me.REG[0]);
30949 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
30950 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
30951 stack_frame_head = fra.me.prev;
30952 return;
30953 }
30954 void parser___ReduceAction281___init(val_t p0, val_t p1, int* init_table){
30955 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction281].i;
30956 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30957 val_t REGB0;
30958 val_t tmp;
30959 if (init_table[itpos273]) return;
30960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30961 fra.me.file = LOCATE_parser;
30962 fra.me.line = 9266;
30963 fra.me.meth = LOCATE_parser___ReduceAction281___init;
30964 fra.me.has_broke = 0;
30965 fra.me.REG_size = 2;
30966 fra.me.REG[0] = NIT_NULL;
30967 fra.me.REG[1] = NIT_NULL;
30968 fra.me.REG[0] = p0;
30969 REGB0 = p1;
30970 /* ./parser//parser.nit:9266 */
30971 fra.me.REG[1] = fra.me.REG[0];
30972 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
30973 ATTR_parser___ReduceAction281____goto(fra.me.REG[1]) = REGB0;
30974 stack_frame_head = fra.me.prev;
30975 init_table[itpos273] = 1;
30976 return;
30977 }
30978 void parser___ReduceAction282___action(val_t p0, val_t p1){
30979 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30980 val_t REGB0;
30981 val_t tmp;
30982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30983 fra.me.file = LOCATE_parser;
30984 fra.me.line = 9270;
30985 fra.me.meth = LOCATE_parser___ReduceAction282___action;
30986 fra.me.has_broke = 0;
30987 fra.me.REG_size = 7;
30988 fra.me.REG[0] = NIT_NULL;
30989 fra.me.REG[1] = NIT_NULL;
30990 fra.me.REG[2] = NIT_NULL;
30991 fra.me.REG[3] = NIT_NULL;
30992 fra.me.REG[4] = NIT_NULL;
30993 fra.me.REG[5] = NIT_NULL;
30994 fra.me.REG[6] = NIT_NULL;
30995 fra.me.REG[0] = p0;
30996 fra.me.REG[1] = p1;
30997 /* ./parser//parser.nit:9272 */
30998 fra.me.REG[2] = NIT_NULL;
30999 /* ./parser//parser.nit:9273 */
31000 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31001 /* ./parser//parser.nit:9274 */
31002 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31003 /* ./parser//parser.nit:9275 */
31004 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31005 /* ./parser//parser.nit:9276 */
31006 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31007 /* ./parser//parser.nit:9277 */
31008 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31009 /* ./parser//parser.nit:9278 */
31010 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31011 /* ./parser//parser.nit:9280 */
31012 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwwhile, ID_TKwwhile)) /*cast nullable TKwwhile*/;
31013 if (UNTAG_Bool(REGB0)) {
31014 } else {
31015 nit_abort("Assert failed", NULL, LOCATE_parser, 9280);
31016 }
31017 /* ./parser//parser.nit:9282 */
31018 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31019 if (UNTAG_Bool(REGB0)) {
31020 } else {
31021 nit_abort("Assert failed", NULL, LOCATE_parser, 9282);
31022 }
31023 /* ./parser//parser.nit:9284 */
31024 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
31025 if (UNTAG_Bool(REGB0)) {
31026 } else {
31027 nit_abort("Assert failed", NULL, LOCATE_parser, 9284);
31028 }
31029 /* ./parser//parser.nit:9286 */
31030 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31031 if (UNTAG_Bool(REGB0)) {
31032 } else {
31033 nit_abort("Assert failed", NULL, LOCATE_parser, 9286);
31034 }
31035 /* ./parser//parser.nit:9287 */
31036 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);
31037 /* ./parser//parser.nit:9294 */
31038 fra.me.REG[2] = fra.me.REG[3];
31039 /* ./parser//parser.nit:9295 */
31040 REGB0 = TAG_Bool(ATTR_parser___ReduceAction282____goto(fra.me.REG[0])!=NIT_NULL);
31041 if (UNTAG_Bool(REGB0)) {
31042 } else {
31043 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9295);
31044 }
31045 REGB0 = ATTR_parser___ReduceAction282____goto(fra.me.REG[0]);
31046 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31047 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31048 stack_frame_head = fra.me.prev;
31049 return;
31050 }
31051 void parser___ReduceAction282___init(val_t p0, val_t p1, int* init_table){
31052 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction282].i;
31053 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31054 val_t REGB0;
31055 val_t tmp;
31056 if (init_table[itpos274]) return;
31057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31058 fra.me.file = LOCATE_parser;
31059 fra.me.line = 9298;
31060 fra.me.meth = LOCATE_parser___ReduceAction282___init;
31061 fra.me.has_broke = 0;
31062 fra.me.REG_size = 2;
31063 fra.me.REG[0] = NIT_NULL;
31064 fra.me.REG[1] = NIT_NULL;
31065 fra.me.REG[0] = p0;
31066 REGB0 = p1;
31067 /* ./parser//parser.nit:9298 */
31068 fra.me.REG[1] = fra.me.REG[0];
31069 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31070 ATTR_parser___ReduceAction282____goto(fra.me.REG[1]) = REGB0;
31071 stack_frame_head = fra.me.prev;
31072 init_table[itpos274] = 1;
31073 return;
31074 }
31075 void parser___ReduceAction283___action(val_t p0, val_t p1){
31076 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
31077 val_t REGB0;
31078 val_t tmp;
31079 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31080 fra.me.file = LOCATE_parser;
31081 fra.me.line = 9302;
31082 fra.me.meth = LOCATE_parser___ReduceAction283___action;
31083 fra.me.has_broke = 0;
31084 fra.me.REG_size = 9;
31085 fra.me.REG[0] = NIT_NULL;
31086 fra.me.REG[1] = NIT_NULL;
31087 fra.me.REG[2] = NIT_NULL;
31088 fra.me.REG[3] = NIT_NULL;
31089 fra.me.REG[4] = NIT_NULL;
31090 fra.me.REG[5] = NIT_NULL;
31091 fra.me.REG[6] = NIT_NULL;
31092 fra.me.REG[7] = NIT_NULL;
31093 fra.me.REG[8] = NIT_NULL;
31094 fra.me.REG[0] = p0;
31095 fra.me.REG[1] = p1;
31096 /* ./parser//parser.nit:9304 */
31097 fra.me.REG[2] = NIT_NULL;
31098 /* ./parser//parser.nit:9305 */
31099 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31100 /* ./parser//parser.nit:9306 */
31101 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31102 /* ./parser//parser.nit:9307 */
31103 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31104 /* ./parser//parser.nit:9308 */
31105 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31106 /* ./parser//parser.nit:9309 */
31107 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31108 /* ./parser//parser.nit:9310 */
31109 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31110 /* ./parser//parser.nit:9311 */
31111 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31112 /* ./parser//parser.nit:9312 */
31113 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31114 /* ./parser//parser.nit:9313 */
31115 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31116 /* ./parser//parser.nit:9314 */
31117 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31118 /* ./parser//parser.nit:9315 */
31119 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31120 /* ./parser//parser.nit:9317 */
31121 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwfor, ID_TKwfor)) /*cast nullable TKwfor*/;
31122 if (UNTAG_Bool(REGB0)) {
31123 } else {
31124 nit_abort("Assert failed", NULL, LOCATE_parser, 9317);
31125 }
31126 /* ./parser//parser.nit:9319 */
31127 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31128 if (UNTAG_Bool(REGB0)) {
31129 } else {
31130 nit_abort("Assert failed", NULL, LOCATE_parser, 9319);
31131 }
31132 /* ./parser//parser.nit:9321 */
31133 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31134 if (UNTAG_Bool(REGB0)) {
31135 } else {
31136 nit_abort("Assert failed", NULL, LOCATE_parser, 9321);
31137 }
31138 /* ./parser//parser.nit:9323 */
31139 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
31140 if (UNTAG_Bool(REGB0)) {
31141 } else {
31142 nit_abort("Assert failed", NULL, LOCATE_parser, 9323);
31143 }
31144 /* ./parser//parser.nit:9325 */
31145 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31146 if (UNTAG_Bool(REGB0)) {
31147 } else {
31148 nit_abort("Assert failed", NULL, LOCATE_parser, 9325);
31149 }
31150 /* ./parser//parser.nit:9327 */
31151 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_ALabel, ID_ALabel)) /*cast nullable ALabel*/;
31152 if (UNTAG_Bool(REGB0)) {
31153 } else {
31154 nit_abort("Assert failed", NULL, LOCATE_parser, 9327);
31155 }
31156 /* ./parser//parser.nit:9328 */
31157 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]);
31158 /* ./parser//parser.nit:9336 */
31159 fra.me.REG[2] = fra.me.REG[3];
31160 /* ./parser//parser.nit:9337 */
31161 REGB0 = TAG_Bool(ATTR_parser___ReduceAction283____goto(fra.me.REG[0])!=NIT_NULL);
31162 if (UNTAG_Bool(REGB0)) {
31163 } else {
31164 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9337);
31165 }
31166 REGB0 = ATTR_parser___ReduceAction283____goto(fra.me.REG[0]);
31167 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31168 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31169 stack_frame_head = fra.me.prev;
31170 return;
31171 }
31172 void parser___ReduceAction283___init(val_t p0, val_t p1, int* init_table){
31173 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction283].i;
31174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31175 val_t REGB0;
31176 val_t tmp;
31177 if (init_table[itpos275]) return;
31178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31179 fra.me.file = LOCATE_parser;
31180 fra.me.line = 9340;
31181 fra.me.meth = LOCATE_parser___ReduceAction283___init;
31182 fra.me.has_broke = 0;
31183 fra.me.REG_size = 2;
31184 fra.me.REG[0] = NIT_NULL;
31185 fra.me.REG[1] = NIT_NULL;
31186 fra.me.REG[0] = p0;
31187 REGB0 = p1;
31188 /* ./parser//parser.nit:9340 */
31189 fra.me.REG[1] = fra.me.REG[0];
31190 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31191 ATTR_parser___ReduceAction283____goto(fra.me.REG[1]) = REGB0;
31192 stack_frame_head = fra.me.prev;
31193 init_table[itpos275] = 1;
31194 return;
31195 }
31196 void parser___ReduceAction284___action(val_t p0, val_t p1){
31197 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
31198 val_t REGB0;
31199 val_t tmp;
31200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31201 fra.me.file = LOCATE_parser;
31202 fra.me.line = 9344;
31203 fra.me.meth = LOCATE_parser___ReduceAction284___action;
31204 fra.me.has_broke = 0;
31205 fra.me.REG_size = 8;
31206 fra.me.REG[0] = NIT_NULL;
31207 fra.me.REG[1] = NIT_NULL;
31208 fra.me.REG[2] = NIT_NULL;
31209 fra.me.REG[3] = NIT_NULL;
31210 fra.me.REG[4] = NIT_NULL;
31211 fra.me.REG[5] = NIT_NULL;
31212 fra.me.REG[6] = NIT_NULL;
31213 fra.me.REG[7] = NIT_NULL;
31214 fra.me.REG[0] = p0;
31215 fra.me.REG[1] = p1;
31216 /* ./parser//parser.nit:9346 */
31217 fra.me.REG[2] = NIT_NULL;
31218 /* ./parser//parser.nit:9347 */
31219 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31220 /* ./parser//parser.nit:9348 */
31221 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31222 /* ./parser//parser.nit:9349 */
31223 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31224 /* ./parser//parser.nit:9350 */
31225 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31226 /* ./parser//parser.nit:9351 */
31227 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31228 /* ./parser//parser.nit:9352 */
31229 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31230 /* ./parser//parser.nit:9353 */
31231 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31232 /* ./parser//parser.nit:9354 */
31233 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31234 /* ./parser//parser.nit:9355 */
31235 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31236 /* ./parser//parser.nit:9356 */
31237 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31238 /* ./parser//parser.nit:9358 */
31239 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_TKwfor, ID_TKwfor)) /*cast nullable TKwfor*/;
31240 if (UNTAG_Bool(REGB0)) {
31241 } else {
31242 nit_abort("Assert failed", NULL, LOCATE_parser, 9358);
31243 }
31244 /* ./parser//parser.nit:9360 */
31245 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31246 if (UNTAG_Bool(REGB0)) {
31247 } else {
31248 nit_abort("Assert failed", NULL, LOCATE_parser, 9360);
31249 }
31250 /* ./parser//parser.nit:9362 */
31251 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31252 if (UNTAG_Bool(REGB0)) {
31253 } else {
31254 nit_abort("Assert failed", NULL, LOCATE_parser, 9362);
31255 }
31256 /* ./parser//parser.nit:9364 */
31257 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwdo, ID_TKwdo)) /*cast nullable TKwdo*/;
31258 if (UNTAG_Bool(REGB0)) {
31259 } else {
31260 nit_abort("Assert failed", NULL, LOCATE_parser, 9364);
31261 }
31262 /* ./parser//parser.nit:9366 */
31263 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31264 if (UNTAG_Bool(REGB0)) {
31265 } else {
31266 nit_abort("Assert failed", NULL, LOCATE_parser, 9366);
31267 }
31268 /* ./parser//parser.nit:9367 */
31269 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);
31270 /* ./parser//parser.nit:9375 */
31271 fra.me.REG[2] = fra.me.REG[3];
31272 /* ./parser//parser.nit:9376 */
31273 REGB0 = TAG_Bool(ATTR_parser___ReduceAction284____goto(fra.me.REG[0])!=NIT_NULL);
31274 if (UNTAG_Bool(REGB0)) {
31275 } else {
31276 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9376);
31277 }
31278 REGB0 = ATTR_parser___ReduceAction284____goto(fra.me.REG[0]);
31279 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31280 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31281 stack_frame_head = fra.me.prev;
31282 return;
31283 }
31284 void parser___ReduceAction284___init(val_t p0, val_t p1, int* init_table){
31285 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction284].i;
31286 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31287 val_t REGB0;
31288 val_t tmp;
31289 if (init_table[itpos276]) return;
31290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31291 fra.me.file = LOCATE_parser;
31292 fra.me.line = 9379;
31293 fra.me.meth = LOCATE_parser___ReduceAction284___init;
31294 fra.me.has_broke = 0;
31295 fra.me.REG_size = 2;
31296 fra.me.REG[0] = NIT_NULL;
31297 fra.me.REG[1] = NIT_NULL;
31298 fra.me.REG[0] = p0;
31299 REGB0 = p1;
31300 /* ./parser//parser.nit:9379 */
31301 fra.me.REG[1] = fra.me.REG[0];
31302 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31303 ATTR_parser___ReduceAction284____goto(fra.me.REG[1]) = REGB0;
31304 stack_frame_head = fra.me.prev;
31305 init_table[itpos276] = 1;
31306 return;
31307 }
31308 void parser___ReduceAction285___action(val_t p0, val_t p1){
31309 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31310 val_t REGB0;
31311 val_t tmp;
31312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31313 fra.me.file = LOCATE_parser;
31314 fra.me.line = 9383;
31315 fra.me.meth = LOCATE_parser___ReduceAction285___action;
31316 fra.me.has_broke = 0;
31317 fra.me.REG_size = 6;
31318 fra.me.REG[0] = NIT_NULL;
31319 fra.me.REG[1] = NIT_NULL;
31320 fra.me.REG[2] = NIT_NULL;
31321 fra.me.REG[3] = NIT_NULL;
31322 fra.me.REG[4] = NIT_NULL;
31323 fra.me.REG[5] = NIT_NULL;
31324 fra.me.REG[0] = p0;
31325 fra.me.REG[1] = p1;
31326 /* ./parser//parser.nit:9385 */
31327 fra.me.REG[2] = NIT_NULL;
31328 /* ./parser//parser.nit:9386 */
31329 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31330 /* ./parser//parser.nit:9387 */
31331 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31332 /* ./parser//parser.nit:9388 */
31333 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31334 /* ./parser//parser.nit:9389 */
31335 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31336 /* ./parser//parser.nit:9391 */
31337 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31338 if (UNTAG_Bool(REGB0)) {
31339 } else {
31340 nit_abort("Assert failed", NULL, LOCATE_parser, 9391);
31341 }
31342 /* ./parser//parser.nit:9393 */
31343 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31344 if (UNTAG_Bool(REGB0)) {
31345 } else {
31346 nit_abort("Assert failed", NULL, LOCATE_parser, 9393);
31347 }
31348 /* ./parser//parser.nit:9395 */
31349 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31350 if (UNTAG_Bool(REGB0)) {
31351 } else {
31352 nit_abort("Assert failed", NULL, LOCATE_parser, 9395);
31353 }
31354 /* ./parser//parser.nit:9396 */
31355 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]);
31356 /* ./parser//parser.nit:9402 */
31357 fra.me.REG[2] = fra.me.REG[3];
31358 /* ./parser//parser.nit:9403 */
31359 REGB0 = TAG_Bool(ATTR_parser___ReduceAction285____goto(fra.me.REG[0])!=NIT_NULL);
31360 if (UNTAG_Bool(REGB0)) {
31361 } else {
31362 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9403);
31363 }
31364 REGB0 = ATTR_parser___ReduceAction285____goto(fra.me.REG[0]);
31365 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31366 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31367 stack_frame_head = fra.me.prev;
31368 return;
31369 }
31370 void parser___ReduceAction285___init(val_t p0, val_t p1, int* init_table){
31371 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction285].i;
31372 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31373 val_t REGB0;
31374 val_t tmp;
31375 if (init_table[itpos277]) return;
31376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31377 fra.me.file = LOCATE_parser;
31378 fra.me.line = 9406;
31379 fra.me.meth = LOCATE_parser___ReduceAction285___init;
31380 fra.me.has_broke = 0;
31381 fra.me.REG_size = 2;
31382 fra.me.REG[0] = NIT_NULL;
31383 fra.me.REG[1] = NIT_NULL;
31384 fra.me.REG[0] = p0;
31385 REGB0 = p1;
31386 /* ./parser//parser.nit:9406 */
31387 fra.me.REG[1] = fra.me.REG[0];
31388 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31389 ATTR_parser___ReduceAction285____goto(fra.me.REG[1]) = REGB0;
31390 stack_frame_head = fra.me.prev;
31391 init_table[itpos277] = 1;
31392 return;
31393 }
31394 void parser___ReduceAction286___action(val_t p0, val_t p1){
31395 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
31396 val_t REGB0;
31397 val_t tmp;
31398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31399 fra.me.file = LOCATE_parser;
31400 fra.me.line = 9410;
31401 fra.me.meth = LOCATE_parser___ReduceAction286___action;
31402 fra.me.has_broke = 0;
31403 fra.me.REG_size = 7;
31404 fra.me.REG[0] = NIT_NULL;
31405 fra.me.REG[1] = NIT_NULL;
31406 fra.me.REG[2] = NIT_NULL;
31407 fra.me.REG[3] = NIT_NULL;
31408 fra.me.REG[4] = NIT_NULL;
31409 fra.me.REG[5] = NIT_NULL;
31410 fra.me.REG[6] = NIT_NULL;
31411 fra.me.REG[0] = p0;
31412 fra.me.REG[1] = p1;
31413 /* ./parser//parser.nit:9412 */
31414 fra.me.REG[2] = NIT_NULL;
31415 /* ./parser//parser.nit:9413 */
31416 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31417 /* ./parser//parser.nit:9414 */
31418 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31419 /* ./parser//parser.nit:9415 */
31420 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31421 /* ./parser//parser.nit:9416 */
31422 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31423 /* ./parser//parser.nit:9417 */
31424 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31425 /* ./parser//parser.nit:9419 */
31426 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31427 if (UNTAG_Bool(REGB0)) {
31428 } else {
31429 nit_abort("Assert failed", NULL, LOCATE_parser, 9419);
31430 }
31431 /* ./parser//parser.nit:9421 */
31432 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31433 if (UNTAG_Bool(REGB0)) {
31434 } else {
31435 nit_abort("Assert failed", NULL, LOCATE_parser, 9421);
31436 }
31437 /* ./parser//parser.nit:9423 */
31438 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31439 if (UNTAG_Bool(REGB0)) {
31440 } else {
31441 nit_abort("Assert failed", NULL, LOCATE_parser, 9423);
31442 }
31443 /* ./parser//parser.nit:9425 */
31444 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31445 if (UNTAG_Bool(REGB0)) {
31446 } else {
31447 nit_abort("Assert failed", NULL, LOCATE_parser, 9425);
31448 }
31449 /* ./parser//parser.nit:9426 */
31450 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]);
31451 /* ./parser//parser.nit:9432 */
31452 fra.me.REG[2] = fra.me.REG[3];
31453 /* ./parser//parser.nit:9433 */
31454 REGB0 = TAG_Bool(ATTR_parser___ReduceAction286____goto(fra.me.REG[0])!=NIT_NULL);
31455 if (UNTAG_Bool(REGB0)) {
31456 } else {
31457 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9433);
31458 }
31459 REGB0 = ATTR_parser___ReduceAction286____goto(fra.me.REG[0]);
31460 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31461 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31462 stack_frame_head = fra.me.prev;
31463 return;
31464 }
31465 void parser___ReduceAction286___init(val_t p0, val_t p1, int* init_table){
31466 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction286].i;
31467 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31468 val_t REGB0;
31469 val_t tmp;
31470 if (init_table[itpos278]) return;
31471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31472 fra.me.file = LOCATE_parser;
31473 fra.me.line = 9436;
31474 fra.me.meth = LOCATE_parser___ReduceAction286___init;
31475 fra.me.has_broke = 0;
31476 fra.me.REG_size = 2;
31477 fra.me.REG[0] = NIT_NULL;
31478 fra.me.REG[1] = NIT_NULL;
31479 fra.me.REG[0] = p0;
31480 REGB0 = p1;
31481 /* ./parser//parser.nit:9436 */
31482 fra.me.REG[1] = fra.me.REG[0];
31483 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31484 ATTR_parser___ReduceAction286____goto(fra.me.REG[1]) = REGB0;
31485 stack_frame_head = fra.me.prev;
31486 init_table[itpos278] = 1;
31487 return;
31488 }
31489 void parser___ReduceAction287___action(val_t p0, val_t p1){
31490 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31491 val_t REGB0;
31492 val_t tmp;
31493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31494 fra.me.file = LOCATE_parser;
31495 fra.me.line = 9440;
31496 fra.me.meth = LOCATE_parser___ReduceAction287___action;
31497 fra.me.has_broke = 0;
31498 fra.me.REG_size = 5;
31499 fra.me.REG[0] = NIT_NULL;
31500 fra.me.REG[1] = NIT_NULL;
31501 fra.me.REG[2] = NIT_NULL;
31502 fra.me.REG[3] = NIT_NULL;
31503 fra.me.REG[4] = NIT_NULL;
31504 fra.me.REG[0] = p0;
31505 fra.me.REG[1] = p1;
31506 /* ./parser//parser.nit:9442 */
31507 fra.me.REG[2] = NIT_NULL;
31508 /* ./parser//parser.nit:9443 */
31509 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31510 /* ./parser//parser.nit:9444 */
31511 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31512 /* ./parser//parser.nit:9446 */
31513 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31514 if (UNTAG_Bool(REGB0)) {
31515 } else {
31516 nit_abort("Assert failed", NULL, LOCATE_parser, 9446);
31517 }
31518 /* ./parser//parser.nit:9448 */
31519 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31520 if (UNTAG_Bool(REGB0)) {
31521 } else {
31522 nit_abort("Assert failed", NULL, LOCATE_parser, 9448);
31523 }
31524 /* ./parser//parser.nit:9449 */
31525 fra.me.REG[3] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
31526 /* ./parser//parser.nit:9455 */
31527 fra.me.REG[2] = fra.me.REG[3];
31528 /* ./parser//parser.nit:9456 */
31529 REGB0 = TAG_Bool(ATTR_parser___ReduceAction287____goto(fra.me.REG[0])!=NIT_NULL);
31530 if (UNTAG_Bool(REGB0)) {
31531 } else {
31532 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9456);
31533 }
31534 REGB0 = ATTR_parser___ReduceAction287____goto(fra.me.REG[0]);
31535 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31536 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31537 stack_frame_head = fra.me.prev;
31538 return;
31539 }
31540 void parser___ReduceAction287___init(val_t p0, val_t p1, int* init_table){
31541 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction287].i;
31542 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31543 val_t REGB0;
31544 val_t tmp;
31545 if (init_table[itpos279]) return;
31546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31547 fra.me.file = LOCATE_parser;
31548 fra.me.line = 9459;
31549 fra.me.meth = LOCATE_parser___ReduceAction287___init;
31550 fra.me.has_broke = 0;
31551 fra.me.REG_size = 2;
31552 fra.me.REG[0] = NIT_NULL;
31553 fra.me.REG[1] = NIT_NULL;
31554 fra.me.REG[0] = p0;
31555 REGB0 = p1;
31556 /* ./parser//parser.nit:9459 */
31557 fra.me.REG[1] = fra.me.REG[0];
31558 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31559 ATTR_parser___ReduceAction287____goto(fra.me.REG[1]) = REGB0;
31560 stack_frame_head = fra.me.prev;
31561 init_table[itpos279] = 1;
31562 return;
31563 }
31564 void parser___ReduceAction288___action(val_t p0, val_t p1){
31565 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31566 val_t REGB0;
31567 val_t tmp;
31568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31569 fra.me.file = LOCATE_parser;
31570 fra.me.line = 9463;
31571 fra.me.meth = LOCATE_parser___ReduceAction288___action;
31572 fra.me.has_broke = 0;
31573 fra.me.REG_size = 6;
31574 fra.me.REG[0] = NIT_NULL;
31575 fra.me.REG[1] = NIT_NULL;
31576 fra.me.REG[2] = NIT_NULL;
31577 fra.me.REG[3] = NIT_NULL;
31578 fra.me.REG[4] = NIT_NULL;
31579 fra.me.REG[5] = NIT_NULL;
31580 fra.me.REG[0] = p0;
31581 fra.me.REG[1] = p1;
31582 /* ./parser//parser.nit:9465 */
31583 fra.me.REG[2] = NIT_NULL;
31584 /* ./parser//parser.nit:9466 */
31585 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31586 /* ./parser//parser.nit:9467 */
31587 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31588 /* ./parser//parser.nit:9468 */
31589 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31590 /* ./parser//parser.nit:9470 */
31591 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwassert, ID_TKwassert)) /*cast nullable TKwassert*/;
31592 if (UNTAG_Bool(REGB0)) {
31593 } else {
31594 nit_abort("Assert failed", NULL, LOCATE_parser, 9470);
31595 }
31596 /* ./parser//parser.nit:9472 */
31597 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
31598 if (UNTAG_Bool(REGB0)) {
31599 } else {
31600 nit_abort("Assert failed", NULL, LOCATE_parser, 9472);
31601 }
31602 /* ./parser//parser.nit:9474 */
31603 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31604 if (UNTAG_Bool(REGB0)) {
31605 } else {
31606 nit_abort("Assert failed", NULL, LOCATE_parser, 9474);
31607 }
31608 /* ./parser//parser.nit:9475 */
31609 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);
31610 /* ./parser//parser.nit:9481 */
31611 fra.me.REG[2] = fra.me.REG[3];
31612 /* ./parser//parser.nit:9482 */
31613 REGB0 = TAG_Bool(ATTR_parser___ReduceAction288____goto(fra.me.REG[0])!=NIT_NULL);
31614 if (UNTAG_Bool(REGB0)) {
31615 } else {
31616 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9482);
31617 }
31618 REGB0 = ATTR_parser___ReduceAction288____goto(fra.me.REG[0]);
31619 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31620 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31621 stack_frame_head = fra.me.prev;
31622 return;
31623 }
31624 void parser___ReduceAction288___init(val_t p0, val_t p1, int* init_table){
31625 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction288].i;
31626 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31627 val_t REGB0;
31628 val_t tmp;
31629 if (init_table[itpos280]) return;
31630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31631 fra.me.file = LOCATE_parser;
31632 fra.me.line = 9485;
31633 fra.me.meth = LOCATE_parser___ReduceAction288___init;
31634 fra.me.has_broke = 0;
31635 fra.me.REG_size = 2;
31636 fra.me.REG[0] = NIT_NULL;
31637 fra.me.REG[1] = NIT_NULL;
31638 fra.me.REG[0] = p0;
31639 REGB0 = p1;
31640 /* ./parser//parser.nit:9485 */
31641 fra.me.REG[1] = fra.me.REG[0];
31642 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31643 ATTR_parser___ReduceAction288____goto(fra.me.REG[1]) = REGB0;
31644 stack_frame_head = fra.me.prev;
31645 init_table[itpos280] = 1;
31646 return;
31647 }
31648 void parser___ReduceAction289___action(val_t p0, val_t p1){
31649 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31650 val_t REGB0;
31651 val_t tmp;
31652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31653 fra.me.file = LOCATE_parser;
31654 fra.me.line = 9489;
31655 fra.me.meth = LOCATE_parser___ReduceAction289___action;
31656 fra.me.has_broke = 0;
31657 fra.me.REG_size = 4;
31658 fra.me.REG[0] = NIT_NULL;
31659 fra.me.REG[1] = NIT_NULL;
31660 fra.me.REG[2] = NIT_NULL;
31661 fra.me.REG[3] = NIT_NULL;
31662 fra.me.REG[0] = p0;
31663 fra.me.REG[1] = p1;
31664 /* ./parser//parser.nit:9491 */
31665 fra.me.REG[2] = NIT_NULL;
31666 /* ./parser//parser.nit:9492 */
31667 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31668 /* ./parser//parser.nit:9493 */
31669 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31670 /* ./parser//parser.nit:9495 */
31671 fra.me.REG[2] = fra.me.REG[3];
31672 /* ./parser//parser.nit:9496 */
31673 REGB0 = TAG_Bool(ATTR_parser___ReduceAction289____goto(fra.me.REG[0])!=NIT_NULL);
31674 if (UNTAG_Bool(REGB0)) {
31675 } else {
31676 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9496);
31677 }
31678 REGB0 = ATTR_parser___ReduceAction289____goto(fra.me.REG[0]);
31679 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31680 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31681 stack_frame_head = fra.me.prev;
31682 return;
31683 }
31684 void parser___ReduceAction289___init(val_t p0, val_t p1, int* init_table){
31685 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction289].i;
31686 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31687 val_t REGB0;
31688 val_t tmp;
31689 if (init_table[itpos281]) return;
31690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31691 fra.me.file = LOCATE_parser;
31692 fra.me.line = 9499;
31693 fra.me.meth = LOCATE_parser___ReduceAction289___init;
31694 fra.me.has_broke = 0;
31695 fra.me.REG_size = 2;
31696 fra.me.REG[0] = NIT_NULL;
31697 fra.me.REG[1] = NIT_NULL;
31698 fra.me.REG[0] = p0;
31699 REGB0 = p1;
31700 /* ./parser//parser.nit:9499 */
31701 fra.me.REG[1] = fra.me.REG[0];
31702 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31703 ATTR_parser___ReduceAction289____goto(fra.me.REG[1]) = REGB0;
31704 stack_frame_head = fra.me.prev;
31705 init_table[itpos281] = 1;
31706 return;
31707 }
31708 void parser___ReduceAction293___action(val_t p0, val_t p1){
31709 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
31710 val_t REGB0;
31711 val_t tmp;
31712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31713 fra.me.file = LOCATE_parser;
31714 fra.me.line = 9503;
31715 fra.me.meth = LOCATE_parser___ReduceAction293___action;
31716 fra.me.has_broke = 0;
31717 fra.me.REG_size = 8;
31718 fra.me.REG[0] = NIT_NULL;
31719 fra.me.REG[1] = NIT_NULL;
31720 fra.me.REG[2] = NIT_NULL;
31721 fra.me.REG[3] = NIT_NULL;
31722 fra.me.REG[4] = NIT_NULL;
31723 fra.me.REG[5] = NIT_NULL;
31724 fra.me.REG[6] = NIT_NULL;
31725 fra.me.REG[7] = NIT_NULL;
31726 fra.me.REG[0] = p0;
31727 fra.me.REG[1] = p1;
31728 /* ./parser//parser.nit:9505 */
31729 fra.me.REG[2] = NIT_NULL;
31730 /* ./parser//parser.nit:9506 */
31731 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31732 /* ./parser//parser.nit:9507 */
31733 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31734 /* ./parser//parser.nit:9508 */
31735 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31736 /* ./parser//parser.nit:9509 */
31737 fra.me.REG[6] = NEW_Array_array___Array___init();
31738 /* ./parser//parser.nit:9510 */
31739 fra.me.REG[7] = NEW_Array_array___Array___init();
31740 /* ./parser//parser.nit:9512 */
31741 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31742 if (UNTAG_Bool(REGB0)) {
31743 } else {
31744 nit_abort("Assert failed", NULL, LOCATE_parser, 9512);
31745 }
31746 /* ./parser//parser.nit:9514 */
31747 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
31748 if (UNTAG_Bool(REGB0)) {
31749 } else {
31750 nit_abort("Assert failed", NULL, LOCATE_parser, 9514);
31751 }
31752 /* ./parser//parser.nit:9515 */
31753 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
31754 fra.me.REG[6] = fra.me.REG[4];
31755 /* ./parser//parser.nit:9517 */
31756 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
31757 if (UNTAG_Bool(REGB0)) {
31758 } else {
31759 nit_abort("Assert failed", NULL, LOCATE_parser, 9517);
31760 }
31761 /* ./parser//parser.nit:9518 */
31762 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
31763 fra.me.REG[7] = fra.me.REG[3];
31764 /* ./parser//parser.nit:9519 */
31765 fra.me.REG[7] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
31766 /* ./parser//parser.nit:9524 */
31767 fra.me.REG[2] = fra.me.REG[7];
31768 /* ./parser//parser.nit:9525 */
31769 REGB0 = TAG_Bool(ATTR_parser___ReduceAction293____goto(fra.me.REG[0])!=NIT_NULL);
31770 if (UNTAG_Bool(REGB0)) {
31771 } else {
31772 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9525);
31773 }
31774 REGB0 = ATTR_parser___ReduceAction293____goto(fra.me.REG[0]);
31775 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31776 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31777 stack_frame_head = fra.me.prev;
31778 return;
31779 }
31780 void parser___ReduceAction293___init(val_t p0, val_t p1, int* init_table){
31781 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction293].i;
31782 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31783 val_t REGB0;
31784 val_t tmp;
31785 if (init_table[itpos282]) return;
31786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31787 fra.me.file = LOCATE_parser;
31788 fra.me.line = 9528;
31789 fra.me.meth = LOCATE_parser___ReduceAction293___init;
31790 fra.me.has_broke = 0;
31791 fra.me.REG_size = 2;
31792 fra.me.REG[0] = NIT_NULL;
31793 fra.me.REG[1] = NIT_NULL;
31794 fra.me.REG[0] = p0;
31795 REGB0 = p1;
31796 /* ./parser//parser.nit:9528 */
31797 fra.me.REG[1] = fra.me.REG[0];
31798 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31799 ATTR_parser___ReduceAction293____goto(fra.me.REG[1]) = REGB0;
31800 stack_frame_head = fra.me.prev;
31801 init_table[itpos282] = 1;
31802 return;
31803 }
31804 void parser___ReduceAction295___action(val_t p0, val_t p1){
31805 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
31806 val_t REGB0;
31807 val_t tmp;
31808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31809 fra.me.file = LOCATE_parser;
31810 fra.me.line = 9532;
31811 fra.me.meth = LOCATE_parser___ReduceAction295___action;
31812 fra.me.has_broke = 0;
31813 fra.me.REG_size = 9;
31814 fra.me.REG[0] = NIT_NULL;
31815 fra.me.REG[1] = NIT_NULL;
31816 fra.me.REG[2] = NIT_NULL;
31817 fra.me.REG[3] = NIT_NULL;
31818 fra.me.REG[4] = NIT_NULL;
31819 fra.me.REG[5] = NIT_NULL;
31820 fra.me.REG[6] = NIT_NULL;
31821 fra.me.REG[7] = NIT_NULL;
31822 fra.me.REG[8] = NIT_NULL;
31823 fra.me.REG[0] = p0;
31824 fra.me.REG[1] = p1;
31825 /* ./parser//parser.nit:9534 */
31826 fra.me.REG[2] = NIT_NULL;
31827 /* ./parser//parser.nit:9535 */
31828 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31829 /* ./parser//parser.nit:9536 */
31830 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31831 /* ./parser//parser.nit:9537 */
31832 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31833 /* ./parser//parser.nit:9538 */
31834 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31835 /* ./parser//parser.nit:9539 */
31836 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31837 /* ./parser//parser.nit:9540 */
31838 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31839 /* ./parser//parser.nit:9541 */
31840 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31841 /* ./parser//parser.nit:9542 */
31842 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31843 /* ./parser//parser.nit:9543 */
31844 fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31845 /* ./parser//parser.nit:9544 */
31846 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31847 /* ./parser//parser.nit:9545 */
31848 fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31849 /* ./parser//parser.nit:9547 */
31850 REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_TKwif, ID_TKwif)) /*cast nullable TKwif*/;
31851 if (UNTAG_Bool(REGB0)) {
31852 } else {
31853 nit_abort("Assert failed", NULL, LOCATE_parser, 9547);
31854 }
31855 /* ./parser//parser.nit:9549 */
31856 REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31857 if (UNTAG_Bool(REGB0)) {
31858 } else {
31859 nit_abort("Assert failed", NULL, LOCATE_parser, 9549);
31860 }
31861 /* ./parser//parser.nit:9551 */
31862 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwthen, ID_TKwthen)) /*cast nullable TKwthen*/;
31863 if (UNTAG_Bool(REGB0)) {
31864 } else {
31865 nit_abort("Assert failed", NULL, LOCATE_parser, 9551);
31866 }
31867 /* ./parser//parser.nit:9553 */
31868 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31869 if (UNTAG_Bool(REGB0)) {
31870 } else {
31871 nit_abort("Assert failed", NULL, LOCATE_parser, 9553);
31872 }
31873 /* ./parser//parser.nit:9555 */
31874 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwelse, ID_TKwelse)) /*cast nullable TKwelse*/;
31875 if (UNTAG_Bool(REGB0)) {
31876 } else {
31877 nit_abort("Assert failed", NULL, LOCATE_parser, 9555);
31878 }
31879 /* ./parser//parser.nit:9557 */
31880 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31881 if (UNTAG_Bool(REGB0)) {
31882 } else {
31883 nit_abort("Assert failed", NULL, LOCATE_parser, 9557);
31884 }
31885 /* ./parser//parser.nit:9558 */
31886 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]);
31887 /* ./parser//parser.nit:9566 */
31888 fra.me.REG[2] = fra.me.REG[3];
31889 /* ./parser//parser.nit:9567 */
31890 REGB0 = TAG_Bool(ATTR_parser___ReduceAction295____goto(fra.me.REG[0])!=NIT_NULL);
31891 if (UNTAG_Bool(REGB0)) {
31892 } else {
31893 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9567);
31894 }
31895 REGB0 = ATTR_parser___ReduceAction295____goto(fra.me.REG[0]);
31896 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31897 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31898 stack_frame_head = fra.me.prev;
31899 return;
31900 }
31901 void parser___ReduceAction295___init(val_t p0, val_t p1, int* init_table){
31902 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction295].i;
31903 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31904 val_t REGB0;
31905 val_t tmp;
31906 if (init_table[itpos283]) return;
31907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31908 fra.me.file = LOCATE_parser;
31909 fra.me.line = 9570;
31910 fra.me.meth = LOCATE_parser___ReduceAction295___init;
31911 fra.me.has_broke = 0;
31912 fra.me.REG_size = 2;
31913 fra.me.REG[0] = NIT_NULL;
31914 fra.me.REG[1] = NIT_NULL;
31915 fra.me.REG[0] = p0;
31916 REGB0 = p1;
31917 /* ./parser//parser.nit:9570 */
31918 fra.me.REG[1] = fra.me.REG[0];
31919 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31920 ATTR_parser___ReduceAction295____goto(fra.me.REG[1]) = REGB0;
31921 stack_frame_head = fra.me.prev;
31922 init_table[itpos283] = 1;
31923 return;
31924 }
31925 void parser___ReduceAction297___action(val_t p0, val_t p1){
31926 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31927 val_t REGB0;
31928 val_t tmp;
31929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31930 fra.me.file = LOCATE_parser;
31931 fra.me.line = 9574;
31932 fra.me.meth = LOCATE_parser___ReduceAction297___action;
31933 fra.me.has_broke = 0;
31934 fra.me.REG_size = 5;
31935 fra.me.REG[0] = NIT_NULL;
31936 fra.me.REG[1] = NIT_NULL;
31937 fra.me.REG[2] = NIT_NULL;
31938 fra.me.REG[3] = NIT_NULL;
31939 fra.me.REG[4] = NIT_NULL;
31940 fra.me.REG[0] = p0;
31941 fra.me.REG[1] = p1;
31942 /* ./parser//parser.nit:9576 */
31943 fra.me.REG[2] = NIT_NULL;
31944 /* ./parser//parser.nit:9577 */
31945 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31946 /* ./parser//parser.nit:9578 */
31947 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31948 /* ./parser//parser.nit:9579 */
31949 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31950 /* ./parser//parser.nit:9580 */
31951 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
31952 /* ./parser//parser.nit:9582 */
31953 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31954 if (UNTAG_Bool(REGB0)) {
31955 } else {
31956 nit_abort("Assert failed", NULL, LOCATE_parser, 9582);
31957 }
31958 /* ./parser//parser.nit:9584 */
31959 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
31960 if (UNTAG_Bool(REGB0)) {
31961 } else {
31962 nit_abort("Assert failed", NULL, LOCATE_parser, 9584);
31963 }
31964 /* ./parser//parser.nit:9585 */
31965 fra.me.REG[3] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr(fra.me.REG[4], fra.me.REG[3]);
31966 /* ./parser//parser.nit:9589 */
31967 fra.me.REG[2] = fra.me.REG[3];
31968 /* ./parser//parser.nit:9590 */
31969 REGB0 = TAG_Bool(ATTR_parser___ReduceAction297____goto(fra.me.REG[0])!=NIT_NULL);
31970 if (UNTAG_Bool(REGB0)) {
31971 } else {
31972 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9590);
31973 }
31974 REGB0 = ATTR_parser___ReduceAction297____goto(fra.me.REG[0]);
31975 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
31976 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
31977 stack_frame_head = fra.me.prev;
31978 return;
31979 }
31980 void parser___ReduceAction297___init(val_t p0, val_t p1, int* init_table){
31981 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction297].i;
31982 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31983 val_t REGB0;
31984 val_t tmp;
31985 if (init_table[itpos284]) return;
31986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31987 fra.me.file = LOCATE_parser;
31988 fra.me.line = 9593;
31989 fra.me.meth = LOCATE_parser___ReduceAction297___init;
31990 fra.me.has_broke = 0;
31991 fra.me.REG_size = 2;
31992 fra.me.REG[0] = NIT_NULL;
31993 fra.me.REG[1] = NIT_NULL;
31994 fra.me.REG[0] = p0;
31995 REGB0 = p1;
31996 /* ./parser//parser.nit:9593 */
31997 fra.me.REG[1] = fra.me.REG[0];
31998 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
31999 ATTR_parser___ReduceAction297____goto(fra.me.REG[1]) = REGB0;
32000 stack_frame_head = fra.me.prev;
32001 init_table[itpos284] = 1;
32002 return;
32003 }
32004 void parser___ReduceAction298___action(val_t p0, val_t p1){
32005 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32006 val_t REGB0;
32007 val_t tmp;
32008 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32009 fra.me.file = LOCATE_parser;
32010 fra.me.line = 9597;
32011 fra.me.meth = LOCATE_parser___ReduceAction298___action;
32012 fra.me.has_broke = 0;
32013 fra.me.REG_size = 5;
32014 fra.me.REG[0] = NIT_NULL;
32015 fra.me.REG[1] = NIT_NULL;
32016 fra.me.REG[2] = NIT_NULL;
32017 fra.me.REG[3] = NIT_NULL;
32018 fra.me.REG[4] = NIT_NULL;
32019 fra.me.REG[0] = p0;
32020 fra.me.REG[1] = p1;
32021 /* ./parser//parser.nit:9599 */
32022 fra.me.REG[2] = NIT_NULL;
32023 /* ./parser//parser.nit:9600 */
32024 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32025 /* ./parser//parser.nit:9601 */
32026 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32027 /* ./parser//parser.nit:9602 */
32028 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32029 /* ./parser//parser.nit:9603 */
32030 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32031 /* ./parser//parser.nit:9605 */
32032 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32033 if (UNTAG_Bool(REGB0)) {
32034 } else {
32035 nit_abort("Assert failed", NULL, LOCATE_parser, 9605);
32036 }
32037 /* ./parser//parser.nit:9607 */
32038 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32039 if (UNTAG_Bool(REGB0)) {
32040 } else {
32041 nit_abort("Assert failed", NULL, LOCATE_parser, 9607);
32042 }
32043 /* ./parser//parser.nit:9608 */
32044 fra.me.REG[3] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr(fra.me.REG[4], fra.me.REG[3]);
32045 /* ./parser//parser.nit:9612 */
32046 fra.me.REG[2] = fra.me.REG[3];
32047 /* ./parser//parser.nit:9613 */
32048 REGB0 = TAG_Bool(ATTR_parser___ReduceAction298____goto(fra.me.REG[0])!=NIT_NULL);
32049 if (UNTAG_Bool(REGB0)) {
32050 } else {
32051 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9613);
32052 }
32053 REGB0 = ATTR_parser___ReduceAction298____goto(fra.me.REG[0]);
32054 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32055 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32056 stack_frame_head = fra.me.prev;
32057 return;
32058 }
32059 void parser___ReduceAction298___init(val_t p0, val_t p1, int* init_table){
32060 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction298].i;
32061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32062 val_t REGB0;
32063 val_t tmp;
32064 if (init_table[itpos285]) return;
32065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32066 fra.me.file = LOCATE_parser;
32067 fra.me.line = 9616;
32068 fra.me.meth = LOCATE_parser___ReduceAction298___init;
32069 fra.me.has_broke = 0;
32070 fra.me.REG_size = 2;
32071 fra.me.REG[0] = NIT_NULL;
32072 fra.me.REG[1] = NIT_NULL;
32073 fra.me.REG[0] = p0;
32074 REGB0 = p1;
32075 /* ./parser//parser.nit:9616 */
32076 fra.me.REG[1] = fra.me.REG[0];
32077 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32078 ATTR_parser___ReduceAction298____goto(fra.me.REG[1]) = REGB0;
32079 stack_frame_head = fra.me.prev;
32080 init_table[itpos285] = 1;
32081 return;
32082 }
32083 void parser___ReduceAction299___action(val_t p0, val_t p1){
32084 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32085 val_t REGB0;
32086 val_t tmp;
32087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32088 fra.me.file = LOCATE_parser;
32089 fra.me.line = 9620;
32090 fra.me.meth = LOCATE_parser___ReduceAction299___action;
32091 fra.me.has_broke = 0;
32092 fra.me.REG_size = 5;
32093 fra.me.REG[0] = NIT_NULL;
32094 fra.me.REG[1] = NIT_NULL;
32095 fra.me.REG[2] = NIT_NULL;
32096 fra.me.REG[3] = NIT_NULL;
32097 fra.me.REG[4] = NIT_NULL;
32098 fra.me.REG[0] = p0;
32099 fra.me.REG[1] = p1;
32100 /* ./parser//parser.nit:9622 */
32101 fra.me.REG[2] = NIT_NULL;
32102 /* ./parser//parser.nit:9623 */
32103 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32104 /* ./parser//parser.nit:9624 */
32105 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32106 /* ./parser//parser.nit:9625 */
32107 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32108 /* ./parser//parser.nit:9626 */
32109 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32110 /* ./parser//parser.nit:9627 */
32111 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32112 /* ./parser//parser.nit:9629 */
32113 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32114 if (UNTAG_Bool(REGB0)) {
32115 } else {
32116 nit_abort("Assert failed", NULL, LOCATE_parser, 9629);
32117 }
32118 /* ./parser//parser.nit:9631 */
32119 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32120 if (UNTAG_Bool(REGB0)) {
32121 } else {
32122 nit_abort("Assert failed", NULL, LOCATE_parser, 9631);
32123 }
32124 /* ./parser//parser.nit:9632 */
32125 fra.me.REG[3] = NEW_AOrElseExpr_parser_prod___AOrElseExpr___init_aorelseexpr(fra.me.REG[4], fra.me.REG[3]);
32126 /* ./parser//parser.nit:9636 */
32127 fra.me.REG[2] = fra.me.REG[3];
32128 /* ./parser//parser.nit:9637 */
32129 REGB0 = TAG_Bool(ATTR_parser___ReduceAction299____goto(fra.me.REG[0])!=NIT_NULL);
32130 if (UNTAG_Bool(REGB0)) {
32131 } else {
32132 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9637);
32133 }
32134 REGB0 = ATTR_parser___ReduceAction299____goto(fra.me.REG[0]);
32135 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32136 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32137 stack_frame_head = fra.me.prev;
32138 return;
32139 }
32140 void parser___ReduceAction299___init(val_t p0, val_t p1, int* init_table){
32141 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction299].i;
32142 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32143 val_t REGB0;
32144 val_t tmp;
32145 if (init_table[itpos286]) return;
32146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32147 fra.me.file = LOCATE_parser;
32148 fra.me.line = 9640;
32149 fra.me.meth = LOCATE_parser___ReduceAction299___init;
32150 fra.me.has_broke = 0;
32151 fra.me.REG_size = 2;
32152 fra.me.REG[0] = NIT_NULL;
32153 fra.me.REG[1] = NIT_NULL;
32154 fra.me.REG[0] = p0;
32155 REGB0 = p1;
32156 /* ./parser//parser.nit:9640 */
32157 fra.me.REG[1] = fra.me.REG[0];
32158 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32159 ATTR_parser___ReduceAction299____goto(fra.me.REG[1]) = REGB0;
32160 stack_frame_head = fra.me.prev;
32161 init_table[itpos286] = 1;
32162 return;
32163 }
32164 void parser___ReduceAction301___action(val_t p0, val_t p1){
32165 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32166 val_t REGB0;
32167 val_t tmp;
32168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32169 fra.me.file = LOCATE_parser;
32170 fra.me.line = 9644;
32171 fra.me.meth = LOCATE_parser___ReduceAction301___action;
32172 fra.me.has_broke = 0;
32173 fra.me.REG_size = 5;
32174 fra.me.REG[0] = NIT_NULL;
32175 fra.me.REG[1] = NIT_NULL;
32176 fra.me.REG[2] = NIT_NULL;
32177 fra.me.REG[3] = NIT_NULL;
32178 fra.me.REG[4] = NIT_NULL;
32179 fra.me.REG[0] = p0;
32180 fra.me.REG[1] = p1;
32181 /* ./parser//parser.nit:9646 */
32182 fra.me.REG[2] = NIT_NULL;
32183 /* ./parser//parser.nit:9647 */
32184 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32185 /* ./parser//parser.nit:9648 */
32186 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32187 /* ./parser//parser.nit:9649 */
32188 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32189 /* ./parser//parser.nit:9651 */
32190 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwnot, ID_TKwnot)) /*cast nullable TKwnot*/;
32191 if (UNTAG_Bool(REGB0)) {
32192 } else {
32193 nit_abort("Assert failed", NULL, LOCATE_parser, 9651);
32194 }
32195 /* ./parser//parser.nit:9653 */
32196 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32197 if (UNTAG_Bool(REGB0)) {
32198 } else {
32199 nit_abort("Assert failed", NULL, LOCATE_parser, 9653);
32200 }
32201 /* ./parser//parser.nit:9654 */
32202 fra.me.REG[3] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr(fra.me.REG[4], fra.me.REG[3]);
32203 /* ./parser//parser.nit:9658 */
32204 fra.me.REG[2] = fra.me.REG[3];
32205 /* ./parser//parser.nit:9659 */
32206 REGB0 = TAG_Bool(ATTR_parser___ReduceAction301____goto(fra.me.REG[0])!=NIT_NULL);
32207 if (UNTAG_Bool(REGB0)) {
32208 } else {
32209 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9659);
32210 }
32211 REGB0 = ATTR_parser___ReduceAction301____goto(fra.me.REG[0]);
32212 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32213 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32214 stack_frame_head = fra.me.prev;
32215 return;
32216 }
32217 void parser___ReduceAction301___init(val_t p0, val_t p1, int* init_table){
32218 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction301].i;
32219 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32220 val_t REGB0;
32221 val_t tmp;
32222 if (init_table[itpos287]) return;
32223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32224 fra.me.file = LOCATE_parser;
32225 fra.me.line = 9662;
32226 fra.me.meth = LOCATE_parser___ReduceAction301___init;
32227 fra.me.has_broke = 0;
32228 fra.me.REG_size = 2;
32229 fra.me.REG[0] = NIT_NULL;
32230 fra.me.REG[1] = NIT_NULL;
32231 fra.me.REG[0] = p0;
32232 REGB0 = p1;
32233 /* ./parser//parser.nit:9662 */
32234 fra.me.REG[1] = fra.me.REG[0];
32235 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32236 ATTR_parser___ReduceAction301____goto(fra.me.REG[1]) = REGB0;
32237 stack_frame_head = fra.me.prev;
32238 init_table[itpos287] = 1;
32239 return;
32240 }
32241 void parser___ReduceAction303___action(val_t p0, val_t p1){
32242 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32243 val_t REGB0;
32244 val_t tmp;
32245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32246 fra.me.file = LOCATE_parser;
32247 fra.me.line = 9666;
32248 fra.me.meth = LOCATE_parser___ReduceAction303___action;
32249 fra.me.has_broke = 0;
32250 fra.me.REG_size = 5;
32251 fra.me.REG[0] = NIT_NULL;
32252 fra.me.REG[1] = NIT_NULL;
32253 fra.me.REG[2] = NIT_NULL;
32254 fra.me.REG[3] = NIT_NULL;
32255 fra.me.REG[4] = NIT_NULL;
32256 fra.me.REG[0] = p0;
32257 fra.me.REG[1] = p1;
32258 /* ./parser//parser.nit:9668 */
32259 fra.me.REG[2] = NIT_NULL;
32260 /* ./parser//parser.nit:9669 */
32261 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32262 /* ./parser//parser.nit:9670 */
32263 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32264 /* ./parser//parser.nit:9671 */
32265 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32266 /* ./parser//parser.nit:9672 */
32267 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32268 /* ./parser//parser.nit:9674 */
32269 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32270 if (UNTAG_Bool(REGB0)) {
32271 } else {
32272 nit_abort("Assert failed", NULL, LOCATE_parser, 9674);
32273 }
32274 /* ./parser//parser.nit:9676 */
32275 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32276 if (UNTAG_Bool(REGB0)) {
32277 } else {
32278 nit_abort("Assert failed", NULL, LOCATE_parser, 9676);
32279 }
32280 /* ./parser//parser.nit:9677 */
32281 fra.me.REG[3] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr(fra.me.REG[4], fra.me.REG[3]);
32282 /* ./parser//parser.nit:9681 */
32283 fra.me.REG[2] = fra.me.REG[3];
32284 /* ./parser//parser.nit:9682 */
32285 REGB0 = TAG_Bool(ATTR_parser___ReduceAction303____goto(fra.me.REG[0])!=NIT_NULL);
32286 if (UNTAG_Bool(REGB0)) {
32287 } else {
32288 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9682);
32289 }
32290 REGB0 = ATTR_parser___ReduceAction303____goto(fra.me.REG[0]);
32291 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32292 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32293 stack_frame_head = fra.me.prev;
32294 return;
32295 }
32296 void parser___ReduceAction303___init(val_t p0, val_t p1, int* init_table){
32297 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction303].i;
32298 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32299 val_t REGB0;
32300 val_t tmp;
32301 if (init_table[itpos288]) return;
32302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32303 fra.me.file = LOCATE_parser;
32304 fra.me.line = 9685;
32305 fra.me.meth = LOCATE_parser___ReduceAction303___init;
32306 fra.me.has_broke = 0;
32307 fra.me.REG_size = 2;
32308 fra.me.REG[0] = NIT_NULL;
32309 fra.me.REG[1] = NIT_NULL;
32310 fra.me.REG[0] = p0;
32311 REGB0 = p1;
32312 /* ./parser//parser.nit:9685 */
32313 fra.me.REG[1] = fra.me.REG[0];
32314 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32315 ATTR_parser___ReduceAction303____goto(fra.me.REG[1]) = REGB0;
32316 stack_frame_head = fra.me.prev;
32317 init_table[itpos288] = 1;
32318 return;
32319 }
32320 void parser___ReduceAction304___action(val_t p0, val_t p1){
32321 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32322 val_t REGB0;
32323 val_t tmp;
32324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32325 fra.me.file = LOCATE_parser;
32326 fra.me.line = 9689;
32327 fra.me.meth = LOCATE_parser___ReduceAction304___action;
32328 fra.me.has_broke = 0;
32329 fra.me.REG_size = 5;
32330 fra.me.REG[0] = NIT_NULL;
32331 fra.me.REG[1] = NIT_NULL;
32332 fra.me.REG[2] = NIT_NULL;
32333 fra.me.REG[3] = NIT_NULL;
32334 fra.me.REG[4] = NIT_NULL;
32335 fra.me.REG[0] = p0;
32336 fra.me.REG[1] = p1;
32337 /* ./parser//parser.nit:9691 */
32338 fra.me.REG[2] = NIT_NULL;
32339 /* ./parser//parser.nit:9692 */
32340 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32341 /* ./parser//parser.nit:9693 */
32342 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32343 /* ./parser//parser.nit:9694 */
32344 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32345 /* ./parser//parser.nit:9695 */
32346 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32347 /* ./parser//parser.nit:9697 */
32348 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32349 if (UNTAG_Bool(REGB0)) {
32350 } else {
32351 nit_abort("Assert failed", NULL, LOCATE_parser, 9697);
32352 }
32353 /* ./parser//parser.nit:9699 */
32354 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32355 if (UNTAG_Bool(REGB0)) {
32356 } else {
32357 nit_abort("Assert failed", NULL, LOCATE_parser, 9699);
32358 }
32359 /* ./parser//parser.nit:9700 */
32360 fra.me.REG[3] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr(fra.me.REG[4], fra.me.REG[3]);
32361 /* ./parser//parser.nit:9704 */
32362 fra.me.REG[2] = fra.me.REG[3];
32363 /* ./parser//parser.nit:9705 */
32364 REGB0 = TAG_Bool(ATTR_parser___ReduceAction304____goto(fra.me.REG[0])!=NIT_NULL);
32365 if (UNTAG_Bool(REGB0)) {
32366 } else {
32367 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9705);
32368 }
32369 REGB0 = ATTR_parser___ReduceAction304____goto(fra.me.REG[0]);
32370 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32371 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32372 stack_frame_head = fra.me.prev;
32373 return;
32374 }
32375 void parser___ReduceAction304___init(val_t p0, val_t p1, int* init_table){
32376 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction304].i;
32377 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32378 val_t REGB0;
32379 val_t tmp;
32380 if (init_table[itpos289]) return;
32381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32382 fra.me.file = LOCATE_parser;
32383 fra.me.line = 9708;
32384 fra.me.meth = LOCATE_parser___ReduceAction304___init;
32385 fra.me.has_broke = 0;
32386 fra.me.REG_size = 2;
32387 fra.me.REG[0] = NIT_NULL;
32388 fra.me.REG[1] = NIT_NULL;
32389 fra.me.REG[0] = p0;
32390 REGB0 = p1;
32391 /* ./parser//parser.nit:9708 */
32392 fra.me.REG[1] = fra.me.REG[0];
32393 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32394 ATTR_parser___ReduceAction304____goto(fra.me.REG[1]) = REGB0;
32395 stack_frame_head = fra.me.prev;
32396 init_table[itpos289] = 1;
32397 return;
32398 }
32399 void parser___ReduceAction305___action(val_t p0, val_t p1){
32400 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32401 val_t REGB0;
32402 val_t tmp;
32403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32404 fra.me.file = LOCATE_parser;
32405 fra.me.line = 9712;
32406 fra.me.meth = LOCATE_parser___ReduceAction305___action;
32407 fra.me.has_broke = 0;
32408 fra.me.REG_size = 5;
32409 fra.me.REG[0] = NIT_NULL;
32410 fra.me.REG[1] = NIT_NULL;
32411 fra.me.REG[2] = NIT_NULL;
32412 fra.me.REG[3] = NIT_NULL;
32413 fra.me.REG[4] = NIT_NULL;
32414 fra.me.REG[0] = p0;
32415 fra.me.REG[1] = p1;
32416 /* ./parser//parser.nit:9714 */
32417 fra.me.REG[2] = NIT_NULL;
32418 /* ./parser//parser.nit:9715 */
32419 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32420 /* ./parser//parser.nit:9716 */
32421 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32422 /* ./parser//parser.nit:9717 */
32423 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32424 /* ./parser//parser.nit:9718 */
32425 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32426 /* ./parser//parser.nit:9720 */
32427 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32428 if (UNTAG_Bool(REGB0)) {
32429 } else {
32430 nit_abort("Assert failed", NULL, LOCATE_parser, 9720);
32431 }
32432 /* ./parser//parser.nit:9722 */
32433 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32434 if (UNTAG_Bool(REGB0)) {
32435 } else {
32436 nit_abort("Assert failed", NULL, LOCATE_parser, 9722);
32437 }
32438 /* ./parser//parser.nit:9723 */
32439 fra.me.REG[3] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr(fra.me.REG[4], fra.me.REG[3]);
32440 /* ./parser//parser.nit:9727 */
32441 fra.me.REG[2] = fra.me.REG[3];
32442 /* ./parser//parser.nit:9728 */
32443 REGB0 = TAG_Bool(ATTR_parser___ReduceAction305____goto(fra.me.REG[0])!=NIT_NULL);
32444 if (UNTAG_Bool(REGB0)) {
32445 } else {
32446 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9728);
32447 }
32448 REGB0 = ATTR_parser___ReduceAction305____goto(fra.me.REG[0]);
32449 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32450 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32451 stack_frame_head = fra.me.prev;
32452 return;
32453 }
32454 void parser___ReduceAction305___init(val_t p0, val_t p1, int* init_table){
32455 int itpos290 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction305].i;
32456 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32457 val_t REGB0;
32458 val_t tmp;
32459 if (init_table[itpos290]) return;
32460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32461 fra.me.file = LOCATE_parser;
32462 fra.me.line = 9731;
32463 fra.me.meth = LOCATE_parser___ReduceAction305___init;
32464 fra.me.has_broke = 0;
32465 fra.me.REG_size = 2;
32466 fra.me.REG[0] = NIT_NULL;
32467 fra.me.REG[1] = NIT_NULL;
32468 fra.me.REG[0] = p0;
32469 REGB0 = p1;
32470 /* ./parser//parser.nit:9731 */
32471 fra.me.REG[1] = fra.me.REG[0];
32472 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32473 ATTR_parser___ReduceAction305____goto(fra.me.REG[1]) = REGB0;
32474 stack_frame_head = fra.me.prev;
32475 init_table[itpos290] = 1;
32476 return;
32477 }
32478 void parser___ReduceAction306___action(val_t p0, val_t p1){
32479 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32480 val_t REGB0;
32481 val_t tmp;
32482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32483 fra.me.file = LOCATE_parser;
32484 fra.me.line = 9735;
32485 fra.me.meth = LOCATE_parser___ReduceAction306___action;
32486 fra.me.has_broke = 0;
32487 fra.me.REG_size = 5;
32488 fra.me.REG[0] = NIT_NULL;
32489 fra.me.REG[1] = NIT_NULL;
32490 fra.me.REG[2] = NIT_NULL;
32491 fra.me.REG[3] = NIT_NULL;
32492 fra.me.REG[4] = NIT_NULL;
32493 fra.me.REG[0] = p0;
32494 fra.me.REG[1] = p1;
32495 /* ./parser//parser.nit:9737 */
32496 fra.me.REG[2] = NIT_NULL;
32497 /* ./parser//parser.nit:9738 */
32498 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32499 /* ./parser//parser.nit:9739 */
32500 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32501 /* ./parser//parser.nit:9740 */
32502 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32503 /* ./parser//parser.nit:9741 */
32504 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32505 /* ./parser//parser.nit:9743 */
32506 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32507 if (UNTAG_Bool(REGB0)) {
32508 } else {
32509 nit_abort("Assert failed", NULL, LOCATE_parser, 9743);
32510 }
32511 /* ./parser//parser.nit:9745 */
32512 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32513 if (UNTAG_Bool(REGB0)) {
32514 } else {
32515 nit_abort("Assert failed", NULL, LOCATE_parser, 9745);
32516 }
32517 /* ./parser//parser.nit:9746 */
32518 fra.me.REG[3] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr(fra.me.REG[4], fra.me.REG[3]);
32519 /* ./parser//parser.nit:9750 */
32520 fra.me.REG[2] = fra.me.REG[3];
32521 /* ./parser//parser.nit:9751 */
32522 REGB0 = TAG_Bool(ATTR_parser___ReduceAction306____goto(fra.me.REG[0])!=NIT_NULL);
32523 if (UNTAG_Bool(REGB0)) {
32524 } else {
32525 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9751);
32526 }
32527 REGB0 = ATTR_parser___ReduceAction306____goto(fra.me.REG[0]);
32528 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32529 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32530 stack_frame_head = fra.me.prev;
32531 return;
32532 }
32533 void parser___ReduceAction306___init(val_t p0, val_t p1, int* init_table){
32534 int itpos291 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction306].i;
32535 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32536 val_t REGB0;
32537 val_t tmp;
32538 if (init_table[itpos291]) return;
32539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32540 fra.me.file = LOCATE_parser;
32541 fra.me.line = 9754;
32542 fra.me.meth = LOCATE_parser___ReduceAction306___init;
32543 fra.me.has_broke = 0;
32544 fra.me.REG_size = 2;
32545 fra.me.REG[0] = NIT_NULL;
32546 fra.me.REG[1] = NIT_NULL;
32547 fra.me.REG[0] = p0;
32548 REGB0 = p1;
32549 /* ./parser//parser.nit:9754 */
32550 fra.me.REG[1] = fra.me.REG[0];
32551 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32552 ATTR_parser___ReduceAction306____goto(fra.me.REG[1]) = REGB0;
32553 stack_frame_head = fra.me.prev;
32554 init_table[itpos291] = 1;
32555 return;
32556 }
32557 void parser___ReduceAction307___action(val_t p0, val_t p1){
32558 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32559 val_t REGB0;
32560 val_t tmp;
32561 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32562 fra.me.file = LOCATE_parser;
32563 fra.me.line = 9758;
32564 fra.me.meth = LOCATE_parser___ReduceAction307___action;
32565 fra.me.has_broke = 0;
32566 fra.me.REG_size = 5;
32567 fra.me.REG[0] = NIT_NULL;
32568 fra.me.REG[1] = NIT_NULL;
32569 fra.me.REG[2] = NIT_NULL;
32570 fra.me.REG[3] = NIT_NULL;
32571 fra.me.REG[4] = NIT_NULL;
32572 fra.me.REG[0] = p0;
32573 fra.me.REG[1] = p1;
32574 /* ./parser//parser.nit:9760 */
32575 fra.me.REG[2] = NIT_NULL;
32576 /* ./parser//parser.nit:9761 */
32577 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32578 /* ./parser//parser.nit:9762 */
32579 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32580 /* ./parser//parser.nit:9763 */
32581 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32582 /* ./parser//parser.nit:9764 */
32583 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32584 /* ./parser//parser.nit:9766 */
32585 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32586 if (UNTAG_Bool(REGB0)) {
32587 } else {
32588 nit_abort("Assert failed", NULL, LOCATE_parser, 9766);
32589 }
32590 /* ./parser//parser.nit:9768 */
32591 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32592 if (UNTAG_Bool(REGB0)) {
32593 } else {
32594 nit_abort("Assert failed", NULL, LOCATE_parser, 9768);
32595 }
32596 /* ./parser//parser.nit:9769 */
32597 fra.me.REG[3] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr(fra.me.REG[4], fra.me.REG[3]);
32598 /* ./parser//parser.nit:9773 */
32599 fra.me.REG[2] = fra.me.REG[3];
32600 /* ./parser//parser.nit:9774 */
32601 REGB0 = TAG_Bool(ATTR_parser___ReduceAction307____goto(fra.me.REG[0])!=NIT_NULL);
32602 if (UNTAG_Bool(REGB0)) {
32603 } else {
32604 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9774);
32605 }
32606 REGB0 = ATTR_parser___ReduceAction307____goto(fra.me.REG[0]);
32607 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32608 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32609 stack_frame_head = fra.me.prev;
32610 return;
32611 }
32612 void parser___ReduceAction307___init(val_t p0, val_t p1, int* init_table){
32613 int itpos292 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction307].i;
32614 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32615 val_t REGB0;
32616 val_t tmp;
32617 if (init_table[itpos292]) return;
32618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32619 fra.me.file = LOCATE_parser;
32620 fra.me.line = 9777;
32621 fra.me.meth = LOCATE_parser___ReduceAction307___init;
32622 fra.me.has_broke = 0;
32623 fra.me.REG_size = 2;
32624 fra.me.REG[0] = NIT_NULL;
32625 fra.me.REG[1] = NIT_NULL;
32626 fra.me.REG[0] = p0;
32627 REGB0 = p1;
32628 /* ./parser//parser.nit:9777 */
32629 fra.me.REG[1] = fra.me.REG[0];
32630 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32631 ATTR_parser___ReduceAction307____goto(fra.me.REG[1]) = REGB0;
32632 stack_frame_head = fra.me.prev;
32633 init_table[itpos292] = 1;
32634 return;
32635 }
32636 void parser___ReduceAction308___action(val_t p0, val_t p1){
32637 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32638 val_t REGB0;
32639 val_t tmp;
32640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32641 fra.me.file = LOCATE_parser;
32642 fra.me.line = 9781;
32643 fra.me.meth = LOCATE_parser___ReduceAction308___action;
32644 fra.me.has_broke = 0;
32645 fra.me.REG_size = 5;
32646 fra.me.REG[0] = NIT_NULL;
32647 fra.me.REG[1] = NIT_NULL;
32648 fra.me.REG[2] = NIT_NULL;
32649 fra.me.REG[3] = NIT_NULL;
32650 fra.me.REG[4] = NIT_NULL;
32651 fra.me.REG[0] = p0;
32652 fra.me.REG[1] = p1;
32653 /* ./parser//parser.nit:9783 */
32654 fra.me.REG[2] = NIT_NULL;
32655 /* ./parser//parser.nit:9784 */
32656 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32657 /* ./parser//parser.nit:9785 */
32658 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32659 /* ./parser//parser.nit:9786 */
32660 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32661 /* ./parser//parser.nit:9787 */
32662 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32663 /* ./parser//parser.nit:9789 */
32664 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32665 if (UNTAG_Bool(REGB0)) {
32666 } else {
32667 nit_abort("Assert failed", NULL, LOCATE_parser, 9789);
32668 }
32669 /* ./parser//parser.nit:9791 */
32670 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32671 if (UNTAG_Bool(REGB0)) {
32672 } else {
32673 nit_abort("Assert failed", NULL, LOCATE_parser, 9791);
32674 }
32675 /* ./parser//parser.nit:9792 */
32676 fra.me.REG[3] = NEW_ALlExpr_parser_prod___ALlExpr___init_allexpr(fra.me.REG[4], fra.me.REG[3]);
32677 /* ./parser//parser.nit:9796 */
32678 fra.me.REG[2] = fra.me.REG[3];
32679 /* ./parser//parser.nit:9797 */
32680 REGB0 = TAG_Bool(ATTR_parser___ReduceAction308____goto(fra.me.REG[0])!=NIT_NULL);
32681 if (UNTAG_Bool(REGB0)) {
32682 } else {
32683 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9797);
32684 }
32685 REGB0 = ATTR_parser___ReduceAction308____goto(fra.me.REG[0]);
32686 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32687 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32688 stack_frame_head = fra.me.prev;
32689 return;
32690 }
32691 void parser___ReduceAction308___init(val_t p0, val_t p1, int* init_table){
32692 int itpos293 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction308].i;
32693 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32694 val_t REGB0;
32695 val_t tmp;
32696 if (init_table[itpos293]) return;
32697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32698 fra.me.file = LOCATE_parser;
32699 fra.me.line = 9800;
32700 fra.me.meth = LOCATE_parser___ReduceAction308___init;
32701 fra.me.has_broke = 0;
32702 fra.me.REG_size = 2;
32703 fra.me.REG[0] = NIT_NULL;
32704 fra.me.REG[1] = NIT_NULL;
32705 fra.me.REG[0] = p0;
32706 REGB0 = p1;
32707 /* ./parser//parser.nit:9800 */
32708 fra.me.REG[1] = fra.me.REG[0];
32709 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32710 ATTR_parser___ReduceAction308____goto(fra.me.REG[1]) = REGB0;
32711 stack_frame_head = fra.me.prev;
32712 init_table[itpos293] = 1;
32713 return;
32714 }
32715 void parser___ReduceAction309___action(val_t p0, val_t p1){
32716 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32717 val_t REGB0;
32718 val_t tmp;
32719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32720 fra.me.file = LOCATE_parser;
32721 fra.me.line = 9804;
32722 fra.me.meth = LOCATE_parser___ReduceAction309___action;
32723 fra.me.has_broke = 0;
32724 fra.me.REG_size = 5;
32725 fra.me.REG[0] = NIT_NULL;
32726 fra.me.REG[1] = NIT_NULL;
32727 fra.me.REG[2] = NIT_NULL;
32728 fra.me.REG[3] = NIT_NULL;
32729 fra.me.REG[4] = NIT_NULL;
32730 fra.me.REG[0] = p0;
32731 fra.me.REG[1] = p1;
32732 /* ./parser//parser.nit:9806 */
32733 fra.me.REG[2] = NIT_NULL;
32734 /* ./parser//parser.nit:9807 */
32735 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32736 /* ./parser//parser.nit:9808 */
32737 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32738 /* ./parser//parser.nit:9809 */
32739 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32740 /* ./parser//parser.nit:9810 */
32741 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32742 /* ./parser//parser.nit:9812 */
32743 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32744 if (UNTAG_Bool(REGB0)) {
32745 } else {
32746 nit_abort("Assert failed", NULL, LOCATE_parser, 9812);
32747 }
32748 /* ./parser//parser.nit:9814 */
32749 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32750 if (UNTAG_Bool(REGB0)) {
32751 } else {
32752 nit_abort("Assert failed", NULL, LOCATE_parser, 9814);
32753 }
32754 /* ./parser//parser.nit:9815 */
32755 fra.me.REG[3] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr(fra.me.REG[4], fra.me.REG[3]);
32756 /* ./parser//parser.nit:9819 */
32757 fra.me.REG[2] = fra.me.REG[3];
32758 /* ./parser//parser.nit:9820 */
32759 REGB0 = TAG_Bool(ATTR_parser___ReduceAction309____goto(fra.me.REG[0])!=NIT_NULL);
32760 if (UNTAG_Bool(REGB0)) {
32761 } else {
32762 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9820);
32763 }
32764 REGB0 = ATTR_parser___ReduceAction309____goto(fra.me.REG[0]);
32765 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32766 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32767 stack_frame_head = fra.me.prev;
32768 return;
32769 }
32770 void parser___ReduceAction309___init(val_t p0, val_t p1, int* init_table){
32771 int itpos294 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction309].i;
32772 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32773 val_t REGB0;
32774 val_t tmp;
32775 if (init_table[itpos294]) return;
32776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32777 fra.me.file = LOCATE_parser;
32778 fra.me.line = 9823;
32779 fra.me.meth = LOCATE_parser___ReduceAction309___init;
32780 fra.me.has_broke = 0;
32781 fra.me.REG_size = 2;
32782 fra.me.REG[0] = NIT_NULL;
32783 fra.me.REG[1] = NIT_NULL;
32784 fra.me.REG[0] = p0;
32785 REGB0 = p1;
32786 /* ./parser//parser.nit:9823 */
32787 fra.me.REG[1] = fra.me.REG[0];
32788 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32789 ATTR_parser___ReduceAction309____goto(fra.me.REG[1]) = REGB0;
32790 stack_frame_head = fra.me.prev;
32791 init_table[itpos294] = 1;
32792 return;
32793 }
32794 void parser___ReduceAction310___action(val_t p0, val_t p1){
32795 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32796 val_t REGB0;
32797 val_t tmp;
32798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32799 fra.me.file = LOCATE_parser;
32800 fra.me.line = 9827;
32801 fra.me.meth = LOCATE_parser___ReduceAction310___action;
32802 fra.me.has_broke = 0;
32803 fra.me.REG_size = 5;
32804 fra.me.REG[0] = NIT_NULL;
32805 fra.me.REG[1] = NIT_NULL;
32806 fra.me.REG[2] = NIT_NULL;
32807 fra.me.REG[3] = NIT_NULL;
32808 fra.me.REG[4] = NIT_NULL;
32809 fra.me.REG[0] = p0;
32810 fra.me.REG[1] = p1;
32811 /* ./parser//parser.nit:9829 */
32812 fra.me.REG[2] = NIT_NULL;
32813 /* ./parser//parser.nit:9830 */
32814 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32815 /* ./parser//parser.nit:9831 */
32816 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32817 /* ./parser//parser.nit:9832 */
32818 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32819 /* ./parser//parser.nit:9833 */
32820 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32821 /* ./parser//parser.nit:9835 */
32822 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32823 if (UNTAG_Bool(REGB0)) {
32824 } else {
32825 nit_abort("Assert failed", NULL, LOCATE_parser, 9835);
32826 }
32827 /* ./parser//parser.nit:9837 */
32828 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32829 if (UNTAG_Bool(REGB0)) {
32830 } else {
32831 nit_abort("Assert failed", NULL, LOCATE_parser, 9837);
32832 }
32833 /* ./parser//parser.nit:9838 */
32834 fra.me.REG[3] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr(fra.me.REG[4], fra.me.REG[3]);
32835 /* ./parser//parser.nit:9842 */
32836 fra.me.REG[2] = fra.me.REG[3];
32837 /* ./parser//parser.nit:9843 */
32838 REGB0 = TAG_Bool(ATTR_parser___ReduceAction310____goto(fra.me.REG[0])!=NIT_NULL);
32839 if (UNTAG_Bool(REGB0)) {
32840 } else {
32841 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9843);
32842 }
32843 REGB0 = ATTR_parser___ReduceAction310____goto(fra.me.REG[0]);
32844 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32845 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32846 stack_frame_head = fra.me.prev;
32847 return;
32848 }
32849 void parser___ReduceAction310___init(val_t p0, val_t p1, int* init_table){
32850 int itpos295 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction310].i;
32851 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32852 val_t REGB0;
32853 val_t tmp;
32854 if (init_table[itpos295]) return;
32855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32856 fra.me.file = LOCATE_parser;
32857 fra.me.line = 9846;
32858 fra.me.meth = LOCATE_parser___ReduceAction310___init;
32859 fra.me.has_broke = 0;
32860 fra.me.REG_size = 2;
32861 fra.me.REG[0] = NIT_NULL;
32862 fra.me.REG[1] = NIT_NULL;
32863 fra.me.REG[0] = p0;
32864 REGB0 = p1;
32865 /* ./parser//parser.nit:9846 */
32866 fra.me.REG[1] = fra.me.REG[0];
32867 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32868 ATTR_parser___ReduceAction310____goto(fra.me.REG[1]) = REGB0;
32869 stack_frame_head = fra.me.prev;
32870 init_table[itpos295] = 1;
32871 return;
32872 }
32873 void parser___ReduceAction311___action(val_t p0, val_t p1){
32874 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32875 val_t REGB0;
32876 val_t tmp;
32877 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32878 fra.me.file = LOCATE_parser;
32879 fra.me.line = 9850;
32880 fra.me.meth = LOCATE_parser___ReduceAction311___action;
32881 fra.me.has_broke = 0;
32882 fra.me.REG_size = 5;
32883 fra.me.REG[0] = NIT_NULL;
32884 fra.me.REG[1] = NIT_NULL;
32885 fra.me.REG[2] = NIT_NULL;
32886 fra.me.REG[3] = NIT_NULL;
32887 fra.me.REG[4] = NIT_NULL;
32888 fra.me.REG[0] = p0;
32889 fra.me.REG[1] = p1;
32890 /* ./parser//parser.nit:9852 */
32891 fra.me.REG[2] = NIT_NULL;
32892 /* ./parser//parser.nit:9853 */
32893 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32894 /* ./parser//parser.nit:9854 */
32895 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32896 /* ./parser//parser.nit:9855 */
32897 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32898 /* ./parser//parser.nit:9856 */
32899 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32900 /* ./parser//parser.nit:9858 */
32901 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32902 if (UNTAG_Bool(REGB0)) {
32903 } else {
32904 nit_abort("Assert failed", NULL, LOCATE_parser, 9858);
32905 }
32906 /* ./parser//parser.nit:9860 */
32907 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32908 if (UNTAG_Bool(REGB0)) {
32909 } else {
32910 nit_abort("Assert failed", NULL, LOCATE_parser, 9860);
32911 }
32912 /* ./parser//parser.nit:9861 */
32913 fra.me.REG[3] = NEW_AGgExpr_parser_prod___AGgExpr___init_aggexpr(fra.me.REG[4], fra.me.REG[3]);
32914 /* ./parser//parser.nit:9865 */
32915 fra.me.REG[2] = fra.me.REG[3];
32916 /* ./parser//parser.nit:9866 */
32917 REGB0 = TAG_Bool(ATTR_parser___ReduceAction311____goto(fra.me.REG[0])!=NIT_NULL);
32918 if (UNTAG_Bool(REGB0)) {
32919 } else {
32920 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9866);
32921 }
32922 REGB0 = ATTR_parser___ReduceAction311____goto(fra.me.REG[0]);
32923 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
32924 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
32925 stack_frame_head = fra.me.prev;
32926 return;
32927 }
32928 void parser___ReduceAction311___init(val_t p0, val_t p1, int* init_table){
32929 int itpos296 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction311].i;
32930 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32931 val_t REGB0;
32932 val_t tmp;
32933 if (init_table[itpos296]) return;
32934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32935 fra.me.file = LOCATE_parser;
32936 fra.me.line = 9869;
32937 fra.me.meth = LOCATE_parser___ReduceAction311___init;
32938 fra.me.has_broke = 0;
32939 fra.me.REG_size = 2;
32940 fra.me.REG[0] = NIT_NULL;
32941 fra.me.REG[1] = NIT_NULL;
32942 fra.me.REG[0] = p0;
32943 REGB0 = p1;
32944 /* ./parser//parser.nit:9869 */
32945 fra.me.REG[1] = fra.me.REG[0];
32946 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
32947 ATTR_parser___ReduceAction311____goto(fra.me.REG[1]) = REGB0;
32948 stack_frame_head = fra.me.prev;
32949 init_table[itpos296] = 1;
32950 return;
32951 }
32952 void parser___ReduceAction312___action(val_t p0, val_t p1){
32953 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32954 val_t REGB0;
32955 val_t tmp;
32956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32957 fra.me.file = LOCATE_parser;
32958 fra.me.line = 9873;
32959 fra.me.meth = LOCATE_parser___ReduceAction312___action;
32960 fra.me.has_broke = 0;
32961 fra.me.REG_size = 5;
32962 fra.me.REG[0] = NIT_NULL;
32963 fra.me.REG[1] = NIT_NULL;
32964 fra.me.REG[2] = NIT_NULL;
32965 fra.me.REG[3] = NIT_NULL;
32966 fra.me.REG[4] = NIT_NULL;
32967 fra.me.REG[0] = p0;
32968 fra.me.REG[1] = p1;
32969 /* ./parser//parser.nit:9875 */
32970 fra.me.REG[2] = NIT_NULL;
32971 /* ./parser//parser.nit:9876 */
32972 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32973 /* ./parser//parser.nit:9877 */
32974 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32975 /* ./parser//parser.nit:9878 */
32976 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32977 /* ./parser//parser.nit:9879 */
32978 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
32979 /* ./parser//parser.nit:9881 */
32980 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32981 if (UNTAG_Bool(REGB0)) {
32982 } else {
32983 nit_abort("Assert failed", NULL, LOCATE_parser, 9881);
32984 }
32985 /* ./parser//parser.nit:9883 */
32986 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
32987 if (UNTAG_Bool(REGB0)) {
32988 } else {
32989 nit_abort("Assert failed", NULL, LOCATE_parser, 9883);
32990 }
32991 /* ./parser//parser.nit:9884 */
32992 fra.me.REG[3] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr(fra.me.REG[4], fra.me.REG[3]);
32993 /* ./parser//parser.nit:9888 */
32994 fra.me.REG[2] = fra.me.REG[3];
32995 /* ./parser//parser.nit:9889 */
32996 REGB0 = TAG_Bool(ATTR_parser___ReduceAction312____goto(fra.me.REG[0])!=NIT_NULL);
32997 if (UNTAG_Bool(REGB0)) {
32998 } else {
32999 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9889);
33000 }
33001 REGB0 = ATTR_parser___ReduceAction312____goto(fra.me.REG[0]);
33002 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33003 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33004 stack_frame_head = fra.me.prev;
33005 return;
33006 }
33007 void parser___ReduceAction312___init(val_t p0, val_t p1, int* init_table){
33008 int itpos297 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction312].i;
33009 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33010 val_t REGB0;
33011 val_t tmp;
33012 if (init_table[itpos297]) return;
33013 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33014 fra.me.file = LOCATE_parser;
33015 fra.me.line = 9892;
33016 fra.me.meth = LOCATE_parser___ReduceAction312___init;
33017 fra.me.has_broke = 0;
33018 fra.me.REG_size = 2;
33019 fra.me.REG[0] = NIT_NULL;
33020 fra.me.REG[1] = NIT_NULL;
33021 fra.me.REG[0] = p0;
33022 REGB0 = p1;
33023 /* ./parser//parser.nit:9892 */
33024 fra.me.REG[1] = fra.me.REG[0];
33025 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33026 ATTR_parser___ReduceAction312____goto(fra.me.REG[1]) = REGB0;
33027 stack_frame_head = fra.me.prev;
33028 init_table[itpos297] = 1;
33029 return;
33030 }
33031 void parser___ReduceAction313___action(val_t p0, val_t p1){
33032 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33033 val_t REGB0;
33034 val_t tmp;
33035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33036 fra.me.file = LOCATE_parser;
33037 fra.me.line = 9896;
33038 fra.me.meth = LOCATE_parser___ReduceAction313___action;
33039 fra.me.has_broke = 0;
33040 fra.me.REG_size = 5;
33041 fra.me.REG[0] = NIT_NULL;
33042 fra.me.REG[1] = NIT_NULL;
33043 fra.me.REG[2] = NIT_NULL;
33044 fra.me.REG[3] = NIT_NULL;
33045 fra.me.REG[4] = NIT_NULL;
33046 fra.me.REG[0] = p0;
33047 fra.me.REG[1] = p1;
33048 /* ./parser//parser.nit:9898 */
33049 fra.me.REG[2] = NIT_NULL;
33050 /* ./parser//parser.nit:9899 */
33051 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33052 /* ./parser//parser.nit:9900 */
33053 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33054 /* ./parser//parser.nit:9901 */
33055 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33056 /* ./parser//parser.nit:9902 */
33057 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33058 /* ./parser//parser.nit:9904 */
33059 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33060 if (UNTAG_Bool(REGB0)) {
33061 } else {
33062 nit_abort("Assert failed", NULL, LOCATE_parser, 9904);
33063 }
33064 /* ./parser//parser.nit:9906 */
33065 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
33066 if (UNTAG_Bool(REGB0)) {
33067 } else {
33068 nit_abort("Assert failed", NULL, LOCATE_parser, 9906);
33069 }
33070 /* ./parser//parser.nit:9907 */
33071 fra.me.REG[3] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr(fra.me.REG[4], fra.me.REG[3]);
33072 /* ./parser//parser.nit:9911 */
33073 fra.me.REG[2] = fra.me.REG[3];
33074 /* ./parser//parser.nit:9912 */
33075 REGB0 = TAG_Bool(ATTR_parser___ReduceAction313____goto(fra.me.REG[0])!=NIT_NULL);
33076 if (UNTAG_Bool(REGB0)) {
33077 } else {
33078 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9912);
33079 }
33080 REGB0 = ATTR_parser___ReduceAction313____goto(fra.me.REG[0]);
33081 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33082 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33083 stack_frame_head = fra.me.prev;
33084 return;
33085 }
33086 void parser___ReduceAction313___init(val_t p0, val_t p1, int* init_table){
33087 int itpos298 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction313].i;
33088 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33089 val_t REGB0;
33090 val_t tmp;
33091 if (init_table[itpos298]) return;
33092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33093 fra.me.file = LOCATE_parser;
33094 fra.me.line = 9915;
33095 fra.me.meth = LOCATE_parser___ReduceAction313___init;
33096 fra.me.has_broke = 0;
33097 fra.me.REG_size = 2;
33098 fra.me.REG[0] = NIT_NULL;
33099 fra.me.REG[1] = NIT_NULL;
33100 fra.me.REG[0] = p0;
33101 REGB0 = p1;
33102 /* ./parser//parser.nit:9915 */
33103 fra.me.REG[1] = fra.me.REG[0];
33104 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33105 ATTR_parser___ReduceAction313____goto(fra.me.REG[1]) = REGB0;
33106 stack_frame_head = fra.me.prev;
33107 init_table[itpos298] = 1;
33108 return;
33109 }
33110 void parser___ReduceAction315___action(val_t p0, val_t p1){
33111 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33112 val_t REGB0;
33113 val_t tmp;
33114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33115 fra.me.file = LOCATE_parser;
33116 fra.me.line = 9919;
33117 fra.me.meth = LOCATE_parser___ReduceAction315___action;
33118 fra.me.has_broke = 0;
33119 fra.me.REG_size = 5;
33120 fra.me.REG[0] = NIT_NULL;
33121 fra.me.REG[1] = NIT_NULL;
33122 fra.me.REG[2] = NIT_NULL;
33123 fra.me.REG[3] = NIT_NULL;
33124 fra.me.REG[4] = NIT_NULL;
33125 fra.me.REG[0] = p0;
33126 fra.me.REG[1] = p1;
33127 /* ./parser//parser.nit:9921 */
33128 fra.me.REG[2] = NIT_NULL;
33129 /* ./parser//parser.nit:9922 */
33130 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33131 /* ./parser//parser.nit:9923 */
33132 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33133 /* ./parser//parser.nit:9924 */
33134 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33135 /* ./parser//parser.nit:9925 */
33136 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33137 /* ./parser//parser.nit:9927 */
33138 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33139 if (UNTAG_Bool(REGB0)) {
33140 } else {
33141 nit_abort("Assert failed", NULL, LOCATE_parser, 9927);
33142 }
33143 /* ./parser//parser.nit:9929 */
33144 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33145 if (UNTAG_Bool(REGB0)) {
33146 } else {
33147 nit_abort("Assert failed", NULL, LOCATE_parser, 9929);
33148 }
33149 /* ./parser//parser.nit:9930 */
33150 fra.me.REG[3] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr(fra.me.REG[4], fra.me.REG[3]);
33151 /* ./parser//parser.nit:9934 */
33152 fra.me.REG[2] = fra.me.REG[3];
33153 /* ./parser//parser.nit:9935 */
33154 REGB0 = TAG_Bool(ATTR_parser___ReduceAction315____goto(fra.me.REG[0])!=NIT_NULL);
33155 if (UNTAG_Bool(REGB0)) {
33156 } else {
33157 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9935);
33158 }
33159 REGB0 = ATTR_parser___ReduceAction315____goto(fra.me.REG[0]);
33160 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33161 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33162 stack_frame_head = fra.me.prev;
33163 return;
33164 }
33165 void parser___ReduceAction315___init(val_t p0, val_t p1, int* init_table){
33166 int itpos299 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction315].i;
33167 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33168 val_t REGB0;
33169 val_t tmp;
33170 if (init_table[itpos299]) return;
33171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33172 fra.me.file = LOCATE_parser;
33173 fra.me.line = 9938;
33174 fra.me.meth = LOCATE_parser___ReduceAction315___init;
33175 fra.me.has_broke = 0;
33176 fra.me.REG_size = 2;
33177 fra.me.REG[0] = NIT_NULL;
33178 fra.me.REG[1] = NIT_NULL;
33179 fra.me.REG[0] = p0;
33180 REGB0 = p1;
33181 /* ./parser//parser.nit:9938 */
33182 fra.me.REG[1] = fra.me.REG[0];
33183 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33184 ATTR_parser___ReduceAction315____goto(fra.me.REG[1]) = REGB0;
33185 stack_frame_head = fra.me.prev;
33186 init_table[itpos299] = 1;
33187 return;
33188 }
33189 void parser___ReduceAction316___action(val_t p0, val_t p1){
33190 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33191 val_t REGB0;
33192 val_t tmp;
33193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33194 fra.me.file = LOCATE_parser;
33195 fra.me.line = 9942;
33196 fra.me.meth = LOCATE_parser___ReduceAction316___action;
33197 fra.me.has_broke = 0;
33198 fra.me.REG_size = 5;
33199 fra.me.REG[0] = NIT_NULL;
33200 fra.me.REG[1] = NIT_NULL;
33201 fra.me.REG[2] = NIT_NULL;
33202 fra.me.REG[3] = NIT_NULL;
33203 fra.me.REG[4] = NIT_NULL;
33204 fra.me.REG[0] = p0;
33205 fra.me.REG[1] = p1;
33206 /* ./parser//parser.nit:9944 */
33207 fra.me.REG[2] = NIT_NULL;
33208 /* ./parser//parser.nit:9945 */
33209 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33210 /* ./parser//parser.nit:9946 */
33211 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33212 /* ./parser//parser.nit:9947 */
33213 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33214 /* ./parser//parser.nit:9948 */
33215 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33216 /* ./parser//parser.nit:9950 */
33217 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33218 if (UNTAG_Bool(REGB0)) {
33219 } else {
33220 nit_abort("Assert failed", NULL, LOCATE_parser, 9950);
33221 }
33222 /* ./parser//parser.nit:9952 */
33223 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33224 if (UNTAG_Bool(REGB0)) {
33225 } else {
33226 nit_abort("Assert failed", NULL, LOCATE_parser, 9952);
33227 }
33228 /* ./parser//parser.nit:9953 */
33229 fra.me.REG[3] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr(fra.me.REG[4], fra.me.REG[3]);
33230 /* ./parser//parser.nit:9957 */
33231 fra.me.REG[2] = fra.me.REG[3];
33232 /* ./parser//parser.nit:9958 */
33233 REGB0 = TAG_Bool(ATTR_parser___ReduceAction316____goto(fra.me.REG[0])!=NIT_NULL);
33234 if (UNTAG_Bool(REGB0)) {
33235 } else {
33236 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9958);
33237 }
33238 REGB0 = ATTR_parser___ReduceAction316____goto(fra.me.REG[0]);
33239 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33240 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33241 stack_frame_head = fra.me.prev;
33242 return;
33243 }
33244 void parser___ReduceAction316___init(val_t p0, val_t p1, int* init_table){
33245 int itpos300 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction316].i;
33246 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33247 val_t REGB0;
33248 val_t tmp;
33249 if (init_table[itpos300]) return;
33250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33251 fra.me.file = LOCATE_parser;
33252 fra.me.line = 9961;
33253 fra.me.meth = LOCATE_parser___ReduceAction316___init;
33254 fra.me.has_broke = 0;
33255 fra.me.REG_size = 2;
33256 fra.me.REG[0] = NIT_NULL;
33257 fra.me.REG[1] = NIT_NULL;
33258 fra.me.REG[0] = p0;
33259 REGB0 = p1;
33260 /* ./parser//parser.nit:9961 */
33261 fra.me.REG[1] = fra.me.REG[0];
33262 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33263 ATTR_parser___ReduceAction316____goto(fra.me.REG[1]) = REGB0;
33264 stack_frame_head = fra.me.prev;
33265 init_table[itpos300] = 1;
33266 return;
33267 }
33268 void parser___ReduceAction318___action(val_t p0, val_t p1){
33269 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33270 val_t REGB0;
33271 val_t tmp;
33272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33273 fra.me.file = LOCATE_parser;
33274 fra.me.line = 9965;
33275 fra.me.meth = LOCATE_parser___ReduceAction318___action;
33276 fra.me.has_broke = 0;
33277 fra.me.REG_size = 5;
33278 fra.me.REG[0] = NIT_NULL;
33279 fra.me.REG[1] = NIT_NULL;
33280 fra.me.REG[2] = NIT_NULL;
33281 fra.me.REG[3] = NIT_NULL;
33282 fra.me.REG[4] = NIT_NULL;
33283 fra.me.REG[0] = p0;
33284 fra.me.REG[1] = p1;
33285 /* ./parser//parser.nit:9967 */
33286 fra.me.REG[2] = NIT_NULL;
33287 /* ./parser//parser.nit:9968 */
33288 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33289 /* ./parser//parser.nit:9969 */
33290 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33291 /* ./parser//parser.nit:9970 */
33292 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33293 /* ./parser//parser.nit:9971 */
33294 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33295 /* ./parser//parser.nit:9973 */
33296 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33297 if (UNTAG_Bool(REGB0)) {
33298 } else {
33299 nit_abort("Assert failed", NULL, LOCATE_parser, 9973);
33300 }
33301 /* ./parser//parser.nit:9975 */
33302 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33303 if (UNTAG_Bool(REGB0)) {
33304 } else {
33305 nit_abort("Assert failed", NULL, LOCATE_parser, 9975);
33306 }
33307 /* ./parser//parser.nit:9976 */
33308 fra.me.REG[3] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr(fra.me.REG[4], fra.me.REG[3]);
33309 /* ./parser//parser.nit:9980 */
33310 fra.me.REG[2] = fra.me.REG[3];
33311 /* ./parser//parser.nit:9981 */
33312 REGB0 = TAG_Bool(ATTR_parser___ReduceAction318____goto(fra.me.REG[0])!=NIT_NULL);
33313 if (UNTAG_Bool(REGB0)) {
33314 } else {
33315 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9981);
33316 }
33317 REGB0 = ATTR_parser___ReduceAction318____goto(fra.me.REG[0]);
33318 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33319 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33320 stack_frame_head = fra.me.prev;
33321 return;
33322 }
33323 void parser___ReduceAction318___init(val_t p0, val_t p1, int* init_table){
33324 int itpos301 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction318].i;
33325 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33326 val_t REGB0;
33327 val_t tmp;
33328 if (init_table[itpos301]) return;
33329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33330 fra.me.file = LOCATE_parser;
33331 fra.me.line = 9984;
33332 fra.me.meth = LOCATE_parser___ReduceAction318___init;
33333 fra.me.has_broke = 0;
33334 fra.me.REG_size = 2;
33335 fra.me.REG[0] = NIT_NULL;
33336 fra.me.REG[1] = NIT_NULL;
33337 fra.me.REG[0] = p0;
33338 REGB0 = p1;
33339 /* ./parser//parser.nit:9984 */
33340 fra.me.REG[1] = fra.me.REG[0];
33341 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33342 ATTR_parser___ReduceAction318____goto(fra.me.REG[1]) = REGB0;
33343 stack_frame_head = fra.me.prev;
33344 init_table[itpos301] = 1;
33345 return;
33346 }
33347 void parser___ReduceAction319___action(val_t p0, val_t p1){
33348 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33349 val_t REGB0;
33350 val_t tmp;
33351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33352 fra.me.file = LOCATE_parser;
33353 fra.me.line = 9988;
33354 fra.me.meth = LOCATE_parser___ReduceAction319___action;
33355 fra.me.has_broke = 0;
33356 fra.me.REG_size = 5;
33357 fra.me.REG[0] = NIT_NULL;
33358 fra.me.REG[1] = NIT_NULL;
33359 fra.me.REG[2] = NIT_NULL;
33360 fra.me.REG[3] = NIT_NULL;
33361 fra.me.REG[4] = NIT_NULL;
33362 fra.me.REG[0] = p0;
33363 fra.me.REG[1] = p1;
33364 /* ./parser//parser.nit:9990 */
33365 fra.me.REG[2] = NIT_NULL;
33366 /* ./parser//parser.nit:9991 */
33367 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33368 /* ./parser//parser.nit:9992 */
33369 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33370 /* ./parser//parser.nit:9993 */
33371 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33372 /* ./parser//parser.nit:9994 */
33373 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33374 /* ./parser//parser.nit:9996 */
33375 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33376 if (UNTAG_Bool(REGB0)) {
33377 } else {
33378 nit_abort("Assert failed", NULL, LOCATE_parser, 9996);
33379 }
33380 /* ./parser//parser.nit:9998 */
33381 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33382 if (UNTAG_Bool(REGB0)) {
33383 } else {
33384 nit_abort("Assert failed", NULL, LOCATE_parser, 9998);
33385 }
33386 /* ./parser//parser.nit:9999 */
33387 fra.me.REG[3] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr(fra.me.REG[4], fra.me.REG[3]);
33388 /* ./parser//parser.nit:10003 */
33389 fra.me.REG[2] = fra.me.REG[3];
33390 /* ./parser//parser.nit:10004 */
33391 REGB0 = TAG_Bool(ATTR_parser___ReduceAction319____goto(fra.me.REG[0])!=NIT_NULL);
33392 if (UNTAG_Bool(REGB0)) {
33393 } else {
33394 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10004);
33395 }
33396 REGB0 = ATTR_parser___ReduceAction319____goto(fra.me.REG[0]);
33397 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33398 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33399 stack_frame_head = fra.me.prev;
33400 return;
33401 }
33402 void parser___ReduceAction319___init(val_t p0, val_t p1, int* init_table){
33403 int itpos302 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction319].i;
33404 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33405 val_t REGB0;
33406 val_t tmp;
33407 if (init_table[itpos302]) return;
33408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33409 fra.me.file = LOCATE_parser;
33410 fra.me.line = 10007;
33411 fra.me.meth = LOCATE_parser___ReduceAction319___init;
33412 fra.me.has_broke = 0;
33413 fra.me.REG_size = 2;
33414 fra.me.REG[0] = NIT_NULL;
33415 fra.me.REG[1] = NIT_NULL;
33416 fra.me.REG[0] = p0;
33417 REGB0 = p1;
33418 /* ./parser//parser.nit:10007 */
33419 fra.me.REG[1] = fra.me.REG[0];
33420 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33421 ATTR_parser___ReduceAction319____goto(fra.me.REG[1]) = REGB0;
33422 stack_frame_head = fra.me.prev;
33423 init_table[itpos302] = 1;
33424 return;
33425 }
33426 void parser___ReduceAction320___action(val_t p0, val_t p1){
33427 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33428 val_t REGB0;
33429 val_t tmp;
33430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33431 fra.me.file = LOCATE_parser;
33432 fra.me.line = 10011;
33433 fra.me.meth = LOCATE_parser___ReduceAction320___action;
33434 fra.me.has_broke = 0;
33435 fra.me.REG_size = 5;
33436 fra.me.REG[0] = NIT_NULL;
33437 fra.me.REG[1] = NIT_NULL;
33438 fra.me.REG[2] = NIT_NULL;
33439 fra.me.REG[3] = NIT_NULL;
33440 fra.me.REG[4] = NIT_NULL;
33441 fra.me.REG[0] = p0;
33442 fra.me.REG[1] = p1;
33443 /* ./parser//parser.nit:10013 */
33444 fra.me.REG[2] = NIT_NULL;
33445 /* ./parser//parser.nit:10014 */
33446 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33447 /* ./parser//parser.nit:10015 */
33448 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33449 /* ./parser//parser.nit:10016 */
33450 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33451 /* ./parser//parser.nit:10017 */
33452 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33453 /* ./parser//parser.nit:10019 */
33454 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33455 if (UNTAG_Bool(REGB0)) {
33456 } else {
33457 nit_abort("Assert failed", NULL, LOCATE_parser, 10019);
33458 }
33459 /* ./parser//parser.nit:10021 */
33460 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33461 if (UNTAG_Bool(REGB0)) {
33462 } else {
33463 nit_abort("Assert failed", NULL, LOCATE_parser, 10021);
33464 }
33465 /* ./parser//parser.nit:10022 */
33466 fra.me.REG[3] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr(fra.me.REG[4], fra.me.REG[3]);
33467 /* ./parser//parser.nit:10026 */
33468 fra.me.REG[2] = fra.me.REG[3];
33469 /* ./parser//parser.nit:10027 */
33470 REGB0 = TAG_Bool(ATTR_parser___ReduceAction320____goto(fra.me.REG[0])!=NIT_NULL);
33471 if (UNTAG_Bool(REGB0)) {
33472 } else {
33473 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10027);
33474 }
33475 REGB0 = ATTR_parser___ReduceAction320____goto(fra.me.REG[0]);
33476 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33477 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33478 stack_frame_head = fra.me.prev;
33479 return;
33480 }
33481 void parser___ReduceAction320___init(val_t p0, val_t p1, int* init_table){
33482 int itpos303 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction320].i;
33483 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33484 val_t REGB0;
33485 val_t tmp;
33486 if (init_table[itpos303]) return;
33487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33488 fra.me.file = LOCATE_parser;
33489 fra.me.line = 10030;
33490 fra.me.meth = LOCATE_parser___ReduceAction320___init;
33491 fra.me.has_broke = 0;
33492 fra.me.REG_size = 2;
33493 fra.me.REG[0] = NIT_NULL;
33494 fra.me.REG[1] = NIT_NULL;
33495 fra.me.REG[0] = p0;
33496 REGB0 = p1;
33497 /* ./parser//parser.nit:10030 */
33498 fra.me.REG[1] = fra.me.REG[0];
33499 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33500 ATTR_parser___ReduceAction320____goto(fra.me.REG[1]) = REGB0;
33501 stack_frame_head = fra.me.prev;
33502 init_table[itpos303] = 1;
33503 return;
33504 }
33505 void parser___ReduceAction322___action(val_t p0, val_t p1){
33506 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33507 val_t REGB0;
33508 val_t tmp;
33509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33510 fra.me.file = LOCATE_parser;
33511 fra.me.line = 10034;
33512 fra.me.meth = LOCATE_parser___ReduceAction322___action;
33513 fra.me.has_broke = 0;
33514 fra.me.REG_size = 5;
33515 fra.me.REG[0] = NIT_NULL;
33516 fra.me.REG[1] = NIT_NULL;
33517 fra.me.REG[2] = NIT_NULL;
33518 fra.me.REG[3] = NIT_NULL;
33519 fra.me.REG[4] = NIT_NULL;
33520 fra.me.REG[0] = p0;
33521 fra.me.REG[1] = p1;
33522 /* ./parser//parser.nit:10036 */
33523 fra.me.REG[2] = NIT_NULL;
33524 /* ./parser//parser.nit:10037 */
33525 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33526 /* ./parser//parser.nit:10038 */
33527 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33528 /* ./parser//parser.nit:10039 */
33529 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33530 /* ./parser//parser.nit:10041 */
33531 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TMinus, ID_TMinus)) /*cast nullable TMinus*/;
33532 if (UNTAG_Bool(REGB0)) {
33533 } else {
33534 nit_abort("Assert failed", NULL, LOCATE_parser, 10041);
33535 }
33536 /* ./parser//parser.nit:10043 */
33537 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33538 if (UNTAG_Bool(REGB0)) {
33539 } else {
33540 nit_abort("Assert failed", NULL, LOCATE_parser, 10043);
33541 }
33542 /* ./parser//parser.nit:10044 */
33543 fra.me.REG[3] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr(fra.me.REG[4], fra.me.REG[3]);
33544 /* ./parser//parser.nit:10048 */
33545 fra.me.REG[2] = fra.me.REG[3];
33546 /* ./parser//parser.nit:10049 */
33547 REGB0 = TAG_Bool(ATTR_parser___ReduceAction322____goto(fra.me.REG[0])!=NIT_NULL);
33548 if (UNTAG_Bool(REGB0)) {
33549 } else {
33550 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10049);
33551 }
33552 REGB0 = ATTR_parser___ReduceAction322____goto(fra.me.REG[0]);
33553 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33554 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33555 stack_frame_head = fra.me.prev;
33556 return;
33557 }
33558 void parser___ReduceAction322___init(val_t p0, val_t p1, int* init_table){
33559 int itpos304 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction322].i;
33560 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33561 val_t REGB0;
33562 val_t tmp;
33563 if (init_table[itpos304]) return;
33564 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33565 fra.me.file = LOCATE_parser;
33566 fra.me.line = 10052;
33567 fra.me.meth = LOCATE_parser___ReduceAction322___init;
33568 fra.me.has_broke = 0;
33569 fra.me.REG_size = 2;
33570 fra.me.REG[0] = NIT_NULL;
33571 fra.me.REG[1] = NIT_NULL;
33572 fra.me.REG[0] = p0;
33573 REGB0 = p1;
33574 /* ./parser//parser.nit:10052 */
33575 fra.me.REG[1] = fra.me.REG[0];
33576 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33577 ATTR_parser___ReduceAction322____goto(fra.me.REG[1]) = REGB0;
33578 stack_frame_head = fra.me.prev;
33579 init_table[itpos304] = 1;
33580 return;
33581 }
33582 void parser___ReduceAction323___action(val_t p0, val_t p1){
33583 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33584 val_t REGB0;
33585 val_t tmp;
33586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33587 fra.me.file = LOCATE_parser;
33588 fra.me.line = 10056;
33589 fra.me.meth = LOCATE_parser___ReduceAction323___action;
33590 fra.me.has_broke = 0;
33591 fra.me.REG_size = 5;
33592 fra.me.REG[0] = NIT_NULL;
33593 fra.me.REG[1] = NIT_NULL;
33594 fra.me.REG[2] = NIT_NULL;
33595 fra.me.REG[3] = NIT_NULL;
33596 fra.me.REG[4] = NIT_NULL;
33597 fra.me.REG[0] = p0;
33598 fra.me.REG[1] = p1;
33599 /* ./parser//parser.nit:10058 */
33600 fra.me.REG[2] = NIT_NULL;
33601 /* ./parser//parser.nit:10059 */
33602 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33603 /* ./parser//parser.nit:10060 */
33604 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33605 /* ./parser//parser.nit:10061 */
33606 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33607 /* ./parser//parser.nit:10063 */
33608 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwonce, ID_TKwonce)) /*cast nullable TKwonce*/;
33609 if (UNTAG_Bool(REGB0)) {
33610 } else {
33611 nit_abort("Assert failed", NULL, LOCATE_parser, 10063);
33612 }
33613 /* ./parser//parser.nit:10065 */
33614 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33615 if (UNTAG_Bool(REGB0)) {
33616 } else {
33617 nit_abort("Assert failed", NULL, LOCATE_parser, 10065);
33618 }
33619 /* ./parser//parser.nit:10066 */
33620 fra.me.REG[3] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr(fra.me.REG[4], fra.me.REG[3]);
33621 /* ./parser//parser.nit:10070 */
33622 fra.me.REG[2] = fra.me.REG[3];
33623 /* ./parser//parser.nit:10071 */
33624 REGB0 = TAG_Bool(ATTR_parser___ReduceAction323____goto(fra.me.REG[0])!=NIT_NULL);
33625 if (UNTAG_Bool(REGB0)) {
33626 } else {
33627 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10071);
33628 }
33629 REGB0 = ATTR_parser___ReduceAction323____goto(fra.me.REG[0]);
33630 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33631 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33632 stack_frame_head = fra.me.prev;
33633 return;
33634 }
33635 void parser___ReduceAction323___init(val_t p0, val_t p1, int* init_table){
33636 int itpos305 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction323].i;
33637 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33638 val_t REGB0;
33639 val_t tmp;
33640 if (init_table[itpos305]) return;
33641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33642 fra.me.file = LOCATE_parser;
33643 fra.me.line = 10074;
33644 fra.me.meth = LOCATE_parser___ReduceAction323___init;
33645 fra.me.has_broke = 0;
33646 fra.me.REG_size = 2;
33647 fra.me.REG[0] = NIT_NULL;
33648 fra.me.REG[1] = NIT_NULL;
33649 fra.me.REG[0] = p0;
33650 REGB0 = p1;
33651 /* ./parser//parser.nit:10074 */
33652 fra.me.REG[1] = fra.me.REG[0];
33653 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33654 ATTR_parser___ReduceAction323____goto(fra.me.REG[1]) = REGB0;
33655 stack_frame_head = fra.me.prev;
33656 init_table[itpos305] = 1;
33657 return;
33658 }
33659 void parser___ReduceAction325___action(val_t p0, val_t p1){
33660 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
33661 val_t REGB0;
33662 val_t tmp;
33663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33664 fra.me.file = LOCATE_parser;
33665 fra.me.line = 10078;
33666 fra.me.meth = LOCATE_parser___ReduceAction325___action;
33667 fra.me.has_broke = 0;
33668 fra.me.REG_size = 7;
33669 fra.me.REG[0] = NIT_NULL;
33670 fra.me.REG[1] = NIT_NULL;
33671 fra.me.REG[2] = NIT_NULL;
33672 fra.me.REG[3] = NIT_NULL;
33673 fra.me.REG[4] = NIT_NULL;
33674 fra.me.REG[5] = NIT_NULL;
33675 fra.me.REG[6] = NIT_NULL;
33676 fra.me.REG[0] = p0;
33677 fra.me.REG[1] = p1;
33678 /* ./parser//parser.nit:10080 */
33679 fra.me.REG[2] = NIT_NULL;
33680 /* ./parser//parser.nit:10081 */
33681 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33682 /* ./parser//parser.nit:10082 */
33683 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33684 /* ./parser//parser.nit:10083 */
33685 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33686 /* ./parser//parser.nit:10084 */
33687 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33688 /* ./parser//parser.nit:10085 */
33689 fra.me.REG[6] = NEW_Array_array___Array___init();
33690 /* ./parser//parser.nit:10087 */
33691 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwnew, ID_TKwnew)) /*cast nullable TKwnew*/;
33692 if (UNTAG_Bool(REGB0)) {
33693 } else {
33694 nit_abort("Assert failed", NULL, LOCATE_parser, 10087);
33695 }
33696 /* ./parser//parser.nit:10089 */
33697 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AType, ID_AType)) /*cast nullable AType*/;
33698 if (UNTAG_Bool(REGB0)) {
33699 } else {
33700 nit_abort("Assert failed", NULL, LOCATE_parser, 10089);
33701 }
33702 /* ./parser//parser.nit:10091 */
33703 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
33704 if (UNTAG_Bool(REGB0)) {
33705 } else {
33706 nit_abort("Assert failed", NULL, LOCATE_parser, 10091);
33707 }
33708 /* ./parser//parser.nit:10092 */
33709 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
33710 fra.me.REG[6] = fra.me.REG[3];
33711 /* ./parser//parser.nit:10093 */
33712 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]);
33713 /* ./parser//parser.nit:10099 */
33714 fra.me.REG[2] = fra.me.REG[6];
33715 /* ./parser//parser.nit:10100 */
33716 REGB0 = TAG_Bool(ATTR_parser___ReduceAction325____goto(fra.me.REG[0])!=NIT_NULL);
33717 if (UNTAG_Bool(REGB0)) {
33718 } else {
33719 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10100);
33720 }
33721 REGB0 = ATTR_parser___ReduceAction325____goto(fra.me.REG[0]);
33722 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33723 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33724 stack_frame_head = fra.me.prev;
33725 return;
33726 }
33727 void parser___ReduceAction325___init(val_t p0, val_t p1, int* init_table){
33728 int itpos306 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction325].i;
33729 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33730 val_t REGB0;
33731 val_t tmp;
33732 if (init_table[itpos306]) return;
33733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33734 fra.me.file = LOCATE_parser;
33735 fra.me.line = 10103;
33736 fra.me.meth = LOCATE_parser___ReduceAction325___init;
33737 fra.me.has_broke = 0;
33738 fra.me.REG_size = 2;
33739 fra.me.REG[0] = NIT_NULL;
33740 fra.me.REG[1] = NIT_NULL;
33741 fra.me.REG[0] = p0;
33742 REGB0 = p1;
33743 /* ./parser//parser.nit:10103 */
33744 fra.me.REG[1] = fra.me.REG[0];
33745 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33746 ATTR_parser___ReduceAction325____goto(fra.me.REG[1]) = REGB0;
33747 stack_frame_head = fra.me.prev;
33748 init_table[itpos306] = 1;
33749 return;
33750 }
33751 void parser___ReduceAction326___action(val_t p0, val_t p1){
33752 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33753 val_t REGB0;
33754 val_t tmp;
33755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33756 fra.me.file = LOCATE_parser;
33757 fra.me.line = 10107;
33758 fra.me.meth = LOCATE_parser___ReduceAction326___action;
33759 fra.me.has_broke = 0;
33760 fra.me.REG_size = 6;
33761 fra.me.REG[0] = NIT_NULL;
33762 fra.me.REG[1] = NIT_NULL;
33763 fra.me.REG[2] = NIT_NULL;
33764 fra.me.REG[3] = NIT_NULL;
33765 fra.me.REG[4] = NIT_NULL;
33766 fra.me.REG[5] = NIT_NULL;
33767 fra.me.REG[0] = p0;
33768 fra.me.REG[1] = p1;
33769 /* ./parser//parser.nit:10109 */
33770 fra.me.REG[2] = NIT_NULL;
33771 /* ./parser//parser.nit:10110 */
33772 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33773 /* ./parser//parser.nit:10111 */
33774 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33775 /* ./parser//parser.nit:10112 */
33776 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33777 /* ./parser//parser.nit:10113 */
33778 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33779 /* ./parser//parser.nit:10114 */
33780 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33781 /* ./parser//parser.nit:10116 */
33782 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwisset, ID_TKwisset)) /*cast nullable TKwisset*/;
33783 if (UNTAG_Bool(REGB0)) {
33784 } else {
33785 nit_abort("Assert failed", NULL, LOCATE_parser, 10116);
33786 }
33787 /* ./parser//parser.nit:10118 */
33788 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33789 if (UNTAG_Bool(REGB0)) {
33790 } else {
33791 nit_abort("Assert failed", NULL, LOCATE_parser, 10118);
33792 }
33793 /* ./parser//parser.nit:10120 */
33794 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
33795 if (UNTAG_Bool(REGB0)) {
33796 } else {
33797 nit_abort("Assert failed", NULL, LOCATE_parser, 10120);
33798 }
33799 /* ./parser//parser.nit:10121 */
33800 fra.me.REG[3] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
33801 /* ./parser//parser.nit:10126 */
33802 fra.me.REG[2] = fra.me.REG[3];
33803 /* ./parser//parser.nit:10127 */
33804 REGB0 = TAG_Bool(ATTR_parser___ReduceAction326____goto(fra.me.REG[0])!=NIT_NULL);
33805 if (UNTAG_Bool(REGB0)) {
33806 } else {
33807 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10127);
33808 }
33809 REGB0 = ATTR_parser___ReduceAction326____goto(fra.me.REG[0]);
33810 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33811 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33812 stack_frame_head = fra.me.prev;
33813 return;
33814 }
33815 void parser___ReduceAction326___init(val_t p0, val_t p1, int* init_table){
33816 int itpos307 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction326].i;
33817 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33818 val_t REGB0;
33819 val_t tmp;
33820 if (init_table[itpos307]) return;
33821 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33822 fra.me.file = LOCATE_parser;
33823 fra.me.line = 10130;
33824 fra.me.meth = LOCATE_parser___ReduceAction326___init;
33825 fra.me.has_broke = 0;
33826 fra.me.REG_size = 2;
33827 fra.me.REG[0] = NIT_NULL;
33828 fra.me.REG[1] = NIT_NULL;
33829 fra.me.REG[0] = p0;
33830 REGB0 = p1;
33831 /* ./parser//parser.nit:10130 */
33832 fra.me.REG[1] = fra.me.REG[0];
33833 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33834 ATTR_parser___ReduceAction326____goto(fra.me.REG[1]) = REGB0;
33835 stack_frame_head = fra.me.prev;
33836 init_table[itpos307] = 1;
33837 return;
33838 }
33839 void parser___ReduceAction327___action(val_t p0, val_t p1){
33840 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33841 val_t REGB0;
33842 val_t tmp;
33843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33844 fra.me.file = LOCATE_parser;
33845 fra.me.line = 10134;
33846 fra.me.meth = LOCATE_parser___ReduceAction327___action;
33847 fra.me.has_broke = 0;
33848 fra.me.REG_size = 6;
33849 fra.me.REG[0] = NIT_NULL;
33850 fra.me.REG[1] = NIT_NULL;
33851 fra.me.REG[2] = NIT_NULL;
33852 fra.me.REG[3] = NIT_NULL;
33853 fra.me.REG[4] = NIT_NULL;
33854 fra.me.REG[5] = NIT_NULL;
33855 fra.me.REG[0] = p0;
33856 fra.me.REG[1] = p1;
33857 /* ./parser//parser.nit:10136 */
33858 fra.me.REG[2] = NIT_NULL;
33859 /* ./parser//parser.nit:10137 */
33860 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33861 /* ./parser//parser.nit:10138 */
33862 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33863 /* ./parser//parser.nit:10140 */
33864 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwisset, ID_TKwisset)) /*cast nullable TKwisset*/;
33865 if (UNTAG_Bool(REGB0)) {
33866 } else {
33867 nit_abort("Assert failed", NULL, LOCATE_parser, 10140);
33868 }
33869 /* ./parser//parser.nit:10141 */
33870 fra.me.REG[5] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
33871 /* ./parser//parser.nit:10144 */
33872 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
33873 if (UNTAG_Bool(REGB0)) {
33874 } else {
33875 nit_abort("Assert failed", NULL, LOCATE_parser, 10144);
33876 }
33877 /* ./parser//parser.nit:10145 */
33878 fra.me.REG[3] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
33879 /* ./parser//parser.nit:10150 */
33880 fra.me.REG[2] = fra.me.REG[3];
33881 /* ./parser//parser.nit:10151 */
33882 REGB0 = TAG_Bool(ATTR_parser___ReduceAction327____goto(fra.me.REG[0])!=NIT_NULL);
33883 if (UNTAG_Bool(REGB0)) {
33884 } else {
33885 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10151);
33886 }
33887 REGB0 = ATTR_parser___ReduceAction327____goto(fra.me.REG[0]);
33888 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33889 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33890 stack_frame_head = fra.me.prev;
33891 return;
33892 }
33893 void parser___ReduceAction327___init(val_t p0, val_t p1, int* init_table){
33894 int itpos308 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction327].i;
33895 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33896 val_t REGB0;
33897 val_t tmp;
33898 if (init_table[itpos308]) return;
33899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33900 fra.me.file = LOCATE_parser;
33901 fra.me.line = 10154;
33902 fra.me.meth = LOCATE_parser___ReduceAction327___init;
33903 fra.me.has_broke = 0;
33904 fra.me.REG_size = 2;
33905 fra.me.REG[0] = NIT_NULL;
33906 fra.me.REG[1] = NIT_NULL;
33907 fra.me.REG[0] = p0;
33908 REGB0 = p1;
33909 /* ./parser//parser.nit:10154 */
33910 fra.me.REG[1] = fra.me.REG[0];
33911 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33912 ATTR_parser___ReduceAction327____goto(fra.me.REG[1]) = REGB0;
33913 stack_frame_head = fra.me.prev;
33914 init_table[itpos308] = 1;
33915 return;
33916 }
33917 void parser___ReduceAction328___action(val_t p0, val_t p1){
33918 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33919 val_t REGB0;
33920 val_t tmp;
33921 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33922 fra.me.file = LOCATE_parser;
33923 fra.me.line = 10158;
33924 fra.me.meth = LOCATE_parser___ReduceAction328___action;
33925 fra.me.has_broke = 0;
33926 fra.me.REG_size = 5;
33927 fra.me.REG[0] = NIT_NULL;
33928 fra.me.REG[1] = NIT_NULL;
33929 fra.me.REG[2] = NIT_NULL;
33930 fra.me.REG[3] = NIT_NULL;
33931 fra.me.REG[4] = NIT_NULL;
33932 fra.me.REG[0] = p0;
33933 fra.me.REG[1] = p1;
33934 /* ./parser//parser.nit:10160 */
33935 fra.me.REG[2] = NIT_NULL;
33936 /* ./parser//parser.nit:10161 */
33937 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33938 /* ./parser//parser.nit:10162 */
33939 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33940 /* ./parser//parser.nit:10163 */
33941 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33942 /* ./parser//parser.nit:10164 */
33943 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
33944 /* ./parser//parser.nit:10166 */
33945 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
33946 if (UNTAG_Bool(REGB0)) {
33947 } else {
33948 nit_abort("Assert failed", NULL, LOCATE_parser, 10166);
33949 }
33950 /* ./parser//parser.nit:10168 */
33951 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
33952 if (UNTAG_Bool(REGB0)) {
33953 } else {
33954 nit_abort("Assert failed", NULL, LOCATE_parser, 10168);
33955 }
33956 /* ./parser//parser.nit:10169 */
33957 fra.me.REG[3] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
33958 /* ./parser//parser.nit:10173 */
33959 fra.me.REG[2] = fra.me.REG[3];
33960 /* ./parser//parser.nit:10174 */
33961 REGB0 = TAG_Bool(ATTR_parser___ReduceAction328____goto(fra.me.REG[0])!=NIT_NULL);
33962 if (UNTAG_Bool(REGB0)) {
33963 } else {
33964 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10174);
33965 }
33966 REGB0 = ATTR_parser___ReduceAction328____goto(fra.me.REG[0]);
33967 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
33968 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
33969 stack_frame_head = fra.me.prev;
33970 return;
33971 }
33972 void parser___ReduceAction328___init(val_t p0, val_t p1, int* init_table){
33973 int itpos309 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction328].i;
33974 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33975 val_t REGB0;
33976 val_t tmp;
33977 if (init_table[itpos309]) return;
33978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33979 fra.me.file = LOCATE_parser;
33980 fra.me.line = 10177;
33981 fra.me.meth = LOCATE_parser___ReduceAction328___init;
33982 fra.me.has_broke = 0;
33983 fra.me.REG_size = 2;
33984 fra.me.REG[0] = NIT_NULL;
33985 fra.me.REG[1] = NIT_NULL;
33986 fra.me.REG[0] = p0;
33987 REGB0 = p1;
33988 /* ./parser//parser.nit:10177 */
33989 fra.me.REG[1] = fra.me.REG[0];
33990 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
33991 ATTR_parser___ReduceAction328____goto(fra.me.REG[1]) = REGB0;
33992 stack_frame_head = fra.me.prev;
33993 init_table[itpos309] = 1;
33994 return;
33995 }
33996 void parser___ReduceAction329___action(val_t p0, val_t p1){
33997 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33998 val_t REGB0;
33999 val_t tmp;
34000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34001 fra.me.file = LOCATE_parser;
34002 fra.me.line = 10181;
34003 fra.me.meth = LOCATE_parser___ReduceAction329___action;
34004 fra.me.has_broke = 0;
34005 fra.me.REG_size = 5;
34006 fra.me.REG[0] = NIT_NULL;
34007 fra.me.REG[1] = NIT_NULL;
34008 fra.me.REG[2] = NIT_NULL;
34009 fra.me.REG[3] = NIT_NULL;
34010 fra.me.REG[4] = NIT_NULL;
34011 fra.me.REG[0] = p0;
34012 fra.me.REG[1] = p1;
34013 /* ./parser//parser.nit:10183 */
34014 fra.me.REG[2] = NIT_NULL;
34015 /* ./parser//parser.nit:10184 */
34016 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34017 /* ./parser//parser.nit:10185 */
34018 fra.me.REG[4] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
34019 /* ./parser//parser.nit:10188 */
34020 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
34021 if (UNTAG_Bool(REGB0)) {
34022 } else {
34023 nit_abort("Assert failed", NULL, LOCATE_parser, 10188);
34024 }
34025 /* ./parser//parser.nit:10189 */
34026 fra.me.REG[3] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
34027 /* ./parser//parser.nit:10193 */
34028 fra.me.REG[2] = fra.me.REG[3];
34029 /* ./parser//parser.nit:10194 */
34030 REGB0 = TAG_Bool(ATTR_parser___ReduceAction329____goto(fra.me.REG[0])!=NIT_NULL);
34031 if (UNTAG_Bool(REGB0)) {
34032 } else {
34033 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10194);
34034 }
34035 REGB0 = ATTR_parser___ReduceAction329____goto(fra.me.REG[0]);
34036 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34037 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34038 stack_frame_head = fra.me.prev;
34039 return;
34040 }
34041 void parser___ReduceAction329___init(val_t p0, val_t p1, int* init_table){
34042 int itpos310 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction329].i;
34043 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34044 val_t REGB0;
34045 val_t tmp;
34046 if (init_table[itpos310]) return;
34047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34048 fra.me.file = LOCATE_parser;
34049 fra.me.line = 10197;
34050 fra.me.meth = LOCATE_parser___ReduceAction329___init;
34051 fra.me.has_broke = 0;
34052 fra.me.REG_size = 2;
34053 fra.me.REG[0] = NIT_NULL;
34054 fra.me.REG[1] = NIT_NULL;
34055 fra.me.REG[0] = p0;
34056 REGB0 = p1;
34057 /* ./parser//parser.nit:10197 */
34058 fra.me.REG[1] = fra.me.REG[0];
34059 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34060 ATTR_parser___ReduceAction329____goto(fra.me.REG[1]) = REGB0;
34061 stack_frame_head = fra.me.prev;
34062 init_table[itpos310] = 1;
34063 return;
34064 }
34065 void parser___ReduceAction336___action(val_t p0, val_t p1){
34066 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
34067 val_t REGB0;
34068 val_t tmp;
34069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34070 fra.me.file = LOCATE_parser;
34071 fra.me.line = 10201;
34072 fra.me.meth = LOCATE_parser___ReduceAction336___action;
34073 fra.me.has_broke = 0;
34074 fra.me.REG_size = 7;
34075 fra.me.REG[0] = NIT_NULL;
34076 fra.me.REG[1] = NIT_NULL;
34077 fra.me.REG[2] = NIT_NULL;
34078 fra.me.REG[3] = NIT_NULL;
34079 fra.me.REG[4] = NIT_NULL;
34080 fra.me.REG[5] = NIT_NULL;
34081 fra.me.REG[6] = NIT_NULL;
34082 fra.me.REG[0] = p0;
34083 fra.me.REG[1] = p1;
34084 /* ./parser//parser.nit:10203 */
34085 fra.me.REG[2] = NIT_NULL;
34086 /* ./parser//parser.nit:10204 */
34087 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34088 /* ./parser//parser.nit:10205 */
34089 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34090 /* ./parser//parser.nit:10206 */
34091 fra.me.REG[5] = NEW_Array_array___Array___init();
34092 /* ./parser//parser.nit:10207 */
34093 fra.me.REG[6] = NEW_Array_array___Array___init();
34094 /* ./parser//parser.nit:10209 */
34095 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34096 if (UNTAG_Bool(REGB0)) {
34097 } else {
34098 nit_abort("Assert failed", NULL, LOCATE_parser, 10209);
34099 }
34100 /* ./parser//parser.nit:10211 */
34101 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
34102 if (UNTAG_Bool(REGB0)) {
34103 } else {
34104 nit_abort("Assert failed", NULL, LOCATE_parser, 10211);
34105 }
34106 /* ./parser//parser.nit:10212 */
34107 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
34108 fra.me.REG[5] = fra.me.REG[3];
34109 /* ./parser//parser.nit:10213 */
34110 fra.me.REG[6] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
34111 /* ./parser//parser.nit:10218 */
34112 fra.me.REG[2] = fra.me.REG[6];
34113 /* ./parser//parser.nit:10219 */
34114 REGB0 = TAG_Bool(ATTR_parser___ReduceAction336____goto(fra.me.REG[0])!=NIT_NULL);
34115 if (UNTAG_Bool(REGB0)) {
34116 } else {
34117 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10219);
34118 }
34119 REGB0 = ATTR_parser___ReduceAction336____goto(fra.me.REG[0]);
34120 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34121 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34122 stack_frame_head = fra.me.prev;
34123 return;
34124 }
34125 void parser___ReduceAction336___init(val_t p0, val_t p1, int* init_table){
34126 int itpos311 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction336].i;
34127 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34128 val_t REGB0;
34129 val_t tmp;
34130 if (init_table[itpos311]) return;
34131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34132 fra.me.file = LOCATE_parser;
34133 fra.me.line = 10222;
34134 fra.me.meth = LOCATE_parser___ReduceAction336___init;
34135 fra.me.has_broke = 0;
34136 fra.me.REG_size = 2;
34137 fra.me.REG[0] = NIT_NULL;
34138 fra.me.REG[1] = NIT_NULL;
34139 fra.me.REG[0] = p0;
34140 REGB0 = p1;
34141 /* ./parser//parser.nit:10222 */
34142 fra.me.REG[1] = fra.me.REG[0];
34143 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34144 ATTR_parser___ReduceAction336____goto(fra.me.REG[1]) = REGB0;
34145 stack_frame_head = fra.me.prev;
34146 init_table[itpos311] = 1;
34147 return;
34148 }
34149 void parser___ReduceAction337___action(val_t p0, val_t p1){
34150 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
34151 val_t REGB0;
34152 val_t tmp;
34153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34154 fra.me.file = LOCATE_parser;
34155 fra.me.line = 10226;
34156 fra.me.meth = LOCATE_parser___ReduceAction337___action;
34157 fra.me.has_broke = 0;
34158 fra.me.REG_size = 8;
34159 fra.me.REG[0] = NIT_NULL;
34160 fra.me.REG[1] = NIT_NULL;
34161 fra.me.REG[2] = NIT_NULL;
34162 fra.me.REG[3] = NIT_NULL;
34163 fra.me.REG[4] = NIT_NULL;
34164 fra.me.REG[5] = NIT_NULL;
34165 fra.me.REG[6] = NIT_NULL;
34166 fra.me.REG[7] = NIT_NULL;
34167 fra.me.REG[0] = p0;
34168 fra.me.REG[1] = p1;
34169 /* ./parser//parser.nit:10228 */
34170 fra.me.REG[2] = NIT_NULL;
34171 /* ./parser//parser.nit:10229 */
34172 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34173 /* ./parser//parser.nit:10230 */
34174 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34175 /* ./parser//parser.nit:10231 */
34176 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34177 /* ./parser//parser.nit:10232 */
34178 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34179 /* ./parser//parser.nit:10233 */
34180 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34181 /* ./parser//parser.nit:10234 */
34182 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34183 /* ./parser//parser.nit:10235 */
34184 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34185 /* ./parser//parser.nit:10236 */
34186 fra.me.REG[7] = NEW_Array_array___Array___init();
34187 /* ./parser//parser.nit:10238 */
34188 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_TKwnew, ID_TKwnew)) /*cast nullable TKwnew*/;
34189 if (UNTAG_Bool(REGB0)) {
34190 } else {
34191 nit_abort("Assert failed", NULL, LOCATE_parser, 10238);
34192 }
34193 /* ./parser//parser.nit:10240 */
34194 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AType, ID_AType)) /*cast nullable AType*/;
34195 if (UNTAG_Bool(REGB0)) {
34196 } else {
34197 nit_abort("Assert failed", NULL, LOCATE_parser, 10240);
34198 }
34199 /* ./parser//parser.nit:10242 */
34200 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
34201 if (UNTAG_Bool(REGB0)) {
34202 } else {
34203 nit_abort("Assert failed", NULL, LOCATE_parser, 10242);
34204 }
34205 /* ./parser//parser.nit:10244 */
34206 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
34207 if (UNTAG_Bool(REGB0)) {
34208 } else {
34209 nit_abort("Assert failed", NULL, LOCATE_parser, 10244);
34210 }
34211 /* ./parser//parser.nit:10245 */
34212 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
34213 fra.me.REG[7] = fra.me.REG[3];
34214 /* ./parser//parser.nit:10246 */
34215 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]);
34216 /* ./parser//parser.nit:10252 */
34217 fra.me.REG[2] = fra.me.REG[7];
34218 /* ./parser//parser.nit:10253 */
34219 REGB0 = TAG_Bool(ATTR_parser___ReduceAction337____goto(fra.me.REG[0])!=NIT_NULL);
34220 if (UNTAG_Bool(REGB0)) {
34221 } else {
34222 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10253);
34223 }
34224 REGB0 = ATTR_parser___ReduceAction337____goto(fra.me.REG[0]);
34225 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34226 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34227 stack_frame_head = fra.me.prev;
34228 return;
34229 }
34230 void parser___ReduceAction337___init(val_t p0, val_t p1, int* init_table){
34231 int itpos312 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction337].i;
34232 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34233 val_t REGB0;
34234 val_t tmp;
34235 if (init_table[itpos312]) return;
34236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34237 fra.me.file = LOCATE_parser;
34238 fra.me.line = 10256;
34239 fra.me.meth = LOCATE_parser___ReduceAction337___init;
34240 fra.me.has_broke = 0;
34241 fra.me.REG_size = 2;
34242 fra.me.REG[0] = NIT_NULL;
34243 fra.me.REG[1] = NIT_NULL;
34244 fra.me.REG[0] = p0;
34245 REGB0 = p1;
34246 /* ./parser//parser.nit:10256 */
34247 fra.me.REG[1] = fra.me.REG[0];
34248 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34249 ATTR_parser___ReduceAction337____goto(fra.me.REG[1]) = REGB0;
34250 stack_frame_head = fra.me.prev;
34251 init_table[itpos312] = 1;
34252 return;
34253 }
34254 void parser___ReduceAction338___action(val_t p0, val_t p1){
34255 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
34256 val_t REGB0;
34257 val_t tmp;
34258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34259 fra.me.file = LOCATE_parser;
34260 fra.me.line = 10260;
34261 fra.me.meth = LOCATE_parser___ReduceAction338___action;
34262 fra.me.has_broke = 0;
34263 fra.me.REG_size = 6;
34264 fra.me.REG[0] = NIT_NULL;
34265 fra.me.REG[1] = NIT_NULL;
34266 fra.me.REG[2] = NIT_NULL;
34267 fra.me.REG[3] = NIT_NULL;
34268 fra.me.REG[4] = NIT_NULL;
34269 fra.me.REG[5] = NIT_NULL;
34270 fra.me.REG[0] = p0;
34271 fra.me.REG[1] = p1;
34272 /* ./parser//parser.nit:10262 */
34273 fra.me.REG[2] = NIT_NULL;
34274 /* ./parser//parser.nit:10263 */
34275 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34276 /* ./parser//parser.nit:10264 */
34277 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34278 /* ./parser//parser.nit:10265 */
34279 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34280 /* ./parser//parser.nit:10266 */
34281 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34282 /* ./parser//parser.nit:10267 */
34283 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34284 /* ./parser//parser.nit:10268 */
34285 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34286 /* ./parser//parser.nit:10269 */
34287 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34288 /* ./parser//parser.nit:10270 */
34289 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34290 /* ./parser//parser.nit:10271 */
34291 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34292 /* ./parser//parser.nit:10273 */
34293 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34294 if (UNTAG_Bool(REGB0)) {
34295 } else {
34296 nit_abort("Assert failed", NULL, LOCATE_parser, 10273);
34297 }
34298 /* ./parser//parser.nit:10275 */
34299 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34300 if (UNTAG_Bool(REGB0)) {
34301 } else {
34302 nit_abort("Assert failed", NULL, LOCATE_parser, 10275);
34303 }
34304 /* ./parser//parser.nit:10276 */
34305 fra.me.REG[3] = NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[4], fra.me.REG[3]);
34306 /* ./parser//parser.nit:10280 */
34307 fra.me.REG[2] = fra.me.REG[3];
34308 /* ./parser//parser.nit:10281 */
34309 REGB0 = TAG_Bool(ATTR_parser___ReduceAction338____goto(fra.me.REG[0])!=NIT_NULL);
34310 if (UNTAG_Bool(REGB0)) {
34311 } else {
34312 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10281);
34313 }
34314 REGB0 = ATTR_parser___ReduceAction338____goto(fra.me.REG[0]);
34315 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34316 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34317 stack_frame_head = fra.me.prev;
34318 return;
34319 }
34320 void parser___ReduceAction338___init(val_t p0, val_t p1, int* init_table){
34321 int itpos313 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction338].i;
34322 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34323 val_t REGB0;
34324 val_t tmp;
34325 if (init_table[itpos313]) return;
34326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34327 fra.me.file = LOCATE_parser;
34328 fra.me.line = 10284;
34329 fra.me.meth = LOCATE_parser___ReduceAction338___init;
34330 fra.me.has_broke = 0;
34331 fra.me.REG_size = 2;
34332 fra.me.REG[0] = NIT_NULL;
34333 fra.me.REG[1] = NIT_NULL;
34334 fra.me.REG[0] = p0;
34335 REGB0 = p1;
34336 /* ./parser//parser.nit:10284 */
34337 fra.me.REG[1] = fra.me.REG[0];
34338 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34339 ATTR_parser___ReduceAction338____goto(fra.me.REG[1]) = REGB0;
34340 stack_frame_head = fra.me.prev;
34341 init_table[itpos313] = 1;
34342 return;
34343 }
34344 void parser___ReduceAction339___action(val_t p0, val_t p1){
34345 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
34346 val_t REGB0;
34347 val_t tmp;
34348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34349 fra.me.file = LOCATE_parser;
34350 fra.me.line = 10288;
34351 fra.me.meth = LOCATE_parser___ReduceAction339___action;
34352 fra.me.has_broke = 0;
34353 fra.me.REG_size = 6;
34354 fra.me.REG[0] = NIT_NULL;
34355 fra.me.REG[1] = NIT_NULL;
34356 fra.me.REG[2] = NIT_NULL;
34357 fra.me.REG[3] = NIT_NULL;
34358 fra.me.REG[4] = NIT_NULL;
34359 fra.me.REG[5] = NIT_NULL;
34360 fra.me.REG[0] = p0;
34361 fra.me.REG[1] = p1;
34362 /* ./parser//parser.nit:10290 */
34363 fra.me.REG[2] = NIT_NULL;
34364 /* ./parser//parser.nit:10291 */
34365 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34366 /* ./parser//parser.nit:10292 */
34367 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34368 /* ./parser//parser.nit:10293 */
34369 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34370 /* ./parser//parser.nit:10294 */
34371 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34372 /* ./parser//parser.nit:10295 */
34373 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34374 /* ./parser//parser.nit:10296 */
34375 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34376 /* ./parser//parser.nit:10297 */
34377 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34378 /* ./parser//parser.nit:10298 */
34379 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34380 /* ./parser//parser.nit:10299 */
34381 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34382 /* ./parser//parser.nit:10301 */
34383 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34384 if (UNTAG_Bool(REGB0)) {
34385 } else {
34386 nit_abort("Assert failed", NULL, LOCATE_parser, 10301);
34387 }
34388 /* ./parser//parser.nit:10303 */
34389 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
34390 if (UNTAG_Bool(REGB0)) {
34391 } else {
34392 nit_abort("Assert failed", NULL, LOCATE_parser, 10303);
34393 }
34394 /* ./parser//parser.nit:10304 */
34395 fra.me.REG[3] = NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[4], fra.me.REG[3]);
34396 /* ./parser//parser.nit:10308 */
34397 fra.me.REG[2] = fra.me.REG[3];
34398 /* ./parser//parser.nit:10309 */
34399 REGB0 = TAG_Bool(ATTR_parser___ReduceAction339____goto(fra.me.REG[0])!=NIT_NULL);
34400 if (UNTAG_Bool(REGB0)) {
34401 } else {
34402 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10309);
34403 }
34404 REGB0 = ATTR_parser___ReduceAction339____goto(fra.me.REG[0]);
34405 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34406 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34407 stack_frame_head = fra.me.prev;
34408 return;
34409 }
34410 void parser___ReduceAction339___init(val_t p0, val_t p1, int* init_table){
34411 int itpos314 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction339].i;
34412 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34413 val_t REGB0;
34414 val_t tmp;
34415 if (init_table[itpos314]) return;
34416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34417 fra.me.file = LOCATE_parser;
34418 fra.me.line = 10312;
34419 fra.me.meth = LOCATE_parser___ReduceAction339___init;
34420 fra.me.has_broke = 0;
34421 fra.me.REG_size = 2;
34422 fra.me.REG[0] = NIT_NULL;
34423 fra.me.REG[1] = NIT_NULL;
34424 fra.me.REG[0] = p0;
34425 REGB0 = p1;
34426 /* ./parser//parser.nit:10312 */
34427 fra.me.REG[1] = fra.me.REG[0];
34428 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34429 ATTR_parser___ReduceAction339____goto(fra.me.REG[1]) = REGB0;
34430 stack_frame_head = fra.me.prev;
34431 init_table[itpos314] = 1;
34432 return;
34433 }
34434 void parser___ReduceAction340___action(val_t p0, val_t p1){
34435 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34436 val_t REGB0;
34437 val_t tmp;
34438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34439 fra.me.file = LOCATE_parser;
34440 fra.me.line = 10316;
34441 fra.me.meth = LOCATE_parser___ReduceAction340___action;
34442 fra.me.has_broke = 0;
34443 fra.me.REG_size = 5;
34444 fra.me.REG[0] = NIT_NULL;
34445 fra.me.REG[1] = NIT_NULL;
34446 fra.me.REG[2] = NIT_NULL;
34447 fra.me.REG[3] = NIT_NULL;
34448 fra.me.REG[4] = NIT_NULL;
34449 fra.me.REG[0] = p0;
34450 fra.me.REG[1] = p1;
34451 /* ./parser//parser.nit:10318 */
34452 fra.me.REG[2] = NIT_NULL;
34453 /* ./parser//parser.nit:10319 */
34454 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34455 /* ./parser//parser.nit:10320 */
34456 fra.me.REG[4] = NEW_Array_array___Array___init();
34457 /* ./parser//parser.nit:10322 */
34458 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
34459 if (UNTAG_Bool(REGB0)) {
34460 } else {
34461 nit_abort("Assert failed", NULL, LOCATE_parser, 10322);
34462 }
34463 /* ./parser//parser.nit:10323 */
34464 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
34465 fra.me.REG[4] = fra.me.REG[3];
34466 /* ./parser//parser.nit:10324 */
34467 fra.me.REG[4] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr(fra.me.REG[4]);
34468 /* ./parser//parser.nit:10327 */
34469 fra.me.REG[2] = fra.me.REG[4];
34470 /* ./parser//parser.nit:10328 */
34471 REGB0 = TAG_Bool(ATTR_parser___ReduceAction340____goto(fra.me.REG[0])!=NIT_NULL);
34472 if (UNTAG_Bool(REGB0)) {
34473 } else {
34474 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10328);
34475 }
34476 REGB0 = ATTR_parser___ReduceAction340____goto(fra.me.REG[0]);
34477 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34478 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34479 stack_frame_head = fra.me.prev;
34480 return;
34481 }
34482 void parser___ReduceAction340___init(val_t p0, val_t p1, int* init_table){
34483 int itpos315 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction340].i;
34484 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34485 val_t REGB0;
34486 val_t tmp;
34487 if (init_table[itpos315]) return;
34488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34489 fra.me.file = LOCATE_parser;
34490 fra.me.line = 10331;
34491 fra.me.meth = LOCATE_parser___ReduceAction340___init;
34492 fra.me.has_broke = 0;
34493 fra.me.REG_size = 2;
34494 fra.me.REG[0] = NIT_NULL;
34495 fra.me.REG[1] = NIT_NULL;
34496 fra.me.REG[0] = p0;
34497 REGB0 = p1;
34498 /* ./parser//parser.nit:10331 */
34499 fra.me.REG[1] = fra.me.REG[0];
34500 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34501 ATTR_parser___ReduceAction340____goto(fra.me.REG[1]) = REGB0;
34502 stack_frame_head = fra.me.prev;
34503 init_table[itpos315] = 1;
34504 return;
34505 }
34506 void parser___ReduceAction341___action(val_t p0, val_t p1){
34507 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34508 val_t REGB0;
34509 val_t tmp;
34510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34511 fra.me.file = LOCATE_parser;
34512 fra.me.line = 10335;
34513 fra.me.meth = LOCATE_parser___ReduceAction341___action;
34514 fra.me.has_broke = 0;
34515 fra.me.REG_size = 4;
34516 fra.me.REG[0] = NIT_NULL;
34517 fra.me.REG[1] = NIT_NULL;
34518 fra.me.REG[2] = NIT_NULL;
34519 fra.me.REG[3] = NIT_NULL;
34520 fra.me.REG[0] = p0;
34521 fra.me.REG[1] = p1;
34522 /* ./parser//parser.nit:10337 */
34523 fra.me.REG[2] = NIT_NULL;
34524 /* ./parser//parser.nit:10338 */
34525 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34526 /* ./parser//parser.nit:10340 */
34527 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwself, ID_TKwself)) /*cast nullable TKwself*/;
34528 if (UNTAG_Bool(REGB0)) {
34529 } else {
34530 nit_abort("Assert failed", NULL, LOCATE_parser, 10340);
34531 }
34532 /* ./parser//parser.nit:10341 */
34533 fra.me.REG[3] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[3]);
34534 /* ./parser//parser.nit:10344 */
34535 fra.me.REG[2] = fra.me.REG[3];
34536 /* ./parser//parser.nit:10345 */
34537 REGB0 = TAG_Bool(ATTR_parser___ReduceAction341____goto(fra.me.REG[0])!=NIT_NULL);
34538 if (UNTAG_Bool(REGB0)) {
34539 } else {
34540 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10345);
34541 }
34542 REGB0 = ATTR_parser___ReduceAction341____goto(fra.me.REG[0]);
34543 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34544 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34545 stack_frame_head = fra.me.prev;
34546 return;
34547 }
34548 void parser___ReduceAction341___init(val_t p0, val_t p1, int* init_table){
34549 int itpos316 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction341].i;
34550 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34551 val_t REGB0;
34552 val_t tmp;
34553 if (init_table[itpos316]) return;
34554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34555 fra.me.file = LOCATE_parser;
34556 fra.me.line = 10348;
34557 fra.me.meth = LOCATE_parser___ReduceAction341___init;
34558 fra.me.has_broke = 0;
34559 fra.me.REG_size = 2;
34560 fra.me.REG[0] = NIT_NULL;
34561 fra.me.REG[1] = NIT_NULL;
34562 fra.me.REG[0] = p0;
34563 REGB0 = p1;
34564 /* ./parser//parser.nit:10348 */
34565 fra.me.REG[1] = fra.me.REG[0];
34566 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34567 ATTR_parser___ReduceAction341____goto(fra.me.REG[1]) = REGB0;
34568 stack_frame_head = fra.me.prev;
34569 init_table[itpos316] = 1;
34570 return;
34571 }
34572 void parser___ReduceAction342___action(val_t p0, val_t p1){
34573 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34574 val_t REGB0;
34575 val_t tmp;
34576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34577 fra.me.file = LOCATE_parser;
34578 fra.me.line = 10352;
34579 fra.me.meth = LOCATE_parser___ReduceAction342___action;
34580 fra.me.has_broke = 0;
34581 fra.me.REG_size = 4;
34582 fra.me.REG[0] = NIT_NULL;
34583 fra.me.REG[1] = NIT_NULL;
34584 fra.me.REG[2] = NIT_NULL;
34585 fra.me.REG[3] = NIT_NULL;
34586 fra.me.REG[0] = p0;
34587 fra.me.REG[1] = p1;
34588 /* ./parser//parser.nit:10354 */
34589 fra.me.REG[2] = NIT_NULL;
34590 /* ./parser//parser.nit:10355 */
34591 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34592 /* ./parser//parser.nit:10357 */
34593 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwtrue, ID_TKwtrue)) /*cast nullable TKwtrue*/;
34594 if (UNTAG_Bool(REGB0)) {
34595 } else {
34596 nit_abort("Assert failed", NULL, LOCATE_parser, 10357);
34597 }
34598 /* ./parser//parser.nit:10358 */
34599 fra.me.REG[3] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr(fra.me.REG[3]);
34600 /* ./parser//parser.nit:10361 */
34601 fra.me.REG[2] = fra.me.REG[3];
34602 /* ./parser//parser.nit:10362 */
34603 REGB0 = TAG_Bool(ATTR_parser___ReduceAction342____goto(fra.me.REG[0])!=NIT_NULL);
34604 if (UNTAG_Bool(REGB0)) {
34605 } else {
34606 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10362);
34607 }
34608 REGB0 = ATTR_parser___ReduceAction342____goto(fra.me.REG[0]);
34609 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34610 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34611 stack_frame_head = fra.me.prev;
34612 return;
34613 }
34614 void parser___ReduceAction342___init(val_t p0, val_t p1, int* init_table){
34615 int itpos317 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction342].i;
34616 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34617 val_t REGB0;
34618 val_t tmp;
34619 if (init_table[itpos317]) return;
34620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34621 fra.me.file = LOCATE_parser;
34622 fra.me.line = 10365;
34623 fra.me.meth = LOCATE_parser___ReduceAction342___init;
34624 fra.me.has_broke = 0;
34625 fra.me.REG_size = 2;
34626 fra.me.REG[0] = NIT_NULL;
34627 fra.me.REG[1] = NIT_NULL;
34628 fra.me.REG[0] = p0;
34629 REGB0 = p1;
34630 /* ./parser//parser.nit:10365 */
34631 fra.me.REG[1] = fra.me.REG[0];
34632 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34633 ATTR_parser___ReduceAction342____goto(fra.me.REG[1]) = REGB0;
34634 stack_frame_head = fra.me.prev;
34635 init_table[itpos317] = 1;
34636 return;
34637 }
34638 void parser___ReduceAction343___action(val_t p0, val_t p1){
34639 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34640 val_t REGB0;
34641 val_t tmp;
34642 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34643 fra.me.file = LOCATE_parser;
34644 fra.me.line = 10369;
34645 fra.me.meth = LOCATE_parser___ReduceAction343___action;
34646 fra.me.has_broke = 0;
34647 fra.me.REG_size = 4;
34648 fra.me.REG[0] = NIT_NULL;
34649 fra.me.REG[1] = NIT_NULL;
34650 fra.me.REG[2] = NIT_NULL;
34651 fra.me.REG[3] = NIT_NULL;
34652 fra.me.REG[0] = p0;
34653 fra.me.REG[1] = p1;
34654 /* ./parser//parser.nit:10371 */
34655 fra.me.REG[2] = NIT_NULL;
34656 /* ./parser//parser.nit:10372 */
34657 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34658 /* ./parser//parser.nit:10374 */
34659 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwfalse, ID_TKwfalse)) /*cast nullable TKwfalse*/;
34660 if (UNTAG_Bool(REGB0)) {
34661 } else {
34662 nit_abort("Assert failed", NULL, LOCATE_parser, 10374);
34663 }
34664 /* ./parser//parser.nit:10375 */
34665 fra.me.REG[3] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr(fra.me.REG[3]);
34666 /* ./parser//parser.nit:10378 */
34667 fra.me.REG[2] = fra.me.REG[3];
34668 /* ./parser//parser.nit:10379 */
34669 REGB0 = TAG_Bool(ATTR_parser___ReduceAction343____goto(fra.me.REG[0])!=NIT_NULL);
34670 if (UNTAG_Bool(REGB0)) {
34671 } else {
34672 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10379);
34673 }
34674 REGB0 = ATTR_parser___ReduceAction343____goto(fra.me.REG[0]);
34675 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34676 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34677 stack_frame_head = fra.me.prev;
34678 return;
34679 }
34680 void parser___ReduceAction343___init(val_t p0, val_t p1, int* init_table){
34681 int itpos318 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction343].i;
34682 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34683 val_t REGB0;
34684 val_t tmp;
34685 if (init_table[itpos318]) return;
34686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34687 fra.me.file = LOCATE_parser;
34688 fra.me.line = 10382;
34689 fra.me.meth = LOCATE_parser___ReduceAction343___init;
34690 fra.me.has_broke = 0;
34691 fra.me.REG_size = 2;
34692 fra.me.REG[0] = NIT_NULL;
34693 fra.me.REG[1] = NIT_NULL;
34694 fra.me.REG[0] = p0;
34695 REGB0 = p1;
34696 /* ./parser//parser.nit:10382 */
34697 fra.me.REG[1] = fra.me.REG[0];
34698 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34699 ATTR_parser___ReduceAction343____goto(fra.me.REG[1]) = REGB0;
34700 stack_frame_head = fra.me.prev;
34701 init_table[itpos318] = 1;
34702 return;
34703 }
34704 void parser___ReduceAction344___action(val_t p0, val_t p1){
34705 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34706 val_t REGB0;
34707 val_t tmp;
34708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34709 fra.me.file = LOCATE_parser;
34710 fra.me.line = 10386;
34711 fra.me.meth = LOCATE_parser___ReduceAction344___action;
34712 fra.me.has_broke = 0;
34713 fra.me.REG_size = 4;
34714 fra.me.REG[0] = NIT_NULL;
34715 fra.me.REG[1] = NIT_NULL;
34716 fra.me.REG[2] = NIT_NULL;
34717 fra.me.REG[3] = NIT_NULL;
34718 fra.me.REG[0] = p0;
34719 fra.me.REG[1] = p1;
34720 /* ./parser//parser.nit:10388 */
34721 fra.me.REG[2] = NIT_NULL;
34722 /* ./parser//parser.nit:10389 */
34723 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34724 /* ./parser//parser.nit:10391 */
34725 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwnull, ID_TKwnull)) /*cast nullable TKwnull*/;
34726 if (UNTAG_Bool(REGB0)) {
34727 } else {
34728 nit_abort("Assert failed", NULL, LOCATE_parser, 10391);
34729 }
34730 /* ./parser//parser.nit:10392 */
34731 fra.me.REG[3] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr(fra.me.REG[3]);
34732 /* ./parser//parser.nit:10395 */
34733 fra.me.REG[2] = fra.me.REG[3];
34734 /* ./parser//parser.nit:10396 */
34735 REGB0 = TAG_Bool(ATTR_parser___ReduceAction344____goto(fra.me.REG[0])!=NIT_NULL);
34736 if (UNTAG_Bool(REGB0)) {
34737 } else {
34738 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10396);
34739 }
34740 REGB0 = ATTR_parser___ReduceAction344____goto(fra.me.REG[0]);
34741 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34742 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34743 stack_frame_head = fra.me.prev;
34744 return;
34745 }
34746 void parser___ReduceAction344___init(val_t p0, val_t p1, int* init_table){
34747 int itpos319 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction344].i;
34748 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34749 val_t REGB0;
34750 val_t tmp;
34751 if (init_table[itpos319]) return;
34752 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34753 fra.me.file = LOCATE_parser;
34754 fra.me.line = 10399;
34755 fra.me.meth = LOCATE_parser___ReduceAction344___init;
34756 fra.me.has_broke = 0;
34757 fra.me.REG_size = 2;
34758 fra.me.REG[0] = NIT_NULL;
34759 fra.me.REG[1] = NIT_NULL;
34760 fra.me.REG[0] = p0;
34761 REGB0 = p1;
34762 /* ./parser//parser.nit:10399 */
34763 fra.me.REG[1] = fra.me.REG[0];
34764 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34765 ATTR_parser___ReduceAction344____goto(fra.me.REG[1]) = REGB0;
34766 stack_frame_head = fra.me.prev;
34767 init_table[itpos319] = 1;
34768 return;
34769 }
34770 void parser___ReduceAction345___action(val_t p0, val_t p1){
34771 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34772 val_t REGB0;
34773 val_t tmp;
34774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34775 fra.me.file = LOCATE_parser;
34776 fra.me.line = 10403;
34777 fra.me.meth = LOCATE_parser___ReduceAction345___action;
34778 fra.me.has_broke = 0;
34779 fra.me.REG_size = 4;
34780 fra.me.REG[0] = NIT_NULL;
34781 fra.me.REG[1] = NIT_NULL;
34782 fra.me.REG[2] = NIT_NULL;
34783 fra.me.REG[3] = NIT_NULL;
34784 fra.me.REG[0] = p0;
34785 fra.me.REG[1] = p1;
34786 /* ./parser//parser.nit:10405 */
34787 fra.me.REG[2] = NIT_NULL;
34788 /* ./parser//parser.nit:10406 */
34789 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34790 /* ./parser//parser.nit:10408 */
34791 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TNumber, ID_TNumber)) /*cast nullable TNumber*/;
34792 if (UNTAG_Bool(REGB0)) {
34793 } else {
34794 nit_abort("Assert failed", NULL, LOCATE_parser, 10408);
34795 }
34796 /* ./parser//parser.nit:10409 */
34797 fra.me.REG[3] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr(fra.me.REG[3]);
34798 /* ./parser//parser.nit:10412 */
34799 fra.me.REG[2] = fra.me.REG[3];
34800 /* ./parser//parser.nit:10413 */
34801 REGB0 = TAG_Bool(ATTR_parser___ReduceAction345____goto(fra.me.REG[0])!=NIT_NULL);
34802 if (UNTAG_Bool(REGB0)) {
34803 } else {
34804 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10413);
34805 }
34806 REGB0 = ATTR_parser___ReduceAction345____goto(fra.me.REG[0]);
34807 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34808 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34809 stack_frame_head = fra.me.prev;
34810 return;
34811 }
34812 void parser___ReduceAction345___init(val_t p0, val_t p1, int* init_table){
34813 int itpos320 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction345].i;
34814 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34815 val_t REGB0;
34816 val_t tmp;
34817 if (init_table[itpos320]) return;
34818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34819 fra.me.file = LOCATE_parser;
34820 fra.me.line = 10416;
34821 fra.me.meth = LOCATE_parser___ReduceAction345___init;
34822 fra.me.has_broke = 0;
34823 fra.me.REG_size = 2;
34824 fra.me.REG[0] = NIT_NULL;
34825 fra.me.REG[1] = NIT_NULL;
34826 fra.me.REG[0] = p0;
34827 REGB0 = p1;
34828 /* ./parser//parser.nit:10416 */
34829 fra.me.REG[1] = fra.me.REG[0];
34830 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34831 ATTR_parser___ReduceAction345____goto(fra.me.REG[1]) = REGB0;
34832 stack_frame_head = fra.me.prev;
34833 init_table[itpos320] = 1;
34834 return;
34835 }
34836 void parser___ReduceAction346___action(val_t p0, val_t p1){
34837 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34838 val_t REGB0;
34839 val_t tmp;
34840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34841 fra.me.file = LOCATE_parser;
34842 fra.me.line = 10420;
34843 fra.me.meth = LOCATE_parser___ReduceAction346___action;
34844 fra.me.has_broke = 0;
34845 fra.me.REG_size = 4;
34846 fra.me.REG[0] = NIT_NULL;
34847 fra.me.REG[1] = NIT_NULL;
34848 fra.me.REG[2] = NIT_NULL;
34849 fra.me.REG[3] = NIT_NULL;
34850 fra.me.REG[0] = p0;
34851 fra.me.REG[1] = p1;
34852 /* ./parser//parser.nit:10422 */
34853 fra.me.REG[2] = NIT_NULL;
34854 /* ./parser//parser.nit:10423 */
34855 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34856 /* ./parser//parser.nit:10425 */
34857 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TFloat, ID_TFloat)) /*cast nullable TFloat*/;
34858 if (UNTAG_Bool(REGB0)) {
34859 } else {
34860 nit_abort("Assert failed", NULL, LOCATE_parser, 10425);
34861 }
34862 /* ./parser//parser.nit:10426 */
34863 fra.me.REG[3] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr(fra.me.REG[3]);
34864 /* ./parser//parser.nit:10429 */
34865 fra.me.REG[2] = fra.me.REG[3];
34866 /* ./parser//parser.nit:10430 */
34867 REGB0 = TAG_Bool(ATTR_parser___ReduceAction346____goto(fra.me.REG[0])!=NIT_NULL);
34868 if (UNTAG_Bool(REGB0)) {
34869 } else {
34870 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10430);
34871 }
34872 REGB0 = ATTR_parser___ReduceAction346____goto(fra.me.REG[0]);
34873 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34874 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34875 stack_frame_head = fra.me.prev;
34876 return;
34877 }
34878 void parser___ReduceAction346___init(val_t p0, val_t p1, int* init_table){
34879 int itpos321 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction346].i;
34880 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34881 val_t REGB0;
34882 val_t tmp;
34883 if (init_table[itpos321]) return;
34884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34885 fra.me.file = LOCATE_parser;
34886 fra.me.line = 10433;
34887 fra.me.meth = LOCATE_parser___ReduceAction346___init;
34888 fra.me.has_broke = 0;
34889 fra.me.REG_size = 2;
34890 fra.me.REG[0] = NIT_NULL;
34891 fra.me.REG[1] = NIT_NULL;
34892 fra.me.REG[0] = p0;
34893 REGB0 = p1;
34894 /* ./parser//parser.nit:10433 */
34895 fra.me.REG[1] = fra.me.REG[0];
34896 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34897 ATTR_parser___ReduceAction346____goto(fra.me.REG[1]) = REGB0;
34898 stack_frame_head = fra.me.prev;
34899 init_table[itpos321] = 1;
34900 return;
34901 }
34902 void parser___ReduceAction347___action(val_t p0, val_t p1){
34903 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34904 val_t REGB0;
34905 val_t tmp;
34906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34907 fra.me.file = LOCATE_parser;
34908 fra.me.line = 10437;
34909 fra.me.meth = LOCATE_parser___ReduceAction347___action;
34910 fra.me.has_broke = 0;
34911 fra.me.REG_size = 4;
34912 fra.me.REG[0] = NIT_NULL;
34913 fra.me.REG[1] = NIT_NULL;
34914 fra.me.REG[2] = NIT_NULL;
34915 fra.me.REG[3] = NIT_NULL;
34916 fra.me.REG[0] = p0;
34917 fra.me.REG[1] = p1;
34918 /* ./parser//parser.nit:10439 */
34919 fra.me.REG[2] = NIT_NULL;
34920 /* ./parser//parser.nit:10440 */
34921 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34922 /* ./parser//parser.nit:10442 */
34923 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TChar, ID_TChar)) /*cast nullable TChar*/;
34924 if (UNTAG_Bool(REGB0)) {
34925 } else {
34926 nit_abort("Assert failed", NULL, LOCATE_parser, 10442);
34927 }
34928 /* ./parser//parser.nit:10443 */
34929 fra.me.REG[3] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr(fra.me.REG[3]);
34930 /* ./parser//parser.nit:10446 */
34931 fra.me.REG[2] = fra.me.REG[3];
34932 /* ./parser//parser.nit:10447 */
34933 REGB0 = TAG_Bool(ATTR_parser___ReduceAction347____goto(fra.me.REG[0])!=NIT_NULL);
34934 if (UNTAG_Bool(REGB0)) {
34935 } else {
34936 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10447);
34937 }
34938 REGB0 = ATTR_parser___ReduceAction347____goto(fra.me.REG[0]);
34939 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
34940 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
34941 stack_frame_head = fra.me.prev;
34942 return;
34943 }
34944 void parser___ReduceAction347___init(val_t p0, val_t p1, int* init_table){
34945 int itpos322 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction347].i;
34946 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34947 val_t REGB0;
34948 val_t tmp;
34949 if (init_table[itpos322]) return;
34950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34951 fra.me.file = LOCATE_parser;
34952 fra.me.line = 10450;
34953 fra.me.meth = LOCATE_parser___ReduceAction347___init;
34954 fra.me.has_broke = 0;
34955 fra.me.REG_size = 2;
34956 fra.me.REG[0] = NIT_NULL;
34957 fra.me.REG[1] = NIT_NULL;
34958 fra.me.REG[0] = p0;
34959 REGB0 = p1;
34960 /* ./parser//parser.nit:10450 */
34961 fra.me.REG[1] = fra.me.REG[0];
34962 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
34963 ATTR_parser___ReduceAction347____goto(fra.me.REG[1]) = REGB0;
34964 stack_frame_head = fra.me.prev;
34965 init_table[itpos322] = 1;
34966 return;
34967 }
34968 void parser___ReduceAction348___action(val_t p0, val_t p1){
34969 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34970 val_t REGB0;
34971 val_t tmp;
34972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34973 fra.me.file = LOCATE_parser;
34974 fra.me.line = 10454;
34975 fra.me.meth = LOCATE_parser___ReduceAction348___action;
34976 fra.me.has_broke = 0;
34977 fra.me.REG_size = 4;
34978 fra.me.REG[0] = NIT_NULL;
34979 fra.me.REG[1] = NIT_NULL;
34980 fra.me.REG[2] = NIT_NULL;
34981 fra.me.REG[3] = NIT_NULL;
34982 fra.me.REG[0] = p0;
34983 fra.me.REG[1] = p1;
34984 /* ./parser//parser.nit:10456 */
34985 fra.me.REG[2] = NIT_NULL;
34986 /* ./parser//parser.nit:10457 */
34987 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
34988 /* ./parser//parser.nit:10459 */
34989 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TString, ID_TString)) /*cast nullable TString*/;
34990 if (UNTAG_Bool(REGB0)) {
34991 } else {
34992 nit_abort("Assert failed", NULL, LOCATE_parser, 10459);
34993 }
34994 /* ./parser//parser.nit:10460 */
34995 fra.me.REG[3] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr(fra.me.REG[3]);
34996 /* ./parser//parser.nit:10463 */
34997 fra.me.REG[2] = fra.me.REG[3];
34998 /* ./parser//parser.nit:10464 */
34999 REGB0 = TAG_Bool(ATTR_parser___ReduceAction348____goto(fra.me.REG[0])!=NIT_NULL);
35000 if (UNTAG_Bool(REGB0)) {
35001 } else {
35002 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10464);
35003 }
35004 REGB0 = ATTR_parser___ReduceAction348____goto(fra.me.REG[0]);
35005 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35006 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35007 stack_frame_head = fra.me.prev;
35008 return;
35009 }
35010 void parser___ReduceAction348___init(val_t p0, val_t p1, int* init_table){
35011 int itpos323 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction348].i;
35012 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35013 val_t REGB0;
35014 val_t tmp;
35015 if (init_table[itpos323]) return;
35016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35017 fra.me.file = LOCATE_parser;
35018 fra.me.line = 10467;
35019 fra.me.meth = LOCATE_parser___ReduceAction348___init;
35020 fra.me.has_broke = 0;
35021 fra.me.REG_size = 2;
35022 fra.me.REG[0] = NIT_NULL;
35023 fra.me.REG[1] = NIT_NULL;
35024 fra.me.REG[0] = p0;
35025 REGB0 = p1;
35026 /* ./parser//parser.nit:10467 */
35027 fra.me.REG[1] = fra.me.REG[0];
35028 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35029 ATTR_parser___ReduceAction348____goto(fra.me.REG[1]) = REGB0;
35030 stack_frame_head = fra.me.prev;
35031 init_table[itpos323] = 1;
35032 return;
35033 }
35034 void parser___ReduceAction351___action(val_t p0, val_t p1){
35035 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35036 val_t REGB0;
35037 val_t tmp;
35038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35039 fra.me.file = LOCATE_parser;
35040 fra.me.line = 10471;
35041 fra.me.meth = LOCATE_parser___ReduceAction351___action;
35042 fra.me.has_broke = 0;
35043 fra.me.REG_size = 6;
35044 fra.me.REG[0] = NIT_NULL;
35045 fra.me.REG[1] = NIT_NULL;
35046 fra.me.REG[2] = NIT_NULL;
35047 fra.me.REG[3] = NIT_NULL;
35048 fra.me.REG[4] = NIT_NULL;
35049 fra.me.REG[5] = NIT_NULL;
35050 fra.me.REG[0] = p0;
35051 fra.me.REG[1] = p1;
35052 /* ./parser//parser.nit:10473 */
35053 fra.me.REG[2] = NIT_NULL;
35054 /* ./parser//parser.nit:10474 */
35055 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35056 /* ./parser//parser.nit:10475 */
35057 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35058 /* ./parser//parser.nit:10476 */
35059 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35060 /* ./parser//parser.nit:10477 */
35061 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35062 /* ./parser//parser.nit:10478 */
35063 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35064 /* ./parser//parser.nit:10479 */
35065 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35066 /* ./parser//parser.nit:10480 */
35067 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35068 /* ./parser//parser.nit:10481 */
35069 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35070 /* ./parser//parser.nit:10482 */
35071 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35072 /* ./parser//parser.nit:10483 */
35073 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35074 /* ./parser//parser.nit:10485 */
35075 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35076 if (UNTAG_Bool(REGB0)) {
35077 } else {
35078 nit_abort("Assert failed", NULL, LOCATE_parser, 10485);
35079 }
35080 /* ./parser//parser.nit:10487 */
35081 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwas, ID_TKwas)) /*cast nullable TKwas*/;
35082 if (UNTAG_Bool(REGB0)) {
35083 } else {
35084 nit_abort("Assert failed", NULL, LOCATE_parser, 10487);
35085 }
35086 /* ./parser//parser.nit:10489 */
35087 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AType, ID_AType)) /*cast nullable AType*/;
35088 if (UNTAG_Bool(REGB0)) {
35089 } else {
35090 nit_abort("Assert failed", NULL, LOCATE_parser, 10489);
35091 }
35092 /* ./parser//parser.nit:10490 */
35093 fra.me.REG[3] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
35094 /* ./parser//parser.nit:10495 */
35095 fra.me.REG[2] = fra.me.REG[3];
35096 /* ./parser//parser.nit:10496 */
35097 REGB0 = TAG_Bool(ATTR_parser___ReduceAction351____goto(fra.me.REG[0])!=NIT_NULL);
35098 if (UNTAG_Bool(REGB0)) {
35099 } else {
35100 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10496);
35101 }
35102 REGB0 = ATTR_parser___ReduceAction351____goto(fra.me.REG[0]);
35103 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35104 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35105 stack_frame_head = fra.me.prev;
35106 return;
35107 }
35108 void parser___ReduceAction351___init(val_t p0, val_t p1, int* init_table){
35109 int itpos324 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction351].i;
35110 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35111 val_t REGB0;
35112 val_t tmp;
35113 if (init_table[itpos324]) return;
35114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35115 fra.me.file = LOCATE_parser;
35116 fra.me.line = 10499;
35117 fra.me.meth = LOCATE_parser___ReduceAction351___init;
35118 fra.me.has_broke = 0;
35119 fra.me.REG_size = 2;
35120 fra.me.REG[0] = NIT_NULL;
35121 fra.me.REG[1] = NIT_NULL;
35122 fra.me.REG[0] = p0;
35123 REGB0 = p1;
35124 /* ./parser//parser.nit:10499 */
35125 fra.me.REG[1] = fra.me.REG[0];
35126 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35127 ATTR_parser___ReduceAction351____goto(fra.me.REG[1]) = REGB0;
35128 stack_frame_head = fra.me.prev;
35129 init_table[itpos324] = 1;
35130 return;
35131 }
35132 void parser___ReduceAction352___action(val_t p0, val_t p1){
35133 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
35134 val_t REGB0;
35135 val_t tmp;
35136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35137 fra.me.file = LOCATE_parser;
35138 fra.me.line = 10503;
35139 fra.me.meth = LOCATE_parser___ReduceAction352___action;
35140 fra.me.has_broke = 0;
35141 fra.me.REG_size = 7;
35142 fra.me.REG[0] = NIT_NULL;
35143 fra.me.REG[1] = NIT_NULL;
35144 fra.me.REG[2] = NIT_NULL;
35145 fra.me.REG[3] = NIT_NULL;
35146 fra.me.REG[4] = NIT_NULL;
35147 fra.me.REG[5] = NIT_NULL;
35148 fra.me.REG[6] = NIT_NULL;
35149 fra.me.REG[0] = p0;
35150 fra.me.REG[1] = p1;
35151 /* ./parser//parser.nit:10505 */
35152 fra.me.REG[2] = NIT_NULL;
35153 /* ./parser//parser.nit:10506 */
35154 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35155 /* ./parser//parser.nit:10507 */
35156 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35157 /* ./parser//parser.nit:10508 */
35158 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35159 /* ./parser//parser.nit:10509 */
35160 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35161 /* ./parser//parser.nit:10510 */
35162 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35163 /* ./parser//parser.nit:10511 */
35164 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35165 /* ./parser//parser.nit:10512 */
35166 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35167 /* ./parser//parser.nit:10513 */
35168 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35169 /* ./parser//parser.nit:10514 */
35170 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35171 /* ./parser//parser.nit:10515 */
35172 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35173 /* ./parser//parser.nit:10516 */
35174 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35175 /* ./parser//parser.nit:10517 */
35176 fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35177 /* ./parser//parser.nit:10519 */
35178 REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35179 if (UNTAG_Bool(REGB0)) {
35180 } else {
35181 nit_abort("Assert failed", NULL, LOCATE_parser, 10519);
35182 }
35183 /* ./parser//parser.nit:10521 */
35184 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwas, ID_TKwas)) /*cast nullable TKwas*/;
35185 if (UNTAG_Bool(REGB0)) {
35186 } else {
35187 nit_abort("Assert failed", NULL, LOCATE_parser, 10521);
35188 }
35189 /* ./parser//parser.nit:10523 */
35190 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwnot, ID_TKwnot)) /*cast nullable TKwnot*/;
35191 if (UNTAG_Bool(REGB0)) {
35192 } else {
35193 nit_abort("Assert failed", NULL, LOCATE_parser, 10523);
35194 }
35195 /* ./parser//parser.nit:10525 */
35196 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TKwnull, ID_TKwnull)) /*cast nullable TKwnull*/;
35197 if (UNTAG_Bool(REGB0)) {
35198 } else {
35199 nit_abort("Assert failed", NULL, LOCATE_parser, 10525);
35200 }
35201 /* ./parser//parser.nit:10526 */
35202 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]);
35203 /* ./parser//parser.nit:10532 */
35204 fra.me.REG[2] = fra.me.REG[3];
35205 /* ./parser//parser.nit:10533 */
35206 REGB0 = TAG_Bool(ATTR_parser___ReduceAction352____goto(fra.me.REG[0])!=NIT_NULL);
35207 if (UNTAG_Bool(REGB0)) {
35208 } else {
35209 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10533);
35210 }
35211 REGB0 = ATTR_parser___ReduceAction352____goto(fra.me.REG[0]);
35212 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35213 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35214 stack_frame_head = fra.me.prev;
35215 return;
35216 }
35217 void parser___ReduceAction352___init(val_t p0, val_t p1, int* init_table){
35218 int itpos325 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction352].i;
35219 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35220 val_t REGB0;
35221 val_t tmp;
35222 if (init_table[itpos325]) return;
35223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35224 fra.me.file = LOCATE_parser;
35225 fra.me.line = 10536;
35226 fra.me.meth = LOCATE_parser___ReduceAction352___init;
35227 fra.me.has_broke = 0;
35228 fra.me.REG_size = 2;
35229 fra.me.REG[0] = NIT_NULL;
35230 fra.me.REG[1] = NIT_NULL;
35231 fra.me.REG[0] = p0;
35232 REGB0 = p1;
35233 /* ./parser//parser.nit:10536 */
35234 fra.me.REG[1] = fra.me.REG[0];
35235 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35236 ATTR_parser___ReduceAction352____goto(fra.me.REG[1]) = REGB0;
35237 stack_frame_head = fra.me.prev;
35238 init_table[itpos325] = 1;
35239 return;
35240 }
35241 void parser___ReduceAction353___action(val_t p0, val_t p1){
35242 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35243 val_t REGB0;
35244 val_t REGB1;
35245 val_t tmp;
35246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35247 fra.me.file = LOCATE_parser;
35248 fra.me.line = 10540;
35249 fra.me.meth = LOCATE_parser___ReduceAction353___action;
35250 fra.me.has_broke = 0;
35251 fra.me.REG_size = 6;
35252 fra.me.REG[0] = NIT_NULL;
35253 fra.me.REG[1] = NIT_NULL;
35254 fra.me.REG[2] = NIT_NULL;
35255 fra.me.REG[3] = NIT_NULL;
35256 fra.me.REG[4] = NIT_NULL;
35257 fra.me.REG[5] = NIT_NULL;
35258 fra.me.REG[0] = p0;
35259 fra.me.REG[1] = p1;
35260 /* ./parser//parser.nit:10542 */
35261 fra.me.REG[2] = NIT_NULL;
35262 /* ./parser//parser.nit:10543 */
35263 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35264 /* ./parser//parser.nit:10544 */
35265 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35266 /* ./parser//parser.nit:10545 */
35267 fra.me.REG[5] = NEW_Array_array___Array___init();
35268 /* ./parser//parser.nit:10547 */
35269 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35270 if (UNTAG_Bool(REGB0)) {
35271 } else {
35272 nit_abort("Assert failed", NULL, LOCATE_parser, 10547);
35273 }
35274 /* ./parser//parser.nit:10549 */
35275 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35276 if (UNTAG_Bool(REGB0)) {
35277 } else {
35278 nit_abort("Assert failed", NULL, LOCATE_parser, 10549);
35279 }
35280 /* ./parser//parser.nit:10550 */
35281 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
35282 fra.me.REG[5] = fra.me.REG[4];
35283 /* ./parser//parser.nit:10551 */
35284 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35285 if (UNTAG_Bool(REGB0)) {
35286 } else {
35287 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35288 if (UNTAG_Bool(REGB1)) {
35289 REGB1 = TAG_Bool(false);
35290 REGB0 = REGB1;
35291 } else {
35292 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35293 REGB0 = REGB1;
35294 }
35295 }
35296 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35297 if (UNTAG_Bool(REGB0)) {
35298 /* ./parser//parser.nit:10552 */
35299 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
35300 }
35301 /* ./parser//parser.nit:10554 */
35302 fra.me.REG[5] = NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[5]);
35303 /* ./parser//parser.nit:10557 */
35304 fra.me.REG[2] = fra.me.REG[5];
35305 /* ./parser//parser.nit:10558 */
35306 REGB0 = TAG_Bool(ATTR_parser___ReduceAction353____goto(fra.me.REG[0])!=NIT_NULL);
35307 if (UNTAG_Bool(REGB0)) {
35308 } else {
35309 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10558);
35310 }
35311 REGB0 = ATTR_parser___ReduceAction353____goto(fra.me.REG[0]);
35312 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35313 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35314 stack_frame_head = fra.me.prev;
35315 return;
35316 }
35317 void parser___ReduceAction353___init(val_t p0, val_t p1, int* init_table){
35318 int itpos326 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction353].i;
35319 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35320 val_t REGB0;
35321 val_t tmp;
35322 if (init_table[itpos326]) return;
35323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35324 fra.me.file = LOCATE_parser;
35325 fra.me.line = 10561;
35326 fra.me.meth = LOCATE_parser___ReduceAction353___init;
35327 fra.me.has_broke = 0;
35328 fra.me.REG_size = 2;
35329 fra.me.REG[0] = NIT_NULL;
35330 fra.me.REG[1] = NIT_NULL;
35331 fra.me.REG[0] = p0;
35332 REGB0 = p1;
35333 /* ./parser//parser.nit:10561 */
35334 fra.me.REG[1] = fra.me.REG[0];
35335 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35336 ATTR_parser___ReduceAction353____goto(fra.me.REG[1]) = REGB0;
35337 stack_frame_head = fra.me.prev;
35338 init_table[itpos326] = 1;
35339 return;
35340 }
35341 void parser___ReduceAction354___action(val_t p0, val_t p1){
35342 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
35343 val_t REGB0;
35344 val_t REGB1;
35345 val_t tmp;
35346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35347 fra.me.file = LOCATE_parser;
35348 fra.me.line = 10565;
35349 fra.me.meth = LOCATE_parser___ReduceAction354___action;
35350 fra.me.has_broke = 0;
35351 fra.me.REG_size = 7;
35352 fra.me.REG[0] = NIT_NULL;
35353 fra.me.REG[1] = NIT_NULL;
35354 fra.me.REG[2] = NIT_NULL;
35355 fra.me.REG[3] = NIT_NULL;
35356 fra.me.REG[4] = NIT_NULL;
35357 fra.me.REG[5] = NIT_NULL;
35358 fra.me.REG[6] = NIT_NULL;
35359 fra.me.REG[0] = p0;
35360 fra.me.REG[1] = p1;
35361 /* ./parser//parser.nit:10567 */
35362 fra.me.REG[2] = NIT_NULL;
35363 /* ./parser//parser.nit:10568 */
35364 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35365 /* ./parser//parser.nit:10569 */
35366 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35367 /* ./parser//parser.nit:10570 */
35368 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35369 /* ./parser//parser.nit:10571 */
35370 fra.me.REG[6] = NEW_Array_array___Array___init();
35371 /* ./parser//parser.nit:10573 */
35372 REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35373 if (UNTAG_Bool(REGB0)) {
35374 } else {
35375 nit_abort("Assert failed", NULL, LOCATE_parser, 10573);
35376 }
35377 /* ./parser//parser.nit:10575 */
35378 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35379 if (UNTAG_Bool(REGB0)) {
35380 } else {
35381 nit_abort("Assert failed", NULL, LOCATE_parser, 10575);
35382 }
35383 /* ./parser//parser.nit:10577 */
35384 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
35385 if (UNTAG_Bool(REGB0)) {
35386 } else {
35387 nit_abort("Assert failed", NULL, LOCATE_parser, 10577);
35388 }
35389 /* ./parser//parser.nit:10578 */
35390 fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
35391 fra.me.REG[6] = fra.me.REG[5];
35392 /* ./parser//parser.nit:10579 */
35393 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
35394 fra.me.REG[6] = fra.me.REG[4];
35395 /* ./parser//parser.nit:10580 */
35396 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35397 if (UNTAG_Bool(REGB0)) {
35398 } else {
35399 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35400 if (UNTAG_Bool(REGB1)) {
35401 REGB1 = TAG_Bool(false);
35402 REGB0 = REGB1;
35403 } else {
35404 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35405 REGB0 = REGB1;
35406 }
35407 }
35408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35409 if (UNTAG_Bool(REGB0)) {
35410 /* ./parser//parser.nit:10581 */
35411 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
35412 }
35413 /* ./parser//parser.nit:10583 */
35414 fra.me.REG[6] = NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[6]);
35415 /* ./parser//parser.nit:10586 */
35416 fra.me.REG[2] = fra.me.REG[6];
35417 /* ./parser//parser.nit:10587 */
35418 REGB0 = TAG_Bool(ATTR_parser___ReduceAction354____goto(fra.me.REG[0])!=NIT_NULL);
35419 if (UNTAG_Bool(REGB0)) {
35420 } else {
35421 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10587);
35422 }
35423 REGB0 = ATTR_parser___ReduceAction354____goto(fra.me.REG[0]);
35424 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35425 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35426 stack_frame_head = fra.me.prev;
35427 return;
35428 }
35429 void parser___ReduceAction354___init(val_t p0, val_t p1, int* init_table){
35430 int itpos327 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction354].i;
35431 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35432 val_t REGB0;
35433 val_t tmp;
35434 if (init_table[itpos327]) return;
35435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35436 fra.me.file = LOCATE_parser;
35437 fra.me.line = 10590;
35438 fra.me.meth = LOCATE_parser___ReduceAction354___init;
35439 fra.me.has_broke = 0;
35440 fra.me.REG_size = 2;
35441 fra.me.REG[0] = NIT_NULL;
35442 fra.me.REG[1] = NIT_NULL;
35443 fra.me.REG[0] = p0;
35444 REGB0 = p1;
35445 /* ./parser//parser.nit:10590 */
35446 fra.me.REG[1] = fra.me.REG[0];
35447 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35448 ATTR_parser___ReduceAction354____goto(fra.me.REG[1]) = REGB0;
35449 stack_frame_head = fra.me.prev;
35450 init_table[itpos327] = 1;
35451 return;
35452 }
35453 void parser___ReduceAction355___action(val_t p0, val_t p1){
35454 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35455 val_t REGB0;
35456 val_t REGB1;
35457 val_t tmp;
35458 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35459 fra.me.file = LOCATE_parser;
35460 fra.me.line = 10594;
35461 fra.me.meth = LOCATE_parser___ReduceAction355___action;
35462 fra.me.has_broke = 0;
35463 fra.me.REG_size = 6;
35464 fra.me.REG[0] = NIT_NULL;
35465 fra.me.REG[1] = NIT_NULL;
35466 fra.me.REG[2] = NIT_NULL;
35467 fra.me.REG[3] = NIT_NULL;
35468 fra.me.REG[4] = NIT_NULL;
35469 fra.me.REG[5] = NIT_NULL;
35470 fra.me.REG[0] = p0;
35471 fra.me.REG[1] = p1;
35472 /* ./parser//parser.nit:10596 */
35473 fra.me.REG[2] = NIT_NULL;
35474 /* ./parser//parser.nit:10597 */
35475 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35476 /* ./parser//parser.nit:10598 */
35477 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35478 /* ./parser//parser.nit:10599 */
35479 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35480 /* ./parser//parser.nit:10600 */
35481 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35482 /* ./parser//parser.nit:10601 */
35483 fra.me.REG[5] = NEW_Array_array___Array___init();
35484 /* ./parser//parser.nit:10604 */
35485 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35486 if (UNTAG_Bool(REGB0)) {
35487 } else {
35488 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35489 if (UNTAG_Bool(REGB1)) {
35490 REGB1 = TAG_Bool(false);
35491 REGB0 = REGB1;
35492 } else {
35493 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
35494 REGB0 = REGB1;
35495 }
35496 }
35497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35498 if (UNTAG_Bool(REGB0)) {
35499 /* ./parser//parser.nit:10605 */
35500 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
35501 }
35502 /* ./parser//parser.nit:10607 */
35503 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35504 if (UNTAG_Bool(REGB0)) {
35505 } else {
35506 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35507 if (UNTAG_Bool(REGB1)) {
35508 REGB1 = TAG_Bool(false);
35509 REGB0 = REGB1;
35510 } else {
35511 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35512 REGB0 = REGB1;
35513 }
35514 }
35515 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35516 if (UNTAG_Bool(REGB0)) {
35517 /* ./parser//parser.nit:10608 */
35518 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
35519 }
35520 /* ./parser//parser.nit:10610 */
35521 fra.me.REG[2] = fra.me.REG[5];
35522 /* ./parser//parser.nit:10611 */
35523 REGB0 = TAG_Bool(ATTR_parser___ReduceAction355____goto(fra.me.REG[0])!=NIT_NULL);
35524 if (UNTAG_Bool(REGB0)) {
35525 } else {
35526 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10611);
35527 }
35528 REGB0 = ATTR_parser___ReduceAction355____goto(fra.me.REG[0]);
35529 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35530 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35531 stack_frame_head = fra.me.prev;
35532 return;
35533 }
35534 void parser___ReduceAction355___init(val_t p0, val_t p1, int* init_table){
35535 int itpos328 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction355].i;
35536 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35537 val_t REGB0;
35538 val_t tmp;
35539 if (init_table[itpos328]) return;
35540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35541 fra.me.file = LOCATE_parser;
35542 fra.me.line = 10614;
35543 fra.me.meth = LOCATE_parser___ReduceAction355___init;
35544 fra.me.has_broke = 0;
35545 fra.me.REG_size = 2;
35546 fra.me.REG[0] = NIT_NULL;
35547 fra.me.REG[1] = NIT_NULL;
35548 fra.me.REG[0] = p0;
35549 REGB0 = p1;
35550 /* ./parser//parser.nit:10614 */
35551 fra.me.REG[1] = fra.me.REG[0];
35552 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35553 ATTR_parser___ReduceAction355____goto(fra.me.REG[1]) = REGB0;
35554 stack_frame_head = fra.me.prev;
35555 init_table[itpos328] = 1;
35556 return;
35557 }
35558 void parser___ReduceAction356___action(val_t p0, val_t p1){
35559 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35560 val_t REGB0;
35561 val_t tmp;
35562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35563 fra.me.file = LOCATE_parser;
35564 fra.me.line = 10618;
35565 fra.me.meth = LOCATE_parser___ReduceAction356___action;
35566 fra.me.has_broke = 0;
35567 fra.me.REG_size = 4;
35568 fra.me.REG[0] = NIT_NULL;
35569 fra.me.REG[1] = NIT_NULL;
35570 fra.me.REG[2] = NIT_NULL;
35571 fra.me.REG[3] = NIT_NULL;
35572 fra.me.REG[0] = p0;
35573 fra.me.REG[1] = p1;
35574 /* ./parser//parser.nit:10620 */
35575 fra.me.REG[2] = NIT_NULL;
35576 /* ./parser//parser.nit:10621 */
35577 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35578 /* ./parser//parser.nit:10623 */
35579 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TStartString, ID_TStartString)) /*cast nullable TStartString*/;
35580 if (UNTAG_Bool(REGB0)) {
35581 } else {
35582 nit_abort("Assert failed", NULL, LOCATE_parser, 10623);
35583 }
35584 /* ./parser//parser.nit:10624 */
35585 fra.me.REG[3] = NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr(fra.me.REG[3]);
35586 /* ./parser//parser.nit:10627 */
35587 fra.me.REG[2] = fra.me.REG[3];
35588 /* ./parser//parser.nit:10628 */
35589 REGB0 = TAG_Bool(ATTR_parser___ReduceAction356____goto(fra.me.REG[0])!=NIT_NULL);
35590 if (UNTAG_Bool(REGB0)) {
35591 } else {
35592 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10628);
35593 }
35594 REGB0 = ATTR_parser___ReduceAction356____goto(fra.me.REG[0]);
35595 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35596 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35597 stack_frame_head = fra.me.prev;
35598 return;
35599 }
35600 void parser___ReduceAction356___init(val_t p0, val_t p1, int* init_table){
35601 int itpos329 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction356].i;
35602 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35603 val_t REGB0;
35604 val_t tmp;
35605 if (init_table[itpos329]) return;
35606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35607 fra.me.file = LOCATE_parser;
35608 fra.me.line = 10631;
35609 fra.me.meth = LOCATE_parser___ReduceAction356___init;
35610 fra.me.has_broke = 0;
35611 fra.me.REG_size = 2;
35612 fra.me.REG[0] = NIT_NULL;
35613 fra.me.REG[1] = NIT_NULL;
35614 fra.me.REG[0] = p0;
35615 REGB0 = p1;
35616 /* ./parser//parser.nit:10631 */
35617 fra.me.REG[1] = fra.me.REG[0];
35618 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35619 ATTR_parser___ReduceAction356____goto(fra.me.REG[1]) = REGB0;
35620 stack_frame_head = fra.me.prev;
35621 init_table[itpos329] = 1;
35622 return;
35623 }
35624 void parser___ReduceAction358___action(val_t p0, val_t p1){
35625 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35626 val_t REGB0;
35627 val_t tmp;
35628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35629 fra.me.file = LOCATE_parser;
35630 fra.me.line = 10635;
35631 fra.me.meth = LOCATE_parser___ReduceAction358___action;
35632 fra.me.has_broke = 0;
35633 fra.me.REG_size = 4;
35634 fra.me.REG[0] = NIT_NULL;
35635 fra.me.REG[1] = NIT_NULL;
35636 fra.me.REG[2] = NIT_NULL;
35637 fra.me.REG[3] = NIT_NULL;
35638 fra.me.REG[0] = p0;
35639 fra.me.REG[1] = p1;
35640 /* ./parser//parser.nit:10637 */
35641 fra.me.REG[2] = NIT_NULL;
35642 /* ./parser//parser.nit:10638 */
35643 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35644 /* ./parser//parser.nit:10640 */
35645 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TMidString, ID_TMidString)) /*cast nullable TMidString*/;
35646 if (UNTAG_Bool(REGB0)) {
35647 } else {
35648 nit_abort("Assert failed", NULL, LOCATE_parser, 10640);
35649 }
35650 /* ./parser//parser.nit:10641 */
35651 fra.me.REG[3] = NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr(fra.me.REG[3]);
35652 /* ./parser//parser.nit:10644 */
35653 fra.me.REG[2] = fra.me.REG[3];
35654 /* ./parser//parser.nit:10645 */
35655 REGB0 = TAG_Bool(ATTR_parser___ReduceAction358____goto(fra.me.REG[0])!=NIT_NULL);
35656 if (UNTAG_Bool(REGB0)) {
35657 } else {
35658 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10645);
35659 }
35660 REGB0 = ATTR_parser___ReduceAction358____goto(fra.me.REG[0]);
35661 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35662 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35663 stack_frame_head = fra.me.prev;
35664 return;
35665 }
35666 void parser___ReduceAction358___init(val_t p0, val_t p1, int* init_table){
35667 int itpos330 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction358].i;
35668 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35669 val_t REGB0;
35670 val_t tmp;
35671 if (init_table[itpos330]) return;
35672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35673 fra.me.file = LOCATE_parser;
35674 fra.me.line = 10648;
35675 fra.me.meth = LOCATE_parser___ReduceAction358___init;
35676 fra.me.has_broke = 0;
35677 fra.me.REG_size = 2;
35678 fra.me.REG[0] = NIT_NULL;
35679 fra.me.REG[1] = NIT_NULL;
35680 fra.me.REG[0] = p0;
35681 REGB0 = p1;
35682 /* ./parser//parser.nit:10648 */
35683 fra.me.REG[1] = fra.me.REG[0];
35684 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35685 ATTR_parser___ReduceAction358____goto(fra.me.REG[1]) = REGB0;
35686 stack_frame_head = fra.me.prev;
35687 init_table[itpos330] = 1;
35688 return;
35689 }
35690 void parser___ReduceAction359___action(val_t p0, val_t p1){
35691 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35692 val_t REGB0;
35693 val_t tmp;
35694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35695 fra.me.file = LOCATE_parser;
35696 fra.me.line = 10652;
35697 fra.me.meth = LOCATE_parser___ReduceAction359___action;
35698 fra.me.has_broke = 0;
35699 fra.me.REG_size = 4;
35700 fra.me.REG[0] = NIT_NULL;
35701 fra.me.REG[1] = NIT_NULL;
35702 fra.me.REG[2] = NIT_NULL;
35703 fra.me.REG[3] = NIT_NULL;
35704 fra.me.REG[0] = p0;
35705 fra.me.REG[1] = p1;
35706 /* ./parser//parser.nit:10654 */
35707 fra.me.REG[2] = NIT_NULL;
35708 /* ./parser//parser.nit:10655 */
35709 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35710 /* ./parser//parser.nit:10657 */
35711 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TEndString, ID_TEndString)) /*cast nullable TEndString*/;
35712 if (UNTAG_Bool(REGB0)) {
35713 } else {
35714 nit_abort("Assert failed", NULL, LOCATE_parser, 10657);
35715 }
35716 /* ./parser//parser.nit:10658 */
35717 fra.me.REG[3] = NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr(fra.me.REG[3]);
35718 /* ./parser//parser.nit:10661 */
35719 fra.me.REG[2] = fra.me.REG[3];
35720 /* ./parser//parser.nit:10662 */
35721 REGB0 = TAG_Bool(ATTR_parser___ReduceAction359____goto(fra.me.REG[0])!=NIT_NULL);
35722 if (UNTAG_Bool(REGB0)) {
35723 } else {
35724 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10662);
35725 }
35726 REGB0 = ATTR_parser___ReduceAction359____goto(fra.me.REG[0]);
35727 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35728 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35729 stack_frame_head = fra.me.prev;
35730 return;
35731 }
35732 void parser___ReduceAction359___init(val_t p0, val_t p1, int* init_table){
35733 int itpos331 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction359].i;
35734 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35735 val_t REGB0;
35736 val_t tmp;
35737 if (init_table[itpos331]) return;
35738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35739 fra.me.file = LOCATE_parser;
35740 fra.me.line = 10665;
35741 fra.me.meth = LOCATE_parser___ReduceAction359___init;
35742 fra.me.has_broke = 0;
35743 fra.me.REG_size = 2;
35744 fra.me.REG[0] = NIT_NULL;
35745 fra.me.REG[1] = NIT_NULL;
35746 fra.me.REG[0] = p0;
35747 REGB0 = p1;
35748 /* ./parser//parser.nit:10665 */
35749 fra.me.REG[1] = fra.me.REG[0];
35750 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35751 ATTR_parser___ReduceAction359____goto(fra.me.REG[1]) = REGB0;
35752 stack_frame_head = fra.me.prev;
35753 init_table[itpos331] = 1;
35754 return;
35755 }
35756 void parser___ReduceAction360___action(val_t p0, val_t p1){
35757 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
35758 val_t REGB0;
35759 val_t REGB1;
35760 val_t tmp;
35761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35762 fra.me.file = LOCATE_parser;
35763 fra.me.line = 10669;
35764 fra.me.meth = LOCATE_parser___ReduceAction360___action;
35765 fra.me.has_broke = 0;
35766 fra.me.REG_size = 5;
35767 fra.me.REG[0] = NIT_NULL;
35768 fra.me.REG[1] = NIT_NULL;
35769 fra.me.REG[2] = NIT_NULL;
35770 fra.me.REG[3] = NIT_NULL;
35771 fra.me.REG[4] = NIT_NULL;
35772 fra.me.REG[0] = p0;
35773 fra.me.REG[1] = p1;
35774 /* ./parser//parser.nit:10671 */
35775 fra.me.REG[2] = NIT_NULL;
35776 /* ./parser//parser.nit:10672 */
35777 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35778 /* ./parser//parser.nit:10673 */
35779 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35780 /* ./parser//parser.nit:10674 */
35781 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35782 /* ./parser//parser.nit:10675 */
35783 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35784 /* ./parser//parser.nit:10676 */
35785 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35786 /* ./parser//parser.nit:10677 */
35787 fra.me.REG[4] = NEW_Array_array___Array___init();
35788 /* ./parser//parser.nit:10679 */
35789 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35790 if (UNTAG_Bool(REGB0)) {
35791 } else {
35792 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35793 if (UNTAG_Bool(REGB1)) {
35794 REGB1 = TAG_Bool(false);
35795 REGB0 = REGB1;
35796 } else {
35797 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
35798 REGB0 = REGB1;
35799 }
35800 }
35801 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35802 if (UNTAG_Bool(REGB0)) {
35803 /* ./parser//parser.nit:10680 */
35804 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
35805 }
35806 /* ./parser//parser.nit:10682 */
35807 fra.me.REG[2] = fra.me.REG[4];
35808 /* ./parser//parser.nit:10683 */
35809 REGB0 = TAG_Bool(ATTR_parser___ReduceAction360____goto(fra.me.REG[0])!=NIT_NULL);
35810 if (UNTAG_Bool(REGB0)) {
35811 } else {
35812 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10683);
35813 }
35814 REGB0 = ATTR_parser___ReduceAction360____goto(fra.me.REG[0]);
35815 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35816 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35817 stack_frame_head = fra.me.prev;
35818 return;
35819 }
35820 void parser___ReduceAction360___init(val_t p0, val_t p1, int* init_table){
35821 int itpos332 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction360].i;
35822 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35823 val_t REGB0;
35824 val_t tmp;
35825 if (init_table[itpos332]) return;
35826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35827 fra.me.file = LOCATE_parser;
35828 fra.me.line = 10686;
35829 fra.me.meth = LOCATE_parser___ReduceAction360___init;
35830 fra.me.has_broke = 0;
35831 fra.me.REG_size = 2;
35832 fra.me.REG[0] = NIT_NULL;
35833 fra.me.REG[1] = NIT_NULL;
35834 fra.me.REG[0] = p0;
35835 REGB0 = p1;
35836 /* ./parser//parser.nit:10686 */
35837 fra.me.REG[1] = fra.me.REG[0];
35838 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35839 ATTR_parser___ReduceAction360____goto(fra.me.REG[1]) = REGB0;
35840 stack_frame_head = fra.me.prev;
35841 init_table[itpos332] = 1;
35842 return;
35843 }
35844 void parser___ReduceAction361___action(val_t p0, val_t p1){
35845 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35846 val_t REGB0;
35847 val_t REGB1;
35848 val_t tmp;
35849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35850 fra.me.file = LOCATE_parser;
35851 fra.me.line = 10690;
35852 fra.me.meth = LOCATE_parser___ReduceAction361___action;
35853 fra.me.has_broke = 0;
35854 fra.me.REG_size = 6;
35855 fra.me.REG[0] = NIT_NULL;
35856 fra.me.REG[1] = NIT_NULL;
35857 fra.me.REG[2] = NIT_NULL;
35858 fra.me.REG[3] = NIT_NULL;
35859 fra.me.REG[4] = NIT_NULL;
35860 fra.me.REG[5] = NIT_NULL;
35861 fra.me.REG[0] = p0;
35862 fra.me.REG[1] = p1;
35863 /* ./parser//parser.nit:10692 */
35864 fra.me.REG[2] = NIT_NULL;
35865 /* ./parser//parser.nit:10693 */
35866 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35867 /* ./parser//parser.nit:10694 */
35868 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35869 /* ./parser//parser.nit:10695 */
35870 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35871 /* ./parser//parser.nit:10696 */
35872 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35873 /* ./parser//parser.nit:10697 */
35874 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35875 /* ./parser//parser.nit:10698 */
35876 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
35877 /* ./parser//parser.nit:10699 */
35878 fra.me.REG[5] = NEW_Array_array___Array___init();
35879 /* ./parser//parser.nit:10702 */
35880 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
35881 if (UNTAG_Bool(REGB0)) {
35882 } else {
35883 nit_abort("Assert failed", NULL, LOCATE_parser, 10702);
35884 }
35885 /* ./parser//parser.nit:10703 */
35886 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35887 if (UNTAG_Bool(REGB0)) {
35888 } else {
35889 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35890 if (UNTAG_Bool(REGB1)) {
35891 REGB1 = TAG_Bool(false);
35892 REGB0 = REGB1;
35893 } else {
35894 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
35895 REGB0 = REGB1;
35896 }
35897 }
35898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35899 if (UNTAG_Bool(REGB0)) {
35900 /* ./parser//parser.nit:10704 */
35901 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
35902 }
35903 /* ./parser//parser.nit:10706 */
35904 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
35905 fra.me.REG[5] = fra.me.REG[3];
35906 /* ./parser//parser.nit:10707 */
35907 fra.me.REG[2] = fra.me.REG[5];
35908 /* ./parser//parser.nit:10708 */
35909 REGB0 = TAG_Bool(ATTR_parser___ReduceAction361____goto(fra.me.REG[0])!=NIT_NULL);
35910 if (UNTAG_Bool(REGB0)) {
35911 } else {
35912 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10708);
35913 }
35914 REGB0 = ATTR_parser___ReduceAction361____goto(fra.me.REG[0]);
35915 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35916 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35917 stack_frame_head = fra.me.prev;
35918 return;
35919 }
35920 void parser___ReduceAction361___init(val_t p0, val_t p1, int* init_table){
35921 int itpos333 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction361].i;
35922 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35923 val_t REGB0;
35924 val_t tmp;
35925 if (init_table[itpos333]) return;
35926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35927 fra.me.file = LOCATE_parser;
35928 fra.me.line = 10711;
35929 fra.me.meth = LOCATE_parser___ReduceAction361___init;
35930 fra.me.has_broke = 0;
35931 fra.me.REG_size = 2;
35932 fra.me.REG[0] = NIT_NULL;
35933 fra.me.REG[1] = NIT_NULL;
35934 fra.me.REG[0] = p0;
35935 REGB0 = p1;
35936 /* ./parser//parser.nit:10711 */
35937 fra.me.REG[1] = fra.me.REG[0];
35938 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35939 ATTR_parser___ReduceAction361____goto(fra.me.REG[1]) = REGB0;
35940 stack_frame_head = fra.me.prev;
35941 init_table[itpos333] = 1;
35942 return;
35943 }
35944 void parser___ReduceAction363___action(val_t p0, val_t p1){
35945 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35946 val_t REGB0;
35947 val_t tmp;
35948 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35949 fra.me.file = LOCATE_parser;
35950 fra.me.line = 10715;
35951 fra.me.meth = LOCATE_parser___ReduceAction363___action;
35952 fra.me.has_broke = 0;
35953 fra.me.REG_size = 4;
35954 fra.me.REG[0] = NIT_NULL;
35955 fra.me.REG[1] = NIT_NULL;
35956 fra.me.REG[2] = NIT_NULL;
35957 fra.me.REG[3] = NIT_NULL;
35958 fra.me.REG[0] = p0;
35959 fra.me.REG[1] = p1;
35960 /* ./parser//parser.nit:10717 */
35961 fra.me.REG[2] = NIT_NULL;
35962 /* ./parser//parser.nit:10718 */
35963 fra.me.REG[3] = NEW_Array_array___Array___init();
35964 /* ./parser//parser.nit:10719 */
35965 fra.me.REG[2] = fra.me.REG[3];
35966 /* ./parser//parser.nit:10720 */
35967 REGB0 = TAG_Bool(ATTR_parser___ReduceAction363____goto(fra.me.REG[0])!=NIT_NULL);
35968 if (UNTAG_Bool(REGB0)) {
35969 } else {
35970 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10720);
35971 }
35972 REGB0 = ATTR_parser___ReduceAction363____goto(fra.me.REG[0]);
35973 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
35974 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
35975 stack_frame_head = fra.me.prev;
35976 return;
35977 }
35978 void parser___ReduceAction363___init(val_t p0, val_t p1, int* init_table){
35979 int itpos334 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction363].i;
35980 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35981 val_t REGB0;
35982 val_t tmp;
35983 if (init_table[itpos334]) return;
35984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35985 fra.me.file = LOCATE_parser;
35986 fra.me.line = 10723;
35987 fra.me.meth = LOCATE_parser___ReduceAction363___init;
35988 fra.me.has_broke = 0;
35989 fra.me.REG_size = 2;
35990 fra.me.REG[0] = NIT_NULL;
35991 fra.me.REG[1] = NIT_NULL;
35992 fra.me.REG[0] = p0;
35993 REGB0 = p1;
35994 /* ./parser//parser.nit:10723 */
35995 fra.me.REG[1] = fra.me.REG[0];
35996 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
35997 ATTR_parser___ReduceAction363____goto(fra.me.REG[1]) = REGB0;
35998 stack_frame_head = fra.me.prev;
35999 init_table[itpos334] = 1;
36000 return;
36001 }
36002 void parser___ReduceAction366___action(val_t p0, val_t p1){
36003 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36004 val_t REGB0;
36005 val_t REGB1;
36006 val_t tmp;
36007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36008 fra.me.file = LOCATE_parser;
36009 fra.me.line = 10727;
36010 fra.me.meth = LOCATE_parser___ReduceAction366___action;
36011 fra.me.has_broke = 0;
36012 fra.me.REG_size = 5;
36013 fra.me.REG[0] = NIT_NULL;
36014 fra.me.REG[1] = NIT_NULL;
36015 fra.me.REG[2] = NIT_NULL;
36016 fra.me.REG[3] = NIT_NULL;
36017 fra.me.REG[4] = NIT_NULL;
36018 fra.me.REG[0] = p0;
36019 fra.me.REG[1] = p1;
36020 /* ./parser//parser.nit:10729 */
36021 fra.me.REG[2] = NIT_NULL;
36022 /* ./parser//parser.nit:10730 */
36023 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36024 /* ./parser//parser.nit:10731 */
36025 fra.me.REG[4] = NEW_Array_array___Array___init();
36026 /* ./parser//parser.nit:10733 */
36027 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36028 if (UNTAG_Bool(REGB0)) {
36029 } else {
36030 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36031 if (UNTAG_Bool(REGB1)) {
36032 REGB1 = TAG_Bool(false);
36033 REGB0 = REGB1;
36034 } else {
36035 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36036 REGB0 = REGB1;
36037 }
36038 }
36039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36040 if (UNTAG_Bool(REGB0)) {
36041 /* ./parser//parser.nit:10734 */
36042 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
36043 }
36044 /* ./parser//parser.nit:10736 */
36045 fra.me.REG[2] = fra.me.REG[4];
36046 /* ./parser//parser.nit:10737 */
36047 REGB0 = TAG_Bool(ATTR_parser___ReduceAction366____goto(fra.me.REG[0])!=NIT_NULL);
36048 if (UNTAG_Bool(REGB0)) {
36049 } else {
36050 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10737);
36051 }
36052 REGB0 = ATTR_parser___ReduceAction366____goto(fra.me.REG[0]);
36053 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36054 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36055 stack_frame_head = fra.me.prev;
36056 return;
36057 }
36058 void parser___ReduceAction366___init(val_t p0, val_t p1, int* init_table){
36059 int itpos335 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction366].i;
36060 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36061 val_t REGB0;
36062 val_t tmp;
36063 if (init_table[itpos335]) return;
36064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36065 fra.me.file = LOCATE_parser;
36066 fra.me.line = 10740;
36067 fra.me.meth = LOCATE_parser___ReduceAction366___init;
36068 fra.me.has_broke = 0;
36069 fra.me.REG_size = 2;
36070 fra.me.REG[0] = NIT_NULL;
36071 fra.me.REG[1] = NIT_NULL;
36072 fra.me.REG[0] = p0;
36073 REGB0 = p1;
36074 /* ./parser//parser.nit:10740 */
36075 fra.me.REG[1] = fra.me.REG[0];
36076 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36077 ATTR_parser___ReduceAction366____goto(fra.me.REG[1]) = REGB0;
36078 stack_frame_head = fra.me.prev;
36079 init_table[itpos335] = 1;
36080 return;
36081 }
36082 void parser___ReduceAction371___action(val_t p0, val_t p1){
36083 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36084 val_t REGB0;
36085 val_t tmp;
36086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36087 fra.me.file = LOCATE_parser;
36088 fra.me.line = 10744;
36089 fra.me.meth = LOCATE_parser___ReduceAction371___action;
36090 fra.me.has_broke = 0;
36091 fra.me.REG_size = 5;
36092 fra.me.REG[0] = NIT_NULL;
36093 fra.me.REG[1] = NIT_NULL;
36094 fra.me.REG[2] = NIT_NULL;
36095 fra.me.REG[3] = NIT_NULL;
36096 fra.me.REG[4] = NIT_NULL;
36097 fra.me.REG[0] = p0;
36098 fra.me.REG[1] = p1;
36099 /* ./parser//parser.nit:10746 */
36100 fra.me.REG[2] = NIT_NULL;
36101 /* ./parser//parser.nit:10747 */
36102 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36103 /* ./parser//parser.nit:10748 */
36104 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36105 /* ./parser//parser.nit:10749 */
36106 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36107 /* ./parser//parser.nit:10750 */
36108 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36109 /* ./parser//parser.nit:10752 */
36110 fra.me.REG[2] = fra.me.REG[3];
36111 /* ./parser//parser.nit:10753 */
36112 REGB0 = TAG_Bool(ATTR_parser___ReduceAction371____goto(fra.me.REG[0])!=NIT_NULL);
36113 if (UNTAG_Bool(REGB0)) {
36114 } else {
36115 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10753);
36116 }
36117 REGB0 = ATTR_parser___ReduceAction371____goto(fra.me.REG[0]);
36118 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36119 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36120 stack_frame_head = fra.me.prev;
36121 return;
36122 }
36123 void parser___ReduceAction371___init(val_t p0, val_t p1, int* init_table){
36124 int itpos336 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction371].i;
36125 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36126 val_t REGB0;
36127 val_t tmp;
36128 if (init_table[itpos336]) return;
36129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36130 fra.me.file = LOCATE_parser;
36131 fra.me.line = 10756;
36132 fra.me.meth = LOCATE_parser___ReduceAction371___init;
36133 fra.me.has_broke = 0;
36134 fra.me.REG_size = 2;
36135 fra.me.REG[0] = NIT_NULL;
36136 fra.me.REG[1] = NIT_NULL;
36137 fra.me.REG[0] = p0;
36138 REGB0 = p1;
36139 /* ./parser//parser.nit:10756 */
36140 fra.me.REG[1] = fra.me.REG[0];
36141 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36142 ATTR_parser___ReduceAction371____goto(fra.me.REG[1]) = REGB0;
36143 stack_frame_head = fra.me.prev;
36144 init_table[itpos336] = 1;
36145 return;
36146 }
36147 void parser___ReduceAction372___action(val_t p0, val_t p1){
36148 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36149 val_t REGB0;
36150 val_t tmp;
36151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36152 fra.me.file = LOCATE_parser;
36153 fra.me.line = 10760;
36154 fra.me.meth = LOCATE_parser___ReduceAction372___action;
36155 fra.me.has_broke = 0;
36156 fra.me.REG_size = 5;
36157 fra.me.REG[0] = NIT_NULL;
36158 fra.me.REG[1] = NIT_NULL;
36159 fra.me.REG[2] = NIT_NULL;
36160 fra.me.REG[3] = NIT_NULL;
36161 fra.me.REG[4] = NIT_NULL;
36162 fra.me.REG[0] = p0;
36163 fra.me.REG[1] = p1;
36164 /* ./parser//parser.nit:10762 */
36165 fra.me.REG[2] = NIT_NULL;
36166 /* ./parser//parser.nit:10763 */
36167 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36168 /* ./parser//parser.nit:10764 */
36169 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36170 /* ./parser//parser.nit:10765 */
36171 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36172 /* ./parser//parser.nit:10766 */
36173 fra.me.REG[4] = NEW_Array_array___Array___init();
36174 /* ./parser//parser.nit:10768 */
36175 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36176 if (UNTAG_Bool(REGB0)) {
36177 } else {
36178 nit_abort("Assert failed", NULL, LOCATE_parser, 10768);
36179 }
36180 /* ./parser//parser.nit:10769 */
36181 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36182 fra.me.REG[4] = fra.me.REG[3];
36183 /* ./parser//parser.nit:10770 */
36184 fra.me.REG[2] = fra.me.REG[4];
36185 /* ./parser//parser.nit:10771 */
36186 REGB0 = TAG_Bool(ATTR_parser___ReduceAction372____goto(fra.me.REG[0])!=NIT_NULL);
36187 if (UNTAG_Bool(REGB0)) {
36188 } else {
36189 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10771);
36190 }
36191 REGB0 = ATTR_parser___ReduceAction372____goto(fra.me.REG[0]);
36192 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36193 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36194 stack_frame_head = fra.me.prev;
36195 return;
36196 }
36197 void parser___ReduceAction372___init(val_t p0, val_t p1, int* init_table){
36198 int itpos337 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction372].i;
36199 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36200 val_t REGB0;
36201 val_t tmp;
36202 if (init_table[itpos337]) return;
36203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36204 fra.me.file = LOCATE_parser;
36205 fra.me.line = 10774;
36206 fra.me.meth = LOCATE_parser___ReduceAction372___init;
36207 fra.me.has_broke = 0;
36208 fra.me.REG_size = 2;
36209 fra.me.REG[0] = NIT_NULL;
36210 fra.me.REG[1] = NIT_NULL;
36211 fra.me.REG[0] = p0;
36212 REGB0 = p1;
36213 /* ./parser//parser.nit:10774 */
36214 fra.me.REG[1] = fra.me.REG[0];
36215 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36216 ATTR_parser___ReduceAction372____goto(fra.me.REG[1]) = REGB0;
36217 stack_frame_head = fra.me.prev;
36218 init_table[itpos337] = 1;
36219 return;
36220 }
36221 void parser___ReduceAction373___action(val_t p0, val_t p1){
36222 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36223 val_t REGB0;
36224 val_t tmp;
36225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36226 fra.me.file = LOCATE_parser;
36227 fra.me.line = 10778;
36228 fra.me.meth = LOCATE_parser___ReduceAction373___action;
36229 fra.me.has_broke = 0;
36230 fra.me.REG_size = 5;
36231 fra.me.REG[0] = NIT_NULL;
36232 fra.me.REG[1] = NIT_NULL;
36233 fra.me.REG[2] = NIT_NULL;
36234 fra.me.REG[3] = NIT_NULL;
36235 fra.me.REG[4] = NIT_NULL;
36236 fra.me.REG[0] = p0;
36237 fra.me.REG[1] = p1;
36238 /* ./parser//parser.nit:10780 */
36239 fra.me.REG[2] = NIT_NULL;
36240 /* ./parser//parser.nit:10781 */
36241 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36242 /* ./parser//parser.nit:10782 */
36243 fra.me.REG[4] = NEW_Array_array___Array___init();
36244 /* ./parser//parser.nit:10784 */
36245 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36246 if (UNTAG_Bool(REGB0)) {
36247 } else {
36248 nit_abort("Assert failed", NULL, LOCATE_parser, 10784);
36249 }
36250 /* ./parser//parser.nit:10785 */
36251 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36252 fra.me.REG[4] = fra.me.REG[3];
36253 /* ./parser//parser.nit:10786 */
36254 fra.me.REG[2] = fra.me.REG[4];
36255 /* ./parser//parser.nit:10787 */
36256 REGB0 = TAG_Bool(ATTR_parser___ReduceAction373____goto(fra.me.REG[0])!=NIT_NULL);
36257 if (UNTAG_Bool(REGB0)) {
36258 } else {
36259 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10787);
36260 }
36261 REGB0 = ATTR_parser___ReduceAction373____goto(fra.me.REG[0]);
36262 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36263 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36264 stack_frame_head = fra.me.prev;
36265 return;
36266 }
36267 void parser___ReduceAction373___init(val_t p0, val_t p1, int* init_table){
36268 int itpos338 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction373].i;
36269 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36270 val_t REGB0;
36271 val_t tmp;
36272 if (init_table[itpos338]) return;
36273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36274 fra.me.file = LOCATE_parser;
36275 fra.me.line = 10790;
36276 fra.me.meth = LOCATE_parser___ReduceAction373___init;
36277 fra.me.has_broke = 0;
36278 fra.me.REG_size = 2;
36279 fra.me.REG[0] = NIT_NULL;
36280 fra.me.REG[1] = NIT_NULL;
36281 fra.me.REG[0] = p0;
36282 REGB0 = p1;
36283 /* ./parser//parser.nit:10790 */
36284 fra.me.REG[1] = fra.me.REG[0];
36285 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36286 ATTR_parser___ReduceAction373____goto(fra.me.REG[1]) = REGB0;
36287 stack_frame_head = fra.me.prev;
36288 init_table[itpos338] = 1;
36289 return;
36290 }
36291 void parser___ReduceAction374___action(val_t p0, val_t p1){
36292 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36293 val_t REGB0;
36294 val_t REGB1;
36295 val_t tmp;
36296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36297 fra.me.file = LOCATE_parser;
36298 fra.me.line = 10794;
36299 fra.me.meth = LOCATE_parser___ReduceAction374___action;
36300 fra.me.has_broke = 0;
36301 fra.me.REG_size = 5;
36302 fra.me.REG[0] = NIT_NULL;
36303 fra.me.REG[1] = NIT_NULL;
36304 fra.me.REG[2] = NIT_NULL;
36305 fra.me.REG[3] = NIT_NULL;
36306 fra.me.REG[4] = NIT_NULL;
36307 fra.me.REG[0] = p0;
36308 fra.me.REG[1] = p1;
36309 /* ./parser//parser.nit:10796 */
36310 fra.me.REG[2] = NIT_NULL;
36311 /* ./parser//parser.nit:10797 */
36312 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36313 /* ./parser//parser.nit:10798 */
36314 fra.me.REG[4] = NEW_Array_array___Array___init();
36315 /* ./parser//parser.nit:10800 */
36316 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36317 if (UNTAG_Bool(REGB0)) {
36318 } else {
36319 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36320 if (UNTAG_Bool(REGB1)) {
36321 REGB1 = TAG_Bool(false);
36322 REGB0 = REGB1;
36323 } else {
36324 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36325 REGB0 = REGB1;
36326 }
36327 }
36328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36329 if (UNTAG_Bool(REGB0)) {
36330 /* ./parser//parser.nit:10801 */
36331 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
36332 }
36333 /* ./parser//parser.nit:10803 */
36334 fra.me.REG[2] = fra.me.REG[4];
36335 /* ./parser//parser.nit:10804 */
36336 REGB0 = TAG_Bool(ATTR_parser___ReduceAction374____goto(fra.me.REG[0])!=NIT_NULL);
36337 if (UNTAG_Bool(REGB0)) {
36338 } else {
36339 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10804);
36340 }
36341 REGB0 = ATTR_parser___ReduceAction374____goto(fra.me.REG[0]);
36342 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36343 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36344 stack_frame_head = fra.me.prev;
36345 return;
36346 }
36347 void parser___ReduceAction374___init(val_t p0, val_t p1, int* init_table){
36348 int itpos339 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction374].i;
36349 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36350 val_t REGB0;
36351 val_t tmp;
36352 if (init_table[itpos339]) return;
36353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36354 fra.me.file = LOCATE_parser;
36355 fra.me.line = 10807;
36356 fra.me.meth = LOCATE_parser___ReduceAction374___init;
36357 fra.me.has_broke = 0;
36358 fra.me.REG_size = 2;
36359 fra.me.REG[0] = NIT_NULL;
36360 fra.me.REG[1] = NIT_NULL;
36361 fra.me.REG[0] = p0;
36362 REGB0 = p1;
36363 /* ./parser//parser.nit:10807 */
36364 fra.me.REG[1] = fra.me.REG[0];
36365 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36366 ATTR_parser___ReduceAction374____goto(fra.me.REG[1]) = REGB0;
36367 stack_frame_head = fra.me.prev;
36368 init_table[itpos339] = 1;
36369 return;
36370 }
36371 void parser___ReduceAction375___action(val_t p0, val_t p1){
36372 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
36373 val_t REGB0;
36374 val_t REGB1;
36375 val_t tmp;
36376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36377 fra.me.file = LOCATE_parser;
36378 fra.me.line = 10811;
36379 fra.me.meth = LOCATE_parser___ReduceAction375___action;
36380 fra.me.has_broke = 0;
36381 fra.me.REG_size = 6;
36382 fra.me.REG[0] = NIT_NULL;
36383 fra.me.REG[1] = NIT_NULL;
36384 fra.me.REG[2] = NIT_NULL;
36385 fra.me.REG[3] = NIT_NULL;
36386 fra.me.REG[4] = NIT_NULL;
36387 fra.me.REG[5] = NIT_NULL;
36388 fra.me.REG[0] = p0;
36389 fra.me.REG[1] = p1;
36390 /* ./parser//parser.nit:10813 */
36391 fra.me.REG[2] = NIT_NULL;
36392 /* ./parser//parser.nit:10814 */
36393 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36394 /* ./parser//parser.nit:10815 */
36395 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36396 /* ./parser//parser.nit:10816 */
36397 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36398 /* ./parser//parser.nit:10817 */
36399 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36400 /* ./parser//parser.nit:10818 */
36401 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36402 /* ./parser//parser.nit:10819 */
36403 fra.me.REG[5] = NEW_Array_array___Array___init();
36404 /* ./parser//parser.nit:10821 */
36405 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36406 if (UNTAG_Bool(REGB0)) {
36407 } else {
36408 nit_abort("Assert failed", NULL, LOCATE_parser, 10821);
36409 }
36410 /* ./parser//parser.nit:10823 */
36411 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
36412 fra.me.REG[5] = fra.me.REG[4];
36413 /* ./parser//parser.nit:10824 */
36414 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36415 if (UNTAG_Bool(REGB0)) {
36416 } else {
36417 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36418 if (UNTAG_Bool(REGB1)) {
36419 REGB1 = TAG_Bool(false);
36420 REGB0 = REGB1;
36421 } else {
36422 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36423 REGB0 = REGB1;
36424 }
36425 }
36426 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36427 if (UNTAG_Bool(REGB0)) {
36428 /* ./parser//parser.nit:10825 */
36429 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
36430 }
36431 /* ./parser//parser.nit:10827 */
36432 fra.me.REG[2] = fra.me.REG[5];
36433 /* ./parser//parser.nit:10828 */
36434 REGB0 = TAG_Bool(ATTR_parser___ReduceAction375____goto(fra.me.REG[0])!=NIT_NULL);
36435 if (UNTAG_Bool(REGB0)) {
36436 } else {
36437 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10828);
36438 }
36439 REGB0 = ATTR_parser___ReduceAction375____goto(fra.me.REG[0]);
36440 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36441 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36442 stack_frame_head = fra.me.prev;
36443 return;
36444 }
36445 void parser___ReduceAction375___init(val_t p0, val_t p1, int* init_table){
36446 int itpos340 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction375].i;
36447 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36448 val_t REGB0;
36449 val_t tmp;
36450 if (init_table[itpos340]) return;
36451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36452 fra.me.file = LOCATE_parser;
36453 fra.me.line = 10831;
36454 fra.me.meth = LOCATE_parser___ReduceAction375___init;
36455 fra.me.has_broke = 0;
36456 fra.me.REG_size = 2;
36457 fra.me.REG[0] = NIT_NULL;
36458 fra.me.REG[1] = NIT_NULL;
36459 fra.me.REG[0] = p0;
36460 REGB0 = p1;
36461 /* ./parser//parser.nit:10831 */
36462 fra.me.REG[1] = fra.me.REG[0];
36463 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36464 ATTR_parser___ReduceAction375____goto(fra.me.REG[1]) = REGB0;
36465 stack_frame_head = fra.me.prev;
36466 init_table[itpos340] = 1;
36467 return;
36468 }
36469 void parser___ReduceAction376___action(val_t p0, val_t p1){
36470 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36471 val_t REGB0;
36472 val_t tmp;
36473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36474 fra.me.file = LOCATE_parser;
36475 fra.me.line = 10835;
36476 fra.me.meth = LOCATE_parser___ReduceAction376___action;
36477 fra.me.has_broke = 0;
36478 fra.me.REG_size = 5;
36479 fra.me.REG[0] = NIT_NULL;
36480 fra.me.REG[1] = NIT_NULL;
36481 fra.me.REG[2] = NIT_NULL;
36482 fra.me.REG[3] = NIT_NULL;
36483 fra.me.REG[4] = NIT_NULL;
36484 fra.me.REG[0] = p0;
36485 fra.me.REG[1] = p1;
36486 /* ./parser//parser.nit:10837 */
36487 fra.me.REG[2] = NIT_NULL;
36488 /* ./parser//parser.nit:10838 */
36489 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36490 /* ./parser//parser.nit:10839 */
36491 fra.me.REG[4] = NEW_Array_array___Array___init();
36492 /* ./parser//parser.nit:10841 */
36493 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
36494 if (UNTAG_Bool(REGB0)) {
36495 } else {
36496 nit_abort("Assert failed", NULL, LOCATE_parser, 10841);
36497 }
36498 /* ./parser//parser.nit:10842 */
36499 fra.me.REG[3] = NEW_AQualified_parser_prod___AQualified___init_aqualified(fra.me.REG[4], fra.me.REG[3]);
36500 /* ./parser//parser.nit:10846 */
36501 fra.me.REG[2] = fra.me.REG[3];
36502 /* ./parser//parser.nit:10847 */
36503 REGB0 = TAG_Bool(ATTR_parser___ReduceAction376____goto(fra.me.REG[0])!=NIT_NULL);
36504 if (UNTAG_Bool(REGB0)) {
36505 } else {
36506 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10847);
36507 }
36508 REGB0 = ATTR_parser___ReduceAction376____goto(fra.me.REG[0]);
36509 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36510 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36511 stack_frame_head = fra.me.prev;
36512 return;
36513 }
36514 void parser___ReduceAction376___init(val_t p0, val_t p1, int* init_table){
36515 int itpos341 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction376].i;
36516 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36517 val_t REGB0;
36518 val_t tmp;
36519 if (init_table[itpos341]) return;
36520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36521 fra.me.file = LOCATE_parser;
36522 fra.me.line = 10850;
36523 fra.me.meth = LOCATE_parser___ReduceAction376___init;
36524 fra.me.has_broke = 0;
36525 fra.me.REG_size = 2;
36526 fra.me.REG[0] = NIT_NULL;
36527 fra.me.REG[1] = NIT_NULL;
36528 fra.me.REG[0] = p0;
36529 REGB0 = p1;
36530 /* ./parser//parser.nit:10850 */
36531 fra.me.REG[1] = fra.me.REG[0];
36532 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36533 ATTR_parser___ReduceAction376____goto(fra.me.REG[1]) = REGB0;
36534 stack_frame_head = fra.me.prev;
36535 init_table[itpos341] = 1;
36536 return;
36537 }
36538 void parser___ReduceAction377___action(val_t p0, val_t p1){
36539 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
36540 val_t REGB0;
36541 val_t tmp;
36542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36543 fra.me.file = LOCATE_parser;
36544 fra.me.line = 10854;
36545 fra.me.meth = LOCATE_parser___ReduceAction377___action;
36546 fra.me.has_broke = 0;
36547 fra.me.REG_size = 6;
36548 fra.me.REG[0] = NIT_NULL;
36549 fra.me.REG[1] = NIT_NULL;
36550 fra.me.REG[2] = NIT_NULL;
36551 fra.me.REG[3] = NIT_NULL;
36552 fra.me.REG[4] = NIT_NULL;
36553 fra.me.REG[5] = NIT_NULL;
36554 fra.me.REG[0] = p0;
36555 fra.me.REG[1] = p1;
36556 /* ./parser//parser.nit:10856 */
36557 fra.me.REG[2] = NIT_NULL;
36558 /* ./parser//parser.nit:10857 */
36559 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36560 /* ./parser//parser.nit:10858 */
36561 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36562 /* ./parser//parser.nit:10859 */
36563 fra.me.REG[5] = NEW_Array_array___Array___init();
36564 /* ./parser//parser.nit:10861 */
36565 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36566 if (UNTAG_Bool(REGB0)) {
36567 } else {
36568 nit_abort("Assert failed", NULL, LOCATE_parser, 10861);
36569 }
36570 /* ./parser//parser.nit:10862 */
36571 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
36572 fra.me.REG[5] = fra.me.REG[4];
36573 /* ./parser//parser.nit:10864 */
36574 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TClassid, ID_TClassid)) /*cast nullable TClassid*/;
36575 if (UNTAG_Bool(REGB0)) {
36576 } else {
36577 nit_abort("Assert failed", NULL, LOCATE_parser, 10864);
36578 }
36579 /* ./parser//parser.nit:10865 */
36580 fra.me.REG[3] = NEW_AQualified_parser_prod___AQualified___init_aqualified(fra.me.REG[5], fra.me.REG[3]);
36581 /* ./parser//parser.nit:10869 */
36582 fra.me.REG[2] = fra.me.REG[3];
36583 /* ./parser//parser.nit:10870 */
36584 REGB0 = TAG_Bool(ATTR_parser___ReduceAction377____goto(fra.me.REG[0])!=NIT_NULL);
36585 if (UNTAG_Bool(REGB0)) {
36586 } else {
36587 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10870);
36588 }
36589 REGB0 = ATTR_parser___ReduceAction377____goto(fra.me.REG[0]);
36590 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36591 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36592 stack_frame_head = fra.me.prev;
36593 return;
36594 }
36595 void parser___ReduceAction377___init(val_t p0, val_t p1, int* init_table){
36596 int itpos342 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction377].i;
36597 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36598 val_t REGB0;
36599 val_t tmp;
36600 if (init_table[itpos342]) return;
36601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36602 fra.me.file = LOCATE_parser;
36603 fra.me.line = 10873;
36604 fra.me.meth = LOCATE_parser___ReduceAction377___init;
36605 fra.me.has_broke = 0;
36606 fra.me.REG_size = 2;
36607 fra.me.REG[0] = NIT_NULL;
36608 fra.me.REG[1] = NIT_NULL;
36609 fra.me.REG[0] = p0;
36610 REGB0 = p1;
36611 /* ./parser//parser.nit:10873 */
36612 fra.me.REG[1] = fra.me.REG[0];
36613 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36614 ATTR_parser___ReduceAction377____goto(fra.me.REG[1]) = REGB0;
36615 stack_frame_head = fra.me.prev;
36616 init_table[itpos342] = 1;
36617 return;
36618 }
36619 void parser___ReduceAction378___action(val_t p0, val_t p1){
36620 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36621 val_t REGB0;
36622 val_t tmp;
36623 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36624 fra.me.file = LOCATE_parser;
36625 fra.me.line = 10877;
36626 fra.me.meth = LOCATE_parser___ReduceAction378___action;
36627 fra.me.has_broke = 0;
36628 fra.me.REG_size = 5;
36629 fra.me.REG[0] = NIT_NULL;
36630 fra.me.REG[1] = NIT_NULL;
36631 fra.me.REG[2] = NIT_NULL;
36632 fra.me.REG[3] = NIT_NULL;
36633 fra.me.REG[4] = NIT_NULL;
36634 fra.me.REG[0] = p0;
36635 fra.me.REG[1] = p1;
36636 /* ./parser//parser.nit:10879 */
36637 fra.me.REG[2] = NIT_NULL;
36638 /* ./parser//parser.nit:10880 */
36639 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36640 /* ./parser//parser.nit:10881 */
36641 fra.me.REG[4] = NEW_Array_array___Array___init();
36642 /* ./parser//parser.nit:10883 */
36643 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36644 if (UNTAG_Bool(REGB0)) {
36645 } else {
36646 nit_abort("Assert failed", NULL, LOCATE_parser, 10883);
36647 }
36648 /* ./parser//parser.nit:10884 */
36649 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36650 fra.me.REG[4] = fra.me.REG[3];
36651 /* ./parser//parser.nit:10885 */
36652 fra.me.REG[4] = NEW_AQualified_parser_prod___AQualified___init_aqualified(fra.me.REG[4], NIT_NULL);
36653 /* ./parser//parser.nit:10889 */
36654 fra.me.REG[2] = fra.me.REG[4];
36655 /* ./parser//parser.nit:10890 */
36656 REGB0 = TAG_Bool(ATTR_parser___ReduceAction378____goto(fra.me.REG[0])!=NIT_NULL);
36657 if (UNTAG_Bool(REGB0)) {
36658 } else {
36659 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10890);
36660 }
36661 REGB0 = ATTR_parser___ReduceAction378____goto(fra.me.REG[0]);
36662 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36663 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36664 stack_frame_head = fra.me.prev;
36665 return;
36666 }
36667 void parser___ReduceAction378___init(val_t p0, val_t p1, int* init_table){
36668 int itpos343 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction378].i;
36669 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36670 val_t REGB0;
36671 val_t tmp;
36672 if (init_table[itpos343]) return;
36673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36674 fra.me.file = LOCATE_parser;
36675 fra.me.line = 10893;
36676 fra.me.meth = LOCATE_parser___ReduceAction378___init;
36677 fra.me.has_broke = 0;
36678 fra.me.REG_size = 2;
36679 fra.me.REG[0] = NIT_NULL;
36680 fra.me.REG[1] = NIT_NULL;
36681 fra.me.REG[0] = p0;
36682 REGB0 = p1;
36683 /* ./parser//parser.nit:10893 */
36684 fra.me.REG[1] = fra.me.REG[0];
36685 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36686 ATTR_parser___ReduceAction378____goto(fra.me.REG[1]) = REGB0;
36687 stack_frame_head = fra.me.prev;
36688 init_table[itpos343] = 1;
36689 return;
36690 }
36691 void parser___ReduceAction379___action(val_t p0, val_t p1){
36692 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36693 val_t REGB0;
36694 val_t tmp;
36695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36696 fra.me.file = LOCATE_parser;
36697 fra.me.line = 10897;
36698 fra.me.meth = LOCATE_parser___ReduceAction379___action;
36699 fra.me.has_broke = 0;
36700 fra.me.REG_size = 4;
36701 fra.me.REG[0] = NIT_NULL;
36702 fra.me.REG[1] = NIT_NULL;
36703 fra.me.REG[2] = NIT_NULL;
36704 fra.me.REG[3] = NIT_NULL;
36705 fra.me.REG[0] = p0;
36706 fra.me.REG[1] = p1;
36707 /* ./parser//parser.nit:10899 */
36708 fra.me.REG[2] = NIT_NULL;
36709 /* ./parser//parser.nit:10900 */
36710 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36711 /* ./parser//parser.nit:10901 */
36712 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36713 /* ./parser//parser.nit:10902 */
36714 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36715 /* ./parser//parser.nit:10904 */
36716 fra.me.REG[2] = fra.me.REG[3];
36717 /* ./parser//parser.nit:10905 */
36718 REGB0 = TAG_Bool(ATTR_parser___ReduceAction379____goto(fra.me.REG[0])!=NIT_NULL);
36719 if (UNTAG_Bool(REGB0)) {
36720 } else {
36721 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10905);
36722 }
36723 REGB0 = ATTR_parser___ReduceAction379____goto(fra.me.REG[0]);
36724 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36725 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36726 stack_frame_head = fra.me.prev;
36727 return;
36728 }
36729 void parser___ReduceAction379___init(val_t p0, val_t p1, int* init_table){
36730 int itpos344 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction379].i;
36731 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36732 val_t REGB0;
36733 val_t tmp;
36734 if (init_table[itpos344]) return;
36735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36736 fra.me.file = LOCATE_parser;
36737 fra.me.line = 10908;
36738 fra.me.meth = LOCATE_parser___ReduceAction379___init;
36739 fra.me.has_broke = 0;
36740 fra.me.REG_size = 2;
36741 fra.me.REG[0] = NIT_NULL;
36742 fra.me.REG[1] = NIT_NULL;
36743 fra.me.REG[0] = p0;
36744 REGB0 = p1;
36745 /* ./parser//parser.nit:10908 */
36746 fra.me.REG[1] = fra.me.REG[0];
36747 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36748 ATTR_parser___ReduceAction379____goto(fra.me.REG[1]) = REGB0;
36749 stack_frame_head = fra.me.prev;
36750 init_table[itpos344] = 1;
36751 return;
36752 }
36753 void parser___ReduceAction380___action(val_t p0, val_t p1){
36754 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36755 val_t REGB0;
36756 val_t tmp;
36757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36758 fra.me.file = LOCATE_parser;
36759 fra.me.line = 10912;
36760 fra.me.meth = LOCATE_parser___ReduceAction380___action;
36761 fra.me.has_broke = 0;
36762 fra.me.REG_size = 4;
36763 fra.me.REG[0] = NIT_NULL;
36764 fra.me.REG[1] = NIT_NULL;
36765 fra.me.REG[2] = NIT_NULL;
36766 fra.me.REG[3] = NIT_NULL;
36767 fra.me.REG[0] = p0;
36768 fra.me.REG[1] = p1;
36769 /* ./parser//parser.nit:10914 */
36770 fra.me.REG[2] = NIT_NULL;
36771 /* ./parser//parser.nit:10915 */
36772 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36773 /* ./parser//parser.nit:10916 */
36774 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36775 /* ./parser//parser.nit:10917 */
36776 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36777 /* ./parser//parser.nit:10919 */
36778 fra.me.REG[2] = fra.me.REG[3];
36779 /* ./parser//parser.nit:10920 */
36780 REGB0 = TAG_Bool(ATTR_parser___ReduceAction380____goto(fra.me.REG[0])!=NIT_NULL);
36781 if (UNTAG_Bool(REGB0)) {
36782 } else {
36783 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10920);
36784 }
36785 REGB0 = ATTR_parser___ReduceAction380____goto(fra.me.REG[0]);
36786 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36787 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36788 stack_frame_head = fra.me.prev;
36789 return;
36790 }
36791 void parser___ReduceAction380___init(val_t p0, val_t p1, int* init_table){
36792 int itpos345 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction380].i;
36793 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36794 val_t REGB0;
36795 val_t tmp;
36796 if (init_table[itpos345]) return;
36797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36798 fra.me.file = LOCATE_parser;
36799 fra.me.line = 10923;
36800 fra.me.meth = LOCATE_parser___ReduceAction380___init;
36801 fra.me.has_broke = 0;
36802 fra.me.REG_size = 2;
36803 fra.me.REG[0] = NIT_NULL;
36804 fra.me.REG[1] = NIT_NULL;
36805 fra.me.REG[0] = p0;
36806 REGB0 = p1;
36807 /* ./parser//parser.nit:10923 */
36808 fra.me.REG[1] = fra.me.REG[0];
36809 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36810 ATTR_parser___ReduceAction380____goto(fra.me.REG[1]) = REGB0;
36811 stack_frame_head = fra.me.prev;
36812 init_table[itpos345] = 1;
36813 return;
36814 }
36815 void parser___ReduceAction381___action(val_t p0, val_t p1){
36816 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36817 val_t REGB0;
36818 val_t tmp;
36819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36820 fra.me.file = LOCATE_parser;
36821 fra.me.line = 10927;
36822 fra.me.meth = LOCATE_parser___ReduceAction381___action;
36823 fra.me.has_broke = 0;
36824 fra.me.REG_size = 4;
36825 fra.me.REG[0] = NIT_NULL;
36826 fra.me.REG[1] = NIT_NULL;
36827 fra.me.REG[2] = NIT_NULL;
36828 fra.me.REG[3] = NIT_NULL;
36829 fra.me.REG[0] = p0;
36830 fra.me.REG[1] = p1;
36831 /* ./parser//parser.nit:10929 */
36832 fra.me.REG[2] = NIT_NULL;
36833 /* ./parser//parser.nit:10930 */
36834 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36835 /* ./parser//parser.nit:10931 */
36836 REGB0 = TAG_Bool(ATTR_parser___ReduceAction381____goto(fra.me.REG[0])!=NIT_NULL);
36837 if (UNTAG_Bool(REGB0)) {
36838 } else {
36839 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10931);
36840 }
36841 REGB0 = ATTR_parser___ReduceAction381____goto(fra.me.REG[0]);
36842 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36843 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36844 stack_frame_head = fra.me.prev;
36845 return;
36846 }
36847 void parser___ReduceAction381___init(val_t p0, val_t p1, int* init_table){
36848 int itpos346 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction381].i;
36849 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36850 val_t REGB0;
36851 val_t tmp;
36852 if (init_table[itpos346]) return;
36853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36854 fra.me.file = LOCATE_parser;
36855 fra.me.line = 10934;
36856 fra.me.meth = LOCATE_parser___ReduceAction381___init;
36857 fra.me.has_broke = 0;
36858 fra.me.REG_size = 2;
36859 fra.me.REG[0] = NIT_NULL;
36860 fra.me.REG[1] = NIT_NULL;
36861 fra.me.REG[0] = p0;
36862 REGB0 = p1;
36863 /* ./parser//parser.nit:10934 */
36864 fra.me.REG[1] = fra.me.REG[0];
36865 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36866 ATTR_parser___ReduceAction381____goto(fra.me.REG[1]) = REGB0;
36867 stack_frame_head = fra.me.prev;
36868 init_table[itpos346] = 1;
36869 return;
36870 }
36871 void parser___ReduceAction383___action(val_t p0, val_t p1){
36872 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36873 val_t REGB0;
36874 val_t tmp;
36875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36876 fra.me.file = LOCATE_parser;
36877 fra.me.line = 10938;
36878 fra.me.meth = LOCATE_parser___ReduceAction383___action;
36879 fra.me.has_broke = 0;
36880 fra.me.REG_size = 5;
36881 fra.me.REG[0] = NIT_NULL;
36882 fra.me.REG[1] = NIT_NULL;
36883 fra.me.REG[2] = NIT_NULL;
36884 fra.me.REG[3] = NIT_NULL;
36885 fra.me.REG[4] = NIT_NULL;
36886 fra.me.REG[0] = p0;
36887 fra.me.REG[1] = p1;
36888 /* ./parser//parser.nit:10940 */
36889 fra.me.REG[2] = NIT_NULL;
36890 /* ./parser//parser.nit:10941 */
36891 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36892 /* ./parser//parser.nit:10942 */
36893 fra.me.REG[4] = NEW_Array_array___Array___init();
36894 /* ./parser//parser.nit:10944 */
36895 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36896 if (UNTAG_Bool(REGB0)) {
36897 } else {
36898 nit_abort("Assert failed", NULL, LOCATE_parser, 10944);
36899 }
36900 /* ./parser//parser.nit:10945 */
36901 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36902 fra.me.REG[4] = fra.me.REG[3];
36903 /* ./parser//parser.nit:10946 */
36904 fra.me.REG[4] = NEW_ADoc_parser_prod___ADoc___init_adoc(fra.me.REG[4]);
36905 /* ./parser//parser.nit:10949 */
36906 fra.me.REG[2] = fra.me.REG[4];
36907 /* ./parser//parser.nit:10950 */
36908 REGB0 = TAG_Bool(ATTR_parser___ReduceAction383____goto(fra.me.REG[0])!=NIT_NULL);
36909 if (UNTAG_Bool(REGB0)) {
36910 } else {
36911 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10950);
36912 }
36913 REGB0 = ATTR_parser___ReduceAction383____goto(fra.me.REG[0]);
36914 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36915 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36916 stack_frame_head = fra.me.prev;
36917 return;
36918 }
36919 void parser___ReduceAction383___init(val_t p0, val_t p1, int* init_table){
36920 int itpos347 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction383].i;
36921 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36922 val_t REGB0;
36923 val_t tmp;
36924 if (init_table[itpos347]) return;
36925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36926 fra.me.file = LOCATE_parser;
36927 fra.me.line = 10953;
36928 fra.me.meth = LOCATE_parser___ReduceAction383___init;
36929 fra.me.has_broke = 0;
36930 fra.me.REG_size = 2;
36931 fra.me.REG[0] = NIT_NULL;
36932 fra.me.REG[1] = NIT_NULL;
36933 fra.me.REG[0] = p0;
36934 REGB0 = p1;
36935 /* ./parser//parser.nit:10953 */
36936 fra.me.REG[1] = fra.me.REG[0];
36937 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
36938 ATTR_parser___ReduceAction383____goto(fra.me.REG[1]) = REGB0;
36939 stack_frame_head = fra.me.prev;
36940 init_table[itpos347] = 1;
36941 return;
36942 }
36943 void parser___ReduceAction384___action(val_t p0, val_t p1){
36944 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36945 val_t REGB0;
36946 val_t tmp;
36947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36948 fra.me.file = LOCATE_parser;
36949 fra.me.line = 10957;
36950 fra.me.meth = LOCATE_parser___ReduceAction384___action;
36951 fra.me.has_broke = 0;
36952 fra.me.REG_size = 5;
36953 fra.me.REG[0] = NIT_NULL;
36954 fra.me.REG[1] = NIT_NULL;
36955 fra.me.REG[2] = NIT_NULL;
36956 fra.me.REG[3] = NIT_NULL;
36957 fra.me.REG[4] = NIT_NULL;
36958 fra.me.REG[0] = p0;
36959 fra.me.REG[1] = p1;
36960 /* ./parser//parser.nit:10959 */
36961 fra.me.REG[2] = NIT_NULL;
36962 /* ./parser//parser.nit:10960 */
36963 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36964 /* ./parser//parser.nit:10961 */
36965 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
36966 /* ./parser//parser.nit:10962 */
36967 fra.me.REG[4] = NEW_Array_array___Array___init();
36968 /* ./parser//parser.nit:10964 */
36969 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
36970 if (UNTAG_Bool(REGB0)) {
36971 } else {
36972 nit_abort("Assert failed", NULL, LOCATE_parser, 10964);
36973 }
36974 /* ./parser//parser.nit:10965 */
36975 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
36976 fra.me.REG[4] = fra.me.REG[3];
36977 /* ./parser//parser.nit:10966 */
36978 fra.me.REG[4] = NEW_ADoc_parser_prod___ADoc___init_adoc(fra.me.REG[4]);
36979 /* ./parser//parser.nit:10969 */
36980 fra.me.REG[2] = fra.me.REG[4];
36981 /* ./parser//parser.nit:10970 */
36982 REGB0 = TAG_Bool(ATTR_parser___ReduceAction384____goto(fra.me.REG[0])!=NIT_NULL);
36983 if (UNTAG_Bool(REGB0)) {
36984 } else {
36985 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10970);
36986 }
36987 REGB0 = ATTR_parser___ReduceAction384____goto(fra.me.REG[0]);
36988 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
36989 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
36990 stack_frame_head = fra.me.prev;
36991 return;
36992 }
36993 void parser___ReduceAction384___init(val_t p0, val_t p1, int* init_table){
36994 int itpos348 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction384].i;
36995 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36996 val_t REGB0;
36997 val_t tmp;
36998 if (init_table[itpos348]) return;
36999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37000 fra.me.file = LOCATE_parser;
37001 fra.me.line = 10973;
37002 fra.me.meth = LOCATE_parser___ReduceAction384___init;
37003 fra.me.has_broke = 0;
37004 fra.me.REG_size = 2;
37005 fra.me.REG[0] = NIT_NULL;
37006 fra.me.REG[1] = NIT_NULL;
37007 fra.me.REG[0] = p0;
37008 REGB0 = p1;
37009 /* ./parser//parser.nit:10973 */
37010 fra.me.REG[1] = fra.me.REG[0];
37011 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37012 ATTR_parser___ReduceAction384____goto(fra.me.REG[1]) = REGB0;
37013 stack_frame_head = fra.me.prev;
37014 init_table[itpos348] = 1;
37015 return;
37016 }
37017 void parser___ReduceAction386___action(val_t p0, val_t p1){
37018 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37019 val_t REGB0;
37020 val_t tmp;
37021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37022 fra.me.file = LOCATE_parser;
37023 fra.me.line = 10977;
37024 fra.me.meth = LOCATE_parser___ReduceAction386___action;
37025 fra.me.has_broke = 0;
37026 fra.me.REG_size = 3;
37027 fra.me.REG[0] = NIT_NULL;
37028 fra.me.REG[1] = NIT_NULL;
37029 fra.me.REG[2] = NIT_NULL;
37030 fra.me.REG[0] = p0;
37031 fra.me.REG[1] = p1;
37032 /* ./parser//parser.nit:10979 */
37033 fra.me.REG[2] = NIT_NULL;
37034 /* ./parser//parser.nit:10980 */
37035 fra.me.REG[2] = NIT_NULL;
37036 /* ./parser//parser.nit:10981 */
37037 REGB0 = TAG_Bool(ATTR_parser___ReduceAction386____goto(fra.me.REG[0])!=NIT_NULL);
37038 if (UNTAG_Bool(REGB0)) {
37039 } else {
37040 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10981);
37041 }
37042 REGB0 = ATTR_parser___ReduceAction386____goto(fra.me.REG[0]);
37043 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37044 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37045 stack_frame_head = fra.me.prev;
37046 return;
37047 }
37048 void parser___ReduceAction386___init(val_t p0, val_t p1, int* init_table){
37049 int itpos349 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction386].i;
37050 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37051 val_t REGB0;
37052 val_t tmp;
37053 if (init_table[itpos349]) return;
37054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37055 fra.me.file = LOCATE_parser;
37056 fra.me.line = 10984;
37057 fra.me.meth = LOCATE_parser___ReduceAction386___init;
37058 fra.me.has_broke = 0;
37059 fra.me.REG_size = 2;
37060 fra.me.REG[0] = NIT_NULL;
37061 fra.me.REG[1] = NIT_NULL;
37062 fra.me.REG[0] = p0;
37063 REGB0 = p1;
37064 /* ./parser//parser.nit:10984 */
37065 fra.me.REG[1] = fra.me.REG[0];
37066 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37067 ATTR_parser___ReduceAction386____goto(fra.me.REG[1]) = REGB0;
37068 stack_frame_head = fra.me.prev;
37069 init_table[itpos349] = 1;
37070 return;
37071 }
37072 void parser___ReduceAction387___action(val_t p0, val_t p1){
37073 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37074 val_t REGB0;
37075 val_t tmp;
37076 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37077 fra.me.file = LOCATE_parser;
37078 fra.me.line = 10988;
37079 fra.me.meth = LOCATE_parser___ReduceAction387___action;
37080 fra.me.has_broke = 0;
37081 fra.me.REG_size = 4;
37082 fra.me.REG[0] = NIT_NULL;
37083 fra.me.REG[1] = NIT_NULL;
37084 fra.me.REG[2] = NIT_NULL;
37085 fra.me.REG[3] = NIT_NULL;
37086 fra.me.REG[0] = p0;
37087 fra.me.REG[1] = p1;
37088 /* ./parser//parser.nit:10990 */
37089 fra.me.REG[2] = NIT_NULL;
37090 /* ./parser//parser.nit:10991 */
37091 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37092 /* ./parser//parser.nit:10993 */
37093 fra.me.REG[2] = fra.me.REG[3];
37094 /* ./parser//parser.nit:10994 */
37095 REGB0 = TAG_Bool(ATTR_parser___ReduceAction387____goto(fra.me.REG[0])!=NIT_NULL);
37096 if (UNTAG_Bool(REGB0)) {
37097 } else {
37098 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10994);
37099 }
37100 REGB0 = ATTR_parser___ReduceAction387____goto(fra.me.REG[0]);
37101 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37102 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37103 stack_frame_head = fra.me.prev;
37104 return;
37105 }
37106 void parser___ReduceAction387___init(val_t p0, val_t p1, int* init_table){
37107 int itpos350 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction387].i;
37108 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37109 val_t REGB0;
37110 val_t tmp;
37111 if (init_table[itpos350]) return;
37112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37113 fra.me.file = LOCATE_parser;
37114 fra.me.line = 10997;
37115 fra.me.meth = LOCATE_parser___ReduceAction387___init;
37116 fra.me.has_broke = 0;
37117 fra.me.REG_size = 2;
37118 fra.me.REG[0] = NIT_NULL;
37119 fra.me.REG[1] = NIT_NULL;
37120 fra.me.REG[0] = p0;
37121 REGB0 = p1;
37122 /* ./parser//parser.nit:10997 */
37123 fra.me.REG[1] = fra.me.REG[0];
37124 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37125 ATTR_parser___ReduceAction387____goto(fra.me.REG[1]) = REGB0;
37126 stack_frame_head = fra.me.prev;
37127 init_table[itpos350] = 1;
37128 return;
37129 }
37130 void parser___ReduceAction388___action(val_t p0, val_t p1){
37131 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37132 val_t REGB0;
37133 val_t tmp;
37134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37135 fra.me.file = LOCATE_parser;
37136 fra.me.line = 11001;
37137 fra.me.meth = LOCATE_parser___ReduceAction388___action;
37138 fra.me.has_broke = 0;
37139 fra.me.REG_size = 4;
37140 fra.me.REG[0] = NIT_NULL;
37141 fra.me.REG[1] = NIT_NULL;
37142 fra.me.REG[2] = NIT_NULL;
37143 fra.me.REG[3] = NIT_NULL;
37144 fra.me.REG[0] = p0;
37145 fra.me.REG[1] = p1;
37146 /* ./parser//parser.nit:11003 */
37147 fra.me.REG[2] = NIT_NULL;
37148 /* ./parser//parser.nit:11004 */
37149 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37150 /* ./parser//parser.nit:11005 */
37151 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37152 /* ./parser//parser.nit:11006 */
37153 REGB0 = TAG_Bool(ATTR_parser___ReduceAction388____goto(fra.me.REG[0])!=NIT_NULL);
37154 if (UNTAG_Bool(REGB0)) {
37155 } else {
37156 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11006);
37157 }
37158 REGB0 = ATTR_parser___ReduceAction388____goto(fra.me.REG[0]);
37159 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37160 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37161 stack_frame_head = fra.me.prev;
37162 return;
37163 }
37164 void parser___ReduceAction388___init(val_t p0, val_t p1, int* init_table){
37165 int itpos351 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction388].i;
37166 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37167 val_t REGB0;
37168 val_t tmp;
37169 if (init_table[itpos351]) return;
37170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37171 fra.me.file = LOCATE_parser;
37172 fra.me.line = 11009;
37173 fra.me.meth = LOCATE_parser___ReduceAction388___init;
37174 fra.me.has_broke = 0;
37175 fra.me.REG_size = 2;
37176 fra.me.REG[0] = NIT_NULL;
37177 fra.me.REG[1] = NIT_NULL;
37178 fra.me.REG[0] = p0;
37179 REGB0 = p1;
37180 /* ./parser//parser.nit:11009 */
37181 fra.me.REG[1] = fra.me.REG[0];
37182 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37183 ATTR_parser___ReduceAction388____goto(fra.me.REG[1]) = REGB0;
37184 stack_frame_head = fra.me.prev;
37185 init_table[itpos351] = 1;
37186 return;
37187 }
37188 void parser___ReduceAction389___action(val_t p0, val_t p1){
37189 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37190 val_t REGB0;
37191 val_t tmp;
37192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37193 fra.me.file = LOCATE_parser;
37194 fra.me.line = 11013;
37195 fra.me.meth = LOCATE_parser___ReduceAction389___action;
37196 fra.me.has_broke = 0;
37197 fra.me.REG_size = 4;
37198 fra.me.REG[0] = NIT_NULL;
37199 fra.me.REG[1] = NIT_NULL;
37200 fra.me.REG[2] = NIT_NULL;
37201 fra.me.REG[3] = NIT_NULL;
37202 fra.me.REG[0] = p0;
37203 fra.me.REG[1] = p1;
37204 /* ./parser//parser.nit:11015 */
37205 fra.me.REG[2] = NIT_NULL;
37206 /* ./parser//parser.nit:11016 */
37207 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37208 /* ./parser//parser.nit:11017 */
37209 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37210 /* ./parser//parser.nit:11018 */
37211 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37212 /* ./parser//parser.nit:11019 */
37213 REGB0 = TAG_Bool(ATTR_parser___ReduceAction389____goto(fra.me.REG[0])!=NIT_NULL);
37214 if (UNTAG_Bool(REGB0)) {
37215 } else {
37216 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11019);
37217 }
37218 REGB0 = ATTR_parser___ReduceAction389____goto(fra.me.REG[0]);
37219 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37220 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37221 stack_frame_head = fra.me.prev;
37222 return;
37223 }
37224 void parser___ReduceAction389___init(val_t p0, val_t p1, int* init_table){
37225 int itpos352 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction389].i;
37226 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37227 val_t REGB0;
37228 val_t tmp;
37229 if (init_table[itpos352]) return;
37230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37231 fra.me.file = LOCATE_parser;
37232 fra.me.line = 11022;
37233 fra.me.meth = LOCATE_parser___ReduceAction389___init;
37234 fra.me.has_broke = 0;
37235 fra.me.REG_size = 2;
37236 fra.me.REG[0] = NIT_NULL;
37237 fra.me.REG[1] = NIT_NULL;
37238 fra.me.REG[0] = p0;
37239 REGB0 = p1;
37240 /* ./parser//parser.nit:11022 */
37241 fra.me.REG[1] = fra.me.REG[0];
37242 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37243 ATTR_parser___ReduceAction389____goto(fra.me.REG[1]) = REGB0;
37244 stack_frame_head = fra.me.prev;
37245 init_table[itpos352] = 1;
37246 return;
37247 }
37248 void parser___ReduceAction637___action(val_t p0, val_t p1){
37249 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37250 val_t REGB0;
37251 val_t tmp;
37252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37253 fra.me.file = LOCATE_parser;
37254 fra.me.line = 11026;
37255 fra.me.meth = LOCATE_parser___ReduceAction637___action;
37256 fra.me.has_broke = 0;
37257 fra.me.REG_size = 6;
37258 fra.me.REG[0] = NIT_NULL;
37259 fra.me.REG[1] = NIT_NULL;
37260 fra.me.REG[2] = NIT_NULL;
37261 fra.me.REG[3] = NIT_NULL;
37262 fra.me.REG[4] = NIT_NULL;
37263 fra.me.REG[5] = NIT_NULL;
37264 fra.me.REG[0] = p0;
37265 fra.me.REG[1] = p1;
37266 /* ./parser//parser.nit:11028 */
37267 fra.me.REG[2] = NIT_NULL;
37268 /* ./parser//parser.nit:11029 */
37269 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37270 /* ./parser//parser.nit:11030 */
37271 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37272 /* ./parser//parser.nit:11031 */
37273 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37274 /* ./parser//parser.nit:11033 */
37275 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_TKwisset, ID_TKwisset)) /*cast nullable TKwisset*/;
37276 if (UNTAG_Bool(REGB0)) {
37277 } else {
37278 nit_abort("Assert failed", NULL, LOCATE_parser, 11033);
37279 }
37280 /* ./parser//parser.nit:11035 */
37281 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37282 if (UNTAG_Bool(REGB0)) {
37283 } else {
37284 nit_abort("Assert failed", NULL, LOCATE_parser, 11035);
37285 }
37286 /* ./parser//parser.nit:11037 */
37287 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
37288 if (UNTAG_Bool(REGB0)) {
37289 } else {
37290 nit_abort("Assert failed", NULL, LOCATE_parser, 11037);
37291 }
37292 /* ./parser//parser.nit:11038 */
37293 fra.me.REG[3] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
37294 /* ./parser//parser.nit:11043 */
37295 fra.me.REG[2] = fra.me.REG[3];
37296 /* ./parser//parser.nit:11044 */
37297 REGB0 = TAG_Bool(ATTR_parser___ReduceAction637____goto(fra.me.REG[0])!=NIT_NULL);
37298 if (UNTAG_Bool(REGB0)) {
37299 } else {
37300 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11044);
37301 }
37302 REGB0 = ATTR_parser___ReduceAction637____goto(fra.me.REG[0]);
37303 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37304 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37305 stack_frame_head = fra.me.prev;
37306 return;
37307 }
37308 void parser___ReduceAction637___init(val_t p0, val_t p1, int* init_table){
37309 int itpos353 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction637].i;
37310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37311 val_t REGB0;
37312 val_t tmp;
37313 if (init_table[itpos353]) return;
37314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37315 fra.me.file = LOCATE_parser;
37316 fra.me.line = 11047;
37317 fra.me.meth = LOCATE_parser___ReduceAction637___init;
37318 fra.me.has_broke = 0;
37319 fra.me.REG_size = 2;
37320 fra.me.REG[0] = NIT_NULL;
37321 fra.me.REG[1] = NIT_NULL;
37322 fra.me.REG[0] = p0;
37323 REGB0 = p1;
37324 /* ./parser//parser.nit:11047 */
37325 fra.me.REG[1] = fra.me.REG[0];
37326 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37327 ATTR_parser___ReduceAction637____goto(fra.me.REG[1]) = REGB0;
37328 stack_frame_head = fra.me.prev;
37329 init_table[itpos353] = 1;
37330 return;
37331 }
37332 void parser___ReduceAction638___action(val_t p0, val_t p1){
37333 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37334 val_t REGB0;
37335 val_t tmp;
37336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37337 fra.me.file = LOCATE_parser;
37338 fra.me.line = 11051;
37339 fra.me.meth = LOCATE_parser___ReduceAction638___action;
37340 fra.me.has_broke = 0;
37341 fra.me.REG_size = 5;
37342 fra.me.REG[0] = NIT_NULL;
37343 fra.me.REG[1] = NIT_NULL;
37344 fra.me.REG[2] = NIT_NULL;
37345 fra.me.REG[3] = NIT_NULL;
37346 fra.me.REG[4] = NIT_NULL;
37347 fra.me.REG[0] = p0;
37348 fra.me.REG[1] = p1;
37349 /* ./parser//parser.nit:11053 */
37350 fra.me.REG[2] = NIT_NULL;
37351 /* ./parser//parser.nit:11054 */
37352 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37353 /* ./parser//parser.nit:11055 */
37354 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37355 /* ./parser//parser.nit:11057 */
37356 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37357 if (UNTAG_Bool(REGB0)) {
37358 } else {
37359 nit_abort("Assert failed", NULL, LOCATE_parser, 11057);
37360 }
37361 /* ./parser//parser.nit:11059 */
37362 REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_TAttrid, ID_TAttrid)) /*cast nullable TAttrid*/;
37363 if (UNTAG_Bool(REGB0)) {
37364 } else {
37365 nit_abort("Assert failed", NULL, LOCATE_parser, 11059);
37366 }
37367 /* ./parser//parser.nit:11060 */
37368 fra.me.REG[3] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
37369 /* ./parser//parser.nit:11064 */
37370 fra.me.REG[2] = fra.me.REG[3];
37371 /* ./parser//parser.nit:11065 */
37372 REGB0 = TAG_Bool(ATTR_parser___ReduceAction638____goto(fra.me.REG[0])!=NIT_NULL);
37373 if (UNTAG_Bool(REGB0)) {
37374 } else {
37375 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11065);
37376 }
37377 REGB0 = ATTR_parser___ReduceAction638____goto(fra.me.REG[0]);
37378 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37379 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37380 stack_frame_head = fra.me.prev;
37381 return;
37382 }
37383 void parser___ReduceAction638___init(val_t p0, val_t p1, int* init_table){
37384 int itpos354 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction638].i;
37385 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37386 val_t REGB0;
37387 val_t tmp;
37388 if (init_table[itpos354]) return;
37389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37390 fra.me.file = LOCATE_parser;
37391 fra.me.line = 11068;
37392 fra.me.meth = LOCATE_parser___ReduceAction638___init;
37393 fra.me.has_broke = 0;
37394 fra.me.REG_size = 2;
37395 fra.me.REG[0] = NIT_NULL;
37396 fra.me.REG[1] = NIT_NULL;
37397 fra.me.REG[0] = p0;
37398 REGB0 = p1;
37399 /* ./parser//parser.nit:11068 */
37400 fra.me.REG[1] = fra.me.REG[0];
37401 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37402 ATTR_parser___ReduceAction638____goto(fra.me.REG[1]) = REGB0;
37403 stack_frame_head = fra.me.prev;
37404 init_table[itpos354] = 1;
37405 return;
37406 }
37407 void parser___ReduceAction639___action(val_t p0, val_t p1){
37408 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
37409 val_t REGB0;
37410 val_t tmp;
37411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37412 fra.me.file = LOCATE_parser;
37413 fra.me.line = 11072;
37414 fra.me.meth = LOCATE_parser___ReduceAction639___action;
37415 fra.me.has_broke = 0;
37416 fra.me.REG_size = 8;
37417 fra.me.REG[0] = NIT_NULL;
37418 fra.me.REG[1] = NIT_NULL;
37419 fra.me.REG[2] = NIT_NULL;
37420 fra.me.REG[3] = NIT_NULL;
37421 fra.me.REG[4] = NIT_NULL;
37422 fra.me.REG[5] = NIT_NULL;
37423 fra.me.REG[6] = NIT_NULL;
37424 fra.me.REG[7] = NIT_NULL;
37425 fra.me.REG[0] = p0;
37426 fra.me.REG[1] = p1;
37427 /* ./parser//parser.nit:11074 */
37428 fra.me.REG[2] = NIT_NULL;
37429 /* ./parser//parser.nit:11075 */
37430 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37431 /* ./parser//parser.nit:11076 */
37432 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37433 /* ./parser//parser.nit:11077 */
37434 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37435 /* ./parser//parser.nit:11078 */
37436 fra.me.REG[6] = NEW_Array_array___Array___init();
37437 /* ./parser//parser.nit:11079 */
37438 fra.me.REG[7] = NEW_Array_array___Array___init();
37439 /* ./parser//parser.nit:11081 */
37440 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37441 if (UNTAG_Bool(REGB0)) {
37442 } else {
37443 nit_abort("Assert failed", NULL, LOCATE_parser, 11081);
37444 }
37445 /* ./parser//parser.nit:11083 */
37446 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TId, ID_TId)) /*cast nullable TId*/;
37447 if (UNTAG_Bool(REGB0)) {
37448 } else {
37449 nit_abort("Assert failed", NULL, LOCATE_parser, 11083);
37450 }
37451 /* ./parser//parser.nit:11085 */
37452 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37453 if (UNTAG_Bool(REGB0)) {
37454 } else {
37455 nit_abort("Assert failed", NULL, LOCATE_parser, 11085);
37456 }
37457 /* ./parser//parser.nit:11086 */
37458 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
37459 fra.me.REG[6] = fra.me.REG[3];
37460 /* ./parser//parser.nit:11087 */
37461 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]);
37462 /* ./parser//parser.nit:11093 */
37463 fra.me.REG[2] = fra.me.REG[7];
37464 /* ./parser//parser.nit:11094 */
37465 REGB0 = TAG_Bool(ATTR_parser___ReduceAction639____goto(fra.me.REG[0])!=NIT_NULL);
37466 if (UNTAG_Bool(REGB0)) {
37467 } else {
37468 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11094);
37469 }
37470 REGB0 = ATTR_parser___ReduceAction639____goto(fra.me.REG[0]);
37471 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37472 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37473 stack_frame_head = fra.me.prev;
37474 return;
37475 }
37476 void parser___ReduceAction639___init(val_t p0, val_t p1, int* init_table){
37477 int itpos355 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction639].i;
37478 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37479 val_t REGB0;
37480 val_t tmp;
37481 if (init_table[itpos355]) return;
37482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37483 fra.me.file = LOCATE_parser;
37484 fra.me.line = 11097;
37485 fra.me.meth = LOCATE_parser___ReduceAction639___init;
37486 fra.me.has_broke = 0;
37487 fra.me.REG_size = 2;
37488 fra.me.REG[0] = NIT_NULL;
37489 fra.me.REG[1] = NIT_NULL;
37490 fra.me.REG[0] = p0;
37491 REGB0 = p1;
37492 /* ./parser//parser.nit:11097 */
37493 fra.me.REG[1] = fra.me.REG[0];
37494 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37495 ATTR_parser___ReduceAction639____goto(fra.me.REG[1]) = REGB0;
37496 stack_frame_head = fra.me.prev;
37497 init_table[itpos355] = 1;
37498 return;
37499 }
37500 void parser___ReduceAction642___action(val_t p0, val_t p1){
37501 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
37502 val_t REGB0;
37503 val_t tmp;
37504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37505 fra.me.file = LOCATE_parser;
37506 fra.me.line = 11101;
37507 fra.me.meth = LOCATE_parser___ReduceAction642___action;
37508 fra.me.has_broke = 0;
37509 fra.me.REG_size = 7;
37510 fra.me.REG[0] = NIT_NULL;
37511 fra.me.REG[1] = NIT_NULL;
37512 fra.me.REG[2] = NIT_NULL;
37513 fra.me.REG[3] = NIT_NULL;
37514 fra.me.REG[4] = NIT_NULL;
37515 fra.me.REG[5] = NIT_NULL;
37516 fra.me.REG[6] = NIT_NULL;
37517 fra.me.REG[0] = p0;
37518 fra.me.REG[1] = p1;
37519 /* ./parser//parser.nit:11103 */
37520 fra.me.REG[2] = NIT_NULL;
37521 /* ./parser//parser.nit:11104 */
37522 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37523 /* ./parser//parser.nit:11105 */
37524 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37525 /* ./parser//parser.nit:11106 */
37526 fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37527 /* ./parser//parser.nit:11107 */
37528 fra.me.REG[6] = NEW_Array_array___Array___init();
37529 /* ./parser//parser.nit:11109 */
37530 REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_AExpr, ID_AExpr)) /*cast nullable AExpr*/;
37531 if (UNTAG_Bool(REGB0)) {
37532 } else {
37533 nit_abort("Assert failed", NULL, LOCATE_parser, 11109);
37534 }
37535 /* ./parser//parser.nit:11111 */
37536 REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_TKwinit, ID_TKwinit)) /*cast nullable TKwinit*/;
37537 if (UNTAG_Bool(REGB0)) {
37538 } else {
37539 nit_abort("Assert failed", NULL, LOCATE_parser, 11111);
37540 }
37541 /* ./parser//parser.nit:11113 */
37542 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37543 if (UNTAG_Bool(REGB0)) {
37544 } else {
37545 nit_abort("Assert failed", NULL, LOCATE_parser, 11113);
37546 }
37547 /* ./parser//parser.nit:11114 */
37548 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
37549 fra.me.REG[6] = fra.me.REG[3];
37550 /* ./parser//parser.nit:11115 */
37551 fra.me.REG[6] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
37552 /* ./parser//parser.nit:11120 */
37553 fra.me.REG[2] = fra.me.REG[6];
37554 /* ./parser//parser.nit:11121 */
37555 REGB0 = TAG_Bool(ATTR_parser___ReduceAction642____goto(fra.me.REG[0])!=NIT_NULL);
37556 if (UNTAG_Bool(REGB0)) {
37557 } else {
37558 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11121);
37559 }
37560 REGB0 = ATTR_parser___ReduceAction642____goto(fra.me.REG[0]);
37561 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37562 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37563 stack_frame_head = fra.me.prev;
37564 return;
37565 }
37566 void parser___ReduceAction642___init(val_t p0, val_t p1, int* init_table){
37567 int itpos356 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction642].i;
37568 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37569 val_t REGB0;
37570 val_t tmp;
37571 if (init_table[itpos356]) return;
37572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37573 fra.me.file = LOCATE_parser;
37574 fra.me.line = 11124;
37575 fra.me.meth = LOCATE_parser___ReduceAction642___init;
37576 fra.me.has_broke = 0;
37577 fra.me.REG_size = 2;
37578 fra.me.REG[0] = NIT_NULL;
37579 fra.me.REG[1] = NIT_NULL;
37580 fra.me.REG[0] = p0;
37581 REGB0 = p1;
37582 /* ./parser//parser.nit:11124 */
37583 fra.me.REG[1] = fra.me.REG[0];
37584 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37585 ATTR_parser___ReduceAction642____goto(fra.me.REG[1]) = REGB0;
37586 stack_frame_head = fra.me.prev;
37587 init_table[itpos356] = 1;
37588 return;
37589 }
37590 void parser___ReduceAction655___action(val_t p0, val_t p1){
37591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37592 val_t REGB0;
37593 val_t tmp;
37594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37595 fra.me.file = LOCATE_parser;
37596 fra.me.line = 11128;
37597 fra.me.meth = LOCATE_parser___ReduceAction655___action;
37598 fra.me.has_broke = 0;
37599 fra.me.REG_size = 4;
37600 fra.me.REG[0] = NIT_NULL;
37601 fra.me.REG[1] = NIT_NULL;
37602 fra.me.REG[2] = NIT_NULL;
37603 fra.me.REG[3] = NIT_NULL;
37604 fra.me.REG[0] = p0;
37605 fra.me.REG[1] = p1;
37606 /* ./parser//parser.nit:11130 */
37607 fra.me.REG[2] = NIT_NULL;
37608 /* ./parser//parser.nit:11131 */
37609 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37610 /* ./parser//parser.nit:11132 */
37611 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37612 /* ./parser//parser.nit:11133 */
37613 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37614 /* ./parser//parser.nit:11135 */
37615 fra.me.REG[2] = fra.me.REG[3];
37616 /* ./parser//parser.nit:11136 */
37617 REGB0 = TAG_Bool(ATTR_parser___ReduceAction655____goto(fra.me.REG[0])!=NIT_NULL);
37618 if (UNTAG_Bool(REGB0)) {
37619 } else {
37620 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11136);
37621 }
37622 REGB0 = ATTR_parser___ReduceAction655____goto(fra.me.REG[0]);
37623 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37624 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37625 stack_frame_head = fra.me.prev;
37626 return;
37627 }
37628 void parser___ReduceAction655___init(val_t p0, val_t p1, int* init_table){
37629 int itpos357 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction655].i;
37630 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37631 val_t REGB0;
37632 val_t tmp;
37633 if (init_table[itpos357]) return;
37634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37635 fra.me.file = LOCATE_parser;
37636 fra.me.line = 11139;
37637 fra.me.meth = LOCATE_parser___ReduceAction655___init;
37638 fra.me.has_broke = 0;
37639 fra.me.REG_size = 2;
37640 fra.me.REG[0] = NIT_NULL;
37641 fra.me.REG[1] = NIT_NULL;
37642 fra.me.REG[0] = p0;
37643 REGB0 = p1;
37644 /* ./parser//parser.nit:11139 */
37645 fra.me.REG[1] = fra.me.REG[0];
37646 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37647 ATTR_parser___ReduceAction655____goto(fra.me.REG[1]) = REGB0;
37648 stack_frame_head = fra.me.prev;
37649 init_table[itpos357] = 1;
37650 return;
37651 }
37652 void parser___ReduceAction656___action(val_t p0, val_t p1){
37653 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37654 val_t REGB0;
37655 val_t tmp;
37656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37657 fra.me.file = LOCATE_parser;
37658 fra.me.line = 11143;
37659 fra.me.meth = LOCATE_parser___ReduceAction656___action;
37660 fra.me.has_broke = 0;
37661 fra.me.REG_size = 4;
37662 fra.me.REG[0] = NIT_NULL;
37663 fra.me.REG[1] = NIT_NULL;
37664 fra.me.REG[2] = NIT_NULL;
37665 fra.me.REG[3] = NIT_NULL;
37666 fra.me.REG[0] = p0;
37667 fra.me.REG[1] = p1;
37668 /* ./parser//parser.nit:11145 */
37669 fra.me.REG[2] = NIT_NULL;
37670 /* ./parser//parser.nit:11146 */
37671 fra.me.REG[3] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
37672 /* ./parser//parser.nit:11148 */
37673 fra.me.REG[2] = fra.me.REG[3];
37674 /* ./parser//parser.nit:11149 */
37675 REGB0 = TAG_Bool(ATTR_parser___ReduceAction656____goto(fra.me.REG[0])!=NIT_NULL);
37676 if (UNTAG_Bool(REGB0)) {
37677 } else {
37678 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11149);
37679 }
37680 REGB0 = ATTR_parser___ReduceAction656____goto(fra.me.REG[0]);
37681 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37682 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37683 stack_frame_head = fra.me.prev;
37684 return;
37685 }
37686 void parser___ReduceAction656___init(val_t p0, val_t p1, int* init_table){
37687 int itpos358 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction656].i;
37688 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37689 val_t REGB0;
37690 val_t tmp;
37691 if (init_table[itpos358]) return;
37692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37693 fra.me.file = LOCATE_parser;
37694 fra.me.line = 11152;
37695 fra.me.meth = LOCATE_parser___ReduceAction656___init;
37696 fra.me.has_broke = 0;
37697 fra.me.REG_size = 2;
37698 fra.me.REG[0] = NIT_NULL;
37699 fra.me.REG[1] = NIT_NULL;
37700 fra.me.REG[0] = p0;
37701 REGB0 = p1;
37702 /* ./parser//parser.nit:11152 */
37703 fra.me.REG[1] = fra.me.REG[0];
37704 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37705 ATTR_parser___ReduceAction656____goto(fra.me.REG[1]) = REGB0;
37706 stack_frame_head = fra.me.prev;
37707 init_table[itpos358] = 1;
37708 return;
37709 }
37710 void parser___ReduceAction663___action(val_t p0, val_t p1){
37711 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37712 val_t REGB0;
37713 val_t REGB1;
37714 val_t tmp;
37715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37716 fra.me.file = LOCATE_parser;
37717 fra.me.line = 11156;
37718 fra.me.meth = LOCATE_parser___ReduceAction663___action;
37719 fra.me.has_broke = 0;
37720 fra.me.REG_size = 5;
37721 fra.me.REG[0] = NIT_NULL;
37722 fra.me.REG[1] = NIT_NULL;
37723 fra.me.REG[2] = NIT_NULL;
37724 fra.me.REG[3] = NIT_NULL;
37725 fra.me.REG[4] = NIT_NULL;
37726 fra.me.REG[0] = p0;
37727 fra.me.REG[1] = p1;
37728 /* ./parser//parser.nit:11158 */
37729 fra.me.REG[2] = NIT_NULL;
37730 /* ./parser//parser.nit:11159 */
37731 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37732 /* ./parser//parser.nit:11160 */
37733 fra.me.REG[4] = NEW_Array_array___Array___init();
37734 /* ./parser//parser.nit:11162 */
37735 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37736 if (UNTAG_Bool(REGB0)) {
37737 } else {
37738 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37739 if (UNTAG_Bool(REGB1)) {
37740 REGB1 = TAG_Bool(false);
37741 REGB0 = REGB1;
37742 } else {
37743 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37744 REGB0 = REGB1;
37745 }
37746 }
37747 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37748 if (UNTAG_Bool(REGB0)) {
37749 /* ./parser//parser.nit:11163 */
37750 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
37751 }
37752 /* ./parser//parser.nit:11165 */
37753 fra.me.REG[2] = fra.me.REG[4];
37754 /* ./parser//parser.nit:11166 */
37755 REGB0 = TAG_Bool(ATTR_parser___ReduceAction663____goto(fra.me.REG[0])!=NIT_NULL);
37756 if (UNTAG_Bool(REGB0)) {
37757 } else {
37758 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11166);
37759 }
37760 REGB0 = ATTR_parser___ReduceAction663____goto(fra.me.REG[0]);
37761 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37762 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37763 stack_frame_head = fra.me.prev;
37764 return;
37765 }
37766 void parser___ReduceAction663___init(val_t p0, val_t p1, int* init_table){
37767 int itpos359 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction663].i;
37768 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37769 val_t REGB0;
37770 val_t tmp;
37771 if (init_table[itpos359]) return;
37772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37773 fra.me.file = LOCATE_parser;
37774 fra.me.line = 11169;
37775 fra.me.meth = LOCATE_parser___ReduceAction663___init;
37776 fra.me.has_broke = 0;
37777 fra.me.REG_size = 2;
37778 fra.me.REG[0] = NIT_NULL;
37779 fra.me.REG[1] = NIT_NULL;
37780 fra.me.REG[0] = p0;
37781 REGB0 = p1;
37782 /* ./parser//parser.nit:11169 */
37783 fra.me.REG[1] = fra.me.REG[0];
37784 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37785 ATTR_parser___ReduceAction663____goto(fra.me.REG[1]) = REGB0;
37786 stack_frame_head = fra.me.prev;
37787 init_table[itpos359] = 1;
37788 return;
37789 }
37790 void parser___ReduceAction664___action(val_t p0, val_t p1){
37791 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37792 val_t REGB0;
37793 val_t REGB1;
37794 val_t tmp;
37795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37796 fra.me.file = LOCATE_parser;
37797 fra.me.line = 11173;
37798 fra.me.meth = LOCATE_parser___ReduceAction664___action;
37799 fra.me.has_broke = 0;
37800 fra.me.REG_size = 6;
37801 fra.me.REG[0] = NIT_NULL;
37802 fra.me.REG[1] = NIT_NULL;
37803 fra.me.REG[2] = NIT_NULL;
37804 fra.me.REG[3] = NIT_NULL;
37805 fra.me.REG[4] = NIT_NULL;
37806 fra.me.REG[5] = NIT_NULL;
37807 fra.me.REG[0] = p0;
37808 fra.me.REG[1] = p1;
37809 /* ./parser//parser.nit:11175 */
37810 fra.me.REG[2] = NIT_NULL;
37811 /* ./parser//parser.nit:11176 */
37812 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37813 /* ./parser//parser.nit:11177 */
37814 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37815 /* ./parser//parser.nit:11178 */
37816 fra.me.REG[5] = NEW_Array_array___Array___init();
37817 /* ./parser//parser.nit:11180 */
37818 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37819 if (UNTAG_Bool(REGB0)) {
37820 } else {
37821 nit_abort("Assert failed", NULL, LOCATE_parser, 11180);
37822 }
37823 /* ./parser//parser.nit:11182 */
37824 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
37825 fra.me.REG[5] = fra.me.REG[4];
37826 /* ./parser//parser.nit:11183 */
37827 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37828 if (UNTAG_Bool(REGB0)) {
37829 } else {
37830 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37831 if (UNTAG_Bool(REGB1)) {
37832 REGB1 = TAG_Bool(false);
37833 REGB0 = REGB1;
37834 } else {
37835 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37836 REGB0 = REGB1;
37837 }
37838 }
37839 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37840 if (UNTAG_Bool(REGB0)) {
37841 /* ./parser//parser.nit:11184 */
37842 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
37843 }
37844 /* ./parser//parser.nit:11186 */
37845 fra.me.REG[2] = fra.me.REG[5];
37846 /* ./parser//parser.nit:11187 */
37847 REGB0 = TAG_Bool(ATTR_parser___ReduceAction664____goto(fra.me.REG[0])!=NIT_NULL);
37848 if (UNTAG_Bool(REGB0)) {
37849 } else {
37850 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11187);
37851 }
37852 REGB0 = ATTR_parser___ReduceAction664____goto(fra.me.REG[0]);
37853 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37854 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37855 stack_frame_head = fra.me.prev;
37856 return;
37857 }
37858 void parser___ReduceAction664___init(val_t p0, val_t p1, int* init_table){
37859 int itpos360 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction664].i;
37860 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37861 val_t REGB0;
37862 val_t tmp;
37863 if (init_table[itpos360]) return;
37864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37865 fra.me.file = LOCATE_parser;
37866 fra.me.line = 11190;
37867 fra.me.meth = LOCATE_parser___ReduceAction664___init;
37868 fra.me.has_broke = 0;
37869 fra.me.REG_size = 2;
37870 fra.me.REG[0] = NIT_NULL;
37871 fra.me.REG[1] = NIT_NULL;
37872 fra.me.REG[0] = p0;
37873 REGB0 = p1;
37874 /* ./parser//parser.nit:11190 */
37875 fra.me.REG[1] = fra.me.REG[0];
37876 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37877 ATTR_parser___ReduceAction664____goto(fra.me.REG[1]) = REGB0;
37878 stack_frame_head = fra.me.prev;
37879 init_table[itpos360] = 1;
37880 return;
37881 }
37882 void parser___ReduceAction665___action(val_t p0, val_t p1){
37883 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37884 val_t REGB0;
37885 val_t REGB1;
37886 val_t tmp;
37887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37888 fra.me.file = LOCATE_parser;
37889 fra.me.line = 11194;
37890 fra.me.meth = LOCATE_parser___ReduceAction665___action;
37891 fra.me.has_broke = 0;
37892 fra.me.REG_size = 5;
37893 fra.me.REG[0] = NIT_NULL;
37894 fra.me.REG[1] = NIT_NULL;
37895 fra.me.REG[2] = NIT_NULL;
37896 fra.me.REG[3] = NIT_NULL;
37897 fra.me.REG[4] = NIT_NULL;
37898 fra.me.REG[0] = p0;
37899 fra.me.REG[1] = p1;
37900 /* ./parser//parser.nit:11196 */
37901 fra.me.REG[2] = NIT_NULL;
37902 /* ./parser//parser.nit:11197 */
37903 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37904 /* ./parser//parser.nit:11198 */
37905 fra.me.REG[4] = NEW_Array_array___Array___init();
37906 /* ./parser//parser.nit:11200 */
37907 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37908 if (UNTAG_Bool(REGB0)) {
37909 } else {
37910 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37911 if (UNTAG_Bool(REGB1)) {
37912 REGB1 = TAG_Bool(false);
37913 REGB0 = REGB1;
37914 } else {
37915 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37916 REGB0 = REGB1;
37917 }
37918 }
37919 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37920 if (UNTAG_Bool(REGB0)) {
37921 /* ./parser//parser.nit:11201 */
37922 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
37923 }
37924 /* ./parser//parser.nit:11203 */
37925 fra.me.REG[2] = fra.me.REG[4];
37926 /* ./parser//parser.nit:11204 */
37927 REGB0 = TAG_Bool(ATTR_parser___ReduceAction665____goto(fra.me.REG[0])!=NIT_NULL);
37928 if (UNTAG_Bool(REGB0)) {
37929 } else {
37930 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11204);
37931 }
37932 REGB0 = ATTR_parser___ReduceAction665____goto(fra.me.REG[0]);
37933 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
37934 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
37935 stack_frame_head = fra.me.prev;
37936 return;
37937 }
37938 void parser___ReduceAction665___init(val_t p0, val_t p1, int* init_table){
37939 int itpos361 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction665].i;
37940 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37941 val_t REGB0;
37942 val_t tmp;
37943 if (init_table[itpos361]) return;
37944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37945 fra.me.file = LOCATE_parser;
37946 fra.me.line = 11207;
37947 fra.me.meth = LOCATE_parser___ReduceAction665___init;
37948 fra.me.has_broke = 0;
37949 fra.me.REG_size = 2;
37950 fra.me.REG[0] = NIT_NULL;
37951 fra.me.REG[1] = NIT_NULL;
37952 fra.me.REG[0] = p0;
37953 REGB0 = p1;
37954 /* ./parser//parser.nit:11207 */
37955 fra.me.REG[1] = fra.me.REG[0];
37956 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
37957 ATTR_parser___ReduceAction665____goto(fra.me.REG[1]) = REGB0;
37958 stack_frame_head = fra.me.prev;
37959 init_table[itpos361] = 1;
37960 return;
37961 }
37962 void parser___ReduceAction666___action(val_t p0, val_t p1){
37963 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37964 val_t REGB0;
37965 val_t REGB1;
37966 val_t tmp;
37967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37968 fra.me.file = LOCATE_parser;
37969 fra.me.line = 11211;
37970 fra.me.meth = LOCATE_parser___ReduceAction666___action;
37971 fra.me.has_broke = 0;
37972 fra.me.REG_size = 6;
37973 fra.me.REG[0] = NIT_NULL;
37974 fra.me.REG[1] = NIT_NULL;
37975 fra.me.REG[2] = NIT_NULL;
37976 fra.me.REG[3] = NIT_NULL;
37977 fra.me.REG[4] = NIT_NULL;
37978 fra.me.REG[5] = NIT_NULL;
37979 fra.me.REG[0] = p0;
37980 fra.me.REG[1] = p1;
37981 /* ./parser//parser.nit:11213 */
37982 fra.me.REG[2] = NIT_NULL;
37983 /* ./parser//parser.nit:11214 */
37984 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37985 /* ./parser//parser.nit:11215 */
37986 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
37987 /* ./parser//parser.nit:11216 */
37988 fra.me.REG[5] = NEW_Array_array___Array___init();
37989 /* ./parser//parser.nit:11218 */
37990 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
37991 if (UNTAG_Bool(REGB0)) {
37992 } else {
37993 nit_abort("Assert failed", NULL, LOCATE_parser, 11218);
37994 }
37995 /* ./parser//parser.nit:11220 */
37996 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
37997 fra.me.REG[5] = fra.me.REG[4];
37998 /* ./parser//parser.nit:11221 */
37999 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38000 if (UNTAG_Bool(REGB0)) {
38001 } else {
38002 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38003 if (UNTAG_Bool(REGB1)) {
38004 REGB1 = TAG_Bool(false);
38005 REGB0 = REGB1;
38006 } else {
38007 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38008 REGB0 = REGB1;
38009 }
38010 }
38011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38012 if (UNTAG_Bool(REGB0)) {
38013 /* ./parser//parser.nit:11222 */
38014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38015 }
38016 /* ./parser//parser.nit:11224 */
38017 fra.me.REG[2] = fra.me.REG[5];
38018 /* ./parser//parser.nit:11225 */
38019 REGB0 = TAG_Bool(ATTR_parser___ReduceAction666____goto(fra.me.REG[0])!=NIT_NULL);
38020 if (UNTAG_Bool(REGB0)) {
38021 } else {
38022 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11225);
38023 }
38024 REGB0 = ATTR_parser___ReduceAction666____goto(fra.me.REG[0]);
38025 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38026 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38027 stack_frame_head = fra.me.prev;
38028 return;
38029 }
38030 void parser___ReduceAction666___init(val_t p0, val_t p1, int* init_table){
38031 int itpos362 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction666].i;
38032 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38033 val_t REGB0;
38034 val_t tmp;
38035 if (init_table[itpos362]) return;
38036 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38037 fra.me.file = LOCATE_parser;
38038 fra.me.line = 11228;
38039 fra.me.meth = LOCATE_parser___ReduceAction666___init;
38040 fra.me.has_broke = 0;
38041 fra.me.REG_size = 2;
38042 fra.me.REG[0] = NIT_NULL;
38043 fra.me.REG[1] = NIT_NULL;
38044 fra.me.REG[0] = p0;
38045 REGB0 = p1;
38046 /* ./parser//parser.nit:11228 */
38047 fra.me.REG[1] = fra.me.REG[0];
38048 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38049 ATTR_parser___ReduceAction666____goto(fra.me.REG[1]) = REGB0;
38050 stack_frame_head = fra.me.prev;
38051 init_table[itpos362] = 1;
38052 return;
38053 }
38054 void parser___ReduceAction667___action(val_t p0, val_t p1){
38055 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38056 val_t REGB0;
38057 val_t REGB1;
38058 val_t tmp;
38059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38060 fra.me.file = LOCATE_parser;
38061 fra.me.line = 11232;
38062 fra.me.meth = LOCATE_parser___ReduceAction667___action;
38063 fra.me.has_broke = 0;
38064 fra.me.REG_size = 5;
38065 fra.me.REG[0] = NIT_NULL;
38066 fra.me.REG[1] = NIT_NULL;
38067 fra.me.REG[2] = NIT_NULL;
38068 fra.me.REG[3] = NIT_NULL;
38069 fra.me.REG[4] = NIT_NULL;
38070 fra.me.REG[0] = p0;
38071 fra.me.REG[1] = p1;
38072 /* ./parser//parser.nit:11234 */
38073 fra.me.REG[2] = NIT_NULL;
38074 /* ./parser//parser.nit:11235 */
38075 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38076 /* ./parser//parser.nit:11236 */
38077 fra.me.REG[4] = NEW_Array_array___Array___init();
38078 /* ./parser//parser.nit:11238 */
38079 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38080 if (UNTAG_Bool(REGB0)) {
38081 } else {
38082 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38083 if (UNTAG_Bool(REGB1)) {
38084 REGB1 = TAG_Bool(false);
38085 REGB0 = REGB1;
38086 } else {
38087 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38088 REGB0 = REGB1;
38089 }
38090 }
38091 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38092 if (UNTAG_Bool(REGB0)) {
38093 /* ./parser//parser.nit:11239 */
38094 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38095 }
38096 /* ./parser//parser.nit:11241 */
38097 fra.me.REG[2] = fra.me.REG[4];
38098 /* ./parser//parser.nit:11242 */
38099 REGB0 = TAG_Bool(ATTR_parser___ReduceAction667____goto(fra.me.REG[0])!=NIT_NULL);
38100 if (UNTAG_Bool(REGB0)) {
38101 } else {
38102 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11242);
38103 }
38104 REGB0 = ATTR_parser___ReduceAction667____goto(fra.me.REG[0]);
38105 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38106 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38107 stack_frame_head = fra.me.prev;
38108 return;
38109 }
38110 void parser___ReduceAction667___init(val_t p0, val_t p1, int* init_table){
38111 int itpos363 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction667].i;
38112 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38113 val_t REGB0;
38114 val_t tmp;
38115 if (init_table[itpos363]) return;
38116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38117 fra.me.file = LOCATE_parser;
38118 fra.me.line = 11245;
38119 fra.me.meth = LOCATE_parser___ReduceAction667___init;
38120 fra.me.has_broke = 0;
38121 fra.me.REG_size = 2;
38122 fra.me.REG[0] = NIT_NULL;
38123 fra.me.REG[1] = NIT_NULL;
38124 fra.me.REG[0] = p0;
38125 REGB0 = p1;
38126 /* ./parser//parser.nit:11245 */
38127 fra.me.REG[1] = fra.me.REG[0];
38128 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38129 ATTR_parser___ReduceAction667____goto(fra.me.REG[1]) = REGB0;
38130 stack_frame_head = fra.me.prev;
38131 init_table[itpos363] = 1;
38132 return;
38133 }
38134 void parser___ReduceAction668___action(val_t p0, val_t p1){
38135 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38136 val_t REGB0;
38137 val_t REGB1;
38138 val_t tmp;
38139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38140 fra.me.file = LOCATE_parser;
38141 fra.me.line = 11249;
38142 fra.me.meth = LOCATE_parser___ReduceAction668___action;
38143 fra.me.has_broke = 0;
38144 fra.me.REG_size = 6;
38145 fra.me.REG[0] = NIT_NULL;
38146 fra.me.REG[1] = NIT_NULL;
38147 fra.me.REG[2] = NIT_NULL;
38148 fra.me.REG[3] = NIT_NULL;
38149 fra.me.REG[4] = NIT_NULL;
38150 fra.me.REG[5] = NIT_NULL;
38151 fra.me.REG[0] = p0;
38152 fra.me.REG[1] = p1;
38153 /* ./parser//parser.nit:11251 */
38154 fra.me.REG[2] = NIT_NULL;
38155 /* ./parser//parser.nit:11252 */
38156 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38157 /* ./parser//parser.nit:11253 */
38158 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38159 /* ./parser//parser.nit:11254 */
38160 fra.me.REG[5] = NEW_Array_array___Array___init();
38161 /* ./parser//parser.nit:11256 */
38162 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38163 if (UNTAG_Bool(REGB0)) {
38164 } else {
38165 nit_abort("Assert failed", NULL, LOCATE_parser, 11256);
38166 }
38167 /* ./parser//parser.nit:11258 */
38168 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38169 fra.me.REG[5] = fra.me.REG[4];
38170 /* ./parser//parser.nit:11259 */
38171 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38172 if (UNTAG_Bool(REGB0)) {
38173 } else {
38174 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38175 if (UNTAG_Bool(REGB1)) {
38176 REGB1 = TAG_Bool(false);
38177 REGB0 = REGB1;
38178 } else {
38179 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38180 REGB0 = REGB1;
38181 }
38182 }
38183 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38184 if (UNTAG_Bool(REGB0)) {
38185 /* ./parser//parser.nit:11260 */
38186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38187 }
38188 /* ./parser//parser.nit:11262 */
38189 fra.me.REG[2] = fra.me.REG[5];
38190 /* ./parser//parser.nit:11263 */
38191 REGB0 = TAG_Bool(ATTR_parser___ReduceAction668____goto(fra.me.REG[0])!=NIT_NULL);
38192 if (UNTAG_Bool(REGB0)) {
38193 } else {
38194 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11263);
38195 }
38196 REGB0 = ATTR_parser___ReduceAction668____goto(fra.me.REG[0]);
38197 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38198 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38199 stack_frame_head = fra.me.prev;
38200 return;
38201 }
38202 void parser___ReduceAction668___init(val_t p0, val_t p1, int* init_table){
38203 int itpos364 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction668].i;
38204 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38205 val_t REGB0;
38206 val_t tmp;
38207 if (init_table[itpos364]) return;
38208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38209 fra.me.file = LOCATE_parser;
38210 fra.me.line = 11266;
38211 fra.me.meth = LOCATE_parser___ReduceAction668___init;
38212 fra.me.has_broke = 0;
38213 fra.me.REG_size = 2;
38214 fra.me.REG[0] = NIT_NULL;
38215 fra.me.REG[1] = NIT_NULL;
38216 fra.me.REG[0] = p0;
38217 REGB0 = p1;
38218 /* ./parser//parser.nit:11266 */
38219 fra.me.REG[1] = fra.me.REG[0];
38220 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38221 ATTR_parser___ReduceAction668____goto(fra.me.REG[1]) = REGB0;
38222 stack_frame_head = fra.me.prev;
38223 init_table[itpos364] = 1;
38224 return;
38225 }
38226 void parser___ReduceAction669___action(val_t p0, val_t p1){
38227 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38228 val_t REGB0;
38229 val_t REGB1;
38230 val_t tmp;
38231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38232 fra.me.file = LOCATE_parser;
38233 fra.me.line = 11270;
38234 fra.me.meth = LOCATE_parser___ReduceAction669___action;
38235 fra.me.has_broke = 0;
38236 fra.me.REG_size = 5;
38237 fra.me.REG[0] = NIT_NULL;
38238 fra.me.REG[1] = NIT_NULL;
38239 fra.me.REG[2] = NIT_NULL;
38240 fra.me.REG[3] = NIT_NULL;
38241 fra.me.REG[4] = NIT_NULL;
38242 fra.me.REG[0] = p0;
38243 fra.me.REG[1] = p1;
38244 /* ./parser//parser.nit:11272 */
38245 fra.me.REG[2] = NIT_NULL;
38246 /* ./parser//parser.nit:11273 */
38247 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38248 /* ./parser//parser.nit:11274 */
38249 fra.me.REG[4] = NEW_Array_array___Array___init();
38250 /* ./parser//parser.nit:11276 */
38251 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38252 if (UNTAG_Bool(REGB0)) {
38253 } else {
38254 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38255 if (UNTAG_Bool(REGB1)) {
38256 REGB1 = TAG_Bool(false);
38257 REGB0 = REGB1;
38258 } else {
38259 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38260 REGB0 = REGB1;
38261 }
38262 }
38263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38264 if (UNTAG_Bool(REGB0)) {
38265 /* ./parser//parser.nit:11277 */
38266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38267 }
38268 /* ./parser//parser.nit:11279 */
38269 fra.me.REG[2] = fra.me.REG[4];
38270 /* ./parser//parser.nit:11280 */
38271 REGB0 = TAG_Bool(ATTR_parser___ReduceAction669____goto(fra.me.REG[0])!=NIT_NULL);
38272 if (UNTAG_Bool(REGB0)) {
38273 } else {
38274 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11280);
38275 }
38276 REGB0 = ATTR_parser___ReduceAction669____goto(fra.me.REG[0]);
38277 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38278 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38279 stack_frame_head = fra.me.prev;
38280 return;
38281 }
38282 void parser___ReduceAction669___init(val_t p0, val_t p1, int* init_table){
38283 int itpos365 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction669].i;
38284 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38285 val_t REGB0;
38286 val_t tmp;
38287 if (init_table[itpos365]) return;
38288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38289 fra.me.file = LOCATE_parser;
38290 fra.me.line = 11283;
38291 fra.me.meth = LOCATE_parser___ReduceAction669___init;
38292 fra.me.has_broke = 0;
38293 fra.me.REG_size = 2;
38294 fra.me.REG[0] = NIT_NULL;
38295 fra.me.REG[1] = NIT_NULL;
38296 fra.me.REG[0] = p0;
38297 REGB0 = p1;
38298 /* ./parser//parser.nit:11283 */
38299 fra.me.REG[1] = fra.me.REG[0];
38300 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38301 ATTR_parser___ReduceAction669____goto(fra.me.REG[1]) = REGB0;
38302 stack_frame_head = fra.me.prev;
38303 init_table[itpos365] = 1;
38304 return;
38305 }
38306 void parser___ReduceAction670___action(val_t p0, val_t p1){
38307 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38308 val_t REGB0;
38309 val_t REGB1;
38310 val_t tmp;
38311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38312 fra.me.file = LOCATE_parser;
38313 fra.me.line = 11287;
38314 fra.me.meth = LOCATE_parser___ReduceAction670___action;
38315 fra.me.has_broke = 0;
38316 fra.me.REG_size = 6;
38317 fra.me.REG[0] = NIT_NULL;
38318 fra.me.REG[1] = NIT_NULL;
38319 fra.me.REG[2] = NIT_NULL;
38320 fra.me.REG[3] = NIT_NULL;
38321 fra.me.REG[4] = NIT_NULL;
38322 fra.me.REG[5] = NIT_NULL;
38323 fra.me.REG[0] = p0;
38324 fra.me.REG[1] = p1;
38325 /* ./parser//parser.nit:11289 */
38326 fra.me.REG[2] = NIT_NULL;
38327 /* ./parser//parser.nit:11290 */
38328 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38329 /* ./parser//parser.nit:11291 */
38330 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38331 /* ./parser//parser.nit:11292 */
38332 fra.me.REG[5] = NEW_Array_array___Array___init();
38333 /* ./parser//parser.nit:11294 */
38334 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38335 if (UNTAG_Bool(REGB0)) {
38336 } else {
38337 nit_abort("Assert failed", NULL, LOCATE_parser, 11294);
38338 }
38339 /* ./parser//parser.nit:11296 */
38340 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38341 fra.me.REG[5] = fra.me.REG[4];
38342 /* ./parser//parser.nit:11297 */
38343 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38344 if (UNTAG_Bool(REGB0)) {
38345 } else {
38346 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38347 if (UNTAG_Bool(REGB1)) {
38348 REGB1 = TAG_Bool(false);
38349 REGB0 = REGB1;
38350 } else {
38351 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38352 REGB0 = REGB1;
38353 }
38354 }
38355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38356 if (UNTAG_Bool(REGB0)) {
38357 /* ./parser//parser.nit:11298 */
38358 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38359 }
38360 /* ./parser//parser.nit:11300 */
38361 fra.me.REG[2] = fra.me.REG[5];
38362 /* ./parser//parser.nit:11301 */
38363 REGB0 = TAG_Bool(ATTR_parser___ReduceAction670____goto(fra.me.REG[0])!=NIT_NULL);
38364 if (UNTAG_Bool(REGB0)) {
38365 } else {
38366 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11301);
38367 }
38368 REGB0 = ATTR_parser___ReduceAction670____goto(fra.me.REG[0]);
38369 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38370 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38371 stack_frame_head = fra.me.prev;
38372 return;
38373 }
38374 void parser___ReduceAction670___init(val_t p0, val_t p1, int* init_table){
38375 int itpos366 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction670].i;
38376 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38377 val_t REGB0;
38378 val_t tmp;
38379 if (init_table[itpos366]) return;
38380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38381 fra.me.file = LOCATE_parser;
38382 fra.me.line = 11304;
38383 fra.me.meth = LOCATE_parser___ReduceAction670___init;
38384 fra.me.has_broke = 0;
38385 fra.me.REG_size = 2;
38386 fra.me.REG[0] = NIT_NULL;
38387 fra.me.REG[1] = NIT_NULL;
38388 fra.me.REG[0] = p0;
38389 REGB0 = p1;
38390 /* ./parser//parser.nit:11304 */
38391 fra.me.REG[1] = fra.me.REG[0];
38392 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38393 ATTR_parser___ReduceAction670____goto(fra.me.REG[1]) = REGB0;
38394 stack_frame_head = fra.me.prev;
38395 init_table[itpos366] = 1;
38396 return;
38397 }
38398 void parser___ReduceAction673___action(val_t p0, val_t p1){
38399 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38400 val_t REGB0;
38401 val_t REGB1;
38402 val_t tmp;
38403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38404 fra.me.file = LOCATE_parser;
38405 fra.me.line = 11308;
38406 fra.me.meth = LOCATE_parser___ReduceAction673___action;
38407 fra.me.has_broke = 0;
38408 fra.me.REG_size = 5;
38409 fra.me.REG[0] = NIT_NULL;
38410 fra.me.REG[1] = NIT_NULL;
38411 fra.me.REG[2] = NIT_NULL;
38412 fra.me.REG[3] = NIT_NULL;
38413 fra.me.REG[4] = NIT_NULL;
38414 fra.me.REG[0] = p0;
38415 fra.me.REG[1] = p1;
38416 /* ./parser//parser.nit:11310 */
38417 fra.me.REG[2] = NIT_NULL;
38418 /* ./parser//parser.nit:11311 */
38419 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38420 /* ./parser//parser.nit:11312 */
38421 fra.me.REG[4] = NEW_Array_array___Array___init();
38422 /* ./parser//parser.nit:11314 */
38423 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38424 if (UNTAG_Bool(REGB0)) {
38425 } else {
38426 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38427 if (UNTAG_Bool(REGB1)) {
38428 REGB1 = TAG_Bool(false);
38429 REGB0 = REGB1;
38430 } else {
38431 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38432 REGB0 = REGB1;
38433 }
38434 }
38435 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38436 if (UNTAG_Bool(REGB0)) {
38437 /* ./parser//parser.nit:11315 */
38438 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38439 }
38440 /* ./parser//parser.nit:11317 */
38441 fra.me.REG[2] = fra.me.REG[4];
38442 /* ./parser//parser.nit:11318 */
38443 REGB0 = TAG_Bool(ATTR_parser___ReduceAction673____goto(fra.me.REG[0])!=NIT_NULL);
38444 if (UNTAG_Bool(REGB0)) {
38445 } else {
38446 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11318);
38447 }
38448 REGB0 = ATTR_parser___ReduceAction673____goto(fra.me.REG[0]);
38449 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38450 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38451 stack_frame_head = fra.me.prev;
38452 return;
38453 }
38454 void parser___ReduceAction673___init(val_t p0, val_t p1, int* init_table){
38455 int itpos367 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction673].i;
38456 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38457 val_t REGB0;
38458 val_t tmp;
38459 if (init_table[itpos367]) return;
38460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38461 fra.me.file = LOCATE_parser;
38462 fra.me.line = 11321;
38463 fra.me.meth = LOCATE_parser___ReduceAction673___init;
38464 fra.me.has_broke = 0;
38465 fra.me.REG_size = 2;
38466 fra.me.REG[0] = NIT_NULL;
38467 fra.me.REG[1] = NIT_NULL;
38468 fra.me.REG[0] = p0;
38469 REGB0 = p1;
38470 /* ./parser//parser.nit:11321 */
38471 fra.me.REG[1] = fra.me.REG[0];
38472 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38473 ATTR_parser___ReduceAction673____goto(fra.me.REG[1]) = REGB0;
38474 stack_frame_head = fra.me.prev;
38475 init_table[itpos367] = 1;
38476 return;
38477 }
38478 void parser___ReduceAction674___action(val_t p0, val_t p1){
38479 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38480 val_t REGB0;
38481 val_t REGB1;
38482 val_t tmp;
38483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38484 fra.me.file = LOCATE_parser;
38485 fra.me.line = 11325;
38486 fra.me.meth = LOCATE_parser___ReduceAction674___action;
38487 fra.me.has_broke = 0;
38488 fra.me.REG_size = 6;
38489 fra.me.REG[0] = NIT_NULL;
38490 fra.me.REG[1] = NIT_NULL;
38491 fra.me.REG[2] = NIT_NULL;
38492 fra.me.REG[3] = NIT_NULL;
38493 fra.me.REG[4] = NIT_NULL;
38494 fra.me.REG[5] = NIT_NULL;
38495 fra.me.REG[0] = p0;
38496 fra.me.REG[1] = p1;
38497 /* ./parser//parser.nit:11327 */
38498 fra.me.REG[2] = NIT_NULL;
38499 /* ./parser//parser.nit:11328 */
38500 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38501 /* ./parser//parser.nit:11329 */
38502 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38503 /* ./parser//parser.nit:11330 */
38504 fra.me.REG[5] = NEW_Array_array___Array___init();
38505 /* ./parser//parser.nit:11332 */
38506 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38507 if (UNTAG_Bool(REGB0)) {
38508 } else {
38509 nit_abort("Assert failed", NULL, LOCATE_parser, 11332);
38510 }
38511 /* ./parser//parser.nit:11334 */
38512 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38513 fra.me.REG[5] = fra.me.REG[4];
38514 /* ./parser//parser.nit:11335 */
38515 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38516 if (UNTAG_Bool(REGB0)) {
38517 } else {
38518 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38519 if (UNTAG_Bool(REGB1)) {
38520 REGB1 = TAG_Bool(false);
38521 REGB0 = REGB1;
38522 } else {
38523 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38524 REGB0 = REGB1;
38525 }
38526 }
38527 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38528 if (UNTAG_Bool(REGB0)) {
38529 /* ./parser//parser.nit:11336 */
38530 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38531 }
38532 /* ./parser//parser.nit:11338 */
38533 fra.me.REG[2] = fra.me.REG[5];
38534 /* ./parser//parser.nit:11339 */
38535 REGB0 = TAG_Bool(ATTR_parser___ReduceAction674____goto(fra.me.REG[0])!=NIT_NULL);
38536 if (UNTAG_Bool(REGB0)) {
38537 } else {
38538 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11339);
38539 }
38540 REGB0 = ATTR_parser___ReduceAction674____goto(fra.me.REG[0]);
38541 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38542 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38543 stack_frame_head = fra.me.prev;
38544 return;
38545 }
38546 void parser___ReduceAction674___init(val_t p0, val_t p1, int* init_table){
38547 int itpos368 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction674].i;
38548 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38549 val_t REGB0;
38550 val_t tmp;
38551 if (init_table[itpos368]) return;
38552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38553 fra.me.file = LOCATE_parser;
38554 fra.me.line = 11342;
38555 fra.me.meth = LOCATE_parser___ReduceAction674___init;
38556 fra.me.has_broke = 0;
38557 fra.me.REG_size = 2;
38558 fra.me.REG[0] = NIT_NULL;
38559 fra.me.REG[1] = NIT_NULL;
38560 fra.me.REG[0] = p0;
38561 REGB0 = p1;
38562 /* ./parser//parser.nit:11342 */
38563 fra.me.REG[1] = fra.me.REG[0];
38564 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38565 ATTR_parser___ReduceAction674____goto(fra.me.REG[1]) = REGB0;
38566 stack_frame_head = fra.me.prev;
38567 init_table[itpos368] = 1;
38568 return;
38569 }
38570 void parser___ReduceAction675___action(val_t p0, val_t p1){
38571 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38572 val_t REGB0;
38573 val_t REGB1;
38574 val_t tmp;
38575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38576 fra.me.file = LOCATE_parser;
38577 fra.me.line = 11346;
38578 fra.me.meth = LOCATE_parser___ReduceAction675___action;
38579 fra.me.has_broke = 0;
38580 fra.me.REG_size = 5;
38581 fra.me.REG[0] = NIT_NULL;
38582 fra.me.REG[1] = NIT_NULL;
38583 fra.me.REG[2] = NIT_NULL;
38584 fra.me.REG[3] = NIT_NULL;
38585 fra.me.REG[4] = NIT_NULL;
38586 fra.me.REG[0] = p0;
38587 fra.me.REG[1] = p1;
38588 /* ./parser//parser.nit:11348 */
38589 fra.me.REG[2] = NIT_NULL;
38590 /* ./parser//parser.nit:11349 */
38591 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38592 /* ./parser//parser.nit:11350 */
38593 fra.me.REG[4] = NEW_Array_array___Array___init();
38594 /* ./parser//parser.nit:11352 */
38595 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38596 if (UNTAG_Bool(REGB0)) {
38597 } else {
38598 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38599 if (UNTAG_Bool(REGB1)) {
38600 REGB1 = TAG_Bool(false);
38601 REGB0 = REGB1;
38602 } else {
38603 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38604 REGB0 = REGB1;
38605 }
38606 }
38607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38608 if (UNTAG_Bool(REGB0)) {
38609 /* ./parser//parser.nit:11353 */
38610 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38611 }
38612 /* ./parser//parser.nit:11355 */
38613 fra.me.REG[2] = fra.me.REG[4];
38614 /* ./parser//parser.nit:11356 */
38615 REGB0 = TAG_Bool(ATTR_parser___ReduceAction675____goto(fra.me.REG[0])!=NIT_NULL);
38616 if (UNTAG_Bool(REGB0)) {
38617 } else {
38618 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11356);
38619 }
38620 REGB0 = ATTR_parser___ReduceAction675____goto(fra.me.REG[0]);
38621 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38622 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38623 stack_frame_head = fra.me.prev;
38624 return;
38625 }
38626 void parser___ReduceAction675___init(val_t p0, val_t p1, int* init_table){
38627 int itpos369 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction675].i;
38628 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38629 val_t REGB0;
38630 val_t tmp;
38631 if (init_table[itpos369]) return;
38632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38633 fra.me.file = LOCATE_parser;
38634 fra.me.line = 11359;
38635 fra.me.meth = LOCATE_parser___ReduceAction675___init;
38636 fra.me.has_broke = 0;
38637 fra.me.REG_size = 2;
38638 fra.me.REG[0] = NIT_NULL;
38639 fra.me.REG[1] = NIT_NULL;
38640 fra.me.REG[0] = p0;
38641 REGB0 = p1;
38642 /* ./parser//parser.nit:11359 */
38643 fra.me.REG[1] = fra.me.REG[0];
38644 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38645 ATTR_parser___ReduceAction675____goto(fra.me.REG[1]) = REGB0;
38646 stack_frame_head = fra.me.prev;
38647 init_table[itpos369] = 1;
38648 return;
38649 }
38650 void parser___ReduceAction676___action(val_t p0, val_t p1){
38651 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38652 val_t REGB0;
38653 val_t REGB1;
38654 val_t tmp;
38655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38656 fra.me.file = LOCATE_parser;
38657 fra.me.line = 11363;
38658 fra.me.meth = LOCATE_parser___ReduceAction676___action;
38659 fra.me.has_broke = 0;
38660 fra.me.REG_size = 6;
38661 fra.me.REG[0] = NIT_NULL;
38662 fra.me.REG[1] = NIT_NULL;
38663 fra.me.REG[2] = NIT_NULL;
38664 fra.me.REG[3] = NIT_NULL;
38665 fra.me.REG[4] = NIT_NULL;
38666 fra.me.REG[5] = NIT_NULL;
38667 fra.me.REG[0] = p0;
38668 fra.me.REG[1] = p1;
38669 /* ./parser//parser.nit:11365 */
38670 fra.me.REG[2] = NIT_NULL;
38671 /* ./parser//parser.nit:11366 */
38672 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38673 /* ./parser//parser.nit:11367 */
38674 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38675 /* ./parser//parser.nit:11368 */
38676 fra.me.REG[5] = NEW_Array_array___Array___init();
38677 /* ./parser//parser.nit:11370 */
38678 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38679 if (UNTAG_Bool(REGB0)) {
38680 } else {
38681 nit_abort("Assert failed", NULL, LOCATE_parser, 11370);
38682 }
38683 /* ./parser//parser.nit:11372 */
38684 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38685 fra.me.REG[5] = fra.me.REG[4];
38686 /* ./parser//parser.nit:11373 */
38687 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38688 if (UNTAG_Bool(REGB0)) {
38689 } else {
38690 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38691 if (UNTAG_Bool(REGB1)) {
38692 REGB1 = TAG_Bool(false);
38693 REGB0 = REGB1;
38694 } else {
38695 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38696 REGB0 = REGB1;
38697 }
38698 }
38699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38700 if (UNTAG_Bool(REGB0)) {
38701 /* ./parser//parser.nit:11374 */
38702 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38703 }
38704 /* ./parser//parser.nit:11376 */
38705 fra.me.REG[2] = fra.me.REG[5];
38706 /* ./parser//parser.nit:11377 */
38707 REGB0 = TAG_Bool(ATTR_parser___ReduceAction676____goto(fra.me.REG[0])!=NIT_NULL);
38708 if (UNTAG_Bool(REGB0)) {
38709 } else {
38710 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11377);
38711 }
38712 REGB0 = ATTR_parser___ReduceAction676____goto(fra.me.REG[0]);
38713 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38714 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38715 stack_frame_head = fra.me.prev;
38716 return;
38717 }
38718 void parser___ReduceAction676___init(val_t p0, val_t p1, int* init_table){
38719 int itpos370 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction676].i;
38720 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38721 val_t REGB0;
38722 val_t tmp;
38723 if (init_table[itpos370]) return;
38724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38725 fra.me.file = LOCATE_parser;
38726 fra.me.line = 11380;
38727 fra.me.meth = LOCATE_parser___ReduceAction676___init;
38728 fra.me.has_broke = 0;
38729 fra.me.REG_size = 2;
38730 fra.me.REG[0] = NIT_NULL;
38731 fra.me.REG[1] = NIT_NULL;
38732 fra.me.REG[0] = p0;
38733 REGB0 = p1;
38734 /* ./parser//parser.nit:11380 */
38735 fra.me.REG[1] = fra.me.REG[0];
38736 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38737 ATTR_parser___ReduceAction676____goto(fra.me.REG[1]) = REGB0;
38738 stack_frame_head = fra.me.prev;
38739 init_table[itpos370] = 1;
38740 return;
38741 }
38742 void parser___ReduceAction677___action(val_t p0, val_t p1){
38743 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38744 val_t REGB0;
38745 val_t REGB1;
38746 val_t tmp;
38747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38748 fra.me.file = LOCATE_parser;
38749 fra.me.line = 11384;
38750 fra.me.meth = LOCATE_parser___ReduceAction677___action;
38751 fra.me.has_broke = 0;
38752 fra.me.REG_size = 5;
38753 fra.me.REG[0] = NIT_NULL;
38754 fra.me.REG[1] = NIT_NULL;
38755 fra.me.REG[2] = NIT_NULL;
38756 fra.me.REG[3] = NIT_NULL;
38757 fra.me.REG[4] = NIT_NULL;
38758 fra.me.REG[0] = p0;
38759 fra.me.REG[1] = p1;
38760 /* ./parser//parser.nit:11386 */
38761 fra.me.REG[2] = NIT_NULL;
38762 /* ./parser//parser.nit:11387 */
38763 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38764 /* ./parser//parser.nit:11388 */
38765 fra.me.REG[4] = NEW_Array_array___Array___init();
38766 /* ./parser//parser.nit:11390 */
38767 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38768 if (UNTAG_Bool(REGB0)) {
38769 } else {
38770 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38771 if (UNTAG_Bool(REGB1)) {
38772 REGB1 = TAG_Bool(false);
38773 REGB0 = REGB1;
38774 } else {
38775 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38776 REGB0 = REGB1;
38777 }
38778 }
38779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38780 if (UNTAG_Bool(REGB0)) {
38781 /* ./parser//parser.nit:11391 */
38782 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
38783 }
38784 /* ./parser//parser.nit:11393 */
38785 fra.me.REG[2] = fra.me.REG[4];
38786 /* ./parser//parser.nit:11394 */
38787 REGB0 = TAG_Bool(ATTR_parser___ReduceAction677____goto(fra.me.REG[0])!=NIT_NULL);
38788 if (UNTAG_Bool(REGB0)) {
38789 } else {
38790 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11394);
38791 }
38792 REGB0 = ATTR_parser___ReduceAction677____goto(fra.me.REG[0]);
38793 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38794 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38795 stack_frame_head = fra.me.prev;
38796 return;
38797 }
38798 void parser___ReduceAction677___init(val_t p0, val_t p1, int* init_table){
38799 int itpos371 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction677].i;
38800 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38801 val_t REGB0;
38802 val_t tmp;
38803 if (init_table[itpos371]) return;
38804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38805 fra.me.file = LOCATE_parser;
38806 fra.me.line = 11397;
38807 fra.me.meth = LOCATE_parser___ReduceAction677___init;
38808 fra.me.has_broke = 0;
38809 fra.me.REG_size = 2;
38810 fra.me.REG[0] = NIT_NULL;
38811 fra.me.REG[1] = NIT_NULL;
38812 fra.me.REG[0] = p0;
38813 REGB0 = p1;
38814 /* ./parser//parser.nit:11397 */
38815 fra.me.REG[1] = fra.me.REG[0];
38816 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38817 ATTR_parser___ReduceAction677____goto(fra.me.REG[1]) = REGB0;
38818 stack_frame_head = fra.me.prev;
38819 init_table[itpos371] = 1;
38820 return;
38821 }
38822 void parser___ReduceAction678___action(val_t p0, val_t p1){
38823 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38824 val_t REGB0;
38825 val_t REGB1;
38826 val_t tmp;
38827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38828 fra.me.file = LOCATE_parser;
38829 fra.me.line = 11401;
38830 fra.me.meth = LOCATE_parser___ReduceAction678___action;
38831 fra.me.has_broke = 0;
38832 fra.me.REG_size = 6;
38833 fra.me.REG[0] = NIT_NULL;
38834 fra.me.REG[1] = NIT_NULL;
38835 fra.me.REG[2] = NIT_NULL;
38836 fra.me.REG[3] = NIT_NULL;
38837 fra.me.REG[4] = NIT_NULL;
38838 fra.me.REG[5] = NIT_NULL;
38839 fra.me.REG[0] = p0;
38840 fra.me.REG[1] = p1;
38841 /* ./parser//parser.nit:11403 */
38842 fra.me.REG[2] = NIT_NULL;
38843 /* ./parser//parser.nit:11404 */
38844 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38845 /* ./parser//parser.nit:11405 */
38846 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38847 /* ./parser//parser.nit:11406 */
38848 fra.me.REG[5] = NEW_Array_array___Array___init();
38849 /* ./parser//parser.nit:11408 */
38850 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38851 if (UNTAG_Bool(REGB0)) {
38852 } else {
38853 nit_abort("Assert failed", NULL, LOCATE_parser, 11408);
38854 }
38855 /* ./parser//parser.nit:11410 */
38856 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38857 fra.me.REG[5] = fra.me.REG[4];
38858 /* ./parser//parser.nit:11411 */
38859 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38860 if (UNTAG_Bool(REGB0)) {
38861 } else {
38862 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38863 if (UNTAG_Bool(REGB1)) {
38864 REGB1 = TAG_Bool(false);
38865 REGB0 = REGB1;
38866 } else {
38867 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38868 REGB0 = REGB1;
38869 }
38870 }
38871 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38872 if (UNTAG_Bool(REGB0)) {
38873 /* ./parser//parser.nit:11412 */
38874 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38875 }
38876 /* ./parser//parser.nit:11414 */
38877 fra.me.REG[2] = fra.me.REG[5];
38878 /* ./parser//parser.nit:11415 */
38879 REGB0 = TAG_Bool(ATTR_parser___ReduceAction678____goto(fra.me.REG[0])!=NIT_NULL);
38880 if (UNTAG_Bool(REGB0)) {
38881 } else {
38882 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11415);
38883 }
38884 REGB0 = ATTR_parser___ReduceAction678____goto(fra.me.REG[0]);
38885 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38886 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38887 stack_frame_head = fra.me.prev;
38888 return;
38889 }
38890 void parser___ReduceAction678___init(val_t p0, val_t p1, int* init_table){
38891 int itpos372 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction678].i;
38892 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38893 val_t REGB0;
38894 val_t tmp;
38895 if (init_table[itpos372]) return;
38896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38897 fra.me.file = LOCATE_parser;
38898 fra.me.line = 11418;
38899 fra.me.meth = LOCATE_parser___ReduceAction678___init;
38900 fra.me.has_broke = 0;
38901 fra.me.REG_size = 2;
38902 fra.me.REG[0] = NIT_NULL;
38903 fra.me.REG[1] = NIT_NULL;
38904 fra.me.REG[0] = p0;
38905 REGB0 = p1;
38906 /* ./parser//parser.nit:11418 */
38907 fra.me.REG[1] = fra.me.REG[0];
38908 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
38909 ATTR_parser___ReduceAction678____goto(fra.me.REG[1]) = REGB0;
38910 stack_frame_head = fra.me.prev;
38911 init_table[itpos372] = 1;
38912 return;
38913 }
38914 void parser___ReduceAction680___action(val_t p0, val_t p1){
38915 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38916 val_t REGB0;
38917 val_t REGB1;
38918 val_t tmp;
38919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38920 fra.me.file = LOCATE_parser;
38921 fra.me.line = 11422;
38922 fra.me.meth = LOCATE_parser___ReduceAction680___action;
38923 fra.me.has_broke = 0;
38924 fra.me.REG_size = 6;
38925 fra.me.REG[0] = NIT_NULL;
38926 fra.me.REG[1] = NIT_NULL;
38927 fra.me.REG[2] = NIT_NULL;
38928 fra.me.REG[3] = NIT_NULL;
38929 fra.me.REG[4] = NIT_NULL;
38930 fra.me.REG[5] = NIT_NULL;
38931 fra.me.REG[0] = p0;
38932 fra.me.REG[1] = p1;
38933 /* ./parser//parser.nit:11424 */
38934 fra.me.REG[2] = NIT_NULL;
38935 /* ./parser//parser.nit:11425 */
38936 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38937 /* ./parser//parser.nit:11426 */
38938 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
38939 /* ./parser//parser.nit:11427 */
38940 fra.me.REG[5] = NEW_Array_array___Array___init();
38941 /* ./parser//parser.nit:11429 */
38942 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
38943 if (UNTAG_Bool(REGB0)) {
38944 } else {
38945 nit_abort("Assert failed", NULL, LOCATE_parser, 11429);
38946 }
38947 /* ./parser//parser.nit:11431 */
38948 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
38949 fra.me.REG[5] = fra.me.REG[4];
38950 /* ./parser//parser.nit:11432 */
38951 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38952 if (UNTAG_Bool(REGB0)) {
38953 } else {
38954 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38955 if (UNTAG_Bool(REGB1)) {
38956 REGB1 = TAG_Bool(false);
38957 REGB0 = REGB1;
38958 } else {
38959 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38960 REGB0 = REGB1;
38961 }
38962 }
38963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38964 if (UNTAG_Bool(REGB0)) {
38965 /* ./parser//parser.nit:11433 */
38966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
38967 }
38968 /* ./parser//parser.nit:11435 */
38969 fra.me.REG[2] = fra.me.REG[5];
38970 /* ./parser//parser.nit:11436 */
38971 REGB0 = TAG_Bool(ATTR_parser___ReduceAction680____goto(fra.me.REG[0])!=NIT_NULL);
38972 if (UNTAG_Bool(REGB0)) {
38973 } else {
38974 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11436);
38975 }
38976 REGB0 = ATTR_parser___ReduceAction680____goto(fra.me.REG[0]);
38977 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
38978 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
38979 stack_frame_head = fra.me.prev;
38980 return;
38981 }
38982 void parser___ReduceAction680___init(val_t p0, val_t p1, int* init_table){
38983 int itpos373 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction680].i;
38984 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38985 val_t REGB0;
38986 val_t tmp;
38987 if (init_table[itpos373]) return;
38988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38989 fra.me.file = LOCATE_parser;
38990 fra.me.line = 11439;
38991 fra.me.meth = LOCATE_parser___ReduceAction680___init;
38992 fra.me.has_broke = 0;
38993 fra.me.REG_size = 2;
38994 fra.me.REG[0] = NIT_NULL;
38995 fra.me.REG[1] = NIT_NULL;
38996 fra.me.REG[0] = p0;
38997 REGB0 = p1;
38998 /* ./parser//parser.nit:11439 */
38999 fra.me.REG[1] = fra.me.REG[0];
39000 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39001 ATTR_parser___ReduceAction680____goto(fra.me.REG[1]) = REGB0;
39002 stack_frame_head = fra.me.prev;
39003 init_table[itpos373] = 1;
39004 return;
39005 }
39006 void parser___ReduceAction682___action(val_t p0, val_t p1){
39007 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39008 val_t REGB0;
39009 val_t REGB1;
39010 val_t tmp;
39011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39012 fra.me.file = LOCATE_parser;
39013 fra.me.line = 11443;
39014 fra.me.meth = LOCATE_parser___ReduceAction682___action;
39015 fra.me.has_broke = 0;
39016 fra.me.REG_size = 6;
39017 fra.me.REG[0] = NIT_NULL;
39018 fra.me.REG[1] = NIT_NULL;
39019 fra.me.REG[2] = NIT_NULL;
39020 fra.me.REG[3] = NIT_NULL;
39021 fra.me.REG[4] = NIT_NULL;
39022 fra.me.REG[5] = NIT_NULL;
39023 fra.me.REG[0] = p0;
39024 fra.me.REG[1] = p1;
39025 /* ./parser//parser.nit:11445 */
39026 fra.me.REG[2] = NIT_NULL;
39027 /* ./parser//parser.nit:11446 */
39028 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39029 /* ./parser//parser.nit:11447 */
39030 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39031 /* ./parser//parser.nit:11448 */
39032 fra.me.REG[5] = NEW_Array_array___Array___init();
39033 /* ./parser//parser.nit:11450 */
39034 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39035 if (UNTAG_Bool(REGB0)) {
39036 } else {
39037 nit_abort("Assert failed", NULL, LOCATE_parser, 11450);
39038 }
39039 /* ./parser//parser.nit:11452 */
39040 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39041 fra.me.REG[5] = fra.me.REG[4];
39042 /* ./parser//parser.nit:11453 */
39043 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39044 if (UNTAG_Bool(REGB0)) {
39045 } else {
39046 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39047 if (UNTAG_Bool(REGB1)) {
39048 REGB1 = TAG_Bool(false);
39049 REGB0 = REGB1;
39050 } else {
39051 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39052 REGB0 = REGB1;
39053 }
39054 }
39055 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39056 if (UNTAG_Bool(REGB0)) {
39057 /* ./parser//parser.nit:11454 */
39058 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39059 }
39060 /* ./parser//parser.nit:11456 */
39061 fra.me.REG[2] = fra.me.REG[5];
39062 /* ./parser//parser.nit:11457 */
39063 REGB0 = TAG_Bool(ATTR_parser___ReduceAction682____goto(fra.me.REG[0])!=NIT_NULL);
39064 if (UNTAG_Bool(REGB0)) {
39065 } else {
39066 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11457);
39067 }
39068 REGB0 = ATTR_parser___ReduceAction682____goto(fra.me.REG[0]);
39069 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39070 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39071 stack_frame_head = fra.me.prev;
39072 return;
39073 }
39074 void parser___ReduceAction682___init(val_t p0, val_t p1, int* init_table){
39075 int itpos374 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction682].i;
39076 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39077 val_t REGB0;
39078 val_t tmp;
39079 if (init_table[itpos374]) return;
39080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39081 fra.me.file = LOCATE_parser;
39082 fra.me.line = 11460;
39083 fra.me.meth = LOCATE_parser___ReduceAction682___init;
39084 fra.me.has_broke = 0;
39085 fra.me.REG_size = 2;
39086 fra.me.REG[0] = NIT_NULL;
39087 fra.me.REG[1] = NIT_NULL;
39088 fra.me.REG[0] = p0;
39089 REGB0 = p1;
39090 /* ./parser//parser.nit:11460 */
39091 fra.me.REG[1] = fra.me.REG[0];
39092 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39093 ATTR_parser___ReduceAction682____goto(fra.me.REG[1]) = REGB0;
39094 stack_frame_head = fra.me.prev;
39095 init_table[itpos374] = 1;
39096 return;
39097 }
39098 void parser___ReduceAction684___action(val_t p0, val_t p1){
39099 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39100 val_t REGB0;
39101 val_t tmp;
39102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39103 fra.me.file = LOCATE_parser;
39104 fra.me.line = 11464;
39105 fra.me.meth = LOCATE_parser___ReduceAction684___action;
39106 fra.me.has_broke = 0;
39107 fra.me.REG_size = 6;
39108 fra.me.REG[0] = NIT_NULL;
39109 fra.me.REG[1] = NIT_NULL;
39110 fra.me.REG[2] = NIT_NULL;
39111 fra.me.REG[3] = NIT_NULL;
39112 fra.me.REG[4] = NIT_NULL;
39113 fra.me.REG[5] = NIT_NULL;
39114 fra.me.REG[0] = p0;
39115 fra.me.REG[1] = p1;
39116 /* ./parser//parser.nit:11466 */
39117 fra.me.REG[2] = NIT_NULL;
39118 /* ./parser//parser.nit:11467 */
39119 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39120 /* ./parser//parser.nit:11468 */
39121 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39122 /* ./parser//parser.nit:11469 */
39123 fra.me.REG[5] = NEW_Array_array___Array___init();
39124 /* ./parser//parser.nit:11471 */
39125 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39126 if (UNTAG_Bool(REGB0)) {
39127 } else {
39128 nit_abort("Assert failed", NULL, LOCATE_parser, 11471);
39129 }
39130 /* ./parser//parser.nit:11473 */
39131 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39132 if (UNTAG_Bool(REGB0)) {
39133 } else {
39134 nit_abort("Assert failed", NULL, LOCATE_parser, 11473);
39135 }
39136 /* ./parser//parser.nit:11474 */
39137 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39138 fra.me.REG[5] = fra.me.REG[4];
39139 /* ./parser//parser.nit:11475 */
39140 fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
39141 fra.me.REG[5] = fra.me.REG[3];
39142 /* ./parser//parser.nit:11476 */
39143 fra.me.REG[2] = fra.me.REG[5];
39144 /* ./parser//parser.nit:11477 */
39145 REGB0 = TAG_Bool(ATTR_parser___ReduceAction684____goto(fra.me.REG[0])!=NIT_NULL);
39146 if (UNTAG_Bool(REGB0)) {
39147 } else {
39148 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11477);
39149 }
39150 REGB0 = ATTR_parser___ReduceAction684____goto(fra.me.REG[0]);
39151 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39152 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39153 stack_frame_head = fra.me.prev;
39154 return;
39155 }
39156 void parser___ReduceAction684___init(val_t p0, val_t p1, int* init_table){
39157 int itpos375 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction684].i;
39158 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39159 val_t REGB0;
39160 val_t tmp;
39161 if (init_table[itpos375]) return;
39162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39163 fra.me.file = LOCATE_parser;
39164 fra.me.line = 11480;
39165 fra.me.meth = LOCATE_parser___ReduceAction684___init;
39166 fra.me.has_broke = 0;
39167 fra.me.REG_size = 2;
39168 fra.me.REG[0] = NIT_NULL;
39169 fra.me.REG[1] = NIT_NULL;
39170 fra.me.REG[0] = p0;
39171 REGB0 = p1;
39172 /* ./parser//parser.nit:11480 */
39173 fra.me.REG[1] = fra.me.REG[0];
39174 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39175 ATTR_parser___ReduceAction684____goto(fra.me.REG[1]) = REGB0;
39176 stack_frame_head = fra.me.prev;
39177 init_table[itpos375] = 1;
39178 return;
39179 }
39180 void parser___ReduceAction688___action(val_t p0, val_t p1){
39181 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39182 val_t REGB0;
39183 val_t REGB1;
39184 val_t tmp;
39185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39186 fra.me.file = LOCATE_parser;
39187 fra.me.line = 11484;
39188 fra.me.meth = LOCATE_parser___ReduceAction688___action;
39189 fra.me.has_broke = 0;
39190 fra.me.REG_size = 6;
39191 fra.me.REG[0] = NIT_NULL;
39192 fra.me.REG[1] = NIT_NULL;
39193 fra.me.REG[2] = NIT_NULL;
39194 fra.me.REG[3] = NIT_NULL;
39195 fra.me.REG[4] = NIT_NULL;
39196 fra.me.REG[5] = NIT_NULL;
39197 fra.me.REG[0] = p0;
39198 fra.me.REG[1] = p1;
39199 /* ./parser//parser.nit:11486 */
39200 fra.me.REG[2] = NIT_NULL;
39201 /* ./parser//parser.nit:11487 */
39202 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39203 /* ./parser//parser.nit:11488 */
39204 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39205 /* ./parser//parser.nit:11489 */
39206 fra.me.REG[5] = NEW_Array_array___Array___init();
39207 /* ./parser//parser.nit:11491 */
39208 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39209 if (UNTAG_Bool(REGB0)) {
39210 } else {
39211 nit_abort("Assert failed", NULL, LOCATE_parser, 11491);
39212 }
39213 /* ./parser//parser.nit:11493 */
39214 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39215 fra.me.REG[5] = fra.me.REG[4];
39216 /* ./parser//parser.nit:11494 */
39217 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39218 if (UNTAG_Bool(REGB0)) {
39219 } else {
39220 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39221 if (UNTAG_Bool(REGB1)) {
39222 REGB1 = TAG_Bool(false);
39223 REGB0 = REGB1;
39224 } else {
39225 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39226 REGB0 = REGB1;
39227 }
39228 }
39229 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39230 if (UNTAG_Bool(REGB0)) {
39231 /* ./parser//parser.nit:11495 */
39232 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39233 }
39234 /* ./parser//parser.nit:11497 */
39235 fra.me.REG[2] = fra.me.REG[5];
39236 /* ./parser//parser.nit:11498 */
39237 REGB0 = TAG_Bool(ATTR_parser___ReduceAction688____goto(fra.me.REG[0])!=NIT_NULL);
39238 if (UNTAG_Bool(REGB0)) {
39239 } else {
39240 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11498);
39241 }
39242 REGB0 = ATTR_parser___ReduceAction688____goto(fra.me.REG[0]);
39243 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39244 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39245 stack_frame_head = fra.me.prev;
39246 return;
39247 }
39248 void parser___ReduceAction688___init(val_t p0, val_t p1, int* init_table){
39249 int itpos376 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction688].i;
39250 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39251 val_t REGB0;
39252 val_t tmp;
39253 if (init_table[itpos376]) return;
39254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39255 fra.me.file = LOCATE_parser;
39256 fra.me.line = 11501;
39257 fra.me.meth = LOCATE_parser___ReduceAction688___init;
39258 fra.me.has_broke = 0;
39259 fra.me.REG_size = 2;
39260 fra.me.REG[0] = NIT_NULL;
39261 fra.me.REG[1] = NIT_NULL;
39262 fra.me.REG[0] = p0;
39263 REGB0 = p1;
39264 /* ./parser//parser.nit:11501 */
39265 fra.me.REG[1] = fra.me.REG[0];
39266 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39267 ATTR_parser___ReduceAction688____goto(fra.me.REG[1]) = REGB0;
39268 stack_frame_head = fra.me.prev;
39269 init_table[itpos376] = 1;
39270 return;
39271 }
39272 void parser___ReduceAction689___action(val_t p0, val_t p1){
39273 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39274 val_t REGB0;
39275 val_t REGB1;
39276 val_t tmp;
39277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39278 fra.me.file = LOCATE_parser;
39279 fra.me.line = 11505;
39280 fra.me.meth = LOCATE_parser___ReduceAction689___action;
39281 fra.me.has_broke = 0;
39282 fra.me.REG_size = 5;
39283 fra.me.REG[0] = NIT_NULL;
39284 fra.me.REG[1] = NIT_NULL;
39285 fra.me.REG[2] = NIT_NULL;
39286 fra.me.REG[3] = NIT_NULL;
39287 fra.me.REG[4] = NIT_NULL;
39288 fra.me.REG[0] = p0;
39289 fra.me.REG[1] = p1;
39290 /* ./parser//parser.nit:11507 */
39291 fra.me.REG[2] = NIT_NULL;
39292 /* ./parser//parser.nit:11508 */
39293 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39294 /* ./parser//parser.nit:11509 */
39295 fra.me.REG[4] = NEW_Array_array___Array___init();
39296 /* ./parser//parser.nit:11511 */
39297 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39298 if (UNTAG_Bool(REGB0)) {
39299 } else {
39300 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39301 if (UNTAG_Bool(REGB1)) {
39302 REGB1 = TAG_Bool(false);
39303 REGB0 = REGB1;
39304 } else {
39305 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39306 REGB0 = REGB1;
39307 }
39308 }
39309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39310 if (UNTAG_Bool(REGB0)) {
39311 /* ./parser//parser.nit:11512 */
39312 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
39313 }
39314 /* ./parser//parser.nit:11514 */
39315 fra.me.REG[2] = fra.me.REG[4];
39316 /* ./parser//parser.nit:11515 */
39317 REGB0 = TAG_Bool(ATTR_parser___ReduceAction689____goto(fra.me.REG[0])!=NIT_NULL);
39318 if (UNTAG_Bool(REGB0)) {
39319 } else {
39320 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11515);
39321 }
39322 REGB0 = ATTR_parser___ReduceAction689____goto(fra.me.REG[0]);
39323 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39324 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39325 stack_frame_head = fra.me.prev;
39326 return;
39327 }
39328 void parser___ReduceAction689___init(val_t p0, val_t p1, int* init_table){
39329 int itpos377 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction689].i;
39330 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39331 val_t REGB0;
39332 val_t tmp;
39333 if (init_table[itpos377]) return;
39334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39335 fra.me.file = LOCATE_parser;
39336 fra.me.line = 11518;
39337 fra.me.meth = LOCATE_parser___ReduceAction689___init;
39338 fra.me.has_broke = 0;
39339 fra.me.REG_size = 2;
39340 fra.me.REG[0] = NIT_NULL;
39341 fra.me.REG[1] = NIT_NULL;
39342 fra.me.REG[0] = p0;
39343 REGB0 = p1;
39344 /* ./parser//parser.nit:11518 */
39345 fra.me.REG[1] = fra.me.REG[0];
39346 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39347 ATTR_parser___ReduceAction689____goto(fra.me.REG[1]) = REGB0;
39348 stack_frame_head = fra.me.prev;
39349 init_table[itpos377] = 1;
39350 return;
39351 }
39352 void parser___ReduceAction690___action(val_t p0, val_t p1){
39353 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39354 val_t REGB0;
39355 val_t REGB1;
39356 val_t tmp;
39357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39358 fra.me.file = LOCATE_parser;
39359 fra.me.line = 11522;
39360 fra.me.meth = LOCATE_parser___ReduceAction690___action;
39361 fra.me.has_broke = 0;
39362 fra.me.REG_size = 6;
39363 fra.me.REG[0] = NIT_NULL;
39364 fra.me.REG[1] = NIT_NULL;
39365 fra.me.REG[2] = NIT_NULL;
39366 fra.me.REG[3] = NIT_NULL;
39367 fra.me.REG[4] = NIT_NULL;
39368 fra.me.REG[5] = NIT_NULL;
39369 fra.me.REG[0] = p0;
39370 fra.me.REG[1] = p1;
39371 /* ./parser//parser.nit:11524 */
39372 fra.me.REG[2] = NIT_NULL;
39373 /* ./parser//parser.nit:11525 */
39374 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39375 /* ./parser//parser.nit:11526 */
39376 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39377 /* ./parser//parser.nit:11527 */
39378 fra.me.REG[5] = NEW_Array_array___Array___init();
39379 /* ./parser//parser.nit:11529 */
39380 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39381 if (UNTAG_Bool(REGB0)) {
39382 } else {
39383 nit_abort("Assert failed", NULL, LOCATE_parser, 11529);
39384 }
39385 /* ./parser//parser.nit:11531 */
39386 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39387 fra.me.REG[5] = fra.me.REG[4];
39388 /* ./parser//parser.nit:11532 */
39389 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39390 if (UNTAG_Bool(REGB0)) {
39391 } else {
39392 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39393 if (UNTAG_Bool(REGB1)) {
39394 REGB1 = TAG_Bool(false);
39395 REGB0 = REGB1;
39396 } else {
39397 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39398 REGB0 = REGB1;
39399 }
39400 }
39401 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39402 if (UNTAG_Bool(REGB0)) {
39403 /* ./parser//parser.nit:11533 */
39404 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39405 }
39406 /* ./parser//parser.nit:11535 */
39407 fra.me.REG[2] = fra.me.REG[5];
39408 /* ./parser//parser.nit:11536 */
39409 REGB0 = TAG_Bool(ATTR_parser___ReduceAction690____goto(fra.me.REG[0])!=NIT_NULL);
39410 if (UNTAG_Bool(REGB0)) {
39411 } else {
39412 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11536);
39413 }
39414 REGB0 = ATTR_parser___ReduceAction690____goto(fra.me.REG[0]);
39415 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39416 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39417 stack_frame_head = fra.me.prev;
39418 return;
39419 }
39420 void parser___ReduceAction690___init(val_t p0, val_t p1, int* init_table){
39421 int itpos378 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction690].i;
39422 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39423 val_t REGB0;
39424 val_t tmp;
39425 if (init_table[itpos378]) return;
39426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39427 fra.me.file = LOCATE_parser;
39428 fra.me.line = 11539;
39429 fra.me.meth = LOCATE_parser___ReduceAction690___init;
39430 fra.me.has_broke = 0;
39431 fra.me.REG_size = 2;
39432 fra.me.REG[0] = NIT_NULL;
39433 fra.me.REG[1] = NIT_NULL;
39434 fra.me.REG[0] = p0;
39435 REGB0 = p1;
39436 /* ./parser//parser.nit:11539 */
39437 fra.me.REG[1] = fra.me.REG[0];
39438 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39439 ATTR_parser___ReduceAction690____goto(fra.me.REG[1]) = REGB0;
39440 stack_frame_head = fra.me.prev;
39441 init_table[itpos378] = 1;
39442 return;
39443 }
39444 void parser___ReduceAction691___action(val_t p0, val_t p1){
39445 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39446 val_t REGB0;
39447 val_t REGB1;
39448 val_t tmp;
39449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39450 fra.me.file = LOCATE_parser;
39451 fra.me.line = 11543;
39452 fra.me.meth = LOCATE_parser___ReduceAction691___action;
39453 fra.me.has_broke = 0;
39454 fra.me.REG_size = 5;
39455 fra.me.REG[0] = NIT_NULL;
39456 fra.me.REG[1] = NIT_NULL;
39457 fra.me.REG[2] = NIT_NULL;
39458 fra.me.REG[3] = NIT_NULL;
39459 fra.me.REG[4] = NIT_NULL;
39460 fra.me.REG[0] = p0;
39461 fra.me.REG[1] = p1;
39462 /* ./parser//parser.nit:11545 */
39463 fra.me.REG[2] = NIT_NULL;
39464 /* ./parser//parser.nit:11546 */
39465 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39466 /* ./parser//parser.nit:11547 */
39467 fra.me.REG[4] = NEW_Array_array___Array___init();
39468 /* ./parser//parser.nit:11549 */
39469 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39470 if (UNTAG_Bool(REGB0)) {
39471 } else {
39472 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39473 if (UNTAG_Bool(REGB1)) {
39474 REGB1 = TAG_Bool(false);
39475 REGB0 = REGB1;
39476 } else {
39477 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39478 REGB0 = REGB1;
39479 }
39480 }
39481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39482 if (UNTAG_Bool(REGB0)) {
39483 /* ./parser//parser.nit:11550 */
39484 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
39485 }
39486 /* ./parser//parser.nit:11552 */
39487 fra.me.REG[2] = fra.me.REG[4];
39488 /* ./parser//parser.nit:11553 */
39489 REGB0 = TAG_Bool(ATTR_parser___ReduceAction691____goto(fra.me.REG[0])!=NIT_NULL);
39490 if (UNTAG_Bool(REGB0)) {
39491 } else {
39492 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11553);
39493 }
39494 REGB0 = ATTR_parser___ReduceAction691____goto(fra.me.REG[0]);
39495 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39496 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39497 stack_frame_head = fra.me.prev;
39498 return;
39499 }
39500 void parser___ReduceAction691___init(val_t p0, val_t p1, int* init_table){
39501 int itpos379 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction691].i;
39502 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39503 val_t REGB0;
39504 val_t tmp;
39505 if (init_table[itpos379]) return;
39506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39507 fra.me.file = LOCATE_parser;
39508 fra.me.line = 11556;
39509 fra.me.meth = LOCATE_parser___ReduceAction691___init;
39510 fra.me.has_broke = 0;
39511 fra.me.REG_size = 2;
39512 fra.me.REG[0] = NIT_NULL;
39513 fra.me.REG[1] = NIT_NULL;
39514 fra.me.REG[0] = p0;
39515 REGB0 = p1;
39516 /* ./parser//parser.nit:11556 */
39517 fra.me.REG[1] = fra.me.REG[0];
39518 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39519 ATTR_parser___ReduceAction691____goto(fra.me.REG[1]) = REGB0;
39520 stack_frame_head = fra.me.prev;
39521 init_table[itpos379] = 1;
39522 return;
39523 }
39524 void parser___ReduceAction692___action(val_t p0, val_t p1){
39525 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39526 val_t REGB0;
39527 val_t REGB1;
39528 val_t tmp;
39529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39530 fra.me.file = LOCATE_parser;
39531 fra.me.line = 11560;
39532 fra.me.meth = LOCATE_parser___ReduceAction692___action;
39533 fra.me.has_broke = 0;
39534 fra.me.REG_size = 6;
39535 fra.me.REG[0] = NIT_NULL;
39536 fra.me.REG[1] = NIT_NULL;
39537 fra.me.REG[2] = NIT_NULL;
39538 fra.me.REG[3] = NIT_NULL;
39539 fra.me.REG[4] = NIT_NULL;
39540 fra.me.REG[5] = NIT_NULL;
39541 fra.me.REG[0] = p0;
39542 fra.me.REG[1] = p1;
39543 /* ./parser//parser.nit:11562 */
39544 fra.me.REG[2] = NIT_NULL;
39545 /* ./parser//parser.nit:11563 */
39546 fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39547 /* ./parser//parser.nit:11564 */
39548 fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
39549 /* ./parser//parser.nit:11565 */
39550 fra.me.REG[5] = NEW_Array_array___Array___init();
39551 /* ./parser//parser.nit:11567 */
39552 REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_Array, ID_Array)) /*cast Array[Object]*/;
39553 if (UNTAG_Bool(REGB0)) {
39554 } else {
39555 nit_abort("Assert failed", NULL, LOCATE_parser, 11567);
39556 }
39557 /* ./parser//parser.nit:11569 */
39558 fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
39559 fra.me.REG[5] = fra.me.REG[4];
39560 /* ./parser//parser.nit:11570 */
39561 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39562 if (UNTAG_Bool(REGB0)) {
39563 } else {
39564 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39565 if (UNTAG_Bool(REGB1)) {
39566 REGB1 = TAG_Bool(false);
39567 REGB0 = REGB1;
39568 } else {
39569 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39570 REGB0 = REGB1;
39571 }
39572 }
39573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39574 if (UNTAG_Bool(REGB0)) {
39575 /* ./parser//parser.nit:11571 */
39576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
39577 }
39578 /* ./parser//parser.nit:11573 */
39579 fra.me.REG[2] = fra.me.REG[5];
39580 /* ./parser//parser.nit:11574 */
39581 REGB0 = TAG_Bool(ATTR_parser___ReduceAction692____goto(fra.me.REG[0])!=NIT_NULL);
39582 if (UNTAG_Bool(REGB0)) {
39583 } else {
39584 nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11574);
39585 }
39586 REGB0 = ATTR_parser___ReduceAction692____goto(fra.me.REG[0]);
39587 REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
39588 CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
39589 stack_frame_head = fra.me.prev;
39590 return;
39591 }
39592 void parser___ReduceAction692___init(val_t p0, val_t p1, int* init_table){
39593 int itpos380 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ReduceAction692].i;
39594 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39595 val_t REGB0;
39596 val_t tmp;
39597 if (init_table[itpos380]) return;
39598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39599 fra.me.file = LOCATE_parser;
39600 fra.me.line = 11577;
39601 fra.me.meth = LOCATE_parser___ReduceAction692___init;
39602 fra.me.has_broke = 0;
39603 fra.me.REG_size = 2;
39604 fra.me.REG[0] = NIT_NULL;
39605 fra.me.REG[1] = NIT_NULL;
39606 fra.me.REG[0] = p0;
39607 REGB0 = p1;
39608 /* ./parser//parser.nit:11577 */
39609 fra.me.REG[1] = fra.me.REG[0];
39610 CALL_parser___ReduceAction___init(fra.me.REG[0])(fra.me.REG[0], init_table);
39611 ATTR_parser___ReduceAction692____goto(fra.me.REG[1]) = REGB0;
39612 stack_frame_head = fra.me.prev;
39613 init_table[itpos380] = 1;
39614 return;
39615 }