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