1 #include "nitc__parser_work.sep.0.h"
2 /* method parser_work#State#state= for (self: State, Int) */
3 void nitc__parser_work___nitc__parser_work__State___state_61d(val
* self
, long p0
) {
4 self
->attrs
[COLOR_nitc__parser_work__State___state
].l
= p0
; /* _state on <self:State> */
7 /* method parser_work#State#nodes= for (self: State, nullable Object) */
8 void nitc__parser_work___nitc__parser_work__State___nodes_61d(val
* self
, val
* p0
) {
9 self
->attrs
[COLOR_nitc__parser_work__State___nodes
].val
= p0
; /* _nodes on <self:State> */
12 /* method parser_work#State#init for (self: State) */
13 void nitc__parser_work___nitc__parser_work__State___core__kernel__Object__init(val
* self
) {
15 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__parser_work___nitc__parser_work__State___core__kernel__Object__init
]))(self
); /* init on <self:State>*/
19 /* method parser_work#Parser#lexer= for (self: Parser, Lexer) */
20 void nitc___nitc__Parser___lexer_61d(val
* self
, val
* p0
) {
21 self
->attrs
[COLOR_nitc__parser_work__Parser___lexer
].val
= p0
; /* _lexer on <self:Parser> */
24 /* method parser_work#Parser#init for (self: Parser) */
25 void nitc___nitc__Parser___core__kernel__Object__init(val
* self
) {
27 static int varonce_guard
;
28 val
* var
/* : Array[ReduceAction] */;
29 val
* var1
/* : Array[ReduceAction] */;
31 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__Parser___core__kernel__Object__init
]))(self
); /* init on <self:Parser>*/
33 if (likely(varonce_guard
)) {
37 var1
= nitc__parser___Parser___build_reduce_table(self
);
44 { /* Inline parser_work#Parser#reduce_table= (self,var) on <self:Parser> */
45 self
->attrs
[COLOR_nitc__parser_work__Parser___reduce_table
].val
= var
; /* _reduce_table on <self:Parser> */
51 /* method parser_work#Parser#go_to for (self: Parser, Int): Int */
52 long nitc___nitc__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 var_low
/* var low: Int */;
58 long var2
/* : Int */;
59 long var4
/* : Int for extern */;
60 long var5
/* : Int */;
61 short int var7
/* : Bool */;
64 const char* var_class_name
;
65 long var8
/* : Int */;
66 long var_high
/* var high: Int */;
67 short int var9
/* : Bool */;
68 short int var11
/* : Bool */;
71 const char* var_class_name14
;
72 short int var15
/* : Bool */;
73 long var16
/* : Int */;
74 short int var18
/* : Bool */;
77 const char* var_class_name21
;
78 long var22
/* : Int */;
79 long var23
/* : Int */;
80 short int var25
/* : Bool */;
83 const char* var_class_name28
;
84 long var29
/* : Int */;
85 long var_middle
/* var middle: Int */;
86 long var30
/* : Int */;
87 short int var32
/* : Bool */;
90 const char* var_class_name35
;
91 long var36
/* : Int */;
92 long var37
/* : Int */;
93 short int var39
/* : Bool */;
96 const char* var_class_name42
;
97 long var43
/* : Int */;
98 long var_subindex
/* var subindex: Int */;
99 long var44
/* : Int */;
100 long var46
/* : Int for extern */;
101 long var_goal
/* var goal: Int */;
102 short int var47
/* : Bool */;
103 short int var49
/* : Bool */;
106 const char* var_class_name52
;
107 short int var53
/* : Bool */;
108 long var54
/* : Int */;
109 short int var56
/* : Bool */;
112 const char* var_class_name59
;
113 long var60
/* : Int */;
114 short int var61
/* : Bool */;
115 short int var63
/* : Bool */;
118 const char* var_class_name66
;
119 short int var67
/* : Bool */;
120 long var68
/* : Int */;
121 short int var70
/* : Bool */;
124 const char* var_class_name73
;
125 long var74
/* : Int */;
126 long var75
/* : Int */;
127 short int var77
/* : Bool */;
130 const char* var_class_name80
;
131 long var81
/* : Int */;
132 long var82
/* : Int */;
133 long var84
/* : Int for extern */;
134 long var85
/* : Int */;
135 long var87
/* : Int for extern */;
138 var1
= nitc___nitc__Parser___state(self
);
143 { /* Inline tables#TablesCapable#parser_goto (self,var_index,0l) on <self:Parser> */
144 var4
= parser_goto(self
, var_index
, 0l);
151 { /* Inline kernel#Int#- (var2,1l) on <var2:Int> */
152 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
153 /* <1l:Int> isa OTHER */
154 var7
= 1; /* easy <1l:Int> isa OTHER*/
155 if (unlikely(!var7
)) {
156 var_class_name
= type_core__Int
.name
;
157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
158 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
170 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
171 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
172 /* <var_high:Int> isa OTHER */
173 var11
= 1; /* easy <var_high:Int> isa OTHER*/
174 if (unlikely(!var11
)) {
175 var_class_name14
= type_core__Int
.name
;
176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
177 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
180 var15
= var_low
<= var_high
;
188 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
189 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
190 /* <var_high:Int> isa OTHER */
191 var18
= 1; /* easy <var_high:Int> isa OTHER*/
192 if (unlikely(!var18
)) {
193 var_class_name21
= type_core__Int
.name
;
194 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
195 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
198 var22
= var_low
+ var_high
;
205 { /* Inline kernel#Int#/ (var16,2l) on <var16:Int> */
206 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
207 /* <2l:Int> isa OTHER */
208 var25
= 1; /* easy <2l:Int> isa OTHER*/
209 if (unlikely(!var25
)) {
210 var_class_name28
= type_core__Int
.name
;
211 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
212 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 736);
223 { /* Inline kernel#Int#* (var_middle,2l) on <var_middle:Int> */
224 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
225 /* <2l:Int> isa OTHER */
226 var32
= 1; /* easy <2l:Int> isa OTHER*/
227 if (unlikely(!var32
)) {
228 var_class_name35
= type_core__Int
.name
;
229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35
);
230 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 735);
233 var36
= var_middle
* 2l;
240 { /* Inline kernel#Int#+ (var30,1l) on <var30:Int> */
241 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
242 /* <1l:Int> isa OTHER */
243 var39
= 1; /* easy <1l:Int> isa OTHER*/
244 if (unlikely(!var39
)) {
245 var_class_name42
= type_core__Int
.name
;
246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42
);
247 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
256 var_subindex
= var37
;
258 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var_subindex) on <self:Parser> */
259 var46
= parser_goto(self
, var_index
, var_subindex
);
267 { /* Inline kernel#Int#< (var_state,var_goal) on <var_state:Int> */
268 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
269 /* <var_goal:Int> isa OTHER */
270 var49
= 1; /* easy <var_goal:Int> isa OTHER*/
271 if (unlikely(!var49
)) {
272 var_class_name52
= type_core__Int
.name
;
273 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52
);
274 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
277 var53
= var_state
< var_goal
;
285 { /* Inline kernel#Int#- (var_middle,1l) on <var_middle:Int> */
286 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
287 /* <1l:Int> isa OTHER */
288 var56
= 1; /* easy <1l:Int> isa OTHER*/
289 if (unlikely(!var56
)) {
290 var_class_name59
= type_core__Int
.name
;
291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59
);
292 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
295 var60
= var_middle
- 1l;
304 { /* Inline kernel#Int#> (var_state,var_goal) on <var_state:Int> */
305 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
306 /* <var_goal:Int> isa OTHER */
307 var63
= 1; /* easy <var_goal:Int> isa OTHER*/
308 if (unlikely(!var63
)) {
309 var_class_name66
= type_core__Int
.name
;
310 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66
);
311 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
314 var67
= var_state
> var_goal
;
322 { /* Inline kernel#Int#+ (var_middle,1l) on <var_middle:Int> */
323 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
324 /* <1l:Int> isa OTHER */
325 var70
= 1; /* easy <1l:Int> isa OTHER*/
326 if (unlikely(!var70
)) {
327 var_class_name73
= type_core__Int
.name
;
328 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73
);
329 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
332 var74
= var_middle
+ 1l;
341 { /* Inline kernel#Int#+ (var_subindex,1l) on <var_subindex:Int> */
342 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
343 /* <1l:Int> isa OTHER */
344 var77
= 1; /* easy <1l:Int> isa OTHER*/
345 if (unlikely(!var77
)) {
346 var_class_name80
= type_core__Int
.name
;
347 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80
);
348 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
351 var81
= var_subindex
+ 1l;
358 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var75) on <self:Parser> */
359 var84
= parser_goto(self
, var_index
, var75
);
373 BREAK_label
: (void)0;
375 { /* Inline tables#TablesCapable#parser_goto (self,var_index,2l) on <self:Parser> */
376 var87
= parser_goto(self
, var_index
, 2l);
387 /* method parser_work#Parser#push for (self: Parser, Int, nullable Object) */
388 void nitc___nitc__Parser___push(val
* self
, long p0
, val
* p1
) {
389 long var_numstate
/* var numstate: Int */;
390 val
* var_list_node
/* var list_node: nullable Object */;
391 long var
/* : Int */;
392 long var1
/* : Int */;
393 short int var3
/* : Bool */;
396 const char* var_class_name
;
397 long var4
/* : Int */;
398 long var_pos
/* var pos: Int */;
399 val
* var5
/* : Array[State] */;
400 long var6
/* : Int */;
401 long var8
/* : Int */;
402 short int var9
/* : Bool */;
403 short int var11
/* : Bool */;
406 const char* var_class_name14
;
407 short int var15
/* : Bool */;
408 val
* var16
/* : Array[State] */;
409 val
* var17
/* : nullable Object */;
410 val
* var_state
/* var state: State */;
411 val
* var18
/* : Array[State] */;
412 val
* var19
/* : State */;
415 var
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
417 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
418 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
419 /* <1l:Int> isa OTHER */
420 var3
= 1; /* easy <1l:Int> isa OTHER*/
421 if (unlikely(!var3
)) {
422 var_class_name
= type_core__Int
.name
;
423 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
424 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
434 self
->attrs
[COLOR_nitc__parser_work__Parser___stack_pos
].l
= var_pos
; /* _stack_pos on <self:Parser> */
435 var5
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
436 if (unlikely(var5
== NULL
)) {
437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
438 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 75);
442 { /* Inline array#AbstractArrayRead#length (var5) on <var5:Array[State]> */
443 var8
= var5
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var5:Array[State]> */
449 { /* Inline kernel#Int#< (var_pos,var6) on <var_pos:Int> */
450 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
451 /* <var6:Int> isa OTHER */
452 var11
= 1; /* easy <var6:Int> isa OTHER*/
453 if (unlikely(!var11
)) {
454 var_class_name14
= type_core__Int
.name
;
455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
456 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
459 var15
= var_pos
< var6
;
466 var16
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
467 if (unlikely(var16
== NULL
)) {
468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 76);
473 var17
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var16
, var_pos
);
476 var_state
->attrs
[COLOR_nitc__parser_work__State___state
].l
= var_numstate
; /* _state on <var_state:State> */
477 var_state
->attrs
[COLOR_nitc__parser_work__State___nodes
].val
= var_list_node
; /* _nodes on <var_state:State> */
479 var18
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
480 if (unlikely(var18
== NULL
)) {
481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
482 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 80);
485 var19
= NEW_nitc__parser_work__State(&type_nitc__parser_work__State
);
487 ((void(*)(val
* self
, long p0
))(var19
->class->vft
[COLOR_nitc__parser_work__State__state_61d
]))(var19
, var_numstate
); /* state= on <var19:State>*/
490 ((void(*)(val
* self
, val
* p0
))(var19
->class->vft
[COLOR_nitc__parser_work__State__nodes_61d
]))(var19
, var_list_node
); /* nodes= on <var19:State>*/
493 ((void(*)(val
* self
))(var19
->class->vft
[COLOR_core__kernel__Object__init
]))(var19
); /* init on <var19:State>*/
496 core___core__AbstractArray___core__abstract_collection__Sequence__push(var18
, var19
); /* Direct call array#AbstractArray#push on <var18:Array[State]>*/
501 /* method parser_work#Parser#state for (self: Parser): Int */
502 long nitc___nitc__Parser___state(val
* self
) {
503 long var
/* : Int */;
504 val
* var1
/* : Array[State] */;
505 long var2
/* : Int */;
506 val
* var3
/* : nullable Object */;
507 long var4
/* : Int */;
508 var1
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
509 if (unlikely(var1
== NULL
)) {
510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
511 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 87);
514 var2
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
516 var3
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var1
, var2
);
518 var4
= var3
->attrs
[COLOR_nitc__parser_work__State___state
].l
; /* _state on <var3:nullable Object(State)> */
524 /* method parser_work#Parser#pop for (self: Parser): nullable Object */
525 val
* nitc___nitc__Parser___pop(val
* self
) {
526 val
* var
/* : nullable Object */;
527 val
* var1
/* : Array[State] */;
528 long var2
/* : Int */;
529 val
* var3
/* : nullable Object */;
530 val
* var4
/* : nullable Object */;
531 val
* var_res
/* var res: nullable Object */;
532 long var5
/* : Int */;
533 long var6
/* : Int */;
534 short int var8
/* : Bool */;
537 const char* var_class_name
;
538 long var9
/* : Int */;
539 var1
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack
].val
; /* _stack on <self:Parser> */
540 if (unlikely(var1
== NULL
)) {
541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 93);
545 var2
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
547 var3
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var1
, var2
);
549 var4
= var3
->attrs
[COLOR_nitc__parser_work__State___nodes
].val
; /* _nodes on <var3:nullable Object(State)> */
551 var5
= self
->attrs
[COLOR_nitc__parser_work__Parser___stack_pos
].l
; /* _stack_pos on <self:Parser> */
553 { /* Inline kernel#Int#- (var5,1l) on <var5:Int> */
554 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
555 /* <1l:Int> isa OTHER */
556 var8
= 1; /* easy <1l:Int> isa OTHER*/
557 if (unlikely(!var8
)) {
558 var_class_name
= type_core__Int
.name
;
559 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
560 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
569 self
->attrs
[COLOR_nitc__parser_work__Parser___stack_pos
].l
= var6
; /* _stack_pos on <self:Parser> */
575 /* method parser_work#Parser#parse for (self: Parser): Start */
576 val
* nitc___nitc__Parser___parse(val
* self
) {
577 val
* var
/* : Start */;
578 val
* var1
/* : Lexer */;
579 val
* var_lexer
/* var lexer: Lexer */;
580 val
* var2
/* : Token */;
581 val
* var_token
/* var token: Token */;
582 short int var3
/* : Bool */;
585 val
* var4
/* : Start */;
586 long var5
/* : Int */;
587 long var_state
/* var state: Int */;
588 long var6
/* : Int */;
589 long var_index
/* var index: Int */;
590 long var7
/* : Int */;
591 long var9
/* : Int for extern */;
592 long var_action_type
/* var action_type: Int */;
593 long var10
/* : Int */;
594 long var12
/* : Int for extern */;
595 long var_action_value
/* var action_value: Int */;
596 long var_low
/* var low: Int */;
597 long var13
/* : Int */;
598 long var15
/* : Int for extern */;
599 long var16
/* : Int */;
600 short int var18
/* : Bool */;
603 const char* var_class_name
;
604 long var21
/* : Int */;
605 long var_high
/* var high: Int */;
606 short int var22
/* : Bool */;
607 short int var24
/* : Bool */;
610 const char* var_class_name27
;
611 short int var28
/* : Bool */;
612 long var29
/* : Int */;
613 short int var31
/* : Bool */;
616 const char* var_class_name34
;
617 long var35
/* : Int */;
618 long var36
/* : Int */;
619 short int var38
/* : Bool */;
622 const char* var_class_name41
;
623 long var42
/* : Int */;
624 long var_middle
/* var middle: Int */;
625 long var43
/* : Int */;
626 short int var45
/* : Bool */;
629 const char* var_class_name48
;
630 long var49
/* : Int */;
631 long var50
/* : Int */;
632 short int var52
/* : Bool */;
635 const char* var_class_name55
;
636 long var56
/* : Int */;
637 long var_subindex
/* var subindex: Int */;
638 long var57
/* : Int */;
639 long var59
/* : Int for extern */;
640 long var_goal
/* var goal: Int */;
641 short int var60
/* : Bool */;
642 short int var62
/* : Bool */;
645 const char* var_class_name65
;
646 short int var66
/* : Bool */;
647 long var67
/* : Int */;
648 short int var69
/* : Bool */;
651 const char* var_class_name72
;
652 long var73
/* : Int */;
653 short int var74
/* : Bool */;
654 short int var76
/* : Bool */;
657 const char* var_class_name79
;
658 short int var80
/* : Bool */;
659 long var81
/* : Int */;
660 short int var83
/* : Bool */;
663 const char* var_class_name86
;
664 long var87
/* : Int */;
665 long var88
/* : Int */;
666 short int var90
/* : Bool */;
669 const char* var_class_name93
;
670 long var94
/* : Int */;
671 long var95
/* : Int */;
672 long var97
/* : Int for extern */;
673 long var98
/* : Int */;
674 short int var100
/* : Bool */;
677 const char* var_class_name103
;
678 long var104
/* : Int */;
679 long var105
/* : Int */;
680 long var107
/* : Int for extern */;
681 short int var108
/* : Bool */;
682 short int var110
/* : Bool */;
683 val
* var111
/* : Token */;
684 short int var112
/* : Bool */;
685 short int var114
/* : Bool */;
686 val
* var115
/* : Array[ReduceAction] */;
687 val
* var116
/* : nullable Object */;
688 short int var117
/* : Bool */;
689 short int var119
/* : Bool */;
690 val
* var120
/* : Token */;
691 val
* var_node2
/* var node2: Token */;
692 short int var121
/* : Bool */;
695 val
* var124
/* : nullable Object */;
696 val
* var_node1
/* var node1: nullable Object */;
697 short int var125
/* : Bool */;
700 val
* var128
/* : Start */;
701 val
* var_node
/* var node: Start */;
702 val
* var130
/* : ComputeProdLocationVisitor */;
703 val
* var131
/* : SourceFile */;
704 val
* var133
/* : SourceFile */;
705 val
* var134
/* : nullable Token */;
706 val
* var136
/* : nullable Token */;
707 short int var137
/* : Bool */;
708 short int var139
/* : Bool */;
709 short int var140
/* : Bool */;
710 short int var141
/* : Bool */;
711 val
* var142
/* : Token */;
712 val
* var144
/* : AParserError */;
713 val
* var145
/* : NativeArray[String] */;
715 static val
* varonce146
;
716 val
* var147
/* : String */;
717 char* var148
/* : NativeString */;
718 val
* var149
/* : String */;
719 static val
* varonce150
;
720 val
* var151
/* : String */;
721 char* var152
/* : NativeString */;
722 val
* var153
/* : String */;
723 val
* var154
/* : String */;
724 val
* var155
/* : String */;
725 val
* var156
/* : Location */;
726 val
* var158
/* : Location */;
727 val
* var_node2159
/* var node2: AParserError */;
728 val
* var160
/* : Start */;
729 val
* var_node161
/* var node: Start */;
731 nitc___nitc__Parser___push(self
, 0l, ((val
*)NULL
)); /* Direct call parser_work#Parser#push on <self:Parser>*/
733 var1
= self
->attrs
[COLOR_nitc__parser_work__Parser___lexer
].val
; /* _lexer on <self:Parser> */
734 if (unlikely(var1
== NULL
)) {
735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lexer");
736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 103);
742 var2
= nitc___nitc__Lexer___peek(var_lexer
);
745 /* <var_token:Token> isa AError */
746 cltype
= type_nitc__AError
.color
;
747 idtype
= type_nitc__AError
.id
;
748 if(cltype
>= var_token
->type
->table_size
) {
751 var3
= var_token
->type
->type_table
[cltype
] == idtype
;
754 var4
= NEW_nitc__Start(&type_nitc__Start
);
756 ((void(*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_nitc__parser_nodes__Start__n_base_61d
]))(var4
, ((val
*)NULL
)); /* n_base= on <var4:Start>*/
759 ((void(*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_nitc__parser_nodes__Start__n_eof_61d
]))(var4
, var_token
); /* n_eof= on <var4:Start>*/
762 ((void(*)(val
* self
))(var4
->class->vft
[COLOR_core__kernel__Object__init
]))(var4
); /* init on <var4:Start>*/
769 var5
= nitc___nitc__Parser___state(self
);
773 var6
= ((long(*)(val
* self
))(var_token
->class->vft
[COLOR_nitc__lexer_work__Token__parser_index
]))(var_token
); /* parser_index on <var_token:Token>*/
777 { /* Inline tables#TablesCapable#parser_action (self,var_state,2l) on <self:Parser> */
778 var9
= parser_action(self
, var_state
, 2l);
784 var_action_type
= var7
;
786 { /* Inline tables#TablesCapable#parser_action (self,var_state,3l) on <self:Parser> */
787 var12
= parser_action(self
, var_state
, 3l);
793 var_action_value
= var10
;
796 { /* Inline tables#TablesCapable#parser_action (self,var_state,0l) on <self:Parser> */
797 var15
= parser_action(self
, var_state
, 0l);
804 { /* Inline kernel#Int#- (var13,1l) on <var13:Int> */
805 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
806 /* <1l:Int> isa OTHER */
807 var18
= 1; /* easy <1l:Int> isa OTHER*/
808 if (unlikely(!var18
)) {
809 var_class_name
= type_core__Int
.name
;
810 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
811 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
823 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
824 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
825 /* <var_high:Int> isa OTHER */
826 var24
= 1; /* easy <var_high:Int> isa OTHER*/
827 if (unlikely(!var24
)) {
828 var_class_name27
= type_core__Int
.name
;
829 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27
);
830 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
833 var28
= var_low
<= var_high
;
841 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
842 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
843 /* <var_high:Int> isa OTHER */
844 var31
= 1; /* easy <var_high:Int> isa OTHER*/
845 if (unlikely(!var31
)) {
846 var_class_name34
= type_core__Int
.name
;
847 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
848 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
851 var35
= var_low
+ var_high
;
858 { /* Inline kernel#Int#/ (var29,2l) on <var29:Int> */
859 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
860 /* <2l:Int> isa OTHER */
861 var38
= 1; /* easy <2l:Int> isa OTHER*/
862 if (unlikely(!var38
)) {
863 var_class_name41
= type_core__Int
.name
;
864 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41
);
865 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 736);
876 { /* Inline kernel#Int#* (var_middle,3l) on <var_middle:Int> */
877 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
878 /* <3l:Int> isa OTHER */
879 var45
= 1; /* easy <3l:Int> isa OTHER*/
880 if (unlikely(!var45
)) {
881 var_class_name48
= type_core__Int
.name
;
882 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48
);
883 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 735);
886 var49
= var_middle
* 3l;
893 { /* Inline kernel#Int#+ (var43,1l) on <var43:Int> */
894 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
895 /* <1l:Int> isa OTHER */
896 var52
= 1; /* easy <1l:Int> isa OTHER*/
897 if (unlikely(!var52
)) {
898 var_class_name55
= type_core__Int
.name
;
899 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55
);
900 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
909 var_subindex
= var50
;
911 { /* Inline tables#TablesCapable#parser_action (self,var_state,var_subindex) on <self:Parser> */
912 var59
= parser_action(self
, var_state
, var_subindex
);
920 { /* Inline kernel#Int#< (var_index,var_goal) on <var_index:Int> */
921 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
922 /* <var_goal:Int> isa OTHER */
923 var62
= 1; /* easy <var_goal:Int> isa OTHER*/
924 if (unlikely(!var62
)) {
925 var_class_name65
= type_core__Int
.name
;
926 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65
);
927 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
930 var66
= var_index
< var_goal
;
938 { /* Inline kernel#Int#- (var_middle,1l) on <var_middle:Int> */
939 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
940 /* <1l:Int> isa OTHER */
941 var69
= 1; /* easy <1l:Int> isa OTHER*/
942 if (unlikely(!var69
)) {
943 var_class_name72
= type_core__Int
.name
;
944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72
);
945 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
948 var73
= var_middle
- 1l;
957 { /* Inline kernel#Int#> (var_index,var_goal) on <var_index:Int> */
958 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
959 /* <var_goal:Int> isa OTHER */
960 var76
= 1; /* easy <var_goal:Int> isa OTHER*/
961 if (unlikely(!var76
)) {
962 var_class_name79
= type_core__Int
.name
;
963 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79
);
964 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
967 var80
= var_index
> var_goal
;
975 { /* Inline kernel#Int#+ (var_middle,1l) on <var_middle:Int> */
976 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
977 /* <1l:Int> isa OTHER */
978 var83
= 1; /* easy <1l:Int> isa OTHER*/
979 if (unlikely(!var83
)) {
980 var_class_name86
= type_core__Int
.name
;
981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86
);
982 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
985 var87
= var_middle
+ 1l;
994 { /* Inline kernel#Int#+ (var_subindex,1l) on <var_subindex:Int> */
995 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
996 /* <1l:Int> isa OTHER */
997 var90
= 1; /* easy <1l:Int> isa OTHER*/
998 if (unlikely(!var90
)) {
999 var_class_name93
= type_core__Int
.name
;
1000 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93
);
1001 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1004 var94
= var_subindex
+ 1l;
1007 RET_LABEL89
:(void)0;
1011 { /* Inline tables#TablesCapable#parser_action (self,var_state,var88) on <self:Parser> */
1012 var97
= parser_action(self
, var_state
, var88
);
1015 RET_LABEL96
:(void)0;
1018 var_action_type
= var95
;
1020 { /* Inline kernel#Int#+ (var_subindex,2l) on <var_subindex:Int> */
1021 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1022 /* <2l:Int> isa OTHER */
1023 var100
= 1; /* easy <2l:Int> isa OTHER*/
1024 if (unlikely(!var100
)) {
1025 var_class_name103
= type_core__Int
.name
;
1026 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103
);
1027 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1030 var104
= var_subindex
+ 2l;
1033 RET_LABEL99
:(void)0;
1037 { /* Inline tables#TablesCapable#parser_action (self,var_state,var98) on <self:Parser> */
1038 var107
= parser_action(self
, var_state
, var98
);
1041 RET_LABEL106
:(void)0;
1044 var_action_value
= var105
;
1052 BREAK_label
: (void)0;
1054 { /* Inline kernel#Int#== (var_action_type,0l) on <var_action_type:Int> */
1055 var110
= var_action_type
== 0l;
1058 RET_LABEL109
:(void)0;
1063 var111
= nitc___nitc__Lexer___next(var_lexer
);
1066 nitc___nitc__Parser___push(self
, var_action_value
, var111
); /* Direct call parser_work#Parser#push on <self:Parser>*/
1070 { /* Inline kernel#Int#== (var_action_type,1l) on <var_action_type:Int> */
1071 var114
= var_action_type
== 1l;
1074 RET_LABEL113
:(void)0;
1078 var115
= self
->attrs
[COLOR_nitc__parser_work__Parser___reduce_table
].val
; /* _reduce_table on <self:Parser> */
1079 if (unlikely(var115
== NULL
)) {
1080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _reduce_table");
1081 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 137);
1085 var116
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var115
, var_action_value
);
1088 ((void(*)(val
* self
, val
* p0
))(var116
->class->vft
[COLOR_nitc__parser_work__ReduceAction__action
]))(var116
, self
); /* action on <var116:nullable Object(ReduceAction)>*/
1092 { /* Inline kernel#Int#== (var_action_type,2l) on <var_action_type:Int> */
1093 var119
= var_action_type
== 2l;
1096 RET_LABEL118
:(void)0;
1101 var120
= nitc___nitc__Lexer___next(var_lexer
);
1104 /* <var_node2:Token> isa EOF */
1105 cltype122
= type_nitc__EOF
.color
;
1106 idtype123
= type_nitc__EOF
.id
;
1107 if(cltype122
>= var_node2
->type
->table_size
) {
1110 var121
= var_node2
->type
->type_table
[cltype122
] == idtype123
;
1112 if (unlikely(!var121
)) {
1113 PRINT_ERROR("Runtime error: %s", "Assert failed");
1114 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 140);
1118 var124
= nitc___nitc__Parser___pop(self
);
1121 /* <var_node1:nullable Object> isa AModule */
1122 cltype126
= type_nitc__AModule
.color
;
1123 idtype127
= type_nitc__AModule
.id
;
1124 if(var_node1
== NULL
) {
1127 if(cltype126
>= (((long)var_node1
&3)?type_info
[((long)var_node1
&3)]:var_node1
->type
)->table_size
) {
1130 var125
= (((long)var_node1
&3)?type_info
[((long)var_node1
&3)]:var_node1
->type
)->type_table
[cltype126
] == idtype127
;
1133 if (unlikely(!var125
)) {
1134 PRINT_ERROR("Runtime error: %s", "Assert failed");
1135 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 142);
1138 var128
= NEW_nitc__Start(&type_nitc__Start
);
1140 ((void(*)(val
* self
, val
* p0
))(var128
->class->vft
[COLOR_nitc__parser_nodes__Start__n_base_61d
]))(var128
, var_node1
); /* n_base= on <var128:Start>*/
1143 ((void(*)(val
* self
, val
* p0
))(var128
->class->vft
[COLOR_nitc__parser_nodes__Start__n_eof_61d
]))(var128
, var_node2
); /* n_eof= on <var128:Start>*/
1146 ((void(*)(val
* self
))(var128
->class->vft
[COLOR_core__kernel__Object__init
]))(var128
); /* init on <var128:Start>*/
1150 { /* Inline parser_nodes#ANode#parent= (var_node2,var_node) on <var_node2:Token(EOF)> */
1151 var_node2
->attrs
[COLOR_nitc__parser_nodes__ANode___parent
].val
= var_node
; /* _parent on <var_node2:Token(EOF)> */
1152 RET_LABEL129
:(void)0;
1155 var130
= NEW_nitc__parser_work__ComputeProdLocationVisitor(&type_nitc__parser_work__ComputeProdLocationVisitor
);
1157 { /* Inline lexer_work#Lexer#file (var_lexer) on <var_lexer:Lexer> */
1158 var133
= var_lexer
->attrs
[COLOR_nitc__lexer_work__Lexer___file
].val
; /* _file on <var_lexer:Lexer> */
1159 if (unlikely(var133
== NULL
)) {
1160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
1161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__lexer_work
, 90);
1165 RET_LABEL132
:(void)0;
1169 { /* Inline parser_nodes#SourceFile#first_token (var131) on <var131:SourceFile> */
1170 var136
= var131
->attrs
[COLOR_nitc__parser_nodes__SourceFile___first_token
].val
; /* _first_token on <var131:SourceFile> */
1172 RET_LABEL135
:(void)0;
1176 ((void(*)(val
* self
, val
* p0
))(var130
->class->vft
[COLOR_nitc__parser_work__ComputeProdLocationVisitor__token_61d
]))(var130
, var134
); /* token= on <var130:ComputeProdLocationVisitor>*/
1179 ((void(*)(val
* self
))(var130
->class->vft
[COLOR_core__kernel__Object__init
]))(var130
); /* init on <var130:ComputeProdLocationVisitor>*/
1182 nitc___nitc__Visitor___enter_visit(var130
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <var130:ComputeProdLocationVisitor>*/
1188 { /* Inline kernel#Int#== (var_action_type,3l) on <var_action_type:Int> */
1189 var139
= var_action_type
== 3l;
1192 RET_LABEL138
:(void)0;
1197 var140
= var_token
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
!= NULL
; /* _location on <var_token:Token> */
1201 var142
= nitc___nitc__Lexer___next(var_lexer
);
1205 goto BREAK_label143
;
1208 BREAK_label143
: (void)0;
1209 var144
= NEW_nitc__AParserError(&type_nitc__AParserError
);
1210 if (unlikely(varonce
==NULL
)) {
1211 var145
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1212 if (likely(varonce146
!=NULL
)) {
1213 var147
= varonce146
;
1215 var148
= "Syntax Error: unexpected ";
1216 var149
= core__flat___NativeString___to_s_full(var148
, 25l, 25l);
1218 varonce146
= var147
;
1220 ((struct instance_core__NativeArray
*)var145
)->values
[0]=var147
;
1221 if (likely(varonce150
!=NULL
)) {
1222 var151
= varonce150
;
1225 var153
= core__flat___NativeString___to_s_full(var152
, 1l, 1l);
1227 varonce150
= var151
;
1229 ((struct instance_core__NativeArray
*)var145
)->values
[2]=var151
;
1235 var154
= ((val
*(*)(val
* self
))(var_token
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_token
); /* to_s on <var_token:Token>*/
1237 ((struct instance_core__NativeArray
*)var145
)->values
[1]=var154
;
1239 var155
= ((val
*(*)(val
* self
))(var145
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var145
); /* native_to_s on <var145:NativeArray[String]>*/
1243 { /* Inline parser_nodes#ANode#location (var_token) on <var_token:Token> */
1244 var158
= var_token
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var_token:Token> */
1245 if (unlikely(var158
== NULL
)) {
1246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1247 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
1251 RET_LABEL157
:(void)0;
1255 nitc__lexer_work___AParserError___init_parser_error(var144
, var155
, var156
, var_token
); /* Direct call lexer_work#AParserError#init_parser_error on <var144:AParserError>*/
1257 var_node2159
= var144
;
1258 var160
= NEW_nitc__Start(&type_nitc__Start
);
1260 ((void(*)(val
* self
, val
* p0
))(var160
->class->vft
[COLOR_nitc__parser_nodes__Start__n_base_61d
]))(var160
, ((val
*)NULL
)); /* n_base= on <var160:Start>*/
1263 ((void(*)(val
* self
, val
* p0
))(var160
->class->vft
[COLOR_nitc__parser_nodes__Start__n_eof_61d
]))(var160
, var_node2159
); /* n_eof= on <var160:Start>*/
1266 ((void(*)(val
* self
))(var160
->class->vft
[COLOR_core__kernel__Object__init
]))(var160
); /* init on <var160:Start>*/
1268 var_node161
= var160
;
1280 /* method parser_work#Parser#reduce_table= for (self: Parser, Array[ReduceAction]) */
1281 void nitc___nitc__Parser___reduce_table_61d(val
* self
, val
* p0
) {
1282 self
->attrs
[COLOR_nitc__parser_work__Parser___reduce_table
].val
= p0
; /* _reduce_table on <self:Parser> */
1285 /* method parser_work#Prod#collect_text for (self: Prod): String */
1286 val
* nitc__parser_work___Prod___collect_text(val
* self
) {
1287 val
* var
/* : String */;
1288 val
* var1
/* : TextCollectorVisitor */;
1289 val
* var_v
/* var v: TextCollectorVisitor */;
1290 val
* var3
/* : String */;
1291 val
* var5
/* : String */;
1292 static val
* varonce
;
1293 val
* var6
/* : String */;
1294 char* var7
/* : NativeString */;
1295 val
* var8
/* : String */;
1296 short int var9
/* : Bool */;
1297 val
* var_other
/* var other: nullable Object */;
1298 short int var11
/* : Bool */;
1299 short int var12
/* : Bool */;
1300 val
* var13
/* : String */;
1301 val
* var15
/* : String */;
1302 var1
= NEW_nitc__parser_work__TextCollectorVisitor(&type_nitc__parser_work__TextCollectorVisitor
);
1304 { /* Inline kernel#Object#init (var1) on <var1:TextCollectorVisitor> */
1310 nitc___nitc__Visitor___enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:TextCollectorVisitor>*/
1313 { /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
1314 var5
= var_v
->attrs
[COLOR_nitc__parser_work__TextCollectorVisitor___text
].val
; /* _text on <var_v:TextCollectorVisitor> */
1315 if (unlikely(var5
== NULL
)) {
1316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 281);
1324 if (likely(varonce
!=NULL
)) {
1328 var8
= core__flat___NativeString___to_s_full(var7
, 0l, 0l);
1333 { /* Inline kernel#Object#!= (var3,var6) on <var3:String> */
1336 var11
= ((short int(*)(val
* self
, val
* p0
))(var3
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var3
, var_other
); /* == on <var3:String>*/
1341 RET_LABEL10
:(void)0;
1344 if (unlikely(!var9
)) {
1345 PRINT_ERROR("Runtime error: %s", "Assert failed");
1346 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 171);
1350 { /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
1351 var15
= var_v
->attrs
[COLOR_nitc__parser_work__TextCollectorVisitor___text
].val
; /* _text on <var_v:TextCollectorVisitor> */
1352 if (unlikely(var15
== NULL
)) {
1353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1354 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 281);
1358 RET_LABEL14
:(void)0;
1366 /* method parser_work#ComputeProdLocationVisitor#token for (self: ComputeProdLocationVisitor): nullable Token */
1367 val
* nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___token(val
* self
) {
1368 val
* var
/* : nullable Token */;
1369 val
* var1
/* : nullable Token */;
1370 var1
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token
].val
; /* _token on <self:ComputeProdLocationVisitor> */
1375 /* method parser_work#ComputeProdLocationVisitor#token= for (self: ComputeProdLocationVisitor, nullable Token) */
1376 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___token_61d(val
* self
, val
* p0
) {
1377 self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token
].val
= p0
; /* _token on <self:ComputeProdLocationVisitor> */
1380 /* method parser_work#ComputeProdLocationVisitor#last_token for (self: ComputeProdLocationVisitor): nullable Token */
1381 val
* nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___last_token(val
* self
) {
1382 val
* var
/* : nullable Token */;
1383 val
* var1
/* : nullable Token */;
1384 var1
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token
].val
; /* _last_token on <self:ComputeProdLocationVisitor> */
1389 /* method parser_work#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */
1390 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___nitc__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
1391 val
* var_n
/* var n: ANode */;
1392 short int var
/* : Bool */;
1395 short int var1
/* : Bool */;
1396 short int var2
/* : Bool */;
1397 val
* var3
/* : nullable Token */;
1398 val
* var5
/* : nullable Token */;
1399 val
* var_cursor
/* var cursor: nullable Token */;
1400 short int var6
/* : Bool */;
1401 val
* var_other
/* var other: nullable Object */;
1402 short int var8
/* : Bool */;
1403 short int var9
/* : Bool */;
1404 val
* var10
/* : nullable Token */;
1405 val
* var12
/* : nullable Token */;
1406 val
* var_lt
/* var lt: nullable Token */;
1407 short int var13
/* : Bool */;
1408 short int var14
/* : Bool */;
1409 short int var16
/* : Bool */;
1410 short int var17
/* : Bool */;
1411 val
* var18
/* : Location */;
1412 val
* var20
/* : Location */;
1413 long var21
/* : Int */;
1414 long var23
/* : Int */;
1415 long var_ltl
/* var ltl: Int */;
1416 short int var24
/* : Bool */;
1417 short int var25
/* : Bool */;
1418 short int var26
/* : Bool */;
1419 short int var27
/* : Bool */;
1420 short int var29
/* : Bool */;
1421 short int var30
/* : Bool */;
1422 short int var_
/* var : Bool */;
1423 short int var31
/* : Bool */;
1424 short int var33
/* : Bool */;
1425 short int var34
/* : Bool */;
1426 short int var_35
/* var : Bool */;
1427 val
* var36
/* : Location */;
1428 val
* var38
/* : Location */;
1429 long var39
/* : Int */;
1430 long var41
/* : Int */;
1431 short int var42
/* : Bool */;
1432 short int var44
/* : Bool */;
1433 val
* var46
/* : Array[Token] */;
1434 val
* var47
/* : nullable Token */;
1435 val
* var49
/* : nullable Token */;
1436 short int var50
/* : Bool */;
1437 short int var51
/* : Bool */;
1438 short int var52
/* : Bool */;
1439 short int var54
/* : Bool */;
1440 short int var55
/* : Bool */;
1441 short int var_56
/* var : Bool */;
1442 short int var57
/* : Bool */;
1443 short int var59
/* : Bool */;
1444 short int var60
/* : Bool */;
1445 val
* var62
/* : Array[Token] */;
1446 val
* var63
/* : nullable Token */;
1447 val
* var65
/* : nullable Token */;
1448 val
* var67
/* : nullable Token */;
1449 val
* var69
/* : nullable Token */;
1450 val
* var71
/* : Location */;
1451 val
* var_loc
/* var loc: Location */;
1452 val
* var72
/* : Array[Prod] */;
1453 short int var73
/* : Bool */;
1454 short int var74
/* : Bool */;
1455 val
* var75
/* : Array[Prod] */;
1456 val
* var_76
/* var : Array[Prod] */;
1457 val
* var77
/* : IndexedIterator[nullable Object] */;
1458 val
* var_78
/* var : IndexedIterator[Prod] */;
1459 short int var79
/* : Bool */;
1460 val
* var81
/* : nullable Object */;
1461 val
* var_no
/* var no: Prod */;
1462 val
* var82
/* : Array[Prod] */;
1463 val
* var83
/* : Array[Prod] */;
1464 short int var84
/* : Bool */;
1465 short int var85
/* : Bool */;
1466 val
* var86
/* : Location */;
1467 val
* var87
/* : nullable SourceFile */;
1468 val
* var89
/* : nullable SourceFile */;
1469 long var90
/* : Int */;
1470 long var92
/* : Int */;
1471 long var93
/* : Int */;
1472 long var95
/* : Int */;
1473 long var96
/* : Int */;
1474 long var98
/* : Int */;
1475 long var99
/* : Int */;
1476 long var101
/* : Int */;
1477 val
* var_loco
/* var loco: Location */;
1478 val
* var102
/* : Array[Prod] */;
1479 val
* var_103
/* var : Array[Prod] */;
1480 val
* var104
/* : IndexedIterator[nullable Object] */;
1481 val
* var_105
/* var : IndexedIterator[Prod] */;
1482 short int var106
/* : Bool */;
1483 val
* var108
/* : nullable Object */;
1484 val
* var_no109
/* var no: Prod */;
1485 val
* var111
/* : Array[Prod] */;
1486 short int var112
/* : Bool */;
1489 val
* var115
/* : Array[Prod] */;
1490 val
* var116
/* : nullable Location */;
1491 val
* var_startl
/* var startl: nullable Location */;
1492 short int var117
/* : Bool */;
1493 short int var118
/* : Bool */;
1494 short int var120
/* : Bool */;
1495 short int var121
/* : Bool */;
1496 val
* var122
/* : nullable Token */;
1497 val
* var123
/* : Location */;
1498 val
* var125
/* : Location */;
1499 val
* var_endl
/* var endl: Location */;
1500 short int var126
/* : Bool */;
1501 val
* var128
/* : Location */;
1502 val
* var129
/* : nullable SourceFile */;
1503 val
* var131
/* : nullable SourceFile */;
1504 long var132
/* : Int */;
1505 long var134
/* : Int */;
1506 long var135
/* : Int */;
1507 long var137
/* : Int */;
1508 long var138
/* : Int */;
1509 long var140
/* : Int */;
1510 long var141
/* : Int */;
1511 long var143
/* : Int */;
1512 val
* var145
/* : Array[Prod] */;
1513 short int var146
/* : Bool */;
1514 short int var147
/* : Bool */;
1515 val
* var148
/* : Location */;
1516 val
* var149
/* : nullable SourceFile */;
1517 val
* var151
/* : nullable SourceFile */;
1518 long var152
/* : Int */;
1519 long var154
/* : Int */;
1520 long var155
/* : Int */;
1521 long var157
/* : Int */;
1522 long var158
/* : Int */;
1523 long var160
/* : Int */;
1524 long var161
/* : Int */;
1525 long var163
/* : Int */;
1526 val
* var_loc164
/* var loc: Location */;
1527 val
* var165
/* : Array[Prod] */;
1528 val
* var_166
/* var : Array[Prod] */;
1529 val
* var167
/* : IndexedIterator[nullable Object] */;
1530 val
* var_168
/* var : IndexedIterator[Prod] */;
1531 short int var169
/* : Bool */;
1532 val
* var171
/* : nullable Object */;
1533 val
* var_no172
/* var no: Prod */;
1534 val
* var174
/* : Array[Prod] */;
1535 val
* var175
/* : Array[Prod] */;
1537 /* <var_n:ANode> isa Token */
1538 cltype
= type_nitc__Token
.color
;
1539 idtype
= type_nitc__Token
.id
;
1540 if(cltype
>= var_n
->type
->table_size
) {
1543 var
= var_n
->type
->type_table
[cltype
] == idtype
;
1546 var1
= var_n
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
!= NULL
; /* _location on <var_n:ANode(Token)> */
1553 { /* Inline parser_work#ComputeProdLocationVisitor#token (self) on <self:ComputeProdLocationVisitor> */
1554 var5
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token
].val
; /* _token on <self:ComputeProdLocationVisitor> */
1561 { /* Inline kernel#Object#!= (var_n,var_cursor) on <var_n:ANode(Token)> */
1562 var_other
= var_cursor
;
1564 var8
= ((short int(*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_n
, var_other
); /* == on <var_n:ANode(Token)>*/
1574 { /* Inline parser_work#ComputeProdLocationVisitor#last_token (self) on <self:ComputeProdLocationVisitor> */
1575 var12
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token
].val
; /* _last_token on <self:ComputeProdLocationVisitor> */
1577 RET_LABEL11
:(void)0;
1581 if (var_lt
== NULL
) {
1582 var13
= 0; /* is null */
1584 var13
= 1; /* arg is null and recv is not */
1587 { /* Inline kernel#Object#!= (var_lt,((val*)NULL)) on <var_lt:nullable Token> */
1588 var_other
= ((val
*)NULL
);
1590 var16
= ((short int(*)(val
* self
, val
* p0
))(var_lt
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_lt
, var_other
); /* == on <var_lt:nullable Token(Token)>*/
1595 RET_LABEL15
:(void)0;
1601 { /* Inline parser_nodes#ANode#location (var_lt) on <var_lt:nullable Token(Token)> */
1602 var20
= var_lt
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var_lt:nullable Token(Token)> */
1603 if (unlikely(var20
== NULL
)) {
1604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1605 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
1609 RET_LABEL19
:(void)0;
1613 { /* Inline location#Location#line_end (var18) on <var18:Location> */
1614 var23
= var18
->attrs
[COLOR_nitc__location__Location___line_end
].l
; /* _line_end on <var18:Location> */
1616 RET_LABEL22
:(void)0;
1621 if (var_cursor
== NULL
) {
1622 var26
= 0; /* is null */
1624 var26
= 1; /* arg is null and recv is not */
1627 { /* Inline kernel#Object#!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
1628 var_other
= ((val
*)NULL
);
1630 var29
= ((short int(*)(val
* self
, val
* p0
))(var_cursor
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_cursor
, var_other
); /* == on <var_cursor:nullable Token(Token)>*/
1635 RET_LABEL28
:(void)0;
1642 { /* Inline kernel#Object#!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
1645 var33
= ((short int(*)(val
* self
, val
* p0
))(var_cursor
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_cursor
, var_other
); /* == on <var_cursor:nullable Token(Token)>*/
1650 RET_LABEL32
:(void)0;
1660 { /* Inline parser_nodes#ANode#location (var_cursor) on <var_cursor:nullable Token(Token)> */
1661 var38
= var_cursor
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var_cursor:nullable Token(Token)> */
1662 if (unlikely(var38
== NULL
)) {
1663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1664 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
1668 RET_LABEL37
:(void)0;
1672 { /* Inline location#Location#line_start (var36) on <var36:Location> */
1673 var41
= var36
->attrs
[COLOR_nitc__location__Location___line_start
].l
; /* _line_start on <var36:Location> */
1675 RET_LABEL40
:(void)0;
1679 { /* Inline kernel#Int#== (var_ltl,var39) on <var_ltl:Int> */
1680 var44
= var_ltl
== var39
;
1683 RET_LABEL43
:(void)0;
1692 { /* Inline parser_nodes#Token#is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
1693 var_cursor
->attrs
[COLOR_nitc__parser_nodes__Token___is_loose
].s
= 1; /* _is_loose on <var_cursor:nullable Token(Token)> */
1694 RET_LABEL45
:(void)0;
1698 var46
= nitc___nitc__Token___next_looses(var_lt
);
1701 core___core__Array___core__abstract_collection__SimpleCollection__add(var46
, var_cursor
); /* Direct call array#Array#add on <var46:Array[Token]>*/
1704 { /* Inline parser_nodes#Token#next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
1705 var49
= var_cursor
->attrs
[COLOR_nitc__parser_nodes__Token___next_token
].val
; /* _next_token on <var_cursor:nullable Token(Token)> */
1707 RET_LABEL48
:(void)0;
1715 BREAK_label
: (void)0;
1719 if (var_cursor
== NULL
) {
1720 var51
= 0; /* is null */
1722 var51
= 1; /* arg is null and recv is not */
1725 { /* Inline kernel#Object#!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
1726 var_other
= ((val
*)NULL
);
1728 var54
= ((short int(*)(val
* self
, val
* p0
))(var_cursor
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_cursor
, var_other
); /* == on <var_cursor:nullable Token(Token)>*/
1733 RET_LABEL53
:(void)0;
1740 { /* Inline kernel#Object#!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
1743 var59
= ((short int(*)(val
* self
, val
* p0
))(var_cursor
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_cursor
, var_other
); /* == on <var_cursor:nullable Token(Token)>*/
1748 RET_LABEL58
:(void)0;
1757 { /* Inline parser_nodes#Token#is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
1758 var_cursor
->attrs
[COLOR_nitc__parser_nodes__Token___is_loose
].s
= 1; /* _is_loose on <var_cursor:nullable Token(Token)> */
1759 RET_LABEL61
:(void)0;
1763 var62
= nitc___nitc__Token___prev_looses(var_n
);
1766 core___core__Array___core__abstract_collection__SimpleCollection__add(var62
, var_cursor
); /* Direct call array#Array#add on <var62:Array[Token]>*/
1769 { /* Inline parser_nodes#Token#next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
1770 var65
= var_cursor
->attrs
[COLOR_nitc__parser_nodes__Token___next_token
].val
; /* _next_token on <var_cursor:nullable Token(Token)> */
1772 RET_LABEL64
:(void)0;
1780 BREAK_label66
: (void)0;
1784 { /* Inline parser_nodes#Token#next_token (var_n) on <var_n:ANode(Token)> */
1785 var69
= var_n
->attrs
[COLOR_nitc__parser_nodes__Token___next_token
].val
; /* _next_token on <var_n:ANode(Token)> */
1787 RET_LABEL68
:(void)0;
1791 { /* Inline parser_work#ComputeProdLocationVisitor#token= (self,var67) on <self:ComputeProdLocationVisitor> */
1792 self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token
].val
= var67
; /* _token on <self:ComputeProdLocationVisitor> */
1793 RET_LABEL70
:(void)0;
1796 var71
= var_n
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var_n:ANode(Token)> */
1797 if (unlikely(var71
== NULL
)) {
1798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1799 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 227);
1803 self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token
].val
= var_n
; /* _last_token on <self:ComputeProdLocationVisitor> */
1804 var72
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1805 if (unlikely(var72
== NULL
)) {
1806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1807 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 231);
1811 var73
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var72
);
1815 var75
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1816 if (unlikely(var75
== NULL
)) {
1817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1818 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 232);
1823 var77
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_76
);
1828 var79
= ((short int(*)(val
* self
))((((long)var_78
&3)?class_info
[((long)var_78
&3)]:var_78
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_78
); /* is_ok on <var_78:IndexedIterator[Prod]>*/
1835 var81
= ((val
*(*)(val
* self
))((((long)var_78
&3)?class_info
[((long)var_78
&3)]:var_78
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_78
); /* item on <var_78:IndexedIterator[Prod]>*/
1838 var_no
->attrs
[COLOR_nitc__parser_work__Prod___first_location
].val
= var_loc
; /* _first_location on <var_no:Prod> */
1840 ((void(*)(val
* self
))((((long)var_78
&3)?class_info
[((long)var_78
&3)]:var_78
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_78
); /* next on <var_78:IndexedIterator[Prod]>*/
1843 BREAK_label80
: (void)0;
1845 ((void(*)(val
* self
))((((long)var_78
&3)?class_info
[((long)var_78
&3)]:var_78
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_78
); /* finish on <var_78:IndexedIterator[Prod]>*/
1847 var82
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1848 if (unlikely(var82
== NULL
)) {
1849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1850 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 235);
1854 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var82
); /* Direct call array#AbstractArray#clear on <var82:Array[Prod]>*/
1858 var83
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1859 if (unlikely(var83
== NULL
)) {
1860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1861 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 239);
1865 var84
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var83
);
1869 var86
= NEW_nitc__Location(&type_nitc__Location
);
1871 { /* Inline location#Location#file (var_loc) on <var_loc:Location> */
1872 var89
= var_loc
->attrs
[COLOR_nitc__location__Location___file
].val
; /* _file on <var_loc:Location> */
1874 RET_LABEL88
:(void)0;
1878 { /* Inline location#Location#line_start (var_loc) on <var_loc:Location> */
1879 var92
= var_loc
->attrs
[COLOR_nitc__location__Location___line_start
].l
; /* _line_start on <var_loc:Location> */
1881 RET_LABEL91
:(void)0;
1885 { /* Inline location#Location#line_start (var_loc) on <var_loc:Location> */
1886 var95
= var_loc
->attrs
[COLOR_nitc__location__Location___line_start
].l
; /* _line_start on <var_loc:Location> */
1888 RET_LABEL94
:(void)0;
1892 { /* Inline location#Location#column_start (var_loc) on <var_loc:Location> */
1893 var98
= var_loc
->attrs
[COLOR_nitc__location__Location___column_start
].l
; /* _column_start on <var_loc:Location> */
1895 RET_LABEL97
:(void)0;
1899 { /* Inline location#Location#column_start (var_loc) on <var_loc:Location> */
1900 var101
= var_loc
->attrs
[COLOR_nitc__location__Location___column_start
].l
; /* _column_start on <var_loc:Location> */
1902 RET_LABEL100
:(void)0;
1906 ((void(*)(val
* self
, val
* p0
))(var86
->class->vft
[COLOR_nitc__location__Location__file_61d
]))(var86
, var87
); /* file= on <var86:Location>*/
1909 ((void(*)(val
* self
, long p0
))(var86
->class->vft
[COLOR_nitc__location__Location__line_start_61d
]))(var86
, var90
); /* line_start= on <var86:Location>*/
1912 ((void(*)(val
* self
, long p0
))(var86
->class->vft
[COLOR_nitc__location__Location__line_end_61d
]))(var86
, var93
); /* line_end= on <var86:Location>*/
1915 ((void(*)(val
* self
, long p0
))(var86
->class->vft
[COLOR_nitc__location__Location__column_start_61d
]))(var86
, var96
); /* column_start= on <var86:Location>*/
1918 ((void(*)(val
* self
, long p0
))(var86
->class->vft
[COLOR_nitc__location__Location__column_end_61d
]))(var86
, var99
); /* column_end= on <var86:Location>*/
1921 ((void(*)(val
* self
))(var86
->class->vft
[COLOR_core__kernel__Object__init
]))(var86
); /* init on <var86:Location>*/
1924 var102
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1925 if (unlikely(var102
== NULL
)) {
1926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1927 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 241);
1932 var104
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_103
);
1937 var106
= ((short int(*)(val
* self
))((((long)var_105
&3)?class_info
[((long)var_105
&3)]:var_105
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_105
); /* is_ok on <var_105:IndexedIterator[Prod]>*/
1941 goto BREAK_label107
;
1944 var108
= ((val
*(*)(val
* self
))((((long)var_105
&3)?class_info
[((long)var_105
&3)]:var_105
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_105
); /* item on <var_105:IndexedIterator[Prod]>*/
1948 { /* Inline parser_nodes#ANode#location= (var_no109,var_loco) on <var_no109:Prod> */
1949 var_no109
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
= var_loco
; /* _location on <var_no109:Prod> */
1950 RET_LABEL110
:(void)0;
1954 ((void(*)(val
* self
))((((long)var_105
&3)?class_info
[((long)var_105
&3)]:var_105
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_105
); /* next on <var_105:IndexedIterator[Prod]>*/
1957 BREAK_label107
: (void)0;
1959 ((void(*)(val
* self
))((((long)var_105
&3)?class_info
[((long)var_105
&3)]:var_105
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_105
); /* finish on <var_105:IndexedIterator[Prod]>*/
1961 var111
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1962 if (unlikely(var111
== NULL
)) {
1963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 244);
1968 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var111
); /* Direct call array#AbstractArray#clear on <var111:Array[Prod]>*/
1973 /* <var_n:ANode> isa Prod */
1974 cltype113
= type_nitc__Prod
.color
;
1975 idtype114
= type_nitc__Prod
.id
;
1976 if(cltype113
>= var_n
->type
->table_size
) {
1979 var112
= var_n
->type
->type_table
[cltype113
] == idtype114
;
1981 if (unlikely(!var112
)) {
1982 PRINT_ERROR("Runtime error: %s", "Assert failed");
1983 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 247);
1986 var115
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods
].val
; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1987 if (unlikely(var115
== NULL
)) {
1988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1989 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 248);
1993 core___core__Array___core__abstract_collection__SimpleCollection__add(var115
, var_n
); /* Direct call array#Array#add on <var115:Array[Prod]>*/
1996 ((void(*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_nitc__parser_nodes__ANode__visit_all
]))(var_n
, self
); /* visit_all on <var_n:ANode(Prod)>*/
1998 var116
= var_n
->attrs
[COLOR_nitc__parser_work__Prod___first_location
].val
; /* _first_location on <var_n:ANode(Prod)> */
1999 var_startl
= var116
;
2000 if (var_startl
== NULL
) {
2001 var117
= 0; /* is null */
2003 var117
= 1; /* arg is null and recv is not */
2006 { /* Inline kernel#Object#!= (var_startl,((val*)NULL)) on <var_startl:nullable Location> */
2007 var_other
= ((val
*)NULL
);
2009 var120
= ((short int(*)(val
* self
, val
* p0
))(var_startl
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_startl
, var_other
); /* == on <var_startl:nullable Location(Location)>*/
2014 RET_LABEL119
:(void)0;
2019 var122
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token
].val
; /* _last_token on <self:ComputeProdLocationVisitor> */
2020 if (var122
== NULL
) {
2021 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2022 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 255);
2025 { /* Inline parser_nodes#ANode#location (var122) on <var122:nullable Token> */
2026 if (unlikely(var122
== NULL
)) {
2027 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2028 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
2031 var125
= var122
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
; /* _location on <var122:nullable Token> */
2032 if (unlikely(var125
== NULL
)) {
2033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 24);
2038 RET_LABEL124
:(void)0;
2043 var126
= nitc___nitc__Location___core__kernel__Object___61d_61d(var_startl
, var_endl
);
2047 { /* Inline parser_nodes#ANode#location= (var_n,var_startl) on <var_n:ANode(Prod)> */
2048 var_n
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
= var_startl
; /* _location on <var_n:ANode(Prod)> */
2049 RET_LABEL127
:(void)0;
2053 var128
= NEW_nitc__Location(&type_nitc__Location
);
2055 { /* Inline location#Location#file (var_startl) on <var_startl:nullable Location(Location)> */
2056 var131
= var_startl
->attrs
[COLOR_nitc__location__Location___file
].val
; /* _file on <var_startl:nullable Location(Location)> */
2058 RET_LABEL130
:(void)0;
2062 { /* Inline location#Location#line_start (var_startl) on <var_startl:nullable Location(Location)> */
2063 var134
= var_startl
->attrs
[COLOR_nitc__location__Location___line_start
].l
; /* _line_start on <var_startl:nullable Location(Location)> */
2065 RET_LABEL133
:(void)0;
2069 { /* Inline location#Location#line_end (var_endl) on <var_endl:Location> */
2070 var137
= var_endl
->attrs
[COLOR_nitc__location__Location___line_end
].l
; /* _line_end on <var_endl:Location> */
2072 RET_LABEL136
:(void)0;
2076 { /* Inline location#Location#column_start (var_startl) on <var_startl:nullable Location(Location)> */
2077 var140
= var_startl
->attrs
[COLOR_nitc__location__Location___column_start
].l
; /* _column_start on <var_startl:nullable Location(Location)> */
2079 RET_LABEL139
:(void)0;
2083 { /* Inline location#Location#column_end (var_endl) on <var_endl:Location> */
2084 var143
= var_endl
->attrs
[COLOR_nitc__location__Location___column_end
].l
; /* _column_end on <var_endl:Location> */
2086 RET_LABEL142
:(void)0;
2090 ((void(*)(val
* self
, val
* p0
))(var128
->class->vft
[COLOR_nitc__location__Location__file_61d
]))(var128
, var129
); /* file= on <var128:Location>*/
2093 ((void(*)(val
* self
, long p0
))(var128
->class->vft
[COLOR_nitc__location__Location__line_start_61d
]))(var128
, var132
); /* line_start= on <var128:Location>*/
2096 ((void(*)(val
* self
, long p0
))(var128
->class->vft
[COLOR_nitc__location__Location__line_end_61d
]))(var128
, var135
); /* line_end= on <var128:Location>*/
2099 ((void(*)(val
* self
, long p0
))(var128
->class->vft
[COLOR_nitc__location__Location__column_start_61d
]))(var128
, var138
); /* column_start= on <var128:Location>*/
2102 ((void(*)(val
* self
, long p0
))(var128
->class->vft
[COLOR_nitc__location__Location__column_end_61d
]))(var128
, var141
); /* column_end= on <var128:Location>*/
2105 ((void(*)(val
* self
))(var128
->class->vft
[COLOR_core__kernel__Object__init
]))(var128
); /* init on <var128:Location>*/
2108 { /* Inline parser_nodes#ANode#location= (var_n,var128) on <var_n:ANode(Prod)> */
2109 var_n
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
= var128
; /* _location on <var_n:ANode(Prod)> */
2110 RET_LABEL144
:(void)0;
2114 var145
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2115 if (unlikely(var145
== NULL
)) {
2116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 263);
2121 var146
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var145
);
2125 var148
= NEW_nitc__Location(&type_nitc__Location
);
2127 { /* Inline location#Location#file (var_endl) on <var_endl:Location> */
2128 var151
= var_endl
->attrs
[COLOR_nitc__location__Location___file
].val
; /* _file on <var_endl:Location> */
2130 RET_LABEL150
:(void)0;
2134 { /* Inline location#Location#line_end (var_endl) on <var_endl:Location> */
2135 var154
= var_endl
->attrs
[COLOR_nitc__location__Location___line_end
].l
; /* _line_end on <var_endl:Location> */
2137 RET_LABEL153
:(void)0;
2141 { /* Inline location#Location#line_end (var_endl) on <var_endl:Location> */
2142 var157
= var_endl
->attrs
[COLOR_nitc__location__Location___line_end
].l
; /* _line_end on <var_endl:Location> */
2144 RET_LABEL156
:(void)0;
2148 { /* Inline location#Location#column_end (var_endl) on <var_endl:Location> */
2149 var160
= var_endl
->attrs
[COLOR_nitc__location__Location___column_end
].l
; /* _column_end on <var_endl:Location> */
2151 RET_LABEL159
:(void)0;
2155 { /* Inline location#Location#column_end (var_endl) on <var_endl:Location> */
2156 var163
= var_endl
->attrs
[COLOR_nitc__location__Location___column_end
].l
; /* _column_end on <var_endl:Location> */
2158 RET_LABEL162
:(void)0;
2162 ((void(*)(val
* self
, val
* p0
))(var148
->class->vft
[COLOR_nitc__location__Location__file_61d
]))(var148
, var149
); /* file= on <var148:Location>*/
2165 ((void(*)(val
* self
, long p0
))(var148
->class->vft
[COLOR_nitc__location__Location__line_start_61d
]))(var148
, var152
); /* line_start= on <var148:Location>*/
2168 ((void(*)(val
* self
, long p0
))(var148
->class->vft
[COLOR_nitc__location__Location__line_end_61d
]))(var148
, var155
); /* line_end= on <var148:Location>*/
2171 ((void(*)(val
* self
, long p0
))(var148
->class->vft
[COLOR_nitc__location__Location__column_start_61d
]))(var148
, var158
); /* column_start= on <var148:Location>*/
2174 ((void(*)(val
* self
, long p0
))(var148
->class->vft
[COLOR_nitc__location__Location__column_end_61d
]))(var148
, var161
); /* column_end= on <var148:Location>*/
2177 ((void(*)(val
* self
))(var148
->class->vft
[COLOR_core__kernel__Object__init
]))(var148
); /* init on <var148:Location>*/
2179 var_loc164
= var148
;
2180 var165
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2181 if (unlikely(var165
== NULL
)) {
2182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2183 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 265);
2188 var167
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_166
);
2193 var169
= ((short int(*)(val
* self
))((((long)var_168
&3)?class_info
[((long)var_168
&3)]:var_168
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_168
); /* is_ok on <var_168:IndexedIterator[Prod]>*/
2197 goto BREAK_label170
;
2200 var171
= ((val
*(*)(val
* self
))((((long)var_168
&3)?class_info
[((long)var_168
&3)]:var_168
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_168
); /* item on <var_168:IndexedIterator[Prod]>*/
2204 { /* Inline parser_nodes#ANode#location= (var_no172,var_loc164) on <var_no172:Prod> */
2205 var_no172
->attrs
[COLOR_nitc__parser_nodes__ANode___location
].val
= var_loc164
; /* _location on <var_no172:Prod> */
2206 RET_LABEL173
:(void)0;
2210 ((void(*)(val
* self
))((((long)var_168
&3)?class_info
[((long)var_168
&3)]:var_168
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_168
); /* next on <var_168:IndexedIterator[Prod]>*/
2213 BREAK_label170
: (void)0;
2215 ((void(*)(val
* self
))((((long)var_168
&3)?class_info
[((long)var_168
&3)]:var_168
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_168
); /* finish on <var_168:IndexedIterator[Prod]>*/
2217 var174
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2218 if (unlikely(var174
== NULL
)) {
2219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2220 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 269);
2224 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var174
); /* Direct call array#AbstractArray#clear on <var174:Array[Prod]>*/
2229 var175
= self
->attrs
[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons
].val
; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2230 if (unlikely(var175
== NULL
)) {
2231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2232 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 273);
2236 core___core__Array___core__abstract_collection__SimpleCollection__add(var175
, var_n
); /* Direct call array#Array#add on <var175:Array[Prod]>*/
2242 /* method parser_work#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */
2243 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___core__kernel__Object__init(val
* self
) {
2245 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___core__kernel__Object__init
]))(self
); /* init on <self:ComputeProdLocationVisitor>*/
2249 /* method parser_work#TextCollectorVisitor#text for (self: TextCollectorVisitor): String */
2250 val
* nitc__parser_work___nitc__parser_work__TextCollectorVisitor___text(val
* self
) {
2251 val
* var
/* : String */;
2252 val
* var1
/* : String */;
2253 var1
= self
->attrs
[COLOR_nitc__parser_work__TextCollectorVisitor___text
].val
; /* _text on <self:TextCollectorVisitor> */
2254 if (unlikely(var1
== NULL
)) {
2255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
2256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 281);
2263 /* method parser_work#TextCollectorVisitor#text= for (self: TextCollectorVisitor, String) */
2264 void nitc__parser_work___nitc__parser_work__TextCollectorVisitor___text_61d(val
* self
, val
* p0
) {
2265 self
->attrs
[COLOR_nitc__parser_work__TextCollectorVisitor___text
].val
= p0
; /* _text on <self:TextCollectorVisitor> */
2268 /* method parser_work#TextCollectorVisitor#visit for (self: TextCollectorVisitor, ANode) */
2269 void nitc__parser_work___nitc__parser_work__TextCollectorVisitor___nitc__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
2270 val
* var_n
/* var n: ANode */;
2271 short int var
/* : Bool */;
2274 val
* var_
/* var : TextCollectorVisitor */;
2275 val
* var1
/* : String */;
2276 val
* var3
/* : String */;
2277 val
* var4
/* : String */;
2278 val
* var5
/* : String */;
2280 /* <var_n:ANode> isa Token */
2281 cltype
= type_nitc__Token
.color
;
2282 idtype
= type_nitc__Token
.id
;
2283 if(cltype
>= var_n
->type
->table_size
) {
2286 var
= var_n
->type
->type_table
[cltype
] == idtype
;
2291 { /* Inline parser_work#TextCollectorVisitor#text (var_) on <var_:TextCollectorVisitor> */
2292 var3
= var_
->attrs
[COLOR_nitc__parser_work__TextCollectorVisitor___text
].val
; /* _text on <var_:TextCollectorVisitor> */
2293 if (unlikely(var3
== NULL
)) {
2294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
2295 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work
, 281);
2303 var4
= nitc__lexer_work___Token___text(var_n
);
2306 var5
= ((val
*(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_core__abstract_text__String___43d
]))(var1
, var4
); /* + on <var1:String>*/
2309 { /* Inline parser_work#TextCollectorVisitor#text= (var_,var5) on <var_:TextCollectorVisitor> */
2310 var_
->attrs
[COLOR_nitc__parser_work__TextCollectorVisitor___text
].val
= var5
; /* _text on <var_:TextCollectorVisitor> */
2317 ((void(*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_nitc__parser_nodes__ANode__visit_all
]))(var_n
, self
); /* visit_all on <var_n:ANode>*/
2321 /* method parser_work#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
2322 val
* nitc__parser_work___nitc__parser_work__ReduceAction___concat(val
* self
, val
* p0
, val
* p1
) {
2323 val
* var
/* : Array[Object] */;
2324 val
* var_l1
/* var l1: Array[Object] */;
2325 val
* var_l2
/* var l2: Array[Object] */;
2326 short int var1
/* : Bool */;
2330 var1
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_l1
);
2338 core___core__Sequence___append(var_l1
, var_l2
); /* Direct call abstract_collection#Sequence#append on <var_l1:Array[Object]>*/
2345 /* method parser_work#ReduceAction#goto= for (self: ReduceAction, Int) */
2346 void nitc__parser_work___nitc__parser_work__ReduceAction___goto_61d(val
* self
, long p0
) {
2347 self
->attrs
[COLOR_nitc__parser_work__ReduceAction___goto
].l
= p0
; /* _goto on <self:ReduceAction> */
2350 /* method parser_work#ReduceAction#init for (self: ReduceAction) */
2351 void nitc__parser_work___nitc__parser_work__ReduceAction___core__kernel__Object__init(val
* self
) {
2353 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__parser_work___nitc__parser_work__ReduceAction___core__kernel__Object__init
]))(self
); /* init on <self:ReduceAction>*/
2357 /* method parser_work#AExpr#as_id for (self: AExpr): nullable String */
2358 val
* nitc__parser_work___AExpr___as_id(val
* self
) {
2359 val
* var
/* : nullable String */;
2360 short int var1
/* : Bool */;
2363 val
* var2
/* : String */;
2364 short int var3
/* : Bool */;
2367 short int var6
/* : Bool */;
2368 val
* var7
/* : AExpr */;
2369 val
* var9
/* : AExpr */;
2370 short int var10
/* : Bool */;
2373 short int var13
/* : Bool */;
2374 val
* var14
/* : AExprs */;
2375 val
* var16
/* : AExprs */;
2376 val
* var17
/* : ANodes[AExpr] */;
2377 val
* var19
/* : ANodes[AExpr] */;
2378 short int var20
/* : Bool */;
2379 short int var21
/* : Bool */;
2380 val
* var22
/* : AQid */;
2381 val
* var24
/* : AQid */;
2382 val
* var25
/* : TId */;
2383 val
* var27
/* : TId */;
2384 val
* var28
/* : String */;
2385 /* <self:AExpr> isa AMethidExpr */
2386 cltype
= type_nitc__AMethidExpr
.color
;
2387 idtype
= type_nitc__AMethidExpr
.id
;
2388 if(cltype
>= self
->type
->table_size
) {
2391 var1
= self
->type
->type_table
[cltype
] == idtype
;
2395 var2
= nitc__parser_work___Prod___collect_text(self
);
2401 /* <self:AExpr> isa ACallExpr */
2402 cltype4
= type_nitc__ACallExpr
.color
;
2403 idtype5
= type_nitc__ACallExpr
.id
;
2404 if(cltype4
>= self
->type
->table_size
) {
2407 var3
= self
->type
->type_table
[cltype4
] == idtype5
;
2416 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:AExpr(ACallExpr)> */
2417 var9
= self
->attrs
[COLOR_nitc__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <self:AExpr(ACallExpr)> */
2418 if (unlikely(var9
== NULL
)) {
2419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2022);
2427 /* <var7:AExpr> isa AImplicitSelfExpr */
2428 cltype11
= type_nitc__AImplicitSelfExpr
.color
;
2429 idtype12
= type_nitc__AImplicitSelfExpr
.id
;
2430 if(cltype11
>= var7
->type
->table_size
) {
2433 var10
= var7
->type
->type_table
[cltype11
] == idtype12
;
2442 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:AExpr(ACallExpr)> */
2443 var16
= self
->attrs
[COLOR_nitc__parser_nodes__ACallFormExpr___n_args
].val
; /* _n_args on <self:AExpr(ACallExpr)> */
2444 if (unlikely(var16
== NULL
)) {
2445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2299);
2450 RET_LABEL15
:(void)0;
2454 { /* Inline parser_nodes#AExprs#n_exprs (var14) on <var14:AExprs> */
2455 var19
= var14
->attrs
[COLOR_nitc__parser_nodes__AExprs___n_exprs
].val
; /* _n_exprs on <var14:AExprs> */
2456 if (unlikely(var19
== NULL
)) {
2457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2458 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2709);
2462 RET_LABEL18
:(void)0;
2466 var20
= nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var17
);
2475 { /* Inline parser_nodes#ACallFormExpr#n_qid (self) on <self:AExpr(ACallExpr)> */
2476 var24
= self
->attrs
[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid
].val
; /* _n_qid on <self:AExpr(ACallExpr)> */
2477 if (unlikely(var24
== NULL
)) {
2478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2479 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2296);
2483 RET_LABEL23
:(void)0;
2487 { /* Inline parser_nodes#AQid#n_id (var22) on <var22:AQid> */
2488 var27
= var22
->attrs
[COLOR_nitc__parser_nodes__AQid___n_id
].val
; /* _n_id on <var22:AQid> */
2489 if (unlikely(var27
== NULL
)) {
2490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2491 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1658);
2495 RET_LABEL26
:(void)0;
2499 var28
= nitc__lexer_work___Token___text(var25
);