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