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