lib: implement `close` in StringOStream
[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 val* var19 /* : StringCharView */;
284 long var20 /* : Int */;
285 val* var21 /* : 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 }
320 var18 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Array[Object]>*/;
321 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_toolcontext__ToolContext__error]))(var9, var10, var18) /* error on <var9:ToolContext>*/;
322 goto RET_LABEL;
323 } else {
324 }
325 var19 = ((val* (*)(val*))(var_txt->class->vft[COLOR_string__AbstractString__chars]))(var_txt) /* chars on <var_txt:String>*/;
326 var20 = 1;
327 var21 = ((val* (*)(val*, long))(var19->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var19, var20) /* [] on <var19:StringCharView>*/;
328 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__ACharExpr__value_61d]))(self, var21) /* 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_behead /* var behead: Int */;
372 long var3 /* : Int */;
373 long var_betail /* var betail: Int */;
374 short int var4 /* : Bool */;
375 val* var5 /* : StringCharView */;
376 long var6 /* : Int */;
377 val* var7 /* : nullable Object */;
378 val* var8 /* : StringCharView */;
379 long var9 /* : Int */;
380 val* var10 /* : nullable Object */;
381 short int var11 /* : Bool */;
382 short int var13 /* : Bool */;
383 short int var_ /* var : Bool */;
384 long var14 /* : Int */;
385 long var15 /* : Int */;
386 short int var16 /* : Bool */;
387 short int var18 /* : Bool */;
388 int cltype;
389 int idtype;
390 const char* var_class_name;
391 short int var19 /* : Bool */;
392 long var20 /* : Int */;
393 long var21 /* : Int */;
394 short int var22 /* : Bool */;
395 val* var23 /* : StringCharView */;
396 long var24 /* : Int */;
397 val* var25 /* : nullable Object */;
398 char var26 /* : Char */;
399 short int var27 /* : Bool */;
400 short int var29 /* : Bool */;
401 char var30 /* : Char */;
402 short int var_31 /* var : Bool */;
403 val* var32 /* : StringCharView */;
404 long var33 /* : Int */;
405 val* var34 /* : nullable Object */;
406 char var35 /* : Char */;
407 short int var36 /* : Bool */;
408 short int var38 /* : Bool */;
409 char var39 /* : Char */;
410 long var40 /* : Int */;
411 long var41 /* : Int */;
412 long var42 /* : Int */;
413 long var44 /* : Int */;
414 long var45 /* : Int */;
415 long var47 /* : Int */;
416 val* var48 /* : String */;
417 val* var49 /* : String */;
418 var_v = p0;
419 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AStringFormExpr__n_string]))(self) /* n_string on <self:AStringFormExpr>*/;
420 var1 = ((val* (*)(val*))(var->class->vft[COLOR_parser_nodes__Token__text]))(var) /* text on <var:Token>*/;
421 var_txt = var1;
422 var2 = 1;
423 var_behead = var2;
424 var3 = 1;
425 var_betail = var3;
426 var5 = ((val* (*)(val*))(var_txt->class->vft[COLOR_string__AbstractString__chars]))(var_txt) /* chars on <var_txt:String>*/;
427 var6 = 0;
428 var7 = ((val* (*)(val*, long))(var5->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var5, var6) /* [] on <var5:StringCharView>*/;
429 var8 = ((val* (*)(val*))(var_txt->class->vft[COLOR_string__AbstractString__chars]))(var_txt) /* chars on <var_txt:String>*/;
430 var9 = 1;
431 var10 = ((val* (*)(val*, long))(var8->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var8, var9) /* [] on <var8:StringCharView>*/;
432 { /* Inline kernel#Char#== (var7,var10) */
433 var13 = var7 == var10 || (((struct instance_kernel__Char*)var7)->value == ((struct instance_kernel__Char*)var10)->value);
434 var11 = var13;
435 goto RET_LABEL12;
436 RET_LABEL12:(void)0;
437 }
438 var_ = var11;
439 if (var11){
440 var14 = ((long (*)(val*))(var_txt->class->vft[COLOR_abstract_collection__Collection__length]))(var_txt) /* length on <var_txt:String>*/;
441 var15 = 6;
442 { /* Inline kernel#Int#>= (var14,var15) */
443 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
444 /* <var15:Int> isa OTHER */
445 var18 = 1; /* easy <var15:Int> isa OTHER*/
446 if (!var18) {
447 var_class_name = type_kernel__Int.name;
448 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
449 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
450 show_backtrace(1);
451 }
452 var19 = var14 >= var15;
453 var16 = var19;
454 goto RET_LABEL17;
455 RET_LABEL17:(void)0;
456 }
457 var4 = var16;
458 } else {
459 var4 = var_;
460 }
461 if (var4){
462 var20 = 3;
463 var_behead = var20;
464 var21 = 3;
465 var_betail = var21;
466 var23 = ((val* (*)(val*))(var_txt->class->vft[COLOR_string__AbstractString__chars]))(var_txt) /* chars on <var_txt:String>*/;
467 var24 = 0;
468 var25 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var24) /* [] on <var23:StringCharView>*/;
469 var26 = '\"';
470 { /* Inline kernel#Char#== (var25,var26) */
471 var29 = (var25 != NULL) && (var25->class == &class_kernel__Char);
472 if (var29) {
473 var30 = ((struct instance_kernel__Char*)var25)->value; /* autounbox from nullable Object to Char */;
474 var29 = (var30 == var26);
475 }
476 var27 = var29;
477 goto RET_LABEL28;
478 RET_LABEL28:(void)0;
479 }
480 var_31 = var27;
481 if (var27){
482 var32 = ((val* (*)(val*))(var_txt->class->vft[COLOR_string__AbstractString__chars]))(var_txt) /* chars on <var_txt:String>*/;
483 var33 = 3;
484 var34 = ((val* (*)(val*, long))(var32->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var32, var33) /* [] on <var32:StringCharView>*/;
485 var35 = '\n';
486 { /* Inline kernel#Char#== (var34,var35) */
487 var38 = (var34 != NULL) && (var34->class == &class_kernel__Char);
488 if (var38) {
489 var39 = ((struct instance_kernel__Char*)var34)->value; /* autounbox from nullable Object to Char */;
490 var38 = (var39 == var35);
491 }
492 var36 = var38;
493 goto RET_LABEL37;
494 RET_LABEL37:(void)0;
495 }
496 var22 = var36;
497 } else {
498 var22 = var_31;
499 }
500 if (var22){
501 var40 = 4;
502 var_behead = var40;
503 } else {
504 }
505 } else {
506 }
507 var41 = ((long (*)(val*))(var_txt->class->vft[COLOR_abstract_collection__Collection__length]))(var_txt) /* length on <var_txt:String>*/;
508 { /* Inline kernel#Int#- (var41,var_behead) */
509 var44 = var41 - var_behead;
510 var42 = var44;
511 goto RET_LABEL43;
512 RET_LABEL43:(void)0;
513 }
514 { /* Inline kernel#Int#- (var42,var_betail) */
515 var47 = var42 - var_betail;
516 var45 = var47;
517 goto RET_LABEL46;
518 RET_LABEL46:(void)0;
519 }
520 var48 = ((val* (*)(val*, long, long))(var_txt->class->vft[COLOR_string__AbstractString__substring]))(var_txt, var_behead, var45) /* substring on <var_txt:String>*/;
521 var49 = ((val* (*)(val*))(var48->class->vft[COLOR_string__AbstractString__unescape_nit]))(var48) /* unescape_nit on <var48:String>*/;
522 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__AStringFormExpr__value_61d]))(self, var49) /* value= on <self:AStringFormExpr>*/;
523 RET_LABEL:;
524 }
525 /* method literal#AStringFormExpr#accept_literal for (self: Object, LiteralVisitor) */
526 void VIRTUAL_literal__AStringFormExpr__accept_literal(val* self, val* p0) {
527 literal__AStringFormExpr__accept_literal(self, p0);
528 RET_LABEL:;
529 }