1 #include "nitc__flow.sep.0.h"
2 /* method flow$ToolContext$flow_phase for (self: ToolContext): Phase */
3 val
* nitc__flow___ToolContext___flow_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nitc__flow__ToolContext___flow_phase
].val
; /* _flow_phase on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 if(catchStack
.cursor
>= 0){
9 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flow_phase");
12 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 23);
19 /* method flow$FlowPhase$process_npropdef for (self: FlowPhase, APropdef) */
20 void nitc__flow___nitc__flow__FlowPhase___nitc__phase__Phase__process_npropdef(val
* self
, val
* p0
) {
21 val
* var_npropdef
/* var npropdef: APropdef */;
22 val
* var
/* : ToolContext */;
23 val
* var2
/* : ToolContext */;
26 { /* Inline phase$Phase$toolcontext (self) on <self:FlowPhase> */
27 var2
= self
->attrs
[COLOR_nitc__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:FlowPhase> */
28 if (unlikely(var2
== NULL
)) {
29 if(catchStack
.cursor
>= 0){
30 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
32 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
33 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase
, 210);
41 nitc__flow___APropdef___do_flow(var_npropdef
, var
); /* Direct call flow$APropdef$do_flow on <var_npropdef:APropdef>*/
45 /* method flow$FlowVisitor$current_flow_context for (self: FlowVisitor): FlowContext */
46 val
* nitc__flow___nitc__flow__FlowVisitor___current_flow_context(val
* self
) {
47 val
* var
/* : FlowContext */;
48 val
* var1
/* : FlowContext */;
49 var1
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
50 if (unlikely(var1
== NULL
)) {
51 if(catchStack
.cursor
>= 0){
52 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
54 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
55 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
62 /* method flow$FlowVisitor$current_flow_context= for (self: FlowVisitor, FlowContext) */
63 void nitc__flow___nitc__flow__FlowVisitor___current_flow_context_61d(val
* self
, val
* p0
) {
64 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= p0
; /* _current_flow_context on <self:FlowVisitor> */
67 /* method flow$FlowVisitor$toolcontext for (self: FlowVisitor): ToolContext */
68 val
* nitc__flow___nitc__flow__FlowVisitor___toolcontext(val
* self
) {
69 val
* var
/* : ToolContext */;
70 val
* var1
/* : ToolContext */;
71 var1
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <self:FlowVisitor> */
72 if (unlikely(var1
== NULL
)) {
73 if(catchStack
.cursor
>= 0){
74 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
76 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
77 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 39);
84 /* method flow$FlowVisitor$toolcontext= for (self: FlowVisitor, ToolContext) */
85 void nitc__flow___nitc__flow__FlowVisitor___toolcontext_61d(val
* self
, val
* p0
) {
86 self
->attrs
[COLOR_nitc__flow__FlowVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:FlowVisitor> */
89 /* method flow$FlowVisitor$init for (self: FlowVisitor) */
90 void nitc__flow___nitc__flow__FlowVisitor___core__kernel__Object__init(val
* self
) {
91 val
* var
/* : Array[FlowContext] */;
92 val
* var2
/* : Array[FlowContext] */;
93 val
* var3
/* : FlowContext */;
94 val
* var5
/* : FlowContext */;
95 val
* var6
/* : FlowContext */;
96 val
* var8
/* : FlowContext */;
98 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__flow___nitc__flow__FlowVisitor___core__kernel__Object__init
]))(self
); /* init on <self:FlowVisitor>*/
101 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
102 var2
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
103 if (unlikely(var2
== NULL
)) {
104 if(catchStack
.cursor
>= 0){
105 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
108 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
116 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
117 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
118 if (unlikely(var5
== NULL
)) {
119 if(catchStack
.cursor
>= 0){
120 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
123 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
131 core___core__Array___core__abstract_collection__SimpleCollection__add(var
, var3
); /* Direct call array$Array$add on <var:Array[FlowContext]>*/
134 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
135 var8
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
136 if (unlikely(var8
== NULL
)) {
137 if(catchStack
.cursor
>= 0){
138 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
149 { /* Inline flow$FlowContext$is_start= (var6,1) on <var6:FlowContext> */
150 var6
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
= 1; /* _is_start on <var6:FlowContext> */
156 /* method flow$FlowVisitor$first for (self: FlowVisitor): nullable ANode */
157 val
* nitc__flow___nitc__flow__FlowVisitor___first(val
* self
) {
158 val
* var
/* : nullable ANode */;
159 val
* var1
/* : nullable ANode */;
160 var1
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
165 /* method flow$FlowVisitor$first= for (self: FlowVisitor, nullable ANode) */
166 void nitc__flow___nitc__flow__FlowVisitor___first_61d(val
* self
, val
* p0
) {
167 self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
= p0
; /* _first on <self:FlowVisitor> */
170 /* method flow$FlowVisitor$visit for (self: FlowVisitor, ANode) */
171 void nitc__flow___nitc__flow__FlowVisitor___nitc__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
172 val
* var_node
/* var node: ANode */;
173 val
* var
/* : nullable ANode */;
174 val
* var2
/* : nullable ANode */;
175 short int var3
/* : Bool */;
176 short int var4
/* : Bool */;
177 val
* var_other
/* var other: nullable Object */;
178 short int var6
/* : Bool */;
179 short int var8
/* : Bool */;
180 val
* var10
/* : FlowContext */;
181 val
* var12
/* : FlowContext */;
182 val
* var13
/* : nullable ANode */;
183 val
* var15
/* : nullable ANode */;
184 short int var16
/* : Bool */;
185 short int var17
/* : Bool */;
186 short int var19
/* : Bool */;
187 short int var21
/* : Bool */;
188 val
* var22
/* : FlowContext */;
189 val
* var24
/* : FlowContext */;
190 short int var26
/* : Bool */;
193 val
* var27
/* : FlowContext */;
194 val
* var29
/* : FlowContext */;
195 val
* var_flow
/* var flow: FlowContext */;
196 short int var31
/* : Bool */;
197 val
* var32
/* : FlowContext */;
198 val
* var34
/* : FlowContext */;
199 short int var35
/* : Bool */;
200 val
* var_other37
/* var other: nullable Object */;
201 short int var38
/* : Bool */;
202 short int var39
/* : Bool */;
203 short int var_
/* var : Bool */;
204 val
* var40
/* : FlowContext */;
205 val
* var42
/* : FlowContext */;
206 short int var43
/* : Bool */;
207 short int var45
/* : Bool */;
208 short int var46
/* : Bool */;
209 val
* var47
/* : FlowContext */;
210 val
* var48
/* : FlowContext */;
211 val
* var50
/* : FlowContext */;
213 val
* var51
/* : String */;
214 char* var52
/* : CString */;
215 val
* var53
/* : String */;
216 val
* var54
/* : nullable Int */;
217 val
* var55
/* : nullable Int */;
218 val
* var56
/* : nullable Bool */;
219 val
* var57
/* : nullable Bool */;
220 val
* var59
/* : nullable ANode */;
221 val
* var61
/* : nullable ANode */;
222 short int var62
/* : Bool */;
223 short int var63
/* : Bool */;
224 short int var65
/* : Bool */;
225 short int var67
/* : Bool */;
228 { /* Inline flow$FlowVisitor$first (self) on <self:FlowVisitor> */
229 var2
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
235 var3
= 1; /* is null */
237 var3
= 0; /* arg is null but recv is not */
240 { /* Inline kernel$Object$== (var,((val*)NULL)) on <var:nullable ANode> */
241 var_other
= ((val
*)NULL
);
243 { /* Inline kernel$Object$is_same_instance (var,var_other) on <var:nullable ANode(ANode)> */
244 var8
= var
== var_other
;
258 { /* Inline flow$FlowVisitor$first= (self,var_node) on <self:FlowVisitor> */
259 self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
= var_node
; /* _first on <self:FlowVisitor> */
266 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
267 var12
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
268 if (unlikely(var12
== NULL
)) {
269 if(catchStack
.cursor
>= 0){
270 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
281 { /* Inline flow$FlowContext$node (var10) on <var10:FlowContext> */
282 var15
= var10
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
; /* _node on <var10:FlowContext> */
288 var16
= 1; /* is null */
290 var16
= 0; /* arg is null but recv is not */
293 { /* Inline kernel$Object$== (var13,((val*)NULL)) on <var13:nullable ANode> */
294 var_other
= ((val
*)NULL
);
296 { /* Inline kernel$Object$is_same_instance (var13,var_other) on <var13:nullable ANode(ANode)> */
297 var21
= var13
== var_other
;
311 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
312 var24
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
313 if (unlikely(var24
== NULL
)) {
314 if(catchStack
.cursor
>= 0){
315 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
318 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
326 { /* Inline flow$FlowContext$node= (var22,var_node) on <var22:FlowContext> */
327 var22
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var_node
; /* _node on <var22:FlowContext> */
334 ((void(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_nitc__flow__ANode__accept_flow_visitor
]))(var_node
, self
); /* accept_flow_visitor on <var_node:ANode>*/
336 /* <var_node:ANode> isa AExpr */
337 cltype
= type_nitc__AExpr
.color
;
338 idtype
= type_nitc__AExpr
.id
;
339 if(cltype
>= var_node
->type
->table_size
) {
342 var26
= var_node
->type
->type_table
[cltype
] == idtype
;
346 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
347 var29
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
348 if (unlikely(var29
== NULL
)) {
349 if(catchStack
.cursor
>= 0){
350 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
353 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
362 { /* Inline flow$AExpr$after_flow_context= (var_node,var_flow) on <var_node:ANode(AExpr)> */
363 var_node
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= var_flow
; /* _after_flow_context on <var_node:ANode(AExpr)> */
368 { /* Inline flow$FlowContext$when_true (var_flow) on <var_flow:FlowContext> */
369 var34
= var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_flow:FlowContext> */
370 if (unlikely(var34
== NULL
)) {
371 if(catchStack
.cursor
>= 0){
372 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
375 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
383 { /* Inline kernel$Object$!= (var32,var_flow) on <var32:FlowContext> */
384 var_other37
= var_flow
;
386 var38
= ((short int(*)(val
* self
, val
* p0
))(var32
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var32
, var_other37
); /* == on <var32:FlowContext>*/
399 { /* Inline flow$FlowContext$when_false (var_flow) on <var_flow:FlowContext> */
400 var42
= var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_flow:FlowContext> */
401 if (unlikely(var42
== NULL
)) {
402 if(catchStack
.cursor
>= 0){
403 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
406 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
414 { /* Inline kernel$Object$!= (var40,var_flow) on <var40:FlowContext> */
415 var_other37
= var_flow
;
417 var45
= ((short int(*)(val
* self
, val
* p0
))(var40
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var40
, var_other37
); /* == on <var40:FlowContext>*/
429 var47
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(self
);
432 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
433 var50
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
434 if (unlikely(var50
== NULL
)) {
435 if(catchStack
.cursor
>= 0){
436 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
446 if (likely(varonce
!=NULL
)) {
450 var54
= (val
*)(7l<<2|1);
451 var55
= (val
*)(7l<<2|1);
452 var56
= (val
*)((long)(0)<<2|3);
453 var57
= (val
*)((long)(0)<<2|3);
454 var53
= core__flat___CString___to_s_unsafe(var52
, var54
, var55
, var56
, var57
);
459 { /* Inline flow$FlowContext$name= (var48,var51) on <var48:FlowContext> */
460 var48
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var51
; /* _name on <var48:FlowContext> */
469 { /* Inline flow$FlowVisitor$first (self) on <self:FlowVisitor> */
470 var61
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
476 var62
= 0; /* <var_node:ANode> cannot be null */
478 { /* Inline kernel$Object$== (var59,var_node) on <var59:nullable ANode> */
479 var_other
= var_node
;
481 { /* Inline kernel$Object$is_same_instance (var59,var_other) on <var59:nullable ANode(ANode)> */
482 var67
= var59
== var_other
;
499 /* method flow$FlowVisitor$visit_expr for (self: FlowVisitor, AExpr): FlowContext */
500 val
* nitc__flow___nitc__flow__FlowVisitor___visit_expr(val
* self
, val
* p0
) {
501 val
* var
/* : FlowContext */;
502 val
* var_node
/* var node: AExpr */;
503 val
* var1
/* : nullable FlowContext */;
504 val
* var3
/* : nullable FlowContext */;
507 nitc___nitc__Visitor___enter_visit(self
, var_node
); /* Direct call parser_nodes$Visitor$enter_visit on <self:FlowVisitor>*/
510 { /* Inline flow$AExpr$after_flow_context (var_node) on <var_node:AExpr> */
511 var3
= var_node
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
516 if (unlikely(var1
== NULL
)) {
517 if(catchStack
.cursor
>= 0){
518 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
520 PRINT_ERROR("Runtime error: %s", "Cast failed");
521 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 73);
529 /* method flow$FlowVisitor$flows for (self: FlowVisitor): Array[FlowContext] */
530 val
* nitc__flow___nitc__flow__FlowVisitor___flows(val
* self
) {
531 val
* var
/* : Array[FlowContext] */;
532 val
* var1
/* : Array[FlowContext] */;
533 var1
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
534 if (unlikely(var1
== NULL
)) {
535 if(catchStack
.cursor
>= 0){
536 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
546 /* method flow$FlowVisitor$make_sub_flow for (self: FlowVisitor): FlowContext */
547 val
* nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(val
* self
) {
548 val
* var
/* : FlowContext */;
549 val
* var1
/* : FlowContext */;
550 val
* var_flow
/* var flow: FlowContext */;
551 val
* var3
/* : Array[FlowContext] */;
552 val
* var5
/* : Array[FlowContext] */;
553 val
* var6
/* : nullable ANode */;
554 val
* var8
/* : nullable ANode */;
555 val
* var10
/* : FlowContext */;
556 val
* var12
/* : FlowContext */;
557 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
559 { /* Inline kernel$Object$init (var1) on <var1:FlowContext> */
565 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
566 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
567 if (unlikely(var5
== NULL
)) {
568 if(catchStack
.cursor
>= 0){
569 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
580 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array$Array$add on <var3:Array[FlowContext]>*/
583 { /* Inline parser_nodes$Visitor$current_node (self) on <self:FlowVisitor> */
584 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
590 { /* Inline flow$FlowContext$node= (var_flow,var6) on <var_flow:FlowContext> */
591 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
596 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
597 var12
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
598 if (unlikely(var12
== NULL
)) {
599 if(catchStack
.cursor
>= 0){
600 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
603 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
611 nitc___nitc__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow$FlowContext$add_previous on <var_flow:FlowContext>*/
614 { /* Inline flow$FlowVisitor$current_flow_context= (self,var_flow) on <self:FlowVisitor> */
615 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
624 /* method flow$FlowVisitor$make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
625 val
* nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
626 val
* var
/* : FlowContext */;
627 val
* var_flow1
/* var flow1: FlowContext */;
628 val
* var_flow2
/* var flow2: FlowContext */;
629 val
* var1
/* : FlowContext */;
630 val
* var_flow
/* var flow: FlowContext */;
631 val
* var3
/* : Array[FlowContext] */;
632 val
* var5
/* : Array[FlowContext] */;
633 val
* var6
/* : nullable ANode */;
634 val
* var8
/* : nullable ANode */;
637 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
639 { /* Inline kernel$Object$init (var1) on <var1:FlowContext> */
645 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
646 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
647 if (unlikely(var5
== NULL
)) {
648 if(catchStack
.cursor
>= 0){
649 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
652 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
660 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array$Array$add on <var3:Array[FlowContext]>*/
663 { /* Inline parser_nodes$Visitor$current_node (self) on <self:FlowVisitor> */
664 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
670 { /* Inline flow$FlowContext$node= (var_flow,var6) on <var_flow:FlowContext> */
671 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
676 nitc___nitc__FlowContext___add_previous(var_flow
, var_flow1
); /* Direct call flow$FlowContext$add_previous on <var_flow:FlowContext>*/
679 nitc___nitc__FlowContext___add_previous(var_flow
, var_flow2
); /* Direct call flow$FlowContext$add_previous on <var_flow:FlowContext>*/
682 { /* Inline flow$FlowVisitor$current_flow_context= (self,var_flow) on <self:FlowVisitor> */
683 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
692 /* method flow$FlowVisitor$make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
693 val
* nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
694 val
* var
/* : FlowContext */;
695 val
* var_true_flow
/* var true_flow: FlowContext */;
696 val
* var_false_flow
/* var false_flow: FlowContext */;
697 val
* var1
/* : FlowContext */;
698 val
* var_flow
/* var flow: FlowContext */;
699 val
* var3
/* : Array[FlowContext] */;
700 val
* var5
/* : Array[FlowContext] */;
701 val
* var6
/* : nullable ANode */;
702 val
* var8
/* : nullable ANode */;
705 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
707 { /* Inline kernel$Object$init (var1) on <var1:FlowContext> */
713 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
714 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
715 if (unlikely(var5
== NULL
)) {
716 if(catchStack
.cursor
>= 0){
717 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
728 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array$Array$add on <var3:Array[FlowContext]>*/
731 { /* Inline parser_nodes$Visitor$current_node (self) on <self:FlowVisitor> */
732 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
738 { /* Inline flow$FlowContext$node= (var_flow,var6) on <var_flow:FlowContext> */
739 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
744 nitc___nitc__FlowContext___add_previous(var_flow
, var_true_flow
); /* Direct call flow$FlowContext$add_previous on <var_flow:FlowContext>*/
747 nitc___nitc__FlowContext___add_previous(var_flow
, var_false_flow
); /* Direct call flow$FlowContext$add_previous on <var_flow:FlowContext>*/
750 { /* Inline flow$FlowContext$when_true= (var_flow,var_true_flow) on <var_flow:FlowContext> */
751 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
= var_true_flow
; /* _when_true on <var_flow:FlowContext> */
756 { /* Inline flow$FlowContext$when_false= (var_flow,var_false_flow) on <var_flow:FlowContext> */
757 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
= var_false_flow
; /* _when_false on <var_flow:FlowContext> */
762 { /* Inline flow$FlowVisitor$current_flow_context= (self,var_flow) on <self:FlowVisitor> */
763 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
772 /* method flow$FlowVisitor$make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
773 val
* nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(val
* self
) {
774 val
* var
/* : FlowContext */;
775 val
* var1
/* : FlowContext */;
776 val
* var3
/* : FlowContext */;
777 val
* var_orig_flow
/* var orig_flow: FlowContext */;
778 val
* var4
/* : FlowContext */;
779 val
* var_true_flow
/* var true_flow: FlowContext */;
780 val
* var6
/* : Array[FlowContext] */;
781 val
* var8
/* : Array[FlowContext] */;
782 val
* var9
/* : nullable ANode */;
783 val
* var11
/* : nullable ANode */;
785 val
* var13
/* : String */;
786 char* var14
/* : CString */;
787 val
* var15
/* : String */;
788 val
* var16
/* : nullable Int */;
789 val
* var17
/* : nullable Int */;
790 val
* var18
/* : nullable Bool */;
791 val
* var19
/* : nullable Bool */;
792 val
* var21
/* : FlowContext */;
793 val
* var_false_flow
/* var false_flow: FlowContext */;
794 val
* var23
/* : Array[FlowContext] */;
795 val
* var25
/* : Array[FlowContext] */;
796 val
* var26
/* : nullable ANode */;
797 val
* var28
/* : nullable ANode */;
798 static val
* varonce30
;
799 val
* var31
/* : String */;
800 char* var32
/* : CString */;
801 val
* var33
/* : String */;
802 val
* var34
/* : nullable Int */;
803 val
* var35
/* : nullable Int */;
804 val
* var36
/* : nullable Bool */;
805 val
* var37
/* : nullable Bool */;
806 val
* var39
/* : FlowContext */;
808 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
809 var3
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
810 if (unlikely(var3
== NULL
)) {
811 if(catchStack
.cursor
>= 0){
812 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
815 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
822 var_orig_flow
= var1
;
823 var4
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
825 { /* Inline kernel$Object$init (var4) on <var4:FlowContext> */
829 var_true_flow
= var4
;
831 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
832 var8
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
833 if (unlikely(var8
== NULL
)) {
834 if(catchStack
.cursor
>= 0){
835 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
846 core___core__Array___core__abstract_collection__SimpleCollection__add(var6
, var_true_flow
); /* Direct call array$Array$add on <var6:Array[FlowContext]>*/
849 { /* Inline parser_nodes$Visitor$current_node (self) on <self:FlowVisitor> */
850 var11
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
856 { /* Inline flow$FlowContext$node= (var_true_flow,var9) on <var_true_flow:FlowContext> */
857 var_true_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var9
; /* _node on <var_true_flow:FlowContext> */
862 nitc___nitc__FlowContext___add_previous(var_true_flow
, var_orig_flow
); /* Direct call flow$FlowContext$add_previous on <var_true_flow:FlowContext>*/
864 if (likely(varonce
!=NULL
)) {
868 var16
= (val
*)(4l<<2|1);
869 var17
= (val
*)(4l<<2|1);
870 var18
= (val
*)((long)(0)<<2|3);
871 var19
= (val
*)((long)(0)<<2|3);
872 var15
= core__flat___CString___to_s_unsafe(var14
, var16
, var17
, var18
, var19
);
877 { /* Inline flow$FlowContext$name= (var_true_flow,var13) on <var_true_flow:FlowContext> */
878 var_true_flow
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var13
; /* _name on <var_true_flow:FlowContext> */
882 var21
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
884 { /* Inline kernel$Object$init (var21) on <var21:FlowContext> */
888 var_false_flow
= var21
;
890 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
891 var25
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
892 if (unlikely(var25
== NULL
)) {
893 if(catchStack
.cursor
>= 0){
894 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
896 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
897 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
905 core___core__Array___core__abstract_collection__SimpleCollection__add(var23
, var_false_flow
); /* Direct call array$Array$add on <var23:Array[FlowContext]>*/
908 { /* Inline parser_nodes$Visitor$current_node (self) on <self:FlowVisitor> */
909 var28
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
915 { /* Inline flow$FlowContext$node= (var_false_flow,var26) on <var_false_flow:FlowContext> */
916 var_false_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var26
; /* _node on <var_false_flow:FlowContext> */
921 nitc___nitc__FlowContext___add_previous(var_false_flow
, var_orig_flow
); /* Direct call flow$FlowContext$add_previous on <var_false_flow:FlowContext>*/
923 if (likely(varonce30
!=NULL
)) {
927 var34
= (val
*)(5l<<2|1);
928 var35
= (val
*)(5l<<2|1);
929 var36
= (val
*)((long)(0)<<2|3);
930 var37
= (val
*)((long)(0)<<2|3);
931 var33
= core__flat___CString___to_s_unsafe(var32
, var34
, var35
, var36
, var37
);
936 { /* Inline flow$FlowContext$name= (var_false_flow,var31) on <var_false_flow:FlowContext> */
937 var_false_flow
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var31
; /* _name on <var_false_flow:FlowContext> */
942 var39
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(self
, var_true_flow
, var_false_flow
);
949 /* method flow$FlowVisitor$make_unreachable_flow for (self: FlowVisitor): FlowContext */
950 val
* nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(val
* self
) {
951 val
* var
/* : FlowContext */;
952 val
* var1
/* : FlowContext */;
953 val
* var_flow
/* var flow: FlowContext */;
954 val
* var3
/* : Array[FlowContext] */;
955 val
* var5
/* : Array[FlowContext] */;
956 val
* var6
/* : nullable ANode */;
957 val
* var8
/* : nullable ANode */;
958 val
* var10
/* : FlowContext */;
959 val
* var12
/* : FlowContext */;
960 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
962 { /* Inline kernel$Object$init (var1) on <var1:FlowContext> */
968 { /* Inline flow$FlowVisitor$flows (self) on <self:FlowVisitor> */
969 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
970 if (unlikely(var5
== NULL
)) {
971 if(catchStack
.cursor
>= 0){
972 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
983 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array$Array$add on <var3:Array[FlowContext]>*/
986 { /* Inline parser_nodes$Visitor$current_node (self) on <self:FlowVisitor> */
987 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
993 { /* Inline flow$FlowContext$node= (var_flow,var6) on <var_flow:FlowContext> */
994 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
999 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
1000 var12
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1001 if (unlikely(var12
== NULL
)) {
1002 if(catchStack
.cursor
>= 0){
1003 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1006 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1010 RET_LABEL11
:(void)0;
1014 nitc___nitc__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow$FlowContext$add_previous on <var_flow:FlowContext>*/
1017 { /* Inline flow$FlowContext$is_marked_unreachable= (var_flow,1) on <var_flow:FlowContext> */
1018 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
= 1; /* _is_marked_unreachable on <var_flow:FlowContext> */
1019 RET_LABEL13
:(void)0;
1023 { /* Inline flow$FlowVisitor$current_flow_context= (self,var_flow) on <self:FlowVisitor> */
1024 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
1025 RET_LABEL14
:(void)0;
1033 /* method flow$FlowVisitor$merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
1034 void nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1035 val
* var_before_loop
/* var before_loop: FlowContext */;
1036 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1037 short int var
/* : Bool */;
1038 short int var1
/* : Bool */;
1039 val
* var_other
/* var other: nullable Object */;
1040 short int var3
/* : Bool */;
1041 short int var5
/* : Bool */;
1042 val
* var6
/* : Array[AEscapeExpr] */;
1043 val
* var8
/* : Array[AEscapeExpr] */;
1044 val
* var_
/* var : Array[AEscapeExpr] */;
1045 val
* var9
/* : IndexedIterator[nullable Object] */;
1046 val
* var_10
/* var : IndexedIterator[AEscapeExpr] */;
1047 short int var11
/* : Bool */;
1048 val
* var12
/* : nullable Object */;
1049 val
* var_b
/* var b: AEscapeExpr */;
1050 val
* var13
/* : nullable FlowContext */;
1051 val
* var_before
/* var before: nullable FlowContext */;
1052 short int var14
/* : Bool */;
1053 short int var15
/* : Bool */;
1054 short int var17
/* : Bool */;
1055 short int var19
/* : Bool */;
1056 var_before_loop
= p0
;
1057 var_escapemark
= p1
;
1058 if (var_escapemark
== NULL
) {
1059 var
= 1; /* is null */
1061 var
= 0; /* arg is null but recv is not */
1064 { /* Inline kernel$Object$== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1065 var_other
= ((val
*)NULL
);
1067 { /* Inline kernel$Object$is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1068 var5
= var_escapemark
== var_other
;
1085 { /* Inline scope$EscapeMark$escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1086 var8
= var_escapemark
->attrs
[COLOR_nitc__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1087 if (unlikely(var8
== NULL
)) {
1088 if(catchStack
.cursor
>= 0){
1089 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1092 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope
, 59);
1101 var9
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1106 var11
= ((short int(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_10
); /* is_ok on <var_10:IndexedIterator[AEscapeExpr]>*/
1113 var12
= ((val
*(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_10
); /* item on <var_10:IndexedIterator[AEscapeExpr]>*/
1117 var13
= nitc__flow___AEscapeExpr___before_flow_context(var_b
);
1120 if (var_before
== NULL
) {
1121 var14
= 1; /* is null */
1123 var14
= 0; /* arg is null but recv is not */
1126 { /* Inline kernel$Object$== (var_before,((val*)NULL)) on <var_before:nullable FlowContext> */
1127 var_other
= ((val
*)NULL
);
1129 { /* Inline kernel$Object$is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1130 var19
= var_before
== var_other
;
1133 RET_LABEL18
:(void)0;
1138 RET_LABEL16
:(void)0;
1147 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_before
); /* Direct call flow$FlowContext$add_loop on <var_before_loop:FlowContext>*/
1149 BREAK_label20
: (void)0;
1151 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_10
); /* next on <var_10:IndexedIterator[AEscapeExpr]>*/
1154 BREAK_label
: (void)0;
1156 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_10
); /* finish on <var_10:IndexedIterator[AEscapeExpr]>*/
1160 /* method flow$FlowVisitor$merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1161 void nitc__flow___nitc__flow__FlowVisitor___merge_breaks(val
* self
, val
* p0
) {
1162 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1163 short int var
/* : Bool */;
1164 short int var1
/* : Bool */;
1165 val
* var_other
/* var other: nullable Object */;
1166 short int var3
/* : Bool */;
1167 short int var5
/* : Bool */;
1168 val
* var6
/* : Array[AEscapeExpr] */;
1169 val
* var8
/* : Array[AEscapeExpr] */;
1170 val
* var_
/* var : Array[AEscapeExpr] */;
1171 val
* var9
/* : IndexedIterator[nullable Object] */;
1172 val
* var_10
/* var : IndexedIterator[AEscapeExpr] */;
1173 short int var11
/* : Bool */;
1174 val
* var12
/* : nullable Object */;
1175 val
* var_b
/* var b: AEscapeExpr */;
1176 val
* var13
/* : nullable FlowContext */;
1177 val
* var_before
/* var before: nullable FlowContext */;
1178 short int var14
/* : Bool */;
1179 short int var15
/* : Bool */;
1180 short int var17
/* : Bool */;
1181 short int var19
/* : Bool */;
1182 val
* var21
/* : FlowContext */;
1183 val
* var23
/* : FlowContext */;
1184 val
* var24
/* : FlowContext */;
1185 var_escapemark
= p0
;
1186 if (var_escapemark
== NULL
) {
1187 var
= 1; /* is null */
1189 var
= 0; /* arg is null but recv is not */
1192 { /* Inline kernel$Object$== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1193 var_other
= ((val
*)NULL
);
1195 { /* Inline kernel$Object$is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1196 var5
= var_escapemark
== var_other
;
1213 { /* Inline scope$EscapeMark$escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1214 var8
= var_escapemark
->attrs
[COLOR_nitc__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1215 if (unlikely(var8
== NULL
)) {
1216 if(catchStack
.cursor
>= 0){
1217 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1220 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope
, 59);
1229 var9
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1234 var11
= ((short int(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_10
); /* is_ok on <var_10:IndexedIterator[AEscapeExpr]>*/
1241 var12
= ((val
*(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_10
); /* item on <var_10:IndexedIterator[AEscapeExpr]>*/
1245 var13
= nitc__flow___AEscapeExpr___before_flow_context(var_b
);
1248 if (var_before
== NULL
) {
1249 var14
= 1; /* is null */
1251 var14
= 0; /* arg is null but recv is not */
1254 { /* Inline kernel$Object$== (var_before,((val*)NULL)) on <var_before:nullable FlowContext> */
1255 var_other
= ((val
*)NULL
);
1257 { /* Inline kernel$Object$is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1258 var19
= var_before
== var_other
;
1261 RET_LABEL18
:(void)0;
1266 RET_LABEL16
:(void)0;
1275 { /* Inline flow$FlowVisitor$current_flow_context (self) on <self:FlowVisitor> */
1276 var23
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1277 if (unlikely(var23
== NULL
)) {
1278 if(catchStack
.cursor
>= 0){
1279 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1286 RET_LABEL22
:(void)0;
1290 var24
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(self
, var21
, var_before
);
1292 BREAK_label20
: (void)0;
1294 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_10
); /* next on <var_10:IndexedIterator[AEscapeExpr]>*/
1297 BREAK_label
: (void)0;
1299 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_10
); /* finish on <var_10:IndexedIterator[AEscapeExpr]>*/
1303 /* method flow$FlowContext$previous for (self: FlowContext): Array[FlowContext] */
1304 val
* nitc___nitc__FlowContext___previous(val
* self
) {
1305 val
* var
/* : Array[FlowContext] */;
1306 val
* var1
/* : Array[FlowContext] */;
1307 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1308 if (unlikely(var1
== NULL
)) {
1309 if(catchStack
.cursor
>= 0){
1310 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1313 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1320 /* method flow$FlowContext$loops for (self: FlowContext): Array[FlowContext] */
1321 val
* nitc___nitc__FlowContext___loops(val
* self
) {
1322 val
* var
/* : Array[FlowContext] */;
1323 val
* var1
/* : Array[FlowContext] */;
1324 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1325 if (unlikely(var1
== NULL
)) {
1326 if(catchStack
.cursor
>= 0){
1327 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1330 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 192);
1337 /* method flow$FlowContext$is_marked_unreachable for (self: FlowContext): Bool */
1338 short int nitc___nitc__FlowContext___is_marked_unreachable(val
* self
) {
1339 short int var
/* : Bool */;
1340 short int var1
/* : Bool */;
1341 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1346 /* method flow$FlowContext$is_marked_unreachable= for (self: FlowContext, Bool) */
1347 void nitc___nitc__FlowContext___is_marked_unreachable_61d(val
* self
, short int p0
) {
1348 self
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:FlowContext> */
1351 /* method flow$FlowContext$is_unreachable for (self: FlowContext): Bool */
1352 short int nitc___nitc__FlowContext___is_unreachable(val
* self
) {
1353 short int var
/* : Bool */;
1354 short int var1
/* : Bool */;
1355 short int var3
/* : Bool */;
1356 short int var4
/* : Bool */;
1357 short int var6
/* : Bool */;
1358 val
* var7
/* : Array[FlowContext] */;
1359 val
* var9
/* : Array[FlowContext] */;
1360 long var10
/* : Int */;
1361 long var12
/* : Int */;
1362 short int var13
/* : Bool */;
1363 short int var15
/* : Bool */;
1365 { /* Inline flow$FlowContext$is_marked_unreachable (self) on <self:FlowContext> */
1366 var3
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1377 { /* Inline flow$FlowContext$is_start (self) on <self:FlowContext> */
1378 var6
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1389 { /* Inline flow$FlowContext$previous (self) on <self:FlowContext> */
1390 var9
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1391 if (unlikely(var9
== NULL
)) {
1392 if(catchStack
.cursor
>= 0){
1393 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1404 { /* Inline array$AbstractArrayRead$length (var7) on <var7:Array[FlowContext]> */
1405 var12
= var7
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var7:Array[FlowContext]> */
1407 RET_LABEL11
:(void)0;
1411 { /* Inline kernel$Int$== (var10,0l) on <var10:Int> */
1412 var15
= var10
== 0l;
1415 RET_LABEL14
:(void)0;
1428 /* method flow$FlowContext$is_already_unreachable for (self: FlowContext): Bool */
1429 short int nitc___nitc__FlowContext___is_already_unreachable(val
* self
) {
1430 short int var
/* : Bool */;
1431 short int var1
/* : Bool */;
1432 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:FlowContext> */
1437 /* method flow$FlowContext$is_already_unreachable= for (self: FlowContext, Bool) */
1438 void nitc___nitc__FlowContext___is_already_unreachable_61d(val
* self
, short int p0
) {
1439 self
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:FlowContext> */
1442 /* method flow$FlowContext$is_start for (self: FlowContext): Bool */
1443 short int nitc___nitc__FlowContext___is_start(val
* self
) {
1444 short int var
/* : Bool */;
1445 short int var1
/* : Bool */;
1446 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1451 /* method flow$FlowContext$is_start= for (self: FlowContext, Bool) */
1452 void nitc___nitc__FlowContext___is_start_61d(val
* self
, short int p0
) {
1453 self
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:FlowContext> */
1456 /* method flow$FlowContext$node for (self: FlowContext): nullable ANode */
1457 val
* nitc___nitc__FlowContext___node(val
* self
) {
1458 val
* var
/* : nullable ANode */;
1459 val
* var1
/* : nullable ANode */;
1460 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
; /* _node on <self:FlowContext> */
1465 /* method flow$FlowContext$node= for (self: FlowContext, nullable ANode) */
1466 void nitc___nitc__FlowContext___node_61d(val
* self
, val
* p0
) {
1467 self
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= p0
; /* _node on <self:FlowContext> */
1470 /* method flow$FlowContext$name= for (self: FlowContext, String) */
1471 void nitc___nitc__FlowContext___name_61d(val
* self
, val
* p0
) {
1472 self
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= p0
; /* _name on <self:FlowContext> */
1475 /* method flow$FlowContext$when_true for (self: FlowContext): FlowContext */
1476 val
* nitc___nitc__FlowContext___when_true(val
* self
) {
1477 val
* var
/* : FlowContext */;
1478 val
* var1
/* : FlowContext */;
1479 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <self:FlowContext> */
1480 if (unlikely(var1
== NULL
)) {
1481 if(catchStack
.cursor
>= 0){
1482 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1485 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
1492 /* method flow$FlowContext$when_true= for (self: FlowContext, FlowContext) */
1493 void nitc___nitc__FlowContext___when_true_61d(val
* self
, val
* p0
) {
1494 self
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:FlowContext> */
1497 /* method flow$FlowContext$when_false for (self: FlowContext): FlowContext */
1498 val
* nitc___nitc__FlowContext___when_false(val
* self
) {
1499 val
* var
/* : FlowContext */;
1500 val
* var1
/* : FlowContext */;
1501 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <self:FlowContext> */
1502 if (unlikely(var1
== NULL
)) {
1503 if(catchStack
.cursor
>= 0){
1504 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
1514 /* method flow$FlowContext$when_false= for (self: FlowContext, FlowContext) */
1515 void nitc___nitc__FlowContext___when_false_61d(val
* self
, val
* p0
) {
1516 self
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:FlowContext> */
1519 /* method flow$FlowContext$add_previous for (self: FlowContext, FlowContext) */
1520 void nitc___nitc__FlowContext___add_previous(val
* self
, val
* p0
) {
1521 val
* var_flow
/* var flow: FlowContext */;
1522 short int var
/* : Bool */;
1523 short int var1
/* : Bool */;
1524 short int var2
/* : Bool */;
1525 short int var_
/* var : Bool */;
1526 val
* var3
/* : Array[FlowContext] */;
1527 val
* var5
/* : Array[FlowContext] */;
1528 short int var6
/* : Bool */;
1529 short int var7
/* : Bool */;
1530 val
* var8
/* : Array[FlowContext] */;
1531 val
* var10
/* : Array[FlowContext] */;
1534 var1
= nitc___nitc__FlowContext___is_unreachable(var_flow
);
1540 { /* Inline flow$FlowContext$previous (self) on <self:FlowContext> */
1541 var5
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1542 if (unlikely(var5
== NULL
)) {
1543 if(catchStack
.cursor
>= 0){
1544 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1555 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var3
, var_flow
);
1564 { /* Inline flow$FlowContext$previous (self) on <self:FlowContext> */
1565 var10
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1566 if (unlikely(var10
== NULL
)) {
1567 if(catchStack
.cursor
>= 0){
1568 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1571 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1579 core___core__Array___core__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array$Array$add on <var8:Array[FlowContext]>*/
1585 /* method flow$FlowContext$add_loop for (self: FlowContext, FlowContext) */
1586 void nitc___nitc__FlowContext___add_loop(val
* self
, val
* p0
) {
1587 val
* var_flow
/* var flow: FlowContext */;
1588 short int var
/* : Bool */;
1589 short int var1
/* : Bool */;
1590 short int var2
/* : Bool */;
1591 short int var_
/* var : Bool */;
1592 val
* var3
/* : Array[FlowContext] */;
1593 val
* var5
/* : Array[FlowContext] */;
1594 short int var6
/* : Bool */;
1595 short int var7
/* : Bool */;
1596 val
* var8
/* : Array[FlowContext] */;
1597 val
* var10
/* : Array[FlowContext] */;
1600 var1
= nitc___nitc__FlowContext___is_unreachable(var_flow
);
1606 { /* Inline flow$FlowContext$previous (self) on <self:FlowContext> */
1607 var5
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1608 if (unlikely(var5
== NULL
)) {
1609 if(catchStack
.cursor
>= 0){
1610 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1613 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1621 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var3
, var_flow
);
1630 { /* Inline flow$FlowContext$loops (self) on <self:FlowContext> */
1631 var10
= self
->attrs
[COLOR_nitc__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1632 if (unlikely(var10
== NULL
)) {
1633 if(catchStack
.cursor
>= 0){
1634 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1637 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 192);
1645 core___core__Array___core__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array$Array$add on <var8:Array[FlowContext]>*/
1651 /* method flow$ANode$accept_flow_visitor for (self: ANode, FlowVisitor) */
1652 void nitc__flow___ANode___accept_flow_visitor(val
* self
, val
* p0
) {
1653 val
* var_v
/* var v: FlowVisitor */;
1656 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__parser_nodes__ANode__visit_all
]))(self
, var_v
); /* visit_all on <self:ANode>*/
1660 /* method flow$APropdef$do_flow for (self: APropdef, ToolContext) */
1661 void nitc__flow___APropdef___do_flow(val
* self
, val
* p0
) {
1662 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1663 val
* var
/* : FlowVisitor */;
1664 val
* var_v
/* var v: FlowVisitor */;
1665 var_toolcontext
= p0
;
1666 var
= NEW_nitc__flow__FlowVisitor(&type_nitc__flow__FlowVisitor
);
1668 ((void(*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_nitc__flow__FlowVisitor__toolcontext_61d
]))(var
, var_toolcontext
); /* toolcontext= on <var:FlowVisitor>*/
1671 ((void(*)(val
* self
))(var
->class->vft
[COLOR_core__kernel__Object__init
]))(var
); /* init on <var:FlowVisitor>*/
1675 nitc___nitc__Visitor___enter_visit(var_v
, self
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
1679 /* method flow$APropdef$before_flow_context= for (self: APropdef, nullable FlowContext) */
1680 void nitc__flow___APropdef___before_flow_context_61d(val
* self
, val
* p0
) {
1681 self
->attrs
[COLOR_nitc__flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:APropdef> */
1684 /* method flow$APropdef$after_flow_context= for (self: APropdef, nullable FlowContext) */
1685 void nitc__flow___APropdef___after_flow_context_61d(val
* self
, val
* p0
) {
1686 self
->attrs
[COLOR_nitc__flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:APropdef> */
1689 /* method flow$APropdef$accept_flow_visitor for (self: APropdef, FlowVisitor) */
1690 void nitc__flow___APropdef___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1691 val
* var_v
/* var v: FlowVisitor */;
1692 val
* var
/* : FlowContext */;
1693 val
* var2
/* : FlowContext */;
1694 val
* var4
/* : FlowContext */;
1695 val
* var6
/* : FlowContext */;
1698 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
1699 var2
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1700 if (unlikely(var2
== NULL
)) {
1701 if(catchStack
.cursor
>= 0){
1702 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1705 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1713 { /* Inline flow$APropdef$before_flow_context= (self,var) on <self:APropdef> */
1714 self
->attrs
[COLOR_nitc__flow__APropdef___before_flow_context
].val
= var
; /* _before_flow_context on <self:APropdef> */
1719 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___APropdef___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:APropdef>*/
1722 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
1723 var6
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1724 if (unlikely(var6
== NULL
)) {
1725 if(catchStack
.cursor
>= 0){
1726 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1737 { /* Inline flow$APropdef$after_flow_context= (self,var4) on <self:APropdef> */
1738 self
->attrs
[COLOR_nitc__flow__APropdef___after_flow_context
].val
= var4
; /* _after_flow_context on <self:APropdef> */
1744 /* method flow$AExpr$after_flow_context for (self: AExpr): nullable FlowContext */
1745 val
* nitc__flow___AExpr___after_flow_context(val
* self
) {
1746 val
* var
/* : nullable FlowContext */;
1747 val
* var1
/* : nullable FlowContext */;
1748 var1
= self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AExpr> */
1753 /* method flow$AExpr$after_flow_context= for (self: AExpr, nullable FlowContext) */
1754 void nitc__flow___AExpr___after_flow_context_61d(val
* self
, val
* p0
) {
1755 self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:AExpr> */
1758 /* method flow$AVarAssignExpr$accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1759 void nitc__flow___AVarAssignExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1760 val
* var_v
/* var v: FlowVisitor */;
1761 val
* var
/* : FlowContext */;
1764 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AVarAssignExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AVarAssignExpr>*/
1767 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
1770 { /* Inline flow$AExpr$after_flow_context= (self,var) on <self:AVarAssignExpr> */
1771 self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AVarAssignExpr> */
1777 /* method flow$AReassignFormExpr$accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1778 void nitc__flow___AReassignFormExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1779 val
* var_v
/* var v: FlowVisitor */;
1780 val
* var
/* : FlowContext */;
1783 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AReassignFormExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AReassignFormExpr>*/
1786 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
1789 { /* Inline flow$AExpr$after_flow_context= (self,var) on <self:AReassignFormExpr> */
1790 self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AReassignFormExpr> */
1796 /* method flow$ABlockExpr$accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1797 void nitc__flow___ABlockExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1798 val
* var_v
/* var v: FlowVisitor */;
1799 val
* var
/* : ANodes[AExpr] */;
1800 val
* var2
/* : ANodes[AExpr] */;
1801 val
* var_
/* var : ANodes[AExpr] */;
1802 val
* var3
/* : Iterator[ANode] */;
1803 val
* var_4
/* var : Iterator[AExpr] */;
1804 short int var5
/* : Bool */;
1805 val
* var6
/* : nullable Object */;
1806 val
* var_e
/* var e: AExpr */;
1807 val
* var7
/* : FlowContext */;
1808 val
* var9
/* : FlowContext */;
1809 short int var10
/* : Bool */;
1810 short int var11
/* : Bool */;
1811 val
* var12
/* : FlowContext */;
1812 val
* var14
/* : FlowContext */;
1813 short int var15
/* : Bool */;
1814 short int var17
/* : Bool */;
1815 short int var18
/* : Bool */;
1816 val
* var19
/* : FlowContext */;
1817 val
* var21
/* : FlowContext */;
1818 val
* var23
/* : ToolContext */;
1819 val
* var25
/* : ToolContext */;
1820 val
* var26
/* : Location */;
1821 static val
* varonce
;
1822 val
* var27
/* : String */;
1823 char* var28
/* : CString */;
1824 val
* var29
/* : String */;
1825 val
* var30
/* : nullable Int */;
1826 val
* var31
/* : nullable Int */;
1827 val
* var32
/* : nullable Bool */;
1828 val
* var33
/* : nullable Bool */;
1829 val
* var34
/* : Message */;
1832 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
1833 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
1834 if (unlikely(var2
== NULL
)) {
1835 if(catchStack
.cursor
>= 0){
1836 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1811);
1848 var3
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_
);
1853 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AExpr]>*/
1860 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AExpr]>*/
1864 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
1865 var9
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1866 if (unlikely(var9
== NULL
)) {
1867 if(catchStack
.cursor
>= 0){
1868 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1879 var10
= nitc___nitc__FlowContext___is_unreachable(var7
);
1884 nitc___nitc__Visitor___enter_visit(var_v
, var_e
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
1888 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
1889 var14
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1890 if (unlikely(var14
== NULL
)) {
1891 if(catchStack
.cursor
>= 0){
1892 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1899 RET_LABEL13
:(void)0;
1903 { /* Inline flow$FlowContext$is_already_unreachable (var12) on <var12:FlowContext> */
1904 var17
= var12
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <var12:FlowContext> */
1906 RET_LABEL16
:(void)0;
1912 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
1913 var21
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1914 if (unlikely(var21
== NULL
)) {
1915 if(catchStack
.cursor
>= 0){
1916 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1919 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1923 RET_LABEL20
:(void)0;
1927 { /* Inline flow$FlowContext$is_already_unreachable= (var19,1) on <var19:FlowContext> */
1928 var19
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
= 1; /* _is_already_unreachable on <var19:FlowContext> */
1929 RET_LABEL22
:(void)0;
1933 { /* Inline flow$FlowVisitor$toolcontext (var_v) on <var_v:FlowVisitor> */
1934 var25
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <var_v:FlowVisitor> */
1935 if (unlikely(var25
== NULL
)) {
1936 if(catchStack
.cursor
>= 0){
1937 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1939 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1940 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 39);
1944 RET_LABEL24
:(void)0;
1948 var26
= nitc___nitc__ANode___hot_location(var_e
);
1950 if (likely(varonce
!=NULL
)) {
1953 var28
= "Error: unreachable statement.";
1954 var30
= (val
*)(29l<<2|1);
1955 var31
= (val
*)(29l<<2|1);
1956 var32
= (val
*)((long)(0)<<2|3);
1957 var33
= (val
*)((long)(0)<<2|3);
1958 var29
= core__flat___CString___to_s_unsafe(var28
, var30
, var31
, var32
, var33
);
1963 var34
= nitc___nitc__ToolContext___error(var23
, var26
, var27
);
1969 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AExpr]>*/
1972 BREAK_label
: (void)0;
1974 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AExpr]>*/
1978 /* method flow$AReturnExpr$accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1979 void nitc__flow___AReturnExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1980 val
* var_v
/* var v: FlowVisitor */;
1981 val
* var
/* : FlowContext */;
1984 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AReturnExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AReturnExpr>*/
1987 var
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
1991 /* method flow$AEscapeExpr$before_flow_context for (self: AEscapeExpr): nullable FlowContext */
1992 val
* nitc__flow___AEscapeExpr___before_flow_context(val
* self
) {
1993 val
* var
/* : nullable FlowContext */;
1994 val
* var1
/* : nullable FlowContext */;
1995 val
* var3
/* : nullable FlowContext */;
1996 val
* var_after
/* var after: nullable FlowContext */;
1997 short int var4
/* : Bool */;
1998 short int var5
/* : Bool */;
1999 val
* var_other
/* var other: nullable Object */;
2000 short int var7
/* : Bool */;
2001 short int var9
/* : Bool */;
2002 val
* var10
/* : Array[FlowContext] */;
2003 val
* var12
/* : Array[FlowContext] */;
2004 val
* var13
/* : nullable Object */;
2006 { /* Inline flow$AExpr$after_flow_context (self) on <self:AEscapeExpr> */
2007 var3
= self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEscapeExpr> */
2013 if (var_after
== NULL
) {
2014 var4
= 1; /* is null */
2016 var4
= 0; /* arg is null but recv is not */
2019 { /* Inline kernel$Object$== (var_after,((val*)NULL)) on <var_after:nullable FlowContext> */
2020 var_other
= ((val
*)NULL
);
2022 { /* Inline kernel$Object$is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
2023 var9
= var_after
== var_other
;
2041 { /* Inline flow$FlowContext$previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
2042 var12
= var_after
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
2043 if (unlikely(var12
== NULL
)) {
2044 if(catchStack
.cursor
>= 0){
2045 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
2048 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
2052 RET_LABEL11
:(void)0;
2056 var13
= core___core__SequenceRead___Collection__first(var10
);
2063 /* method flow$AEscapeExpr$accept_flow_visitor for (self: AEscapeExpr, FlowVisitor) */
2064 void nitc__flow___AEscapeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2065 val
* var_v
/* var v: FlowVisitor */;
2066 val
* var
/* : FlowContext */;
2069 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AEscapeExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AEscapeExpr>*/
2072 var
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
2076 /* method flow$AAbortExpr$accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
2077 void nitc__flow___AAbortExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2078 val
* var_v
/* var v: FlowVisitor */;
2079 val
* var
/* : FlowContext */;
2082 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AAbortExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AAbortExpr>*/
2085 var
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
2089 /* method flow$ADoExpr$accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
2090 void nitc__flow___ADoExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2091 val
* var_v
/* var v: FlowVisitor */;
2092 val
* var
/* : FlowContext */;
2093 val
* var_before_block
/* var before_block: FlowContext */;
2094 val
* var1
/* : nullable AExpr */;
2095 val
* var3
/* : nullable AExpr */;
2096 val
* var4
/* : nullable EscapeMark */;
2097 val
* var6
/* : nullable EscapeMark */;
2098 val
* var7
/* : FlowContext */;
2099 val
* var9
/* : FlowContext */;
2100 val
* var_after_block
/* var after_block: FlowContext */;
2101 val
* var10
/* : nullable AExpr */;
2102 val
* var12
/* : nullable AExpr */;
2103 short int var13
/* : Bool */;
2104 short int var14
/* : Bool */;
2105 val
* var_other
/* var other: nullable Object */;
2106 short int var16
/* : Bool */;
2107 short int var17
/* : Bool */;
2108 val
* var18
/* : FlowContext */;
2109 val
* var_before_catch
/* var before_catch: FlowContext */;
2110 val
* var19
/* : FlowContext */;
2111 val
* var20
/* : nullable AExpr */;
2112 val
* var22
/* : nullable AExpr */;
2113 val
* var23
/* : FlowContext */;
2114 val
* var25
/* : FlowContext */;
2115 val
* var_after_catch
/* var after_catch: FlowContext */;
2116 val
* var26
/* : FlowContext */;
2119 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2121 var_before_block
= var
;
2123 { /* Inline parser_nodes$ADoExpr$n_block (self) on <self:ADoExpr> */
2124 var3
= self
->attrs
[COLOR_nitc__parser_nodes__ADoExpr___n_block
].val
; /* _n_block on <self:ADoExpr> */
2130 nitc___nitc__Visitor___enter_visit(var_v
, var1
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2133 { /* Inline scope$ADoExpr$break_mark (self) on <self:ADoExpr> */
2134 var6
= self
->attrs
[COLOR_nitc__scope__ADoExpr___break_mark
].val
; /* _break_mark on <self:ADoExpr> */
2140 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var4
); /* Direct call flow$FlowVisitor$merge_breaks on <var_v:FlowVisitor>*/
2143 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2144 var9
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2145 if (unlikely(var9
== NULL
)) {
2146 if(catchStack
.cursor
>= 0){
2147 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2157 var_after_block
= var7
;
2159 { /* Inline parser_nodes$ADoExpr$n_catch (self) on <self:ADoExpr> */
2160 var12
= self
->attrs
[COLOR_nitc__parser_nodes__ADoExpr___n_catch
].val
; /* _n_catch on <self:ADoExpr> */
2162 RET_LABEL11
:(void)0;
2165 if (var10
== NULL
) {
2166 var13
= 0; /* is null */
2168 var13
= 1; /* arg is null and recv is not */
2171 { /* Inline kernel$Object$!= (var10,((val*)NULL)) on <var10:nullable AExpr> */
2172 var_other
= ((val
*)NULL
);
2174 var16
= ((short int(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var10
, var_other
); /* == on <var10:nullable AExpr(AExpr)>*/
2179 RET_LABEL15
:(void)0;
2185 var18
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2187 var_before_catch
= var18
;
2189 var19
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var_before_block
, var_after_block
);
2192 { /* Inline parser_nodes$ADoExpr$n_catch (self) on <self:ADoExpr> */
2193 var22
= self
->attrs
[COLOR_nitc__parser_nodes__ADoExpr___n_catch
].val
; /* _n_catch on <self:ADoExpr> */
2195 RET_LABEL21
:(void)0;
2199 nitc___nitc__Visitor___enter_visit(var_v
, var20
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2202 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2203 var25
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2204 if (unlikely(var25
== NULL
)) {
2205 if(catchStack
.cursor
>= 0){
2206 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2209 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2213 RET_LABEL24
:(void)0;
2216 var_after_catch
= var23
;
2218 var26
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var_before_catch
, var_after_catch
);
2224 /* method flow$AIfExpr$accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
2225 void nitc__flow___AIfExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2226 val
* var_v
/* var v: FlowVisitor */;
2227 val
* var
/* : AExpr */;
2228 val
* var2
/* : AExpr */;
2229 val
* var3
/* : FlowContext */;
2230 val
* var_after_expr
/* var after_expr: FlowContext */;
2231 val
* var4
/* : FlowContext */;
2232 val
* var6
/* : FlowContext */;
2233 val
* var8
/* : nullable AExpr */;
2234 val
* var10
/* : nullable AExpr */;
2235 val
* var11
/* : FlowContext */;
2236 val
* var13
/* : FlowContext */;
2237 val
* var_after_then
/* var after_then: FlowContext */;
2238 val
* var14
/* : FlowContext */;
2239 val
* var16
/* : FlowContext */;
2240 val
* var18
/* : nullable AExpr */;
2241 val
* var20
/* : nullable AExpr */;
2242 val
* var21
/* : FlowContext */;
2243 val
* var23
/* : FlowContext */;
2244 val
* var_after_else
/* var after_else: FlowContext */;
2245 val
* var24
/* : FlowContext */;
2248 { /* Inline parser_nodes$AIfExpr$n_expr (self) on <self:AIfExpr> */
2249 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
2250 if (unlikely(var2
== NULL
)) {
2251 if(catchStack
.cursor
>= 0){
2252 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2255 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1924);
2263 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2265 var_after_expr
= var3
;
2267 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
2268 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2269 if (unlikely(var6
== NULL
)) {
2270 if(catchStack
.cursor
>= 0){
2271 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2282 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2283 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2288 { /* Inline parser_nodes$AIfExpr$n_then (self) on <self:AIfExpr> */
2289 var10
= self
->attrs
[COLOR_nitc__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
2295 nitc___nitc__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2298 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2299 var13
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2300 if (unlikely(var13
== NULL
)) {
2301 if(catchStack
.cursor
>= 0){
2302 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2309 RET_LABEL12
:(void)0;
2312 var_after_then
= var11
;
2314 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
2315 var16
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2316 if (unlikely(var16
== NULL
)) {
2317 if(catchStack
.cursor
>= 0){
2318 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2325 RET_LABEL15
:(void)0;
2329 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2330 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2331 RET_LABEL17
:(void)0;
2335 { /* Inline parser_nodes$AIfExpr$n_else (self) on <self:AIfExpr> */
2336 var20
= self
->attrs
[COLOR_nitc__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
2338 RET_LABEL19
:(void)0;
2342 nitc___nitc__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2345 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2346 var23
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2347 if (unlikely(var23
== NULL
)) {
2348 if(catchStack
.cursor
>= 0){
2349 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2352 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2356 RET_LABEL22
:(void)0;
2359 var_after_else
= var21
;
2361 var24
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2365 /* method flow$AIfexprExpr$accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2366 void nitc__flow___AIfexprExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2367 val
* var_v
/* var v: FlowVisitor */;
2368 val
* var
/* : AExpr */;
2369 val
* var2
/* : AExpr */;
2370 val
* var3
/* : FlowContext */;
2371 val
* var_after_expr
/* var after_expr: FlowContext */;
2372 val
* var4
/* : FlowContext */;
2373 val
* var6
/* : FlowContext */;
2374 val
* var8
/* : AExpr */;
2375 val
* var10
/* : AExpr */;
2376 val
* var11
/* : FlowContext */;
2377 val
* var13
/* : FlowContext */;
2378 val
* var_after_then
/* var after_then: FlowContext */;
2379 val
* var14
/* : FlowContext */;
2380 val
* var16
/* : FlowContext */;
2381 val
* var18
/* : AExpr */;
2382 val
* var20
/* : AExpr */;
2383 val
* var21
/* : FlowContext */;
2384 val
* var23
/* : FlowContext */;
2385 val
* var_after_else
/* var after_else: FlowContext */;
2386 val
* var24
/* : FlowContext */;
2389 { /* Inline parser_nodes$AIfexprExpr$n_expr (self) on <self:AIfexprExpr> */
2390 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
2391 if (unlikely(var2
== NULL
)) {
2392 if(catchStack
.cursor
>= 0){
2393 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1947);
2404 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2406 var_after_expr
= var3
;
2408 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
2409 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2410 if (unlikely(var6
== NULL
)) {
2411 if(catchStack
.cursor
>= 0){
2412 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2423 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2424 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2429 { /* Inline parser_nodes$AIfexprExpr$n_then (self) on <self:AIfexprExpr> */
2430 var10
= self
->attrs
[COLOR_nitc__parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
2431 if (unlikely(var10
== NULL
)) {
2432 if(catchStack
.cursor
>= 0){
2433 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
2436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1953);
2444 nitc___nitc__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2447 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2448 var13
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2449 if (unlikely(var13
== NULL
)) {
2450 if(catchStack
.cursor
>= 0){
2451 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2458 RET_LABEL12
:(void)0;
2461 var_after_then
= var11
;
2463 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
2464 var16
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2465 if (unlikely(var16
== NULL
)) {
2466 if(catchStack
.cursor
>= 0){
2467 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2470 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2474 RET_LABEL15
:(void)0;
2478 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2479 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2480 RET_LABEL17
:(void)0;
2484 { /* Inline parser_nodes$AIfexprExpr$n_else (self) on <self:AIfexprExpr> */
2485 var20
= self
->attrs
[COLOR_nitc__parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
2486 if (unlikely(var20
== NULL
)) {
2487 if(catchStack
.cursor
>= 0){
2488 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
2491 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1959);
2495 RET_LABEL19
:(void)0;
2499 nitc___nitc__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2502 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2503 var23
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2504 if (unlikely(var23
== NULL
)) {
2505 if(catchStack
.cursor
>= 0){
2506 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2509 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2513 RET_LABEL22
:(void)0;
2516 var_after_else
= var21
;
2518 var24
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2522 /* method flow$AWhileExpr$accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2523 void nitc__flow___AWhileExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2524 val
* var_v
/* var v: FlowVisitor */;
2525 val
* var
/* : FlowContext */;
2526 val
* var_before_loop
/* var before_loop: FlowContext */;
2527 val
* var1
/* : AExpr */;
2528 val
* var3
/* : AExpr */;
2529 val
* var4
/* : FlowContext */;
2530 val
* var_after_expr
/* var after_expr: FlowContext */;
2531 val
* var5
/* : FlowContext */;
2532 val
* var7
/* : FlowContext */;
2533 val
* var9
/* : nullable AExpr */;
2534 val
* var11
/* : nullable AExpr */;
2535 val
* var12
/* : FlowContext */;
2536 val
* var14
/* : FlowContext */;
2537 val
* var_after_block
/* var after_block: FlowContext */;
2538 val
* var15
/* : nullable EscapeMark */;
2539 val
* var17
/* : nullable EscapeMark */;
2540 val
* var18
/* : FlowContext */;
2541 val
* var20
/* : FlowContext */;
2542 val
* var22
/* : nullable EscapeMark */;
2543 val
* var24
/* : nullable EscapeMark */;
2546 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2548 var_before_loop
= var
;
2550 { /* Inline parser_nodes$AWhileExpr$n_expr (self) on <self:AWhileExpr> */
2551 var3
= self
->attrs
[COLOR_nitc__parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
2552 if (unlikely(var3
== NULL
)) {
2553 if(catchStack
.cursor
>= 0){
2554 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2557 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1971);
2565 var4
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var1
);
2567 var_after_expr
= var4
;
2569 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
2570 var7
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2571 if (unlikely(var7
== NULL
)) {
2572 if(catchStack
.cursor
>= 0){
2573 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2576 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2584 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var5) on <var_v:FlowVisitor> */
2585 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var5
; /* _current_flow_context on <var_v:FlowVisitor> */
2590 { /* Inline parser_nodes$AWhileExpr$n_block (self) on <self:AWhileExpr> */
2591 var11
= self
->attrs
[COLOR_nitc__parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
2593 RET_LABEL10
:(void)0;
2597 nitc___nitc__Visitor___enter_visit(var_v
, var9
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2600 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2601 var14
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2602 if (unlikely(var14
== NULL
)) {
2603 if(catchStack
.cursor
>= 0){
2604 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2607 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2611 RET_LABEL13
:(void)0;
2614 var_after_block
= var12
;
2616 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow$FlowContext$add_loop on <var_before_loop:FlowContext>*/
2619 { /* Inline scope$AWhileExpr$continue_mark (self) on <self:AWhileExpr> */
2620 var17
= self
->attrs
[COLOR_nitc__scope__AWhileExpr___continue_mark
].val
; /* _continue_mark on <self:AWhileExpr> */
2622 RET_LABEL16
:(void)0;
2626 nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var15
); /* Direct call flow$FlowVisitor$merge_continues_to on <var_v:FlowVisitor>*/
2629 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
2630 var20
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2631 if (unlikely(var20
== NULL
)) {
2632 if(catchStack
.cursor
>= 0){
2633 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2636 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2640 RET_LABEL19
:(void)0;
2644 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var18) on <var_v:FlowVisitor> */
2645 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var18
; /* _current_flow_context on <var_v:FlowVisitor> */
2646 RET_LABEL21
:(void)0;
2650 { /* Inline scope$AWhileExpr$break_mark (self) on <self:AWhileExpr> */
2651 var24
= self
->attrs
[COLOR_nitc__scope__AWhileExpr___break_mark
].val
; /* _break_mark on <self:AWhileExpr> */
2653 RET_LABEL23
:(void)0;
2657 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var22
); /* Direct call flow$FlowVisitor$merge_breaks on <var_v:FlowVisitor>*/
2661 /* method flow$ALoopExpr$accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2662 void nitc__flow___ALoopExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2663 val
* var_v
/* var v: FlowVisitor */;
2664 val
* var
/* : FlowContext */;
2665 val
* var_before_loop
/* var before_loop: FlowContext */;
2666 val
* var1
/* : nullable AExpr */;
2667 val
* var3
/* : nullable AExpr */;
2668 val
* var4
/* : FlowContext */;
2669 val
* var6
/* : FlowContext */;
2670 val
* var_after_block
/* var after_block: FlowContext */;
2671 val
* var7
/* : nullable EscapeMark */;
2672 val
* var9
/* : nullable EscapeMark */;
2673 val
* var10
/* : FlowContext */;
2674 val
* var11
/* : nullable EscapeMark */;
2675 val
* var13
/* : nullable EscapeMark */;
2678 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2680 var_before_loop
= var
;
2682 { /* Inline parser_nodes$ALoopExpr$n_block (self) on <self:ALoopExpr> */
2683 var3
= self
->attrs
[COLOR_nitc__parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
2689 nitc___nitc__Visitor___enter_visit(var_v
, var1
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2692 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2693 var6
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2694 if (unlikely(var6
== NULL
)) {
2695 if(catchStack
.cursor
>= 0){
2696 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2699 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2706 var_after_block
= var4
;
2708 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow$FlowContext$add_loop on <var_before_loop:FlowContext>*/
2711 { /* Inline scope$ALoopExpr$continue_mark (self) on <self:ALoopExpr> */
2712 var9
= self
->attrs
[COLOR_nitc__scope__ALoopExpr___continue_mark
].val
; /* _continue_mark on <self:ALoopExpr> */
2718 nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var7
); /* Direct call flow$FlowVisitor$merge_continues_to on <var_v:FlowVisitor>*/
2721 var10
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
2724 { /* Inline scope$ALoopExpr$break_mark (self) on <self:ALoopExpr> */
2725 var13
= self
->attrs
[COLOR_nitc__scope__ALoopExpr___break_mark
].val
; /* _break_mark on <self:ALoopExpr> */
2727 RET_LABEL12
:(void)0;
2731 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var11
); /* Direct call flow$FlowVisitor$merge_breaks on <var_v:FlowVisitor>*/
2735 /* method flow$AForExpr$accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2736 void nitc__flow___AForExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2737 val
* var_v
/* var v: FlowVisitor */;
2738 val
* var
/* : ANodes[AForGroup] */;
2739 val
* var2
/* : ANodes[AForGroup] */;
2740 val
* var_
/* var : ANodes[AForGroup] */;
2741 val
* var3
/* : Iterator[ANode] */;
2742 val
* var_4
/* var : Iterator[AForGroup] */;
2743 short int var5
/* : Bool */;
2744 val
* var6
/* : nullable Object */;
2745 val
* var_g
/* var g: AForGroup */;
2746 val
* var7
/* : AExpr */;
2747 val
* var9
/* : AExpr */;
2748 val
* var10
/* : FlowContext */;
2749 val
* var_before_loop
/* var before_loop: FlowContext */;
2750 val
* var11
/* : nullable AExpr */;
2751 val
* var13
/* : nullable AExpr */;
2752 val
* var14
/* : FlowContext */;
2753 val
* var16
/* : FlowContext */;
2754 val
* var_after_block
/* var after_block: FlowContext */;
2755 val
* var17
/* : nullable EscapeMark */;
2756 val
* var19
/* : nullable EscapeMark */;
2757 val
* var20
/* : FlowContext */;
2758 val
* var22
/* : FlowContext */;
2759 val
* var23
/* : FlowContext */;
2760 val
* var24
/* : nullable EscapeMark */;
2761 val
* var26
/* : nullable EscapeMark */;
2764 { /* Inline parser_nodes$AForExpr$n_groups (self) on <self:AForExpr> */
2765 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AForExpr___n_groups
].val
; /* _n_groups on <self:AForExpr> */
2766 if (unlikely(var2
== NULL
)) {
2767 if(catchStack
.cursor
>= 0){
2768 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
2771 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2001);
2780 var3
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_
);
2785 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AForGroup]>*/
2792 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AForGroup]>*/
2796 { /* Inline parser_nodes$AForGroup$n_expr (var_g) on <var_g:AForGroup> */
2797 var9
= var_g
->attrs
[COLOR_nitc__parser_nodes__AForGroup___n_expr
].val
; /* _n_expr on <var_g:AForGroup> */
2798 if (unlikely(var9
== NULL
)) {
2799 if(catchStack
.cursor
>= 0){
2800 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2803 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2024);
2811 nitc___nitc__Visitor___enter_visit(var_v
, var7
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2814 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AForGroup]>*/
2817 BREAK_label
: (void)0;
2819 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AForGroup]>*/
2822 var10
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2824 var_before_loop
= var10
;
2826 { /* Inline parser_nodes$AForExpr$n_block (self) on <self:AForExpr> */
2827 var13
= self
->attrs
[COLOR_nitc__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
2829 RET_LABEL12
:(void)0;
2833 nitc___nitc__Visitor___enter_visit(var_v
, var11
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2836 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2837 var16
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2838 if (unlikely(var16
== NULL
)) {
2839 if(catchStack
.cursor
>= 0){
2840 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2843 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2847 RET_LABEL15
:(void)0;
2850 var_after_block
= var14
;
2852 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow$FlowContext$add_loop on <var_before_loop:FlowContext>*/
2855 { /* Inline scope$AForExpr$continue_mark (self) on <self:AForExpr> */
2856 var19
= self
->attrs
[COLOR_nitc__scope__AForExpr___continue_mark
].val
; /* _continue_mark on <self:AForExpr> */
2858 RET_LABEL18
:(void)0;
2862 nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var17
); /* Direct call flow$FlowVisitor$merge_continues_to on <var_v:FlowVisitor>*/
2865 { /* Inline flow$FlowVisitor$current_flow_context (var_v) on <var_v:FlowVisitor> */
2866 var22
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2867 if (unlikely(var22
== NULL
)) {
2868 if(catchStack
.cursor
>= 0){
2869 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2872 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2876 RET_LABEL21
:(void)0;
2880 var23
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var20
, var_before_loop
);
2883 { /* Inline scope$AForExpr$break_mark (self) on <self:AForExpr> */
2884 var26
= self
->attrs
[COLOR_nitc__scope__AForExpr___break_mark
].val
; /* _break_mark on <self:AForExpr> */
2886 RET_LABEL25
:(void)0;
2890 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var24
); /* Direct call flow$FlowVisitor$merge_breaks on <var_v:FlowVisitor>*/
2894 /* method flow$AWithExpr$accept_flow_visitor for (self: AWithExpr, FlowVisitor) */
2895 void nitc__flow___AWithExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2896 val
* var_v
/* var v: FlowVisitor */;
2897 val
* var
/* : nullable EscapeMark */;
2898 val
* var2
/* : nullable EscapeMark */;
2901 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AWithExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AWithExpr>*/
2904 { /* Inline scope$AWithExpr$break_mark (self) on <self:AWithExpr> */
2905 var2
= self
->attrs
[COLOR_nitc__scope__AWithExpr___break_mark
].val
; /* _break_mark on <self:AWithExpr> */
2911 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var
); /* Direct call flow$FlowVisitor$merge_breaks on <var_v:FlowVisitor>*/
2915 /* method flow$AAssertExpr$accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2916 void nitc__flow___AAssertExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2917 val
* var_v
/* var v: FlowVisitor */;
2918 val
* var
/* : AExpr */;
2919 val
* var2
/* : AExpr */;
2920 val
* var3
/* : FlowContext */;
2921 val
* var_after_expr
/* var after_expr: FlowContext */;
2922 val
* var4
/* : FlowContext */;
2923 val
* var6
/* : FlowContext */;
2924 val
* var8
/* : nullable AExpr */;
2925 val
* var10
/* : nullable AExpr */;
2926 val
* var11
/* : FlowContext */;
2927 val
* var13
/* : FlowContext */;
2930 { /* Inline parser_nodes$AAssertExpr$n_expr (self) on <self:AAssertExpr> */
2931 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AAssertExpr___n_expr
].val
; /* _n_expr on <self:AAssertExpr> */
2932 if (unlikely(var2
== NULL
)) {
2933 if(catchStack
.cursor
>= 0){
2934 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2937 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2056);
2945 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2947 var_after_expr
= var3
;
2949 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
2950 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2951 if (unlikely(var6
== NULL
)) {
2952 if(catchStack
.cursor
>= 0){
2953 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2964 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2965 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2970 { /* Inline parser_nodes$AAssertExpr$n_else (self) on <self:AAssertExpr> */
2971 var10
= self
->attrs
[COLOR_nitc__parser_nodes__AAssertExpr___n_else
].val
; /* _n_else on <self:AAssertExpr> */
2977 nitc___nitc__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:FlowVisitor>*/
2980 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
2981 var13
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2982 if (unlikely(var13
== NULL
)) {
2983 if(catchStack
.cursor
>= 0){
2984 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2987 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2991 RET_LABEL12
:(void)0;
2995 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var11) on <var_v:FlowVisitor> */
2996 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var11
; /* _current_flow_context on <var_v:FlowVisitor> */
2997 RET_LABEL14
:(void)0;
3002 /* method flow$AOrExpr$accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
3003 void nitc__flow___AOrExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3004 val
* var_v
/* var v: FlowVisitor */;
3005 val
* var
/* : AExpr */;
3006 val
* var2
/* : AExpr */;
3007 val
* var3
/* : FlowContext */;
3008 val
* var_after_expr
/* var after_expr: FlowContext */;
3009 val
* var4
/* : FlowContext */;
3010 val
* var6
/* : FlowContext */;
3011 val
* var8
/* : AExpr */;
3012 val
* var10
/* : AExpr */;
3013 val
* var11
/* : FlowContext */;
3014 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3015 val
* var12
/* : FlowContext */;
3016 val
* var14
/* : FlowContext */;
3017 val
* var15
/* : FlowContext */;
3018 val
* var17
/* : FlowContext */;
3019 val
* var18
/* : FlowContext */;
3020 val
* var_merge_true
/* var merge_true: FlowContext */;
3021 static val
* varonce
;
3022 val
* var19
/* : String */;
3023 char* var20
/* : CString */;
3024 val
* var21
/* : String */;
3025 val
* var22
/* : nullable Int */;
3026 val
* var23
/* : nullable Int */;
3027 val
* var24
/* : nullable Bool */;
3028 val
* var25
/* : nullable Bool */;
3029 val
* var27
/* : FlowContext */;
3030 val
* var29
/* : FlowContext */;
3031 val
* var30
/* : FlowContext */;
3034 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrExpr> */
3035 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AOrExpr> */
3036 if (unlikely(var2
== NULL
)) {
3037 if(catchStack
.cursor
>= 0){
3038 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2131);
3049 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3051 var_after_expr
= var3
;
3053 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
3054 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3055 if (unlikely(var6
== NULL
)) {
3056 if(catchStack
.cursor
>= 0){
3057 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3060 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3068 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3069 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3074 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AOrExpr> */
3075 var10
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrExpr> */
3076 if (unlikely(var10
== NULL
)) {
3077 if(catchStack
.cursor
>= 0){
3078 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3081 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2137);
3089 var11
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var8
);
3091 var_after_expr2
= var11
;
3093 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
3094 var14
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3095 if (unlikely(var14
== NULL
)) {
3096 if(catchStack
.cursor
>= 0){
3097 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3104 RET_LABEL13
:(void)0;
3108 { /* Inline flow$FlowContext$when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3109 var17
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3110 if (unlikely(var17
== NULL
)) {
3111 if(catchStack
.cursor
>= 0){
3112 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3119 RET_LABEL16
:(void)0;
3123 var18
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
3125 var_merge_true
= var18
;
3126 if (likely(varonce
!=NULL
)) {
3130 var22
= (val
*)(7l<<2|1);
3131 var23
= (val
*)(7l<<2|1);
3132 var24
= (val
*)((long)(0)<<2|3);
3133 var25
= (val
*)((long)(0)<<2|3);
3134 var21
= core__flat___CString___to_s_unsafe(var20
, var22
, var23
, var24
, var25
);
3139 { /* Inline flow$FlowContext$name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
3140 var_merge_true
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
3141 RET_LABEL26
:(void)0;
3145 { /* Inline flow$FlowContext$when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3146 var29
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3147 if (unlikely(var29
== NULL
)) {
3148 if(catchStack
.cursor
>= 0){
3149 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3152 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3156 RET_LABEL28
:(void)0;
3160 var30
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var27
);
3164 /* method flow$AImpliesExpr$accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
3165 void nitc__flow___AImpliesExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3166 val
* var_v
/* var v: FlowVisitor */;
3167 val
* var
/* : AExpr */;
3168 val
* var2
/* : AExpr */;
3169 val
* var3
/* : FlowContext */;
3170 val
* var_after_expr
/* var after_expr: FlowContext */;
3171 val
* var4
/* : FlowContext */;
3172 val
* var6
/* : FlowContext */;
3173 val
* var8
/* : AExpr */;
3174 val
* var10
/* : AExpr */;
3175 val
* var11
/* : FlowContext */;
3176 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3177 val
* var12
/* : FlowContext */;
3178 val
* var14
/* : FlowContext */;
3179 val
* var15
/* : FlowContext */;
3180 val
* var17
/* : FlowContext */;
3181 val
* var18
/* : FlowContext */;
3182 val
* var_merge_true
/* var merge_true: FlowContext */;
3183 static val
* varonce
;
3184 val
* var19
/* : String */;
3185 char* var20
/* : CString */;
3186 val
* var21
/* : String */;
3187 val
* var22
/* : nullable Int */;
3188 val
* var23
/* : nullable Int */;
3189 val
* var24
/* : nullable Bool */;
3190 val
* var25
/* : nullable Bool */;
3191 val
* var27
/* : FlowContext */;
3192 val
* var29
/* : FlowContext */;
3193 val
* var30
/* : FlowContext */;
3196 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AImpliesExpr> */
3197 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AImpliesExpr> */
3198 if (unlikely(var2
== NULL
)) {
3199 if(catchStack
.cursor
>= 0){
3200 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3203 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2131);
3211 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3213 var_after_expr
= var3
;
3215 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
3216 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3217 if (unlikely(var6
== NULL
)) {
3218 if(catchStack
.cursor
>= 0){
3219 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3222 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3230 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3231 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3236 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AImpliesExpr> */
3237 var10
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AImpliesExpr> */
3238 if (unlikely(var10
== NULL
)) {
3239 if(catchStack
.cursor
>= 0){
3240 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3243 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2137);
3251 var11
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var8
);
3253 var_after_expr2
= var11
;
3255 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
3256 var14
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3257 if (unlikely(var14
== NULL
)) {
3258 if(catchStack
.cursor
>= 0){
3259 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3266 RET_LABEL13
:(void)0;
3270 { /* Inline flow$FlowContext$when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3271 var17
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3272 if (unlikely(var17
== NULL
)) {
3273 if(catchStack
.cursor
>= 0){
3274 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3281 RET_LABEL16
:(void)0;
3285 var18
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
3287 var_merge_true
= var18
;
3288 if (likely(varonce
!=NULL
)) {
3292 var22
= (val
*)(7l<<2|1);
3293 var23
= (val
*)(7l<<2|1);
3294 var24
= (val
*)((long)(0)<<2|3);
3295 var25
= (val
*)((long)(0)<<2|3);
3296 var21
= core__flat___CString___to_s_unsafe(var20
, var22
, var23
, var24
, var25
);
3301 { /* Inline flow$FlowContext$name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
3302 var_merge_true
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
3303 RET_LABEL26
:(void)0;
3307 { /* Inline flow$FlowContext$when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3308 var29
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3309 if (unlikely(var29
== NULL
)) {
3310 if(catchStack
.cursor
>= 0){
3311 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3314 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3318 RET_LABEL28
:(void)0;
3322 var30
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var27
);
3326 /* method flow$AAndExpr$accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
3327 void nitc__flow___AAndExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3328 val
* var_v
/* var v: FlowVisitor */;
3329 val
* var
/* : AExpr */;
3330 val
* var2
/* : AExpr */;
3331 val
* var3
/* : FlowContext */;
3332 val
* var_after_expr
/* var after_expr: FlowContext */;
3333 val
* var4
/* : FlowContext */;
3334 val
* var6
/* : FlowContext */;
3335 val
* var8
/* : AExpr */;
3336 val
* var10
/* : AExpr */;
3337 val
* var11
/* : FlowContext */;
3338 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3339 val
* var12
/* : FlowContext */;
3340 val
* var14
/* : FlowContext */;
3341 val
* var15
/* : FlowContext */;
3342 val
* var17
/* : FlowContext */;
3343 val
* var18
/* : FlowContext */;
3344 val
* var_merge_false
/* var merge_false: FlowContext */;
3345 static val
* varonce
;
3346 val
* var19
/* : String */;
3347 char* var20
/* : CString */;
3348 val
* var21
/* : String */;
3349 val
* var22
/* : nullable Int */;
3350 val
* var23
/* : nullable Int */;
3351 val
* var24
/* : nullable Bool */;
3352 val
* var25
/* : nullable Bool */;
3353 val
* var27
/* : FlowContext */;
3354 val
* var29
/* : FlowContext */;
3355 val
* var30
/* : FlowContext */;
3358 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AAndExpr> */
3359 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AAndExpr> */
3360 if (unlikely(var2
== NULL
)) {
3361 if(catchStack
.cursor
>= 0){
3362 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3365 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2131);
3373 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3375 var_after_expr
= var3
;
3377 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
3378 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3379 if (unlikely(var6
== NULL
)) {
3380 if(catchStack
.cursor
>= 0){
3381 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3392 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3393 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3398 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AAndExpr> */
3399 var10
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AAndExpr> */
3400 if (unlikely(var10
== NULL
)) {
3401 if(catchStack
.cursor
>= 0){
3402 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3405 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2137);
3413 var11
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var8
);
3415 var_after_expr2
= var11
;
3417 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
3418 var14
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3419 if (unlikely(var14
== NULL
)) {
3420 if(catchStack
.cursor
>= 0){
3421 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3428 RET_LABEL13
:(void)0;
3432 { /* Inline flow$FlowContext$when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3433 var17
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3434 if (unlikely(var17
== NULL
)) {
3435 if(catchStack
.cursor
>= 0){
3436 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3443 RET_LABEL16
:(void)0;
3447 var18
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
3449 var_merge_false
= var18
;
3450 if (likely(varonce
!=NULL
)) {
3453 var20
= "AND FALSE";
3454 var22
= (val
*)(9l<<2|1);
3455 var23
= (val
*)(9l<<2|1);
3456 var24
= (val
*)((long)(0)<<2|3);
3457 var25
= (val
*)((long)(0)<<2|3);
3458 var21
= core__flat___CString___to_s_unsafe(var20
, var22
, var23
, var24
, var25
);
3463 { /* Inline flow$FlowContext$name= (var_merge_false,var19) on <var_merge_false:FlowContext> */
3464 var_merge_false
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_false:FlowContext> */
3465 RET_LABEL26
:(void)0;
3469 { /* Inline flow$FlowContext$when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3470 var29
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3471 if (unlikely(var29
== NULL
)) {
3472 if(catchStack
.cursor
>= 0){
3473 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3476 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3480 RET_LABEL28
:(void)0;
3484 var30
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var27
, var_merge_false
);
3488 /* method flow$ANotExpr$accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
3489 void nitc__flow___ANotExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3490 val
* var_v
/* var v: FlowVisitor */;
3491 val
* var
/* : AExpr */;
3492 val
* var2
/* : AExpr */;
3493 val
* var3
/* : FlowContext */;
3494 val
* var_after_expr
/* var after_expr: FlowContext */;
3495 val
* var4
/* : FlowContext */;
3496 val
* var6
/* : FlowContext */;
3497 val
* var7
/* : FlowContext */;
3498 val
* var9
/* : FlowContext */;
3499 val
* var10
/* : FlowContext */;
3502 { /* Inline parser_nodes$ANotExpr$n_expr (self) on <self:ANotExpr> */
3503 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ANotExpr___n_expr
].val
; /* _n_expr on <self:ANotExpr> */
3504 if (unlikely(var2
== NULL
)) {
3505 if(catchStack
.cursor
>= 0){
3506 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3509 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2171);
3517 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3519 var_after_expr
= var3
;
3521 { /* Inline flow$FlowContext$when_false (var_after_expr) on <var_after_expr:FlowContext> */
3522 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3523 if (unlikely(var6
== NULL
)) {
3524 if(catchStack
.cursor
>= 0){
3525 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3536 { /* Inline flow$FlowContext$when_true (var_after_expr) on <var_after_expr:FlowContext> */
3537 var9
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3538 if (unlikely(var9
== NULL
)) {
3539 if(catchStack
.cursor
>= 0){
3540 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3551 var10
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var4
, var7
);
3555 /* method flow$AOrElseExpr$accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
3556 void nitc__flow___AOrElseExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3557 val
* var_v
/* var v: FlowVisitor */;
3560 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AOrElseExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AOrElseExpr>*/
3564 /* method flow$AEqExpr$accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
3565 void nitc__flow___AEqExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3566 val
* var_v
/* var v: FlowVisitor */;
3567 val
* var
/* : FlowContext */;
3570 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AEqExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AEqExpr>*/
3573 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3577 /* method flow$ANeExpr$accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
3578 void nitc__flow___ANeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3579 val
* var_v
/* var v: FlowVisitor */;
3580 val
* var
/* : FlowContext */;
3583 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___ANeExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:ANeExpr>*/
3586 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3590 /* method flow$AIsaExpr$accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
3591 void nitc__flow___AIsaExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3592 val
* var_v
/* var v: FlowVisitor */;
3593 val
* var
/* : FlowContext */;
3596 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AIsaExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AIsaExpr>*/
3599 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3603 /* method flow$AParExpr$accept_flow_visitor for (self: AParExpr, FlowVisitor) */
3604 void nitc__flow___AParExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3605 val
* var_v
/* var v: FlowVisitor */;
3606 val
* var
/* : AExpr */;
3607 val
* var2
/* : AExpr */;
3608 val
* var3
/* : FlowContext */;
3609 val
* var_after_expr
/* var after_expr: FlowContext */;
3612 { /* Inline parser_nodes$AParExpr$n_expr (self) on <self:AParExpr> */
3613 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AParExpr___n_expr
].val
; /* _n_expr on <self:AParExpr> */
3614 if (unlikely(var2
== NULL
)) {
3615 if(catchStack
.cursor
>= 0){
3616 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3619 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2656);
3627 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3629 var_after_expr
= var3
;
3631 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3632 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3638 /* method flow$AOnceExpr$accept_flow_visitor for (self: AOnceExpr, FlowVisitor) */
3639 void nitc__flow___AOnceExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3640 val
* var_v
/* var v: FlowVisitor */;
3641 val
* var
/* : AExpr */;
3642 val
* var2
/* : AExpr */;
3643 val
* var3
/* : FlowContext */;
3644 val
* var_after_expr
/* var after_expr: FlowContext */;
3647 { /* Inline parser_nodes$AOnceExpr$n_expr (self) on <self:AOnceExpr> */
3648 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AOnceExpr___n_expr
].val
; /* _n_expr on <self:AOnceExpr> */
3649 if (unlikely(var2
== NULL
)) {
3650 if(catchStack
.cursor
>= 0){
3651 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3654 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2095);
3662 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3664 var_after_expr
= var3
;
3666 { /* Inline flow$FlowVisitor$current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3667 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */