tests: update sav/test_parser* because AST changes
[nit.git] / c_src / nit__parser.sep.5.c
1 #include "nit__parser.sep.0.h"
2 /* method parser#ReduceAction273#action for (self: ReduceAction273, Parser) */
3 void nit__parser___nit__parser__ReduceAction273___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_nodearraylist7 /* var nodearraylist7: nullable Object */;
8 val* var1 /* : nullable Object */;
9 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
10 val* var2 /* : nullable Object */;
11 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
12 val* var3 /* : nullable Object */;
13 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
14 val* var4 /* : nullable Object */;
15 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
16 val* var5 /* : nullable Object */;
17 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
18 val* var6 /* : nullable Object */;
19 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
20 val* var_tkwwithnode2 /* var tkwwithnode2: nullable Object */;
21 short int var7 /* : Bool */;
22 int cltype;
23 int idtype;
24 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
25 short int var8 /* : Bool */;
26 int cltype9;
27 int idtype10;
28 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
29 short int var11 /* : Bool */;
30 int cltype12;
31 int idtype13;
32 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
33 short int var14 /* : Bool */;
34 int cltype15;
35 int idtype16;
36 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
37 short int var17 /* : Bool */;
38 int cltype18;
39 int idtype19;
40 val* var20 /* : AWithExpr */;
41 val* var_pexprnode1 /* var pexprnode1: nullable AWithExpr */;
42 long var21 /* : Int */;
43 long var22 /* : Int */;
44 var_p = p0;
45 var_node_list = ((val*)NULL);
46 {
47 var = nit___nit__Parser___pop(var_p);
48 }
49 var_nodearraylist7 = var;
50 {
51 var1 = nit___nit__Parser___pop(var_p);
52 }
53 var_nodearraylist6 = var1;
54 {
55 var2 = nit___nit__Parser___pop(var_p);
56 }
57 var_nodearraylist5 = var2;
58 {
59 var3 = nit___nit__Parser___pop(var_p);
60 }
61 var_nodearraylist4 = var3;
62 {
63 var4 = nit___nit__Parser___pop(var_p);
64 }
65 var_nodearraylist3 = var4;
66 {
67 var5 = nit___nit__Parser___pop(var_p);
68 }
69 var_nodearraylist2 = var5;
70 {
71 var6 = nit___nit__Parser___pop(var_p);
72 }
73 var_nodearraylist1 = var6;
74 var_tkwwithnode2 = var_nodearraylist1;
75 /* <var_tkwwithnode2:nullable Object> isa nullable TKwwith */
76 cltype = type_nullable__nit__TKwwith.color;
77 idtype = type_nullable__nit__TKwwith.id;
78 if(var_tkwwithnode2 == NULL) {
79 var7 = 1;
80 } else {
81 if(cltype >= (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->table_size) {
82 var7 = 0;
83 } else {
84 var7 = (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->type_table[cltype] == idtype;
85 }
86 }
87 if (unlikely(!var7)) {
88 PRINT_ERROR("Runtime error: %s", "Assert failed");
89 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7434);
90 fatal_exit(1);
91 }
92 var_pexprnode3 = var_nodearraylist3;
93 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
94 cltype9 = type_nullable__nit__AExpr.color;
95 idtype10 = type_nullable__nit__AExpr.id;
96 if(var_pexprnode3 == NULL) {
97 var8 = 1;
98 } else {
99 if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
100 var8 = 0;
101 } else {
102 var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10;
103 }
104 }
105 if (unlikely(!var8)) {
106 PRINT_ERROR("Runtime error: %s", "Assert failed");
107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7436);
108 fatal_exit(1);
109 }
110 var_tkwdonode4 = var_nodearraylist5;
111 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
112 cltype12 = type_nullable__nit__TKwdo.color;
113 idtype13 = type_nullable__nit__TKwdo.id;
114 if(var_tkwdonode4 == NULL) {
115 var11 = 1;
116 } else {
117 if(cltype12 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) {
118 var11 = 0;
119 } else {
120 var11 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype12] == idtype13;
121 }
122 }
123 if (unlikely(!var11)) {
124 PRINT_ERROR("Runtime error: %s", "Assert failed");
125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7438);
126 fatal_exit(1);
127 }
128 var_pexprnode5 = var_nodearraylist6;
129 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
130 cltype15 = type_nullable__nit__AExpr.color;
131 idtype16 = type_nullable__nit__AExpr.id;
132 if(var_pexprnode5 == NULL) {
133 var14 = 1;
134 } else {
135 if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
136 var14 = 0;
137 } else {
138 var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16;
139 }
140 }
141 if (unlikely(!var14)) {
142 PRINT_ERROR("Runtime error: %s", "Assert failed");
143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7440);
144 fatal_exit(1);
145 }
146 var_plabelnode6 = var_nodearraylist7;
147 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
148 cltype18 = type_nullable__nit__ALabel.color;
149 idtype19 = type_nullable__nit__ALabel.id;
150 if(var_plabelnode6 == NULL) {
151 var17 = 1;
152 } else {
153 if(cltype18 >= (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->table_size) {
154 var17 = 0;
155 } else {
156 var17 = (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->type_table[cltype18] == idtype19;
157 }
158 }
159 if (unlikely(!var17)) {
160 PRINT_ERROR("Runtime error: %s", "Assert failed");
161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7442);
162 fatal_exit(1);
163 }
164 var20 = NEW_nit__AWithExpr(&type_nit__AWithExpr);
165 {
166 nit__parser_prod___AWithExpr___init_awithexpr(var20, var_tkwwithnode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6); /* Direct call parser_prod#AWithExpr#init_awithexpr on <var20:AWithExpr>*/
167 }
168 var_pexprnode1 = var20;
169 var_node_list = var_pexprnode1;
170 var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction273> */
171 {
172 var22 = nit___nit__Parser___go_to(var_p, var21);
173 }
174 {
175 nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
176 }
177 RET_LABEL:;
178 }
179 /* method parser#ReduceAction274#action for (self: ReduceAction274, Parser) */
180 void nit__parser___nit__parser__ReduceAction274___nit__parser_work__ReduceAction__action(val* self, val* p0) {
181 val* var_p /* var p: Parser */;
182 val* var_node_list /* var node_list: nullable Object */;
183 val* var /* : nullable Object */;
184 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
185 val* var1 /* : nullable Object */;
186 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
187 val* var2 /* : nullable Object */;
188 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
189 val* var3 /* : nullable Object */;
190 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
191 val* var4 /* : nullable Object */;
192 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
193 val* var5 /* : nullable Object */;
194 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
195 val* var_tkwwithnode2 /* var tkwwithnode2: nullable Object */;
196 short int var6 /* : Bool */;
197 int cltype;
198 int idtype;
199 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
200 short int var7 /* : Bool */;
201 int cltype8;
202 int idtype9;
203 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
204 short int var10 /* : Bool */;
205 int cltype11;
206 int idtype12;
207 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
208 short int var13 /* : Bool */;
209 int cltype14;
210 int idtype15;
211 val* var16 /* : AWithExpr */;
212 val* var_pexprnode1 /* var pexprnode1: nullable AWithExpr */;
213 long var17 /* : Int */;
214 long var18 /* : Int */;
215 var_p = p0;
216 var_node_list = ((val*)NULL);
217 {
218 var = nit___nit__Parser___pop(var_p);
219 }
220 var_nodearraylist6 = var;
221 {
222 var1 = nit___nit__Parser___pop(var_p);
223 }
224 var_nodearraylist5 = var1;
225 {
226 var2 = nit___nit__Parser___pop(var_p);
227 }
228 var_nodearraylist4 = var2;
229 {
230 var3 = nit___nit__Parser___pop(var_p);
231 }
232 var_nodearraylist3 = var3;
233 {
234 var4 = nit___nit__Parser___pop(var_p);
235 }
236 var_nodearraylist2 = var4;
237 {
238 var5 = nit___nit__Parser___pop(var_p);
239 }
240 var_nodearraylist1 = var5;
241 var_tkwwithnode2 = var_nodearraylist1;
242 /* <var_tkwwithnode2:nullable Object> isa nullable TKwwith */
243 cltype = type_nullable__nit__TKwwith.color;
244 idtype = type_nullable__nit__TKwwith.id;
245 if(var_tkwwithnode2 == NULL) {
246 var6 = 1;
247 } else {
248 if(cltype >= (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->table_size) {
249 var6 = 0;
250 } else {
251 var6 = (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->type_table[cltype] == idtype;
252 }
253 }
254 if (unlikely(!var6)) {
255 PRINT_ERROR("Runtime error: %s", "Assert failed");
256 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7466);
257 fatal_exit(1);
258 }
259 var_pexprnode3 = var_nodearraylist3;
260 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
261 cltype8 = type_nullable__nit__AExpr.color;
262 idtype9 = type_nullable__nit__AExpr.id;
263 if(var_pexprnode3 == NULL) {
264 var7 = 1;
265 } else {
266 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
267 var7 = 0;
268 } else {
269 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
270 }
271 }
272 if (unlikely(!var7)) {
273 PRINT_ERROR("Runtime error: %s", "Assert failed");
274 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7468);
275 fatal_exit(1);
276 }
277 var_tkwdonode4 = var_nodearraylist5;
278 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
279 cltype11 = type_nullable__nit__TKwdo.color;
280 idtype12 = type_nullable__nit__TKwdo.id;
281 if(var_tkwdonode4 == NULL) {
282 var10 = 1;
283 } else {
284 if(cltype11 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) {
285 var10 = 0;
286 } else {
287 var10 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype11] == idtype12;
288 }
289 }
290 if (unlikely(!var10)) {
291 PRINT_ERROR("Runtime error: %s", "Assert failed");
292 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7470);
293 fatal_exit(1);
294 }
295 var_pexprnode5 = var_nodearraylist6;
296 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
297 cltype14 = type_nullable__nit__AExpr.color;
298 idtype15 = type_nullable__nit__AExpr.id;
299 if(var_pexprnode5 == NULL) {
300 var13 = 1;
301 } else {
302 if(cltype14 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
303 var13 = 0;
304 } else {
305 var13 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype14] == idtype15;
306 }
307 }
308 if (unlikely(!var13)) {
309 PRINT_ERROR("Runtime error: %s", "Assert failed");
310 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7472);
311 fatal_exit(1);
312 }
313 var16 = NEW_nit__AWithExpr(&type_nit__AWithExpr);
314 {
315 nit__parser_prod___AWithExpr___init_awithexpr(var16, var_tkwwithnode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, ((val*)NULL)); /* Direct call parser_prod#AWithExpr#init_awithexpr on <var16:AWithExpr>*/
316 }
317 var_pexprnode1 = var16;
318 var_node_list = var_pexprnode1;
319 var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction274> */
320 {
321 var18 = nit___nit__Parser___go_to(var_p, var17);
322 }
323 {
324 nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
325 }
326 RET_LABEL:;
327 }
328 /* method parser#ReduceAction275#action for (self: ReduceAction275, Parser) */
329 void nit__parser___nit__parser__ReduceAction275___nit__parser_work__ReduceAction__action(val* self, val* p0) {
330 val* var_p /* var p: Parser */;
331 val* var_node_list /* var node_list: nullable Object */;
332 val* var /* : nullable Object */;
333 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
334 val* var1 /* : nullable Object */;
335 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
336 val* var2 /* : nullable Object */;
337 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
338 val* var3 /* : nullable Object */;
339 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
340 val* var4 /* : nullable Object */;
341 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
342 val* var_tidnode3 /* var tidnode3: nullable Object */;
343 short int var5 /* : Bool */;
344 int cltype;
345 int idtype;
346 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
347 short int var6 /* : Bool */;
348 int cltype7;
349 int idtype8;
350 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
351 short int var9 /* : Bool */;
352 int cltype10;
353 int idtype11;
354 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
355 short int var12 /* : Bool */;
356 int cltype13;
357 int idtype14;
358 val* var15 /* : AVardeclExpr */;
359 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
360 long var16 /* : Int */;
361 long var17 /* : Int */;
362 var_p = p0;
363 var_node_list = ((val*)NULL);
364 {
365 var = nit___nit__Parser___pop(var_p);
366 }
367 var_nodearraylist5 = var;
368 {
369 var1 = nit___nit__Parser___pop(var_p);
370 }
371 var_nodearraylist4 = var1;
372 {
373 var2 = nit___nit__Parser___pop(var_p);
374 }
375 var_nodearraylist3 = var2;
376 {
377 var3 = nit___nit__Parser___pop(var_p);
378 }
379 var_nodearraylist2 = var3;
380 {
381 var4 = nit___nit__Parser___pop(var_p);
382 }
383 var_nodearraylist1 = var4;
384 var_tidnode3 = var_nodearraylist1;
385 /* <var_tidnode3:nullable Object> isa nullable TId */
386 cltype = type_nullable__nit__TId.color;
387 idtype = type_nullable__nit__TId.id;
388 if(var_tidnode3 == NULL) {
389 var5 = 1;
390 } else {
391 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
392 var5 = 0;
393 } else {
394 var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
395 }
396 }
397 if (unlikely(!var5)) {
398 PRINT_ERROR("Runtime error: %s", "Assert failed");
399 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7495);
400 fatal_exit(1);
401 }
402 var_ptypenode4 = var_nodearraylist2;
403 /* <var_ptypenode4:nullable Object> isa nullable AType */
404 cltype7 = type_nullable__nit__AType.color;
405 idtype8 = type_nullable__nit__AType.id;
406 if(var_ptypenode4 == NULL) {
407 var6 = 1;
408 } else {
409 if(cltype7 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) {
410 var6 = 0;
411 } else {
412 var6 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype7] == idtype8;
413 }
414 }
415 if (unlikely(!var6)) {
416 PRINT_ERROR("Runtime error: %s", "Assert failed");
417 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7497);
418 fatal_exit(1);
419 }
420 var_tassignnode5 = var_nodearraylist3;
421 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
422 cltype10 = type_nullable__nit__TAssign.color;
423 idtype11 = type_nullable__nit__TAssign.id;
424 if(var_tassignnode5 == NULL) {
425 var9 = 1;
426 } else {
427 if(cltype10 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) {
428 var9 = 0;
429 } else {
430 var9 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype10] == idtype11;
431 }
432 }
433 if (unlikely(!var9)) {
434 PRINT_ERROR("Runtime error: %s", "Assert failed");
435 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7499);
436 fatal_exit(1);
437 }
438 var_pexprnode6 = var_nodearraylist5;
439 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
440 cltype13 = type_nullable__nit__AExpr.color;
441 idtype14 = type_nullable__nit__AExpr.id;
442 if(var_pexprnode6 == NULL) {
443 var12 = 1;
444 } else {
445 if(cltype13 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
446 var12 = 0;
447 } else {
448 var12 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype13] == idtype14;
449 }
450 }
451 if (unlikely(!var12)) {
452 PRINT_ERROR("Runtime error: %s", "Assert failed");
453 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7501);
454 fatal_exit(1);
455 }
456 var15 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr);
457 {
458 nit__parser_prod___AVardeclExpr___init_avardeclexpr(var15, ((val*)NULL), var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, ((val*)NULL)); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on <var15:AVardeclExpr>*/
459 }
460 var_pexprnode1 = var15;
461 var_node_list = var_pexprnode1;
462 var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction275> */
463 {
464 var17 = nit___nit__Parser___go_to(var_p, var16);
465 }
466 {
467 nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
468 }
469 RET_LABEL:;
470 }
471 /* method parser#ReduceAction276#action for (self: ReduceAction276, Parser) */
472 void nit__parser___nit__parser__ReduceAction276___nit__parser_work__ReduceAction__action(val* self, val* p0) {
473 val* var_p /* var p: Parser */;
474 val* var_node_list /* var node_list: nullable Object */;
475 val* var /* : nullable Object */;
476 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
477 val* var1 /* : nullable Object */;
478 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
479 val* var2 /* : nullable Object */;
480 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
481 val* var3 /* : nullable Object */;
482 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
483 val* var4 /* : nullable Object */;
484 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
485 val* var5 /* : nullable Object */;
486 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
487 val* var_tidnode3 /* var tidnode3: nullable Object */;
488 short int var6 /* : Bool */;
489 int cltype;
490 int idtype;
491 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
492 short int var7 /* : Bool */;
493 int cltype8;
494 int idtype9;
495 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
496 short int var10 /* : Bool */;
497 int cltype11;
498 int idtype12;
499 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
500 short int var13 /* : Bool */;
501 int cltype14;
502 int idtype15;
503 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
504 short int var16 /* : Bool */;
505 int cltype17;
506 int idtype18;
507 val* var19 /* : AVardeclExpr */;
508 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
509 long var20 /* : Int */;
510 long var21 /* : Int */;
511 var_p = p0;
512 var_node_list = ((val*)NULL);
513 {
514 var = nit___nit__Parser___pop(var_p);
515 }
516 var_nodearraylist6 = var;
517 {
518 var1 = nit___nit__Parser___pop(var_p);
519 }
520 var_nodearraylist5 = var1;
521 {
522 var2 = nit___nit__Parser___pop(var_p);
523 }
524 var_nodearraylist4 = var2;
525 {
526 var3 = nit___nit__Parser___pop(var_p);
527 }
528 var_nodearraylist3 = var3;
529 {
530 var4 = nit___nit__Parser___pop(var_p);
531 }
532 var_nodearraylist2 = var4;
533 {
534 var5 = nit___nit__Parser___pop(var_p);
535 }
536 var_nodearraylist1 = var5;
537 var_tidnode3 = var_nodearraylist1;
538 /* <var_tidnode3:nullable Object> isa nullable TId */
539 cltype = type_nullable__nit__TId.color;
540 idtype = type_nullable__nit__TId.id;
541 if(var_tidnode3 == NULL) {
542 var6 = 1;
543 } else {
544 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
545 var6 = 0;
546 } else {
547 var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
548 }
549 }
550 if (unlikely(!var6)) {
551 PRINT_ERROR("Runtime error: %s", "Assert failed");
552 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7526);
553 fatal_exit(1);
554 }
555 var_ptypenode4 = var_nodearraylist3;
556 /* <var_ptypenode4:nullable Object> isa nullable AType */
557 cltype8 = type_nullable__nit__AType.color;
558 idtype9 = type_nullable__nit__AType.id;
559 if(var_ptypenode4 == NULL) {
560 var7 = 1;
561 } else {
562 if(cltype8 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) {
563 var7 = 0;
564 } else {
565 var7 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype8] == idtype9;
566 }
567 }
568 if (unlikely(!var7)) {
569 PRINT_ERROR("Runtime error: %s", "Assert failed");
570 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7528);
571 fatal_exit(1);
572 }
573 var_tassignnode5 = var_nodearraylist4;
574 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
575 cltype11 = type_nullable__nit__TAssign.color;
576 idtype12 = type_nullable__nit__TAssign.id;
577 if(var_tassignnode5 == NULL) {
578 var10 = 1;
579 } else {
580 if(cltype11 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) {
581 var10 = 0;
582 } else {
583 var10 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype11] == idtype12;
584 }
585 }
586 if (unlikely(!var10)) {
587 PRINT_ERROR("Runtime error: %s", "Assert failed");
588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7530);
589 fatal_exit(1);
590 }
591 var_pexprnode6 = var_nodearraylist6;
592 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
593 cltype14 = type_nullable__nit__AExpr.color;
594 idtype15 = type_nullable__nit__AExpr.id;
595 if(var_pexprnode6 == NULL) {
596 var13 = 1;
597 } else {
598 if(cltype14 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
599 var13 = 0;
600 } else {
601 var13 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype14] == idtype15;
602 }
603 }
604 if (unlikely(!var13)) {
605 PRINT_ERROR("Runtime error: %s", "Assert failed");
606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7532);
607 fatal_exit(1);
608 }
609 var_pannotationsnode7 = var_nodearraylist2;
610 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
611 cltype17 = type_nullable__nit__AAnnotations.color;
612 idtype18 = type_nullable__nit__AAnnotations.id;
613 if(var_pannotationsnode7 == NULL) {
614 var16 = 1;
615 } else {
616 if(cltype17 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) {
617 var16 = 0;
618 } else {
619 var16 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype17] == idtype18;
620 }
621 }
622 if (unlikely(!var16)) {
623 PRINT_ERROR("Runtime error: %s", "Assert failed");
624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7534);
625 fatal_exit(1);
626 }
627 var19 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr);
628 {
629 nit__parser_prod___AVardeclExpr___init_avardeclexpr(var19, ((val*)NULL), var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on <var19:AVardeclExpr>*/
630 }
631 var_pexprnode1 = var19;
632 var_node_list = var_pexprnode1;
633 var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction276> */
634 {
635 var21 = nit___nit__Parser___go_to(var_p, var20);
636 }
637 {
638 nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
639 }
640 RET_LABEL:;
641 }
642 /* method parser#ReduceAction278#action for (self: ReduceAction278, Parser) */
643 void nit__parser___nit__parser__ReduceAction278___nit__parser_work__ReduceAction__action(val* self, val* p0) {
644 val* var_p /* var p: Parser */;
645 val* var_node_list /* var node_list: nullable Object */;
646 val* var /* : nullable Object */;
647 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
648 val* var1 /* : nullable Object */;
649 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
650 val* var2 /* : nullable Object */;
651 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
652 val* var3 /* : nullable Object */;
653 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
654 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
655 short int var4 /* : Bool */;
656 int cltype;
657 int idtype;
658 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
659 short int var5 /* : Bool */;
660 int cltype6;
661 int idtype7;
662 val* var_tkwelsenode5 /* var tkwelsenode5: nullable Object */;
663 short int var8 /* : Bool */;
664 int cltype9;
665 int idtype10;
666 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
667 short int var11 /* : Bool */;
668 int cltype12;
669 int idtype13;
670 val* var14 /* : AAssertExpr */;
671 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
672 long var15 /* : Int */;
673 long var16 /* : Int */;
674 var_p = p0;
675 var_node_list = ((val*)NULL);
676 {
677 var = nit___nit__Parser___pop(var_p);
678 }
679 var_nodearraylist4 = var;
680 {
681 var1 = nit___nit__Parser___pop(var_p);
682 }
683 var_nodearraylist3 = var1;
684 {
685 var2 = nit___nit__Parser___pop(var_p);
686 }
687 var_nodearraylist2 = var2;
688 {
689 var3 = nit___nit__Parser___pop(var_p);
690 }
691 var_nodearraylist1 = var3;
692 var_tkwassertnode2 = var_nodearraylist1;
693 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
694 cltype = type_nullable__nit__TKwassert.color;
695 idtype = type_nullable__nit__TKwassert.id;
696 if(var_tkwassertnode2 == NULL) {
697 var4 = 1;
698 } else {
699 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
700 var4 = 0;
701 } else {
702 var4 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
703 }
704 }
705 if (unlikely(!var4)) {
706 PRINT_ERROR("Runtime error: %s", "Assert failed");
707 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7557);
708 fatal_exit(1);
709 }
710 var_pexprnode4 = var_nodearraylist2;
711 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
712 cltype6 = type_nullable__nit__AExpr.color;
713 idtype7 = type_nullable__nit__AExpr.id;
714 if(var_pexprnode4 == NULL) {
715 var5 = 1;
716 } else {
717 if(cltype6 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
718 var5 = 0;
719 } else {
720 var5 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype6] == idtype7;
721 }
722 }
723 if (unlikely(!var5)) {
724 PRINT_ERROR("Runtime error: %s", "Assert failed");
725 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7559);
726 fatal_exit(1);
727 }
728 var_tkwelsenode5 = var_nodearraylist3;
729 /* <var_tkwelsenode5:nullable Object> isa nullable TKwelse */
730 cltype9 = type_nullable__nit__TKwelse.color;
731 idtype10 = type_nullable__nit__TKwelse.id;
732 if(var_tkwelsenode5 == NULL) {
733 var8 = 1;
734 } else {
735 if(cltype9 >= (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->table_size) {
736 var8 = 0;
737 } else {
738 var8 = (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->type_table[cltype9] == idtype10;
739 }
740 }
741 if (unlikely(!var8)) {
742 PRINT_ERROR("Runtime error: %s", "Assert failed");
743 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7561);
744 fatal_exit(1);
745 }
746 var_pexprnode6 = var_nodearraylist4;
747 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
748 cltype12 = type_nullable__nit__AExpr.color;
749 idtype13 = type_nullable__nit__AExpr.id;
750 if(var_pexprnode6 == NULL) {
751 var11 = 1;
752 } else {
753 if(cltype12 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
754 var11 = 0;
755 } else {
756 var11 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype12] == idtype13;
757 }
758 }
759 if (unlikely(!var11)) {
760 PRINT_ERROR("Runtime error: %s", "Assert failed");
761 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7563);
762 fatal_exit(1);
763 }
764 var14 = NEW_nit__AAssertExpr(&type_nit__AAssertExpr);
765 {
766 nit__parser_prod___AAssertExpr___init_aassertexpr(var14, var_tkwassertnode2, ((val*)NULL), var_pexprnode4, var_tkwelsenode5, var_pexprnode6); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var14:AAssertExpr>*/
767 }
768 var_pexprnode1 = var14;
769 var_node_list = var_pexprnode1;
770 var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction278> */
771 {
772 var16 = nit___nit__Parser___go_to(var_p, var15);
773 }
774 {
775 nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
776 }
777 RET_LABEL:;
778 }
779 /* method parser#ReduceAction279#action for (self: ReduceAction279, Parser) */
780 void nit__parser___nit__parser__ReduceAction279___nit__parser_work__ReduceAction__action(val* self, val* p0) {
781 val* var_p /* var p: Parser */;
782 val* var_node_list /* var node_list: nullable Object */;
783 val* var /* : nullable Object */;
784 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
785 val* var1 /* : nullable Object */;
786 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
787 val* var2 /* : nullable Object */;
788 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
789 val* var3 /* : nullable Object */;
790 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
791 val* var4 /* : nullable Object */;
792 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
793 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
794 short int var5 /* : Bool */;
795 int cltype;
796 int idtype;
797 val* var_tidnode3 /* var tidnode3: nullable Object */;
798 short int var6 /* : Bool */;
799 int cltype7;
800 int idtype8;
801 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
802 short int var9 /* : Bool */;
803 int cltype10;
804 int idtype11;
805 val* var_tkwelsenode5 /* var tkwelsenode5: nullable Object */;
806 short int var12 /* : Bool */;
807 int cltype13;
808 int idtype14;
809 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
810 short int var15 /* : Bool */;
811 int cltype16;
812 int idtype17;
813 val* var18 /* : AAssertExpr */;
814 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
815 long var19 /* : Int */;
816 long var20 /* : Int */;
817 var_p = p0;
818 var_node_list = ((val*)NULL);
819 {
820 var = nit___nit__Parser___pop(var_p);
821 }
822 var_nodearraylist5 = var;
823 {
824 var1 = nit___nit__Parser___pop(var_p);
825 }
826 var_nodearraylist4 = var1;
827 {
828 var2 = nit___nit__Parser___pop(var_p);
829 }
830 var_nodearraylist3 = var2;
831 {
832 var3 = nit___nit__Parser___pop(var_p);
833 }
834 var_nodearraylist2 = var3;
835 {
836 var4 = nit___nit__Parser___pop(var_p);
837 }
838 var_nodearraylist1 = var4;
839 var_tkwassertnode2 = var_nodearraylist1;
840 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
841 cltype = type_nullable__nit__TKwassert.color;
842 idtype = type_nullable__nit__TKwassert.id;
843 if(var_tkwassertnode2 == NULL) {
844 var5 = 1;
845 } else {
846 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
847 var5 = 0;
848 } else {
849 var5 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
850 }
851 }
852 if (unlikely(!var5)) {
853 PRINT_ERROR("Runtime error: %s", "Assert failed");
854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7586);
855 fatal_exit(1);
856 }
857 var_tidnode3 = var_nodearraylist2;
858 /* <var_tidnode3:nullable Object> isa nullable TId */
859 cltype7 = type_nullable__nit__TId.color;
860 idtype8 = type_nullable__nit__TId.id;
861 if(var_tidnode3 == NULL) {
862 var6 = 1;
863 } else {
864 if(cltype7 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
865 var6 = 0;
866 } else {
867 var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype7] == idtype8;
868 }
869 }
870 if (unlikely(!var6)) {
871 PRINT_ERROR("Runtime error: %s", "Assert failed");
872 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7588);
873 fatal_exit(1);
874 }
875 var_pexprnode4 = var_nodearraylist3;
876 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
877 cltype10 = type_nullable__nit__AExpr.color;
878 idtype11 = type_nullable__nit__AExpr.id;
879 if(var_pexprnode4 == NULL) {
880 var9 = 1;
881 } else {
882 if(cltype10 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
883 var9 = 0;
884 } else {
885 var9 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype10] == idtype11;
886 }
887 }
888 if (unlikely(!var9)) {
889 PRINT_ERROR("Runtime error: %s", "Assert failed");
890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7590);
891 fatal_exit(1);
892 }
893 var_tkwelsenode5 = var_nodearraylist4;
894 /* <var_tkwelsenode5:nullable Object> isa nullable TKwelse */
895 cltype13 = type_nullable__nit__TKwelse.color;
896 idtype14 = type_nullable__nit__TKwelse.id;
897 if(var_tkwelsenode5 == NULL) {
898 var12 = 1;
899 } else {
900 if(cltype13 >= (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->table_size) {
901 var12 = 0;
902 } else {
903 var12 = (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->type_table[cltype13] == idtype14;
904 }
905 }
906 if (unlikely(!var12)) {
907 PRINT_ERROR("Runtime error: %s", "Assert failed");
908 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7592);
909 fatal_exit(1);
910 }
911 var_pexprnode6 = var_nodearraylist5;
912 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
913 cltype16 = type_nullable__nit__AExpr.color;
914 idtype17 = type_nullable__nit__AExpr.id;
915 if(var_pexprnode6 == NULL) {
916 var15 = 1;
917 } else {
918 if(cltype16 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
919 var15 = 0;
920 } else {
921 var15 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype16] == idtype17;
922 }
923 }
924 if (unlikely(!var15)) {
925 PRINT_ERROR("Runtime error: %s", "Assert failed");
926 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7594);
927 fatal_exit(1);
928 }
929 var18 = NEW_nit__AAssertExpr(&type_nit__AAssertExpr);
930 {
931 nit__parser_prod___AAssertExpr___init_aassertexpr(var18, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_tkwelsenode5, var_pexprnode6); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var18:AAssertExpr>*/
932 }
933 var_pexprnode1 = var18;
934 var_node_list = var_pexprnode1;
935 var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction279> */
936 {
937 var20 = nit___nit__Parser___go_to(var_p, var19);
938 }
939 {
940 nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
941 }
942 RET_LABEL:;
943 }
944 /* method parser#ReduceAction280#action for (self: ReduceAction280, Parser) */
945 void nit__parser___nit__parser__ReduceAction280___nit__parser_work__ReduceAction__action(val* self, val* p0) {
946 val* var_p /* var p: Parser */;
947 val* var_node_list /* var node_list: nullable Object */;
948 val* var /* : nullable Object */;
949 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
950 val* var1 /* : nullable Object */;
951 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
952 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
953 short int var2 /* : Bool */;
954 int cltype;
955 int idtype;
956 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
957 short int var3 /* : Bool */;
958 int cltype4;
959 int idtype5;
960 val* var6 /* : AAssertExpr */;
961 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
962 long var7 /* : Int */;
963 long var8 /* : Int */;
964 var_p = p0;
965 var_node_list = ((val*)NULL);
966 {
967 var = nit___nit__Parser___pop(var_p);
968 }
969 var_nodearraylist2 = var;
970 {
971 var1 = nit___nit__Parser___pop(var_p);
972 }
973 var_nodearraylist1 = var1;
974 var_tkwassertnode2 = var_nodearraylist1;
975 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
976 cltype = type_nullable__nit__TKwassert.color;
977 idtype = type_nullable__nit__TKwassert.id;
978 if(var_tkwassertnode2 == NULL) {
979 var2 = 1;
980 } else {
981 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
982 var2 = 0;
983 } else {
984 var2 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
985 }
986 }
987 if (unlikely(!var2)) {
988 PRINT_ERROR("Runtime error: %s", "Assert failed");
989 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7614);
990 fatal_exit(1);
991 }
992 var_pexprnode4 = var_nodearraylist2;
993 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
994 cltype4 = type_nullable__nit__AExpr.color;
995 idtype5 = type_nullable__nit__AExpr.id;
996 if(var_pexprnode4 == NULL) {
997 var3 = 1;
998 } else {
999 if(cltype4 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
1000 var3 = 0;
1001 } else {
1002 var3 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype4] == idtype5;
1003 }
1004 }
1005 if (unlikely(!var3)) {
1006 PRINT_ERROR("Runtime error: %s", "Assert failed");
1007 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7616);
1008 fatal_exit(1);
1009 }
1010 var6 = NEW_nit__AAssertExpr(&type_nit__AAssertExpr);
1011 {
1012 nit__parser_prod___AAssertExpr___init_aassertexpr(var6, var_tkwassertnode2, ((val*)NULL), var_pexprnode4, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var6:AAssertExpr>*/
1013 }
1014 var_pexprnode1 = var6;
1015 var_node_list = var_pexprnode1;
1016 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction280> */
1017 {
1018 var8 = nit___nit__Parser___go_to(var_p, var7);
1019 }
1020 {
1021 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1022 }
1023 RET_LABEL:;
1024 }
1025 /* method parser#ReduceAction281#action for (self: ReduceAction281, Parser) */
1026 void nit__parser___nit__parser__ReduceAction281___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1027 val* var_p /* var p: Parser */;
1028 val* var_node_list /* var node_list: nullable Object */;
1029 val* var /* : nullable Object */;
1030 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1031 val* var1 /* : nullable Object */;
1032 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1033 val* var2 /* : nullable Object */;
1034 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1035 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
1036 short int var3 /* : Bool */;
1037 int cltype;
1038 int idtype;
1039 val* var_tidnode3 /* var tidnode3: nullable Object */;
1040 short int var4 /* : Bool */;
1041 int cltype5;
1042 int idtype6;
1043 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1044 short int var7 /* : Bool */;
1045 int cltype8;
1046 int idtype9;
1047 val* var10 /* : AAssertExpr */;
1048 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
1049 long var11 /* : Int */;
1050 long var12 /* : Int */;
1051 var_p = p0;
1052 var_node_list = ((val*)NULL);
1053 {
1054 var = nit___nit__Parser___pop(var_p);
1055 }
1056 var_nodearraylist3 = var;
1057 {
1058 var1 = nit___nit__Parser___pop(var_p);
1059 }
1060 var_nodearraylist2 = var1;
1061 {
1062 var2 = nit___nit__Parser___pop(var_p);
1063 }
1064 var_nodearraylist1 = var2;
1065 var_tkwassertnode2 = var_nodearraylist1;
1066 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
1067 cltype = type_nullable__nit__TKwassert.color;
1068 idtype = type_nullable__nit__TKwassert.id;
1069 if(var_tkwassertnode2 == NULL) {
1070 var3 = 1;
1071 } else {
1072 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
1073 var3 = 0;
1074 } else {
1075 var3 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
1076 }
1077 }
1078 if (unlikely(!var3)) {
1079 PRINT_ERROR("Runtime error: %s", "Assert failed");
1080 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7637);
1081 fatal_exit(1);
1082 }
1083 var_tidnode3 = var_nodearraylist2;
1084 /* <var_tidnode3:nullable Object> isa nullable TId */
1085 cltype5 = type_nullable__nit__TId.color;
1086 idtype6 = type_nullable__nit__TId.id;
1087 if(var_tidnode3 == NULL) {
1088 var4 = 1;
1089 } else {
1090 if(cltype5 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
1091 var4 = 0;
1092 } else {
1093 var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype5] == idtype6;
1094 }
1095 }
1096 if (unlikely(!var4)) {
1097 PRINT_ERROR("Runtime error: %s", "Assert failed");
1098 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7639);
1099 fatal_exit(1);
1100 }
1101 var_pexprnode4 = var_nodearraylist3;
1102 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1103 cltype8 = type_nullable__nit__AExpr.color;
1104 idtype9 = type_nullable__nit__AExpr.id;
1105 if(var_pexprnode4 == NULL) {
1106 var7 = 1;
1107 } else {
1108 if(cltype8 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
1109 var7 = 0;
1110 } else {
1111 var7 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype8] == idtype9;
1112 }
1113 }
1114 if (unlikely(!var7)) {
1115 PRINT_ERROR("Runtime error: %s", "Assert failed");
1116 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7641);
1117 fatal_exit(1);
1118 }
1119 var10 = NEW_nit__AAssertExpr(&type_nit__AAssertExpr);
1120 {
1121 nit__parser_prod___AAssertExpr___init_aassertexpr(var10, var_tkwassertnode2, var_tidnode3, var_pexprnode4, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var10:AAssertExpr>*/
1122 }
1123 var_pexprnode1 = var10;
1124 var_node_list = var_pexprnode1;
1125 var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction281> */
1126 {
1127 var12 = nit___nit__Parser___go_to(var_p, var11);
1128 }
1129 {
1130 nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1131 }
1132 RET_LABEL:;
1133 }
1134 /* method parser#ReduceAction282#action for (self: ReduceAction282, Parser) */
1135 void nit__parser___nit__parser__ReduceAction282___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1136 val* var_p /* var p: Parser */;
1137 val* var_node_list /* var node_list: nullable Object */;
1138 val* var /* : nullable Object */;
1139 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1140 val* var1 /* : nullable Object */;
1141 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1142 val* var_tidnode1 /* var tidnode1: nullable Object */;
1143 long var2 /* : Int */;
1144 long var3 /* : Int */;
1145 var_p = p0;
1146 var_node_list = ((val*)NULL);
1147 {
1148 var = nit___nit__Parser___pop(var_p);
1149 }
1150 var_nodearraylist2 = var;
1151 {
1152 var1 = nit___nit__Parser___pop(var_p);
1153 }
1154 var_nodearraylist1 = var1;
1155 var_tidnode1 = var_nodearraylist1;
1156 var_node_list = var_tidnode1;
1157 var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction282> */
1158 {
1159 var3 = nit___nit__Parser___go_to(var_p, var2);
1160 }
1161 {
1162 nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1163 }
1164 RET_LABEL:;
1165 }
1166 /* method parser#ReduceAction284#action for (self: ReduceAction284, Parser) */
1167 void nit__parser___nit__parser__ReduceAction284___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1168 val* var_p /* var p: Parser */;
1169 val* var_node_list /* var node_list: nullable Object */;
1170 val* var /* : nullable Object */;
1171 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1172 val* var1 /* : nullable Object */;
1173 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1174 val* var2 /* : nullable Object */;
1175 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1176 val* var3 /* : nullable Object */;
1177 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1178 val* var4 /* : nullable Object */;
1179 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1180 val* var5 /* : nullable Object */;
1181 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1182 val* var6 /* : nullable Object */;
1183 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1184 val* var7 /* : nullable Object */;
1185 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1186 val* var8 /* : nullable Object */;
1187 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1188 val* var9 /* : nullable Object */;
1189 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1190 val* var10 /* : nullable Object */;
1191 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1192 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
1193 short int var11 /* : Bool */;
1194 int cltype;
1195 int idtype;
1196 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1197 short int var12 /* : Bool */;
1198 int cltype13;
1199 int idtype14;
1200 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
1201 short int var15 /* : Bool */;
1202 int cltype16;
1203 int idtype17;
1204 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1205 short int var18 /* : Bool */;
1206 int cltype19;
1207 int idtype20;
1208 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
1209 short int var21 /* : Bool */;
1210 int cltype22;
1211 int idtype23;
1212 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1213 short int var24 /* : Bool */;
1214 int cltype25;
1215 int idtype26;
1216 val* var27 /* : AIfexprExpr */;
1217 val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */;
1218 long var28 /* : Int */;
1219 long var29 /* : Int */;
1220 var_p = p0;
1221 var_node_list = ((val*)NULL);
1222 {
1223 var = nit___nit__Parser___pop(var_p);
1224 }
1225 var_nodearraylist11 = var;
1226 {
1227 var1 = nit___nit__Parser___pop(var_p);
1228 }
1229 var_nodearraylist10 = var1;
1230 {
1231 var2 = nit___nit__Parser___pop(var_p);
1232 }
1233 var_nodearraylist9 = var2;
1234 {
1235 var3 = nit___nit__Parser___pop(var_p);
1236 }
1237 var_nodearraylist8 = var3;
1238 {
1239 var4 = nit___nit__Parser___pop(var_p);
1240 }
1241 var_nodearraylist7 = var4;
1242 {
1243 var5 = nit___nit__Parser___pop(var_p);
1244 }
1245 var_nodearraylist6 = var5;
1246 {
1247 var6 = nit___nit__Parser___pop(var_p);
1248 }
1249 var_nodearraylist5 = var6;
1250 {
1251 var7 = nit___nit__Parser___pop(var_p);
1252 }
1253 var_nodearraylist4 = var7;
1254 {
1255 var8 = nit___nit__Parser___pop(var_p);
1256 }
1257 var_nodearraylist3 = var8;
1258 {
1259 var9 = nit___nit__Parser___pop(var_p);
1260 }
1261 var_nodearraylist2 = var9;
1262 {
1263 var10 = nit___nit__Parser___pop(var_p);
1264 }
1265 var_nodearraylist1 = var10;
1266 var_tkwifnode2 = var_nodearraylist1;
1267 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
1268 cltype = type_nullable__nit__TKwif.color;
1269 idtype = type_nullable__nit__TKwif.id;
1270 if(var_tkwifnode2 == NULL) {
1271 var11 = 1;
1272 } else {
1273 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
1274 var11 = 0;
1275 } else {
1276 var11 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
1277 }
1278 }
1279 if (unlikely(!var11)) {
1280 PRINT_ERROR("Runtime error: %s", "Assert failed");
1281 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7682);
1282 fatal_exit(1);
1283 }
1284 var_pexprnode3 = var_nodearraylist3;
1285 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1286 cltype13 = type_nullable__nit__AExpr.color;
1287 idtype14 = type_nullable__nit__AExpr.id;
1288 if(var_pexprnode3 == NULL) {
1289 var12 = 1;
1290 } else {
1291 if(cltype13 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
1292 var12 = 0;
1293 } else {
1294 var12 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype13] == idtype14;
1295 }
1296 }
1297 if (unlikely(!var12)) {
1298 PRINT_ERROR("Runtime error: %s", "Assert failed");
1299 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7684);
1300 fatal_exit(1);
1301 }
1302 var_tkwthennode4 = var_nodearraylist5;
1303 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
1304 cltype16 = type_nullable__nit__TKwthen.color;
1305 idtype17 = type_nullable__nit__TKwthen.id;
1306 if(var_tkwthennode4 == NULL) {
1307 var15 = 1;
1308 } else {
1309 if(cltype16 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
1310 var15 = 0;
1311 } else {
1312 var15 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype16] == idtype17;
1313 }
1314 }
1315 if (unlikely(!var15)) {
1316 PRINT_ERROR("Runtime error: %s", "Assert failed");
1317 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7686);
1318 fatal_exit(1);
1319 }
1320 var_pexprnode5 = var_nodearraylist7;
1321 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1322 cltype19 = type_nullable__nit__AExpr.color;
1323 idtype20 = type_nullable__nit__AExpr.id;
1324 if(var_pexprnode5 == NULL) {
1325 var18 = 1;
1326 } else {
1327 if(cltype19 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
1328 var18 = 0;
1329 } else {
1330 var18 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype19] == idtype20;
1331 }
1332 }
1333 if (unlikely(!var18)) {
1334 PRINT_ERROR("Runtime error: %s", "Assert failed");
1335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7688);
1336 fatal_exit(1);
1337 }
1338 var_tkwelsenode6 = var_nodearraylist9;
1339 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
1340 cltype22 = type_nullable__nit__TKwelse.color;
1341 idtype23 = type_nullable__nit__TKwelse.id;
1342 if(var_tkwelsenode6 == NULL) {
1343 var21 = 1;
1344 } else {
1345 if(cltype22 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) {
1346 var21 = 0;
1347 } else {
1348 var21 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype22] == idtype23;
1349 }
1350 }
1351 if (unlikely(!var21)) {
1352 PRINT_ERROR("Runtime error: %s", "Assert failed");
1353 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7690);
1354 fatal_exit(1);
1355 }
1356 var_pexprnode7 = var_nodearraylist11;
1357 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1358 cltype25 = type_nullable__nit__AExpr.color;
1359 idtype26 = type_nullable__nit__AExpr.id;
1360 if(var_pexprnode7 == NULL) {
1361 var24 = 1;
1362 } else {
1363 if(cltype25 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
1364 var24 = 0;
1365 } else {
1366 var24 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype25] == idtype26;
1367 }
1368 }
1369 if (unlikely(!var24)) {
1370 PRINT_ERROR("Runtime error: %s", "Assert failed");
1371 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7692);
1372 fatal_exit(1);
1373 }
1374 var27 = NEW_nit__AIfexprExpr(&type_nit__AIfexprExpr);
1375 {
1376 nit__parser_prod___AIfexprExpr___init_aifexprexpr(var27, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod#AIfexprExpr#init_aifexprexpr on <var27:AIfexprExpr>*/
1377 }
1378 var_pexprnode1 = var27;
1379 var_node_list = var_pexprnode1;
1380 var28 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction284> */
1381 {
1382 var29 = nit___nit__Parser___go_to(var_p, var28);
1383 }
1384 {
1385 nit___nit__Parser___push(var_p, var29, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1386 }
1387 RET_LABEL:;
1388 }
1389 /* method parser#ReduceAction286#action for (self: ReduceAction286, Parser) */
1390 void nit__parser___nit__parser__ReduceAction286___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1391 val* var_p /* var p: Parser */;
1392 val* var_node_list /* var node_list: nullable Object */;
1393 val* var /* : nullable Object */;
1394 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1395 val* var1 /* : nullable Object */;
1396 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1397 val* var2 /* : nullable Object */;
1398 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1399 val* var3 /* : nullable Object */;
1400 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1401 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1402 short int var4 /* : Bool */;
1403 int cltype;
1404 int idtype;
1405 val* var_tkwornode3 /* var tkwornode3: nullable Object */;
1406 short int var5 /* : Bool */;
1407 int cltype6;
1408 int idtype7;
1409 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1410 short int var8 /* : Bool */;
1411 int cltype9;
1412 int idtype10;
1413 val* var11 /* : AOrExpr */;
1414 val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */;
1415 long var12 /* : Int */;
1416 long var13 /* : Int */;
1417 var_p = p0;
1418 var_node_list = ((val*)NULL);
1419 {
1420 var = nit___nit__Parser___pop(var_p);
1421 }
1422 var_nodearraylist4 = var;
1423 {
1424 var1 = nit___nit__Parser___pop(var_p);
1425 }
1426 var_nodearraylist3 = var1;
1427 {
1428 var2 = nit___nit__Parser___pop(var_p);
1429 }
1430 var_nodearraylist2 = var2;
1431 {
1432 var3 = nit___nit__Parser___pop(var_p);
1433 }
1434 var_nodearraylist1 = var3;
1435 var_pexprnode2 = var_nodearraylist1;
1436 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1437 cltype = type_nullable__nit__AExpr.color;
1438 idtype = type_nullable__nit__AExpr.id;
1439 if(var_pexprnode2 == NULL) {
1440 var4 = 1;
1441 } else {
1442 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1443 var4 = 0;
1444 } else {
1445 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1446 }
1447 }
1448 if (unlikely(!var4)) {
1449 PRINT_ERROR("Runtime error: %s", "Assert failed");
1450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7715);
1451 fatal_exit(1);
1452 }
1453 var_tkwornode3 = var_nodearraylist2;
1454 /* <var_tkwornode3:nullable Object> isa nullable TKwor */
1455 cltype6 = type_nullable__nit__TKwor.color;
1456 idtype7 = type_nullable__nit__TKwor.id;
1457 if(var_tkwornode3 == NULL) {
1458 var5 = 1;
1459 } else {
1460 if(cltype6 >= (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->table_size) {
1461 var5 = 0;
1462 } else {
1463 var5 = (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->type_table[cltype6] == idtype7;
1464 }
1465 }
1466 if (unlikely(!var5)) {
1467 PRINT_ERROR("Runtime error: %s", "Assert failed");
1468 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7717);
1469 fatal_exit(1);
1470 }
1471 var_pexprnode4 = var_nodearraylist4;
1472 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1473 cltype9 = type_nullable__nit__AExpr.color;
1474 idtype10 = type_nullable__nit__AExpr.id;
1475 if(var_pexprnode4 == NULL) {
1476 var8 = 1;
1477 } else {
1478 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
1479 var8 = 0;
1480 } else {
1481 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
1482 }
1483 }
1484 if (unlikely(!var8)) {
1485 PRINT_ERROR("Runtime error: %s", "Assert failed");
1486 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7719);
1487 fatal_exit(1);
1488 }
1489 var11 = NEW_nit__AOrExpr(&type_nit__AOrExpr);
1490 {
1491 nit__parser_prod___AOrExpr___init_aorexpr(var11, var_pexprnode2, var_tkwornode3, var_pexprnode4); /* Direct call parser_prod#AOrExpr#init_aorexpr on <var11:AOrExpr>*/
1492 }
1493 var_pexprnode1 = var11;
1494 var_node_list = var_pexprnode1;
1495 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction286> */
1496 {
1497 var13 = nit___nit__Parser___go_to(var_p, var12);
1498 }
1499 {
1500 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1501 }
1502 RET_LABEL:;
1503 }
1504 /* method parser#ReduceAction287#action for (self: ReduceAction287, Parser) */
1505 void nit__parser___nit__parser__ReduceAction287___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1506 val* var_p /* var p: Parser */;
1507 val* var_node_list /* var node_list: nullable Object */;
1508 val* var /* : nullable Object */;
1509 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1510 val* var1 /* : nullable Object */;
1511 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1512 val* var2 /* : nullable Object */;
1513 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1514 val* var3 /* : nullable Object */;
1515 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1516 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1517 short int var4 /* : Bool */;
1518 int cltype;
1519 int idtype;
1520 val* var_tkwandnode3 /* var tkwandnode3: nullable Object */;
1521 short int var5 /* : Bool */;
1522 int cltype6;
1523 int idtype7;
1524 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1525 short int var8 /* : Bool */;
1526 int cltype9;
1527 int idtype10;
1528 val* var11 /* : AAndExpr */;
1529 val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */;
1530 long var12 /* : Int */;
1531 long var13 /* : Int */;
1532 var_p = p0;
1533 var_node_list = ((val*)NULL);
1534 {
1535 var = nit___nit__Parser___pop(var_p);
1536 }
1537 var_nodearraylist4 = var;
1538 {
1539 var1 = nit___nit__Parser___pop(var_p);
1540 }
1541 var_nodearraylist3 = var1;
1542 {
1543 var2 = nit___nit__Parser___pop(var_p);
1544 }
1545 var_nodearraylist2 = var2;
1546 {
1547 var3 = nit___nit__Parser___pop(var_p);
1548 }
1549 var_nodearraylist1 = var3;
1550 var_pexprnode2 = var_nodearraylist1;
1551 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1552 cltype = type_nullable__nit__AExpr.color;
1553 idtype = type_nullable__nit__AExpr.id;
1554 if(var_pexprnode2 == NULL) {
1555 var4 = 1;
1556 } else {
1557 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1558 var4 = 0;
1559 } else {
1560 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1561 }
1562 }
1563 if (unlikely(!var4)) {
1564 PRINT_ERROR("Runtime error: %s", "Assert failed");
1565 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7739);
1566 fatal_exit(1);
1567 }
1568 var_tkwandnode3 = var_nodearraylist2;
1569 /* <var_tkwandnode3:nullable Object> isa nullable TKwand */
1570 cltype6 = type_nullable__nit__TKwand.color;
1571 idtype7 = type_nullable__nit__TKwand.id;
1572 if(var_tkwandnode3 == NULL) {
1573 var5 = 1;
1574 } else {
1575 if(cltype6 >= (((long)var_tkwandnode3&3)?type_info[((long)var_tkwandnode3&3)]:var_tkwandnode3->type)->table_size) {
1576 var5 = 0;
1577 } else {
1578 var5 = (((long)var_tkwandnode3&3)?type_info[((long)var_tkwandnode3&3)]:var_tkwandnode3->type)->type_table[cltype6] == idtype7;
1579 }
1580 }
1581 if (unlikely(!var5)) {
1582 PRINT_ERROR("Runtime error: %s", "Assert failed");
1583 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7741);
1584 fatal_exit(1);
1585 }
1586 var_pexprnode4 = var_nodearraylist4;
1587 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1588 cltype9 = type_nullable__nit__AExpr.color;
1589 idtype10 = type_nullable__nit__AExpr.id;
1590 if(var_pexprnode4 == NULL) {
1591 var8 = 1;
1592 } else {
1593 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
1594 var8 = 0;
1595 } else {
1596 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
1597 }
1598 }
1599 if (unlikely(!var8)) {
1600 PRINT_ERROR("Runtime error: %s", "Assert failed");
1601 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7743);
1602 fatal_exit(1);
1603 }
1604 var11 = NEW_nit__AAndExpr(&type_nit__AAndExpr);
1605 {
1606 nit__parser_prod___AAndExpr___init_aandexpr(var11, var_pexprnode2, var_tkwandnode3, var_pexprnode4); /* Direct call parser_prod#AAndExpr#init_aandexpr on <var11:AAndExpr>*/
1607 }
1608 var_pexprnode1 = var11;
1609 var_node_list = var_pexprnode1;
1610 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction287> */
1611 {
1612 var13 = nit___nit__Parser___go_to(var_p, var12);
1613 }
1614 {
1615 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1616 }
1617 RET_LABEL:;
1618 }
1619 /* method parser#ReduceAction288#action for (self: ReduceAction288, Parser) */
1620 void nit__parser___nit__parser__ReduceAction288___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1621 val* var_p /* var p: Parser */;
1622 val* var_node_list /* var node_list: nullable Object */;
1623 val* var /* : nullable Object */;
1624 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1625 val* var1 /* : nullable Object */;
1626 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1627 val* var2 /* : nullable Object */;
1628 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1629 val* var3 /* : nullable Object */;
1630 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1631 val* var4 /* : nullable Object */;
1632 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1633 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1634 short int var5 /* : Bool */;
1635 int cltype;
1636 int idtype;
1637 val* var_tkwornode3 /* var tkwornode3: nullable Object */;
1638 short int var6 /* : Bool */;
1639 int cltype7;
1640 int idtype8;
1641 val* var_tkwelsenode4 /* var tkwelsenode4: nullable Object */;
1642 short int var9 /* : Bool */;
1643 int cltype10;
1644 int idtype11;
1645 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1646 short int var12 /* : Bool */;
1647 int cltype13;
1648 int idtype14;
1649 val* var15 /* : AOrElseExpr */;
1650 val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */;
1651 long var16 /* : Int */;
1652 long var17 /* : Int */;
1653 var_p = p0;
1654 var_node_list = ((val*)NULL);
1655 {
1656 var = nit___nit__Parser___pop(var_p);
1657 }
1658 var_nodearraylist5 = var;
1659 {
1660 var1 = nit___nit__Parser___pop(var_p);
1661 }
1662 var_nodearraylist4 = var1;
1663 {
1664 var2 = nit___nit__Parser___pop(var_p);
1665 }
1666 var_nodearraylist3 = var2;
1667 {
1668 var3 = nit___nit__Parser___pop(var_p);
1669 }
1670 var_nodearraylist2 = var3;
1671 {
1672 var4 = nit___nit__Parser___pop(var_p);
1673 }
1674 var_nodearraylist1 = var4;
1675 var_pexprnode2 = var_nodearraylist1;
1676 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1677 cltype = type_nullable__nit__AExpr.color;
1678 idtype = type_nullable__nit__AExpr.id;
1679 if(var_pexprnode2 == NULL) {
1680 var5 = 1;
1681 } else {
1682 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1683 var5 = 0;
1684 } else {
1685 var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1686 }
1687 }
1688 if (unlikely(!var5)) {
1689 PRINT_ERROR("Runtime error: %s", "Assert failed");
1690 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7764);
1691 fatal_exit(1);
1692 }
1693 var_tkwornode3 = var_nodearraylist2;
1694 /* <var_tkwornode3:nullable Object> isa nullable TKwor */
1695 cltype7 = type_nullable__nit__TKwor.color;
1696 idtype8 = type_nullable__nit__TKwor.id;
1697 if(var_tkwornode3 == NULL) {
1698 var6 = 1;
1699 } else {
1700 if(cltype7 >= (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->table_size) {
1701 var6 = 0;
1702 } else {
1703 var6 = (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->type_table[cltype7] == idtype8;
1704 }
1705 }
1706 if (unlikely(!var6)) {
1707 PRINT_ERROR("Runtime error: %s", "Assert failed");
1708 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7766);
1709 fatal_exit(1);
1710 }
1711 var_tkwelsenode4 = var_nodearraylist3;
1712 /* <var_tkwelsenode4:nullable Object> isa nullable TKwelse */
1713 cltype10 = type_nullable__nit__TKwelse.color;
1714 idtype11 = type_nullable__nit__TKwelse.id;
1715 if(var_tkwelsenode4 == NULL) {
1716 var9 = 1;
1717 } else {
1718 if(cltype10 >= (((long)var_tkwelsenode4&3)?type_info[((long)var_tkwelsenode4&3)]:var_tkwelsenode4->type)->table_size) {
1719 var9 = 0;
1720 } else {
1721 var9 = (((long)var_tkwelsenode4&3)?type_info[((long)var_tkwelsenode4&3)]:var_tkwelsenode4->type)->type_table[cltype10] == idtype11;
1722 }
1723 }
1724 if (unlikely(!var9)) {
1725 PRINT_ERROR("Runtime error: %s", "Assert failed");
1726 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7768);
1727 fatal_exit(1);
1728 }
1729 var_pexprnode5 = var_nodearraylist5;
1730 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1731 cltype13 = type_nullable__nit__AExpr.color;
1732 idtype14 = type_nullable__nit__AExpr.id;
1733 if(var_pexprnode5 == NULL) {
1734 var12 = 1;
1735 } else {
1736 if(cltype13 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
1737 var12 = 0;
1738 } else {
1739 var12 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype13] == idtype14;
1740 }
1741 }
1742 if (unlikely(!var12)) {
1743 PRINT_ERROR("Runtime error: %s", "Assert failed");
1744 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7770);
1745 fatal_exit(1);
1746 }
1747 var15 = NEW_nit__AOrElseExpr(&type_nit__AOrElseExpr);
1748 {
1749 nit__parser_prod___AOrElseExpr___init_aorelseexpr(var15, var_pexprnode2, var_tkwornode3, var_tkwelsenode4, var_pexprnode5); /* Direct call parser_prod#AOrElseExpr#init_aorelseexpr on <var15:AOrElseExpr>*/
1750 }
1751 var_pexprnode1 = var15;
1752 var_node_list = var_pexprnode1;
1753 var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction288> */
1754 {
1755 var17 = nit___nit__Parser___go_to(var_p, var16);
1756 }
1757 {
1758 nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1759 }
1760 RET_LABEL:;
1761 }
1762 /* method parser#ReduceAction289#action for (self: ReduceAction289, Parser) */
1763 void nit__parser___nit__parser__ReduceAction289___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1764 val* var_p /* var p: Parser */;
1765 val* var_node_list /* var node_list: nullable Object */;
1766 val* var /* : nullable Object */;
1767 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1768 val* var1 /* : nullable Object */;
1769 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1770 val* var2 /* : nullable Object */;
1771 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1772 val* var3 /* : nullable Object */;
1773 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1774 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1775 short int var4 /* : Bool */;
1776 int cltype;
1777 int idtype;
1778 val* var_tkwimpliesnode3 /* var tkwimpliesnode3: nullable Object */;
1779 short int var5 /* : Bool */;
1780 int cltype6;
1781 int idtype7;
1782 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1783 short int var8 /* : Bool */;
1784 int cltype9;
1785 int idtype10;
1786 val* var11 /* : AImpliesExpr */;
1787 val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */;
1788 long var12 /* : Int */;
1789 long var13 /* : Int */;
1790 var_p = p0;
1791 var_node_list = ((val*)NULL);
1792 {
1793 var = nit___nit__Parser___pop(var_p);
1794 }
1795 var_nodearraylist4 = var;
1796 {
1797 var1 = nit___nit__Parser___pop(var_p);
1798 }
1799 var_nodearraylist3 = var1;
1800 {
1801 var2 = nit___nit__Parser___pop(var_p);
1802 }
1803 var_nodearraylist2 = var2;
1804 {
1805 var3 = nit___nit__Parser___pop(var_p);
1806 }
1807 var_nodearraylist1 = var3;
1808 var_pexprnode2 = var_nodearraylist1;
1809 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1810 cltype = type_nullable__nit__AExpr.color;
1811 idtype = type_nullable__nit__AExpr.id;
1812 if(var_pexprnode2 == NULL) {
1813 var4 = 1;
1814 } else {
1815 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1816 var4 = 0;
1817 } else {
1818 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1819 }
1820 }
1821 if (unlikely(!var4)) {
1822 PRINT_ERROR("Runtime error: %s", "Assert failed");
1823 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7791);
1824 fatal_exit(1);
1825 }
1826 var_tkwimpliesnode3 = var_nodearraylist2;
1827 /* <var_tkwimpliesnode3:nullable Object> isa nullable TKwimplies */
1828 cltype6 = type_nullable__nit__TKwimplies.color;
1829 idtype7 = type_nullable__nit__TKwimplies.id;
1830 if(var_tkwimpliesnode3 == NULL) {
1831 var5 = 1;
1832 } else {
1833 if(cltype6 >= (((long)var_tkwimpliesnode3&3)?type_info[((long)var_tkwimpliesnode3&3)]:var_tkwimpliesnode3->type)->table_size) {
1834 var5 = 0;
1835 } else {
1836 var5 = (((long)var_tkwimpliesnode3&3)?type_info[((long)var_tkwimpliesnode3&3)]:var_tkwimpliesnode3->type)->type_table[cltype6] == idtype7;
1837 }
1838 }
1839 if (unlikely(!var5)) {
1840 PRINT_ERROR("Runtime error: %s", "Assert failed");
1841 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7793);
1842 fatal_exit(1);
1843 }
1844 var_pexprnode4 = var_nodearraylist4;
1845 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1846 cltype9 = type_nullable__nit__AExpr.color;
1847 idtype10 = type_nullable__nit__AExpr.id;
1848 if(var_pexprnode4 == NULL) {
1849 var8 = 1;
1850 } else {
1851 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
1852 var8 = 0;
1853 } else {
1854 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
1855 }
1856 }
1857 if (unlikely(!var8)) {
1858 PRINT_ERROR("Runtime error: %s", "Assert failed");
1859 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7795);
1860 fatal_exit(1);
1861 }
1862 var11 = NEW_nit__AImpliesExpr(&type_nit__AImpliesExpr);
1863 {
1864 nit__parser_prod___AImpliesExpr___init_aimpliesexpr(var11, var_pexprnode2, var_tkwimpliesnode3, var_pexprnode4); /* Direct call parser_prod#AImpliesExpr#init_aimpliesexpr on <var11:AImpliesExpr>*/
1865 }
1866 var_pexprnode1 = var11;
1867 var_node_list = var_pexprnode1;
1868 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction289> */
1869 {
1870 var13 = nit___nit__Parser___go_to(var_p, var12);
1871 }
1872 {
1873 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1874 }
1875 RET_LABEL:;
1876 }
1877 /* method parser#ReduceAction291#action for (self: ReduceAction291, Parser) */
1878 void nit__parser___nit__parser__ReduceAction291___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1879 val* var_p /* var p: Parser */;
1880 val* var_node_list /* var node_list: nullable Object */;
1881 val* var /* : nullable Object */;
1882 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1883 val* var1 /* : nullable Object */;
1884 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1885 val* var2 /* : nullable Object */;
1886 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1887 val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */;
1888 short int var3 /* : Bool */;
1889 int cltype;
1890 int idtype;
1891 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1892 short int var4 /* : Bool */;
1893 int cltype5;
1894 int idtype6;
1895 val* var7 /* : ANotExpr */;
1896 val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */;
1897 long var8 /* : Int */;
1898 long var9 /* : Int */;
1899 var_p = p0;
1900 var_node_list = ((val*)NULL);
1901 {
1902 var = nit___nit__Parser___pop(var_p);
1903 }
1904 var_nodearraylist3 = var;
1905 {
1906 var1 = nit___nit__Parser___pop(var_p);
1907 }
1908 var_nodearraylist2 = var1;
1909 {
1910 var2 = nit___nit__Parser___pop(var_p);
1911 }
1912 var_nodearraylist1 = var2;
1913 var_tkwnotnode2 = var_nodearraylist1;
1914 /* <var_tkwnotnode2:nullable Object> isa nullable TKwnot */
1915 cltype = type_nullable__nit__TKwnot.color;
1916 idtype = type_nullable__nit__TKwnot.id;
1917 if(var_tkwnotnode2 == NULL) {
1918 var3 = 1;
1919 } else {
1920 if(cltype >= (((long)var_tkwnotnode2&3)?type_info[((long)var_tkwnotnode2&3)]:var_tkwnotnode2->type)->table_size) {
1921 var3 = 0;
1922 } else {
1923 var3 = (((long)var_tkwnotnode2&3)?type_info[((long)var_tkwnotnode2&3)]:var_tkwnotnode2->type)->type_table[cltype] == idtype;
1924 }
1925 }
1926 if (unlikely(!var3)) {
1927 PRINT_ERROR("Runtime error: %s", "Assert failed");
1928 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7814);
1929 fatal_exit(1);
1930 }
1931 var_pexprnode3 = var_nodearraylist3;
1932 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1933 cltype5 = type_nullable__nit__AExpr.color;
1934 idtype6 = type_nullable__nit__AExpr.id;
1935 if(var_pexprnode3 == NULL) {
1936 var4 = 1;
1937 } else {
1938 if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
1939 var4 = 0;
1940 } else {
1941 var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6;
1942 }
1943 }
1944 if (unlikely(!var4)) {
1945 PRINT_ERROR("Runtime error: %s", "Assert failed");
1946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7816);
1947 fatal_exit(1);
1948 }
1949 var7 = NEW_nit__ANotExpr(&type_nit__ANotExpr);
1950 {
1951 nit__parser_prod___ANotExpr___init_anotexpr(var7, var_tkwnotnode2, var_pexprnode3); /* Direct call parser_prod#ANotExpr#init_anotexpr on <var7:ANotExpr>*/
1952 }
1953 var_pexprnode1 = var7;
1954 var_node_list = var_pexprnode1;
1955 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction291> */
1956 {
1957 var9 = nit___nit__Parser___go_to(var_p, var8);
1958 }
1959 {
1960 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1961 }
1962 RET_LABEL:;
1963 }
1964 /* method parser#ReduceAction293#action for (self: ReduceAction293, Parser) */
1965 void nit__parser___nit__parser__ReduceAction293___nit__parser_work__ReduceAction__action(val* self, val* p0) {
1966 val* var_p /* var p: Parser */;
1967 val* var_node_list /* var node_list: nullable Object */;
1968 val* var /* : nullable Object */;
1969 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1970 val* var1 /* : nullable Object */;
1971 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1972 val* var2 /* : nullable Object */;
1973 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1974 val* var3 /* : nullable Object */;
1975 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1976 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1977 short int var4 /* : Bool */;
1978 int cltype;
1979 int idtype;
1980 val* var_teqnode3 /* var teqnode3: nullable Object */;
1981 short int var5 /* : Bool */;
1982 int cltype6;
1983 int idtype7;
1984 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1985 short int var8 /* : Bool */;
1986 int cltype9;
1987 int idtype10;
1988 val* var11 /* : AEqExpr */;
1989 val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */;
1990 long var12 /* : Int */;
1991 long var13 /* : Int */;
1992 var_p = p0;
1993 var_node_list = ((val*)NULL);
1994 {
1995 var = nit___nit__Parser___pop(var_p);
1996 }
1997 var_nodearraylist4 = var;
1998 {
1999 var1 = nit___nit__Parser___pop(var_p);
2000 }
2001 var_nodearraylist3 = var1;
2002 {
2003 var2 = nit___nit__Parser___pop(var_p);
2004 }
2005 var_nodearraylist2 = var2;
2006 {
2007 var3 = nit___nit__Parser___pop(var_p);
2008 }
2009 var_nodearraylist1 = var3;
2010 var_pexprnode2 = var_nodearraylist1;
2011 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2012 cltype = type_nullable__nit__AExpr.color;
2013 idtype = type_nullable__nit__AExpr.id;
2014 if(var_pexprnode2 == NULL) {
2015 var4 = 1;
2016 } else {
2017 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2018 var4 = 0;
2019 } else {
2020 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2021 }
2022 }
2023 if (unlikely(!var4)) {
2024 PRINT_ERROR("Runtime error: %s", "Assert failed");
2025 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7835);
2026 fatal_exit(1);
2027 }
2028 var_teqnode3 = var_nodearraylist2;
2029 /* <var_teqnode3:nullable Object> isa nullable TEq */
2030 cltype6 = type_nullable__nit__TEq.color;
2031 idtype7 = type_nullable__nit__TEq.id;
2032 if(var_teqnode3 == NULL) {
2033 var5 = 1;
2034 } else {
2035 if(cltype6 >= (((long)var_teqnode3&3)?type_info[((long)var_teqnode3&3)]:var_teqnode3->type)->table_size) {
2036 var5 = 0;
2037 } else {
2038 var5 = (((long)var_teqnode3&3)?type_info[((long)var_teqnode3&3)]:var_teqnode3->type)->type_table[cltype6] == idtype7;
2039 }
2040 }
2041 if (unlikely(!var5)) {
2042 PRINT_ERROR("Runtime error: %s", "Assert failed");
2043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7837);
2044 fatal_exit(1);
2045 }
2046 var_pexprnode4 = var_nodearraylist4;
2047 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2048 cltype9 = type_nullable__nit__AExpr.color;
2049 idtype10 = type_nullable__nit__AExpr.id;
2050 if(var_pexprnode4 == NULL) {
2051 var8 = 1;
2052 } else {
2053 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2054 var8 = 0;
2055 } else {
2056 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2057 }
2058 }
2059 if (unlikely(!var8)) {
2060 PRINT_ERROR("Runtime error: %s", "Assert failed");
2061 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7839);
2062 fatal_exit(1);
2063 }
2064 var11 = NEW_nit__AEqExpr(&type_nit__AEqExpr);
2065 {
2066 nit__parser_prod___AEqExpr___init_aeqexpr(var11, var_pexprnode2, var_teqnode3, var_pexprnode4); /* Direct call parser_prod#AEqExpr#init_aeqexpr on <var11:AEqExpr>*/
2067 }
2068 var_pexprnode1 = var11;
2069 var_node_list = var_pexprnode1;
2070 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction293> */
2071 {
2072 var13 = nit___nit__Parser___go_to(var_p, var12);
2073 }
2074 {
2075 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2076 }
2077 RET_LABEL:;
2078 }
2079 /* method parser#ReduceAction294#action for (self: ReduceAction294, Parser) */
2080 void nit__parser___nit__parser__ReduceAction294___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2081 val* var_p /* var p: Parser */;
2082 val* var_node_list /* var node_list: nullable Object */;
2083 val* var /* : nullable Object */;
2084 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2085 val* var1 /* : nullable Object */;
2086 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2087 val* var2 /* : nullable Object */;
2088 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2089 val* var3 /* : nullable Object */;
2090 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2091 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2092 short int var4 /* : Bool */;
2093 int cltype;
2094 int idtype;
2095 val* var_tnenode3 /* var tnenode3: nullable Object */;
2096 short int var5 /* : Bool */;
2097 int cltype6;
2098 int idtype7;
2099 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2100 short int var8 /* : Bool */;
2101 int cltype9;
2102 int idtype10;
2103 val* var11 /* : ANeExpr */;
2104 val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */;
2105 long var12 /* : Int */;
2106 long var13 /* : Int */;
2107 var_p = p0;
2108 var_node_list = ((val*)NULL);
2109 {
2110 var = nit___nit__Parser___pop(var_p);
2111 }
2112 var_nodearraylist4 = var;
2113 {
2114 var1 = nit___nit__Parser___pop(var_p);
2115 }
2116 var_nodearraylist3 = var1;
2117 {
2118 var2 = nit___nit__Parser___pop(var_p);
2119 }
2120 var_nodearraylist2 = var2;
2121 {
2122 var3 = nit___nit__Parser___pop(var_p);
2123 }
2124 var_nodearraylist1 = var3;
2125 var_pexprnode2 = var_nodearraylist1;
2126 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2127 cltype = type_nullable__nit__AExpr.color;
2128 idtype = type_nullable__nit__AExpr.id;
2129 if(var_pexprnode2 == NULL) {
2130 var4 = 1;
2131 } else {
2132 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2133 var4 = 0;
2134 } else {
2135 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2136 }
2137 }
2138 if (unlikely(!var4)) {
2139 PRINT_ERROR("Runtime error: %s", "Assert failed");
2140 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7859);
2141 fatal_exit(1);
2142 }
2143 var_tnenode3 = var_nodearraylist2;
2144 /* <var_tnenode3:nullable Object> isa nullable TNe */
2145 cltype6 = type_nullable__nit__TNe.color;
2146 idtype7 = type_nullable__nit__TNe.id;
2147 if(var_tnenode3 == NULL) {
2148 var5 = 1;
2149 } else {
2150 if(cltype6 >= (((long)var_tnenode3&3)?type_info[((long)var_tnenode3&3)]:var_tnenode3->type)->table_size) {
2151 var5 = 0;
2152 } else {
2153 var5 = (((long)var_tnenode3&3)?type_info[((long)var_tnenode3&3)]:var_tnenode3->type)->type_table[cltype6] == idtype7;
2154 }
2155 }
2156 if (unlikely(!var5)) {
2157 PRINT_ERROR("Runtime error: %s", "Assert failed");
2158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7861);
2159 fatal_exit(1);
2160 }
2161 var_pexprnode4 = var_nodearraylist4;
2162 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2163 cltype9 = type_nullable__nit__AExpr.color;
2164 idtype10 = type_nullable__nit__AExpr.id;
2165 if(var_pexprnode4 == NULL) {
2166 var8 = 1;
2167 } else {
2168 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2169 var8 = 0;
2170 } else {
2171 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2172 }
2173 }
2174 if (unlikely(!var8)) {
2175 PRINT_ERROR("Runtime error: %s", "Assert failed");
2176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7863);
2177 fatal_exit(1);
2178 }
2179 var11 = NEW_nit__ANeExpr(&type_nit__ANeExpr);
2180 {
2181 nit__parser_prod___ANeExpr___init_aneexpr(var11, var_pexprnode2, var_tnenode3, var_pexprnode4); /* Direct call parser_prod#ANeExpr#init_aneexpr on <var11:ANeExpr>*/
2182 }
2183 var_pexprnode1 = var11;
2184 var_node_list = var_pexprnode1;
2185 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction294> */
2186 {
2187 var13 = nit___nit__Parser___go_to(var_p, var12);
2188 }
2189 {
2190 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2191 }
2192 RET_LABEL:;
2193 }
2194 /* method parser#ReduceAction295#action for (self: ReduceAction295, Parser) */
2195 void nit__parser___nit__parser__ReduceAction295___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2196 val* var_p /* var p: Parser */;
2197 val* var_node_list /* var node_list: nullable Object */;
2198 val* var /* : nullable Object */;
2199 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2200 val* var1 /* : nullable Object */;
2201 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2202 val* var2 /* : nullable Object */;
2203 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2204 val* var3 /* : nullable Object */;
2205 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2206 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2207 short int var4 /* : Bool */;
2208 int cltype;
2209 int idtype;
2210 val* var_tltnode3 /* var tltnode3: nullable Object */;
2211 short int var5 /* : Bool */;
2212 int cltype6;
2213 int idtype7;
2214 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2215 short int var8 /* : Bool */;
2216 int cltype9;
2217 int idtype10;
2218 val* var11 /* : ALtExpr */;
2219 val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */;
2220 long var12 /* : Int */;
2221 long var13 /* : Int */;
2222 var_p = p0;
2223 var_node_list = ((val*)NULL);
2224 {
2225 var = nit___nit__Parser___pop(var_p);
2226 }
2227 var_nodearraylist4 = var;
2228 {
2229 var1 = nit___nit__Parser___pop(var_p);
2230 }
2231 var_nodearraylist3 = var1;
2232 {
2233 var2 = nit___nit__Parser___pop(var_p);
2234 }
2235 var_nodearraylist2 = var2;
2236 {
2237 var3 = nit___nit__Parser___pop(var_p);
2238 }
2239 var_nodearraylist1 = var3;
2240 var_pexprnode2 = var_nodearraylist1;
2241 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2242 cltype = type_nullable__nit__AExpr.color;
2243 idtype = type_nullable__nit__AExpr.id;
2244 if(var_pexprnode2 == NULL) {
2245 var4 = 1;
2246 } else {
2247 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2248 var4 = 0;
2249 } else {
2250 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2251 }
2252 }
2253 if (unlikely(!var4)) {
2254 PRINT_ERROR("Runtime error: %s", "Assert failed");
2255 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7883);
2256 fatal_exit(1);
2257 }
2258 var_tltnode3 = var_nodearraylist2;
2259 /* <var_tltnode3:nullable Object> isa nullable TLt */
2260 cltype6 = type_nullable__nit__TLt.color;
2261 idtype7 = type_nullable__nit__TLt.id;
2262 if(var_tltnode3 == NULL) {
2263 var5 = 1;
2264 } else {
2265 if(cltype6 >= (((long)var_tltnode3&3)?type_info[((long)var_tltnode3&3)]:var_tltnode3->type)->table_size) {
2266 var5 = 0;
2267 } else {
2268 var5 = (((long)var_tltnode3&3)?type_info[((long)var_tltnode3&3)]:var_tltnode3->type)->type_table[cltype6] == idtype7;
2269 }
2270 }
2271 if (unlikely(!var5)) {
2272 PRINT_ERROR("Runtime error: %s", "Assert failed");
2273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7885);
2274 fatal_exit(1);
2275 }
2276 var_pexprnode4 = var_nodearraylist4;
2277 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2278 cltype9 = type_nullable__nit__AExpr.color;
2279 idtype10 = type_nullable__nit__AExpr.id;
2280 if(var_pexprnode4 == NULL) {
2281 var8 = 1;
2282 } else {
2283 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2284 var8 = 0;
2285 } else {
2286 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2287 }
2288 }
2289 if (unlikely(!var8)) {
2290 PRINT_ERROR("Runtime error: %s", "Assert failed");
2291 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7887);
2292 fatal_exit(1);
2293 }
2294 var11 = NEW_nit__ALtExpr(&type_nit__ALtExpr);
2295 {
2296 nit__parser_prod___ALtExpr___init_altexpr(var11, var_pexprnode2, var_tltnode3, var_pexprnode4); /* Direct call parser_prod#ALtExpr#init_altexpr on <var11:ALtExpr>*/
2297 }
2298 var_pexprnode1 = var11;
2299 var_node_list = var_pexprnode1;
2300 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction295> */
2301 {
2302 var13 = nit___nit__Parser___go_to(var_p, var12);
2303 }
2304 {
2305 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2306 }
2307 RET_LABEL:;
2308 }
2309 /* method parser#ReduceAction296#action for (self: ReduceAction296, Parser) */
2310 void nit__parser___nit__parser__ReduceAction296___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2311 val* var_p /* var p: Parser */;
2312 val* var_node_list /* var node_list: nullable Object */;
2313 val* var /* : nullable Object */;
2314 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2315 val* var1 /* : nullable Object */;
2316 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2317 val* var2 /* : nullable Object */;
2318 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2319 val* var3 /* : nullable Object */;
2320 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2321 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2322 short int var4 /* : Bool */;
2323 int cltype;
2324 int idtype;
2325 val* var_tlenode3 /* var tlenode3: nullable Object */;
2326 short int var5 /* : Bool */;
2327 int cltype6;
2328 int idtype7;
2329 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2330 short int var8 /* : Bool */;
2331 int cltype9;
2332 int idtype10;
2333 val* var11 /* : ALeExpr */;
2334 val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */;
2335 long var12 /* : Int */;
2336 long var13 /* : Int */;
2337 var_p = p0;
2338 var_node_list = ((val*)NULL);
2339 {
2340 var = nit___nit__Parser___pop(var_p);
2341 }
2342 var_nodearraylist4 = var;
2343 {
2344 var1 = nit___nit__Parser___pop(var_p);
2345 }
2346 var_nodearraylist3 = var1;
2347 {
2348 var2 = nit___nit__Parser___pop(var_p);
2349 }
2350 var_nodearraylist2 = var2;
2351 {
2352 var3 = nit___nit__Parser___pop(var_p);
2353 }
2354 var_nodearraylist1 = var3;
2355 var_pexprnode2 = var_nodearraylist1;
2356 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2357 cltype = type_nullable__nit__AExpr.color;
2358 idtype = type_nullable__nit__AExpr.id;
2359 if(var_pexprnode2 == NULL) {
2360 var4 = 1;
2361 } else {
2362 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2363 var4 = 0;
2364 } else {
2365 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2366 }
2367 }
2368 if (unlikely(!var4)) {
2369 PRINT_ERROR("Runtime error: %s", "Assert failed");
2370 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7907);
2371 fatal_exit(1);
2372 }
2373 var_tlenode3 = var_nodearraylist2;
2374 /* <var_tlenode3:nullable Object> isa nullable TLe */
2375 cltype6 = type_nullable__nit__TLe.color;
2376 idtype7 = type_nullable__nit__TLe.id;
2377 if(var_tlenode3 == NULL) {
2378 var5 = 1;
2379 } else {
2380 if(cltype6 >= (((long)var_tlenode3&3)?type_info[((long)var_tlenode3&3)]:var_tlenode3->type)->table_size) {
2381 var5 = 0;
2382 } else {
2383 var5 = (((long)var_tlenode3&3)?type_info[((long)var_tlenode3&3)]:var_tlenode3->type)->type_table[cltype6] == idtype7;
2384 }
2385 }
2386 if (unlikely(!var5)) {
2387 PRINT_ERROR("Runtime error: %s", "Assert failed");
2388 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7909);
2389 fatal_exit(1);
2390 }
2391 var_pexprnode4 = var_nodearraylist4;
2392 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2393 cltype9 = type_nullable__nit__AExpr.color;
2394 idtype10 = type_nullable__nit__AExpr.id;
2395 if(var_pexprnode4 == NULL) {
2396 var8 = 1;
2397 } else {
2398 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2399 var8 = 0;
2400 } else {
2401 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2402 }
2403 }
2404 if (unlikely(!var8)) {
2405 PRINT_ERROR("Runtime error: %s", "Assert failed");
2406 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7911);
2407 fatal_exit(1);
2408 }
2409 var11 = NEW_nit__ALeExpr(&type_nit__ALeExpr);
2410 {
2411 nit__parser_prod___ALeExpr___init_aleexpr(var11, var_pexprnode2, var_tlenode3, var_pexprnode4); /* Direct call parser_prod#ALeExpr#init_aleexpr on <var11:ALeExpr>*/
2412 }
2413 var_pexprnode1 = var11;
2414 var_node_list = var_pexprnode1;
2415 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction296> */
2416 {
2417 var13 = nit___nit__Parser___go_to(var_p, var12);
2418 }
2419 {
2420 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2421 }
2422 RET_LABEL:;
2423 }
2424 /* method parser#ReduceAction297#action for (self: ReduceAction297, Parser) */
2425 void nit__parser___nit__parser__ReduceAction297___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2426 val* var_p /* var p: Parser */;
2427 val* var_node_list /* var node_list: nullable Object */;
2428 val* var /* : nullable Object */;
2429 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2430 val* var1 /* : nullable Object */;
2431 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2432 val* var2 /* : nullable Object */;
2433 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2434 val* var3 /* : nullable Object */;
2435 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2436 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2437 short int var4 /* : Bool */;
2438 int cltype;
2439 int idtype;
2440 val* var_tgtnode3 /* var tgtnode3: nullable Object */;
2441 short int var5 /* : Bool */;
2442 int cltype6;
2443 int idtype7;
2444 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2445 short int var8 /* : Bool */;
2446 int cltype9;
2447 int idtype10;
2448 val* var11 /* : AGtExpr */;
2449 val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */;
2450 long var12 /* : Int */;
2451 long var13 /* : Int */;
2452 var_p = p0;
2453 var_node_list = ((val*)NULL);
2454 {
2455 var = nit___nit__Parser___pop(var_p);
2456 }
2457 var_nodearraylist4 = var;
2458 {
2459 var1 = nit___nit__Parser___pop(var_p);
2460 }
2461 var_nodearraylist3 = var1;
2462 {
2463 var2 = nit___nit__Parser___pop(var_p);
2464 }
2465 var_nodearraylist2 = var2;
2466 {
2467 var3 = nit___nit__Parser___pop(var_p);
2468 }
2469 var_nodearraylist1 = var3;
2470 var_pexprnode2 = var_nodearraylist1;
2471 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2472 cltype = type_nullable__nit__AExpr.color;
2473 idtype = type_nullable__nit__AExpr.id;
2474 if(var_pexprnode2 == NULL) {
2475 var4 = 1;
2476 } else {
2477 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2478 var4 = 0;
2479 } else {
2480 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2481 }
2482 }
2483 if (unlikely(!var4)) {
2484 PRINT_ERROR("Runtime error: %s", "Assert failed");
2485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7931);
2486 fatal_exit(1);
2487 }
2488 var_tgtnode3 = var_nodearraylist2;
2489 /* <var_tgtnode3:nullable Object> isa nullable TGt */
2490 cltype6 = type_nullable__nit__TGt.color;
2491 idtype7 = type_nullable__nit__TGt.id;
2492 if(var_tgtnode3 == NULL) {
2493 var5 = 1;
2494 } else {
2495 if(cltype6 >= (((long)var_tgtnode3&3)?type_info[((long)var_tgtnode3&3)]:var_tgtnode3->type)->table_size) {
2496 var5 = 0;
2497 } else {
2498 var5 = (((long)var_tgtnode3&3)?type_info[((long)var_tgtnode3&3)]:var_tgtnode3->type)->type_table[cltype6] == idtype7;
2499 }
2500 }
2501 if (unlikely(!var5)) {
2502 PRINT_ERROR("Runtime error: %s", "Assert failed");
2503 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7933);
2504 fatal_exit(1);
2505 }
2506 var_pexprnode4 = var_nodearraylist4;
2507 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2508 cltype9 = type_nullable__nit__AExpr.color;
2509 idtype10 = type_nullable__nit__AExpr.id;
2510 if(var_pexprnode4 == NULL) {
2511 var8 = 1;
2512 } else {
2513 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2514 var8 = 0;
2515 } else {
2516 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2517 }
2518 }
2519 if (unlikely(!var8)) {
2520 PRINT_ERROR("Runtime error: %s", "Assert failed");
2521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7935);
2522 fatal_exit(1);
2523 }
2524 var11 = NEW_nit__AGtExpr(&type_nit__AGtExpr);
2525 {
2526 nit__parser_prod___AGtExpr___init_agtexpr(var11, var_pexprnode2, var_tgtnode3, var_pexprnode4); /* Direct call parser_prod#AGtExpr#init_agtexpr on <var11:AGtExpr>*/
2527 }
2528 var_pexprnode1 = var11;
2529 var_node_list = var_pexprnode1;
2530 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction297> */
2531 {
2532 var13 = nit___nit__Parser___go_to(var_p, var12);
2533 }
2534 {
2535 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2536 }
2537 RET_LABEL:;
2538 }
2539 /* method parser#ReduceAction298#action for (self: ReduceAction298, Parser) */
2540 void nit__parser___nit__parser__ReduceAction298___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2541 val* var_p /* var p: Parser */;
2542 val* var_node_list /* var node_list: nullable Object */;
2543 val* var /* : nullable Object */;
2544 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2545 val* var1 /* : nullable Object */;
2546 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2547 val* var2 /* : nullable Object */;
2548 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2549 val* var3 /* : nullable Object */;
2550 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2551 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2552 short int var4 /* : Bool */;
2553 int cltype;
2554 int idtype;
2555 val* var_tgenode3 /* var tgenode3: nullable Object */;
2556 short int var5 /* : Bool */;
2557 int cltype6;
2558 int idtype7;
2559 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2560 short int var8 /* : Bool */;
2561 int cltype9;
2562 int idtype10;
2563 val* var11 /* : AGeExpr */;
2564 val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */;
2565 long var12 /* : Int */;
2566 long var13 /* : Int */;
2567 var_p = p0;
2568 var_node_list = ((val*)NULL);
2569 {
2570 var = nit___nit__Parser___pop(var_p);
2571 }
2572 var_nodearraylist4 = var;
2573 {
2574 var1 = nit___nit__Parser___pop(var_p);
2575 }
2576 var_nodearraylist3 = var1;
2577 {
2578 var2 = nit___nit__Parser___pop(var_p);
2579 }
2580 var_nodearraylist2 = var2;
2581 {
2582 var3 = nit___nit__Parser___pop(var_p);
2583 }
2584 var_nodearraylist1 = var3;
2585 var_pexprnode2 = var_nodearraylist1;
2586 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2587 cltype = type_nullable__nit__AExpr.color;
2588 idtype = type_nullable__nit__AExpr.id;
2589 if(var_pexprnode2 == NULL) {
2590 var4 = 1;
2591 } else {
2592 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2593 var4 = 0;
2594 } else {
2595 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2596 }
2597 }
2598 if (unlikely(!var4)) {
2599 PRINT_ERROR("Runtime error: %s", "Assert failed");
2600 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7955);
2601 fatal_exit(1);
2602 }
2603 var_tgenode3 = var_nodearraylist2;
2604 /* <var_tgenode3:nullable Object> isa nullable TGe */
2605 cltype6 = type_nullable__nit__TGe.color;
2606 idtype7 = type_nullable__nit__TGe.id;
2607 if(var_tgenode3 == NULL) {
2608 var5 = 1;
2609 } else {
2610 if(cltype6 >= (((long)var_tgenode3&3)?type_info[((long)var_tgenode3&3)]:var_tgenode3->type)->table_size) {
2611 var5 = 0;
2612 } else {
2613 var5 = (((long)var_tgenode3&3)?type_info[((long)var_tgenode3&3)]:var_tgenode3->type)->type_table[cltype6] == idtype7;
2614 }
2615 }
2616 if (unlikely(!var5)) {
2617 PRINT_ERROR("Runtime error: %s", "Assert failed");
2618 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7957);
2619 fatal_exit(1);
2620 }
2621 var_pexprnode4 = var_nodearraylist4;
2622 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2623 cltype9 = type_nullable__nit__AExpr.color;
2624 idtype10 = type_nullable__nit__AExpr.id;
2625 if(var_pexprnode4 == NULL) {
2626 var8 = 1;
2627 } else {
2628 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2629 var8 = 0;
2630 } else {
2631 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2632 }
2633 }
2634 if (unlikely(!var8)) {
2635 PRINT_ERROR("Runtime error: %s", "Assert failed");
2636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7959);
2637 fatal_exit(1);
2638 }
2639 var11 = NEW_nit__AGeExpr(&type_nit__AGeExpr);
2640 {
2641 nit__parser_prod___AGeExpr___init_ageexpr(var11, var_pexprnode2, var_tgenode3, var_pexprnode4); /* Direct call parser_prod#AGeExpr#init_ageexpr on <var11:AGeExpr>*/
2642 }
2643 var_pexprnode1 = var11;
2644 var_node_list = var_pexprnode1;
2645 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction298> */
2646 {
2647 var13 = nit___nit__Parser___go_to(var_p, var12);
2648 }
2649 {
2650 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2651 }
2652 RET_LABEL:;
2653 }
2654 /* method parser#ReduceAction299#action for (self: ReduceAction299, Parser) */
2655 void nit__parser___nit__parser__ReduceAction299___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2656 val* var_p /* var p: Parser */;
2657 val* var_node_list /* var node_list: nullable Object */;
2658 val* var /* : nullable Object */;
2659 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2660 val* var1 /* : nullable Object */;
2661 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2662 val* var2 /* : nullable Object */;
2663 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2664 val* var3 /* : nullable Object */;
2665 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2666 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2667 short int var4 /* : Bool */;
2668 int cltype;
2669 int idtype;
2670 val* var_tstarshipnode3 /* var tstarshipnode3: nullable Object */;
2671 short int var5 /* : Bool */;
2672 int cltype6;
2673 int idtype7;
2674 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2675 short int var8 /* : Bool */;
2676 int cltype9;
2677 int idtype10;
2678 val* var11 /* : AStarshipExpr */;
2679 val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */;
2680 long var12 /* : Int */;
2681 long var13 /* : Int */;
2682 var_p = p0;
2683 var_node_list = ((val*)NULL);
2684 {
2685 var = nit___nit__Parser___pop(var_p);
2686 }
2687 var_nodearraylist4 = var;
2688 {
2689 var1 = nit___nit__Parser___pop(var_p);
2690 }
2691 var_nodearraylist3 = var1;
2692 {
2693 var2 = nit___nit__Parser___pop(var_p);
2694 }
2695 var_nodearraylist2 = var2;
2696 {
2697 var3 = nit___nit__Parser___pop(var_p);
2698 }
2699 var_nodearraylist1 = var3;
2700 var_pexprnode2 = var_nodearraylist1;
2701 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2702 cltype = type_nullable__nit__AExpr.color;
2703 idtype = type_nullable__nit__AExpr.id;
2704 if(var_pexprnode2 == NULL) {
2705 var4 = 1;
2706 } else {
2707 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2708 var4 = 0;
2709 } else {
2710 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2711 }
2712 }
2713 if (unlikely(!var4)) {
2714 PRINT_ERROR("Runtime error: %s", "Assert failed");
2715 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7979);
2716 fatal_exit(1);
2717 }
2718 var_tstarshipnode3 = var_nodearraylist2;
2719 /* <var_tstarshipnode3:nullable Object> isa nullable TStarship */
2720 cltype6 = type_nullable__nit__TStarship.color;
2721 idtype7 = type_nullable__nit__TStarship.id;
2722 if(var_tstarshipnode3 == NULL) {
2723 var5 = 1;
2724 } else {
2725 if(cltype6 >= (((long)var_tstarshipnode3&3)?type_info[((long)var_tstarshipnode3&3)]:var_tstarshipnode3->type)->table_size) {
2726 var5 = 0;
2727 } else {
2728 var5 = (((long)var_tstarshipnode3&3)?type_info[((long)var_tstarshipnode3&3)]:var_tstarshipnode3->type)->type_table[cltype6] == idtype7;
2729 }
2730 }
2731 if (unlikely(!var5)) {
2732 PRINT_ERROR("Runtime error: %s", "Assert failed");
2733 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7981);
2734 fatal_exit(1);
2735 }
2736 var_pexprnode4 = var_nodearraylist4;
2737 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2738 cltype9 = type_nullable__nit__AExpr.color;
2739 idtype10 = type_nullable__nit__AExpr.id;
2740 if(var_pexprnode4 == NULL) {
2741 var8 = 1;
2742 } else {
2743 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2744 var8 = 0;
2745 } else {
2746 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2747 }
2748 }
2749 if (unlikely(!var8)) {
2750 PRINT_ERROR("Runtime error: %s", "Assert failed");
2751 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7983);
2752 fatal_exit(1);
2753 }
2754 var11 = NEW_nit__AStarshipExpr(&type_nit__AStarshipExpr);
2755 {
2756 nit__parser_prod___AStarshipExpr___init_astarshipexpr(var11, var_pexprnode2, var_tstarshipnode3, var_pexprnode4); /* Direct call parser_prod#AStarshipExpr#init_astarshipexpr on <var11:AStarshipExpr>*/
2757 }
2758 var_pexprnode1 = var11;
2759 var_node_list = var_pexprnode1;
2760 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction299> */
2761 {
2762 var13 = nit___nit__Parser___go_to(var_p, var12);
2763 }
2764 {
2765 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2766 }
2767 RET_LABEL:;
2768 }
2769 /* method parser#ReduceAction300#action for (self: ReduceAction300, Parser) */
2770 void nit__parser___nit__parser__ReduceAction300___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2771 val* var_p /* var p: Parser */;
2772 val* var_node_list /* var node_list: nullable Object */;
2773 val* var /* : nullable Object */;
2774 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2775 val* var1 /* : nullable Object */;
2776 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2777 val* var2 /* : nullable Object */;
2778 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2779 val* var3 /* : nullable Object */;
2780 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2781 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2782 short int var4 /* : Bool */;
2783 int cltype;
2784 int idtype;
2785 val* var_tkwisanode3 /* var tkwisanode3: nullable Object */;
2786 short int var5 /* : Bool */;
2787 int cltype6;
2788 int idtype7;
2789 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
2790 short int var8 /* : Bool */;
2791 int cltype9;
2792 int idtype10;
2793 val* var11 /* : AIsaExpr */;
2794 val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */;
2795 long var12 /* : Int */;
2796 long var13 /* : Int */;
2797 var_p = p0;
2798 var_node_list = ((val*)NULL);
2799 {
2800 var = nit___nit__Parser___pop(var_p);
2801 }
2802 var_nodearraylist4 = var;
2803 {
2804 var1 = nit___nit__Parser___pop(var_p);
2805 }
2806 var_nodearraylist3 = var1;
2807 {
2808 var2 = nit___nit__Parser___pop(var_p);
2809 }
2810 var_nodearraylist2 = var2;
2811 {
2812 var3 = nit___nit__Parser___pop(var_p);
2813 }
2814 var_nodearraylist1 = var3;
2815 var_pexprnode2 = var_nodearraylist1;
2816 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2817 cltype = type_nullable__nit__AExpr.color;
2818 idtype = type_nullable__nit__AExpr.id;
2819 if(var_pexprnode2 == NULL) {
2820 var4 = 1;
2821 } else {
2822 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2823 var4 = 0;
2824 } else {
2825 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2826 }
2827 }
2828 if (unlikely(!var4)) {
2829 PRINT_ERROR("Runtime error: %s", "Assert failed");
2830 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8003);
2831 fatal_exit(1);
2832 }
2833 var_tkwisanode3 = var_nodearraylist2;
2834 /* <var_tkwisanode3:nullable Object> isa nullable TKwisa */
2835 cltype6 = type_nullable__nit__TKwisa.color;
2836 idtype7 = type_nullable__nit__TKwisa.id;
2837 if(var_tkwisanode3 == NULL) {
2838 var5 = 1;
2839 } else {
2840 if(cltype6 >= (((long)var_tkwisanode3&3)?type_info[((long)var_tkwisanode3&3)]:var_tkwisanode3->type)->table_size) {
2841 var5 = 0;
2842 } else {
2843 var5 = (((long)var_tkwisanode3&3)?type_info[((long)var_tkwisanode3&3)]:var_tkwisanode3->type)->type_table[cltype6] == idtype7;
2844 }
2845 }
2846 if (unlikely(!var5)) {
2847 PRINT_ERROR("Runtime error: %s", "Assert failed");
2848 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8005);
2849 fatal_exit(1);
2850 }
2851 var_ptypenode4 = var_nodearraylist4;
2852 /* <var_ptypenode4:nullable Object> isa nullable AType */
2853 cltype9 = type_nullable__nit__AType.color;
2854 idtype10 = type_nullable__nit__AType.id;
2855 if(var_ptypenode4 == NULL) {
2856 var8 = 1;
2857 } else {
2858 if(cltype9 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) {
2859 var8 = 0;
2860 } else {
2861 var8 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype9] == idtype10;
2862 }
2863 }
2864 if (unlikely(!var8)) {
2865 PRINT_ERROR("Runtime error: %s", "Assert failed");
2866 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8007);
2867 fatal_exit(1);
2868 }
2869 var11 = NEW_nit__AIsaExpr(&type_nit__AIsaExpr);
2870 {
2871 nit__parser_prod___AIsaExpr___init_aisaexpr(var11, var_pexprnode2, var_tkwisanode3, var_ptypenode4); /* Direct call parser_prod#AIsaExpr#init_aisaexpr on <var11:AIsaExpr>*/
2872 }
2873 var_pexprnode1 = var11;
2874 var_node_list = var_pexprnode1;
2875 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction300> */
2876 {
2877 var13 = nit___nit__Parser___go_to(var_p, var12);
2878 }
2879 {
2880 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2881 }
2882 RET_LABEL:;
2883 }
2884 /* method parser#ReduceAction302#action for (self: ReduceAction302, Parser) */
2885 void nit__parser___nit__parser__ReduceAction302___nit__parser_work__ReduceAction__action(val* self, val* p0) {
2886 val* var_p /* var p: Parser */;
2887 val* var_node_list /* var node_list: nullable Object */;
2888 val* var /* : nullable Object */;
2889 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2890 val* var1 /* : nullable Object */;
2891 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2892 val* var2 /* : nullable Object */;
2893 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2894 val* var3 /* : nullable Object */;
2895 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2896 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2897 short int var4 /* : Bool */;
2898 int cltype;
2899 int idtype;
2900 val* var_tpipenode3 /* var tpipenode3: nullable Object */;
2901 short int var5 /* : Bool */;
2902 int cltype6;
2903 int idtype7;
2904 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2905 short int var8 /* : Bool */;
2906 int cltype9;
2907 int idtype10;
2908 val* var11 /* : APipeExpr */;
2909 val* var_pexprnode1 /* var pexprnode1: nullable APipeExpr */;
2910 long var12 /* : Int */;
2911 long var13 /* : Int */;
2912 var_p = p0;
2913 var_node_list = ((val*)NULL);
2914 {
2915 var = nit___nit__Parser___pop(var_p);
2916 }
2917 var_nodearraylist4 = var;
2918 {
2919 var1 = nit___nit__Parser___pop(var_p);
2920 }
2921 var_nodearraylist3 = var1;
2922 {
2923 var2 = nit___nit__Parser___pop(var_p);
2924 }
2925 var_nodearraylist2 = var2;
2926 {
2927 var3 = nit___nit__Parser___pop(var_p);
2928 }
2929 var_nodearraylist1 = var3;
2930 var_pexprnode2 = var_nodearraylist1;
2931 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2932 cltype = type_nullable__nit__AExpr.color;
2933 idtype = type_nullable__nit__AExpr.id;
2934 if(var_pexprnode2 == NULL) {
2935 var4 = 1;
2936 } else {
2937 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2938 var4 = 0;
2939 } else {
2940 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2941 }
2942 }
2943 if (unlikely(!var4)) {
2944 PRINT_ERROR("Runtime error: %s", "Assert failed");
2945 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8027);
2946 fatal_exit(1);
2947 }
2948 var_tpipenode3 = var_nodearraylist2;
2949 /* <var_tpipenode3:nullable Object> isa nullable TPipe */
2950 cltype6 = type_nullable__nit__TPipe.color;
2951 idtype7 = type_nullable__nit__TPipe.id;
2952 if(var_tpipenode3 == NULL) {
2953 var5 = 1;
2954 } else {
2955 if(cltype6 >= (((long)var_tpipenode3&3)?type_info[((long)var_tpipenode3&3)]:var_tpipenode3->type)->table_size) {
2956 var5 = 0;
2957 } else {
2958 var5 = (((long)var_tpipenode3&3)?type_info[((long)var_tpipenode3&3)]:var_tpipenode3->type)->type_table[cltype6] == idtype7;
2959 }
2960 }
2961 if (unlikely(!var5)) {
2962 PRINT_ERROR("Runtime error: %s", "Assert failed");
2963 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8029);
2964 fatal_exit(1);
2965 }
2966 var_pexprnode4 = var_nodearraylist4;
2967 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2968 cltype9 = type_nullable__nit__AExpr.color;
2969 idtype10 = type_nullable__nit__AExpr.id;
2970 if(var_pexprnode4 == NULL) {
2971 var8 = 1;
2972 } else {
2973 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
2974 var8 = 0;
2975 } else {
2976 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
2977 }
2978 }
2979 if (unlikely(!var8)) {
2980 PRINT_ERROR("Runtime error: %s", "Assert failed");
2981 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8031);
2982 fatal_exit(1);
2983 }
2984 var11 = NEW_nit__APipeExpr(&type_nit__APipeExpr);
2985 {
2986 nit__parser_prod___APipeExpr___init_apipeexpr(var11, var_pexprnode2, var_tpipenode3, var_pexprnode4); /* Direct call parser_prod#APipeExpr#init_apipeexpr on <var11:APipeExpr>*/
2987 }
2988 var_pexprnode1 = var11;
2989 var_node_list = var_pexprnode1;
2990 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction302> */
2991 {
2992 var13 = nit___nit__Parser___go_to(var_p, var12);
2993 }
2994 {
2995 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2996 }
2997 RET_LABEL:;
2998 }
2999 /* method parser#ReduceAction304#action for (self: ReduceAction304, Parser) */
3000 void nit__parser___nit__parser__ReduceAction304___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3001 val* var_p /* var p: Parser */;
3002 val* var_node_list /* var node_list: nullable Object */;
3003 val* var /* : nullable Object */;
3004 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3005 val* var1 /* : nullable Object */;
3006 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3007 val* var2 /* : nullable Object */;
3008 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3009 val* var3 /* : nullable Object */;
3010 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3011 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3012 short int var4 /* : Bool */;
3013 int cltype;
3014 int idtype;
3015 val* var_tcaretnode3 /* var tcaretnode3: nullable Object */;
3016 short int var5 /* : Bool */;
3017 int cltype6;
3018 int idtype7;
3019 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3020 short int var8 /* : Bool */;
3021 int cltype9;
3022 int idtype10;
3023 val* var11 /* : ACaretExpr */;
3024 val* var_pexprnode1 /* var pexprnode1: nullable ACaretExpr */;
3025 long var12 /* : Int */;
3026 long var13 /* : Int */;
3027 var_p = p0;
3028 var_node_list = ((val*)NULL);
3029 {
3030 var = nit___nit__Parser___pop(var_p);
3031 }
3032 var_nodearraylist4 = var;
3033 {
3034 var1 = nit___nit__Parser___pop(var_p);
3035 }
3036 var_nodearraylist3 = var1;
3037 {
3038 var2 = nit___nit__Parser___pop(var_p);
3039 }
3040 var_nodearraylist2 = var2;
3041 {
3042 var3 = nit___nit__Parser___pop(var_p);
3043 }
3044 var_nodearraylist1 = var3;
3045 var_pexprnode2 = var_nodearraylist1;
3046 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3047 cltype = type_nullable__nit__AExpr.color;
3048 idtype = type_nullable__nit__AExpr.id;
3049 if(var_pexprnode2 == NULL) {
3050 var4 = 1;
3051 } else {
3052 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3053 var4 = 0;
3054 } else {
3055 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3056 }
3057 }
3058 if (unlikely(!var4)) {
3059 PRINT_ERROR("Runtime error: %s", "Assert failed");
3060 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8051);
3061 fatal_exit(1);
3062 }
3063 var_tcaretnode3 = var_nodearraylist2;
3064 /* <var_tcaretnode3:nullable Object> isa nullable TCaret */
3065 cltype6 = type_nullable__nit__TCaret.color;
3066 idtype7 = type_nullable__nit__TCaret.id;
3067 if(var_tcaretnode3 == NULL) {
3068 var5 = 1;
3069 } else {
3070 if(cltype6 >= (((long)var_tcaretnode3&3)?type_info[((long)var_tcaretnode3&3)]:var_tcaretnode3->type)->table_size) {
3071 var5 = 0;
3072 } else {
3073 var5 = (((long)var_tcaretnode3&3)?type_info[((long)var_tcaretnode3&3)]:var_tcaretnode3->type)->type_table[cltype6] == idtype7;
3074 }
3075 }
3076 if (unlikely(!var5)) {
3077 PRINT_ERROR("Runtime error: %s", "Assert failed");
3078 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8053);
3079 fatal_exit(1);
3080 }
3081 var_pexprnode4 = var_nodearraylist4;
3082 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3083 cltype9 = type_nullable__nit__AExpr.color;
3084 idtype10 = type_nullable__nit__AExpr.id;
3085 if(var_pexprnode4 == NULL) {
3086 var8 = 1;
3087 } else {
3088 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3089 var8 = 0;
3090 } else {
3091 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3092 }
3093 }
3094 if (unlikely(!var8)) {
3095 PRINT_ERROR("Runtime error: %s", "Assert failed");
3096 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8055);
3097 fatal_exit(1);
3098 }
3099 var11 = NEW_nit__ACaretExpr(&type_nit__ACaretExpr);
3100 {
3101 nit__parser_prod___ACaretExpr___init_acaretexpr(var11, var_pexprnode2, var_tcaretnode3, var_pexprnode4); /* Direct call parser_prod#ACaretExpr#init_acaretexpr on <var11:ACaretExpr>*/
3102 }
3103 var_pexprnode1 = var11;
3104 var_node_list = var_pexprnode1;
3105 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction304> */
3106 {
3107 var13 = nit___nit__Parser___go_to(var_p, var12);
3108 }
3109 {
3110 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3111 }
3112 RET_LABEL:;
3113 }
3114 /* method parser#ReduceAction306#action for (self: ReduceAction306, Parser) */
3115 void nit__parser___nit__parser__ReduceAction306___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3116 val* var_p /* var p: Parser */;
3117 val* var_node_list /* var node_list: nullable Object */;
3118 val* var /* : nullable Object */;
3119 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3120 val* var1 /* : nullable Object */;
3121 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3122 val* var2 /* : nullable Object */;
3123 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3124 val* var3 /* : nullable Object */;
3125 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3126 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3127 short int var4 /* : Bool */;
3128 int cltype;
3129 int idtype;
3130 val* var_tampnode3 /* var tampnode3: nullable Object */;
3131 short int var5 /* : Bool */;
3132 int cltype6;
3133 int idtype7;
3134 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3135 short int var8 /* : Bool */;
3136 int cltype9;
3137 int idtype10;
3138 val* var11 /* : AAmpExpr */;
3139 val* var_pexprnode1 /* var pexprnode1: nullable AAmpExpr */;
3140 long var12 /* : Int */;
3141 long var13 /* : Int */;
3142 var_p = p0;
3143 var_node_list = ((val*)NULL);
3144 {
3145 var = nit___nit__Parser___pop(var_p);
3146 }
3147 var_nodearraylist4 = var;
3148 {
3149 var1 = nit___nit__Parser___pop(var_p);
3150 }
3151 var_nodearraylist3 = var1;
3152 {
3153 var2 = nit___nit__Parser___pop(var_p);
3154 }
3155 var_nodearraylist2 = var2;
3156 {
3157 var3 = nit___nit__Parser___pop(var_p);
3158 }
3159 var_nodearraylist1 = var3;
3160 var_pexprnode2 = var_nodearraylist1;
3161 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3162 cltype = type_nullable__nit__AExpr.color;
3163 idtype = type_nullable__nit__AExpr.id;
3164 if(var_pexprnode2 == NULL) {
3165 var4 = 1;
3166 } else {
3167 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3168 var4 = 0;
3169 } else {
3170 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3171 }
3172 }
3173 if (unlikely(!var4)) {
3174 PRINT_ERROR("Runtime error: %s", "Assert failed");
3175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8075);
3176 fatal_exit(1);
3177 }
3178 var_tampnode3 = var_nodearraylist2;
3179 /* <var_tampnode3:nullable Object> isa nullable TAmp */
3180 cltype6 = type_nullable__nit__TAmp.color;
3181 idtype7 = type_nullable__nit__TAmp.id;
3182 if(var_tampnode3 == NULL) {
3183 var5 = 1;
3184 } else {
3185 if(cltype6 >= (((long)var_tampnode3&3)?type_info[((long)var_tampnode3&3)]:var_tampnode3->type)->table_size) {
3186 var5 = 0;
3187 } else {
3188 var5 = (((long)var_tampnode3&3)?type_info[((long)var_tampnode3&3)]:var_tampnode3->type)->type_table[cltype6] == idtype7;
3189 }
3190 }
3191 if (unlikely(!var5)) {
3192 PRINT_ERROR("Runtime error: %s", "Assert failed");
3193 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8077);
3194 fatal_exit(1);
3195 }
3196 var_pexprnode4 = var_nodearraylist4;
3197 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3198 cltype9 = type_nullable__nit__AExpr.color;
3199 idtype10 = type_nullable__nit__AExpr.id;
3200 if(var_pexprnode4 == NULL) {
3201 var8 = 1;
3202 } else {
3203 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3204 var8 = 0;
3205 } else {
3206 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3207 }
3208 }
3209 if (unlikely(!var8)) {
3210 PRINT_ERROR("Runtime error: %s", "Assert failed");
3211 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8079);
3212 fatal_exit(1);
3213 }
3214 var11 = NEW_nit__AAmpExpr(&type_nit__AAmpExpr);
3215 {
3216 nit__parser_prod___AAmpExpr___init_aampexpr(var11, var_pexprnode2, var_tampnode3, var_pexprnode4); /* Direct call parser_prod#AAmpExpr#init_aampexpr on <var11:AAmpExpr>*/
3217 }
3218 var_pexprnode1 = var11;
3219 var_node_list = var_pexprnode1;
3220 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction306> */
3221 {
3222 var13 = nit___nit__Parser___go_to(var_p, var12);
3223 }
3224 {
3225 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3226 }
3227 RET_LABEL:;
3228 }
3229 /* method parser#ReduceAction308#action for (self: ReduceAction308, Parser) */
3230 void nit__parser___nit__parser__ReduceAction308___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3231 val* var_p /* var p: Parser */;
3232 val* var_node_list /* var node_list: nullable Object */;
3233 val* var /* : nullable Object */;
3234 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3235 val* var1 /* : nullable Object */;
3236 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3237 val* var2 /* : nullable Object */;
3238 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3239 val* var3 /* : nullable Object */;
3240 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3241 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3242 short int var4 /* : Bool */;
3243 int cltype;
3244 int idtype;
3245 val* var_tllnode3 /* var tllnode3: nullable Object */;
3246 short int var5 /* : Bool */;
3247 int cltype6;
3248 int idtype7;
3249 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3250 short int var8 /* : Bool */;
3251 int cltype9;
3252 int idtype10;
3253 val* var11 /* : ALlExpr */;
3254 val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */;
3255 long var12 /* : Int */;
3256 long var13 /* : Int */;
3257 var_p = p0;
3258 var_node_list = ((val*)NULL);
3259 {
3260 var = nit___nit__Parser___pop(var_p);
3261 }
3262 var_nodearraylist4 = var;
3263 {
3264 var1 = nit___nit__Parser___pop(var_p);
3265 }
3266 var_nodearraylist3 = var1;
3267 {
3268 var2 = nit___nit__Parser___pop(var_p);
3269 }
3270 var_nodearraylist2 = var2;
3271 {
3272 var3 = nit___nit__Parser___pop(var_p);
3273 }
3274 var_nodearraylist1 = var3;
3275 var_pexprnode2 = var_nodearraylist1;
3276 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3277 cltype = type_nullable__nit__AExpr.color;
3278 idtype = type_nullable__nit__AExpr.id;
3279 if(var_pexprnode2 == NULL) {
3280 var4 = 1;
3281 } else {
3282 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3283 var4 = 0;
3284 } else {
3285 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3286 }
3287 }
3288 if (unlikely(!var4)) {
3289 PRINT_ERROR("Runtime error: %s", "Assert failed");
3290 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8099);
3291 fatal_exit(1);
3292 }
3293 var_tllnode3 = var_nodearraylist2;
3294 /* <var_tllnode3:nullable Object> isa nullable TLl */
3295 cltype6 = type_nullable__nit__TLl.color;
3296 idtype7 = type_nullable__nit__TLl.id;
3297 if(var_tllnode3 == NULL) {
3298 var5 = 1;
3299 } else {
3300 if(cltype6 >= (((long)var_tllnode3&3)?type_info[((long)var_tllnode3&3)]:var_tllnode3->type)->table_size) {
3301 var5 = 0;
3302 } else {
3303 var5 = (((long)var_tllnode3&3)?type_info[((long)var_tllnode3&3)]:var_tllnode3->type)->type_table[cltype6] == idtype7;
3304 }
3305 }
3306 if (unlikely(!var5)) {
3307 PRINT_ERROR("Runtime error: %s", "Assert failed");
3308 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8101);
3309 fatal_exit(1);
3310 }
3311 var_pexprnode4 = var_nodearraylist4;
3312 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3313 cltype9 = type_nullable__nit__AExpr.color;
3314 idtype10 = type_nullable__nit__AExpr.id;
3315 if(var_pexprnode4 == NULL) {
3316 var8 = 1;
3317 } else {
3318 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3319 var8 = 0;
3320 } else {
3321 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3322 }
3323 }
3324 if (unlikely(!var8)) {
3325 PRINT_ERROR("Runtime error: %s", "Assert failed");
3326 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8103);
3327 fatal_exit(1);
3328 }
3329 var11 = NEW_nit__ALlExpr(&type_nit__ALlExpr);
3330 {
3331 nit__parser_prod___ALlExpr___init_allexpr(var11, var_pexprnode2, var_tllnode3, var_pexprnode4); /* Direct call parser_prod#ALlExpr#init_allexpr on <var11:ALlExpr>*/
3332 }
3333 var_pexprnode1 = var11;
3334 var_node_list = var_pexprnode1;
3335 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction308> */
3336 {
3337 var13 = nit___nit__Parser___go_to(var_p, var12);
3338 }
3339 {
3340 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3341 }
3342 RET_LABEL:;
3343 }
3344 /* method parser#ReduceAction309#action for (self: ReduceAction309, Parser) */
3345 void nit__parser___nit__parser__ReduceAction309___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3346 val* var_p /* var p: Parser */;
3347 val* var_node_list /* var node_list: nullable Object */;
3348 val* var /* : nullable Object */;
3349 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3350 val* var1 /* : nullable Object */;
3351 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3352 val* var2 /* : nullable Object */;
3353 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3354 val* var3 /* : nullable Object */;
3355 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3356 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3357 short int var4 /* : Bool */;
3358 int cltype;
3359 int idtype;
3360 val* var_tggnode3 /* var tggnode3: nullable Object */;
3361 short int var5 /* : Bool */;
3362 int cltype6;
3363 int idtype7;
3364 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3365 short int var8 /* : Bool */;
3366 int cltype9;
3367 int idtype10;
3368 val* var11 /* : AGgExpr */;
3369 val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */;
3370 long var12 /* : Int */;
3371 long var13 /* : Int */;
3372 var_p = p0;
3373 var_node_list = ((val*)NULL);
3374 {
3375 var = nit___nit__Parser___pop(var_p);
3376 }
3377 var_nodearraylist4 = var;
3378 {
3379 var1 = nit___nit__Parser___pop(var_p);
3380 }
3381 var_nodearraylist3 = var1;
3382 {
3383 var2 = nit___nit__Parser___pop(var_p);
3384 }
3385 var_nodearraylist2 = var2;
3386 {
3387 var3 = nit___nit__Parser___pop(var_p);
3388 }
3389 var_nodearraylist1 = var3;
3390 var_pexprnode2 = var_nodearraylist1;
3391 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3392 cltype = type_nullable__nit__AExpr.color;
3393 idtype = type_nullable__nit__AExpr.id;
3394 if(var_pexprnode2 == NULL) {
3395 var4 = 1;
3396 } else {
3397 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3398 var4 = 0;
3399 } else {
3400 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3401 }
3402 }
3403 if (unlikely(!var4)) {
3404 PRINT_ERROR("Runtime error: %s", "Assert failed");
3405 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8123);
3406 fatal_exit(1);
3407 }
3408 var_tggnode3 = var_nodearraylist2;
3409 /* <var_tggnode3:nullable Object> isa nullable TGg */
3410 cltype6 = type_nullable__nit__TGg.color;
3411 idtype7 = type_nullable__nit__TGg.id;
3412 if(var_tggnode3 == NULL) {
3413 var5 = 1;
3414 } else {
3415 if(cltype6 >= (((long)var_tggnode3&3)?type_info[((long)var_tggnode3&3)]:var_tggnode3->type)->table_size) {
3416 var5 = 0;
3417 } else {
3418 var5 = (((long)var_tggnode3&3)?type_info[((long)var_tggnode3&3)]:var_tggnode3->type)->type_table[cltype6] == idtype7;
3419 }
3420 }
3421 if (unlikely(!var5)) {
3422 PRINT_ERROR("Runtime error: %s", "Assert failed");
3423 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8125);
3424 fatal_exit(1);
3425 }
3426 var_pexprnode4 = var_nodearraylist4;
3427 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3428 cltype9 = type_nullable__nit__AExpr.color;
3429 idtype10 = type_nullable__nit__AExpr.id;
3430 if(var_pexprnode4 == NULL) {
3431 var8 = 1;
3432 } else {
3433 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3434 var8 = 0;
3435 } else {
3436 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3437 }
3438 }
3439 if (unlikely(!var8)) {
3440 PRINT_ERROR("Runtime error: %s", "Assert failed");
3441 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8127);
3442 fatal_exit(1);
3443 }
3444 var11 = NEW_nit__AGgExpr(&type_nit__AGgExpr);
3445 {
3446 nit__parser_prod___AGgExpr___init_aggexpr(var11, var_pexprnode2, var_tggnode3, var_pexprnode4); /* Direct call parser_prod#AGgExpr#init_aggexpr on <var11:AGgExpr>*/
3447 }
3448 var_pexprnode1 = var11;
3449 var_node_list = var_pexprnode1;
3450 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction309> */
3451 {
3452 var13 = nit___nit__Parser___go_to(var_p, var12);
3453 }
3454 {
3455 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3456 }
3457 RET_LABEL:;
3458 }
3459 /* method parser#ReduceAction311#action for (self: ReduceAction311, Parser) */
3460 void nit__parser___nit__parser__ReduceAction311___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3461 val* var_p /* var p: Parser */;
3462 val* var_node_list /* var node_list: nullable Object */;
3463 val* var /* : nullable Object */;
3464 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3465 val* var1 /* : nullable Object */;
3466 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3467 val* var2 /* : nullable Object */;
3468 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3469 val* var3 /* : nullable Object */;
3470 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3471 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3472 short int var4 /* : Bool */;
3473 int cltype;
3474 int idtype;
3475 val* var_tplusnode3 /* var tplusnode3: nullable Object */;
3476 short int var5 /* : Bool */;
3477 int cltype6;
3478 int idtype7;
3479 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3480 short int var8 /* : Bool */;
3481 int cltype9;
3482 int idtype10;
3483 val* var11 /* : APlusExpr */;
3484 val* var_pexprnode1 /* var pexprnode1: nullable APlusExpr */;
3485 long var12 /* : Int */;
3486 long var13 /* : Int */;
3487 var_p = p0;
3488 var_node_list = ((val*)NULL);
3489 {
3490 var = nit___nit__Parser___pop(var_p);
3491 }
3492 var_nodearraylist4 = var;
3493 {
3494 var1 = nit___nit__Parser___pop(var_p);
3495 }
3496 var_nodearraylist3 = var1;
3497 {
3498 var2 = nit___nit__Parser___pop(var_p);
3499 }
3500 var_nodearraylist2 = var2;
3501 {
3502 var3 = nit___nit__Parser___pop(var_p);
3503 }
3504 var_nodearraylist1 = var3;
3505 var_pexprnode2 = var_nodearraylist1;
3506 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3507 cltype = type_nullable__nit__AExpr.color;
3508 idtype = type_nullable__nit__AExpr.id;
3509 if(var_pexprnode2 == NULL) {
3510 var4 = 1;
3511 } else {
3512 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3513 var4 = 0;
3514 } else {
3515 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3516 }
3517 }
3518 if (unlikely(!var4)) {
3519 PRINT_ERROR("Runtime error: %s", "Assert failed");
3520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8147);
3521 fatal_exit(1);
3522 }
3523 var_tplusnode3 = var_nodearraylist2;
3524 /* <var_tplusnode3:nullable Object> isa nullable TPlus */
3525 cltype6 = type_nullable__nit__TPlus.color;
3526 idtype7 = type_nullable__nit__TPlus.id;
3527 if(var_tplusnode3 == NULL) {
3528 var5 = 1;
3529 } else {
3530 if(cltype6 >= (((long)var_tplusnode3&3)?type_info[((long)var_tplusnode3&3)]:var_tplusnode3->type)->table_size) {
3531 var5 = 0;
3532 } else {
3533 var5 = (((long)var_tplusnode3&3)?type_info[((long)var_tplusnode3&3)]:var_tplusnode3->type)->type_table[cltype6] == idtype7;
3534 }
3535 }
3536 if (unlikely(!var5)) {
3537 PRINT_ERROR("Runtime error: %s", "Assert failed");
3538 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8149);
3539 fatal_exit(1);
3540 }
3541 var_pexprnode4 = var_nodearraylist4;
3542 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3543 cltype9 = type_nullable__nit__AExpr.color;
3544 idtype10 = type_nullable__nit__AExpr.id;
3545 if(var_pexprnode4 == NULL) {
3546 var8 = 1;
3547 } else {
3548 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3549 var8 = 0;
3550 } else {
3551 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3552 }
3553 }
3554 if (unlikely(!var8)) {
3555 PRINT_ERROR("Runtime error: %s", "Assert failed");
3556 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8151);
3557 fatal_exit(1);
3558 }
3559 var11 = NEW_nit__APlusExpr(&type_nit__APlusExpr);
3560 {
3561 nit__parser_prod___APlusExpr___init_aplusexpr(var11, var_pexprnode2, var_tplusnode3, var_pexprnode4); /* Direct call parser_prod#APlusExpr#init_aplusexpr on <var11:APlusExpr>*/
3562 }
3563 var_pexprnode1 = var11;
3564 var_node_list = var_pexprnode1;
3565 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction311> */
3566 {
3567 var13 = nit___nit__Parser___go_to(var_p, var12);
3568 }
3569 {
3570 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3571 }
3572 RET_LABEL:;
3573 }
3574 /* method parser#ReduceAction312#action for (self: ReduceAction312, Parser) */
3575 void nit__parser___nit__parser__ReduceAction312___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3576 val* var_p /* var p: Parser */;
3577 val* var_node_list /* var node_list: nullable Object */;
3578 val* var /* : nullable Object */;
3579 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3580 val* var1 /* : nullable Object */;
3581 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3582 val* var2 /* : nullable Object */;
3583 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3584 val* var3 /* : nullable Object */;
3585 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3586 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3587 short int var4 /* : Bool */;
3588 int cltype;
3589 int idtype;
3590 val* var_tminusnode3 /* var tminusnode3: nullable Object */;
3591 short int var5 /* : Bool */;
3592 int cltype6;
3593 int idtype7;
3594 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3595 short int var8 /* : Bool */;
3596 int cltype9;
3597 int idtype10;
3598 val* var11 /* : AMinusExpr */;
3599 val* var_pexprnode1 /* var pexprnode1: nullable AMinusExpr */;
3600 long var12 /* : Int */;
3601 long var13 /* : Int */;
3602 var_p = p0;
3603 var_node_list = ((val*)NULL);
3604 {
3605 var = nit___nit__Parser___pop(var_p);
3606 }
3607 var_nodearraylist4 = var;
3608 {
3609 var1 = nit___nit__Parser___pop(var_p);
3610 }
3611 var_nodearraylist3 = var1;
3612 {
3613 var2 = nit___nit__Parser___pop(var_p);
3614 }
3615 var_nodearraylist2 = var2;
3616 {
3617 var3 = nit___nit__Parser___pop(var_p);
3618 }
3619 var_nodearraylist1 = var3;
3620 var_pexprnode2 = var_nodearraylist1;
3621 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3622 cltype = type_nullable__nit__AExpr.color;
3623 idtype = type_nullable__nit__AExpr.id;
3624 if(var_pexprnode2 == NULL) {
3625 var4 = 1;
3626 } else {
3627 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3628 var4 = 0;
3629 } else {
3630 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3631 }
3632 }
3633 if (unlikely(!var4)) {
3634 PRINT_ERROR("Runtime error: %s", "Assert failed");
3635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8171);
3636 fatal_exit(1);
3637 }
3638 var_tminusnode3 = var_nodearraylist2;
3639 /* <var_tminusnode3:nullable Object> isa nullable TMinus */
3640 cltype6 = type_nullable__nit__TMinus.color;
3641 idtype7 = type_nullable__nit__TMinus.id;
3642 if(var_tminusnode3 == NULL) {
3643 var5 = 1;
3644 } else {
3645 if(cltype6 >= (((long)var_tminusnode3&3)?type_info[((long)var_tminusnode3&3)]:var_tminusnode3->type)->table_size) {
3646 var5 = 0;
3647 } else {
3648 var5 = (((long)var_tminusnode3&3)?type_info[((long)var_tminusnode3&3)]:var_tminusnode3->type)->type_table[cltype6] == idtype7;
3649 }
3650 }
3651 if (unlikely(!var5)) {
3652 PRINT_ERROR("Runtime error: %s", "Assert failed");
3653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8173);
3654 fatal_exit(1);
3655 }
3656 var_pexprnode4 = var_nodearraylist4;
3657 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3658 cltype9 = type_nullable__nit__AExpr.color;
3659 idtype10 = type_nullable__nit__AExpr.id;
3660 if(var_pexprnode4 == NULL) {
3661 var8 = 1;
3662 } else {
3663 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3664 var8 = 0;
3665 } else {
3666 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3667 }
3668 }
3669 if (unlikely(!var8)) {
3670 PRINT_ERROR("Runtime error: %s", "Assert failed");
3671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8175);
3672 fatal_exit(1);
3673 }
3674 var11 = NEW_nit__AMinusExpr(&type_nit__AMinusExpr);
3675 {
3676 nit__parser_prod___AMinusExpr___init_aminusexpr(var11, var_pexprnode2, var_tminusnode3, var_pexprnode4); /* Direct call parser_prod#AMinusExpr#init_aminusexpr on <var11:AMinusExpr>*/
3677 }
3678 var_pexprnode1 = var11;
3679 var_node_list = var_pexprnode1;
3680 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction312> */
3681 {
3682 var13 = nit___nit__Parser___go_to(var_p, var12);
3683 }
3684 {
3685 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3686 }
3687 RET_LABEL:;
3688 }
3689 /* method parser#ReduceAction314#action for (self: ReduceAction314, Parser) */
3690 void nit__parser___nit__parser__ReduceAction314___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3691 val* var_p /* var p: Parser */;
3692 val* var_node_list /* var node_list: nullable Object */;
3693 val* var /* : nullable Object */;
3694 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3695 val* var1 /* : nullable Object */;
3696 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3697 val* var2 /* : nullable Object */;
3698 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3699 val* var3 /* : nullable Object */;
3700 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3701 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3702 short int var4 /* : Bool */;
3703 int cltype;
3704 int idtype;
3705 val* var_tstarnode3 /* var tstarnode3: nullable Object */;
3706 short int var5 /* : Bool */;
3707 int cltype6;
3708 int idtype7;
3709 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3710 short int var8 /* : Bool */;
3711 int cltype9;
3712 int idtype10;
3713 val* var11 /* : AStarExpr */;
3714 val* var_pexprnode1 /* var pexprnode1: nullable AStarExpr */;
3715 long var12 /* : Int */;
3716 long var13 /* : Int */;
3717 var_p = p0;
3718 var_node_list = ((val*)NULL);
3719 {
3720 var = nit___nit__Parser___pop(var_p);
3721 }
3722 var_nodearraylist4 = var;
3723 {
3724 var1 = nit___nit__Parser___pop(var_p);
3725 }
3726 var_nodearraylist3 = var1;
3727 {
3728 var2 = nit___nit__Parser___pop(var_p);
3729 }
3730 var_nodearraylist2 = var2;
3731 {
3732 var3 = nit___nit__Parser___pop(var_p);
3733 }
3734 var_nodearraylist1 = var3;
3735 var_pexprnode2 = var_nodearraylist1;
3736 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3737 cltype = type_nullable__nit__AExpr.color;
3738 idtype = type_nullable__nit__AExpr.id;
3739 if(var_pexprnode2 == NULL) {
3740 var4 = 1;
3741 } else {
3742 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3743 var4 = 0;
3744 } else {
3745 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3746 }
3747 }
3748 if (unlikely(!var4)) {
3749 PRINT_ERROR("Runtime error: %s", "Assert failed");
3750 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8195);
3751 fatal_exit(1);
3752 }
3753 var_tstarnode3 = var_nodearraylist2;
3754 /* <var_tstarnode3:nullable Object> isa nullable TStar */
3755 cltype6 = type_nullable__nit__TStar.color;
3756 idtype7 = type_nullable__nit__TStar.id;
3757 if(var_tstarnode3 == NULL) {
3758 var5 = 1;
3759 } else {
3760 if(cltype6 >= (((long)var_tstarnode3&3)?type_info[((long)var_tstarnode3&3)]:var_tstarnode3->type)->table_size) {
3761 var5 = 0;
3762 } else {
3763 var5 = (((long)var_tstarnode3&3)?type_info[((long)var_tstarnode3&3)]:var_tstarnode3->type)->type_table[cltype6] == idtype7;
3764 }
3765 }
3766 if (unlikely(!var5)) {
3767 PRINT_ERROR("Runtime error: %s", "Assert failed");
3768 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8197);
3769 fatal_exit(1);
3770 }
3771 var_pexprnode4 = var_nodearraylist4;
3772 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3773 cltype9 = type_nullable__nit__AExpr.color;
3774 idtype10 = type_nullable__nit__AExpr.id;
3775 if(var_pexprnode4 == NULL) {
3776 var8 = 1;
3777 } else {
3778 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3779 var8 = 0;
3780 } else {
3781 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3782 }
3783 }
3784 if (unlikely(!var8)) {
3785 PRINT_ERROR("Runtime error: %s", "Assert failed");
3786 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8199);
3787 fatal_exit(1);
3788 }
3789 var11 = NEW_nit__AStarExpr(&type_nit__AStarExpr);
3790 {
3791 nit__parser_prod___AStarExpr___init_astarexpr(var11, var_pexprnode2, var_tstarnode3, var_pexprnode4); /* Direct call parser_prod#AStarExpr#init_astarexpr on <var11:AStarExpr>*/
3792 }
3793 var_pexprnode1 = var11;
3794 var_node_list = var_pexprnode1;
3795 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction314> */
3796 {
3797 var13 = nit___nit__Parser___go_to(var_p, var12);
3798 }
3799 {
3800 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3801 }
3802 RET_LABEL:;
3803 }
3804 /* method parser#ReduceAction315#action for (self: ReduceAction315, Parser) */
3805 void nit__parser___nit__parser__ReduceAction315___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3806 val* var_p /* var p: Parser */;
3807 val* var_node_list /* var node_list: nullable Object */;
3808 val* var /* : nullable Object */;
3809 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3810 val* var1 /* : nullable Object */;
3811 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3812 val* var2 /* : nullable Object */;
3813 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3814 val* var3 /* : nullable Object */;
3815 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3816 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3817 short int var4 /* : Bool */;
3818 int cltype;
3819 int idtype;
3820 val* var_tslashnode3 /* var tslashnode3: nullable Object */;
3821 short int var5 /* : Bool */;
3822 int cltype6;
3823 int idtype7;
3824 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3825 short int var8 /* : Bool */;
3826 int cltype9;
3827 int idtype10;
3828 val* var11 /* : ASlashExpr */;
3829 val* var_pexprnode1 /* var pexprnode1: nullable ASlashExpr */;
3830 long var12 /* : Int */;
3831 long var13 /* : Int */;
3832 var_p = p0;
3833 var_node_list = ((val*)NULL);
3834 {
3835 var = nit___nit__Parser___pop(var_p);
3836 }
3837 var_nodearraylist4 = var;
3838 {
3839 var1 = nit___nit__Parser___pop(var_p);
3840 }
3841 var_nodearraylist3 = var1;
3842 {
3843 var2 = nit___nit__Parser___pop(var_p);
3844 }
3845 var_nodearraylist2 = var2;
3846 {
3847 var3 = nit___nit__Parser___pop(var_p);
3848 }
3849 var_nodearraylist1 = var3;
3850 var_pexprnode2 = var_nodearraylist1;
3851 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3852 cltype = type_nullable__nit__AExpr.color;
3853 idtype = type_nullable__nit__AExpr.id;
3854 if(var_pexprnode2 == NULL) {
3855 var4 = 1;
3856 } else {
3857 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3858 var4 = 0;
3859 } else {
3860 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3861 }
3862 }
3863 if (unlikely(!var4)) {
3864 PRINT_ERROR("Runtime error: %s", "Assert failed");
3865 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8219);
3866 fatal_exit(1);
3867 }
3868 var_tslashnode3 = var_nodearraylist2;
3869 /* <var_tslashnode3:nullable Object> isa nullable TSlash */
3870 cltype6 = type_nullable__nit__TSlash.color;
3871 idtype7 = type_nullable__nit__TSlash.id;
3872 if(var_tslashnode3 == NULL) {
3873 var5 = 1;
3874 } else {
3875 if(cltype6 >= (((long)var_tslashnode3&3)?type_info[((long)var_tslashnode3&3)]:var_tslashnode3->type)->table_size) {
3876 var5 = 0;
3877 } else {
3878 var5 = (((long)var_tslashnode3&3)?type_info[((long)var_tslashnode3&3)]:var_tslashnode3->type)->type_table[cltype6] == idtype7;
3879 }
3880 }
3881 if (unlikely(!var5)) {
3882 PRINT_ERROR("Runtime error: %s", "Assert failed");
3883 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8221);
3884 fatal_exit(1);
3885 }
3886 var_pexprnode4 = var_nodearraylist4;
3887 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3888 cltype9 = type_nullable__nit__AExpr.color;
3889 idtype10 = type_nullable__nit__AExpr.id;
3890 if(var_pexprnode4 == NULL) {
3891 var8 = 1;
3892 } else {
3893 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
3894 var8 = 0;
3895 } else {
3896 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
3897 }
3898 }
3899 if (unlikely(!var8)) {
3900 PRINT_ERROR("Runtime error: %s", "Assert failed");
3901 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8223);
3902 fatal_exit(1);
3903 }
3904 var11 = NEW_nit__ASlashExpr(&type_nit__ASlashExpr);
3905 {
3906 nit__parser_prod___ASlashExpr___init_aslashexpr(var11, var_pexprnode2, var_tslashnode3, var_pexprnode4); /* Direct call parser_prod#ASlashExpr#init_aslashexpr on <var11:ASlashExpr>*/
3907 }
3908 var_pexprnode1 = var11;
3909 var_node_list = var_pexprnode1;
3910 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction315> */
3911 {
3912 var13 = nit___nit__Parser___go_to(var_p, var12);
3913 }
3914 {
3915 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3916 }
3917 RET_LABEL:;
3918 }
3919 /* method parser#ReduceAction316#action for (self: ReduceAction316, Parser) */
3920 void nit__parser___nit__parser__ReduceAction316___nit__parser_work__ReduceAction__action(val* self, val* p0) {
3921 val* var_p /* var p: Parser */;
3922 val* var_node_list /* var node_list: nullable Object */;
3923 val* var /* : nullable Object */;
3924 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3925 val* var1 /* : nullable Object */;
3926 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3927 val* var2 /* : nullable Object */;
3928 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3929 val* var3 /* : nullable Object */;
3930 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3931 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3932 short int var4 /* : Bool */;
3933 int cltype;
3934 int idtype;
3935 val* var_tpercentnode3 /* var tpercentnode3: nullable Object */;
3936 short int var5 /* : Bool */;
3937 int cltype6;
3938 int idtype7;
3939 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3940 short int var8 /* : Bool */;
3941 int cltype9;
3942 int idtype10;
3943 val* var11 /* : APercentExpr */;
3944 val* var_pexprnode1 /* var pexprnode1: nullable APercentExpr */;
3945 long var12 /* : Int */;
3946 long var13 /* : Int */;
3947 var_p = p0;
3948 var_node_list = ((val*)NULL);
3949 {
3950 var = nit___nit__Parser___pop(var_p);
3951 }
3952 var_nodearraylist4 = var;
3953 {
3954 var1 = nit___nit__Parser___pop(var_p);
3955 }
3956 var_nodearraylist3 = var1;
3957 {
3958 var2 = nit___nit__Parser___pop(var_p);
3959 }
3960 var_nodearraylist2 = var2;
3961 {
3962 var3 = nit___nit__Parser___pop(var_p);
3963 }
3964 var_nodearraylist1 = var3;
3965 var_pexprnode2 = var_nodearraylist1;
3966 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3967 cltype = type_nullable__nit__AExpr.color;
3968 idtype = type_nullable__nit__AExpr.id;
3969 if(var_pexprnode2 == NULL) {
3970 var4 = 1;
3971 } else {
3972 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
3973 var4 = 0;
3974 } else {
3975 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
3976 }
3977 }
3978 if (unlikely(!var4)) {
3979 PRINT_ERROR("Runtime error: %s", "Assert failed");
3980 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8243);
3981 fatal_exit(1);
3982 }
3983 var_tpercentnode3 = var_nodearraylist2;
3984 /* <var_tpercentnode3:nullable Object> isa nullable TPercent */
3985 cltype6 = type_nullable__nit__TPercent.color;
3986 idtype7 = type_nullable__nit__TPercent.id;
3987 if(var_tpercentnode3 == NULL) {
3988 var5 = 1;
3989 } else {
3990 if(cltype6 >= (((long)var_tpercentnode3&3)?type_info[((long)var_tpercentnode3&3)]:var_tpercentnode3->type)->table_size) {
3991 var5 = 0;
3992 } else {
3993 var5 = (((long)var_tpercentnode3&3)?type_info[((long)var_tpercentnode3&3)]:var_tpercentnode3->type)->type_table[cltype6] == idtype7;
3994 }
3995 }
3996 if (unlikely(!var5)) {
3997 PRINT_ERROR("Runtime error: %s", "Assert failed");
3998 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8245);
3999 fatal_exit(1);
4000 }
4001 var_pexprnode4 = var_nodearraylist4;
4002 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
4003 cltype9 = type_nullable__nit__AExpr.color;
4004 idtype10 = type_nullable__nit__AExpr.id;
4005 if(var_pexprnode4 == NULL) {
4006 var8 = 1;
4007 } else {
4008 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
4009 var8 = 0;
4010 } else {
4011 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
4012 }
4013 }
4014 if (unlikely(!var8)) {
4015 PRINT_ERROR("Runtime error: %s", "Assert failed");
4016 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8247);
4017 fatal_exit(1);
4018 }
4019 var11 = NEW_nit__APercentExpr(&type_nit__APercentExpr);
4020 {
4021 nit__parser_prod___APercentExpr___init_apercentexpr(var11, var_pexprnode2, var_tpercentnode3, var_pexprnode4); /* Direct call parser_prod#APercentExpr#init_apercentexpr on <var11:APercentExpr>*/
4022 }
4023 var_pexprnode1 = var11;
4024 var_node_list = var_pexprnode1;
4025 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction316> */
4026 {
4027 var13 = nit___nit__Parser___go_to(var_p, var12);
4028 }
4029 {
4030 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4031 }
4032 RET_LABEL:;
4033 }
4034 /* method parser#ReduceAction318#action for (self: ReduceAction318, Parser) */
4035 void nit__parser___nit__parser__ReduceAction318___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4036 val* var_p /* var p: Parser */;
4037 val* var_node_list /* var node_list: nullable Object */;
4038 val* var /* : nullable Object */;
4039 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4040 val* var1 /* : nullable Object */;
4041 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4042 val* var2 /* : nullable Object */;
4043 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4044 val* var3 /* : nullable Object */;
4045 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4046 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4047 short int var4 /* : Bool */;
4048 int cltype;
4049 int idtype;
4050 val* var_tstarstarnode3 /* var tstarstarnode3: nullable Object */;
4051 short int var5 /* : Bool */;
4052 int cltype6;
4053 int idtype7;
4054 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
4055 short int var8 /* : Bool */;
4056 int cltype9;
4057 int idtype10;
4058 val* var11 /* : AStarstarExpr */;
4059 val* var_pexprnode1 /* var pexprnode1: nullable AStarstarExpr */;
4060 long var12 /* : Int */;
4061 long var13 /* : Int */;
4062 var_p = p0;
4063 var_node_list = ((val*)NULL);
4064 {
4065 var = nit___nit__Parser___pop(var_p);
4066 }
4067 var_nodearraylist4 = var;
4068 {
4069 var1 = nit___nit__Parser___pop(var_p);
4070 }
4071 var_nodearraylist3 = var1;
4072 {
4073 var2 = nit___nit__Parser___pop(var_p);
4074 }
4075 var_nodearraylist2 = var2;
4076 {
4077 var3 = nit___nit__Parser___pop(var_p);
4078 }
4079 var_nodearraylist1 = var3;
4080 var_pexprnode2 = var_nodearraylist1;
4081 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4082 cltype = type_nullable__nit__AExpr.color;
4083 idtype = type_nullable__nit__AExpr.id;
4084 if(var_pexprnode2 == NULL) {
4085 var4 = 1;
4086 } else {
4087 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
4088 var4 = 0;
4089 } else {
4090 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
4091 }
4092 }
4093 if (unlikely(!var4)) {
4094 PRINT_ERROR("Runtime error: %s", "Assert failed");
4095 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8267);
4096 fatal_exit(1);
4097 }
4098 var_tstarstarnode3 = var_nodearraylist2;
4099 /* <var_tstarstarnode3:nullable Object> isa nullable TStarstar */
4100 cltype6 = type_nullable__nit__TStarstar.color;
4101 idtype7 = type_nullable__nit__TStarstar.id;
4102 if(var_tstarstarnode3 == NULL) {
4103 var5 = 1;
4104 } else {
4105 if(cltype6 >= (((long)var_tstarstarnode3&3)?type_info[((long)var_tstarstarnode3&3)]:var_tstarstarnode3->type)->table_size) {
4106 var5 = 0;
4107 } else {
4108 var5 = (((long)var_tstarstarnode3&3)?type_info[((long)var_tstarstarnode3&3)]:var_tstarstarnode3->type)->type_table[cltype6] == idtype7;
4109 }
4110 }
4111 if (unlikely(!var5)) {
4112 PRINT_ERROR("Runtime error: %s", "Assert failed");
4113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8269);
4114 fatal_exit(1);
4115 }
4116 var_pexprnode4 = var_nodearraylist4;
4117 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
4118 cltype9 = type_nullable__nit__AExpr.color;
4119 idtype10 = type_nullable__nit__AExpr.id;
4120 if(var_pexprnode4 == NULL) {
4121 var8 = 1;
4122 } else {
4123 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
4124 var8 = 0;
4125 } else {
4126 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
4127 }
4128 }
4129 if (unlikely(!var8)) {
4130 PRINT_ERROR("Runtime error: %s", "Assert failed");
4131 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8271);
4132 fatal_exit(1);
4133 }
4134 var11 = NEW_nit__AStarstarExpr(&type_nit__AStarstarExpr);
4135 {
4136 nit__parser_prod___AStarstarExpr___init_astarstarexpr(var11, var_pexprnode2, var_tstarstarnode3, var_pexprnode4); /* Direct call parser_prod#AStarstarExpr#init_astarstarexpr on <var11:AStarstarExpr>*/
4137 }
4138 var_pexprnode1 = var11;
4139 var_node_list = var_pexprnode1;
4140 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction318> */
4141 {
4142 var13 = nit___nit__Parser___go_to(var_p, var12);
4143 }
4144 {
4145 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4146 }
4147 RET_LABEL:;
4148 }
4149 /* method parser#ReduceAction320#action for (self: ReduceAction320, Parser) */
4150 void nit__parser___nit__parser__ReduceAction320___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4151 val* var_p /* var p: Parser */;
4152 val* var_node_list /* var node_list: nullable Object */;
4153 val* var /* : nullable Object */;
4154 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4155 val* var1 /* : nullable Object */;
4156 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4157 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
4158 short int var2 /* : Bool */;
4159 int cltype;
4160 int idtype;
4161 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4162 short int var3 /* : Bool */;
4163 int cltype4;
4164 int idtype5;
4165 val* var6 /* : AUminusExpr */;
4166 val* var_pexprnode1 /* var pexprnode1: nullable AUminusExpr */;
4167 long var7 /* : Int */;
4168 long var8 /* : Int */;
4169 var_p = p0;
4170 var_node_list = ((val*)NULL);
4171 {
4172 var = nit___nit__Parser___pop(var_p);
4173 }
4174 var_nodearraylist2 = var;
4175 {
4176 var1 = nit___nit__Parser___pop(var_p);
4177 }
4178 var_nodearraylist1 = var1;
4179 var_tminusnode2 = var_nodearraylist1;
4180 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
4181 cltype = type_nullable__nit__TMinus.color;
4182 idtype = type_nullable__nit__TMinus.id;
4183 if(var_tminusnode2 == NULL) {
4184 var2 = 1;
4185 } else {
4186 if(cltype >= (((long)var_tminusnode2&3)?type_info[((long)var_tminusnode2&3)]:var_tminusnode2->type)->table_size) {
4187 var2 = 0;
4188 } else {
4189 var2 = (((long)var_tminusnode2&3)?type_info[((long)var_tminusnode2&3)]:var_tminusnode2->type)->type_table[cltype] == idtype;
4190 }
4191 }
4192 if (unlikely(!var2)) {
4193 PRINT_ERROR("Runtime error: %s", "Assert failed");
4194 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8289);
4195 fatal_exit(1);
4196 }
4197 var_pexprnode3 = var_nodearraylist2;
4198 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4199 cltype4 = type_nullable__nit__AExpr.color;
4200 idtype5 = type_nullable__nit__AExpr.id;
4201 if(var_pexprnode3 == NULL) {
4202 var3 = 1;
4203 } else {
4204 if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4205 var3 = 0;
4206 } else {
4207 var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5;
4208 }
4209 }
4210 if (unlikely(!var3)) {
4211 PRINT_ERROR("Runtime error: %s", "Assert failed");
4212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8291);
4213 fatal_exit(1);
4214 }
4215 var6 = NEW_nit__AUminusExpr(&type_nit__AUminusExpr);
4216 {
4217 nit__parser_prod___AUminusExpr___init_auminusexpr(var6, var_tminusnode2, var_pexprnode3); /* Direct call parser_prod#AUminusExpr#init_auminusexpr on <var6:AUminusExpr>*/
4218 }
4219 var_pexprnode1 = var6;
4220 var_node_list = var_pexprnode1;
4221 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction320> */
4222 {
4223 var8 = nit___nit__Parser___go_to(var_p, var7);
4224 }
4225 {
4226 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4227 }
4228 RET_LABEL:;
4229 }
4230 /* method parser#ReduceAction321#action for (self: ReduceAction321, Parser) */
4231 void nit__parser___nit__parser__ReduceAction321___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4232 val* var_p /* var p: Parser */;
4233 val* var_node_list /* var node_list: nullable Object */;
4234 val* var /* : nullable Object */;
4235 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4236 val* var1 /* : nullable Object */;
4237 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4238 val* var_tplusnode2 /* var tplusnode2: nullable Object */;
4239 short int var2 /* : Bool */;
4240 int cltype;
4241 int idtype;
4242 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4243 short int var3 /* : Bool */;
4244 int cltype4;
4245 int idtype5;
4246 val* var6 /* : AUplusExpr */;
4247 val* var_pexprnode1 /* var pexprnode1: nullable AUplusExpr */;
4248 long var7 /* : Int */;
4249 long var8 /* : Int */;
4250 var_p = p0;
4251 var_node_list = ((val*)NULL);
4252 {
4253 var = nit___nit__Parser___pop(var_p);
4254 }
4255 var_nodearraylist2 = var;
4256 {
4257 var1 = nit___nit__Parser___pop(var_p);
4258 }
4259 var_nodearraylist1 = var1;
4260 var_tplusnode2 = var_nodearraylist1;
4261 /* <var_tplusnode2:nullable Object> isa nullable TPlus */
4262 cltype = type_nullable__nit__TPlus.color;
4263 idtype = type_nullable__nit__TPlus.id;
4264 if(var_tplusnode2 == NULL) {
4265 var2 = 1;
4266 } else {
4267 if(cltype >= (((long)var_tplusnode2&3)?type_info[((long)var_tplusnode2&3)]:var_tplusnode2->type)->table_size) {
4268 var2 = 0;
4269 } else {
4270 var2 = (((long)var_tplusnode2&3)?type_info[((long)var_tplusnode2&3)]:var_tplusnode2->type)->type_table[cltype] == idtype;
4271 }
4272 }
4273 if (unlikely(!var2)) {
4274 PRINT_ERROR("Runtime error: %s", "Assert failed");
4275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8308);
4276 fatal_exit(1);
4277 }
4278 var_pexprnode3 = var_nodearraylist2;
4279 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4280 cltype4 = type_nullable__nit__AExpr.color;
4281 idtype5 = type_nullable__nit__AExpr.id;
4282 if(var_pexprnode3 == NULL) {
4283 var3 = 1;
4284 } else {
4285 if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4286 var3 = 0;
4287 } else {
4288 var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5;
4289 }
4290 }
4291 if (unlikely(!var3)) {
4292 PRINT_ERROR("Runtime error: %s", "Assert failed");
4293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8310);
4294 fatal_exit(1);
4295 }
4296 var6 = NEW_nit__AUplusExpr(&type_nit__AUplusExpr);
4297 {
4298 nit__parser_prod___AUplusExpr___init_auplusexpr(var6, var_tplusnode2, var_pexprnode3); /* Direct call parser_prod#AUplusExpr#init_auplusexpr on <var6:AUplusExpr>*/
4299 }
4300 var_pexprnode1 = var6;
4301 var_node_list = var_pexprnode1;
4302 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction321> */
4303 {
4304 var8 = nit___nit__Parser___go_to(var_p, var7);
4305 }
4306 {
4307 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4308 }
4309 RET_LABEL:;
4310 }
4311 /* method parser#ReduceAction322#action for (self: ReduceAction322, Parser) */
4312 void nit__parser___nit__parser__ReduceAction322___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4313 val* var_p /* var p: Parser */;
4314 val* var_node_list /* var node_list: nullable Object */;
4315 val* var /* : nullable Object */;
4316 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4317 val* var1 /* : nullable Object */;
4318 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4319 val* var_ttildenode2 /* var ttildenode2: nullable Object */;
4320 short int var2 /* : Bool */;
4321 int cltype;
4322 int idtype;
4323 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4324 short int var3 /* : Bool */;
4325 int cltype4;
4326 int idtype5;
4327 val* var6 /* : AUtildeExpr */;
4328 val* var_pexprnode1 /* var pexprnode1: nullable AUtildeExpr */;
4329 long var7 /* : Int */;
4330 long var8 /* : Int */;
4331 var_p = p0;
4332 var_node_list = ((val*)NULL);
4333 {
4334 var = nit___nit__Parser___pop(var_p);
4335 }
4336 var_nodearraylist2 = var;
4337 {
4338 var1 = nit___nit__Parser___pop(var_p);
4339 }
4340 var_nodearraylist1 = var1;
4341 var_ttildenode2 = var_nodearraylist1;
4342 /* <var_ttildenode2:nullable Object> isa nullable TTilde */
4343 cltype = type_nullable__nit__TTilde.color;
4344 idtype = type_nullable__nit__TTilde.id;
4345 if(var_ttildenode2 == NULL) {
4346 var2 = 1;
4347 } else {
4348 if(cltype >= (((long)var_ttildenode2&3)?type_info[((long)var_ttildenode2&3)]:var_ttildenode2->type)->table_size) {
4349 var2 = 0;
4350 } else {
4351 var2 = (((long)var_ttildenode2&3)?type_info[((long)var_ttildenode2&3)]:var_ttildenode2->type)->type_table[cltype] == idtype;
4352 }
4353 }
4354 if (unlikely(!var2)) {
4355 PRINT_ERROR("Runtime error: %s", "Assert failed");
4356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8327);
4357 fatal_exit(1);
4358 }
4359 var_pexprnode3 = var_nodearraylist2;
4360 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4361 cltype4 = type_nullable__nit__AExpr.color;
4362 idtype5 = type_nullable__nit__AExpr.id;
4363 if(var_pexprnode3 == NULL) {
4364 var3 = 1;
4365 } else {
4366 if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4367 var3 = 0;
4368 } else {
4369 var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5;
4370 }
4371 }
4372 if (unlikely(!var3)) {
4373 PRINT_ERROR("Runtime error: %s", "Assert failed");
4374 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8329);
4375 fatal_exit(1);
4376 }
4377 var6 = NEW_nit__AUtildeExpr(&type_nit__AUtildeExpr);
4378 {
4379 nit__parser_prod___AUtildeExpr___init_autildeexpr(var6, var_ttildenode2, var_pexprnode3); /* Direct call parser_prod#AUtildeExpr#init_autildeexpr on <var6:AUtildeExpr>*/
4380 }
4381 var_pexprnode1 = var6;
4382 var_node_list = var_pexprnode1;
4383 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction322> */
4384 {
4385 var8 = nit___nit__Parser___go_to(var_p, var7);
4386 }
4387 {
4388 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4389 }
4390 RET_LABEL:;
4391 }
4392 /* method parser#ReduceAction323#action for (self: ReduceAction323, Parser) */
4393 void nit__parser___nit__parser__ReduceAction323___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4394 val* var_p /* var p: Parser */;
4395 val* var_node_list /* var node_list: nullable Object */;
4396 val* var /* : nullable Object */;
4397 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4398 val* var1 /* : nullable Object */;
4399 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4400 val* var2 /* : nullable Object */;
4401 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4402 val* var_tkwoncenode2 /* var tkwoncenode2: nullable Object */;
4403 short int var3 /* : Bool */;
4404 int cltype;
4405 int idtype;
4406 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4407 short int var4 /* : Bool */;
4408 int cltype5;
4409 int idtype6;
4410 val* var7 /* : AOnceExpr */;
4411 val* var_pexprnode1 /* var pexprnode1: nullable AOnceExpr */;
4412 long var8 /* : Int */;
4413 long var9 /* : Int */;
4414 var_p = p0;
4415 var_node_list = ((val*)NULL);
4416 {
4417 var = nit___nit__Parser___pop(var_p);
4418 }
4419 var_nodearraylist3 = var;
4420 {
4421 var1 = nit___nit__Parser___pop(var_p);
4422 }
4423 var_nodearraylist2 = var1;
4424 {
4425 var2 = nit___nit__Parser___pop(var_p);
4426 }
4427 var_nodearraylist1 = var2;
4428 var_tkwoncenode2 = var_nodearraylist1;
4429 /* <var_tkwoncenode2:nullable Object> isa nullable TKwonce */
4430 cltype = type_nullable__nit__TKwonce.color;
4431 idtype = type_nullable__nit__TKwonce.id;
4432 if(var_tkwoncenode2 == NULL) {
4433 var3 = 1;
4434 } else {
4435 if(cltype >= (((long)var_tkwoncenode2&3)?type_info[((long)var_tkwoncenode2&3)]:var_tkwoncenode2->type)->table_size) {
4436 var3 = 0;
4437 } else {
4438 var3 = (((long)var_tkwoncenode2&3)?type_info[((long)var_tkwoncenode2&3)]:var_tkwoncenode2->type)->type_table[cltype] == idtype;
4439 }
4440 }
4441 if (unlikely(!var3)) {
4442 PRINT_ERROR("Runtime error: %s", "Assert failed");
4443 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8347);
4444 fatal_exit(1);
4445 }
4446 var_pexprnode3 = var_nodearraylist3;
4447 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4448 cltype5 = type_nullable__nit__AExpr.color;
4449 idtype6 = type_nullable__nit__AExpr.id;
4450 if(var_pexprnode3 == NULL) {
4451 var4 = 1;
4452 } else {
4453 if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4454 var4 = 0;
4455 } else {
4456 var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6;
4457 }
4458 }
4459 if (unlikely(!var4)) {
4460 PRINT_ERROR("Runtime error: %s", "Assert failed");
4461 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8349);
4462 fatal_exit(1);
4463 }
4464 var7 = NEW_nit__AOnceExpr(&type_nit__AOnceExpr);
4465 {
4466 nit__parser_prod___AOnceExpr___init_aonceexpr(var7, var_tkwoncenode2, var_pexprnode3); /* Direct call parser_prod#AOnceExpr#init_aonceexpr on <var7:AOnceExpr>*/
4467 }
4468 var_pexprnode1 = var7;
4469 var_node_list = var_pexprnode1;
4470 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction323> */
4471 {
4472 var9 = nit___nit__Parser___go_to(var_p, var8);
4473 }
4474 {
4475 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4476 }
4477 RET_LABEL:;
4478 }
4479 /* method parser#ReduceAction325#action for (self: ReduceAction325, Parser) */
4480 void nit__parser___nit__parser__ReduceAction325___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4481 val* var_p /* var p: Parser */;
4482 val* var_node_list /* var node_list: nullable Object */;
4483 val* var /* : nullable Object */;
4484 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4485 val* var1 /* : nullable Object */;
4486 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4487 val* var2 /* : nullable Object */;
4488 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4489 val* var3 /* : nullable Object */;
4490 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4491 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
4492 short int var4 /* : Bool */;
4493 int cltype;
4494 int idtype;
4495 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4496 short int var5 /* : Bool */;
4497 int cltype6;
4498 int idtype7;
4499 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
4500 short int var8 /* : Bool */;
4501 int cltype9;
4502 int idtype10;
4503 val* var11 /* : ANewExpr */;
4504 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
4505 long var12 /* : Int */;
4506 long var13 /* : Int */;
4507 var_p = p0;
4508 var_node_list = ((val*)NULL);
4509 {
4510 var = nit___nit__Parser___pop(var_p);
4511 }
4512 var_nodearraylist4 = var;
4513 {
4514 var1 = nit___nit__Parser___pop(var_p);
4515 }
4516 var_nodearraylist3 = var1;
4517 {
4518 var2 = nit___nit__Parser___pop(var_p);
4519 }
4520 var_nodearraylist2 = var2;
4521 {
4522 var3 = nit___nit__Parser___pop(var_p);
4523 }
4524 var_nodearraylist1 = var3;
4525 var_tkwnewnode2 = var_nodearraylist1;
4526 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
4527 cltype = type_nullable__nit__TKwnew.color;
4528 idtype = type_nullable__nit__TKwnew.id;
4529 if(var_tkwnewnode2 == NULL) {
4530 var4 = 1;
4531 } else {
4532 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
4533 var4 = 0;
4534 } else {
4535 var4 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
4536 }
4537 }
4538 if (unlikely(!var4)) {
4539 PRINT_ERROR("Runtime error: %s", "Assert failed");
4540 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8368);
4541 fatal_exit(1);
4542 }
4543 var_ptypenode3 = var_nodearraylist3;
4544 /* <var_ptypenode3:nullable Object> isa nullable AType */
4545 cltype6 = type_nullable__nit__AType.color;
4546 idtype7 = type_nullable__nit__AType.id;
4547 if(var_ptypenode3 == NULL) {
4548 var5 = 1;
4549 } else {
4550 if(cltype6 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
4551 var5 = 0;
4552 } else {
4553 var5 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype6] == idtype7;
4554 }
4555 }
4556 if (unlikely(!var5)) {
4557 PRINT_ERROR("Runtime error: %s", "Assert failed");
4558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8370);
4559 fatal_exit(1);
4560 }
4561 var_pexprsnode5 = var_nodearraylist4;
4562 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
4563 cltype9 = type_nullable__nit__AExprs.color;
4564 idtype10 = type_nullable__nit__AExprs.id;
4565 if(var_pexprsnode5 == NULL) {
4566 var8 = 1;
4567 } else {
4568 if(cltype9 >= (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->table_size) {
4569 var8 = 0;
4570 } else {
4571 var8 = (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->type_table[cltype9] == idtype10;
4572 }
4573 }
4574 if (unlikely(!var8)) {
4575 PRINT_ERROR("Runtime error: %s", "Assert failed");
4576 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8372);
4577 fatal_exit(1);
4578 }
4579 var11 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
4580 {
4581 nit__parser_prod___ANewExpr___init_anewexpr(var11, var_tkwnewnode2, var_ptypenode3, ((val*)NULL), var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var11:ANewExpr>*/
4582 }
4583 var_pexprnode1 = var11;
4584 var_node_list = var_pexprnode1;
4585 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction325> */
4586 {
4587 var13 = nit___nit__Parser___go_to(var_p, var12);
4588 }
4589 {
4590 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4591 }
4592 RET_LABEL:;
4593 }
4594 /* method parser#ReduceAction326#action for (self: ReduceAction326, Parser) */
4595 void nit__parser___nit__parser__ReduceAction326___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4596 val* var_p /* var p: Parser */;
4597 val* var_node_list /* var node_list: nullable Object */;
4598 val* var /* : nullable Object */;
4599 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4600 val* var1 /* : nullable Object */;
4601 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4602 val* var2 /* : nullable Object */;
4603 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4604 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
4605 short int var3 /* : Bool */;
4606 int cltype;
4607 int idtype;
4608 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4609 short int var4 /* : Bool */;
4610 int cltype5;
4611 int idtype6;
4612 val* var7 /* : Array[Object] */;
4613 val* var_listnode6 /* var listnode6: Array[Object] */;
4614 val* var8 /* : AListExprs */;
4615 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
4616 val* var9 /* : ANewExpr */;
4617 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
4618 long var10 /* : Int */;
4619 long var11 /* : Int */;
4620 var_p = p0;
4621 var_node_list = ((val*)NULL);
4622 {
4623 var = nit___nit__Parser___pop(var_p);
4624 }
4625 var_nodearraylist3 = var;
4626 {
4627 var1 = nit___nit__Parser___pop(var_p);
4628 }
4629 var_nodearraylist2 = var1;
4630 {
4631 var2 = nit___nit__Parser___pop(var_p);
4632 }
4633 var_nodearraylist1 = var2;
4634 var_tkwnewnode2 = var_nodearraylist1;
4635 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
4636 cltype = type_nullable__nit__TKwnew.color;
4637 idtype = type_nullable__nit__TKwnew.id;
4638 if(var_tkwnewnode2 == NULL) {
4639 var3 = 1;
4640 } else {
4641 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
4642 var3 = 0;
4643 } else {
4644 var3 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
4645 }
4646 }
4647 if (unlikely(!var3)) {
4648 PRINT_ERROR("Runtime error: %s", "Assert failed");
4649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8392);
4650 fatal_exit(1);
4651 }
4652 var_ptypenode3 = var_nodearraylist3;
4653 /* <var_ptypenode3:nullable Object> isa nullable AType */
4654 cltype5 = type_nullable__nit__AType.color;
4655 idtype6 = type_nullable__nit__AType.id;
4656 if(var_ptypenode3 == NULL) {
4657 var4 = 1;
4658 } else {
4659 if(cltype5 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
4660 var4 = 0;
4661 } else {
4662 var4 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype5] == idtype6;
4663 }
4664 }
4665 if (unlikely(!var4)) {
4666 PRINT_ERROR("Runtime error: %s", "Assert failed");
4667 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8394);
4668 fatal_exit(1);
4669 }
4670 var7 = NEW_standard__Array(&type_standard__Array__standard__Object);
4671 {
4672 standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on <var7:Array[Object]>*/
4673 }
4674 var_listnode6 = var7;
4675 var8 = NEW_nit__AListExprs(&type_nit__AListExprs);
4676 {
4677 nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
4678 }
4679 var_pexprsnode5 = var8;
4680 var9 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
4681 {
4682 nit__parser_prod___ANewExpr___init_anewexpr(var9, var_tkwnewnode2, var_ptypenode3, ((val*)NULL), var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var9:ANewExpr>*/
4683 }
4684 var_pexprnode1 = var9;
4685 var_node_list = var_pexprnode1;
4686 var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction326> */
4687 {
4688 var11 = nit___nit__Parser___go_to(var_p, var10);
4689 }
4690 {
4691 nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4692 }
4693 RET_LABEL:;
4694 }
4695 /* method parser#ReduceAction327#action for (self: ReduceAction327, Parser) */
4696 void nit__parser___nit__parser__ReduceAction327___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4697 val* var_p /* var p: Parser */;
4698 val* var_node_list /* var node_list: nullable Object */;
4699 val* var /* : nullable Object */;
4700 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4701 val* var1 /* : nullable Object */;
4702 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4703 val* var2 /* : nullable Object */;
4704 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4705 val* var3 /* : nullable Object */;
4706 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4707 val* var4 /* : nullable Object */;
4708 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4709 val* var5 /* : nullable Object */;
4710 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4711 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
4712 short int var6 /* : Bool */;
4713 int cltype;
4714 int idtype;
4715 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4716 short int var7 /* : Bool */;
4717 int cltype8;
4718 int idtype9;
4719 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
4720 short int var10 /* : Bool */;
4721 int cltype11;
4722 int idtype12;
4723 val* var13 /* : AIssetAttrExpr */;
4724 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
4725 long var14 /* : Int */;
4726 long var15 /* : Int */;
4727 var_p = p0;
4728 var_node_list = ((val*)NULL);
4729 {
4730 var = nit___nit__Parser___pop(var_p);
4731 }
4732 var_nodearraylist6 = var;
4733 {
4734 var1 = nit___nit__Parser___pop(var_p);
4735 }
4736 var_nodearraylist5 = var1;
4737 {
4738 var2 = nit___nit__Parser___pop(var_p);
4739 }
4740 var_nodearraylist4 = var2;
4741 {
4742 var3 = nit___nit__Parser___pop(var_p);
4743 }
4744 var_nodearraylist3 = var3;
4745 {
4746 var4 = nit___nit__Parser___pop(var_p);
4747 }
4748 var_nodearraylist2 = var4;
4749 {
4750 var5 = nit___nit__Parser___pop(var_p);
4751 }
4752 var_nodearraylist1 = var5;
4753 var_tkwissetnode2 = var_nodearraylist1;
4754 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
4755 cltype = type_nullable__nit__TKwisset.color;
4756 idtype = type_nullable__nit__TKwisset.id;
4757 if(var_tkwissetnode2 == NULL) {
4758 var6 = 1;
4759 } else {
4760 if(cltype >= (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->table_size) {
4761 var6 = 0;
4762 } else {
4763 var6 = (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->type_table[cltype] == idtype;
4764 }
4765 }
4766 if (unlikely(!var6)) {
4767 PRINT_ERROR("Runtime error: %s", "Assert failed");
4768 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8421);
4769 fatal_exit(1);
4770 }
4771 var_pexprnode3 = var_nodearraylist2;
4772 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4773 cltype8 = type_nullable__nit__AExpr.color;
4774 idtype9 = type_nullable__nit__AExpr.id;
4775 if(var_pexprnode3 == NULL) {
4776 var7 = 1;
4777 } else {
4778 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4779 var7 = 0;
4780 } else {
4781 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
4782 }
4783 }
4784 if (unlikely(!var7)) {
4785 PRINT_ERROR("Runtime error: %s", "Assert failed");
4786 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8423);
4787 fatal_exit(1);
4788 }
4789 var_tattridnode4 = var_nodearraylist6;
4790 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
4791 cltype11 = type_nullable__nit__TAttrid.color;
4792 idtype12 = type_nullable__nit__TAttrid.id;
4793 if(var_tattridnode4 == NULL) {
4794 var10 = 1;
4795 } else {
4796 if(cltype11 >= (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->table_size) {
4797 var10 = 0;
4798 } else {
4799 var10 = (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->type_table[cltype11] == idtype12;
4800 }
4801 }
4802 if (unlikely(!var10)) {
4803 PRINT_ERROR("Runtime error: %s", "Assert failed");
4804 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8425);
4805 fatal_exit(1);
4806 }
4807 var13 = NEW_nit__AIssetAttrExpr(&type_nit__AIssetAttrExpr);
4808 {
4809 nit__parser_prod___AIssetAttrExpr___init_aissetattrexpr(var13, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var13:AIssetAttrExpr>*/
4810 }
4811 var_pexprnode1 = var13;
4812 var_node_list = var_pexprnode1;
4813 var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction327> */
4814 {
4815 var15 = nit___nit__Parser___go_to(var_p, var14);
4816 }
4817 {
4818 nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4819 }
4820 RET_LABEL:;
4821 }
4822 /* method parser#ReduceAction328#action for (self: ReduceAction328, Parser) */
4823 void nit__parser___nit__parser__ReduceAction328___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4824 val* var_p /* var p: Parser */;
4825 val* var_node_list /* var node_list: nullable Object */;
4826 val* var /* : nullable Object */;
4827 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4828 val* var1 /* : nullable Object */;
4829 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4830 val* var2 /* : nullable Object */;
4831 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4832 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
4833 short int var3 /* : Bool */;
4834 int cltype;
4835 int idtype;
4836 val* var4 /* : AImplicitSelfExpr */;
4837 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
4838 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
4839 short int var5 /* : Bool */;
4840 int cltype6;
4841 int idtype7;
4842 val* var8 /* : AIssetAttrExpr */;
4843 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
4844 long var9 /* : Int */;
4845 long var10 /* : Int */;
4846 var_p = p0;
4847 var_node_list = ((val*)NULL);
4848 {
4849 var = nit___nit__Parser___pop(var_p);
4850 }
4851 var_nodearraylist3 = var;
4852 {
4853 var1 = nit___nit__Parser___pop(var_p);
4854 }
4855 var_nodearraylist2 = var1;
4856 {
4857 var2 = nit___nit__Parser___pop(var_p);
4858 }
4859 var_nodearraylist1 = var2;
4860 var_tkwissetnode2 = var_nodearraylist1;
4861 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
4862 cltype = type_nullable__nit__TKwisset.color;
4863 idtype = type_nullable__nit__TKwisset.id;
4864 if(var_tkwissetnode2 == NULL) {
4865 var3 = 1;
4866 } else {
4867 if(cltype >= (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->table_size) {
4868 var3 = 0;
4869 } else {
4870 var3 = (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->type_table[cltype] == idtype;
4871 }
4872 }
4873 if (unlikely(!var3)) {
4874 PRINT_ERROR("Runtime error: %s", "Assert failed");
4875 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8444);
4876 fatal_exit(1);
4877 }
4878 var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
4879 {
4880 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/
4881 }
4882 var_pexprnode3 = var4;
4883 var_tattridnode4 = var_nodearraylist3;
4884 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
4885 cltype6 = type_nullable__nit__TAttrid.color;
4886 idtype7 = type_nullable__nit__TAttrid.id;
4887 if(var_tattridnode4 == NULL) {
4888 var5 = 1;
4889 } else {
4890 if(cltype6 >= (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->table_size) {
4891 var5 = 0;
4892 } else {
4893 var5 = (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->type_table[cltype6] == idtype7;
4894 }
4895 }
4896 if (unlikely(!var5)) {
4897 PRINT_ERROR("Runtime error: %s", "Assert failed");
4898 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8447);
4899 fatal_exit(1);
4900 }
4901 var8 = NEW_nit__AIssetAttrExpr(&type_nit__AIssetAttrExpr);
4902 {
4903 nit__parser_prod___AIssetAttrExpr___init_aissetattrexpr(var8, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var8:AIssetAttrExpr>*/
4904 }
4905 var_pexprnode1 = var8;
4906 var_node_list = var_pexprnode1;
4907 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction328> */
4908 {
4909 var10 = nit___nit__Parser___go_to(var_p, var9);
4910 }
4911 {
4912 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4913 }
4914 RET_LABEL:;
4915 }
4916 /* method parser#ReduceAction330#action for (self: ReduceAction330, Parser) */
4917 void nit__parser___nit__parser__ReduceAction330___nit__parser_work__ReduceAction__action(val* self, val* p0) {
4918 val* var_p /* var p: Parser */;
4919 val* var_node_list /* var node_list: nullable Object */;
4920 val* var /* : nullable Object */;
4921 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4922 val* var1 /* : nullable Object */;
4923 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4924 val* var2 /* : nullable Object */;
4925 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4926 val* var3 /* : nullable Object */;
4927 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4928 val* var4 /* : nullable Object */;
4929 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4930 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4931 short int var5 /* : Bool */;
4932 int cltype;
4933 int idtype;
4934 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4935 short int var6 /* : Bool */;
4936 int cltype7;
4937 int idtype8;
4938 val* var9 /* : AAttrExpr */;
4939 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4940 long var10 /* : Int */;
4941 long var11 /* : Int */;
4942 var_p = p0;
4943 var_node_list = ((val*)NULL);
4944 {
4945 var = nit___nit__Parser___pop(var_p);
4946 }
4947 var_nodearraylist5 = var;
4948 {
4949 var1 = nit___nit__Parser___pop(var_p);
4950 }
4951 var_nodearraylist4 = var1;
4952 {
4953 var2 = nit___nit__Parser___pop(var_p);
4954 }
4955 var_nodearraylist3 = var2;
4956 {
4957 var3 = nit___nit__Parser___pop(var_p);
4958 }
4959 var_nodearraylist2 = var3;
4960 {
4961 var4 = nit___nit__Parser___pop(var_p);
4962 }
4963 var_nodearraylist1 = var4;
4964 var_pexprnode2 = var_nodearraylist1;
4965 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4966 cltype = type_nullable__nit__AExpr.color;
4967 idtype = type_nullable__nit__AExpr.id;
4968 if(var_pexprnode2 == NULL) {
4969 var5 = 1;
4970 } else {
4971 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
4972 var5 = 0;
4973 } else {
4974 var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
4975 }
4976 }
4977 if (unlikely(!var5)) {
4978 PRINT_ERROR("Runtime error: %s", "Assert failed");
4979 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8468);
4980 fatal_exit(1);
4981 }
4982 var_tattridnode3 = var_nodearraylist5;
4983 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4984 cltype7 = type_nullable__nit__TAttrid.color;
4985 idtype8 = type_nullable__nit__TAttrid.id;
4986 if(var_tattridnode3 == NULL) {
4987 var6 = 1;
4988 } else {
4989 if(cltype7 >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) {
4990 var6 = 0;
4991 } else {
4992 var6 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype7] == idtype8;
4993 }
4994 }
4995 if (unlikely(!var6)) {
4996 PRINT_ERROR("Runtime error: %s", "Assert failed");
4997 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8470);
4998 fatal_exit(1);
4999 }
5000 var9 = NEW_nit__AAttrExpr(&type_nit__AAttrExpr);
5001 {
5002 nit__parser_prod___AAttrExpr___init_aattrexpr(var9, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var9:AAttrExpr>*/
5003 }
5004 var_pexprnode1 = var9;
5005 var_node_list = var_pexprnode1;
5006 var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction330> */
5007 {
5008 var11 = nit___nit__Parser___go_to(var_p, var10);
5009 }
5010 {
5011 nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5012 }
5013 RET_LABEL:;
5014 }
5015 /* method parser#ReduceAction331#action for (self: ReduceAction331, Parser) */
5016 void nit__parser___nit__parser__ReduceAction331___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5017 val* var_p /* var p: Parser */;
5018 val* var_node_list /* var node_list: nullable Object */;
5019 val* var /* : nullable Object */;
5020 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5021 val* var1 /* : nullable Object */;
5022 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5023 val* var2 /* : AImplicitSelfExpr */;
5024 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5025 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5026 short int var3 /* : Bool */;
5027 int cltype;
5028 int idtype;
5029 val* var4 /* : AAttrExpr */;
5030 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
5031 long var5 /* : Int */;
5032 long var6 /* : Int */;
5033 var_p = p0;
5034 var_node_list = ((val*)NULL);
5035 {
5036 var = nit___nit__Parser___pop(var_p);
5037 }
5038 var_nodearraylist2 = var;
5039 {
5040 var1 = nit___nit__Parser___pop(var_p);
5041 }
5042 var_nodearraylist1 = var1;
5043 var2 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
5044 {
5045 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var2); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var2:AImplicitSelfExpr>*/
5046 }
5047 var_pexprnode2 = var2;
5048 var_tattridnode3 = var_nodearraylist2;
5049 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5050 cltype = type_nullable__nit__TAttrid.color;
5051 idtype = type_nullable__nit__TAttrid.id;
5052 if(var_tattridnode3 == NULL) {
5053 var3 = 1;
5054 } else {
5055 if(cltype >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) {
5056 var3 = 0;
5057 } else {
5058 var3 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype] == idtype;
5059 }
5060 }
5061 if (unlikely(!var3)) {
5062 PRINT_ERROR("Runtime error: %s", "Assert failed");
5063 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8488);
5064 fatal_exit(1);
5065 }
5066 var4 = NEW_nit__AAttrExpr(&type_nit__AAttrExpr);
5067 {
5068 nit__parser_prod___AAttrExpr___init_aattrexpr(var4, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var4:AAttrExpr>*/
5069 }
5070 var_pexprnode1 = var4;
5071 var_node_list = var_pexprnode1;
5072 var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction331> */
5073 {
5074 var6 = nit___nit__Parser___go_to(var_p, var5);
5075 }
5076 {
5077 nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5078 }
5079 RET_LABEL:;
5080 }
5081 /* method parser#ReduceAction333#action for (self: ReduceAction333, Parser) */
5082 void nit__parser___nit__parser__ReduceAction333___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5083 val* var_p /* var p: Parser */;
5084 val* var_node_list /* var node_list: nullable Object */;
5085 val* var /* : nullable Object */;
5086 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5087 val* var1 /* : nullable Object */;
5088 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5089 val* var2 /* : nullable Object */;
5090 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5091 val* var3 /* : nullable Object */;
5092 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5093 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5094 short int var4 /* : Bool */;
5095 int cltype;
5096 int idtype;
5097 val* var_tidnode3 /* var tidnode3: nullable Object */;
5098 short int var5 /* : Bool */;
5099 int cltype6;
5100 int idtype7;
5101 val* var8 /* : Array[Object] */;
5102 val* var_listnode5 /* var listnode5: Array[Object] */;
5103 val* var9 /* : AListExprs */;
5104 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5105 val* var10 /* : ACallExpr */;
5106 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5107 long var11 /* : Int */;
5108 long var12 /* : Int */;
5109 var_p = p0;
5110 var_node_list = ((val*)NULL);
5111 {
5112 var = nit___nit__Parser___pop(var_p);
5113 }
5114 var_nodearraylist4 = var;
5115 {
5116 var1 = nit___nit__Parser___pop(var_p);
5117 }
5118 var_nodearraylist3 = var1;
5119 {
5120 var2 = nit___nit__Parser___pop(var_p);
5121 }
5122 var_nodearraylist2 = var2;
5123 {
5124 var3 = nit___nit__Parser___pop(var_p);
5125 }
5126 var_nodearraylist1 = var3;
5127 var_pexprnode2 = var_nodearraylist1;
5128 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5129 cltype = type_nullable__nit__AExpr.color;
5130 idtype = type_nullable__nit__AExpr.id;
5131 if(var_pexprnode2 == NULL) {
5132 var4 = 1;
5133 } else {
5134 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5135 var4 = 0;
5136 } else {
5137 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5138 }
5139 }
5140 if (unlikely(!var4)) {
5141 PRINT_ERROR("Runtime error: %s", "Assert failed");
5142 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8507);
5143 fatal_exit(1);
5144 }
5145 var_tidnode3 = var_nodearraylist4;
5146 /* <var_tidnode3:nullable Object> isa nullable TId */
5147 cltype6 = type_nullable__nit__TId.color;
5148 idtype7 = type_nullable__nit__TId.id;
5149 if(var_tidnode3 == NULL) {
5150 var5 = 1;
5151 } else {
5152 if(cltype6 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
5153 var5 = 0;
5154 } else {
5155 var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype6] == idtype7;
5156 }
5157 }
5158 if (unlikely(!var5)) {
5159 PRINT_ERROR("Runtime error: %s", "Assert failed");
5160 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8509);
5161 fatal_exit(1);
5162 }
5163 var8 = NEW_standard__Array(&type_standard__Array__standard__Object);
5164 {
5165 standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on <var8:Array[Object]>*/
5166 }
5167 var_listnode5 = var8;
5168 var9 = NEW_nit__AListExprs(&type_nit__AListExprs);
5169 {
5170 nit__parser_prod___AListExprs___init_alistexprs(var9, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var9:AListExprs>*/
5171 }
5172 var_pexprsnode4 = var9;
5173 var10 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
5174 {
5175 nit__parser_prod___ACallExpr___init_acallexpr(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var10:ACallExpr>*/
5176 }
5177 var_pexprnode1 = var10;
5178 var_node_list = var_pexprnode1;
5179 var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction333> */
5180 {
5181 var12 = nit___nit__Parser___go_to(var_p, var11);
5182 }
5183 {
5184 nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5185 }
5186 RET_LABEL:;
5187 }
5188 /* method parser#ReduceAction335#action for (self: ReduceAction335, Parser) */
5189 void nit__parser___nit__parser__ReduceAction335___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5190 val* var_p /* var p: Parser */;
5191 val* var_node_list /* var node_list: nullable Object */;
5192 val* var /* : nullable Object */;
5193 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5194 val* var1 /* : nullable Object */;
5195 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5196 val* var2 /* : nullable Object */;
5197 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5198 val* var3 /* : nullable Object */;
5199 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5200 val* var4 /* : nullable Object */;
5201 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5202 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5203 short int var5 /* : Bool */;
5204 int cltype;
5205 int idtype;
5206 val* var_tidnode3 /* var tidnode3: nullable Object */;
5207 short int var6 /* : Bool */;
5208 int cltype7;
5209 int idtype8;
5210 val* var9 /* : Array[Object] */;
5211 val* var_listnode5 /* var listnode5: Array[Object] */;
5212 val* var10 /* : AListExprs */;
5213 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5214 val* var11 /* : ACallExpr */;
5215 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5216 long var12 /* : Int */;
5217 long var13 /* : Int */;
5218 var_p = p0;
5219 var_node_list = ((val*)NULL);
5220 {
5221 var = nit___nit__Parser___pop(var_p);
5222 }
5223 var_nodearraylist5 = var;
5224 {
5225 var1 = nit___nit__Parser___pop(var_p);
5226 }
5227 var_nodearraylist4 = var1;
5228 {
5229 var2 = nit___nit__Parser___pop(var_p);
5230 }
5231 var_nodearraylist3 = var2;
5232 {
5233 var3 = nit___nit__Parser___pop(var_p);
5234 }
5235 var_nodearraylist2 = var3;
5236 {
5237 var4 = nit___nit__Parser___pop(var_p);
5238 }
5239 var_nodearraylist1 = var4;
5240 var_pexprnode2 = var_nodearraylist1;
5241 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5242 cltype = type_nullable__nit__AExpr.color;
5243 idtype = type_nullable__nit__AExpr.id;
5244 if(var_pexprnode2 == NULL) {
5245 var5 = 1;
5246 } else {
5247 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5248 var5 = 0;
5249 } else {
5250 var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5251 }
5252 }
5253 if (unlikely(!var5)) {
5254 PRINT_ERROR("Runtime error: %s", "Assert failed");
5255 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8534);
5256 fatal_exit(1);
5257 }
5258 var_tidnode3 = var_nodearraylist5;
5259 /* <var_tidnode3:nullable Object> isa nullable TId */
5260 cltype7 = type_nullable__nit__TId.color;
5261 idtype8 = type_nullable__nit__TId.id;
5262 if(var_tidnode3 == NULL) {
5263 var6 = 1;
5264 } else {
5265 if(cltype7 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
5266 var6 = 0;
5267 } else {
5268 var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype7] == idtype8;
5269 }
5270 }
5271 if (unlikely(!var6)) {
5272 PRINT_ERROR("Runtime error: %s", "Assert failed");
5273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8536);
5274 fatal_exit(1);
5275 }
5276 var9 = NEW_standard__Array(&type_standard__Array__standard__Object);
5277 {
5278 standard___standard__Array___standard__kernel__Object__init(var9); /* Direct call array#Array#init on <var9:Array[Object]>*/
5279 }
5280 var_listnode5 = var9;
5281 var10 = NEW_nit__AListExprs(&type_nit__AListExprs);
5282 {
5283 nit__parser_prod___AListExprs___init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var10:AListExprs>*/
5284 }
5285 var_pexprsnode4 = var10;
5286 var11 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
5287 {
5288 nit__parser_prod___ACallExpr___init_acallexpr(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
5289 }
5290 var_pexprnode1 = var11;
5291 var_node_list = var_pexprnode1;
5292 var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction335> */
5293 {
5294 var13 = nit___nit__Parser___go_to(var_p, var12);
5295 }
5296 {
5297 nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5298 }
5299 RET_LABEL:;
5300 }
5301 /* method parser#ReduceAction337#action for (self: ReduceAction337, Parser) */
5302 void nit__parser___nit__parser__ReduceAction337___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5303 val* var_p /* var p: Parser */;
5304 val* var_node_list /* var node_list: nullable Object */;
5305 val* var /* : nullable Object */;
5306 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5307 val* var1 /* : nullable Object */;
5308 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5309 val* var2 /* : nullable Object */;
5310 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5311 val* var3 /* : nullable Object */;
5312 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5313 val* var4 /* : nullable Object */;
5314 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5315 val* var5 /* : nullable Object */;
5316 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5317 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5318 short int var6 /* : Bool */;
5319 int cltype;
5320 int idtype;
5321 val* var_tidnode3 /* var tidnode3: nullable Object */;
5322 short int var7 /* : Bool */;
5323 int cltype8;
5324 int idtype9;
5325 val* var10 /* : Array[Object] */;
5326 val* var_listnode5 /* var listnode5: Array[Object] */;
5327 val* var11 /* : AListExprs */;
5328 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5329 val* var12 /* : ACallExpr */;
5330 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5331 long var13 /* : Int */;
5332 long var14 /* : Int */;
5333 var_p = p0;
5334 var_node_list = ((val*)NULL);
5335 {
5336 var = nit___nit__Parser___pop(var_p);
5337 }
5338 var_nodearraylist6 = var;
5339 {
5340 var1 = nit___nit__Parser___pop(var_p);
5341 }
5342 var_nodearraylist5 = var1;
5343 {
5344 var2 = nit___nit__Parser___pop(var_p);
5345 }
5346 var_nodearraylist4 = var2;
5347 {
5348 var3 = nit___nit__Parser___pop(var_p);
5349 }
5350 var_nodearraylist3 = var3;
5351 {
5352 var4 = nit___nit__Parser___pop(var_p);
5353 }
5354 var_nodearraylist2 = var4;
5355 {
5356 var5 = nit___nit__Parser___pop(var_p);
5357 }
5358 var_nodearraylist1 = var5;
5359 var_pexprnode2 = var_nodearraylist1;
5360 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5361 cltype = type_nullable__nit__AExpr.color;
5362 idtype = type_nullable__nit__AExpr.id;
5363 if(var_pexprnode2 == NULL) {
5364 var6 = 1;
5365 } else {
5366 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5367 var6 = 0;
5368 } else {
5369 var6 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5370 }
5371 }
5372 if (unlikely(!var6)) {
5373 PRINT_ERROR("Runtime error: %s", "Assert failed");
5374 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8562);
5375 fatal_exit(1);
5376 }
5377 var_tidnode3 = var_nodearraylist6;
5378 /* <var_tidnode3:nullable Object> isa nullable TId */
5379 cltype8 = type_nullable__nit__TId.color;
5380 idtype9 = type_nullable__nit__TId.id;
5381 if(var_tidnode3 == NULL) {
5382 var7 = 1;
5383 } else {
5384 if(cltype8 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
5385 var7 = 0;
5386 } else {
5387 var7 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype8] == idtype9;
5388 }
5389 }
5390 if (unlikely(!var7)) {
5391 PRINT_ERROR("Runtime error: %s", "Assert failed");
5392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8564);
5393 fatal_exit(1);
5394 }
5395 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
5396 {
5397 standard___standard__Array___standard__kernel__Object__init(var10); /* Direct call array#Array#init on <var10:Array[Object]>*/
5398 }
5399 var_listnode5 = var10;
5400 var11 = NEW_nit__AListExprs(&type_nit__AListExprs);
5401 {
5402 nit__parser_prod___AListExprs___init_alistexprs(var11, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var11:AListExprs>*/
5403 }
5404 var_pexprsnode4 = var11;
5405 var12 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
5406 {
5407 nit__parser_prod___ACallExpr___init_acallexpr(var12, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var12:ACallExpr>*/
5408 }
5409 var_pexprnode1 = var12;
5410 var_node_list = var_pexprnode1;
5411 var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction337> */
5412 {
5413 var14 = nit___nit__Parser___go_to(var_p, var13);
5414 }
5415 {
5416 nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5417 }
5418 RET_LABEL:;
5419 }
5420 /* method parser#ReduceAction341#action for (self: ReduceAction341, Parser) */
5421 void nit__parser___nit__parser__ReduceAction341___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5422 val* var_p /* var p: Parser */;
5423 val* var_node_list /* var node_list: nullable Object */;
5424 val* var /* : nullable Object */;
5425 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5426 val* var1 /* : AImplicitSelfExpr */;
5427 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5428 val* var_tidnode3 /* var tidnode3: nullable Object */;
5429 short int var2 /* : Bool */;
5430 int cltype;
5431 int idtype;
5432 val* var3 /* : Array[Object] */;
5433 val* var_listnode5 /* var listnode5: Array[Object] */;
5434 val* var4 /* : AListExprs */;
5435 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5436 val* var5 /* : ACallExpr */;
5437 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5438 long var6 /* : Int */;
5439 long var7 /* : Int */;
5440 var_p = p0;
5441 var_node_list = ((val*)NULL);
5442 {
5443 var = nit___nit__Parser___pop(var_p);
5444 }
5445 var_nodearraylist1 = var;
5446 var1 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
5447 {
5448 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var1); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/
5449 }
5450 var_pexprnode2 = var1;
5451 var_tidnode3 = var_nodearraylist1;
5452 /* <var_tidnode3:nullable Object> isa nullable TId */
5453 cltype = type_nullable__nit__TId.color;
5454 idtype = type_nullable__nit__TId.id;
5455 if(var_tidnode3 == NULL) {
5456 var2 = 1;
5457 } else {
5458 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
5459 var2 = 0;
5460 } else {
5461 var2 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
5462 }
5463 }
5464 if (unlikely(!var2)) {
5465 PRINT_ERROR("Runtime error: %s", "Assert failed");
5466 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8586);
5467 fatal_exit(1);
5468 }
5469 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
5470 {
5471 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
5472 }
5473 var_listnode5 = var3;
5474 var4 = NEW_nit__AListExprs(&type_nit__AListExprs);
5475 {
5476 nit__parser_prod___AListExprs___init_alistexprs(var4, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var4:AListExprs>*/
5477 }
5478 var_pexprsnode4 = var4;
5479 var5 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
5480 {
5481 nit__parser_prod___ACallExpr___init_acallexpr(var5, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var5:ACallExpr>*/
5482 }
5483 var_pexprnode1 = var5;
5484 var_node_list = var_pexprnode1;
5485 var6 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction341> */
5486 {
5487 var7 = nit___nit__Parser___go_to(var_p, var6);
5488 }
5489 {
5490 nit___nit__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5491 }
5492 RET_LABEL:;
5493 }
5494 /* method parser#ReduceAction343#action for (self: ReduceAction343, Parser) */
5495 void nit__parser___nit__parser__ReduceAction343___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5496 val* var_p /* var p: Parser */;
5497 val* var_node_list /* var node_list: nullable Object */;
5498 val* var /* : nullable Object */;
5499 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5500 val* var1 /* : nullable Object */;
5501 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5502 val* var2 /* : AImplicitSelfExpr */;
5503 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5504 val* var_tidnode3 /* var tidnode3: nullable Object */;
5505 short int var3 /* : Bool */;
5506 int cltype;
5507 int idtype;
5508 val* var4 /* : Array[Object] */;
5509 val* var_listnode5 /* var listnode5: Array[Object] */;
5510 val* var5 /* : AListExprs */;
5511 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5512 val* var6 /* : ACallExpr */;
5513 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5514 long var7 /* : Int */;
5515 long var8 /* : Int */;
5516 var_p = p0;
5517 var_node_list = ((val*)NULL);
5518 {
5519 var = nit___nit__Parser___pop(var_p);
5520 }
5521 var_nodearraylist2 = var;
5522 {
5523 var1 = nit___nit__Parser___pop(var_p);
5524 }
5525 var_nodearraylist1 = var1;
5526 var2 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
5527 {
5528 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var2); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var2:AImplicitSelfExpr>*/
5529 }
5530 var_pexprnode2 = var2;
5531 var_tidnode3 = var_nodearraylist2;
5532 /* <var_tidnode3:nullable Object> isa nullable TId */
5533 cltype = type_nullable__nit__TId.color;
5534 idtype = type_nullable__nit__TId.id;
5535 if(var_tidnode3 == NULL) {
5536 var3 = 1;
5537 } else {
5538 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
5539 var3 = 0;
5540 } else {
5541 var3 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
5542 }
5543 }
5544 if (unlikely(!var3)) {
5545 PRINT_ERROR("Runtime error: %s", "Assert failed");
5546 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8609);
5547 fatal_exit(1);
5548 }
5549 var4 = NEW_standard__Array(&type_standard__Array__standard__Object);
5550 {
5551 standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
5552 }
5553 var_listnode5 = var4;
5554 var5 = NEW_nit__AListExprs(&type_nit__AListExprs);
5555 {
5556 nit__parser_prod___AListExprs___init_alistexprs(var5, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var5:AListExprs>*/
5557 }
5558 var_pexprsnode4 = var5;
5559 var6 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
5560 {
5561 nit__parser_prod___ACallExpr___init_acallexpr(var6, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var6:ACallExpr>*/
5562 }
5563 var_pexprnode1 = var6;
5564 var_node_list = var_pexprnode1;
5565 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction343> */
5566 {
5567 var8 = nit___nit__Parser___go_to(var_p, var7);
5568 }
5569 {
5570 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5571 }
5572 RET_LABEL:;
5573 }
5574 /* method parser#ReduceAction345#action for (self: ReduceAction345, Parser) */
5575 void nit__parser___nit__parser__ReduceAction345___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5576 val* var_p /* var p: Parser */;
5577 val* var_node_list /* var node_list: nullable Object */;
5578 val* var /* : nullable Object */;
5579 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5580 val* var1 /* : nullable Object */;
5581 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5582 val* var2 /* : nullable Object */;
5583 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5584 val* var3 /* : AImplicitSelfExpr */;
5585 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5586 val* var_tidnode3 /* var tidnode3: nullable Object */;
5587 short int var4 /* : Bool */;
5588 int cltype;
5589 int idtype;
5590 val* var5 /* : Array[Object] */;
5591 val* var_listnode5 /* var listnode5: Array[Object] */;
5592 val* var6 /* : AListExprs */;
5593 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5594 val* var7 /* : ACallExpr */;
5595 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5596 long var8 /* : Int */;
5597 long var9 /* : Int */;
5598 var_p = p0;
5599 var_node_list = ((val*)NULL);
5600 {
5601 var = nit___nit__Parser___pop(var_p);
5602 }
5603 var_nodearraylist3 = var;
5604 {
5605 var1 = nit___nit__Parser___pop(var_p);
5606 }
5607 var_nodearraylist2 = var1;
5608 {
5609 var2 = nit___nit__Parser___pop(var_p);
5610 }
5611 var_nodearraylist1 = var2;
5612 var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
5613 {
5614 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var3); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/
5615 }
5616 var_pexprnode2 = var3;
5617 var_tidnode3 = var_nodearraylist3;
5618 /* <var_tidnode3:nullable Object> isa nullable TId */
5619 cltype = type_nullable__nit__TId.color;
5620 idtype = type_nullable__nit__TId.id;
5621 if(var_tidnode3 == NULL) {
5622 var4 = 1;
5623 } else {
5624 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
5625 var4 = 0;
5626 } else {
5627 var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
5628 }
5629 }
5630 if (unlikely(!var4)) {
5631 PRINT_ERROR("Runtime error: %s", "Assert failed");
5632 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8633);
5633 fatal_exit(1);
5634 }
5635 var5 = NEW_standard__Array(&type_standard__Array__standard__Object);
5636 {
5637 standard___standard__Array___standard__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Object]>*/
5638 }
5639 var_listnode5 = var5;
5640 var6 = NEW_nit__AListExprs(&type_nit__AListExprs);
5641 {
5642 nit__parser_prod___AListExprs___init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var6:AListExprs>*/
5643 }
5644 var_pexprsnode4 = var6;
5645 var7 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
5646 {
5647 nit__parser_prod___ACallExpr___init_acallexpr(var7, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var7:ACallExpr>*/
5648 }
5649 var_pexprnode1 = var7;
5650 var_node_list = var_pexprnode1;
5651 var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction345> */
5652 {
5653 var9 = nit___nit__Parser___go_to(var_p, var8);
5654 }
5655 {
5656 nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5657 }
5658 RET_LABEL:;
5659 }
5660 /* method parser#ReduceAction349#action for (self: ReduceAction349, Parser) */
5661 void nit__parser___nit__parser__ReduceAction349___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_nodearraylist2 /* var nodearraylist2: nullable Object */;
5666 val* var1 /* : nullable Object */;
5667 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5668 val* var_pqualifiednode2 /* var pqualifiednode2: nullable Object */;
5669 short int var2 /* : Bool */;
5670 int cltype;
5671 int idtype;
5672 val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */;
5673 short int var3 /* : Bool */;
5674 int cltype4;
5675 int idtype5;
5676 val* var6 /* : Array[Object] */;
5677 val* var_listnode5 /* var listnode5: Array[Object] */;
5678 val* var7 /* : AListExprs */;
5679 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5680 val* var8 /* : ASuperExpr */;
5681 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
5682 long var9 /* : Int */;
5683 long var10 /* : Int */;
5684 var_p = p0;
5685 var_node_list = ((val*)NULL);
5686 {
5687 var = nit___nit__Parser___pop(var_p);
5688 }
5689 var_nodearraylist2 = var;
5690 {
5691 var1 = nit___nit__Parser___pop(var_p);
5692 }
5693 var_nodearraylist1 = var1;
5694 var_pqualifiednode2 = var_nodearraylist1;
5695 /* <var_pqualifiednode2:nullable Object> isa nullable AQualified */
5696 cltype = type_nullable__nit__AQualified.color;
5697 idtype = type_nullable__nit__AQualified.id;
5698 if(var_pqualifiednode2 == NULL) {
5699 var2 = 1;
5700 } else {
5701 if(cltype >= (((long)var_pqualifiednode2&3)?type_info[((long)var_pqualifiednode2&3)]:var_pqualifiednode2->type)->table_size) {
5702 var2 = 0;
5703 } else {
5704 var2 = (((long)var_pqualifiednode2&3)?type_info[((long)var_pqualifiednode2&3)]:var_pqualifiednode2->type)->type_table[cltype] == idtype;
5705 }
5706 }
5707 if (unlikely(!var2)) {
5708 PRINT_ERROR("Runtime error: %s", "Assert failed");
5709 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8655);
5710 fatal_exit(1);
5711 }
5712 var_tkwsupernode3 = var_nodearraylist2;
5713 /* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
5714 cltype4 = type_nullable__nit__TKwsuper.color;
5715 idtype5 = type_nullable__nit__TKwsuper.id;
5716 if(var_tkwsupernode3 == NULL) {
5717 var3 = 1;
5718 } else {
5719 if(cltype4 >= (((long)var_tkwsupernode3&3)?type_info[((long)var_tkwsupernode3&3)]:var_tkwsupernode3->type)->table_size) {
5720 var3 = 0;
5721 } else {
5722 var3 = (((long)var_tkwsupernode3&3)?type_info[((long)var_tkwsupernode3&3)]:var_tkwsupernode3->type)->type_table[cltype4] == idtype5;
5723 }
5724 }
5725 if (unlikely(!var3)) {
5726 PRINT_ERROR("Runtime error: %s", "Assert failed");
5727 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8657);
5728 fatal_exit(1);
5729 }
5730 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
5731 {
5732 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
5733 }
5734 var_listnode5 = var6;
5735 var7 = NEW_nit__AListExprs(&type_nit__AListExprs);
5736 {
5737 nit__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var7:AListExprs>*/
5738 }
5739 var_pexprsnode4 = var7;
5740 var8 = NEW_nit__ASuperExpr(&type_nit__ASuperExpr);
5741 {
5742 nit__parser_prod___ASuperExpr___init_asuperexpr(var8, var_pqualifiednode2, var_tkwsupernode3, var_pexprsnode4); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on <var8:ASuperExpr>*/
5743 }
5744 var_pexprnode1 = var8;
5745 var_node_list = var_pexprnode1;
5746 var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction349> */
5747 {
5748 var10 = nit___nit__Parser___go_to(var_p, var9);
5749 }
5750 {
5751 nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5752 }
5753 RET_LABEL:;
5754 }
5755 /* method parser#ReduceAction351#action for (self: ReduceAction351, Parser) */
5756 void nit__parser___nit__parser__ReduceAction351___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5757 val* var_p /* var p: Parser */;
5758 val* var_node_list /* var node_list: nullable Object */;
5759 val* var /* : nullable Object */;
5760 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5761 val* var1 /* : nullable Object */;
5762 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5763 val* var2 /* : nullable Object */;
5764 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5765 val* var3 /* : nullable Object */;
5766 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5767 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5768 short int var4 /* : Bool */;
5769 int cltype;
5770 int idtype;
5771 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
5772 short int var5 /* : Bool */;
5773 int cltype6;
5774 int idtype7;
5775 val* var8 /* : Array[Object] */;
5776 val* var_listnode5 /* var listnode5: Array[Object] */;
5777 val* var9 /* : AListExprs */;
5778 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5779 val* var10 /* : AInitExpr */;
5780 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
5781 long var11 /* : Int */;
5782 long var12 /* : Int */;
5783 var_p = p0;
5784 var_node_list = ((val*)NULL);
5785 {
5786 var = nit___nit__Parser___pop(var_p);
5787 }
5788 var_nodearraylist4 = var;
5789 {
5790 var1 = nit___nit__Parser___pop(var_p);
5791 }
5792 var_nodearraylist3 = var1;
5793 {
5794 var2 = nit___nit__Parser___pop(var_p);
5795 }
5796 var_nodearraylist2 = var2;
5797 {
5798 var3 = nit___nit__Parser___pop(var_p);
5799 }
5800 var_nodearraylist1 = var3;
5801 var_pexprnode2 = var_nodearraylist1;
5802 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5803 cltype = type_nullable__nit__AExpr.color;
5804 idtype = type_nullable__nit__AExpr.id;
5805 if(var_pexprnode2 == NULL) {
5806 var4 = 1;
5807 } else {
5808 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5809 var4 = 0;
5810 } else {
5811 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5812 }
5813 }
5814 if (unlikely(!var4)) {
5815 PRINT_ERROR("Runtime error: %s", "Assert failed");
5816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8681);
5817 fatal_exit(1);
5818 }
5819 var_tkwinitnode3 = var_nodearraylist4;
5820 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
5821 cltype6 = type_nullable__nit__TKwinit.color;
5822 idtype7 = type_nullable__nit__TKwinit.id;
5823 if(var_tkwinitnode3 == NULL) {
5824 var5 = 1;
5825 } else {
5826 if(cltype6 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
5827 var5 = 0;
5828 } else {
5829 var5 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype6] == idtype7;
5830 }
5831 }
5832 if (unlikely(!var5)) {
5833 PRINT_ERROR("Runtime error: %s", "Assert failed");
5834 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8683);
5835 fatal_exit(1);
5836 }
5837 var8 = NEW_standard__Array(&type_standard__Array__standard__Object);
5838 {
5839 standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on <var8:Array[Object]>*/
5840 }
5841 var_listnode5 = var8;
5842 var9 = NEW_nit__AListExprs(&type_nit__AListExprs);
5843 {
5844 nit__parser_prod___AListExprs___init_alistexprs(var9, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var9:AListExprs>*/
5845 }
5846 var_pexprsnode4 = var9;
5847 var10 = NEW_nit__AInitExpr(&type_nit__AInitExpr);
5848 {
5849 nit__parser_prod___AInitExpr___init_ainitexpr(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var10:AInitExpr>*/
5850 }
5851 var_pexprnode1 = var10;
5852 var_node_list = var_pexprnode1;
5853 var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction351> */
5854 {
5855 var12 = nit___nit__Parser___go_to(var_p, var11);
5856 }
5857 {
5858 nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5859 }
5860 RET_LABEL:;
5861 }
5862 /* method parser#ReduceAction353#action for (self: ReduceAction353, Parser) */
5863 void nit__parser___nit__parser__ReduceAction353___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5864 val* var_p /* var p: Parser */;
5865 val* var_node_list /* var node_list: nullable Object */;
5866 val* var /* : nullable Object */;
5867 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5868 val* var1 /* : AImplicitSelfExpr */;
5869 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5870 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
5871 short int var2 /* : Bool */;
5872 int cltype;
5873 int idtype;
5874 val* var3 /* : Array[Object] */;
5875 val* var_listnode5 /* var listnode5: Array[Object] */;
5876 val* var4 /* : AListExprs */;
5877 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5878 val* var5 /* : AInitExpr */;
5879 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
5880 long var6 /* : Int */;
5881 long var7 /* : Int */;
5882 var_p = p0;
5883 var_node_list = ((val*)NULL);
5884 {
5885 var = nit___nit__Parser___pop(var_p);
5886 }
5887 var_nodearraylist1 = var;
5888 var1 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr);
5889 {
5890 nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var1); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/
5891 }
5892 var_pexprnode2 = var1;
5893 var_tkwinitnode3 = var_nodearraylist1;
5894 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
5895 cltype = type_nullable__nit__TKwinit.color;
5896 idtype = type_nullable__nit__TKwinit.id;
5897 if(var_tkwinitnode3 == NULL) {
5898 var2 = 1;
5899 } else {
5900 if(cltype >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
5901 var2 = 0;
5902 } else {
5903 var2 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype] == idtype;
5904 }
5905 }
5906 if (unlikely(!var2)) {
5907 PRINT_ERROR("Runtime error: %s", "Assert failed");
5908 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8705);
5909 fatal_exit(1);
5910 }
5911 var3 = NEW_standard__Array(&type_standard__Array__standard__Object);
5912 {
5913 standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on <var3:Array[Object]>*/
5914 }
5915 var_listnode5 = var3;
5916 var4 = NEW_nit__AListExprs(&type_nit__AListExprs);
5917 {
5918 nit__parser_prod___AListExprs___init_alistexprs(var4, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var4:AListExprs>*/
5919 }
5920 var_pexprsnode4 = var4;
5921 var5 = NEW_nit__AInitExpr(&type_nit__AInitExpr);
5922 {
5923 nit__parser_prod___AInitExpr___init_ainitexpr(var5, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var5:AInitExpr>*/
5924 }
5925 var_pexprnode1 = var5;
5926 var_node_list = var_pexprnode1;
5927 var6 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction353> */
5928 {
5929 var7 = nit___nit__Parser___go_to(var_p, var6);
5930 }
5931 {
5932 nit___nit__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5933 }
5934 RET_LABEL:;
5935 }
5936 /* method parser#ReduceAction354#action for (self: ReduceAction354, Parser) */
5937 void nit__parser___nit__parser__ReduceAction354___nit__parser_work__ReduceAction__action(val* self, val* p0) {
5938 val* var_p /* var p: Parser */;
5939 val* var_node_list /* var node_list: nullable Object */;
5940 val* var /* : nullable Object */;
5941 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5942 val* var1 /* : nullable Object */;
5943 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5944 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5945 short int var2 /* : Bool */;
5946 int cltype;
5947 int idtype;
5948 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
5949 short int var3 /* : Bool */;
5950 int cltype4;
5951 int idtype5;
5952 val* var6 /* : ABraExpr */;
5953 val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
5954 long var7 /* : Int */;
5955 long var8 /* : Int */;
5956 var_p = p0;
5957 var_node_list = ((val*)NULL);
5958 {
5959 var = nit___nit__Parser___pop(var_p);
5960 }
5961 var_nodearraylist2 = var;
5962 {
5963 var1 = nit___nit__Parser___pop(var_p);
5964 }
5965 var_nodearraylist1 = var1;
5966 var_pexprnode2 = var_nodearraylist1;
5967 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5968 cltype = type_nullable__nit__AExpr.color;
5969 idtype = type_nullable__nit__AExpr.id;
5970 if(var_pexprnode2 == NULL) {
5971 var2 = 1;
5972 } else {
5973 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5974 var2 = 0;
5975 } else {
5976 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5977 }
5978 }
5979 if (unlikely(!var2)) {
5980 PRINT_ERROR("Runtime error: %s", "Assert failed");
5981 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8727);
5982 fatal_exit(1);
5983 }
5984 var_pexprsnode3 = var_nodearraylist2;
5985 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
5986 cltype4 = type_nullable__nit__AExprs.color;
5987 idtype5 = type_nullable__nit__AExprs.id;
5988 if(var_pexprsnode3 == NULL) {
5989 var3 = 1;
5990 } else {
5991 if(cltype4 >= (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->table_size) {
5992 var3 = 0;
5993 } else {
5994 var3 = (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->type_table[cltype4] == idtype5;
5995 }
5996 }
5997 if (unlikely(!var3)) {
5998 PRINT_ERROR("Runtime error: %s", "Assert failed");
5999 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8729);
6000 fatal_exit(1);
6001 }
6002 var6 = NEW_nit__ABraExpr(&type_nit__ABraExpr);
6003 {
6004 nit__parser_prod___ABraExpr___init_abraexpr(var6, var_pexprnode2, var_pexprsnode3); /* Direct call parser_prod#ABraExpr#init_abraexpr on <var6:ABraExpr>*/
6005 }
6006 var_pexprnode1 = var6;
6007 var_node_list = var_pexprnode1;
6008 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction354> */
6009 {
6010 var8 = nit___nit__Parser___go_to(var_p, var7);
6011 }
6012 {
6013 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6014 }
6015 RET_LABEL:;
6016 }
6017 /* method parser#ReduceAction355#action for (self: ReduceAction355, Parser) */
6018 void nit__parser___nit__parser__ReduceAction355___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6019 val* var_p /* var p: Parser */;
6020 val* var_node_list /* var node_list: nullable Object */;
6021 val* var /* : nullable Object */;
6022 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6023 val* var1 /* : nullable Object */;
6024 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6025 val* var2 /* : nullable Object */;
6026 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6027 val* var3 /* : nullable Object */;
6028 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6029 val* var4 /* : nullable Object */;
6030 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6031 val* var5 /* : nullable Object */;
6032 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6033 val* var6 /* : nullable Object */;
6034 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6035 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6036 short int var7 /* : Bool */;
6037 int cltype;
6038 int idtype;
6039 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6040 short int var8 /* : Bool */;
6041 int cltype9;
6042 int idtype10;
6043 val* var_tidnode4 /* var tidnode4: nullable Object */;
6044 short int var11 /* : Bool */;
6045 int cltype12;
6046 int idtype13;
6047 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
6048 short int var14 /* : Bool */;
6049 int cltype15;
6050 int idtype16;
6051 val* var17 /* : ANewExpr */;
6052 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6053 long var18 /* : Int */;
6054 long var19 /* : Int */;
6055 var_p = p0;
6056 var_node_list = ((val*)NULL);
6057 {
6058 var = nit___nit__Parser___pop(var_p);
6059 }
6060 var_nodearraylist7 = var;
6061 {
6062 var1 = nit___nit__Parser___pop(var_p);
6063 }
6064 var_nodearraylist6 = var1;
6065 {
6066 var2 = nit___nit__Parser___pop(var_p);
6067 }
6068 var_nodearraylist5 = var2;
6069 {
6070 var3 = nit___nit__Parser___pop(var_p);
6071 }
6072 var_nodearraylist4 = var3;
6073 {
6074 var4 = nit___nit__Parser___pop(var_p);
6075 }
6076 var_nodearraylist3 = var4;
6077 {
6078 var5 = nit___nit__Parser___pop(var_p);
6079 }
6080 var_nodearraylist2 = var5;
6081 {
6082 var6 = nit___nit__Parser___pop(var_p);
6083 }
6084 var_nodearraylist1 = var6;
6085 var_tkwnewnode2 = var_nodearraylist1;
6086 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6087 cltype = type_nullable__nit__TKwnew.color;
6088 idtype = type_nullable__nit__TKwnew.id;
6089 if(var_tkwnewnode2 == NULL) {
6090 var7 = 1;
6091 } else {
6092 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
6093 var7 = 0;
6094 } else {
6095 var7 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
6096 }
6097 }
6098 if (unlikely(!var7)) {
6099 PRINT_ERROR("Runtime error: %s", "Assert failed");
6100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8751);
6101 fatal_exit(1);
6102 }
6103 var_ptypenode3 = var_nodearraylist3;
6104 /* <var_ptypenode3:nullable Object> isa nullable AType */
6105 cltype9 = type_nullable__nit__AType.color;
6106 idtype10 = type_nullable__nit__AType.id;
6107 if(var_ptypenode3 == NULL) {
6108 var8 = 1;
6109 } else {
6110 if(cltype9 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
6111 var8 = 0;
6112 } else {
6113 var8 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype9] == idtype10;
6114 }
6115 }
6116 if (unlikely(!var8)) {
6117 PRINT_ERROR("Runtime error: %s", "Assert failed");
6118 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8753);
6119 fatal_exit(1);
6120 }
6121 var_tidnode4 = var_nodearraylist6;
6122 /* <var_tidnode4:nullable Object> isa nullable TId */
6123 cltype12 = type_nullable__nit__TId.color;
6124 idtype13 = type_nullable__nit__TId.id;
6125 if(var_tidnode4 == NULL) {
6126 var11 = 1;
6127 } else {
6128 if(cltype12 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
6129 var11 = 0;
6130 } else {
6131 var11 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype12] == idtype13;
6132 }
6133 }
6134 if (unlikely(!var11)) {
6135 PRINT_ERROR("Runtime error: %s", "Assert failed");
6136 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8755);
6137 fatal_exit(1);
6138 }
6139 var_pexprsnode5 = var_nodearraylist7;
6140 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
6141 cltype15 = type_nullable__nit__AExprs.color;
6142 idtype16 = type_nullable__nit__AExprs.id;
6143 if(var_pexprsnode5 == NULL) {
6144 var14 = 1;
6145 } else {
6146 if(cltype15 >= (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->table_size) {
6147 var14 = 0;
6148 } else {
6149 var14 = (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->type_table[cltype15] == idtype16;
6150 }
6151 }
6152 if (unlikely(!var14)) {
6153 PRINT_ERROR("Runtime error: %s", "Assert failed");
6154 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8757);
6155 fatal_exit(1);
6156 }
6157 var17 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
6158 {
6159 nit__parser_prod___ANewExpr___init_anewexpr(var17, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var17:ANewExpr>*/
6160 }
6161 var_pexprnode1 = var17;
6162 var_node_list = var_pexprnode1;
6163 var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction355> */
6164 {
6165 var19 = nit___nit__Parser___go_to(var_p, var18);
6166 }
6167 {
6168 nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6169 }
6170 RET_LABEL:;
6171 }
6172 /* method parser#ReduceAction356#action for (self: ReduceAction356, Parser) */
6173 void nit__parser___nit__parser__ReduceAction356___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6174 val* var_p /* var p: Parser */;
6175 val* var_node_list /* var node_list: nullable Object */;
6176 val* var /* : nullable Object */;
6177 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6178 val* var1 /* : nullable Object */;
6179 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6180 val* var2 /* : nullable Object */;
6181 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6182 val* var3 /* : nullable Object */;
6183 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6184 val* var4 /* : nullable Object */;
6185 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6186 val* var5 /* : nullable Object */;
6187 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6188 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6189 short int var6 /* : Bool */;
6190 int cltype;
6191 int idtype;
6192 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6193 short int var7 /* : Bool */;
6194 int cltype8;
6195 int idtype9;
6196 val* var_tidnode4 /* var tidnode4: nullable Object */;
6197 short int var10 /* : Bool */;
6198 int cltype11;
6199 int idtype12;
6200 val* var13 /* : Array[Object] */;
6201 val* var_listnode6 /* var listnode6: Array[Object] */;
6202 val* var14 /* : AListExprs */;
6203 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
6204 val* var15 /* : ANewExpr */;
6205 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6206 long var16 /* : Int */;
6207 long var17 /* : Int */;
6208 var_p = p0;
6209 var_node_list = ((val*)NULL);
6210 {
6211 var = nit___nit__Parser___pop(var_p);
6212 }
6213 var_nodearraylist6 = var;
6214 {
6215 var1 = nit___nit__Parser___pop(var_p);
6216 }
6217 var_nodearraylist5 = var1;
6218 {
6219 var2 = nit___nit__Parser___pop(var_p);
6220 }
6221 var_nodearraylist4 = var2;
6222 {
6223 var3 = nit___nit__Parser___pop(var_p);
6224 }
6225 var_nodearraylist3 = var3;
6226 {
6227 var4 = nit___nit__Parser___pop(var_p);
6228 }
6229 var_nodearraylist2 = var4;
6230 {
6231 var5 = nit___nit__Parser___pop(var_p);
6232 }
6233 var_nodearraylist1 = var5;
6234 var_tkwnewnode2 = var_nodearraylist1;
6235 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6236 cltype = type_nullable__nit__TKwnew.color;
6237 idtype = type_nullable__nit__TKwnew.id;
6238 if(var_tkwnewnode2 == NULL) {
6239 var6 = 1;
6240 } else {
6241 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
6242 var6 = 0;
6243 } else {
6244 var6 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
6245 }
6246 }
6247 if (unlikely(!var6)) {
6248 PRINT_ERROR("Runtime error: %s", "Assert failed");
6249 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8780);
6250 fatal_exit(1);
6251 }
6252 var_ptypenode3 = var_nodearraylist3;
6253 /* <var_ptypenode3:nullable Object> isa nullable AType */
6254 cltype8 = type_nullable__nit__AType.color;
6255 idtype9 = type_nullable__nit__AType.id;
6256 if(var_ptypenode3 == NULL) {
6257 var7 = 1;
6258 } else {
6259 if(cltype8 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
6260 var7 = 0;
6261 } else {
6262 var7 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype8] == idtype9;
6263 }
6264 }
6265 if (unlikely(!var7)) {
6266 PRINT_ERROR("Runtime error: %s", "Assert failed");
6267 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8782);
6268 fatal_exit(1);
6269 }
6270 var_tidnode4 = var_nodearraylist6;
6271 /* <var_tidnode4:nullable Object> isa nullable TId */
6272 cltype11 = type_nullable__nit__TId.color;
6273 idtype12 = type_nullable__nit__TId.id;
6274 if(var_tidnode4 == NULL) {
6275 var10 = 1;
6276 } else {
6277 if(cltype11 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
6278 var10 = 0;
6279 } else {
6280 var10 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype11] == idtype12;
6281 }
6282 }
6283 if (unlikely(!var10)) {
6284 PRINT_ERROR("Runtime error: %s", "Assert failed");
6285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8784);
6286 fatal_exit(1);
6287 }
6288 var13 = NEW_standard__Array(&type_standard__Array__standard__Object);
6289 {
6290 standard___standard__Array___standard__kernel__Object__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
6291 }
6292 var_listnode6 = var13;
6293 var14 = NEW_nit__AListExprs(&type_nit__AListExprs);
6294 {
6295 nit__parser_prod___AListExprs___init_alistexprs(var14, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var14:AListExprs>*/
6296 }
6297 var_pexprsnode5 = var14;
6298 var15 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
6299 {
6300 nit__parser_prod___ANewExpr___init_anewexpr(var15, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var15:ANewExpr>*/
6301 }
6302 var_pexprnode1 = var15;
6303 var_node_list = var_pexprnode1;
6304 var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction356> */
6305 {
6306 var17 = nit___nit__Parser___go_to(var_p, var16);
6307 }
6308 {
6309 nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6310 }
6311 RET_LABEL:;
6312 }
6313 /* method parser#ReduceAction357#action for (self: ReduceAction357, Parser) */
6314 void nit__parser___nit__parser__ReduceAction357___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6315 val* var_p /* var p: Parser */;
6316 val* var_node_list /* var node_list: nullable Object */;
6317 val* var /* : nullable Object */;
6318 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6319 val* var1 /* : nullable Object */;
6320 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6321 val* var2 /* : nullable Object */;
6322 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6323 val* var3 /* : nullable Object */;
6324 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6325 val* var4 /* : nullable Object */;
6326 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6327 val* var5 /* : nullable Object */;
6328 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6329 val* var6 /* : nullable Object */;
6330 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6331 val* var7 /* : nullable Object */;
6332 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6333 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6334 short int var8 /* : Bool */;
6335 int cltype;
6336 int idtype;
6337 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6338 short int var9 /* : Bool */;
6339 int cltype10;
6340 int idtype11;
6341 val* var_tidnode4 /* var tidnode4: nullable Object */;
6342 short int var12 /* : Bool */;
6343 int cltype13;
6344 int idtype14;
6345 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
6346 short int var15 /* : Bool */;
6347 int cltype16;
6348 int idtype17;
6349 val* var18 /* : ANewExpr */;
6350 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6351 long var19 /* : Int */;
6352 long var20 /* : Int */;
6353 var_p = p0;
6354 var_node_list = ((val*)NULL);
6355 {
6356 var = nit___nit__Parser___pop(var_p);
6357 }
6358 var_nodearraylist8 = var;
6359 {
6360 var1 = nit___nit__Parser___pop(var_p);
6361 }
6362 var_nodearraylist7 = var1;
6363 {
6364 var2 = nit___nit__Parser___pop(var_p);
6365 }
6366 var_nodearraylist6 = var2;
6367 {
6368 var3 = nit___nit__Parser___pop(var_p);
6369 }
6370 var_nodearraylist5 = var3;
6371 {
6372 var4 = nit___nit__Parser___pop(var_p);
6373 }
6374 var_nodearraylist4 = var4;
6375 {
6376 var5 = nit___nit__Parser___pop(var_p);
6377 }
6378 var_nodearraylist3 = var5;
6379 {
6380 var6 = nit___nit__Parser___pop(var_p);
6381 }
6382 var_nodearraylist2 = var6;
6383 {
6384 var7 = nit___nit__Parser___pop(var_p);
6385 }
6386 var_nodearraylist1 = var7;
6387 var_tkwnewnode2 = var_nodearraylist1;
6388 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6389 cltype = type_nullable__nit__TKwnew.color;
6390 idtype = type_nullable__nit__TKwnew.id;
6391 if(var_tkwnewnode2 == NULL) {
6392 var8 = 1;
6393 } else {
6394 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
6395 var8 = 0;
6396 } else {
6397 var8 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
6398 }
6399 }
6400 if (unlikely(!var8)) {
6401 PRINT_ERROR("Runtime error: %s", "Assert failed");
6402 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8813);
6403 fatal_exit(1);
6404 }
6405 var_ptypenode3 = var_nodearraylist3;
6406 /* <var_ptypenode3:nullable Object> isa nullable AType */
6407 cltype10 = type_nullable__nit__AType.color;
6408 idtype11 = type_nullable__nit__AType.id;
6409 if(var_ptypenode3 == NULL) {
6410 var9 = 1;
6411 } else {
6412 if(cltype10 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
6413 var9 = 0;
6414 } else {
6415 var9 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype10] == idtype11;
6416 }
6417 }
6418 if (unlikely(!var9)) {
6419 PRINT_ERROR("Runtime error: %s", "Assert failed");
6420 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8815);
6421 fatal_exit(1);
6422 }
6423 var_tidnode4 = var_nodearraylist7;
6424 /* <var_tidnode4:nullable Object> isa nullable TId */
6425 cltype13 = type_nullable__nit__TId.color;
6426 idtype14 = type_nullable__nit__TId.id;
6427 if(var_tidnode4 == NULL) {
6428 var12 = 1;
6429 } else {
6430 if(cltype13 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
6431 var12 = 0;
6432 } else {
6433 var12 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype13] == idtype14;
6434 }
6435 }
6436 if (unlikely(!var12)) {
6437 PRINT_ERROR("Runtime error: %s", "Assert failed");
6438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8817);
6439 fatal_exit(1);
6440 }
6441 var_pexprsnode5 = var_nodearraylist8;
6442 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
6443 cltype16 = type_nullable__nit__AExprs.color;
6444 idtype17 = type_nullable__nit__AExprs.id;
6445 if(var_pexprsnode5 == NULL) {
6446 var15 = 1;
6447 } else {
6448 if(cltype16 >= (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->table_size) {
6449 var15 = 0;
6450 } else {
6451 var15 = (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->type_table[cltype16] == idtype17;
6452 }
6453 }
6454 if (unlikely(!var15)) {
6455 PRINT_ERROR("Runtime error: %s", "Assert failed");
6456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8819);
6457 fatal_exit(1);
6458 }
6459 var18 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
6460 {
6461 nit__parser_prod___ANewExpr___init_anewexpr(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var18:ANewExpr>*/
6462 }
6463 var_pexprnode1 = var18;
6464 var_node_list = var_pexprnode1;
6465 var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction357> */
6466 {
6467 var20 = nit___nit__Parser___go_to(var_p, var19);
6468 }
6469 {
6470 nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6471 }
6472 RET_LABEL:;
6473 }
6474 /* method parser#ReduceAction358#action for (self: ReduceAction358, Parser) */
6475 void nit__parser___nit__parser__ReduceAction358___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6476 val* var_p /* var p: Parser */;
6477 val* var_node_list /* var node_list: nullable Object */;
6478 val* var /* : nullable Object */;
6479 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6480 val* var1 /* : nullable Object */;
6481 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6482 val* var2 /* : nullable Object */;
6483 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6484 val* var3 /* : nullable Object */;
6485 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6486 val* var4 /* : nullable Object */;
6487 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6488 val* var5 /* : nullable Object */;
6489 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6490 val* var6 /* : nullable Object */;
6491 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6492 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6493 short int var7 /* : Bool */;
6494 int cltype;
6495 int idtype;
6496 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6497 short int var8 /* : Bool */;
6498 int cltype9;
6499 int idtype10;
6500 val* var_tidnode4 /* var tidnode4: nullable Object */;
6501 short int var11 /* : Bool */;
6502 int cltype12;
6503 int idtype13;
6504 val* var14 /* : Array[Object] */;
6505 val* var_listnode6 /* var listnode6: Array[Object] */;
6506 val* var15 /* : AListExprs */;
6507 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
6508 val* var16 /* : ANewExpr */;
6509 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6510 long var17 /* : Int */;
6511 long var18 /* : Int */;
6512 var_p = p0;
6513 var_node_list = ((val*)NULL);
6514 {
6515 var = nit___nit__Parser___pop(var_p);
6516 }
6517 var_nodearraylist7 = var;
6518 {
6519 var1 = nit___nit__Parser___pop(var_p);
6520 }
6521 var_nodearraylist6 = var1;
6522 {
6523 var2 = nit___nit__Parser___pop(var_p);
6524 }
6525 var_nodearraylist5 = var2;
6526 {
6527 var3 = nit___nit__Parser___pop(var_p);
6528 }
6529 var_nodearraylist4 = var3;
6530 {
6531 var4 = nit___nit__Parser___pop(var_p);
6532 }
6533 var_nodearraylist3 = var4;
6534 {
6535 var5 = nit___nit__Parser___pop(var_p);
6536 }
6537 var_nodearraylist2 = var5;
6538 {
6539 var6 = nit___nit__Parser___pop(var_p);
6540 }
6541 var_nodearraylist1 = var6;
6542 var_tkwnewnode2 = var_nodearraylist1;
6543 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6544 cltype = type_nullable__nit__TKwnew.color;
6545 idtype = type_nullable__nit__TKwnew.id;
6546 if(var_tkwnewnode2 == NULL) {
6547 var7 = 1;
6548 } else {
6549 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
6550 var7 = 0;
6551 } else {
6552 var7 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
6553 }
6554 }
6555 if (unlikely(!var7)) {
6556 PRINT_ERROR("Runtime error: %s", "Assert failed");
6557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8843);
6558 fatal_exit(1);
6559 }
6560 var_ptypenode3 = var_nodearraylist3;
6561 /* <var_ptypenode3:nullable Object> isa nullable AType */
6562 cltype9 = type_nullable__nit__AType.color;
6563 idtype10 = type_nullable__nit__AType.id;
6564 if(var_ptypenode3 == NULL) {
6565 var8 = 1;
6566 } else {
6567 if(cltype9 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
6568 var8 = 0;
6569 } else {
6570 var8 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype9] == idtype10;
6571 }
6572 }
6573 if (unlikely(!var8)) {
6574 PRINT_ERROR("Runtime error: %s", "Assert failed");
6575 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8845);
6576 fatal_exit(1);
6577 }
6578 var_tidnode4 = var_nodearraylist7;
6579 /* <var_tidnode4:nullable Object> isa nullable TId */
6580 cltype12 = type_nullable__nit__TId.color;
6581 idtype13 = type_nullable__nit__TId.id;
6582 if(var_tidnode4 == NULL) {
6583 var11 = 1;
6584 } else {
6585 if(cltype12 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
6586 var11 = 0;
6587 } else {
6588 var11 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype12] == idtype13;
6589 }
6590 }
6591 if (unlikely(!var11)) {
6592 PRINT_ERROR("Runtime error: %s", "Assert failed");
6593 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8847);
6594 fatal_exit(1);
6595 }
6596 var14 = NEW_standard__Array(&type_standard__Array__standard__Object);
6597 {
6598 standard___standard__Array___standard__kernel__Object__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
6599 }
6600 var_listnode6 = var14;
6601 var15 = NEW_nit__AListExprs(&type_nit__AListExprs);
6602 {
6603 nit__parser_prod___AListExprs___init_alistexprs(var15, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var15:AListExprs>*/
6604 }
6605 var_pexprsnode5 = var15;
6606 var16 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
6607 {
6608 nit__parser_prod___ANewExpr___init_anewexpr(var16, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var16:ANewExpr>*/
6609 }
6610 var_pexprnode1 = var16;
6611 var_node_list = var_pexprnode1;
6612 var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction358> */
6613 {
6614 var18 = nit___nit__Parser___go_to(var_p, var17);
6615 }
6616 {
6617 nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6618 }
6619 RET_LABEL:;
6620 }
6621 /* method parser#ReduceAction359#action for (self: ReduceAction359, Parser) */
6622 void nit__parser___nit__parser__ReduceAction359___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6623 val* var_p /* var p: Parser */;
6624 val* var_node_list /* var node_list: nullable Object */;
6625 val* var /* : nullable Object */;
6626 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6627 val* var1 /* : nullable Object */;
6628 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6629 val* var2 /* : nullable Object */;
6630 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6631 val* var3 /* : nullable Object */;
6632 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6633 val* var4 /* : nullable Object */;
6634 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6635 val* var5 /* : nullable Object */;
6636 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6637 val* var6 /* : nullable Object */;
6638 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6639 val* var7 /* : nullable Object */;
6640 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6641 val* var8 /* : nullable Object */;
6642 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6643 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6644 short int var9 /* : Bool */;
6645 int cltype;
6646 int idtype;
6647 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6648 short int var10 /* : Bool */;
6649 int cltype11;
6650 int idtype12;
6651 val* var_tidnode4 /* var tidnode4: nullable Object */;
6652 short int var13 /* : Bool */;
6653 int cltype14;
6654 int idtype15;
6655 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
6656 short int var16 /* : Bool */;
6657 int cltype17;
6658 int idtype18;
6659 val* var19 /* : ANewExpr */;
6660 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6661 long var20 /* : Int */;
6662 long var21 /* : Int */;
6663 var_p = p0;
6664 var_node_list = ((val*)NULL);
6665 {
6666 var = nit___nit__Parser___pop(var_p);
6667 }
6668 var_nodearraylist9 = var;
6669 {
6670 var1 = nit___nit__Parser___pop(var_p);
6671 }
6672 var_nodearraylist8 = var1;
6673 {
6674 var2 = nit___nit__Parser___pop(var_p);
6675 }
6676 var_nodearraylist7 = var2;
6677 {
6678 var3 = nit___nit__Parser___pop(var_p);
6679 }
6680 var_nodearraylist6 = var3;
6681 {
6682 var4 = nit___nit__Parser___pop(var_p);
6683 }
6684 var_nodearraylist5 = var4;
6685 {
6686 var5 = nit___nit__Parser___pop(var_p);
6687 }
6688 var_nodearraylist4 = var5;
6689 {
6690 var6 = nit___nit__Parser___pop(var_p);
6691 }
6692 var_nodearraylist3 = var6;
6693 {
6694 var7 = nit___nit__Parser___pop(var_p);
6695 }
6696 var_nodearraylist2 = var7;
6697 {
6698 var8 = nit___nit__Parser___pop(var_p);
6699 }
6700 var_nodearraylist1 = var8;
6701 var_tkwnewnode2 = var_nodearraylist1;
6702 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6703 cltype = type_nullable__nit__TKwnew.color;
6704 idtype = type_nullable__nit__TKwnew.id;
6705 if(var_tkwnewnode2 == NULL) {
6706 var9 = 1;
6707 } else {
6708 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
6709 var9 = 0;
6710 } else {
6711 var9 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
6712 }
6713 }
6714 if (unlikely(!var9)) {
6715 PRINT_ERROR("Runtime error: %s", "Assert failed");
6716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8877);
6717 fatal_exit(1);
6718 }
6719 var_ptypenode3 = var_nodearraylist3;
6720 /* <var_ptypenode3:nullable Object> isa nullable AType */
6721 cltype11 = type_nullable__nit__AType.color;
6722 idtype12 = type_nullable__nit__AType.id;
6723 if(var_ptypenode3 == NULL) {
6724 var10 = 1;
6725 } else {
6726 if(cltype11 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
6727 var10 = 0;
6728 } else {
6729 var10 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype11] == idtype12;
6730 }
6731 }
6732 if (unlikely(!var10)) {
6733 PRINT_ERROR("Runtime error: %s", "Assert failed");
6734 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8879);
6735 fatal_exit(1);
6736 }
6737 var_tidnode4 = var_nodearraylist8;
6738 /* <var_tidnode4:nullable Object> isa nullable TId */
6739 cltype14 = type_nullable__nit__TId.color;
6740 idtype15 = type_nullable__nit__TId.id;
6741 if(var_tidnode4 == NULL) {
6742 var13 = 1;
6743 } else {
6744 if(cltype14 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
6745 var13 = 0;
6746 } else {
6747 var13 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype14] == idtype15;
6748 }
6749 }
6750 if (unlikely(!var13)) {
6751 PRINT_ERROR("Runtime error: %s", "Assert failed");
6752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8881);
6753 fatal_exit(1);
6754 }
6755 var_pexprsnode5 = var_nodearraylist9;
6756 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
6757 cltype17 = type_nullable__nit__AExprs.color;
6758 idtype18 = type_nullable__nit__AExprs.id;
6759 if(var_pexprsnode5 == NULL) {
6760 var16 = 1;
6761 } else {
6762 if(cltype17 >= (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->table_size) {
6763 var16 = 0;
6764 } else {
6765 var16 = (((long)var_pexprsnode5&3)?type_info[((long)var_pexprsnode5&3)]:var_pexprsnode5->type)->type_table[cltype17] == idtype18;
6766 }
6767 }
6768 if (unlikely(!var16)) {
6769 PRINT_ERROR("Runtime error: %s", "Assert failed");
6770 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8883);
6771 fatal_exit(1);
6772 }
6773 var19 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
6774 {
6775 nit__parser_prod___ANewExpr___init_anewexpr(var19, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var19:ANewExpr>*/
6776 }
6777 var_pexprnode1 = var19;
6778 var_node_list = var_pexprnode1;
6779 var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction359> */
6780 {
6781 var21 = nit___nit__Parser___go_to(var_p, var20);
6782 }
6783 {
6784 nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6785 }
6786 RET_LABEL:;
6787 }
6788 /* method parser#ReduceAction360#action for (self: ReduceAction360, Parser) */
6789 void nit__parser___nit__parser__ReduceAction360___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6790 val* var_p /* var p: Parser */;
6791 val* var_node_list /* var node_list: nullable Object */;
6792 val* var /* : nullable Object */;
6793 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6794 val* var1 /* : nullable Object */;
6795 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6796 val* var2 /* : nullable Object */;
6797 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6798 val* var3 /* : nullable Object */;
6799 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6800 val* var4 /* : nullable Object */;
6801 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6802 val* var5 /* : nullable Object */;
6803 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6804 val* var6 /* : nullable Object */;
6805 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6806 val* var7 /* : nullable Object */;
6807 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6808 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6809 short int var8 /* : Bool */;
6810 int cltype;
6811 int idtype;
6812 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6813 short int var9 /* : Bool */;
6814 int cltype10;
6815 int idtype11;
6816 val* var_tidnode4 /* var tidnode4: nullable Object */;
6817 short int var12 /* : Bool */;
6818 int cltype13;
6819 int idtype14;
6820 val* var15 /* : Array[Object] */;
6821 val* var_listnode6 /* var listnode6: Array[Object] */;
6822 val* var16 /* : AListExprs */;
6823 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
6824 val* var17 /* : ANewExpr */;
6825 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6826 long var18 /* : Int */;
6827 long var19 /* : Int */;
6828 var_p = p0;
6829 var_node_list = ((val*)NULL);
6830 {
6831 var = nit___nit__Parser___pop(var_p);
6832 }
6833 var_nodearraylist8 = var;
6834 {
6835 var1 = nit___nit__Parser___pop(var_p);
6836 }
6837 var_nodearraylist7 = var1;
6838 {
6839 var2 = nit___nit__Parser___pop(var_p);
6840 }
6841 var_nodearraylist6 = var2;
6842 {
6843 var3 = nit___nit__Parser___pop(var_p);
6844 }
6845 var_nodearraylist5 = var3;
6846 {
6847 var4 = nit___nit__Parser___pop(var_p);
6848 }
6849 var_nodearraylist4 = var4;
6850 {
6851 var5 = nit___nit__Parser___pop(var_p);
6852 }
6853 var_nodearraylist3 = var5;
6854 {
6855 var6 = nit___nit__Parser___pop(var_p);
6856 }
6857 var_nodearraylist2 = var6;
6858 {
6859 var7 = nit___nit__Parser___pop(var_p);
6860 }
6861 var_nodearraylist1 = var7;
6862 var_tkwnewnode2 = var_nodearraylist1;
6863 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6864 cltype = type_nullable__nit__TKwnew.color;
6865 idtype = type_nullable__nit__TKwnew.id;
6866 if(var_tkwnewnode2 == NULL) {
6867 var8 = 1;
6868 } else {
6869 if(cltype >= (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->table_size) {
6870 var8 = 0;
6871 } else {
6872 var8 = (((long)var_tkwnewnode2&3)?type_info[((long)var_tkwnewnode2&3)]:var_tkwnewnode2->type)->type_table[cltype] == idtype;
6873 }
6874 }
6875 if (unlikely(!var8)) {
6876 PRINT_ERROR("Runtime error: %s", "Assert failed");
6877 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8908);
6878 fatal_exit(1);
6879 }
6880 var_ptypenode3 = var_nodearraylist3;
6881 /* <var_ptypenode3:nullable Object> isa nullable AType */
6882 cltype10 = type_nullable__nit__AType.color;
6883 idtype11 = type_nullable__nit__AType.id;
6884 if(var_ptypenode3 == NULL) {
6885 var9 = 1;
6886 } else {
6887 if(cltype10 >= (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->table_size) {
6888 var9 = 0;
6889 } else {
6890 var9 = (((long)var_ptypenode3&3)?type_info[((long)var_ptypenode3&3)]:var_ptypenode3->type)->type_table[cltype10] == idtype11;
6891 }
6892 }
6893 if (unlikely(!var9)) {
6894 PRINT_ERROR("Runtime error: %s", "Assert failed");
6895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8910);
6896 fatal_exit(1);
6897 }
6898 var_tidnode4 = var_nodearraylist8;
6899 /* <var_tidnode4:nullable Object> isa nullable TId */
6900 cltype13 = type_nullable__nit__TId.color;
6901 idtype14 = type_nullable__nit__TId.id;
6902 if(var_tidnode4 == NULL) {
6903 var12 = 1;
6904 } else {
6905 if(cltype13 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
6906 var12 = 0;
6907 } else {
6908 var12 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype13] == idtype14;
6909 }
6910 }
6911 if (unlikely(!var12)) {
6912 PRINT_ERROR("Runtime error: %s", "Assert failed");
6913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8912);
6914 fatal_exit(1);
6915 }
6916 var15 = NEW_standard__Array(&type_standard__Array__standard__Object);
6917 {
6918 standard___standard__Array___standard__kernel__Object__init(var15); /* Direct call array#Array#init on <var15:Array[Object]>*/
6919 }
6920 var_listnode6 = var15;
6921 var16 = NEW_nit__AListExprs(&type_nit__AListExprs);
6922 {
6923 nit__parser_prod___AListExprs___init_alistexprs(var16, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var16:AListExprs>*/
6924 }
6925 var_pexprsnode5 = var16;
6926 var17 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
6927 {
6928 nit__parser_prod___ANewExpr___init_anewexpr(var17, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var17:ANewExpr>*/
6929 }
6930 var_pexprnode1 = var17;
6931 var_node_list = var_pexprnode1;
6932 var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction360> */
6933 {
6934 var19 = nit___nit__Parser___go_to(var_p, var18);
6935 }
6936 {
6937 nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6938 }
6939 RET_LABEL:;
6940 }
6941 /* method parser#ReduceAction363#action for (self: ReduceAction363, Parser) */
6942 void nit__parser___nit__parser__ReduceAction363___nit__parser_work__ReduceAction__action(val* self, val* p0) {
6943 val* var_p /* var p: Parser */;
6944 val* var_node_list /* var node_list: nullable Object */;
6945 val* var /* : nullable Object */;
6946 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
6947 val* var1 /* : nullable Object */;
6948 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6949 val* var2 /* : nullable Object */;
6950 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6951 val* var3 /* : nullable Object */;
6952 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6953 val* var4 /* : nullable Object */;
6954 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6955 val* var5 /* : nullable Object */;
6956 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6957 val* var6 /* : nullable Object */;
6958 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6959 val* var7 /* : nullable Object */;
6960 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6961 val* var8 /* : nullable Object */;
6962 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6963 val* var9 /* : nullable Object */;
6964 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6965 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6966 short int var10 /* : Bool */;
6967 int cltype;
6968 int idtype;
6969 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
6970 short int var11 /* : Bool */;
6971 int cltype12;
6972 int idtype13;
6973 val* var_toparnode4 /* var toparnode4: nullable Object */;
6974 short int var14 /* : Bool */;
6975 int cltype15;
6976 int idtype16;
6977 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
6978 short int var17 /* : Bool */;
6979 int cltype18;
6980 int idtype19;
6981 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
6982 short int var20 /* : Bool */;
6983 int cltype21;
6984 int idtype22;
6985 val* var23 /* : AAsCastExpr */;
6986 val* var_pexprnode1 /* var pexprnode1: nullable AAsCastExpr */;
6987 long var24 /* : Int */;
6988 long var25 /* : Int */;
6989 var_p = p0;
6990 var_node_list = ((val*)NULL);
6991 {
6992 var = nit___nit__Parser___pop(var_p);
6993 }
6994 var_nodearraylist10 = var;
6995 {
6996 var1 = nit___nit__Parser___pop(var_p);
6997 }
6998 var_nodearraylist9 = var1;
6999 {
7000 var2 = nit___nit__Parser___pop(var_p);
7001 }
7002 var_nodearraylist8 = var2;
7003 {
7004 var3 = nit___nit__Parser___pop(var_p);
7005 }
7006 var_nodearraylist7 = var3;
7007 {
7008 var4 = nit___nit__Parser___pop(var_p);
7009 }
7010 var_nodearraylist6 = var4;
7011 {
7012 var5 = nit___nit__Parser___pop(var_p);
7013 }
7014 var_nodearraylist5 = var5;
7015 {
7016 var6 = nit___nit__Parser___pop(var_p);
7017 }
7018 var_nodearraylist4 = var6;
7019 {
7020 var7 = nit___nit__Parser___pop(var_p);
7021 }
7022 var_nodearraylist3 = var7;
7023 {
7024 var8 = nit___nit__Parser___pop(var_p);
7025 }
7026 var_nodearraylist2 = var8;
7027 {
7028 var9 = nit___nit__Parser___pop(var_p);
7029 }
7030 var_nodearraylist1 = var9;
7031 var_pexprnode2 = var_nodearraylist1;
7032 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7033 cltype = type_nullable__nit__AExpr.color;
7034 idtype = type_nullable__nit__AExpr.id;
7035 if(var_pexprnode2 == NULL) {
7036 var10 = 1;
7037 } else {
7038 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
7039 var10 = 0;
7040 } else {
7041 var10 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
7042 }
7043 }
7044 if (unlikely(!var10)) {
7045 PRINT_ERROR("Runtime error: %s", "Assert failed");
7046 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8943);
7047 fatal_exit(1);
7048 }
7049 var_tkwasnode3 = var_nodearraylist4;
7050 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7051 cltype12 = type_nullable__nit__TKwas.color;
7052 idtype13 = type_nullable__nit__TKwas.id;
7053 if(var_tkwasnode3 == NULL) {
7054 var11 = 1;
7055 } else {
7056 if(cltype12 >= (((long)var_tkwasnode3&3)?type_info[((long)var_tkwasnode3&3)]:var_tkwasnode3->type)->table_size) {
7057 var11 = 0;
7058 } else {
7059 var11 = (((long)var_tkwasnode3&3)?type_info[((long)var_tkwasnode3&3)]:var_tkwasnode3->type)->type_table[cltype12] == idtype13;
7060 }
7061 }
7062 if (unlikely(!var11)) {
7063 PRINT_ERROR("Runtime error: %s", "Assert failed");
7064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8945);
7065 fatal_exit(1);
7066 }
7067 var_toparnode4 = var_nodearraylist6;
7068 /* <var_toparnode4:nullable Object> isa nullable TOpar */
7069 cltype15 = type_nullable__nit__TOpar.color;
7070 idtype16 = type_nullable__nit__TOpar.id;
7071 if(var_toparnode4 == NULL) {
7072 var14 = 1;
7073 } else {
7074 if(cltype15 >= (((long)var_toparnode4&3)?type_info[((long)var_toparnode4&3)]:var_toparnode4->type)->table_size) {
7075 var14 = 0;
7076 } else {
7077 var14 = (((long)var_toparnode4&3)?type_info[((long)var_toparnode4&3)]:var_toparnode4->type)->type_table[cltype15] == idtype16;
7078 }
7079 }
7080 if (unlikely(!var14)) {
7081 PRINT_ERROR("Runtime error: %s", "Assert failed");
7082 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8947);
7083 fatal_exit(1);
7084 }
7085 var_ptypenode5 = var_nodearraylist8;
7086 /* <var_ptypenode5:nullable Object> isa nullable AType */
7087 cltype18 = type_nullable__nit__AType.color;
7088 idtype19 = type_nullable__nit__AType.id;
7089 if(var_ptypenode5 == NULL) {
7090 var17 = 1;
7091 } else {
7092 if(cltype18 >= (((long)var_ptypenode5&3)?type_info[((long)var_ptypenode5&3)]:var_ptypenode5->type)->table_size) {
7093 var17 = 0;
7094 } else {
7095 var17 = (((long)var_ptypenode5&3)?type_info[((long)var_ptypenode5&3)]:var_ptypenode5->type)->type_table[cltype18] == idtype19;
7096 }
7097 }
7098 if (unlikely(!var17)) {
7099 PRINT_ERROR("Runtime error: %s", "Assert failed");
7100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8949);
7101 fatal_exit(1);
7102 }
7103 var_tcparnode6 = var_nodearraylist10;
7104 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
7105 cltype21 = type_nullable__nit__TCpar.color;
7106 idtype22 = type_nullable__nit__TCpar.id;
7107 if(var_tcparnode6 == NULL) {
7108 var20 = 1;
7109 } else {
7110 if(cltype21 >= (((long)var_tcparnode6&3)?type_info[((long)var_tcparnode6&3)]:var_tcparnode6->type)->table_size) {
7111 var20 = 0;
7112 } else {
7113 var20 = (((long)var_tcparnode6&3)?type_info[((long)var_tcparnode6&3)]:var_tcparnode6->type)->type_table[cltype21] == idtype22;
7114 }
7115 }
7116 if (unlikely(!var20)) {
7117 PRINT_ERROR("Runtime error: %s", "Assert failed");
7118 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8951);
7119 fatal_exit(1);
7120 }
7121 var23 = NEW_nit__AAsCastExpr(&type_nit__AAsCastExpr);
7122 {
7123 nit__parser_prod___AAsCastExpr___init_aascastexpr(var23, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_ptypenode5, var_tcparnode6); /* Direct call parser_prod#AAsCastExpr#init_aascastexpr on <var23:AAsCastExpr>*/
7124 }
7125 var_pexprnode1 = var23;
7126 var_node_list = var_pexprnode1;
7127 var24 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction363> */
7128 {
7129 var25 = nit___nit__Parser___go_to(var_p, var24);
7130 }
7131 {
7132 nit___nit__Parser___push(var_p, var25, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7133 }
7134 RET_LABEL:;
7135 }
7136 /* method parser#ReduceAction364#action for (self: ReduceAction364, Parser) */
7137 void nit__parser___nit__parser__ReduceAction364___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7138 val* var_p /* var p: Parser */;
7139 val* var_node_list /* var node_list: nullable Object */;
7140 val* var /* : nullable Object */;
7141 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
7142 val* var1 /* : nullable Object */;
7143 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7144 val* var2 /* : nullable Object */;
7145 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7146 val* var3 /* : nullable Object */;
7147 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7148 val* var4 /* : nullable Object */;
7149 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7150 val* var5 /* : nullable Object */;
7151 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7152 val* var6 /* : nullable Object */;
7153 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7154 val* var7 /* : nullable Object */;
7155 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7156 val* var8 /* : nullable Object */;
7157 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7158 val* var9 /* : nullable Object */;
7159 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7160 val* var10 /* : nullable Object */;
7161 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7162 val* var11 /* : nullable Object */;
7163 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7164 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7165 short int var12 /* : Bool */;
7166 int cltype;
7167 int idtype;
7168 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7169 short int var13 /* : Bool */;
7170 int cltype14;
7171 int idtype15;
7172 val* var_toparnode4 /* var toparnode4: nullable Object */;
7173 short int var16 /* : Bool */;
7174 int cltype17;
7175 int idtype18;
7176 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
7177 short int var19 /* : Bool */;
7178 int cltype20;
7179 int idtype21;
7180 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
7181 short int var22 /* : Bool */;
7182 int cltype23;
7183 int idtype24;
7184 val* var_tcparnode7 /* var tcparnode7: nullable Object */;
7185 short int var25 /* : Bool */;
7186 int cltype26;
7187 int idtype27;
7188 val* var28 /* : AAsNotnullExpr */;
7189 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
7190 long var29 /* : Int */;
7191 long var30 /* : Int */;
7192 var_p = p0;
7193 var_node_list = ((val*)NULL);
7194 {
7195 var = nit___nit__Parser___pop(var_p);
7196 }
7197 var_nodearraylist12 = var;
7198 {
7199 var1 = nit___nit__Parser___pop(var_p);
7200 }
7201 var_nodearraylist11 = var1;
7202 {
7203 var2 = nit___nit__Parser___pop(var_p);
7204 }
7205 var_nodearraylist10 = var2;
7206 {
7207 var3 = nit___nit__Parser___pop(var_p);
7208 }
7209 var_nodearraylist9 = var3;
7210 {
7211 var4 = nit___nit__Parser___pop(var_p);
7212 }
7213 var_nodearraylist8 = var4;
7214 {
7215 var5 = nit___nit__Parser___pop(var_p);
7216 }
7217 var_nodearraylist7 = var5;
7218 {
7219 var6 = nit___nit__Parser___pop(var_p);
7220 }
7221 var_nodearraylist6 = var6;
7222 {
7223 var7 = nit___nit__Parser___pop(var_p);
7224 }
7225 var_nodearraylist5 = var7;
7226 {
7227 var8 = nit___nit__Parser___pop(var_p);
7228 }
7229 var_nodearraylist4 = var8;
7230 {
7231 var9 = nit___nit__Parser___pop(var_p);
7232 }
7233 var_nodearraylist3 = var9;
7234 {
7235 var10 = nit___nit__Parser___pop(var_p);
7236 }
7237 var_nodearraylist2 = var10;
7238 {
7239 var11 = nit___nit__Parser___pop(var_p);
7240 }
7241 var_nodearraylist1 = var11;
7242 var_pexprnode2 = var_nodearraylist1;
7243 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7244 cltype = type_nullable__nit__AExpr.color;
7245 idtype = type_nullable__nit__AExpr.id;
7246 if(var_pexprnode2 == NULL) {
7247 var12 = 1;
7248 } else {
7249 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
7250 var12 = 0;
7251 } else {
7252 var12 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
7253 }
7254 }
7255 if (unlikely(!var12)) {
7256 PRINT_ERROR("Runtime error: %s", "Assert failed");
7257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8981);
7258 fatal_exit(1);
7259 }
7260 var_tkwasnode3 = var_nodearraylist4;
7261 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7262 cltype14 = type_nullable__nit__TKwas.color;
7263 idtype15 = type_nullable__nit__TKwas.id;
7264 if(var_tkwasnode3 == NULL) {
7265 var13 = 1;
7266 } else {
7267 if(cltype14 >= (((long)var_tkwasnode3&3)?type_info[((long)var_tkwasnode3&3)]:var_tkwasnode3->type)->table_size) {
7268 var13 = 0;
7269 } else {
7270 var13 = (((long)var_tkwasnode3&3)?type_info[((long)var_tkwasnode3&3)]:var_tkwasnode3->type)->type_table[cltype14] == idtype15;
7271 }
7272 }
7273 if (unlikely(!var13)) {
7274 PRINT_ERROR("Runtime error: %s", "Assert failed");
7275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8983);
7276 fatal_exit(1);
7277 }
7278 var_toparnode4 = var_nodearraylist6;
7279 /* <var_toparnode4:nullable Object> isa nullable TOpar */
7280 cltype17 = type_nullable__nit__TOpar.color;
7281 idtype18 = type_nullable__nit__TOpar.id;
7282 if(var_toparnode4 == NULL) {
7283 var16 = 1;
7284 } else {
7285 if(cltype17 >= (((long)var_toparnode4&3)?type_info[((long)var_toparnode4&3)]:var_toparnode4->type)->table_size) {
7286 var16 = 0;
7287 } else {
7288 var16 = (((long)var_toparnode4&3)?type_info[((long)var_toparnode4&3)]:var_toparnode4->type)->type_table[cltype17] == idtype18;
7289 }
7290 }
7291 if (unlikely(!var16)) {
7292 PRINT_ERROR("Runtime error: %s", "Assert failed");
7293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8985);
7294 fatal_exit(1);
7295 }
7296 var_tkwnotnode5 = var_nodearraylist8;
7297 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
7298 cltype20 = type_nullable__nit__TKwnot.color;
7299 idtype21 = type_nullable__nit__TKwnot.id;
7300 if(var_tkwnotnode5 == NULL) {
7301 var19 = 1;
7302 } else {
7303 if(cltype20 >= (((long)var_tkwnotnode5&3)?type_info[((long)var_tkwnotnode5&3)]:var_tkwnotnode5->type)->table_size) {
7304 var19 = 0;
7305 } else {
7306 var19 = (((long)var_tkwnotnode5&3)?type_info[((long)var_tkwnotnode5&3)]:var_tkwnotnode5->type)->type_table[cltype20] == idtype21;
7307 }
7308 }
7309 if (unlikely(!var19)) {
7310 PRINT_ERROR("Runtime error: %s", "Assert failed");
7311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8987);
7312 fatal_exit(1);
7313 }
7314 var_tkwnullnode6 = var_nodearraylist10;
7315 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
7316 cltype23 = type_nullable__nit__TKwnull.color;
7317 idtype24 = type_nullable__nit__TKwnull.id;
7318 if(var_tkwnullnode6 == NULL) {
7319 var22 = 1;
7320 } else {
7321 if(cltype23 >= (((long)var_tkwnullnode6&3)?type_info[((long)var_tkwnullnode6&3)]:var_tkwnullnode6->type)->table_size) {
7322 var22 = 0;
7323 } else {
7324 var22 = (((long)var_tkwnullnode6&3)?type_info[((long)var_tkwnullnode6&3)]:var_tkwnullnode6->type)->type_table[cltype23] == idtype24;
7325 }
7326 }
7327 if (unlikely(!var22)) {
7328 PRINT_ERROR("Runtime error: %s", "Assert failed");
7329 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8989);
7330 fatal_exit(1);
7331 }
7332 var_tcparnode7 = var_nodearraylist12;
7333 /* <var_tcparnode7:nullable Object> isa nullable TCpar */
7334 cltype26 = type_nullable__nit__TCpar.color;
7335 idtype27 = type_nullable__nit__TCpar.id;
7336 if(var_tcparnode7 == NULL) {
7337 var25 = 1;
7338 } else {
7339 if(cltype26 >= (((long)var_tcparnode7&3)?type_info[((long)var_tcparnode7&3)]:var_tcparnode7->type)->table_size) {
7340 var25 = 0;
7341 } else {
7342 var25 = (((long)var_tcparnode7&3)?type_info[((long)var_tcparnode7&3)]:var_tcparnode7->type)->type_table[cltype26] == idtype27;
7343 }
7344 }
7345 if (unlikely(!var25)) {
7346 PRINT_ERROR("Runtime error: %s", "Assert failed");
7347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 8991);
7348 fatal_exit(1);
7349 }
7350 var28 = NEW_nit__AAsNotnullExpr(&type_nit__AAsNotnullExpr);
7351 {
7352 nit__parser_prod___AAsNotnullExpr___init_aasnotnullexpr(var28, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_tkwnotnode5, var_tkwnullnode6, var_tcparnode7); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <var28:AAsNotnullExpr>*/
7353 }
7354 var_pexprnode1 = var28;
7355 var_node_list = var_pexprnode1;
7356 var29 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction364> */
7357 {
7358 var30 = nit___nit__Parser___go_to(var_p, var29);
7359 }
7360 {
7361 nit___nit__Parser___push(var_p, var30, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7362 }
7363 RET_LABEL:;
7364 }
7365 /* method parser#ReduceAction365#action for (self: ReduceAction365, Parser) */
7366 void nit__parser___nit__parser__ReduceAction365___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7367 val* var_p /* var p: Parser */;
7368 val* var_node_list /* var node_list: nullable Object */;
7369 val* var /* : nullable Object */;
7370 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7371 val* var1 /* : nullable Object */;
7372 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7373 val* var2 /* : nullable Object */;
7374 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7375 val* var3 /* : nullable Object */;
7376 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7377 val* var4 /* : nullable Object */;
7378 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7379 val* var5 /* : nullable Object */;
7380 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7381 val* var6 /* : nullable Object */;
7382 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7383 val* var7 /* : nullable Object */;
7384 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7385 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7386 short int var8 /* : Bool */;
7387 int cltype;
7388 int idtype;
7389 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7390 short int var9 /* : Bool */;
7391 int cltype10;
7392 int idtype11;
7393 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
7394 short int var12 /* : Bool */;
7395 int cltype13;
7396 int idtype14;
7397 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
7398 short int var15 /* : Bool */;
7399 int cltype16;
7400 int idtype17;
7401 val* var18 /* : AAsNotnullExpr */;
7402 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
7403 long var19 /* : Int */;
7404 long var20 /* : Int */;
7405 var_p = p0;
7406 var_node_list = ((val*)NULL);
7407 {
7408 var = nit___nit__Parser___pop(var_p);
7409 }
7410 var_nodearraylist8 = var;
7411 {
7412 var1 = nit___nit__Parser___pop(var_p);
7413 }
7414 var_nodearraylist7 = var1;
7415 {
7416 var2 = nit___nit__Parser___pop(var_p);
7417 }
7418 var_nodearraylist6 = var2;
7419 {
7420 var3 = nit___nit__Parser___pop(var_p);
7421 }
7422 var_nodearraylist5 = var3;
7423 {
7424 var4 = nit___nit__Parser___pop(var_p);
7425 }
7426 var_nodearraylist4 = var4;
7427 {
7428 var5 = nit___nit__Parser___pop(var_p);
7429 }
7430 var_nodearraylist3 = var5;
7431 {
7432 var6 = nit___nit__Parser___pop(var_p);
7433 }
7434 var_nodearraylist2 = var6;
7435 {
7436 var7 = nit___nit__Parser___pop(var_p);
7437 }
7438 var_nodearraylist1 = var7;
7439 var_pexprnode2 = var_nodearraylist1;
7440 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7441 cltype = type_nullable__nit__AExpr.color;
7442 idtype = type_nullable__nit__AExpr.id;
7443 if(var_pexprnode2 == NULL) {
7444 var8 = 1;
7445 } else {
7446 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
7447 var8 = 0;
7448 } else {
7449 var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
7450 }
7451 }
7452 if (unlikely(!var8)) {
7453 PRINT_ERROR("Runtime error: %s", "Assert failed");
7454 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9018);
7455 fatal_exit(1);
7456 }
7457 var_tkwasnode3 = var_nodearraylist4;
7458 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7459 cltype10 = type_nullable__nit__TKwas.color;
7460 idtype11 = type_nullable__nit__TKwas.id;
7461 if(var_tkwasnode3 == NULL) {
7462 var9 = 1;
7463 } else {
7464 if(cltype10 >= (((long)var_tkwasnode3&3)?type_info[((long)var_tkwasnode3&3)]:var_tkwasnode3->type)->table_size) {
7465 var9 = 0;
7466 } else {
7467 var9 = (((long)var_tkwasnode3&3)?type_info[((long)var_tkwasnode3&3)]:var_tkwasnode3->type)->type_table[cltype10] == idtype11;
7468 }
7469 }
7470 if (unlikely(!var9)) {
7471 PRINT_ERROR("Runtime error: %s", "Assert failed");
7472 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9020);
7473 fatal_exit(1);
7474 }
7475 var_tkwnotnode5 = var_nodearraylist6;
7476 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
7477 cltype13 = type_nullable__nit__TKwnot.color;
7478 idtype14 = type_nullable__nit__TKwnot.id;
7479 if(var_tkwnotnode5 == NULL) {
7480 var12 = 1;
7481 } else {
7482 if(cltype13 >= (((long)var_tkwnotnode5&3)?type_info[((long)var_tkwnotnode5&3)]:var_tkwnotnode5->type)->table_size) {
7483 var12 = 0;
7484 } else {
7485 var12 = (((long)var_tkwnotnode5&3)?type_info[((long)var_tkwnotnode5&3)]:var_tkwnotnode5->type)->type_table[cltype13] == idtype14;
7486 }
7487 }
7488 if (unlikely(!var12)) {
7489 PRINT_ERROR("Runtime error: %s", "Assert failed");
7490 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9022);
7491 fatal_exit(1);
7492 }
7493 var_tkwnullnode6 = var_nodearraylist8;
7494 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
7495 cltype16 = type_nullable__nit__TKwnull.color;
7496 idtype17 = type_nullable__nit__TKwnull.id;
7497 if(var_tkwnullnode6 == NULL) {
7498 var15 = 1;
7499 } else {
7500 if(cltype16 >= (((long)var_tkwnullnode6&3)?type_info[((long)var_tkwnullnode6&3)]:var_tkwnullnode6->type)->table_size) {
7501 var15 = 0;
7502 } else {
7503 var15 = (((long)var_tkwnullnode6&3)?type_info[((long)var_tkwnullnode6&3)]:var_tkwnullnode6->type)->type_table[cltype16] == idtype17;
7504 }
7505 }
7506 if (unlikely(!var15)) {
7507 PRINT_ERROR("Runtime error: %s", "Assert failed");
7508 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9024);
7509 fatal_exit(1);
7510 }
7511 var18 = NEW_nit__AAsNotnullExpr(&type_nit__AAsNotnullExpr);
7512 {
7513 nit__parser_prod___AAsNotnullExpr___init_aasnotnullexpr(var18, var_pexprnode2, var_tkwasnode3, ((val*)NULL), var_tkwnotnode5, var_tkwnullnode6, ((val*)NULL)); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <var18:AAsNotnullExpr>*/
7514 }
7515 var_pexprnode1 = var18;
7516 var_node_list = var_pexprnode1;
7517 var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction365> */
7518 {
7519 var20 = nit___nit__Parser___go_to(var_p, var19);
7520 }
7521 {
7522 nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7523 }
7524 RET_LABEL:;
7525 }
7526 /* method parser#ReduceAction367#action for (self: ReduceAction367, Parser) */
7527 void nit__parser___nit__parser__ReduceAction367___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7528 val* var_p /* var p: Parser */;
7529 val* var_node_list /* var node_list: nullable Object */;
7530 val* var /* : nullable Object */;
7531 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7532 val* var1 /* : nullable Object */;
7533 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7534 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7535 short int var2 /* : Bool */;
7536 int cltype;
7537 int idtype;
7538 val* var_tdotdotdotnode3 /* var tdotdotdotnode3: nullable Object */;
7539 short int var3 /* : Bool */;
7540 int cltype4;
7541 int idtype5;
7542 val* var6 /* : AVarargExpr */;
7543 val* var_pexprnode1 /* var pexprnode1: nullable AVarargExpr */;
7544 long var7 /* : Int */;
7545 long var8 /* : Int */;
7546 var_p = p0;
7547 var_node_list = ((val*)NULL);
7548 {
7549 var = nit___nit__Parser___pop(var_p);
7550 }
7551 var_nodearraylist2 = var;
7552 {
7553 var1 = nit___nit__Parser___pop(var_p);
7554 }
7555 var_nodearraylist1 = var1;
7556 var_pexprnode2 = var_nodearraylist1;
7557 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7558 cltype = type_nullable__nit__AExpr.color;
7559 idtype = type_nullable__nit__AExpr.id;
7560 if(var_pexprnode2 == NULL) {
7561 var2 = 1;
7562 } else {
7563 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
7564 var2 = 0;
7565 } else {
7566 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
7567 }
7568 }
7569 if (unlikely(!var2)) {
7570 PRINT_ERROR("Runtime error: %s", "Assert failed");
7571 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9045);
7572 fatal_exit(1);
7573 }
7574 var_tdotdotdotnode3 = var_nodearraylist2;
7575 /* <var_tdotdotdotnode3:nullable Object> isa nullable TDotdotdot */
7576 cltype4 = type_nullable__nit__TDotdotdot.color;
7577 idtype5 = type_nullable__nit__TDotdotdot.id;
7578 if(var_tdotdotdotnode3 == NULL) {
7579 var3 = 1;
7580 } else {
7581 if(cltype4 >= (((long)var_tdotdotdotnode3&3)?type_info[((long)var_tdotdotdotnode3&3)]:var_tdotdotdotnode3->type)->table_size) {
7582 var3 = 0;
7583 } else {
7584 var3 = (((long)var_tdotdotdotnode3&3)?type_info[((long)var_tdotdotdotnode3&3)]:var_tdotdotdotnode3->type)->type_table[cltype4] == idtype5;
7585 }
7586 }
7587 if (unlikely(!var3)) {
7588 PRINT_ERROR("Runtime error: %s", "Assert failed");
7589 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9047);
7590 fatal_exit(1);
7591 }
7592 var6 = NEW_nit__AVarargExpr(&type_nit__AVarargExpr);
7593 {
7594 nit__parser_prod___AVarargExpr___init_avarargexpr(var6, var_pexprnode2, var_tdotdotdotnode3); /* Direct call parser_prod#AVarargExpr#init_avarargexpr on <var6:AVarargExpr>*/
7595 }
7596 var_pexprnode1 = var6;
7597 var_node_list = var_pexprnode1;
7598 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction367> */
7599 {
7600 var8 = nit___nit__Parser___go_to(var_p, var7);
7601 }
7602 {
7603 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7604 }
7605 RET_LABEL:;
7606 }
7607 /* method parser#ReduceAction368#action for (self: ReduceAction368, Parser) */
7608 void nit__parser___nit__parser__ReduceAction368___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7609 val* var_p /* var p: Parser */;
7610 val* var_node_list /* var node_list: nullable Object */;
7611 val* var /* : nullable Object */;
7612 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7613 val* var1 /* : nullable Object */;
7614 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7615 val* var2 /* : nullable Object */;
7616 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7617 val* var_tidnode2 /* var tidnode2: nullable Object */;
7618 short int var3 /* : Bool */;
7619 int cltype;
7620 int idtype;
7621 val* var_tassignnode3 /* var tassignnode3: nullable Object */;
7622 short int var4 /* : Bool */;
7623 int cltype5;
7624 int idtype6;
7625 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7626 short int var7 /* : Bool */;
7627 int cltype8;
7628 int idtype9;
7629 val* var10 /* : ANamedargExpr */;
7630 val* var_pexprnode1 /* var pexprnode1: nullable ANamedargExpr */;
7631 long var11 /* : Int */;
7632 long var12 /* : Int */;
7633 var_p = p0;
7634 var_node_list = ((val*)NULL);
7635 {
7636 var = nit___nit__Parser___pop(var_p);
7637 }
7638 var_nodearraylist3 = var;
7639 {
7640 var1 = nit___nit__Parser___pop(var_p);
7641 }
7642 var_nodearraylist2 = var1;
7643 {
7644 var2 = nit___nit__Parser___pop(var_p);
7645 }
7646 var_nodearraylist1 = var2;
7647 var_tidnode2 = var_nodearraylist1;
7648 /* <var_tidnode2:nullable Object> isa nullable TId */
7649 cltype = type_nullable__nit__TId.color;
7650 idtype = type_nullable__nit__TId.id;
7651 if(var_tidnode2 == NULL) {
7652 var3 = 1;
7653 } else {
7654 if(cltype >= (((long)var_tidnode2&3)?type_info[((long)var_tidnode2&3)]:var_tidnode2->type)->table_size) {
7655 var3 = 0;
7656 } else {
7657 var3 = (((long)var_tidnode2&3)?type_info[((long)var_tidnode2&3)]:var_tidnode2->type)->type_table[cltype] == idtype;
7658 }
7659 }
7660 if (unlikely(!var3)) {
7661 PRINT_ERROR("Runtime error: %s", "Assert failed");
7662 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9065);
7663 fatal_exit(1);
7664 }
7665 var_tassignnode3 = var_nodearraylist2;
7666 /* <var_tassignnode3:nullable Object> isa nullable TAssign */
7667 cltype5 = type_nullable__nit__TAssign.color;
7668 idtype6 = type_nullable__nit__TAssign.id;
7669 if(var_tassignnode3 == NULL) {
7670 var4 = 1;
7671 } else {
7672 if(cltype5 >= (((long)var_tassignnode3&3)?type_info[((long)var_tassignnode3&3)]:var_tassignnode3->type)->table_size) {
7673 var4 = 0;
7674 } else {
7675 var4 = (((long)var_tassignnode3&3)?type_info[((long)var_tassignnode3&3)]:var_tassignnode3->type)->type_table[cltype5] == idtype6;
7676 }
7677 }
7678 if (unlikely(!var4)) {
7679 PRINT_ERROR("Runtime error: %s", "Assert failed");
7680 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9067);
7681 fatal_exit(1);
7682 }
7683 var_pexprnode4 = var_nodearraylist3;
7684 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7685 cltype8 = type_nullable__nit__AExpr.color;
7686 idtype9 = type_nullable__nit__AExpr.id;
7687 if(var_pexprnode4 == NULL) {
7688 var7 = 1;
7689 } else {
7690 if(cltype8 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
7691 var7 = 0;
7692 } else {
7693 var7 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype8] == idtype9;
7694 }
7695 }
7696 if (unlikely(!var7)) {
7697 PRINT_ERROR("Runtime error: %s", "Assert failed");
7698 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9069);
7699 fatal_exit(1);
7700 }
7701 var10 = NEW_nit__ANamedargExpr(&type_nit__ANamedargExpr);
7702 {
7703 nit__parser_prod___ANamedargExpr___init_anamedargexpr(var10, var_tidnode2, var_tassignnode3, var_pexprnode4); /* Direct call parser_prod#ANamedargExpr#init_anamedargexpr on <var10:ANamedargExpr>*/
7704 }
7705 var_pexprnode1 = var10;
7706 var_node_list = var_pexprnode1;
7707 var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction368> */
7708 {
7709 var12 = nit___nit__Parser___go_to(var_p, var11);
7710 }
7711 {
7712 nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7713 }
7714 RET_LABEL:;
7715 }
7716 /* method parser#ReduceAction369#action for (self: ReduceAction369, Parser) */
7717 void nit__parser___nit__parser__ReduceAction369___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7718 val* var_p /* var p: Parser */;
7719 val* var_node_list /* var node_list: nullable Object */;
7720 val* var /* : nullable Object */;
7721 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7722 val* var1 /* : nullable Object */;
7723 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7724 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
7725 short int var2 /* : Bool */;
7726 int cltype;
7727 int idtype;
7728 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
7729 short int var3 /* : Bool */;
7730 int cltype4;
7731 int idtype5;
7732 val* var6 /* : ASelfExpr */;
7733 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
7734 long var7 /* : Int */;
7735 long var8 /* : Int */;
7736 var_p = p0;
7737 var_node_list = ((val*)NULL);
7738 {
7739 var = nit___nit__Parser___pop(var_p);
7740 }
7741 var_nodearraylist2 = var;
7742 {
7743 var1 = nit___nit__Parser___pop(var_p);
7744 }
7745 var_nodearraylist1 = var1;
7746 var_tkwselfnode2 = var_nodearraylist1;
7747 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
7748 cltype = type_nullable__nit__TKwself.color;
7749 idtype = type_nullable__nit__TKwself.id;
7750 if(var_tkwselfnode2 == NULL) {
7751 var2 = 1;
7752 } else {
7753 if(cltype >= (((long)var_tkwselfnode2&3)?type_info[((long)var_tkwselfnode2&3)]:var_tkwselfnode2->type)->table_size) {
7754 var2 = 0;
7755 } else {
7756 var2 = (((long)var_tkwselfnode2&3)?type_info[((long)var_tkwselfnode2&3)]:var_tkwselfnode2->type)->type_table[cltype] == idtype;
7757 }
7758 }
7759 if (unlikely(!var2)) {
7760 PRINT_ERROR("Runtime error: %s", "Assert failed");
7761 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9087);
7762 fatal_exit(1);
7763 }
7764 var_pannotationsnode3 = var_nodearraylist2;
7765 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
7766 cltype4 = type_nullable__nit__AAnnotations.color;
7767 idtype5 = type_nullable__nit__AAnnotations.id;
7768 if(var_pannotationsnode3 == NULL) {
7769 var3 = 1;
7770 } else {
7771 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
7772 var3 = 0;
7773 } else {
7774 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
7775 }
7776 }
7777 if (unlikely(!var3)) {
7778 PRINT_ERROR("Runtime error: %s", "Assert failed");
7779 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9089);
7780 fatal_exit(1);
7781 }
7782 var6 = NEW_nit__ASelfExpr(&type_nit__ASelfExpr);
7783 {
7784 nit__parser_prod___ASelfExpr___init_aselfexpr(var6, var_tkwselfnode2, var_pannotationsnode3); /* Direct call parser_prod#ASelfExpr#init_aselfexpr on <var6:ASelfExpr>*/
7785 }
7786 var_pexprnode1 = var6;
7787 var_node_list = var_pexprnode1;
7788 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction369> */
7789 {
7790 var8 = nit___nit__Parser___go_to(var_p, var7);
7791 }
7792 {
7793 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7794 }
7795 RET_LABEL:;
7796 }
7797 /* method parser#ReduceAction370#action for (self: ReduceAction370, Parser) */
7798 void nit__parser___nit__parser__ReduceAction370___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7799 val* var_p /* var p: Parser */;
7800 val* var_node_list /* var node_list: nullable Object */;
7801 val* var /* : nullable Object */;
7802 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7803 val* var1 /* : nullable Object */;
7804 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7805 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
7806 short int var2 /* : Bool */;
7807 int cltype;
7808 int idtype;
7809 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
7810 short int var3 /* : Bool */;
7811 int cltype4;
7812 int idtype5;
7813 val* var6 /* : ATrueExpr */;
7814 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
7815 long var7 /* : Int */;
7816 long var8 /* : Int */;
7817 var_p = p0;
7818 var_node_list = ((val*)NULL);
7819 {
7820 var = nit___nit__Parser___pop(var_p);
7821 }
7822 var_nodearraylist2 = var;
7823 {
7824 var1 = nit___nit__Parser___pop(var_p);
7825 }
7826 var_nodearraylist1 = var1;
7827 var_tkwtruenode2 = var_nodearraylist1;
7828 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
7829 cltype = type_nullable__nit__TKwtrue.color;
7830 idtype = type_nullable__nit__TKwtrue.id;
7831 if(var_tkwtruenode2 == NULL) {
7832 var2 = 1;
7833 } else {
7834 if(cltype >= (((long)var_tkwtruenode2&3)?type_info[((long)var_tkwtruenode2&3)]:var_tkwtruenode2->type)->table_size) {
7835 var2 = 0;
7836 } else {
7837 var2 = (((long)var_tkwtruenode2&3)?type_info[((long)var_tkwtruenode2&3)]:var_tkwtruenode2->type)->type_table[cltype] == idtype;
7838 }
7839 }
7840 if (unlikely(!var2)) {
7841 PRINT_ERROR("Runtime error: %s", "Assert failed");
7842 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9106);
7843 fatal_exit(1);
7844 }
7845 var_pannotationsnode3 = var_nodearraylist2;
7846 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
7847 cltype4 = type_nullable__nit__AAnnotations.color;
7848 idtype5 = type_nullable__nit__AAnnotations.id;
7849 if(var_pannotationsnode3 == NULL) {
7850 var3 = 1;
7851 } else {
7852 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
7853 var3 = 0;
7854 } else {
7855 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
7856 }
7857 }
7858 if (unlikely(!var3)) {
7859 PRINT_ERROR("Runtime error: %s", "Assert failed");
7860 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9108);
7861 fatal_exit(1);
7862 }
7863 var6 = NEW_nit__ATrueExpr(&type_nit__ATrueExpr);
7864 {
7865 nit__parser_prod___ATrueExpr___init_atrueexpr(var6, var_tkwtruenode2, var_pannotationsnode3); /* Direct call parser_prod#ATrueExpr#init_atrueexpr on <var6:ATrueExpr>*/
7866 }
7867 var_pexprnode1 = var6;
7868 var_node_list = var_pexprnode1;
7869 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction370> */
7870 {
7871 var8 = nit___nit__Parser___go_to(var_p, var7);
7872 }
7873 {
7874 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7875 }
7876 RET_LABEL:;
7877 }
7878 /* method parser#ReduceAction371#action for (self: ReduceAction371, Parser) */
7879 void nit__parser___nit__parser__ReduceAction371___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7880 val* var_p /* var p: Parser */;
7881 val* var_node_list /* var node_list: nullable Object */;
7882 val* var /* : nullable Object */;
7883 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7884 val* var1 /* : nullable Object */;
7885 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7886 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
7887 short int var2 /* : Bool */;
7888 int cltype;
7889 int idtype;
7890 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
7891 short int var3 /* : Bool */;
7892 int cltype4;
7893 int idtype5;
7894 val* var6 /* : AFalseExpr */;
7895 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
7896 long var7 /* : Int */;
7897 long var8 /* : Int */;
7898 var_p = p0;
7899 var_node_list = ((val*)NULL);
7900 {
7901 var = nit___nit__Parser___pop(var_p);
7902 }
7903 var_nodearraylist2 = var;
7904 {
7905 var1 = nit___nit__Parser___pop(var_p);
7906 }
7907 var_nodearraylist1 = var1;
7908 var_tkwfalsenode2 = var_nodearraylist1;
7909 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
7910 cltype = type_nullable__nit__TKwfalse.color;
7911 idtype = type_nullable__nit__TKwfalse.id;
7912 if(var_tkwfalsenode2 == NULL) {
7913 var2 = 1;
7914 } else {
7915 if(cltype >= (((long)var_tkwfalsenode2&3)?type_info[((long)var_tkwfalsenode2&3)]:var_tkwfalsenode2->type)->table_size) {
7916 var2 = 0;
7917 } else {
7918 var2 = (((long)var_tkwfalsenode2&3)?type_info[((long)var_tkwfalsenode2&3)]:var_tkwfalsenode2->type)->type_table[cltype] == idtype;
7919 }
7920 }
7921 if (unlikely(!var2)) {
7922 PRINT_ERROR("Runtime error: %s", "Assert failed");
7923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9125);
7924 fatal_exit(1);
7925 }
7926 var_pannotationsnode3 = var_nodearraylist2;
7927 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
7928 cltype4 = type_nullable__nit__AAnnotations.color;
7929 idtype5 = type_nullable__nit__AAnnotations.id;
7930 if(var_pannotationsnode3 == NULL) {
7931 var3 = 1;
7932 } else {
7933 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
7934 var3 = 0;
7935 } else {
7936 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
7937 }
7938 }
7939 if (unlikely(!var3)) {
7940 PRINT_ERROR("Runtime error: %s", "Assert failed");
7941 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9127);
7942 fatal_exit(1);
7943 }
7944 var6 = NEW_nit__AFalseExpr(&type_nit__AFalseExpr);
7945 {
7946 nit__parser_prod___AFalseExpr___init_afalseexpr(var6, var_tkwfalsenode2, var_pannotationsnode3); /* Direct call parser_prod#AFalseExpr#init_afalseexpr on <var6:AFalseExpr>*/
7947 }
7948 var_pexprnode1 = var6;
7949 var_node_list = var_pexprnode1;
7950 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction371> */
7951 {
7952 var8 = nit___nit__Parser___go_to(var_p, var7);
7953 }
7954 {
7955 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7956 }
7957 RET_LABEL:;
7958 }
7959 /* method parser#ReduceAction372#action for (self: ReduceAction372, Parser) */
7960 void nit__parser___nit__parser__ReduceAction372___nit__parser_work__ReduceAction__action(val* self, val* p0) {
7961 val* var_p /* var p: Parser */;
7962 val* var_node_list /* var node_list: nullable Object */;
7963 val* var /* : nullable Object */;
7964 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7965 val* var1 /* : nullable Object */;
7966 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7967 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
7968 short int var2 /* : Bool */;
7969 int cltype;
7970 int idtype;
7971 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
7972 short int var3 /* : Bool */;
7973 int cltype4;
7974 int idtype5;
7975 val* var6 /* : ANullExpr */;
7976 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
7977 long var7 /* : Int */;
7978 long var8 /* : Int */;
7979 var_p = p0;
7980 var_node_list = ((val*)NULL);
7981 {
7982 var = nit___nit__Parser___pop(var_p);
7983 }
7984 var_nodearraylist2 = var;
7985 {
7986 var1 = nit___nit__Parser___pop(var_p);
7987 }
7988 var_nodearraylist1 = var1;
7989 var_tkwnullnode2 = var_nodearraylist1;
7990 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
7991 cltype = type_nullable__nit__TKwnull.color;
7992 idtype = type_nullable__nit__TKwnull.id;
7993 if(var_tkwnullnode2 == NULL) {
7994 var2 = 1;
7995 } else {
7996 if(cltype >= (((long)var_tkwnullnode2&3)?type_info[((long)var_tkwnullnode2&3)]:var_tkwnullnode2->type)->table_size) {
7997 var2 = 0;
7998 } else {
7999 var2 = (((long)var_tkwnullnode2&3)?type_info[((long)var_tkwnullnode2&3)]:var_tkwnullnode2->type)->type_table[cltype] == idtype;
8000 }
8001 }
8002 if (unlikely(!var2)) {
8003 PRINT_ERROR("Runtime error: %s", "Assert failed");
8004 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9144);
8005 fatal_exit(1);
8006 }
8007 var_pannotationsnode3 = var_nodearraylist2;
8008 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8009 cltype4 = type_nullable__nit__AAnnotations.color;
8010 idtype5 = type_nullable__nit__AAnnotations.id;
8011 if(var_pannotationsnode3 == NULL) {
8012 var3 = 1;
8013 } else {
8014 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8015 var3 = 0;
8016 } else {
8017 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8018 }
8019 }
8020 if (unlikely(!var3)) {
8021 PRINT_ERROR("Runtime error: %s", "Assert failed");
8022 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9146);
8023 fatal_exit(1);
8024 }
8025 var6 = NEW_nit__ANullExpr(&type_nit__ANullExpr);
8026 {
8027 nit__parser_prod___ANullExpr___init_anullexpr(var6, var_tkwnullnode2, var_pannotationsnode3); /* Direct call parser_prod#ANullExpr#init_anullexpr on <var6:ANullExpr>*/
8028 }
8029 var_pexprnode1 = var6;
8030 var_node_list = var_pexprnode1;
8031 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction372> */
8032 {
8033 var8 = nit___nit__Parser___go_to(var_p, var7);
8034 }
8035 {
8036 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8037 }
8038 RET_LABEL:;
8039 }
8040 /* method parser#ReduceAction373#action for (self: ReduceAction373, Parser) */
8041 void nit__parser___nit__parser__ReduceAction373___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8042 val* var_p /* var p: Parser */;
8043 val* var_node_list /* var node_list: nullable Object */;
8044 val* var /* : nullable Object */;
8045 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8046 val* var1 /* : nullable Object */;
8047 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8048 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
8049 short int var2 /* : Bool */;
8050 int cltype;
8051 int idtype;
8052 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8053 short int var3 /* : Bool */;
8054 int cltype4;
8055 int idtype5;
8056 val* var6 /* : ADecIntExpr */;
8057 val* var_pexprnode1 /* var pexprnode1: nullable ADecIntExpr */;
8058 long var7 /* : Int */;
8059 long var8 /* : Int */;
8060 var_p = p0;
8061 var_node_list = ((val*)NULL);
8062 {
8063 var = nit___nit__Parser___pop(var_p);
8064 }
8065 var_nodearraylist2 = var;
8066 {
8067 var1 = nit___nit__Parser___pop(var_p);
8068 }
8069 var_nodearraylist1 = var1;
8070 var_tnumbernode2 = var_nodearraylist1;
8071 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
8072 cltype = type_nullable__nit__TNumber.color;
8073 idtype = type_nullable__nit__TNumber.id;
8074 if(var_tnumbernode2 == NULL) {
8075 var2 = 1;
8076 } else {
8077 if(cltype >= (((long)var_tnumbernode2&3)?type_info[((long)var_tnumbernode2&3)]:var_tnumbernode2->type)->table_size) {
8078 var2 = 0;
8079 } else {
8080 var2 = (((long)var_tnumbernode2&3)?type_info[((long)var_tnumbernode2&3)]:var_tnumbernode2->type)->type_table[cltype] == idtype;
8081 }
8082 }
8083 if (unlikely(!var2)) {
8084 PRINT_ERROR("Runtime error: %s", "Assert failed");
8085 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9163);
8086 fatal_exit(1);
8087 }
8088 var_pannotationsnode3 = var_nodearraylist2;
8089 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8090 cltype4 = type_nullable__nit__AAnnotations.color;
8091 idtype5 = type_nullable__nit__AAnnotations.id;
8092 if(var_pannotationsnode3 == NULL) {
8093 var3 = 1;
8094 } else {
8095 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8096 var3 = 0;
8097 } else {
8098 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8099 }
8100 }
8101 if (unlikely(!var3)) {
8102 PRINT_ERROR("Runtime error: %s", "Assert failed");
8103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9165);
8104 fatal_exit(1);
8105 }
8106 var6 = NEW_nit__ADecIntExpr(&type_nit__ADecIntExpr);
8107 {
8108 nit__parser_prod___ADecIntExpr___init_adecintexpr(var6, var_tnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#ADecIntExpr#init_adecintexpr on <var6:ADecIntExpr>*/
8109 }
8110 var_pexprnode1 = var6;
8111 var_node_list = var_pexprnode1;
8112 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction373> */
8113 {
8114 var8 = nit___nit__Parser___go_to(var_p, var7);
8115 }
8116 {
8117 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8118 }
8119 RET_LABEL:;
8120 }
8121 /* method parser#ReduceAction374#action for (self: ReduceAction374, Parser) */
8122 void nit__parser___nit__parser__ReduceAction374___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8123 val* var_p /* var p: Parser */;
8124 val* var_node_list /* var node_list: nullable Object */;
8125 val* var /* : nullable Object */;
8126 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8127 val* var1 /* : nullable Object */;
8128 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8129 val* var_thexnumbernode2 /* var thexnumbernode2: nullable Object */;
8130 short int var2 /* : Bool */;
8131 int cltype;
8132 int idtype;
8133 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8134 short int var3 /* : Bool */;
8135 int cltype4;
8136 int idtype5;
8137 val* var6 /* : AHexIntExpr */;
8138 val* var_pexprnode1 /* var pexprnode1: nullable AHexIntExpr */;
8139 long var7 /* : Int */;
8140 long var8 /* : Int */;
8141 var_p = p0;
8142 var_node_list = ((val*)NULL);
8143 {
8144 var = nit___nit__Parser___pop(var_p);
8145 }
8146 var_nodearraylist2 = var;
8147 {
8148 var1 = nit___nit__Parser___pop(var_p);
8149 }
8150 var_nodearraylist1 = var1;
8151 var_thexnumbernode2 = var_nodearraylist1;
8152 /* <var_thexnumbernode2:nullable Object> isa nullable THexNumber */
8153 cltype = type_nullable__nit__THexNumber.color;
8154 idtype = type_nullable__nit__THexNumber.id;
8155 if(var_thexnumbernode2 == NULL) {
8156 var2 = 1;
8157 } else {
8158 if(cltype >= (((long)var_thexnumbernode2&3)?type_info[((long)var_thexnumbernode2&3)]:var_thexnumbernode2->type)->table_size) {
8159 var2 = 0;
8160 } else {
8161 var2 = (((long)var_thexnumbernode2&3)?type_info[((long)var_thexnumbernode2&3)]:var_thexnumbernode2->type)->type_table[cltype] == idtype;
8162 }
8163 }
8164 if (unlikely(!var2)) {
8165 PRINT_ERROR("Runtime error: %s", "Assert failed");
8166 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9182);
8167 fatal_exit(1);
8168 }
8169 var_pannotationsnode3 = var_nodearraylist2;
8170 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8171 cltype4 = type_nullable__nit__AAnnotations.color;
8172 idtype5 = type_nullable__nit__AAnnotations.id;
8173 if(var_pannotationsnode3 == NULL) {
8174 var3 = 1;
8175 } else {
8176 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8177 var3 = 0;
8178 } else {
8179 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8180 }
8181 }
8182 if (unlikely(!var3)) {
8183 PRINT_ERROR("Runtime error: %s", "Assert failed");
8184 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9184);
8185 fatal_exit(1);
8186 }
8187 var6 = NEW_nit__AHexIntExpr(&type_nit__AHexIntExpr);
8188 {
8189 nit__parser_prod___AHexIntExpr___init_ahexintexpr(var6, var_thexnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#AHexIntExpr#init_ahexintexpr on <var6:AHexIntExpr>*/
8190 }
8191 var_pexprnode1 = var6;
8192 var_node_list = var_pexprnode1;
8193 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction374> */
8194 {
8195 var8 = nit___nit__Parser___go_to(var_p, var7);
8196 }
8197 {
8198 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8199 }
8200 RET_LABEL:;
8201 }
8202 /* method parser#ReduceAction375#action for (self: ReduceAction375, Parser) */
8203 void nit__parser___nit__parser__ReduceAction375___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8204 val* var_p /* var p: Parser */;
8205 val* var_node_list /* var node_list: nullable Object */;
8206 val* var /* : nullable Object */;
8207 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8208 val* var1 /* : nullable Object */;
8209 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8210 val* var_tbinnumbernode2 /* var tbinnumbernode2: nullable Object */;
8211 short int var2 /* : Bool */;
8212 int cltype;
8213 int idtype;
8214 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8215 short int var3 /* : Bool */;
8216 int cltype4;
8217 int idtype5;
8218 val* var6 /* : ABinIntExpr */;
8219 val* var_pexprnode1 /* var pexprnode1: nullable ABinIntExpr */;
8220 long var7 /* : Int */;
8221 long var8 /* : Int */;
8222 var_p = p0;
8223 var_node_list = ((val*)NULL);
8224 {
8225 var = nit___nit__Parser___pop(var_p);
8226 }
8227 var_nodearraylist2 = var;
8228 {
8229 var1 = nit___nit__Parser___pop(var_p);
8230 }
8231 var_nodearraylist1 = var1;
8232 var_tbinnumbernode2 = var_nodearraylist1;
8233 /* <var_tbinnumbernode2:nullable Object> isa nullable TBinNumber */
8234 cltype = type_nullable__nit__TBinNumber.color;
8235 idtype = type_nullable__nit__TBinNumber.id;
8236 if(var_tbinnumbernode2 == NULL) {
8237 var2 = 1;
8238 } else {
8239 if(cltype >= (((long)var_tbinnumbernode2&3)?type_info[((long)var_tbinnumbernode2&3)]:var_tbinnumbernode2->type)->table_size) {
8240 var2 = 0;
8241 } else {
8242 var2 = (((long)var_tbinnumbernode2&3)?type_info[((long)var_tbinnumbernode2&3)]:var_tbinnumbernode2->type)->type_table[cltype] == idtype;
8243 }
8244 }
8245 if (unlikely(!var2)) {
8246 PRINT_ERROR("Runtime error: %s", "Assert failed");
8247 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9201);
8248 fatal_exit(1);
8249 }
8250 var_pannotationsnode3 = var_nodearraylist2;
8251 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8252 cltype4 = type_nullable__nit__AAnnotations.color;
8253 idtype5 = type_nullable__nit__AAnnotations.id;
8254 if(var_pannotationsnode3 == NULL) {
8255 var3 = 1;
8256 } else {
8257 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8258 var3 = 0;
8259 } else {
8260 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8261 }
8262 }
8263 if (unlikely(!var3)) {
8264 PRINT_ERROR("Runtime error: %s", "Assert failed");
8265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9203);
8266 fatal_exit(1);
8267 }
8268 var6 = NEW_nit__ABinIntExpr(&type_nit__ABinIntExpr);
8269 {
8270 nit__parser_prod___ABinIntExpr___init_abinintexpr(var6, var_tbinnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#ABinIntExpr#init_abinintexpr on <var6:ABinIntExpr>*/
8271 }
8272 var_pexprnode1 = var6;
8273 var_node_list = var_pexprnode1;
8274 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction375> */
8275 {
8276 var8 = nit___nit__Parser___go_to(var_p, var7);
8277 }
8278 {
8279 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8280 }
8281 RET_LABEL:;
8282 }
8283 /* method parser#ReduceAction376#action for (self: ReduceAction376, Parser) */
8284 void nit__parser___nit__parser__ReduceAction376___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8285 val* var_p /* var p: Parser */;
8286 val* var_node_list /* var node_list: nullable Object */;
8287 val* var /* : nullable Object */;
8288 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8289 val* var1 /* : nullable Object */;
8290 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8291 val* var_toctnumbernode2 /* var toctnumbernode2: nullable Object */;
8292 short int var2 /* : Bool */;
8293 int cltype;
8294 int idtype;
8295 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8296 short int var3 /* : Bool */;
8297 int cltype4;
8298 int idtype5;
8299 val* var6 /* : AOctIntExpr */;
8300 val* var_pexprnode1 /* var pexprnode1: nullable AOctIntExpr */;
8301 long var7 /* : Int */;
8302 long var8 /* : Int */;
8303 var_p = p0;
8304 var_node_list = ((val*)NULL);
8305 {
8306 var = nit___nit__Parser___pop(var_p);
8307 }
8308 var_nodearraylist2 = var;
8309 {
8310 var1 = nit___nit__Parser___pop(var_p);
8311 }
8312 var_nodearraylist1 = var1;
8313 var_toctnumbernode2 = var_nodearraylist1;
8314 /* <var_toctnumbernode2:nullable Object> isa nullable TOctNumber */
8315 cltype = type_nullable__nit__TOctNumber.color;
8316 idtype = type_nullable__nit__TOctNumber.id;
8317 if(var_toctnumbernode2 == NULL) {
8318 var2 = 1;
8319 } else {
8320 if(cltype >= (((long)var_toctnumbernode2&3)?type_info[((long)var_toctnumbernode2&3)]:var_toctnumbernode2->type)->table_size) {
8321 var2 = 0;
8322 } else {
8323 var2 = (((long)var_toctnumbernode2&3)?type_info[((long)var_toctnumbernode2&3)]:var_toctnumbernode2->type)->type_table[cltype] == idtype;
8324 }
8325 }
8326 if (unlikely(!var2)) {
8327 PRINT_ERROR("Runtime error: %s", "Assert failed");
8328 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9220);
8329 fatal_exit(1);
8330 }
8331 var_pannotationsnode3 = var_nodearraylist2;
8332 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8333 cltype4 = type_nullable__nit__AAnnotations.color;
8334 idtype5 = type_nullable__nit__AAnnotations.id;
8335 if(var_pannotationsnode3 == NULL) {
8336 var3 = 1;
8337 } else {
8338 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8339 var3 = 0;
8340 } else {
8341 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8342 }
8343 }
8344 if (unlikely(!var3)) {
8345 PRINT_ERROR("Runtime error: %s", "Assert failed");
8346 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9222);
8347 fatal_exit(1);
8348 }
8349 var6 = NEW_nit__AOctIntExpr(&type_nit__AOctIntExpr);
8350 {
8351 nit__parser_prod___AOctIntExpr___init_aoctintexpr(var6, var_toctnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#AOctIntExpr#init_aoctintexpr on <var6:AOctIntExpr>*/
8352 }
8353 var_pexprnode1 = var6;
8354 var_node_list = var_pexprnode1;
8355 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction376> */
8356 {
8357 var8 = nit___nit__Parser___go_to(var_p, var7);
8358 }
8359 {
8360 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8361 }
8362 RET_LABEL:;
8363 }
8364 /* method parser#ReduceAction377#action for (self: ReduceAction377, Parser) */
8365 void nit__parser___nit__parser__ReduceAction377___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8366 val* var_p /* var p: Parser */;
8367 val* var_node_list /* var node_list: nullable Object */;
8368 val* var /* : nullable Object */;
8369 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8370 val* var1 /* : nullable Object */;
8371 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8372 val* var_tbytenumnode2 /* var tbytenumnode2: nullable Object */;
8373 short int var2 /* : Bool */;
8374 int cltype;
8375 int idtype;
8376 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8377 short int var3 /* : Bool */;
8378 int cltype4;
8379 int idtype5;
8380 val* var6 /* : ADecByteExpr */;
8381 val* var_pexprnode1 /* var pexprnode1: nullable ADecByteExpr */;
8382 long var7 /* : Int */;
8383 long var8 /* : Int */;
8384 var_p = p0;
8385 var_node_list = ((val*)NULL);
8386 {
8387 var = nit___nit__Parser___pop(var_p);
8388 }
8389 var_nodearraylist2 = var;
8390 {
8391 var1 = nit___nit__Parser___pop(var_p);
8392 }
8393 var_nodearraylist1 = var1;
8394 var_tbytenumnode2 = var_nodearraylist1;
8395 /* <var_tbytenumnode2:nullable Object> isa nullable TBytenum */
8396 cltype = type_nullable__nit__TBytenum.color;
8397 idtype = type_nullable__nit__TBytenum.id;
8398 if(var_tbytenumnode2 == NULL) {
8399 var2 = 1;
8400 } else {
8401 if(cltype >= (((long)var_tbytenumnode2&3)?type_info[((long)var_tbytenumnode2&3)]:var_tbytenumnode2->type)->table_size) {
8402 var2 = 0;
8403 } else {
8404 var2 = (((long)var_tbytenumnode2&3)?type_info[((long)var_tbytenumnode2&3)]:var_tbytenumnode2->type)->type_table[cltype] == idtype;
8405 }
8406 }
8407 if (unlikely(!var2)) {
8408 PRINT_ERROR("Runtime error: %s", "Assert failed");
8409 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9239);
8410 fatal_exit(1);
8411 }
8412 var_pannotationsnode3 = var_nodearraylist2;
8413 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8414 cltype4 = type_nullable__nit__AAnnotations.color;
8415 idtype5 = type_nullable__nit__AAnnotations.id;
8416 if(var_pannotationsnode3 == NULL) {
8417 var3 = 1;
8418 } else {
8419 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8420 var3 = 0;
8421 } else {
8422 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8423 }
8424 }
8425 if (unlikely(!var3)) {
8426 PRINT_ERROR("Runtime error: %s", "Assert failed");
8427 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9241);
8428 fatal_exit(1);
8429 }
8430 var6 = NEW_nit__ADecByteExpr(&type_nit__ADecByteExpr);
8431 {
8432 nit__parser_prod___ADecByteExpr___init_adecbyteexpr(var6, var_tbytenumnode2, var_pannotationsnode3); /* Direct call parser_prod#ADecByteExpr#init_adecbyteexpr on <var6:ADecByteExpr>*/
8433 }
8434 var_pexprnode1 = var6;
8435 var_node_list = var_pexprnode1;
8436 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction377> */
8437 {
8438 var8 = nit___nit__Parser___go_to(var_p, var7);
8439 }
8440 {
8441 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8442 }
8443 RET_LABEL:;
8444 }
8445 /* method parser#ReduceAction378#action for (self: ReduceAction378, Parser) */
8446 void nit__parser___nit__parser__ReduceAction378___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8447 val* var_p /* var p: Parser */;
8448 val* var_node_list /* var node_list: nullable Object */;
8449 val* var /* : nullable Object */;
8450 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8451 val* var1 /* : nullable Object */;
8452 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8453 val* var_thexbytenumnode2 /* var thexbytenumnode2: nullable Object */;
8454 short int var2 /* : Bool */;
8455 int cltype;
8456 int idtype;
8457 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8458 short int var3 /* : Bool */;
8459 int cltype4;
8460 int idtype5;
8461 val* var6 /* : AHexByteExpr */;
8462 val* var_pexprnode1 /* var pexprnode1: nullable AHexByteExpr */;
8463 long var7 /* : Int */;
8464 long var8 /* : Int */;
8465 var_p = p0;
8466 var_node_list = ((val*)NULL);
8467 {
8468 var = nit___nit__Parser___pop(var_p);
8469 }
8470 var_nodearraylist2 = var;
8471 {
8472 var1 = nit___nit__Parser___pop(var_p);
8473 }
8474 var_nodearraylist1 = var1;
8475 var_thexbytenumnode2 = var_nodearraylist1;
8476 /* <var_thexbytenumnode2:nullable Object> isa nullable THexBytenum */
8477 cltype = type_nullable__nit__THexBytenum.color;
8478 idtype = type_nullable__nit__THexBytenum.id;
8479 if(var_thexbytenumnode2 == NULL) {
8480 var2 = 1;
8481 } else {
8482 if(cltype >= (((long)var_thexbytenumnode2&3)?type_info[((long)var_thexbytenumnode2&3)]:var_thexbytenumnode2->type)->table_size) {
8483 var2 = 0;
8484 } else {
8485 var2 = (((long)var_thexbytenumnode2&3)?type_info[((long)var_thexbytenumnode2&3)]:var_thexbytenumnode2->type)->type_table[cltype] == idtype;
8486 }
8487 }
8488 if (unlikely(!var2)) {
8489 PRINT_ERROR("Runtime error: %s", "Assert failed");
8490 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9258);
8491 fatal_exit(1);
8492 }
8493 var_pannotationsnode3 = var_nodearraylist2;
8494 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8495 cltype4 = type_nullable__nit__AAnnotations.color;
8496 idtype5 = type_nullable__nit__AAnnotations.id;
8497 if(var_pannotationsnode3 == NULL) {
8498 var3 = 1;
8499 } else {
8500 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8501 var3 = 0;
8502 } else {
8503 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8504 }
8505 }
8506 if (unlikely(!var3)) {
8507 PRINT_ERROR("Runtime error: %s", "Assert failed");
8508 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9260);
8509 fatal_exit(1);
8510 }
8511 var6 = NEW_nit__AHexByteExpr(&type_nit__AHexByteExpr);
8512 {
8513 nit__parser_prod___AHexByteExpr___init_ahexbyteexpr(var6, var_thexbytenumnode2, var_pannotationsnode3); /* Direct call parser_prod#AHexByteExpr#init_ahexbyteexpr on <var6:AHexByteExpr>*/
8514 }
8515 var_pexprnode1 = var6;
8516 var_node_list = var_pexprnode1;
8517 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction378> */
8518 {
8519 var8 = nit___nit__Parser___go_to(var_p, var7);
8520 }
8521 {
8522 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8523 }
8524 RET_LABEL:;
8525 }
8526 /* method parser#ReduceAction379#action for (self: ReduceAction379, Parser) */
8527 void nit__parser___nit__parser__ReduceAction379___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8528 val* var_p /* var p: Parser */;
8529 val* var_node_list /* var node_list: nullable Object */;
8530 val* var /* : nullable Object */;
8531 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8532 val* var1 /* : nullable Object */;
8533 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8534 val* var_tbinbytenumnode2 /* var tbinbytenumnode2: nullable Object */;
8535 short int var2 /* : Bool */;
8536 int cltype;
8537 int idtype;
8538 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8539 short int var3 /* : Bool */;
8540 int cltype4;
8541 int idtype5;
8542 val* var6 /* : ABinByteExpr */;
8543 val* var_pexprnode1 /* var pexprnode1: nullable ABinByteExpr */;
8544 long var7 /* : Int */;
8545 long var8 /* : Int */;
8546 var_p = p0;
8547 var_node_list = ((val*)NULL);
8548 {
8549 var = nit___nit__Parser___pop(var_p);
8550 }
8551 var_nodearraylist2 = var;
8552 {
8553 var1 = nit___nit__Parser___pop(var_p);
8554 }
8555 var_nodearraylist1 = var1;
8556 var_tbinbytenumnode2 = var_nodearraylist1;
8557 /* <var_tbinbytenumnode2:nullable Object> isa nullable TBinBytenum */
8558 cltype = type_nullable__nit__TBinBytenum.color;
8559 idtype = type_nullable__nit__TBinBytenum.id;
8560 if(var_tbinbytenumnode2 == NULL) {
8561 var2 = 1;
8562 } else {
8563 if(cltype >= (((long)var_tbinbytenumnode2&3)?type_info[((long)var_tbinbytenumnode2&3)]:var_tbinbytenumnode2->type)->table_size) {
8564 var2 = 0;
8565 } else {
8566 var2 = (((long)var_tbinbytenumnode2&3)?type_info[((long)var_tbinbytenumnode2&3)]:var_tbinbytenumnode2->type)->type_table[cltype] == idtype;
8567 }
8568 }
8569 if (unlikely(!var2)) {
8570 PRINT_ERROR("Runtime error: %s", "Assert failed");
8571 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9277);
8572 fatal_exit(1);
8573 }
8574 var_pannotationsnode3 = var_nodearraylist2;
8575 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8576 cltype4 = type_nullable__nit__AAnnotations.color;
8577 idtype5 = type_nullable__nit__AAnnotations.id;
8578 if(var_pannotationsnode3 == NULL) {
8579 var3 = 1;
8580 } else {
8581 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8582 var3 = 0;
8583 } else {
8584 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8585 }
8586 }
8587 if (unlikely(!var3)) {
8588 PRINT_ERROR("Runtime error: %s", "Assert failed");
8589 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9279);
8590 fatal_exit(1);
8591 }
8592 var6 = NEW_nit__ABinByteExpr(&type_nit__ABinByteExpr);
8593 {
8594 nit__parser_prod___ABinByteExpr___init_abinbyteexpr(var6, var_tbinbytenumnode2, var_pannotationsnode3); /* Direct call parser_prod#ABinByteExpr#init_abinbyteexpr on <var6:ABinByteExpr>*/
8595 }
8596 var_pexprnode1 = var6;
8597 var_node_list = var_pexprnode1;
8598 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction379> */
8599 {
8600 var8 = nit___nit__Parser___go_to(var_p, var7);
8601 }
8602 {
8603 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8604 }
8605 RET_LABEL:;
8606 }
8607 /* method parser#ReduceAction380#action for (self: ReduceAction380, Parser) */
8608 void nit__parser___nit__parser__ReduceAction380___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8609 val* var_p /* var p: Parser */;
8610 val* var_node_list /* var node_list: nullable Object */;
8611 val* var /* : nullable Object */;
8612 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8613 val* var1 /* : nullable Object */;
8614 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8615 val* var_toctbytenumnode2 /* var toctbytenumnode2: nullable Object */;
8616 short int var2 /* : Bool */;
8617 int cltype;
8618 int idtype;
8619 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8620 short int var3 /* : Bool */;
8621 int cltype4;
8622 int idtype5;
8623 val* var6 /* : AOctByteExpr */;
8624 val* var_pexprnode1 /* var pexprnode1: nullable AOctByteExpr */;
8625 long var7 /* : Int */;
8626 long var8 /* : Int */;
8627 var_p = p0;
8628 var_node_list = ((val*)NULL);
8629 {
8630 var = nit___nit__Parser___pop(var_p);
8631 }
8632 var_nodearraylist2 = var;
8633 {
8634 var1 = nit___nit__Parser___pop(var_p);
8635 }
8636 var_nodearraylist1 = var1;
8637 var_toctbytenumnode2 = var_nodearraylist1;
8638 /* <var_toctbytenumnode2:nullable Object> isa nullable TOctBytenum */
8639 cltype = type_nullable__nit__TOctBytenum.color;
8640 idtype = type_nullable__nit__TOctBytenum.id;
8641 if(var_toctbytenumnode2 == NULL) {
8642 var2 = 1;
8643 } else {
8644 if(cltype >= (((long)var_toctbytenumnode2&3)?type_info[((long)var_toctbytenumnode2&3)]:var_toctbytenumnode2->type)->table_size) {
8645 var2 = 0;
8646 } else {
8647 var2 = (((long)var_toctbytenumnode2&3)?type_info[((long)var_toctbytenumnode2&3)]:var_toctbytenumnode2->type)->type_table[cltype] == idtype;
8648 }
8649 }
8650 if (unlikely(!var2)) {
8651 PRINT_ERROR("Runtime error: %s", "Assert failed");
8652 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9296);
8653 fatal_exit(1);
8654 }
8655 var_pannotationsnode3 = var_nodearraylist2;
8656 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8657 cltype4 = type_nullable__nit__AAnnotations.color;
8658 idtype5 = type_nullable__nit__AAnnotations.id;
8659 if(var_pannotationsnode3 == NULL) {
8660 var3 = 1;
8661 } else {
8662 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8663 var3 = 0;
8664 } else {
8665 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8666 }
8667 }
8668 if (unlikely(!var3)) {
8669 PRINT_ERROR("Runtime error: %s", "Assert failed");
8670 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9298);
8671 fatal_exit(1);
8672 }
8673 var6 = NEW_nit__AOctByteExpr(&type_nit__AOctByteExpr);
8674 {
8675 nit__parser_prod___AOctByteExpr___init_aoctbyteexpr(var6, var_toctbytenumnode2, var_pannotationsnode3); /* Direct call parser_prod#AOctByteExpr#init_aoctbyteexpr on <var6:AOctByteExpr>*/
8676 }
8677 var_pexprnode1 = var6;
8678 var_node_list = var_pexprnode1;
8679 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction380> */
8680 {
8681 var8 = nit___nit__Parser___go_to(var_p, var7);
8682 }
8683 {
8684 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8685 }
8686 RET_LABEL:;
8687 }
8688 /* method parser#ReduceAction381#action for (self: ReduceAction381, Parser) */
8689 void nit__parser___nit__parser__ReduceAction381___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8690 val* var_p /* var p: Parser */;
8691 val* var_node_list /* var node_list: nullable Object */;
8692 val* var /* : nullable Object */;
8693 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8694 val* var1 /* : nullable Object */;
8695 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8696 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
8697 short int var2 /* : Bool */;
8698 int cltype;
8699 int idtype;
8700 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8701 short int var3 /* : Bool */;
8702 int cltype4;
8703 int idtype5;
8704 val* var6 /* : AFloatExpr */;
8705 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
8706 long var7 /* : Int */;
8707 long var8 /* : Int */;
8708 var_p = p0;
8709 var_node_list = ((val*)NULL);
8710 {
8711 var = nit___nit__Parser___pop(var_p);
8712 }
8713 var_nodearraylist2 = var;
8714 {
8715 var1 = nit___nit__Parser___pop(var_p);
8716 }
8717 var_nodearraylist1 = var1;
8718 var_tfloatnode2 = var_nodearraylist1;
8719 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
8720 cltype = type_nullable__nit__TFloat.color;
8721 idtype = type_nullable__nit__TFloat.id;
8722 if(var_tfloatnode2 == NULL) {
8723 var2 = 1;
8724 } else {
8725 if(cltype >= (((long)var_tfloatnode2&3)?type_info[((long)var_tfloatnode2&3)]:var_tfloatnode2->type)->table_size) {
8726 var2 = 0;
8727 } else {
8728 var2 = (((long)var_tfloatnode2&3)?type_info[((long)var_tfloatnode2&3)]:var_tfloatnode2->type)->type_table[cltype] == idtype;
8729 }
8730 }
8731 if (unlikely(!var2)) {
8732 PRINT_ERROR("Runtime error: %s", "Assert failed");
8733 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9315);
8734 fatal_exit(1);
8735 }
8736 var_pannotationsnode3 = var_nodearraylist2;
8737 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8738 cltype4 = type_nullable__nit__AAnnotations.color;
8739 idtype5 = type_nullable__nit__AAnnotations.id;
8740 if(var_pannotationsnode3 == NULL) {
8741 var3 = 1;
8742 } else {
8743 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8744 var3 = 0;
8745 } else {
8746 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8747 }
8748 }
8749 if (unlikely(!var3)) {
8750 PRINT_ERROR("Runtime error: %s", "Assert failed");
8751 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9317);
8752 fatal_exit(1);
8753 }
8754 var6 = NEW_nit__AFloatExpr(&type_nit__AFloatExpr);
8755 {
8756 nit__parser_prod___AFloatExpr___init_afloatexpr(var6, var_tfloatnode2, var_pannotationsnode3); /* Direct call parser_prod#AFloatExpr#init_afloatexpr on <var6:AFloatExpr>*/
8757 }
8758 var_pexprnode1 = var6;
8759 var_node_list = var_pexprnode1;
8760 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction381> */
8761 {
8762 var8 = nit___nit__Parser___go_to(var_p, var7);
8763 }
8764 {
8765 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8766 }
8767 RET_LABEL:;
8768 }
8769 /* method parser#ReduceAction382#action for (self: ReduceAction382, Parser) */
8770 void nit__parser___nit__parser__ReduceAction382___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8771 val* var_p /* var p: Parser */;
8772 val* var_node_list /* var node_list: nullable Object */;
8773 val* var /* : nullable Object */;
8774 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8775 val* var1 /* : nullable Object */;
8776 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8777 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
8778 short int var2 /* : Bool */;
8779 int cltype;
8780 int idtype;
8781 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8782 short int var3 /* : Bool */;
8783 int cltype4;
8784 int idtype5;
8785 val* var6 /* : ACharExpr */;
8786 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
8787 long var7 /* : Int */;
8788 long var8 /* : Int */;
8789 var_p = p0;
8790 var_node_list = ((val*)NULL);
8791 {
8792 var = nit___nit__Parser___pop(var_p);
8793 }
8794 var_nodearraylist2 = var;
8795 {
8796 var1 = nit___nit__Parser___pop(var_p);
8797 }
8798 var_nodearraylist1 = var1;
8799 var_tcharnode2 = var_nodearraylist1;
8800 /* <var_tcharnode2:nullable Object> isa nullable TChar */
8801 cltype = type_nullable__nit__TChar.color;
8802 idtype = type_nullable__nit__TChar.id;
8803 if(var_tcharnode2 == NULL) {
8804 var2 = 1;
8805 } else {
8806 if(cltype >= (((long)var_tcharnode2&3)?type_info[((long)var_tcharnode2&3)]:var_tcharnode2->type)->table_size) {
8807 var2 = 0;
8808 } else {
8809 var2 = (((long)var_tcharnode2&3)?type_info[((long)var_tcharnode2&3)]:var_tcharnode2->type)->type_table[cltype] == idtype;
8810 }
8811 }
8812 if (unlikely(!var2)) {
8813 PRINT_ERROR("Runtime error: %s", "Assert failed");
8814 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9334);
8815 fatal_exit(1);
8816 }
8817 var_pannotationsnode3 = var_nodearraylist2;
8818 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8819 cltype4 = type_nullable__nit__AAnnotations.color;
8820 idtype5 = type_nullable__nit__AAnnotations.id;
8821 if(var_pannotationsnode3 == NULL) {
8822 var3 = 1;
8823 } else {
8824 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8825 var3 = 0;
8826 } else {
8827 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8828 }
8829 }
8830 if (unlikely(!var3)) {
8831 PRINT_ERROR("Runtime error: %s", "Assert failed");
8832 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9336);
8833 fatal_exit(1);
8834 }
8835 var6 = NEW_nit__ACharExpr(&type_nit__ACharExpr);
8836 {
8837 nit__parser_prod___ACharExpr___init_acharexpr(var6, var_tcharnode2, var_pannotationsnode3); /* Direct call parser_prod#ACharExpr#init_acharexpr on <var6:ACharExpr>*/
8838 }
8839 var_pexprnode1 = var6;
8840 var_node_list = var_pexprnode1;
8841 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction382> */
8842 {
8843 var8 = nit___nit__Parser___go_to(var_p, var7);
8844 }
8845 {
8846 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8847 }
8848 RET_LABEL:;
8849 }
8850 /* method parser#ReduceAction383#action for (self: ReduceAction383, Parser) */
8851 void nit__parser___nit__parser__ReduceAction383___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8852 val* var_p /* var p: Parser */;
8853 val* var_node_list /* var node_list: nullable Object */;
8854 val* var /* : nullable Object */;
8855 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8856 val* var1 /* : nullable Object */;
8857 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8858 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
8859 short int var2 /* : Bool */;
8860 int cltype;
8861 int idtype;
8862 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8863 short int var3 /* : Bool */;
8864 int cltype4;
8865 int idtype5;
8866 val* var6 /* : AStringExpr */;
8867 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
8868 long var7 /* : Int */;
8869 long var8 /* : Int */;
8870 var_p = p0;
8871 var_node_list = ((val*)NULL);
8872 {
8873 var = nit___nit__Parser___pop(var_p);
8874 }
8875 var_nodearraylist2 = var;
8876 {
8877 var1 = nit___nit__Parser___pop(var_p);
8878 }
8879 var_nodearraylist1 = var1;
8880 var_tstringnode2 = var_nodearraylist1;
8881 /* <var_tstringnode2:nullable Object> isa nullable TString */
8882 cltype = type_nullable__nit__TString.color;
8883 idtype = type_nullable__nit__TString.id;
8884 if(var_tstringnode2 == NULL) {
8885 var2 = 1;
8886 } else {
8887 if(cltype >= (((long)var_tstringnode2&3)?type_info[((long)var_tstringnode2&3)]:var_tstringnode2->type)->table_size) {
8888 var2 = 0;
8889 } else {
8890 var2 = (((long)var_tstringnode2&3)?type_info[((long)var_tstringnode2&3)]:var_tstringnode2->type)->type_table[cltype] == idtype;
8891 }
8892 }
8893 if (unlikely(!var2)) {
8894 PRINT_ERROR("Runtime error: %s", "Assert failed");
8895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9353);
8896 fatal_exit(1);
8897 }
8898 var_pannotationsnode3 = var_nodearraylist2;
8899 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8900 cltype4 = type_nullable__nit__AAnnotations.color;
8901 idtype5 = type_nullable__nit__AAnnotations.id;
8902 if(var_pannotationsnode3 == NULL) {
8903 var3 = 1;
8904 } else {
8905 if(cltype4 >= (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->table_size) {
8906 var3 = 0;
8907 } else {
8908 var3 = (((long)var_pannotationsnode3&3)?type_info[((long)var_pannotationsnode3&3)]:var_pannotationsnode3->type)->type_table[cltype4] == idtype5;
8909 }
8910 }
8911 if (unlikely(!var3)) {
8912 PRINT_ERROR("Runtime error: %s", "Assert failed");
8913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9355);
8914 fatal_exit(1);
8915 }
8916 var6 = NEW_nit__AStringExpr(&type_nit__AStringExpr);
8917 {
8918 nit__parser_prod___AStringExpr___init_astringexpr(var6, var_tstringnode2, var_pannotationsnode3); /* Direct call parser_prod#AStringExpr#init_astringexpr on <var6:AStringExpr>*/
8919 }
8920 var_pexprnode1 = var6;
8921 var_node_list = var_pexprnode1;
8922 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction383> */
8923 {
8924 var8 = nit___nit__Parser___go_to(var_p, var7);
8925 }
8926 {
8927 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8928 }
8929 RET_LABEL:;
8930 }
8931 /* method parser#ReduceAction386#action for (self: ReduceAction386, Parser) */
8932 void nit__parser___nit__parser__ReduceAction386___nit__parser_work__ReduceAction__action(val* self, val* p0) {
8933 val* var_p /* var p: Parser */;
8934 val* var_node_list /* var node_list: nullable Object */;
8935 val* var /* : nullable Object */;
8936 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
8937 val* var1 /* : nullable Object */;
8938 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
8939 val* var2 /* : nullable Object */;
8940 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8941 val* var3 /* : nullable Object */;
8942 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8943 val* var4 /* : nullable Object */;
8944 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8945 val* var5 /* : nullable Object */;
8946 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8947 val* var6 /* : nullable Object */;
8948 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8949 val* var7 /* : nullable Object */;
8950 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8951 val* var8 /* : nullable Object */;
8952 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8953 val* var9 /* : nullable Object */;
8954 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8955 val* var_tobranode2 /* var tobranode2: nullable Object */;
8956 short int var10 /* : Bool */;
8957 int cltype;
8958 int idtype;
8959 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8960 short int var11 /* : Bool */;
8961 int cltype12;
8962 int idtype13;
8963 val* var_tdotdotnode4 /* var tdotdotnode4: nullable Object */;
8964 short int var14 /* : Bool */;
8965 int cltype15;
8966 int idtype16;
8967 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8968 short int var17 /* : Bool */;
8969 int cltype18;
8970 int idtype19;
8971 val* var_tcbranode6 /* var tcbranode6: nullable Object */;
8972 short int var20 /* : Bool */;
8973 int cltype21;
8974 int idtype22;
8975 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
8976 short int var23 /* : Bool */;
8977 int cltype24;
8978 int idtype25;
8979 val* var26 /* : ACrangeExpr */;
8980 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
8981 long var27 /* : Int */;
8982 long var28 /* : Int */;
8983 var_p = p0;
8984 var_node_list = ((val*)NULL);
8985 {
8986 var = nit___nit__Parser___pop(var_p);
8987 }
8988 var_nodearraylist10 = var;
8989 {
8990 var1 = nit___nit__Parser___pop(var_p);
8991 }
8992 var_nodearraylist9 = var1;
8993 {
8994 var2 = nit___nit__Parser___pop(var_p);
8995 }
8996 var_nodearraylist8 = var2;
8997 {
8998 var3 = nit___nit__Parser___pop(var_p);
8999 }
9000 var_nodearraylist7 = var3;
9001 {
9002 var4 = nit___nit__Parser___pop(var_p);
9003 }
9004 var_nodearraylist6 = var4;
9005 {
9006 var5 = nit___nit__Parser___pop(var_p);
9007 }
9008 var_nodearraylist5 = var5;
9009 {
9010 var6 = nit___nit__Parser___pop(var_p);
9011 }
9012 var_nodearraylist4 = var6;
9013 {
9014 var7 = nit___nit__Parser___pop(var_p);
9015 }
9016 var_nodearraylist3 = var7;
9017 {
9018 var8 = nit___nit__Parser___pop(var_p);
9019 }
9020 var_nodearraylist2 = var8;
9021 {
9022 var9 = nit___nit__Parser___pop(var_p);
9023 }
9024 var_nodearraylist1 = var9;
9025 var_tobranode2 = var_nodearraylist1;
9026 /* <var_tobranode2:nullable Object> isa nullable TObra */
9027 cltype = type_nullable__nit__TObra.color;
9028 idtype = type_nullable__nit__TObra.id;
9029 if(var_tobranode2 == NULL) {
9030 var10 = 1;
9031 } else {
9032 if(cltype >= (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->table_size) {
9033 var10 = 0;
9034 } else {
9035 var10 = (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->type_table[cltype] == idtype;
9036 }
9037 }
9038 if (unlikely(!var10)) {
9039 PRINT_ERROR("Runtime error: %s", "Assert failed");
9040 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9380);
9041 fatal_exit(1);
9042 }
9043 var_pexprnode3 = var_nodearraylist3;
9044 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9045 cltype12 = type_nullable__nit__AExpr.color;
9046 idtype13 = type_nullable__nit__AExpr.id;
9047 if(var_pexprnode3 == NULL) {
9048 var11 = 1;
9049 } else {
9050 if(cltype12 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
9051 var11 = 0;
9052 } else {
9053 var11 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype12] == idtype13;
9054 }
9055 }
9056 if (unlikely(!var11)) {
9057 PRINT_ERROR("Runtime error: %s", "Assert failed");
9058 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9382);
9059 fatal_exit(1);
9060 }
9061 var_tdotdotnode4 = var_nodearraylist5;
9062 /* <var_tdotdotnode4:nullable Object> isa nullable TDotdot */
9063 cltype15 = type_nullable__nit__TDotdot.color;
9064 idtype16 = type_nullable__nit__TDotdot.id;
9065 if(var_tdotdotnode4 == NULL) {
9066 var14 = 1;
9067 } else {
9068 if(cltype15 >= (((long)var_tdotdotnode4&3)?type_info[((long)var_tdotdotnode4&3)]:var_tdotdotnode4->type)->table_size) {
9069 var14 = 0;
9070 } else {
9071 var14 = (((long)var_tdotdotnode4&3)?type_info[((long)var_tdotdotnode4&3)]:var_tdotdotnode4->type)->type_table[cltype15] == idtype16;
9072 }
9073 }
9074 if (unlikely(!var14)) {
9075 PRINT_ERROR("Runtime error: %s", "Assert failed");
9076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9384);
9077 fatal_exit(1);
9078 }
9079 var_pexprnode5 = var_nodearraylist7;
9080 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9081 cltype18 = type_nullable__nit__AExpr.color;
9082 idtype19 = type_nullable__nit__AExpr.id;
9083 if(var_pexprnode5 == NULL) {
9084 var17 = 1;
9085 } else {
9086 if(cltype18 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
9087 var17 = 0;
9088 } else {
9089 var17 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype18] == idtype19;
9090 }
9091 }
9092 if (unlikely(!var17)) {
9093 PRINT_ERROR("Runtime error: %s", "Assert failed");
9094 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9386);
9095 fatal_exit(1);
9096 }
9097 var_tcbranode6 = var_nodearraylist9;
9098 /* <var_tcbranode6:nullable Object> isa nullable TCbra */
9099 cltype21 = type_nullable__nit__TCbra.color;
9100 idtype22 = type_nullable__nit__TCbra.id;
9101 if(var_tcbranode6 == NULL) {
9102 var20 = 1;
9103 } else {
9104 if(cltype21 >= (((long)var_tcbranode6&3)?type_info[((long)var_tcbranode6&3)]:var_tcbranode6->type)->table_size) {
9105 var20 = 0;
9106 } else {
9107 var20 = (((long)var_tcbranode6&3)?type_info[((long)var_tcbranode6&3)]:var_tcbranode6->type)->type_table[cltype21] == idtype22;
9108 }
9109 }
9110 if (unlikely(!var20)) {
9111 PRINT_ERROR("Runtime error: %s", "Assert failed");
9112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9388);
9113 fatal_exit(1);
9114 }
9115 var_pannotationsnode7 = var_nodearraylist10;
9116 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9117 cltype24 = type_nullable__nit__AAnnotations.color;
9118 idtype25 = type_nullable__nit__AAnnotations.id;
9119 if(var_pannotationsnode7 == NULL) {
9120 var23 = 1;
9121 } else {
9122 if(cltype24 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) {
9123 var23 = 0;
9124 } else {
9125 var23 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype24] == idtype25;
9126 }
9127 }
9128 if (unlikely(!var23)) {
9129 PRINT_ERROR("Runtime error: %s", "Assert failed");
9130 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9390);
9131 fatal_exit(1);
9132 }
9133 var26 = NEW_nit__ACrangeExpr(&type_nit__ACrangeExpr);
9134 {
9135 nit__parser_prod___ACrangeExpr___init_acrangeexpr(var26, var_tobranode2, var_pexprnode3, var_tdotdotnode4, var_pexprnode5, var_tcbranode6, var_pannotationsnode7); /* Direct call parser_prod#ACrangeExpr#init_acrangeexpr on <var26:ACrangeExpr>*/
9136 }
9137 var_pexprnode1 = var26;
9138 var_node_list = var_pexprnode1;
9139 var27 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction386> */
9140 {
9141 var28 = nit___nit__Parser___go_to(var_p, var27);
9142 }
9143 {
9144 nit___nit__Parser___push(var_p, var28, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9145 }
9146 RET_LABEL:;
9147 }
9148 /* method parser#ReduceAction387#action for (self: ReduceAction387, Parser) */
9149 void nit__parser___nit__parser__ReduceAction387___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9150 val* var_p /* var p: Parser */;
9151 val* var_node_list /* var node_list: nullable Object */;
9152 val* var /* : nullable Object */;
9153 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
9154 val* var1 /* : nullable Object */;
9155 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9156 val* var2 /* : nullable Object */;
9157 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9158 val* var3 /* : nullable Object */;
9159 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9160 val* var4 /* : nullable Object */;
9161 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9162 val* var5 /* : nullable Object */;
9163 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9164 val* var6 /* : nullable Object */;
9165 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9166 val* var7 /* : nullable Object */;
9167 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9168 val* var8 /* : nullable Object */;
9169 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9170 val* var9 /* : nullable Object */;
9171 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9172 val* var_tobranode2 /* var tobranode2: nullable Object */;
9173 short int var10 /* : Bool */;
9174 int cltype;
9175 int idtype;
9176 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9177 short int var11 /* : Bool */;
9178 int cltype12;
9179 int idtype13;
9180 val* var_tdotdotnode4 /* var tdotdotnode4: nullable Object */;
9181 short int var14 /* : Bool */;
9182 int cltype15;
9183 int idtype16;
9184 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
9185 short int var17 /* : Bool */;
9186 int cltype18;
9187 int idtype19;
9188 val* var_tobranode6 /* var tobranode6: nullable Object */;
9189 short int var20 /* : Bool */;
9190 int cltype21;
9191 int idtype22;
9192 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
9193 short int var23 /* : Bool */;
9194 int cltype24;
9195 int idtype25;
9196 val* var26 /* : AOrangeExpr */;
9197 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
9198 long var27 /* : Int */;
9199 long var28 /* : Int */;
9200 var_p = p0;
9201 var_node_list = ((val*)NULL);
9202 {
9203 var = nit___nit__Parser___pop(var_p);
9204 }
9205 var_nodearraylist10 = var;
9206 {
9207 var1 = nit___nit__Parser___pop(var_p);
9208 }
9209 var_nodearraylist9 = var1;
9210 {
9211 var2 = nit___nit__Parser___pop(var_p);
9212 }
9213 var_nodearraylist8 = var2;
9214 {
9215 var3 = nit___nit__Parser___pop(var_p);
9216 }
9217 var_nodearraylist7 = var3;
9218 {
9219 var4 = nit___nit__Parser___pop(var_p);
9220 }
9221 var_nodearraylist6 = var4;
9222 {
9223 var5 = nit___nit__Parser___pop(var_p);
9224 }
9225 var_nodearraylist5 = var5;
9226 {
9227 var6 = nit___nit__Parser___pop(var_p);
9228 }
9229 var_nodearraylist4 = var6;
9230 {
9231 var7 = nit___nit__Parser___pop(var_p);
9232 }
9233 var_nodearraylist3 = var7;
9234 {
9235 var8 = nit___nit__Parser___pop(var_p);
9236 }
9237 var_nodearraylist2 = var8;
9238 {
9239 var9 = nit___nit__Parser___pop(var_p);
9240 }
9241 var_nodearraylist1 = var9;
9242 var_tobranode2 = var_nodearraylist1;
9243 /* <var_tobranode2:nullable Object> isa nullable TObra */
9244 cltype = type_nullable__nit__TObra.color;
9245 idtype = type_nullable__nit__TObra.id;
9246 if(var_tobranode2 == NULL) {
9247 var10 = 1;
9248 } else {
9249 if(cltype >= (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->table_size) {
9250 var10 = 0;
9251 } else {
9252 var10 = (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->type_table[cltype] == idtype;
9253 }
9254 }
9255 if (unlikely(!var10)) {
9256 PRINT_ERROR("Runtime error: %s", "Assert failed");
9257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9419);
9258 fatal_exit(1);
9259 }
9260 var_pexprnode3 = var_nodearraylist3;
9261 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9262 cltype12 = type_nullable__nit__AExpr.color;
9263 idtype13 = type_nullable__nit__AExpr.id;
9264 if(var_pexprnode3 == NULL) {
9265 var11 = 1;
9266 } else {
9267 if(cltype12 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
9268 var11 = 0;
9269 } else {
9270 var11 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype12] == idtype13;
9271 }
9272 }
9273 if (unlikely(!var11)) {
9274 PRINT_ERROR("Runtime error: %s", "Assert failed");
9275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9421);
9276 fatal_exit(1);
9277 }
9278 var_tdotdotnode4 = var_nodearraylist5;
9279 /* <var_tdotdotnode4:nullable Object> isa nullable TDotdot */
9280 cltype15 = type_nullable__nit__TDotdot.color;
9281 idtype16 = type_nullable__nit__TDotdot.id;
9282 if(var_tdotdotnode4 == NULL) {
9283 var14 = 1;
9284 } else {
9285 if(cltype15 >= (((long)var_tdotdotnode4&3)?type_info[((long)var_tdotdotnode4&3)]:var_tdotdotnode4->type)->table_size) {
9286 var14 = 0;
9287 } else {
9288 var14 = (((long)var_tdotdotnode4&3)?type_info[((long)var_tdotdotnode4&3)]:var_tdotdotnode4->type)->type_table[cltype15] == idtype16;
9289 }
9290 }
9291 if (unlikely(!var14)) {
9292 PRINT_ERROR("Runtime error: %s", "Assert failed");
9293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9423);
9294 fatal_exit(1);
9295 }
9296 var_pexprnode5 = var_nodearraylist7;
9297 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9298 cltype18 = type_nullable__nit__AExpr.color;
9299 idtype19 = type_nullable__nit__AExpr.id;
9300 if(var_pexprnode5 == NULL) {
9301 var17 = 1;
9302 } else {
9303 if(cltype18 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
9304 var17 = 0;
9305 } else {
9306 var17 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype18] == idtype19;
9307 }
9308 }
9309 if (unlikely(!var17)) {
9310 PRINT_ERROR("Runtime error: %s", "Assert failed");
9311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9425);
9312 fatal_exit(1);
9313 }
9314 var_tobranode6 = var_nodearraylist9;
9315 /* <var_tobranode6:nullable Object> isa nullable TObra */
9316 cltype21 = type_nullable__nit__TObra.color;
9317 idtype22 = type_nullable__nit__TObra.id;
9318 if(var_tobranode6 == NULL) {
9319 var20 = 1;
9320 } else {
9321 if(cltype21 >= (((long)var_tobranode6&3)?type_info[((long)var_tobranode6&3)]:var_tobranode6->type)->table_size) {
9322 var20 = 0;
9323 } else {
9324 var20 = (((long)var_tobranode6&3)?type_info[((long)var_tobranode6&3)]:var_tobranode6->type)->type_table[cltype21] == idtype22;
9325 }
9326 }
9327 if (unlikely(!var20)) {
9328 PRINT_ERROR("Runtime error: %s", "Assert failed");
9329 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9427);
9330 fatal_exit(1);
9331 }
9332 var_pannotationsnode7 = var_nodearraylist10;
9333 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9334 cltype24 = type_nullable__nit__AAnnotations.color;
9335 idtype25 = type_nullable__nit__AAnnotations.id;
9336 if(var_pannotationsnode7 == NULL) {
9337 var23 = 1;
9338 } else {
9339 if(cltype24 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) {
9340 var23 = 0;
9341 } else {
9342 var23 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype24] == idtype25;
9343 }
9344 }
9345 if (unlikely(!var23)) {
9346 PRINT_ERROR("Runtime error: %s", "Assert failed");
9347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9429);
9348 fatal_exit(1);
9349 }
9350 var26 = NEW_nit__AOrangeExpr(&type_nit__AOrangeExpr);
9351 {
9352 nit__parser_prod___AOrangeExpr___init_aorangeexpr(var26, var_tobranode2, var_pexprnode3, var_tdotdotnode4, var_pexprnode5, var_tobranode6, var_pannotationsnode7); /* Direct call parser_prod#AOrangeExpr#init_aorangeexpr on <var26:AOrangeExpr>*/
9353 }
9354 var_pexprnode1 = var26;
9355 var_node_list = var_pexprnode1;
9356 var27 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction387> */
9357 {
9358 var28 = nit___nit__Parser___go_to(var_p, var27);
9359 }
9360 {
9361 nit___nit__Parser___push(var_p, var28, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9362 }
9363 RET_LABEL:;
9364 }
9365 /* method parser#ReduceAction388#action for (self: ReduceAction388, Parser) */
9366 void nit__parser___nit__parser__ReduceAction388___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9367 val* var_p /* var p: Parser */;
9368 val* var_node_list /* var node_list: nullable Object */;
9369 val* var /* : nullable Object */;
9370 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9371 val* var1 /* : nullable Object */;
9372 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9373 val* var2 /* : nullable Object */;
9374 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9375 val* var3 /* : nullable Object */;
9376 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9377 val* var4 /* : nullable Object */;
9378 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9379 val* var5 /* : nullable Object */;
9380 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9381 val* var6 /* : Array[Object] */;
9382 val* var_listnode4 /* var listnode4: Array[Object] */;
9383 val* var_tobranode2 /* var tobranode2: nullable Object */;
9384 short int var7 /* : Bool */;
9385 int cltype;
9386 int idtype;
9387 val* var_listnode3 /* var listnode3: nullable Object */;
9388 short int var8 /* : Bool */;
9389 int cltype9;
9390 int idtype10;
9391 val* var11 /* : Array[Object] */;
9392 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
9393 short int var12 /* : Bool */;
9394 int cltype13;
9395 int idtype14;
9396 val* var_tcbranode6 /* var tcbranode6: nullable Object */;
9397 short int var15 /* : Bool */;
9398 int cltype16;
9399 int idtype17;
9400 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
9401 short int var18 /* : Bool */;
9402 int cltype19;
9403 int idtype20;
9404 val* var21 /* : AArrayExpr */;
9405 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
9406 long var22 /* : Int */;
9407 long var23 /* : Int */;
9408 var_p = p0;
9409 var_node_list = ((val*)NULL);
9410 {
9411 var = nit___nit__Parser___pop(var_p);
9412 }
9413 var_nodearraylist6 = var;
9414 {
9415 var1 = nit___nit__Parser___pop(var_p);
9416 }
9417 var_nodearraylist5 = var1;
9418 {
9419 var2 = nit___nit__Parser___pop(var_p);
9420 }
9421 var_nodearraylist4 = var2;
9422 {
9423 var3 = nit___nit__Parser___pop(var_p);
9424 }
9425 var_nodearraylist3 = var3;
9426 {
9427 var4 = nit___nit__Parser___pop(var_p);
9428 }
9429 var_nodearraylist2 = var4;
9430 {
9431 var5 = nit___nit__Parser___pop(var_p);
9432 }
9433 var_nodearraylist1 = var5;
9434 var6 = NEW_standard__Array(&type_standard__Array__standard__Object);
9435 {
9436 standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
9437 }
9438 var_listnode4 = var6;
9439 var_tobranode2 = var_nodearraylist1;
9440 /* <var_tobranode2:nullable Object> isa nullable TObra */
9441 cltype = type_nullable__nit__TObra.color;
9442 idtype = type_nullable__nit__TObra.id;
9443 if(var_tobranode2 == NULL) {
9444 var7 = 1;
9445 } else {
9446 if(cltype >= (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->table_size) {
9447 var7 = 0;
9448 } else {
9449 var7 = (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->type_table[cltype] == idtype;
9450 }
9451 }
9452 if (unlikely(!var7)) {
9453 PRINT_ERROR("Runtime error: %s", "Assert failed");
9454 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9455);
9455 fatal_exit(1);
9456 }
9457 var_listnode3 = var_nodearraylist3;
9458 /* <var_listnode3:nullable Object> isa Array[Object] */
9459 cltype9 = type_standard__Array__standard__Object.color;
9460 idtype10 = type_standard__Array__standard__Object.id;
9461 if(var_listnode3 == NULL) {
9462 var8 = 0;
9463 } else {
9464 if(cltype9 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
9465 var8 = 0;
9466 } else {
9467 var8 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype9] == idtype10;
9468 }
9469 }
9470 if (unlikely(!var8)) {
9471 PRINT_ERROR("Runtime error: %s", "Assert failed");
9472 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9457);
9473 fatal_exit(1);
9474 }
9475 {
9476 var11 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
9477 }
9478 var_listnode4 = var11;
9479 var_ptypenode5 = var_nodearraylist4;
9480 /* <var_ptypenode5:nullable Object> isa nullable AType */
9481 cltype13 = type_nullable__nit__AType.color;
9482 idtype14 = type_nullable__nit__AType.id;
9483 if(var_ptypenode5 == NULL) {
9484 var12 = 1;
9485 } else {
9486 if(cltype13 >= (((long)var_ptypenode5&3)?type_info[((long)var_ptypenode5&3)]:var_ptypenode5->type)->table_size) {
9487 var12 = 0;
9488 } else {
9489 var12 = (((long)var_ptypenode5&3)?type_info[((long)var_ptypenode5&3)]:var_ptypenode5->type)->type_table[cltype13] == idtype14;
9490 }
9491 }
9492 if (unlikely(!var12)) {
9493 PRINT_ERROR("Runtime error: %s", "Assert failed");
9494 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9460);
9495 fatal_exit(1);
9496 }
9497 var_tcbranode6 = var_nodearraylist5;
9498 /* <var_tcbranode6:nullable Object> isa nullable TCbra */
9499 cltype16 = type_nullable__nit__TCbra.color;
9500 idtype17 = type_nullable__nit__TCbra.id;
9501 if(var_tcbranode6 == NULL) {
9502 var15 = 1;
9503 } else {
9504 if(cltype16 >= (((long)var_tcbranode6&3)?type_info[((long)var_tcbranode6&3)]:var_tcbranode6->type)->table_size) {
9505 var15 = 0;
9506 } else {
9507 var15 = (((long)var_tcbranode6&3)?type_info[((long)var_tcbranode6&3)]:var_tcbranode6->type)->type_table[cltype16] == idtype17;
9508 }
9509 }
9510 if (unlikely(!var15)) {
9511 PRINT_ERROR("Runtime error: %s", "Assert failed");
9512 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9462);
9513 fatal_exit(1);
9514 }
9515 var_pannotationsnode7 = var_nodearraylist6;
9516 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9517 cltype19 = type_nullable__nit__AAnnotations.color;
9518 idtype20 = type_nullable__nit__AAnnotations.id;
9519 if(var_pannotationsnode7 == NULL) {
9520 var18 = 1;
9521 } else {
9522 if(cltype19 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) {
9523 var18 = 0;
9524 } else {
9525 var18 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype19] == idtype20;
9526 }
9527 }
9528 if (unlikely(!var18)) {
9529 PRINT_ERROR("Runtime error: %s", "Assert failed");
9530 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9464);
9531 fatal_exit(1);
9532 }
9533 var21 = NEW_nit__AArrayExpr(&type_nit__AArrayExpr);
9534 {
9535 nit__parser_prod___AArrayExpr___init_aarrayexpr(var21, var_tobranode2, var_listnode4, var_ptypenode5, var_tcbranode6, var_pannotationsnode7); /* Direct call parser_prod#AArrayExpr#init_aarrayexpr on <var21:AArrayExpr>*/
9536 }
9537 var_pexprnode1 = var21;
9538 var_node_list = var_pexprnode1;
9539 var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction388> */
9540 {
9541 var23 = nit___nit__Parser___go_to(var_p, var22);
9542 }
9543 {
9544 nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9545 }
9546 RET_LABEL:;
9547 }
9548 /* method parser#ReduceAction389#action for (self: ReduceAction389, Parser) */
9549 void nit__parser___nit__parser__ReduceAction389___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9550 val* var_p /* var p: Parser */;
9551 val* var_node_list /* var node_list: nullable Object */;
9552 val* var /* : nullable Object */;
9553 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9554 val* var1 /* : nullable Object */;
9555 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9556 val* var2 /* : nullable Object */;
9557 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9558 val* var3 /* : nullable Object */;
9559 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9560 val* var4 /* : nullable Object */;
9561 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9562 val* var5 /* : nullable Object */;
9563 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9564 val* var_toparnode2 /* var toparnode2: nullable Object */;
9565 short int var6 /* : Bool */;
9566 int cltype;
9567 int idtype;
9568 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9569 short int var7 /* : Bool */;
9570 int cltype8;
9571 int idtype9;
9572 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
9573 short int var10 /* : Bool */;
9574 int cltype11;
9575 int idtype12;
9576 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
9577 short int var13 /* : Bool */;
9578 int cltype14;
9579 int idtype15;
9580 val* var16 /* : AParExpr */;
9581 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
9582 long var17 /* : Int */;
9583 long var18 /* : Int */;
9584 var_p = p0;
9585 var_node_list = ((val*)NULL);
9586 {
9587 var = nit___nit__Parser___pop(var_p);
9588 }
9589 var_nodearraylist6 = var;
9590 {
9591 var1 = nit___nit__Parser___pop(var_p);
9592 }
9593 var_nodearraylist5 = var1;
9594 {
9595 var2 = nit___nit__Parser___pop(var_p);
9596 }
9597 var_nodearraylist4 = var2;
9598 {
9599 var3 = nit___nit__Parser___pop(var_p);
9600 }
9601 var_nodearraylist3 = var3;
9602 {
9603 var4 = nit___nit__Parser___pop(var_p);
9604 }
9605 var_nodearraylist2 = var4;
9606 {
9607 var5 = nit___nit__Parser___pop(var_p);
9608 }
9609 var_nodearraylist1 = var5;
9610 var_toparnode2 = var_nodearraylist1;
9611 /* <var_toparnode2:nullable Object> isa nullable TOpar */
9612 cltype = type_nullable__nit__TOpar.color;
9613 idtype = type_nullable__nit__TOpar.id;
9614 if(var_toparnode2 == NULL) {
9615 var6 = 1;
9616 } else {
9617 if(cltype >= (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->table_size) {
9618 var6 = 0;
9619 } else {
9620 var6 = (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->type_table[cltype] == idtype;
9621 }
9622 }
9623 if (unlikely(!var6)) {
9624 PRINT_ERROR("Runtime error: %s", "Assert failed");
9625 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9488);
9626 fatal_exit(1);
9627 }
9628 var_pexprnode3 = var_nodearraylist3;
9629 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9630 cltype8 = type_nullable__nit__AExpr.color;
9631 idtype9 = type_nullable__nit__AExpr.id;
9632 if(var_pexprnode3 == NULL) {
9633 var7 = 1;
9634 } else {
9635 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
9636 var7 = 0;
9637 } else {
9638 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
9639 }
9640 }
9641 if (unlikely(!var7)) {
9642 PRINT_ERROR("Runtime error: %s", "Assert failed");
9643 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9490);
9644 fatal_exit(1);
9645 }
9646 var_tcparnode4 = var_nodearraylist5;
9647 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
9648 cltype11 = type_nullable__nit__TCpar.color;
9649 idtype12 = type_nullable__nit__TCpar.id;
9650 if(var_tcparnode4 == NULL) {
9651 var10 = 1;
9652 } else {
9653 if(cltype11 >= (((long)var_tcparnode4&3)?type_info[((long)var_tcparnode4&3)]:var_tcparnode4->type)->table_size) {
9654 var10 = 0;
9655 } else {
9656 var10 = (((long)var_tcparnode4&3)?type_info[((long)var_tcparnode4&3)]:var_tcparnode4->type)->type_table[cltype11] == idtype12;
9657 }
9658 }
9659 if (unlikely(!var10)) {
9660 PRINT_ERROR("Runtime error: %s", "Assert failed");
9661 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9492);
9662 fatal_exit(1);
9663 }
9664 var_pannotationsnode5 = var_nodearraylist6;
9665 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
9666 cltype14 = type_nullable__nit__AAnnotations.color;
9667 idtype15 = type_nullable__nit__AAnnotations.id;
9668 if(var_pannotationsnode5 == NULL) {
9669 var13 = 1;
9670 } else {
9671 if(cltype14 >= (((long)var_pannotationsnode5&3)?type_info[((long)var_pannotationsnode5&3)]:var_pannotationsnode5->type)->table_size) {
9672 var13 = 0;
9673 } else {
9674 var13 = (((long)var_pannotationsnode5&3)?type_info[((long)var_pannotationsnode5&3)]:var_pannotationsnode5->type)->type_table[cltype14] == idtype15;
9675 }
9676 }
9677 if (unlikely(!var13)) {
9678 PRINT_ERROR("Runtime error: %s", "Assert failed");
9679 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9494);
9680 fatal_exit(1);
9681 }
9682 var16 = NEW_nit__AParExpr(&type_nit__AParExpr);
9683 {
9684 nit__parser_prod___AParExpr___init_aparexpr(var16, var_toparnode2, var_pexprnode3, var_tcparnode4, var_pannotationsnode5); /* Direct call parser_prod#AParExpr#init_aparexpr on <var16:AParExpr>*/
9685 }
9686 var_pexprnode1 = var16;
9687 var_node_list = var_pexprnode1;
9688 var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction389> */
9689 {
9690 var18 = nit___nit__Parser___go_to(var_p, var17);
9691 }
9692 {
9693 nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9694 }
9695 RET_LABEL:;
9696 }
9697 /* method parser#ReduceAction391#action for (self: ReduceAction391, Parser) */
9698 void nit__parser___nit__parser__ReduceAction391___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9699 val* var_p /* var p: Parser */;
9700 val* var_node_list /* var node_list: nullable Object */;
9701 val* var /* : nullable Object */;
9702 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9703 val* var1 /* : nullable Object */;
9704 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9705 val* var2 /* : Array[Object] */;
9706 val* var_listnode4 /* var listnode4: Array[Object] */;
9707 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9708 short int var3 /* : Bool */;
9709 int cltype;
9710 int idtype;
9711 val* var_listnode3 /* var listnode3: nullable Object */;
9712 short int var4 /* : Bool */;
9713 int cltype5;
9714 int idtype6;
9715 short int var7 /* : Bool */;
9716 short int var8 /* : Bool */;
9717 val* var_other /* var other: nullable Object */;
9718 short int var10 /* : Bool */;
9719 short int var11 /* : Bool */;
9720 val* var12 /* : Array[Object] */;
9721 val* var13 /* : AManyExpr */;
9722 val* var_pexprnode1 /* var pexprnode1: nullable AManyExpr */;
9723 long var14 /* : Int */;
9724 long var15 /* : Int */;
9725 var_p = p0;
9726 var_node_list = ((val*)NULL);
9727 {
9728 var = nit___nit__Parser___pop(var_p);
9729 }
9730 var_nodearraylist2 = var;
9731 {
9732 var1 = nit___nit__Parser___pop(var_p);
9733 }
9734 var_nodearraylist1 = var1;
9735 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
9736 {
9737 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
9738 }
9739 var_listnode4 = var2;
9740 var_pexprnode2 = var_nodearraylist1;
9741 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9742 cltype = type_nullable__nit__AExpr.color;
9743 idtype = type_nullable__nit__AExpr.id;
9744 if(var_pexprnode2 == NULL) {
9745 var3 = 1;
9746 } else {
9747 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9748 var3 = 0;
9749 } else {
9750 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9751 }
9752 }
9753 if (unlikely(!var3)) {
9754 PRINT_ERROR("Runtime error: %s", "Assert failed");
9755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9514);
9756 fatal_exit(1);
9757 }
9758 var_listnode3 = var_nodearraylist2;
9759 /* <var_listnode3:nullable Object> isa Array[Object] */
9760 cltype5 = type_standard__Array__standard__Object.color;
9761 idtype6 = type_standard__Array__standard__Object.id;
9762 if(var_listnode3 == NULL) {
9763 var4 = 0;
9764 } else {
9765 if(cltype5 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
9766 var4 = 0;
9767 } else {
9768 var4 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype5] == idtype6;
9769 }
9770 }
9771 if (unlikely(!var4)) {
9772 PRINT_ERROR("Runtime error: %s", "Assert failed");
9773 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9516);
9774 fatal_exit(1);
9775 }
9776 if (var_pexprnode2 == NULL) {
9777 var7 = 0; /* is null */
9778 } else {
9779 var7 = 1; /* arg is null and recv is not */
9780 }
9781 if (0) {
9782 { /* Inline kernel#Object#!= (var_pexprnode2,((val*)NULL)) on <var_pexprnode2:nullable Object(nullable AExpr)> */
9783 var_other = ((val*)NULL);
9784 {
9785 var10 = ((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)>*/
9786 }
9787 var11 = !var10;
9788 var8 = var11;
9789 goto RET_LABEL9;
9790 RET_LABEL9:(void)0;
9791 }
9792 var7 = var8;
9793 }
9794 if (var7){
9795 {
9796 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on <var_listnode4:Array[Object]>*/
9797 }
9798 } else {
9799 }
9800 {
9801 var12 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
9802 }
9803 var_listnode4 = var12;
9804 var13 = NEW_nit__AManyExpr(&type_nit__AManyExpr);
9805 {
9806 nit__parser_prod___AManyExpr___init_amanyexpr(var13, var_listnode4); /* Direct call parser_prod#AManyExpr#init_amanyexpr on <var13:AManyExpr>*/
9807 }
9808 var_pexprnode1 = var13;
9809 var_node_list = var_pexprnode1;
9810 var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction391> */
9811 {
9812 var15 = nit___nit__Parser___go_to(var_p, var14);
9813 }
9814 {
9815 nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9816 }
9817 RET_LABEL:;
9818 }
9819 /* method parser#ReduceAction392#action for (self: ReduceAction392, Parser) */
9820 void nit__parser___nit__parser__ReduceAction392___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9821 val* var_p /* var p: Parser */;
9822 val* var_node_list /* var node_list: nullable Object */;
9823 val* var /* : nullable Object */;
9824 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9825 val* var1 /* : nullable Object */;
9826 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9827 val* var2 /* : nullable Object */;
9828 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9829 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
9830 long var3 /* : Int */;
9831 long var4 /* : Int */;
9832 var_p = p0;
9833 var_node_list = ((val*)NULL);
9834 {
9835 var = nit___nit__Parser___pop(var_p);
9836 }
9837 var_nodearraylist3 = var;
9838 {
9839 var1 = nit___nit__Parser___pop(var_p);
9840 }
9841 var_nodearraylist2 = var1;
9842 {
9843 var2 = nit___nit__Parser___pop(var_p);
9844 }
9845 var_nodearraylist1 = var2;
9846 var_pexprnode1 = var_nodearraylist3;
9847 var_node_list = var_pexprnode1;
9848 var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction392> */
9849 {
9850 var4 = nit___nit__Parser___go_to(var_p, var3);
9851 }
9852 {
9853 nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9854 }
9855 RET_LABEL:;
9856 }
9857 /* method parser#ReduceAction393#action for (self: ReduceAction393, Parser) */
9858 void nit__parser___nit__parser__ReduceAction393___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9859 val* var_p /* var p: Parser */;
9860 val* var_node_list /* var node_list: nullable Object */;
9861 val* var /* : nullable Object */;
9862 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9863 val* var1 /* : Array[Object] */;
9864 val* var_listnode2 /* var listnode2: Array[Object] */;
9865 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
9866 short int var2 /* : Bool */;
9867 short int var3 /* : Bool */;
9868 long var4 /* : Int */;
9869 long var5 /* : Int */;
9870 var_p = p0;
9871 var_node_list = ((val*)NULL);
9872 {
9873 var = nit___nit__Parser___pop(var_p);
9874 }
9875 var_nodearraylist1 = var;
9876 var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
9877 {
9878 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
9879 }
9880 var_listnode2 = var1;
9881 var_pexprnode1 = var_nodearraylist1;
9882 if (var_pexprnode1 == NULL) {
9883 var2 = 0; /* is null */
9884 } else {
9885 var2 = 1; /* arg is null and recv is not */
9886 }
9887 if (0) {
9888 var3 = ((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>*/
9889 var2 = var3;
9890 }
9891 if (var2){
9892 {
9893 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pexprnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
9894 }
9895 } else {
9896 }
9897 var_node_list = var_listnode2;
9898 var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction393> */
9899 {
9900 var5 = nit___nit__Parser___go_to(var_p, var4);
9901 }
9902 {
9903 nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9904 }
9905 RET_LABEL:;
9906 }
9907 /* method parser#ReduceAction394#action for (self: ReduceAction394, Parser) */
9908 void nit__parser___nit__parser__ReduceAction394___nit__parser_work__ReduceAction__action(val* self, val* p0) {
9909 val* var_p /* var p: Parser */;
9910 val* var_node_list /* var node_list: nullable Object */;
9911 val* var /* : nullable Object */;
9912 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9913 val* var1 /* : nullable Object */;
9914 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9915 val* var2 /* : Array[Object] */;
9916 val* var_listnode3 /* var listnode3: Array[Object] */;
9917 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
9918 val* var_listnode2 /* var listnode2: nullable Object */;
9919 short int var3 /* : Bool */;
9920 int cltype;
9921 int idtype;
9922 short int var4 /* : Bool */;
9923 short int var5 /* : Bool */;
9924 val* var6 /* : Array[Object] */;
9925 long var7 /* : Int */;
9926 long var8 /* : Int */;
9927 var_p = p0;
9928 var_node_list = ((val*)NULL);
9929 {
9930 var = nit___nit__Parser___pop(var_p);
9931 }
9932 var_nodearraylist2 = var;
9933 {
9934 var1 = nit___nit__Parser___pop(var_p);
9935 }
9936 var_nodearraylist1 = var1;
9937 var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
9938 {
9939 standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
9940 }
9941 var_listnode3 = var2;
9942 var_pexprnode1 = var_nodearraylist1;
9943 var_listnode2 = var_nodearraylist2;
9944 /* <var_listnode2:nullable Object> isa Array[Object] */
9945 cltype = type_standard__Array__standard__Object.color;
9946 idtype = type_standard__Array__standard__Object.id;
9947 if(var_listnode2 == NULL) {
9948 var3 = 0;
9949 } else {
9950 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
9951 var3 = 0;
9952 } else {
9953 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
9954 }
9955 }
9956 if (unlikely(!var3)) {
9957 PRINT_ERROR("Runtime error: %s", "Assert failed");
9958 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 9566);
9959 fatal_exit(1);
9960 }
9961 if (var_pexprnode1 == NULL) {
9962 var4 = 0; /* is null */
9963 } else {
9964 var4 = 1; /* arg is null and recv is not */
9965 }
9966 if (0) {
9967 var5 = ((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>*/
9968 var4 = var5;
9969 }
9970 if (var4){
9971 {
9972 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode1); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9973 }
9974 } else {
9975 }
9976 {
9977 var6 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
9978 }
9979 var_listnode3 = var6;
9980 var_node_list = var_listnode3;
9981 var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction394> */
9982 {
9983 var8 = nit___nit__Parser___go_to(var_p, var7);
9984 }
9985 {
9986 nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9987 }
9988 RET_LABEL:;
9989 }