README: Update libgc's URL
[nit.git] / c_src / nitc__literal.sep.1.c
1 #include "nitc__literal.sep.0.h"
2 /* method literal#LiteralPhase#process_nmodule for (self: LiteralPhase, AModule) */
3 void nitc__literal___nitc__literal__LiteralPhase___nitc__phase__Phase__process_nmodule(val* self, val* p0) {
4 val* var_nmodule /* var nmodule: AModule */;
5 val* var /* : ToolContext */;
6 val* var2 /* : ToolContext */;
7 var_nmodule = p0;
8 {
9 { /* Inline phase#Phase#toolcontext (self) on <self:LiteralPhase> */
10 var2 = self->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on <self:LiteralPhase> */
11 if (unlikely(var2 == NULL)) {
12 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
13 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 200);
14 fatal_exit(1);
15 }
16 var = var2;
17 RET_LABEL1:(void)0;
18 }
19 }
20 {
21 nitc__literal___AModule___do_literal(var_nmodule, var); /* Direct call literal#AModule#do_literal on <var_nmodule:AModule>*/
22 }
23 RET_LABEL:;
24 }
25 /* method literal#AModule#do_literal for (self: AModule, ToolContext) */
26 void nitc__literal___AModule___do_literal(val* self, val* p0) {
27 val* var_toolcontext /* var toolcontext: ToolContext */;
28 val* var /* : LiteralVisitor */;
29 val* var_v /* var v: LiteralVisitor */;
30 var_toolcontext = p0;
31 var = NEW_nitc__literal__LiteralVisitor(&type_nitc__literal__LiteralVisitor);
32 {
33 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nitc__literal__LiteralVisitor__toolcontext_61d]))(var, var_toolcontext); /* toolcontext= on <var:LiteralVisitor>*/
34 }
35 {
36 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:LiteralVisitor>*/
37 }
38 var_v = var;
39 {
40 nitc___nitc__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:LiteralVisitor>*/
41 }
42 RET_LABEL:;
43 }
44 /* method literal#LiteralVisitor#toolcontext for (self: LiteralVisitor): ToolContext */
45 val* nitc__literal___nitc__literal__LiteralVisitor___toolcontext(val* self) {
46 val* var /* : ToolContext */;
47 val* var1 /* : ToolContext */;
48 var1 = self->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <self:LiteralVisitor> */
49 if (unlikely(var1 == NULL)) {
50 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
51 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
52 fatal_exit(1);
53 }
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
59 void nitc__literal___nitc__literal__LiteralVisitor___toolcontext_61d(val* self, val* p0) {
60 self->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val = p0; /* _toolcontext on <self:LiteralVisitor> */
61 RET_LABEL:;
62 }
63 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
64 void nitc__literal___nitc__literal__LiteralVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
65 val* var_n /* var n: ANode */;
66 var_n = p0;
67 {
68 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__literal__ANode__accept_literal]))(var_n, self); /* accept_literal on <var_n:ANode>*/
69 }
70 {
71 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on <var_n:ANode>*/
72 }
73 RET_LABEL:;
74 }
75 /* method literal#LiteralVisitor#init for (self: LiteralVisitor) */
76 void nitc__literal___nitc__literal__LiteralVisitor___core__kernel__Object__init(val* self) {
77 {
78 ((void(*)(val* self))(self->class->vft[COLOR_nitc__literal___nitc__literal__LiteralVisitor___core__kernel__Object__init]))(self); /* init on <self:LiteralVisitor>*/
79 }
80 RET_LABEL:;
81 }
82 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
83 void nitc__literal___ANode___accept_literal(val* self, val* p0) {
84 val* var_v /* var v: LiteralVisitor */;
85 var_v = p0;
86 RET_LABEL:;
87 }
88 /* method literal#AExpr#as_string for (self: AExpr): nullable String */
89 val* nitc__literal___AExpr___as_string(val* self) {
90 val* var /* : nullable String */;
91 short int var1 /* : Bool */;
92 int cltype;
93 int idtype;
94 short int var2 /* : Bool */;
95 val* var3 /* : nullable String */;
96 val* var5 /* : nullable String */;
97 /* <self:AExpr> isa AStringFormExpr */
98 cltype = type_nitc__AStringFormExpr.color;
99 idtype = type_nitc__AStringFormExpr.id;
100 if(cltype >= self->type->table_size) {
101 var1 = 0;
102 } else {
103 var1 = self->type->type_table[cltype] == idtype;
104 }
105 var2 = !var1;
106 if (var2){
107 var = ((val*)NULL);
108 goto RET_LABEL;
109 } else {
110 }
111 {
112 { /* Inline literal#AStringFormExpr#value (self) on <self:AExpr(AStringFormExpr)> */
113 var5 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AExpr(AStringFormExpr)> */
114 var3 = var5;
115 RET_LABEL4:(void)0;
116 }
117 }
118 if (unlikely(var3 == NULL)) {
119 PRINT_ERROR("Runtime error: %s", "Cast failed");
120 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 65);
121 fatal_exit(1);
122 }
123 var = var3;
124 goto RET_LABEL;
125 RET_LABEL:;
126 return var;
127 }
128 /* method literal#AIntegerExpr#value for (self: AIntegerExpr): nullable Numeric */
129 val* nitc__literal___AIntegerExpr___value(val* self) {
130 val* var /* : nullable Numeric */;
131 val* var1 /* : nullable Numeric */;
132 var1 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
133 var = var1;
134 RET_LABEL:;
135 return var;
136 }
137 /* method literal#AIntegerExpr#value= for (self: AIntegerExpr, nullable Numeric) */
138 void nitc__literal___AIntegerExpr___value_61d(val* self, val* p0) {
139 self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val = p0; /* _value on <self:AIntegerExpr> */
140 RET_LABEL:;
141 }
142 /* method literal#AIntegerExpr#accept_literal for (self: AIntegerExpr, LiteralVisitor) */
143 void nitc__literal___AIntegerExpr___ANode__accept_literal(val* self, val* p0) {
144 val* var_v /* var v: LiteralVisitor */;
145 val* var /* : TInteger */;
146 val* var2 /* : TInteger */;
147 val* var3 /* : String */;
148 val* var4 /* : nullable Numeric */;
149 val* var6 /* : nullable Numeric */;
150 val* var8 /* : nullable Numeric */;
151 short int var9 /* : Bool */;
152 short int var10 /* : Bool */;
153 val* var11 /* : ToolContext */;
154 val* var13 /* : ToolContext */;
155 val* var14 /* : Location */;
156 val* var15 /* : NativeArray[String] */;
157 static val* varonce;
158 static val* varonce16;
159 val* var17 /* : String */;
160 char* var18 /* : NativeString */;
161 val* var19 /* : String */;
162 static val* varonce20;
163 val* var21 /* : String */;
164 char* var22 /* : NativeString */;
165 val* var23 /* : String */;
166 val* var24 /* : TInteger */;
167 val* var26 /* : TInteger */;
168 val* var27 /* : String */;
169 val* var28 /* : String */;
170 val* var29 /* : Message */;
171 var_v = p0;
172 {
173 { /* Inline parser_nodes#AIntegerExpr#n_integer (self) on <self:AIntegerExpr> */
174 var2 = self->attrs[COLOR_nitc__parser_nodes__AIntegerExpr___n_integer].val; /* _n_integer on <self:AIntegerExpr> */
175 if (unlikely(var2 == NULL)) {
176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_integer");
177 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2511);
178 fatal_exit(1);
179 }
180 var = var2;
181 RET_LABEL1:(void)0;
182 }
183 }
184 {
185 var3 = nitc__lexer_work___Token___text(var);
186 }
187 {
188 var4 = core__fixed_ints___Text___to_num(var3);
189 }
190 {
191 { /* Inline literal#AIntegerExpr#value= (self,var4) on <self:AIntegerExpr> */
192 self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val = var4; /* _value on <self:AIntegerExpr> */
193 RET_LABEL5:(void)0;
194 }
195 }
196 {
197 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
198 var8 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
199 var6 = var8;
200 RET_LABEL7:(void)0;
201 }
202 }
203 if (var6 == NULL) {
204 var9 = 1; /* is null */
205 } else {
206 var9 = 0; /* arg is null but recv is not */
207 }
208 if (0) {
209 var10 = ((short int(*)(val* self, val* p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var6, ((val*)NULL)); /* == on <var6:nullable Numeric>*/
210 var9 = var10;
211 }
212 if (var9){
213 {
214 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
215 var13 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
216 if (unlikely(var13 == NULL)) {
217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
218 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
219 fatal_exit(1);
220 }
221 var11 = var13;
222 RET_LABEL12:(void)0;
223 }
224 }
225 {
226 var14 = nitc___nitc__ANode___hot_location(self);
227 }
228 if (unlikely(varonce==NULL)) {
229 var15 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
230 if (likely(varonce16!=NULL)) {
231 var17 = varonce16;
232 } else {
233 var18 = "Error: invalid literal `";
234 var19 = core__flat___NativeString___to_s_full(var18, 24l, 24l);
235 var17 = var19;
236 varonce16 = var17;
237 }
238 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
239 if (likely(varonce20!=NULL)) {
240 var21 = varonce20;
241 } else {
242 var22 = "`";
243 var23 = core__flat___NativeString___to_s_full(var22, 1l, 1l);
244 var21 = var23;
245 varonce20 = var21;
246 }
247 ((struct instance_core__NativeArray*)var15)->values[2]=var21;
248 } else {
249 var15 = varonce;
250 varonce = NULL;
251 }
252 {
253 { /* Inline parser_nodes#AIntegerExpr#n_integer (self) on <self:AIntegerExpr> */
254 var26 = self->attrs[COLOR_nitc__parser_nodes__AIntegerExpr___n_integer].val; /* _n_integer on <self:AIntegerExpr> */
255 if (unlikely(var26 == NULL)) {
256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_integer");
257 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2511);
258 fatal_exit(1);
259 }
260 var24 = var26;
261 RET_LABEL25:(void)0;
262 }
263 }
264 {
265 var27 = nitc__lexer_work___Token___text(var24);
266 }
267 ((struct instance_core__NativeArray*)var15)->values[1]=var27;
268 {
269 var28 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
270 }
271 varonce = var15;
272 {
273 var29 = nitc___nitc__ToolContext___error(var11, var14, var28);
274 }
275 } else {
276 }
277 RET_LABEL:;
278 }
279 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
280 void nitc__literal___AFloatExpr___value_61d(val* self, val* p0) {
281 self->attrs[COLOR_nitc__literal__AFloatExpr___value].val = p0; /* _value on <self:AFloatExpr> */
282 RET_LABEL:;
283 }
284 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
285 void nitc__literal___AFloatExpr___ANode__accept_literal(val* self, val* p0) {
286 val* var_v /* var v: LiteralVisitor */;
287 val* var /* : TFloat */;
288 val* var2 /* : TFloat */;
289 val* var3 /* : String */;
290 double var4 /* : Float */;
291 val* var6 /* : nullable Float */;
292 var_v = p0;
293 {
294 { /* Inline parser_nodes#AFloatExpr#n_float (self) on <self:AFloatExpr> */
295 var2 = self->attrs[COLOR_nitc__parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
296 if (unlikely(var2 == NULL)) {
297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
298 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2519);
299 fatal_exit(1);
300 }
301 var = var2;
302 RET_LABEL1:(void)0;
303 }
304 }
305 {
306 var3 = nitc__lexer_work___Token___text(var);
307 }
308 {
309 var4 = core___core__Text___to_f(var3);
310 }
311 {
312 { /* Inline literal#AFloatExpr#value= (self,var4) on <self:AFloatExpr> */
313 var6 = BOX_core__Float(var4); /* autobox from Float to nullable Float */
314 self->attrs[COLOR_nitc__literal__AFloatExpr___value].val = var6; /* _value on <self:AFloatExpr> */
315 RET_LABEL5:(void)0;
316 }
317 }
318 RET_LABEL:;
319 }
320 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
321 val* nitc__literal___ACharExpr___value(val* self) {
322 val* var /* : nullable Char */;
323 val* var1 /* : nullable Char */;
324 var1 = self->attrs[COLOR_nitc__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
325 var = var1;
326 RET_LABEL:;
327 return var;
328 }
329 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
330 void nitc__literal___ACharExpr___value_61d(val* self, val* p0) {
331 self->attrs[COLOR_nitc__literal__ACharExpr___value].val = p0; /* _value on <self:ACharExpr> */
332 RET_LABEL:;
333 }
334 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
335 void nitc__literal___ACharExpr___ANode__accept_literal(val* self, val* p0) {
336 val* var_v /* var v: LiteralVisitor */;
337 val* var /* : TChar */;
338 val* var2 /* : TChar */;
339 val* var3 /* : String */;
340 val* var4 /* : String */;
341 val* var_txt /* var txt: String */;
342 long var5 /* : Int */;
343 short int var6 /* : Bool */;
344 short int var8 /* : Bool */;
345 short int var9 /* : Bool */;
346 val* var10 /* : ToolContext */;
347 val* var12 /* : ToolContext */;
348 val* var13 /* : Location */;
349 val* var14 /* : NativeArray[String] */;
350 static val* varonce;
351 static val* varonce15;
352 val* var16 /* : String */;
353 char* var17 /* : NativeString */;
354 val* var18 /* : String */;
355 static val* varonce19;
356 val* var20 /* : String */;
357 char* var21 /* : NativeString */;
358 val* var22 /* : String */;
359 val* var23 /* : String */;
360 val* var24 /* : Message */;
361 val* var25 /* : SequenceRead[Char] */;
362 val* var26 /* : nullable Object */;
363 var_v = p0;
364 {
365 { /* Inline parser_nodes#ACharExpr#n_char (self) on <self:ACharExpr> */
366 var2 = self->attrs[COLOR_nitc__parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
367 if (unlikely(var2 == NULL)) {
368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2527);
370 fatal_exit(1);
371 }
372 var = var2;
373 RET_LABEL1:(void)0;
374 }
375 }
376 {
377 var3 = nitc__lexer_work___Token___text(var);
378 }
379 {
380 var4 = core___core__Text___unescape_nit(var3);
381 }
382 var_txt = var4;
383 {
384 var5 = ((long(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__length]))(var_txt); /* length on <var_txt:String>*/
385 }
386 {
387 { /* Inline kernel#Int#!= (var5,3l) on <var5:Int> */
388 var8 = var5 == 3l;
389 var9 = !var8;
390 var6 = var9;
391 goto RET_LABEL7;
392 RET_LABEL7:(void)0;
393 }
394 }
395 if (var6){
396 {
397 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
398 var12 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
399 if (unlikely(var12 == NULL)) {
400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
401 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
402 fatal_exit(1);
403 }
404 var10 = var12;
405 RET_LABEL11:(void)0;
406 }
407 }
408 {
409 var13 = nitc___nitc__ANode___hot_location(self);
410 }
411 if (unlikely(varonce==NULL)) {
412 var14 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
413 if (likely(varonce15!=NULL)) {
414 var16 = varonce15;
415 } else {
416 var17 = "Syntax Error: invalid character literal `";
417 var18 = core__flat___NativeString___to_s_full(var17, 41l, 41l);
418 var16 = var18;
419 varonce15 = var16;
420 }
421 ((struct instance_core__NativeArray*)var14)->values[0]=var16;
422 if (likely(varonce19!=NULL)) {
423 var20 = varonce19;
424 } else {
425 var21 = "`.";
426 var22 = core__flat___NativeString___to_s_full(var21, 2l, 2l);
427 var20 = var22;
428 varonce19 = var20;
429 }
430 ((struct instance_core__NativeArray*)var14)->values[2]=var20;
431 } else {
432 var14 = varonce;
433 varonce = NULL;
434 }
435 ((struct instance_core__NativeArray*)var14)->values[1]=var_txt;
436 {
437 var23 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
438 }
439 varonce = var14;
440 {
441 var24 = nitc___nitc__ToolContext___error(var10, var13, var23);
442 }
443 goto RET_LABEL;
444 } else {
445 }
446 {
447 var25 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
448 }
449 {
450 var26 = ((val*(*)(val* self, long p0))((((long)var25&3)?class_info[((long)var25&3)]:var25->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var25, 1l); /* [] on <var25:SequenceRead[Char]>*/
451 }
452 {
453 { /* Inline literal#ACharExpr#value= (self,var26) on <self:ACharExpr> */
454 self->attrs[COLOR_nitc__literal__ACharExpr___value].val = var26; /* _value on <self:ACharExpr> */
455 RET_LABEL27:(void)0;
456 }
457 }
458 RET_LABEL:;
459 }
460 /* method literal#AStringFormExpr#value for (self: AStringFormExpr): nullable String */
461 val* nitc__literal___AStringFormExpr___value(val* self) {
462 val* var /* : nullable String */;
463 val* var1 /* : nullable String */;
464 var1 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AStringFormExpr> */
465 var = var1;
466 RET_LABEL:;
467 return var;
468 }
469 /* method literal#AStringFormExpr#value= for (self: AStringFormExpr, nullable String) */
470 void nitc__literal___AStringFormExpr___value_61d(val* self, val* p0) {
471 self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val = p0; /* _value on <self:AStringFormExpr> */
472 RET_LABEL:;
473 }
474 /* method literal#AStringFormExpr#accept_literal for (self: AStringFormExpr, LiteralVisitor) */
475 void nitc__literal___AStringFormExpr___ANode__accept_literal(val* self, val* p0) {
476 val* var_v /* var v: LiteralVisitor */;
477 val* var /* : Token */;
478 val* var2 /* : Token */;
479 val* var3 /* : String */;
480 val* var_txt /* var txt: String */;
481 long var_behead /* var behead: Int */;
482 long var_betail /* var betail: Int */;
483 short int var4 /* : Bool */;
484 val* var5 /* : SequenceRead[Char] */;
485 val* var6 /* : nullable Object */;
486 val* var7 /* : SequenceRead[Char] */;
487 val* var8 /* : nullable Object */;
488 short int var9 /* : Bool */;
489 short int var11 /* : Bool */;
490 short int var_ /* var : Bool */;
491 long var12 /* : Int */;
492 short int var13 /* : Bool */;
493 short int var15 /* : Bool */;
494 int cltype;
495 int idtype;
496 const char* var_class_name;
497 short int var16 /* : Bool */;
498 short int var17 /* : Bool */;
499 val* var18 /* : SequenceRead[Char] */;
500 val* var19 /* : nullable Object */;
501 short int var20 /* : Bool */;
502 short int var22 /* : Bool */;
503 uint32_t var23 /* : Char */;
504 short int var_24 /* var : Bool */;
505 val* var25 /* : SequenceRead[Char] */;
506 val* var26 /* : nullable Object */;
507 short int var27 /* : Bool */;
508 short int var29 /* : Bool */;
509 uint32_t var30 /* : Char */;
510 long var31 /* : Int */;
511 long var32 /* : Int */;
512 short int var34 /* : Bool */;
513 int cltype35;
514 int idtype36;
515 const char* var_class_name37;
516 long var38 /* : Int */;
517 long var39 /* : Int */;
518 short int var41 /* : Bool */;
519 int cltype42;
520 int idtype43;
521 const char* var_class_name44;
522 long var45 /* : Int */;
523 val* var46 /* : Text */;
524 val* var47 /* : String */;
525 var_v = p0;
526 {
527 { /* Inline parser_nodes#AStringFormExpr#n_string (self) on <self:AStringFormExpr> */
528 var2 = self->attrs[COLOR_nitc__parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringFormExpr> */
529 if (unlikely(var2 == NULL)) {
530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2535);
532 fatal_exit(1);
533 }
534 var = var2;
535 RET_LABEL1:(void)0;
536 }
537 }
538 {
539 var3 = nitc__lexer_work___Token___text(var);
540 }
541 var_txt = var3;
542 var_behead = 1l;
543 var_betail = 1l;
544 {
545 var5 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
546 }
547 {
548 var6 = ((val*(*)(val* self, long p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var5, 0l); /* [] on <var5:SequenceRead[Char]>*/
549 }
550 {
551 var7 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
552 }
553 {
554 var8 = ((val*(*)(val* self, long p0))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var7, 1l); /* [] on <var7:SequenceRead[Char]>*/
555 }
556 {
557 { /* Inline kernel#Char#== (var6,var8) on <var6:nullable Object(Char)> */
558 var11 = var6 == var8;
559 var9 = var11;
560 goto RET_LABEL10;
561 RET_LABEL10:(void)0;
562 }
563 }
564 var_ = var9;
565 if (var9){
566 {
567 var12 = ((long(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__length]))(var_txt); /* length on <var_txt:String>*/
568 }
569 {
570 { /* Inline kernel#Int#>= (var12,6l) on <var12:Int> */
571 /* Covariant cast for argument 0 (i) <6l:Int> isa OTHER */
572 /* <6l:Int> isa OTHER */
573 var15 = 1; /* easy <6l:Int> isa OTHER*/
574 if (unlikely(!var15)) {
575 var_class_name = type_core__Int.name;
576 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
577 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
578 fatal_exit(1);
579 }
580 var16 = var12 >= 6l;
581 var13 = var16;
582 goto RET_LABEL14;
583 RET_LABEL14:(void)0;
584 }
585 }
586 var4 = var13;
587 } else {
588 var4 = var_;
589 }
590 if (var4){
591 var_behead = 3l;
592 var_betail = 3l;
593 {
594 var18 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
595 }
596 {
597 var19 = ((val*(*)(val* self, long p0))((((long)var18&3)?class_info[((long)var18&3)]:var18->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var18, 0l); /* [] on <var18:SequenceRead[Char]>*/
598 }
599 {
600 { /* Inline kernel#Char#== (var19,'\"') on <var19:nullable Object(Char)> */
601 var23 = (uint32_t)((long)(var19)>>2);
602 var22 = var23 == '\"';
603 var20 = var22;
604 goto RET_LABEL21;
605 RET_LABEL21:(void)0;
606 }
607 }
608 var_24 = var20;
609 if (var20){
610 {
611 var25 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
612 }
613 {
614 var26 = ((val*(*)(val* self, long p0))((((long)var25&3)?class_info[((long)var25&3)]:var25->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var25, 3l); /* [] on <var25:SequenceRead[Char]>*/
615 }
616 {
617 { /* Inline kernel#Char#== (var26,'\n') on <var26:nullable Object(Char)> */
618 var30 = (uint32_t)((long)(var26)>>2);
619 var29 = var30 == '\n';
620 var27 = var29;
621 goto RET_LABEL28;
622 RET_LABEL28:(void)0;
623 }
624 }
625 var17 = var27;
626 } else {
627 var17 = var_24;
628 }
629 if (var17){
630 var_behead = 4l;
631 } else {
632 }
633 } else {
634 }
635 {
636 var31 = ((long(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__length]))(var_txt); /* length on <var_txt:String>*/
637 }
638 {
639 { /* Inline kernel#Int#- (var31,var_behead) on <var31:Int> */
640 /* Covariant cast for argument 0 (i) <var_behead:Int> isa OTHER */
641 /* <var_behead:Int> isa OTHER */
642 var34 = 1; /* easy <var_behead:Int> isa OTHER*/
643 if (unlikely(!var34)) {
644 var_class_name37 = type_core__Int.name;
645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
646 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
647 fatal_exit(1);
648 }
649 var38 = var31 - var_behead;
650 var32 = var38;
651 goto RET_LABEL33;
652 RET_LABEL33:(void)0;
653 }
654 }
655 {
656 { /* Inline kernel#Int#- (var32,var_betail) on <var32:Int> */
657 /* Covariant cast for argument 0 (i) <var_betail:Int> isa OTHER */
658 /* <var_betail:Int> isa OTHER */
659 var41 = 1; /* easy <var_betail:Int> isa OTHER*/
660 if (unlikely(!var41)) {
661 var_class_name44 = type_core__Int.name;
662 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
663 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
664 fatal_exit(1);
665 }
666 var45 = var32 - var_betail;
667 var39 = var45;
668 goto RET_LABEL40;
669 RET_LABEL40:(void)0;
670 }
671 }
672 {
673 var46 = ((val*(*)(val* self, long p0, long p1))(var_txt->class->vft[COLOR_core__abstract_text__Text__substring]))(var_txt, var_behead, var39); /* substring on <var_txt:String>*/
674 }
675 {
676 var47 = core___core__Text___unescape_nit(var46);
677 }
678 {
679 { /* Inline literal#AStringFormExpr#value= (self,var47) on <self:AStringFormExpr> */
680 self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val = var47; /* _value on <self:AStringFormExpr> */
681 RET_LABEL48:(void)0;
682 }
683 }
684 RET_LABEL:;
685 }