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", "Uninitialized attribute @flow_phase");
9 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 26);
16 /* method flow#ToolContext#flow_phase for (self: Object): Phase */
17 val
* VIRTUAL_flow__ToolContext__flow_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 var1
= flow__ToolContext__flow_phase(self
);
25 /* method flow#ToolContext#flow_phase= for (self: ToolContext, Phase) */
26 void flow__ToolContext__flow_phase_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_flow__ToolContext___64dflow_phase
].val
= p0
; /* @flow_phase on <self:ToolContext> */
30 /* method flow#ToolContext#flow_phase= for (self: Object, Phase) */
31 void VIRTUAL_flow__ToolContext__flow_phase_61d(val
* self
, val
* p0
) {
32 flow__ToolContext__flow_phase_61d(self
, p0
);
35 /* method flow#FlowPhase#process_npropdef for (self: FlowPhase, APropdef) */
36 void flow__FlowPhase__process_npropdef(val
* self
, val
* p0
) {
37 val
* var_npropdef
/* var npropdef: APropdef */;
38 val
* var
/* : ToolContext */;
40 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:FlowPhase>*/;
41 ((void (*)(val
*, val
*))(var_npropdef
->class->vft
[COLOR_flow__APropdef__do_flow
]))(var_npropdef
, var
) /* do_flow on <var_npropdef:APropdef>*/;
44 /* method flow#FlowPhase#process_npropdef for (self: Object, APropdef) */
45 void VIRTUAL_flow__FlowPhase__process_npropdef(val
* self
, val
* p0
) {
46 flow__FlowPhase__process_npropdef(self
, p0
);
49 /* method flow#FlowVisitor#current_flow_context for (self: FlowVisitor): FlowContext */
50 val
* flow__FlowVisitor__current_flow_context(val
* self
) {
51 val
* var
/* : FlowContext */;
52 val
* var1
/* : FlowContext */;
53 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dcurrent_flow_context
].val
; /* @current_flow_context on <self:FlowVisitor> */
55 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @current_flow_context");
56 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 39);
63 /* method flow#FlowVisitor#current_flow_context for (self: Object): FlowContext */
64 val
* VIRTUAL_flow__FlowVisitor__current_flow_context(val
* self
) {
65 val
* var
/* : FlowContext */;
66 val
* var1
/* : FlowContext */;
67 var1
= flow__FlowVisitor__current_flow_context(self
);
72 /* method flow#FlowVisitor#current_flow_context= for (self: FlowVisitor, FlowContext) */
73 void flow__FlowVisitor__current_flow_context_61d(val
* self
, val
* p0
) {
74 self
->attrs
[COLOR_flow__FlowVisitor___64dcurrent_flow_context
].val
= p0
; /* @current_flow_context on <self:FlowVisitor> */
77 /* method flow#FlowVisitor#current_flow_context= for (self: Object, FlowContext) */
78 void VIRTUAL_flow__FlowVisitor__current_flow_context_61d(val
* self
, val
* p0
) {
79 flow__FlowVisitor__current_flow_context_61d(self
, p0
);
82 /* method flow#FlowVisitor#toolcontext for (self: FlowVisitor): ToolContext */
83 val
* flow__FlowVisitor__toolcontext(val
* self
) {
84 val
* var
/* : ToolContext */;
85 val
* var1
/* : ToolContext */;
86 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dtoolcontext
].val
; /* @toolcontext on <self:FlowVisitor> */
88 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @toolcontext");
89 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 41);
96 /* method flow#FlowVisitor#toolcontext for (self: Object): ToolContext */
97 val
* VIRTUAL_flow__FlowVisitor__toolcontext(val
* self
) {
98 val
* var
/* : ToolContext */;
99 val
* var1
/* : ToolContext */;
100 var1
= flow__FlowVisitor__toolcontext(self
);
105 /* method flow#FlowVisitor#toolcontext= for (self: FlowVisitor, ToolContext) */
106 void flow__FlowVisitor__toolcontext_61d(val
* self
, val
* p0
) {
107 self
->attrs
[COLOR_flow__FlowVisitor___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:FlowVisitor> */
110 /* method flow#FlowVisitor#toolcontext= for (self: Object, ToolContext) */
111 void VIRTUAL_flow__FlowVisitor__toolcontext_61d(val
* self
, val
* p0
) {
112 flow__FlowVisitor__toolcontext_61d(self
, p0
);
115 /* method flow#FlowVisitor#init for (self: FlowVisitor, ToolContext) */
116 void flow__FlowVisitor__init(val
* self
, val
* p0
) {
117 val
* var_toolcontext
/* var toolcontext: ToolContext */;
118 val
* var
/* : FlowContext */;
119 val
* var1
/* : Array[FlowContext] */;
120 val
* var2
/* : FlowContext */;
121 val
* var3
/* : FlowContext */;
122 short int var4
/* : Bool */;
123 var_toolcontext
= p0
;
124 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:FlowVisitor>*/;
125 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:FlowVisitor>*/;
126 var
= NEW_flow__FlowContext(&type_flow__FlowContext
);
127 ((void (*)(val
*))(var
->class->vft
[COLOR_flow__FlowContext__init
]))(var
) /* init on <var:FlowContext>*/;
128 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var
) /* current_flow_context= on <self:FlowVisitor>*/;
129 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
130 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
131 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var1
, var2
) /* add on <var1:Array[FlowContext]>*/;
132 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
134 ((void (*)(val
*, short int))(var3
->class->vft
[COLOR_flow__FlowContext__is_start_61d
]))(var3
, var4
) /* is_start= on <var3:FlowContext>*/;
137 /* method flow#FlowVisitor#init for (self: Object, ToolContext) */
138 void VIRTUAL_flow__FlowVisitor__init(val
* self
, val
* p0
) {
139 flow__FlowVisitor__init(self
, p0
);
142 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
143 val
* flow__FlowVisitor__first(val
* self
) {
144 val
* var
/* : nullable ANode */;
145 val
* var1
/* : nullable ANode */;
146 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dfirst
].val
; /* @first on <self:FlowVisitor> */
151 /* method flow#FlowVisitor#first for (self: Object): nullable ANode */
152 val
* VIRTUAL_flow__FlowVisitor__first(val
* self
) {
153 val
* var
/* : nullable ANode */;
154 val
* var1
/* : nullable ANode */;
155 var1
= flow__FlowVisitor__first(self
);
160 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
161 void flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
162 self
->attrs
[COLOR_flow__FlowVisitor___64dfirst
].val
= p0
; /* @first on <self:FlowVisitor> */
165 /* method flow#FlowVisitor#first= for (self: Object, nullable ANode) */
166 void VIRTUAL_flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
167 flow__FlowVisitor__first_61d(self
, p0
);
170 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
171 void flow__FlowVisitor__visit(val
* self
, val
* p0
) {
172 val
* var_node
/* var node: ANode */;
173 val
* var
/* : nullable ANode */;
174 val
* var1
/* : null */;
175 short int var2
/* : Bool */;
176 val
* var3
/* : FlowContext */;
177 val
* var4
/* : nullable ANode */;
178 val
* var5
/* : null */;
179 short int var6
/* : Bool */;
180 val
* var7
/* : FlowContext */;
181 short int var8
/* : Bool */;
184 val
* var9
/* : FlowContext */;
185 val
* var_flow
/* var flow: FlowContext */;
186 short int var10
/* : Bool */;
187 val
* var11
/* : FlowContext */;
188 short int var12
/* : Bool */;
189 short int var_
/* var : Bool */;
190 val
* var13
/* : FlowContext */;
191 short int var14
/* : Bool */;
192 val
* var15
/* : FlowContext */;
193 val
* var16
/* : FlowContext */;
195 val
* var17
/* : String */;
196 char* var18
/* : NativeString */;
197 long var19
/* : Int */;
198 val
* var20
/* : String */;
199 val
* var21
/* : nullable ANode */;
200 short int var22
/* : Bool */;
202 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first
]))(self
) /* first on <self:FlowVisitor>*/;
205 var2
= 1; /* is null */
207 var2
= 0; /* arg is null but recv is not */
210 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first_61d
]))(self
, var_node
) /* first= on <self:FlowVisitor>*/;
213 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
214 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_flow__FlowContext__node
]))(var3
) /* node on <var3:FlowContext>*/;
217 var6
= 1; /* is null */
219 var6
= 0; /* arg is null but recv is not */
222 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
223 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var7
, var_node
) /* node= on <var7:FlowContext>*/;
226 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_flow__ANode__accept_flow_visitor
]))(var_node
, self
) /* accept_flow_visitor on <var_node:ANode>*/;
227 /* <var_node:ANode> isa AExpr */
228 cltype
= type_parser_nodes__AExpr
.color
;
229 idtype
= type_parser_nodes__AExpr
.id
;
230 if(cltype
>= var_node
->type
->table_size
) {
233 var8
= var_node
->type
->type_table
[cltype
] == idtype
;
236 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
238 ((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)>*/;
239 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_flow
) /* when_true on <var_flow:FlowContext>*/;
240 var12
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var11
, var_flow
) /* != on <var11:FlowContext>*/;
245 var13
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_flow
) /* when_false on <var_flow:FlowContext>*/;
246 var14
= ((short int (*)(val
*, val
*))(var13
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var13
, var_flow
) /* != on <var13:FlowContext>*/;
250 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(self
) /* make_sub_flow on <self:FlowVisitor>*/;
252 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
258 var20
= string__NativeString__to_s_with_length(var18
, var19
);
262 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var16
, var17
) /* name= on <var16:FlowContext>*/;
267 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first
]))(self
) /* first on <self:FlowVisitor>*/;
269 var22
= 0; /* <var_node:ANode> cannot be null */
271 var22
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var_node
) /* == on <var21:nullable ANode>*/;
278 /* method flow#FlowVisitor#visit for (self: Object, ANode) */
279 void VIRTUAL_flow__FlowVisitor__visit(val
* self
, val
* p0
) {
280 flow__FlowVisitor__visit(self
, p0
);
283 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
284 val
* flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
285 val
* var
/* : FlowContext */;
286 val
* var_node
/* var node: AExpr */;
287 val
* var1
/* : nullable FlowContext */;
289 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(self
, var_node
) /* enter_visit on <self:FlowVisitor>*/;
290 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
292 fprintf(stderr
, "Runtime error: %s", "Cast failed");
293 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 77);
301 /* method flow#FlowVisitor#visit_expr for (self: Object, AExpr): FlowContext */
302 val
* VIRTUAL_flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
303 val
* var
/* : FlowContext */;
304 val
* var1
/* : FlowContext */;
305 var1
= flow__FlowVisitor__visit_expr(self
, p0
);
310 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
311 val
* flow__FlowVisitor__flows(val
* self
) {
312 val
* var
/* : Array[FlowContext] */;
313 val
* var1
/* : Array[FlowContext] */;
314 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dflows
].val
; /* @flows on <self:FlowVisitor> */
316 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @flows");
317 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 80);
324 /* method flow#FlowVisitor#flows for (self: Object): Array[FlowContext] */
325 val
* VIRTUAL_flow__FlowVisitor__flows(val
* self
) {
326 val
* var
/* : Array[FlowContext] */;
327 val
* var1
/* : Array[FlowContext] */;
328 var1
= flow__FlowVisitor__flows(self
);
333 /* method flow#FlowVisitor#flows= for (self: FlowVisitor, Array[FlowContext]) */
334 void flow__FlowVisitor__flows_61d(val
* self
, val
* p0
) {
335 self
->attrs
[COLOR_flow__FlowVisitor___64dflows
].val
= p0
; /* @flows on <self:FlowVisitor> */
338 /* method flow#FlowVisitor#flows= for (self: Object, Array[FlowContext]) */
339 void VIRTUAL_flow__FlowVisitor__flows_61d(val
* self
, val
* p0
) {
340 flow__FlowVisitor__flows_61d(self
, p0
);
343 /* method flow#FlowVisitor#printflow for (self: FlowVisitor) */
344 void flow__FlowVisitor__printflow(val
* self
) {
345 val
* var
/* : OFStream */;
347 val
* var1
/* : String */;
348 char* var2
/* : NativeString */;
349 long var3
/* : Int */;
350 val
* var4
/* : String */;
351 val
* var_file
/* var file: OFStream */;
352 static val
* varonce5
;
353 val
* var6
/* : String */;
354 char* var7
/* : NativeString */;
355 long var8
/* : Int */;
356 val
* var9
/* : String */;
357 val
* var10
/* : Array[FlowContext] */;
358 val
* var11
/* : Iterator[nullable Object] */;
359 short int var12
/* : Bool */;
360 val
* var13
/* : nullable Object */;
361 val
* var_f
/* var f: FlowContext */;
362 static val
* varonce14
;
363 val
* var15
/* : String */;
364 char* var16
/* : NativeString */;
365 long var17
/* : Int */;
366 val
* var18
/* : String */;
367 val
* var_s
/* var s: String */;
368 val
* var19
/* : nullable ANode */;
369 short int var20
/* : Bool */;
372 val
* var21
/* : Array[Object] */;
373 long var22
/* : Int */;
374 val
* var_
/* var : Array[Object] */;
375 static val
* varonce23
;
376 val
* var24
/* : String */;
377 char* var25
/* : NativeString */;
378 long var26
/* : Int */;
379 val
* var27
/* : String */;
380 val
* var28
/* : nullable ANode */;
381 short int var29
/* : Bool */;
384 const char* var_class_name
;
385 val
* var32
/* : nullable FlowContext */;
386 long var33
/* : Int */;
387 val
* var34
/* : nullable Object */;
388 static val
* varonce35
;
389 val
* var36
/* : String */;
390 char* var37
/* : NativeString */;
391 long var38
/* : Int */;
392 val
* var39
/* : String */;
393 val
* var40
/* : String */;
394 static val
* varonce41
;
395 val
* var42
/* : String */;
396 char* var43
/* : NativeString */;
397 long var44
/* : Int */;
398 val
* var45
/* : String */;
399 long var46
/* : Int */;
400 static val
* varonce47
;
401 val
* var48
/* : String */;
402 char* var49
/* : NativeString */;
403 long var50
/* : Int */;
404 val
* var51
/* : String */;
405 long var52
/* : Int */;
406 static val
* varonce53
;
407 val
* var54
/* : String */;
408 char* var55
/* : NativeString */;
409 long var56
/* : Int */;
410 val
* var57
/* : String */;
411 val
* var58
/* : nullable ANode */;
412 val
* var59
/* : Location */;
413 static val
* varonce60
;
414 val
* var61
/* : String */;
415 char* var62
/* : NativeString */;
416 long var63
/* : Int */;
417 val
* var64
/* : String */;
418 val
* var65
/* : nullable ANode */;
419 val
* var66
/* : String */;
420 static val
* varonce67
;
421 val
* var68
/* : String */;
422 char* var69
/* : NativeString */;
423 long var70
/* : Int */;
424 val
* var71
/* : String */;
425 val
* var72
/* : String */;
426 static val
* varonce73
;
427 val
* var74
/* : String */;
428 char* var75
/* : NativeString */;
429 long var76
/* : Int */;
430 val
* var77
/* : String */;
431 val
* var78
/* : Array[Object] */;
432 long var79
/* : Int */;
433 val
* var80
/* : NativeArray[Object] */;
434 val
* var81
/* : Object */;
435 val
* var82
/* : Object */;
436 val
* var83
/* : String */;
437 val
* var84
/* : Array[FlowContext] */;
438 val
* var85
/* : Iterator[nullable Object] */;
439 short int var86
/* : Bool */;
440 val
* var87
/* : nullable Object */;
441 val
* var_p
/* var p: FlowContext */;
442 static val
* varonce88
;
443 val
* var89
/* : String */;
444 char* var90
/* : NativeString */;
445 long var91
/* : Int */;
446 val
* var92
/* : String */;
447 long var93
/* : Int */;
448 static val
* varonce94
;
449 val
* var95
/* : String */;
450 char* var96
/* : NativeString */;
451 long var97
/* : Int */;
452 val
* var98
/* : String */;
453 long var99
/* : Int */;
454 static val
* varonce100
;
455 val
* var101
/* : String */;
456 char* var102
/* : NativeString */;
457 long var103
/* : Int */;
458 val
* var104
/* : String */;
459 val
* var105
/* : Array[Object] */;
460 long var106
/* : Int */;
461 val
* var107
/* : NativeArray[Object] */;
462 val
* var108
/* : Object */;
463 val
* var109
/* : Object */;
464 val
* var110
/* : String */;
465 val
* var111
/* : FlowContext */;
466 short int var112
/* : Bool */;
467 static val
* varonce113
;
468 val
* var114
/* : String */;
469 char* var115
/* : NativeString */;
470 long var116
/* : Int */;
471 val
* var117
/* : String */;
472 long var118
/* : Int */;
473 static val
* varonce119
;
474 val
* var120
/* : String */;
475 char* var121
/* : NativeString */;
476 long var122
/* : Int */;
477 val
* var123
/* : String */;
478 val
* var124
/* : FlowContext */;
479 long var125
/* : Int */;
480 static val
* varonce126
;
481 val
* var127
/* : String */;
482 char* var128
/* : NativeString */;
483 long var129
/* : Int */;
484 val
* var130
/* : String */;
485 val
* var131
/* : Array[Object] */;
486 long var132
/* : Int */;
487 val
* var133
/* : NativeArray[Object] */;
488 val
* var134
/* : Object */;
489 val
* var135
/* : Object */;
490 val
* var136
/* : String */;
491 val
* var137
/* : FlowContext */;
492 short int var138
/* : Bool */;
493 static val
* varonce139
;
494 val
* var140
/* : String */;
495 char* var141
/* : NativeString */;
496 long var142
/* : Int */;
497 val
* var143
/* : String */;
498 long var144
/* : Int */;
499 static val
* varonce145
;
500 val
* var146
/* : String */;
501 char* var147
/* : NativeString */;
502 long var148
/* : Int */;
503 val
* var149
/* : String */;
504 val
* var150
/* : FlowContext */;
505 long var151
/* : Int */;
506 static val
* varonce152
;
507 val
* var153
/* : String */;
508 char* var154
/* : NativeString */;
509 long var155
/* : Int */;
510 val
* var156
/* : String */;
511 val
* var157
/* : Array[Object] */;
512 long var158
/* : Int */;
513 val
* var159
/* : NativeArray[Object] */;
514 val
* var160
/* : Object */;
515 val
* var161
/* : Object */;
516 val
* var162
/* : String */;
517 static val
* varonce164
;
518 val
* var165
/* : String */;
519 char* var166
/* : NativeString */;
520 long var167
/* : Int */;
521 val
* var168
/* : String */;
522 var
= NEW_file__OFStream(&type_file__OFStream
);
528 var4
= string__NativeString__to_s_with_length(var2
, var3
);
532 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_file__OFStream__open
]))(var
, var1
) /* open on <var:OFStream>*/;
537 var7
= "digraph {\n";
539 var9
= string__NativeString__to_s_with_length(var7
, var8
);
543 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var6
) /* write on <var_file:OFStream>*/;
544 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
545 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[FlowContext]>*/;
547 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
549 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
556 var18
= string__NativeString__to_s_with_length(var16
, var17
);
561 var19
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
562 /* <var19:nullable ANode> isa AExpr */
563 cltype
= type_parser_nodes__AExpr
.color
;
564 idtype
= type_parser_nodes__AExpr
.id
;
568 if(cltype
>= var19
->type
->table_size
) {
571 var20
= var19
->type
->type_table
[cltype
] == idtype
;
575 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
577 ((void (*)(val
*, long))(var21
->class->vft
[COLOR_array__Array__with_capacity
]))(var21
, var22
) /* with_capacity on <var21:Array[Object]>*/;
584 var27
= string__NativeString__to_s_with_length(var25
, var26
);
588 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var24
) /* add on <var_:Array[Object]>*/;
589 var28
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
590 /* <var28:nullable ANode> isa AExpr */
591 cltype30
= type_parser_nodes__AExpr
.color
;
592 idtype31
= type_parser_nodes__AExpr
.id
;
596 if(cltype30
>= var28
->type
->table_size
) {
599 var29
= var28
->type
->type_table
[cltype30
] == idtype31
;
603 var_class_name
= var28
== NULL ?
"null" : var28
->type
->name
;
604 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name
);
605 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 89);
608 var32
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var28
) /* after_flow_context on <var28:nullable ANode(AExpr)>*/;
610 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
611 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 89);
614 var33
= ((long (*)(val
*))(var32
->class->vft
[COLOR_kernel__Object__object_id
]))(var32
) /* object_id on <var32:nullable FlowContext>*/;
616 var34
= BOX_kernel__Int(var33
); /* autobox from Int to nullable Object */
617 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var34
) /* add on <var_:Array[Object]>*/;
623 var39
= string__NativeString__to_s_with_length(var37
, var38
);
627 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var36
) /* add on <var_:Array[Object]>*/;
628 var40
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
637 var45
= string__NativeString__to_s_with_length(var43
, var44
);
641 var46
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
645 var49
= " [label=\"";
647 var51
= string__NativeString__to_s_with_length(var49
, var50
);
651 var52
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
657 var57
= string__NativeString__to_s_with_length(var55
, var56
);
661 var58
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
663 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
664 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 91);
667 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var58
) /* location on <var58:nullable ANode>*/;
674 var64
= string__NativeString__to_s_with_length(var62
, var63
);
678 var65
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
680 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
681 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 91);
684 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__class_name
]))(var65
) /* class_name on <var65:nullable ANode>*/;
691 var71
= string__NativeString__to_s_with_length(var69
, var70
);
695 var72
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__name
]))(var_f
) /* name on <var_f:FlowContext>*/;
701 var77
= string__NativeString__to_s_with_length(var75
, var76
);
705 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
706 { /* var78 = array_instance Array[Object] */
708 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
709 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var42
;
710 var81
= BOX_kernel__Int(var46
); /* autobox from Int to Object */
711 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var81
;
712 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var48
;
713 var82
= BOX_kernel__Int(var52
); /* autobox from Int to Object */
714 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var82
;
715 ((struct instance_array__NativeArray
*)var80
)->values
[4] = (val
*) var54
;
716 ((struct instance_array__NativeArray
*)var80
)->values
[5] = (val
*) var59
;
717 ((struct instance_array__NativeArray
*)var80
)->values
[6] = (val
*) var61
;
718 ((struct instance_array__NativeArray
*)var80
)->values
[7] = (val
*) var66
;
719 ((struct instance_array__NativeArray
*)var80
)->values
[8] = (val
*) var68
;
720 ((struct instance_array__NativeArray
*)var80
)->values
[9] = (val
*) var72
;
721 ((struct instance_array__NativeArray
*)var80
)->values
[10] = (val
*) var_s
;
722 ((struct instance_array__NativeArray
*)var80
)->values
[11] = (val
*) var74
;
723 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
725 var83
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
726 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var83
) /* write on <var_file:OFStream>*/;
727 var84
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_f
) /* previous on <var_f:FlowContext>*/;
728 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var84
) /* iterator on <var84:Array[FlowContext]>*/;
730 var86
= ((short int (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var85
) /* is_ok on <var85:Iterator[nullable Object]>*/;
732 var87
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var85
) /* item on <var85:Iterator[nullable Object]>*/;
739 var92
= string__NativeString__to_s_with_length(var90
, var91
);
743 var93
= ((long (*)(val
*))(var_p
->class->vft
[COLOR_kernel__Object__object_id
]))(var_p
) /* object_id on <var_p:FlowContext>*/;
749 var98
= string__NativeString__to_s_with_length(var96
, var97
);
753 var99
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
759 var104
= string__NativeString__to_s_with_length(var102
, var103
);
763 var105
= NEW_array__Array(&type_array__Arraykernel__Object
);
764 { /* var105 = array_instance Array[Object] */
766 var107
= NEW_array__NativeArray(var106
, &type_array__NativeArraykernel__Object
);
767 ((struct instance_array__NativeArray
*)var107
)->values
[0] = (val
*) var89
;
768 var108
= BOX_kernel__Int(var93
); /* autobox from Int to Object */
769 ((struct instance_array__NativeArray
*)var107
)->values
[1] = (val
*) var108
;
770 ((struct instance_array__NativeArray
*)var107
)->values
[2] = (val
*) var95
;
771 var109
= BOX_kernel__Int(var99
); /* autobox from Int to Object */
772 ((struct instance_array__NativeArray
*)var107
)->values
[3] = (val
*) var109
;
773 ((struct instance_array__NativeArray
*)var107
)->values
[4] = (val
*) var101
;
774 ((void (*)(val
*, val
*, long))(var105
->class->vft
[COLOR_array__Array__with_native
]))(var105
, var107
, var106
) /* with_native on <var105:Array[Object]>*/;
776 var110
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_string__Object__to_s
]))(var105
) /* to_s on <var105:Array[Object]>*/;
777 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var110
) /* write on <var_file:OFStream>*/;
778 CONTINUE_label
: (void)0;
779 ((void (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var85
) /* next on <var85:Iterator[nullable Object]>*/;
781 BREAK_label
: (void)0;
782 var111
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_f
) /* when_true on <var_f:FlowContext>*/;
783 var112
= ((short int (*)(val
*, val
*))(var111
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var111
, var_f
) /* != on <var111:FlowContext>*/;
790 var117
= string__NativeString__to_s_with_length(var115
, var116
);
794 var118
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
800 var123
= string__NativeString__to_s_with_length(var121
, var122
);
804 var124
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_f
) /* when_true on <var_f:FlowContext>*/;
805 var125
= ((long (*)(val
*))(var124
->class->vft
[COLOR_kernel__Object__object_id
]))(var124
) /* object_id on <var124:FlowContext>*/;
809 var128
= "[label=TRUE, style=dotted];\n";
811 var130
= string__NativeString__to_s_with_length(var128
, var129
);
815 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
816 { /* var131 = array_instance Array[Object] */
818 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
819 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var114
;
820 var134
= BOX_kernel__Int(var118
); /* autobox from Int to Object */
821 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var134
;
822 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var120
;
823 var135
= BOX_kernel__Int(var125
); /* autobox from Int to Object */
824 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var135
;
825 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var127
;
826 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
828 var136
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
829 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var136
) /* write on <var_file:OFStream>*/;
832 var137
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_f
) /* when_false on <var_f:FlowContext>*/;
833 var138
= ((short int (*)(val
*, val
*))(var137
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var137
, var_f
) /* != on <var137:FlowContext>*/;
840 var143
= string__NativeString__to_s_with_length(var141
, var142
);
844 var144
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
850 var149
= string__NativeString__to_s_with_length(var147
, var148
);
854 var150
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_f
) /* when_false on <var_f:FlowContext>*/;
855 var151
= ((long (*)(val
*))(var150
->class->vft
[COLOR_kernel__Object__object_id
]))(var150
) /* object_id on <var150:FlowContext>*/;
859 var154
= "[label=FALSE,style=dotted];\n";
861 var156
= string__NativeString__to_s_with_length(var154
, var155
);
865 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
866 { /* var157 = array_instance Array[Object] */
868 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
869 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var140
;
870 var160
= BOX_kernel__Int(var144
); /* autobox from Int to Object */
871 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var160
;
872 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var146
;
873 var161
= BOX_kernel__Int(var151
); /* autobox from Int to Object */
874 ((struct instance_array__NativeArray
*)var159
)->values
[3] = (val
*) var161
;
875 ((struct instance_array__NativeArray
*)var159
)->values
[4] = (val
*) var153
;
876 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
878 var162
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
879 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var162
) /* write on <var_file:OFStream>*/;
882 CONTINUE_label163
: (void)0;
883 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
885 BREAK_label163
: (void)0;
891 var168
= string__NativeString__to_s_with_length(var166
, var167
);
895 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var165
) /* write on <var_file:OFStream>*/;
896 ((void (*)(val
*))(var_file
->class->vft
[COLOR_stream__IOS__close
]))(var_file
) /* close on <var_file:OFStream>*/;
899 /* method flow#FlowVisitor#printflow for (self: Object) */
900 void VIRTUAL_flow__FlowVisitor__printflow(val
* self
) {
901 flow__FlowVisitor__printflow(self
);
904 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
905 val
* flow__FlowVisitor__make_sub_flow(val
* self
) {
906 val
* var
/* : FlowContext */;
907 val
* var1
/* : FlowContext */;
908 val
* var_flow
/* var flow: FlowContext */;
909 val
* var2
/* : Array[FlowContext] */;
910 val
* var3
/* : nullable ANode */;
911 val
* var4
/* : FlowContext */;
912 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
913 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
915 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
916 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
917 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
918 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
919 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
920 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var4
) /* add_previous on <var_flow:FlowContext>*/;
921 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
927 /* method flow#FlowVisitor#make_sub_flow for (self: Object): FlowContext */
928 val
* VIRTUAL_flow__FlowVisitor__make_sub_flow(val
* self
) {
929 val
* var
/* : FlowContext */;
930 val
* var1
/* : FlowContext */;
931 var1
= flow__FlowVisitor__make_sub_flow(self
);
936 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
937 val
* flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
938 val
* var
/* : FlowContext */;
939 val
* var_flow1
/* var flow1: FlowContext */;
940 val
* var_flow2
/* var flow2: FlowContext */;
941 val
* var1
/* : FlowContext */;
942 val
* var_flow
/* var flow: FlowContext */;
943 val
* var2
/* : Array[FlowContext] */;
944 val
* var3
/* : nullable ANode */;
947 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
948 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
950 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
951 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
952 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
953 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
954 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_flow1
) /* add_previous on <var_flow:FlowContext>*/;
955 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_flow2
) /* add_previous on <var_flow:FlowContext>*/;
956 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
962 /* method flow#FlowVisitor#make_merge_flow for (self: Object, FlowContext, FlowContext): FlowContext */
963 val
* VIRTUAL_flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
964 val
* var
/* : FlowContext */;
965 val
* var1
/* : FlowContext */;
966 var1
= flow__FlowVisitor__make_merge_flow(self
, p0
, p1
);
971 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
972 val
* flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
973 val
* var
/* : FlowContext */;
974 val
* var_true_flow
/* var true_flow: FlowContext */;
975 val
* var_false_flow
/* var false_flow: FlowContext */;
976 val
* var1
/* : FlowContext */;
977 val
* var_flow
/* var flow: FlowContext */;
978 val
* var2
/* : Array[FlowContext] */;
979 val
* var3
/* : nullable ANode */;
982 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
983 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
985 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
986 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
987 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
988 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
989 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_true_flow
) /* add_previous on <var_flow:FlowContext>*/;
990 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_false_flow
) /* add_previous on <var_flow:FlowContext>*/;
991 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_true_61d
]))(var_flow
, var_true_flow
) /* when_true= on <var_flow:FlowContext>*/;
992 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_false_61d
]))(var_flow
, var_false_flow
) /* when_false= on <var_flow:FlowContext>*/;
993 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
999 /* method flow#FlowVisitor#make_true_false_flow for (self: Object, FlowContext, FlowContext): FlowContext */
1000 val
* VIRTUAL_flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
1001 val
* var
/* : FlowContext */;
1002 val
* var1
/* : FlowContext */;
1003 var1
= flow__FlowVisitor__make_true_false_flow(self
, p0
, p1
);
1008 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
1009 val
* flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1010 val
* var
/* : FlowContext */;
1011 val
* var1
/* : FlowContext */;
1012 val
* var_orig_flow
/* var orig_flow: FlowContext */;
1013 val
* var2
/* : FlowContext */;
1014 val
* var_true_flow
/* var true_flow: FlowContext */;
1015 val
* var3
/* : Array[FlowContext] */;
1016 val
* var4
/* : nullable ANode */;
1017 static val
* varonce
;
1018 val
* var5
/* : String */;
1019 char* var6
/* : NativeString */;
1020 long var7
/* : Int */;
1021 val
* var8
/* : String */;
1022 val
* var9
/* : FlowContext */;
1023 val
* var_false_flow
/* var false_flow: FlowContext */;
1024 val
* var10
/* : Array[FlowContext] */;
1025 val
* var11
/* : nullable ANode */;
1026 static val
* varonce12
;
1027 val
* var13
/* : String */;
1028 char* var14
/* : NativeString */;
1029 long var15
/* : Int */;
1030 val
* var16
/* : String */;
1031 val
* var17
/* : FlowContext */;
1032 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1033 var_orig_flow
= var1
;
1034 var2
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1035 ((void (*)(val
*))(var2
->class->vft
[COLOR_flow__FlowContext__init
]))(var2
) /* init on <var2:FlowContext>*/;
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 var_false_flow
= var9
;
1055 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1056 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var10
, var_false_flow
) /* add on <var10:Array[FlowContext]>*/;
1057 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1058 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_false_flow
, var11
) /* node= on <var_false_flow:FlowContext>*/;
1059 ((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>*/;
1065 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1069 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_false_flow
, var13
) /* name= on <var_false_flow:FlowContext>*/;
1070 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>*/;
1076 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: Object): FlowContext */
1077 val
* VIRTUAL_flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1078 val
* var
/* : FlowContext */;
1079 val
* var1
/* : FlowContext */;
1080 var1
= flow__FlowVisitor__make_sub_true_false_flow(self
);
1085 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
1086 val
* flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1087 val
* var
/* : FlowContext */;
1088 val
* var1
/* : FlowContext */;
1089 val
* var_flow
/* var flow: FlowContext */;
1090 val
* var2
/* : Array[FlowContext] */;
1091 val
* var3
/* : nullable ANode */;
1092 val
* var4
/* : FlowContext */;
1093 short int var5
/* : Bool */;
1094 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1095 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
1097 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1098 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
1099 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1100 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
1101 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1102 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var4
) /* add_previous on <var_flow:FlowContext>*/;
1104 ((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>*/;
1105 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
1111 /* method flow#FlowVisitor#make_unreachable_flow for (self: Object): FlowContext */
1112 val
* VIRTUAL_flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1113 val
* var
/* : FlowContext */;
1114 val
* var1
/* : FlowContext */;
1115 var1
= flow__FlowVisitor__make_unreachable_flow(self
);
1120 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
1121 void flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1122 val
* var_before_loop
/* var before_loop: FlowContext */;
1123 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1124 val
* var
/* : null */;
1125 short int var1
/* : Bool */;
1126 val
* var2
/* : Array[AContinueExpr] */;
1127 val
* var3
/* : Iterator[nullable Object] */;
1128 short int var4
/* : Bool */;
1129 val
* var5
/* : nullable Object */;
1130 val
* var_b
/* var b: AContinueExpr */;
1131 val
* var6
/* : nullable FlowContext */;
1132 val
* var_before
/* var before: nullable FlowContext */;
1133 val
* var7
/* : null */;
1134 short int var8
/* : Bool */;
1135 var_before_loop
= p0
;
1136 var_escapemark
= p1
;
1138 if (var_escapemark
== NULL
) {
1139 var1
= 1; /* is null */
1141 var1
= 0; /* arg is null but recv is not */
1147 var2
= ((val
* (*)(val
*))(var_escapemark
->class->vft
[COLOR_scope__EscapeMark__continues
]))(var_escapemark
) /* continues on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1148 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[AContinueExpr]>*/;
1150 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1152 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1154 var6
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_flow__AContinueExpr__before_flow_context
]))(var_b
) /* before_flow_context on <var_b:AContinueExpr>*/;
1157 if (var_before
== NULL
) {
1158 var8
= 1; /* is null */
1160 var8
= 0; /* arg is null but recv is not */
1163 goto CONTINUE_label
;
1166 ((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>*/;
1167 CONTINUE_label
: (void)0;
1168 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1170 BREAK_label
: (void)0;
1173 /* method flow#FlowVisitor#merge_continues_to for (self: Object, FlowContext, nullable EscapeMark) */
1174 void VIRTUAL_flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1175 flow__FlowVisitor__merge_continues_to(self
, p0
, p1
);
1178 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1179 void flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1180 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1181 val
* var
/* : null */;
1182 short int var1
/* : Bool */;
1183 val
* var2
/* : Array[ABreakExpr] */;
1184 val
* var3
/* : Iterator[nullable Object] */;
1185 short int var4
/* : Bool */;
1186 val
* var5
/* : nullable Object */;
1187 val
* var_b
/* var b: ABreakExpr */;
1188 val
* var6
/* : nullable FlowContext */;
1189 val
* var_before
/* var before: nullable FlowContext */;
1190 val
* var7
/* : null */;
1191 short int var8
/* : Bool */;
1192 val
* var9
/* : FlowContext */;
1193 val
* var10
/* : FlowContext */;
1194 var_escapemark
= p0
;
1196 if (var_escapemark
== NULL
) {
1197 var1
= 1; /* is null */
1199 var1
= 0; /* arg is null but recv is not */
1205 var2
= ((val
* (*)(val
*))(var_escapemark
->class->vft
[COLOR_scope__EscapeMark__breaks
]))(var_escapemark
) /* breaks on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1206 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[ABreakExpr]>*/;
1208 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1210 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1212 var6
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_flow__ABreakExpr__before_flow_context
]))(var_b
) /* before_flow_context on <var_b:ABreakExpr>*/;
1215 if (var_before
== NULL
) {
1216 var8
= 1; /* is null */
1218 var8
= 0; /* arg is null but recv is not */
1221 goto CONTINUE_label
;
1224 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1225 var10
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(self
, var9
, var_before
) /* make_merge_flow on <self:FlowVisitor>*/;
1227 CONTINUE_label
: (void)0;
1228 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1230 BREAK_label
: (void)0;
1233 /* method flow#FlowVisitor#merge_breaks for (self: Object, nullable EscapeMark) */
1234 void VIRTUAL_flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1235 flow__FlowVisitor__merge_breaks(self
, p0
);
1238 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1239 val
* flow__FlowContext__previous(val
* self
) {
1240 val
* var
/* : Array[FlowContext] */;
1241 val
* var1
/* : Array[FlowContext] */;
1242 var1
= self
->attrs
[COLOR_flow__FlowContext___64dprevious
].val
; /* @previous on <self:FlowContext> */
1244 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @previous");
1245 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 192);
1252 /* method flow#FlowContext#previous for (self: Object): Array[FlowContext] */
1253 val
* VIRTUAL_flow__FlowContext__previous(val
* self
) {
1254 val
* var
/* : Array[FlowContext] */;
1255 val
* var1
/* : Array[FlowContext] */;
1256 var1
= flow__FlowContext__previous(self
);
1261 /* method flow#FlowContext#previous= for (self: FlowContext, Array[FlowContext]) */
1262 void flow__FlowContext__previous_61d(val
* self
, val
* p0
) {
1263 self
->attrs
[COLOR_flow__FlowContext___64dprevious
].val
= p0
; /* @previous on <self:FlowContext> */
1266 /* method flow#FlowContext#previous= for (self: Object, Array[FlowContext]) */
1267 void VIRTUAL_flow__FlowContext__previous_61d(val
* self
, val
* p0
) {
1268 flow__FlowContext__previous_61d(self
, p0
);
1271 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1272 val
* flow__FlowContext__loops(val
* self
) {
1273 val
* var
/* : Array[FlowContext] */;
1274 val
* var1
/* : Array[FlowContext] */;
1275 var1
= self
->attrs
[COLOR_flow__FlowContext___64dloops
].val
; /* @loops on <self:FlowContext> */
1277 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @loops");
1278 fprintf(stderr
, " (%s:%d)\n", "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", "Uninitialized attribute @name");
1481 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 225);
1488 /* method flow#FlowContext#name for (self: Object): String */
1489 val
* VIRTUAL_flow__FlowContext__name(val
* self
) {
1490 val
* var
/* : String */;
1491 val
* var1
/* : String */;
1492 var1
= flow__FlowContext__name(self
);
1497 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1498 void flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1499 self
->attrs
[COLOR_flow__FlowContext___64dname
].val
= p0
; /* @name on <self:FlowContext> */
1502 /* method flow#FlowContext#name= for (self: Object, String) */
1503 void VIRTUAL_flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1504 flow__FlowContext__name_61d(self
, p0
);
1507 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1508 val
* flow__FlowContext__when_true(val
* self
) {
1509 val
* var
/* : FlowContext */;
1510 val
* var1
/* : FlowContext */;
1511 var1
= self
->attrs
[COLOR_flow__FlowContext___64dwhen_true
].val
; /* @when_true on <self:FlowContext> */
1513 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @when_true");
1514 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 228);
1521 /* method flow#FlowContext#when_true for (self: Object): FlowContext */
1522 val
* VIRTUAL_flow__FlowContext__when_true(val
* self
) {
1523 val
* var
/* : FlowContext */;
1524 val
* var1
/* : FlowContext */;
1525 var1
= flow__FlowContext__when_true(self
);
1530 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1531 void flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1532 self
->attrs
[COLOR_flow__FlowContext___64dwhen_true
].val
= p0
; /* @when_true on <self:FlowContext> */
1535 /* method flow#FlowContext#when_true= for (self: Object, FlowContext) */
1536 void VIRTUAL_flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1537 flow__FlowContext__when_true_61d(self
, p0
);
1540 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1541 val
* flow__FlowContext__when_false(val
* self
) {
1542 val
* var
/* : FlowContext */;
1543 val
* var1
/* : FlowContext */;
1544 var1
= self
->attrs
[COLOR_flow__FlowContext___64dwhen_false
].val
; /* @when_false on <self:FlowContext> */
1546 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @when_false");
1547 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 231);
1554 /* method flow#FlowContext#when_false for (self: Object): FlowContext */
1555 val
* VIRTUAL_flow__FlowContext__when_false(val
* self
) {
1556 val
* var
/* : FlowContext */;
1557 val
* var1
/* : FlowContext */;
1558 var1
= flow__FlowContext__when_false(self
);
1563 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1564 void flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1565 self
->attrs
[COLOR_flow__FlowContext___64dwhen_false
].val
= p0
; /* @when_false on <self:FlowContext> */
1568 /* method flow#FlowContext#when_false= for (self: Object, FlowContext) */
1569 void VIRTUAL_flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1570 flow__FlowContext__when_false_61d(self
, p0
);
1573 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1574 void flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1575 val
* var_flow
/* var flow: FlowContext */;
1576 short int var
/* : Bool */;
1577 short int var1
/* : Bool */;
1578 short int var2
/* : Bool */;
1579 short int var_
/* var : Bool */;
1580 val
* var3
/* : Array[FlowContext] */;
1581 short int var4
/* : Bool */;
1582 short int var5
/* : Bool */;
1583 val
* var6
/* : Array[FlowContext] */;
1585 var1
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
1589 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1590 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_flow
) /* has on <var3:Array[FlowContext]>*/;
1597 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1598 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_flow
) /* add on <var6:Array[FlowContext]>*/;
1603 /* method flow#FlowContext#add_previous for (self: Object, FlowContext) */
1604 void VIRTUAL_flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1605 flow__FlowContext__add_previous(self
, p0
);
1608 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1609 void flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1610 val
* var_flow
/* var flow: FlowContext */;
1611 short int var
/* : Bool */;
1612 short int var1
/* : Bool */;
1613 short int var2
/* : Bool */;
1614 short int var_
/* var : Bool */;
1615 val
* var3
/* : Array[FlowContext] */;
1616 short int var4
/* : Bool */;
1617 short int var5
/* : Bool */;
1618 val
* var6
/* : Array[FlowContext] */;
1620 var1
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
1624 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1625 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_flow
) /* has on <var3:Array[FlowContext]>*/;
1632 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__loops
]))(self
) /* loops on <self:FlowContext>*/;
1633 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_flow
) /* add on <var6:Array[FlowContext]>*/;
1638 /* method flow#FlowContext#add_loop for (self: Object, FlowContext) */
1639 void VIRTUAL_flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1640 flow__FlowContext__add_loop(self
, p0
);
1643 /* method flow#FlowContext#init for (self: FlowContext) */
1644 void flow__FlowContext__init(val
* self
) {
1647 /* method flow#FlowContext#init for (self: Object) */
1648 void VIRTUAL_flow__FlowContext__init(val
* self
) {
1649 flow__FlowContext__init(self
);
1652 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1653 void flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1654 val
* var_v
/* var v: FlowVisitor */;
1656 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1659 /* method flow#ANode#accept_flow_visitor for (self: Object, FlowVisitor) */
1660 void VIRTUAL_flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1661 flow__ANode__accept_flow_visitor(self
, p0
);
1664 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1665 void flow__APropdef__do_flow(val
* self
, val
* p0
) {
1666 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1667 val
* var
/* : FlowVisitor */;
1668 val
* var_v
/* var v: FlowVisitor */;
1669 var_toolcontext
= p0
;
1670 var
= NEW_flow__FlowVisitor(&type_flow__FlowVisitor
);
1671 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_flow__FlowVisitor__init
]))(var
, var_toolcontext
) /* init on <var:FlowVisitor>*/;
1673 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, self
) /* enter_visit on <var_v:FlowVisitor>*/;
1676 /* method flow#APropdef#do_flow for (self: Object, ToolContext) */
1677 void VIRTUAL_flow__APropdef__do_flow(val
* self
, val
* p0
) {
1678 flow__APropdef__do_flow(self
, p0
);
1681 /* method flow#APropdef#before_flow_context for (self: APropdef): nullable FlowContext */
1682 val
* flow__APropdef__before_flow_context(val
* self
) {
1683 val
* var
/* : nullable FlowContext */;
1684 val
* var1
/* : nullable FlowContext */;
1685 var1
= self
->attrs
[COLOR_flow__APropdef___64dbefore_flow_context
].val
; /* @before_flow_context on <self:APropdef> */
1690 /* method flow#APropdef#before_flow_context for (self: Object): nullable FlowContext */
1691 val
* VIRTUAL_flow__APropdef__before_flow_context(val
* self
) {
1692 val
* var
/* : nullable FlowContext */;
1693 val
* var1
/* : nullable FlowContext */;
1694 var1
= flow__APropdef__before_flow_context(self
);
1699 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1700 void flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1701 self
->attrs
[COLOR_flow__APropdef___64dbefore_flow_context
].val
= p0
; /* @before_flow_context on <self:APropdef> */
1704 /* method flow#APropdef#before_flow_context= for (self: Object, nullable FlowContext) */
1705 void VIRTUAL_flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1706 flow__APropdef__before_flow_context_61d(self
, p0
);
1709 /* method flow#APropdef#after_flow_context for (self: APropdef): nullable FlowContext */
1710 val
* flow__APropdef__after_flow_context(val
* self
) {
1711 val
* var
/* : nullable FlowContext */;
1712 val
* var1
/* : nullable FlowContext */;
1713 var1
= self
->attrs
[COLOR_flow__APropdef___64dafter_flow_context
].val
; /* @after_flow_context on <self:APropdef> */
1718 /* method flow#APropdef#after_flow_context for (self: Object): nullable FlowContext */
1719 val
* VIRTUAL_flow__APropdef__after_flow_context(val
* self
) {
1720 val
* var
/* : nullable FlowContext */;
1721 val
* var1
/* : nullable FlowContext */;
1722 var1
= flow__APropdef__after_flow_context(self
);
1727 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1728 void flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1729 self
->attrs
[COLOR_flow__APropdef___64dafter_flow_context
].val
= p0
; /* @after_flow_context on <self:APropdef> */
1732 /* method flow#APropdef#after_flow_context= for (self: Object, nullable FlowContext) */
1733 void VIRTUAL_flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1734 flow__APropdef__after_flow_context_61d(self
, p0
);
1737 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
1738 void flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
1739 val
* var_v
/* var v: FlowVisitor */;
1740 val
* var
/* : FlowContext */;
1741 val
* var1
/* : FlowContext */;
1743 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1744 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__before_flow_context_61d
]))(self
, var
) /* before_flow_context= on <self:APropdef>*/;
1745 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:APropdef>*/;
1746 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1747 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__after_flow_context_61d
]))(self
, var1
) /* after_flow_context= on <self:APropdef>*/;
1750 /* method flow#APropdef#accept_flow_visitor for (self: Object, FlowVisitor) */
1751 void VIRTUAL_flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
1752 flow__APropdef__accept_flow_visitor(self
, p0
);
1755 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
1756 val
* flow__AExpr__after_flow_context(val
* self
) {
1757 val
* var
/* : nullable FlowContext */;
1758 val
* var1
/* : nullable FlowContext */;
1759 var1
= self
->attrs
[COLOR_flow__AExpr___64dafter_flow_context
].val
; /* @after_flow_context on <self:AExpr> */
1764 /* method flow#AExpr#after_flow_context for (self: Object): nullable FlowContext */
1765 val
* VIRTUAL_flow__AExpr__after_flow_context(val
* self
) {
1766 val
* var
/* : nullable FlowContext */;
1767 val
* var1
/* : nullable FlowContext */;
1768 var1
= flow__AExpr__after_flow_context(self
);
1773 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
1774 void flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
1775 self
->attrs
[COLOR_flow__AExpr___64dafter_flow_context
].val
= p0
; /* @after_flow_context on <self:AExpr> */
1778 /* method flow#AExpr#after_flow_context= for (self: Object, nullable FlowContext) */
1779 void VIRTUAL_flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
1780 flow__AExpr__after_flow_context_61d(self
, p0
);
1783 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1784 void flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1785 val
* var_v
/* var v: FlowVisitor */;
1786 val
* var
/* : FlowContext */;
1788 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AVarAssignExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AVarAssignExpr>*/;
1789 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
1790 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(self
, var
) /* after_flow_context= on <self:AVarAssignExpr>*/;
1793 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1794 void VIRTUAL_flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1795 flow__AVarAssignExpr__accept_flow_visitor(self
, p0
);
1798 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1799 void flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1800 val
* var_v
/* var v: FlowVisitor */;
1801 val
* var
/* : FlowContext */;
1803 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReassignFormExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReassignFormExpr>*/;
1804 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
1805 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(self
, var
) /* after_flow_context= on <self:AReassignFormExpr>*/;
1808 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1809 void VIRTUAL_flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1810 flow__AReassignFormExpr__accept_flow_visitor(self
, p0
);
1813 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1814 void flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1815 val
* var_v
/* var v: FlowVisitor */;
1816 val
* var
/* : ANodes[AExpr] */;
1817 val
* var1
/* : Iterator[nullable Object] */;
1818 short int var2
/* : Bool */;
1819 val
* var3
/* : nullable Object */;
1820 val
* var_e
/* var e: AExpr */;
1821 val
* var4
/* : FlowContext */;
1822 short int var5
/* : Bool */;
1823 short int var6
/* : Bool */;
1824 val
* var7
/* : FlowContext */;
1825 short int var8
/* : Bool */;
1826 short int var9
/* : Bool */;
1827 val
* var10
/* : FlowContext */;
1828 short int var11
/* : Bool */;
1829 val
* var12
/* : ToolContext */;
1830 val
* var13
/* : Location */;
1831 static val
* varonce
;
1832 val
* var14
/* : String */;
1833 char* var15
/* : NativeString */;
1834 long var16
/* : Int */;
1835 val
* var17
/* : String */;
1837 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
1838 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
1840 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
1842 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
1844 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1845 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var4
) /* is_unreachable on <var4:FlowContext>*/;
1848 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_e
) /* enter_visit on <var_v:FlowVisitor>*/;
1850 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1851 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_flow__FlowContext__is_already_unreachable
]))(var7
) /* is_already_unreachable on <var7:FlowContext>*/;
1854 var10
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1856 ((void (*)(val
*, short int))(var10
->class->vft
[COLOR_flow__FlowContext__is_already_unreachable_61d
]))(var10
, var11
) /* is_already_unreachable= on <var10:FlowContext>*/;
1857 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__toolcontext
]))(var_v
) /* toolcontext on <var_v:FlowVisitor>*/;
1858 var13
= ((val
* (*)(val
*))(var_e
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_e
) /* hot_location on <var_e:AExpr>*/;
1862 var15
= "Error: unreachable statement.";
1864 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1868 ((void (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var12
, var13
, var14
) /* error on <var12:ToolContext>*/;
1872 CONTINUE_label
: (void)0;
1873 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
1875 BREAK_label
: (void)0;
1878 /* method flow#ABlockExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1879 void VIRTUAL_flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1880 flow__ABlockExpr__accept_flow_visitor(self
, p0
);
1883 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1884 void flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1885 val
* var_v
/* var v: FlowVisitor */;
1886 val
* var
/* : FlowContext */;
1888 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReturnExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReturnExpr>*/;
1889 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
1893 /* method flow#AReturnExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1894 void VIRTUAL_flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1895 flow__AReturnExpr__accept_flow_visitor(self
, p0
);
1898 /* method flow#AContinueExpr#before_flow_context for (self: AContinueExpr): nullable FlowContext */
1899 val
* flow__AContinueExpr__before_flow_context(val
* self
) {
1900 val
* var
/* : nullable FlowContext */;
1901 val
* var1
/* : nullable FlowContext */;
1902 val
* var_after
/* var after: nullable FlowContext */;
1903 val
* var2
/* : null */;
1904 short int var3
/* : Bool */;
1905 val
* var4
/* : null */;
1906 val
* var5
/* : Array[FlowContext] */;
1907 val
* var6
/* : nullable Object */;
1908 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AContinueExpr>*/;
1911 if (var_after
== NULL
) {
1912 var3
= 1; /* is null */
1914 var3
= 0; /* arg is null but recv is not */
1922 var5
= ((val
* (*)(val
*))(var_after
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_after
) /* previous on <var_after:nullable FlowContext(FlowContext)>*/;
1923 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var5
) /* first on <var5:Array[FlowContext]>*/;
1929 /* method flow#AContinueExpr#before_flow_context for (self: Object): nullable FlowContext */
1930 val
* VIRTUAL_flow__AContinueExpr__before_flow_context(val
* self
) {
1931 val
* var
/* : nullable FlowContext */;
1932 val
* var1
/* : nullable FlowContext */;
1933 var1
= flow__AContinueExpr__before_flow_context(self
);
1938 /* method flow#AContinueExpr#accept_flow_visitor for (self: AContinueExpr, FlowVisitor) */
1939 void flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1940 val
* var_v
/* var v: FlowVisitor */;
1941 val
* var
/* : FlowContext */;
1943 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AContinueExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AContinueExpr>*/;
1944 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
1948 /* method flow#AContinueExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1949 void VIRTUAL_flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1950 flow__AContinueExpr__accept_flow_visitor(self
, p0
);
1953 /* method flow#ABreakExpr#before_flow_context for (self: ABreakExpr): nullable FlowContext */
1954 val
* flow__ABreakExpr__before_flow_context(val
* self
) {
1955 val
* var
/* : nullable FlowContext */;
1956 val
* var1
/* : nullable FlowContext */;
1957 val
* var_after
/* var after: nullable FlowContext */;
1958 val
* var2
/* : null */;
1959 short int var3
/* : Bool */;
1960 val
* var4
/* : null */;
1961 val
* var5
/* : Array[FlowContext] */;
1962 val
* var6
/* : nullable Object */;
1963 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ABreakExpr>*/;
1966 if (var_after
== NULL
) {
1967 var3
= 1; /* is null */
1969 var3
= 0; /* arg is null but recv is not */
1977 var5
= ((val
* (*)(val
*))(var_after
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_after
) /* previous on <var_after:nullable FlowContext(FlowContext)>*/;
1978 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var5
) /* first on <var5:Array[FlowContext]>*/;
1984 /* method flow#ABreakExpr#before_flow_context for (self: Object): nullable FlowContext */
1985 val
* VIRTUAL_flow__ABreakExpr__before_flow_context(val
* self
) {
1986 val
* var
/* : nullable FlowContext */;
1987 val
* var1
/* : nullable FlowContext */;
1988 var1
= flow__ABreakExpr__before_flow_context(self
);
1993 /* method flow#ABreakExpr#accept_flow_visitor for (self: ABreakExpr, FlowVisitor) */
1994 void flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1995 val
* var_v
/* var v: FlowVisitor */;
1996 val
* var
/* : FlowContext */;
1998 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ABreakExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ABreakExpr>*/;
1999 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2003 /* method flow#ABreakExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2004 void VIRTUAL_flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2005 flow__ABreakExpr__accept_flow_visitor(self
, p0
);
2008 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
2009 void flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2010 val
* var_v
/* var v: FlowVisitor */;
2011 val
* var
/* : FlowContext */;
2013 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AAbortExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AAbortExpr>*/;
2014 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2018 /* method flow#AAbortExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2019 void VIRTUAL_flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2020 flow__AAbortExpr__accept_flow_visitor(self
, p0
);
2023 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
2024 void flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2025 val
* var_v
/* var v: FlowVisitor */;
2026 val
* var
/* : nullable EscapeMark */;
2028 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ADoExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ADoExpr>*/;
2029 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ADoExpr__escapemark
]))(self
) /* escapemark on <self:ADoExpr>*/;
2030 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var
) /* merge_breaks on <var_v:FlowVisitor>*/;
2033 /* method flow#ADoExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2034 void VIRTUAL_flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2035 flow__ADoExpr__accept_flow_visitor(self
, p0
);
2038 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
2039 void flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2040 val
* var_v
/* var v: FlowVisitor */;
2041 val
* var
/* : AExpr */;
2042 val
* var1
/* : FlowContext */;
2043 val
* var_after_expr
/* var after_expr: FlowContext */;
2044 val
* var2
/* : FlowContext */;
2045 val
* var3
/* : nullable AExpr */;
2046 val
* var4
/* : FlowContext */;
2047 val
* var_after_then
/* var after_then: FlowContext */;
2048 val
* var5
/* : FlowContext */;
2049 val
* var6
/* : nullable AExpr */;
2050 val
* var7
/* : FlowContext */;
2051 val
* var_after_else
/* var after_else: FlowContext */;
2052 val
* var8
/* : FlowContext */;
2054 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_expr
]))(self
) /* n_expr on <self:AIfExpr>*/;
2055 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2056 var_after_expr
= var1
;
2057 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2058 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2059 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_then
]))(self
) /* n_then on <self:AIfExpr>*/;
2060 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2061 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2062 var_after_then
= var4
;
2063 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2064 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var5
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2065 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_else
]))(self
) /* n_else on <self:AIfExpr>*/;
2066 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var6
) /* enter_visit on <var_v:FlowVisitor>*/;
2067 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2068 var_after_else
= var7
;
2069 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>*/;
2073 /* method flow#AIfExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2074 void VIRTUAL_flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2075 flow__AIfExpr__accept_flow_visitor(self
, p0
);
2078 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2079 void flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2080 val
* var_v
/* var v: FlowVisitor */;
2081 val
* var
/* : AExpr */;
2082 val
* var1
/* : FlowContext */;
2083 val
* var_after_expr
/* var after_expr: FlowContext */;
2084 val
* var2
/* : FlowContext */;
2085 val
* var3
/* : AExpr */;
2086 val
* var4
/* : FlowContext */;
2087 val
* var_after_then
/* var after_then: FlowContext */;
2088 val
* var5
/* : FlowContext */;
2089 val
* var6
/* : AExpr */;
2090 val
* var7
/* : FlowContext */;
2091 val
* var_after_else
/* var after_else: FlowContext */;
2092 val
* var8
/* : FlowContext */;
2094 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_expr
]))(self
) /* n_expr on <self:AIfexprExpr>*/;
2095 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2096 var_after_expr
= var1
;
2097 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2098 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2099 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_then
]))(self
) /* n_then on <self:AIfexprExpr>*/;
2100 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2101 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2102 var_after_then
= var4
;
2103 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2104 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var5
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2105 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_else
]))(self
) /* n_else on <self:AIfexprExpr>*/;
2106 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var6
) /* enter_visit on <var_v:FlowVisitor>*/;
2107 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2108 var_after_else
= var7
;
2109 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>*/;
2113 /* method flow#AIfexprExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2114 void VIRTUAL_flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2115 flow__AIfexprExpr__accept_flow_visitor(self
, p0
);
2118 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2119 void flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2120 val
* var_v
/* var v: FlowVisitor */;
2121 val
* var
/* : FlowContext */;
2122 val
* var_before_loop
/* var before_loop: FlowContext */;
2123 val
* var1
/* : AExpr */;
2124 val
* var2
/* : FlowContext */;
2125 val
* var_after_expr
/* var after_expr: FlowContext */;
2126 val
* var3
/* : FlowContext */;
2127 val
* var4
/* : nullable AExpr */;
2128 val
* var5
/* : FlowContext */;
2129 val
* var_after_block
/* var after_block: FlowContext */;
2130 val
* var6
/* : nullable EscapeMark */;
2131 val
* var7
/* : FlowContext */;
2132 val
* var8
/* : nullable EscapeMark */;
2134 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2135 var_before_loop
= var
;
2136 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_expr
]))(self
) /* n_expr on <self:AWhileExpr>*/;
2137 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var1
) /* visit_expr on <var_v:FlowVisitor>*/;
2138 var_after_expr
= var2
;
2139 var3
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2140 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var3
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2141 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_block
]))(self
) /* n_block on <self:AWhileExpr>*/;
2142 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var4
) /* enter_visit on <var_v:FlowVisitor>*/;
2143 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2144 var_after_block
= var5
;
2145 ((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>*/;
2146 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AWhileExpr__escapemark
]))(self
) /* escapemark on <self:AWhileExpr>*/;
2147 ((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>*/;
2148 var7
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2149 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var7
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2150 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AWhileExpr__escapemark
]))(self
) /* escapemark on <self:AWhileExpr>*/;
2151 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var8
) /* merge_breaks on <var_v:FlowVisitor>*/;
2154 /* method flow#AWhileExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2155 void VIRTUAL_flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2156 flow__AWhileExpr__accept_flow_visitor(self
, p0
);
2159 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2160 void flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2161 val
* var_v
/* var v: FlowVisitor */;
2162 val
* var
/* : FlowContext */;
2163 val
* var_before_loop
/* var before_loop: FlowContext */;
2164 val
* var1
/* : nullable AExpr */;
2165 val
* var2
/* : FlowContext */;
2166 val
* var_after_block
/* var after_block: FlowContext */;
2167 val
* var3
/* : nullable EscapeMark */;
2168 val
* var4
/* : FlowContext */;
2169 val
* var5
/* : nullable EscapeMark */;
2171 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2172 var_before_loop
= var
;
2173 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ALoopExpr__n_block
]))(self
) /* n_block on <self:ALoopExpr>*/;
2174 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var1
) /* enter_visit on <var_v:FlowVisitor>*/;
2175 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2176 var_after_block
= var2
;
2177 ((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>*/;
2178 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ALoopExpr__escapemark
]))(self
) /* escapemark on <self:ALoopExpr>*/;
2179 ((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>*/;
2180 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2182 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ALoopExpr__escapemark
]))(self
) /* escapemark on <self:ALoopExpr>*/;
2183 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var5
) /* merge_breaks on <var_v:FlowVisitor>*/;
2186 /* method flow#ALoopExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2187 void VIRTUAL_flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2188 flow__ALoopExpr__accept_flow_visitor(self
, p0
);
2191 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2192 void flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2193 val
* var_v
/* var v: FlowVisitor */;
2194 val
* var
/* : AExpr */;
2195 val
* var1
/* : FlowContext */;
2196 val
* var_before_loop
/* var before_loop: FlowContext */;
2197 val
* var2
/* : nullable AExpr */;
2198 val
* var3
/* : FlowContext */;
2199 val
* var_after_block
/* var after_block: FlowContext */;
2200 val
* var4
/* : nullable EscapeMark */;
2201 val
* var5
/* : FlowContext */;
2202 val
* var6
/* : FlowContext */;
2203 val
* var7
/* : nullable EscapeMark */;
2205 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
2206 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var
) /* enter_visit on <var_v:FlowVisitor>*/;
2207 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2208 var_before_loop
= var1
;
2209 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
2210 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var2
) /* enter_visit on <var_v:FlowVisitor>*/;
2211 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2212 var_after_block
= var3
;
2213 ((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>*/;
2214 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__escapemark
]))(self
) /* escapemark on <self:AForExpr>*/;
2215 ((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>*/;
2216 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2217 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>*/;
2219 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__escapemark
]))(self
) /* escapemark on <self:AForExpr>*/;
2220 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var7
) /* merge_breaks on <var_v:FlowVisitor>*/;
2223 /* method flow#AForExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2224 void VIRTUAL_flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2225 flow__AForExpr__accept_flow_visitor(self
, p0
);
2228 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2229 void flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2230 val
* var_v
/* var v: FlowVisitor */;
2231 val
* var
/* : AExpr */;
2232 val
* var1
/* : FlowContext */;
2233 val
* var_after_expr
/* var after_expr: FlowContext */;
2234 val
* var2
/* : FlowContext */;
2235 val
* var3
/* : nullable AExpr */;
2236 val
* var4
/* : FlowContext */;
2238 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
2239 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2240 var_after_expr
= var1
;
2241 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2242 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2243 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
2244 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2245 var4
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2246 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var4
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2249 /* method flow#AAssertExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2250 void VIRTUAL_flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2251 flow__AAssertExpr__accept_flow_visitor(self
, p0
);
2254 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
2255 void flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2256 val
* var_v
/* var v: FlowVisitor */;
2257 val
* var
/* : AExpr */;
2258 val
* var1
/* : FlowContext */;
2259 val
* var_after_expr
/* var after_expr: FlowContext */;
2260 val
* var2
/* : FlowContext */;
2261 val
* var3
/* : AExpr */;
2262 val
* var4
/* : FlowContext */;
2263 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2264 val
* var5
/* : FlowContext */;
2265 val
* var6
/* : FlowContext */;
2266 val
* var7
/* : FlowContext */;
2267 val
* var_merge_true
/* var merge_true: FlowContext */;
2268 static val
* varonce
;
2269 val
* var8
/* : String */;
2270 char* var9
/* : NativeString */;
2271 long var10
/* : Int */;
2272 val
* var11
/* : String */;
2273 val
* var12
/* : FlowContext */;
2274 val
* var13
/* : FlowContext */;
2276 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
2277 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2278 var_after_expr
= var1
;
2279 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2280 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2281 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
2282 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2283 var_after_expr2
= var4
;
2284 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2285 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2286 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>*/;
2287 var_merge_true
= var7
;
2293 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2297 ((void (*)(val
*, val
*))(var_merge_true
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_true
, var8
) /* name= on <var_merge_true:FlowContext>*/;
2298 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2299 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>*/;
2303 /* method flow#AOrExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2304 void VIRTUAL_flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2305 flow__AOrExpr__accept_flow_visitor(self
, p0
);
2308 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
2309 void flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2310 val
* var_v
/* var v: FlowVisitor */;
2311 val
* var
/* : AExpr */;
2312 val
* var1
/* : FlowContext */;
2313 val
* var_after_expr
/* var after_expr: FlowContext */;
2314 val
* var2
/* : FlowContext */;
2315 val
* var3
/* : AExpr */;
2316 val
* var4
/* : FlowContext */;
2317 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2318 val
* var5
/* : FlowContext */;
2319 val
* var6
/* : FlowContext */;
2320 val
* var7
/* : FlowContext */;
2321 val
* var_merge_true
/* var merge_true: FlowContext */;
2322 static val
* varonce
;
2323 val
* var8
/* : String */;
2324 char* var9
/* : NativeString */;
2325 long var10
/* : Int */;
2326 val
* var11
/* : String */;
2327 val
* var12
/* : FlowContext */;
2328 val
* var13
/* : FlowContext */;
2330 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
2331 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2332 var_after_expr
= var1
;
2333 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2334 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2335 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
2336 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2337 var_after_expr2
= var4
;
2338 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2339 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2340 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>*/;
2341 var_merge_true
= var7
;
2347 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2351 ((void (*)(val
*, val
*))(var_merge_true
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_true
, var8
) /* name= on <var_merge_true:FlowContext>*/;
2352 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2353 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>*/;
2357 /* method flow#AImpliesExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2358 void VIRTUAL_flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2359 flow__AImpliesExpr__accept_flow_visitor(self
, p0
);
2362 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
2363 void flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2364 val
* var_v
/* var v: FlowVisitor */;
2365 val
* var
/* : AExpr */;
2366 val
* var1
/* : FlowContext */;
2367 val
* var_after_expr
/* var after_expr: FlowContext */;
2368 val
* var2
/* : FlowContext */;
2369 val
* var3
/* : AExpr */;
2370 val
* var4
/* : FlowContext */;
2371 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2372 val
* var5
/* : FlowContext */;
2373 val
* var6
/* : FlowContext */;
2374 val
* var7
/* : FlowContext */;
2375 val
* var_merge_false
/* var merge_false: FlowContext */;
2376 static val
* varonce
;
2377 val
* var8
/* : String */;
2378 char* var9
/* : NativeString */;
2379 long var10
/* : Int */;
2380 val
* var11
/* : String */;
2381 val
* var12
/* : FlowContext */;
2382 val
* var13
/* : FlowContext */;
2384 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
2385 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2386 var_after_expr
= var1
;
2387 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2388 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2389 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
2390 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2391 var_after_expr2
= var4
;
2392 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2393 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2394 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>*/;
2395 var_merge_false
= var7
;
2401 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2405 ((void (*)(val
*, val
*))(var_merge_false
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_false
, var8
) /* name= on <var_merge_false:FlowContext>*/;
2406 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2407 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>*/;
2411 /* method flow#AAndExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2412 void VIRTUAL_flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2413 flow__AAndExpr__accept_flow_visitor(self
, p0
);
2416 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
2417 void flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2418 val
* var_v
/* var v: FlowVisitor */;
2419 val
* var
/* : AExpr */;
2420 val
* var1
/* : FlowContext */;
2421 val
* var_after_expr
/* var after_expr: FlowContext */;
2422 val
* var2
/* : FlowContext */;
2423 val
* var3
/* : FlowContext */;
2424 val
* var4
/* : FlowContext */;
2426 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
2427 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2428 var_after_expr
= var1
;
2429 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2430 var3
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2431 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>*/;
2435 /* method flow#ANotExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2436 void VIRTUAL_flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2437 flow__ANotExpr__accept_flow_visitor(self
, p0
);
2440 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
2441 void flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2442 val
* var_v
/* var v: FlowVisitor */;
2444 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AOrElseExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AOrElseExpr>*/;
2447 /* method flow#AOrElseExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2448 void VIRTUAL_flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2449 flow__AOrElseExpr__accept_flow_visitor(self
, p0
);
2452 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
2453 void flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2454 val
* var_v
/* var v: FlowVisitor */;
2455 val
* var
/* : FlowContext */;
2457 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AEqExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEqExpr>*/;
2458 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>*/;
2462 /* method flow#AEqExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2463 void VIRTUAL_flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2464 flow__AEqExpr__accept_flow_visitor(self
, p0
);
2467 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
2468 void flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2469 val
* var_v
/* var v: FlowVisitor */;
2470 val
* var
/* : FlowContext */;
2472 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ANeExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ANeExpr>*/;
2473 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>*/;
2477 /* method flow#ANeExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2478 void VIRTUAL_flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2479 flow__ANeExpr__accept_flow_visitor(self
, p0
);
2482 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
2483 void flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2484 val
* var_v
/* var v: FlowVisitor */;
2485 val
* var
/* : FlowContext */;
2487 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AIsaExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AIsaExpr>*/;
2488 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>*/;
2492 /* method flow#AIsaExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2493 void VIRTUAL_flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2494 flow__AIsaExpr__accept_flow_visitor(self
, p0
);
2497 /* method flow#AProxyExpr#accept_flow_visitor for (self: AProxyExpr, FlowVisitor) */
2498 void flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2499 val
* var_v
/* var v: FlowVisitor */;
2500 val
* var
/* : AExpr */;
2501 val
* var1
/* : FlowContext */;
2502 val
* var_after_expr
/* var after_expr: FlowContext */;
2504 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
2505 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2506 var_after_expr
= var1
;
2507 ((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>*/;
2510 /* method flow#AProxyExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2511 void VIRTUAL_flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2512 flow__AProxyExpr__accept_flow_visitor(self
, p0
);