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 CHECK_NEW_flow__FlowContext(var
);
129 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var
) /* current_flow_context= on <self:FlowVisitor>*/;
130 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
131 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
132 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var1
, var2
) /* add on <var1:Array[FlowContext]>*/;
133 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
135 ((void (*)(val
*, short int))(var3
->class->vft
[COLOR_flow__FlowContext__is_start_61d
]))(var3
, var4
) /* is_start= on <var3:FlowContext>*/;
138 /* method flow#FlowVisitor#init for (self: Object, ToolContext) */
139 void VIRTUAL_flow__FlowVisitor__init(val
* self
, val
* p0
) {
140 flow__FlowVisitor__init(self
, p0
);
143 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
144 val
* flow__FlowVisitor__first(val
* self
) {
145 val
* var
/* : nullable ANode */;
146 val
* var1
/* : nullable ANode */;
147 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dfirst
].val
; /* @first on <self:FlowVisitor> */
152 /* method flow#FlowVisitor#first for (self: Object): nullable ANode */
153 val
* VIRTUAL_flow__FlowVisitor__first(val
* self
) {
154 val
* var
/* : nullable ANode */;
155 val
* var1
/* : nullable ANode */;
156 var1
= flow__FlowVisitor__first(self
);
161 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
162 void flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
163 self
->attrs
[COLOR_flow__FlowVisitor___64dfirst
].val
= p0
; /* @first on <self:FlowVisitor> */
166 /* method flow#FlowVisitor#first= for (self: Object, nullable ANode) */
167 void VIRTUAL_flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
168 flow__FlowVisitor__first_61d(self
, p0
);
171 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
172 void flow__FlowVisitor__visit(val
* self
, val
* p0
) {
173 val
* var_node
/* var node: ANode */;
174 val
* var
/* : nullable ANode */;
175 val
* var1
/* : null */;
176 short int var2
/* : Bool */;
177 val
* var3
/* : FlowContext */;
178 val
* var4
/* : nullable ANode */;
179 val
* var5
/* : null */;
180 short int var6
/* : Bool */;
181 val
* var7
/* : FlowContext */;
182 short int var8
/* : Bool */;
185 val
* var9
/* : FlowContext */;
186 val
* var_flow
/* var flow: FlowContext */;
187 short int var10
/* : Bool */;
188 val
* var11
/* : FlowContext */;
189 short int var12
/* : Bool */;
190 short int var_
/* var : Bool */;
191 val
* var13
/* : FlowContext */;
192 short int var14
/* : Bool */;
193 val
* var15
/* : FlowContext */;
194 val
* var16
/* : FlowContext */;
196 val
* var17
/* : String */;
197 char* var18
/* : NativeString */;
198 long var19
/* : Int */;
199 val
* var20
/* : String */;
200 val
* var21
/* : nullable ANode */;
201 short int var22
/* : Bool */;
203 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first
]))(self
) /* first on <self:FlowVisitor>*/;
206 var2
= 1; /* is null */
208 var2
= 0; /* arg is null but recv is not */
211 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first_61d
]))(self
, var_node
) /* first= on <self:FlowVisitor>*/;
214 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
215 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_flow__FlowContext__node
]))(var3
) /* node on <var3:FlowContext>*/;
218 var6
= 1; /* is null */
220 var6
= 0; /* arg is null but recv is not */
223 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
224 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var7
, var_node
) /* node= on <var7:FlowContext>*/;
227 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_flow__ANode__accept_flow_visitor
]))(var_node
, self
) /* accept_flow_visitor on <var_node:ANode>*/;
228 /* <var_node:ANode> isa AExpr */
229 cltype
= type_parser_nodes__AExpr
.color
;
230 idtype
= type_parser_nodes__AExpr
.id
;
231 if(cltype
>= var_node
->type
->table_size
) {
234 var8
= var_node
->type
->type_table
[cltype
] == idtype
;
237 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
239 ((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)>*/;
240 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_flow
) /* when_true on <var_flow:FlowContext>*/;
241 var12
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var11
, var_flow
) /* != on <var11:FlowContext>*/;
246 var13
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_flow
) /* when_false on <var_flow:FlowContext>*/;
247 var14
= ((short int (*)(val
*, val
*))(var13
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var13
, var_flow
) /* != on <var13:FlowContext>*/;
251 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(self
) /* make_sub_flow on <self:FlowVisitor>*/;
253 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
259 var20
= string__NativeString__to_s_with_length(var18
, var19
);
263 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var16
, var17
) /* name= on <var16:FlowContext>*/;
268 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__first
]))(self
) /* first on <self:FlowVisitor>*/;
270 var22
= 0; /* <var_node:ANode> cannot be null */
272 var22
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var_node
) /* == on <var21:nullable ANode>*/;
279 /* method flow#FlowVisitor#visit for (self: Object, ANode) */
280 void VIRTUAL_flow__FlowVisitor__visit(val
* self
, val
* p0
) {
281 flow__FlowVisitor__visit(self
, p0
);
284 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
285 val
* flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
286 val
* var
/* : FlowContext */;
287 val
* var_node
/* var node: AExpr */;
288 val
* var1
/* : nullable FlowContext */;
290 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(self
, var_node
) /* enter_visit on <self:FlowVisitor>*/;
291 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
293 fprintf(stderr
, "Runtime error: %s", "Cast failed");
294 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 77);
302 /* method flow#FlowVisitor#visit_expr for (self: Object, AExpr): FlowContext */
303 val
* VIRTUAL_flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
304 val
* var
/* : FlowContext */;
305 val
* var1
/* : FlowContext */;
306 var1
= flow__FlowVisitor__visit_expr(self
, p0
);
311 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
312 val
* flow__FlowVisitor__flows(val
* self
) {
313 val
* var
/* : Array[FlowContext] */;
314 val
* var1
/* : Array[FlowContext] */;
315 var1
= self
->attrs
[COLOR_flow__FlowVisitor___64dflows
].val
; /* @flows on <self:FlowVisitor> */
317 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @flows");
318 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 80);
325 /* method flow#FlowVisitor#flows for (self: Object): Array[FlowContext] */
326 val
* VIRTUAL_flow__FlowVisitor__flows(val
* self
) {
327 val
* var
/* : Array[FlowContext] */;
328 val
* var1
/* : Array[FlowContext] */;
329 var1
= flow__FlowVisitor__flows(self
);
334 /* method flow#FlowVisitor#flows= for (self: FlowVisitor, Array[FlowContext]) */
335 void flow__FlowVisitor__flows_61d(val
* self
, val
* p0
) {
336 self
->attrs
[COLOR_flow__FlowVisitor___64dflows
].val
= p0
; /* @flows on <self:FlowVisitor> */
339 /* method flow#FlowVisitor#flows= for (self: Object, Array[FlowContext]) */
340 void VIRTUAL_flow__FlowVisitor__flows_61d(val
* self
, val
* p0
) {
341 flow__FlowVisitor__flows_61d(self
, p0
);
344 /* method flow#FlowVisitor#printflow for (self: FlowVisitor) */
345 void flow__FlowVisitor__printflow(val
* self
) {
346 val
* var
/* : OFStream */;
348 val
* var1
/* : String */;
349 char* var2
/* : NativeString */;
350 long var3
/* : Int */;
351 val
* var4
/* : String */;
352 val
* var_file
/* var file: OFStream */;
353 static val
* varonce5
;
354 val
* var6
/* : String */;
355 char* var7
/* : NativeString */;
356 long var8
/* : Int */;
357 val
* var9
/* : String */;
358 val
* var10
/* : Array[FlowContext] */;
359 val
* var11
/* : Iterator[nullable Object] */;
360 short int var12
/* : Bool */;
361 val
* var13
/* : nullable Object */;
362 val
* var_f
/* var f: FlowContext */;
363 static val
* varonce14
;
364 val
* var15
/* : String */;
365 char* var16
/* : NativeString */;
366 long var17
/* : Int */;
367 val
* var18
/* : String */;
368 val
* var_s
/* var s: String */;
369 val
* var19
/* : nullable ANode */;
370 short int var20
/* : Bool */;
373 val
* var21
/* : Array[Object] */;
374 long var22
/* : Int */;
375 val
* var_
/* var : Array[Object] */;
376 static val
* varonce23
;
377 val
* var24
/* : String */;
378 char* var25
/* : NativeString */;
379 long var26
/* : Int */;
380 val
* var27
/* : String */;
381 val
* var28
/* : nullable ANode */;
382 short int var29
/* : Bool */;
385 const char* var_class_name
;
386 val
* var32
/* : nullable FlowContext */;
387 long var33
/* : Int */;
388 val
* var34
/* : nullable Object */;
389 static val
* varonce35
;
390 val
* var36
/* : String */;
391 char* var37
/* : NativeString */;
392 long var38
/* : Int */;
393 val
* var39
/* : String */;
394 val
* var40
/* : String */;
395 static val
* varonce41
;
396 val
* var42
/* : String */;
397 char* var43
/* : NativeString */;
398 long var44
/* : Int */;
399 val
* var45
/* : String */;
400 long var46
/* : Int */;
401 static val
* varonce47
;
402 val
* var48
/* : String */;
403 char* var49
/* : NativeString */;
404 long var50
/* : Int */;
405 val
* var51
/* : String */;
406 long var52
/* : Int */;
407 static val
* varonce53
;
408 val
* var54
/* : String */;
409 char* var55
/* : NativeString */;
410 long var56
/* : Int */;
411 val
* var57
/* : String */;
412 val
* var58
/* : nullable ANode */;
413 val
* var59
/* : Location */;
414 static val
* varonce60
;
415 val
* var61
/* : String */;
416 char* var62
/* : NativeString */;
417 long var63
/* : Int */;
418 val
* var64
/* : String */;
419 val
* var65
/* : nullable ANode */;
420 val
* var66
/* : String */;
421 static val
* varonce67
;
422 val
* var68
/* : String */;
423 char* var69
/* : NativeString */;
424 long var70
/* : Int */;
425 val
* var71
/* : String */;
426 val
* var72
/* : String */;
427 static val
* varonce73
;
428 val
* var74
/* : String */;
429 char* var75
/* : NativeString */;
430 long var76
/* : Int */;
431 val
* var77
/* : String */;
432 val
* var78
/* : Array[Object] */;
433 long var79
/* : Int */;
434 val
* var80
/* : NativeArray[Object] */;
435 val
* var81
/* : Object */;
436 val
* var82
/* : Object */;
437 val
* var83
/* : String */;
438 val
* var84
/* : Array[FlowContext] */;
439 val
* var85
/* : Iterator[nullable Object] */;
440 short int var86
/* : Bool */;
441 val
* var87
/* : nullable Object */;
442 val
* var_p
/* var p: FlowContext */;
443 static val
* varonce88
;
444 val
* var89
/* : String */;
445 char* var90
/* : NativeString */;
446 long var91
/* : Int */;
447 val
* var92
/* : String */;
448 long var93
/* : Int */;
449 static val
* varonce94
;
450 val
* var95
/* : String */;
451 char* var96
/* : NativeString */;
452 long var97
/* : Int */;
453 val
* var98
/* : String */;
454 long var99
/* : Int */;
455 static val
* varonce100
;
456 val
* var101
/* : String */;
457 char* var102
/* : NativeString */;
458 long var103
/* : Int */;
459 val
* var104
/* : String */;
460 val
* var105
/* : Array[Object] */;
461 long var106
/* : Int */;
462 val
* var107
/* : NativeArray[Object] */;
463 val
* var108
/* : Object */;
464 val
* var109
/* : Object */;
465 val
* var110
/* : String */;
466 val
* var111
/* : FlowContext */;
467 short int var112
/* : Bool */;
468 static val
* varonce113
;
469 val
* var114
/* : String */;
470 char* var115
/* : NativeString */;
471 long var116
/* : Int */;
472 val
* var117
/* : String */;
473 long var118
/* : Int */;
474 static val
* varonce119
;
475 val
* var120
/* : String */;
476 char* var121
/* : NativeString */;
477 long var122
/* : Int */;
478 val
* var123
/* : String */;
479 val
* var124
/* : FlowContext */;
480 long var125
/* : Int */;
481 static val
* varonce126
;
482 val
* var127
/* : String */;
483 char* var128
/* : NativeString */;
484 long var129
/* : Int */;
485 val
* var130
/* : String */;
486 val
* var131
/* : Array[Object] */;
487 long var132
/* : Int */;
488 val
* var133
/* : NativeArray[Object] */;
489 val
* var134
/* : Object */;
490 val
* var135
/* : Object */;
491 val
* var136
/* : String */;
492 val
* var137
/* : FlowContext */;
493 short int var138
/* : Bool */;
494 static val
* varonce139
;
495 val
* var140
/* : String */;
496 char* var141
/* : NativeString */;
497 long var142
/* : Int */;
498 val
* var143
/* : String */;
499 long var144
/* : Int */;
500 static val
* varonce145
;
501 val
* var146
/* : String */;
502 char* var147
/* : NativeString */;
503 long var148
/* : Int */;
504 val
* var149
/* : String */;
505 val
* var150
/* : FlowContext */;
506 long var151
/* : Int */;
507 static val
* varonce152
;
508 val
* var153
/* : String */;
509 char* var154
/* : NativeString */;
510 long var155
/* : Int */;
511 val
* var156
/* : String */;
512 val
* var157
/* : Array[Object] */;
513 long var158
/* : Int */;
514 val
* var159
/* : NativeArray[Object] */;
515 val
* var160
/* : Object */;
516 val
* var161
/* : Object */;
517 val
* var162
/* : String */;
518 static val
* varonce164
;
519 val
* var165
/* : String */;
520 char* var166
/* : NativeString */;
521 long var167
/* : Int */;
522 val
* var168
/* : String */;
523 var
= NEW_file__OFStream(&type_file__OFStream
);
529 var4
= string__NativeString__to_s_with_length(var2
, var3
);
533 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_file__OFStream__open
]))(var
, var1
) /* open on <var:OFStream>*/;
534 CHECK_NEW_file__OFStream(var
);
539 var7
= "digraph {\n";
541 var9
= string__NativeString__to_s_with_length(var7
, var8
);
545 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var6
) /* write on <var_file:OFStream>*/;
546 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
547 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[FlowContext]>*/;
549 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
551 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
558 var18
= string__NativeString__to_s_with_length(var16
, var17
);
563 var19
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
564 /* <var19:nullable ANode> isa AExpr */
565 cltype
= type_parser_nodes__AExpr
.color
;
566 idtype
= type_parser_nodes__AExpr
.id
;
570 if(cltype
>= var19
->type
->table_size
) {
573 var20
= var19
->type
->type_table
[cltype
] == idtype
;
577 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
579 ((void (*)(val
*, long))(var21
->class->vft
[COLOR_array__Array__with_capacity
]))(var21
, var22
) /* with_capacity on <var21:Array[Object]>*/;
580 CHECK_NEW_array__Array(var21
);
587 var27
= string__NativeString__to_s_with_length(var25
, var26
);
591 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var24
) /* add on <var_:Array[Object]>*/;
592 var28
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
593 /* <var28:nullable ANode> isa AExpr */
594 cltype30
= type_parser_nodes__AExpr
.color
;
595 idtype31
= type_parser_nodes__AExpr
.id
;
599 if(cltype30
>= var28
->type
->table_size
) {
602 var29
= var28
->type
->type_table
[cltype30
] == idtype31
;
606 var_class_name
= var28
== NULL ?
"null" : var28
->type
->name
;
607 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name
);
608 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 89);
611 var32
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var28
) /* after_flow_context on <var28:nullable ANode(AExpr)>*/;
613 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
614 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 89);
617 var33
= ((long (*)(val
*))(var32
->class->vft
[COLOR_kernel__Object__object_id
]))(var32
) /* object_id on <var32:nullable FlowContext>*/;
619 var34
= BOX_kernel__Int(var33
); /* autobox from Int to nullable Object */
620 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var34
) /* add on <var_:Array[Object]>*/;
626 var39
= string__NativeString__to_s_with_length(var37
, var38
);
630 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var36
) /* add on <var_:Array[Object]>*/;
631 var40
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
640 var45
= string__NativeString__to_s_with_length(var43
, var44
);
644 var46
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
648 var49
= " [label=\"";
650 var51
= string__NativeString__to_s_with_length(var49
, var50
);
654 var52
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
660 var57
= string__NativeString__to_s_with_length(var55
, var56
);
664 var58
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
666 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
667 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 91);
670 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var58
) /* location on <var58:nullable ANode>*/;
677 var64
= string__NativeString__to_s_with_length(var62
, var63
);
681 var65
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__node
]))(var_f
) /* node on <var_f:FlowContext>*/;
683 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
684 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 91);
687 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__class_name
]))(var65
) /* class_name on <var65:nullable ANode>*/;
694 var71
= string__NativeString__to_s_with_length(var69
, var70
);
698 var72
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__name
]))(var_f
) /* name on <var_f:FlowContext>*/;
704 var77
= string__NativeString__to_s_with_length(var75
, var76
);
708 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
709 { /* var78 = array_instance Array[Object] */
711 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
712 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var42
;
713 var81
= BOX_kernel__Int(var46
); /* autobox from Int to Object */
714 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var81
;
715 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var48
;
716 var82
= BOX_kernel__Int(var52
); /* autobox from Int to Object */
717 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var82
;
718 ((struct instance_array__NativeArray
*)var80
)->values
[4] = (val
*) var54
;
719 ((struct instance_array__NativeArray
*)var80
)->values
[5] = (val
*) var59
;
720 ((struct instance_array__NativeArray
*)var80
)->values
[6] = (val
*) var61
;
721 ((struct instance_array__NativeArray
*)var80
)->values
[7] = (val
*) var66
;
722 ((struct instance_array__NativeArray
*)var80
)->values
[8] = (val
*) var68
;
723 ((struct instance_array__NativeArray
*)var80
)->values
[9] = (val
*) var72
;
724 ((struct instance_array__NativeArray
*)var80
)->values
[10] = (val
*) var_s
;
725 ((struct instance_array__NativeArray
*)var80
)->values
[11] = (val
*) var74
;
726 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
727 CHECK_NEW_array__Array(var78
);
729 var83
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
730 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var83
) /* write on <var_file:OFStream>*/;
731 var84
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_f
) /* previous on <var_f:FlowContext>*/;
732 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var84
) /* iterator on <var84:Array[FlowContext]>*/;
734 var86
= ((short int (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var85
) /* is_ok on <var85:Iterator[nullable Object]>*/;
736 var87
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var85
) /* item on <var85:Iterator[nullable Object]>*/;
743 var92
= string__NativeString__to_s_with_length(var90
, var91
);
747 var93
= ((long (*)(val
*))(var_p
->class->vft
[COLOR_kernel__Object__object_id
]))(var_p
) /* object_id on <var_p:FlowContext>*/;
753 var98
= string__NativeString__to_s_with_length(var96
, var97
);
757 var99
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
763 var104
= string__NativeString__to_s_with_length(var102
, var103
);
767 var105
= NEW_array__Array(&type_array__Arraykernel__Object
);
768 { /* var105 = array_instance Array[Object] */
770 var107
= NEW_array__NativeArray(var106
, &type_array__NativeArraykernel__Object
);
771 ((struct instance_array__NativeArray
*)var107
)->values
[0] = (val
*) var89
;
772 var108
= BOX_kernel__Int(var93
); /* autobox from Int to Object */
773 ((struct instance_array__NativeArray
*)var107
)->values
[1] = (val
*) var108
;
774 ((struct instance_array__NativeArray
*)var107
)->values
[2] = (val
*) var95
;
775 var109
= BOX_kernel__Int(var99
); /* autobox from Int to Object */
776 ((struct instance_array__NativeArray
*)var107
)->values
[3] = (val
*) var109
;
777 ((struct instance_array__NativeArray
*)var107
)->values
[4] = (val
*) var101
;
778 ((void (*)(val
*, val
*, long))(var105
->class->vft
[COLOR_array__Array__with_native
]))(var105
, var107
, var106
) /* with_native on <var105:Array[Object]>*/;
779 CHECK_NEW_array__Array(var105
);
781 var110
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_string__Object__to_s
]))(var105
) /* to_s on <var105:Array[Object]>*/;
782 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var110
) /* write on <var_file:OFStream>*/;
783 CONTINUE_label
: (void)0;
784 ((void (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var85
) /* next on <var85:Iterator[nullable Object]>*/;
786 BREAK_label
: (void)0;
787 var111
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_f
) /* when_true on <var_f:FlowContext>*/;
788 var112
= ((short int (*)(val
*, val
*))(var111
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var111
, var_f
) /* != on <var111:FlowContext>*/;
795 var117
= string__NativeString__to_s_with_length(var115
, var116
);
799 var118
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
805 var123
= string__NativeString__to_s_with_length(var121
, var122
);
809 var124
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_f
) /* when_true on <var_f:FlowContext>*/;
810 var125
= ((long (*)(val
*))(var124
->class->vft
[COLOR_kernel__Object__object_id
]))(var124
) /* object_id on <var124:FlowContext>*/;
814 var128
= "[label=TRUE, style=dotted];\n";
816 var130
= string__NativeString__to_s_with_length(var128
, var129
);
820 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
821 { /* var131 = array_instance Array[Object] */
823 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
824 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var114
;
825 var134
= BOX_kernel__Int(var118
); /* autobox from Int to Object */
826 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var134
;
827 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var120
;
828 var135
= BOX_kernel__Int(var125
); /* autobox from Int to Object */
829 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var135
;
830 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var127
;
831 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
832 CHECK_NEW_array__Array(var131
);
834 var136
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
835 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var136
) /* write on <var_file:OFStream>*/;
838 var137
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_f
) /* when_false on <var_f:FlowContext>*/;
839 var138
= ((short int (*)(val
*, val
*))(var137
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var137
, var_f
) /* != on <var137:FlowContext>*/;
846 var143
= string__NativeString__to_s_with_length(var141
, var142
);
850 var144
= ((long (*)(val
*))(var_f
->class->vft
[COLOR_kernel__Object__object_id
]))(var_f
) /* object_id on <var_f:FlowContext>*/;
856 var149
= string__NativeString__to_s_with_length(var147
, var148
);
860 var150
= ((val
* (*)(val
*))(var_f
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_f
) /* when_false on <var_f:FlowContext>*/;
861 var151
= ((long (*)(val
*))(var150
->class->vft
[COLOR_kernel__Object__object_id
]))(var150
) /* object_id on <var150:FlowContext>*/;
865 var154
= "[label=FALSE,style=dotted];\n";
867 var156
= string__NativeString__to_s_with_length(var154
, var155
);
871 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
872 { /* var157 = array_instance Array[Object] */
874 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
875 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var140
;
876 var160
= BOX_kernel__Int(var144
); /* autobox from Int to Object */
877 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var160
;
878 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var146
;
879 var161
= BOX_kernel__Int(var151
); /* autobox from Int to Object */
880 ((struct instance_array__NativeArray
*)var159
)->values
[3] = (val
*) var161
;
881 ((struct instance_array__NativeArray
*)var159
)->values
[4] = (val
*) var153
;
882 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
883 CHECK_NEW_array__Array(var157
);
885 var162
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
886 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var162
) /* write on <var_file:OFStream>*/;
889 CONTINUE_label163
: (void)0;
890 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
892 BREAK_label163
: (void)0;
898 var168
= string__NativeString__to_s_with_length(var166
, var167
);
902 ((void (*)(val
*, val
*))(var_file
->class->vft
[COLOR_stream__OStream__write
]))(var_file
, var165
) /* write on <var_file:OFStream>*/;
903 ((void (*)(val
*))(var_file
->class->vft
[COLOR_stream__IOS__close
]))(var_file
) /* close on <var_file:OFStream>*/;
906 /* method flow#FlowVisitor#printflow for (self: Object) */
907 void VIRTUAL_flow__FlowVisitor__printflow(val
* self
) {
908 flow__FlowVisitor__printflow(self
);
911 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
912 val
* flow__FlowVisitor__make_sub_flow(val
* self
) {
913 val
* var
/* : FlowContext */;
914 val
* var1
/* : FlowContext */;
915 val
* var_flow
/* var flow: FlowContext */;
916 val
* var2
/* : Array[FlowContext] */;
917 val
* var3
/* : nullable ANode */;
918 val
* var4
/* : FlowContext */;
919 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
920 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
921 CHECK_NEW_flow__FlowContext(var1
);
923 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
924 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
925 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
926 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
927 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
928 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var4
) /* add_previous on <var_flow:FlowContext>*/;
929 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
935 /* method flow#FlowVisitor#make_sub_flow for (self: Object): FlowContext */
936 val
* VIRTUAL_flow__FlowVisitor__make_sub_flow(val
* self
) {
937 val
* var
/* : FlowContext */;
938 val
* var1
/* : FlowContext */;
939 var1
= flow__FlowVisitor__make_sub_flow(self
);
944 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
945 val
* flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
946 val
* var
/* : FlowContext */;
947 val
* var_flow1
/* var flow1: FlowContext */;
948 val
* var_flow2
/* var flow2: FlowContext */;
949 val
* var1
/* : FlowContext */;
950 val
* var_flow
/* var flow: FlowContext */;
951 val
* var2
/* : Array[FlowContext] */;
952 val
* var3
/* : nullable ANode */;
955 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
956 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
957 CHECK_NEW_flow__FlowContext(var1
);
959 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
960 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
961 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
962 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
963 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_flow1
) /* add_previous on <var_flow:FlowContext>*/;
964 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_flow2
) /* add_previous on <var_flow:FlowContext>*/;
965 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
971 /* method flow#FlowVisitor#make_merge_flow for (self: Object, FlowContext, FlowContext): FlowContext */
972 val
* VIRTUAL_flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
973 val
* var
/* : FlowContext */;
974 val
* var1
/* : FlowContext */;
975 var1
= flow__FlowVisitor__make_merge_flow(self
, p0
, p1
);
980 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
981 val
* flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
982 val
* var
/* : FlowContext */;
983 val
* var_true_flow
/* var true_flow: FlowContext */;
984 val
* var_false_flow
/* var false_flow: FlowContext */;
985 val
* var1
/* : FlowContext */;
986 val
* var_flow
/* var flow: FlowContext */;
987 val
* var2
/* : Array[FlowContext] */;
988 val
* var3
/* : nullable ANode */;
991 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
992 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
993 CHECK_NEW_flow__FlowContext(var1
);
995 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
996 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
997 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
998 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
999 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_true_flow
) /* add_previous on <var_flow:FlowContext>*/;
1000 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var_false_flow
) /* add_previous on <var_flow:FlowContext>*/;
1001 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_true_61d
]))(var_flow
, var_true_flow
) /* when_true= on <var_flow:FlowContext>*/;
1002 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__when_false_61d
]))(var_flow
, var_false_flow
) /* when_false= on <var_flow:FlowContext>*/;
1003 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
1009 /* method flow#FlowVisitor#make_true_false_flow for (self: Object, FlowContext, FlowContext): FlowContext */
1010 val
* VIRTUAL_flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
1011 val
* var
/* : FlowContext */;
1012 val
* var1
/* : FlowContext */;
1013 var1
= flow__FlowVisitor__make_true_false_flow(self
, p0
, p1
);
1018 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
1019 val
* flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1020 val
* var
/* : FlowContext */;
1021 val
* var1
/* : FlowContext */;
1022 val
* var_orig_flow
/* var orig_flow: FlowContext */;
1023 val
* var2
/* : FlowContext */;
1024 val
* var_true_flow
/* var true_flow: FlowContext */;
1025 val
* var3
/* : Array[FlowContext] */;
1026 val
* var4
/* : nullable ANode */;
1027 static val
* varonce
;
1028 val
* var5
/* : String */;
1029 char* var6
/* : NativeString */;
1030 long var7
/* : Int */;
1031 val
* var8
/* : String */;
1032 val
* var9
/* : FlowContext */;
1033 val
* var_false_flow
/* var false_flow: FlowContext */;
1034 val
* var10
/* : Array[FlowContext] */;
1035 val
* var11
/* : nullable ANode */;
1036 static val
* varonce12
;
1037 val
* var13
/* : String */;
1038 char* var14
/* : NativeString */;
1039 long var15
/* : Int */;
1040 val
* var16
/* : String */;
1041 val
* var17
/* : FlowContext */;
1042 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1043 var_orig_flow
= var1
;
1044 var2
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1045 ((void (*)(val
*))(var2
->class->vft
[COLOR_flow__FlowContext__init
]))(var2
) /* init on <var2:FlowContext>*/;
1046 CHECK_NEW_flow__FlowContext(var2
);
1047 var_true_flow
= var2
;
1048 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1049 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_true_flow
) /* add on <var3:Array[FlowContext]>*/;
1050 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1051 ((void (*)(val
*, val
*))(var_true_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_true_flow
, var4
) /* node= on <var_true_flow:FlowContext>*/;
1052 ((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>*/;
1058 var8
= string__NativeString__to_s_with_length(var6
, var7
);
1062 ((void (*)(val
*, val
*))(var_true_flow
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_true_flow
, var5
) /* name= on <var_true_flow:FlowContext>*/;
1063 var9
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1064 ((void (*)(val
*))(var9
->class->vft
[COLOR_flow__FlowContext__init
]))(var9
) /* init on <var9:FlowContext>*/;
1065 CHECK_NEW_flow__FlowContext(var9
);
1066 var_false_flow
= var9
;
1067 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1068 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var10
, var_false_flow
) /* add on <var10:Array[FlowContext]>*/;
1069 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1070 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_false_flow
, var11
) /* node= on <var_false_flow:FlowContext>*/;
1071 ((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>*/;
1077 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1081 ((void (*)(val
*, val
*))(var_false_flow
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_false_flow
, var13
) /* name= on <var_false_flow:FlowContext>*/;
1082 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>*/;
1088 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: Object): FlowContext */
1089 val
* VIRTUAL_flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1090 val
* var
/* : FlowContext */;
1091 val
* var1
/* : FlowContext */;
1092 var1
= flow__FlowVisitor__make_sub_true_false_flow(self
);
1097 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
1098 val
* flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1099 val
* var
/* : FlowContext */;
1100 val
* var1
/* : FlowContext */;
1101 val
* var_flow
/* var flow: FlowContext */;
1102 val
* var2
/* : Array[FlowContext] */;
1103 val
* var3
/* : nullable ANode */;
1104 val
* var4
/* : FlowContext */;
1105 short int var5
/* : Bool */;
1106 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1107 ((void (*)(val
*))(var1
->class->vft
[COLOR_flow__FlowContext__init
]))(var1
) /* init on <var1:FlowContext>*/;
1108 CHECK_NEW_flow__FlowContext(var1
);
1110 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__flows
]))(self
) /* flows on <self:FlowVisitor>*/;
1111 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_flow
) /* add on <var2:Array[FlowContext]>*/;
1112 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:FlowVisitor>*/;
1113 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__node_61d
]))(var_flow
, var3
) /* node= on <var_flow:FlowContext>*/;
1114 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1115 ((void (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__add_previous
]))(var_flow
, var4
) /* add_previous on <var_flow:FlowContext>*/;
1117 ((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>*/;
1118 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(self
, var_flow
) /* current_flow_context= on <self:FlowVisitor>*/;
1124 /* method flow#FlowVisitor#make_unreachable_flow for (self: Object): FlowContext */
1125 val
* VIRTUAL_flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1126 val
* var
/* : FlowContext */;
1127 val
* var1
/* : FlowContext */;
1128 var1
= flow__FlowVisitor__make_unreachable_flow(self
);
1133 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
1134 void flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1135 val
* var_before_loop
/* var before_loop: FlowContext */;
1136 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1137 val
* var
/* : null */;
1138 short int var1
/* : Bool */;
1139 val
* var2
/* : Array[AContinueExpr] */;
1140 val
* var3
/* : Iterator[nullable Object] */;
1141 short int var4
/* : Bool */;
1142 val
* var5
/* : nullable Object */;
1143 val
* var_b
/* var b: AContinueExpr */;
1144 val
* var6
/* : nullable FlowContext */;
1145 val
* var_before
/* var before: nullable FlowContext */;
1146 val
* var7
/* : null */;
1147 short int var8
/* : Bool */;
1148 var_before_loop
= p0
;
1149 var_escapemark
= p1
;
1151 if (var_escapemark
== NULL
) {
1152 var1
= 1; /* is null */
1154 var1
= 0; /* arg is null but recv is not */
1160 var2
= ((val
* (*)(val
*))(var_escapemark
->class->vft
[COLOR_scope__EscapeMark__continues
]))(var_escapemark
) /* continues on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1161 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[AContinueExpr]>*/;
1163 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1165 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1167 var6
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_flow__AContinueExpr__before_flow_context
]))(var_b
) /* before_flow_context on <var_b:AContinueExpr>*/;
1170 if (var_before
== NULL
) {
1171 var8
= 1; /* is null */
1173 var8
= 0; /* arg is null but recv is not */
1176 goto CONTINUE_label
;
1179 ((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>*/;
1180 CONTINUE_label
: (void)0;
1181 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1183 BREAK_label
: (void)0;
1186 /* method flow#FlowVisitor#merge_continues_to for (self: Object, FlowContext, nullable EscapeMark) */
1187 void VIRTUAL_flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1188 flow__FlowVisitor__merge_continues_to(self
, p0
, p1
);
1191 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1192 void flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1193 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1194 val
* var
/* : null */;
1195 short int var1
/* : Bool */;
1196 val
* var2
/* : Array[ABreakExpr] */;
1197 val
* var3
/* : Iterator[nullable Object] */;
1198 short int var4
/* : Bool */;
1199 val
* var5
/* : nullable Object */;
1200 val
* var_b
/* var b: ABreakExpr */;
1201 val
* var6
/* : nullable FlowContext */;
1202 val
* var_before
/* var before: nullable FlowContext */;
1203 val
* var7
/* : null */;
1204 short int var8
/* : Bool */;
1205 val
* var9
/* : FlowContext */;
1206 val
* var10
/* : FlowContext */;
1207 var_escapemark
= p0
;
1209 if (var_escapemark
== NULL
) {
1210 var1
= 1; /* is null */
1212 var1
= 0; /* arg is null but recv is not */
1218 var2
= ((val
* (*)(val
*))(var_escapemark
->class->vft
[COLOR_scope__EscapeMark__breaks
]))(var_escapemark
) /* breaks on <var_escapemark:nullable EscapeMark(EscapeMark)>*/;
1219 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[ABreakExpr]>*/;
1221 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1223 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1225 var6
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_flow__ABreakExpr__before_flow_context
]))(var_b
) /* before_flow_context on <var_b:ABreakExpr>*/;
1228 if (var_before
== NULL
) {
1229 var8
= 1; /* is null */
1231 var8
= 0; /* arg is null but recv is not */
1234 goto CONTINUE_label
;
1237 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(self
) /* current_flow_context on <self:FlowVisitor>*/;
1238 var10
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_flow__FlowVisitor__make_merge_flow
]))(self
, var9
, var_before
) /* make_merge_flow on <self:FlowVisitor>*/;
1240 CONTINUE_label
: (void)0;
1241 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1243 BREAK_label
: (void)0;
1246 /* method flow#FlowVisitor#merge_breaks for (self: Object, nullable EscapeMark) */
1247 void VIRTUAL_flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1248 flow__FlowVisitor__merge_breaks(self
, p0
);
1251 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1252 val
* flow__FlowContext__previous(val
* self
) {
1253 val
* var
/* : Array[FlowContext] */;
1254 val
* var1
/* : Array[FlowContext] */;
1255 var1
= self
->attrs
[COLOR_flow__FlowContext___64dprevious
].val
; /* @previous on <self:FlowContext> */
1257 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @previous");
1258 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 192);
1265 /* method flow#FlowContext#previous for (self: Object): Array[FlowContext] */
1266 val
* VIRTUAL_flow__FlowContext__previous(val
* self
) {
1267 val
* var
/* : Array[FlowContext] */;
1268 val
* var1
/* : Array[FlowContext] */;
1269 var1
= flow__FlowContext__previous(self
);
1274 /* method flow#FlowContext#previous= for (self: FlowContext, Array[FlowContext]) */
1275 void flow__FlowContext__previous_61d(val
* self
, val
* p0
) {
1276 self
->attrs
[COLOR_flow__FlowContext___64dprevious
].val
= p0
; /* @previous on <self:FlowContext> */
1279 /* method flow#FlowContext#previous= for (self: Object, Array[FlowContext]) */
1280 void VIRTUAL_flow__FlowContext__previous_61d(val
* self
, val
* p0
) {
1281 flow__FlowContext__previous_61d(self
, p0
);
1284 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1285 val
* flow__FlowContext__loops(val
* self
) {
1286 val
* var
/* : Array[FlowContext] */;
1287 val
* var1
/* : Array[FlowContext] */;
1288 var1
= self
->attrs
[COLOR_flow__FlowContext___64dloops
].val
; /* @loops on <self:FlowContext> */
1290 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @loops");
1291 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 195);
1298 /* method flow#FlowContext#loops for (self: Object): Array[FlowContext] */
1299 val
* VIRTUAL_flow__FlowContext__loops(val
* self
) {
1300 val
* var
/* : Array[FlowContext] */;
1301 val
* var1
/* : Array[FlowContext] */;
1302 var1
= flow__FlowContext__loops(self
);
1307 /* method flow#FlowContext#loops= for (self: FlowContext, Array[FlowContext]) */
1308 void flow__FlowContext__loops_61d(val
* self
, val
* p0
) {
1309 self
->attrs
[COLOR_flow__FlowContext___64dloops
].val
= p0
; /* @loops on <self:FlowContext> */
1312 /* method flow#FlowContext#loops= for (self: Object, Array[FlowContext]) */
1313 void VIRTUAL_flow__FlowContext__loops_61d(val
* self
, val
* p0
) {
1314 flow__FlowContext__loops_61d(self
, p0
);
1317 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1318 short int flow__FlowContext__is_marked_unreachable(val
* self
) {
1319 short int var
/* : Bool */;
1320 short int var1
/* : Bool */;
1321 var1
= self
->attrs
[COLOR_flow__FlowContext___64dis_marked_unreachable
].s
; /* @is_marked_unreachable on <self:FlowContext> */
1326 /* method flow#FlowContext#is_marked_unreachable for (self: Object): Bool */
1327 short int VIRTUAL_flow__FlowContext__is_marked_unreachable(val
* self
) {
1328 short int var
/* : Bool */;
1329 short int var1
/* : Bool */;
1330 var1
= flow__FlowContext__is_marked_unreachable(self
);
1335 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1336 void flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1337 self
->attrs
[COLOR_flow__FlowContext___64dis_marked_unreachable
].s
= p0
; /* @is_marked_unreachable on <self:FlowContext> */
1340 /* method flow#FlowContext#is_marked_unreachable= for (self: Object, Bool) */
1341 void VIRTUAL_flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1342 flow__FlowContext__is_marked_unreachable_61d(self
, p0
);
1345 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1346 short int flow__FlowContext__is_unreachable(val
* self
) {
1347 short int var
/* : Bool */;
1348 short int var1
/* : Bool */;
1349 short int var2
/* : Bool */;
1350 short int var3
/* : Bool */;
1351 short int var4
/* : Bool */;
1352 val
* var5
/* : Array[FlowContext] */;
1353 long var6
/* : Int */;
1354 long var7
/* : Int */;
1355 short int var8
/* : Bool */;
1356 short int var10
/* : Bool */;
1357 short int var11
/* : Bool */;
1358 short int var12
/* : Bool */;
1359 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__is_marked_unreachable
]))(self
) /* is_marked_unreachable on <self:FlowContext>*/;
1366 var3
= ((short int (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__is_start
]))(self
) /* is_start on <self:FlowContext>*/;
1373 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1374 var6
= ((long (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var5
) /* length on <var5:Array[FlowContext]>*/;
1376 { /* Inline kernel#Int#== (var6,var7) */
1377 var10
= var6
== var7
;
1394 /* method flow#FlowContext#is_unreachable for (self: Object): Bool */
1395 short int VIRTUAL_flow__FlowContext__is_unreachable(val
* self
) {
1396 short int var
/* : Bool */;
1397 short int var1
/* : Bool */;
1398 var1
= flow__FlowContext__is_unreachable(self
);
1403 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1404 short int flow__FlowContext__is_already_unreachable(val
* self
) {
1405 short int var
/* : Bool */;
1406 short int var1
/* : Bool */;
1407 var1
= self
->attrs
[COLOR_flow__FlowContext___64dis_already_unreachable
].s
; /* @is_already_unreachable on <self:FlowContext> */
1412 /* method flow#FlowContext#is_already_unreachable for (self: Object): Bool */
1413 short int VIRTUAL_flow__FlowContext__is_already_unreachable(val
* self
) {
1414 short int var
/* : Bool */;
1415 short int var1
/* : Bool */;
1416 var1
= flow__FlowContext__is_already_unreachable(self
);
1421 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1422 void flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1423 self
->attrs
[COLOR_flow__FlowContext___64dis_already_unreachable
].s
= p0
; /* @is_already_unreachable on <self:FlowContext> */
1426 /* method flow#FlowContext#is_already_unreachable= for (self: Object, Bool) */
1427 void VIRTUAL_flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1428 flow__FlowContext__is_already_unreachable_61d(self
, p0
);
1431 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1432 short int flow__FlowContext__is_start(val
* self
) {
1433 short int var
/* : Bool */;
1434 short int var1
/* : Bool */;
1435 var1
= self
->attrs
[COLOR_flow__FlowContext___64dis_start
].s
; /* @is_start on <self:FlowContext> */
1440 /* method flow#FlowContext#is_start for (self: Object): Bool */
1441 short int VIRTUAL_flow__FlowContext__is_start(val
* self
) {
1442 short int var
/* : Bool */;
1443 short int var1
/* : Bool */;
1444 var1
= flow__FlowContext__is_start(self
);
1449 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1450 void flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1451 self
->attrs
[COLOR_flow__FlowContext___64dis_start
].s
= p0
; /* @is_start on <self:FlowContext> */
1454 /* method flow#FlowContext#is_start= for (self: Object, Bool) */
1455 void VIRTUAL_flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1456 flow__FlowContext__is_start_61d(self
, p0
);
1459 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1460 val
* flow__FlowContext__node(val
* self
) {
1461 val
* var
/* : nullable ANode */;
1462 val
* var1
/* : nullable ANode */;
1463 var1
= self
->attrs
[COLOR_flow__FlowContext___64dnode
].val
; /* @node on <self:FlowContext> */
1468 /* method flow#FlowContext#node for (self: Object): nullable ANode */
1469 val
* VIRTUAL_flow__FlowContext__node(val
* self
) {
1470 val
* var
/* : nullable ANode */;
1471 val
* var1
/* : nullable ANode */;
1472 var1
= flow__FlowContext__node(self
);
1477 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1478 void flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1479 self
->attrs
[COLOR_flow__FlowContext___64dnode
].val
= p0
; /* @node on <self:FlowContext> */
1482 /* method flow#FlowContext#node= for (self: Object, nullable ANode) */
1483 void VIRTUAL_flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1484 flow__FlowContext__node_61d(self
, p0
);
1487 /* method flow#FlowContext#name for (self: FlowContext): String */
1488 val
* flow__FlowContext__name(val
* self
) {
1489 val
* var
/* : String */;
1490 val
* var1
/* : String */;
1491 var1
= self
->attrs
[COLOR_flow__FlowContext___64dname
].val
; /* @name on <self:FlowContext> */
1493 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
1494 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 225);
1501 /* method flow#FlowContext#name for (self: Object): String */
1502 val
* VIRTUAL_flow__FlowContext__name(val
* self
) {
1503 val
* var
/* : String */;
1504 val
* var1
/* : String */;
1505 var1
= flow__FlowContext__name(self
);
1510 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1511 void flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1512 self
->attrs
[COLOR_flow__FlowContext___64dname
].val
= p0
; /* @name on <self:FlowContext> */
1515 /* method flow#FlowContext#name= for (self: Object, String) */
1516 void VIRTUAL_flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1517 flow__FlowContext__name_61d(self
, p0
);
1520 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1521 val
* flow__FlowContext__when_true(val
* self
) {
1522 val
* var
/* : FlowContext */;
1523 val
* var1
/* : FlowContext */;
1524 var1
= self
->attrs
[COLOR_flow__FlowContext___64dwhen_true
].val
; /* @when_true on <self:FlowContext> */
1526 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @when_true");
1527 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 228);
1534 /* method flow#FlowContext#when_true for (self: Object): FlowContext */
1535 val
* VIRTUAL_flow__FlowContext__when_true(val
* self
) {
1536 val
* var
/* : FlowContext */;
1537 val
* var1
/* : FlowContext */;
1538 var1
= flow__FlowContext__when_true(self
);
1543 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1544 void flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1545 self
->attrs
[COLOR_flow__FlowContext___64dwhen_true
].val
= p0
; /* @when_true on <self:FlowContext> */
1548 /* method flow#FlowContext#when_true= for (self: Object, FlowContext) */
1549 void VIRTUAL_flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1550 flow__FlowContext__when_true_61d(self
, p0
);
1553 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1554 val
* flow__FlowContext__when_false(val
* self
) {
1555 val
* var
/* : FlowContext */;
1556 val
* var1
/* : FlowContext */;
1557 var1
= self
->attrs
[COLOR_flow__FlowContext___64dwhen_false
].val
; /* @when_false on <self:FlowContext> */
1559 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @when_false");
1560 fprintf(stderr
, " (%s:%d)\n", "src/flow.nit", 231);
1567 /* method flow#FlowContext#when_false for (self: Object): FlowContext */
1568 val
* VIRTUAL_flow__FlowContext__when_false(val
* self
) {
1569 val
* var
/* : FlowContext */;
1570 val
* var1
/* : FlowContext */;
1571 var1
= flow__FlowContext__when_false(self
);
1576 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1577 void flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1578 self
->attrs
[COLOR_flow__FlowContext___64dwhen_false
].val
= p0
; /* @when_false on <self:FlowContext> */
1581 /* method flow#FlowContext#when_false= for (self: Object, FlowContext) */
1582 void VIRTUAL_flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1583 flow__FlowContext__when_false_61d(self
, p0
);
1586 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1587 void flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1588 val
* var_flow
/* var flow: FlowContext */;
1589 short int var
/* : Bool */;
1590 short int var1
/* : Bool */;
1591 short int var2
/* : Bool */;
1592 short int var_
/* var : Bool */;
1593 val
* var3
/* : Array[FlowContext] */;
1594 short int var4
/* : Bool */;
1595 short int var5
/* : Bool */;
1596 val
* var6
/* : Array[FlowContext] */;
1598 var1
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
1602 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1603 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_flow
) /* has on <var3:Array[FlowContext]>*/;
1610 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1611 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_flow
) /* add on <var6:Array[FlowContext]>*/;
1616 /* method flow#FlowContext#add_previous for (self: Object, FlowContext) */
1617 void VIRTUAL_flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1618 flow__FlowContext__add_previous(self
, p0
);
1621 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1622 void flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1623 val
* var_flow
/* var flow: FlowContext */;
1624 short int var
/* : Bool */;
1625 short int var1
/* : Bool */;
1626 short int var2
/* : Bool */;
1627 short int var_
/* var : Bool */;
1628 val
* var3
/* : Array[FlowContext] */;
1629 short int var4
/* : Bool */;
1630 short int var5
/* : Bool */;
1631 val
* var6
/* : Array[FlowContext] */;
1633 var1
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
1637 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
1638 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_flow
) /* has on <var3:Array[FlowContext]>*/;
1645 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__loops
]))(self
) /* loops on <self:FlowContext>*/;
1646 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_flow
) /* add on <var6:Array[FlowContext]>*/;
1651 /* method flow#FlowContext#add_loop for (self: Object, FlowContext) */
1652 void VIRTUAL_flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1653 flow__FlowContext__add_loop(self
, p0
);
1656 /* method flow#FlowContext#init for (self: FlowContext) */
1657 void flow__FlowContext__init(val
* self
) {
1660 /* method flow#FlowContext#init for (self: Object) */
1661 void VIRTUAL_flow__FlowContext__init(val
* self
) {
1662 flow__FlowContext__init(self
);
1665 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1666 void flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1667 val
* var_v
/* var v: FlowVisitor */;
1669 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1672 /* method flow#ANode#accept_flow_visitor for (self: Object, FlowVisitor) */
1673 void VIRTUAL_flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1674 flow__ANode__accept_flow_visitor(self
, p0
);
1677 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1678 void flow__APropdef__do_flow(val
* self
, val
* p0
) {
1679 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1680 val
* var
/* : FlowVisitor */;
1681 val
* var_v
/* var v: FlowVisitor */;
1682 var_toolcontext
= p0
;
1683 var
= NEW_flow__FlowVisitor(&type_flow__FlowVisitor
);
1684 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_flow__FlowVisitor__init
]))(var
, var_toolcontext
) /* init on <var:FlowVisitor>*/;
1685 CHECK_NEW_flow__FlowVisitor(var
);
1687 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, self
) /* enter_visit on <var_v:FlowVisitor>*/;
1690 /* method flow#APropdef#do_flow for (self: Object, ToolContext) */
1691 void VIRTUAL_flow__APropdef__do_flow(val
* self
, val
* p0
) {
1692 flow__APropdef__do_flow(self
, p0
);
1695 /* method flow#APropdef#before_flow_context for (self: APropdef): nullable FlowContext */
1696 val
* flow__APropdef__before_flow_context(val
* self
) {
1697 val
* var
/* : nullable FlowContext */;
1698 val
* var1
/* : nullable FlowContext */;
1699 var1
= self
->attrs
[COLOR_flow__APropdef___64dbefore_flow_context
].val
; /* @before_flow_context on <self:APropdef> */
1704 /* method flow#APropdef#before_flow_context for (self: Object): nullable FlowContext */
1705 val
* VIRTUAL_flow__APropdef__before_flow_context(val
* self
) {
1706 val
* var
/* : nullable FlowContext */;
1707 val
* var1
/* : nullable FlowContext */;
1708 var1
= flow__APropdef__before_flow_context(self
);
1713 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1714 void flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1715 self
->attrs
[COLOR_flow__APropdef___64dbefore_flow_context
].val
= p0
; /* @before_flow_context on <self:APropdef> */
1718 /* method flow#APropdef#before_flow_context= for (self: Object, nullable FlowContext) */
1719 void VIRTUAL_flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1720 flow__APropdef__before_flow_context_61d(self
, p0
);
1723 /* method flow#APropdef#after_flow_context for (self: APropdef): nullable FlowContext */
1724 val
* flow__APropdef__after_flow_context(val
* self
) {
1725 val
* var
/* : nullable FlowContext */;
1726 val
* var1
/* : nullable FlowContext */;
1727 var1
= self
->attrs
[COLOR_flow__APropdef___64dafter_flow_context
].val
; /* @after_flow_context on <self:APropdef> */
1732 /* method flow#APropdef#after_flow_context for (self: Object): nullable FlowContext */
1733 val
* VIRTUAL_flow__APropdef__after_flow_context(val
* self
) {
1734 val
* var
/* : nullable FlowContext */;
1735 val
* var1
/* : nullable FlowContext */;
1736 var1
= flow__APropdef__after_flow_context(self
);
1741 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1742 void flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1743 self
->attrs
[COLOR_flow__APropdef___64dafter_flow_context
].val
= p0
; /* @after_flow_context on <self:APropdef> */
1746 /* method flow#APropdef#after_flow_context= for (self: Object, nullable FlowContext) */
1747 void VIRTUAL_flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1748 flow__APropdef__after_flow_context_61d(self
, p0
);
1751 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
1752 void flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
1753 val
* var_v
/* var v: FlowVisitor */;
1754 val
* var
/* : FlowContext */;
1755 val
* var1
/* : FlowContext */;
1757 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1758 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__before_flow_context_61d
]))(self
, var
) /* before_flow_context= on <self:APropdef>*/;
1759 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:APropdef>*/;
1760 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1761 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__after_flow_context_61d
]))(self
, var1
) /* after_flow_context= on <self:APropdef>*/;
1764 /* method flow#APropdef#accept_flow_visitor for (self: Object, FlowVisitor) */
1765 void VIRTUAL_flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
1766 flow__APropdef__accept_flow_visitor(self
, p0
);
1769 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
1770 val
* flow__AExpr__after_flow_context(val
* self
) {
1771 val
* var
/* : nullable FlowContext */;
1772 val
* var1
/* : nullable FlowContext */;
1773 var1
= self
->attrs
[COLOR_flow__AExpr___64dafter_flow_context
].val
; /* @after_flow_context on <self:AExpr> */
1778 /* method flow#AExpr#after_flow_context for (self: Object): nullable FlowContext */
1779 val
* VIRTUAL_flow__AExpr__after_flow_context(val
* self
) {
1780 val
* var
/* : nullable FlowContext */;
1781 val
* var1
/* : nullable FlowContext */;
1782 var1
= flow__AExpr__after_flow_context(self
);
1787 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
1788 void flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
1789 self
->attrs
[COLOR_flow__AExpr___64dafter_flow_context
].val
= p0
; /* @after_flow_context on <self:AExpr> */
1792 /* method flow#AExpr#after_flow_context= for (self: Object, nullable FlowContext) */
1793 void VIRTUAL_flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
1794 flow__AExpr__after_flow_context_61d(self
, p0
);
1797 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1798 void flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1799 val
* var_v
/* var v: FlowVisitor */;
1800 val
* var
/* : FlowContext */;
1802 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AVarAssignExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AVarAssignExpr>*/;
1803 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
1804 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(self
, var
) /* after_flow_context= on <self:AVarAssignExpr>*/;
1807 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1808 void VIRTUAL_flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1809 flow__AVarAssignExpr__accept_flow_visitor(self
, p0
);
1812 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1813 void flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1814 val
* var_v
/* var v: FlowVisitor */;
1815 val
* var
/* : FlowContext */;
1817 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReassignFormExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReassignFormExpr>*/;
1818 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
1819 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context_61d
]))(self
, var
) /* after_flow_context= on <self:AReassignFormExpr>*/;
1822 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1823 void VIRTUAL_flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1824 flow__AReassignFormExpr__accept_flow_visitor(self
, p0
);
1827 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1828 void flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1829 val
* var_v
/* var v: FlowVisitor */;
1830 val
* var
/* : ANodes[AExpr] */;
1831 val
* var1
/* : Iterator[nullable Object] */;
1832 short int var2
/* : Bool */;
1833 val
* var3
/* : nullable Object */;
1834 val
* var_e
/* var e: AExpr */;
1835 val
* var4
/* : FlowContext */;
1836 short int var5
/* : Bool */;
1837 short int var6
/* : Bool */;
1838 val
* var7
/* : FlowContext */;
1839 short int var8
/* : Bool */;
1840 short int var9
/* : Bool */;
1841 val
* var10
/* : FlowContext */;
1842 short int var11
/* : Bool */;
1843 val
* var12
/* : ToolContext */;
1844 val
* var13
/* : Location */;
1845 static val
* varonce
;
1846 val
* var14
/* : String */;
1847 char* var15
/* : NativeString */;
1848 long var16
/* : Int */;
1849 val
* var17
/* : String */;
1851 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
1852 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
1854 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
1856 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
1858 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1859 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var4
) /* is_unreachable on <var4:FlowContext>*/;
1862 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_e
) /* enter_visit on <var_v:FlowVisitor>*/;
1864 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1865 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_flow__FlowContext__is_already_unreachable
]))(var7
) /* is_already_unreachable on <var7:FlowContext>*/;
1868 var10
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
1870 ((void (*)(val
*, short int))(var10
->class->vft
[COLOR_flow__FlowContext__is_already_unreachable_61d
]))(var10
, var11
) /* is_already_unreachable= on <var10:FlowContext>*/;
1871 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__toolcontext
]))(var_v
) /* toolcontext on <var_v:FlowVisitor>*/;
1872 var13
= ((val
* (*)(val
*))(var_e
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_e
) /* hot_location on <var_e:AExpr>*/;
1876 var15
= "Error: unreachable statement.";
1878 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1882 ((void (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var12
, var13
, var14
) /* error on <var12:ToolContext>*/;
1886 CONTINUE_label
: (void)0;
1887 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
1889 BREAK_label
: (void)0;
1892 /* method flow#ABlockExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1893 void VIRTUAL_flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1894 flow__ABlockExpr__accept_flow_visitor(self
, p0
);
1897 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1898 void flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1899 val
* var_v
/* var v: FlowVisitor */;
1900 val
* var
/* : FlowContext */;
1902 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReturnExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReturnExpr>*/;
1903 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
1907 /* method flow#AReturnExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1908 void VIRTUAL_flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1909 flow__AReturnExpr__accept_flow_visitor(self
, p0
);
1912 /* method flow#AContinueExpr#before_flow_context for (self: AContinueExpr): nullable FlowContext */
1913 val
* flow__AContinueExpr__before_flow_context(val
* self
) {
1914 val
* var
/* : nullable FlowContext */;
1915 val
* var1
/* : nullable FlowContext */;
1916 val
* var_after
/* var after: nullable FlowContext */;
1917 val
* var2
/* : null */;
1918 short int var3
/* : Bool */;
1919 val
* var4
/* : null */;
1920 val
* var5
/* : Array[FlowContext] */;
1921 val
* var6
/* : nullable Object */;
1922 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AContinueExpr>*/;
1925 if (var_after
== NULL
) {
1926 var3
= 1; /* is null */
1928 var3
= 0; /* arg is null but recv is not */
1936 var5
= ((val
* (*)(val
*))(var_after
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_after
) /* previous on <var_after:nullable FlowContext(FlowContext)>*/;
1937 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var5
) /* first on <var5:Array[FlowContext]>*/;
1943 /* method flow#AContinueExpr#before_flow_context for (self: Object): nullable FlowContext */
1944 val
* VIRTUAL_flow__AContinueExpr__before_flow_context(val
* self
) {
1945 val
* var
/* : nullable FlowContext */;
1946 val
* var1
/* : nullable FlowContext */;
1947 var1
= flow__AContinueExpr__before_flow_context(self
);
1952 /* method flow#AContinueExpr#accept_flow_visitor for (self: AContinueExpr, FlowVisitor) */
1953 void flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1954 val
* var_v
/* var v: FlowVisitor */;
1955 val
* var
/* : FlowContext */;
1957 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AContinueExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AContinueExpr>*/;
1958 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
1962 /* method flow#AContinueExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
1963 void VIRTUAL_flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
1964 flow__AContinueExpr__accept_flow_visitor(self
, p0
);
1967 /* method flow#ABreakExpr#before_flow_context for (self: ABreakExpr): nullable FlowContext */
1968 val
* flow__ABreakExpr__before_flow_context(val
* self
) {
1969 val
* var
/* : nullable FlowContext */;
1970 val
* var1
/* : nullable FlowContext */;
1971 val
* var_after
/* var after: nullable FlowContext */;
1972 val
* var2
/* : null */;
1973 short int var3
/* : Bool */;
1974 val
* var4
/* : null */;
1975 val
* var5
/* : Array[FlowContext] */;
1976 val
* var6
/* : nullable Object */;
1977 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ABreakExpr>*/;
1980 if (var_after
== NULL
) {
1981 var3
= 1; /* is null */
1983 var3
= 0; /* arg is null but recv is not */
1991 var5
= ((val
* (*)(val
*))(var_after
->class->vft
[COLOR_flow__FlowContext__previous
]))(var_after
) /* previous on <var_after:nullable FlowContext(FlowContext)>*/;
1992 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var5
) /* first on <var5:Array[FlowContext]>*/;
1998 /* method flow#ABreakExpr#before_flow_context for (self: Object): nullable FlowContext */
1999 val
* VIRTUAL_flow__ABreakExpr__before_flow_context(val
* self
) {
2000 val
* var
/* : nullable FlowContext */;
2001 val
* var1
/* : nullable FlowContext */;
2002 var1
= flow__ABreakExpr__before_flow_context(self
);
2007 /* method flow#ABreakExpr#accept_flow_visitor for (self: ABreakExpr, FlowVisitor) */
2008 void flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2009 val
* var_v
/* var v: FlowVisitor */;
2010 val
* var
/* : FlowContext */;
2012 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ABreakExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ABreakExpr>*/;
2013 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2017 /* method flow#ABreakExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2018 void VIRTUAL_flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2019 flow__ABreakExpr__accept_flow_visitor(self
, p0
);
2022 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
2023 void flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2024 val
* var_v
/* var v: FlowVisitor */;
2025 val
* var
/* : FlowContext */;
2027 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AAbortExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AAbortExpr>*/;
2028 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2032 /* method flow#AAbortExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2033 void VIRTUAL_flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2034 flow__AAbortExpr__accept_flow_visitor(self
, p0
);
2037 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
2038 void flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2039 val
* var_v
/* var v: FlowVisitor */;
2040 val
* var
/* : nullable EscapeMark */;
2042 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ADoExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ADoExpr>*/;
2043 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ADoExpr__escapemark
]))(self
) /* escapemark on <self:ADoExpr>*/;
2044 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var
) /* merge_breaks on <var_v:FlowVisitor>*/;
2047 /* method flow#ADoExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2048 void VIRTUAL_flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2049 flow__ADoExpr__accept_flow_visitor(self
, p0
);
2052 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
2053 void flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2054 val
* var_v
/* var v: FlowVisitor */;
2055 val
* var
/* : AExpr */;
2056 val
* var1
/* : FlowContext */;
2057 val
* var_after_expr
/* var after_expr: FlowContext */;
2058 val
* var2
/* : FlowContext */;
2059 val
* var3
/* : nullable AExpr */;
2060 val
* var4
/* : FlowContext */;
2061 val
* var_after_then
/* var after_then: FlowContext */;
2062 val
* var5
/* : FlowContext */;
2063 val
* var6
/* : nullable AExpr */;
2064 val
* var7
/* : FlowContext */;
2065 val
* var_after_else
/* var after_else: FlowContext */;
2066 val
* var8
/* : FlowContext */;
2068 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_expr
]))(self
) /* n_expr on <self:AIfExpr>*/;
2069 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2070 var_after_expr
= var1
;
2071 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2072 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2073 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_then
]))(self
) /* n_then on <self:AIfExpr>*/;
2074 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2075 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2076 var_after_then
= var4
;
2077 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2078 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var5
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2079 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_else
]))(self
) /* n_else on <self:AIfExpr>*/;
2080 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var6
) /* enter_visit on <var_v:FlowVisitor>*/;
2081 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2082 var_after_else
= var7
;
2083 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>*/;
2087 /* method flow#AIfExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2088 void VIRTUAL_flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2089 flow__AIfExpr__accept_flow_visitor(self
, p0
);
2092 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2093 void flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2094 val
* var_v
/* var v: FlowVisitor */;
2095 val
* var
/* : AExpr */;
2096 val
* var1
/* : FlowContext */;
2097 val
* var_after_expr
/* var after_expr: FlowContext */;
2098 val
* var2
/* : FlowContext */;
2099 val
* var3
/* : AExpr */;
2100 val
* var4
/* : FlowContext */;
2101 val
* var_after_then
/* var after_then: FlowContext */;
2102 val
* var5
/* : FlowContext */;
2103 val
* var6
/* : AExpr */;
2104 val
* var7
/* : FlowContext */;
2105 val
* var_after_else
/* var after_else: FlowContext */;
2106 val
* var8
/* : FlowContext */;
2108 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_expr
]))(self
) /* n_expr on <self:AIfexprExpr>*/;
2109 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2110 var_after_expr
= var1
;
2111 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2112 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2113 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_then
]))(self
) /* n_then on <self:AIfexprExpr>*/;
2114 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2115 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2116 var_after_then
= var4
;
2117 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2118 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var5
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2119 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_else
]))(self
) /* n_else on <self:AIfexprExpr>*/;
2120 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var6
) /* enter_visit on <var_v:FlowVisitor>*/;
2121 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2122 var_after_else
= var7
;
2123 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>*/;
2127 /* method flow#AIfexprExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2128 void VIRTUAL_flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2129 flow__AIfexprExpr__accept_flow_visitor(self
, p0
);
2132 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2133 void flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2134 val
* var_v
/* var v: FlowVisitor */;
2135 val
* var
/* : FlowContext */;
2136 val
* var_before_loop
/* var before_loop: FlowContext */;
2137 val
* var1
/* : AExpr */;
2138 val
* var2
/* : FlowContext */;
2139 val
* var_after_expr
/* var after_expr: FlowContext */;
2140 val
* var3
/* : FlowContext */;
2141 val
* var4
/* : nullable AExpr */;
2142 val
* var5
/* : FlowContext */;
2143 val
* var_after_block
/* var after_block: FlowContext */;
2144 val
* var6
/* : nullable EscapeMark */;
2145 val
* var7
/* : FlowContext */;
2146 val
* var8
/* : nullable EscapeMark */;
2148 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2149 var_before_loop
= var
;
2150 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_expr
]))(self
) /* n_expr on <self:AWhileExpr>*/;
2151 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var1
) /* visit_expr on <var_v:FlowVisitor>*/;
2152 var_after_expr
= var2
;
2153 var3
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2154 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var3
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2155 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_block
]))(self
) /* n_block on <self:AWhileExpr>*/;
2156 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var4
) /* enter_visit on <var_v:FlowVisitor>*/;
2157 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2158 var_after_block
= var5
;
2159 ((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>*/;
2160 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AWhileExpr__escapemark
]))(self
) /* escapemark on <self:AWhileExpr>*/;
2161 ((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>*/;
2162 var7
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2163 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var7
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2164 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AWhileExpr__escapemark
]))(self
) /* escapemark on <self:AWhileExpr>*/;
2165 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var8
) /* merge_breaks on <var_v:FlowVisitor>*/;
2168 /* method flow#AWhileExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2169 void VIRTUAL_flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2170 flow__AWhileExpr__accept_flow_visitor(self
, p0
);
2173 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2174 void flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2175 val
* var_v
/* var v: FlowVisitor */;
2176 val
* var
/* : FlowContext */;
2177 val
* var_before_loop
/* var before_loop: FlowContext */;
2178 val
* var1
/* : nullable AExpr */;
2179 val
* var2
/* : FlowContext */;
2180 val
* var_after_block
/* var after_block: FlowContext */;
2181 val
* var3
/* : nullable EscapeMark */;
2182 val
* var4
/* : FlowContext */;
2183 val
* var5
/* : nullable EscapeMark */;
2185 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2186 var_before_loop
= var
;
2187 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ALoopExpr__n_block
]))(self
) /* n_block on <self:ALoopExpr>*/;
2188 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var1
) /* enter_visit on <var_v:FlowVisitor>*/;
2189 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2190 var_after_block
= var2
;
2191 ((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>*/;
2192 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ALoopExpr__escapemark
]))(self
) /* escapemark on <self:ALoopExpr>*/;
2193 ((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>*/;
2194 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_unreachable_flow
]))(var_v
) /* make_unreachable_flow on <var_v:FlowVisitor>*/;
2196 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__ALoopExpr__escapemark
]))(self
) /* escapemark on <self:ALoopExpr>*/;
2197 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var5
) /* merge_breaks on <var_v:FlowVisitor>*/;
2200 /* method flow#ALoopExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2201 void VIRTUAL_flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2202 flow__ALoopExpr__accept_flow_visitor(self
, p0
);
2205 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2206 void flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2207 val
* var_v
/* var v: FlowVisitor */;
2208 val
* var
/* : AExpr */;
2209 val
* var1
/* : FlowContext */;
2210 val
* var_before_loop
/* var before_loop: FlowContext */;
2211 val
* var2
/* : nullable AExpr */;
2212 val
* var3
/* : FlowContext */;
2213 val
* var_after_block
/* var after_block: FlowContext */;
2214 val
* var4
/* : nullable EscapeMark */;
2215 val
* var5
/* : FlowContext */;
2216 val
* var6
/* : FlowContext */;
2217 val
* var7
/* : nullable EscapeMark */;
2219 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
2220 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var
) /* enter_visit on <var_v:FlowVisitor>*/;
2221 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__make_sub_flow
]))(var_v
) /* make_sub_flow on <var_v:FlowVisitor>*/;
2222 var_before_loop
= var1
;
2223 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
2224 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var2
) /* enter_visit on <var_v:FlowVisitor>*/;
2225 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2226 var_after_block
= var3
;
2227 ((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>*/;
2228 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__escapemark
]))(self
) /* escapemark on <self:AForExpr>*/;
2229 ((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>*/;
2230 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context
]))(var_v
) /* current_flow_context on <var_v:FlowVisitor>*/;
2231 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>*/;
2233 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__escapemark
]))(self
) /* escapemark on <self:AForExpr>*/;
2234 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__merge_breaks
]))(var_v
, var7
) /* merge_breaks on <var_v:FlowVisitor>*/;
2237 /* method flow#AForExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2238 void VIRTUAL_flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2239 flow__AForExpr__accept_flow_visitor(self
, p0
);
2242 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2243 void flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2244 val
* var_v
/* var v: FlowVisitor */;
2245 val
* var
/* : AExpr */;
2246 val
* var1
/* : FlowContext */;
2247 val
* var_after_expr
/* var after_expr: FlowContext */;
2248 val
* var2
/* : FlowContext */;
2249 val
* var3
/* : nullable AExpr */;
2250 val
* var4
/* : FlowContext */;
2252 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
2253 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2254 var_after_expr
= var1
;
2255 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2256 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2257 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
2258 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var3
) /* enter_visit on <var_v:FlowVisitor>*/;
2259 var4
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2260 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var4
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2263 /* method flow#AAssertExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2264 void VIRTUAL_flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2265 flow__AAssertExpr__accept_flow_visitor(self
, p0
);
2268 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
2269 void flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2270 val
* var_v
/* var v: FlowVisitor */;
2271 val
* var
/* : AExpr */;
2272 val
* var1
/* : FlowContext */;
2273 val
* var_after_expr
/* var after_expr: FlowContext */;
2274 val
* var2
/* : FlowContext */;
2275 val
* var3
/* : AExpr */;
2276 val
* var4
/* : FlowContext */;
2277 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2278 val
* var5
/* : FlowContext */;
2279 val
* var6
/* : FlowContext */;
2280 val
* var7
/* : FlowContext */;
2281 val
* var_merge_true
/* var merge_true: FlowContext */;
2282 static val
* varonce
;
2283 val
* var8
/* : String */;
2284 char* var9
/* : NativeString */;
2285 long var10
/* : Int */;
2286 val
* var11
/* : String */;
2287 val
* var12
/* : FlowContext */;
2288 val
* var13
/* : FlowContext */;
2290 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
2291 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2292 var_after_expr
= var1
;
2293 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2294 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2295 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
2296 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2297 var_after_expr2
= var4
;
2298 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2299 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2300 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>*/;
2301 var_merge_true
= var7
;
2307 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2311 ((void (*)(val
*, val
*))(var_merge_true
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_true
, var8
) /* name= on <var_merge_true:FlowContext>*/;
2312 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2313 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>*/;
2317 /* method flow#AOrExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2318 void VIRTUAL_flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2319 flow__AOrExpr__accept_flow_visitor(self
, p0
);
2322 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
2323 void flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2324 val
* var_v
/* var v: FlowVisitor */;
2325 val
* var
/* : AExpr */;
2326 val
* var1
/* : FlowContext */;
2327 val
* var_after_expr
/* var after_expr: FlowContext */;
2328 val
* var2
/* : FlowContext */;
2329 val
* var3
/* : AExpr */;
2330 val
* var4
/* : FlowContext */;
2331 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2332 val
* var5
/* : FlowContext */;
2333 val
* var6
/* : FlowContext */;
2334 val
* var7
/* : FlowContext */;
2335 val
* var_merge_true
/* var merge_true: FlowContext */;
2336 static val
* varonce
;
2337 val
* var8
/* : String */;
2338 char* var9
/* : NativeString */;
2339 long var10
/* : Int */;
2340 val
* var11
/* : String */;
2341 val
* var12
/* : FlowContext */;
2342 val
* var13
/* : FlowContext */;
2344 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
2345 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2346 var_after_expr
= var1
;
2347 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2348 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2349 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
2350 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2351 var_after_expr2
= var4
;
2352 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2353 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2354 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>*/;
2355 var_merge_true
= var7
;
2361 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2365 ((void (*)(val
*, val
*))(var_merge_true
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_true
, var8
) /* name= on <var_merge_true:FlowContext>*/;
2366 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2367 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>*/;
2371 /* method flow#AImpliesExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2372 void VIRTUAL_flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2373 flow__AImpliesExpr__accept_flow_visitor(self
, p0
);
2376 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
2377 void flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2378 val
* var_v
/* var v: FlowVisitor */;
2379 val
* var
/* : AExpr */;
2380 val
* var1
/* : FlowContext */;
2381 val
* var_after_expr
/* var after_expr: FlowContext */;
2382 val
* var2
/* : FlowContext */;
2383 val
* var3
/* : AExpr */;
2384 val
* var4
/* : FlowContext */;
2385 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2386 val
* var5
/* : FlowContext */;
2387 val
* var6
/* : FlowContext */;
2388 val
* var7
/* : FlowContext */;
2389 val
* var_merge_false
/* var merge_false: FlowContext */;
2390 static val
* varonce
;
2391 val
* var8
/* : String */;
2392 char* var9
/* : NativeString */;
2393 long var10
/* : Int */;
2394 val
* var11
/* : String */;
2395 val
* var12
/* : FlowContext */;
2396 val
* var13
/* : FlowContext */;
2398 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
2399 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2400 var_after_expr
= var1
;
2401 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2402 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__current_flow_context_61d
]))(var_v
, var2
) /* current_flow_context= on <var_v:FlowVisitor>*/;
2403 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
2404 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var3
) /* visit_expr on <var_v:FlowVisitor>*/;
2405 var_after_expr2
= var4
;
2406 var5
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2407 var6
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr2
) /* when_false on <var_after_expr2:FlowContext>*/;
2408 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>*/;
2409 var_merge_false
= var7
;
2415 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2419 ((void (*)(val
*, val
*))(var_merge_false
->class->vft
[COLOR_flow__FlowContext__name_61d
]))(var_merge_false
, var8
) /* name= on <var_merge_false:FlowContext>*/;
2420 var12
= ((val
* (*)(val
*))(var_after_expr2
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr2
) /* when_true on <var_after_expr2:FlowContext>*/;
2421 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>*/;
2425 /* method flow#AAndExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2426 void VIRTUAL_flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2427 flow__AAndExpr__accept_flow_visitor(self
, p0
);
2430 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
2431 void flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2432 val
* var_v
/* var v: FlowVisitor */;
2433 val
* var
/* : AExpr */;
2434 val
* var1
/* : FlowContext */;
2435 val
* var_after_expr
/* var after_expr: FlowContext */;
2436 val
* var2
/* : FlowContext */;
2437 val
* var3
/* : FlowContext */;
2438 val
* var4
/* : FlowContext */;
2440 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
2441 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2442 var_after_expr
= var1
;
2443 var2
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var_after_expr
) /* when_false on <var_after_expr:FlowContext>*/;
2444 var3
= ((val
* (*)(val
*))(var_after_expr
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var_after_expr
) /* when_true on <var_after_expr:FlowContext>*/;
2445 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>*/;
2449 /* method flow#ANotExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2450 void VIRTUAL_flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2451 flow__ANotExpr__accept_flow_visitor(self
, p0
);
2454 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
2455 void flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2456 val
* var_v
/* var v: FlowVisitor */;
2458 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AOrElseExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AOrElseExpr>*/;
2461 /* method flow#AOrElseExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2462 void VIRTUAL_flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2463 flow__AOrElseExpr__accept_flow_visitor(self
, p0
);
2466 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
2467 void flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2468 val
* var_v
/* var v: FlowVisitor */;
2469 val
* var
/* : FlowContext */;
2471 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AEqExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEqExpr>*/;
2472 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>*/;
2476 /* method flow#AEqExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2477 void VIRTUAL_flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2478 flow__AEqExpr__accept_flow_visitor(self
, p0
);
2481 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
2482 void flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2483 val
* var_v
/* var v: FlowVisitor */;
2484 val
* var
/* : FlowContext */;
2486 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ANeExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ANeExpr>*/;
2487 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>*/;
2491 /* method flow#ANeExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2492 void VIRTUAL_flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2493 flow__ANeExpr__accept_flow_visitor(self
, p0
);
2496 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
2497 void flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2498 val
* var_v
/* var v: FlowVisitor */;
2499 val
* var
/* : FlowContext */;
2501 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AIsaExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AIsaExpr>*/;
2502 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>*/;
2506 /* method flow#AIsaExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2507 void VIRTUAL_flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2508 flow__AIsaExpr__accept_flow_visitor(self
, p0
);
2511 /* method flow#AProxyExpr#accept_flow_visitor for (self: AProxyExpr, FlowVisitor) */
2512 void flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2513 val
* var_v
/* var v: FlowVisitor */;
2514 val
* var
/* : AExpr */;
2515 val
* var1
/* : FlowContext */;
2516 val
* var_after_expr
/* var after_expr: FlowContext */;
2518 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
2519 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_flow__FlowVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:FlowVisitor>*/;
2520 var_after_expr
= var1
;
2521 ((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>*/;
2524 /* method flow#AProxyExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2525 void VIRTUAL_flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2526 flow__AProxyExpr__accept_flow_visitor(self
, p0
);