1 #include "flow.sep.0.h"
2 /* method flow#ToolContext#flow_phase for (self: ToolContext): Phase */
3 val
* flow__ToolContext__flow_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_flow__ToolContext___64dflow_phase
].val
; /* @flow_phase on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @flow_phase", "src/flow.nit", 26);
15 /* method flow#ToolContext#flow_phase for (self: Object): Phase */
16 val
* VIRTUAL_flow__ToolContext__flow_phase(val
* self
) {
17 val
* var
/* : Phase */;
18 val
* var1
/* : Phase */;
19 var1
= flow__ToolContext__flow_phase(self
);
24 /* method flow#ToolContext#flow_phase= for (self: ToolContext, Phase) */
25 void flow__ToolContext__flow_phase_61d(val
* self
, val
* p0
) {
26 self
->attrs
[COLOR_flow__ToolContext___64dflow_phase
].val
= p0
; /* @flow_phase on <self:ToolContext> */
29 /* method flow#ToolContext#flow_phase= for (self: Object, Phase) */
30 void VIRTUAL_flow__ToolContext__flow_phase_61d(val
* self
, val
* p0
) {
31 flow__ToolContext__flow_phase_61d(self
, p0
);
34 /* method flow#FlowPhase#process_npropdef for (self: FlowPhase, APropdef) */
35 void flow__FlowPhase__process_npropdef(val
* self
, val
* p0
) {
36 val
* var_npropdef
/* var npropdef: APropdef */;
37 val
* var
/* : ToolContext */;
39 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:FlowPhase>*/;
40 ((void (*)(val
*, val
*))(var_npropdef
->class->vft
[COLOR_flow__APropdef__do_flow
]))(var_npropdef
, var
) /* do_flow on <var_npropdef:APropdef>*/;
43 /* method flow#FlowPhase#process_npropdef for (self: Object, APropdef) */
44 void VIRTUAL_flow__FlowPhase__process_npropdef(val
* self
, val
* p0
) {
45 flow__FlowPhase__process_npropdef(self
, p0
);
48 /* method flow#FlowVisitor#current_flow_context for (self: FlowVisitor): FlowContext */
49 val
* flow__FlowVisitor__current_flow_context(val
* self
) {
50 val
* var
/* : FlowContext */;
51 val
* var1
/* : FlowContext */;
52 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dcurrent_flow_context
].val
; /* @current_flow_context on <self:FlowVisitor> */
54 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @current_flow_context", "src/flow.nit", 39);
61 /* method flow#FlowVisitor#current_flow_context for (self: Object): FlowContext */
62 val
* VIRTUAL_flow__FlowVisitor__current_flow_context(val
* self
) {
63 val
* var
/* : FlowContext */;
64 val
* var1
/* : FlowContext */;
65 var1
= flow__FlowVisitor__current_flow_context(self
);
70 /* method flow#FlowVisitor#current_flow_context= for (self: FlowVisitor, FlowContext) */
71 void flow__FlowVisitor__current_flow_context_61d(val
* self
, val
* p0
) {
72 self
->attrs
[COLOR_flow__FlowVisitor___64dcurrent_flow_context
].val
= p0
; /* @current_flow_context on <self:FlowVisitor> */
75 /* method flow#FlowVisitor#current_flow_context= for (self: Object, FlowContext) */
76 void VIRTUAL_flow__FlowVisitor__current_flow_context_61d(val
* self
, val
* p0
) {
77 flow__FlowVisitor__current_flow_context_61d(self
, p0
);
80 /* method flow#FlowVisitor#toolcontext for (self: FlowVisitor): ToolContext */
81 val
* flow__FlowVisitor__toolcontext(val
* self
) {
82 val
* var
/* : ToolContext */;
83 val
* var1
/* : ToolContext */;
84 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dtoolcontext
].val
; /* @toolcontext on <self:FlowVisitor> */
86 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/flow.nit", 41);
93 /* method flow#FlowVisitor#toolcontext for (self: Object): ToolContext */
94 val
* VIRTUAL_flow__FlowVisitor__toolcontext(val
* self
) {
95 val
* var
/* : ToolContext */;
96 val
* var1
/* : ToolContext */;
97 var1
= flow__FlowVisitor__toolcontext(self
);
102 /* method flow#FlowVisitor#toolcontext= for (self: FlowVisitor, ToolContext) */
103 void flow__FlowVisitor__toolcontext_61d(val
* self
, val
* p0
) {
104 self
->attrs
[COLOR_flow__FlowVisitor___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:FlowVisitor> */
107 /* method flow#FlowVisitor#toolcontext= for (self: Object, ToolContext) */
108 void VIRTUAL_flow__FlowVisitor__toolcontext_61d(val
* self
, val
* p0
) {
109 flow__FlowVisitor__toolcontext_61d(self
, p0
);
112 /* method flow#FlowVisitor#init for (self: FlowVisitor, ToolContext) */
113 void flow__FlowVisitor__init(val
* self
, val
* p0
) {
114 val
* var_toolcontext
/* var toolcontext: ToolContext */;
115 val
* var
/* : FlowContext */;
116 val
* var1
/* : Array[FlowContext] */;
117 val
* var2
/* : FlowContext */;
118 val
* var3
/* : FlowContext */;
119 short int var4
/* : Bool */;
120 var_toolcontext
= p0
;
121 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:FlowVisitor>*/;
122 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:FlowVisitor>*/;
123 var
= NEW_flow__FlowContext(&type_flow__FlowContext
);
124 ((void (*)(val
*))(var
->class->vft
[COLOR_flow__FlowContext__init
]))(var
) /* init on <var:FlowContext>*/;
125 CHECK_NEW_flow__FlowContext(var
);
126 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var
) /* current_flow_context= on <self:FlowVisitor>*/;
127 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
128 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
129 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var1
, var2
) /* add on <var1:Array[FlowContext]>*/;
130 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
132 ((void (*)(val
*, short int))(var3
->class->vft
[COLOR_flow__FlowContext__is_start_61d
]))(var3
, var4
) /* is_start= on <var3:FlowContext>*/;
135 /* method flow#FlowVisitor#init for (self: Object, ToolContext) */
136 void VIRTUAL_flow__FlowVisitor__init(val
* self
, val
* p0
) {
137 flow__FlowVisitor__init(self
, p0
);
140 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
141 val
* flow__FlowVisitor__first(val
* self
) {
142 val
* var
/* : nullable ANode */;
143 val
* var1
/* : nullable ANode */;
144 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dfirst
].val
; /* @first on <self:FlowVisitor> */
149 /* method flow#FlowVisitor#first for (self: Object): nullable ANode */
150 val
* VIRTUAL_flow__FlowVisitor__first(val
* self
) {
151 val
* var
/* : nullable ANode */;
152 val
* var1
/* : nullable ANode */;
153 var1
= flow__FlowVisitor__first(self
);
158 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
159 void flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
160 self
->attrs
[COLOR_flow__FlowVisitor___64dfirst
].val
= p0
; /* @first on <self:FlowVisitor> */
163 /* method flow#FlowVisitor#first= for (self: Object, nullable ANode) */
164 void VIRTUAL_flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
165 flow__FlowVisitor__first_61d(self
, p0
);
168 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
169 void flow__FlowVisitor__visit(val
* self
, val
* p0
) {
170 val
* var_node
/* var node: ANode */;
171 val
* var
/* : nullable ANode */;
172 val
* var1
/* : null */;
173 short int var2
/* : Bool */;
174 val
* var3
/* : FlowContext */;
175 val
* var4
/* : nullable ANode */;
176 val
* var5
/* : null */;
177 short int var6
/* : Bool */;
178 val
* var7
/* : FlowContext */;
179 short int var8
/* : Bool */;
182 val
* var9
/* : FlowContext */;
183 val
* var_flow
/* var flow: FlowContext */;
184 short int var10
/* : Bool */;
185 val
* var11
/* : FlowContext */;
186 short int var12
/* : Bool */;
187 short int var_
/* var : Bool */;
188 val
* var13
/* : FlowContext */;
189 short int var14
/* : Bool */;
190 val
* var15
/* : FlowContext */;
191 val
* var16
/* : FlowContext */;
193 val
* var17
/* : String */;
194 char* var18
/* : NativeString */;
195 long var19
/* : Int */;
196 val
* var20
/* : String */;
197 val
* var21
/* : nullable ANode */;
198 short int var22
/* : Bool */;
200 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first
]))(self
) /* first on <self:FlowVisitor>*/;
203 var2
= 1; /* is null */
205 var2
= 0; /* arg is null but recv is not */
208 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first_61d
]))(self
, var_node
) /* first= on <self:FlowVisitor>*/;
211 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
212 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_flow__FlowContext__node
]))(var3
) /* node on <var3:FlowContext>*/;
215 var6
= 1; /* is null */
217 var6
= 0; /* arg is null but recv is not */
220 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
221 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var7
, var_node
) /* node= on <var7:FlowContext>*/;
224 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_flow__ANode__accept_flow_visitor
]))(var_node
, self
) /* accept_flow_visitor on <var_node:ANode>*/;
225 /* <var_node:ANode> isa AExpr */
226 cltype
= type_parser_nodes__AExpr
.color
;
227 idtype
= type_parser_nodes__AExpr
.id
;
228 if(cltype
>= var_node
->type
->table_size
) {
231 var8
= var_node
->type
->type_table
[cltype
] == idtype
;
234 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
236 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(var_node
, var_flow
) /* after_flow_context= on <var_node:ANode(AExpr)>*/;
237 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_flow
) /* when_true on <var_flow:FlowContext>*/;
238 var12
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var11
, var_flow
) /* != on <var11:FlowContext>*/;
243 var13
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_flow
) /* when_false on <var_flow:FlowContext>*/;
244 var14
= ((short int (*)(val
*, val
*))(var13
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var13
, var_flow
) /* != on <var13:FlowContext>*/;
248 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(self
) /* make_sub_flow on <self:FlowVisitor>*/;
250 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
256 var20
= string__NativeString__to_s_with_length(var18
, var19
);
260 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var16
, var17
) /* name= on <var16:FlowContext>*/;
265 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first
]))(self
) /* first on <self:FlowVisitor>*/;
267 var22
= 0; /* <var_node:ANode> cannot be null */
269 var22
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var_node
) /* == on <var21:nullable ANode>*/;
276 /* method flow#FlowVisitor#visit for (self: Object, ANode) */
277 void VIRTUAL_flow__FlowVisitor__visit(val
* self
, val
* p0
) {
278 flow__FlowVisitor__visit(self
, p0
);
281 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
282 val
* flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
283 val
* var
/* : FlowContext */;
284 val
* var_node
/* var node: AExpr */;
285 val
* var1
/* : nullable FlowContext */;
287 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(self
, var_node
) /* enter_visit on <self:FlowVisitor>*/;
288 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
290 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/flow.nit", 77);
298 /* method flow#FlowVisitor#visit_expr for (self: Object, AExpr): FlowContext */
299 val
* VIRTUAL_flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
300 val
* var
/* : FlowContext */;
301 val
* var1
/* : FlowContext */;
302 var1
= flow__FlowVisitor__visit_expr(self
, p0
);
307 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
308 val
* flow__FlowVisitor__flows(val
* self
) {
309 val
* var
/* : Array[FlowContext] */;
310 val
* var1
/* : Array[FlowContext] */;
311 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dflows
].val
; /* @flows on <self:FlowVisitor> */
313 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @flows", "src/flow.nit", 80);
320 /* method flow#FlowVisitor#flows for (self: Object): Array[FlowContext] */
321 val
* VIRTUAL_flow__FlowVisitor__flows(val
* self
) {
322 val
* var
/* : Array[FlowContext] */;
323 val
* var1
/* : Array[FlowContext] */;
324 var1
= flow__FlowVisitor__flows(self
);
329 /* method flow#FlowVisitor#flows= for (self: FlowVisitor, Array[FlowContext]) */
330 void flow__FlowVisitor__flows_61d(val
* self
, val
* p0
) {
331 self
->attrs
[COLOR_flow__FlowVisitor___64dflows
].val
= p0
; /* @flows on <self:FlowVisitor> */
334 /* method flow#FlowVisitor#flows= for (self: Object, Array[FlowContext]) */
335 void VIRTUAL_flow__FlowVisitor__flows_61d(val
* self
, val
* p0
) {
336 flow__FlowVisitor__flows_61d(self
, p0
);
339 /* method flow#FlowVisitor#printflow for (self: FlowVisitor) */
340 void flow__FlowVisitor__printflow(val
* self
) {
341 val
* var
/* : OFStream */;
343 val
* var1
/* : String */;
344 char* var2
/* : NativeString */;
345 long var3
/* : Int */;
346 val
* var4
/* : String */;
347 val
* var_file
/* var file: OFStream */;
348 static val
* varonce5
;
349 val
* var6
/* : String */;
350 char* var7
/* : NativeString */;
351 long var8
/* : Int */;
352 val
* var9
/* : String */;
353 val
* var10
/* : Array[FlowContext] */;
354 val
* var11
/* : Iterator[nullable Object] */;
355 short int var12
/* : Bool */;
356 val
* var13
/* : nullable Object */;
357 val
* var_f
/* var f: FlowContext */;
358 static val
* varonce14
;
359 val
* var15
/* : String */;
360 char* var16
/* : NativeString */;
361 long var17
/* : Int */;
362 val
* var18
/* : String */;
363 val
* var_s
/* var s: String */;
364 val
* var19
/* : nullable ANode */;
365 short int var20
/* : Bool */;
368 val
* var21
/* : Array[Object] */;
369 long var22
/* : Int */;
370 val
* var_
/* var : Array[Object] */;
371 static val
* varonce23
;
372 val
* var24
/* : String */;
373 char* var25
/* : NativeString */;
374 long var26
/* : Int */;
375 val
* var27
/* : String */;
376 val
* var28
/* : nullable ANode */;
377 short int var29
/* : Bool */;
380 val
* var32
/* : nullable FlowContext */;
381 long var33
/* : Int */;
382 val
* var34
/* : nullable Object */;
383 static val
* varonce35
;
384 val
* var36
/* : String */;
385 char* var37
/* : NativeString */;
386 long var38
/* : Int */;
387 val
* var39
/* : String */;
388 val
* var40
/* : String */;
389 static val
* varonce41
;
390 val
* var42
/* : String */;
391 char* var43
/* : NativeString */;
392 long var44
/* : Int */;
393 val
* var45
/* : String */;
394 long var46
/* : Int */;
395 static val
* varonce47
;
396 val
* var48
/* : String */;
397 char* var49
/* : NativeString */;
398 long var50
/* : Int */;
399 val
* var51
/* : String */;
400 long var52
/* : Int */;
401 static val
* varonce53
;
402 val
* var54
/* : String */;
403 char* var55
/* : NativeString */;
404 long var56
/* : Int */;
405 val
* var57
/* : String */;
406 val
* var58
/* : nullable ANode */;
407 val
* var59
/* : Location */;
408 static val
* varonce60
;
409 val
* var61
/* : String */;
410 char* var62
/* : NativeString */;
411 long var63
/* : Int */;
412 val
* var64
/* : String */;
413 val
* var65
/* : nullable ANode */;
414 val
* var66
/* : String */;
415 static val
* varonce67
;
416 val
* var68
/* : String */;
417 char* var69
/* : NativeString */;
418 long var70
/* : Int */;
419 val
* var71
/* : String */;
420 val
* var72
/* : String */;
421 static val
* varonce73
;
422 val
* var74
/* : String */;
423 char* var75
/* : NativeString */;
424 long var76
/* : Int */;
425 val
* var77
/* : String */;
426 val
* var78
/* : Array[Object] */;
427 long var79
/* : Int */;
428 val
* var80
/* : NativeArray[Object] */;
429 val
* var81
/* : Object */;
430 val
* var82
/* : Object */;
431 val
* var83
/* : String */;
432 val
* var84
/* : Array[FlowContext] */;
433 val
* var85
/* : Iterator[nullable Object] */;
434 short int var86
/* : Bool */;
435 val
* var87
/* : nullable Object */;
436 val
* var_p
/* var p: FlowContext */;
437 static val
* varonce88
;
438 val
* var89
/* : String */;
439 char* var90
/* : NativeString */;
440 long var91
/* : Int */;
441 val
* var92
/* : String */;
442 long var93
/* : Int */;
443 static val
* varonce94
;
444 val
* var95
/* : String */;
445 char* var96
/* : NativeString */;
446 long var97
/* : Int */;
447 val
* var98
/* : String */;
448 long var99
/* : Int */;
449 static val
* varonce100
;
450 val
* var101
/* : String */;
451 char* var102
/* : NativeString */;
452 long var103
/* : Int */;
453 val
* var104
/* : String */;
454 val
* var105
/* : Array[Object] */;
455 long var106
/* : Int */;
456 val
* var107
/* : NativeArray[Object] */;
457 val
* var108
/* : Object */;
458 val
* var109
/* : Object */;
459 val
* var110
/* : String */;
460 val
* var111
/* : FlowContext */;
461 short int var112
/* : Bool */;
462 static val
* varonce113
;
463 val
* var114
/* : String */;
464 char* var115
/* : NativeString */;
465 long var116
/* : Int */;
466 val
* var117
/* : String */;
467 long var118
/* : Int */;
468 static val
* varonce119
;
469 val
* var120
/* : String */;
470 char* var121
/* : NativeString */;
471 long var122
/* : Int */;
472 val
* var123
/* : String */;
473 val
* var124
/* : FlowContext */;
474 long var125
/* : Int */;
475 static val
* varonce126
;
476 val
* var127
/* : String */;
477 char* var128
/* : NativeString */;
478 long var129
/* : Int */;
479 val
* var130
/* : String */;
480 val
* var131
/* : Array[Object] */;
481 long var132
/* : Int */;
482 val
* var133
/* : NativeArray[Object] */;
483 val
* var134
/* : Object */;
484 val
* var135
/* : Object */;
485 val
* var136
/* : String */;
486 val
* var137
/* : FlowContext */;
487 short int var138
/* : Bool */;
488 static val
* varonce139
;
489 val
* var140
/* : String */;
490 char* var141
/* : NativeString */;
491 long var142
/* : Int */;
492 val
* var143
/* : String */;
493 long var144
/* : Int */;
494 static val
* varonce145
;
495 val
* var146
/* : String */;
496 char* var147
/* : NativeString */;
497 long var148
/* : Int */;
498 val
* var149
/* : String */;
499 val
* var150
/* : FlowContext */;
500 long var151
/* : Int */;
501 static val
* varonce152
;
502 val
* var153
/* : String */;
503 char* var154
/* : NativeString */;
504 long var155
/* : Int */;
505 val
* var156
/* : String */;
506 val
* var157
/* : Array[Object] */;
507 long var158
/* : Int */;
508 val
* var159
/* : NativeArray[Object] */;
509 val
* var160
/* : Object */;
510 val
* var161
/* : Object */;
511 val
* var162
/* : String */;
512 static val
* varonce164
;
513 val
* var165
/* : String */;
514 char* var166
/* : NativeString */;
515 long var167
/* : Int */;
516 val
* var168
/* : String */;
517 var
= NEW_file__OFStream(&type_file__OFStream
);
523 var4
= string__NativeString__to_s_with_length(var2
, var3
);
527 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_file__OFStream__open
]))(var
, var1
) /* open on <var:OFStream>*/;
528 CHECK_NEW_file__OFStream(var
);
533 var7
= "digraph {\n";
535 var9
= string__NativeString__to_s_with_length(var7
, var8
);
539 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var6
) /* write on <var_file:OFStream>*/;
540 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
541 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[FlowContext]>*/;
543 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
545 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
552 var18
= string__NativeString__to_s_with_length(var16
, var17
);
557 var19
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
558 /* <var19:nullable ANode> isa AExpr */
559 cltype
= type_parser_nodes__AExpr
.color
;
560 idtype
= type_parser_nodes__AExpr
.id
;
564 if(cltype
>= var19
->type
->table_size
) {
567 var20
= var19
->type
->type_table
[cltype
] == idtype
;
571 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
573 ((void (*)(val
*, long))(var21
->class->vft
[COLOR_array__Array__with_capacity
]))(var21
, var22
) /* with_capacity on <var21:Array[Object]>*/;
574 CHECK_NEW_array__Array(var21
);
581 var27
= string__NativeString__to_s_with_length(var25
, var26
);
585 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var24
) /* add on <var_:Array[Object]>*/;
586 var28
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
587 /* <var28:nullable ANode> isa AExpr */
588 cltype30
= type_parser_nodes__AExpr
.color
;
589 idtype31
= type_parser_nodes__AExpr
.id
;
593 if(cltype30
>= var28
->type
->table_size
) {
596 var29
= var28
->type
->type_table
[cltype30
] == idtype31
;
600 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/flow.nit", 89);
603 var32
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var28
) /* after_flow_context on <var28:nullable ANode(AExpr)>*/;
605 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/flow.nit", 89);
608 var33
= ((long (*)(val
*))(var32
->class->vft
[COLOR_kernel__Object__object_id
]))(var32
) /* object_id on <var32:nullable FlowContext>*/;
610 var34
= BOX_kernel__Int(var33
); /* autobox from Int to nullable Object */
611 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var34
) /* add on <var_:Array[Object]>*/;
617 var39
= string__NativeString__to_s_with_length(var37
, var38
);
621 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var36
) /* add on <var_:Array[Object]>*/;
622 var40
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
631 var45
= string__NativeString__to_s_with_length(var43
, var44
);
635 var46
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
639 var49
= " [label=\"";
641 var51
= string__NativeString__to_s_with_length(var49
, var50
);
645 var52
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
651 var57
= string__NativeString__to_s_with_length(var55
, var56
);
655 var58
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
657 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/flow.nit", 91);
660 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var58
) /* location on <var58:nullable ANode>*/;
667 var64
= string__NativeString__to_s_with_length(var62
, var63
);
671 var65
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
673 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/flow.nit", 91);
676 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__class_name
]))(var65
) /* class_name on <var65:nullable ANode>*/;
683 var71
= string__NativeString__to_s_with_length(var69
, var70
);
687 var72
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__name
]))(var_f
) /* name on <var_f:FlowContext>*/;
693 var77
= string__NativeString__to_s_with_length(var75
, var76
);
697 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
698 { /* var78 = array_instance Array[Object] */
700 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
701 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var42
;
702 var81
= BOX_kernel__Int(var46
); /* autobox from Int to Object */
703 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var81
;
704 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var48
;
705 var82
= BOX_kernel__Int(var52
); /* autobox from Int to Object */
706 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var82
;
707 ((struct instance_array__NativeArray
*)var80
)->values
[4] = (val
*) var54
;
708 ((struct instance_array__NativeArray
*)var80
)->values
[5] = (val
*) var59
;
709 ((struct instance_array__NativeArray
*)var80
)->values
[6] = (val
*) var61
;
710 ((struct instance_array__NativeArray
*)var80
)->values
[7] = (val
*) var66
;
711 ((struct instance_array__NativeArray
*)var80
)->values
[8] = (val
*) var68
;
712 ((struct instance_array__NativeArray
*)var80
)->values
[9] = (val
*) var72
;
713 ((struct instance_array__NativeArray
*)var80
)->values
[10] = (val
*) var_s
;
714 ((struct instance_array__NativeArray
*)var80
)->values
[11] = (val
*) var74
;
715 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
716 CHECK_NEW_array__Array(var78
);
718 var83
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
719 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var83
) /* write on <var_file:OFStream>*/;
720 var84
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_f
) /* previous on <var_f:FlowContext>*/;
721 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var84
) /* iterator on <var84:Array[FlowContext]>*/;
723 var86
= ((short int (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var85
) /* is_ok on <var85:Iterator[nullable Object]>*/;
725 var87
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var85
) /* item on <var85:Iterator[nullable Object]>*/;
732 var92
= string__NativeString__to_s_with_length(var90
, var91
);
736 var93
= ((long (*)(val
*))(var_p
->class->vft
[COLOR_kernel__Object__object_id
]))(var_p
) /* object_id on <var_p:FlowContext>*/;
742 var98
= string__NativeString__to_s_with_length(var96
, var97
);
746 var99
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
752 var104
= string__NativeString__to_s_with_length(var102
, var103
);
756 var105
= NEW_array__Array(&type_array__Arraykernel__Object
);
757 { /* var105 = array_instance Array[Object] */
759 var107
= NEW_array__NativeArray(var106
, &type_array__NativeArraykernel__Object
);
760 ((struct instance_array__NativeArray
*)var107
)->values
[0] = (val
*) var89
;
761 var108
= BOX_kernel__Int(var93
); /* autobox from Int to Object */
762 ((struct instance_array__NativeArray
*)var107
)->values
[1] = (val
*) var108
;
763 ((struct instance_array__NativeArray
*)var107
)->values
[2] = (val
*) var95
;
764 var109
= BOX_kernel__Int(var99
); /* autobox from Int to Object */
765 ((struct instance_array__NativeArray
*)var107
)->values
[3] = (val
*) var109
;
766 ((struct instance_array__NativeArray
*)var107
)->values
[4] = (val
*) var101
;
767 ((void (*)(val
*, val
*, long))(var105
->class->vft
[COLOR_array__Array__with_native
]))(var105
, var107
, var106
) /* with_native on <var105:Array[Object]>*/;
768 CHECK_NEW_array__Array(var105
);
770 var110
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_string__Object__to_s
]))(var105
) /* to_s on <var105:Array[Object]>*/;
771 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var110
) /* write on <var_file:OFStream>*/;
772 CONTINUE_label
: (void)0;
773 ((void (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var85
) /* next on <var85:Iterator[nullable Object]>*/;
775 BREAK_label
: (void)0;
776 var111
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_f
) /* when_true on <var_f:FlowContext>*/;
777 var112
= ((short int (*)(val
*, val
*))(var111
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var111
, var_f
) /* != on <var111:FlowContext>*/;
784 var117
= string__NativeString__to_s_with_length(var115
, var116
);
788 var118
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
794 var123
= string__NativeString__to_s_with_length(var121
, var122
);
798 var124
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_f
) /* when_true on <var_f:FlowContext>*/;
799 var125
= ((long (*)(val
*))(var124
->class->vft
[COLOR_kernel__Object__object_id
]))(var124
) /* object_id on <var124:FlowContext>*/;
803 var128
= "[label=TRUE, style=dotted];\n";
805 var130
= string__NativeString__to_s_with_length(var128
, var129
);
809 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
810 { /* var131 = array_instance Array[Object] */
812 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
813 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var114
;
814 var134
= BOX_kernel__Int(var118
); /* autobox from Int to Object */
815 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var134
;
816 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var120
;
817 var135
= BOX_kernel__Int(var125
); /* autobox from Int to Object */
818 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var135
;
819 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var127
;
820 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
821 CHECK_NEW_array__Array(var131
);
823 var136
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
824 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var136
) /* write on <var_file:OFStream>*/;
827 var137
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_f
) /* when_false on <var_f:FlowContext>*/;
828 var138
= ((short int (*)(val
*, val
*))(var137
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var137
, var_f
) /* != on <var137:FlowContext>*/;
835 var143
= string__NativeString__to_s_with_length(var141
, var142
);
839 var144
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
845 var149
= string__NativeString__to_s_with_length(var147
, var148
);
849 var150
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_f
) /* when_false on <var_f:FlowContext>*/;
850 var151
= ((long (*)(val
*))(var150
->class->vft
[COLOR_kernel__Object__object_id
]))(var150
) /* object_id on <var150:FlowContext>*/;
854 var154
= "[label=FALSE,style=dotted];\n";
856 var156
= string__NativeString__to_s_with_length(var154
, var155
);
860 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
861 { /* var157 = array_instance Array[Object] */
863 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
864 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var140
;
865 var160
= BOX_kernel__Int(var144
); /* autobox from Int to Object */
866 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var160
;
867 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var146
;
868 var161
= BOX_kernel__Int(var151
); /* autobox from Int to Object */
869 ((struct instance_array__NativeArray
*)var159
)->values
[3] = (val
*) var161
;
870 ((struct instance_array__NativeArray
*)var159
)->values
[4] = (val
*) var153
;
871 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
872 CHECK_NEW_array__Array(var157
);
874 var162
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
875 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var162
) /* write on <var_file:OFStream>*/;
878 CONTINUE_label163
: (void)0;
879 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
881 BREAK_label163
: (void)0;
887 var168
= string__NativeString__to_s_with_length(var166
, var167
);
891 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var165
) /* write on <var_file:OFStream>*/;
892 ((void (*)(val
*))(var_file
->class->vft
[COLOR_stream__IOS__close
]))(var_file
) /* close on <var_file:OFStream>*/;
895 /* method flow#FlowVisitor#printflow for (self: Object) */
896 void VIRTUAL_flow__FlowVisitor__printflow(val
* self
) {
897 flow__FlowVisitor__printflow(self
);
900 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
901 val
* flow__FlowVisitor__make_sub_flow(val
* self
) {
902 val
* var
/* : FlowContext */;
903 val
* var1
/* : FlowContext */;
904 val
* var_flow
/* var flow: FlowContext */;
905 val
* var2
/* : Array[FlowContext] */;
906 val
* var3
/* : nullable ANode */;
907 val
* var4
/* : FlowContext */;
908 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
909 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
910 CHECK_NEW_flow__FlowContext(var1
);
912 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
913 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
914 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
915 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
916 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
917 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var4
) /* add_previous on <var_flow:FlowContext>*/;
918 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
924 /* method flow#FlowVisitor#make_sub_flow for (self: Object): FlowContext */
925 val
* VIRTUAL_flow__FlowVisitor__make_sub_flow(val
* self
) {
926 val
* var
/* : FlowContext */;
927 val
* var1
/* : FlowContext */;
928 var1
= flow__FlowVisitor__make_sub_flow(self
);
933 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
934 val
* flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
935 val
* var
/* : FlowContext */;
936 val
* var_flow1
/* var flow1: FlowContext */;
937 val
* var_flow2
/* var flow2: FlowContext */;
938 val
* var1
/* : FlowContext */;
939 val
* var_flow
/* var flow: FlowContext */;
940 val
* var2
/* : Array[FlowContext] */;
941 val
* var3
/* : nullable ANode */;
944 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
945 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
946 CHECK_NEW_flow__FlowContext(var1
);
948 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
949 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
950 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
951 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
952 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_flow1
) /* add_previous on <var_flow:FlowContext>*/;
953 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_flow2
) /* add_previous on <var_flow:FlowContext>*/;
954 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
960 /* method flow#FlowVisitor#make_merge_flow for (self: Object, FlowContext, FlowContext): FlowContext */
961 val
* VIRTUAL_flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
962 val
* var
/* : FlowContext */;
963 val
* var1
/* : FlowContext */;
964 var1
= flow__FlowVisitor__make_merge_flow(self
, p0
, p1
);
969 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
970 val
* flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
971 val
* var
/* : FlowContext */;
972 val
* var_true_flow
/* var true_flow: FlowContext */;
973 val
* var_false_flow
/* var false_flow: FlowContext */;
974 val
* var1
/* : FlowContext */;
975 val
* var_flow
/* var flow: FlowContext */;
976 val
* var2
/* : Array[FlowContext] */;
977 val
* var3
/* : nullable ANode */;
980 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
981 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
982 CHECK_NEW_flow__FlowContext(var1
);
984 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
985 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
986 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
987 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
988 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_true_flow
) /* add_previous on <var_flow:FlowContext>*/;
989 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_false_flow
) /* add_previous on <var_flow:FlowContext>*/;
990 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_true_61d
]))(var_flow
, var_true_flow
) /* when_true= on <var_flow:FlowContext>*/;
991 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_false_61d
]))(var_flow
, var_false_flow
) /* when_false= on <var_flow:FlowContext>*/;
992 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
998 /* method flow#FlowVisitor#make_true_false_flow for (self: Object, FlowContext, FlowContext): FlowContext */
999 val
* VIRTUAL_flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
1000 val
* var
/* : FlowContext */;
1001 val
* var1
/* : FlowContext */;
1002 var1
= flow__FlowVisitor__make_true_false_flow(self
, p0
, p1
);
1007 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
1008 val
* flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1009 val
* var
/* : FlowContext */;
1010 val
* var1
/* : FlowContext */;
1011 val
* var_orig_flow
/* var orig_flow: FlowContext */;
1012 val
* var2
/* : FlowContext */;
1013 val
* var_true_flow
/* var true_flow: FlowContext */;
1014 val
* var3
/* : Array[FlowContext] */;
1015 val
* var4
/* : nullable ANode */;
1016 static val
* varonce
;
1017 val
* var5
/* : String */;
1018 char* var6
/* : NativeString */;
1019 long var7
/* : Int */;
1020 val
* var8
/* : String */;
1021 val
* var9
/* : FlowContext */;
1022 val
* var_false_flow
/* var false_flow: FlowContext */;
1023 val
* var10
/* : Array[FlowContext] */;
1024 val
* var11
/* : nullable ANode */;
1025 static val
* varonce12
;
1026 val
* var13
/* : String */;
1027 char* var14
/* : NativeString */;
1028 long var15
/* : Int */;
1029 val
* var16
/* : String */;
1030 val
* var17
/* : FlowContext */;
1031 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1032 var_orig_flow
= var1
;
1033 var2
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1034 ((void (*)(val
*))(var2
->class->vft
[COLOR_flow__FlowContext__init
]))(var2
) /* init on <var2:FlowContext>*/;
1035 CHECK_NEW_flow__FlowContext(var2
);
1036 var_true_flow
= var2
;
1037 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1038 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_true_flow
) /* add on <var3:Array[FlowContext]>*/;
1039 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1040 ((void (*)(val
*, val
*))(var_true_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_true_flow
, var4
) /* node= on <var_true_flow:FlowContext>*/;
1041 ((void (*)(val
*, val
*))(var_true_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_true_flow
, var_orig_flow
) /* add_previous on <var_true_flow:FlowContext>*/;
1047 var8
= string__NativeString__to_s_with_length(var6
, var7
);
1051 ((void (*)(val
*, val
*))(var_true_flow
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_true_flow
, var5
) /* name= on <var_true_flow:FlowContext>*/;
1052 var9
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1053 ((void (*)(val
*))(var9
->class->vft
[COLOR_flow__FlowContext__init
]))(var9
) /* init on <var9:FlowContext>*/;
1054 CHECK_NEW_flow__FlowContext(var9
);
1055 var_false_flow
= var9
;
1056 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1057 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var10
, var_false_flow
) /* add on <var10:Array[FlowContext]>*/;
1058 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1059 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_false_flow
, var11
) /* node= on <var_false_flow:FlowContext>*/;
1060 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_false_flow
, var_orig_flow
) /* add_previous on <var_false_flow:FlowContext>*/;
1066 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1070 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_false_flow
, var13
) /* name= on <var_false_flow:FlowContext>*/;
1071 var17
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_true_false_flow
]))(self
, var_true_flow
, var_false_flow
) /* make_true_false_flow on <self:FlowVisitor>*/;
1077 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: Object): FlowContext */
1078 val
* VIRTUAL_flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1079 val
* var
/* : FlowContext */;
1080 val
* var1
/* : FlowContext */;
1081 var1
= flow__FlowVisitor__make_sub_true_false_flow(self
);
1086 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
1087 val
* flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1088 val
* var
/* : FlowContext */;
1089 val
* var1
/* : FlowContext */;
1090 val
* var_flow
/* var flow: FlowContext */;
1091 val
* var2
/* : Array[FlowContext] */;
1092 val
* var3
/* : nullable ANode */;
1093 val
* var4
/* : FlowContext */;
1094 short int var5
/* : Bool */;
1095 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1096 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
1097 CHECK_NEW_flow__FlowContext(var1
);
1099 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1100 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
1101 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1102 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
1103 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1104 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var4
) /* add_previous on <var_flow:FlowContext>*/;
1106 ((void (*)(val
*, short int))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_marked_unreachable_61d
]))(var_flow
, var5
) /* is_marked_unreachable= on <var_flow:FlowContext>*/;
1107 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
1113 /* method flow#FlowVisitor#make_unreachable_flow for (self: Object): FlowContext */
1114 val
* VIRTUAL_flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1115 val
* var
/* : FlowContext */;
1116 val
* var1
/* : FlowContext */;
1117 var1
= flow__FlowVisitor__make_unreachable_flow(self
);
1122 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
1123 void flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1124 val
* var_before_loop
/* var before_loop: FlowContext */;
1125 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1126 val
* var
/* : null */;
1127 short int var1
/* : Bool */;
1128 val
* var2
/* : Array[AContinueExpr] */;
1129 val
* var3
/* : Iterator[nullable Object] */;
1130 short int var4
/* : Bool */;
1131 val
* var5
/* : nullable Object */;
1132 val
* var_b
/* var b: AContinueExpr */;
1133 val
* var6
/* : nullable FlowContext */;
1134 val
* var_before
/* var before: nullable FlowContext */;
1135 val
* var7
/* : null */;
1136 short int var8
/* : Bool */;
1137 var_before_loop
= p0
;
1138 var_escapemark
= p1
;
1140 if (var_escapemark
== NULL
) {
1141 var1
= 1; /* is null */
1143 var1
= 0; /* arg is null but recv is not */
1149 var2
= ((val
* (*)(val
*))(var_escapemark
->class->vft
[COLOR_scope__EscapeMark__continues
]))(var_escapemark
) /* continues on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1150 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[AContinueExpr]>*/;
1152 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1154 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1156 var6
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_flow__AContinueExpr__before_flow_context
]))(var_b
) /* before_flow_context on <var_b:AContinueExpr>*/;
1159 if (var_before
== NULL
) {
1160 var8
= 1; /* is null */
1162 var8
= 0; /* arg is null but recv is not */
1165 goto CONTINUE_label
;
1168 ((void (*)(val
*, val
*))(var_before_loop
->class->vft
[COLOR_flow__FlowContext__add_loop
]))(var_before_loop
, var_before
) /* add_loop on <var_before_loop:FlowContext>*/;
1169 CONTINUE_label
: (void)0;
1170 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1172 BREAK_label
: (void)0;
1175 /* method flow#FlowVisitor#merge_continues_to for (self: Object, FlowContext, nullable EscapeMark) */
1176 void VIRTUAL_flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1177 flow__FlowVisitor__merge_continues_to(self
, p0
, p1
);
1180 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1181 void flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1182 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1183 val
* var
/* : null */;
1184 short int var1
/* : Bool */;
1185 val
* var2
/* : Array[ABreakExpr] */;
1186 val
* var3
/* : Iterator[nullable Object] */;
1187 short int var4
/* : Bool */;
1188 val
* var5
/* : nullable Object */;
1189 val
* var_b
/* var b: ABreakExpr */;
1190 val
* var6
/* : nullable FlowContext */;
1191 val
* var_before
/* var before: nullable FlowContext */;
1192 val
* var7
/* : null */;
1193 short int var8
/* : Bool */;
1194 val
* var9
/* : FlowContext */;
1195 val
* var10
/* : FlowContext */;
1196 var_escapemark
= p0
;
1198 if (var_escapemark
== NULL
) {
1199 var1
= 1; /* is null */
1201 var1
= 0; /* arg is null but recv is not */
1207 var2
= ((val
* (*)(val
*))(var_escapemark
->class->vft
[COLOR_scope__EscapeMark__breaks
]))(var_escapemark
) /* breaks on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1208 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[ABreakExpr]>*/;
1210 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1212 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1214 var6
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_flow__ABreakExpr__before_flow_context
]))(var_b
) /* before_flow_context on <var_b:ABreakExpr>*/;
1217 if (var_before
== NULL
) {
1218 var8
= 1; /* is null */
1220 var8
= 0; /* arg is null but recv is not */
1223 goto CONTINUE_label
;
1226 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1227 var10
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(self
, var9
, var_before
) /* make_merge_flow on <self:FlowVisitor>*/;
1229 CONTINUE_label
: (void)0;
1230 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1232 BREAK_label
: (void)0;
1235 /* method flow#FlowVisitor#merge_breaks for (self: Object, nullable EscapeMark) */
1236 void VIRTUAL_flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1237 flow__FlowVisitor__merge_breaks(self
, p0
);
1240 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1241 val
* flow__FlowContext__previous(val
* self
) {
1242 val
* var
/* : Array[FlowContext] */;
1243 val
* var1
/* : Array[FlowContext] */;
1244 var1
= self
->attrs
[COLOR_flow__FlowContext___64dprevious
].val
; /* @previous on <self:FlowContext> */
1246 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @previous", "src/flow.nit", 192);
1253 /* method flow#FlowContext#previous for (self: Object): Array[FlowContext] */
1254 val
* VIRTUAL_flow__FlowContext__previous(val
* self
) {
1255 val
* var
/* : Array[FlowContext] */;
1256 val
* var1
/* : Array[FlowContext] */;
1257 var1
= flow__FlowContext__previous(self
);
1262 /* method flow#FlowContext#previous= for (self: FlowContext, Array[FlowContext]) */
1263 void flow__FlowContext__previous_61d(val
* self
, val
* p0
) {
1264 self
->attrs
[COLOR_flow__FlowContext___64dprevious
].val
= p0
; /* @previous on <self:FlowContext> */
1267 /* method flow#FlowContext#previous= for (self: Object, Array[FlowContext]) */
1268 void VIRTUAL_flow__FlowContext__previous_61d(val
* self
, val
* p0
) {
1269 flow__FlowContext__previous_61d(self
, p0
);
1272 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1273 val
* flow__FlowContext__loops(val
* self
) {
1274 val
* var
/* : Array[FlowContext] */;
1275 val
* var1
/* : Array[FlowContext] */;
1276 var1
= self
->attrs
[COLOR_flow__FlowContext___64dloops
].val
; /* @loops on <self:FlowContext> */
1278 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @loops", "src/flow.nit", 195);
1285 /* method flow#FlowContext#loops for (self: Object): Array[FlowContext] */
1286 val
* VIRTUAL_flow__FlowContext__loops(val
* self
) {
1287 val
* var
/* : Array[FlowContext] */;
1288 val
* var1
/* : Array[FlowContext] */;
1289 var1
= flow__FlowContext__loops(self
);
1294 /* method flow#FlowContext#loops= for (self: FlowContext, Array[FlowContext]) */
1295 void flow__FlowContext__loops_61d(val
* self
, val
* p0
) {
1296 self
->attrs
[COLOR_flow__FlowContext___64dloops
].val
= p0
; /* @loops on <self:FlowContext> */
1299 /* method flow#FlowContext#loops= for (self: Object, Array[FlowContext]) */
1300 void VIRTUAL_flow__FlowContext__loops_61d(val
* self
, val
* p0
) {
1301 flow__FlowContext__loops_61d(self
, p0
);
1304 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1305 short int flow__FlowContext__is_marked_unreachable(val
* self
) {
1306 short int var
/* : Bool */;
1307 short int var1
/* : Bool */;
1308 var1
= self
->attrs
[COLOR_flow__FlowContext___64dis_marked_unreachable
].s
; /* @is_marked_unreachable on <self:FlowContext> */
1313 /* method flow#FlowContext#is_marked_unreachable for (self: Object): Bool */
1314 short int VIRTUAL_flow__FlowContext__is_marked_unreachable(val
* self
) {
1315 short int var
/* : Bool */;
1316 short int var1
/* : Bool */;
1317 var1
= flow__FlowContext__is_marked_unreachable(self
);
1322 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1323 void flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1324 self
->attrs
[COLOR_flow__FlowContext___64dis_marked_unreachable
].s
= p0
; /* @is_marked_unreachable on <self:FlowContext> */
1327 /* method flow#FlowContext#is_marked_unreachable= for (self: Object, Bool) */
1328 void VIRTUAL_flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1329 flow__FlowContext__is_marked_unreachable_61d(self
, p0
);
1332 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1333 short int flow__FlowContext__is_unreachable(val
* self
) {
1334 short int var
/* : Bool */;
1335 short int var1
/* : Bool */;
1336 short int var2
/* : Bool */;
1337 short int var3
/* : Bool */;
1338 short int var4
/* : Bool */;
1339 val
* var5
/* : Array[FlowContext] */;
1340 long var6
/* : Int */;
1341 long var7
/* : Int */;
1342 short int var8
/* : Bool */;
1343 short int var10
/* : Bool */;
1344 short int var11
/* : Bool */;
1345 short int var12
/* : Bool */;
1346 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__is_marked_unreachable
]))(self
) /* is_marked_unreachable on <self:FlowContext>*/;
1353 var3
= ((short int (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__is_start
]))(self
) /* is_start on <self:FlowContext>*/;
1360 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1361 var6
= ((long (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var5
) /* length on <var5:Array[FlowContext]>*/;
1363 { /* Inline kernel#Int#== (var6,var7) */
1364 var10
= var6
== var7
;
1381 /* method flow#FlowContext#is_unreachable for (self: Object): Bool */
1382 short int VIRTUAL_flow__FlowContext__is_unreachable(val
* self
) {
1383 short int var
/* : Bool */;
1384 short int var1
/* : Bool */;
1385 var1
= flow__FlowContext__is_unreachable(self
);
1390 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1391 short int flow__FlowContext__is_already_unreachable(val
* self
) {
1392 short int var
/* : Bool */;
1393 short int var1
/* : Bool */;
1394 var1
= self
->attrs
[COLOR_flow__FlowContext___64dis_already_unreachable
].s
; /* @is_already_unreachable on <self:FlowContext> */
1399 /* method flow#FlowContext#is_already_unreachable for (self: Object): Bool */
1400 short int VIRTUAL_flow__FlowContext__is_already_unreachable(val
* self
) {
1401 short int var
/* : Bool */;
1402 short int var1
/* : Bool */;
1403 var1
= flow__FlowContext__is_already_unreachable(self
);
1408 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1409 void flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1410 self
->attrs
[COLOR_flow__FlowContext___64dis_already_unreachable
].s
= p0
; /* @is_already_unreachable on <self:FlowContext> */
1413 /* method flow#FlowContext#is_already_unreachable= for (self: Object, Bool) */
1414 void VIRTUAL_flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1415 flow__FlowContext__is_already_unreachable_61d(self
, p0
);
1418 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1419 short int flow__FlowContext__is_start(val
* self
) {
1420 short int var
/* : Bool */;
1421 short int var1
/* : Bool */;
1422 var1
= self
->attrs
[COLOR_flow__FlowContext___64dis_start
].s
; /* @is_start on <self:FlowContext> */
1427 /* method flow#FlowContext#is_start for (self: Object): Bool */
1428 short int VIRTUAL_flow__FlowContext__is_start(val
* self
) {
1429 short int var
/* : Bool */;
1430 short int var1
/* : Bool */;
1431 var1
= flow__FlowContext__is_start(self
);
1436 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1437 void flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1438 self
->attrs
[COLOR_flow__FlowContext___64dis_start
].s
= p0
; /* @is_start on <self:FlowContext> */
1441 /* method flow#FlowContext#is_start= for (self: Object, Bool) */
1442 void VIRTUAL_flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1443 flow__FlowContext__is_start_61d(self
, p0
);
1446 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1447 val
* flow__FlowContext__node(val
* self
) {
1448 val
* var
/* : nullable ANode */;
1449 val
* var1
/* : nullable ANode */;
1450 var1
= self
->attrs
[COLOR_flow__FlowContext___64dnode
].val
; /* @node on <self:FlowContext> */
1455 /* method flow#FlowContext#node for (self: Object): nullable ANode */
1456 val
* VIRTUAL_flow__FlowContext__node(val
* self
) {
1457 val
* var
/* : nullable ANode */;
1458 val
* var1
/* : nullable ANode */;
1459 var1
= flow__FlowContext__node(self
);
1464 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1465 void flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1466 self
->attrs
[COLOR_flow__FlowContext___64dnode
].val
= p0
; /* @node on <self:FlowContext> */
1469 /* method flow#FlowContext#node= for (self: Object, nullable ANode) */
1470 void VIRTUAL_flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1471 flow__FlowContext__node_61d(self
, p0
);
1474 /* method flow#FlowContext#name for (self: FlowContext): String */
1475 val
* flow__FlowContext__name(val
* self
) {
1476 val
* var
/* : String */;
1477 val
* var1
/* : String */;
1478 var1
= self
->attrs
[COLOR_flow__FlowContext___64dname
].val
; /* @name on <self:FlowContext> */
1480 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/flow.nit", 225);
1487 /* method flow#FlowContext#name for (self: Object): String */
1488 val
* VIRTUAL_flow__FlowContext__name(val
* self
) {
1489 val
* var
/* : String */;
1490 val
* var1
/* : String */;
1491 var1
= flow__FlowContext__name(self
);
1496 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1497 void flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1498 self
->attrs
[COLOR_flow__FlowContext___64dname
].val
= p0
; /* @name on <self:FlowContext> */
1501 /* method flow#FlowContext#name= for (self: Object, String) */
1502 void VIRTUAL_flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1503 flow__FlowContext__name_61d(self
, p0
);
1506 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1507 val
* flow__FlowContext__when_true(val
* self
) {
1508 val
* var
/* : FlowContext */;
1509 val
* var1
/* : FlowContext */;
1510 var1
= self
->attrs
[COLOR_flow__FlowContext___64dwhen_true
].val
; /* @when_true on <self:FlowContext> */
1512 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @when_true", "src/flow.nit", 228);
1519 /* method flow#FlowContext#when_true for (self: Object): FlowContext */
1520 val
* VIRTUAL_flow__FlowContext__when_true(val
* self
) {
1521 val
* var
/* : FlowContext */;
1522 val
* var1
/* : FlowContext */;
1523 var1
= flow__FlowContext__when_true(self
);
1528 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1529 void flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1530 self
->attrs
[COLOR_flow__FlowContext___64dwhen_true
].val
= p0
; /* @when_true on <self:FlowContext> */
1533 /* method flow#FlowContext#when_true= for (self: Object, FlowContext) */
1534 void VIRTUAL_flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1535 flow__FlowContext__when_true_61d(self
, p0
);
1538 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1539 val
* flow__FlowContext__when_false(val
* self
) {
1540 val
* var
/* : FlowContext */;
1541 val
* var1
/* : FlowContext */;
1542 var1
= self
->attrs
[COLOR_flow__FlowContext___64dwhen_false
].val
; /* @when_false on <self:FlowContext> */
1544 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @when_false", "src/flow.nit", 231);
1551 /* method flow#FlowContext#when_false for (self: Object): FlowContext */
1552 val
* VIRTUAL_flow__FlowContext__when_false(val
* self
) {
1553 val
* var
/* : FlowContext */;
1554 val
* var1
/* : FlowContext */;
1555 var1
= flow__FlowContext__when_false(self
);
1560 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1561 void flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1562 self
->attrs
[COLOR_flow__FlowContext___64dwhen_false
].val
= p0
; /* @when_false on <self:FlowContext> */
1565 /* method flow#FlowContext#when_false= for (self: Object, FlowContext) */
1566 void VIRTUAL_flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1567 flow__FlowContext__when_false_61d(self
, p0
);
1570 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1571 void flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1572 val
* var_flow
/* var flow: FlowContext */;
1573 short int var
/* : Bool */;
1574 short int var1
/* : Bool */;
1575 short int var2
/* : Bool */;
1576 short int var_
/* var : Bool */;
1577 val
* var3
/* : Array[FlowContext] */;
1578 short int var4
/* : Bool */;
1579 short int var5
/* : Bool */;
1580 val
* var6
/* : Array[FlowContext] */;
1582 var1
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
1586 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1587 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_flow
) /* has on <var3:Array[FlowContext]>*/;
1594 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1595 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_flow
) /* add on <var6:Array[FlowContext]>*/;
1600 /* method flow#FlowContext#add_previous for (self: Object, FlowContext) */
1601 void VIRTUAL_flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1602 flow__FlowContext__add_previous(self
, p0
);
1605 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1606 void flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1607 val
* var_flow
/* var flow: FlowContext */;
1608 short int var
/* : Bool */;
1609 short int var1
/* : Bool */;
1610 short int var2
/* : Bool */;
1611 short int var_
/* var : Bool */;
1612 val
* var3
/* : Array[FlowContext] */;
1613 short int var4
/* : Bool */;
1614 short int var5
/* : Bool */;
1615 val
* var6
/* : Array[FlowContext] */;
1617 var1
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
1621 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1622 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_flow
) /* has on <var3:Array[FlowContext]>*/;
1629 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__loops
]))(self
) /* loops on <self:FlowContext>*/;
1630 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_flow
) /* add on <var6:Array[FlowContext]>*/;
1635 /* method flow#FlowContext#add_loop for (self: Object, FlowContext) */
1636 void VIRTUAL_flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1637 flow__FlowContext__add_loop(self
, p0
);
1640 /* method flow#FlowContext#init for (self: FlowContext) */
1641 void flow__FlowContext__init(val
* self
) {
1644 /* method flow#FlowContext#init for (self: Object) */
1645 void VIRTUAL_flow__FlowContext__init(val
* self
) {
1646 flow__FlowContext__init(self
);
1649 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1650 void flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1651 val
* var_v
/* var v: FlowVisitor */;
1653 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1656 /* method flow#ANode#accept_flow_visitor for (self: Object, FlowVisitor) */
1657 void VIRTUAL_flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1658 flow__ANode__accept_flow_visitor(self
, p0
);
1661 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1662 void flow__APropdef__do_flow(val
* self
, val
* p0
) {
1663 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1664 val
* var
/* : FlowVisitor */;
1665 val
* var_v
/* var v: FlowVisitor */;
1666 var_toolcontext
= p0
;
1667 var
= NEW_flow__FlowVisitor(&type_flow__FlowVisitor
);
1668 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_flow__FlowVisitor__init
]))(var
, var_toolcontext
) /* init on <var:FlowVisitor>*/;
1669 CHECK_NEW_flow__FlowVisitor(var
);
1671 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, self
) /* enter_visit on <var_v:FlowVisitor>*/;
1674 /* method flow#APropdef#do_flow for (self: Object, ToolContext) */
1675 void VIRTUAL_flow__APropdef__do_flow(val
* self
, val
* p0
) {
1676 flow__APropdef__do_flow(self
, p0
);
1679 /* method flow#APropdef#before_flow_context for (self: APropdef): nullable FlowContext */
1680 val
* flow__APropdef__before_flow_context(val
* self
) {
1681 val
* var
/* : nullable FlowContext */;
1682 val
* var1
/* : nullable FlowContext */;
1683 var1
= self
->attrs
[COLOR_flow__APropdef___64dbefore_flow_context
].val
; /* @before_flow_context on <self:APropdef> */
1688 /* method flow#APropdef#before_flow_context for (self: Object): nullable FlowContext */
1689 val
* VIRTUAL_flow__APropdef__before_flow_context(val
* self
) {
1690 val
* var
/* : nullable FlowContext */;
1691 val
* var1
/* : nullable FlowContext */;
1692 var1
= flow__APropdef__before_flow_context(self
);
1697 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1698 void flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1699 self
->attrs
[COLOR_flow__APropdef___64dbefore_flow_context
].val
= p0
; /* @before_flow_context on <self:APropdef> */
1702 /* method flow#APropdef#before_flow_context= for (self: Object, nullable FlowContext) */
1703 void VIRTUAL_flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1704 flow__APropdef__before_flow_context_61d(self
, p0
);
1707 /* method flow#APropdef#after_flow_context for (self: APropdef): nullable FlowContext */
1708 val
* flow__APropdef__after_flow_context(val
* self
) {
1709 val
* var
/* : nullable FlowContext */;
1710 val
* var1
/* : nullable FlowContext */;
1711 var1
= self
->attrs
[COLOR_flow__APropdef___64dafter_flow_context
].val
; /* @after_flow_context on <self:APropdef> */
1716 /* method flow#APropdef#after_flow_context for (self: Object): nullable FlowContext */
1717 val
* VIRTUAL_flow__APropdef__after_flow_context(val
* self
) {
1718 val
* var
/* : nullable FlowContext */;
1719 val
* var1
/* : nullable FlowContext */;
1720 var1
= flow__APropdef__after_flow_context(self
);
1725 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1726 void flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1727 self
->attrs
[COLOR_flow__APropdef___64dafter_flow_context
].val
= p0
; /* @after_flow_context on <self:APropdef> */
1730 /* method flow#APropdef#after_flow_context= for (self: Object, nullable FlowContext) */
1731 void VIRTUAL_flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1732 flow__APropdef__after_flow_context_61d(self
, p0
);
1735 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
1736 void flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
1737 val
* var_v
/* var v: FlowVisitor */;
1738 val
* var
/* : FlowContext */;
1739 val
* var1
/* : FlowContext */;
1741 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1742 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__before_flow_context_61d
]))(self
, var
) /* before_flow_context= on <self:APropdef>*/;
1743 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:APropdef>*/;
1744 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1745 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__after_flow_context_61d
]))(self
, var1
) /* after_flow_context= on <self:APropdef>*/;
1748 /* method flow#APropdef#accept_flow_visitor for (self: Object, FlowVisitor) */
1749 void VIRTUAL_flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
1750 flow__APropdef__accept_flow_visitor(self
, p0
);
1753 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
1754 val
* flow__AExpr__after_flow_context(val
* self
) {
1755 val
* var
/* : nullable FlowContext */;
1756 val
* var1
/* : nullable FlowContext */;
1757 var1
= self
->attrs
[COLOR_flow__AExpr___64dafter_flow_context
].val
; /* @after_flow_context on <self:AExpr> */
1762 /* method flow#AExpr#after_flow_context for (self: Object): nullable FlowContext */
1763 val
* VIRTUAL_flow__AExpr__after_flow_context(val
* self
) {
1764 val
* var
/* : nullable FlowContext */;
1765 val
* var1
/* : nullable FlowContext */;
1766 var1
= flow__AExpr__after_flow_context(self
);
1771 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
1772 void flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
1773 self
->attrs
[COLOR_flow__AExpr___64dafter_flow_context
].val
= p0
; /* @after_flow_context on <self:AExpr> */
1776 /* method flow#AExpr#after_flow_context= for (self: Object, nullable FlowContext) */
1777 void VIRTUAL_flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
1778 flow__AExpr__after_flow_context_61d(self
, p0
);
1781 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1782 void flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1783 val
* var_v
/* var v: FlowVisitor */;
1784 val
* var
/* : FlowContext */;
1786 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AVarAssignExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AVarAssignExpr>*/;
1787 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
1788 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(self
, var
) /* after_flow_context= on <self:AVarAssignExpr>*/;
1791 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1792 void VIRTUAL_flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1793 flow__AVarAssignExpr__accept_flow_visitor(self
, p0
);
1796 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1797 void flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1798 val
* var_v
/* var v: FlowVisitor */;
1799 val
* var
/* : FlowContext */;
1801 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReassignFormExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReassignFormExpr>*/;
1802 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
1803 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(self
, var
) /* after_flow_context= on <self:AReassignFormExpr>*/;
1806 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1807 void VIRTUAL_flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1808 flow__AReassignFormExpr__accept_flow_visitor(self
, p0
);
1811 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1812 void flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1813 val
* var_v
/* var v: FlowVisitor */;
1814 val
* var
/* : ANodes[AExpr] */;
1815 val
* var1
/* : Iterator[nullable Object] */;
1816 short int var2
/* : Bool */;
1817 val
* var3
/* : nullable Object */;
1818 val
* var_e
/* var e: AExpr */;
1819 val
* var4
/* : FlowContext */;
1820 short int var5
/* : Bool */;
1821 short int var6
/* : Bool */;
1822 val
* var7
/* : FlowContext */;
1823 short int var8
/* : Bool */;
1824 short int var9
/* : Bool */;
1825 val
* var10
/* : FlowContext */;
1826 short int var11
/* : Bool */;
1827 val
* var12
/* : ToolContext */;
1828 val
* var13
/* : Location */;
1829 static val
* varonce
;
1830 val
* var14
/* : String */;
1831 char* var15
/* : NativeString */;
1832 long var16
/* : Int */;
1833 val
* var17
/* : String */;
1835 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
1836 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
1838 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
1840 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
1842 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1843 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var4
) /* is_unreachable on <var4:FlowContext>*/;
1846 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_e
) /* enter_visit on <var_v:FlowVisitor>*/;
1848 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1849 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_flow__FlowContext__is_already_unreachable
]))(var7
) /* is_already_unreachable on <var7:FlowContext>*/;
1852 var10
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1854 ((void (*)(val
*, short int))(var10
->class->vft
[COLOR_flow__FlowContext__is_already_unreachable_61d
]))(var10
, var11
) /* is_already_unreachable= on <var10:FlowContext>*/;
1855 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__toolcontext
]))(var_v
) /* toolcontext on <var_v:FlowVisitor>*/;
1856 var13
= ((val
* (*)(val
*))(var_e
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_e
) /* hot_location on <var_e:AExpr>*/;
1860 var15
= "Error: unreachable statement.";
1862 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1866 ((void (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var12
, var13
, var14
) /* error on <var12:ToolContext>*/;
1870 CONTINUE_label
: (void)0;
1871 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
1873 BREAK_label
: (void)0;
1876 /* method flow#ABlockExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1877 void VIRTUAL_flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1878 flow__ABlockExpr__accept_flow_visitor(self
, p0
);
1881 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1882 void flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1883 val
* var_v
/* var v: FlowVisitor */;
1884 val
* var
/* : FlowContext */;
1886 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReturnExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReturnExpr>*/;
1887 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
1891 /* method flow#AReturnExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1892 void VIRTUAL_flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1893 flow__AReturnExpr__accept_flow_visitor(self
, p0
);
1896 /* method flow#AContinueExpr#before_flow_context for (self: AContinueExpr): nullable FlowContext */
1897 val
* flow__AContinueExpr__before_flow_context(val
* self
) {
1898 val
* var
/* : nullable FlowContext */;
1899 val
* var1
/* : nullable FlowContext */;
1900 val
* var_after
/* var after: nullable FlowContext */;
1901 val
* var2
/* : null */;
1902 short int var3
/* : Bool */;
1903 val
* var4
/* : null */;
1904 val
* var5
/* : Array[FlowContext] */;
1905 val
* var6
/* : nullable Object */;
1906 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AContinueExpr>*/;
1909 if (var_after
== NULL
) {
1910 var3
= 1; /* is null */
1912 var3
= 0; /* arg is null but recv is not */
1920 var5
= ((val
* (*)(val
*))(var_after
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_after
) /* previous on <var_after:nullable FlowContext(FlowContext)>*/;
1921 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var5
) /* first on <var5:Array[FlowContext]>*/;
1927 /* method flow#AContinueExpr#before_flow_context for (self: Object): nullable FlowContext */
1928 val
* VIRTUAL_flow__AContinueExpr__before_flow_context(val
* self
) {
1929 val
* var
/* : nullable FlowContext */;
1930 val
* var1
/* : nullable FlowContext */;
1931 var1
= flow__AContinueExpr__before_flow_context(self
);
1936 /* method flow#AContinueExpr#accept_flow_visitor for (self: AContinueExpr, FlowVisitor) */
1937 void flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1938 val
* var_v
/* var v: FlowVisitor */;
1939 val
* var
/* : FlowContext */;
1941 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AContinueExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AContinueExpr>*/;
1942 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
1946 /* method flow#AContinueExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1947 void VIRTUAL_flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1948 flow__AContinueExpr__accept_flow_visitor(self
, p0
);
1951 /* method flow#ABreakExpr#before_flow_context for (self: ABreakExpr): nullable FlowContext */
1952 val
* flow__ABreakExpr__before_flow_context(val
* self
) {
1953 val
* var
/* : nullable FlowContext */;
1954 val
* var1
/* : nullable FlowContext */;
1955 val
* var_after
/* var after: nullable FlowContext */;
1956 val
* var2
/* : null */;
1957 short int var3
/* : Bool */;
1958 val
* var4
/* : null */;
1959 val
* var5
/* : Array[FlowContext] */;
1960 val
* var6
/* : nullable Object */;
1961 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ABreakExpr>*/;
1964 if (var_after
== NULL
) {
1965 var3
= 1; /* is null */
1967 var3
= 0; /* arg is null but recv is not */
1975 var5
= ((val
* (*)(val
*))(var_after
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_after
) /* previous on <var_after:nullable FlowContext(FlowContext)>*/;
1976 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var5
) /* first on <var5:Array[FlowContext]>*/;
1982 /* method flow#ABreakExpr#before_flow_context for (self: Object): nullable FlowContext */
1983 val
* VIRTUAL_flow__ABreakExpr__before_flow_context(val
* self
) {
1984 val
* var
/* : nullable FlowContext */;
1985 val
* var1
/* : nullable FlowContext */;
1986 var1
= flow__ABreakExpr__before_flow_context(self
);
1991 /* method flow#ABreakExpr#accept_flow_visitor for (self: ABreakExpr, FlowVisitor) */
1992 void flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1993 val
* var_v
/* var v: FlowVisitor */;
1994 val
* var
/* : FlowContext */;
1996 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ABreakExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ABreakExpr>*/;
1997 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2001 /* method flow#ABreakExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2002 void VIRTUAL_flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2003 flow__ABreakExpr__accept_flow_visitor(self
, p0
);
2006 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
2007 void flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2008 val
* var_v
/* var v: FlowVisitor */;
2009 val
* var
/* : FlowContext */;
2011 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AAbortExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AAbortExpr>*/;
2012 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2016 /* method flow#AAbortExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2017 void VIRTUAL_flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2018 flow__AAbortExpr__accept_flow_visitor(self
, p0
);
2021 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
2022 void flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2023 val
* var_v
/* var v: FlowVisitor */;
2024 val
* var
/* : nullable EscapeMark */;
2026 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ADoExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ADoExpr>*/;
2027 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ADoExpr__escapemark
]))(self
) /* escapemark on <self:ADoExpr>*/;
2028 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var
) /* merge_breaks on <var_v:FlowVisitor>*/;
2031 /* method flow#ADoExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2032 void VIRTUAL_flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2033 flow__ADoExpr__accept_flow_visitor(self
, p0
);
2036 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
2037 void flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2038 val
* var_v
/* var v: FlowVisitor */;
2039 val
* var
/* : AExpr */;
2040 val
* var1
/* : FlowContext */;
2041 val
* var_after_expr
/* var after_expr: FlowContext */;
2042 val
* var2
/* : FlowContext */;
2043 val
* var3
/* : nullable AExpr */;
2044 val
* var4
/* : FlowContext */;
2045 val
* var_after_then
/* var after_then: FlowContext */;
2046 val
* var5
/* : FlowContext */;
2047 val
* var6
/* : nullable AExpr */;
2048 val
* var7
/* : FlowContext */;
2049 val
* var_after_else
/* var after_else: FlowContext */;
2050 val
* var8
/* : FlowContext */;
2052 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_expr
]))(self
) /* n_expr on <self:AIfExpr>*/;
2053 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2054 var_after_expr
= var1
;
2055 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2056 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2057 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_then
]))(self
) /* n_then on <self:AIfExpr>*/;
2058 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2059 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2060 var_after_then
= var4
;
2061 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2062 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var5
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2063 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_else
]))(self
) /* n_else on <self:AIfExpr>*/;
2064 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var6
) /* enter_visit on <var_v:FlowVisitor>*/;
2065 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2066 var_after_else
= var7
;
2067 var8
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var_after_then
, var_after_else
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2071 /* method flow#AIfExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2072 void VIRTUAL_flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2073 flow__AIfExpr__accept_flow_visitor(self
, p0
);
2076 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2077 void flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2078 val
* var_v
/* var v: FlowVisitor */;
2079 val
* var
/* : AExpr */;
2080 val
* var1
/* : FlowContext */;
2081 val
* var_after_expr
/* var after_expr: FlowContext */;
2082 val
* var2
/* : FlowContext */;
2083 val
* var3
/* : AExpr */;
2084 val
* var4
/* : FlowContext */;
2085 val
* var_after_then
/* var after_then: FlowContext */;
2086 val
* var5
/* : FlowContext */;
2087 val
* var6
/* : AExpr */;
2088 val
* var7
/* : FlowContext */;
2089 val
* var_after_else
/* var after_else: FlowContext */;
2090 val
* var8
/* : FlowContext */;
2092 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_expr
]))(self
) /* n_expr on <self:AIfexprExpr>*/;
2093 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2094 var_after_expr
= var1
;
2095 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2096 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2097 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_then
]))(self
) /* n_then on <self:AIfexprExpr>*/;
2098 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2099 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2100 var_after_then
= var4
;
2101 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2102 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var5
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2103 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_else
]))(self
) /* n_else on <self:AIfexprExpr>*/;
2104 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var6
) /* enter_visit on <var_v:FlowVisitor>*/;
2105 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2106 var_after_else
= var7
;
2107 var8
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var_after_then
, var_after_else
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2111 /* method flow#AIfexprExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2112 void VIRTUAL_flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2113 flow__AIfexprExpr__accept_flow_visitor(self
, p0
);
2116 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2117 void flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2118 val
* var_v
/* var v: FlowVisitor */;
2119 val
* var
/* : FlowContext */;
2120 val
* var_before_loop
/* var before_loop: FlowContext */;
2121 val
* var1
/* : AExpr */;
2122 val
* var2
/* : FlowContext */;
2123 val
* var_after_expr
/* var after_expr: FlowContext */;
2124 val
* var3
/* : FlowContext */;
2125 val
* var4
/* : nullable AExpr */;
2126 val
* var5
/* : FlowContext */;
2127 val
* var_after_block
/* var after_block: FlowContext */;
2128 val
* var6
/* : nullable EscapeMark */;
2129 val
* var7
/* : FlowContext */;
2130 val
* var8
/* : nullable EscapeMark */;
2132 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2133 var_before_loop
= var
;
2134 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_expr
]))(self
) /* n_expr on <self:AWhileExpr>*/;
2135 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var1
) /* visit_expr on <var_v:FlowVisitor>*/;
2136 var_after_expr
= var2
;
2137 var3
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2138 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var3
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2139 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_block
]))(self
) /* n_block on <self:AWhileExpr>*/;
2140 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var4
) /* enter_visit on <var_v:FlowVisitor>*/;
2141 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2142 var_after_block
= var5
;
2143 ((void (*)(val
*, val
*))(var_before_loop
->class->vft
[COLOR_flow__FlowContext__add_loop
]))(var_before_loop
, var_after_block
) /* add_loop on <var_before_loop:FlowContext>*/;
2144 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AWhileExpr__escapemark
]))(self
) /* escapemark on <self:AWhileExpr>*/;
2145 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_continues_to
]))(var_v
, var_after_block
, var6
) /* merge_continues_to on <var_v:FlowVisitor>*/;
2146 var7
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2147 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var7
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2148 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AWhileExpr__escapemark
]))(self
) /* escapemark on <self:AWhileExpr>*/;
2149 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var8
) /* merge_breaks on <var_v:FlowVisitor>*/;
2152 /* method flow#AWhileExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2153 void VIRTUAL_flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2154 flow__AWhileExpr__accept_flow_visitor(self
, p0
);
2157 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2158 void flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2159 val
* var_v
/* var v: FlowVisitor */;
2160 val
* var
/* : FlowContext */;
2161 val
* var_before_loop
/* var before_loop: FlowContext */;
2162 val
* var1
/* : nullable AExpr */;
2163 val
* var2
/* : FlowContext */;
2164 val
* var_after_block
/* var after_block: FlowContext */;
2165 val
* var3
/* : nullable EscapeMark */;
2166 val
* var4
/* : FlowContext */;
2167 val
* var5
/* : nullable EscapeMark */;
2169 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2170 var_before_loop
= var
;
2171 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ALoopExpr__n_block
]))(self
) /* n_block on <self:ALoopExpr>*/;
2172 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var1
) /* enter_visit on <var_v:FlowVisitor>*/;
2173 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2174 var_after_block
= var2
;
2175 ((void (*)(val
*, val
*))(var_before_loop
->class->vft
[COLOR_flow__FlowContext__add_loop
]))(var_before_loop
, var_after_block
) /* add_loop on <var_before_loop:FlowContext>*/;
2176 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ALoopExpr__escapemark
]))(self
) /* escapemark on <self:ALoopExpr>*/;
2177 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_continues_to
]))(var_v
, var_after_block
, var3
) /* merge_continues_to on <var_v:FlowVisitor>*/;
2178 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2180 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ALoopExpr__escapemark
]))(self
) /* escapemark on <self:ALoopExpr>*/;
2181 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var5
) /* merge_breaks on <var_v:FlowVisitor>*/;
2184 /* method flow#ALoopExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2185 void VIRTUAL_flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2186 flow__ALoopExpr__accept_flow_visitor(self
, p0
);
2189 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2190 void flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2191 val
* var_v
/* var v: FlowVisitor */;
2192 val
* var
/* : AExpr */;
2193 val
* var1
/* : FlowContext */;
2194 val
* var_before_loop
/* var before_loop: FlowContext */;
2195 val
* var2
/* : nullable AExpr */;
2196 val
* var3
/* : FlowContext */;
2197 val
* var_after_block
/* var after_block: FlowContext */;
2198 val
* var4
/* : nullable EscapeMark */;
2199 val
* var5
/* : FlowContext */;
2200 val
* var6
/* : FlowContext */;
2201 val
* var7
/* : nullable EscapeMark */;
2203 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
2204 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var
) /* enter_visit on <var_v:FlowVisitor>*/;
2205 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2206 var_before_loop
= var1
;
2207 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
2208 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var2
) /* enter_visit on <var_v:FlowVisitor>*/;
2209 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2210 var_after_block
= var3
;
2211 ((void (*)(val
*, val
*))(var_before_loop
->class->vft
[COLOR_flow__FlowContext__add_loop
]))(var_before_loop
, var_after_block
) /* add_loop on <var_before_loop:FlowContext>*/;
2212 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__escapemark
]))(self
) /* escapemark on <self:AForExpr>*/;
2213 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_continues_to
]))(var_v
, var_after_block
, var4
) /* merge_continues_to on <var_v:FlowVisitor>*/;
2214 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2215 var6
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var5
, var_before_loop
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2217 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__escapemark
]))(self
) /* escapemark on <self:AForExpr>*/;
2218 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var7
) /* merge_breaks on <var_v:FlowVisitor>*/;
2221 /* method flow#AForExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2222 void VIRTUAL_flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2223 flow__AForExpr__accept_flow_visitor(self
, p0
);
2226 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2227 void flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2228 val
* var_v
/* var v: FlowVisitor */;
2229 val
* var
/* : AExpr */;
2230 val
* var1
/* : FlowContext */;
2231 val
* var_after_expr
/* var after_expr: FlowContext */;
2232 val
* var2
/* : FlowContext */;
2233 val
* var3
/* : nullable AExpr */;
2234 val
* var4
/* : FlowContext */;
2236 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
2237 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2238 var_after_expr
= var1
;
2239 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2240 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2241 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
2242 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2243 var4
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2244 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var4
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2247 /* method flow#AAssertExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2248 void VIRTUAL_flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2249 flow__AAssertExpr__accept_flow_visitor(self
, p0
);
2252 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
2253 void flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2254 val
* var_v
/* var v: FlowVisitor */;
2255 val
* var
/* : AExpr */;
2256 val
* var1
/* : FlowContext */;
2257 val
* var_after_expr
/* var after_expr: FlowContext */;
2258 val
* var2
/* : FlowContext */;
2259 val
* var3
/* : AExpr */;
2260 val
* var4
/* : FlowContext */;
2261 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2262 val
* var5
/* : FlowContext */;
2263 val
* var6
/* : FlowContext */;
2264 val
* var7
/* : FlowContext */;
2265 val
* var_merge_true
/* var merge_true: FlowContext */;
2266 static val
* varonce
;
2267 val
* var8
/* : String */;
2268 char* var9
/* : NativeString */;
2269 long var10
/* : Int */;
2270 val
* var11
/* : String */;
2271 val
* var12
/* : FlowContext */;
2272 val
* var13
/* : FlowContext */;
2274 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
2275 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2276 var_after_expr
= var1
;
2277 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2278 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2279 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
2280 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2281 var_after_expr2
= var4
;
2282 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2283 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2284 var7
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var5
, var6
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2285 var_merge_true
= var7
;
2291 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2295 ((void (*)(val
*, val
*))(var_merge_true
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_true
, var8
) /* name= on <var_merge_true:FlowContext>*/;
2296 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2297 var13
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_true_false_flow
]))(var_v
, var_merge_true
, var12
) /* make_true_false_flow on <var_v:FlowVisitor>*/;
2301 /* method flow#AOrExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2302 void VIRTUAL_flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2303 flow__AOrExpr__accept_flow_visitor(self
, p0
);
2306 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
2307 void flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2308 val
* var_v
/* var v: FlowVisitor */;
2309 val
* var
/* : AExpr */;
2310 val
* var1
/* : FlowContext */;
2311 val
* var_after_expr
/* var after_expr: FlowContext */;
2312 val
* var2
/* : FlowContext */;
2313 val
* var3
/* : AExpr */;
2314 val
* var4
/* : FlowContext */;
2315 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2316 val
* var5
/* : FlowContext */;
2317 val
* var6
/* : FlowContext */;
2318 val
* var7
/* : FlowContext */;
2319 val
* var_merge_true
/* var merge_true: FlowContext */;
2320 static val
* varonce
;
2321 val
* var8
/* : String */;
2322 char* var9
/* : NativeString */;
2323 long var10
/* : Int */;
2324 val
* var11
/* : String */;
2325 val
* var12
/* : FlowContext */;
2326 val
* var13
/* : FlowContext */;
2328 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
2329 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2330 var_after_expr
= var1
;
2331 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2332 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2333 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
2334 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2335 var_after_expr2
= var4
;
2336 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2337 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2338 var7
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var5
, var6
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2339 var_merge_true
= var7
;
2345 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2349 ((void (*)(val
*, val
*))(var_merge_true
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_true
, var8
) /* name= on <var_merge_true:FlowContext>*/;
2350 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2351 var13
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_true_false_flow
]))(var_v
, var_merge_true
, var12
) /* make_true_false_flow on <var_v:FlowVisitor>*/;
2355 /* method flow#AImpliesExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2356 void VIRTUAL_flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2357 flow__AImpliesExpr__accept_flow_visitor(self
, p0
);
2360 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
2361 void flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2362 val
* var_v
/* var v: FlowVisitor */;
2363 val
* var
/* : AExpr */;
2364 val
* var1
/* : FlowContext */;
2365 val
* var_after_expr
/* var after_expr: FlowContext */;
2366 val
* var2
/* : FlowContext */;
2367 val
* var3
/* : AExpr */;
2368 val
* var4
/* : FlowContext */;
2369 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2370 val
* var5
/* : FlowContext */;
2371 val
* var6
/* : FlowContext */;
2372 val
* var7
/* : FlowContext */;
2373 val
* var_merge_false
/* var merge_false: FlowContext */;
2374 static val
* varonce
;
2375 val
* var8
/* : String */;
2376 char* var9
/* : NativeString */;
2377 long var10
/* : Int */;
2378 val
* var11
/* : String */;
2379 val
* var12
/* : FlowContext */;
2380 val
* var13
/* : FlowContext */;
2382 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
2383 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2384 var_after_expr
= var1
;
2385 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2386 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2387 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
2388 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2389 var_after_expr2
= var4
;
2390 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2391 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2392 var7
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var5
, var6
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2393 var_merge_false
= var7
;
2399 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2403 ((void (*)(val
*, val
*))(var_merge_false
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_false
, var8
) /* name= on <var_merge_false:FlowContext>*/;
2404 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2405 var13
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_true_false_flow
]))(var_v
, var12
, var_merge_false
) /* make_true_false_flow on <var_v:FlowVisitor>*/;
2409 /* method flow#AAndExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2410 void VIRTUAL_flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2411 flow__AAndExpr__accept_flow_visitor(self
, p0
);
2414 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
2415 void flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2416 val
* var_v
/* var v: FlowVisitor */;
2417 val
* var
/* : AExpr */;
2418 val
* var1
/* : FlowContext */;
2419 val
* var_after_expr
/* var after_expr: FlowContext */;
2420 val
* var2
/* : FlowContext */;
2421 val
* var3
/* : FlowContext */;
2422 val
* var4
/* : FlowContext */;
2424 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
2425 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2426 var_after_expr
= var1
;
2427 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2428 var3
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2429 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_true_false_flow
]))(var_v
, var2
, var3
) /* make_true_false_flow on <var_v:FlowVisitor>*/;
2433 /* method flow#ANotExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2434 void VIRTUAL_flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2435 flow__ANotExpr__accept_flow_visitor(self
, p0
);
2438 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
2439 void flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2440 val
* var_v
/* var v: FlowVisitor */;
2442 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AOrElseExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AOrElseExpr>*/;
2445 /* method flow#AOrElseExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2446 void VIRTUAL_flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2447 flow__AOrElseExpr__accept_flow_visitor(self
, p0
);
2450 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
2451 void flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2452 val
* var_v
/* var v: FlowVisitor */;
2453 val
* var
/* : FlowContext */;
2455 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AEqExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEqExpr>*/;
2456 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_true_false_flow
]))(var_v
) /* make_sub_true_false_flow on <var_v:FlowVisitor>*/;
2460 /* method flow#AEqExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2461 void VIRTUAL_flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2462 flow__AEqExpr__accept_flow_visitor(self
, p0
);
2465 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
2466 void flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2467 val
* var_v
/* var v: FlowVisitor */;
2468 val
* var
/* : FlowContext */;
2470 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ANeExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ANeExpr>*/;
2471 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_true_false_flow
]))(var_v
) /* make_sub_true_false_flow on <var_v:FlowVisitor>*/;
2475 /* method flow#ANeExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2476 void VIRTUAL_flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2477 flow__ANeExpr__accept_flow_visitor(self
, p0
);
2480 /* method flow#AClosureCallExpr#accept_flow_visitor for (self: AClosureCallExpr, FlowVisitor) */
2481 void flow__AClosureCallExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2482 val
* var_v
/* var v: FlowVisitor */;
2484 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AClosureCallExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AClosureCallExpr>*/;
2487 /* method flow#AClosureCallExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2488 void VIRTUAL_flow__AClosureCallExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2489 flow__AClosureCallExpr__accept_flow_visitor(self
, p0
);
2492 /* method flow#AClosureDef#accept_flow_visitor for (self: AClosureDef, FlowVisitor) */
2493 void flow__AClosureDef__accept_flow_visitor(val
* self
, val
* p0
) {
2494 val
* var_v
/* var v: FlowVisitor */;
2495 val
* var
/* : FlowContext */;
2496 val
* var_before_loop
/* var before_loop: FlowContext */;
2497 val
* var1
/* : nullable AExpr */;
2498 val
* var2
/* : FlowContext */;
2499 val
* var_after_block
/* var after_block: FlowContext */;
2500 val
* var3
/* : FlowContext */;
2501 val
* var4
/* : FlowContext */;
2503 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2504 var_before_loop
= var
;
2505 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AClosureDef__n_expr
]))(self
) /* n_expr on <self:AClosureDef>*/;
2506 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var1
) /* enter_visit on <var_v:FlowVisitor>*/;
2507 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2508 var_after_block
= var2
;
2509 ((void (*)(val
*, val
*))(var_before_loop
->class->vft
[COLOR_flow__FlowContext__add_loop
]))(var_before_loop
, var_after_block
) /* add_loop on <var_before_loop:FlowContext>*/;
2510 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2511 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(var_v
, var3
, var_before_loop
) /* make_merge_flow on <var_v:FlowVisitor>*/;
2515 /* method flow#AClosureDef#accept_flow_visitor for (self: Object, FlowVisitor) */
2516 void VIRTUAL_flow__AClosureDef__accept_flow_visitor(val
* self
, val
* p0
) {
2517 flow__AClosureDef__accept_flow_visitor(self
, p0
);
2520 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
2521 void flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2522 val
* var_v
/* var v: FlowVisitor */;
2523 val
* var
/* : FlowContext */;
2525 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AIsaExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AIsaExpr>*/;
2526 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_true_false_flow
]))(var_v
) /* make_sub_true_false_flow on <var_v:FlowVisitor>*/;
2530 /* method flow#AIsaExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2531 void VIRTUAL_flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2532 flow__AIsaExpr__accept_flow_visitor(self
, p0
);
2535 /* method flow#AProxyExpr#accept_flow_visitor for (self: AProxyExpr, FlowVisitor) */
2536 void flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2537 val
* var_v
/* var v: FlowVisitor */;
2538 val
* var
/* : AExpr */;
2539 val
* var1
/* : FlowContext */;
2540 val
* var_after_expr
/* var after_expr: FlowContext */;
2542 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
2543 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2544 var_after_expr
= var1
;
2545 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var_after_expr
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2548 /* method flow#AProxyExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2549 void VIRTUAL_flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2550 flow__AProxyExpr__accept_flow_visitor(self
, p0
);