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