README: document nit_env.sh
[nit.git] / c_src / nit__parser.sep.6.c
1 #include "nit__parser.sep.0.h"
2 /* method parser#ReduceAction396#action for (self: ReduceAction396, Parser) */
3 void nit__parser___nit__parser__ReduceAction396___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var_node_list /* var node_list: nullable Object */;
6 val* var /* : nullable Object */;
7 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8 val* var1 /* : nullable Object */;
9 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
10 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
11 long var2 /* : Int */;
12 long var3 /* : Int */;
13 var_p = p0;
14 var_node_list = ((val*)NULL);
15 {
16 var = nit___nit__Parser___pop(var_p);
17 }
18 var_nodearraylist2 = var;
19 {
20 var1 = nit___nit__Parser___pop(var_p);
21 }
22 var_nodearraylist1 = var1;
23 var_pexprnode1 = var_nodearraylist1;
24 var_node_list = var_pexprnode1;
25 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction396> */
26 {
27 var3 = nit___nit__Parser___go_to(var_p, var2);
28 }
29 {
30 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
31 }
32 RET_LABEL:;
33 }
34 /* method parser#ReduceAction398#action for (self: ReduceAction398, Parser) */
35 void nit__parser___nit__parser__ReduceAction398___nit__parser_work__ReduceAction__action(val* self, val* p0) {
36 val* var_p /* var p: Parser */;
37 val* var_node_list /* var node_list: nullable Object */;
38 val* var /* : nullable Object */;
39 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
40 val* var1 /* : nullable Object */;
41 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
42 val* var2 /* : nullable Object */;
43 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
44 val* var3 /* : nullable Object */;
45 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
46 val* var4 /* : nullable Object */;
47 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
48 val* var5 /* : nullable Object */;
49 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
50 val* var6 /* : nullable Object */;
51 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
52 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
53 short int var7 /* : Bool */;
54 int cltype;
55 int idtype;
56 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
57 short int var8 /* : Bool */;
58 int cltype9;
59 int idtype10;
60 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
61 short int var11 /* : Bool */;
62 int cltype12;
63 int idtype13;
64 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
65 short int var14 /* : Bool */;
66 int cltype15;
67 int idtype16;
68 val* var17 /* : AIfExpr */;
69 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
70 long var18 /* : Int */;
71 long var19 /* : Int */;
72 var_p = p0;
73 var_node_list = ((val*)NULL);
74 {
75 var = nit___nit__Parser___pop(var_p);
76 }
77 var_nodearraylist7 = var;
78 {
79 var1 = nit___nit__Parser___pop(var_p);
80 }
81 var_nodearraylist6 = var1;
82 {
83 var2 = nit___nit__Parser___pop(var_p);
84 }
85 var_nodearraylist5 = var2;
86 {
87 var3 = nit___nit__Parser___pop(var_p);
88 }
89 var_nodearraylist4 = var3;
90 {
91 var4 = nit___nit__Parser___pop(var_p);
92 }
93 var_nodearraylist3 = var4;
94 {
95 var5 = nit___nit__Parser___pop(var_p);
96 }
97 var_nodearraylist2 = var5;
98 {
99 var6 = nit___nit__Parser___pop(var_p);
100 }
101 var_nodearraylist1 = var6;
102 var_tkwifnode2 = var_nodearraylist1;
103 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
104 cltype = type_nullable__nit__TKwif.color;
105 idtype = type_nullable__nit__TKwif.id;
106 if(var_tkwifnode2 == NULL) {
107 var7 = 1;
108 } else {
109 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
110 var7 = 0;
111 } else {
112 var7 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
113 }
114 }
115 if (unlikely(!var7)) {
116 PRINT_ERROR("Runtime error: %s", "Assert failed");
117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9600);
118 fatal_exit(1);
119 }
120 var_pexprnode3 = var_nodearraylist3;
121 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
122 cltype9 = type_nullable__nit__AExpr.color;
123 idtype10 = type_nullable__nit__AExpr.id;
124 if(var_pexprnode3 == NULL) {
125 var8 = 1;
126 } else {
127 if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
128 var8 = 0;
129 } else {
130 var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10;
131 }
132 }
133 if (unlikely(!var8)) {
134 PRINT_ERROR("Runtime error: %s", "Assert failed");
135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9602);
136 fatal_exit(1);
137 }
138 var_tkwthennode4 = var_nodearraylist5;
139 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
140 cltype12 = type_nullable__nit__TKwthen.color;
141 idtype13 = type_nullable__nit__TKwthen.id;
142 if(var_tkwthennode4 == NULL) {
143 var11 = 1;
144 } else {
145 if(cltype12 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
146 var11 = 0;
147 } else {
148 var11 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype12] == idtype13;
149 }
150 }
151 if (unlikely(!var11)) {
152 PRINT_ERROR("Runtime error: %s", "Assert failed");
153 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9604);
154 fatal_exit(1);
155 }
156 var_pexprnode5 = var_nodearraylist7;
157 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
158 cltype15 = type_nullable__nit__AExpr.color;
159 idtype16 = type_nullable__nit__AExpr.id;
160 if(var_pexprnode5 == NULL) {
161 var14 = 1;
162 } else {
163 if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
164 var14 = 0;
165 } else {
166 var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16;
167 }
168 }
169 if (unlikely(!var14)) {
170 PRINT_ERROR("Runtime error: %s", "Assert failed");
171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9606);
172 fatal_exit(1);
173 }
174 var17 = NEW_nit__AIfExpr(&type_nit__AIfExpr);
175 {
176 nit__parser_prod___AIfExpr___init_aifexpr(var17, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var17:AIfExpr>*/
177 }
178 var_pexprnode1 = var17;
179 var_node_list = var_pexprnode1;
180 var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction398> */
181 {
182 var19 = nit___nit__Parser___go_to(var_p, var18);
183 }
184 {
185 nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
186 }
187 RET_LABEL:;
188 }
189 /* method parser#ReduceAction399#action for (self: ReduceAction399, Parser) */
190 void nit__parser___nit__parser__ReduceAction399___nit__parser_work__ReduceAction__action(val* self, val* p0) {
191 val* var_p /* var p: Parser */;
192 val* var_node_list /* var node_list: nullable Object */;
193 val* var /* : nullable Object */;
194 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
195 val* var1 /* : nullable Object */;
196 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
197 val* var2 /* : nullable Object */;
198 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
199 val* var3 /* : Array[Object] */;
200 val* var_listnode4 /* var listnode4: Array[Object] */;
201 val* var_listnode2 /* var listnode2: nullable Object */;
202 short int var4 /* : Bool */;
203 int cltype;
204 int idtype;
205 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
206 short int var5 /* : Bool */;
207 int cltype6;
208 int idtype7;
209 val* var8 /* : Array[Object] */;
210 short int var9 /* : Bool */;
211 short int var10 /* : Bool */;
212 val* var_other /* var other: nullable Object */;
213 short int var12 /* : Bool */;
214 short int var13 /* : Bool */;
215 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
216 short int var14 /* : Bool */;
217 int cltype15;
218 int idtype16;
219 val* var17 /* : ASuperstringExpr */;
220 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
221 long var18 /* : Int */;
222 long var19 /* : Int */;
223 var_p = p0;
224 var_node_list = ((val*)NULL);
225 {
226 var = nit___nit__Parser___pop(var_p);
227 }
228 var_nodearraylist3 = var;
229 {
230 var1 = nit___nit__Parser___pop(var_p);
231 }
232 var_nodearraylist2 = var1;
233 {
234 var2 = nit___nit__Parser___pop(var_p);
235 }
236 var_nodearraylist1 = var2;
237 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
238 {
239 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
240 }
241 var_listnode4 = var3;
242 var_listnode2 = var_nodearraylist1;
243 /* <var_listnode2:nullable Object> isa Array[Object] */
244 cltype = type_standard__Array__standard__Object.color;
245 idtype = type_standard__Array__standard__Object.id;
246 if(var_listnode2 == NULL) {
247 var4 = 0;
248 } else {
249 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
250 var4 = 0;
251 } else {
252 var4 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
253 }
254 }
255 if (unlikely(!var4)) {
256 PRINT_ERROR("Runtime error: %s", "Assert failed");
257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9629);
258 fatal_exit(1);
259 }
260 var_pexprnode3 = var_nodearraylist2;
261 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
262 cltype6 = type_nullable__nit__AExpr.color;
263 idtype7 = type_nullable__nit__AExpr.id;
264 if(var_pexprnode3 == NULL) {
265 var5 = 1;
266 } else {
267 if(cltype6 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
268 var5 = 0;
269 } else {
270 var5 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype6] == idtype7;
271 }
272 }
273 if (unlikely(!var5)) {
274 PRINT_ERROR("Runtime error: %s", "Assert failed");
275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9631);
276 fatal_exit(1);
277 }
278 {
279 var8 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode2);
280 }
281 var_listnode4 = var8;
282 if (var_pexprnode3 == NULL) {
283 var9 = 0; /* is null */
284 } else {
285 var9 = 1; /* arg is null and recv is not */
286 }
287 if (0) {
288 { /* Inline kernel#Object#!= (var_pexprnode3,((val*)NULL)) on <var_pexprnode3:nullable Object(nullable AExpr)> */
289 var_other = ((val*)NULL);
290 {
291 var12 = ((short int(*)(val* self, val* p0))(var_pexprnode3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode3, var_other); /* == on <var_pexprnode3:nullable AExpr(AExpr)>*/
292 }
293 var13 = !var12;
294 var10 = var13;
295 goto RET_LABEL11;
296 RET_LABEL11:(void)0;
297 }
298 var9 = var10;
299 }
300 if (var9){
301 {
302 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode4, var_pexprnode3); /* Direct call array#Array#add on <var_listnode4:Array[Object]>*/
303 }
304 } else {
305 }
306 var_pannotationsnode5 = var_nodearraylist3;
307 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
308 cltype15 = type_nullable__nit__AAnnotations.color;
309 idtype16 = type_nullable__nit__AAnnotations.id;
310 if(var_pannotationsnode5 == NULL) {
311 var14 = 1;
312 } else {
313 if(cltype15 >= (((long)var_pannotationsnode5&3)?type_info[((long)var_pannotationsnode5&3)]:var_pannotationsnode5->type)->table_size) {
314 var14 = 0;
315 } else {
316 var14 = (((long)var_pannotationsnode5&3)?type_info[((long)var_pannotationsnode5&3)]:var_pannotationsnode5->type)->type_table[cltype15] == idtype16;
317 }
318 }
319 if (unlikely(!var14)) {
320 PRINT_ERROR("Runtime error: %s", "Assert failed");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9637);
322 fatal_exit(1);
323 }
324 var17 = NEW_nit__ASuperstringExpr(&type_nit__ASuperstringExpr);
325 {
326 nit__parser_prod___ASuperstringExpr___init_asuperstringexpr(var17, var_listnode4, var_pannotationsnode5); /* Direct call parser_prod#ASuperstringExpr#init_asuperstringexpr on <var17:ASuperstringExpr>*/
327 }
328 var_pexprnode1 = var17;
329 var_node_list = var_pexprnode1;
330 var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction399> */
331 {
332 var19 = nit___nit__Parser___go_to(var_p, var18);
333 }
334 {
335 nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
336 }
337 RET_LABEL:;
338 }
339 /* method parser#ReduceAction400#action for (self: ReduceAction400, Parser) */
340 void nit__parser___nit__parser__ReduceAction400___nit__parser_work__ReduceAction__action(val* self, val* p0) {
341 val* var_p /* var p: Parser */;
342 val* var_node_list /* var node_list: nullable Object */;
343 val* var /* : nullable Object */;
344 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
345 val* var1 /* : nullable Object */;
346 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
347 val* var2 /* : nullable Object */;
348 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
349 val* var3 /* : nullable Object */;
350 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
351 val* var4 /* : Array[Object] */;
352 val* var_listnode5 /* var listnode5: Array[Object] */;
353 val* var_listnode2 /* var listnode2: nullable Object */;
354 short int var5 /* : Bool */;
355 int cltype;
356 int idtype;
357 val* var_listnode3 /* var listnode3: nullable Object */;
358 short int var6 /* : Bool */;
359 int cltype7;
360 int idtype8;
361 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
362 short int var9 /* : Bool */;
363 int cltype10;
364 int idtype11;
365 val* var12 /* : Array[Object] */;
366 val* var13 /* : Array[Object] */;
367 short int var14 /* : Bool */;
368 short int var15 /* : Bool */;
369 val* var_other /* var other: nullable Object */;
370 short int var17 /* : Bool */;
371 short int var18 /* : Bool */;
372 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
373 short int var19 /* : Bool */;
374 int cltype20;
375 int idtype21;
376 val* var22 /* : ASuperstringExpr */;
377 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
378 long var23 /* : Int */;
379 long var24 /* : Int */;
380 var_p = p0;
381 var_node_list = ((val*)NULL);
382 {
383 var = nit___nit__Parser___pop(var_p);
384 }
385 var_nodearraylist4 = var;
386 {
387 var1 = nit___nit__Parser___pop(var_p);
388 }
389 var_nodearraylist3 = var1;
390 {
391 var2 = nit___nit__Parser___pop(var_p);
392 }
393 var_nodearraylist2 = var2;
394 {
395 var3 = nit___nit__Parser___pop(var_p);
396 }
397 var_nodearraylist1 = var3;
398 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
399 {
400 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
401 }
402 var_listnode5 = var4;
403 var_listnode2 = var_nodearraylist1;
404 /* <var_listnode2:nullable Object> isa Array[Object] */
405 cltype = type_standard__Array__standard__Object.color;
406 idtype = type_standard__Array__standard__Object.id;
407 if(var_listnode2 == NULL) {
408 var5 = 0;
409 } else {
410 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
411 var5 = 0;
412 } else {
413 var5 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
414 }
415 }
416 if (unlikely(!var5)) {
417 PRINT_ERROR("Runtime error: %s", "Assert failed");
418 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9657);
419 fatal_exit(1);
420 }
421 var_listnode3 = var_nodearraylist2;
422 /* <var_listnode3:nullable Object> isa Array[Object] */
423 cltype7 = type_standard__Array__standard__Object.color;
424 idtype8 = type_standard__Array__standard__Object.id;
425 if(var_listnode3 == NULL) {
426 var6 = 0;
427 } else {
428 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
429 var6 = 0;
430 } else {
431 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
432 }
433 }
434 if (unlikely(!var6)) {
435 PRINT_ERROR("Runtime error: %s", "Assert failed");
436 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9659);
437 fatal_exit(1);
438 }
439 var_pexprnode4 = var_nodearraylist3;
440 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
441 cltype10 = type_nullable__nit__AExpr.color;
442 idtype11 = type_nullable__nit__AExpr.id;
443 if(var_pexprnode4 == NULL) {
444 var9 = 1;
445 } else {
446 if(cltype10 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
447 var9 = 0;
448 } else {
449 var9 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype10] == idtype11;
450 }
451 }
452 if (unlikely(!var9)) {
453 PRINT_ERROR("Runtime error: %s", "Assert failed");
454 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9661);
455 fatal_exit(1);
456 }
457 {
458 var12 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode5, var_listnode2);
459 }
460 var_listnode5 = var12;
461 {
462 var13 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode5, var_listnode3);
463 }
464 var_listnode5 = var13;
465 if (var_pexprnode4 == NULL) {
466 var14 = 0; /* is null */
467 } else {
468 var14 = 1; /* arg is null and recv is not */
469 }
470 if (0) {
471 { /* Inline kernel#Object#!= (var_pexprnode4,((val*)NULL)) on <var_pexprnode4:nullable Object(nullable AExpr)> */
472 var_other = ((val*)NULL);
473 {
474 var17 = ((short int(*)(val* self, val* p0))(var_pexprnode4->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode4, var_other); /* == on <var_pexprnode4:nullable AExpr(AExpr)>*/
475 }
476 var18 = !var17;
477 var15 = var18;
478 goto RET_LABEL16;
479 RET_LABEL16:(void)0;
480 }
481 var14 = var15;
482 }
483 if (var14){
484 {
485 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode5, var_pexprnode4); /* Direct call array#Array#add on <var_listnode5:Array[Object]>*/
486 }
487 } else {
488 }
489 var_pannotationsnode6 = var_nodearraylist4;
490 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
491 cltype20 = type_nullable__nit__AAnnotations.color;
492 idtype21 = type_nullable__nit__AAnnotations.id;
493 if(var_pannotationsnode6 == NULL) {
494 var19 = 1;
495 } else {
496 if(cltype20 >= (((long)var_pannotationsnode6&3)?type_info[((long)var_pannotationsnode6&3)]:var_pannotationsnode6->type)->table_size) {
497 var19 = 0;
498 } else {
499 var19 = (((long)var_pannotationsnode6&3)?type_info[((long)var_pannotationsnode6&3)]:var_pannotationsnode6->type)->type_table[cltype20] == idtype21;
500 }
501 }
502 if (unlikely(!var19)) {
503 PRINT_ERROR("Runtime error: %s", "Assert failed");
504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9668);
505 fatal_exit(1);
506 }
507 var22 = NEW_nit__ASuperstringExpr(&type_nit__ASuperstringExpr);
508 {
509 nit__parser_prod___ASuperstringExpr___init_asuperstringexpr(var22, var_listnode5, var_pannotationsnode6); /* Direct call parser_prod#ASuperstringExpr#init_asuperstringexpr on <var22:ASuperstringExpr>*/
510 }
511 var_pexprnode1 = var22;
512 var_node_list = var_pexprnode1;
513 var23 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction400> */
514 {
515 var24 = nit___nit__Parser___go_to(var_p, var23);
516 }
517 {
518 nit___nit__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
519 }
520 RET_LABEL:;
521 }
522 /* method parser#ReduceAction401#action for (self: ReduceAction401, Parser) */
523 void nit__parser___nit__parser__ReduceAction401___nit__parser_work__ReduceAction__action(val* self, val* p0) {
524 val* var_p /* var p: Parser */;
525 val* var_node_list /* var node_list: nullable Object */;
526 val* var /* : nullable Object */;
527 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
528 val* var1 /* : nullable Object */;
529 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
530 val* var2 /* : nullable Object */;
531 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
532 val* var3 /* : nullable Object */;
533 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
534 val* var4 /* : Array[Object] */;
535 val* var_listnode3 /* var listnode3: Array[Object] */;
536 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
537 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
538 short int var5 /* : Bool */;
539 short int var6 /* : Bool */;
540 short int var7 /* : Bool */;
541 short int var8 /* : Bool */;
542 long var9 /* : Int */;
543 long var10 /* : Int */;
544 var_p = p0;
545 var_node_list = ((val*)NULL);
546 {
547 var = nit___nit__Parser___pop(var_p);
548 }
549 var_nodearraylist4 = var;
550 {
551 var1 = nit___nit__Parser___pop(var_p);
552 }
553 var_nodearraylist3 = var1;
554 {
555 var2 = nit___nit__Parser___pop(var_p);
556 }
557 var_nodearraylist2 = var2;
558 {
559 var3 = nit___nit__Parser___pop(var_p);
560 }
561 var_nodearraylist1 = var3;
562 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
563 {
564 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
565 }
566 var_listnode3 = var4;
567 var_pexprnode1 = var_nodearraylist1;
568 var_pexprnode2 = var_nodearraylist3;
569 if (var_pexprnode1 == NULL) {
570 var5 = 0; /* is null */
571 } else {
572 var5 = 1; /* arg is null and recv is not */
573 }
574 if (0) {
575 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode1&3)?class_info[((long)var_pexprnode1&3)]:var_pexprnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexprnode1, ((val*)NULL)); /* != on <var_pexprnode1:nullable Object>*/
576 var5 = var6;
577 }
578 if (var5){
579 {
580 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode1); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
581 }
582 } else {
583 }
584 if (var_pexprnode2 == NULL) {
585 var7 = 0; /* is null */
586 } else {
587 var7 = 1; /* arg is null and recv is not */
588 }
589 if (0) {
590 var8 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode2&3)?class_info[((long)var_pexprnode2&3)]:var_pexprnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexprnode2, ((val*)NULL)); /* != on <var_pexprnode2:nullable Object>*/
591 var7 = var8;
592 }
593 if (var7){
594 {
595 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
596 }
597 } else {
598 }
599 var_node_list = var_listnode3;
600 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction401> */
601 {
602 var10 = nit___nit__Parser___go_to(var_p, var9);
603 }
604 {
605 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
606 }
607 RET_LABEL:;
608 }
609 /* method parser#ReduceAction402#action for (self: ReduceAction402, Parser) */
610 void nit__parser___nit__parser__ReduceAction402___nit__parser_work__ReduceAction__action(val* self, val* p0) {
611 val* var_p /* var p: Parser */;
612 val* var_node_list /* var node_list: nullable Object */;
613 val* var /* : nullable Object */;
614 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
615 val* var1 /* : nullable Object */;
616 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
617 val* var2 /* : Array[Object] */;
618 val* var_listnode2 /* var listnode2: Array[Object] */;
619 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
620 short int var3 /* : Bool */;
621 short int var4 /* : Bool */;
622 long var5 /* : Int */;
623 long var6 /* : Int */;
624 var_p = p0;
625 var_node_list = ((val*)NULL);
626 {
627 var = nit___nit__Parser___pop(var_p);
628 }
629 var_nodearraylist2 = var;
630 {
631 var1 = nit___nit__Parser___pop(var_p);
632 }
633 var_nodearraylist1 = var1;
634 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
635 {
636 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
637 }
638 var_listnode2 = var2;
639 var_pexprnode1 = var_nodearraylist1;
640 if (var_pexprnode1 == NULL) {
641 var3 = 0; /* is null */
642 } else {
643 var3 = 1; /* arg is null and recv is not */
644 }
645 if (0) {
646 var4 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode1&3)?class_info[((long)var_pexprnode1&3)]:var_pexprnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexprnode1, ((val*)NULL)); /* != on <var_pexprnode1:nullable Object>*/
647 var3 = var4;
648 }
649 if (var3){
650 {
651 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pexprnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
652 }
653 } else {
654 }
655 var_node_list = var_listnode2;
656 var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction402> */
657 {
658 var6 = nit___nit__Parser___go_to(var_p, var5);
659 }
660 {
661 nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
662 }
663 RET_LABEL:;
664 }
665 /* method parser#ReduceAction403#action for (self: ReduceAction403, Parser) */
666 void nit__parser___nit__parser__ReduceAction403___nit__parser_work__ReduceAction__action(val* self, val* p0) {
667 val* var_p /* var p: Parser */;
668 val* var_node_list /* var node_list: nullable Object */;
669 val* var /* : nullable Object */;
670 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
671 val* var_tstartstringnode2 /* var tstartstringnode2: nullable Object */;
672 short int var1 /* : Bool */;
673 int cltype;
674 int idtype;
675 val* var2 /* : AStartStringExpr */;
676 val* var_pexprnode1 /* var pexprnode1: nullable AStartStringExpr */;
677 long var3 /* : Int */;
678 long var4 /* : Int */;
679 var_p = p0;
680 var_node_list = ((val*)NULL);
681 {
682 var = nit___nit__Parser___pop(var_p);
683 }
684 var_nodearraylist1 = var;
685 var_tstartstringnode2 = var_nodearraylist1;
686 /* <var_tstartstringnode2:nullable Object> isa nullable TStartString */
687 cltype = type_nullable__nit__TStartString.color;
688 idtype = type_nullable__nit__TStartString.id;
689 if(var_tstartstringnode2 == NULL) {
690 var1 = 1;
691 } else {
692 if(cltype >= (((long)var_tstartstringnode2&3)?type_info[((long)var_tstartstringnode2&3)]:var_tstartstringnode2->type)->table_size) {
693 var1 = 0;
694 } else {
695 var1 = (((long)var_tstartstringnode2&3)?type_info[((long)var_tstartstringnode2&3)]:var_tstartstringnode2->type)->type_table[cltype] == idtype;
696 }
697 }
698 if (unlikely(!var1)) {
699 PRINT_ERROR("Runtime error: %s", "Assert failed");
700 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9722);
701 fatal_exit(1);
702 }
703 var2 = NEW_nit__AStartStringExpr(&type_nit__AStartStringExpr);
704 {
705 nit__parser_prod___AStartStringExpr___init_astartstringexpr(var2, var_tstartstringnode2); /* Direct call parser_prod#AStartStringExpr#init_astartstringexpr on <var2:AStartStringExpr>*/
706 }
707 var_pexprnode1 = var2;
708 var_node_list = var_pexprnode1;
709 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction403> */
710 {
711 var4 = nit___nit__Parser___go_to(var_p, var3);
712 }
713 {
714 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
715 }
716 RET_LABEL:;
717 }
718 /* method parser#ReduceAction406#action for (self: ReduceAction406, Parser) */
719 void nit__parser___nit__parser__ReduceAction406___nit__parser_work__ReduceAction__action(val* self, val* p0) {
720 val* var_p /* var p: Parser */;
721 val* var_node_list /* var node_list: nullable Object */;
722 val* var /* : nullable Object */;
723 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
724 val* var_tmidstringnode2 /* var tmidstringnode2: nullable Object */;
725 short int var1 /* : Bool */;
726 int cltype;
727 int idtype;
728 val* var2 /* : AMidStringExpr */;
729 val* var_pexprnode1 /* var pexprnode1: nullable AMidStringExpr */;
730 long var3 /* : Int */;
731 long var4 /* : Int */;
732 var_p = p0;
733 var_node_list = ((val*)NULL);
734 {
735 var = nit___nit__Parser___pop(var_p);
736 }
737 var_nodearraylist1 = var;
738 var_tmidstringnode2 = var_nodearraylist1;
739 /* <var_tmidstringnode2:nullable Object> isa nullable TMidString */
740 cltype = type_nullable__nit__TMidString.color;
741 idtype = type_nullable__nit__TMidString.id;
742 if(var_tmidstringnode2 == NULL) {
743 var1 = 1;
744 } else {
745 if(cltype >= (((long)var_tmidstringnode2&3)?type_info[((long)var_tmidstringnode2&3)]:var_tmidstringnode2->type)->table_size) {
746 var1 = 0;
747 } else {
748 var1 = (((long)var_tmidstringnode2&3)?type_info[((long)var_tmidstringnode2&3)]:var_tmidstringnode2->type)->type_table[cltype] == idtype;
749 }
750 }
751 if (unlikely(!var1)) {
752 PRINT_ERROR("Runtime error: %s", "Assert failed");
753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9737);
754 fatal_exit(1);
755 }
756 var2 = NEW_nit__AMidStringExpr(&type_nit__AMidStringExpr);
757 {
758 nit__parser_prod___AMidStringExpr___init_amidstringexpr(var2, var_tmidstringnode2); /* Direct call parser_prod#AMidStringExpr#init_amidstringexpr on <var2:AMidStringExpr>*/
759 }
760 var_pexprnode1 = var2;
761 var_node_list = var_pexprnode1;
762 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction406> */
763 {
764 var4 = nit___nit__Parser___go_to(var_p, var3);
765 }
766 {
767 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
768 }
769 RET_LABEL:;
770 }
771 /* method parser#ReduceAction407#action for (self: ReduceAction407, Parser) */
772 void nit__parser___nit__parser__ReduceAction407___nit__parser_work__ReduceAction__action(val* self, val* p0) {
773 val* var_p /* var p: Parser */;
774 val* var_node_list /* var node_list: nullable Object */;
775 val* var /* : nullable Object */;
776 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
777 val* var_tendstringnode2 /* var tendstringnode2: nullable Object */;
778 short int var1 /* : Bool */;
779 int cltype;
780 int idtype;
781 val* var2 /* : AEndStringExpr */;
782 val* var_pexprnode1 /* var pexprnode1: nullable AEndStringExpr */;
783 long var3 /* : Int */;
784 long var4 /* : Int */;
785 var_p = p0;
786 var_node_list = ((val*)NULL);
787 {
788 var = nit___nit__Parser___pop(var_p);
789 }
790 var_nodearraylist1 = var;
791 var_tendstringnode2 = var_nodearraylist1;
792 /* <var_tendstringnode2:nullable Object> isa nullable TEndString */
793 cltype = type_nullable__nit__TEndString.color;
794 idtype = type_nullable__nit__TEndString.id;
795 if(var_tendstringnode2 == NULL) {
796 var1 = 1;
797 } else {
798 if(cltype >= (((long)var_tendstringnode2&3)?type_info[((long)var_tendstringnode2&3)]:var_tendstringnode2->type)->table_size) {
799 var1 = 0;
800 } else {
801 var1 = (((long)var_tendstringnode2&3)?type_info[((long)var_tendstringnode2&3)]:var_tendstringnode2->type)->type_table[cltype] == idtype;
802 }
803 }
804 if (unlikely(!var1)) {
805 PRINT_ERROR("Runtime error: %s", "Assert failed");
806 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9752);
807 fatal_exit(1);
808 }
809 var2 = NEW_nit__AEndStringExpr(&type_nit__AEndStringExpr);
810 {
811 nit__parser_prod___AEndStringExpr___init_aendstringexpr(var2, var_tendstringnode2); /* Direct call parser_prod#AEndStringExpr#init_aendstringexpr on <var2:AEndStringExpr>*/
812 }
813 var_pexprnode1 = var2;
814 var_node_list = var_pexprnode1;
815 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction407> */
816 {
817 var4 = nit___nit__Parser___go_to(var_p, var3);
818 }
819 {
820 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
821 }
822 RET_LABEL:;
823 }
824 /* method parser#ReduceAction408#action for (self: ReduceAction408, Parser) */
825 void nit__parser___nit__parser__ReduceAction408___nit__parser_work__ReduceAction__action(val* self, val* p0) {
826 val* var_p /* var p: Parser */;
827 val* var_node_list /* var node_list: nullable Object */;
828 val* var /* : nullable Object */;
829 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
830 val* var1 /* : nullable Object */;
831 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
832 val* var2 /* : Array[Object] */;
833 val* var_listnode6 /* var listnode6: Array[Object] */;
834 val* var_tatnode3 /* var tatnode3: nullable Object */;
835 short int var3 /* : Bool */;
836 int cltype;
837 int idtype;
838 val* var_pannotationnode5 /* var pannotationnode5: nullable Object */;
839 short int var4 /* : Bool */;
840 int cltype5;
841 int idtype6;
842 short int var7 /* : Bool */;
843 short int var8 /* : Bool */;
844 val* var_other /* var other: nullable Object */;
845 short int var10 /* : Bool */;
846 short int var11 /* : Bool */;
847 val* var12 /* : AAnnotations */;
848 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
849 long var13 /* : Int */;
850 long var14 /* : Int */;
851 var_p = p0;
852 var_node_list = ((val*)NULL);
853 {
854 var = nit___nit__Parser___pop(var_p);
855 }
856 var_nodearraylist2 = var;
857 {
858 var1 = nit___nit__Parser___pop(var_p);
859 }
860 var_nodearraylist1 = var1;
861 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
862 {
863 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
864 }
865 var_listnode6 = var2;
866 var_tatnode3 = var_nodearraylist1;
867 /* <var_tatnode3:nullable Object> isa nullable TAt */
868 cltype = type_nullable__nit__TAt.color;
869 idtype = type_nullable__nit__TAt.id;
870 if(var_tatnode3 == NULL) {
871 var3 = 1;
872 } else {
873 if(cltype >= (((long)var_tatnode3&3)?type_info[((long)var_tatnode3&3)]:var_tatnode3->type)->table_size) {
874 var3 = 0;
875 } else {
876 var3 = (((long)var_tatnode3&3)?type_info[((long)var_tatnode3&3)]:var_tatnode3->type)->type_table[cltype] == idtype;
877 }
878 }
879 if (unlikely(!var3)) {
880 PRINT_ERROR("Runtime error: %s", "Assert failed");
881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9769);
882 fatal_exit(1);
883 }
884 var_pannotationnode5 = var_nodearraylist2;
885 /* <var_pannotationnode5:nullable Object> isa nullable AAnnotation */
886 cltype5 = type_nullable__nit__AAnnotation.color;
887 idtype6 = type_nullable__nit__AAnnotation.id;
888 if(var_pannotationnode5 == NULL) {
889 var4 = 1;
890 } else {
891 if(cltype5 >= (((long)var_pannotationnode5&3)?type_info[((long)var_pannotationnode5&3)]:var_pannotationnode5->type)->table_size) {
892 var4 = 0;
893 } else {
894 var4 = (((long)var_pannotationnode5&3)?type_info[((long)var_pannotationnode5&3)]:var_pannotationnode5->type)->type_table[cltype5] == idtype6;
895 }
896 }
897 if (unlikely(!var4)) {
898 PRINT_ERROR("Runtime error: %s", "Assert failed");
899 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9771);
900 fatal_exit(1);
901 }
902 if (var_pannotationnode5 == NULL) {
903 var7 = 0; /* is null */
904 } else {
905 var7 = 1; /* arg is null and recv is not */
906 }
907 if (0) {
908 { /* Inline kernel#Object#!= (var_pannotationnode5,((val*)NULL)) on <var_pannotationnode5:nullable Object(nullable AAnnotation)> */
909 var_other = ((val*)NULL);
910 {
911 var10 = ((short int(*)(val* self, val* p0))(var_pannotationnode5->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pannotationnode5, var_other); /* == on <var_pannotationnode5:nullable AAnnotation(AAnnotation)>*/
912 }
913 var11 = !var10;
914 var8 = var11;
915 goto RET_LABEL9;
916 RET_LABEL9:(void)0;
917 }
918 var7 = var8;
919 }
920 if (var7){
921 {
922 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode6, var_pannotationnode5); /* Direct call array#Array#add on <var_listnode6:Array[Object]>*/
923 }
924 } else {
925 }
926 var12 = NEW_nit__AAnnotations(&type_nit__AAnnotations);
927 {
928 nit__parser_prod___AAnnotations___init_aannotations(var12, ((val*)NULL), var_tatnode3, ((val*)NULL), var_listnode6, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAnnotations#init_aannotations on <var12:AAnnotations>*/
929 }
930 var_pannotationsnode1 = var12;
931 var_node_list = var_pannotationsnode1;
932 var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction408> */
933 {
934 var14 = nit___nit__Parser___go_to(var_p, var13);
935 }
936 {
937 nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
938 }
939 RET_LABEL:;
940 }
941 /* method parser#ReduceAction409#action for (self: ReduceAction409, Parser) */
942 void nit__parser___nit__parser__ReduceAction409___nit__parser_work__ReduceAction__action(val* self, val* p0) {
943 val* var_p /* var p: Parser */;
944 val* var_node_list /* var node_list: nullable Object */;
945 val* var /* : nullable Object */;
946 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
947 val* var1 /* : nullable Object */;
948 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
949 val* var2 /* : nullable Object */;
950 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
951 val* var3 /* : nullable Object */;
952 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
953 val* var4 /* : nullable Object */;
954 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
955 val* var5 /* : nullable Object */;
956 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
957 val* var6 /* : Array[Object] */;
958 val* var_listnode6 /* var listnode6: Array[Object] */;
959 val* var_tatnode3 /* var tatnode3: nullable Object */;
960 short int var7 /* : Bool */;
961 int cltype;
962 int idtype;
963 val* var_toparnode4 /* var toparnode4: nullable Object */;
964 short int var8 /* : Bool */;
965 int cltype9;
966 int idtype10;
967 val* var_listnode5 /* var listnode5: nullable Object */;
968 short int var11 /* : Bool */;
969 int cltype12;
970 int idtype13;
971 val* var14 /* : Array[Object] */;
972 val* var_tcparnode7 /* var tcparnode7: nullable Object */;
973 short int var15 /* : Bool */;
974 int cltype16;
975 int idtype17;
976 val* var18 /* : AAnnotations */;
977 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
978 long var19 /* : Int */;
979 long var20 /* : Int */;
980 var_p = p0;
981 var_node_list = ((val*)NULL);
982 {
983 var = nit___nit__Parser___pop(var_p);
984 }
985 var_nodearraylist6 = var;
986 {
987 var1 = nit___nit__Parser___pop(var_p);
988 }
989 var_nodearraylist5 = var1;
990 {
991 var2 = nit___nit__Parser___pop(var_p);
992 }
993 var_nodearraylist4 = var2;
994 {
995 var3 = nit___nit__Parser___pop(var_p);
996 }
997 var_nodearraylist3 = var3;
998 {
999 var4 = nit___nit__Parser___pop(var_p);
1000 }
1001 var_nodearraylist2 = var4;
1002 {
1003 var5 = nit___nit__Parser___pop(var_p);
1004 }
1005 var_nodearraylist1 = var5;
1006 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
1007 {
1008 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
1009 }
1010 var_listnode6 = var6;
1011 var_tatnode3 = var_nodearraylist1;
1012 /* <var_tatnode3:nullable Object> isa nullable TAt */
1013 cltype = type_nullable__nit__TAt.color;
1014 idtype = type_nullable__nit__TAt.id;
1015 if(var_tatnode3 == NULL) {
1016 var7 = 1;
1017 } else {
1018 if(cltype >= (((long)var_tatnode3&3)?type_info[((long)var_tatnode3&3)]:var_tatnode3->type)->table_size) {
1019 var7 = 0;
1020 } else {
1021 var7 = (((long)var_tatnode3&3)?type_info[((long)var_tatnode3&3)]:var_tatnode3->type)->type_table[cltype] == idtype;
1022 }
1023 }
1024 if (unlikely(!var7)) {
1025 PRINT_ERROR("Runtime error: %s", "Assert failed");
1026 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9800);
1027 fatal_exit(1);
1028 }
1029 var_toparnode4 = var_nodearraylist2;
1030 /* <var_toparnode4:nullable Object> isa nullable TOpar */
1031 cltype9 = type_nullable__nit__TOpar.color;
1032 idtype10 = type_nullable__nit__TOpar.id;
1033 if(var_toparnode4 == NULL) {
1034 var8 = 1;
1035 } else {
1036 if(cltype9 >= (((long)var_toparnode4&3)?type_info[((long)var_toparnode4&3)]:var_toparnode4->type)->table_size) {
1037 var8 = 0;
1038 } else {
1039 var8 = (((long)var_toparnode4&3)?type_info[((long)var_toparnode4&3)]:var_toparnode4->type)->type_table[cltype9] == idtype10;
1040 }
1041 }
1042 if (unlikely(!var8)) {
1043 PRINT_ERROR("Runtime error: %s", "Assert failed");
1044 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9802);
1045 fatal_exit(1);
1046 }
1047 var_listnode5 = var_nodearraylist4;
1048 /* <var_listnode5:nullable Object> isa Array[Object] */
1049 cltype12 = type_standard__Array__standard__Object.color;
1050 idtype13 = type_standard__Array__standard__Object.id;
1051 if(var_listnode5 == NULL) {
1052 var11 = 0;
1053 } else {
1054 if(cltype12 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1055 var11 = 0;
1056 } else {
1057 var11 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype12] == idtype13;
1058 }
1059 }
1060 if (unlikely(!var11)) {
1061 PRINT_ERROR("Runtime error: %s", "Assert failed");
1062 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9804);
1063 fatal_exit(1);
1064 }
1065 {
1066 var14 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1067 }
1068 var_listnode6 = var14;
1069 var_tcparnode7 = var_nodearraylist6;
1070 /* <var_tcparnode7:nullable Object> isa nullable TCpar */
1071 cltype16 = type_nullable__nit__TCpar.color;
1072 idtype17 = type_nullable__nit__TCpar.id;
1073 if(var_tcparnode7 == NULL) {
1074 var15 = 1;
1075 } else {
1076 if(cltype16 >= (((long)var_tcparnode7&3)?type_info[((long)var_tcparnode7&3)]:var_tcparnode7->type)->table_size) {
1077 var15 = 0;
1078 } else {
1079 var15 = (((long)var_tcparnode7&3)?type_info[((long)var_tcparnode7&3)]:var_tcparnode7->type)->type_table[cltype16] == idtype17;
1080 }
1081 }
1082 if (unlikely(!var15)) {
1083 PRINT_ERROR("Runtime error: %s", "Assert failed");
1084 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9807);
1085 fatal_exit(1);
1086 }
1087 var18 = NEW_nit__AAnnotations(&type_nit__AAnnotations);
1088 {
1089 nit__parser_prod___AAnnotations___init_aannotations(var18, ((val*)NULL), var_tatnode3, var_toparnode4, var_listnode6, var_tcparnode7, ((val*)NULL)); /* Direct call parser_prod#AAnnotations#init_aannotations on <var18:AAnnotations>*/
1090 }
1091 var_pannotationsnode1 = var18;
1092 var_node_list = var_pannotationsnode1;
1093 var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction409> */
1094 {
1095 var20 = nit___nit__Parser___go_to(var_p, var19);
1096 }
1097 {
1098 nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1099 }
1100 RET_LABEL:;
1101 }
1102 /* method parser#ReduceAction410#action for (self: ReduceAction410, Parser) */
1103 void nit__parser___nit__parser__ReduceAction410___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1104 val* var_p /* var p: Parser */;
1105 val* var_node_list /* var node_list: nullable Object */;
1106 val* var /* : nullable Object */;
1107 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1108 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
1109 long var1 /* : Int */;
1110 long var2 /* : Int */;
1111 var_p = p0;
1112 var_node_list = ((val*)NULL);
1113 {
1114 var = nit___nit__Parser___pop(var_p);
1115 }
1116 var_nodearraylist1 = var;
1117 var_pannotationsnode1 = var_nodearraylist1;
1118 var_node_list = var_pannotationsnode1;
1119 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction410> */
1120 {
1121 var2 = nit___nit__Parser___go_to(var_p, var1);
1122 }
1123 {
1124 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1125 }
1126 RET_LABEL:;
1127 }
1128 /* method parser#ReduceAction412#action for (self: ReduceAction412, Parser) */
1129 void nit__parser___nit__parser__ReduceAction412___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1130 val* var_p /* var p: Parser */;
1131 val* var_node_list /* var node_list: nullable Object */;
1132 val* var /* : nullable Object */;
1133 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1134 val* var1 /* : nullable Object */;
1135 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1136 val* var2 /* : nullable Object */;
1137 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1138 val* var3 /* : nullable Object */;
1139 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1140 val* var4 /* : Array[Object] */;
1141 val* var_listnode7 /* var listnode7: Array[Object] */;
1142 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1143 short int var5 /* : Bool */;
1144 int cltype;
1145 int idtype;
1146 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1147 short int var6 /* : Bool */;
1148 int cltype7;
1149 int idtype8;
1150 val* var_patidnode5 /* var patidnode5: nullable Object */;
1151 short int var9 /* : Bool */;
1152 int cltype10;
1153 int idtype11;
1154 val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */;
1155 short int var12 /* : Bool */;
1156 int cltype13;
1157 int idtype14;
1158 val* var15 /* : AAnnotation */;
1159 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
1160 long var16 /* : Int */;
1161 long var17 /* : Int */;
1162 var_p = p0;
1163 var_node_list = ((val*)NULL);
1164 {
1165 var = nit___nit__Parser___pop(var_p);
1166 }
1167 var_nodearraylist4 = var;
1168 {
1169 var1 = nit___nit__Parser___pop(var_p);
1170 }
1171 var_nodearraylist3 = var1;
1172 {
1173 var2 = nit___nit__Parser___pop(var_p);
1174 }
1175 var_nodearraylist2 = var2;
1176 {
1177 var3 = nit___nit__Parser___pop(var_p);
1178 }
1179 var_nodearraylist1 = var3;
1180 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
1181 {
1182 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
1183 }
1184 var_listnode7 = var4;
1185 var_tkwredefnode3 = var_nodearraylist1;
1186 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1187 cltype = type_nullable__nit__TKwredef.color;
1188 idtype = type_nullable__nit__TKwredef.id;
1189 if(var_tkwredefnode3 == NULL) {
1190 var5 = 1;
1191 } else {
1192 if(cltype >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
1193 var5 = 0;
1194 } else {
1195 var5 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype] == idtype;
1196 }
1197 }
1198 if (unlikely(!var5)) {
1199 PRINT_ERROR("Runtime error: %s", "Assert failed");
1200 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9842);
1201 fatal_exit(1);
1202 }
1203 var_pvisibilitynode4 = var_nodearraylist2;
1204 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1205 cltype7 = type_nullable__nit__AVisibility.color;
1206 idtype8 = type_nullable__nit__AVisibility.id;
1207 if(var_pvisibilitynode4 == NULL) {
1208 var6 = 1;
1209 } else {
1210 if(cltype7 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
1211 var6 = 0;
1212 } else {
1213 var6 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype7] == idtype8;
1214 }
1215 }
1216 if (unlikely(!var6)) {
1217 PRINT_ERROR("Runtime error: %s", "Assert failed");
1218 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9844);
1219 fatal_exit(1);
1220 }
1221 var_patidnode5 = var_nodearraylist3;
1222 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1223 cltype10 = type_nullable__nit__AAtid.color;
1224 idtype11 = type_nullable__nit__AAtid.id;
1225 if(var_patidnode5 == NULL) {
1226 var9 = 1;
1227 } else {
1228 if(cltype10 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1229 var9 = 0;
1230 } else {
1231 var9 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype10] == idtype11;
1232 }
1233 }
1234 if (unlikely(!var9)) {
1235 PRINT_ERROR("Runtime error: %s", "Assert failed");
1236 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9846);
1237 fatal_exit(1);
1238 }
1239 var_pannotationsnode9 = var_nodearraylist4;
1240 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
1241 cltype13 = type_nullable__nit__AAnnotations.color;
1242 idtype14 = type_nullable__nit__AAnnotations.id;
1243 if(var_pannotationsnode9 == NULL) {
1244 var12 = 1;
1245 } else {
1246 if(cltype13 >= (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->table_size) {
1247 var12 = 0;
1248 } else {
1249 var12 = (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->type_table[cltype13] == idtype14;
1250 }
1251 }
1252 if (unlikely(!var12)) {
1253 PRINT_ERROR("Runtime error: %s", "Assert failed");
1254 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9848);
1255 fatal_exit(1);
1256 }
1257 var15 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
1258 {
1259 nit__parser_prod___AAnnotation___init_aannotation(var15, ((val*)NULL), var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), var_pannotationsnode9); /* Direct call parser_prod#AAnnotation#init_aannotation on <var15:AAnnotation>*/
1260 }
1261 var_pannotationnode1 = var15;
1262 var_node_list = var_pannotationnode1;
1263 var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction412> */
1264 {
1265 var17 = nit___nit__Parser___go_to(var_p, var16);
1266 }
1267 {
1268 nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1269 }
1270 RET_LABEL:;
1271 }
1272 /* method parser#ReduceAction413#action for (self: ReduceAction413, Parser) */
1273 void nit__parser___nit__parser__ReduceAction413___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1274 val* var_p /* var p: Parser */;
1275 val* var_node_list /* var node_list: nullable Object */;
1276 val* var /* : nullable Object */;
1277 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1278 val* var1 /* : nullable Object */;
1279 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1280 val* var2 /* : nullable Object */;
1281 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1282 val* var3 /* : nullable Object */;
1283 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1284 val* var4 /* : nullable Object */;
1285 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1286 val* var5 /* : nullable Object */;
1287 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1288 val* var6 /* : nullable Object */;
1289 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1290 val* var7 /* : nullable Object */;
1291 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1292 val* var8 /* : nullable Object */;
1293 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1294 val* var9 /* : Array[Object] */;
1295 val* var_listnode8 /* var listnode8: Array[Object] */;
1296 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1297 short int var10 /* : Bool */;
1298 int cltype;
1299 int idtype;
1300 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1301 short int var11 /* : Bool */;
1302 int cltype12;
1303 int idtype13;
1304 val* var_patidnode5 /* var patidnode5: nullable Object */;
1305 short int var14 /* : Bool */;
1306 int cltype15;
1307 int idtype16;
1308 val* var_toparnode6 /* var toparnode6: nullable Object */;
1309 short int var17 /* : Bool */;
1310 int cltype18;
1311 int idtype19;
1312 val* var_listnode7 /* var listnode7: nullable Object */;
1313 short int var20 /* : Bool */;
1314 int cltype21;
1315 int idtype22;
1316 val* var23 /* : Array[Object] */;
1317 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
1318 short int var24 /* : Bool */;
1319 int cltype25;
1320 int idtype26;
1321 val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */;
1322 short int var27 /* : Bool */;
1323 int cltype28;
1324 int idtype29;
1325 val* var30 /* : AAnnotation */;
1326 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
1327 long var31 /* : Int */;
1328 long var32 /* : Int */;
1329 var_p = p0;
1330 var_node_list = ((val*)NULL);
1331 {
1332 var = nit___nit__Parser___pop(var_p);
1333 }
1334 var_nodearraylist9 = var;
1335 {
1336 var1 = nit___nit__Parser___pop(var_p);
1337 }
1338 var_nodearraylist8 = var1;
1339 {
1340 var2 = nit___nit__Parser___pop(var_p);
1341 }
1342 var_nodearraylist7 = var2;
1343 {
1344 var3 = nit___nit__Parser___pop(var_p);
1345 }
1346 var_nodearraylist6 = var3;
1347 {
1348 var4 = nit___nit__Parser___pop(var_p);
1349 }
1350 var_nodearraylist5 = var4;
1351 {
1352 var5 = nit___nit__Parser___pop(var_p);
1353 }
1354 var_nodearraylist4 = var5;
1355 {
1356 var6 = nit___nit__Parser___pop(var_p);
1357 }
1358 var_nodearraylist3 = var6;
1359 {
1360 var7 = nit___nit__Parser___pop(var_p);
1361 }
1362 var_nodearraylist2 = var7;
1363 {
1364 var8 = nit___nit__Parser___pop(var_p);
1365 }
1366 var_nodearraylist1 = var8;
1367 var9 = NEW_standard__Array(&type_standard__Array__standard__Object);
1368 {
1369 standard___standard__Array___standard__kernel__Object__init(var9); /* Direct call array#Array#init on <var9:Array[Object]>*/
1370 }
1371 var_listnode8 = var9;
1372 var_tkwredefnode3 = var_nodearraylist1;
1373 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1374 cltype = type_nullable__nit__TKwredef.color;
1375 idtype = type_nullable__nit__TKwredef.id;
1376 if(var_tkwredefnode3 == NULL) {
1377 var10 = 1;
1378 } else {
1379 if(cltype >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
1380 var10 = 0;
1381 } else {
1382 var10 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype] == idtype;
1383 }
1384 }
1385 if (unlikely(!var10)) {
1386 PRINT_ERROR("Runtime error: %s", "Assert failed");
1387 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9879);
1388 fatal_exit(1);
1389 }
1390 var_pvisibilitynode4 = var_nodearraylist2;
1391 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1392 cltype12 = type_nullable__nit__AVisibility.color;
1393 idtype13 = type_nullable__nit__AVisibility.id;
1394 if(var_pvisibilitynode4 == NULL) {
1395 var11 = 1;
1396 } else {
1397 if(cltype12 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
1398 var11 = 0;
1399 } else {
1400 var11 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype12] == idtype13;
1401 }
1402 }
1403 if (unlikely(!var11)) {
1404 PRINT_ERROR("Runtime error: %s", "Assert failed");
1405 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9881);
1406 fatal_exit(1);
1407 }
1408 var_patidnode5 = var_nodearraylist3;
1409 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1410 cltype15 = type_nullable__nit__AAtid.color;
1411 idtype16 = type_nullable__nit__AAtid.id;
1412 if(var_patidnode5 == NULL) {
1413 var14 = 1;
1414 } else {
1415 if(cltype15 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1416 var14 = 0;
1417 } else {
1418 var14 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype15] == idtype16;
1419 }
1420 }
1421 if (unlikely(!var14)) {
1422 PRINT_ERROR("Runtime error: %s", "Assert failed");
1423 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9883);
1424 fatal_exit(1);
1425 }
1426 var_toparnode6 = var_nodearraylist4;
1427 /* <var_toparnode6:nullable Object> isa nullable TOpar */
1428 cltype18 = type_nullable__nit__TOpar.color;
1429 idtype19 = type_nullable__nit__TOpar.id;
1430 if(var_toparnode6 == NULL) {
1431 var17 = 1;
1432 } else {
1433 if(cltype18 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
1434 var17 = 0;
1435 } else {
1436 var17 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype18] == idtype19;
1437 }
1438 }
1439 if (unlikely(!var17)) {
1440 PRINT_ERROR("Runtime error: %s", "Assert failed");
1441 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9885);
1442 fatal_exit(1);
1443 }
1444 var_listnode7 = var_nodearraylist6;
1445 /* <var_listnode7:nullable Object> isa Array[Object] */
1446 cltype21 = type_standard__Array__standard__Object.color;
1447 idtype22 = type_standard__Array__standard__Object.id;
1448 if(var_listnode7 == NULL) {
1449 var20 = 0;
1450 } else {
1451 if(cltype21 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
1452 var20 = 0;
1453 } else {
1454 var20 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype21] == idtype22;
1455 }
1456 }
1457 if (unlikely(!var20)) {
1458 PRINT_ERROR("Runtime error: %s", "Assert failed");
1459 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9887);
1460 fatal_exit(1);
1461 }
1462 {
1463 var23 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
1464 }
1465 var_listnode8 = var23;
1466 var_tcparnode9 = var_nodearraylist8;
1467 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
1468 cltype25 = type_nullable__nit__TCpar.color;
1469 idtype26 = type_nullable__nit__TCpar.id;
1470 if(var_tcparnode9 == NULL) {
1471 var24 = 1;
1472 } else {
1473 if(cltype25 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
1474 var24 = 0;
1475 } else {
1476 var24 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype25] == idtype26;
1477 }
1478 }
1479 if (unlikely(!var24)) {
1480 PRINT_ERROR("Runtime error: %s", "Assert failed");
1481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9890);
1482 fatal_exit(1);
1483 }
1484 var_pannotationsnode10 = var_nodearraylist9;
1485 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
1486 cltype28 = type_nullable__nit__AAnnotations.color;
1487 idtype29 = type_nullable__nit__AAnnotations.id;
1488 if(var_pannotationsnode10 == NULL) {
1489 var27 = 1;
1490 } else {
1491 if(cltype28 >= (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->table_size) {
1492 var27 = 0;
1493 } else {
1494 var27 = (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->type_table[cltype28] == idtype29;
1495 }
1496 }
1497 if (unlikely(!var27)) {
1498 PRINT_ERROR("Runtime error: %s", "Assert failed");
1499 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9892);
1500 fatal_exit(1);
1501 }
1502 var30 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
1503 {
1504 nit__parser_prod___AAnnotation___init_aannotation(var30, ((val*)NULL), var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, var_pannotationsnode10); /* Direct call parser_prod#AAnnotation#init_aannotation on <var30:AAnnotation>*/
1505 }
1506 var_pannotationnode1 = var30;
1507 var_node_list = var_pannotationnode1;
1508 var31 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction413> */
1509 {
1510 var32 = nit___nit__Parser___go_to(var_p, var31);
1511 }
1512 {
1513 nit___nit__Parser___push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1514 }
1515 RET_LABEL:;
1516 }
1517 /* method parser#ReduceAction414#action for (self: ReduceAction414, Parser) */
1518 void nit__parser___nit__parser__ReduceAction414___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1519 val* var_p /* var p: Parser */;
1520 val* var_node_list /* var node_list: nullable Object */;
1521 val* var /* : nullable Object */;
1522 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1523 val* var1 /* : Array[Object] */;
1524 val* var_listnode2 /* var listnode2: Array[Object] */;
1525 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
1526 short int var2 /* : Bool */;
1527 short int var3 /* : Bool */;
1528 long var4 /* : Int */;
1529 long var5 /* : Int */;
1530 var_p = p0;
1531 var_node_list = ((val*)NULL);
1532 {
1533 var = nit___nit__Parser___pop(var_p);
1534 }
1535 var_nodearraylist1 = var;
1536 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
1537 {
1538 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
1539 }
1540 var_listnode2 = var1;
1541 var_pannotationnode1 = var_nodearraylist1;
1542 if (var_pannotationnode1 == NULL) {
1543 var2 = 0; /* is null */
1544 } else {
1545 var2 = 1; /* arg is null and recv is not */
1546 }
1547 if (0) {
1548 var3 = ((short int(*)(val* self, val* p0))((((long)var_pannotationnode1&3)?class_info[((long)var_pannotationnode1&3)]:var_pannotationnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pannotationnode1, ((val*)NULL)); /* != on <var_pannotationnode1:nullable Object>*/
1549 var2 = var3;
1550 }
1551 if (var2){
1552 {
1553 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pannotationnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
1554 }
1555 } else {
1556 }
1557 var_node_list = var_listnode2;
1558 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction414> */
1559 {
1560 var5 = nit___nit__Parser___go_to(var_p, var4);
1561 }
1562 {
1563 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1564 }
1565 RET_LABEL:;
1566 }
1567 /* method parser#ReduceAction415#action for (self: ReduceAction415, Parser) */
1568 void nit__parser___nit__parser__ReduceAction415___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1569 val* var_p /* var p: Parser */;
1570 val* var_node_list /* var node_list: nullable Object */;
1571 val* var /* : nullable Object */;
1572 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1573 val* var1 /* : nullable Object */;
1574 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1575 val* var2 /* : Array[Object] */;
1576 val* var_listnode3 /* var listnode3: Array[Object] */;
1577 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
1578 val* var_listnode2 /* var listnode2: nullable Object */;
1579 short int var3 /* : Bool */;
1580 int cltype;
1581 int idtype;
1582 short int var4 /* : Bool */;
1583 short int var5 /* : Bool */;
1584 val* var6 /* : Array[Object] */;
1585 long var7 /* : Int */;
1586 long var8 /* : Int */;
1587 var_p = p0;
1588 var_node_list = ((val*)NULL);
1589 {
1590 var = nit___nit__Parser___pop(var_p);
1591 }
1592 var_nodearraylist2 = var;
1593 {
1594 var1 = nit___nit__Parser___pop(var_p);
1595 }
1596 var_nodearraylist1 = var1;
1597 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
1598 {
1599 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
1600 }
1601 var_listnode3 = var2;
1602 var_pannotationnode1 = var_nodearraylist1;
1603 var_listnode2 = var_nodearraylist2;
1604 /* <var_listnode2:nullable Object> isa Array[Object] */
1605 cltype = type_standard__Array__standard__Object.color;
1606 idtype = type_standard__Array__standard__Object.id;
1607 if(var_listnode2 == NULL) {
1608 var3 = 0;
1609 } else {
1610 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
1611 var3 = 0;
1612 } else {
1613 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
1614 }
1615 }
1616 if (unlikely(!var3)) {
1617 PRINT_ERROR("Runtime error: %s", "Assert failed");
1618 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9932);
1619 fatal_exit(1);
1620 }
1621 if (var_pannotationnode1 == NULL) {
1622 var4 = 0; /* is null */
1623 } else {
1624 var4 = 1; /* arg is null and recv is not */
1625 }
1626 if (0) {
1627 var5 = ((short int(*)(val* self, val* p0))((((long)var_pannotationnode1&3)?class_info[((long)var_pannotationnode1&3)]:var_pannotationnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pannotationnode1, ((val*)NULL)); /* != on <var_pannotationnode1:nullable Object>*/
1628 var4 = var5;
1629 }
1630 if (var4){
1631 {
1632 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pannotationnode1); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
1633 }
1634 } else {
1635 }
1636 {
1637 var6 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
1638 }
1639 var_listnode3 = var6;
1640 var_node_list = var_listnode3;
1641 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction415> */
1642 {
1643 var8 = nit___nit__Parser___go_to(var_p, var7);
1644 }
1645 {
1646 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1647 }
1648 RET_LABEL:;
1649 }
1650 /* method parser#ReduceAction418#action for (self: ReduceAction418, Parser) */
1651 void nit__parser___nit__parser__ReduceAction418___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1652 val* var_p /* var p: Parser */;
1653 val* var_node_list /* var node_list: nullable Object */;
1654 val* var /* : nullable Object */;
1655 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1656 val* var1 /* : nullable Object */;
1657 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1658 val* var2 /* : nullable Object */;
1659 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1660 val* var3 /* : nullable Object */;
1661 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1662 val* var4 /* : Array[Object] */;
1663 val* var_listnode8 /* var listnode8: Array[Object] */;
1664 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1665 short int var5 /* : Bool */;
1666 int cltype;
1667 int idtype;
1668 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1669 short int var6 /* : Bool */;
1670 int cltype7;
1671 int idtype8;
1672 val* var_patidnode5 /* var patidnode5: nullable Object */;
1673 short int var9 /* : Bool */;
1674 int cltype10;
1675 int idtype11;
1676 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1677 short int var12 /* : Bool */;
1678 int cltype13;
1679 int idtype14;
1680 short int var15 /* : Bool */;
1681 short int var16 /* : Bool */;
1682 val* var_other /* var other: nullable Object */;
1683 short int var18 /* : Bool */;
1684 short int var19 /* : Bool */;
1685 val* var20 /* : AAnnotation */;
1686 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
1687 long var21 /* : Int */;
1688 long var22 /* : Int */;
1689 var_p = p0;
1690 var_node_list = ((val*)NULL);
1691 {
1692 var = nit___nit__Parser___pop(var_p);
1693 }
1694 var_nodearraylist4 = var;
1695 {
1696 var1 = nit___nit__Parser___pop(var_p);
1697 }
1698 var_nodearraylist3 = var1;
1699 {
1700 var2 = nit___nit__Parser___pop(var_p);
1701 }
1702 var_nodearraylist2 = var2;
1703 {
1704 var3 = nit___nit__Parser___pop(var_p);
1705 }
1706 var_nodearraylist1 = var3;
1707 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
1708 {
1709 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
1710 }
1711 var_listnode8 = var4;
1712 var_tkwredefnode3 = var_nodearraylist1;
1713 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1714 cltype = type_nullable__nit__TKwredef.color;
1715 idtype = type_nullable__nit__TKwredef.id;
1716 if(var_tkwredefnode3 == NULL) {
1717 var5 = 1;
1718 } else {
1719 if(cltype >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
1720 var5 = 0;
1721 } else {
1722 var5 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype] == idtype;
1723 }
1724 }
1725 if (unlikely(!var5)) {
1726 PRINT_ERROR("Runtime error: %s", "Assert failed");
1727 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9952);
1728 fatal_exit(1);
1729 }
1730 var_pvisibilitynode4 = var_nodearraylist2;
1731 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1732 cltype7 = type_nullable__nit__AVisibility.color;
1733 idtype8 = type_nullable__nit__AVisibility.id;
1734 if(var_pvisibilitynode4 == NULL) {
1735 var6 = 1;
1736 } else {
1737 if(cltype7 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
1738 var6 = 0;
1739 } else {
1740 var6 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype7] == idtype8;
1741 }
1742 }
1743 if (unlikely(!var6)) {
1744 PRINT_ERROR("Runtime error: %s", "Assert failed");
1745 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9954);
1746 fatal_exit(1);
1747 }
1748 var_patidnode5 = var_nodearraylist3;
1749 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1750 cltype10 = type_nullable__nit__AAtid.color;
1751 idtype11 = type_nullable__nit__AAtid.id;
1752 if(var_patidnode5 == NULL) {
1753 var9 = 1;
1754 } else {
1755 if(cltype10 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1756 var9 = 0;
1757 } else {
1758 var9 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype10] == idtype11;
1759 }
1760 }
1761 if (unlikely(!var9)) {
1762 PRINT_ERROR("Runtime error: %s", "Assert failed");
1763 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9956);
1764 fatal_exit(1);
1765 }
1766 var_pexprnode7 = var_nodearraylist4;
1767 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1768 cltype13 = type_nullable__nit__AExpr.color;
1769 idtype14 = type_nullable__nit__AExpr.id;
1770 if(var_pexprnode7 == NULL) {
1771 var12 = 1;
1772 } else {
1773 if(cltype13 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
1774 var12 = 0;
1775 } else {
1776 var12 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype13] == idtype14;
1777 }
1778 }
1779 if (unlikely(!var12)) {
1780 PRINT_ERROR("Runtime error: %s", "Assert failed");
1781 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9958);
1782 fatal_exit(1);
1783 }
1784 if (var_pexprnode7 == NULL) {
1785 var15 = 0; /* is null */
1786 } else {
1787 var15 = 1; /* arg is null and recv is not */
1788 }
1789 if (0) {
1790 { /* Inline kernel#Object#!= (var_pexprnode7,((val*)NULL)) on <var_pexprnode7:nullable Object(nullable AExpr)> */
1791 var_other = ((val*)NULL);
1792 {
1793 var18 = ((short int(*)(val* self, val* p0))(var_pexprnode7->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode7, var_other); /* == on <var_pexprnode7:nullable AExpr(AExpr)>*/
1794 }
1795 var19 = !var18;
1796 var16 = var19;
1797 goto RET_LABEL17;
1798 RET_LABEL17:(void)0;
1799 }
1800 var15 = var16;
1801 }
1802 if (var15){
1803 {
1804 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode8, var_pexprnode7); /* Direct call array#Array#add on <var_listnode8:Array[Object]>*/
1805 }
1806 } else {
1807 }
1808 var20 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
1809 {
1810 nit__parser_prod___AAnnotation___init_aannotation(var20, ((val*)NULL), var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, ((val*)NULL), var_listnode8, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAnnotation#init_aannotation on <var20:AAnnotation>*/
1811 }
1812 var_pannotationnode1 = var20;
1813 var_node_list = var_pannotationnode1;
1814 var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction418> */
1815 {
1816 var22 = nit___nit__Parser___go_to(var_p, var21);
1817 }
1818 {
1819 nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1820 }
1821 RET_LABEL:;
1822 }
1823 /* method parser#ReduceAction420#action for (self: ReduceAction420, Parser) */
1824 void nit__parser___nit__parser__ReduceAction420___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1825 val* var_p /* var p: Parser */;
1826 val* var_node_list /* var node_list: nullable Object */;
1827 val* var /* : nullable Object */;
1828 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1829 val* var1 /* : nullable Object */;
1830 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1831 val* var2 /* : nullable Object */;
1832 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1833 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
1834 long var3 /* : Int */;
1835 long var4 /* : Int */;
1836 var_p = p0;
1837 var_node_list = ((val*)NULL);
1838 {
1839 var = nit___nit__Parser___pop(var_p);
1840 }
1841 var_nodearraylist3 = var;
1842 {
1843 var1 = nit___nit__Parser___pop(var_p);
1844 }
1845 var_nodearraylist2 = var1;
1846 {
1847 var2 = nit___nit__Parser___pop(var_p);
1848 }
1849 var_nodearraylist1 = var2;
1850 var_pannotationnode1 = var_nodearraylist3;
1851 var_node_list = var_pannotationnode1;
1852 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction420> */
1853 {
1854 var4 = nit___nit__Parser___go_to(var_p, var3);
1855 }
1856 {
1857 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1858 }
1859 RET_LABEL:;
1860 }
1861 /* method parser#ReduceAction421#action for (self: ReduceAction421, Parser) */
1862 void nit__parser___nit__parser__ReduceAction421___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1863 val* var_p /* var p: Parser */;
1864 val* var_node_list /* var node_list: nullable Object */;
1865 val* var /* : nullable Object */;
1866 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1867 val* var1 /* : nullable Object */;
1868 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1869 val* var2 /* : nullable Object */;
1870 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1871 val* var3 /* : nullable Object */;
1872 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1873 val* var4 /* : nullable Object */;
1874 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1875 val* var5 /* : Array[Object] */;
1876 val* var_listnode7 /* var listnode7: Array[Object] */;
1877 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1878 short int var6 /* : Bool */;
1879 int cltype;
1880 int idtype;
1881 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1882 short int var7 /* : Bool */;
1883 int cltype8;
1884 int idtype9;
1885 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1886 short int var10 /* : Bool */;
1887 int cltype11;
1888 int idtype12;
1889 val* var_patidnode5 /* var patidnode5: nullable Object */;
1890 short int var13 /* : Bool */;
1891 int cltype14;
1892 int idtype15;
1893 val* var16 /* : AAnnotation */;
1894 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
1895 long var17 /* : Int */;
1896 long var18 /* : Int */;
1897 var_p = p0;
1898 var_node_list = ((val*)NULL);
1899 {
1900 var = nit___nit__Parser___pop(var_p);
1901 }
1902 var_nodearraylist5 = var;
1903 {
1904 var1 = nit___nit__Parser___pop(var_p);
1905 }
1906 var_nodearraylist4 = var1;
1907 {
1908 var2 = nit___nit__Parser___pop(var_p);
1909 }
1910 var_nodearraylist3 = var2;
1911 {
1912 var3 = nit___nit__Parser___pop(var_p);
1913 }
1914 var_nodearraylist2 = var3;
1915 {
1916 var4 = nit___nit__Parser___pop(var_p);
1917 }
1918 var_nodearraylist1 = var4;
1919 var5 = NEW_standard__Array(&type_standard__Array__standard__Object);
1920 {
1921 standard___standard__Array___standard__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Object]>*/
1922 }
1923 var_listnode7 = var5;
1924 var_pdocnode2 = var_nodearraylist1;
1925 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1926 cltype = type_nullable__nit__ADoc.color;
1927 idtype = type_nullable__nit__ADoc.id;
1928 if(var_pdocnode2 == NULL) {
1929 var6 = 1;
1930 } else {
1931 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
1932 var6 = 0;
1933 } else {
1934 var6 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
1935 }
1936 }
1937 if (unlikely(!var6)) {
1938 PRINT_ERROR("Runtime error: %s", "Assert failed");
1939 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10001);
1940 fatal_exit(1);
1941 }
1942 var_tkwredefnode3 = var_nodearraylist2;
1943 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1944 cltype8 = type_nullable__nit__TKwredef.color;
1945 idtype9 = type_nullable__nit__TKwredef.id;
1946 if(var_tkwredefnode3 == NULL) {
1947 var7 = 1;
1948 } else {
1949 if(cltype8 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
1950 var7 = 0;
1951 } else {
1952 var7 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype8] == idtype9;
1953 }
1954 }
1955 if (unlikely(!var7)) {
1956 PRINT_ERROR("Runtime error: %s", "Assert failed");
1957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10003);
1958 fatal_exit(1);
1959 }
1960 var_pvisibilitynode4 = var_nodearraylist3;
1961 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1962 cltype11 = type_nullable__nit__AVisibility.color;
1963 idtype12 = type_nullable__nit__AVisibility.id;
1964 if(var_pvisibilitynode4 == NULL) {
1965 var10 = 1;
1966 } else {
1967 if(cltype11 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
1968 var10 = 0;
1969 } else {
1970 var10 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype11] == idtype12;
1971 }
1972 }
1973 if (unlikely(!var10)) {
1974 PRINT_ERROR("Runtime error: %s", "Assert failed");
1975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10005);
1976 fatal_exit(1);
1977 }
1978 var_patidnode5 = var_nodearraylist4;
1979 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1980 cltype14 = type_nullable__nit__AAtid.color;
1981 idtype15 = type_nullable__nit__AAtid.id;
1982 if(var_patidnode5 == NULL) {
1983 var13 = 1;
1984 } else {
1985 if(cltype14 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1986 var13 = 0;
1987 } else {
1988 var13 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype14] == idtype15;
1989 }
1990 }
1991 if (unlikely(!var13)) {
1992 PRINT_ERROR("Runtime error: %s", "Assert failed");
1993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10007);
1994 fatal_exit(1);
1995 }
1996 var16 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
1997 {
1998 nit__parser_prod___AAnnotation___init_aannotation(var16, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAnnotation#init_aannotation on <var16:AAnnotation>*/
1999 }
2000 var_pannotationnode1 = var16;
2001 var_node_list = var_pannotationnode1;
2002 var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction421> */
2003 {
2004 var18 = nit___nit__Parser___go_to(var_p, var17);
2005 }
2006 {
2007 nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2008 }
2009 RET_LABEL:;
2010 }
2011 /* method parser#ReduceAction422#action for (self: ReduceAction422, Parser) */
2012 void nit__parser___nit__parser__ReduceAction422___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2013 val* var_p /* var p: Parser */;
2014 val* var_node_list /* var node_list: nullable Object */;
2015 val* var /* : nullable Object */;
2016 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2017 val* var1 /* : nullable Object */;
2018 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2019 val* var2 /* : nullable Object */;
2020 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2021 val* var3 /* : nullable Object */;
2022 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2023 val* var4 /* : nullable Object */;
2024 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2025 val* var5 /* : nullable Object */;
2026 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2027 val* var6 /* : Array[Object] */;
2028 val* var_listnode7 /* var listnode7: Array[Object] */;
2029 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2030 short int var7 /* : Bool */;
2031 int cltype;
2032 int idtype;
2033 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2034 short int var8 /* : Bool */;
2035 int cltype9;
2036 int idtype10;
2037 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2038 short int var11 /* : Bool */;
2039 int cltype12;
2040 int idtype13;
2041 val* var_patidnode5 /* var patidnode5: nullable Object */;
2042 short int var14 /* : Bool */;
2043 int cltype15;
2044 int idtype16;
2045 val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */;
2046 short int var17 /* : Bool */;
2047 int cltype18;
2048 int idtype19;
2049 val* var20 /* : AAnnotation */;
2050 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
2051 long var21 /* : Int */;
2052 long var22 /* : Int */;
2053 var_p = p0;
2054 var_node_list = ((val*)NULL);
2055 {
2056 var = nit___nit__Parser___pop(var_p);
2057 }
2058 var_nodearraylist6 = var;
2059 {
2060 var1 = nit___nit__Parser___pop(var_p);
2061 }
2062 var_nodearraylist5 = var1;
2063 {
2064 var2 = nit___nit__Parser___pop(var_p);
2065 }
2066 var_nodearraylist4 = var2;
2067 {
2068 var3 = nit___nit__Parser___pop(var_p);
2069 }
2070 var_nodearraylist3 = var3;
2071 {
2072 var4 = nit___nit__Parser___pop(var_p);
2073 }
2074 var_nodearraylist2 = var4;
2075 {
2076 var5 = nit___nit__Parser___pop(var_p);
2077 }
2078 var_nodearraylist1 = var5;
2079 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
2080 {
2081 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
2082 }
2083 var_listnode7 = var6;
2084 var_pdocnode2 = var_nodearraylist1;
2085 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2086 cltype = type_nullable__nit__ADoc.color;
2087 idtype = type_nullable__nit__ADoc.id;
2088 if(var_pdocnode2 == NULL) {
2089 var7 = 1;
2090 } else {
2091 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
2092 var7 = 0;
2093 } else {
2094 var7 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
2095 }
2096 }
2097 if (unlikely(!var7)) {
2098 PRINT_ERROR("Runtime error: %s", "Assert failed");
2099 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10035);
2100 fatal_exit(1);
2101 }
2102 var_tkwredefnode3 = var_nodearraylist2;
2103 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2104 cltype9 = type_nullable__nit__TKwredef.color;
2105 idtype10 = type_nullable__nit__TKwredef.id;
2106 if(var_tkwredefnode3 == NULL) {
2107 var8 = 1;
2108 } else {
2109 if(cltype9 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
2110 var8 = 0;
2111 } else {
2112 var8 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype9] == idtype10;
2113 }
2114 }
2115 if (unlikely(!var8)) {
2116 PRINT_ERROR("Runtime error: %s", "Assert failed");
2117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10037);
2118 fatal_exit(1);
2119 }
2120 var_pvisibilitynode4 = var_nodearraylist3;
2121 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2122 cltype12 = type_nullable__nit__AVisibility.color;
2123 idtype13 = type_nullable__nit__AVisibility.id;
2124 if(var_pvisibilitynode4 == NULL) {
2125 var11 = 1;
2126 } else {
2127 if(cltype12 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
2128 var11 = 0;
2129 } else {
2130 var11 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype12] == idtype13;
2131 }
2132 }
2133 if (unlikely(!var11)) {
2134 PRINT_ERROR("Runtime error: %s", "Assert failed");
2135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10039);
2136 fatal_exit(1);
2137 }
2138 var_patidnode5 = var_nodearraylist4;
2139 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2140 cltype15 = type_nullable__nit__AAtid.color;
2141 idtype16 = type_nullable__nit__AAtid.id;
2142 if(var_patidnode5 == NULL) {
2143 var14 = 1;
2144 } else {
2145 if(cltype15 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
2146 var14 = 0;
2147 } else {
2148 var14 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype15] == idtype16;
2149 }
2150 }
2151 if (unlikely(!var14)) {
2152 PRINT_ERROR("Runtime error: %s", "Assert failed");
2153 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10041);
2154 fatal_exit(1);
2155 }
2156 var_pannotationsnode9 = var_nodearraylist5;
2157 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
2158 cltype18 = type_nullable__nit__AAnnotations.color;
2159 idtype19 = type_nullable__nit__AAnnotations.id;
2160 if(var_pannotationsnode9 == NULL) {
2161 var17 = 1;
2162 } else {
2163 if(cltype18 >= (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->table_size) {
2164 var17 = 0;
2165 } else {
2166 var17 = (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->type_table[cltype18] == idtype19;
2167 }
2168 }
2169 if (unlikely(!var17)) {
2170 PRINT_ERROR("Runtime error: %s", "Assert failed");
2171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10043);
2172 fatal_exit(1);
2173 }
2174 var20 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
2175 {
2176 nit__parser_prod___AAnnotation___init_aannotation(var20, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), var_pannotationsnode9); /* Direct call parser_prod#AAnnotation#init_aannotation on <var20:AAnnotation>*/
2177 }
2178 var_pannotationnode1 = var20;
2179 var_node_list = var_pannotationnode1;
2180 var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction422> */
2181 {
2182 var22 = nit___nit__Parser___go_to(var_p, var21);
2183 }
2184 {
2185 nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2186 }
2187 RET_LABEL:;
2188 }
2189 /* method parser#ReduceAction423#action for (self: ReduceAction423, Parser) */
2190 void nit__parser___nit__parser__ReduceAction423___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2191 val* var_p /* var p: Parser */;
2192 val* var_node_list /* var node_list: nullable Object */;
2193 val* var /* : nullable Object */;
2194 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2195 val* var1 /* : nullable Object */;
2196 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2197 val* var2 /* : nullable Object */;
2198 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2199 val* var3 /* : nullable Object */;
2200 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2201 val* var4 /* : nullable Object */;
2202 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2203 val* var5 /* : nullable Object */;
2204 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2205 val* var6 /* : nullable Object */;
2206 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2207 val* var7 /* : nullable Object */;
2208 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2209 val* var8 /* : nullable Object */;
2210 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2211 val* var9 /* : Array[Object] */;
2212 val* var_listnode8 /* var listnode8: Array[Object] */;
2213 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2214 short int var10 /* : Bool */;
2215 int cltype;
2216 int idtype;
2217 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2218 short int var11 /* : Bool */;
2219 int cltype12;
2220 int idtype13;
2221 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2222 short int var14 /* : Bool */;
2223 int cltype15;
2224 int idtype16;
2225 val* var_patidnode5 /* var patidnode5: nullable Object */;
2226 short int var17 /* : Bool */;
2227 int cltype18;
2228 int idtype19;
2229 val* var_toparnode6 /* var toparnode6: nullable Object */;
2230 short int var20 /* : Bool */;
2231 int cltype21;
2232 int idtype22;
2233 val* var_listnode7 /* var listnode7: nullable Object */;
2234 short int var23 /* : Bool */;
2235 int cltype24;
2236 int idtype25;
2237 val* var26 /* : Array[Object] */;
2238 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
2239 short int var27 /* : Bool */;
2240 int cltype28;
2241 int idtype29;
2242 val* var30 /* : AAnnotation */;
2243 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
2244 long var31 /* : Int */;
2245 long var32 /* : Int */;
2246 var_p = p0;
2247 var_node_list = ((val*)NULL);
2248 {
2249 var = nit___nit__Parser___pop(var_p);
2250 }
2251 var_nodearraylist9 = var;
2252 {
2253 var1 = nit___nit__Parser___pop(var_p);
2254 }
2255 var_nodearraylist8 = var1;
2256 {
2257 var2 = nit___nit__Parser___pop(var_p);
2258 }
2259 var_nodearraylist7 = var2;
2260 {
2261 var3 = nit___nit__Parser___pop(var_p);
2262 }
2263 var_nodearraylist6 = var3;
2264 {
2265 var4 = nit___nit__Parser___pop(var_p);
2266 }
2267 var_nodearraylist5 = var4;
2268 {
2269 var5 = nit___nit__Parser___pop(var_p);
2270 }
2271 var_nodearraylist4 = var5;
2272 {
2273 var6 = nit___nit__Parser___pop(var_p);
2274 }
2275 var_nodearraylist3 = var6;
2276 {
2277 var7 = nit___nit__Parser___pop(var_p);
2278 }
2279 var_nodearraylist2 = var7;
2280 {
2281 var8 = nit___nit__Parser___pop(var_p);
2282 }
2283 var_nodearraylist1 = var8;
2284 var9 = NEW_standard__Array(&type_standard__Array__standard__Object);
2285 {
2286 standard___standard__Array___standard__kernel__Object__init(var9); /* Direct call array#Array#init on <var9:Array[Object]>*/
2287 }
2288 var_listnode8 = var9;
2289 var_pdocnode2 = var_nodearraylist1;
2290 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2291 cltype = type_nullable__nit__ADoc.color;
2292 idtype = type_nullable__nit__ADoc.id;
2293 if(var_pdocnode2 == NULL) {
2294 var10 = 1;
2295 } else {
2296 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
2297 var10 = 0;
2298 } else {
2299 var10 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
2300 }
2301 }
2302 if (unlikely(!var10)) {
2303 PRINT_ERROR("Runtime error: %s", "Assert failed");
2304 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10074);
2305 fatal_exit(1);
2306 }
2307 var_tkwredefnode3 = var_nodearraylist2;
2308 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2309 cltype12 = type_nullable__nit__TKwredef.color;
2310 idtype13 = type_nullable__nit__TKwredef.id;
2311 if(var_tkwredefnode3 == NULL) {
2312 var11 = 1;
2313 } else {
2314 if(cltype12 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
2315 var11 = 0;
2316 } else {
2317 var11 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype12] == idtype13;
2318 }
2319 }
2320 if (unlikely(!var11)) {
2321 PRINT_ERROR("Runtime error: %s", "Assert failed");
2322 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10076);
2323 fatal_exit(1);
2324 }
2325 var_pvisibilitynode4 = var_nodearraylist3;
2326 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2327 cltype15 = type_nullable__nit__AVisibility.color;
2328 idtype16 = type_nullable__nit__AVisibility.id;
2329 if(var_pvisibilitynode4 == NULL) {
2330 var14 = 1;
2331 } else {
2332 if(cltype15 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
2333 var14 = 0;
2334 } else {
2335 var14 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype15] == idtype16;
2336 }
2337 }
2338 if (unlikely(!var14)) {
2339 PRINT_ERROR("Runtime error: %s", "Assert failed");
2340 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10078);
2341 fatal_exit(1);
2342 }
2343 var_patidnode5 = var_nodearraylist4;
2344 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2345 cltype18 = type_nullable__nit__AAtid.color;
2346 idtype19 = type_nullable__nit__AAtid.id;
2347 if(var_patidnode5 == NULL) {
2348 var17 = 1;
2349 } else {
2350 if(cltype18 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
2351 var17 = 0;
2352 } else {
2353 var17 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype18] == idtype19;
2354 }
2355 }
2356 if (unlikely(!var17)) {
2357 PRINT_ERROR("Runtime error: %s", "Assert failed");
2358 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10080);
2359 fatal_exit(1);
2360 }
2361 var_toparnode6 = var_nodearraylist5;
2362 /* <var_toparnode6:nullable Object> isa nullable TOpar */
2363 cltype21 = type_nullable__nit__TOpar.color;
2364 idtype22 = type_nullable__nit__TOpar.id;
2365 if(var_toparnode6 == NULL) {
2366 var20 = 1;
2367 } else {
2368 if(cltype21 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
2369 var20 = 0;
2370 } else {
2371 var20 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype21] == idtype22;
2372 }
2373 }
2374 if (unlikely(!var20)) {
2375 PRINT_ERROR("Runtime error: %s", "Assert failed");
2376 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10082);
2377 fatal_exit(1);
2378 }
2379 var_listnode7 = var_nodearraylist7;
2380 /* <var_listnode7:nullable Object> isa Array[Object] */
2381 cltype24 = type_standard__Array__standard__Object.color;
2382 idtype25 = type_standard__Array__standard__Object.id;
2383 if(var_listnode7 == NULL) {
2384 var23 = 0;
2385 } else {
2386 if(cltype24 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
2387 var23 = 0;
2388 } else {
2389 var23 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype24] == idtype25;
2390 }
2391 }
2392 if (unlikely(!var23)) {
2393 PRINT_ERROR("Runtime error: %s", "Assert failed");
2394 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10084);
2395 fatal_exit(1);
2396 }
2397 {
2398 var26 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
2399 }
2400 var_listnode8 = var26;
2401 var_tcparnode9 = var_nodearraylist8;
2402 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
2403 cltype28 = type_nullable__nit__TCpar.color;
2404 idtype29 = type_nullable__nit__TCpar.id;
2405 if(var_tcparnode9 == NULL) {
2406 var27 = 1;
2407 } else {
2408 if(cltype28 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
2409 var27 = 0;
2410 } else {
2411 var27 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype28] == idtype29;
2412 }
2413 }
2414 if (unlikely(!var27)) {
2415 PRINT_ERROR("Runtime error: %s", "Assert failed");
2416 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10087);
2417 fatal_exit(1);
2418 }
2419 var30 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
2420 {
2421 nit__parser_prod___AAnnotation___init_aannotation(var30, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, ((val*)NULL)); /* Direct call parser_prod#AAnnotation#init_aannotation on <var30:AAnnotation>*/
2422 }
2423 var_pannotationnode1 = var30;
2424 var_node_list = var_pannotationnode1;
2425 var31 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction423> */
2426 {
2427 var32 = nit___nit__Parser___go_to(var_p, var31);
2428 }
2429 {
2430 nit___nit__Parser___push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2431 }
2432 RET_LABEL:;
2433 }
2434 /* method parser#ReduceAction424#action for (self: ReduceAction424, Parser) */
2435 void nit__parser___nit__parser__ReduceAction424___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2436 val* var_p /* var p: Parser */;
2437 val* var_node_list /* var node_list: nullable Object */;
2438 val* var /* : nullable Object */;
2439 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2440 val* var1 /* : nullable Object */;
2441 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2442 val* var2 /* : nullable Object */;
2443 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2444 val* var3 /* : nullable Object */;
2445 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2446 val* var4 /* : nullable Object */;
2447 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2448 val* var5 /* : nullable Object */;
2449 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2450 val* var6 /* : nullable Object */;
2451 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2452 val* var7 /* : nullable Object */;
2453 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2454 val* var8 /* : nullable Object */;
2455 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2456 val* var9 /* : nullable Object */;
2457 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2458 val* var10 /* : Array[Object] */;
2459 val* var_listnode8 /* var listnode8: Array[Object] */;
2460 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2461 short int var11 /* : Bool */;
2462 int cltype;
2463 int idtype;
2464 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2465 short int var12 /* : Bool */;
2466 int cltype13;
2467 int idtype14;
2468 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2469 short int var15 /* : Bool */;
2470 int cltype16;
2471 int idtype17;
2472 val* var_patidnode5 /* var patidnode5: nullable Object */;
2473 short int var18 /* : Bool */;
2474 int cltype19;
2475 int idtype20;
2476 val* var_toparnode6 /* var toparnode6: nullable Object */;
2477 short int var21 /* : Bool */;
2478 int cltype22;
2479 int idtype23;
2480 val* var_listnode7 /* var listnode7: nullable Object */;
2481 short int var24 /* : Bool */;
2482 int cltype25;
2483 int idtype26;
2484 val* var27 /* : Array[Object] */;
2485 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
2486 short int var28 /* : Bool */;
2487 int cltype29;
2488 int idtype30;
2489 val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */;
2490 short int var31 /* : Bool */;
2491 int cltype32;
2492 int idtype33;
2493 val* var34 /* : AAnnotation */;
2494 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
2495 long var35 /* : Int */;
2496 long var36 /* : Int */;
2497 var_p = p0;
2498 var_node_list = ((val*)NULL);
2499 {
2500 var = nit___nit__Parser___pop(var_p);
2501 }
2502 var_nodearraylist10 = var;
2503 {
2504 var1 = nit___nit__Parser___pop(var_p);
2505 }
2506 var_nodearraylist9 = var1;
2507 {
2508 var2 = nit___nit__Parser___pop(var_p);
2509 }
2510 var_nodearraylist8 = var2;
2511 {
2512 var3 = nit___nit__Parser___pop(var_p);
2513 }
2514 var_nodearraylist7 = var3;
2515 {
2516 var4 = nit___nit__Parser___pop(var_p);
2517 }
2518 var_nodearraylist6 = var4;
2519 {
2520 var5 = nit___nit__Parser___pop(var_p);
2521 }
2522 var_nodearraylist5 = var5;
2523 {
2524 var6 = nit___nit__Parser___pop(var_p);
2525 }
2526 var_nodearraylist4 = var6;
2527 {
2528 var7 = nit___nit__Parser___pop(var_p);
2529 }
2530 var_nodearraylist3 = var7;
2531 {
2532 var8 = nit___nit__Parser___pop(var_p);
2533 }
2534 var_nodearraylist2 = var8;
2535 {
2536 var9 = nit___nit__Parser___pop(var_p);
2537 }
2538 var_nodearraylist1 = var9;
2539 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
2540 {
2541 standard___standard__Array___standard__kernel__Object__init(var10); /* Direct call array#Array#init on <var10:Array[Object]>*/
2542 }
2543 var_listnode8 = var10;
2544 var_pdocnode2 = var_nodearraylist1;
2545 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2546 cltype = type_nullable__nit__ADoc.color;
2547 idtype = type_nullable__nit__ADoc.id;
2548 if(var_pdocnode2 == NULL) {
2549 var11 = 1;
2550 } else {
2551 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
2552 var11 = 0;
2553 } else {
2554 var11 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
2555 }
2556 }
2557 if (unlikely(!var11)) {
2558 PRINT_ERROR("Runtime error: %s", "Assert failed");
2559 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10119);
2560 fatal_exit(1);
2561 }
2562 var_tkwredefnode3 = var_nodearraylist2;
2563 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2564 cltype13 = type_nullable__nit__TKwredef.color;
2565 idtype14 = type_nullable__nit__TKwredef.id;
2566 if(var_tkwredefnode3 == NULL) {
2567 var12 = 1;
2568 } else {
2569 if(cltype13 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
2570 var12 = 0;
2571 } else {
2572 var12 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype13] == idtype14;
2573 }
2574 }
2575 if (unlikely(!var12)) {
2576 PRINT_ERROR("Runtime error: %s", "Assert failed");
2577 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10121);
2578 fatal_exit(1);
2579 }
2580 var_pvisibilitynode4 = var_nodearraylist3;
2581 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2582 cltype16 = type_nullable__nit__AVisibility.color;
2583 idtype17 = type_nullable__nit__AVisibility.id;
2584 if(var_pvisibilitynode4 == NULL) {
2585 var15 = 1;
2586 } else {
2587 if(cltype16 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
2588 var15 = 0;
2589 } else {
2590 var15 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype16] == idtype17;
2591 }
2592 }
2593 if (unlikely(!var15)) {
2594 PRINT_ERROR("Runtime error: %s", "Assert failed");
2595 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10123);
2596 fatal_exit(1);
2597 }
2598 var_patidnode5 = var_nodearraylist4;
2599 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2600 cltype19 = type_nullable__nit__AAtid.color;
2601 idtype20 = type_nullable__nit__AAtid.id;
2602 if(var_patidnode5 == NULL) {
2603 var18 = 1;
2604 } else {
2605 if(cltype19 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
2606 var18 = 0;
2607 } else {
2608 var18 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype19] == idtype20;
2609 }
2610 }
2611 if (unlikely(!var18)) {
2612 PRINT_ERROR("Runtime error: %s", "Assert failed");
2613 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10125);
2614 fatal_exit(1);
2615 }
2616 var_toparnode6 = var_nodearraylist5;
2617 /* <var_toparnode6:nullable Object> isa nullable TOpar */
2618 cltype22 = type_nullable__nit__TOpar.color;
2619 idtype23 = type_nullable__nit__TOpar.id;
2620 if(var_toparnode6 == NULL) {
2621 var21 = 1;
2622 } else {
2623 if(cltype22 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
2624 var21 = 0;
2625 } else {
2626 var21 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype22] == idtype23;
2627 }
2628 }
2629 if (unlikely(!var21)) {
2630 PRINT_ERROR("Runtime error: %s", "Assert failed");
2631 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10127);
2632 fatal_exit(1);
2633 }
2634 var_listnode7 = var_nodearraylist7;
2635 /* <var_listnode7:nullable Object> isa Array[Object] */
2636 cltype25 = type_standard__Array__standard__Object.color;
2637 idtype26 = type_standard__Array__standard__Object.id;
2638 if(var_listnode7 == NULL) {
2639 var24 = 0;
2640 } else {
2641 if(cltype25 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
2642 var24 = 0;
2643 } else {
2644 var24 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype25] == idtype26;
2645 }
2646 }
2647 if (unlikely(!var24)) {
2648 PRINT_ERROR("Runtime error: %s", "Assert failed");
2649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10129);
2650 fatal_exit(1);
2651 }
2652 {
2653 var27 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
2654 }
2655 var_listnode8 = var27;
2656 var_tcparnode9 = var_nodearraylist8;
2657 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
2658 cltype29 = type_nullable__nit__TCpar.color;
2659 idtype30 = type_nullable__nit__TCpar.id;
2660 if(var_tcparnode9 == NULL) {
2661 var28 = 1;
2662 } else {
2663 if(cltype29 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
2664 var28 = 0;
2665 } else {
2666 var28 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype29] == idtype30;
2667 }
2668 }
2669 if (unlikely(!var28)) {
2670 PRINT_ERROR("Runtime error: %s", "Assert failed");
2671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10132);
2672 fatal_exit(1);
2673 }
2674 var_pannotationsnode10 = var_nodearraylist9;
2675 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
2676 cltype32 = type_nullable__nit__AAnnotations.color;
2677 idtype33 = type_nullable__nit__AAnnotations.id;
2678 if(var_pannotationsnode10 == NULL) {
2679 var31 = 1;
2680 } else {
2681 if(cltype32 >= (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->table_size) {
2682 var31 = 0;
2683 } else {
2684 var31 = (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->type_table[cltype32] == idtype33;
2685 }
2686 }
2687 if (unlikely(!var31)) {
2688 PRINT_ERROR("Runtime error: %s", "Assert failed");
2689 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10134);
2690 fatal_exit(1);
2691 }
2692 var34 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
2693 {
2694 nit__parser_prod___AAnnotation___init_aannotation(var34, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, var_pannotationsnode10); /* Direct call parser_prod#AAnnotation#init_aannotation on <var34:AAnnotation>*/
2695 }
2696 var_pannotationnode1 = var34;
2697 var_node_list = var_pannotationnode1;
2698 var35 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction424> */
2699 {
2700 var36 = nit___nit__Parser___go_to(var_p, var35);
2701 }
2702 {
2703 nit___nit__Parser___push(var_p, var36, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2704 }
2705 RET_LABEL:;
2706 }
2707 /* method parser#ReduceAction425#action for (self: ReduceAction425, Parser) */
2708 void nit__parser___nit__parser__ReduceAction425___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2709 val* var_p /* var p: Parser */;
2710 val* var_node_list /* var node_list: nullable Object */;
2711 val* var /* : nullable Object */;
2712 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2713 val* var1 /* : nullable Object */;
2714 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2715 val* var2 /* : nullable Object */;
2716 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2717 val* var3 /* : nullable Object */;
2718 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2719 val* var4 /* : nullable Object */;
2720 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2721 val* var5 /* : nullable Object */;
2722 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2723 val* var6 /* : Array[Object] */;
2724 val* var_listnode8 /* var listnode8: Array[Object] */;
2725 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2726 short int var7 /* : Bool */;
2727 int cltype;
2728 int idtype;
2729 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2730 short int var8 /* : Bool */;
2731 int cltype9;
2732 int idtype10;
2733 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2734 short int var11 /* : Bool */;
2735 int cltype12;
2736 int idtype13;
2737 val* var_patidnode5 /* var patidnode5: nullable Object */;
2738 short int var14 /* : Bool */;
2739 int cltype15;
2740 int idtype16;
2741 val* var_listnode7 /* var listnode7: nullable Object */;
2742 short int var17 /* : Bool */;
2743 int cltype18;
2744 int idtype19;
2745 val* var20 /* : Array[Object] */;
2746 val* var21 /* : AAnnotation */;
2747 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
2748 long var22 /* : Int */;
2749 long var23 /* : Int */;
2750 var_p = p0;
2751 var_node_list = ((val*)NULL);
2752 {
2753 var = nit___nit__Parser___pop(var_p);
2754 }
2755 var_nodearraylist6 = var;
2756 {
2757 var1 = nit___nit__Parser___pop(var_p);
2758 }
2759 var_nodearraylist5 = var1;
2760 {
2761 var2 = nit___nit__Parser___pop(var_p);
2762 }
2763 var_nodearraylist4 = var2;
2764 {
2765 var3 = nit___nit__Parser___pop(var_p);
2766 }
2767 var_nodearraylist3 = var3;
2768 {
2769 var4 = nit___nit__Parser___pop(var_p);
2770 }
2771 var_nodearraylist2 = var4;
2772 {
2773 var5 = nit___nit__Parser___pop(var_p);
2774 }
2775 var_nodearraylist1 = var5;
2776 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
2777 {
2778 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
2779 }
2780 var_listnode8 = var6;
2781 var_pdocnode2 = var_nodearraylist1;
2782 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2783 cltype = type_nullable__nit__ADoc.color;
2784 idtype = type_nullable__nit__ADoc.id;
2785 if(var_pdocnode2 == NULL) {
2786 var7 = 1;
2787 } else {
2788 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
2789 var7 = 0;
2790 } else {
2791 var7 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
2792 }
2793 }
2794 if (unlikely(!var7)) {
2795 PRINT_ERROR("Runtime error: %s", "Assert failed");
2796 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10162);
2797 fatal_exit(1);
2798 }
2799 var_tkwredefnode3 = var_nodearraylist2;
2800 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2801 cltype9 = type_nullable__nit__TKwredef.color;
2802 idtype10 = type_nullable__nit__TKwredef.id;
2803 if(var_tkwredefnode3 == NULL) {
2804 var8 = 1;
2805 } else {
2806 if(cltype9 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
2807 var8 = 0;
2808 } else {
2809 var8 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype9] == idtype10;
2810 }
2811 }
2812 if (unlikely(!var8)) {
2813 PRINT_ERROR("Runtime error: %s", "Assert failed");
2814 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10164);
2815 fatal_exit(1);
2816 }
2817 var_pvisibilitynode4 = var_nodearraylist3;
2818 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2819 cltype12 = type_nullable__nit__AVisibility.color;
2820 idtype13 = type_nullable__nit__AVisibility.id;
2821 if(var_pvisibilitynode4 == NULL) {
2822 var11 = 1;
2823 } else {
2824 if(cltype12 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
2825 var11 = 0;
2826 } else {
2827 var11 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype12] == idtype13;
2828 }
2829 }
2830 if (unlikely(!var11)) {
2831 PRINT_ERROR("Runtime error: %s", "Assert failed");
2832 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10166);
2833 fatal_exit(1);
2834 }
2835 var_patidnode5 = var_nodearraylist4;
2836 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2837 cltype15 = type_nullable__nit__AAtid.color;
2838 idtype16 = type_nullable__nit__AAtid.id;
2839 if(var_patidnode5 == NULL) {
2840 var14 = 1;
2841 } else {
2842 if(cltype15 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
2843 var14 = 0;
2844 } else {
2845 var14 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype15] == idtype16;
2846 }
2847 }
2848 if (unlikely(!var14)) {
2849 PRINT_ERROR("Runtime error: %s", "Assert failed");
2850 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10168);
2851 fatal_exit(1);
2852 }
2853 var_listnode7 = var_nodearraylist5;
2854 /* <var_listnode7:nullable Object> isa Array[Object] */
2855 cltype18 = type_standard__Array__standard__Object.color;
2856 idtype19 = type_standard__Array__standard__Object.id;
2857 if(var_listnode7 == NULL) {
2858 var17 = 0;
2859 } else {
2860 if(cltype18 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
2861 var17 = 0;
2862 } else {
2863 var17 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype18] == idtype19;
2864 }
2865 }
2866 if (unlikely(!var17)) {
2867 PRINT_ERROR("Runtime error: %s", "Assert failed");
2868 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10170);
2869 fatal_exit(1);
2870 }
2871 {
2872 var20 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
2873 }
2874 var_listnode8 = var20;
2875 var21 = NEW_nit__AAnnotation(&type_nit__AAnnotation);
2876 {
2877 nit__parser_prod___AAnnotation___init_aannotation(var21, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, ((val*)NULL), var_listnode8, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAnnotation#init_aannotation on <var21:AAnnotation>*/
2878 }
2879 var_pannotationnode1 = var21;
2880 var_node_list = var_pannotationnode1;
2881 var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction425> */
2882 {
2883 var23 = nit___nit__Parser___go_to(var_p, var22);
2884 }
2885 {
2886 nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2887 }
2888 RET_LABEL:;
2889 }
2890 /* method parser#ReduceAction426#action for (self: ReduceAction426, Parser) */
2891 void nit__parser___nit__parser__ReduceAction426___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2892 val* var_p /* var p: Parser */;
2893 val* var_node_list /* var node_list: nullable Object */;
2894 val* var /* : nullable Object */;
2895 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2896 val* var1 /* : nullable Object */;
2897 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2898 val* var2 /* : Array[Object] */;
2899 val* var_listnode7 /* var listnode7: Array[Object] */;
2900 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2901 short int var3 /* : Bool */;
2902 int cltype;
2903 int idtype;
2904 val* var_patidnode5 /* var patidnode5: nullable Object */;
2905 short int var4 /* : Bool */;
2906 int cltype5;
2907 int idtype6;
2908 val* var7 /* : AAnnotPropdef */;
2909 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
2910 long var8 /* : Int */;
2911 long var9 /* : Int */;
2912 var_p = p0;
2913 var_node_list = ((val*)NULL);
2914 {
2915 var = nit___nit__Parser___pop(var_p);
2916 }
2917 var_nodearraylist2 = var;
2918 {
2919 var1 = nit___nit__Parser___pop(var_p);
2920 }
2921 var_nodearraylist1 = var1;
2922 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
2923 {
2924 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2925 }
2926 var_listnode7 = var2;
2927 var_pdocnode2 = var_nodearraylist1;
2928 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2929 cltype = type_nullable__nit__ADoc.color;
2930 idtype = type_nullable__nit__ADoc.id;
2931 if(var_pdocnode2 == NULL) {
2932 var3 = 1;
2933 } else {
2934 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
2935 var3 = 0;
2936 } else {
2937 var3 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
2938 }
2939 }
2940 if (unlikely(!var3)) {
2941 PRINT_ERROR("Runtime error: %s", "Assert failed");
2942 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10195);
2943 fatal_exit(1);
2944 }
2945 var_patidnode5 = var_nodearraylist2;
2946 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2947 cltype5 = type_nullable__nit__AAtid.color;
2948 idtype6 = type_nullable__nit__AAtid.id;
2949 if(var_patidnode5 == NULL) {
2950 var4 = 1;
2951 } else {
2952 if(cltype5 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
2953 var4 = 0;
2954 } else {
2955 var4 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype5] == idtype6;
2956 }
2957 }
2958 if (unlikely(!var4)) {
2959 PRINT_ERROR("Runtime error: %s", "Assert failed");
2960 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10197);
2961 fatal_exit(1);
2962 }
2963 var7 = NEW_nit__AAnnotPropdef(&type_nit__AAnnotPropdef);
2964 {
2965 nit__parser_prod___AAnnotPropdef___init_aannotpropdef(var7, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAnnotPropdef#init_aannotpropdef on <var7:AAnnotPropdef>*/
2966 }
2967 var_ppropdefnode1 = var7;
2968 var_node_list = var_ppropdefnode1;
2969 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction426> */
2970 {
2971 var9 = nit___nit__Parser___go_to(var_p, var8);
2972 }
2973 {
2974 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2975 }
2976 RET_LABEL:;
2977 }
2978 /* method parser#ReduceAction427#action for (self: ReduceAction427, Parser) */
2979 void nit__parser___nit__parser__ReduceAction427___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2980 val* var_p /* var p: Parser */;
2981 val* var_node_list /* var node_list: nullable Object */;
2982 val* var /* : nullable Object */;
2983 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2984 val* var1 /* : nullable Object */;
2985 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2986 val* var2 /* : nullable Object */;
2987 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2988 val* var3 /* : Array[Object] */;
2989 val* var_listnode7 /* var listnode7: Array[Object] */;
2990 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2991 short int var4 /* : Bool */;
2992 int cltype;
2993 int idtype;
2994 val* var_patidnode5 /* var patidnode5: nullable Object */;
2995 short int var5 /* : Bool */;
2996 int cltype6;
2997 int idtype7;
2998 val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */;
2999 short int var8 /* : Bool */;
3000 int cltype9;
3001 int idtype10;
3002 val* var11 /* : AAnnotPropdef */;
3003 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
3004 long var12 /* : Int */;
3005 long var13 /* : Int */;
3006 var_p = p0;
3007 var_node_list = ((val*)NULL);
3008 {
3009 var = nit___nit__Parser___pop(var_p);
3010 }
3011 var_nodearraylist3 = var;
3012 {
3013 var1 = nit___nit__Parser___pop(var_p);
3014 }
3015 var_nodearraylist2 = var1;
3016 {
3017 var2 = nit___nit__Parser___pop(var_p);
3018 }
3019 var_nodearraylist1 = var2;
3020 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
3021 {
3022 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
3023 }
3024 var_listnode7 = var3;
3025 var_pdocnode2 = var_nodearraylist1;
3026 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3027 cltype = type_nullable__nit__ADoc.color;
3028 idtype = type_nullable__nit__ADoc.id;
3029 if(var_pdocnode2 == NULL) {
3030 var4 = 1;
3031 } else {
3032 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
3033 var4 = 0;
3034 } else {
3035 var4 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
3036 }
3037 }
3038 if (unlikely(!var4)) {
3039 PRINT_ERROR("Runtime error: %s", "Assert failed");
3040 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10222);
3041 fatal_exit(1);
3042 }
3043 var_patidnode5 = var_nodearraylist2;
3044 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3045 cltype6 = type_nullable__nit__AAtid.color;
3046 idtype7 = type_nullable__nit__AAtid.id;
3047 if(var_patidnode5 == NULL) {
3048 var5 = 1;
3049 } else {
3050 if(cltype6 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
3051 var5 = 0;
3052 } else {
3053 var5 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype6] == idtype7;
3054 }
3055 }
3056 if (unlikely(!var5)) {
3057 PRINT_ERROR("Runtime error: %s", "Assert failed");
3058 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10224);
3059 fatal_exit(1);
3060 }
3061 var_pannotationsnode9 = var_nodearraylist3;
3062 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
3063 cltype9 = type_nullable__nit__AAnnotations.color;
3064 idtype10 = type_nullable__nit__AAnnotations.id;
3065 if(var_pannotationsnode9 == NULL) {
3066 var8 = 1;
3067 } else {
3068 if(cltype9 >= (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->table_size) {
3069 var8 = 0;
3070 } else {
3071 var8 = (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->type_table[cltype9] == idtype10;
3072 }
3073 }
3074 if (unlikely(!var8)) {
3075 PRINT_ERROR("Runtime error: %s", "Assert failed");
3076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10226);
3077 fatal_exit(1);
3078 }
3079 var11 = NEW_nit__AAnnotPropdef(&type_nit__AAnnotPropdef);
3080 {
3081 nit__parser_prod___AAnnotPropdef___init_aannotpropdef(var11, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), var_pannotationsnode9); /* Direct call parser_prod#AAnnotPropdef#init_aannotpropdef on <var11:AAnnotPropdef>*/
3082 }
3083 var_ppropdefnode1 = var11;
3084 var_node_list = var_ppropdefnode1;
3085 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction427> */
3086 {
3087 var13 = nit___nit__Parser___go_to(var_p, var12);
3088 }
3089 {
3090 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3091 }
3092 RET_LABEL:;
3093 }
3094 /* method parser#ReduceAction428#action for (self: ReduceAction428, Parser) */
3095 void nit__parser___nit__parser__ReduceAction428___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3096 val* var_p /* var p: Parser */;
3097 val* var_node_list /* var node_list: nullable Object */;
3098 val* var /* : nullable Object */;
3099 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3100 val* var1 /* : nullable Object */;
3101 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3102 val* var2 /* : nullable Object */;
3103 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3104 val* var3 /* : nullable Object */;
3105 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3106 val* var4 /* : nullable Object */;
3107 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3108 val* var5 /* : nullable Object */;
3109 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3110 val* var6 /* : Array[Object] */;
3111 val* var_listnode8 /* var listnode8: Array[Object] */;
3112 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3113 short int var7 /* : Bool */;
3114 int cltype;
3115 int idtype;
3116 val* var_patidnode5 /* var patidnode5: nullable Object */;
3117 short int var8 /* : Bool */;
3118 int cltype9;
3119 int idtype10;
3120 val* var_toparnode6 /* var toparnode6: nullable Object */;
3121 short int var11 /* : Bool */;
3122 int cltype12;
3123 int idtype13;
3124 val* var_listnode7 /* var listnode7: nullable Object */;
3125 short int var14 /* : Bool */;
3126 int cltype15;
3127 int idtype16;
3128 val* var17 /* : Array[Object] */;
3129 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
3130 short int var18 /* : Bool */;
3131 int cltype19;
3132 int idtype20;
3133 val* var21 /* : AAnnotPropdef */;
3134 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
3135 long var22 /* : Int */;
3136 long var23 /* : Int */;
3137 var_p = p0;
3138 var_node_list = ((val*)NULL);
3139 {
3140 var = nit___nit__Parser___pop(var_p);
3141 }
3142 var_nodearraylist6 = var;
3143 {
3144 var1 = nit___nit__Parser___pop(var_p);
3145 }
3146 var_nodearraylist5 = var1;
3147 {
3148 var2 = nit___nit__Parser___pop(var_p);
3149 }
3150 var_nodearraylist4 = var2;
3151 {
3152 var3 = nit___nit__Parser___pop(var_p);
3153 }
3154 var_nodearraylist3 = var3;
3155 {
3156 var4 = nit___nit__Parser___pop(var_p);
3157 }
3158 var_nodearraylist2 = var4;
3159 {
3160 var5 = nit___nit__Parser___pop(var_p);
3161 }
3162 var_nodearraylist1 = var5;
3163 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
3164 {
3165 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
3166 }
3167 var_listnode8 = var6;
3168 var_pdocnode2 = var_nodearraylist1;
3169 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3170 cltype = type_nullable__nit__ADoc.color;
3171 idtype = type_nullable__nit__ADoc.id;
3172 if(var_pdocnode2 == NULL) {
3173 var7 = 1;
3174 } else {
3175 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
3176 var7 = 0;
3177 } else {
3178 var7 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
3179 }
3180 }
3181 if (unlikely(!var7)) {
3182 PRINT_ERROR("Runtime error: %s", "Assert failed");
3183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10254);
3184 fatal_exit(1);
3185 }
3186 var_patidnode5 = var_nodearraylist2;
3187 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3188 cltype9 = type_nullable__nit__AAtid.color;
3189 idtype10 = type_nullable__nit__AAtid.id;
3190 if(var_patidnode5 == NULL) {
3191 var8 = 1;
3192 } else {
3193 if(cltype9 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
3194 var8 = 0;
3195 } else {
3196 var8 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype9] == idtype10;
3197 }
3198 }
3199 if (unlikely(!var8)) {
3200 PRINT_ERROR("Runtime error: %s", "Assert failed");
3201 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10256);
3202 fatal_exit(1);
3203 }
3204 var_toparnode6 = var_nodearraylist3;
3205 /* <var_toparnode6:nullable Object> isa nullable TOpar */
3206 cltype12 = type_nullable__nit__TOpar.color;
3207 idtype13 = type_nullable__nit__TOpar.id;
3208 if(var_toparnode6 == NULL) {
3209 var11 = 1;
3210 } else {
3211 if(cltype12 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
3212 var11 = 0;
3213 } else {
3214 var11 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype12] == idtype13;
3215 }
3216 }
3217 if (unlikely(!var11)) {
3218 PRINT_ERROR("Runtime error: %s", "Assert failed");
3219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10258);
3220 fatal_exit(1);
3221 }
3222 var_listnode7 = var_nodearraylist5;
3223 /* <var_listnode7:nullable Object> isa Array[Object] */
3224 cltype15 = type_standard__Array__standard__Object.color;
3225 idtype16 = type_standard__Array__standard__Object.id;
3226 if(var_listnode7 == NULL) {
3227 var14 = 0;
3228 } else {
3229 if(cltype15 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
3230 var14 = 0;
3231 } else {
3232 var14 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype15] == idtype16;
3233 }
3234 }
3235 if (unlikely(!var14)) {
3236 PRINT_ERROR("Runtime error: %s", "Assert failed");
3237 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10260);
3238 fatal_exit(1);
3239 }
3240 {
3241 var17 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
3242 }
3243 var_listnode8 = var17;
3244 var_tcparnode9 = var_nodearraylist6;
3245 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
3246 cltype19 = type_nullable__nit__TCpar.color;
3247 idtype20 = type_nullable__nit__TCpar.id;
3248 if(var_tcparnode9 == NULL) {
3249 var18 = 1;
3250 } else {
3251 if(cltype19 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
3252 var18 = 0;
3253 } else {
3254 var18 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype19] == idtype20;
3255 }
3256 }
3257 if (unlikely(!var18)) {
3258 PRINT_ERROR("Runtime error: %s", "Assert failed");
3259 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10263);
3260 fatal_exit(1);
3261 }
3262 var21 = NEW_nit__AAnnotPropdef(&type_nit__AAnnotPropdef);
3263 {
3264 nit__parser_prod___AAnnotPropdef___init_aannotpropdef(var21, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, ((val*)NULL)); /* Direct call parser_prod#AAnnotPropdef#init_aannotpropdef on <var21:AAnnotPropdef>*/
3265 }
3266 var_ppropdefnode1 = var21;
3267 var_node_list = var_ppropdefnode1;
3268 var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction428> */
3269 {
3270 var23 = nit___nit__Parser___go_to(var_p, var22);
3271 }
3272 {
3273 nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3274 }
3275 RET_LABEL:;
3276 }
3277 /* method parser#ReduceAction429#action for (self: ReduceAction429, Parser) */
3278 void nit__parser___nit__parser__ReduceAction429___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3279 val* var_p /* var p: Parser */;
3280 val* var_node_list /* var node_list: nullable Object */;
3281 val* var /* : nullable Object */;
3282 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3283 val* var1 /* : nullable Object */;
3284 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3285 val* var2 /* : nullable Object */;
3286 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3287 val* var3 /* : nullable Object */;
3288 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3289 val* var4 /* : nullable Object */;
3290 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3291 val* var5 /* : nullable Object */;
3292 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3293 val* var6 /* : nullable Object */;
3294 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3295 val* var7 /* : Array[Object] */;
3296 val* var_listnode8 /* var listnode8: Array[Object] */;
3297 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3298 short int var8 /* : Bool */;
3299 int cltype;
3300 int idtype;
3301 val* var_patidnode5 /* var patidnode5: nullable Object */;
3302 short int var9 /* : Bool */;
3303 int cltype10;
3304 int idtype11;
3305 val* var_toparnode6 /* var toparnode6: nullable Object */;
3306 short int var12 /* : Bool */;
3307 int cltype13;
3308 int idtype14;
3309 val* var_listnode7 /* var listnode7: nullable Object */;
3310 short int var15 /* : Bool */;
3311 int cltype16;
3312 int idtype17;
3313 val* var18 /* : Array[Object] */;
3314 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
3315 short int var19 /* : Bool */;
3316 int cltype20;
3317 int idtype21;
3318 val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */;
3319 short int var22 /* : Bool */;
3320 int cltype23;
3321 int idtype24;
3322 val* var25 /* : AAnnotPropdef */;
3323 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
3324 long var26 /* : Int */;
3325 long var27 /* : Int */;
3326 var_p = p0;
3327 var_node_list = ((val*)NULL);
3328 {
3329 var = nit___nit__Parser___pop(var_p);
3330 }
3331 var_nodearraylist7 = var;
3332 {
3333 var1 = nit___nit__Parser___pop(var_p);
3334 }
3335 var_nodearraylist6 = var1;
3336 {
3337 var2 = nit___nit__Parser___pop(var_p);
3338 }
3339 var_nodearraylist5 = var2;
3340 {
3341 var3 = nit___nit__Parser___pop(var_p);
3342 }
3343 var_nodearraylist4 = var3;
3344 {
3345 var4 = nit___nit__Parser___pop(var_p);
3346 }
3347 var_nodearraylist3 = var4;
3348 {
3349 var5 = nit___nit__Parser___pop(var_p);
3350 }
3351 var_nodearraylist2 = var5;
3352 {
3353 var6 = nit___nit__Parser___pop(var_p);
3354 }
3355 var_nodearraylist1 = var6;
3356 var7 = NEW_standard__Array(&type_standard__Array__standard__Object);
3357 {
3358 standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on <var7:Array[Object]>*/
3359 }
3360 var_listnode8 = var7;
3361 var_pdocnode2 = var_nodearraylist1;
3362 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3363 cltype = type_nullable__nit__ADoc.color;
3364 idtype = type_nullable__nit__ADoc.id;
3365 if(var_pdocnode2 == NULL) {
3366 var8 = 1;
3367 } else {
3368 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
3369 var8 = 0;
3370 } else {
3371 var8 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
3372 }
3373 }
3374 if (unlikely(!var8)) {
3375 PRINT_ERROR("Runtime error: %s", "Assert failed");
3376 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10292);
3377 fatal_exit(1);
3378 }
3379 var_patidnode5 = var_nodearraylist2;
3380 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3381 cltype10 = type_nullable__nit__AAtid.color;
3382 idtype11 = type_nullable__nit__AAtid.id;
3383 if(var_patidnode5 == NULL) {
3384 var9 = 1;
3385 } else {
3386 if(cltype10 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
3387 var9 = 0;
3388 } else {
3389 var9 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype10] == idtype11;
3390 }
3391 }
3392 if (unlikely(!var9)) {
3393 PRINT_ERROR("Runtime error: %s", "Assert failed");
3394 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10294);
3395 fatal_exit(1);
3396 }
3397 var_toparnode6 = var_nodearraylist3;
3398 /* <var_toparnode6:nullable Object> isa nullable TOpar */
3399 cltype13 = type_nullable__nit__TOpar.color;
3400 idtype14 = type_nullable__nit__TOpar.id;
3401 if(var_toparnode6 == NULL) {
3402 var12 = 1;
3403 } else {
3404 if(cltype13 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
3405 var12 = 0;
3406 } else {
3407 var12 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype13] == idtype14;
3408 }
3409 }
3410 if (unlikely(!var12)) {
3411 PRINT_ERROR("Runtime error: %s", "Assert failed");
3412 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10296);
3413 fatal_exit(1);
3414 }
3415 var_listnode7 = var_nodearraylist5;
3416 /* <var_listnode7:nullable Object> isa Array[Object] */
3417 cltype16 = type_standard__Array__standard__Object.color;
3418 idtype17 = type_standard__Array__standard__Object.id;
3419 if(var_listnode7 == NULL) {
3420 var15 = 0;
3421 } else {
3422 if(cltype16 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
3423 var15 = 0;
3424 } else {
3425 var15 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype16] == idtype17;
3426 }
3427 }
3428 if (unlikely(!var15)) {
3429 PRINT_ERROR("Runtime error: %s", "Assert failed");
3430 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10298);
3431 fatal_exit(1);
3432 }
3433 {
3434 var18 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
3435 }
3436 var_listnode8 = var18;
3437 var_tcparnode9 = var_nodearraylist6;
3438 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
3439 cltype20 = type_nullable__nit__TCpar.color;
3440 idtype21 = type_nullable__nit__TCpar.id;
3441 if(var_tcparnode9 == NULL) {
3442 var19 = 1;
3443 } else {
3444 if(cltype20 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
3445 var19 = 0;
3446 } else {
3447 var19 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype20] == idtype21;
3448 }
3449 }
3450 if (unlikely(!var19)) {
3451 PRINT_ERROR("Runtime error: %s", "Assert failed");
3452 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10301);
3453 fatal_exit(1);
3454 }
3455 var_pannotationsnode10 = var_nodearraylist7;
3456 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
3457 cltype23 = type_nullable__nit__AAnnotations.color;
3458 idtype24 = type_nullable__nit__AAnnotations.id;
3459 if(var_pannotationsnode10 == NULL) {
3460 var22 = 1;
3461 } else {
3462 if(cltype23 >= (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->table_size) {
3463 var22 = 0;
3464 } else {
3465 var22 = (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->type_table[cltype23] == idtype24;
3466 }
3467 }
3468 if (unlikely(!var22)) {
3469 PRINT_ERROR("Runtime error: %s", "Assert failed");
3470 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10303);
3471 fatal_exit(1);
3472 }
3473 var25 = NEW_nit__AAnnotPropdef(&type_nit__AAnnotPropdef);
3474 {
3475 nit__parser_prod___AAnnotPropdef___init_aannotpropdef(var25, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, var_pannotationsnode10); /* Direct call parser_prod#AAnnotPropdef#init_aannotpropdef on <var25:AAnnotPropdef>*/
3476 }
3477 var_ppropdefnode1 = var25;
3478 var_node_list = var_ppropdefnode1;
3479 var26 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction429> */
3480 {
3481 var27 = nit___nit__Parser___go_to(var_p, var26);
3482 }
3483 {
3484 nit___nit__Parser___push(var_p, var27, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3485 }
3486 RET_LABEL:;
3487 }
3488 /* method parser#ReduceAction430#action for (self: ReduceAction430, Parser) */
3489 void nit__parser___nit__parser__ReduceAction430___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3490 val* var_p /* var p: Parser */;
3491 val* var_node_list /* var node_list: nullable Object */;
3492 val* var /* : nullable Object */;
3493 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3494 val* var1 /* : nullable Object */;
3495 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3496 val* var2 /* : nullable Object */;
3497 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3498 val* var3 /* : Array[Object] */;
3499 val* var_listnode8 /* var listnode8: Array[Object] */;
3500 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3501 short int var4 /* : Bool */;
3502 int cltype;
3503 int idtype;
3504 val* var_patidnode5 /* var patidnode5: nullable Object */;
3505 short int var5 /* : Bool */;
3506 int cltype6;
3507 int idtype7;
3508 val* var_listnode7 /* var listnode7: nullable Object */;
3509 short int var8 /* : Bool */;
3510 int cltype9;
3511 int idtype10;
3512 val* var11 /* : Array[Object] */;
3513 val* var12 /* : AAnnotPropdef */;
3514 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
3515 long var13 /* : Int */;
3516 long var14 /* : Int */;
3517 var_p = p0;
3518 var_node_list = ((val*)NULL);
3519 {
3520 var = nit___nit__Parser___pop(var_p);
3521 }
3522 var_nodearraylist3 = var;
3523 {
3524 var1 = nit___nit__Parser___pop(var_p);
3525 }
3526 var_nodearraylist2 = var1;
3527 {
3528 var2 = nit___nit__Parser___pop(var_p);
3529 }
3530 var_nodearraylist1 = var2;
3531 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
3532 {
3533 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
3534 }
3535 var_listnode8 = var3;
3536 var_pdocnode2 = var_nodearraylist1;
3537 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3538 cltype = type_nullable__nit__ADoc.color;
3539 idtype = type_nullable__nit__ADoc.id;
3540 if(var_pdocnode2 == NULL) {
3541 var4 = 1;
3542 } else {
3543 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
3544 var4 = 0;
3545 } else {
3546 var4 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
3547 }
3548 }
3549 if (unlikely(!var4)) {
3550 PRINT_ERROR("Runtime error: %s", "Assert failed");
3551 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10328);
3552 fatal_exit(1);
3553 }
3554 var_patidnode5 = var_nodearraylist2;
3555 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3556 cltype6 = type_nullable__nit__AAtid.color;
3557 idtype7 = type_nullable__nit__AAtid.id;
3558 if(var_patidnode5 == NULL) {
3559 var5 = 1;
3560 } else {
3561 if(cltype6 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
3562 var5 = 0;
3563 } else {
3564 var5 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype6] == idtype7;
3565 }
3566 }
3567 if (unlikely(!var5)) {
3568 PRINT_ERROR("Runtime error: %s", "Assert failed");
3569 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10330);
3570 fatal_exit(1);
3571 }
3572 var_listnode7 = var_nodearraylist3;
3573 /* <var_listnode7:nullable Object> isa Array[Object] */
3574 cltype9 = type_standard__Array__standard__Object.color;
3575 idtype10 = type_standard__Array__standard__Object.id;
3576 if(var_listnode7 == NULL) {
3577 var8 = 0;
3578 } else {
3579 if(cltype9 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
3580 var8 = 0;
3581 } else {
3582 var8 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype9] == idtype10;
3583 }
3584 }
3585 if (unlikely(!var8)) {
3586 PRINT_ERROR("Runtime error: %s", "Assert failed");
3587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10332);
3588 fatal_exit(1);
3589 }
3590 {
3591 var11 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
3592 }
3593 var_listnode8 = var11;
3594 var12 = NEW_nit__AAnnotPropdef(&type_nit__AAnnotPropdef);
3595 {
3596 nit__parser_prod___AAnnotPropdef___init_aannotpropdef(var12, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, ((val*)NULL), var_listnode8, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAnnotPropdef#init_aannotpropdef on <var12:AAnnotPropdef>*/
3597 }
3598 var_ppropdefnode1 = var12;
3599 var_node_list = var_ppropdefnode1;
3600 var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction430> */
3601 {
3602 var14 = nit___nit__Parser___go_to(var_p, var13);
3603 }
3604 {
3605 nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3606 }
3607 RET_LABEL:;
3608 }
3609 /* method parser#ReduceAction434#action for (self: ReduceAction434, Parser) */
3610 void nit__parser___nit__parser__ReduceAction434___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3611 val* var_p /* var p: Parser */;
3612 val* var_node_list /* var node_list: nullable Object */;
3613 val* var /* : nullable Object */;
3614 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3615 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3616 short int var1 /* : Bool */;
3617 int cltype;
3618 int idtype;
3619 val* var2 /* : ATypeExpr */;
3620 val* var_pexprnode1 /* var pexprnode1: nullable ATypeExpr */;
3621 long var3 /* : Int */;
3622 long var4 /* : Int */;
3623 var_p = p0;
3624 var_node_list = ((val*)NULL);
3625 {
3626 var = nit___nit__Parser___pop(var_p);
3627 }
3628 var_nodearraylist1 = var;
3629 var_ptypenode2 = var_nodearraylist1;
3630 /* <var_ptypenode2:nullable Object> isa nullable AType */
3631 cltype = type_nullable__nit__AType.color;
3632 idtype = type_nullable__nit__AType.id;
3633 if(var_ptypenode2 == NULL) {
3634 var1 = 1;
3635 } else {
3636 if(cltype >= (((long)var_ptypenode2&3)?type_info[((long)var_ptypenode2&3)]:var_ptypenode2->type)->table_size) {
3637 var1 = 0;
3638 } else {
3639 var1 = (((long)var_ptypenode2&3)?type_info[((long)var_ptypenode2&3)]:var_ptypenode2->type)->type_table[cltype] == idtype;
3640 }
3641 }
3642 if (unlikely(!var1)) {
3643 PRINT_ERROR("Runtime error: %s", "Assert failed");
3644 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10355);
3645 fatal_exit(1);
3646 }
3647 var2 = NEW_nit__ATypeExpr(&type_nit__ATypeExpr);
3648 {
3649 nit__parser_prod___ATypeExpr___init_atypeexpr(var2, var_ptypenode2); /* Direct call parser_prod#ATypeExpr#init_atypeexpr on <var2:ATypeExpr>*/
3650 }
3651 var_pexprnode1 = var2;
3652 var_node_list = var_pexprnode1;
3653 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction434> */
3654 {
3655 var4 = nit___nit__Parser___go_to(var_p, var3);
3656 }
3657 {
3658 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3659 }
3660 RET_LABEL:;
3661 }
3662 /* method parser#ReduceAction437#action for (self: ReduceAction437, Parser) */
3663 void nit__parser___nit__parser__ReduceAction437___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3664 val* var_p /* var p: Parser */;
3665 val* var_node_list /* var node_list: nullable Object */;
3666 val* var /* : nullable Object */;
3667 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3668 val* var1 /* : nullable Object */;
3669 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3670 val* var2 /* : nullable Object */;
3671 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3672 val* var3 /* : nullable Object */;
3673 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3674 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3675 short int var4 /* : Bool */;
3676 int cltype;
3677 int idtype;
3678 val* var_pmethidnode3 /* var pmethidnode3: nullable Object */;
3679 short int var5 /* : Bool */;
3680 int cltype6;
3681 int idtype7;
3682 val* var8 /* : AMethidExpr */;
3683 val* var_pexprnode1 /* var pexprnode1: nullable AMethidExpr */;
3684 long var9 /* : Int */;
3685 long var10 /* : Int */;
3686 var_p = p0;
3687 var_node_list = ((val*)NULL);
3688 {
3689 var = nit___nit__Parser___pop(var_p);
3690 }
3691 var_nodearraylist4 = var;
3692 {
3693 var1 = nit___nit__Parser___pop(var_p);
3694 }
3695 var_nodearraylist3 = var1;
3696 {
3697 var2 = nit___nit__Parser___pop(var_p);
3698 }
3699 var_nodearraylist2 = var2;
3700 {
3701 var3 = nit___nit__Parser___pop(var_p);
3702 }
3703 var_nodearraylist1 = var3;
3704 var_pexprnode2 = var_nodearraylist1;
3705 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3706 cltype = type_nullable__nit__AExpr.color;
3707 idtype = type_nullable__nit__AExpr.id;
3708 if(var_pexprnode2 == NULL) {
3709 var4 = 1;
3710 } else {
3711 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3712 var4 = 0;
3713 } else {
3714 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3715 }
3716 }
3717 if (unlikely(!var4)) {
3718 PRINT_ERROR("Runtime error: %s", "Assert failed");
3719 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10373);
3720 fatal_exit(1);
3721 }
3722 var_pmethidnode3 = var_nodearraylist4;
3723 /* <var_pmethidnode3:nullable Object> isa nullable AMethid */
3724 cltype6 = type_nullable__nit__AMethid.color;
3725 idtype7 = type_nullable__nit__AMethid.id;
3726 if(var_pmethidnode3 == NULL) {
3727 var5 = 1;
3728 } else {
3729 if(cltype6 >= (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->table_size) {
3730 var5 = 0;
3731 } else {
3732 var5 = (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->type_table[cltype6] == idtype7;
3733 }
3734 }
3735 if (unlikely(!var5)) {
3736 PRINT_ERROR("Runtime error: %s", "Assert failed");
3737 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10375);
3738 fatal_exit(1);
3739 }
3740 var8 = NEW_nit__AMethidExpr(&type_nit__AMethidExpr);
3741 {
3742 nit__parser_prod___AMethidExpr___init_amethidexpr(var8, var_pexprnode2, var_pmethidnode3); /* Direct call parser_prod#AMethidExpr#init_amethidexpr on <var8:AMethidExpr>*/
3743 }
3744 var_pexprnode1 = var8;
3745 var_node_list = var_pexprnode1;
3746 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction437> */
3747 {
3748 var10 = nit___nit__Parser___go_to(var_p, var9);
3749 }
3750 {
3751 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3752 }
3753 RET_LABEL:;
3754 }
3755 /* method parser#ReduceAction438#action for (self: ReduceAction438, Parser) */
3756 void nit__parser___nit__parser__ReduceAction438___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3757 val* var_p /* var p: Parser */;
3758 val* var_node_list /* var node_list: nullable Object */;
3759 val* var /* : nullable Object */;
3760 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3761 val* var1 /* : AImplicitSelfExpr */;
3762 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3763 val* var_pmethidnode3 /* var pmethidnode3: nullable Object */;
3764 short int var2 /* : Bool */;
3765 int cltype;
3766 int idtype;
3767 val* var3 /* : AMethidExpr */;
3768 val* var_pexprnode1 /* var pexprnode1: nullable AMethidExpr */;
3769 long var4 /* : Int */;
3770 long var5 /* : Int */;
3771 var_p = p0;
3772 var_node_list = ((val*)NULL);
3773 {
3774 var = nit___nit__Parser___pop(var_p);
3775 }
3776 var_nodearraylist1 = var;
3777 var1 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
3778 {
3779 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var1); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/
3780 }
3781 var_pexprnode2 = var1;
3782 var_pmethidnode3 = var_nodearraylist1;
3783 /* <var_pmethidnode3:nullable Object> isa nullable AMethid */
3784 cltype = type_nullable__nit__AMethid.color;
3785 idtype = type_nullable__nit__AMethid.id;
3786 if(var_pmethidnode3 == NULL) {
3787 var2 = 1;
3788 } else {
3789 if(cltype >= (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->table_size) {
3790 var2 = 0;
3791 } else {
3792 var2 = (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->type_table[cltype] == idtype;
3793 }
3794 }
3795 if (unlikely(!var2)) {
3796 PRINT_ERROR("Runtime error: %s", "Assert failed");
3797 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10392);
3798 fatal_exit(1);
3799 }
3800 var3 = NEW_nit__AMethidExpr(&type_nit__AMethidExpr);
3801 {
3802 nit__parser_prod___AMethidExpr___init_amethidexpr(var3, var_pexprnode2, var_pmethidnode3); /* Direct call parser_prod#AMethidExpr#init_amethidexpr on <var3:AMethidExpr>*/
3803 }
3804 var_pexprnode1 = var3;
3805 var_node_list = var_pexprnode1;
3806 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction438> */
3807 {
3808 var5 = nit___nit__Parser___go_to(var_p, var4);
3809 }
3810 {
3811 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3812 }
3813 RET_LABEL:;
3814 }
3815 /* method parser#ReduceAction439#action for (self: ReduceAction439, Parser) */
3816 void nit__parser___nit__parser__ReduceAction439___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3817 val* var_p /* var p: Parser */;
3818 val* var_node_list /* var node_list: nullable Object */;
3819 val* var /* : nullable Object */;
3820 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3821 val* var_pannotationsnode2 /* var pannotationsnode2: nullable Object */;
3822 short int var1 /* : Bool */;
3823 int cltype;
3824 int idtype;
3825 val* var2 /* : AAtExpr */;
3826 val* var_pexprnode1 /* var pexprnode1: nullable AAtExpr */;
3827 long var3 /* : Int */;
3828 long var4 /* : Int */;
3829 var_p = p0;
3830 var_node_list = ((val*)NULL);
3831 {
3832 var = nit___nit__Parser___pop(var_p);
3833 }
3834 var_nodearraylist1 = var;
3835 var_pannotationsnode2 = var_nodearraylist1;
3836 /* <var_pannotationsnode2:nullable Object> isa nullable AAnnotations */
3837 cltype = type_nullable__nit__AAnnotations.color;
3838 idtype = type_nullable__nit__AAnnotations.id;
3839 if(var_pannotationsnode2 == NULL) {
3840 var1 = 1;
3841 } else {
3842 if(cltype >= (((long)var_pannotationsnode2&3)?type_info[((long)var_pannotationsnode2&3)]:var_pannotationsnode2->type)->table_size) {
3843 var1 = 0;
3844 } else {
3845 var1 = (((long)var_pannotationsnode2&3)?type_info[((long)var_pannotationsnode2&3)]:var_pannotationsnode2->type)->type_table[cltype] == idtype;
3846 }
3847 }
3848 if (unlikely(!var1)) {
3849 PRINT_ERROR("Runtime error: %s", "Assert failed");
3850 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10408);
3851 fatal_exit(1);
3852 }
3853 var2 = NEW_nit__AAtExpr(&type_nit__AAtExpr);
3854 {
3855 nit__parser_prod___AAtExpr___init_aatexpr(var2, var_pannotationsnode2); /* Direct call parser_prod#AAtExpr#init_aatexpr on <var2:AAtExpr>*/
3856 }
3857 var_pexprnode1 = var2;
3858 var_node_list = var_pexprnode1;
3859 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction439> */
3860 {
3861 var4 = nit___nit__Parser___go_to(var_p, var3);
3862 }
3863 {
3864 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3865 }
3866 RET_LABEL:;
3867 }
3868 /* method parser#ReduceAction440#action for (self: ReduceAction440, Parser) */
3869 void nit__parser___nit__parser__ReduceAction440___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3870 val* var_p /* var p: Parser */;
3871 val* var_node_list /* var node_list: nullable Object */;
3872 val* var /* : nullable Object */;
3873 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3874 val* var_tidnode2 /* var tidnode2: nullable Object */;
3875 short int var1 /* : Bool */;
3876 int cltype;
3877 int idtype;
3878 val* var2 /* : AIdAtid */;
3879 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
3880 long var3 /* : Int */;
3881 long var4 /* : Int */;
3882 var_p = p0;
3883 var_node_list = ((val*)NULL);
3884 {
3885 var = nit___nit__Parser___pop(var_p);
3886 }
3887 var_nodearraylist1 = var;
3888 var_tidnode2 = var_nodearraylist1;
3889 /* <var_tidnode2:nullable Object> isa nullable TId */
3890 cltype = type_nullable__nit__TId.color;
3891 idtype = type_nullable__nit__TId.id;
3892 if(var_tidnode2 == NULL) {
3893 var1 = 1;
3894 } else {
3895 if(cltype >= (((long)var_tidnode2&3)?type_info[((long)var_tidnode2&3)]:var_tidnode2->type)->table_size) {
3896 var1 = 0;
3897 } else {
3898 var1 = (((long)var_tidnode2&3)?type_info[((long)var_tidnode2&3)]:var_tidnode2->type)->type_table[cltype] == idtype;
3899 }
3900 }
3901 if (unlikely(!var1)) {
3902 PRINT_ERROR("Runtime error: %s", "Assert failed");
3903 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10423);
3904 fatal_exit(1);
3905 }
3906 var2 = NEW_nit__AIdAtid(&type_nit__AIdAtid);
3907 {
3908 nit__parser_prod___AIdAtid___init_aidatid(var2, var_tidnode2); /* Direct call parser_prod#AIdAtid#init_aidatid on <var2:AIdAtid>*/
3909 }
3910 var_patidnode1 = var2;
3911 var_node_list = var_patidnode1;
3912 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction440> */
3913 {
3914 var4 = nit___nit__Parser___go_to(var_p, var3);
3915 }
3916 {
3917 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3918 }
3919 RET_LABEL:;
3920 }
3921 /* method parser#ReduceAction441#action for (self: ReduceAction441, Parser) */
3922 void nit__parser___nit__parser__ReduceAction441___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3923 val* var_p /* var p: Parser */;
3924 val* var_node_list /* var node_list: nullable Object */;
3925 val* var /* : nullable Object */;
3926 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3927 val* var_tkwexternnode2 /* var tkwexternnode2: nullable Object */;
3928 short int var1 /* : Bool */;
3929 int cltype;
3930 int idtype;
3931 val* var2 /* : AKwexternAtid */;
3932 val* var_patidnode1 /* var patidnode1: nullable AKwexternAtid */;
3933 long var3 /* : Int */;
3934 long var4 /* : Int */;
3935 var_p = p0;
3936 var_node_list = ((val*)NULL);
3937 {
3938 var = nit___nit__Parser___pop(var_p);
3939 }
3940 var_nodearraylist1 = var;
3941 var_tkwexternnode2 = var_nodearraylist1;
3942 /* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
3943 cltype = type_nullable__nit__TKwextern.color;
3944 idtype = type_nullable__nit__TKwextern.id;
3945 if(var_tkwexternnode2 == NULL) {
3946 var1 = 1;
3947 } else {
3948 if(cltype >= (((long)var_tkwexternnode2&3)?type_info[((long)var_tkwexternnode2&3)]:var_tkwexternnode2->type)->table_size) {
3949 var1 = 0;
3950 } else {
3951 var1 = (((long)var_tkwexternnode2&3)?type_info[((long)var_tkwexternnode2&3)]:var_tkwexternnode2->type)->type_table[cltype] == idtype;
3952 }
3953 }
3954 if (unlikely(!var1)) {
3955 PRINT_ERROR("Runtime error: %s", "Assert failed");
3956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10438);
3957 fatal_exit(1);
3958 }
3959 var2 = NEW_nit__AKwexternAtid(&type_nit__AKwexternAtid);
3960 {
3961 nit__parser_prod___AKwexternAtid___init_akwexternatid(var2, var_tkwexternnode2); /* Direct call parser_prod#AKwexternAtid#init_akwexternatid on <var2:AKwexternAtid>*/
3962 }
3963 var_patidnode1 = var2;
3964 var_node_list = var_patidnode1;
3965 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction441> */
3966 {
3967 var4 = nit___nit__Parser___go_to(var_p, var3);
3968 }
3969 {
3970 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3971 }
3972 RET_LABEL:;
3973 }
3974 /* method parser#ReduceAction442#action for (self: ReduceAction442, Parser) */
3975 void nit__parser___nit__parser__ReduceAction442___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3976 val* var_p /* var p: Parser */;
3977 val* var_node_list /* var node_list: nullable Object */;
3978 val* var /* : nullable Object */;
3979 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3980 val* var_tkwabstractnode2 /* var tkwabstractnode2: nullable Object */;
3981 short int var1 /* : Bool */;
3982 int cltype;
3983 int idtype;
3984 val* var2 /* : AKwabstractAtid */;
3985 val* var_patidnode1 /* var patidnode1: nullable AKwabstractAtid */;
3986 long var3 /* : Int */;
3987 long var4 /* : Int */;
3988 var_p = p0;
3989 var_node_list = ((val*)NULL);
3990 {
3991 var = nit___nit__Parser___pop(var_p);
3992 }
3993 var_nodearraylist1 = var;
3994 var_tkwabstractnode2 = var_nodearraylist1;
3995 /* <var_tkwabstractnode2:nullable Object> isa nullable TKwabstract */
3996 cltype = type_nullable__nit__TKwabstract.color;
3997 idtype = type_nullable__nit__TKwabstract.id;
3998 if(var_tkwabstractnode2 == NULL) {
3999 var1 = 1;
4000 } else {
4001 if(cltype >= (((long)var_tkwabstractnode2&3)?type_info[((long)var_tkwabstractnode2&3)]:var_tkwabstractnode2->type)->table_size) {
4002 var1 = 0;
4003 } else {
4004 var1 = (((long)var_tkwabstractnode2&3)?type_info[((long)var_tkwabstractnode2&3)]:var_tkwabstractnode2->type)->type_table[cltype] == idtype;
4005 }
4006 }
4007 if (unlikely(!var1)) {
4008 PRINT_ERROR("Runtime error: %s", "Assert failed");
4009 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10453);
4010 fatal_exit(1);
4011 }
4012 var2 = NEW_nit__AKwabstractAtid(&type_nit__AKwabstractAtid);
4013 {
4014 nit__parser_prod___AKwabstractAtid___init_akwabstractatid(var2, var_tkwabstractnode2); /* Direct call parser_prod#AKwabstractAtid#init_akwabstractatid on <var2:AKwabstractAtid>*/
4015 }
4016 var_patidnode1 = var2;
4017 var_node_list = var_patidnode1;
4018 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction442> */
4019 {
4020 var4 = nit___nit__Parser___go_to(var_p, var3);
4021 }
4022 {
4023 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4024 }
4025 RET_LABEL:;
4026 }
4027 /* method parser#ReduceAction443#action for (self: ReduceAction443, Parser) */
4028 void nit__parser___nit__parser__ReduceAction443___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4029 val* var_p /* var p: Parser */;
4030 val* var_node_list /* var node_list: nullable Object */;
4031 val* var /* : nullable Object */;
4032 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4033 val* var1 /* : nullable Object */;
4034 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4035 val* var2 /* : nullable Object */;
4036 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4037 val* var3 /* : nullable Object */;
4038 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4039 val* var4 /* : Array[Object] */;
4040 val* var_listnode4 /* var listnode4: Array[Object] */;
4041 val* var_toparnode2 /* var toparnode2: nullable Object */;
4042 short int var5 /* : Bool */;
4043 int cltype;
4044 int idtype;
4045 val* var_listnode3 /* var listnode3: nullable Object */;
4046 short int var6 /* : Bool */;
4047 int cltype7;
4048 int idtype8;
4049 val* var9 /* : Array[Object] */;
4050 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
4051 short int var10 /* : Bool */;
4052 int cltype11;
4053 int idtype12;
4054 val* var13 /* : AParExprs */;
4055 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
4056 long var14 /* : Int */;
4057 long var15 /* : Int */;
4058 var_p = p0;
4059 var_node_list = ((val*)NULL);
4060 {
4061 var = nit___nit__Parser___pop(var_p);
4062 }
4063 var_nodearraylist4 = var;
4064 {
4065 var1 = nit___nit__Parser___pop(var_p);
4066 }
4067 var_nodearraylist3 = var1;
4068 {
4069 var2 = nit___nit__Parser___pop(var_p);
4070 }
4071 var_nodearraylist2 = var2;
4072 {
4073 var3 = nit___nit__Parser___pop(var_p);
4074 }
4075 var_nodearraylist1 = var3;
4076 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
4077 {
4078 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
4079 }
4080 var_listnode4 = var4;
4081 var_toparnode2 = var_nodearraylist1;
4082 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4083 cltype = type_nullable__nit__TOpar.color;
4084 idtype = type_nullable__nit__TOpar.id;
4085 if(var_toparnode2 == NULL) {
4086 var5 = 1;
4087 } else {
4088 if(cltype >= (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->table_size) {
4089 var5 = 0;
4090 } else {
4091 var5 = (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->type_table[cltype] == idtype;
4092 }
4093 }
4094 if (unlikely(!var5)) {
4095 PRINT_ERROR("Runtime error: %s", "Assert failed");
4096 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10472);
4097 fatal_exit(1);
4098 }
4099 var_listnode3 = var_nodearraylist3;
4100 /* <var_listnode3:nullable Object> isa Array[Object] */
4101 cltype7 = type_standard__Array__standard__Object.color;
4102 idtype8 = type_standard__Array__standard__Object.id;
4103 if(var_listnode3 == NULL) {
4104 var6 = 0;
4105 } else {
4106 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
4107 var6 = 0;
4108 } else {
4109 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
4110 }
4111 }
4112 if (unlikely(!var6)) {
4113 PRINT_ERROR("Runtime error: %s", "Assert failed");
4114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10474);
4115 fatal_exit(1);
4116 }
4117 {
4118 var9 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
4119 }
4120 var_listnode4 = var9;
4121 var_tcparnode5 = var_nodearraylist4;
4122 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
4123 cltype11 = type_nullable__nit__TCpar.color;
4124 idtype12 = type_nullable__nit__TCpar.id;
4125 if(var_tcparnode5 == NULL) {
4126 var10 = 1;
4127 } else {
4128 if(cltype11 >= (((long)var_tcparnode5&3)?type_info[((long)var_tcparnode5&3)]:var_tcparnode5->type)->table_size) {
4129 var10 = 0;
4130 } else {
4131 var10 = (((long)var_tcparnode5&3)?type_info[((long)var_tcparnode5&3)]:var_tcparnode5->type)->type_table[cltype11] == idtype12;
4132 }
4133 }
4134 if (unlikely(!var10)) {
4135 PRINT_ERROR("Runtime error: %s", "Assert failed");
4136 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10477);
4137 fatal_exit(1);
4138 }
4139 var13 = NEW_nit__AParExprs(&type_nit__AParExprs);
4140 {
4141 nit__parser_prod___AParExprs___init_aparexprs(var13, var_toparnode2, var_listnode4, var_tcparnode5); /* Direct call parser_prod#AParExprs#init_aparexprs on <var13:AParExprs>*/
4142 }
4143 var_pexprsnode1 = var13;
4144 var_node_list = var_pexprsnode1;
4145 var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction443> */
4146 {
4147 var15 = nit___nit__Parser___go_to(var_p, var14);
4148 }
4149 {
4150 nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4151 }
4152 RET_LABEL:;
4153 }
4154 /* method parser#ReduceAction444#action for (self: ReduceAction444, Parser) */
4155 void nit__parser___nit__parser__ReduceAction444___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4156 val* var_p /* var p: Parser */;
4157 val* var_node_list /* var node_list: nullable Object */;
4158 val* var /* : nullable Object */;
4159 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4160 val* var1 /* : nullable Object */;
4161 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4162 val* var2 /* : nullable Object */;
4163 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4164 val* var3 /* : Array[Object] */;
4165 val* var_listnode3 /* var listnode3: Array[Object] */;
4166 val* var_toparnode2 /* var toparnode2: nullable Object */;
4167 short int var4 /* : Bool */;
4168 int cltype;
4169 int idtype;
4170 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
4171 short int var5 /* : Bool */;
4172 int cltype6;
4173 int idtype7;
4174 val* var8 /* : AParExprs */;
4175 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
4176 long var9 /* : Int */;
4177 long var10 /* : Int */;
4178 var_p = p0;
4179 var_node_list = ((val*)NULL);
4180 {
4181 var = nit___nit__Parser___pop(var_p);
4182 }
4183 var_nodearraylist3 = var;
4184 {
4185 var1 = nit___nit__Parser___pop(var_p);
4186 }
4187 var_nodearraylist2 = var1;
4188 {
4189 var2 = nit___nit__Parser___pop(var_p);
4190 }
4191 var_nodearraylist1 = var2;
4192 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
4193 {
4194 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
4195 }
4196 var_listnode3 = var3;
4197 var_toparnode2 = var_nodearraylist1;
4198 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4199 cltype = type_nullable__nit__TOpar.color;
4200 idtype = type_nullable__nit__TOpar.id;
4201 if(var_toparnode2 == NULL) {
4202 var4 = 1;
4203 } else {
4204 if(cltype >= (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->table_size) {
4205 var4 = 0;
4206 } else {
4207 var4 = (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->type_table[cltype] == idtype;
4208 }
4209 }
4210 if (unlikely(!var4)) {
4211 PRINT_ERROR("Runtime error: %s", "Assert failed");
4212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10497);
4213 fatal_exit(1);
4214 }
4215 var_tcparnode4 = var_nodearraylist3;
4216 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
4217 cltype6 = type_nullable__nit__TCpar.color;
4218 idtype7 = type_nullable__nit__TCpar.id;
4219 if(var_tcparnode4 == NULL) {
4220 var5 = 1;
4221 } else {
4222 if(cltype6 >= (((long)var_tcparnode4&3)?type_info[((long)var_tcparnode4&3)]:var_tcparnode4->type)->table_size) {
4223 var5 = 0;
4224 } else {
4225 var5 = (((long)var_tcparnode4&3)?type_info[((long)var_tcparnode4&3)]:var_tcparnode4->type)->type_table[cltype6] == idtype7;
4226 }
4227 }
4228 if (unlikely(!var5)) {
4229 PRINT_ERROR("Runtime error: %s", "Assert failed");
4230 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10499);
4231 fatal_exit(1);
4232 }
4233 var8 = NEW_nit__AParExprs(&type_nit__AParExprs);
4234 {
4235 nit__parser_prod___AParExprs___init_aparexprs(var8, var_toparnode2, var_listnode3, var_tcparnode4); /* Direct call parser_prod#AParExprs#init_aparexprs on <var8:AParExprs>*/
4236 }
4237 var_pexprsnode1 = var8;
4238 var_node_list = var_pexprsnode1;
4239 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction444> */
4240 {
4241 var10 = nit___nit__Parser___go_to(var_p, var9);
4242 }
4243 {
4244 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4245 }
4246 RET_LABEL:;
4247 }
4248 /* method parser#ReduceAction446#action for (self: ReduceAction446, Parser) */
4249 void nit__parser___nit__parser__ReduceAction446___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4250 val* var_p /* var p: Parser */;
4251 val* var_node_list /* var node_list: nullable Object */;
4252 val* var /* : nullable Object */;
4253 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4254 val* var1 /* : Array[Object] */;
4255 val* var_listnode3 /* var listnode3: Array[Object] */;
4256 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4257 short int var2 /* : Bool */;
4258 int cltype;
4259 int idtype;
4260 short int var3 /* : Bool */;
4261 short int var4 /* : Bool */;
4262 val* var_other /* var other: nullable Object */;
4263 short int var6 /* : Bool */;
4264 short int var7 /* : Bool */;
4265 val* var8 /* : AListExprs */;
4266 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
4267 long var9 /* : Int */;
4268 long var10 /* : Int */;
4269 var_p = p0;
4270 var_node_list = ((val*)NULL);
4271 {
4272 var = nit___nit__Parser___pop(var_p);
4273 }
4274 var_nodearraylist1 = var;
4275 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
4276 {
4277 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
4278 }
4279 var_listnode3 = var1;
4280 var_pexprnode2 = var_nodearraylist1;
4281 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4282 cltype = type_nullable__nit__AExpr.color;
4283 idtype = type_nullable__nit__AExpr.id;
4284 if(var_pexprnode2 == NULL) {
4285 var2 = 1;
4286 } else {
4287 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
4288 var2 = 0;
4289 } else {
4290 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
4291 }
4292 }
4293 if (unlikely(!var2)) {
4294 PRINT_ERROR("Runtime error: %s", "Assert failed");
4295 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10517);
4296 fatal_exit(1);
4297 }
4298 if (var_pexprnode2 == NULL) {
4299 var3 = 0; /* is null */
4300 } else {
4301 var3 = 1; /* arg is null and recv is not */
4302 }
4303 if (0) {
4304 { /* Inline kernel#Object#!= (var_pexprnode2,((val*)NULL)) on <var_pexprnode2:nullable Object(nullable AExpr)> */
4305 var_other = ((val*)NULL);
4306 {
4307 var6 = ((short int(*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other); /* == on <var_pexprnode2:nullable AExpr(AExpr)>*/
4308 }
4309 var7 = !var6;
4310 var4 = var7;
4311 goto RET_LABEL5;
4312 RET_LABEL5:(void)0;
4313 }
4314 var3 = var4;
4315 }
4316 if (var3){
4317 {
4318 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
4319 }
4320 } else {
4321 }
4322 var8 = NEW_nit__AListExprs(&type_nit__AListExprs);
4323 {
4324 nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode3); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
4325 }
4326 var_pexprsnode1 = var8;
4327 var_node_list = var_pexprsnode1;
4328 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction446> */
4329 {
4330 var10 = nit___nit__Parser___go_to(var_p, var9);
4331 }
4332 {
4333 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4334 }
4335 RET_LABEL:;
4336 }
4337 /* method parser#ReduceAction448#action for (self: ReduceAction448, Parser) */
4338 void nit__parser___nit__parser__ReduceAction448___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4339 val* var_p /* var p: Parser */;
4340 val* var_node_list /* var node_list: nullable Object */;
4341 val* var /* : Array[Object] */;
4342 val* var_listnode2 /* var listnode2: Array[Object] */;
4343 val* var1 /* : AListExprs */;
4344 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
4345 long var2 /* : Int */;
4346 long var3 /* : Int */;
4347 var_p = p0;
4348 var_node_list = ((val*)NULL);
4349 var = NEW_standard__Array(&type_standard__Array__standard__Object);
4350 {
4351 standard___standard__Array___standard__kernel__Object__init(var); /* Direct call array#Array#init on <var:Array[Object]>*/
4352 }
4353 var_listnode2 = var;
4354 var1 = NEW_nit__AListExprs(&type_nit__AListExprs);
4355 {
4356 nit__parser_prod___AListExprs___init_alistexprs(var1, var_listnode2); /* Direct call parser_prod#AListExprs#init_alistexprs on <var1:AListExprs>*/
4357 }
4358 var_pexprsnode1 = var1;
4359 var_node_list = var_pexprsnode1;
4360 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction448> */
4361 {
4362 var3 = nit___nit__Parser___go_to(var_p, var2);
4363 }
4364 {
4365 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4366 }
4367 RET_LABEL:;
4368 }
4369 /* method parser#ReduceAction449#action for (self: ReduceAction449, Parser) */
4370 void nit__parser___nit__parser__ReduceAction449___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4371 val* var_p /* var p: Parser */;
4372 val* var_node_list /* var node_list: nullable Object */;
4373 val* var /* : nullable Object */;
4374 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4375 val* var1 /* : nullable Object */;
4376 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4377 val* var2 /* : nullable Object */;
4378 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4379 val* var3 /* : nullable Object */;
4380 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4381 val* var4 /* : Array[Object] */;
4382 val* var_listnode4 /* var listnode4: Array[Object] */;
4383 val* var_tobranode2 /* var tobranode2: nullable Object */;
4384 short int var5 /* : Bool */;
4385 int cltype;
4386 int idtype;
4387 val* var_listnode3 /* var listnode3: nullable Object */;
4388 short int var6 /* : Bool */;
4389 int cltype7;
4390 int idtype8;
4391 val* var9 /* : Array[Object] */;
4392 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
4393 short int var10 /* : Bool */;
4394 int cltype11;
4395 int idtype12;
4396 val* var13 /* : ABraExprs */;
4397 val* var_pexprsnode1 /* var pexprsnode1: nullable ABraExprs */;
4398 long var14 /* : Int */;
4399 long var15 /* : Int */;
4400 var_p = p0;
4401 var_node_list = ((val*)NULL);
4402 {
4403 var = nit___nit__Parser___pop(var_p);
4404 }
4405 var_nodearraylist4 = var;
4406 {
4407 var1 = nit___nit__Parser___pop(var_p);
4408 }
4409 var_nodearraylist3 = var1;
4410 {
4411 var2 = nit___nit__Parser___pop(var_p);
4412 }
4413 var_nodearraylist2 = var2;
4414 {
4415 var3 = nit___nit__Parser___pop(var_p);
4416 }
4417 var_nodearraylist1 = var3;
4418 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
4419 {
4420 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
4421 }
4422 var_listnode4 = var4;
4423 var_tobranode2 = var_nodearraylist1;
4424 /* <var_tobranode2:nullable Object> isa nullable TObra */
4425 cltype = type_nullable__nit__TObra.color;
4426 idtype = type_nullable__nit__TObra.id;
4427 if(var_tobranode2 == NULL) {
4428 var5 = 1;
4429 } else {
4430 if(cltype >= (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->table_size) {
4431 var5 = 0;
4432 } else {
4433 var5 = (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->type_table[cltype] == idtype;
4434 }
4435 }
4436 if (unlikely(!var5)) {
4437 PRINT_ERROR("Runtime error: %s", "Assert failed");
4438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10552);
4439 fatal_exit(1);
4440 }
4441 var_listnode3 = var_nodearraylist3;
4442 /* <var_listnode3:nullable Object> isa Array[Object] */
4443 cltype7 = type_standard__Array__standard__Object.color;
4444 idtype8 = type_standard__Array__standard__Object.id;
4445 if(var_listnode3 == NULL) {
4446 var6 = 0;
4447 } else {
4448 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
4449 var6 = 0;
4450 } else {
4451 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
4452 }
4453 }
4454 if (unlikely(!var6)) {
4455 PRINT_ERROR("Runtime error: %s", "Assert failed");
4456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10554);
4457 fatal_exit(1);
4458 }
4459 {
4460 var9 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
4461 }
4462 var_listnode4 = var9;
4463 var_tcbranode5 = var_nodearraylist4;
4464 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
4465 cltype11 = type_nullable__nit__TCbra.color;
4466 idtype12 = type_nullable__nit__TCbra.id;
4467 if(var_tcbranode5 == NULL) {
4468 var10 = 1;
4469 } else {
4470 if(cltype11 >= (((long)var_tcbranode5&3)?type_info[((long)var_tcbranode5&3)]:var_tcbranode5->type)->table_size) {
4471 var10 = 0;
4472 } else {
4473 var10 = (((long)var_tcbranode5&3)?type_info[((long)var_tcbranode5&3)]:var_tcbranode5->type)->type_table[cltype11] == idtype12;
4474 }
4475 }
4476 if (unlikely(!var10)) {
4477 PRINT_ERROR("Runtime error: %s", "Assert failed");
4478 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10557);
4479 fatal_exit(1);
4480 }
4481 var13 = NEW_nit__ABraExprs(&type_nit__ABraExprs);
4482 {
4483 nit__parser_prod___ABraExprs___init_abraexprs(var13, var_tobranode2, var_listnode4, var_tcbranode5); /* Direct call parser_prod#ABraExprs#init_abraexprs on <var13:ABraExprs>*/
4484 }
4485 var_pexprsnode1 = var13;
4486 var_node_list = var_pexprsnode1;
4487 var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction449> */
4488 {
4489 var15 = nit___nit__Parser___go_to(var_p, var14);
4490 }
4491 {
4492 nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4493 }
4494 RET_LABEL:;
4495 }
4496 /* method parser#ReduceAction451#action for (self: ReduceAction451, Parser) */
4497 void nit__parser___nit__parser__ReduceAction451___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4498 val* var_p /* var p: Parser */;
4499 val* var_node_list /* var node_list: nullable Object */;
4500 val* var /* : nullable Object */;
4501 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4502 val* var1 /* : nullable Object */;
4503 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4504 val* var2 /* : nullable Object */;
4505 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4506 val* var3 /* : Array[Object] */;
4507 val* var_listnode3 /* var listnode3: Array[Object] */;
4508 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
4509 val* var_listnode2 /* var listnode2: nullable Object */;
4510 short int var4 /* : Bool */;
4511 int cltype;
4512 int idtype;
4513 short int var5 /* : Bool */;
4514 short int var6 /* : Bool */;
4515 val* var7 /* : Array[Object] */;
4516 long var8 /* : Int */;
4517 long var9 /* : Int */;
4518 var_p = p0;
4519 var_node_list = ((val*)NULL);
4520 {
4521 var = nit___nit__Parser___pop(var_p);
4522 }
4523 var_nodearraylist3 = var;
4524 {
4525 var1 = nit___nit__Parser___pop(var_p);
4526 }
4527 var_nodearraylist2 = var1;
4528 {
4529 var2 = nit___nit__Parser___pop(var_p);
4530 }
4531 var_nodearraylist1 = var2;
4532 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
4533 {
4534 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
4535 }
4536 var_listnode3 = var3;
4537 var_pexprnode1 = var_nodearraylist1;
4538 var_listnode2 = var_nodearraylist3;
4539 /* <var_listnode2:nullable Object> isa Array[Object] */
4540 cltype = type_standard__Array__standard__Object.color;
4541 idtype = type_standard__Array__standard__Object.id;
4542 if(var_listnode2 == NULL) {
4543 var4 = 0;
4544 } else {
4545 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
4546 var4 = 0;
4547 } else {
4548 var4 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
4549 }
4550 }
4551 if (unlikely(!var4)) {
4552 PRINT_ERROR("Runtime error: %s", "Assert failed");
4553 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10578);
4554 fatal_exit(1);
4555 }
4556 if (var_pexprnode1 == NULL) {
4557 var5 = 0; /* is null */
4558 } else {
4559 var5 = 1; /* arg is null and recv is not */
4560 }
4561 if (0) {
4562 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode1&3)?class_info[((long)var_pexprnode1&3)]:var_pexprnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexprnode1, ((val*)NULL)); /* != on <var_pexprnode1:nullable Object>*/
4563 var5 = var6;
4564 }
4565 if (var5){
4566 {
4567 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode1); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
4568 }
4569 } else {
4570 }
4571 {
4572 var7 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
4573 }
4574 var_listnode3 = var7;
4575 var_node_list = var_listnode3;
4576 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction451> */
4577 {
4578 var9 = nit___nit__Parser___go_to(var_p, var8);
4579 }
4580 {
4581 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4582 }
4583 RET_LABEL:;
4584 }
4585 /* method parser#ReduceAction452#action for (self: ReduceAction452, Parser) */
4586 void nit__parser___nit__parser__ReduceAction452___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4587 val* var_p /* var p: Parser */;
4588 val* var_node_list /* var node_list: nullable Object */;
4589 val* var /* : nullable Object */;
4590 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4591 val* var1 /* : nullable Object */;
4592 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4593 val* var2 /* : nullable Object */;
4594 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4595 val* var3 /* : nullable Object */;
4596 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4597 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
4598 long var4 /* : Int */;
4599 long var5 /* : Int */;
4600 var_p = p0;
4601 var_node_list = ((val*)NULL);
4602 {
4603 var = nit___nit__Parser___pop(var_p);
4604 }
4605 var_nodearraylist4 = var;
4606 {
4607 var1 = nit___nit__Parser___pop(var_p);
4608 }
4609 var_nodearraylist3 = var1;
4610 {
4611 var2 = nit___nit__Parser___pop(var_p);
4612 }
4613 var_nodearraylist2 = var2;
4614 {
4615 var3 = nit___nit__Parser___pop(var_p);
4616 }
4617 var_nodearraylist1 = var3;
4618 var_pexprnode1 = var_nodearraylist3;
4619 var_node_list = var_pexprnode1;
4620 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction452> */
4621 {
4622 var5 = nit___nit__Parser___go_to(var_p, var4);
4623 }
4624 {
4625 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4626 }
4627 RET_LABEL:;
4628 }
4629 /* method parser#ReduceAction453#action for (self: ReduceAction453, Parser) */
4630 void nit__parser___nit__parser__ReduceAction453___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4631 val* var_p /* var p: Parser */;
4632 val* var_node_list /* var node_list: nullable Object */;
4633 val* var /* : nullable Object */;
4634 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4635 val* var1 /* : nullable Object */;
4636 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4637 val* var2 /* : nullable Object */;
4638 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4639 val* var3 /* : nullable Object */;
4640 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4641 val* var4 /* : nullable Object */;
4642 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4643 val* var5 /* : Array[Object] */;
4644 val* var_listnode2 /* var listnode2: Array[Object] */;
4645 val* var_listnode1 /* var listnode1: nullable Object */;
4646 short int var6 /* : Bool */;
4647 int cltype;
4648 int idtype;
4649 val* var7 /* : Array[Object] */;
4650 long var8 /* : Int */;
4651 long var9 /* : Int */;
4652 var_p = p0;
4653 var_node_list = ((val*)NULL);
4654 {
4655 var = nit___nit__Parser___pop(var_p);
4656 }
4657 var_nodearraylist5 = var;
4658 {
4659 var1 = nit___nit__Parser___pop(var_p);
4660 }
4661 var_nodearraylist4 = var1;
4662 {
4663 var2 = nit___nit__Parser___pop(var_p);
4664 }
4665 var_nodearraylist3 = var2;
4666 {
4667 var3 = nit___nit__Parser___pop(var_p);
4668 }
4669 var_nodearraylist2 = var3;
4670 {
4671 var4 = nit___nit__Parser___pop(var_p);
4672 }
4673 var_nodearraylist1 = var4;
4674 var5 = NEW_standard__Array(&type_standard__Array__standard__Object);
4675 {
4676 standard___standard__Array___standard__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Object]>*/
4677 }
4678 var_listnode2 = var5;
4679 var_listnode1 = var_nodearraylist3;
4680 /* <var_listnode1:nullable Object> isa Array[Object] */
4681 cltype = type_standard__Array__standard__Object.color;
4682 idtype = type_standard__Array__standard__Object.id;
4683 if(var_listnode1 == NULL) {
4684 var6 = 0;
4685 } else {
4686 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
4687 var6 = 0;
4688 } else {
4689 var6 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
4690 }
4691 }
4692 if (unlikely(!var6)) {
4693 PRINT_ERROR("Runtime error: %s", "Assert failed");
4694 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10613);
4695 fatal_exit(1);
4696 }
4697 {
4698 var7 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode2, var_listnode1);
4699 }
4700 var_listnode2 = var7;
4701 var_node_list = var_listnode2;
4702 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction453> */
4703 {
4704 var9 = nit___nit__Parser___go_to(var_p, var8);
4705 }
4706 {
4707 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4708 }
4709 RET_LABEL:;
4710 }
4711 /* method parser#ReduceAction454#action for (self: ReduceAction454, Parser) */
4712 void nit__parser___nit__parser__ReduceAction454___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4713 val* var_p /* var p: Parser */;
4714 val* var_node_list /* var node_list: nullable Object */;
4715 val* var /* : nullable Object */;
4716 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4717 val* var1 /* : Array[Object] */;
4718 val* var_listnode2 /* var listnode2: Array[Object] */;
4719 val* var_listnode1 /* var listnode1: nullable Object */;
4720 short int var2 /* : Bool */;
4721 int cltype;
4722 int idtype;
4723 val* var3 /* : Array[Object] */;
4724 long var4 /* : Int */;
4725 long var5 /* : Int */;
4726 var_p = p0;
4727 var_node_list = ((val*)NULL);
4728 {
4729 var = nit___nit__Parser___pop(var_p);
4730 }
4731 var_nodearraylist1 = var;
4732 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
4733 {
4734 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
4735 }
4736 var_listnode2 = var1;
4737 var_listnode1 = var_nodearraylist1;
4738 /* <var_listnode1:nullable Object> isa Array[Object] */
4739 cltype = type_standard__Array__standard__Object.color;
4740 idtype = type_standard__Array__standard__Object.id;
4741 if(var_listnode1 == NULL) {
4742 var2 = 0;
4743 } else {
4744 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
4745 var2 = 0;
4746 } else {
4747 var2 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
4748 }
4749 }
4750 if (unlikely(!var2)) {
4751 PRINT_ERROR("Runtime error: %s", "Assert failed");
4752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10627);
4753 fatal_exit(1);
4754 }
4755 {
4756 var3 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode2, var_listnode1);
4757 }
4758 var_listnode2 = var3;
4759 var_node_list = var_listnode2;
4760 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction454> */
4761 {
4762 var5 = nit___nit__Parser___go_to(var_p, var4);
4763 }
4764 {
4765 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4766 }
4767 RET_LABEL:;
4768 }
4769 /* method parser#ReduceAction455#action for (self: ReduceAction455, Parser) */
4770 void nit__parser___nit__parser__ReduceAction455___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4771 val* var_p /* var p: Parser */;
4772 val* var_node_list /* var node_list: nullable Object */;
4773 val* var /* : nullable Object */;
4774 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4775 val* var1 /* : Array[Object] */;
4776 val* var_listnode2 /* var listnode2: Array[Object] */;
4777 val* var_tidnode1 /* var tidnode1: nullable Object */;
4778 short int var2 /* : Bool */;
4779 short int var3 /* : Bool */;
4780 long var4 /* : Int */;
4781 long var5 /* : Int */;
4782 var_p = p0;
4783 var_node_list = ((val*)NULL);
4784 {
4785 var = nit___nit__Parser___pop(var_p);
4786 }
4787 var_nodearraylist1 = var;
4788 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
4789 {
4790 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
4791 }
4792 var_listnode2 = var1;
4793 var_tidnode1 = var_nodearraylist1;
4794 if (var_tidnode1 == NULL) {
4795 var2 = 0; /* is null */
4796 } else {
4797 var2 = 1; /* arg is null and recv is not */
4798 }
4799 if (0) {
4800 var3 = ((short int(*)(val* self, val* p0))((((long)var_tidnode1&3)?class_info[((long)var_tidnode1&3)]:var_tidnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_tidnode1, ((val*)NULL)); /* != on <var_tidnode1:nullable Object>*/
4801 var2 = var3;
4802 }
4803 if (var2){
4804 {
4805 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_tidnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
4806 }
4807 } else {
4808 }
4809 var_node_list = var_listnode2;
4810 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction455> */
4811 {
4812 var5 = nit___nit__Parser___go_to(var_p, var4);
4813 }
4814 {
4815 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4816 }
4817 RET_LABEL:;
4818 }
4819 /* method parser#ReduceAction456#action for (self: ReduceAction456, Parser) */
4820 void nit__parser___nit__parser__ReduceAction456___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4821 val* var_p /* var p: Parser */;
4822 val* var_node_list /* var node_list: nullable Object */;
4823 val* var /* : nullable Object */;
4824 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4825 val* var1 /* : nullable Object */;
4826 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4827 val* var2 /* : nullable Object */;
4828 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4829 val* var3 /* : nullable Object */;
4830 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4831 val* var4 /* : Array[Object] */;
4832 val* var_listnode3 /* var listnode3: Array[Object] */;
4833 val* var_listnode1 /* var listnode1: nullable Object */;
4834 short int var5 /* : Bool */;
4835 int cltype;
4836 int idtype;
4837 val* var_tidnode2 /* var tidnode2: nullable Object */;
4838 val* var6 /* : Array[Object] */;
4839 short int var7 /* : Bool */;
4840 short int var8 /* : Bool */;
4841 long var9 /* : Int */;
4842 long var10 /* : Int */;
4843 var_p = p0;
4844 var_node_list = ((val*)NULL);
4845 {
4846 var = nit___nit__Parser___pop(var_p);
4847 }
4848 var_nodearraylist4 = var;
4849 {
4850 var1 = nit___nit__Parser___pop(var_p);
4851 }
4852 var_nodearraylist3 = var1;
4853 {
4854 var2 = nit___nit__Parser___pop(var_p);
4855 }
4856 var_nodearraylist2 = var2;
4857 {
4858 var3 = nit___nit__Parser___pop(var_p);
4859 }
4860 var_nodearraylist1 = var3;
4861 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
4862 {
4863 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
4864 }
4865 var_listnode3 = var4;
4866 var_listnode1 = var_nodearraylist1;
4867 /* <var_listnode1:nullable Object> isa Array[Object] */
4868 cltype = type_standard__Array__standard__Object.color;
4869 idtype = type_standard__Array__standard__Object.id;
4870 if(var_listnode1 == NULL) {
4871 var5 = 0;
4872 } else {
4873 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
4874 var5 = 0;
4875 } else {
4876 var5 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
4877 }
4878 }
4879 if (unlikely(!var5)) {
4880 PRINT_ERROR("Runtime error: %s", "Assert failed");
4881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10659);
4882 fatal_exit(1);
4883 }
4884 var_tidnode2 = var_nodearraylist4;
4885 {
4886 var6 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
4887 }
4888 var_listnode3 = var6;
4889 if (var_tidnode2 == NULL) {
4890 var7 = 0; /* is null */
4891 } else {
4892 var7 = 1; /* arg is null and recv is not */
4893 }
4894 if (0) {
4895 var8 = ((short int(*)(val* self, val* p0))((((long)var_tidnode2&3)?class_info[((long)var_tidnode2&3)]:var_tidnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_tidnode2, ((val*)NULL)); /* != on <var_tidnode2:nullable Object>*/
4896 var7 = var8;
4897 }
4898 if (var7){
4899 {
4900 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_tidnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
4901 }
4902 } else {
4903 }
4904 var_node_list = var_listnode3;
4905 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction456> */
4906 {
4907 var10 = nit___nit__Parser___go_to(var_p, var9);
4908 }
4909 {
4910 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4911 }
4912 RET_LABEL:;
4913 }
4914 /* method parser#ReduceAction457#action for (self: ReduceAction457, Parser) */
4915 void nit__parser___nit__parser__ReduceAction457___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4916 val* var_p /* var p: Parser */;
4917 val* var_node_list /* var node_list: nullable Object */;
4918 val* var /* : nullable Object */;
4919 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4920 val* var1 /* : Array[Object] */;
4921 val* var_listnode3 /* var listnode3: Array[Object] */;
4922 val* var_tidnode4 /* var tidnode4: nullable Object */;
4923 short int var2 /* : Bool */;
4924 int cltype;
4925 int idtype;
4926 val* var3 /* : AModuleName */;
4927 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
4928 long var4 /* : Int */;
4929 long var5 /* : Int */;
4930 var_p = p0;
4931 var_node_list = ((val*)NULL);
4932 {
4933 var = nit___nit__Parser___pop(var_p);
4934 }
4935 var_nodearraylist1 = var;
4936 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
4937 {
4938 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
4939 }
4940 var_listnode3 = var1;
4941 var_tidnode4 = var_nodearraylist1;
4942 /* <var_tidnode4:nullable Object> isa nullable TId */
4943 cltype = type_nullable__nit__TId.color;
4944 idtype = type_nullable__nit__TId.id;
4945 if(var_tidnode4 == NULL) {
4946 var2 = 1;
4947 } else {
4948 if(cltype >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
4949 var2 = 0;
4950 } else {
4951 var2 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype] == idtype;
4952 }
4953 }
4954 if (unlikely(!var2)) {
4955 PRINT_ERROR("Runtime error: %s", "Assert failed");
4956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10677);
4957 fatal_exit(1);
4958 }
4959 var3 = NEW_nit__AModuleName(&type_nit__AModuleName);
4960 {
4961 nit__parser_prod___AModuleName___init_amodulename(var3, ((val*)NULL), var_listnode3, var_tidnode4); /* Direct call parser_prod#AModuleName#init_amodulename on <var3:AModuleName>*/
4962 }
4963 var_pmodulenamenode1 = var3;
4964 var_node_list = var_pmodulenamenode1;
4965 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction457> */
4966 {
4967 var5 = nit___nit__Parser___go_to(var_p, var4);
4968 }
4969 {
4970 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4971 }
4972 RET_LABEL:;
4973 }
4974 /* method parser#ReduceAction458#action for (self: ReduceAction458, Parser) */
4975 void nit__parser___nit__parser__ReduceAction458___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4976 val* var_p /* var p: Parser */;
4977 val* var_node_list /* var node_list: nullable Object */;
4978 val* var /* : nullable Object */;
4979 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4980 val* var1 /* : nullable Object */;
4981 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4982 val* var2 /* : Array[Object] */;
4983 val* var_listnode4 /* var listnode4: Array[Object] */;
4984 val* var_listnode3 /* var listnode3: nullable Object */;
4985 short int var3 /* : Bool */;
4986 int cltype;
4987 int idtype;
4988 val* var4 /* : Array[Object] */;
4989 val* var_tidnode5 /* var tidnode5: nullable Object */;
4990 short int var5 /* : Bool */;
4991 int cltype6;
4992 int idtype7;
4993 val* var8 /* : AModuleName */;
4994 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
4995 long var9 /* : Int */;
4996 long var10 /* : Int */;
4997 var_p = p0;
4998 var_node_list = ((val*)NULL);
4999 {
5000 var = nit___nit__Parser___pop(var_p);
5001 }
5002 var_nodearraylist2 = var;
5003 {
5004 var1 = nit___nit__Parser___pop(var_p);
5005 }
5006 var_nodearraylist1 = var1;
5007 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
5008 {
5009 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
5010 }
5011 var_listnode4 = var2;
5012 var_listnode3 = var_nodearraylist1;
5013 /* <var_listnode3:nullable Object> isa Array[Object] */
5014 cltype = type_standard__Array__standard__Object.color;
5015 idtype = type_standard__Array__standard__Object.id;
5016 if(var_listnode3 == NULL) {
5017 var3 = 0;
5018 } else {
5019 if(cltype >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
5020 var3 = 0;
5021 } else {
5022 var3 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype] == idtype;
5023 }
5024 }
5025 if (unlikely(!var3)) {
5026 PRINT_ERROR("Runtime error: %s", "Assert failed");
5027 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10696);
5028 fatal_exit(1);
5029 }
5030 {
5031 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
5032 }
5033 var_listnode4 = var4;
5034 var_tidnode5 = var_nodearraylist2;
5035 /* <var_tidnode5:nullable Object> isa nullable TId */
5036 cltype6 = type_nullable__nit__TId.color;
5037 idtype7 = type_nullable__nit__TId.id;
5038 if(var_tidnode5 == NULL) {
5039 var5 = 1;
5040 } else {
5041 if(cltype6 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
5042 var5 = 0;
5043 } else {
5044 var5 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype6] == idtype7;
5045 }
5046 }
5047 if (unlikely(!var5)) {
5048 PRINT_ERROR("Runtime error: %s", "Assert failed");
5049 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10699);
5050 fatal_exit(1);
5051 }
5052 var8 = NEW_nit__AModuleName(&type_nit__AModuleName);
5053 {
5054 nit__parser_prod___AModuleName___init_amodulename(var8, ((val*)NULL), var_listnode4, var_tidnode5); /* Direct call parser_prod#AModuleName#init_amodulename on <var8:AModuleName>*/
5055 }
5056 var_pmodulenamenode1 = var8;
5057 var_node_list = var_pmodulenamenode1;
5058 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction458> */
5059 {
5060 var10 = nit___nit__Parser___go_to(var_p, var9);
5061 }
5062 {
5063 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5064 }
5065 RET_LABEL:;
5066 }
5067 /* method parser#ReduceAction459#action for (self: ReduceAction459, Parser) */
5068 void nit__parser___nit__parser__ReduceAction459___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5069 val* var_p /* var p: Parser */;
5070 val* var_node_list /* var node_list: nullable Object */;
5071 val* var /* : nullable Object */;
5072 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5073 val* var1 /* : nullable Object */;
5074 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5075 val* var2 /* : nullable Object */;
5076 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5077 val* var3 /* : Array[Object] */;
5078 val* var_listnode3 /* var listnode3: Array[Object] */;
5079 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
5080 short int var4 /* : Bool */;
5081 int cltype;
5082 int idtype;
5083 val* var_tidnode4 /* var tidnode4: nullable Object */;
5084 short int var5 /* : Bool */;
5085 int cltype6;
5086 int idtype7;
5087 val* var8 /* : AModuleName */;
5088 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
5089 long var9 /* : Int */;
5090 long var10 /* : Int */;
5091 var_p = p0;
5092 var_node_list = ((val*)NULL);
5093 {
5094 var = nit___nit__Parser___pop(var_p);
5095 }
5096 var_nodearraylist3 = var;
5097 {
5098 var1 = nit___nit__Parser___pop(var_p);
5099 }
5100 var_nodearraylist2 = var1;
5101 {
5102 var2 = nit___nit__Parser___pop(var_p);
5103 }
5104 var_nodearraylist1 = var2;
5105 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
5106 {
5107 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
5108 }
5109 var_listnode3 = var3;
5110 var_tquadnode2 = var_nodearraylist1;
5111 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
5112 cltype = type_nullable__nit__TQuad.color;
5113 idtype = type_nullable__nit__TQuad.id;
5114 if(var_tquadnode2 == NULL) {
5115 var4 = 1;
5116 } else {
5117 if(cltype >= (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->table_size) {
5118 var4 = 0;
5119 } else {
5120 var4 = (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->type_table[cltype] == idtype;
5121 }
5122 }
5123 if (unlikely(!var4)) {
5124 PRINT_ERROR("Runtime error: %s", "Assert failed");
5125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10719);
5126 fatal_exit(1);
5127 }
5128 var_tidnode4 = var_nodearraylist3;
5129 /* <var_tidnode4:nullable Object> isa nullable TId */
5130 cltype6 = type_nullable__nit__TId.color;
5131 idtype7 = type_nullable__nit__TId.id;
5132 if(var_tidnode4 == NULL) {
5133 var5 = 1;
5134 } else {
5135 if(cltype6 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
5136 var5 = 0;
5137 } else {
5138 var5 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype6] == idtype7;
5139 }
5140 }
5141 if (unlikely(!var5)) {
5142 PRINT_ERROR("Runtime error: %s", "Assert failed");
5143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10721);
5144 fatal_exit(1);
5145 }
5146 var8 = NEW_nit__AModuleName(&type_nit__AModuleName);
5147 {
5148 nit__parser_prod___AModuleName___init_amodulename(var8, var_tquadnode2, var_listnode3, var_tidnode4); /* Direct call parser_prod#AModuleName#init_amodulename on <var8:AModuleName>*/
5149 }
5150 var_pmodulenamenode1 = var8;
5151 var_node_list = var_pmodulenamenode1;
5152 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction459> */
5153 {
5154 var10 = nit___nit__Parser___go_to(var_p, var9);
5155 }
5156 {
5157 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5158 }
5159 RET_LABEL:;
5160 }
5161 /* method parser#ReduceAction460#action for (self: ReduceAction460, Parser) */
5162 void nit__parser___nit__parser__ReduceAction460___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5163 val* var_p /* var p: Parser */;
5164 val* var_node_list /* var node_list: nullable Object */;
5165 val* var /* : nullable Object */;
5166 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5167 val* var1 /* : nullable Object */;
5168 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5169 val* var2 /* : nullable Object */;
5170 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5171 val* var3 /* : nullable Object */;
5172 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5173 val* var4 /* : Array[Object] */;
5174 val* var_listnode4 /* var listnode4: Array[Object] */;
5175 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
5176 short int var5 /* : Bool */;
5177 int cltype;
5178 int idtype;
5179 val* var_listnode3 /* var listnode3: nullable Object */;
5180 short int var6 /* : Bool */;
5181 int cltype7;
5182 int idtype8;
5183 val* var9 /* : Array[Object] */;
5184 val* var_tidnode5 /* var tidnode5: nullable Object */;
5185 short int var10 /* : Bool */;
5186 int cltype11;
5187 int idtype12;
5188 val* var13 /* : AModuleName */;
5189 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
5190 long var14 /* : Int */;
5191 long var15 /* : Int */;
5192 var_p = p0;
5193 var_node_list = ((val*)NULL);
5194 {
5195 var = nit___nit__Parser___pop(var_p);
5196 }
5197 var_nodearraylist4 = var;
5198 {
5199 var1 = nit___nit__Parser___pop(var_p);
5200 }
5201 var_nodearraylist3 = var1;
5202 {
5203 var2 = nit___nit__Parser___pop(var_p);
5204 }
5205 var_nodearraylist2 = var2;
5206 {
5207 var3 = nit___nit__Parser___pop(var_p);
5208 }
5209 var_nodearraylist1 = var3;
5210 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
5211 {
5212 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
5213 }
5214 var_listnode4 = var4;
5215 var_tquadnode2 = var_nodearraylist1;
5216 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
5217 cltype = type_nullable__nit__TQuad.color;
5218 idtype = type_nullable__nit__TQuad.id;
5219 if(var_tquadnode2 == NULL) {
5220 var5 = 1;
5221 } else {
5222 if(cltype >= (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->table_size) {
5223 var5 = 0;
5224 } else {
5225 var5 = (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->type_table[cltype] == idtype;
5226 }
5227 }
5228 if (unlikely(!var5)) {
5229 PRINT_ERROR("Runtime error: %s", "Assert failed");
5230 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10742);
5231 fatal_exit(1);
5232 }
5233 var_listnode3 = var_nodearraylist3;
5234 /* <var_listnode3:nullable Object> isa Array[Object] */
5235 cltype7 = type_standard__Array__standard__Object.color;
5236 idtype8 = type_standard__Array__standard__Object.id;
5237 if(var_listnode3 == NULL) {
5238 var6 = 0;
5239 } else {
5240 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
5241 var6 = 0;
5242 } else {
5243 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
5244 }
5245 }
5246 if (unlikely(!var6)) {
5247 PRINT_ERROR("Runtime error: %s", "Assert failed");
5248 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10744);
5249 fatal_exit(1);
5250 }
5251 {
5252 var9 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
5253 }
5254 var_listnode4 = var9;
5255 var_tidnode5 = var_nodearraylist4;
5256 /* <var_tidnode5:nullable Object> isa nullable TId */
5257 cltype11 = type_nullable__nit__TId.color;
5258 idtype12 = type_nullable__nit__TId.id;
5259 if(var_tidnode5 == NULL) {
5260 var10 = 1;
5261 } else {
5262 if(cltype11 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
5263 var10 = 0;
5264 } else {
5265 var10 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype11] == idtype12;
5266 }
5267 }
5268 if (unlikely(!var10)) {
5269 PRINT_ERROR("Runtime error: %s", "Assert failed");
5270 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10747);
5271 fatal_exit(1);
5272 }
5273 var13 = NEW_nit__AModuleName(&type_nit__AModuleName);
5274 {
5275 nit__parser_prod___AModuleName___init_amodulename(var13, var_tquadnode2, var_listnode4, var_tidnode5); /* Direct call parser_prod#AModuleName#init_amodulename on <var13:AModuleName>*/
5276 }
5277 var_pmodulenamenode1 = var13;
5278 var_node_list = var_pmodulenamenode1;
5279 var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction460> */
5280 {
5281 var15 = nit___nit__Parser___go_to(var_p, var14);
5282 }
5283 {
5284 nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5285 }
5286 RET_LABEL:;
5287 }
5288 /* method parser#ReduceAction461#action for (self: ReduceAction461, Parser) */
5289 void nit__parser___nit__parser__ReduceAction461___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5290 val* var_p /* var p: Parser */;
5291 val* var_node_list /* var node_list: nullable Object */;
5292 val* var /* : nullable Object */;
5293 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5294 val* var1 /* : Array[Object] */;
5295 val* var_listnode2 /* var listnode2: Array[Object] */;
5296 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5297 short int var2 /* : Bool */;
5298 int cltype;
5299 int idtype;
5300 val* var3 /* : AQualified */;
5301 val* var_pqualifiednode1 /* var pqualifiednode1: nullable AQualified */;
5302 long var4 /* : Int */;
5303 long var5 /* : Int */;
5304 var_p = p0;
5305 var_node_list = ((val*)NULL);
5306 {
5307 var = nit___nit__Parser___pop(var_p);
5308 }
5309 var_nodearraylist1 = var;
5310 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
5311 {
5312 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
5313 }
5314 var_listnode2 = var1;
5315 var_tclassidnode3 = var_nodearraylist1;
5316 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5317 cltype = type_nullable__nit__TClassid.color;
5318 idtype = type_nullable__nit__TClassid.id;
5319 if(var_tclassidnode3 == NULL) {
5320 var2 = 1;
5321 } else {
5322 if(cltype >= (((long)var_tclassidnode3&3)?type_info[((long)var_tclassidnode3&3)]:var_tclassidnode3->type)->table_size) {
5323 var2 = 0;
5324 } else {
5325 var2 = (((long)var_tclassidnode3&3)?type_info[((long)var_tclassidnode3&3)]:var_tclassidnode3->type)->type_table[cltype] == idtype;
5326 }
5327 }
5328 if (unlikely(!var2)) {
5329 PRINT_ERROR("Runtime error: %s", "Assert failed");
5330 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10765);
5331 fatal_exit(1);
5332 }
5333 var3 = NEW_nit__AQualified(&type_nit__AQualified);
5334 {
5335 nit__parser_prod___AQualified___init_aqualified(var3, var_listnode2, var_tclassidnode3); /* Direct call parser_prod#AQualified#init_aqualified on <var3:AQualified>*/
5336 }
5337 var_pqualifiednode1 = var3;
5338 var_node_list = var_pqualifiednode1;
5339 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction461> */
5340 {
5341 var5 = nit___nit__Parser___go_to(var_p, var4);
5342 }
5343 {
5344 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5345 }
5346 RET_LABEL:;
5347 }
5348 /* method parser#ReduceAction462#action for (self: ReduceAction462, Parser) */
5349 void nit__parser___nit__parser__ReduceAction462___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5350 val* var_p /* var p: Parser */;
5351 val* var_node_list /* var node_list: nullable Object */;
5352 val* var /* : nullable Object */;
5353 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5354 val* var1 /* : nullable Object */;
5355 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5356 val* var2 /* : Array[Object] */;
5357 val* var_listnode3 /* var listnode3: Array[Object] */;
5358 val* var_listnode2 /* var listnode2: nullable Object */;
5359 short int var3 /* : Bool */;
5360 int cltype;
5361 int idtype;
5362 val* var4 /* : Array[Object] */;
5363 val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
5364 short int var5 /* : Bool */;
5365 int cltype6;
5366 int idtype7;
5367 val* var8 /* : AQualified */;
5368 val* var_pqualifiednode1 /* var pqualifiednode1: nullable AQualified */;
5369 long var9 /* : Int */;
5370 long var10 /* : Int */;
5371 var_p = p0;
5372 var_node_list = ((val*)NULL);
5373 {
5374 var = nit___nit__Parser___pop(var_p);
5375 }
5376 var_nodearraylist2 = var;
5377 {
5378 var1 = nit___nit__Parser___pop(var_p);
5379 }
5380 var_nodearraylist1 = var1;
5381 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
5382 {
5383 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
5384 }
5385 var_listnode3 = var2;
5386 var_listnode2 = var_nodearraylist1;
5387 /* <var_listnode2:nullable Object> isa Array[Object] */
5388 cltype = type_standard__Array__standard__Object.color;
5389 idtype = type_standard__Array__standard__Object.id;
5390 if(var_listnode2 == NULL) {
5391 var3 = 0;
5392 } else {
5393 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
5394 var3 = 0;
5395 } else {
5396 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
5397 }
5398 }
5399 if (unlikely(!var3)) {
5400 PRINT_ERROR("Runtime error: %s", "Assert failed");
5401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10783);
5402 fatal_exit(1);
5403 }
5404 {
5405 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
5406 }
5407 var_listnode3 = var4;
5408 var_tclassidnode4 = var_nodearraylist2;
5409 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
5410 cltype6 = type_nullable__nit__TClassid.color;
5411 idtype7 = type_nullable__nit__TClassid.id;
5412 if(var_tclassidnode4 == NULL) {
5413 var5 = 1;
5414 } else {
5415 if(cltype6 >= (((long)var_tclassidnode4&3)?type_info[((long)var_tclassidnode4&3)]:var_tclassidnode4->type)->table_size) {
5416 var5 = 0;
5417 } else {
5418 var5 = (((long)var_tclassidnode4&3)?type_info[((long)var_tclassidnode4&3)]:var_tclassidnode4->type)->type_table[cltype6] == idtype7;
5419 }
5420 }
5421 if (unlikely(!var5)) {
5422 PRINT_ERROR("Runtime error: %s", "Assert failed");
5423 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10786);
5424 fatal_exit(1);
5425 }
5426 var8 = NEW_nit__AQualified(&type_nit__AQualified);
5427 {
5428 nit__parser_prod___AQualified___init_aqualified(var8, var_listnode3, var_tclassidnode4); /* Direct call parser_prod#AQualified#init_aqualified on <var8:AQualified>*/
5429 }
5430 var_pqualifiednode1 = var8;
5431 var_node_list = var_pqualifiednode1;
5432 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction462> */
5433 {
5434 var10 = nit___nit__Parser___go_to(var_p, var9);
5435 }
5436 {
5437 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5438 }
5439 RET_LABEL:;
5440 }
5441 /* method parser#ReduceAction463#action for (self: ReduceAction463, Parser) */
5442 void nit__parser___nit__parser__ReduceAction463___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5443 val* var_p /* var p: Parser */;
5444 val* var_node_list /* var node_list: nullable Object */;
5445 val* var /* : nullable Object */;
5446 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5447 val* var1 /* : Array[Object] */;
5448 val* var_listnode3 /* var listnode3: Array[Object] */;
5449 val* var_listnode2 /* var listnode2: nullable Object */;
5450 short int var2 /* : Bool */;
5451 int cltype;
5452 int idtype;
5453 val* var3 /* : Array[Object] */;
5454 val* var4 /* : AQualified */;
5455 val* var_pqualifiednode1 /* var pqualifiednode1: nullable AQualified */;
5456 long var5 /* : Int */;
5457 long var6 /* : Int */;
5458 var_p = p0;
5459 var_node_list = ((val*)NULL);
5460 {
5461 var = nit___nit__Parser___pop(var_p);
5462 }
5463 var_nodearraylist1 = var;
5464 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
5465 {
5466 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
5467 }
5468 var_listnode3 = var1;
5469 var_listnode2 = var_nodearraylist1;
5470 /* <var_listnode2:nullable Object> isa Array[Object] */
5471 cltype = type_standard__Array__standard__Object.color;
5472 idtype = type_standard__Array__standard__Object.id;
5473 if(var_listnode2 == NULL) {
5474 var2 = 0;
5475 } else {
5476 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
5477 var2 = 0;
5478 } else {
5479 var2 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
5480 }
5481 }
5482 if (unlikely(!var2)) {
5483 PRINT_ERROR("Runtime error: %s", "Assert failed");
5484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10803);
5485 fatal_exit(1);
5486 }
5487 {
5488 var3 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
5489 }
5490 var_listnode3 = var3;
5491 var4 = NEW_nit__AQualified(&type_nit__AQualified);
5492 {
5493 nit__parser_prod___AQualified___init_aqualified(var4, var_listnode3, ((val*)NULL)); /* Direct call parser_prod#AQualified#init_aqualified on <var4:AQualified>*/
5494 }
5495 var_pqualifiednode1 = var4;
5496 var_node_list = var_pqualifiednode1;
5497 var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction463> */
5498 {
5499 var6 = nit___nit__Parser___go_to(var_p, var5);
5500 }
5501 {
5502 nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5503 }
5504 RET_LABEL:;
5505 }
5506 /* method parser#ReduceAction465#action for (self: ReduceAction465, Parser) */
5507 void nit__parser___nit__parser__ReduceAction465___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5508 val* var_p /* var p: Parser */;
5509 val* var_node_list /* var node_list: nullable Object */;
5510 val* var /* : nullable Object */;
5511 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5512 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
5513 long var1 /* : Int */;
5514 long var2 /* : Int */;
5515 var_p = p0;
5516 var_node_list = ((val*)NULL);
5517 {
5518 var = nit___nit__Parser___pop(var_p);
5519 }
5520 var_nodearraylist1 = var;
5521 var_tclassidnode1 = var_nodearraylist1;
5522 var_node_list = var_tclassidnode1;
5523 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction465> */
5524 {
5525 var2 = nit___nit__Parser___go_to(var_p, var1);
5526 }
5527 {
5528 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5529 }
5530 RET_LABEL:;
5531 }
5532 /* method parser#ReduceAction466#action for (self: ReduceAction466, Parser) */
5533 void nit__parser___nit__parser__ReduceAction466___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5534 val* var_p /* var p: Parser */;
5535 val* var_node_list /* var node_list: nullable Object */;
5536 val* var /* : nullable Object */;
5537 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5538 val* var1 /* : nullable Object */;
5539 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5540 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
5541 long var2 /* : Int */;
5542 long var3 /* : Int */;
5543 var_p = p0;
5544 var_node_list = ((val*)NULL);
5545 {
5546 var = nit___nit__Parser___pop(var_p);
5547 }
5548 var_nodearraylist2 = var;
5549 {
5550 var1 = nit___nit__Parser___pop(var_p);
5551 }
5552 var_nodearraylist1 = var1;
5553 var_tclassidnode1 = var_nodearraylist2;
5554 var_node_list = var_tclassidnode1;
5555 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction466> */
5556 {
5557 var3 = nit___nit__Parser___go_to(var_p, var2);
5558 }
5559 {
5560 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5561 }
5562 RET_LABEL:;
5563 }
5564 /* method parser#ReduceAction467#action for (self: ReduceAction467, Parser) */
5565 void nit__parser___nit__parser__ReduceAction467___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5566 val* var_p /* var p: Parser */;
5567 val* var_node_list /* var node_list: nullable Object */;
5568 val* var /* : nullable Object */;
5569 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5570 val* var1 /* : nullable Object */;
5571 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5572 val* var2 /* : nullable Object */;
5573 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5574 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
5575 long var3 /* : Int */;
5576 long var4 /* : Int */;
5577 var_p = p0;
5578 var_node_list = ((val*)NULL);
5579 {
5580 var = nit___nit__Parser___pop(var_p);
5581 }
5582 var_nodearraylist3 = var;
5583 {
5584 var1 = nit___nit__Parser___pop(var_p);
5585 }
5586 var_nodearraylist2 = var1;
5587 {
5588 var2 = nit___nit__Parser___pop(var_p);
5589 }
5590 var_nodearraylist1 = var2;
5591 var_tclassidnode1 = var_nodearraylist3;
5592 var_node_list = var_tclassidnode1;
5593 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction467> */
5594 {
5595 var4 = nit___nit__Parser___go_to(var_p, var3);
5596 }
5597 {
5598 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5599 }
5600 RET_LABEL:;
5601 }
5602 /* method parser#ReduceAction469#action for (self: ReduceAction469, Parser) */
5603 void nit__parser___nit__parser__ReduceAction469___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5604 val* var_p /* var p: Parser */;
5605 val* var_node_list /* var node_list: nullable Object */;
5606 val* var /* : nullable Object */;
5607 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5608 val* var_pmethidnode1 /* var pmethidnode1: nullable Object */;
5609 long var1 /* : Int */;
5610 long var2 /* : Int */;
5611 var_p = p0;
5612 var_node_list = ((val*)NULL);
5613 {
5614 var = nit___nit__Parser___pop(var_p);
5615 }
5616 var_nodearraylist1 = var;
5617 var_pmethidnode1 = var_nodearraylist1;
5618 var_node_list = var_pmethidnode1;
5619 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction469> */
5620 {
5621 var2 = nit___nit__Parser___go_to(var_p, var1);
5622 }
5623 {
5624 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5625 }
5626 RET_LABEL:;
5627 }
5628 /* method parser#ReduceAction470#action for (self: ReduceAction470, Parser) */
5629 void nit__parser___nit__parser__ReduceAction470___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5630 val* var_p /* var p: Parser */;
5631 val* var_node_list /* var node_list: nullable Object */;
5632 val* var /* : nullable Object */;
5633 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5634 val* var1 /* : nullable Object */;
5635 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5636 val* var_pmethidnode1 /* var pmethidnode1: nullable Object */;
5637 long var2 /* : Int */;
5638 long var3 /* : Int */;
5639 var_p = p0;
5640 var_node_list = ((val*)NULL);
5641 {
5642 var = nit___nit__Parser___pop(var_p);
5643 }
5644 var_nodearraylist2 = var;
5645 {
5646 var1 = nit___nit__Parser___pop(var_p);
5647 }
5648 var_nodearraylist1 = var1;
5649 var_pmethidnode1 = var_nodearraylist2;
5650 var_node_list = var_pmethidnode1;
5651 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction470> */
5652 {
5653 var3 = nit___nit__Parser___go_to(var_p, var2);
5654 }
5655 {
5656 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5657 }
5658 RET_LABEL:;
5659 }
5660 /* method parser#ReduceAction471#action for (self: ReduceAction471, Parser) */
5661 void nit__parser___nit__parser__ReduceAction471___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5662 val* var_p /* var p: Parser */;
5663 val* var_node_list /* var node_list: nullable Object */;
5664 val* var /* : nullable Object */;
5665 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5666 val* var1 /* : nullable Object */;
5667 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5668 val* var2 /* : nullable Object */;
5669 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5670 val* var_pmethidnode1 /* var pmethidnode1: nullable Object */;
5671 long var3 /* : Int */;
5672 long var4 /* : Int */;
5673 var_p = p0;
5674 var_node_list = ((val*)NULL);
5675 {
5676 var = nit___nit__Parser___pop(var_p);
5677 }
5678 var_nodearraylist3 = var;
5679 {
5680 var1 = nit___nit__Parser___pop(var_p);
5681 }
5682 var_nodearraylist2 = var1;
5683 {
5684 var2 = nit___nit__Parser___pop(var_p);
5685 }
5686 var_nodearraylist1 = var2;
5687 var_pmethidnode1 = var_nodearraylist3;
5688 var_node_list = var_pmethidnode1;
5689 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction471> */
5690 {
5691 var4 = nit___nit__Parser___go_to(var_p, var3);
5692 }
5693 {
5694 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5695 }
5696 RET_LABEL:;
5697 }
5698 /* method parser#ReduceAction473#action for (self: ReduceAction473, Parser) */
5699 void nit__parser___nit__parser__ReduceAction473___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5700 val* var_p /* var p: Parser */;
5701 val* var_node_list /* var node_list: nullable Object */;
5702 val* var /* : nullable Object */;
5703 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5704 val* var1 /* : nullable Object */;
5705 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5706 val* var2 /* : nullable Object */;
5707 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5708 val* var_tidnode1 /* var tidnode1: nullable Object */;
5709 long var3 /* : Int */;
5710 long var4 /* : Int */;
5711 var_p = p0;
5712 var_node_list = ((val*)NULL);
5713 {
5714 var = nit___nit__Parser___pop(var_p);
5715 }
5716 var_nodearraylist3 = var;
5717 {
5718 var1 = nit___nit__Parser___pop(var_p);
5719 }
5720 var_nodearraylist2 = var1;
5721 {
5722 var2 = nit___nit__Parser___pop(var_p);
5723 }
5724 var_nodearraylist1 = var2;
5725 var_tidnode1 = var_nodearraylist1;
5726 var_node_list = var_tidnode1;
5727 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction473> */
5728 {
5729 var4 = nit___nit__Parser___go_to(var_p, var3);
5730 }
5731 {
5732 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5733 }
5734 RET_LABEL:;
5735 }
5736 /* method parser#ReduceAction474#action for (self: ReduceAction474, Parser) */
5737 void nit__parser___nit__parser__ReduceAction474___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5738 val* var_p /* var p: Parser */;
5739 val* var_node_list /* var node_list: nullable Object */;
5740 val* var /* : nullable Object */;
5741 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5742 val* var1 /* : nullable Object */;
5743 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5744 val* var2 /* : nullable Object */;
5745 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5746 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
5747 long var3 /* : Int */;
5748 long var4 /* : Int */;
5749 var_p = p0;
5750 var_node_list = ((val*)NULL);
5751 {
5752 var = nit___nit__Parser___pop(var_p);
5753 }
5754 var_nodearraylist3 = var;
5755 {
5756 var1 = nit___nit__Parser___pop(var_p);
5757 }
5758 var_nodearraylist2 = var1;
5759 {
5760 var2 = nit___nit__Parser___pop(var_p);
5761 }
5762 var_nodearraylist1 = var2;
5763 var_tclassidnode1 = var_nodearraylist1;
5764 var_node_list = var_tclassidnode1;
5765 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction474> */
5766 {
5767 var4 = nit___nit__Parser___go_to(var_p, var3);
5768 }
5769 {
5770 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5771 }
5772 RET_LABEL:;
5773 }
5774 /* method parser#ReduceAction476#action for (self: ReduceAction476, Parser) */
5775 void nit__parser___nit__parser__ReduceAction476___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5776 val* var_p /* var p: Parser */;
5777 val* var_node_list /* var node_list: nullable Object */;
5778 val* var /* : nullable Object */;
5779 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5780 val* var_tkwendnode1 /* var tkwendnode1: nullable Object */;
5781 long var1 /* : Int */;
5782 long var2 /* : Int */;
5783 var_p = p0;
5784 var_node_list = ((val*)NULL);
5785 {
5786 var = nit___nit__Parser___pop(var_p);
5787 }
5788 var_nodearraylist1 = var;
5789 var_tkwendnode1 = var_nodearraylist1;
5790 var_node_list = var_tkwendnode1;
5791 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction476> */
5792 {
5793 var2 = nit___nit__Parser___go_to(var_p, var1);
5794 }
5795 {
5796 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5797 }
5798 RET_LABEL:;
5799 }
5800 /* method parser#ReduceAction477#action for (self: ReduceAction477, Parser) */
5801 void nit__parser___nit__parser__ReduceAction477___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5802 val* var_p /* var p: Parser */;
5803 val* var_node_list /* var node_list: nullable Object */;
5804 val* var /* : nullable Object */;
5805 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5806 long var1 /* : Int */;
5807 long var2 /* : Int */;
5808 var_p = p0;
5809 var_node_list = ((val*)NULL);
5810 {
5811 var = nit___nit__Parser___pop(var_p);
5812 }
5813 var_nodearraylist1 = var;
5814 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction477> */
5815 {
5816 var2 = nit___nit__Parser___go_to(var_p, var1);
5817 }
5818 {
5819 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5820 }
5821 RET_LABEL:;
5822 }
5823 /* method parser#ReduceAction480#action for (self: ReduceAction480, Parser) */
5824 void nit__parser___nit__parser__ReduceAction480___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5825 val* var_p /* var p: Parser */;
5826 val* var_node_list /* var node_list: nullable Object */;
5827 val* var /* : nullable Object */;
5828 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5829 val* var1 /* : Array[Object] */;
5830 val* var_listnode3 /* var listnode3: Array[Object] */;
5831 val* var_listnode2 /* var listnode2: nullable Object */;
5832 short int var2 /* : Bool */;
5833 int cltype;
5834 int idtype;
5835 val* var3 /* : Array[Object] */;
5836 val* var4 /* : ADoc */;
5837 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
5838 long var5 /* : Int */;
5839 long var6 /* : Int */;
5840 var_p = p0;
5841 var_node_list = ((val*)NULL);
5842 {
5843 var = nit___nit__Parser___pop(var_p);
5844 }
5845 var_nodearraylist1 = var;
5846 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
5847 {
5848 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
5849 }
5850 var_listnode3 = var1;
5851 var_listnode2 = var_nodearraylist1;
5852 /* <var_listnode2:nullable Object> isa Array[Object] */
5853 cltype = type_standard__Array__standard__Object.color;
5854 idtype = type_standard__Array__standard__Object.id;
5855 if(var_listnode2 == NULL) {
5856 var2 = 0;
5857 } else {
5858 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
5859 var2 = 0;
5860 } else {
5861 var2 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
5862 }
5863 }
5864 if (unlikely(!var2)) {
5865 PRINT_ERROR("Runtime error: %s", "Assert failed");
5866 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10939);
5867 fatal_exit(1);
5868 }
5869 {
5870 var3 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
5871 }
5872 var_listnode3 = var3;
5873 var4 = NEW_nit__ADoc(&type_nit__ADoc);
5874 {
5875 nit__parser_prod___ADoc___init_adoc(var4, var_listnode3); /* Direct call parser_prod#ADoc#init_adoc on <var4:ADoc>*/
5876 }
5877 var_pdocnode1 = var4;
5878 var_node_list = var_pdocnode1;
5879 var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction480> */
5880 {
5881 var6 = nit___nit__Parser___go_to(var_p, var5);
5882 }
5883 {
5884 nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5885 }
5886 RET_LABEL:;
5887 }
5888 /* method parser#ReduceAction481#action for (self: ReduceAction481, Parser) */
5889 void nit__parser___nit__parser__ReduceAction481___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5890 val* var_p /* var p: Parser */;
5891 val* var_node_list /* var node_list: nullable Object */;
5892 val* var /* : nullable Object */;
5893 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5894 val* var1 /* : nullable Object */;
5895 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5896 val* var2 /* : Array[Object] */;
5897 val* var_listnode3 /* var listnode3: Array[Object] */;
5898 val* var_listnode2 /* var listnode2: nullable Object */;
5899 short int var3 /* : Bool */;
5900 int cltype;
5901 int idtype;
5902 val* var4 /* : Array[Object] */;
5903 val* var5 /* : ADoc */;
5904 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
5905 long var6 /* : Int */;
5906 long var7 /* : Int */;
5907 var_p = p0;
5908 var_node_list = ((val*)NULL);
5909 {
5910 var = nit___nit__Parser___pop(var_p);
5911 }
5912 var_nodearraylist2 = var;
5913 {
5914 var1 = nit___nit__Parser___pop(var_p);
5915 }
5916 var_nodearraylist1 = var1;
5917 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
5918 {
5919 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
5920 }
5921 var_listnode3 = var2;
5922 var_listnode2 = var_nodearraylist2;
5923 /* <var_listnode2:nullable Object> isa Array[Object] */
5924 cltype = type_standard__Array__standard__Object.color;
5925 idtype = type_standard__Array__standard__Object.id;
5926 if(var_listnode2 == NULL) {
5927 var3 = 0;
5928 } else {
5929 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
5930 var3 = 0;
5931 } else {
5932 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
5933 }
5934 }
5935 if (unlikely(!var3)) {
5936 PRINT_ERROR("Runtime error: %s", "Assert failed");
5937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 10957);
5938 fatal_exit(1);
5939 }
5940 {
5941 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
5942 }
5943 var_listnode3 = var4;
5944 var5 = NEW_nit__ADoc(&type_nit__ADoc);
5945 {
5946 nit__parser_prod___ADoc___init_adoc(var5, var_listnode3); /* Direct call parser_prod#ADoc#init_adoc on <var5:ADoc>*/
5947 }
5948 var_pdocnode1 = var5;
5949 var_node_list = var_pdocnode1;
5950 var6 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction481> */
5951 {
5952 var7 = nit___nit__Parser___go_to(var_p, var6);
5953 }
5954 {
5955 nit___nit__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5956 }
5957 RET_LABEL:;
5958 }
5959 /* method parser#ReduceAction484#action for (self: ReduceAction484, Parser) */
5960 void nit__parser___nit__parser__ReduceAction484___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5961 val* var_p /* var p: Parser */;
5962 val* var_node_list /* var node_list: nullable Object */;
5963 val* var /* : nullable Object */;
5964 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5965 val* var1 /* : nullable Object */;
5966 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5967 long var2 /* : Int */;
5968 long var3 /* : Int */;
5969 var_p = p0;
5970 var_node_list = ((val*)NULL);
5971 {
5972 var = nit___nit__Parser___pop(var_p);
5973 }
5974 var_nodearraylist2 = var;
5975 {
5976 var1 = nit___nit__Parser___pop(var_p);
5977 }
5978 var_nodearraylist1 = var1;
5979 var_node_list = ((val*)NULL);
5980 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction484> */
5981 {
5982 var3 = nit___nit__Parser___go_to(var_p, var2);
5983 }
5984 {
5985 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5986 }
5987 RET_LABEL:;
5988 }
5989 /* method parser#ReduceAction486#action for (self: ReduceAction486, Parser) */
5990 void nit__parser___nit__parser__ReduceAction486___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5991 val* var_p /* var p: Parser */;
5992 val* var_node_list /* var node_list: nullable Object */;
5993 val* var /* : nullable Object */;
5994 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5995 val* var1 /* : nullable Object */;
5996 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5997 val* var2 /* : nullable Object */;
5998 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5999 long var3 /* : Int */;
6000 long var4 /* : Int */;
6001 var_p = p0;
6002 var_node_list = ((val*)NULL);
6003 {
6004 var = nit___nit__Parser___pop(var_p);
6005 }
6006 var_nodearraylist3 = var;
6007 {
6008 var1 = nit___nit__Parser___pop(var_p);
6009 }
6010 var_nodearraylist2 = var1;
6011 {
6012 var2 = nit___nit__Parser___pop(var_p);
6013 }
6014 var_nodearraylist1 = var2;
6015 var_node_list = ((val*)NULL);
6016 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction486> */
6017 {
6018 var4 = nit___nit__Parser___go_to(var_p, var3);
6019 }
6020 {
6021 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6022 }
6023 RET_LABEL:;
6024 }
6025 /* method parser#ReduceAction487#action for (self: ReduceAction487, Parser) */
6026 void nit__parser___nit__parser__ReduceAction487___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6027 val* var_p /* var p: Parser */;
6028 val* var_node_list /* var node_list: nullable Object */;
6029 val* var /* : nullable Object */;
6030 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6031 val* var1 /* : nullable Object */;
6032 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6033 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
6034 long var2 /* : Int */;
6035 long var3 /* : Int */;
6036 var_p = p0;
6037 var_node_list = ((val*)NULL);
6038 {
6039 var = nit___nit__Parser___pop(var_p);
6040 }
6041 var_nodearraylist2 = var;
6042 {
6043 var1 = nit___nit__Parser___pop(var_p);
6044 }
6045 var_nodearraylist1 = var1;
6046 var_pdocnode1 = var_nodearraylist2;
6047 var_node_list = var_pdocnode1;
6048 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction487> */
6049 {
6050 var3 = nit___nit__Parser___go_to(var_p, var2);
6051 }
6052 {
6053 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6054 }
6055 RET_LABEL:;
6056 }
6057 /* method parser#ReduceAction488#action for (self: ReduceAction488, Parser) */
6058 void nit__parser___nit__parser__ReduceAction488___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6059 val* var_p /* var p: Parser */;
6060 val* var_node_list /* var node_list: nullable Object */;
6061 val* var /* : nullable Object */;
6062 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6063 val* var1 /* : nullable Object */;
6064 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6065 val* var2 /* : nullable Object */;
6066 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6067 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
6068 long var3 /* : Int */;
6069 long var4 /* : Int */;
6070 var_p = p0;
6071 var_node_list = ((val*)NULL);
6072 {
6073 var = nit___nit__Parser___pop(var_p);
6074 }
6075 var_nodearraylist3 = var;
6076 {
6077 var1 = nit___nit__Parser___pop(var_p);
6078 }
6079 var_nodearraylist2 = var1;
6080 {
6081 var2 = nit___nit__Parser___pop(var_p);
6082 }
6083 var_nodearraylist1 = var2;
6084 var_pdocnode1 = var_nodearraylist3;
6085 var_node_list = var_pdocnode1;
6086 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction488> */
6087 {
6088 var4 = nit___nit__Parser___go_to(var_p, var3);
6089 }
6090 {
6091 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6092 }
6093 RET_LABEL:;
6094 }
6095 /* method parser#ReduceAction490#action for (self: ReduceAction490, Parser) */
6096 void nit__parser___nit__parser__ReduceAction490___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6097 val* var_p /* var p: Parser */;
6098 val* var_node_list /* var node_list: nullable Object */;
6099 val* var /* : nullable Object */;
6100 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6101 val* var1 /* : nullable Object */;
6102 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6103 val* var2 /* : nullable Object */;
6104 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6105 val* var3 /* : nullable Object */;
6106 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6107 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
6108 long var4 /* : Int */;
6109 long var5 /* : Int */;
6110 var_p = p0;
6111 var_node_list = ((val*)NULL);
6112 {
6113 var = nit___nit__Parser___pop(var_p);
6114 }
6115 var_nodearraylist4 = var;
6116 {
6117 var1 = nit___nit__Parser___pop(var_p);
6118 }
6119 var_nodearraylist3 = var1;
6120 {
6121 var2 = nit___nit__Parser___pop(var_p);
6122 }
6123 var_nodearraylist2 = var2;
6124 {
6125 var3 = nit___nit__Parser___pop(var_p);
6126 }
6127 var_nodearraylist1 = var3;
6128 var_pdocnode1 = var_nodearraylist4;
6129 var_node_list = var_pdocnode1;
6130 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction490> */
6131 {
6132 var5 = nit___nit__Parser___go_to(var_p, var4);
6133 }
6134 {
6135 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6136 }
6137 RET_LABEL:;
6138 }
6139 /* method parser#ReduceAction492#action for (self: ReduceAction492, Parser) */
6140 void nit__parser___nit__parser__ReduceAction492___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6141 val* var_p /* var p: Parser */;
6142 val* var_node_list /* var node_list: nullable Object */;
6143 val* var /* : nullable Object */;
6144 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6145 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
6146 long var1 /* : Int */;
6147 long var2 /* : Int */;
6148 var_p = p0;
6149 var_node_list = ((val*)NULL);
6150 {
6151 var = nit___nit__Parser___pop(var_p);
6152 }
6153 var_nodearraylist1 = var;
6154 var_pdocnode1 = var_nodearraylist1;
6155 var_node_list = var_pdocnode1;
6156 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction492> */
6157 {
6158 var2 = nit___nit__Parser___go_to(var_p, var1);
6159 }
6160 {
6161 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6162 }
6163 RET_LABEL:;
6164 }
6165 /* method parser#ReduceAction493#action for (self: ReduceAction493, Parser) */
6166 void nit__parser___nit__parser__ReduceAction493___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6167 val* var_p /* var p: Parser */;
6168 val* var_node_list /* var node_list: nullable Object */;
6169 long var /* : Int */;
6170 long var1 /* : Int */;
6171 var_p = p0;
6172 var_node_list = ((val*)NULL);
6173 var = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction493> */
6174 {
6175 var1 = nit___nit__Parser___go_to(var_p, var);
6176 }
6177 {
6178 nit___nit__Parser___push(var_p, var1, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6179 }
6180 RET_LABEL:;
6181 }
6182 /* method parser#ReduceAction496#action for (self: ReduceAction496, Parser) */
6183 void nit__parser___nit__parser__ReduceAction496___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6184 val* var_p /* var p: Parser */;
6185 val* var_node_list /* var node_list: nullable Object */;
6186 val* var /* : nullable Object */;
6187 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6188 val* var1 /* : nullable Object */;
6189 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6190 long var2 /* : Int */;
6191 long var3 /* : Int */;
6192 var_p = p0;
6193 var_node_list = ((val*)NULL);
6194 {
6195 var = nit___nit__Parser___pop(var_p);
6196 }
6197 var_nodearraylist2 = var;
6198 {
6199 var1 = nit___nit__Parser___pop(var_p);
6200 }
6201 var_nodearraylist1 = var1;
6202 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction496> */
6203 {
6204 var3 = nit___nit__Parser___go_to(var_p, var2);
6205 }
6206 {
6207 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6208 }
6209 RET_LABEL:;
6210 }
6211 /* method parser#ReduceAction871#action for (self: ReduceAction871, Parser) */
6212 void nit__parser___nit__parser__ReduceAction871___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6213 val* var_p /* var p: Parser */;
6214 val* var_node_list /* var node_list: nullable Object */;
6215 val* var /* : nullable Object */;
6216 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6217 val* var1 /* : nullable Object */;
6218 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6219 val* var2 /* : nullable Object */;
6220 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6221 val* var3 /* : nullable Object */;
6222 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6223 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
6224 short int var4 /* : Bool */;
6225 int cltype;
6226 int idtype;
6227 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6228 short int var5 /* : Bool */;
6229 int cltype6;
6230 int idtype7;
6231 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
6232 short int var8 /* : Bool */;
6233 int cltype9;
6234 int idtype10;
6235 val* var11 /* : AIssetAttrExpr */;
6236 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
6237 long var12 /* : Int */;
6238 long var13 /* : Int */;
6239 var_p = p0;
6240 var_node_list = ((val*)NULL);
6241 {
6242 var = nit___nit__Parser___pop(var_p);
6243 }
6244 var_nodearraylist4 = var;
6245 {
6246 var1 = nit___nit__Parser___pop(var_p);
6247 }
6248 var_nodearraylist3 = var1;
6249 {
6250 var2 = nit___nit__Parser___pop(var_p);
6251 }
6252 var_nodearraylist2 = var2;
6253 {
6254 var3 = nit___nit__Parser___pop(var_p);
6255 }
6256 var_nodearraylist1 = var3;
6257 var_tkwissetnode2 = var_nodearraylist1;
6258 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
6259 cltype = type_nullable__nit__TKwisset.color;
6260 idtype = type_nullable__nit__TKwisset.id;
6261 if(var_tkwissetnode2 == NULL) {
6262 var4 = 1;
6263 } else {
6264 if(cltype >= (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->table_size) {
6265 var4 = 0;
6266 } else {
6267 var4 = (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->type_table[cltype] == idtype;
6268 }
6269 }
6270 if (unlikely(!var4)) {
6271 PRINT_ERROR("Runtime error: %s", "Assert failed");
6272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11067);
6273 fatal_exit(1);
6274 }
6275 var_pexprnode3 = var_nodearraylist2;
6276 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6277 cltype6 = type_nullable__nit__AExpr.color;
6278 idtype7 = type_nullable__nit__AExpr.id;
6279 if(var_pexprnode3 == NULL) {
6280 var5 = 1;
6281 } else {
6282 if(cltype6 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
6283 var5 = 0;
6284 } else {
6285 var5 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype6] == idtype7;
6286 }
6287 }
6288 if (unlikely(!var5)) {
6289 PRINT_ERROR("Runtime error: %s", "Assert failed");
6290 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11069);
6291 fatal_exit(1);
6292 }
6293 var_tattridnode4 = var_nodearraylist4;
6294 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
6295 cltype9 = type_nullable__nit__TAttrid.color;
6296 idtype10 = type_nullable__nit__TAttrid.id;
6297 if(var_tattridnode4 == NULL) {
6298 var8 = 1;
6299 } else {
6300 if(cltype9 >= (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->table_size) {
6301 var8 = 0;
6302 } else {
6303 var8 = (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->type_table[cltype9] == idtype10;
6304 }
6305 }
6306 if (unlikely(!var8)) {
6307 PRINT_ERROR("Runtime error: %s", "Assert failed");
6308 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11071);
6309 fatal_exit(1);
6310 }
6311 var11 = NEW_nit__AIssetAttrExpr(&type_nit__AIssetAttrExpr);
6312 {
6313 nit__parser_prod___AIssetAttrExpr___init_aissetattrexpr(var11, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var11:AIssetAttrExpr>*/
6314 }
6315 var_pexprnode1 = var11;
6316 var_node_list = var_pexprnode1;
6317 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction871> */
6318 {
6319 var13 = nit___nit__Parser___go_to(var_p, var12);
6320 }
6321 {
6322 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6323 }
6324 RET_LABEL:;
6325 }
6326 /* method parser#ReduceAction873#action for (self: ReduceAction873, Parser) */
6327 void nit__parser___nit__parser__ReduceAction873___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6328 val* var_p /* var p: Parser */;
6329 val* var_node_list /* var node_list: nullable Object */;
6330 val* var /* : nullable Object */;
6331 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6332 val* var1 /* : nullable Object */;
6333 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6334 val* var2 /* : nullable Object */;
6335 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6336 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6337 short int var3 /* : Bool */;
6338 int cltype;
6339 int idtype;
6340 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
6341 short int var4 /* : Bool */;
6342 int cltype5;
6343 int idtype6;
6344 val* var7 /* : AAttrExpr */;
6345 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
6346 long var8 /* : Int */;
6347 long var9 /* : Int */;
6348 var_p = p0;
6349 var_node_list = ((val*)NULL);
6350 {
6351 var = nit___nit__Parser___pop(var_p);
6352 }
6353 var_nodearraylist3 = var;
6354 {
6355 var1 = nit___nit__Parser___pop(var_p);
6356 }
6357 var_nodearraylist2 = var1;
6358 {
6359 var2 = nit___nit__Parser___pop(var_p);
6360 }
6361 var_nodearraylist1 = var2;
6362 var_pexprnode2 = var_nodearraylist1;
6363 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6364 cltype = type_nullable__nit__AExpr.color;
6365 idtype = type_nullable__nit__AExpr.id;
6366 if(var_pexprnode2 == NULL) {
6367 var3 = 1;
6368 } else {
6369 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6370 var3 = 0;
6371 } else {
6372 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6373 }
6374 }
6375 if (unlikely(!var3)) {
6376 PRINT_ERROR("Runtime error: %s", "Assert failed");
6377 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11090);
6378 fatal_exit(1);
6379 }
6380 var_tattridnode3 = var_nodearraylist3;
6381 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
6382 cltype5 = type_nullable__nit__TAttrid.color;
6383 idtype6 = type_nullable__nit__TAttrid.id;
6384 if(var_tattridnode3 == NULL) {
6385 var4 = 1;
6386 } else {
6387 if(cltype5 >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) {
6388 var4 = 0;
6389 } else {
6390 var4 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype5] == idtype6;
6391 }
6392 }
6393 if (unlikely(!var4)) {
6394 PRINT_ERROR("Runtime error: %s", "Assert failed");
6395 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11092);
6396 fatal_exit(1);
6397 }
6398 var7 = NEW_nit__AAttrExpr(&type_nit__AAttrExpr);
6399 {
6400 nit__parser_prod___AAttrExpr___init_aattrexpr(var7, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var7:AAttrExpr>*/
6401 }
6402 var_pexprnode1 = var7;
6403 var_node_list = var_pexprnode1;
6404 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction873> */
6405 {
6406 var9 = nit___nit__Parser___go_to(var_p, var8);
6407 }
6408 {
6409 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6410 }
6411 RET_LABEL:;
6412 }
6413 /* method parser#ReduceAction874#action for (self: ReduceAction874, Parser) */
6414 void nit__parser___nit__parser__ReduceAction874___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6415 val* var_p /* var p: Parser */;
6416 val* var_node_list /* var node_list: nullable Object */;
6417 val* var /* : nullable Object */;
6418 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6419 val* var1 /* : nullable Object */;
6420 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6421 val* var2 /* : nullable Object */;
6422 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6423 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6424 short int var3 /* : Bool */;
6425 int cltype;
6426 int idtype;
6427 val* var_tidnode3 /* var tidnode3: nullable Object */;
6428 short int var4 /* : Bool */;
6429 int cltype5;
6430 int idtype6;
6431 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6432 short int var7 /* : Bool */;
6433 int cltype8;
6434 int idtype9;
6435 val* var10 /* : ACallExpr */;
6436 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
6437 long var11 /* : Int */;
6438 long var12 /* : Int */;
6439 var_p = p0;
6440 var_node_list = ((val*)NULL);
6441 {
6442 var = nit___nit__Parser___pop(var_p);
6443 }
6444 var_nodearraylist3 = var;
6445 {
6446 var1 = nit___nit__Parser___pop(var_p);
6447 }
6448 var_nodearraylist2 = var1;
6449 {
6450 var2 = nit___nit__Parser___pop(var_p);
6451 }
6452 var_nodearraylist1 = var2;
6453 var_pexprnode2 = var_nodearraylist1;
6454 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6455 cltype = type_nullable__nit__AExpr.color;
6456 idtype = type_nullable__nit__AExpr.id;
6457 if(var_pexprnode2 == NULL) {
6458 var3 = 1;
6459 } else {
6460 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6461 var3 = 0;
6462 } else {
6463 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6464 }
6465 }
6466 if (unlikely(!var3)) {
6467 PRINT_ERROR("Runtime error: %s", "Assert failed");
6468 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11110);
6469 fatal_exit(1);
6470 }
6471 var_tidnode3 = var_nodearraylist2;
6472 /* <var_tidnode3:nullable Object> isa nullable TId */
6473 cltype5 = type_nullable__nit__TId.color;
6474 idtype6 = type_nullable__nit__TId.id;
6475 if(var_tidnode3 == NULL) {
6476 var4 = 1;
6477 } else {
6478 if(cltype5 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
6479 var4 = 0;
6480 } else {
6481 var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype5] == idtype6;
6482 }
6483 }
6484 if (unlikely(!var4)) {
6485 PRINT_ERROR("Runtime error: %s", "Assert failed");
6486 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11112);
6487 fatal_exit(1);
6488 }
6489 var_pexprsnode4 = var_nodearraylist3;
6490 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6491 cltype8 = type_nullable__nit__AExprs.color;
6492 idtype9 = type_nullable__nit__AExprs.id;
6493 if(var_pexprsnode4 == NULL) {
6494 var7 = 1;
6495 } else {
6496 if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) {
6497 var7 = 0;
6498 } else {
6499 var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9;
6500 }
6501 }
6502 if (unlikely(!var7)) {
6503 PRINT_ERROR("Runtime error: %s", "Assert failed");
6504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11114);
6505 fatal_exit(1);
6506 }
6507 var10 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
6508 {
6509 nit__parser_prod___ACallExpr___init_acallexpr(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var10:ACallExpr>*/
6510 }
6511 var_pexprnode1 = var10;
6512 var_node_list = var_pexprnode1;
6513 var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction874> */
6514 {
6515 var12 = nit___nit__Parser___go_to(var_p, var11);
6516 }
6517 {
6518 nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6519 }
6520 RET_LABEL:;
6521 }
6522 /* method parser#ReduceAction875#action for (self: ReduceAction875, Parser) */
6523 void nit__parser___nit__parser__ReduceAction875___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6524 val* var_p /* var p: Parser */;
6525 val* var_node_list /* var node_list: nullable Object */;
6526 val* var /* : nullable Object */;
6527 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6528 val* var1 /* : nullable Object */;
6529 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6530 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6531 short int var2 /* : Bool */;
6532 int cltype;
6533 int idtype;
6534 val* var_tidnode3 /* var tidnode3: nullable Object */;
6535 short int var3 /* : Bool */;
6536 int cltype4;
6537 int idtype5;
6538 val* var6 /* : Array[Object] */;
6539 val* var_listnode5 /* var listnode5: Array[Object] */;
6540 val* var7 /* : AListExprs */;
6541 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6542 val* var8 /* : ACallExpr */;
6543 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
6544 long var9 /* : Int */;
6545 long var10 /* : Int */;
6546 var_p = p0;
6547 var_node_list = ((val*)NULL);
6548 {
6549 var = nit___nit__Parser___pop(var_p);
6550 }
6551 var_nodearraylist2 = var;
6552 {
6553 var1 = nit___nit__Parser___pop(var_p);
6554 }
6555 var_nodearraylist1 = var1;
6556 var_pexprnode2 = var_nodearraylist1;
6557 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6558 cltype = type_nullable__nit__AExpr.color;
6559 idtype = type_nullable__nit__AExpr.id;
6560 if(var_pexprnode2 == NULL) {
6561 var2 = 1;
6562 } else {
6563 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6564 var2 = 0;
6565 } else {
6566 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6567 }
6568 }
6569 if (unlikely(!var2)) {
6570 PRINT_ERROR("Runtime error: %s", "Assert failed");
6571 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11132);
6572 fatal_exit(1);
6573 }
6574 var_tidnode3 = var_nodearraylist2;
6575 /* <var_tidnode3:nullable Object> isa nullable TId */
6576 cltype4 = type_nullable__nit__TId.color;
6577 idtype5 = type_nullable__nit__TId.id;
6578 if(var_tidnode3 == NULL) {
6579 var3 = 1;
6580 } else {
6581 if(cltype4 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
6582 var3 = 0;
6583 } else {
6584 var3 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype4] == idtype5;
6585 }
6586 }
6587 if (unlikely(!var3)) {
6588 PRINT_ERROR("Runtime error: %s", "Assert failed");
6589 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11134);
6590 fatal_exit(1);
6591 }
6592 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
6593 {
6594 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
6595 }
6596 var_listnode5 = var6;
6597 var7 = NEW_nit__AListExprs(&type_nit__AListExprs);
6598 {
6599 nit__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var7:AListExprs>*/
6600 }
6601 var_pexprsnode4 = var7;
6602 var8 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
6603 {
6604 nit__parser_prod___ACallExpr___init_acallexpr(var8, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var8:ACallExpr>*/
6605 }
6606 var_pexprnode1 = var8;
6607 var_node_list = var_pexprnode1;
6608 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction875> */
6609 {
6610 var10 = nit___nit__Parser___go_to(var_p, var9);
6611 }
6612 {
6613 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6614 }
6615 RET_LABEL:;
6616 }
6617 /* method parser#ReduceAction876#action for (self: ReduceAction876, Parser) */
6618 void nit__parser___nit__parser__ReduceAction876___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6619 val* var_p /* var p: Parser */;
6620 val* var_node_list /* var node_list: nullable Object */;
6621 val* var /* : nullable Object */;
6622 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6623 val* var1 /* : nullable Object */;
6624 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6625 val* var2 /* : nullable Object */;
6626 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6627 val* var3 /* : nullable Object */;
6628 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6629 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6630 short int var4 /* : Bool */;
6631 int cltype;
6632 int idtype;
6633 val* var_tidnode3 /* var tidnode3: nullable Object */;
6634 short int var5 /* : Bool */;
6635 int cltype6;
6636 int idtype7;
6637 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6638 short int var8 /* : Bool */;
6639 int cltype9;
6640 int idtype10;
6641 val* var11 /* : ACallExpr */;
6642 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
6643 long var12 /* : Int */;
6644 long var13 /* : Int */;
6645 var_p = p0;
6646 var_node_list = ((val*)NULL);
6647 {
6648 var = nit___nit__Parser___pop(var_p);
6649 }
6650 var_nodearraylist4 = var;
6651 {
6652 var1 = nit___nit__Parser___pop(var_p);
6653 }
6654 var_nodearraylist3 = var1;
6655 {
6656 var2 = nit___nit__Parser___pop(var_p);
6657 }
6658 var_nodearraylist2 = var2;
6659 {
6660 var3 = nit___nit__Parser___pop(var_p);
6661 }
6662 var_nodearraylist1 = var3;
6663 var_pexprnode2 = var_nodearraylist1;
6664 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6665 cltype = type_nullable__nit__AExpr.color;
6666 idtype = type_nullable__nit__AExpr.id;
6667 if(var_pexprnode2 == NULL) {
6668 var4 = 1;
6669 } else {
6670 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6671 var4 = 0;
6672 } else {
6673 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6674 }
6675 }
6676 if (unlikely(!var4)) {
6677 PRINT_ERROR("Runtime error: %s", "Assert failed");
6678 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11158);
6679 fatal_exit(1);
6680 }
6681 var_tidnode3 = var_nodearraylist3;
6682 /* <var_tidnode3:nullable Object> isa nullable TId */
6683 cltype6 = type_nullable__nit__TId.color;
6684 idtype7 = type_nullable__nit__TId.id;
6685 if(var_tidnode3 == NULL) {
6686 var5 = 1;
6687 } else {
6688 if(cltype6 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
6689 var5 = 0;
6690 } else {
6691 var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype6] == idtype7;
6692 }
6693 }
6694 if (unlikely(!var5)) {
6695 PRINT_ERROR("Runtime error: %s", "Assert failed");
6696 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11160);
6697 fatal_exit(1);
6698 }
6699 var_pexprsnode4 = var_nodearraylist4;
6700 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6701 cltype9 = type_nullable__nit__AExprs.color;
6702 idtype10 = type_nullable__nit__AExprs.id;
6703 if(var_pexprsnode4 == NULL) {
6704 var8 = 1;
6705 } else {
6706 if(cltype9 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) {
6707 var8 = 0;
6708 } else {
6709 var8 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype9] == idtype10;
6710 }
6711 }
6712 if (unlikely(!var8)) {
6713 PRINT_ERROR("Runtime error: %s", "Assert failed");
6714 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11162);
6715 fatal_exit(1);
6716 }
6717 var11 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
6718 {
6719 nit__parser_prod___ACallExpr___init_acallexpr(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
6720 }
6721 var_pexprnode1 = var11;
6722 var_node_list = var_pexprnode1;
6723 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction876> */
6724 {
6725 var13 = nit___nit__Parser___go_to(var_p, var12);
6726 }
6727 {
6728 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6729 }
6730 RET_LABEL:;
6731 }
6732 /* method parser#ReduceAction877#action for (self: ReduceAction877, Parser) */
6733 void nit__parser___nit__parser__ReduceAction877___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6734 val* var_p /* var p: Parser */;
6735 val* var_node_list /* var node_list: nullable Object */;
6736 val* var /* : nullable Object */;
6737 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6738 val* var1 /* : nullable Object */;
6739 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6740 val* var2 /* : nullable Object */;
6741 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6742 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6743 short int var3 /* : Bool */;
6744 int cltype;
6745 int idtype;
6746 val* var_tidnode3 /* var tidnode3: nullable Object */;
6747 short int var4 /* : Bool */;
6748 int cltype5;
6749 int idtype6;
6750 val* var7 /* : Array[Object] */;
6751 val* var_listnode5 /* var listnode5: Array[Object] */;
6752 val* var8 /* : AListExprs */;
6753 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6754 val* var9 /* : ACallExpr */;
6755 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
6756 long var10 /* : Int */;
6757 long var11 /* : Int */;
6758 var_p = p0;
6759 var_node_list = ((val*)NULL);
6760 {
6761 var = nit___nit__Parser___pop(var_p);
6762 }
6763 var_nodearraylist3 = var;
6764 {
6765 var1 = nit___nit__Parser___pop(var_p);
6766 }
6767 var_nodearraylist2 = var1;
6768 {
6769 var2 = nit___nit__Parser___pop(var_p);
6770 }
6771 var_nodearraylist1 = var2;
6772 var_pexprnode2 = var_nodearraylist1;
6773 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6774 cltype = type_nullable__nit__AExpr.color;
6775 idtype = type_nullable__nit__AExpr.id;
6776 if(var_pexprnode2 == NULL) {
6777 var3 = 1;
6778 } else {
6779 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6780 var3 = 0;
6781 } else {
6782 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6783 }
6784 }
6785 if (unlikely(!var3)) {
6786 PRINT_ERROR("Runtime error: %s", "Assert failed");
6787 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11181);
6788 fatal_exit(1);
6789 }
6790 var_tidnode3 = var_nodearraylist3;
6791 /* <var_tidnode3:nullable Object> isa nullable TId */
6792 cltype5 = type_nullable__nit__TId.color;
6793 idtype6 = type_nullable__nit__TId.id;
6794 if(var_tidnode3 == NULL) {
6795 var4 = 1;
6796 } else {
6797 if(cltype5 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
6798 var4 = 0;
6799 } else {
6800 var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype5] == idtype6;
6801 }
6802 }
6803 if (unlikely(!var4)) {
6804 PRINT_ERROR("Runtime error: %s", "Assert failed");
6805 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11183);
6806 fatal_exit(1);
6807 }
6808 var7 = NEW_standard__Array(&type_standard__Array__standard__Object);
6809 {
6810 standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on <var7:Array[Object]>*/
6811 }
6812 var_listnode5 = var7;
6813 var8 = NEW_nit__AListExprs(&type_nit__AListExprs);
6814 {
6815 nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
6816 }
6817 var_pexprsnode4 = var8;
6818 var9 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
6819 {
6820 nit__parser_prod___ACallExpr___init_acallexpr(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var9:ACallExpr>*/
6821 }
6822 var_pexprnode1 = var9;
6823 var_node_list = var_pexprnode1;
6824 var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction877> */
6825 {
6826 var11 = nit___nit__Parser___go_to(var_p, var10);
6827 }
6828 {
6829 nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6830 }
6831 RET_LABEL:;
6832 }
6833 /* method parser#ReduceAction884#action for (self: ReduceAction884, Parser) */
6834 void nit__parser___nit__parser__ReduceAction884___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6835 val* var_p /* var p: Parser */;
6836 val* var_node_list /* var node_list: nullable Object */;
6837 val* var /* : nullable Object */;
6838 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6839 val* var1 /* : nullable Object */;
6840 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6841 val* var2 /* : nullable Object */;
6842 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6843 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6844 short int var3 /* : Bool */;
6845 int cltype;
6846 int idtype;
6847 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
6848 short int var4 /* : Bool */;
6849 int cltype5;
6850 int idtype6;
6851 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6852 short int var7 /* : Bool */;
6853 int cltype8;
6854 int idtype9;
6855 val* var10 /* : AInitExpr */;
6856 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
6857 long var11 /* : Int */;
6858 long var12 /* : Int */;
6859 var_p = p0;
6860 var_node_list = ((val*)NULL);
6861 {
6862 var = nit___nit__Parser___pop(var_p);
6863 }
6864 var_nodearraylist3 = var;
6865 {
6866 var1 = nit___nit__Parser___pop(var_p);
6867 }
6868 var_nodearraylist2 = var1;
6869 {
6870 var2 = nit___nit__Parser___pop(var_p);
6871 }
6872 var_nodearraylist1 = var2;
6873 var_pexprnode2 = var_nodearraylist1;
6874 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6875 cltype = type_nullable__nit__AExpr.color;
6876 idtype = type_nullable__nit__AExpr.id;
6877 if(var_pexprnode2 == NULL) {
6878 var3 = 1;
6879 } else {
6880 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6881 var3 = 0;
6882 } else {
6883 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6884 }
6885 }
6886 if (unlikely(!var3)) {
6887 PRINT_ERROR("Runtime error: %s", "Assert failed");
6888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11206);
6889 fatal_exit(1);
6890 }
6891 var_tkwinitnode3 = var_nodearraylist2;
6892 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
6893 cltype5 = type_nullable__nit__TKwinit.color;
6894 idtype6 = type_nullable__nit__TKwinit.id;
6895 if(var_tkwinitnode3 == NULL) {
6896 var4 = 1;
6897 } else {
6898 if(cltype5 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
6899 var4 = 0;
6900 } else {
6901 var4 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype5] == idtype6;
6902 }
6903 }
6904 if (unlikely(!var4)) {
6905 PRINT_ERROR("Runtime error: %s", "Assert failed");
6906 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11208);
6907 fatal_exit(1);
6908 }
6909 var_pexprsnode4 = var_nodearraylist3;
6910 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6911 cltype8 = type_nullable__nit__AExprs.color;
6912 idtype9 = type_nullable__nit__AExprs.id;
6913 if(var_pexprsnode4 == NULL) {
6914 var7 = 1;
6915 } else {
6916 if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) {
6917 var7 = 0;
6918 } else {
6919 var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9;
6920 }
6921 }
6922 if (unlikely(!var7)) {
6923 PRINT_ERROR("Runtime error: %s", "Assert failed");
6924 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11210);
6925 fatal_exit(1);
6926 }
6927 var10 = NEW_nit__AInitExpr(&type_nit__AInitExpr);
6928 {
6929 nit__parser_prod___AInitExpr___init_ainitexpr(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var10:AInitExpr>*/
6930 }
6931 var_pexprnode1 = var10;
6932 var_node_list = var_pexprnode1;
6933 var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction884> */
6934 {
6935 var12 = nit___nit__Parser___go_to(var_p, var11);
6936 }
6937 {
6938 nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6939 }
6940 RET_LABEL:;
6941 }
6942 /* method parser#ReduceAction885#action for (self: ReduceAction885, Parser) */
6943 void nit__parser___nit__parser__ReduceAction885___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6944 val* var_p /* var p: Parser */;
6945 val* var_node_list /* var node_list: nullable Object */;
6946 val* var /* : nullable Object */;
6947 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6948 val* var1 /* : nullable Object */;
6949 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6950 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6951 short int var2 /* : Bool */;
6952 int cltype;
6953 int idtype;
6954 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
6955 short int var3 /* : Bool */;
6956 int cltype4;
6957 int idtype5;
6958 val* var6 /* : Array[Object] */;
6959 val* var_listnode5 /* var listnode5: Array[Object] */;
6960 val* var7 /* : AListExprs */;
6961 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6962 val* var8 /* : AInitExpr */;
6963 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
6964 long var9 /* : Int */;
6965 long var10 /* : Int */;
6966 var_p = p0;
6967 var_node_list = ((val*)NULL);
6968 {
6969 var = nit___nit__Parser___pop(var_p);
6970 }
6971 var_nodearraylist2 = var;
6972 {
6973 var1 = nit___nit__Parser___pop(var_p);
6974 }
6975 var_nodearraylist1 = var1;
6976 var_pexprnode2 = var_nodearraylist1;
6977 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6978 cltype = type_nullable__nit__AExpr.color;
6979 idtype = type_nullable__nit__AExpr.id;
6980 if(var_pexprnode2 == NULL) {
6981 var2 = 1;
6982 } else {
6983 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6984 var2 = 0;
6985 } else {
6986 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6987 }
6988 }
6989 if (unlikely(!var2)) {
6990 PRINT_ERROR("Runtime error: %s", "Assert failed");
6991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11228);
6992 fatal_exit(1);
6993 }
6994 var_tkwinitnode3 = var_nodearraylist2;
6995 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
6996 cltype4 = type_nullable__nit__TKwinit.color;
6997 idtype5 = type_nullable__nit__TKwinit.id;
6998 if(var_tkwinitnode3 == NULL) {
6999 var3 = 1;
7000 } else {
7001 if(cltype4 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
7002 var3 = 0;
7003 } else {
7004 var3 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype4] == idtype5;
7005 }
7006 }
7007 if (unlikely(!var3)) {
7008 PRINT_ERROR("Runtime error: %s", "Assert failed");
7009 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11230);
7010 fatal_exit(1);
7011 }
7012 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
7013 {
7014 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
7015 }
7016 var_listnode5 = var6;
7017 var7 = NEW_nit__AListExprs(&type_nit__AListExprs);
7018 {
7019 nit__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var7:AListExprs>*/
7020 }
7021 var_pexprsnode4 = var7;
7022 var8 = NEW_nit__AInitExpr(&type_nit__AInitExpr);
7023 {
7024 nit__parser_prod___AInitExpr___init_ainitexpr(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var8:AInitExpr>*/
7025 }
7026 var_pexprnode1 = var8;
7027 var_node_list = var_pexprnode1;
7028 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction885> */
7029 {
7030 var10 = nit___nit__Parser___go_to(var_p, var9);
7031 }
7032 {
7033 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7034 }
7035 RET_LABEL:;
7036 }
7037 /* method parser#ReduceAction916#action for (self: ReduceAction916, Parser) */
7038 void nit__parser___nit__parser__ReduceAction916___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7039 val* var_p /* var p: Parser */;
7040 val* var_node_list /* var node_list: nullable Object */;
7041 val* var /* : nullable Object */;
7042 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7043 val* var1 /* : nullable Object */;
7044 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7045 val* var2 /* : nullable Object */;
7046 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7047 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
7048 long var3 /* : Int */;
7049 long var4 /* : Int */;
7050 var_p = p0;
7051 var_node_list = ((val*)NULL);
7052 {
7053 var = nit___nit__Parser___pop(var_p);
7054 }
7055 var_nodearraylist3 = var;
7056 {
7057 var1 = nit___nit__Parser___pop(var_p);
7058 }
7059 var_nodearraylist2 = var1;
7060 {
7061 var2 = nit___nit__Parser___pop(var_p);
7062 }
7063 var_nodearraylist1 = var2;
7064 var_pexprnode1 = var_nodearraylist1;
7065 var_node_list = var_pexprnode1;
7066 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction916> */
7067 {
7068 var4 = nit___nit__Parser___go_to(var_p, var3);
7069 }
7070 {
7071 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7072 }
7073 RET_LABEL:;
7074 }
7075 /* method parser#ReduceAction917#action for (self: ReduceAction917, Parser) */
7076 void nit__parser___nit__parser__ReduceAction917___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7077 val* var_p /* var p: Parser */;
7078 val* var_node_list /* var node_list: nullable Object */;
7079 val* var /* : AImplicitSelfExpr */;
7080 val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
7081 long var1 /* : Int */;
7082 long var2 /* : Int */;
7083 var_p = p0;
7084 var_node_list = ((val*)NULL);
7085 var = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
7086 {
7087 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var:AImplicitSelfExpr>*/
7088 }
7089 var_pexprnode1 = var;
7090 var_node_list = var_pexprnode1;
7091 var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction917> */
7092 {
7093 var2 = nit___nit__Parser___go_to(var_p, var1);
7094 }
7095 {
7096 nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7097 }
7098 RET_LABEL:;
7099 }
7100 /* method parser#ReduceAction1078#action for (self: ReduceAction1078, Parser) */
7101 void nit__parser___nit__parser__ReduceAction1078___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7102 val* var_p /* var p: Parser */;
7103 val* var_node_list /* var node_list: nullable Object */;
7104 val* var /* : nullable Object */;
7105 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7106 val* var1 /* : Array[Object] */;
7107 val* var_listnode2 /* var listnode2: Array[Object] */;
7108 val* var_pimportnode1 /* var pimportnode1: nullable Object */;
7109 short int var2 /* : Bool */;
7110 short int var3 /* : Bool */;
7111 long var4 /* : Int */;
7112 long var5 /* : Int */;
7113 var_p = p0;
7114 var_node_list = ((val*)NULL);
7115 {
7116 var = nit___nit__Parser___pop(var_p);
7117 }
7118 var_nodearraylist1 = var;
7119 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
7120 {
7121 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
7122 }
7123 var_listnode2 = var1;
7124 var_pimportnode1 = var_nodearraylist1;
7125 if (var_pimportnode1 == NULL) {
7126 var2 = 0; /* is null */
7127 } else {
7128 var2 = 1; /* arg is null and recv is not */
7129 }
7130 if (0) {
7131 var3 = ((short int(*)(val* self, val* p0))((((long)var_pimportnode1&3)?class_info[((long)var_pimportnode1&3)]:var_pimportnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pimportnode1, ((val*)NULL)); /* != on <var_pimportnode1:nullable Object>*/
7132 var2 = var3;
7133 }
7134 if (var2){
7135 {
7136 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pimportnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7137 }
7138 } else {
7139 }
7140 var_node_list = var_listnode2;
7141 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1078> */
7142 {
7143 var5 = nit___nit__Parser___go_to(var_p, var4);
7144 }
7145 {
7146 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7147 }
7148 RET_LABEL:;
7149 }
7150 /* method parser#ReduceAction1079#action for (self: ReduceAction1079, Parser) */
7151 void nit__parser___nit__parser__ReduceAction1079___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7152 val* var_p /* var p: Parser */;
7153 val* var_node_list /* var node_list: nullable Object */;
7154 val* var /* : nullable Object */;
7155 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7156 val* var1 /* : nullable Object */;
7157 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7158 val* var2 /* : Array[Object] */;
7159 val* var_listnode3 /* var listnode3: Array[Object] */;
7160 val* var_listnode1 /* var listnode1: nullable Object */;
7161 short int var3 /* : Bool */;
7162 int cltype;
7163 int idtype;
7164 val* var_pimportnode2 /* var pimportnode2: nullable Object */;
7165 val* var4 /* : Array[Object] */;
7166 short int var5 /* : Bool */;
7167 short int var6 /* : Bool */;
7168 long var7 /* : Int */;
7169 long var8 /* : Int */;
7170 var_p = p0;
7171 var_node_list = ((val*)NULL);
7172 {
7173 var = nit___nit__Parser___pop(var_p);
7174 }
7175 var_nodearraylist2 = var;
7176 {
7177 var1 = nit___nit__Parser___pop(var_p);
7178 }
7179 var_nodearraylist1 = var1;
7180 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7181 {
7182 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7183 }
7184 var_listnode3 = var2;
7185 var_listnode1 = var_nodearraylist1;
7186 /* <var_listnode1:nullable Object> isa Array[Object] */
7187 cltype = type_standard__Array__standard__Object.color;
7188 idtype = type_standard__Array__standard__Object.id;
7189 if(var_listnode1 == NULL) {
7190 var3 = 0;
7191 } else {
7192 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7193 var3 = 0;
7194 } else {
7195 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7196 }
7197 }
7198 if (unlikely(!var3)) {
7199 PRINT_ERROR("Runtime error: %s", "Assert failed");
7200 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11291);
7201 fatal_exit(1);
7202 }
7203 var_pimportnode2 = var_nodearraylist2;
7204 {
7205 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7206 }
7207 var_listnode3 = var4;
7208 if (var_pimportnode2 == NULL) {
7209 var5 = 0; /* is null */
7210 } else {
7211 var5 = 1; /* arg is null and recv is not */
7212 }
7213 if (0) {
7214 var6 = ((short int(*)(val* self, val* p0))((((long)var_pimportnode2&3)?class_info[((long)var_pimportnode2&3)]:var_pimportnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pimportnode2, ((val*)NULL)); /* != on <var_pimportnode2:nullable Object>*/
7215 var5 = var6;
7216 }
7217 if (var5){
7218 {
7219 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pimportnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7220 }
7221 } else {
7222 }
7223 var_node_list = var_listnode3;
7224 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1079> */
7225 {
7226 var8 = nit___nit__Parser___go_to(var_p, var7);
7227 }
7228 {
7229 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7230 }
7231 RET_LABEL:;
7232 }
7233 /* method parser#ReduceAction1080#action for (self: ReduceAction1080, Parser) */
7234 void nit__parser___nit__parser__ReduceAction1080___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7235 val* var_p /* var p: Parser */;
7236 val* var_node_list /* var node_list: nullable Object */;
7237 val* var /* : nullable Object */;
7238 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7239 val* var1 /* : Array[Object] */;
7240 val* var_listnode2 /* var listnode2: Array[Object] */;
7241 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
7242 short int var2 /* : Bool */;
7243 short int var3 /* : Bool */;
7244 long var4 /* : Int */;
7245 long var5 /* : Int */;
7246 var_p = p0;
7247 var_node_list = ((val*)NULL);
7248 {
7249 var = nit___nit__Parser___pop(var_p);
7250 }
7251 var_nodearraylist1 = var;
7252 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
7253 {
7254 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
7255 }
7256 var_listnode2 = var1;
7257 var_pexterncodeblocknode1 = var_nodearraylist1;
7258 if (var_pexterncodeblocknode1 == NULL) {
7259 var2 = 0; /* is null */
7260 } else {
7261 var2 = 1; /* arg is null and recv is not */
7262 }
7263 if (0) {
7264 var3 = ((short int(*)(val* self, val* p0))((((long)var_pexterncodeblocknode1&3)?class_info[((long)var_pexterncodeblocknode1&3)]:var_pexterncodeblocknode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexterncodeblocknode1, ((val*)NULL)); /* != on <var_pexterncodeblocknode1:nullable Object>*/
7265 var2 = var3;
7266 }
7267 if (var2){
7268 {
7269 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pexterncodeblocknode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7270 }
7271 } else {
7272 }
7273 var_node_list = var_listnode2;
7274 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1080> */
7275 {
7276 var5 = nit___nit__Parser___go_to(var_p, var4);
7277 }
7278 {
7279 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7280 }
7281 RET_LABEL:;
7282 }
7283 /* method parser#ReduceAction1081#action for (self: ReduceAction1081, Parser) */
7284 void nit__parser___nit__parser__ReduceAction1081___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7285 val* var_p /* var p: Parser */;
7286 val* var_node_list /* var node_list: nullable Object */;
7287 val* var /* : nullable Object */;
7288 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7289 val* var1 /* : nullable Object */;
7290 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7291 val* var2 /* : Array[Object] */;
7292 val* var_listnode3 /* var listnode3: Array[Object] */;
7293 val* var_listnode1 /* var listnode1: nullable Object */;
7294 short int var3 /* : Bool */;
7295 int cltype;
7296 int idtype;
7297 val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
7298 val* var4 /* : Array[Object] */;
7299 short int var5 /* : Bool */;
7300 short int var6 /* : Bool */;
7301 long var7 /* : Int */;
7302 long var8 /* : Int */;
7303 var_p = p0;
7304 var_node_list = ((val*)NULL);
7305 {
7306 var = nit___nit__Parser___pop(var_p);
7307 }
7308 var_nodearraylist2 = var;
7309 {
7310 var1 = nit___nit__Parser___pop(var_p);
7311 }
7312 var_nodearraylist1 = var1;
7313 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7314 {
7315 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7316 }
7317 var_listnode3 = var2;
7318 var_listnode1 = var_nodearraylist1;
7319 /* <var_listnode1:nullable Object> isa Array[Object] */
7320 cltype = type_standard__Array__standard__Object.color;
7321 idtype = type_standard__Array__standard__Object.id;
7322 if(var_listnode1 == NULL) {
7323 var3 = 0;
7324 } else {
7325 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7326 var3 = 0;
7327 } else {
7328 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7329 }
7330 }
7331 if (unlikely(!var3)) {
7332 PRINT_ERROR("Runtime error: %s", "Assert failed");
7333 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11325);
7334 fatal_exit(1);
7335 }
7336 var_pexterncodeblocknode2 = var_nodearraylist2;
7337 {
7338 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7339 }
7340 var_listnode3 = var4;
7341 if (var_pexterncodeblocknode2 == NULL) {
7342 var5 = 0; /* is null */
7343 } else {
7344 var5 = 1; /* arg is null and recv is not */
7345 }
7346 if (0) {
7347 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexterncodeblocknode2&3)?class_info[((long)var_pexterncodeblocknode2&3)]:var_pexterncodeblocknode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexterncodeblocknode2, ((val*)NULL)); /* != on <var_pexterncodeblocknode2:nullable Object>*/
7348 var5 = var6;
7349 }
7350 if (var5){
7351 {
7352 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexterncodeblocknode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7353 }
7354 } else {
7355 }
7356 var_node_list = var_listnode3;
7357 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1081> */
7358 {
7359 var8 = nit___nit__Parser___go_to(var_p, var7);
7360 }
7361 {
7362 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7363 }
7364 RET_LABEL:;
7365 }
7366 /* method parser#ReduceAction1082#action for (self: ReduceAction1082, Parser) */
7367 void nit__parser___nit__parser__ReduceAction1082___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7368 val* var_p /* var p: Parser */;
7369 val* var_node_list /* var node_list: nullable Object */;
7370 val* var /* : nullable Object */;
7371 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7372 val* var1 /* : Array[Object] */;
7373 val* var_listnode2 /* var listnode2: Array[Object] */;
7374 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
7375 short int var2 /* : Bool */;
7376 short int var3 /* : Bool */;
7377 long var4 /* : Int */;
7378 long var5 /* : Int */;
7379 var_p = p0;
7380 var_node_list = ((val*)NULL);
7381 {
7382 var = nit___nit__Parser___pop(var_p);
7383 }
7384 var_nodearraylist1 = var;
7385 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
7386 {
7387 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
7388 }
7389 var_listnode2 = var1;
7390 var_pclassdefnode1 = var_nodearraylist1;
7391 if (var_pclassdefnode1 == NULL) {
7392 var2 = 0; /* is null */
7393 } else {
7394 var2 = 1; /* arg is null and recv is not */
7395 }
7396 if (0) {
7397 var3 = ((short int(*)(val* self, val* p0))((((long)var_pclassdefnode1&3)?class_info[((long)var_pclassdefnode1&3)]:var_pclassdefnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pclassdefnode1, ((val*)NULL)); /* != on <var_pclassdefnode1:nullable Object>*/
7398 var2 = var3;
7399 }
7400 if (var2){
7401 {
7402 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pclassdefnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7403 }
7404 } else {
7405 }
7406 var_node_list = var_listnode2;
7407 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1082> */
7408 {
7409 var5 = nit___nit__Parser___go_to(var_p, var4);
7410 }
7411 {
7412 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7413 }
7414 RET_LABEL:;
7415 }
7416 /* method parser#ReduceAction1083#action for (self: ReduceAction1083, Parser) */
7417 void nit__parser___nit__parser__ReduceAction1083___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7418 val* var_p /* var p: Parser */;
7419 val* var_node_list /* var node_list: nullable Object */;
7420 val* var /* : nullable Object */;
7421 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7422 val* var1 /* : nullable Object */;
7423 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7424 val* var2 /* : Array[Object] */;
7425 val* var_listnode3 /* var listnode3: Array[Object] */;
7426 val* var_listnode1 /* var listnode1: nullable Object */;
7427 short int var3 /* : Bool */;
7428 int cltype;
7429 int idtype;
7430 val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
7431 val* var4 /* : Array[Object] */;
7432 short int var5 /* : Bool */;
7433 short int var6 /* : Bool */;
7434 long var7 /* : Int */;
7435 long var8 /* : Int */;
7436 var_p = p0;
7437 var_node_list = ((val*)NULL);
7438 {
7439 var = nit___nit__Parser___pop(var_p);
7440 }
7441 var_nodearraylist2 = var;
7442 {
7443 var1 = nit___nit__Parser___pop(var_p);
7444 }
7445 var_nodearraylist1 = var1;
7446 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7447 {
7448 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7449 }
7450 var_listnode3 = var2;
7451 var_listnode1 = var_nodearraylist1;
7452 /* <var_listnode1:nullable Object> isa Array[Object] */
7453 cltype = type_standard__Array__standard__Object.color;
7454 idtype = type_standard__Array__standard__Object.id;
7455 if(var_listnode1 == NULL) {
7456 var3 = 0;
7457 } else {
7458 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7459 var3 = 0;
7460 } else {
7461 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7462 }
7463 }
7464 if (unlikely(!var3)) {
7465 PRINT_ERROR("Runtime error: %s", "Assert failed");
7466 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11359);
7467 fatal_exit(1);
7468 }
7469 var_pclassdefnode2 = var_nodearraylist2;
7470 {
7471 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7472 }
7473 var_listnode3 = var4;
7474 if (var_pclassdefnode2 == NULL) {
7475 var5 = 0; /* is null */
7476 } else {
7477 var5 = 1; /* arg is null and recv is not */
7478 }
7479 if (0) {
7480 var6 = ((short int(*)(val* self, val* p0))((((long)var_pclassdefnode2&3)?class_info[((long)var_pclassdefnode2&3)]:var_pclassdefnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pclassdefnode2, ((val*)NULL)); /* != on <var_pclassdefnode2:nullable Object>*/
7481 var5 = var6;
7482 }
7483 if (var5){
7484 {
7485 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pclassdefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7486 }
7487 } else {
7488 }
7489 var_node_list = var_listnode3;
7490 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1083> */
7491 {
7492 var8 = nit___nit__Parser___go_to(var_p, var7);
7493 }
7494 {
7495 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7496 }
7497 RET_LABEL:;
7498 }
7499 /* method parser#ReduceAction1085#action for (self: ReduceAction1085, Parser) */
7500 void nit__parser___nit__parser__ReduceAction1085___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7501 val* var_p /* var p: Parser */;
7502 val* var_node_list /* var node_list: nullable Object */;
7503 val* var /* : nullable Object */;
7504 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7505 val* var1 /* : nullable Object */;
7506 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7507 val* var2 /* : Array[Object] */;
7508 val* var_listnode3 /* var listnode3: Array[Object] */;
7509 val* var_listnode1 /* var listnode1: nullable Object */;
7510 short int var3 /* : Bool */;
7511 int cltype;
7512 int idtype;
7513 val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
7514 val* var4 /* : Array[Object] */;
7515 short int var5 /* : Bool */;
7516 short int var6 /* : Bool */;
7517 long var7 /* : Int */;
7518 long var8 /* : Int */;
7519 var_p = p0;
7520 var_node_list = ((val*)NULL);
7521 {
7522 var = nit___nit__Parser___pop(var_p);
7523 }
7524 var_nodearraylist2 = var;
7525 {
7526 var1 = nit___nit__Parser___pop(var_p);
7527 }
7528 var_nodearraylist1 = var1;
7529 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7530 {
7531 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7532 }
7533 var_listnode3 = var2;
7534 var_listnode1 = var_nodearraylist1;
7535 /* <var_listnode1:nullable Object> isa Array[Object] */
7536 cltype = type_standard__Array__standard__Object.color;
7537 idtype = type_standard__Array__standard__Object.id;
7538 if(var_listnode1 == NULL) {
7539 var3 = 0;
7540 } else {
7541 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7542 var3 = 0;
7543 } else {
7544 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7545 }
7546 }
7547 if (unlikely(!var3)) {
7548 PRINT_ERROR("Runtime error: %s", "Assert failed");
7549 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11378);
7550 fatal_exit(1);
7551 }
7552 var_pformaldefnode2 = var_nodearraylist2;
7553 {
7554 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7555 }
7556 var_listnode3 = var4;
7557 if (var_pformaldefnode2 == NULL) {
7558 var5 = 0; /* is null */
7559 } else {
7560 var5 = 1; /* arg is null and recv is not */
7561 }
7562 if (0) {
7563 var6 = ((short int(*)(val* self, val* p0))((((long)var_pformaldefnode2&3)?class_info[((long)var_pformaldefnode2&3)]:var_pformaldefnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pformaldefnode2, ((val*)NULL)); /* != on <var_pformaldefnode2:nullable Object>*/
7564 var5 = var6;
7565 }
7566 if (var5){
7567 {
7568 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pformaldefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7569 }
7570 } else {
7571 }
7572 var_node_list = var_listnode3;
7573 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1085> */
7574 {
7575 var8 = nit___nit__Parser___go_to(var_p, var7);
7576 }
7577 {
7578 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7579 }
7580 RET_LABEL:;
7581 }
7582 /* method parser#ReduceAction1087#action for (self: ReduceAction1087, Parser) */
7583 void nit__parser___nit__parser__ReduceAction1087___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7584 val* var_p /* var p: Parser */;
7585 val* var_node_list /* var node_list: nullable Object */;
7586 val* var /* : nullable Object */;
7587 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7588 val* var1 /* : nullable Object */;
7589 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7590 val* var2 /* : Array[Object] */;
7591 val* var_listnode3 /* var listnode3: Array[Object] */;
7592 val* var_listnode1 /* var listnode1: nullable Object */;
7593 short int var3 /* : Bool */;
7594 int cltype;
7595 int idtype;
7596 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
7597 val* var4 /* : Array[Object] */;
7598 short int var5 /* : Bool */;
7599 short int var6 /* : Bool */;
7600 long var7 /* : Int */;
7601 long var8 /* : Int */;
7602 var_p = p0;
7603 var_node_list = ((val*)NULL);
7604 {
7605 var = nit___nit__Parser___pop(var_p);
7606 }
7607 var_nodearraylist2 = var;
7608 {
7609 var1 = nit___nit__Parser___pop(var_p);
7610 }
7611 var_nodearraylist1 = var1;
7612 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7613 {
7614 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7615 }
7616 var_listnode3 = var2;
7617 var_listnode1 = var_nodearraylist1;
7618 /* <var_listnode1:nullable Object> isa Array[Object] */
7619 cltype = type_standard__Array__standard__Object.color;
7620 idtype = type_standard__Array__standard__Object.id;
7621 if(var_listnode1 == NULL) {
7622 var3 = 0;
7623 } else {
7624 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7625 var3 = 0;
7626 } else {
7627 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7628 }
7629 }
7630 if (unlikely(!var3)) {
7631 PRINT_ERROR("Runtime error: %s", "Assert failed");
7632 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11397);
7633 fatal_exit(1);
7634 }
7635 var_ppropdefnode2 = var_nodearraylist2;
7636 {
7637 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7638 }
7639 var_listnode3 = var4;
7640 if (var_ppropdefnode2 == NULL) {
7641 var5 = 0; /* is null */
7642 } else {
7643 var5 = 1; /* arg is null and recv is not */
7644 }
7645 if (0) {
7646 var6 = ((short int(*)(val* self, val* p0))((((long)var_ppropdefnode2&3)?class_info[((long)var_ppropdefnode2&3)]:var_ppropdefnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_ppropdefnode2, ((val*)NULL)); /* != on <var_ppropdefnode2:nullable Object>*/
7647 var5 = var6;
7648 }
7649 if (var5){
7650 {
7651 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_ppropdefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7652 }
7653 } else {
7654 }
7655 var_node_list = var_listnode3;
7656 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1087> */
7657 {
7658 var8 = nit___nit__Parser___go_to(var_p, var7);
7659 }
7660 {
7661 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7662 }
7663 RET_LABEL:;
7664 }
7665 /* method parser#ReduceAction1089#action for (self: ReduceAction1089, Parser) */
7666 void nit__parser___nit__parser__ReduceAction1089___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7667 val* var_p /* var p: Parser */;
7668 val* var_node_list /* var node_list: nullable Object */;
7669 val* var /* : nullable Object */;
7670 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7671 val* var1 /* : nullable Object */;
7672 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7673 val* var2 /* : Array[Object] */;
7674 val* var_listnode3 /* var listnode3: Array[Object] */;
7675 val* var_listnode1 /* var listnode1: nullable Object */;
7676 short int var3 /* : Bool */;
7677 int cltype;
7678 int idtype;
7679 val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
7680 val* var4 /* : Array[Object] */;
7681 short int var5 /* : Bool */;
7682 short int var6 /* : Bool */;
7683 long var7 /* : Int */;
7684 long var8 /* : Int */;
7685 var_p = p0;
7686 var_node_list = ((val*)NULL);
7687 {
7688 var = nit___nit__Parser___pop(var_p);
7689 }
7690 var_nodearraylist2 = var;
7691 {
7692 var1 = nit___nit__Parser___pop(var_p);
7693 }
7694 var_nodearraylist1 = var1;
7695 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7696 {
7697 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7698 }
7699 var_listnode3 = var2;
7700 var_listnode1 = var_nodearraylist1;
7701 /* <var_listnode1:nullable Object> isa Array[Object] */
7702 cltype = type_standard__Array__standard__Object.color;
7703 idtype = type_standard__Array__standard__Object.id;
7704 if(var_listnode1 == NULL) {
7705 var3 = 0;
7706 } else {
7707 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7708 var3 = 0;
7709 } else {
7710 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7711 }
7712 }
7713 if (unlikely(!var3)) {
7714 PRINT_ERROR("Runtime error: %s", "Assert failed");
7715 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11416);
7716 fatal_exit(1);
7717 }
7718 var_pannotationnode2 = var_nodearraylist2;
7719 {
7720 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7721 }
7722 var_listnode3 = var4;
7723 if (var_pannotationnode2 == NULL) {
7724 var5 = 0; /* is null */
7725 } else {
7726 var5 = 1; /* arg is null and recv is not */
7727 }
7728 if (0) {
7729 var6 = ((short int(*)(val* self, val* p0))((((long)var_pannotationnode2&3)?class_info[((long)var_pannotationnode2&3)]:var_pannotationnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pannotationnode2, ((val*)NULL)); /* != on <var_pannotationnode2:nullable Object>*/
7730 var5 = var6;
7731 }
7732 if (var5){
7733 {
7734 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pannotationnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7735 }
7736 } else {
7737 }
7738 var_node_list = var_listnode3;
7739 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1089> */
7740 {
7741 var8 = nit___nit__Parser___go_to(var_p, var7);
7742 }
7743 {
7744 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7745 }
7746 RET_LABEL:;
7747 }
7748 /* method parser#ReduceAction1090#action for (self: ReduceAction1090, Parser) */
7749 void nit__parser___nit__parser__ReduceAction1090___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7750 val* var_p /* var p: Parser */;
7751 val* var_node_list /* var node_list: nullable Object */;
7752 val* var /* : nullable Object */;
7753 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7754 val* var1 /* : Array[Object] */;
7755 val* var_listnode2 /* var listnode2: Array[Object] */;
7756 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
7757 short int var2 /* : Bool */;
7758 short int var3 /* : Bool */;
7759 long var4 /* : Int */;
7760 long var5 /* : Int */;
7761 var_p = p0;
7762 var_node_list = ((val*)NULL);
7763 {
7764 var = nit___nit__Parser___pop(var_p);
7765 }
7766 var_nodearraylist1 = var;
7767 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
7768 {
7769 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
7770 }
7771 var_listnode2 = var1;
7772 var_pparamnode1 = var_nodearraylist1;
7773 if (var_pparamnode1 == NULL) {
7774 var2 = 0; /* is null */
7775 } else {
7776 var2 = 1; /* arg is null and recv is not */
7777 }
7778 if (0) {
7779 var3 = ((short int(*)(val* self, val* p0))((((long)var_pparamnode1&3)?class_info[((long)var_pparamnode1&3)]:var_pparamnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pparamnode1, ((val*)NULL)); /* != on <var_pparamnode1:nullable Object>*/
7780 var2 = var3;
7781 }
7782 if (var2){
7783 {
7784 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pparamnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7785 }
7786 } else {
7787 }
7788 var_node_list = var_listnode2;
7789 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1090> */
7790 {
7791 var5 = nit___nit__Parser___go_to(var_p, var4);
7792 }
7793 {
7794 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7795 }
7796 RET_LABEL:;
7797 }
7798 /* method parser#ReduceAction1091#action for (self: ReduceAction1091, Parser) */
7799 void nit__parser___nit__parser__ReduceAction1091___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7800 val* var_p /* var p: Parser */;
7801 val* var_node_list /* var node_list: nullable Object */;
7802 val* var /* : nullable Object */;
7803 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7804 val* var1 /* : nullable Object */;
7805 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7806 val* var2 /* : Array[Object] */;
7807 val* var_listnode3 /* var listnode3: Array[Object] */;
7808 val* var_listnode1 /* var listnode1: nullable Object */;
7809 short int var3 /* : Bool */;
7810 int cltype;
7811 int idtype;
7812 val* var_pparamnode2 /* var pparamnode2: nullable Object */;
7813 val* var4 /* : Array[Object] */;
7814 short int var5 /* : Bool */;
7815 short int var6 /* : Bool */;
7816 long var7 /* : Int */;
7817 long var8 /* : Int */;
7818 var_p = p0;
7819 var_node_list = ((val*)NULL);
7820 {
7821 var = nit___nit__Parser___pop(var_p);
7822 }
7823 var_nodearraylist2 = var;
7824 {
7825 var1 = nit___nit__Parser___pop(var_p);
7826 }
7827 var_nodearraylist1 = var1;
7828 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7829 {
7830 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7831 }
7832 var_listnode3 = var2;
7833 var_listnode1 = var_nodearraylist1;
7834 /* <var_listnode1:nullable Object> isa Array[Object] */
7835 cltype = type_standard__Array__standard__Object.color;
7836 idtype = type_standard__Array__standard__Object.id;
7837 if(var_listnode1 == NULL) {
7838 var3 = 0;
7839 } else {
7840 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7841 var3 = 0;
7842 } else {
7843 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7844 }
7845 }
7846 if (unlikely(!var3)) {
7847 PRINT_ERROR("Runtime error: %s", "Assert failed");
7848 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11450);
7849 fatal_exit(1);
7850 }
7851 var_pparamnode2 = var_nodearraylist2;
7852 {
7853 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7854 }
7855 var_listnode3 = var4;
7856 if (var_pparamnode2 == NULL) {
7857 var5 = 0; /* is null */
7858 } else {
7859 var5 = 1; /* arg is null and recv is not */
7860 }
7861 if (0) {
7862 var6 = ((short int(*)(val* self, val* p0))((((long)var_pparamnode2&3)?class_info[((long)var_pparamnode2&3)]:var_pparamnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pparamnode2, ((val*)NULL)); /* != on <var_pparamnode2:nullable Object>*/
7863 var5 = var6;
7864 }
7865 if (var5){
7866 {
7867 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pparamnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7868 }
7869 } else {
7870 }
7871 var_node_list = var_listnode3;
7872 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1091> */
7873 {
7874 var8 = nit___nit__Parser___go_to(var_p, var7);
7875 }
7876 {
7877 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7878 }
7879 RET_LABEL:;
7880 }
7881 /* method parser#ReduceAction1092#action for (self: ReduceAction1092, Parser) */
7882 void nit__parser___nit__parser__ReduceAction1092___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7883 val* var_p /* var p: Parser */;
7884 val* var_node_list /* var node_list: nullable Object */;
7885 val* var /* : nullable Object */;
7886 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7887 val* var1 /* : Array[Object] */;
7888 val* var_listnode2 /* var listnode2: Array[Object] */;
7889 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
7890 short int var2 /* : Bool */;
7891 short int var3 /* : Bool */;
7892 long var4 /* : Int */;
7893 long var5 /* : Int */;
7894 var_p = p0;
7895 var_node_list = ((val*)NULL);
7896 {
7897 var = nit___nit__Parser___pop(var_p);
7898 }
7899 var_nodearraylist1 = var;
7900 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
7901 {
7902 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
7903 }
7904 var_listnode2 = var1;
7905 var_pexterncallnode1 = var_nodearraylist1;
7906 if (var_pexterncallnode1 == NULL) {
7907 var2 = 0; /* is null */
7908 } else {
7909 var2 = 1; /* arg is null and recv is not */
7910 }
7911 if (0) {
7912 var3 = ((short int(*)(val* self, val* p0))((((long)var_pexterncallnode1&3)?class_info[((long)var_pexterncallnode1&3)]:var_pexterncallnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexterncallnode1, ((val*)NULL)); /* != on <var_pexterncallnode1:nullable Object>*/
7913 var2 = var3;
7914 }
7915 if (var2){
7916 {
7917 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pexterncallnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7918 }
7919 } else {
7920 }
7921 var_node_list = var_listnode2;
7922 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1092> */
7923 {
7924 var5 = nit___nit__Parser___go_to(var_p, var4);
7925 }
7926 {
7927 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7928 }
7929 RET_LABEL:;
7930 }
7931 /* method parser#ReduceAction1093#action for (self: ReduceAction1093, Parser) */
7932 void nit__parser___nit__parser__ReduceAction1093___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7933 val* var_p /* var p: Parser */;
7934 val* var_node_list /* var node_list: nullable Object */;
7935 val* var /* : nullable Object */;
7936 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7937 val* var1 /* : nullable Object */;
7938 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7939 val* var2 /* : Array[Object] */;
7940 val* var_listnode3 /* var listnode3: Array[Object] */;
7941 val* var_listnode1 /* var listnode1: nullable Object */;
7942 short int var3 /* : Bool */;
7943 int cltype;
7944 int idtype;
7945 val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
7946 val* var4 /* : Array[Object] */;
7947 short int var5 /* : Bool */;
7948 short int var6 /* : Bool */;
7949 long var7 /* : Int */;
7950 long var8 /* : Int */;
7951 var_p = p0;
7952 var_node_list = ((val*)NULL);
7953 {
7954 var = nit___nit__Parser___pop(var_p);
7955 }
7956 var_nodearraylist2 = var;
7957 {
7958 var1 = nit___nit__Parser___pop(var_p);
7959 }
7960 var_nodearraylist1 = var1;
7961 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
7962 {
7963 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
7964 }
7965 var_listnode3 = var2;
7966 var_listnode1 = var_nodearraylist1;
7967 /* <var_listnode1:nullable Object> isa Array[Object] */
7968 cltype = type_standard__Array__standard__Object.color;
7969 idtype = type_standard__Array__standard__Object.id;
7970 if(var_listnode1 == NULL) {
7971 var3 = 0;
7972 } else {
7973 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7974 var3 = 0;
7975 } else {
7976 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7977 }
7978 }
7979 if (unlikely(!var3)) {
7980 PRINT_ERROR("Runtime error: %s", "Assert failed");
7981 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11484);
7982 fatal_exit(1);
7983 }
7984 var_pexterncallnode2 = var_nodearraylist2;
7985 {
7986 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7987 }
7988 var_listnode3 = var4;
7989 if (var_pexterncallnode2 == NULL) {
7990 var5 = 0; /* is null */
7991 } else {
7992 var5 = 1; /* arg is null and recv is not */
7993 }
7994 if (0) {
7995 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexterncallnode2&3)?class_info[((long)var_pexterncallnode2&3)]:var_pexterncallnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexterncallnode2, ((val*)NULL)); /* != on <var_pexterncallnode2:nullable Object>*/
7996 var5 = var6;
7997 }
7998 if (var5){
7999 {
8000 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexterncallnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8001 }
8002 } else {
8003 }
8004 var_node_list = var_listnode3;
8005 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1093> */
8006 {
8007 var8 = nit___nit__Parser___go_to(var_p, var7);
8008 }
8009 {
8010 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8011 }
8012 RET_LABEL:;
8013 }
8014 /* method parser#ReduceAction1095#action for (self: ReduceAction1095, Parser) */
8015 void nit__parser___nit__parser__ReduceAction1095___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8016 val* var_p /* var p: Parser */;
8017 val* var_node_list /* var node_list: nullable Object */;
8018 val* var /* : nullable Object */;
8019 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8020 val* var1 /* : nullable Object */;
8021 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8022 val* var2 /* : Array[Object] */;
8023 val* var_listnode3 /* var listnode3: Array[Object] */;
8024 val* var_listnode1 /* var listnode1: nullable Object */;
8025 short int var3 /* : Bool */;
8026 int cltype;
8027 int idtype;
8028 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
8029 val* var4 /* : Array[Object] */;
8030 short int var5 /* : Bool */;
8031 short int var6 /* : Bool */;
8032 long var7 /* : Int */;
8033 long var8 /* : Int */;
8034 var_p = p0;
8035 var_node_list = ((val*)NULL);
8036 {
8037 var = nit___nit__Parser___pop(var_p);
8038 }
8039 var_nodearraylist2 = var;
8040 {
8041 var1 = nit___nit__Parser___pop(var_p);
8042 }
8043 var_nodearraylist1 = var1;
8044 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
8045 {
8046 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
8047 }
8048 var_listnode3 = var2;
8049 var_listnode1 = var_nodearraylist1;
8050 /* <var_listnode1:nullable Object> isa Array[Object] */
8051 cltype = type_standard__Array__standard__Object.color;
8052 idtype = type_standard__Array__standard__Object.id;
8053 if(var_listnode1 == NULL) {
8054 var3 = 0;
8055 } else {
8056 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
8057 var3 = 0;
8058 } else {
8059 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
8060 }
8061 }
8062 if (unlikely(!var3)) {
8063 PRINT_ERROR("Runtime error: %s", "Assert failed");
8064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11503);
8065 fatal_exit(1);
8066 }
8067 var_ptypenode2 = var_nodearraylist2;
8068 {
8069 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
8070 }
8071 var_listnode3 = var4;
8072 if (var_ptypenode2 == NULL) {
8073 var5 = 0; /* is null */
8074 } else {
8075 var5 = 1; /* arg is null and recv is not */
8076 }
8077 if (0) {
8078 var6 = ((short int(*)(val* self, val* p0))((((long)var_ptypenode2&3)?class_info[((long)var_ptypenode2&3)]:var_ptypenode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_ptypenode2, ((val*)NULL)); /* != on <var_ptypenode2:nullable Object>*/
8079 var5 = var6;
8080 }
8081 if (var5){
8082 {
8083 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_ptypenode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8084 }
8085 } else {
8086 }
8087 var_node_list = var_listnode3;
8088 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1095> */
8089 {
8090 var8 = nit___nit__Parser___go_to(var_p, var7);
8091 }
8092 {
8093 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8094 }
8095 RET_LABEL:;
8096 }
8097 /* method parser#ReduceAction1097#action for (self: ReduceAction1097, Parser) */
8098 void nit__parser___nit__parser__ReduceAction1097___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8099 val* var_p /* var p: Parser */;
8100 val* var_node_list /* var node_list: nullable Object */;
8101 val* var /* : nullable Object */;
8102 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8103 val* var1 /* : nullable Object */;
8104 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8105 val* var2 /* : Array[Object] */;
8106 val* var_listnode3 /* var listnode3: Array[Object] */;
8107 val* var_listnode1 /* var listnode1: nullable Object */;
8108 short int var3 /* : Bool */;
8109 int cltype;
8110 int idtype;
8111 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8112 val* var4 /* : Array[Object] */;
8113 short int var5 /* : Bool */;
8114 short int var6 /* : Bool */;
8115 long var7 /* : Int */;
8116 long var8 /* : Int */;
8117 var_p = p0;
8118 var_node_list = ((val*)NULL);
8119 {
8120 var = nit___nit__Parser___pop(var_p);
8121 }
8122 var_nodearraylist2 = var;
8123 {
8124 var1 = nit___nit__Parser___pop(var_p);
8125 }
8126 var_nodearraylist1 = var1;
8127 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
8128 {
8129 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
8130 }
8131 var_listnode3 = var2;
8132 var_listnode1 = var_nodearraylist1;
8133 /* <var_listnode1:nullable Object> isa Array[Object] */
8134 cltype = type_standard__Array__standard__Object.color;
8135 idtype = type_standard__Array__standard__Object.id;
8136 if(var_listnode1 == NULL) {
8137 var3 = 0;
8138 } else {
8139 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
8140 var3 = 0;
8141 } else {
8142 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
8143 }
8144 }
8145 if (unlikely(!var3)) {
8146 PRINT_ERROR("Runtime error: %s", "Assert failed");
8147 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11522);
8148 fatal_exit(1);
8149 }
8150 var_pexprnode2 = var_nodearraylist2;
8151 {
8152 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
8153 }
8154 var_listnode3 = var4;
8155 if (var_pexprnode2 == NULL) {
8156 var5 = 0; /* is null */
8157 } else {
8158 var5 = 1; /* arg is null and recv is not */
8159 }
8160 if (0) {
8161 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode2&3)?class_info[((long)var_pexprnode2&3)]:var_pexprnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pexprnode2, ((val*)NULL)); /* != on <var_pexprnode2:nullable Object>*/
8162 var5 = var6;
8163 }
8164 if (var5){
8165 {
8166 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8167 }
8168 } else {
8169 }
8170 var_node_list = var_listnode3;
8171 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1097> */
8172 {
8173 var8 = nit___nit__Parser___go_to(var_p, var7);
8174 }
8175 {
8176 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8177 }
8178 RET_LABEL:;
8179 }
8180 /* method parser#ReduceAction1103#action for (self: ReduceAction1103, Parser) */
8181 void nit__parser___nit__parser__ReduceAction1103___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8182 val* var_p /* var p: Parser */;
8183 val* var_node_list /* var node_list: nullable Object */;
8184 val* var /* : nullable Object */;
8185 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8186 val* var1 /* : nullable Object */;
8187 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8188 val* var2 /* : Array[Object] */;
8189 val* var_listnode3 /* var listnode3: Array[Object] */;
8190 val* var_listnode1 /* var listnode1: nullable Object */;
8191 short int var3 /* : Bool */;
8192 int cltype;
8193 int idtype;
8194 val* var_listnode2 /* var listnode2: nullable Object */;
8195 short int var4 /* : Bool */;
8196 int cltype5;
8197 int idtype6;
8198 val* var7 /* : Array[Object] */;
8199 val* var8 /* : Array[Object] */;
8200 long var9 /* : Int */;
8201 long var10 /* : Int */;
8202 var_p = p0;
8203 var_node_list = ((val*)NULL);
8204 {
8205 var = nit___nit__Parser___pop(var_p);
8206 }
8207 var_nodearraylist2 = var;
8208 {
8209 var1 = nit___nit__Parser___pop(var_p);
8210 }
8211 var_nodearraylist1 = var1;
8212 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
8213 {
8214 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
8215 }
8216 var_listnode3 = var2;
8217 var_listnode1 = var_nodearraylist1;
8218 /* <var_listnode1:nullable Object> isa Array[Object] */
8219 cltype = type_standard__Array__standard__Object.color;
8220 idtype = type_standard__Array__standard__Object.id;
8221 if(var_listnode1 == NULL) {
8222 var3 = 0;
8223 } else {
8224 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
8225 var3 = 0;
8226 } else {
8227 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
8228 }
8229 }
8230 if (unlikely(!var3)) {
8231 PRINT_ERROR("Runtime error: %s", "Assert failed");
8232 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11541);
8233 fatal_exit(1);
8234 }
8235 var_listnode2 = var_nodearraylist2;
8236 /* <var_listnode2:nullable Object> isa Array[Object] */
8237 cltype5 = type_standard__Array__standard__Object.color;
8238 idtype6 = type_standard__Array__standard__Object.id;
8239 if(var_listnode2 == NULL) {
8240 var4 = 0;
8241 } else {
8242 if(cltype5 >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
8243 var4 = 0;
8244 } else {
8245 var4 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype5] == idtype6;
8246 }
8247 }
8248 if (unlikely(!var4)) {
8249 PRINT_ERROR("Runtime error: %s", "Assert failed");
8250 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11543);
8251 fatal_exit(1);
8252 }
8253 {
8254 var7 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
8255 }
8256 var_listnode3 = var7;
8257 {
8258 var8 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
8259 }
8260 var_listnode3 = var8;
8261 var_node_list = var_listnode3;
8262 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1103> */
8263 {
8264 var10 = nit___nit__Parser___go_to(var_p, var9);
8265 }
8266 {
8267 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8268 }
8269 RET_LABEL:;
8270 }
8271 /* method parser#ReduceAction1111#action for (self: ReduceAction1111, Parser) */
8272 void nit__parser___nit__parser__ReduceAction1111___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8273 val* var_p /* var p: Parser */;
8274 val* var_node_list /* var node_list: nullable Object */;
8275 val* var /* : nullable Object */;
8276 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8277 val* var1 /* : nullable Object */;
8278 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8279 val* var2 /* : Array[Object] */;
8280 val* var_listnode3 /* var listnode3: Array[Object] */;
8281 val* var_listnode1 /* var listnode1: nullable Object */;
8282 short int var3 /* : Bool */;
8283 int cltype;
8284 int idtype;
8285 val* var_tidnode2 /* var tidnode2: nullable Object */;
8286 val* var4 /* : Array[Object] */;
8287 short int var5 /* : Bool */;
8288 short int var6 /* : Bool */;
8289 long var7 /* : Int */;
8290 long var8 /* : Int */;
8291 var_p = p0;
8292 var_node_list = ((val*)NULL);
8293 {
8294 var = nit___nit__Parser___pop(var_p);
8295 }
8296 var_nodearraylist2 = var;
8297 {
8298 var1 = nit___nit__Parser___pop(var_p);
8299 }
8300 var_nodearraylist1 = var1;
8301 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
8302 {
8303 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
8304 }
8305 var_listnode3 = var2;
8306 var_listnode1 = var_nodearraylist1;
8307 /* <var_listnode1:nullable Object> isa Array[Object] */
8308 cltype = type_standard__Array__standard__Object.color;
8309 idtype = type_standard__Array__standard__Object.id;
8310 if(var_listnode1 == NULL) {
8311 var3 = 0;
8312 } else {
8313 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
8314 var3 = 0;
8315 } else {
8316 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
8317 }
8318 }
8319 if (unlikely(!var3)) {
8320 PRINT_ERROR("Runtime error: %s", "Assert failed");
8321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11559);
8322 fatal_exit(1);
8323 }
8324 var_tidnode2 = var_nodearraylist2;
8325 {
8326 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
8327 }
8328 var_listnode3 = var4;
8329 if (var_tidnode2 == NULL) {
8330 var5 = 0; /* is null */
8331 } else {
8332 var5 = 1; /* arg is null and recv is not */
8333 }
8334 if (0) {
8335 var6 = ((short int(*)(val* self, val* p0))((((long)var_tidnode2&3)?class_info[((long)var_tidnode2&3)]:var_tidnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_tidnode2, ((val*)NULL)); /* != on <var_tidnode2:nullable Object>*/
8336 var5 = var6;
8337 }
8338 if (var5){
8339 {
8340 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_tidnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8341 }
8342 } else {
8343 }
8344 var_node_list = var_listnode3;
8345 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1111> */
8346 {
8347 var8 = nit___nit__Parser___go_to(var_p, var7);
8348 }
8349 {
8350 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8351 }
8352 RET_LABEL:;
8353 }
8354 /* method parser#ReduceAction1112#action for (self: ReduceAction1112, Parser) */
8355 void nit__parser___nit__parser__ReduceAction1112___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8356 val* var_p /* var p: Parser */;
8357 val* var_node_list /* var node_list: nullable Object */;
8358 val* var /* : nullable Object */;
8359 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8360 val* var1 /* : Array[Object] */;
8361 val* var_listnode2 /* var listnode2: Array[Object] */;
8362 val* var_tcommentnode1 /* var tcommentnode1: nullable Object */;
8363 short int var2 /* : Bool */;
8364 short int var3 /* : Bool */;
8365 long var4 /* : Int */;
8366 long var5 /* : Int */;
8367 var_p = p0;
8368 var_node_list = ((val*)NULL);
8369 {
8370 var = nit___nit__Parser___pop(var_p);
8371 }
8372 var_nodearraylist1 = var;
8373 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
8374 {
8375 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
8376 }
8377 var_listnode2 = var1;
8378 var_tcommentnode1 = var_nodearraylist1;
8379 if (var_tcommentnode1 == NULL) {
8380 var2 = 0; /* is null */
8381 } else {
8382 var2 = 1; /* arg is null and recv is not */
8383 }
8384 if (0) {
8385 var3 = ((short int(*)(val* self, val* p0))((((long)var_tcommentnode1&3)?class_info[((long)var_tcommentnode1&3)]:var_tcommentnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_tcommentnode1, ((val*)NULL)); /* != on <var_tcommentnode1:nullable Object>*/
8386 var2 = var3;
8387 }
8388 if (var2){
8389 {
8390 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_tcommentnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8391 }
8392 } else {
8393 }
8394 var_node_list = var_listnode2;
8395 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1112> */
8396 {
8397 var5 = nit___nit__Parser___go_to(var_p, var4);
8398 }
8399 {
8400 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8401 }
8402 RET_LABEL:;
8403 }
8404 /* method parser#ReduceAction1113#action for (self: ReduceAction1113, Parser) */
8405 void nit__parser___nit__parser__ReduceAction1113___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8406 val* var_p /* var p: Parser */;
8407 val* var_node_list /* var node_list: nullable Object */;
8408 val* var /* : nullable Object */;
8409 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8410 val* var1 /* : nullable Object */;
8411 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8412 val* var2 /* : Array[Object] */;
8413 val* var_listnode3 /* var listnode3: Array[Object] */;
8414 val* var_listnode1 /* var listnode1: nullable Object */;
8415 short int var3 /* : Bool */;
8416 int cltype;
8417 int idtype;
8418 val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
8419 val* var4 /* : Array[Object] */;
8420 short int var5 /* : Bool */;
8421 short int var6 /* : Bool */;
8422 long var7 /* : Int */;
8423 long var8 /* : Int */;
8424 var_p = p0;
8425 var_node_list = ((val*)NULL);
8426 {
8427 var = nit___nit__Parser___pop(var_p);
8428 }
8429 var_nodearraylist2 = var;
8430 {
8431 var1 = nit___nit__Parser___pop(var_p);
8432 }
8433 var_nodearraylist1 = var1;
8434 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
8435 {
8436 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
8437 }
8438 var_listnode3 = var2;
8439 var_listnode1 = var_nodearraylist1;
8440 /* <var_listnode1:nullable Object> isa Array[Object] */
8441 cltype = type_standard__Array__standard__Object.color;
8442 idtype = type_standard__Array__standard__Object.id;
8443 if(var_listnode1 == NULL) {
8444 var3 = 0;
8445 } else {
8446 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
8447 var3 = 0;
8448 } else {
8449 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
8450 }
8451 }
8452 if (unlikely(!var3)) {
8453 PRINT_ERROR("Runtime error: %s", "Assert failed");
8454 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 11593);
8455 fatal_exit(1);
8456 }
8457 var_tcommentnode2 = var_nodearraylist2;
8458 {
8459 var4 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
8460 }
8461 var_listnode3 = var4;
8462 if (var_tcommentnode2 == NULL) {
8463 var5 = 0; /* is null */
8464 } else {
8465 var5 = 1; /* arg is null and recv is not */
8466 }
8467 if (0) {
8468 var6 = ((short int(*)(val* self, val* p0))((((long)var_tcommentnode2&3)?class_info[((long)var_tcommentnode2&3)]:var_tcommentnode2->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_tcommentnode2, ((val*)NULL)); /* != on <var_tcommentnode2:nullable Object>*/
8469 var5 = var6;
8470 }
8471 if (var5){
8472 {
8473 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_tcommentnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8474 }
8475 } else {
8476 }
8477 var_node_list = var_listnode3;
8478 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1113> */
8479 {
8480 var8 = nit___nit__Parser___go_to(var_p, var7);
8481 }
8482 {
8483 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8484 }
8485 RET_LABEL:;
8486 }