1 #include "parser_work.sep.0.h"
2 /* method parser_work#State#init for (self: State, Int, nullable Object) */
3 void parser_work__State__init(val
* self
, long p0
, val
* p1
) {
4 long var_state
/* var state: Int */;
5 val
* var_nodes
/* var nodes: nullable Object */;
8 self
->attrs
[COLOR_parser_work__State___state
].l
= var_state
; /* _state on <self:State> */
9 self
->attrs
[COLOR_parser_work__State___nodes
].val
= var_nodes
; /* _nodes on <self:State> */
12 /* method parser_work#State#init for (self: Object, Int, nullable Object) */
13 void VIRTUAL_parser_work__State__init(val
* self
, long p0
, val
* p1
) {
14 parser_work__State__init(self
, p0
, p1
); /* Direct call parser_work#State#init on <self:Object(State)>*/
17 /* method parser_work#Parser#init for (self: Parser, Lexer) */
18 void parser_work__Parser__init(val
* self
, val
* p0
) {
19 val
* var_lexer
/* var lexer: Lexer */;
20 val
* var
/* : Array[State] */;
21 long var1
/* : Int */;
22 long var2
/* : Int */;
23 long var4
/* : Int */;
25 self
->attrs
[COLOR_parser_work__Parser___lexer
].val
= var_lexer
; /* _lexer on <self:Parser> */
26 var
= NEW_array__Array(&type_array__Arrayparser_work__State
);
28 array__Array__init(var
); /* Direct call array#Array#init on <var:Array[State]>*/
30 self
->attrs
[COLOR_parser_work__Parser___stack
].val
= var
; /* _stack on <self:Parser> */
33 { /* Inline kernel#Int#unary - (var1) on <var1:Int> */
40 self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
= var2
; /* _stack_pos on <self:Parser> */
42 parser__Parser__build_reduce_table(self
); /* Direct call parser#Parser#build_reduce_table on <self:Parser>*/
46 /* method parser_work#Parser#init for (self: Object, Lexer) */
47 void VIRTUAL_parser_work__Parser__init(val
* self
, val
* p0
) {
48 parser_work__Parser__init(self
, p0
); /* Direct call parser_work#Parser#init on <self:Object(Parser)>*/
51 /* method parser_work#Parser#go_to for (self: Parser, Int): Int */
52 long parser_work__Parser__go_to(val
* self
, long p0
) {
54 long var_index
/* var index: Int */;
55 long var1
/* : Int */;
56 long var_state
/* var state: Int */;
57 long var2
/* : Int */;
58 long var_low
/* var low: Int */;
59 long var3
/* : Int */;
60 long var4
/* : Int */;
61 long var6
/* : Int */;
62 long var7
/* : Int */;
63 long var8
/* : Int */;
64 short int var10
/* : Bool */;
67 const char* var_class_name
;
68 long var11
/* : Int */;
69 long var_high
/* var high: Int */;
70 short int var12
/* : Bool */;
71 short int var14
/* : Bool */;
74 const char* var_class_name17
;
75 short int var18
/* : Bool */;
76 long var19
/* : Int */;
77 short int var21
/* : Bool */;
80 const char* var_class_name24
;
81 long var25
/* : Int */;
82 long var26
/* : Int */;
83 long var27
/* : Int */;
84 short int var29
/* : Bool */;
87 const char* var_class_name32
;
88 long var33
/* : Int */;
89 long var_middle
/* var middle: Int */;
90 long var34
/* : Int */;
91 long var35
/* : Int */;
92 short int var37
/* : Bool */;
95 const char* var_class_name40
;
96 long var41
/* : Int */;
97 long var42
/* : Int */;
98 long var43
/* : Int */;
99 short int var45
/* : Bool */;
102 const char* var_class_name48
;
103 long var49
/* : Int */;
104 long var_subindex
/* var subindex: Int */;
105 long var50
/* : Int */;
106 long var52
/* : Int */;
107 long var_goal
/* var goal: Int */;
108 short int var53
/* : Bool */;
109 short int var55
/* : Bool */;
112 const char* var_class_name58
;
113 short int var59
/* : Bool */;
114 long var60
/* : Int */;
115 long var61
/* : Int */;
116 short int var63
/* : Bool */;
119 const char* var_class_name66
;
120 long var67
/* : Int */;
121 short int var68
/* : Bool */;
122 short int var70
/* : Bool */;
125 const char* var_class_name73
;
126 short int var74
/* : Bool */;
127 long var75
/* : Int */;
128 long var76
/* : Int */;
129 short int var78
/* : Bool */;
132 const char* var_class_name81
;
133 long var82
/* : Int */;
134 long var83
/* : Int */;
135 long var84
/* : Int */;
136 short int var86
/* : Bool */;
139 const char* var_class_name89
;
140 long var90
/* : Int */;
141 long var91
/* : Int */;
142 long var93
/* : Int */;
143 long var94
/* : Int */;
144 long var95
/* : Int */;
145 long var97
/* : Int */;
148 var1
= parser_work__Parser__state(self
);
155 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var3) on <self:Parser> */
156 var6
= parser_goto(self
, var_index
, var3
);
164 { /* Inline kernel#Int#- (var4,var7) on <var4:Int> */
165 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
166 /* <var7:Int> isa OTHER */
167 var10
= 1; /* easy <var7:Int> isa OTHER*/
168 if (unlikely(!var10
)) {
169 var_class_name
= type_kernel__Int
.name
;
170 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
171 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
183 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
184 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
185 /* <var_high:Int> isa OTHER */
186 var14
= 1; /* easy <var_high:Int> isa OTHER*/
187 if (unlikely(!var14
)) {
188 var_class_name17
= type_kernel__Int
.name
;
189 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
190 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
193 var18
= var_low
<= var_high
;
201 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
202 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
203 /* <var_high:Int> isa OTHER */
204 var21
= 1; /* easy <var_high:Int> isa OTHER*/
205 if (unlikely(!var21
)) {
206 var_class_name24
= type_kernel__Int
.name
;
207 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24
);
208 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
211 var25
= var_low
+ var_high
;
219 { /* Inline kernel#Int#/ (var19,var26) on <var19:Int> */
220 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
221 /* <var26:Int> isa OTHER */
222 var29
= 1; /* easy <var26:Int> isa OTHER*/
223 if (unlikely(!var29
)) {
224 var_class_name32
= type_kernel__Int
.name
;
225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32
);
226 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 333);
229 var33
= var19
/ var26
;
238 { /* Inline kernel#Int#* (var_middle,var34) on <var_middle:Int> */
239 /* Covariant cast for argument 0 (i) <var34:Int> isa OTHER */
240 /* <var34:Int> isa OTHER */
241 var37
= 1; /* easy <var34:Int> isa OTHER*/
242 if (unlikely(!var37
)) {
243 var_class_name40
= type_kernel__Int
.name
;
244 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40
);
245 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 332);
248 var41
= var_middle
* var34
;
256 { /* Inline kernel#Int#+ (var35,var42) on <var35:Int> */
257 /* Covariant cast for argument 0 (i) <var42:Int> isa OTHER */
258 /* <var42:Int> isa OTHER */
259 var45
= 1; /* easy <var42:Int> isa OTHER*/
260 if (unlikely(!var45
)) {
261 var_class_name48
= type_kernel__Int
.name
;
262 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48
);
263 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
266 var49
= var35
+ var42
;
272 var_subindex
= var43
;
274 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var_subindex) on <self:Parser> */
275 var52
= parser_goto(self
, var_index
, var_subindex
);
283 { /* Inline kernel#Int#< (var_state,var_goal) on <var_state:Int> */
284 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
285 /* <var_goal:Int> isa OTHER */
286 var55
= 1; /* easy <var_goal:Int> isa OTHER*/
287 if (unlikely(!var55
)) {
288 var_class_name58
= type_kernel__Int
.name
;
289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58
);
290 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
293 var59
= var_state
< var_goal
;
302 { /* Inline kernel#Int#- (var_middle,var60) on <var_middle:Int> */
303 /* Covariant cast for argument 0 (i) <var60:Int> isa OTHER */
304 /* <var60:Int> isa OTHER */
305 var63
= 1; /* easy <var60:Int> isa OTHER*/
306 if (unlikely(!var63
)) {
307 var_class_name66
= type_kernel__Int
.name
;
308 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66
);
309 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
312 var67
= var_middle
- var60
;
321 { /* Inline kernel#Int#> (var_state,var_goal) on <var_state:Int> */
322 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
323 /* <var_goal:Int> isa OTHER */
324 var70
= 1; /* easy <var_goal:Int> isa OTHER*/
325 if (unlikely(!var70
)) {
326 var_class_name73
= type_kernel__Int
.name
;
327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73
);
328 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
331 var74
= var_state
> var_goal
;
340 { /* Inline kernel#Int#+ (var_middle,var75) on <var_middle:Int> */
341 /* Covariant cast for argument 0 (i) <var75:Int> isa OTHER */
342 /* <var75:Int> isa OTHER */
343 var78
= 1; /* easy <var75:Int> isa OTHER*/
344 if (unlikely(!var78
)) {
345 var_class_name81
= type_kernel__Int
.name
;
346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81
);
347 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
350 var82
= var_middle
+ var75
;
360 { /* Inline kernel#Int#+ (var_subindex,var83) on <var_subindex:Int> */
361 /* Covariant cast for argument 0 (i) <var83:Int> isa OTHER */
362 /* <var83:Int> isa OTHER */
363 var86
= 1; /* easy <var83:Int> isa OTHER*/
364 if (unlikely(!var86
)) {
365 var_class_name89
= type_kernel__Int
.name
;
366 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name89
);
367 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
370 var90
= var_subindex
+ var83
;
377 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var84) on <self:Parser> */
378 var93
= parser_goto(self
, var_index
, var84
);
388 CONTINUE_label
: (void)0;
390 BREAK_label
: (void)0;
393 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var94) on <self:Parser> */
394 var97
= parser_goto(self
, var_index
, var94
);
405 /* method parser_work#Parser#go_to for (self: Object, Int): Int */
406 long VIRTUAL_parser_work__Parser__go_to(val
* self
, long p0
) {
407 long var
/* : Int */;
408 long var1
/* : Int */;
409 var1
= parser_work__Parser__go_to(self
, p0
);
414 /* method parser_work#Parser#push for (self: Parser, Int, nullable Object) */
415 void parser_work__Parser__push(val
* self
, long p0
, val
* p1
) {
416 long var_numstate
/* var numstate: Int */;
417 val
* var_list_node
/* var list_node: nullable Object */;
418 long var
/* : Int */;
419 long var1
/* : Int */;
420 long var2
/* : Int */;
421 short int var4
/* : Bool */;
424 const char* var_class_name
;
425 long var5
/* : Int */;
426 long var_pos
/* var pos: Int */;
427 val
* var6
/* : Array[State] */;
428 long var7
/* : Int */;
429 short int var8
/* : Bool */;
430 short int var10
/* : Bool */;
433 const char* var_class_name13
;
434 short int var14
/* : Bool */;
435 val
* var15
/* : Array[State] */;
436 val
* var16
/* : nullable Object */;
437 val
* var_state
/* var state: State */;
438 val
* var17
/* : Array[State] */;
439 val
* var18
/* : State */;
442 var
= self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
445 { /* Inline kernel#Int#+ (var,var1) on <var:Int> */
446 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
447 /* <var1:Int> isa OTHER */
448 var4
= 1; /* easy <var1:Int> isa OTHER*/
449 if (unlikely(!var4
)) {
450 var_class_name
= type_kernel__Int
.name
;
451 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
452 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
462 self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
= var_pos
; /* _stack_pos on <self:Parser> */
463 var6
= self
->attrs
[COLOR_parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
464 if (unlikely(var6
== NULL
)) {
465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
466 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 84);
470 var7
= array__AbstractArrayRead__length(var6
);
473 { /* Inline kernel#Int#< (var_pos,var7) on <var_pos:Int> */
474 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
475 /* <var7:Int> isa OTHER */
476 var10
= 1; /* easy <var7:Int> isa OTHER*/
477 if (unlikely(!var10
)) {
478 var_class_name13
= type_kernel__Int
.name
;
479 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13
);
480 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
483 var14
= var_pos
< var7
;
490 var15
= self
->attrs
[COLOR_parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
491 if (unlikely(var15
== NULL
)) {
492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
493 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 85);
497 var16
= array__Array___91d_93d(var15
, var_pos
);
500 var_state
->attrs
[COLOR_parser_work__State___state
].l
= var_numstate
; /* _state on <var_state:State> */
501 var_state
->attrs
[COLOR_parser_work__State___nodes
].val
= var_list_node
; /* _nodes on <var_state:State> */
503 var17
= self
->attrs
[COLOR_parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
504 if (unlikely(var17
== NULL
)) {
505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
506 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 89);
509 var18
= NEW_parser_work__State(&type_parser_work__State
);
511 parser_work__State__init(var18
, var_numstate
, var_list_node
); /* Direct call parser_work#State#init on <var18:State>*/
514 array__AbstractArray__push(var17
, var18
); /* Direct call array#AbstractArray#push on <var17:Array[State]>*/
519 /* method parser_work#Parser#push for (self: Object, Int, nullable Object) */
520 void VIRTUAL_parser_work__Parser__push(val
* self
, long p0
, val
* p1
) {
521 parser_work__Parser__push(self
, p0
, p1
); /* Direct call parser_work#Parser#push on <self:Object(Parser)>*/
524 /* method parser_work#Parser#state for (self: Parser): Int */
525 long parser_work__Parser__state(val
* self
) {
526 long var
/* : Int */;
527 val
* var1
/* : Array[State] */;
528 long var2
/* : Int */;
529 val
* var3
/* : nullable Object */;
530 long var4
/* : Int */;
531 var1
= self
->attrs
[COLOR_parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
532 if (unlikely(var1
== NULL
)) {
533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
534 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 96);
537 var2
= self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
539 var3
= array__Array___91d_93d(var1
, var2
);
541 var4
= var3
->attrs
[COLOR_parser_work__State___state
].l
; /* _state on <var3:nullable Object(State)> */
547 /* method parser_work#Parser#state for (self: Object): Int */
548 long VIRTUAL_parser_work__Parser__state(val
* self
) {
549 long var
/* : Int */;
550 long var1
/* : Int */;
551 var1
= parser_work__Parser__state(self
);
556 /* method parser_work#Parser#pop for (self: Parser): nullable Object */
557 val
* parser_work__Parser__pop(val
* self
) {
558 val
* var
/* : nullable Object */;
559 val
* var1
/* : Array[State] */;
560 long var2
/* : Int */;
561 val
* var3
/* : nullable Object */;
562 val
* var4
/* : nullable Object */;
563 val
* var_res
/* var res: nullable Object */;
564 long var5
/* : Int */;
565 long var6
/* : Int */;
566 long var7
/* : Int */;
567 short int var9
/* : Bool */;
570 const char* var_class_name
;
571 long var10
/* : Int */;
572 var1
= self
->attrs
[COLOR_parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
573 if (unlikely(var1
== NULL
)) {
574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
575 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 102);
578 var2
= self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
580 var3
= array__Array___91d_93d(var1
, var2
);
582 var4
= var3
->attrs
[COLOR_parser_work__State___nodes
].val
; /* _nodes on <var3:nullable Object(State)> */
584 var5
= self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
587 { /* Inline kernel#Int#- (var5,var6) on <var5:Int> */
588 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
589 /* <var6:Int> isa OTHER */
590 var9
= 1; /* easy <var6:Int> isa OTHER*/
591 if (unlikely(!var9
)) {
592 var_class_name
= type_kernel__Int
.name
;
593 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
594 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
603 self
->attrs
[COLOR_parser_work__Parser___stack_pos
].l
= var7
; /* _stack_pos on <self:Parser> */
609 /* method parser_work#Parser#pop for (self: Object): nullable Object */
610 val
* VIRTUAL_parser_work__Parser__pop(val
* self
) {
611 val
* var
/* : nullable Object */;
612 val
* var1
/* : nullable Object */;
613 var1
= parser_work__Parser__pop(self
);
618 /* method parser_work#Parser#parse for (self: Parser): Start */
619 val
* parser_work__Parser__parse(val
* self
) {
620 val
* var
/* : Start */;
621 long var1
/* : Int */;
622 val
* var2
/* : null */;
623 val
* var3
/* : Lexer */;
624 val
* var_lexer
/* var lexer: Lexer */;
625 val
* var4
/* : Token */;
626 val
* var_token
/* var token: Token */;
627 short int var5
/* : Bool */;
630 val
* var6
/* : Start */;
631 val
* var7
/* : null */;
632 long var8
/* : Int */;
633 long var_state
/* var state: Int */;
634 long var9
/* : Int */;
635 long var_index
/* var index: Int */;
636 long var10
/* : Int */;
637 long var11
/* : Int */;
638 long var13
/* : Int */;
639 long var_action_type
/* var action_type: Int */;
640 long var14
/* : Int */;
641 long var15
/* : Int */;
642 long var17
/* : Int */;
643 long var_action_value
/* var action_value: Int */;
644 long var18
/* : Int */;
645 long var_low
/* var low: Int */;
646 long var19
/* : Int */;
647 long var20
/* : Int */;
648 long var22
/* : Int */;
649 long var23
/* : Int */;
650 long var24
/* : Int */;
651 short int var26
/* : Bool */;
654 const char* var_class_name
;
655 long var29
/* : Int */;
656 long var_high
/* var high: Int */;
657 short int var30
/* : Bool */;
658 short int var32
/* : Bool */;
661 const char* var_class_name35
;
662 short int var36
/* : Bool */;
663 long var37
/* : Int */;
664 short int var39
/* : Bool */;
667 const char* var_class_name42
;
668 long var43
/* : Int */;
669 long var44
/* : Int */;
670 long var45
/* : Int */;
671 short int var47
/* : Bool */;
674 const char* var_class_name50
;
675 long var51
/* : Int */;
676 long var_middle
/* var middle: Int */;
677 long var52
/* : Int */;
678 long var53
/* : Int */;
679 short int var55
/* : Bool */;
682 const char* var_class_name58
;
683 long var59
/* : Int */;
684 long var60
/* : Int */;
685 long var61
/* : Int */;
686 short int var63
/* : Bool */;
689 const char* var_class_name66
;
690 long var67
/* : Int */;
691 long var_subindex
/* var subindex: Int */;
692 long var68
/* : Int */;
693 long var70
/* : Int */;
694 long var_goal
/* var goal: Int */;
695 short int var71
/* : Bool */;
696 short int var73
/* : Bool */;
699 const char* var_class_name76
;
700 short int var77
/* : Bool */;
701 long var78
/* : Int */;
702 long var79
/* : Int */;
703 short int var81
/* : Bool */;
706 const char* var_class_name84
;
707 long var85
/* : Int */;
708 short int var86
/* : Bool */;
709 short int var88
/* : Bool */;
712 const char* var_class_name91
;
713 short int var92
/* : Bool */;
714 long var93
/* : Int */;
715 long var94
/* : Int */;
716 short int var96
/* : Bool */;
719 const char* var_class_name99
;
720 long var100
/* : Int */;
721 long var101
/* : Int */;
722 long var102
/* : Int */;
723 short int var104
/* : Bool */;
726 const char* var_class_name107
;
727 long var108
/* : Int */;
728 long var109
/* : Int */;
729 long var111
/* : Int */;
730 long var112
/* : Int */;
731 long var113
/* : Int */;
732 short int var115
/* : Bool */;
735 const char* var_class_name118
;
736 long var119
/* : Int */;
737 long var120
/* : Int */;
738 long var122
/* : Int */;
739 long var123
/* : Int */;
740 short int var124
/* : Bool */;
741 short int var125
/* : Bool */;
742 short int var127
/* : Bool */;
743 val
* var128
/* : Token */;
744 long var129
/* : Int */;
745 short int var130
/* : Bool */;
746 short int var131
/* : Bool */;
747 short int var133
/* : Bool */;
748 val
* var134
/* : Array[ReduceAction] */;
749 val
* var135
/* : nullable Object */;
750 long var136
/* : Int */;
751 short int var137
/* : Bool */;
752 short int var138
/* : Bool */;
753 short int var140
/* : Bool */;
754 val
* var141
/* : Token */;
755 val
* var_node2
/* var node2: Token */;
756 short int var142
/* : Bool */;
759 val
* var145
/* : nullable Object */;
760 val
* var_node1
/* var node1: nullable Object */;
761 short int var146
/* : Bool */;
764 val
* var149
/* : Start */;
765 val
* var_node
/* var node: Start */;
766 val
* var150
/* : ComputeProdLocationVisitor */;
767 long var151
/* : Int */;
768 short int var152
/* : Bool */;
769 short int var153
/* : Bool */;
770 short int var155
/* : Bool */;
771 val
* var156
/* : nullable Location */;
772 val
* var157
/* : null */;
773 short int var158
/* : Bool */;
774 short int var159
/* : Bool */;
775 val
* var160
/* : Token */;
776 val
* var162
/* : AParserError */;
778 val
* var163
/* : String */;
779 char* var164
/* : NativeString */;
780 long var165
/* : Int */;
781 val
* var166
/* : FlatString */;
782 static val
* varonce167
;
783 val
* var168
/* : String */;
784 char* var169
/* : NativeString */;
785 long var170
/* : Int */;
786 val
* var171
/* : FlatString */;
787 val
* var172
/* : Array[Object] */;
788 long var173
/* : Int */;
789 val
* var174
/* : NativeArray[Object] */;
790 val
* var175
/* : String */;
791 val
* var176
/* : Location */;
792 val
* var_node2177
/* var node2: AParserError */;
793 val
* var178
/* : Start */;
794 val
* var179
/* : null */;
795 val
* var_node180
/* var node: Start */;
799 parser_work__Parser__push(self
, var1
, var2
); /* Direct call parser_work#Parser#push on <self:Parser>*/
801 var3
= self
->attrs
[COLOR_parser_work__Parser___lexer
].val
; /* _lexer on <self:Parser> */
802 if (unlikely(var3
== NULL
)) {
803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lexer");
804 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 112);
810 var4
= lexer_work__Lexer__peek(var_lexer
);
813 /* <var_token:Token> isa AError */
814 cltype
= type_parser_nodes__AError
.color
;
815 idtype
= type_parser_nodes__AError
.id
;
816 if(cltype
>= var_token
->type
->table_size
) {
819 var5
= var_token
->type
->type_table
[cltype
] == idtype
;
822 var6
= NEW_parser_nodes__Start(&type_parser_nodes__Start
);
825 parser_nodes__Start__init(var6
, var7
, var_token
); /* Direct call parser_nodes#Start#init on <var6:Start>*/
832 var8
= parser_work__Parser__state(self
);
836 var9
= ((long (*)(val
*))(var_token
->class->vft
[COLOR_lexer_work__Token__parser_index
]))(var_token
) /* parser_index on <var_token:Token>*/;
841 { /* Inline tables#TablesCapable#parser_action (self,var_state,var10) on <self:Parser> */
842 var13
= parser_action(self
, var_state
, var10
);
848 var_action_type
= var11
;
851 { /* Inline tables#TablesCapable#parser_action (self,var_state,var14) on <self:Parser> */
852 var17
= parser_action(self
, var_state
, var14
);
858 var_action_value
= var15
;
863 { /* Inline tables#TablesCapable#parser_action (self,var_state,var19) on <self:Parser> */
864 var22
= parser_action(self
, var_state
, var19
);
872 { /* Inline kernel#Int#- (var20,var23) on <var20:Int> */
873 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
874 /* <var23:Int> isa OTHER */
875 var26
= 1; /* easy <var23:Int> isa OTHER*/
876 if (unlikely(!var26
)) {
877 var_class_name
= type_kernel__Int
.name
;
878 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
879 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
882 var29
= var20
- var23
;
891 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
892 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
893 /* <var_high:Int> isa OTHER */
894 var32
= 1; /* easy <var_high:Int> isa OTHER*/
895 if (unlikely(!var32
)) {
896 var_class_name35
= type_kernel__Int
.name
;
897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35
);
898 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
901 var36
= var_low
<= var_high
;
909 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
910 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
911 /* <var_high:Int> isa OTHER */
912 var39
= 1; /* easy <var_high:Int> isa OTHER*/
913 if (unlikely(!var39
)) {
914 var_class_name42
= type_kernel__Int
.name
;
915 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42
);
916 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
919 var43
= var_low
+ var_high
;
927 { /* Inline kernel#Int#/ (var37,var44) on <var37:Int> */
928 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
929 /* <var44:Int> isa OTHER */
930 var47
= 1; /* easy <var44:Int> isa OTHER*/
931 if (unlikely(!var47
)) {
932 var_class_name50
= type_kernel__Int
.name
;
933 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50
);
934 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 333);
937 var51
= var37
/ var44
;
946 { /* Inline kernel#Int#* (var_middle,var52) on <var_middle:Int> */
947 /* Covariant cast for argument 0 (i) <var52:Int> isa OTHER */
948 /* <var52:Int> isa OTHER */
949 var55
= 1; /* easy <var52:Int> isa OTHER*/
950 if (unlikely(!var55
)) {
951 var_class_name58
= type_kernel__Int
.name
;
952 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58
);
953 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 332);
956 var59
= var_middle
* var52
;
964 { /* Inline kernel#Int#+ (var53,var60) on <var53:Int> */
965 /* Covariant cast for argument 0 (i) <var60:Int> isa OTHER */
966 /* <var60:Int> isa OTHER */
967 var63
= 1; /* easy <var60:Int> isa OTHER*/
968 if (unlikely(!var63
)) {
969 var_class_name66
= type_kernel__Int
.name
;
970 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66
);
971 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
974 var67
= var53
+ var60
;
980 var_subindex
= var61
;
982 { /* Inline tables#TablesCapable#parser_action (self,var_state,var_subindex) on <self:Parser> */
983 var70
= parser_action(self
, var_state
, var_subindex
);
991 { /* Inline kernel#Int#< (var_index,var_goal) on <var_index:Int> */
992 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
993 /* <var_goal:Int> isa OTHER */
994 var73
= 1; /* easy <var_goal:Int> isa OTHER*/
995 if (unlikely(!var73
)) {
996 var_class_name76
= type_kernel__Int
.name
;
997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76
);
998 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1001 var77
= var_index
< var_goal
;
1004 RET_LABEL72
:(void)0;
1010 { /* Inline kernel#Int#- (var_middle,var78) on <var_middle:Int> */
1011 /* Covariant cast for argument 0 (i) <var78:Int> isa OTHER */
1012 /* <var78:Int> isa OTHER */
1013 var81
= 1; /* easy <var78:Int> isa OTHER*/
1014 if (unlikely(!var81
)) {
1015 var_class_name84
= type_kernel__Int
.name
;
1016 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84
);
1017 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1020 var85
= var_middle
- var78
;
1023 RET_LABEL80
:(void)0;
1029 { /* Inline kernel#Int#> (var_index,var_goal) on <var_index:Int> */
1030 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
1031 /* <var_goal:Int> isa OTHER */
1032 var88
= 1; /* easy <var_goal:Int> isa OTHER*/
1033 if (unlikely(!var88
)) {
1034 var_class_name91
= type_kernel__Int
.name
;
1035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91
);
1036 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1039 var92
= var_index
> var_goal
;
1042 RET_LABEL87
:(void)0;
1048 { /* Inline kernel#Int#+ (var_middle,var93) on <var_middle:Int> */
1049 /* Covariant cast for argument 0 (i) <var93:Int> isa OTHER */
1050 /* <var93:Int> isa OTHER */
1051 var96
= 1; /* easy <var93:Int> isa OTHER*/
1052 if (unlikely(!var96
)) {
1053 var_class_name99
= type_kernel__Int
.name
;
1054 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name99
);
1055 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1058 var100
= var_middle
+ var93
;
1061 RET_LABEL95
:(void)0;
1068 { /* Inline kernel#Int#+ (var_subindex,var101) on <var_subindex:Int> */
1069 /* Covariant cast for argument 0 (i) <var101:Int> isa OTHER */
1070 /* <var101:Int> isa OTHER */
1071 var104
= 1; /* easy <var101:Int> isa OTHER*/
1072 if (unlikely(!var104
)) {
1073 var_class_name107
= type_kernel__Int
.name
;
1074 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name107
);
1075 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1078 var108
= var_subindex
+ var101
;
1081 RET_LABEL103
:(void)0;
1085 { /* Inline tables#TablesCapable#parser_action (self,var_state,var102) on <self:Parser> */
1086 var111
= parser_action(self
, var_state
, var102
);
1089 RET_LABEL110
:(void)0;
1092 var_action_type
= var109
;
1095 { /* Inline kernel#Int#+ (var_subindex,var112) on <var_subindex:Int> */
1096 /* Covariant cast for argument 0 (i) <var112:Int> isa OTHER */
1097 /* <var112:Int> isa OTHER */
1098 var115
= 1; /* easy <var112:Int> isa OTHER*/
1099 if (unlikely(!var115
)) {
1100 var_class_name118
= type_kernel__Int
.name
;
1101 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name118
);
1102 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1105 var119
= var_subindex
+ var112
;
1108 RET_LABEL114
:(void)0;
1112 { /* Inline tables#TablesCapable#parser_action (self,var_state,var113) on <self:Parser> */
1113 var122
= parser_action(self
, var_state
, var113
);
1116 RET_LABEL121
:(void)0;
1119 var_action_value
= var120
;
1123 CONTINUE_label
: (void)0;
1125 BREAK_label
: (void)0;
1128 { /* Inline kernel#Int#== (var_action_type,var123) on <var_action_type:Int> */
1129 var127
= var_action_type
== var123
;
1132 RET_LABEL126
:(void)0;
1138 var128
= lexer_work__Lexer__next(var_lexer
);
1141 parser_work__Parser__push(self
, var_action_value
, var128
); /* Direct call parser_work#Parser#push on <self:Parser>*/
1146 { /* Inline kernel#Int#== (var_action_type,var129) on <var_action_type:Int> */
1147 var133
= var_action_type
== var129
;
1150 RET_LABEL132
:(void)0;
1155 var134
= self
->attrs
[COLOR_parser_work__Parser___reduce_table
].val
; /* _reduce_table on <self:Parser> */
1156 if (unlikely(var134
== NULL
)) {
1157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _reduce_table");
1158 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 146);
1162 var135
= array__Array___91d_93d(var134
, var_action_value
);
1165 ((void (*)(val
*, val
*))(var135
->class->vft
[COLOR_parser_work__ReduceAction__action
]))(var135
, self
) /* action on <var135:nullable Object(ReduceAction)>*/;
1170 { /* Inline kernel#Int#== (var_action_type,var136) on <var_action_type:Int> */
1171 var140
= var_action_type
== var136
;
1174 RET_LABEL139
:(void)0;
1180 var141
= lexer_work__Lexer__next(var_lexer
);
1183 /* <var_node2:Token> isa EOF */
1184 cltype143
= type_parser_nodes__EOF
.color
;
1185 idtype144
= type_parser_nodes__EOF
.id
;
1186 if(cltype143
>= var_node2
->type
->table_size
) {
1189 var142
= var_node2
->type
->type_table
[cltype143
] == idtype144
;
1191 if (unlikely(!var142
)) {
1192 PRINT_ERROR("Runtime error: %s", "Assert failed");
1193 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 149);
1197 var145
= parser_work__Parser__pop(self
);
1200 /* <var_node1:nullable Object> isa AModule */
1201 cltype147
= type_parser_nodes__AModule
.color
;
1202 idtype148
= type_parser_nodes__AModule
.id
;
1203 if(var_node1
== NULL
) {
1206 if(cltype147
>= var_node1
->type
->table_size
) {
1209 var146
= var_node1
->type
->type_table
[cltype147
] == idtype148
;
1212 if (unlikely(!var146
)) {
1213 PRINT_ERROR("Runtime error: %s", "Assert failed");
1214 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 151);
1217 var149
= NEW_parser_nodes__Start(&type_parser_nodes__Start
);
1219 parser_nodes__Start__init(var149
, var_node1
, var_node2
); /* Direct call parser_nodes#Start#init on <var149:Start>*/
1222 var150
= NEW_parser_work__ComputeProdLocationVisitor(&type_parser_work__ComputeProdLocationVisitor
);
1224 parser_work__ComputeProdLocationVisitor__init(var150
); /* Direct call parser_work#ComputeProdLocationVisitor#init on <var150:ComputeProdLocationVisitor>*/
1227 parser_nodes__Visitor__enter_visit(var150
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <var150:ComputeProdLocationVisitor>*/
1234 { /* Inline kernel#Int#== (var_action_type,var151) on <var_action_type:Int> */
1235 var155
= var_action_type
== var151
;
1238 RET_LABEL154
:(void)0;
1244 var156
= var_token
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var_token:Token> */
1246 if (var156
== NULL
) {
1247 var158
= 1; /* is null */
1249 var158
= 0; /* arg is null but recv is not */
1252 var159
= location__Location___61d_61d(var156
, var157
);
1257 var160
= lexer_work__Lexer__next(var_lexer
);
1260 CONTINUE_label161
: (void)0;
1262 BREAK_label161
: (void)0;
1263 var162
= NEW_parser_nodes__AParserError(&type_parser_nodes__AParserError
);
1267 var164
= "Syntax error: unexpected ";
1269 var166
= string__NativeString__to_s_with_length(var164
, var165
);
1274 var168
= varonce167
;
1278 var171
= string__NativeString__to_s_with_length(var169
, var170
);
1280 varonce167
= var168
;
1282 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
1283 { /* var172 = array_instance Array[Object] */
1285 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
1286 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var163
;
1287 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var_token
;
1288 ((struct instance_array__NativeArray
*)var174
)->values
[2] = (val
*) var168
;
1290 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
1294 var175
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
1297 var176
= parser_nodes__ANode__location(var_token
);
1300 lexer_work__AParserError__init_parser_error(var162
, var175
, var176
, var_token
); /* Direct call lexer_work#AParserError#init_parser_error on <var162:AParserError>*/
1302 var_node2177
= var162
;
1303 var178
= NEW_parser_nodes__Start(&type_parser_nodes__Start
);
1306 parser_nodes__Start__init(var178
, var179
, var_node2177
); /* Direct call parser_nodes#Start#init on <var178:Start>*/
1308 var_node180
= var178
;
1316 CONTINUE_label181
: (void)0;
1318 BREAK_label181
: (void)0;
1322 /* method parser_work#Parser#parse for (self: Object): Start */
1323 val
* VIRTUAL_parser_work__Parser__parse(val
* self
) {
1324 val
* var
/* : Start */;
1325 val
* var1
/* : Start */;
1326 var1
= parser_work__Parser__parse(self
);
1331 /* method parser_work#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */
1332 void parser_work__ComputeProdLocationVisitor__visit(val
* self
, val
* p0
) {
1333 val
* var_n
/* var n: ANode */;
1334 short int var
/* : Bool */;
1337 val
* var1
/* : nullable Location */;
1338 val
* var_loc
/* var loc: nullable Location */;
1339 val
* var2
/* : null */;
1340 short int var3
/* : Bool */;
1341 short int var4
/* : Bool */;
1342 val
* var5
/* : Array[Prod] */;
1343 short int var6
/* : Bool */;
1344 short int var7
/* : Bool */;
1345 val
* var8
/* : Array[Prod] */;
1346 val
* var9
/* : ArrayIterator[nullable Object] */;
1347 short int var10
/* : Bool */;
1348 val
* var11
/* : nullable Object */;
1349 val
* var_no
/* var no: Prod */;
1350 val
* var12
/* : Array[Prod] */;
1351 val
* var13
/* : Array[Prod] */;
1352 short int var14
/* : Bool */;
1353 short int var15
/* : Bool */;
1354 val
* var16
/* : Location */;
1355 val
* var17
/* : nullable SourceFile */;
1356 val
* var19
/* : nullable SourceFile */;
1357 long var20
/* : Int */;
1358 long var22
/* : Int */;
1359 long var23
/* : Int */;
1360 long var25
/* : Int */;
1361 long var26
/* : Int */;
1362 long var28
/* : Int */;
1363 long var29
/* : Int */;
1364 long var31
/* : Int */;
1365 val
* var_loco
/* var loco: Location */;
1366 val
* var32
/* : Array[Prod] */;
1367 val
* var33
/* : ArrayIterator[nullable Object] */;
1368 short int var34
/* : Bool */;
1369 val
* var35
/* : nullable Object */;
1370 val
* var_no36
/* var no: Prod */;
1371 val
* var38
/* : Array[Prod] */;
1372 short int var39
/* : Bool */;
1375 val
* var42
/* : Array[Prod] */;
1376 val
* var43
/* : nullable Location */;
1377 val
* var_startl
/* var startl: nullable Location */;
1378 val
* var44
/* : null */;
1379 short int var45
/* : Bool */;
1380 short int var46
/* : Bool */;
1381 val
* var_other
/* var other: nullable Object */;
1382 short int var48
/* : Bool */;
1383 short int var49
/* : Bool */;
1384 short int var50
/* : Bool */;
1385 val
* var51
/* : nullable Location */;
1386 val
* var_endl
/* var endl: nullable Location */;
1387 val
* var52
/* : null */;
1388 short int var53
/* : Bool */;
1389 short int var54
/* : Bool */;
1390 short int var56
/* : Bool */;
1391 short int var57
/* : Bool */;
1392 short int var58
/* : Bool */;
1393 val
* var59
/* : Location */;
1394 val
* var60
/* : nullable SourceFile */;
1395 val
* var62
/* : nullable SourceFile */;
1396 long var63
/* : Int */;
1397 long var65
/* : Int */;
1398 long var66
/* : Int */;
1399 long var68
/* : Int */;
1400 long var69
/* : Int */;
1401 long var71
/* : Int */;
1402 long var72
/* : Int */;
1403 long var74
/* : Int */;
1404 val
* var75
/* : Array[Prod] */;
1405 short int var76
/* : Bool */;
1406 short int var77
/* : Bool */;
1407 val
* var78
/* : Location */;
1408 val
* var79
/* : nullable SourceFile */;
1409 val
* var81
/* : nullable SourceFile */;
1410 long var82
/* : Int */;
1411 long var84
/* : Int */;
1412 long var85
/* : Int */;
1413 long var87
/* : Int */;
1414 long var88
/* : Int */;
1415 long var90
/* : Int */;
1416 long var91
/* : Int */;
1417 long var93
/* : Int */;
1418 val
* var_loc94
/* var loc: Location */;
1419 val
* var95
/* : Array[Prod] */;
1420 val
* var96
/* : ArrayIterator[nullable Object] */;
1421 short int var97
/* : Bool */;
1422 val
* var98
/* : nullable Object */;
1423 val
* var_no99
/* var no: Prod */;
1424 val
* var101
/* : Array[Prod] */;
1425 val
* var102
/* : Array[Prod] */;
1427 /* <var_n:ANode> isa Token */
1428 cltype
= type_parser_nodes__Token
.color
;
1429 idtype
= type_parser_nodes__Token
.id
;
1430 if(cltype
>= var_n
->type
->table_size
) {
1433 var
= var_n
->type
->type_table
[cltype
] == idtype
;
1436 var1
= var_n
->attrs
[COLOR_parser_nodes__ANode___location
].val
; /* _location on <var_n:ANode(Token)> */
1439 if (var_loc
== NULL
) {
1440 var3
= 1; /* is null */
1442 var3
= 0; /* arg is null but recv is not */
1445 var4
= location__Location___61d_61d(var_loc
, var2
);
1452 self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___last_location
].val
= var_loc
; /* _last_location on <self:ComputeProdLocationVisitor> */
1453 var5
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1454 if (unlikely(var5
== NULL
)) {
1455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1456 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 196);
1460 var6
= array__AbstractArrayRead__is_empty(var5
);
1464 var8
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1465 if (unlikely(var8
== NULL
)) {
1466 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1467 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 197);
1471 var9
= array__AbstractArrayRead__iterator(var8
);
1475 var10
= array__ArrayIterator__is_ok(var9
);
1479 var11
= array__ArrayIterator__item(var9
);
1482 var_no
->attrs
[COLOR_parser_work__Prod___first_location
].val
= var_loc
; /* _first_location on <var_no:Prod> */
1483 CONTINUE_label
: (void)0;
1485 array__ArrayIterator__next(var9
); /* Direct call array#ArrayIterator#next on <var9:ArrayIterator[nullable Object]>*/
1488 BREAK_label
: (void)0;
1489 var12
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1490 if (unlikely(var12
== NULL
)) {
1491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1492 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 200);
1496 array__AbstractArray__clear(var12
); /* Direct call array#AbstractArray#clear on <var12:Array[Prod]>*/
1500 var13
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1501 if (unlikely(var13
== NULL
)) {
1502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1503 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 204);
1507 var14
= array__AbstractArrayRead__is_empty(var13
);
1511 var16
= NEW_location__Location(&type_location__Location
);
1513 { /* Inline location#Location#file (var_loc) on <var_loc:nullable Location(Location)> */
1514 var19
= var_loc
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var_loc:nullable Location(Location)> */
1516 RET_LABEL18
:(void)0;
1520 { /* Inline location#Location#line_start (var_loc) on <var_loc:nullable Location(Location)> */
1521 var22
= var_loc
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var_loc:nullable Location(Location)> */
1523 RET_LABEL21
:(void)0;
1527 { /* Inline location#Location#line_start (var_loc) on <var_loc:nullable Location(Location)> */
1528 var25
= var_loc
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var_loc:nullable Location(Location)> */
1530 RET_LABEL24
:(void)0;
1534 { /* Inline location#Location#column_start (var_loc) on <var_loc:nullable Location(Location)> */
1535 var28
= var_loc
->attrs
[COLOR_location__Location___column_start
].l
; /* _column_start on <var_loc:nullable Location(Location)> */
1537 RET_LABEL27
:(void)0;
1541 { /* Inline location#Location#column_start (var_loc) on <var_loc:nullable Location(Location)> */
1542 var31
= var_loc
->attrs
[COLOR_location__Location___column_start
].l
; /* _column_start on <var_loc:nullable Location(Location)> */
1544 RET_LABEL30
:(void)0;
1548 location__Location__init(var16
, var17
, var20
, var23
, var26
, var29
); /* Direct call location#Location#init on <var16:Location>*/
1551 var32
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1552 if (unlikely(var32
== NULL
)) {
1553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1554 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 206);
1558 var33
= array__AbstractArrayRead__iterator(var32
);
1562 var34
= array__ArrayIterator__is_ok(var33
);
1566 var35
= array__ArrayIterator__item(var33
);
1570 parser_nodes__Prod__location_61d(var_no36
, var_loco
); /* Direct call parser_nodes#Prod#location= on <var_no36:Prod>*/
1572 CONTINUE_label37
: (void)0;
1574 array__ArrayIterator__next(var33
); /* Direct call array#ArrayIterator#next on <var33:ArrayIterator[nullable Object]>*/
1577 BREAK_label37
: (void)0;
1578 var38
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1579 if (unlikely(var38
== NULL
)) {
1580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1581 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 209);
1585 array__AbstractArray__clear(var38
); /* Direct call array#AbstractArray#clear on <var38:Array[Prod]>*/
1590 /* <var_n:ANode> isa Prod */
1591 cltype40
= type_parser_nodes__Prod
.color
;
1592 idtype41
= type_parser_nodes__Prod
.id
;
1593 if(cltype40
>= var_n
->type
->table_size
) {
1596 var39
= var_n
->type
->type_table
[cltype40
] == idtype41
;
1598 if (unlikely(!var39
)) {
1599 PRINT_ERROR("Runtime error: %s", "Assert failed");
1600 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 212);
1603 var42
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1604 if (unlikely(var42
== NULL
)) {
1605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1606 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 213);
1610 array__Array__add(var42
, var_n
); /* Direct call array#Array#add on <var42:Array[Prod]>*/
1613 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode(Prod)>*/;
1615 var43
= var_n
->attrs
[COLOR_parser_work__Prod___first_location
].val
; /* _first_location on <var_n:ANode(Prod)> */
1618 if (var_startl
== NULL
) {
1619 var45
= 0; /* is null */
1621 var45
= 1; /* arg is null and recv is not */
1624 { /* Inline kernel#Object#!= (var_startl,var44) on <var_startl:nullable Location> */
1627 var49
= ((short int (*)(val
*, val
*))(var_startl
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_startl
, var_other
) /* == on <var_startl:nullable Location(Location)>*/;
1633 RET_LABEL47
:(void)0;
1638 var51
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___last_location
].val
; /* _last_location on <self:ComputeProdLocationVisitor> */
1641 if (var_endl
== NULL
) {
1642 var53
= 0; /* is null */
1644 var53
= 1; /* arg is null and recv is not */
1647 { /* Inline kernel#Object#!= (var_endl,var52) on <var_endl:nullable Location> */
1650 var57
= ((short int (*)(val
*, val
*))(var_endl
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_endl
, var_other
) /* == on <var_endl:nullable Location(Location)>*/;
1656 RET_LABEL55
:(void)0;
1660 if (unlikely(!var53
)) {
1661 PRINT_ERROR("Runtime error: %s", "Assert failed");
1662 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 221);
1665 var59
= NEW_location__Location(&type_location__Location
);
1667 { /* Inline location#Location#file (var_startl) on <var_startl:nullable Location(Location)> */
1668 var62
= var_startl
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var_startl:nullable Location(Location)> */
1670 RET_LABEL61
:(void)0;
1674 { /* Inline location#Location#line_start (var_startl) on <var_startl:nullable Location(Location)> */
1675 var65
= var_startl
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var_startl:nullable Location(Location)> */
1677 RET_LABEL64
:(void)0;
1681 { /* Inline location#Location#line_end (var_endl) on <var_endl:nullable Location(Location)> */
1682 var68
= var_endl
->attrs
[COLOR_location__Location___line_end
].l
; /* _line_end on <var_endl:nullable Location(Location)> */
1684 RET_LABEL67
:(void)0;
1688 { /* Inline location#Location#column_start (var_startl) on <var_startl:nullable Location(Location)> */
1689 var71
= var_startl
->attrs
[COLOR_location__Location___column_start
].l
; /* _column_start on <var_startl:nullable Location(Location)> */
1691 RET_LABEL70
:(void)0;
1695 { /* Inline location#Location#column_end (var_endl) on <var_endl:nullable Location(Location)> */
1696 var74
= var_endl
->attrs
[COLOR_location__Location___column_end
].l
; /* _column_end on <var_endl:nullable Location(Location)> */
1698 RET_LABEL73
:(void)0;
1702 location__Location__init(var59
, var60
, var63
, var66
, var69
, var72
); /* Direct call location#Location#init on <var59:Location>*/
1705 parser_nodes__Prod__location_61d(var_n
, var59
); /* Direct call parser_nodes#Prod#location= on <var_n:ANode(Prod)>*/
1707 var75
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1708 if (unlikely(var75
== NULL
)) {
1709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1710 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 225);
1714 var76
= array__AbstractArrayRead__is_empty(var75
);
1718 var78
= NEW_location__Location(&type_location__Location
);
1720 { /* Inline location#Location#file (var_endl) on <var_endl:nullable Location(Location)> */
1721 var81
= var_endl
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var_endl:nullable Location(Location)> */
1723 RET_LABEL80
:(void)0;
1727 { /* Inline location#Location#line_end (var_endl) on <var_endl:nullable Location(Location)> */
1728 var84
= var_endl
->attrs
[COLOR_location__Location___line_end
].l
; /* _line_end on <var_endl:nullable Location(Location)> */
1730 RET_LABEL83
:(void)0;
1734 { /* Inline location#Location#line_end (var_endl) on <var_endl:nullable Location(Location)> */
1735 var87
= var_endl
->attrs
[COLOR_location__Location___line_end
].l
; /* _line_end on <var_endl:nullable Location(Location)> */
1737 RET_LABEL86
:(void)0;
1741 { /* Inline location#Location#column_end (var_endl) on <var_endl:nullable Location(Location)> */
1742 var90
= var_endl
->attrs
[COLOR_location__Location___column_end
].l
; /* _column_end on <var_endl:nullable Location(Location)> */
1744 RET_LABEL89
:(void)0;
1748 { /* Inline location#Location#column_end (var_endl) on <var_endl:nullable Location(Location)> */
1749 var93
= var_endl
->attrs
[COLOR_location__Location___column_end
].l
; /* _column_end on <var_endl:nullable Location(Location)> */
1751 RET_LABEL92
:(void)0;
1755 location__Location__init(var78
, var79
, var82
, var85
, var88
, var91
); /* Direct call location#Location#init on <var78:Location>*/
1758 var95
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1759 if (unlikely(var95
== NULL
)) {
1760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1761 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 227);
1765 var96
= array__AbstractArrayRead__iterator(var95
);
1769 var97
= array__ArrayIterator__is_ok(var96
);
1773 var98
= array__ArrayIterator__item(var96
);
1777 parser_nodes__Prod__location_61d(var_no99
, var_loc94
); /* Direct call parser_nodes#Prod#location= on <var_no99:Prod>*/
1779 CONTINUE_label100
: (void)0;
1781 array__ArrayIterator__next(var96
); /* Direct call array#ArrayIterator#next on <var96:ArrayIterator[nullable Object]>*/
1784 BREAK_label100
: (void)0;
1785 var101
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1786 if (unlikely(var101
== NULL
)) {
1787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1788 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 231);
1792 array__AbstractArray__clear(var101
); /* Direct call array#AbstractArray#clear on <var101:Array[Prod]>*/
1797 var102
= self
->attrs
[COLOR_parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1798 if (unlikely(var102
== NULL
)) {
1799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1800 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_work.nit", 235);
1804 array__Array__add(var102
, var_n
); /* Direct call array#Array#add on <var102:Array[Prod]>*/
1810 /* method parser_work#ComputeProdLocationVisitor#visit for (self: Object, ANode) */
1811 void VIRTUAL_parser_work__ComputeProdLocationVisitor__visit(val
* self
, val
* p0
) {
1812 parser_work__ComputeProdLocationVisitor__visit(self
, p0
); /* Direct call parser_work#ComputeProdLocationVisitor#visit on <self:Object(ComputeProdLocationVisitor)>*/
1815 /* method parser_work#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */
1816 void parser_work__ComputeProdLocationVisitor__init(val
* self
) {
1818 { /* Inline parser_nodes#Visitor#init (self) on <self:ComputeProdLocationVisitor> */
1824 /* method parser_work#ComputeProdLocationVisitor#init for (self: Object) */
1825 void VIRTUAL_parser_work__ComputeProdLocationVisitor__init(val
* self
) {
1826 parser_work__ComputeProdLocationVisitor__init(self
); /* Direct call parser_work#ComputeProdLocationVisitor#init on <self:Object(ComputeProdLocationVisitor)>*/
1829 /* method parser_work#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
1830 val
* parser_work__ReduceAction__concat(val
* self
, val
* p0
, val
* p1
) {
1831 val
* var
/* : Array[Object] */;
1832 val
* var_l1
/* var l1: Array[Object] */;
1833 val
* var_l2
/* var l2: Array[Object] */;
1834 short int var1
/* : Bool */;
1838 var1
= array__AbstractArrayRead__is_empty(var_l1
);
1846 abstract_collection__Sequence__append(var_l1
, var_l2
); /* Direct call abstract_collection#Sequence#append on <var_l1:Array[Object]>*/
1853 /* method parser_work#ReduceAction#concat for (self: Object, Array[Object], Array[Object]): Array[Object] */
1854 val
* VIRTUAL_parser_work__ReduceAction__concat(val
* self
, val
* p0
, val
* p1
) {
1855 val
* var
/* : Array[Object] */;
1856 val
* var1
/* : Array[Object] */;
1857 var1
= parser_work__ReduceAction__concat(self
, p0
, p1
);
1862 /* method parser_work#ReduceAction#init for (self: ReduceAction, Int) */
1863 void parser_work__ReduceAction__init(val
* self
, long p0
) {
1864 long var_g
/* var g: Int */;
1866 self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
= var_g
; /* _goto on <self:ReduceAction> */
1869 /* method parser_work#ReduceAction#init for (self: Object, Int) */
1870 void VIRTUAL_parser_work__ReduceAction__init(val
* self
, long p0
) {
1871 parser_work__ReduceAction__init(self
, p0
); /* Direct call parser_work#ReduceAction#init on <self:Object(ReduceAction)>*/