759e9ca804ffa0b5526cf9e64dffdcf3c05fd6c8
[nit.git] / c_src / literal.sep.1.c
1 #include "literal.sep.0.h"
2 /* method literal#ToolContext#literal_phase for (self: ToolContext): Phase */
3 val* literal__ToolContext__literal_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_literal__ToolContext___64dliteral_phase].val; /* @literal_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @literal_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/literal.nit", 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method literal#ToolContext#literal_phase for (self: Object): Phase */
17 val* VIRTUAL_literal__ToolContext__literal_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = literal__ToolContext__literal_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method literal#ToolContext#literal_phase= for (self: ToolContext, Phase) */
26 void literal__ToolContext__literal_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_literal__ToolContext___64dliteral_phase].val = p0; /* @literal_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method literal#ToolContext#literal_phase= for (self: Object, Phase) */
31 void VIRTUAL_literal__ToolContext__literal_phase_61d(val* self, val* p0) {
32 literal__ToolContext__literal_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method literal#LiteralPhase#process_nmodule for (self: LiteralPhase, AModule) */
36 void literal__LiteralPhase__process_nmodule(val* self, val* p0) {
37 val* var_nmodule /* var nmodule: AModule */;
38 val* var /* : ToolContext */;
39 var_nmodule = p0;
40 var = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:LiteralPhase>*/;
41 ((void (*)(val*, val*))(var_nmodule->class->vft[COLOR_literal__AModule__do_literal]))(var_nmodule, var) /* do_literal on <var_nmodule:AModule>*/;
42 RET_LABEL:;
43 }
44 /* method literal#LiteralPhase#process_nmodule for (self: Object, AModule) */
45 void VIRTUAL_literal__LiteralPhase__process_nmodule(val* self, val* p0) {
46 literal__LiteralPhase__process_nmodule(self, p0);
47 RET_LABEL:;
48 }
49 /* method literal#AModule#do_literal for (self: AModule, ToolContext) */
50 void literal__AModule__do_literal(val* self, val* p0) {
51 val* var_toolcontext /* var toolcontext: ToolContext */;
52 val* var /* : LiteralVisitor */;
53 val* var_v /* var v: LiteralVisitor */;
54 var_toolcontext = p0;
55 var = NEW_literal__LiteralVisitor(&type_literal__LiteralVisitor);
56 ((void (*)(val*, val*))(var->class->vft[COLOR_literal__LiteralVisitor__init]))(var, var_toolcontext) /* init on <var:LiteralVisitor>*/;
57 var_v = var;
58 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:LiteralVisitor>*/;
59 RET_LABEL:;
60 }
61 /* method literal#AModule#do_literal for (self: Object, ToolContext) */
62 void VIRTUAL_literal__AModule__do_literal(val* self, val* p0) {
63 literal__AModule__do_literal(self, p0);
64 RET_LABEL:;
65 }
66 /* method literal#LiteralVisitor#toolcontext for (self: LiteralVisitor): ToolContext */
67 val* literal__LiteralVisitor__toolcontext(val* self) {
68 val* var /* : ToolContext */;
69 val* var1 /* : ToolContext */;
70 var1 = self->attrs[COLOR_literal__LiteralVisitor___64dtoolcontext].val; /* @toolcontext on <self:LiteralVisitor> */
71 if (var1 == NULL) {
72 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext");
73 fprintf(stderr, " (%s:%d)\n", "src/literal.nit", 47);
74 show_backtrace(1);
75 }
76 var = var1;
77 RET_LABEL:;
78 return var;
79 }
80 /* method literal#LiteralVisitor#toolcontext for (self: Object): ToolContext */
81 val* VIRTUAL_literal__LiteralVisitor__toolcontext(val* self) {
82 val* var /* : ToolContext */;
83 val* var1 /* : ToolContext */;
84 var1 = literal__LiteralVisitor__toolcontext(self);
85 var = var1;
86 RET_LABEL:;
87 return var;
88 }
89 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
90 void literal__LiteralVisitor__toolcontext_61d(val* self, val* p0) {
91 self->attrs[COLOR_literal__LiteralVisitor___64dtoolcontext].val = p0; /* @toolcontext on <self:LiteralVisitor> */
92 RET_LABEL:;
93 }
94 /* method literal#LiteralVisitor#toolcontext= for (self: Object, ToolContext) */
95 void VIRTUAL_literal__LiteralVisitor__toolcontext_61d(val* self, val* p0) {
96 literal__LiteralVisitor__toolcontext_61d(self, p0);
97 RET_LABEL:;
98 }
99 /* method literal#LiteralVisitor#init for (self: LiteralVisitor, ToolContext) */
100 void literal__LiteralVisitor__init(val* self, val* p0) {
101 val* var_toolcontext /* var toolcontext: ToolContext */;
102 var_toolcontext = p0;
103 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:LiteralVisitor>*/;
104 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__LiteralVisitor__toolcontext_61d]))(self, var_toolcontext) /* toolcontext= on <self:LiteralVisitor>*/;
105 RET_LABEL:;
106 }
107 /* method literal#LiteralVisitor#init for (self: Object, ToolContext) */
108 void VIRTUAL_literal__LiteralVisitor__init(val* self, val* p0) {
109 literal__LiteralVisitor__init(self, p0);
110 RET_LABEL:;
111 }
112 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
113 void literal__LiteralVisitor__visit(val* self, val* p0) {
114 val* var_n /* var n: ANode */;
115 var_n = p0;
116 ((void (*)(val*, val*))(var_n->class->vft[COLOR_literal__ANode__accept_literal]))(var_n, self) /* accept_literal on <var_n:ANode>*/;
117 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
118 RET_LABEL:;
119 }
120 /* method literal#LiteralVisitor#visit for (self: Object, ANode) */
121 void VIRTUAL_literal__LiteralVisitor__visit(val* self, val* p0) {
122 literal__LiteralVisitor__visit(self, p0);
123 RET_LABEL:;
124 }
125 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
126 void literal__ANode__accept_literal(val* self, val* p0) {
127 val* var_v /* var v: LiteralVisitor */;
128 var_v = p0;
129 RET_LABEL:;
130 }
131 /* method literal#ANode#accept_literal for (self: Object, LiteralVisitor) */
132 void VIRTUAL_literal__ANode__accept_literal(val* self, val* p0) {
133 literal__ANode__accept_literal(self, p0);
134 RET_LABEL:;
135 }
136 /* method literal#AIntExpr#value for (self: AIntExpr): nullable Int */
137 val* literal__AIntExpr__value(val* self) {
138 val* var /* : nullable Int */;
139 val* var1 /* : nullable Int */;
140 var1 = self->attrs[COLOR_literal__AIntExpr___64dvalue].val; /* @value on <self:AIntExpr> */
141 var = var1;
142 RET_LABEL:;
143 return var;
144 }
145 /* method literal#AIntExpr#value for (self: Object): nullable Int */
146 val* VIRTUAL_literal__AIntExpr__value(val* self) {
147 val* var /* : nullable Int */;
148 val* var1 /* : nullable Int */;
149 var1 = literal__AIntExpr__value(self);
150 var = var1;
151 RET_LABEL:;
152 return var;
153 }
154 /* method literal#AIntExpr#value= for (self: AIntExpr, nullable Int) */
155 void literal__AIntExpr__value_61d(val* self, val* p0) {
156 self->attrs[COLOR_literal__AIntExpr___64dvalue].val = p0; /* @value on <self:AIntExpr> */
157 RET_LABEL:;
158 }
159 /* method literal#AIntExpr#value= for (self: Object, nullable Int) */
160 void VIRTUAL_literal__AIntExpr__value_61d(val* self, val* p0) {
161 literal__AIntExpr__value_61d(self, p0);
162 RET_LABEL:;
163 }
164 /* method literal#AIntExpr#accept_literal for (self: AIntExpr, LiteralVisitor) */
165 void literal__AIntExpr__accept_literal(val* self, val* p0) {
166 val* var_v /* var v: LiteralVisitor */;
167 val* var /* : TNumber */;
168 val* var1 /* : String */;
169 long var2 /* : Int */;
170 val* var3 /* : nullable Int */;
171 var_v = p0;
172 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIntExpr__n_number]))(self) /* n_number on <self:AIntExpr>*/;
173 var1 = ((val* (*)(val*))(var->class->vft[COLOR_parser_nodes__Token__text]))(var) /* text on <var:TNumber>*/;
174 var2 = ((long (*)(val*))(var1->class->vft[COLOR_string__AbstractString__to_i]))(var1) /* to_i on <var1:String>*/;
175 var3 = BOX_kernel__Int(var2); /* autobox from Int to nullable Int */
176 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__AIntExpr__value_61d]))(self, var3) /* value= on <self:AIntExpr>*/;
177 RET_LABEL:;
178 }
179 /* method literal#AIntExpr#accept_literal for (self: Object, LiteralVisitor) */
180 void VIRTUAL_literal__AIntExpr__accept_literal(val* self, val* p0) {
181 literal__AIntExpr__accept_literal(self, p0);
182 RET_LABEL:;
183 }
184 /* method literal#AFloatExpr#value for (self: AFloatExpr): nullable Float */
185 val* literal__AFloatExpr__value(val* self) {
186 val* var /* : nullable Float */;
187 val* var1 /* : nullable Float */;
188 var1 = self->attrs[COLOR_literal__AFloatExpr___64dvalue].val; /* @value on <self:AFloatExpr> */
189 var = var1;
190 RET_LABEL:;
191 return var;
192 }
193 /* method literal#AFloatExpr#value for (self: Object): nullable Float */
194 val* VIRTUAL_literal__AFloatExpr__value(val* self) {
195 val* var /* : nullable Float */;
196 val* var1 /* : nullable Float */;
197 var1 = literal__AFloatExpr__value(self);
198 var = var1;
199 RET_LABEL:;
200 return var;
201 }
202 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
203 void literal__AFloatExpr__value_61d(val* self, val* p0) {
204 self->attrs[COLOR_literal__AFloatExpr___64dvalue].val = p0; /* @value on <self:AFloatExpr> */
205 RET_LABEL:;
206 }
207 /* method literal#AFloatExpr#value= for (self: Object, nullable Float) */
208 void VIRTUAL_literal__AFloatExpr__value_61d(val* self, val* p0) {
209 literal__AFloatExpr__value_61d(self, p0);
210 RET_LABEL:;
211 }
212 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
213 void literal__AFloatExpr__accept_literal(val* self, val* p0) {
214 val* var_v /* var v: LiteralVisitor */;
215 val* var /* : TFloat */;
216 val* var1 /* : String */;
217 double var2 /* : Float */;
218 val* var3 /* : nullable Float */;
219 var_v = p0;
220 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AFloatExpr__n_float]))(self) /* n_float on <self:AFloatExpr>*/;
221 var1 = ((val* (*)(val*))(var->class->vft[COLOR_parser_nodes__Token__text]))(var) /* text on <var:TFloat>*/;
222 var2 = ((double (*)(val*))(var1->class->vft[COLOR_string__AbstractString__to_f]))(var1) /* to_f on <var1:String>*/;
223 var3 = BOX_kernel__Float(var2); /* autobox from Float to nullable Float */
224 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__AFloatExpr__value_61d]))(self, var3) /* value= on <self:AFloatExpr>*/;
225 RET_LABEL:;
226 }
227 /* method literal#AFloatExpr#accept_literal for (self: Object, LiteralVisitor) */
228 void VIRTUAL_literal__AFloatExpr__accept_literal(val* self, val* p0) {
229 literal__AFloatExpr__accept_literal(self, p0);
230 RET_LABEL:;
231 }
232 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
233 val* literal__ACharExpr__value(val* self) {
234 val* var /* : nullable Char */;
235 val* var1 /* : nullable Char */;
236 var1 = self->attrs[COLOR_literal__ACharExpr___64dvalue].val; /* @value on <self:ACharExpr> */
237 var = var1;
238 RET_LABEL:;
239 return var;
240 }
241 /* method literal#ACharExpr#value for (self: Object): nullable Char */
242 val* VIRTUAL_literal__ACharExpr__value(val* self) {
243 val* var /* : nullable Char */;
244 val* var1 /* : nullable Char */;
245 var1 = literal__ACharExpr__value(self);
246 var = var1;
247 RET_LABEL:;
248 return var;
249 }
250 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
251 void literal__ACharExpr__value_61d(val* self, val* p0) {
252 self->attrs[COLOR_literal__ACharExpr___64dvalue].val = p0; /* @value on <self:ACharExpr> */
253 RET_LABEL:;
254 }
255 /* method literal#ACharExpr#value= for (self: Object, nullable Char) */
256 void VIRTUAL_literal__ACharExpr__value_61d(val* self, val* p0) {
257 literal__ACharExpr__value_61d(self, p0);
258 RET_LABEL:;
259 }
260 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
261 void literal__ACharExpr__accept_literal(val* self, val* p0) {
262 val* var_v /* var v: LiteralVisitor */;
263 val* var /* : TChar */;
264 val* var1 /* : String */;
265 val* var2 /* : String */;
266 val* var_txt /* var txt: String */;
267 long var3 /* : Int */;
268 long var4 /* : Int */;
269 short int var5 /* : Bool */;
270 short int var7 /* : Bool */;
271 short int var8 /* : Bool */;
272 val* var9 /* : ToolContext */;
273 val* var10 /* : Location */;
274 static val* varonce;
275 val* var11 /* : String */;
276 char* var12 /* : NativeString */;
277 long var13 /* : Int */;
278 val* var14 /* : String */;
279 val* var15 /* : Array[Object] */;
280 long var16 /* : Int */;
281 val* var17 /* : NativeArray[Object] */;
282 val* var18 /* : String */;
283 long var19 /* : Int */;
284 val* var20 /* : nullable Object */;
285 var_v = p0;
286 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACharExpr__n_char]))(self) /* n_char on <self:ACharExpr>*/;
287 var1 = ((val* (*)(val*))(var->class->vft[COLOR_parser_nodes__Token__text]))(var) /* text on <var:TChar>*/;
288 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_string__AbstractString__unescape_nit]))(var1) /* unescape_nit on <var1:String>*/;
289 var_txt = var2;
290 var3 = ((long (*)(val*))(var_txt->class->vft[COLOR_abstract_collection__Collection__length]))(var_txt) /* length on <var_txt:String>*/;
291 var4 = 3;
292 { /* Inline kernel#Int#!= (var3,var4) */
293 var7 = var3 == var4;
294 var8 = !var7;
295 var5 = var8;
296 goto RET_LABEL6;
297 RET_LABEL6:(void)0;
298 }
299 if (var5){
300 var9 = ((val* (*)(val*))(var_v->class->vft[COLOR_literal__LiteralVisitor__toolcontext]))(var_v) /* toolcontext on <var_v:LiteralVisitor>*/;
301 var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__hot_location]))(self) /* hot_location on <self:ACharExpr>*/;
302 if (varonce) {
303 var11 = varonce;
304 } else {
305 var12 = "Invalid character literal ";
306 var13 = 26;
307 var14 = string__NativeString__to_s_with_length(var12, var13);
308 var11 = var14;
309 varonce = var11;
310 }
311 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
312 { /* var15 = array_instance Array[Object] */
313 var16 = 2;
314 var17 = NEW_array__NativeArray(var16, &type_array__NativeArraykernel__Object);
315 ((struct instance_array__NativeArray*)var17)->values[0] = (val*) var11;
316 ((struct instance_array__NativeArray*)var17)->values[1] = (val*) var_txt;
317 ((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on <var15:Array[Object]>*/;
318 }
319 var18 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Array[Object]>*/;
320 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_toolcontext__ToolContext__error]))(var9, var10, var18) /* error on <var9:ToolContext>*/;
321 goto RET_LABEL;
322 } else {
323 }
324 var19 = 1;
325 var20 = ((val* (*)(val*, long))(var_txt->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_txt, var19) /* [] on <var_txt:String>*/;
326 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__ACharExpr__value_61d]))(self, var20) /* value= on <self:ACharExpr>*/;
327 RET_LABEL:;
328 }
329 /* method literal#ACharExpr#accept_literal for (self: Object, LiteralVisitor) */
330 void VIRTUAL_literal__ACharExpr__accept_literal(val* self, val* p0) {
331 literal__ACharExpr__accept_literal(self, p0);
332 RET_LABEL:;
333 }
334 /* method literal#AStringFormExpr#value for (self: AStringFormExpr): nullable String */
335 val* literal__AStringFormExpr__value(val* self) {
336 val* var /* : nullable String */;
337 val* var1 /* : nullable String */;
338 var1 = self->attrs[COLOR_literal__AStringFormExpr___64dvalue].val; /* @value on <self:AStringFormExpr> */
339 var = var1;
340 RET_LABEL:;
341 return var;
342 }
343 /* method literal#AStringFormExpr#value for (self: Object): nullable String */
344 val* VIRTUAL_literal__AStringFormExpr__value(val* self) {
345 val* var /* : nullable String */;
346 val* var1 /* : nullable String */;
347 var1 = literal__AStringFormExpr__value(self);
348 var = var1;
349 RET_LABEL:;
350 return var;
351 }
352 /* method literal#AStringFormExpr#value= for (self: AStringFormExpr, nullable String) */
353 void literal__AStringFormExpr__value_61d(val* self, val* p0) {
354 self->attrs[COLOR_literal__AStringFormExpr___64dvalue].val = p0; /* @value on <self:AStringFormExpr> */
355 RET_LABEL:;
356 }
357 /* method literal#AStringFormExpr#value= for (self: Object, nullable String) */
358 void VIRTUAL_literal__AStringFormExpr__value_61d(val* self, val* p0) {
359 literal__AStringFormExpr__value_61d(self, p0);
360 RET_LABEL:;
361 }
362 /* method literal#AStringFormExpr#accept_literal for (self: AStringFormExpr, LiteralVisitor) */
363 void literal__AStringFormExpr__accept_literal(val* self, val* p0) {
364 val* var_v /* var v: LiteralVisitor */;
365 val* var /* : Token */;
366 val* var1 /* : String */;
367 val* var_txt /* var txt: String */;
368 long var2 /* : Int */;
369 long var_skip /* var skip: Int */;
370 short int var3 /* : Bool */;
371 long var4 /* : Int */;
372 val* var5 /* : nullable Object */;
373 long var6 /* : Int */;
374 val* var7 /* : nullable Object */;
375 short int var8 /* : Bool */;
376 short int var10 /* : Bool */;
377 short int var_ /* var : Bool */;
378 long var11 /* : Int */;
379 long var12 /* : Int */;
380 short int var13 /* : Bool */;
381 short int var15 /* : Bool */;
382 int cltype;
383 int idtype;
384 const char* var_class_name;
385 short int var16 /* : Bool */;
386 long var17 /* : Int */;
387 long var18 /* : Int */;
388 long var19 /* : Int */;
389 long var20 /* : Int */;
390 long var22 /* : Int */;
391 long var23 /* : Int */;
392 long var25 /* : Int */;
393 val* var26 /* : String */;
394 val* var27 /* : String */;
395 var_v = p0;
396 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AStringFormExpr__n_string]))(self) /* n_string on <self:AStringFormExpr>*/;
397 var1 = ((val* (*)(val*))(var->class->vft[COLOR_parser_nodes__Token__text]))(var) /* text on <var:Token>*/;
398 var_txt = var1;
399 var2 = 1;
400 var_skip = var2;
401 var4 = 0;
402 var5 = ((val* (*)(val*, long))(var_txt->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_txt, var4) /* [] on <var_txt:String>*/;
403 var6 = 1;
404 var7 = ((val* (*)(val*, long))(var_txt->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_txt, var6) /* [] on <var_txt:String>*/;
405 { /* Inline kernel#Char#== (var5,var7) */
406 var10 = var5 == var7 || (((struct instance_kernel__Char*)var5)->value == ((struct instance_kernel__Char*)var7)->value);
407 var8 = var10;
408 goto RET_LABEL9;
409 RET_LABEL9:(void)0;
410 }
411 var_ = var8;
412 if (var8){
413 var11 = ((long (*)(val*))(var_txt->class->vft[COLOR_abstract_collection__Collection__length]))(var_txt) /* length on <var_txt:String>*/;
414 var12 = 6;
415 { /* Inline kernel#Int#>= (var11,var12) */
416 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
417 /* <var12:Int> isa OTHER */
418 var15 = 1; /* easy <var12:Int> isa OTHER*/
419 if (!var15) {
420 var_class_name = type_kernel__Int.name;
421 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
422 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
423 show_backtrace(1);
424 }
425 var16 = var11 >= var12;
426 var13 = var16;
427 goto RET_LABEL14;
428 RET_LABEL14:(void)0;
429 }
430 var3 = var13;
431 } else {
432 var3 = var_;
433 }
434 if (var3){
435 var17 = 3;
436 var_skip = var17;
437 } else {
438 }
439 var18 = ((long (*)(val*))(var_txt->class->vft[COLOR_abstract_collection__Collection__length]))(var_txt) /* length on <var_txt:String>*/;
440 var19 = 2;
441 { /* Inline kernel#Int#* (var19,var_skip) */
442 var22 = var19 * var_skip;
443 var20 = var22;
444 goto RET_LABEL21;
445 RET_LABEL21:(void)0;
446 }
447 { /* Inline kernel#Int#- (var18,var20) */
448 var25 = var18 - var20;
449 var23 = var25;
450 goto RET_LABEL24;
451 RET_LABEL24:(void)0;
452 }
453 var26 = ((val* (*)(val*, long, long))(var_txt->class->vft[COLOR_string__AbstractString__substring]))(var_txt, var_skip, var23) /* substring on <var_txt:String>*/;
454 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_string__AbstractString__unescape_nit]))(var26) /* unescape_nit on <var26:String>*/;
455 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__AStringFormExpr__value_61d]))(self, var27) /* value= on <self:AStringFormExpr>*/;
456 RET_LABEL:;
457 }
458 /* method literal#AStringFormExpr#accept_literal for (self: Object, LiteralVisitor) */
459 void VIRTUAL_literal__AStringFormExpr__accept_literal(val* self, val* p0) {
460 literal__AStringFormExpr__accept_literal(self, p0);
461 RET_LABEL:;
462 }