Merge: doc: fixed some typos and other misc. corrections
[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 if(catchStack.cursor >= 0){
13 longjmp(catchStack.envs[catchStack.cursor], 1);
14 }
15 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
16 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 210);
17 fatal_exit(1);
18 }
19 var = var2;
20 RET_LABEL1:(void)0;
21 }
22 }
23 {
24 nitc__literal___AModule___do_literal(var_nmodule, var); /* Direct call literal$AModule$do_literal on <var_nmodule:AModule>*/
25 }
26 RET_LABEL:;
27 }
28 /* method literal$AModule$do_literal for (self: AModule, ToolContext) */
29 void nitc__literal___AModule___do_literal(val* self, val* p0) {
30 val* var_toolcontext /* var toolcontext: ToolContext */;
31 val* var /* : LiteralVisitor */;
32 val* var_v /* var v: LiteralVisitor */;
33 var_toolcontext = p0;
34 var = NEW_nitc__literal__LiteralVisitor(&type_nitc__literal__LiteralVisitor);
35 {
36 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nitc__literal__LiteralVisitor__toolcontext_61d]))(var, var_toolcontext); /* toolcontext= on <var:LiteralVisitor>*/
37 }
38 {
39 ((void(*)(val* self))(var->class->vft[COLOR_core__kernel__Object__init]))(var); /* init on <var:LiteralVisitor>*/
40 }
41 var_v = var;
42 {
43 nitc___nitc__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:LiteralVisitor>*/
44 }
45 RET_LABEL:;
46 }
47 /* method literal$LiteralVisitor$toolcontext for (self: LiteralVisitor): ToolContext */
48 val* nitc__literal___nitc__literal__LiteralVisitor___toolcontext(val* self) {
49 val* var /* : ToolContext */;
50 val* var1 /* : ToolContext */;
51 var1 = self->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <self:LiteralVisitor> */
52 if (unlikely(var1 == NULL)) {
53 if(catchStack.cursor >= 0){
54 longjmp(catchStack.envs[catchStack.cursor], 1);
55 }
56 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
57 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
58 fatal_exit(1);
59 }
60 var = var1;
61 RET_LABEL:;
62 return var;
63 }
64 /* method literal$LiteralVisitor$toolcontext= for (self: LiteralVisitor, ToolContext) */
65 void nitc__literal___nitc__literal__LiteralVisitor___toolcontext_61d(val* self, val* p0) {
66 self->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val = p0; /* _toolcontext on <self:LiteralVisitor> */
67 RET_LABEL:;
68 }
69 /* method literal$LiteralVisitor$visit for (self: LiteralVisitor, ANode) */
70 void nitc__literal___nitc__literal__LiteralVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
71 val* var_n /* var n: ANode */;
72 var_n = p0;
73 {
74 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__literal__ANode__accept_literal]))(var_n, self); /* accept_literal on <var_n:ANode>*/
75 }
76 {
77 ((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>*/
78 }
79 RET_LABEL:;
80 }
81 /* method literal$LiteralVisitor$init for (self: LiteralVisitor) */
82 void nitc__literal___nitc__literal__LiteralVisitor___core__kernel__Object__init(val* self) {
83 {
84 ((void(*)(val* self))(self->class->vft[COLOR_nitc__literal___nitc__literal__LiteralVisitor___core__kernel__Object__init]))(self); /* init on <self:LiteralVisitor>*/
85 }
86 RET_LABEL:;
87 }
88 /* method literal$ANode$accept_literal for (self: ANode, LiteralVisitor) */
89 void nitc__literal___ANode___accept_literal(val* self, val* p0) {
90 val* var_v /* var v: LiteralVisitor */;
91 var_v = p0;
92 RET_LABEL:;
93 }
94 /* method literal$AExpr$as_string for (self: AExpr): nullable String */
95 val* nitc__literal___AExpr___as_string(val* self) {
96 val* var /* : nullable String */;
97 short int var1 /* : Bool */;
98 int cltype;
99 int idtype;
100 short int var2 /* : Bool */;
101 val* var3 /* : String */;
102 val* var5 /* : String */;
103 /* <self:AExpr> isa AStringFormExpr */
104 cltype = type_nitc__AStringFormExpr.color;
105 idtype = type_nitc__AStringFormExpr.id;
106 if(cltype >= self->type->table_size) {
107 var1 = 0;
108 } else {
109 var1 = self->type->type_table[cltype] == idtype;
110 }
111 var2 = !var1;
112 if (var2){
113 var = ((val*)NULL);
114 goto RET_LABEL;
115 } else {
116 }
117 {
118 { /* Inline literal$AStringFormExpr$value (self) on <self:AExpr(AStringFormExpr)> */
119 var5 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AExpr(AStringFormExpr)> */
120 if (unlikely(var5 == NULL)) {
121 if(catchStack.cursor >= 0){
122 longjmp(catchStack.envs[catchStack.cursor], 1);
123 }
124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _value");
125 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 201);
126 fatal_exit(1);
127 }
128 var3 = var5;
129 RET_LABEL4:(void)0;
130 }
131 }
132 var = var3;
133 goto RET_LABEL;
134 RET_LABEL:;
135 return var;
136 }
137 /* method literal$AIntegerExpr$value for (self: AIntegerExpr): nullable Numeric */
138 val* nitc__literal___AIntegerExpr___value(val* self) {
139 val* var /* : nullable Numeric */;
140 val* var1 /* : nullable Numeric */;
141 var1 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
142 var = var1;
143 RET_LABEL:;
144 return var;
145 }
146 /* method literal$AIntegerExpr$value= for (self: AIntegerExpr, nullable Numeric) */
147 void nitc__literal___AIntegerExpr___value_61d(val* self, val* p0) {
148 self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val = p0; /* _value on <self:AIntegerExpr> */
149 RET_LABEL:;
150 }
151 /* method literal$AIntegerExpr$accept_literal for (self: AIntegerExpr, LiteralVisitor) */
152 void nitc__literal___AIntegerExpr___ANode__accept_literal(val* self, val* p0) {
153 val* var_v /* var v: LiteralVisitor */;
154 val* var /* : TInteger */;
155 val* var2 /* : TInteger */;
156 val* var3 /* : String */;
157 val* var4 /* : nullable Numeric */;
158 val* var6 /* : nullable Numeric */;
159 val* var8 /* : nullable Numeric */;
160 short int var9 /* : Bool */;
161 short int var10 /* : Bool */;
162 val* var11 /* : ToolContext */;
163 val* var13 /* : ToolContext */;
164 val* var14 /* : Location */;
165 val* var15 /* : NativeArray[String] */;
166 static val* varonce;
167 static val* varonce16;
168 val* var17 /* : String */;
169 char* var18 /* : CString */;
170 val* var19 /* : String */;
171 val* var20 /* : nullable Int */;
172 val* var21 /* : nullable Int */;
173 val* var22 /* : nullable Bool */;
174 val* var23 /* : nullable Bool */;
175 static val* varonce24;
176 val* var25 /* : String */;
177 char* var26 /* : CString */;
178 val* var27 /* : String */;
179 val* var28 /* : nullable Int */;
180 val* var29 /* : nullable Int */;
181 val* var30 /* : nullable Bool */;
182 val* var31 /* : nullable Bool */;
183 val* var32 /* : TInteger */;
184 val* var34 /* : TInteger */;
185 val* var35 /* : String */;
186 val* var36 /* : String */;
187 val* var37 /* : Message */;
188 var_v = p0;
189 {
190 { /* Inline parser_nodes$AIntegerExpr$n_integer (self) on <self:AIntegerExpr> */
191 var2 = self->attrs[COLOR_nitc__parser_nodes__AIntegerExpr___n_integer].val; /* _n_integer on <self:AIntegerExpr> */
192 if (unlikely(var2 == NULL)) {
193 if(catchStack.cursor >= 0){
194 longjmp(catchStack.envs[catchStack.cursor], 1);
195 }
196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_integer");
197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2592);
198 fatal_exit(1);
199 }
200 var = var2;
201 RET_LABEL1:(void)0;
202 }
203 }
204 {
205 var3 = nitc__lexer_work___Token___text(var);
206 }
207 {
208 var4 = core__fixed_ints_text___Text___to_num(var3);
209 }
210 {
211 { /* Inline literal$AIntegerExpr$value= (self,var4) on <self:AIntegerExpr> */
212 self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val = var4; /* _value on <self:AIntegerExpr> */
213 RET_LABEL5:(void)0;
214 }
215 }
216 {
217 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
218 var8 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
219 var6 = var8;
220 RET_LABEL7:(void)0;
221 }
222 }
223 if (var6 == NULL) {
224 var9 = 1; /* is null */
225 } else {
226 var9 = 0; /* arg is null but recv is not */
227 }
228 if (0) {
229 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>*/
230 var9 = var10;
231 }
232 if (var9){
233 {
234 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
235 var13 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
236 if (unlikely(var13 == NULL)) {
237 if(catchStack.cursor >= 0){
238 longjmp(catchStack.envs[catchStack.cursor], 1);
239 }
240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
241 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
242 fatal_exit(1);
243 }
244 var11 = var13;
245 RET_LABEL12:(void)0;
246 }
247 }
248 {
249 var14 = nitc___nitc__ANode___hot_location(self);
250 }
251 if (unlikely(varonce==NULL)) {
252 var15 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
253 if (likely(varonce16!=NULL)) {
254 var17 = varonce16;
255 } else {
256 var18 = "Error: invalid literal `";
257 var20 = (val*)(24l<<2|1);
258 var21 = (val*)(24l<<2|1);
259 var22 = (val*)((long)(0)<<2|3);
260 var23 = (val*)((long)(0)<<2|3);
261 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
262 var17 = var19;
263 varonce16 = var17;
264 }
265 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
266 if (likely(varonce24!=NULL)) {
267 var25 = varonce24;
268 } else {
269 var26 = "`";
270 var28 = (val*)(1l<<2|1);
271 var29 = (val*)(1l<<2|1);
272 var30 = (val*)((long)(0)<<2|3);
273 var31 = (val*)((long)(0)<<2|3);
274 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
275 var25 = var27;
276 varonce24 = var25;
277 }
278 ((struct instance_core__NativeArray*)var15)->values[2]=var25;
279 } else {
280 var15 = varonce;
281 varonce = NULL;
282 }
283 {
284 { /* Inline parser_nodes$AIntegerExpr$n_integer (self) on <self:AIntegerExpr> */
285 var34 = self->attrs[COLOR_nitc__parser_nodes__AIntegerExpr___n_integer].val; /* _n_integer on <self:AIntegerExpr> */
286 if (unlikely(var34 == NULL)) {
287 if(catchStack.cursor >= 0){
288 longjmp(catchStack.envs[catchStack.cursor], 1);
289 }
290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_integer");
291 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2592);
292 fatal_exit(1);
293 }
294 var32 = var34;
295 RET_LABEL33:(void)0;
296 }
297 }
298 {
299 var35 = nitc__lexer_work___Token___text(var32);
300 }
301 ((struct instance_core__NativeArray*)var15)->values[1]=var35;
302 {
303 var36 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
304 }
305 varonce = var15;
306 {
307 var37 = nitc___nitc__ToolContext___error(var11, var14, var36);
308 }
309 } else {
310 }
311 RET_LABEL:;
312 }
313 /* method literal$AFloatExpr$value= for (self: AFloatExpr, nullable Float) */
314 void nitc__literal___AFloatExpr___value_61d(val* self, val* p0) {
315 self->attrs[COLOR_nitc__literal__AFloatExpr___value].val = p0; /* _value on <self:AFloatExpr> */
316 RET_LABEL:;
317 }
318 /* method literal$AFloatExpr$accept_literal for (self: AFloatExpr, LiteralVisitor) */
319 void nitc__literal___AFloatExpr___ANode__accept_literal(val* self, val* p0) {
320 val* var_v /* var v: LiteralVisitor */;
321 val* var /* : TFloat */;
322 val* var2 /* : TFloat */;
323 val* var3 /* : String */;
324 double var4 /* : Float */;
325 val* var6 /* : nullable Float */;
326 var_v = p0;
327 {
328 { /* Inline parser_nodes$AFloatExpr$n_float (self) on <self:AFloatExpr> */
329 var2 = self->attrs[COLOR_nitc__parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
330 if (unlikely(var2 == NULL)) {
331 if(catchStack.cursor >= 0){
332 longjmp(catchStack.envs[catchStack.cursor], 1);
333 }
334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
335 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2600);
336 fatal_exit(1);
337 }
338 var = var2;
339 RET_LABEL1:(void)0;
340 }
341 }
342 {
343 var3 = nitc__lexer_work___Token___text(var);
344 }
345 {
346 var4 = core___core__Text___to_f(var3);
347 }
348 {
349 { /* Inline literal$AFloatExpr$value= (self,var4) on <self:AFloatExpr> */
350 var6 = BOX_core__Float(var4); /* autobox from Float to nullable Float */
351 self->attrs[COLOR_nitc__literal__AFloatExpr___value].val = var6; /* _value on <self:AFloatExpr> */
352 RET_LABEL5:(void)0;
353 }
354 }
355 RET_LABEL:;
356 }
357 /* method literal$AAugmentedLiteral$text for (self: AAugmentedLiteral): String */
358 val* nitc___nitc__AAugmentedLiteral___text(val* self) {
359 val* var /* : String */;
360 const char* var_class_name;
361 var_class_name = self == NULL ? "null" : self->type->name;
362 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "text", var_class_name);
363 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 100);
364 fatal_exit(1);
365 RET_LABEL:;
366 return var;
367 }
368 /* method literal$AAugmentedLiteral$prefix for (self: AAugmentedLiteral): String */
369 val* nitc___nitc__AAugmentedLiteral___prefix(val* self) {
370 val* var /* : String */;
371 short int var1 /* : Bool */;
372 val* var2 /* : String */;
373 val* var3 /* : String */;
374 val* var5 /* : String */;
375 val* var6 /* : String */;
376 uint32_t var7 /* : Char */;
377 long var8 /* : Int */;
378 val* var9 /* : Text */;
379 var1 = self->attrs[COLOR_nitc__literal__AAugmentedLiteral___prefix].val != NULL; /* _prefix on <self:AAugmentedLiteral> */
380 if(likely(var1)) {
381 var2 = self->attrs[COLOR_nitc__literal__AAugmentedLiteral___prefix].val; /* _prefix on <self:AAugmentedLiteral> */
382 if (unlikely(var2 == NULL)) {
383 if(catchStack.cursor >= 0){
384 longjmp(catchStack.envs[catchStack.cursor], 1);
385 }
386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _prefix");
387 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 110);
388 fatal_exit(1);
389 }
390 } else {
391 {
392 {
393 var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__text]))(self); /* text on <self:AAugmentedLiteral>*/
394 }
395 {
396 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__text]))(self); /* text on <self:AAugmentedLiteral>*/
397 }
398 {
399 var7 = ((uint32_t(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__delimiter_start]))(self); /* delimiter_start on <self:AAugmentedLiteral>*/
400 }
401 {
402 var8 = core___core__Text___index_of(var6, var7);
403 }
404 {
405 var9 = ((val*(*)(val* self, long p0, long p1))(var5->class->vft[COLOR_core__abstract_text__Text__substring]))(var5, 0l, var8); /* substring on <var5:String>*/
406 }
407 var3 = var9;
408 goto RET_LABEL4;
409 RET_LABEL4:(void)0;
410 }
411 self->attrs[COLOR_nitc__literal__AAugmentedLiteral___prefix].val = var3; /* _prefix on <self:AAugmentedLiteral> */
412 var2 = var3;
413 }
414 var = var2;
415 RET_LABEL:;
416 return var;
417 }
418 /* method literal$AAugmentedLiteral$suffix for (self: AAugmentedLiteral): String */
419 val* nitc___nitc__AAugmentedLiteral___suffix(val* self) {
420 val* var /* : String */;
421 short int var1 /* : Bool */;
422 val* var2 /* : String */;
423 val* var3 /* : String */;
424 val* var5 /* : String */;
425 val* var6 /* : String */;
426 uint32_t var7 /* : Char */;
427 long var8 /* : Int */;
428 long var9 /* : Int */;
429 short int var11 /* : Bool */;
430 int cltype;
431 int idtype;
432 const char* var_class_name;
433 long var12 /* : Int */;
434 val* var13 /* : Text */;
435 var1 = self->attrs[COLOR_nitc__literal__AAugmentedLiteral___suffix].val != NULL; /* _suffix on <self:AAugmentedLiteral> */
436 if(likely(var1)) {
437 var2 = self->attrs[COLOR_nitc__literal__AAugmentedLiteral___suffix].val; /* _suffix on <self:AAugmentedLiteral> */
438 if (unlikely(var2 == NULL)) {
439 if(catchStack.cursor >= 0){
440 longjmp(catchStack.envs[catchStack.cursor], 1);
441 }
442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _suffix");
443 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 113);
444 fatal_exit(1);
445 }
446 } else {
447 {
448 {
449 var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__text]))(self); /* text on <self:AAugmentedLiteral>*/
450 }
451 {
452 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__text]))(self); /* text on <self:AAugmentedLiteral>*/
453 }
454 {
455 var7 = ((uint32_t(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__delimiter_end]))(self); /* delimiter_end on <self:AAugmentedLiteral>*/
456 }
457 {
458 var8 = core___core__Text___last_index_of(var6, var7);
459 }
460 {
461 { /* Inline kernel$Int$+ (var8,1l) on <var8:Int> */
462 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
463 /* <1l:Int> isa OTHER */
464 var11 = 1; /* easy <1l:Int> isa OTHER*/
465 if (unlikely(!var11)) {
466 var_class_name = type_core__Int.name;
467 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
468 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
469 fatal_exit(1);
470 }
471 var12 = var8 + 1l;
472 var9 = var12;
473 goto RET_LABEL10;
474 RET_LABEL10:(void)0;
475 }
476 }
477 {
478 var13 = ((val*(*)(val* self, long p0))(var5->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var5, var9); /* substring_from on <var5:String>*/
479 }
480 var3 = var13;
481 goto RET_LABEL4;
482 RET_LABEL4:(void)0;
483 }
484 self->attrs[COLOR_nitc__literal__AAugmentedLiteral___suffix].val = var3; /* _suffix on <self:AAugmentedLiteral> */
485 var2 = var3;
486 }
487 var = var2;
488 RET_LABEL:;
489 return var;
490 }
491 /* method literal$AAugmentedLiteral$content for (self: AAugmentedLiteral): String */
492 val* nitc___nitc__AAugmentedLiteral___content(val* self) {
493 val* var /* : String */;
494 short int var1 /* : Bool */;
495 val* var2 /* : String */;
496 val* var3 /* : String */;
497 val* var5 /* : String */;
498 val* var6 /* : String */;
499 long var7 /* : Int */;
500 val* var8 /* : Text */;
501 val* var_npr /* var npr: String */;
502 long var9 /* : Int */;
503 val* var10 /* : String */;
504 long var11 /* : Int */;
505 long var12 /* : Int */;
506 short int var14 /* : Bool */;
507 int cltype;
508 int idtype;
509 const char* var_class_name;
510 long var15 /* : Int */;
511 val* var16 /* : Text */;
512 var1 = self->attrs[COLOR_nitc__literal__AAugmentedLiteral___content].val != NULL; /* _content on <self:AAugmentedLiteral> */
513 if(likely(var1)) {
514 var2 = self->attrs[COLOR_nitc__literal__AAugmentedLiteral___content].val; /* _content on <self:AAugmentedLiteral> */
515 if (unlikely(var2 == NULL)) {
516 if(catchStack.cursor >= 0){
517 longjmp(catchStack.envs[catchStack.cursor], 1);
518 }
519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
520 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 116);
521 fatal_exit(1);
522 }
523 } else {
524 {
525 {
526 var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__text]))(self); /* text on <self:AAugmentedLiteral>*/
527 }
528 {
529 var6 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(self); /* prefix on <self:AAugmentedLiteral>*/
530 }
531 {
532 var7 = ((long(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__Text__length]))(var6); /* length on <var6:String>*/
533 }
534 {
535 var8 = ((val*(*)(val* self, long p0))(var5->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var5, var7); /* substring_from on <var5:String>*/
536 }
537 var_npr = var8;
538 {
539 var9 = ((long(*)(val* self))(var_npr->class->vft[COLOR_core__abstract_text__Text__length]))(var_npr); /* length on <var_npr:String>*/
540 }
541 {
542 var10 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AAugmentedLiteral>*/
543 }
544 {
545 var11 = ((long(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__Text__length]))(var10); /* length on <var10:String>*/
546 }
547 {
548 { /* Inline kernel$Int$- (var9,var11) on <var9:Int> */
549 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
550 /* <var11:Int> isa OTHER */
551 var14 = 1; /* easy <var11:Int> isa OTHER*/
552 if (unlikely(!var14)) {
553 var_class_name = type_core__Int.name;
554 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
555 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
556 fatal_exit(1);
557 }
558 var15 = var9 - var11;
559 var12 = var15;
560 goto RET_LABEL13;
561 RET_LABEL13:(void)0;
562 }
563 }
564 {
565 var16 = ((val*(*)(val* self, long p0, long p1))(var_npr->class->vft[COLOR_core__abstract_text__Text__substring]))(var_npr, 0l, var12); /* substring on <var_npr:String>*/
566 }
567 var3 = var16;
568 goto RET_LABEL4;
569 RET_LABEL4:(void)0;
570 }
571 self->attrs[COLOR_nitc__literal__AAugmentedLiteral___content].val = var3; /* _content on <self:AAugmentedLiteral> */
572 var2 = var3;
573 }
574 var = var2;
575 RET_LABEL:;
576 return var;
577 }
578 /* method literal$ACharExpr$value for (self: ACharExpr): nullable Char */
579 val* nitc__literal___ACharExpr___value(val* self) {
580 val* var /* : nullable Char */;
581 val* var1 /* : nullable Char */;
582 var1 = self->attrs[COLOR_nitc__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
583 var = var1;
584 RET_LABEL:;
585 return var;
586 }
587 /* method literal$ACharExpr$value= for (self: ACharExpr, nullable Char) */
588 void nitc__literal___ACharExpr___value_61d(val* self, val* p0) {
589 self->attrs[COLOR_nitc__literal__ACharExpr___value].val = p0; /* _value on <self:ACharExpr> */
590 RET_LABEL:;
591 }
592 /* method literal$ACharExpr$delimiter_start for (self: ACharExpr): Char */
593 uint32_t nitc__literal___ACharExpr___AAugmentedLiteral__delimiter_start(val* self) {
594 uint32_t var /* : Char */;
595 var = '\'';
596 goto RET_LABEL;
597 RET_LABEL:;
598 return var;
599 }
600 /* method literal$ACharExpr$delimiter_end for (self: ACharExpr): Char */
601 uint32_t nitc__literal___ACharExpr___AAugmentedLiteral__delimiter_end(val* self) {
602 uint32_t var /* : Char */;
603 var = '\'';
604 goto RET_LABEL;
605 RET_LABEL:;
606 return var;
607 }
608 /* method literal$ACharExpr$is_ascii for (self: ACharExpr): Bool */
609 short int nitc__literal___ACharExpr___is_ascii(val* self) {
610 short int var /* : Bool */;
611 val* var1 /* : String */;
612 static val* varonce;
613 val* var2 /* : String */;
614 char* var3 /* : CString */;
615 val* var4 /* : String */;
616 val* var5 /* : nullable Int */;
617 val* var6 /* : nullable Int */;
618 val* var7 /* : nullable Bool */;
619 val* var8 /* : nullable Bool */;
620 short int var9 /* : Bool */;
621 {
622 var1 = nitc___nitc__AAugmentedLiteral___prefix(self);
623 }
624 if (likely(varonce!=NULL)) {
625 var2 = varonce;
626 } else {
627 var3 = "b";
628 var5 = (val*)(1l<<2|1);
629 var6 = (val*)(1l<<2|1);
630 var7 = (val*)((long)(0)<<2|3);
631 var8 = (val*)((long)(0)<<2|3);
632 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
633 var2 = var4;
634 varonce = var2;
635 }
636 {
637 var9 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var2); /* == on <var1:String>*/
638 }
639 var = var9;
640 goto RET_LABEL;
641 RET_LABEL:;
642 return var;
643 }
644 /* method literal$ACharExpr$is_code_point for (self: ACharExpr): Bool */
645 short int nitc__literal___ACharExpr___is_code_point(val* self) {
646 short int var /* : Bool */;
647 val* var1 /* : String */;
648 static val* varonce;
649 val* var2 /* : String */;
650 char* var3 /* : CString */;
651 val* var4 /* : String */;
652 val* var5 /* : nullable Int */;
653 val* var6 /* : nullable Int */;
654 val* var7 /* : nullable Bool */;
655 val* var8 /* : nullable Bool */;
656 short int var9 /* : Bool */;
657 {
658 var1 = nitc___nitc__AAugmentedLiteral___prefix(self);
659 }
660 if (likely(varonce!=NULL)) {
661 var2 = varonce;
662 } else {
663 var3 = "u";
664 var5 = (val*)(1l<<2|1);
665 var6 = (val*)(1l<<2|1);
666 var7 = (val*)((long)(0)<<2|3);
667 var8 = (val*)((long)(0)<<2|3);
668 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
669 var2 = var4;
670 varonce = var2;
671 }
672 {
673 var9 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var2); /* == on <var1:String>*/
674 }
675 var = var9;
676 goto RET_LABEL;
677 RET_LABEL:;
678 return var;
679 }
680 /* method literal$ACharExpr$text for (self: ACharExpr): String */
681 val* nitc__literal___ACharExpr___AAugmentedLiteral__text(val* self) {
682 val* var /* : String */;
683 val* var1 /* : TChar */;
684 val* var3 /* : TChar */;
685 val* var4 /* : String */;
686 {
687 { /* Inline parser_nodes$ACharExpr$n_char (self) on <self:ACharExpr> */
688 var3 = self->attrs[COLOR_nitc__parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
689 if (unlikely(var3 == NULL)) {
690 if(catchStack.cursor >= 0){
691 longjmp(catchStack.envs[catchStack.cursor], 1);
692 }
693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
694 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2608);
695 fatal_exit(1);
696 }
697 var1 = var3;
698 RET_LABEL2:(void)0;
699 }
700 }
701 {
702 var4 = nitc__lexer_work___Token___text(var1);
703 }
704 var = var4;
705 goto RET_LABEL;
706 RET_LABEL:;
707 return var;
708 }
709 /* method literal$ACharExpr$is_valid_augmentation for (self: ACharExpr): Bool */
710 short int nitc__literal___ACharExpr___AAugmentedLiteral__is_valid_augmentation(val* self) {
711 short int var /* : Bool */;
712 val* var1 /* : String */;
713 static val* varonce;
714 val* var2 /* : String */;
715 char* var3 /* : CString */;
716 val* var4 /* : String */;
717 val* var5 /* : nullable Int */;
718 val* var6 /* : nullable Int */;
719 val* var7 /* : nullable Bool */;
720 val* var8 /* : nullable Bool */;
721 short int var9 /* : Bool */;
722 val* var_other /* var other: nullable Object */;
723 short int var11 /* : Bool */;
724 short int var12 /* : Bool */;
725 short int var13 /* : Bool */;
726 short int var14 /* : Bool */;
727 val* var15 /* : String */;
728 static val* varonce16;
729 val* var17 /* : String */;
730 char* var18 /* : CString */;
731 val* var19 /* : String */;
732 val* var20 /* : nullable Int */;
733 val* var21 /* : nullable Int */;
734 val* var22 /* : nullable Bool */;
735 val* var23 /* : nullable Bool */;
736 short int var24 /* : Bool */;
737 short int var26 /* : Bool */;
738 short int var27 /* : Bool */;
739 {
740 var1 = nitc___nitc__AAugmentedLiteral___suffix(self);
741 }
742 if (likely(varonce!=NULL)) {
743 var2 = varonce;
744 } else {
745 var3 = "";
746 var5 = (val*)(0l<<2|1);
747 var6 = (val*)(0l<<2|1);
748 var7 = (val*)((long)(0)<<2|3);
749 var8 = (val*)((long)(0)<<2|3);
750 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
751 var2 = var4;
752 varonce = var2;
753 }
754 {
755 { /* Inline kernel$Object$!= (var1,var2) on <var1:String> */
756 var_other = var2;
757 {
758 var11 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:String>*/
759 }
760 var12 = !var11;
761 var9 = var12;
762 goto RET_LABEL10;
763 RET_LABEL10:(void)0;
764 }
765 }
766 if (var9){
767 var = 0;
768 goto RET_LABEL;
769 } else {
770 }
771 {
772 var13 = nitc__literal___ACharExpr___is_ascii(self);
773 }
774 if (var13){
775 var = 1;
776 goto RET_LABEL;
777 } else {
778 }
779 {
780 var14 = nitc__literal___ACharExpr___is_code_point(self);
781 }
782 if (var14){
783 var = 1;
784 goto RET_LABEL;
785 } else {
786 }
787 {
788 var15 = nitc___nitc__AAugmentedLiteral___prefix(self);
789 }
790 if (likely(varonce16!=NULL)) {
791 var17 = varonce16;
792 } else {
793 var18 = "";
794 var20 = (val*)(0l<<2|1);
795 var21 = (val*)(0l<<2|1);
796 var22 = (val*)((long)(0)<<2|3);
797 var23 = (val*)((long)(0)<<2|3);
798 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
799 var17 = var19;
800 varonce16 = var17;
801 }
802 {
803 { /* Inline kernel$Object$!= (var15,var17) on <var15:String> */
804 var_other = var17;
805 {
806 var26 = ((short int(*)(val* self, val* p0))(var15->class->vft[COLOR_core__kernel__Object___61d_61d]))(var15, var_other); /* == on <var15:String>*/
807 }
808 var27 = !var26;
809 var24 = var27;
810 goto RET_LABEL25;
811 RET_LABEL25:(void)0;
812 }
813 }
814 if (var24){
815 var = 0;
816 goto RET_LABEL;
817 } else {
818 }
819 var = 1;
820 goto RET_LABEL;
821 RET_LABEL:;
822 return var;
823 }
824 /* method literal$ACharExpr$accept_literal for (self: ACharExpr, LiteralVisitor) */
825 void nitc__literal___ACharExpr___ANode__accept_literal(val* self, val* p0) {
826 val* var_v /* var v: LiteralVisitor */;
827 short int var /* : Bool */;
828 short int var1 /* : Bool */;
829 val* var2 /* : ToolContext */;
830 val* var4 /* : ToolContext */;
831 val* var5 /* : Location */;
832 val* var6 /* : NativeArray[String] */;
833 static val* varonce;
834 static val* varonce7;
835 val* var8 /* : String */;
836 char* var9 /* : CString */;
837 val* var10 /* : String */;
838 val* var11 /* : nullable Int */;
839 val* var12 /* : nullable Int */;
840 val* var13 /* : nullable Bool */;
841 val* var14 /* : nullable Bool */;
842 static val* varonce15;
843 val* var16 /* : String */;
844 char* var17 /* : CString */;
845 val* var18 /* : String */;
846 val* var19 /* : nullable Int */;
847 val* var20 /* : nullable Int */;
848 val* var21 /* : nullable Bool */;
849 val* var22 /* : nullable Bool */;
850 val* var23 /* : String */;
851 val* var24 /* : String */;
852 val* var25 /* : String */;
853 val* var26 /* : Message */;
854 val* var27 /* : String */;
855 val* var28 /* : String */;
856 val* var_txt /* var txt: String */;
857 long var29 /* : Int */;
858 short int var30 /* : Bool */;
859 short int var32 /* : Bool */;
860 short int var33 /* : Bool */;
861 val* var34 /* : ToolContext */;
862 val* var36 /* : ToolContext */;
863 val* var37 /* : Location */;
864 val* var39 /* : NativeArray[String] */;
865 static val* varonce38;
866 static val* varonce40;
867 val* var41 /* : String */;
868 char* var42 /* : CString */;
869 val* var43 /* : String */;
870 val* var44 /* : nullable Int */;
871 val* var45 /* : nullable Int */;
872 val* var46 /* : nullable Bool */;
873 val* var47 /* : nullable Bool */;
874 static val* varonce48;
875 val* var49 /* : String */;
876 char* var50 /* : CString */;
877 val* var51 /* : String */;
878 val* var52 /* : nullable Int */;
879 val* var53 /* : nullable Int */;
880 val* var54 /* : nullable Bool */;
881 val* var55 /* : nullable Bool */;
882 val* var56 /* : String */;
883 val* var57 /* : Message */;
884 val* var58 /* : SequenceRead[Char] */;
885 val* var59 /* : nullable Object */;
886 short int var61 /* : Bool */;
887 short int var62 /* : Bool */;
888 short int var_ /* var : Bool */;
889 val* var63 /* : SequenceRead[Char] */;
890 val* var64 /* : nullable Object */;
891 long var65 /* : Int */;
892 uint32_t var67 /* : Char */;
893 long var68 /* : Int */;
894 short int var69 /* : Bool */;
895 short int var71 /* : Bool */;
896 int cltype;
897 int idtype;
898 const char* var_class_name;
899 short int var72 /* : Bool */;
900 val* var73 /* : ToolContext */;
901 val* var75 /* : ToolContext */;
902 val* var76 /* : Location */;
903 static val* varonce77;
904 val* var78 /* : String */;
905 char* var79 /* : CString */;
906 val* var80 /* : String */;
907 val* var81 /* : nullable Int */;
908 val* var82 /* : nullable Int */;
909 val* var83 /* : nullable Bool */;
910 val* var84 /* : nullable Bool */;
911 val* var85 /* : Message */;
912 var_v = p0;
913 {
914 var = nitc__literal___ACharExpr___AAugmentedLiteral__is_valid_augmentation(self);
915 }
916 var1 = !var;
917 if (var1){
918 {
919 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
920 var4 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
921 if (unlikely(var4 == NULL)) {
922 if(catchStack.cursor >= 0){
923 longjmp(catchStack.envs[catchStack.cursor], 1);
924 }
925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
926 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
927 fatal_exit(1);
928 }
929 var2 = var4;
930 RET_LABEL3:(void)0;
931 }
932 }
933 {
934 var5 = nitc___nitc__ANode___hot_location(self);
935 }
936 if (unlikely(varonce==NULL)) {
937 var6 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
938 if (likely(varonce7!=NULL)) {
939 var8 = varonce7;
940 } else {
941 var9 = "Syntax Error: invalid prefix/suffix combination ";
942 var11 = (val*)(48l<<2|1);
943 var12 = (val*)(48l<<2|1);
944 var13 = (val*)((long)(0)<<2|3);
945 var14 = (val*)((long)(0)<<2|3);
946 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
947 var8 = var10;
948 varonce7 = var8;
949 }
950 ((struct instance_core__NativeArray*)var6)->values[0]=var8;
951 if (likely(varonce15!=NULL)) {
952 var16 = varonce15;
953 } else {
954 var17 = "/";
955 var19 = (val*)(1l<<2|1);
956 var20 = (val*)(1l<<2|1);
957 var21 = (val*)((long)(0)<<2|3);
958 var22 = (val*)((long)(0)<<2|3);
959 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
960 var16 = var18;
961 varonce15 = var16;
962 }
963 ((struct instance_core__NativeArray*)var6)->values[2]=var16;
964 } else {
965 var6 = varonce;
966 varonce = NULL;
967 }
968 {
969 var23 = nitc___nitc__AAugmentedLiteral___prefix(self);
970 }
971 ((struct instance_core__NativeArray*)var6)->values[1]=var23;
972 {
973 var24 = nitc___nitc__AAugmentedLiteral___suffix(self);
974 }
975 ((struct instance_core__NativeArray*)var6)->values[3]=var24;
976 {
977 var25 = ((val*(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var6); /* native_to_s on <var6:NativeArray[String]>*/
978 }
979 varonce = var6;
980 {
981 var26 = nitc___nitc__ToolContext___error(var2, var5, var25);
982 }
983 goto RET_LABEL;
984 } else {
985 }
986 {
987 var27 = nitc___nitc__AAugmentedLiteral___content(self);
988 }
989 {
990 var28 = core___core__Text___unescape_nit(var27);
991 }
992 var_txt = var28;
993 {
994 var29 = ((long(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__length]))(var_txt); /* length on <var_txt:String>*/
995 }
996 {
997 { /* Inline kernel$Int$!= (var29,3l) on <var29:Int> */
998 var32 = var29 == 3l;
999 var33 = !var32;
1000 var30 = var33;
1001 goto RET_LABEL31;
1002 RET_LABEL31:(void)0;
1003 }
1004 }
1005 if (var30){
1006 {
1007 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
1008 var36 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
1009 if (unlikely(var36 == NULL)) {
1010 if(catchStack.cursor >= 0){
1011 longjmp(catchStack.envs[catchStack.cursor], 1);
1012 }
1013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1014 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
1015 fatal_exit(1);
1016 }
1017 var34 = var36;
1018 RET_LABEL35:(void)0;
1019 }
1020 }
1021 {
1022 var37 = nitc___nitc__ANode___hot_location(self);
1023 }
1024 if (unlikely(varonce38==NULL)) {
1025 var39 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1026 if (likely(varonce40!=NULL)) {
1027 var41 = varonce40;
1028 } else {
1029 var42 = "Syntax Error: invalid character literal `";
1030 var44 = (val*)(41l<<2|1);
1031 var45 = (val*)(41l<<2|1);
1032 var46 = (val*)((long)(0)<<2|3);
1033 var47 = (val*)((long)(0)<<2|3);
1034 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
1035 var41 = var43;
1036 varonce40 = var41;
1037 }
1038 ((struct instance_core__NativeArray*)var39)->values[0]=var41;
1039 if (likely(varonce48!=NULL)) {
1040 var49 = varonce48;
1041 } else {
1042 var50 = "`.";
1043 var52 = (val*)(2l<<2|1);
1044 var53 = (val*)(2l<<2|1);
1045 var54 = (val*)((long)(0)<<2|3);
1046 var55 = (val*)((long)(0)<<2|3);
1047 var51 = core__flat___CString___to_s_unsafe(var50, var52, var53, var54, var55);
1048 var49 = var51;
1049 varonce48 = var49;
1050 }
1051 ((struct instance_core__NativeArray*)var39)->values[2]=var49;
1052 } else {
1053 var39 = varonce38;
1054 varonce38 = NULL;
1055 }
1056 ((struct instance_core__NativeArray*)var39)->values[1]=var_txt;
1057 {
1058 var56 = ((val*(*)(val* self))(var39->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var39); /* native_to_s on <var39:NativeArray[String]>*/
1059 }
1060 varonce38 = var39;
1061 {
1062 var57 = nitc___nitc__ToolContext___error(var34, var37, var56);
1063 }
1064 goto RET_LABEL;
1065 } else {
1066 }
1067 {
1068 var58 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1069 }
1070 {
1071 var59 = ((val*(*)(val* self, long p0))((((long)var58&3)?class_info[((long)var58&3)]:var58->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var58, 1l); /* [] on <var58:SequenceRead[Char]>*/
1072 }
1073 {
1074 { /* Inline literal$ACharExpr$value= (self,var59) on <self:ACharExpr> */
1075 self->attrs[COLOR_nitc__literal__ACharExpr___value].val = var59; /* _value on <self:ACharExpr> */
1076 RET_LABEL60:(void)0;
1077 }
1078 }
1079 {
1080 var62 = nitc__literal___ACharExpr___is_ascii(self);
1081 }
1082 var_ = var62;
1083 if (var62){
1084 {
1085 var63 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1086 }
1087 {
1088 var64 = ((val*(*)(val* self, long p0))((((long)var63&3)?class_info[((long)var63&3)]:var63->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var63, 1l); /* [] on <var63:SequenceRead[Char]>*/
1089 }
1090 {
1091 { /* Inline kernel$Char$code_point (var64) on <var64:nullable Object(Char)> */
1092 var67 = (uint32_t)((long)(var64)>>2);
1093 var68 = (long)var67;
1094 var65 = var68;
1095 goto RET_LABEL66;
1096 RET_LABEL66:(void)0;
1097 }
1098 }
1099 {
1100 { /* Inline kernel$Int$> (var65,127l) on <var65:Int> */
1101 /* Covariant cast for argument 0 (i) <127l:Int> isa OTHER */
1102 /* <127l:Int> isa OTHER */
1103 var71 = 1; /* easy <127l:Int> isa OTHER*/
1104 if (unlikely(!var71)) {
1105 var_class_name = type_core__Int.name;
1106 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1107 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1108 fatal_exit(1);
1109 }
1110 var72 = var65 > 127l;
1111 var69 = var72;
1112 goto RET_LABEL70;
1113 RET_LABEL70:(void)0;
1114 }
1115 }
1116 var61 = var69;
1117 } else {
1118 var61 = var_;
1119 }
1120 if (var61){
1121 {
1122 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
1123 var75 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
1124 if (unlikely(var75 == NULL)) {
1125 if(catchStack.cursor >= 0){
1126 longjmp(catchStack.envs[catchStack.cursor], 1);
1127 }
1128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1129 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
1130 fatal_exit(1);
1131 }
1132 var73 = var75;
1133 RET_LABEL74:(void)0;
1134 }
1135 }
1136 {
1137 var76 = nitc___nitc__ANode___hot_location(self);
1138 }
1139 if (likely(varonce77!=NULL)) {
1140 var78 = varonce77;
1141 } else {
1142 var79 = "Syntax Error: usage of byte prefix on multibyte character.";
1143 var81 = (val*)(58l<<2|1);
1144 var82 = (val*)(58l<<2|1);
1145 var83 = (val*)((long)(0)<<2|3);
1146 var84 = (val*)((long)(0)<<2|3);
1147 var80 = core__flat___CString___to_s_unsafe(var79, var81, var82, var83, var84);
1148 var78 = var80;
1149 varonce77 = var78;
1150 }
1151 {
1152 var85 = nitc___nitc__ToolContext___error(var73, var76, var78);
1153 }
1154 } else {
1155 }
1156 RET_LABEL:;
1157 }
1158 /* method literal$AugmentedStringFormExpr$delimiter_start for (self: AugmentedStringFormExpr): Char */
1159 uint32_t nitc___nitc__AugmentedStringFormExpr___AAugmentedLiteral__delimiter_start(val* self) {
1160 uint32_t var /* : Char */;
1161 uint32_t var1 /* : Char */;
1162 var1 = self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_start].c; /* _delimiter_start on <self:AugmentedStringFormExpr> */
1163 var = var1;
1164 RET_LABEL:;
1165 return var;
1166 }
1167 /* method literal$AugmentedStringFormExpr$delimiter_start= for (self: AugmentedStringFormExpr, Char) */
1168 void nitc___nitc__AugmentedStringFormExpr___delimiter_start_61d(val* self, uint32_t p0) {
1169 self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_start].c = p0; /* _delimiter_start on <self:AugmentedStringFormExpr> */
1170 RET_LABEL:;
1171 }
1172 /* method literal$AugmentedStringFormExpr$delimiter_end for (self: AugmentedStringFormExpr): Char */
1173 uint32_t nitc___nitc__AugmentedStringFormExpr___AAugmentedLiteral__delimiter_end(val* self) {
1174 uint32_t var /* : Char */;
1175 uint32_t var1 /* : Char */;
1176 var1 = self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_end].c; /* _delimiter_end on <self:AugmentedStringFormExpr> */
1177 var = var1;
1178 RET_LABEL:;
1179 return var;
1180 }
1181 /* method literal$AugmentedStringFormExpr$delimiter_end= for (self: AugmentedStringFormExpr, Char) */
1182 void nitc___nitc__AugmentedStringFormExpr___delimiter_end_61d(val* self, uint32_t p0) {
1183 self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_end].c = p0; /* _delimiter_end on <self:AugmentedStringFormExpr> */
1184 RET_LABEL:;
1185 }
1186 /* method literal$AugmentedStringFormExpr$is_string for (self: AugmentedStringFormExpr): Bool */
1187 short int nitc___nitc__AugmentedStringFormExpr___is_string(val* self) {
1188 short int var /* : Bool */;
1189 short int var1 /* : Bool */;
1190 val* var2 /* : String */;
1191 static val* varonce;
1192 val* var3 /* : String */;
1193 char* var4 /* : CString */;
1194 val* var5 /* : String */;
1195 val* var6 /* : nullable Int */;
1196 val* var7 /* : nullable Int */;
1197 val* var8 /* : nullable Bool */;
1198 val* var9 /* : nullable Bool */;
1199 short int var10 /* : Bool */;
1200 short int var_ /* var : Bool */;
1201 val* var11 /* : String */;
1202 static val* varonce12;
1203 val* var13 /* : String */;
1204 char* var14 /* : CString */;
1205 val* var15 /* : String */;
1206 val* var16 /* : nullable Int */;
1207 val* var17 /* : nullable Int */;
1208 val* var18 /* : nullable Bool */;
1209 val* var19 /* : nullable Bool */;
1210 short int var20 /* : Bool */;
1211 {
1212 var2 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(self); /* prefix on <self:AugmentedStringFormExpr>*/
1213 }
1214 if (likely(varonce!=NULL)) {
1215 var3 = varonce;
1216 } else {
1217 var4 = "";
1218 var6 = (val*)(0l<<2|1);
1219 var7 = (val*)(0l<<2|1);
1220 var8 = (val*)((long)(0)<<2|3);
1221 var9 = (val*)((long)(0)<<2|3);
1222 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
1223 var3 = var5;
1224 varonce = var3;
1225 }
1226 {
1227 var10 = ((short int(*)(val* self, val* p0))(var2->class->vft[COLOR_core__kernel__Object___61d_61d]))(var2, var3); /* == on <var2:String>*/
1228 }
1229 var_ = var10;
1230 if (var10){
1231 var1 = var_;
1232 } else {
1233 {
1234 var11 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(self); /* prefix on <self:AugmentedStringFormExpr>*/
1235 }
1236 if (likely(varonce12!=NULL)) {
1237 var13 = varonce12;
1238 } else {
1239 var14 = "raw";
1240 var16 = (val*)(3l<<2|1);
1241 var17 = (val*)(3l<<2|1);
1242 var18 = (val*)((long)(0)<<2|3);
1243 var19 = (val*)((long)(0)<<2|3);
1244 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
1245 var13 = var15;
1246 varonce12 = var13;
1247 }
1248 {
1249 var20 = ((short int(*)(val* self, val* p0))(var11->class->vft[COLOR_core__kernel__Object___61d_61d]))(var11, var13); /* == on <var11:String>*/
1250 }
1251 var1 = var20;
1252 }
1253 var = var1;
1254 goto RET_LABEL;
1255 RET_LABEL:;
1256 return var;
1257 }
1258 /* method literal$AugmentedStringFormExpr$is_re for (self: AugmentedStringFormExpr): Bool */
1259 short int nitc___nitc__AugmentedStringFormExpr___is_re(val* self) {
1260 short int var /* : Bool */;
1261 val* var1 /* : String */;
1262 static val* varonce;
1263 val* var2 /* : String */;
1264 char* var3 /* : CString */;
1265 val* var4 /* : String */;
1266 val* var5 /* : nullable Int */;
1267 val* var6 /* : nullable Int */;
1268 val* var7 /* : nullable Bool */;
1269 val* var8 /* : nullable Bool */;
1270 short int var9 /* : Bool */;
1271 {
1272 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(self); /* prefix on <self:AugmentedStringFormExpr>*/
1273 }
1274 if (likely(varonce!=NULL)) {
1275 var2 = varonce;
1276 } else {
1277 var3 = "re";
1278 var5 = (val*)(2l<<2|1);
1279 var6 = (val*)(2l<<2|1);
1280 var7 = (val*)((long)(0)<<2|3);
1281 var8 = (val*)((long)(0)<<2|3);
1282 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
1283 var2 = var4;
1284 varonce = var2;
1285 }
1286 {
1287 var9 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var2); /* == on <var1:String>*/
1288 }
1289 var = var9;
1290 goto RET_LABEL;
1291 RET_LABEL:;
1292 return var;
1293 }
1294 /* method literal$AugmentedStringFormExpr$is_bytestring for (self: AugmentedStringFormExpr): Bool */
1295 short int nitc___nitc__AugmentedStringFormExpr___is_bytestring(val* self) {
1296 short int var /* : Bool */;
1297 val* var1 /* : String */;
1298 static val* varonce;
1299 val* var2 /* : String */;
1300 char* var3 /* : CString */;
1301 val* var4 /* : String */;
1302 val* var5 /* : nullable Int */;
1303 val* var6 /* : nullable Int */;
1304 val* var7 /* : nullable Bool */;
1305 val* var8 /* : nullable Bool */;
1306 short int var9 /* : Bool */;
1307 {
1308 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(self); /* prefix on <self:AugmentedStringFormExpr>*/
1309 }
1310 if (likely(varonce!=NULL)) {
1311 var2 = varonce;
1312 } else {
1313 var3 = "b";
1314 var5 = (val*)(1l<<2|1);
1315 var6 = (val*)(1l<<2|1);
1316 var7 = (val*)((long)(0)<<2|3);
1317 var8 = (val*)((long)(0)<<2|3);
1318 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
1319 var2 = var4;
1320 varonce = var2;
1321 }
1322 {
1323 var9 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var2); /* == on <var1:String>*/
1324 }
1325 var = var9;
1326 goto RET_LABEL;
1327 RET_LABEL:;
1328 return var;
1329 }
1330 /* method literal$AugmentedStringFormExpr$is_valid_augmentation for (self: AugmentedStringFormExpr): Bool */
1331 short int nitc___nitc__AugmentedStringFormExpr___AAugmentedLiteral__is_valid_augmentation(val* self) {
1332 short int var /* : Bool */;
1333 short int var1 /* : Bool */;
1334 short int var2 /* : Bool */;
1335 short int var_ /* var : Bool */;
1336 val* var3 /* : String */;
1337 static val* varonce;
1338 val* var4 /* : String */;
1339 char* var5 /* : CString */;
1340 val* var6 /* : String */;
1341 val* var7 /* : nullable Int */;
1342 val* var8 /* : nullable Int */;
1343 val* var9 /* : nullable Bool */;
1344 val* var10 /* : nullable Bool */;
1345 short int var11 /* : Bool */;
1346 short int var12 /* : Bool */;
1347 short int var13 /* : Bool */;
1348 short int var_14 /* var : Bool */;
1349 val* var15 /* : String */;
1350 static val* varonce16;
1351 val* var17 /* : String */;
1352 char* var18 /* : CString */;
1353 val* var19 /* : String */;
1354 val* var20 /* : nullable Int */;
1355 val* var21 /* : nullable Int */;
1356 val* var22 /* : nullable Bool */;
1357 val* var23 /* : nullable Bool */;
1358 short int var24 /* : Bool */;
1359 short int var25 /* : Bool */;
1360 val* var26 /* : String */;
1361 val* var_suf /* var suf: String */;
1362 val* var27 /* : SequenceRead[Char] */;
1363 val* var_28 /* var : SequenceRead[Char] */;
1364 val* var29 /* : Iterator[nullable Object] */;
1365 val* var_30 /* var : IndexedIterator[Char] */;
1366 short int var31 /* : Bool */;
1367 val* var32 /* : nullable Object */;
1368 uint32_t var33 /* : Char */;
1369 uint32_t var_i /* var i: Char */;
1370 short int var34 /* : Bool */;
1371 short int var36 /* : Bool */;
1372 short int var38 /* : Bool */;
1373 short int var40 /* : Bool */;
1374 short int var41 /* : Bool */;
1375 short int var43 /* : Bool */;
1376 short int var44 /* : Bool */;
1377 val* var45 /* : String */;
1378 static val* varonce46;
1379 val* var47 /* : String */;
1380 char* var48 /* : CString */;
1381 val* var49 /* : String */;
1382 val* var50 /* : nullable Int */;
1383 val* var51 /* : nullable Int */;
1384 val* var52 /* : nullable Bool */;
1385 val* var53 /* : nullable Bool */;
1386 short int var54 /* : Bool */;
1387 val* var_other /* var other: nullable Object */;
1388 short int var56 /* : Bool */;
1389 short int var57 /* : Bool */;
1390 short int var_58 /* var : Bool */;
1391 val* var59 /* : String */;
1392 static val* varonce60;
1393 val* var61 /* : String */;
1394 char* var62 /* : CString */;
1395 val* var63 /* : String */;
1396 val* var64 /* : nullable Int */;
1397 val* var65 /* : nullable Int */;
1398 val* var66 /* : nullable Bool */;
1399 val* var67 /* : nullable Bool */;
1400 short int var68 /* : Bool */;
1401 short int var70 /* : Bool */;
1402 short int var71 /* : Bool */;
1403 {
1404 var2 = nitc___nitc__AugmentedStringFormExpr___is_string(self);
1405 }
1406 var_ = var2;
1407 if (var2){
1408 {
1409 var3 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AugmentedStringFormExpr>*/
1410 }
1411 if (likely(varonce!=NULL)) {
1412 var4 = varonce;
1413 } else {
1414 var5 = "";
1415 var7 = (val*)(0l<<2|1);
1416 var8 = (val*)(0l<<2|1);
1417 var9 = (val*)((long)(0)<<2|3);
1418 var10 = (val*)((long)(0)<<2|3);
1419 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
1420 var4 = var6;
1421 varonce = var4;
1422 }
1423 {
1424 var11 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var4); /* == on <var3:String>*/
1425 }
1426 var1 = var11;
1427 } else {
1428 var1 = var_;
1429 }
1430 if (var1){
1431 var = 1;
1432 goto RET_LABEL;
1433 } else {
1434 }
1435 {
1436 var13 = nitc___nitc__AugmentedStringFormExpr___is_bytestring(self);
1437 }
1438 var_14 = var13;
1439 if (var13){
1440 {
1441 var15 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AugmentedStringFormExpr>*/
1442 }
1443 if (likely(varonce16!=NULL)) {
1444 var17 = varonce16;
1445 } else {
1446 var18 = "";
1447 var20 = (val*)(0l<<2|1);
1448 var21 = (val*)(0l<<2|1);
1449 var22 = (val*)((long)(0)<<2|3);
1450 var23 = (val*)((long)(0)<<2|3);
1451 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
1452 var17 = var19;
1453 varonce16 = var17;
1454 }
1455 {
1456 var24 = ((short int(*)(val* self, val* p0))(var15->class->vft[COLOR_core__kernel__Object___61d_61d]))(var15, var17); /* == on <var15:String>*/
1457 }
1458 var12 = var24;
1459 } else {
1460 var12 = var_14;
1461 }
1462 if (var12){
1463 var = 1;
1464 goto RET_LABEL;
1465 } else {
1466 }
1467 {
1468 var25 = nitc___nitc__AugmentedStringFormExpr___is_re(self);
1469 }
1470 if (var25){
1471 {
1472 var26 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AugmentedStringFormExpr>*/
1473 }
1474 var_suf = var26;
1475 {
1476 var27 = ((val*(*)(val* self))(var_suf->class->vft[COLOR_core__abstract_text__Text__chars]))(var_suf); /* chars on <var_suf:String>*/
1477 }
1478 var_28 = var27;
1479 {
1480 var29 = ((val*(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_28); /* iterator on <var_28:SequenceRead[Char]>*/
1481 }
1482 var_30 = var29;
1483 for(;;) {
1484 {
1485 var31 = ((short int(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_30); /* is_ok on <var_30:IndexedIterator[Char]>*/
1486 }
1487 if (var31){
1488 } else {
1489 goto BREAK_label;
1490 }
1491 {
1492 var32 = ((val*(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_30); /* item on <var_30:IndexedIterator[Char]>*/
1493 }
1494 var33 = (uint32_t)((long)(var32)>>2);
1495 var_i = var33;
1496 {
1497 { /* Inline kernel$Char$== (var_i,'i') on <var_i:Char> */
1498 var36 = var_i == 'i';
1499 var34 = var36;
1500 goto RET_LABEL35;
1501 RET_LABEL35:(void)0;
1502 }
1503 }
1504 if (var34){
1505 goto BREAK_label37;
1506 } else {
1507 }
1508 {
1509 { /* Inline kernel$Char$== (var_i,'m') on <var_i:Char> */
1510 var40 = var_i == 'm';
1511 var38 = var40;
1512 goto RET_LABEL39;
1513 RET_LABEL39:(void)0;
1514 }
1515 }
1516 if (var38){
1517 goto BREAK_label37;
1518 } else {
1519 }
1520 {
1521 { /* Inline kernel$Char$== (var_i,'b') on <var_i:Char> */
1522 var43 = var_i == 'b';
1523 var41 = var43;
1524 goto RET_LABEL42;
1525 RET_LABEL42:(void)0;
1526 }
1527 }
1528 if (var41){
1529 goto BREAK_label37;
1530 } else {
1531 }
1532 var = 0;
1533 goto RET_LABEL;
1534 BREAK_label37: (void)0;
1535 {
1536 ((void(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_30); /* next on <var_30:IndexedIterator[Char]>*/
1537 }
1538 }
1539 BREAK_label: (void)0;
1540 {
1541 ((void(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_30); /* finish on <var_30:IndexedIterator[Char]>*/
1542 }
1543 var = 1;
1544 goto RET_LABEL;
1545 } else {
1546 }
1547 {
1548 var45 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(self); /* prefix on <self:AugmentedStringFormExpr>*/
1549 }
1550 if (likely(varonce46!=NULL)) {
1551 var47 = varonce46;
1552 } else {
1553 var48 = "";
1554 var50 = (val*)(0l<<2|1);
1555 var51 = (val*)(0l<<2|1);
1556 var52 = (val*)((long)(0)<<2|3);
1557 var53 = (val*)((long)(0)<<2|3);
1558 var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
1559 var47 = var49;
1560 varonce46 = var47;
1561 }
1562 {
1563 { /* Inline kernel$Object$!= (var45,var47) on <var45:String> */
1564 var_other = var47;
1565 {
1566 var56 = ((short int(*)(val* self, val* p0))(var45->class->vft[COLOR_core__kernel__Object___61d_61d]))(var45, var_other); /* == on <var45:String>*/
1567 }
1568 var57 = !var56;
1569 var54 = var57;
1570 goto RET_LABEL55;
1571 RET_LABEL55:(void)0;
1572 }
1573 }
1574 var_58 = var54;
1575 if (var54){
1576 var44 = var_58;
1577 } else {
1578 {
1579 var59 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AugmentedStringFormExpr>*/
1580 }
1581 if (likely(varonce60!=NULL)) {
1582 var61 = varonce60;
1583 } else {
1584 var62 = "";
1585 var64 = (val*)(0l<<2|1);
1586 var65 = (val*)(0l<<2|1);
1587 var66 = (val*)((long)(0)<<2|3);
1588 var67 = (val*)((long)(0)<<2|3);
1589 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
1590 var61 = var63;
1591 varonce60 = var61;
1592 }
1593 {
1594 { /* Inline kernel$Object$!= (var59,var61) on <var59:String> */
1595 var_other = var61;
1596 {
1597 var70 = ((short int(*)(val* self, val* p0))(var59->class->vft[COLOR_core__kernel__Object___61d_61d]))(var59, var_other); /* == on <var59:String>*/
1598 }
1599 var71 = !var70;
1600 var68 = var71;
1601 goto RET_LABEL69;
1602 RET_LABEL69:(void)0;
1603 }
1604 }
1605 var44 = var68;
1606 }
1607 if (var44){
1608 var = 0;
1609 goto RET_LABEL;
1610 } else {
1611 }
1612 var = 1;
1613 goto RET_LABEL;
1614 RET_LABEL:;
1615 return var;
1616 }
1617 /* method literal$AStringFormExpr$value for (self: AStringFormExpr): String */
1618 val* nitc__literal___AStringFormExpr___value(val* self) {
1619 val* var /* : String */;
1620 val* var1 /* : String */;
1621 var1 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AStringFormExpr> */
1622 if (unlikely(var1 == NULL)) {
1623 if(catchStack.cursor >= 0){
1624 longjmp(catchStack.envs[catchStack.cursor], 1);
1625 }
1626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _value");
1627 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 201);
1628 fatal_exit(1);
1629 }
1630 var = var1;
1631 RET_LABEL:;
1632 return var;
1633 }
1634 /* method literal$AStringFormExpr$value= for (self: AStringFormExpr, String) */
1635 void nitc__literal___AStringFormExpr___value_61d(val* self, val* p0) {
1636 self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val = p0; /* _value on <self:AStringFormExpr> */
1637 RET_LABEL:;
1638 }
1639 /* method literal$AStringFormExpr$bytes for (self: AStringFormExpr): Bytes */
1640 val* nitc__literal___AStringFormExpr___bytes(val* self) {
1641 val* var /* : Bytes */;
1642 val* var1 /* : Bytes */;
1643 var1 = self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val; /* _bytes on <self:AStringFormExpr> */
1644 if (unlikely(var1 == NULL)) {
1645 if(catchStack.cursor >= 0){
1646 longjmp(catchStack.envs[catchStack.cursor], 1);
1647 }
1648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
1649 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 204);
1650 fatal_exit(1);
1651 }
1652 var = var1;
1653 RET_LABEL:;
1654 return var;
1655 }
1656 /* method literal$AStringFormExpr$bytes= for (self: AStringFormExpr, Bytes) */
1657 void nitc__literal___AStringFormExpr___bytes_61d(val* self, val* p0) {
1658 self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val = p0; /* _bytes on <self:AStringFormExpr> */
1659 RET_LABEL:;
1660 }
1661 /* method literal$AStringFormExpr$text for (self: AStringFormExpr): String */
1662 val* nitc__literal___AStringFormExpr___AAugmentedLiteral__text(val* self) {
1663 val* var /* : String */;
1664 val* var1 /* : Token */;
1665 val* var3 /* : Token */;
1666 val* var4 /* : String */;
1667 {
1668 { /* Inline parser_nodes$AStringFormExpr$n_string (self) on <self:AStringFormExpr> */
1669 var3 = self->attrs[COLOR_nitc__parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringFormExpr> */
1670 if (unlikely(var3 == NULL)) {
1671 if(catchStack.cursor >= 0){
1672 longjmp(catchStack.envs[catchStack.cursor], 1);
1673 }
1674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
1675 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2616);
1676 fatal_exit(1);
1677 }
1678 var1 = var3;
1679 RET_LABEL2:(void)0;
1680 }
1681 }
1682 {
1683 var4 = nitc__lexer_work___Token___text(var1);
1684 }
1685 var = var4;
1686 goto RET_LABEL;
1687 RET_LABEL:;
1688 return var;
1689 }
1690 /* method literal$AStringFormExpr$raw_text for (self: AStringFormExpr): String */
1691 val* nitc__literal___AStringFormExpr___raw_text(val* self) {
1692 val* var /* : String */;
1693 short int var1 /* : Bool */;
1694 val* var2 /* : String */;
1695 val* var3 /* : String */;
1696 val* var5 /* : String */;
1697 val* var_txt /* var txt: String */;
1698 long var_behead /* var behead: Int */;
1699 long var_betail /* var betail: Int */;
1700 short int var6 /* : Bool */;
1701 val* var7 /* : SequenceRead[Char] */;
1702 val* var8 /* : nullable Object */;
1703 val* var9 /* : SequenceRead[Char] */;
1704 val* var10 /* : nullable Object */;
1705 short int var11 /* : Bool */;
1706 short int var13 /* : Bool */;
1707 short int var_ /* var : Bool */;
1708 long var14 /* : Int */;
1709 short int var15 /* : Bool */;
1710 short int var17 /* : Bool */;
1711 int cltype;
1712 int idtype;
1713 const char* var_class_name;
1714 short int var18 /* : Bool */;
1715 short int var19 /* : Bool */;
1716 val* var20 /* : SequenceRead[Char] */;
1717 val* var21 /* : nullable Object */;
1718 uint32_t var22 /* : Char */;
1719 short int var23 /* : Bool */;
1720 short int var25 /* : Bool */;
1721 uint32_t var26 /* : Char */;
1722 short int var_27 /* var : Bool */;
1723 val* var28 /* : SequenceRead[Char] */;
1724 val* var29 /* : nullable Object */;
1725 short int var30 /* : Bool */;
1726 short int var32 /* : Bool */;
1727 uint32_t var33 /* : Char */;
1728 long var34 /* : Int */;
1729 long var35 /* : Int */;
1730 short int var37 /* : Bool */;
1731 int cltype38;
1732 int idtype39;
1733 const char* var_class_name40;
1734 long var41 /* : Int */;
1735 long var42 /* : Int */;
1736 short int var44 /* : Bool */;
1737 int cltype45;
1738 int idtype46;
1739 const char* var_class_name47;
1740 long var48 /* : Int */;
1741 val* var49 /* : Text */;
1742 var1 = self->attrs[COLOR_nitc__literal__AStringFormExpr___raw_text].val != NULL; /* _raw_text on <self:AStringFormExpr> */
1743 if(likely(var1)) {
1744 var2 = self->attrs[COLOR_nitc__literal__AStringFormExpr___raw_text].val; /* _raw_text on <self:AStringFormExpr> */
1745 if (unlikely(var2 == NULL)) {
1746 if(catchStack.cursor >= 0){
1747 longjmp(catchStack.envs[catchStack.cursor], 1);
1748 }
1749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _raw_text");
1750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 209);
1751 fatal_exit(1);
1752 }
1753 } else {
1754 {
1755 {
1756 var5 = nitc___nitc__AAugmentedLiteral___content(self);
1757 }
1758 var_txt = var5;
1759 var_behead = 1l;
1760 var_betail = 1l;
1761 {
1762 var7 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1763 }
1764 {
1765 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, 0l); /* [] on <var7:SequenceRead[Char]>*/
1766 }
1767 {
1768 var9 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1769 }
1770 {
1771 var10 = ((val*(*)(val* self, long p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var9, 1l); /* [] on <var9:SequenceRead[Char]>*/
1772 }
1773 {
1774 { /* Inline kernel$Char$== (var8,var10) on <var8:nullable Object(Char)> */
1775 var13 = var8 == var10;
1776 var11 = var13;
1777 goto RET_LABEL12;
1778 RET_LABEL12:(void)0;
1779 }
1780 }
1781 var_ = var11;
1782 if (var11){
1783 {
1784 var14 = ((long(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__length]))(var_txt); /* length on <var_txt:String>*/
1785 }
1786 {
1787 { /* Inline kernel$Int$>= (var14,6l) on <var14:Int> */
1788 /* Covariant cast for argument 0 (i) <6l:Int> isa OTHER */
1789 /* <6l:Int> isa OTHER */
1790 var17 = 1; /* easy <6l:Int> isa OTHER*/
1791 if (unlikely(!var17)) {
1792 var_class_name = type_core__Int.name;
1793 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1794 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
1795 fatal_exit(1);
1796 }
1797 var18 = var14 >= 6l;
1798 var15 = var18;
1799 goto RET_LABEL16;
1800 RET_LABEL16:(void)0;
1801 }
1802 }
1803 var6 = var15;
1804 } else {
1805 var6 = var_;
1806 }
1807 if (var6){
1808 var_behead = 3l;
1809 var_betail = 3l;
1810 {
1811 var20 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1812 }
1813 {
1814 var21 = ((val*(*)(val* self, long p0))((((long)var20&3)?class_info[((long)var20&3)]:var20->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var20, 0l); /* [] on <var20:SequenceRead[Char]>*/
1815 }
1816 {
1817 var22 = ((uint32_t(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__delimiter_start]))(self); /* delimiter_start on <self:AStringFormExpr>*/
1818 }
1819 {
1820 { /* Inline kernel$Char$== (var21,var22) on <var21:nullable Object(Char)> */
1821 var26 = (uint32_t)((long)(var21)>>2);
1822 var25 = var26 == var22;
1823 var23 = var25;
1824 goto RET_LABEL24;
1825 RET_LABEL24:(void)0;
1826 }
1827 }
1828 var_27 = var23;
1829 if (var23){
1830 {
1831 var28 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1832 }
1833 {
1834 var29 = ((val*(*)(val* self, long p0))((((long)var28&3)?class_info[((long)var28&3)]:var28->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var28, 3l); /* [] on <var28:SequenceRead[Char]>*/
1835 }
1836 {
1837 { /* Inline kernel$Char$== (var29,'\n') on <var29:nullable Object(Char)> */
1838 var33 = (uint32_t)((long)(var29)>>2);
1839 var32 = var33 == '\n';
1840 var30 = var32;
1841 goto RET_LABEL31;
1842 RET_LABEL31:(void)0;
1843 }
1844 }
1845 var19 = var30;
1846 } else {
1847 var19 = var_27;
1848 }
1849 if (var19){
1850 var_behead = 4l;
1851 } else {
1852 }
1853 } else {
1854 }
1855 {
1856 var34 = ((long(*)(val* self))(var_txt->class->vft[COLOR_core__abstract_text__Text__length]))(var_txt); /* length on <var_txt:String>*/
1857 }
1858 {
1859 { /* Inline kernel$Int$- (var34,var_behead) on <var34:Int> */
1860 /* Covariant cast for argument 0 (i) <var_behead:Int> isa OTHER */
1861 /* <var_behead:Int> isa OTHER */
1862 var37 = 1; /* easy <var_behead:Int> isa OTHER*/
1863 if (unlikely(!var37)) {
1864 var_class_name40 = type_core__Int.name;
1865 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
1866 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1867 fatal_exit(1);
1868 }
1869 var41 = var34 - var_behead;
1870 var35 = var41;
1871 goto RET_LABEL36;
1872 RET_LABEL36:(void)0;
1873 }
1874 }
1875 {
1876 { /* Inline kernel$Int$- (var35,var_betail) on <var35:Int> */
1877 /* Covariant cast for argument 0 (i) <var_betail:Int> isa OTHER */
1878 /* <var_betail:Int> isa OTHER */
1879 var44 = 1; /* easy <var_betail:Int> isa OTHER*/
1880 if (unlikely(!var44)) {
1881 var_class_name47 = type_core__Int.name;
1882 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
1883 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1884 fatal_exit(1);
1885 }
1886 var48 = var35 - var_betail;
1887 var42 = var48;
1888 goto RET_LABEL43;
1889 RET_LABEL43:(void)0;
1890 }
1891 }
1892 {
1893 var49 = ((val*(*)(val* self, long p0, long p1))(var_txt->class->vft[COLOR_core__abstract_text__Text__substring]))(var_txt, var_behead, var42); /* substring on <var_txt:String>*/
1894 }
1895 var3 = var49;
1896 goto RET_LABEL4;
1897 RET_LABEL4:(void)0;
1898 }
1899 self->attrs[COLOR_nitc__literal__AStringFormExpr___raw_text].val = var3; /* _raw_text on <self:AStringFormExpr> */
1900 var2 = var3;
1901 }
1902 var = var2;
1903 RET_LABEL:;
1904 return var;
1905 }
1906 /* method literal$AStringFormExpr$accept_literal for (self: AStringFormExpr, LiteralVisitor) */
1907 void nitc__literal___AStringFormExpr___ANode__accept_literal(val* self, val* p0) {
1908 val* var_v /* var v: LiteralVisitor */;
1909 val* var /* : String */;
1910 val* var2 /* : String */;
1911 val* var3 /* : Bytes */;
1912 var_v = p0;
1913 {
1914 var = nitc__literal___AStringFormExpr___raw_text(self);
1915 }
1916 {
1917 { /* Inline literal$AStringFormExpr$value= (self,var) on <self:AStringFormExpr> */
1918 self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val = var; /* _value on <self:AStringFormExpr> */
1919 RET_LABEL1:(void)0;
1920 }
1921 }
1922 {
1923 var2 = nitc__literal___AStringFormExpr___raw_text(self);
1924 }
1925 {
1926 var3 = core__bytes___Text___to_bytes(var2);
1927 }
1928 {
1929 { /* Inline literal$AStringFormExpr$bytes= (self,var3) on <self:AStringFormExpr> */
1930 self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val = var3; /* _bytes on <self:AStringFormExpr> */
1931 RET_LABEL4:(void)0;
1932 }
1933 }
1934 RET_LABEL:;
1935 }
1936 /* method literal$AEndStringExpr$delimiter_end for (self: AEndStringExpr): Char */
1937 uint32_t nitc__literal___AEndStringExpr___AAugmentedLiteral__delimiter_end(val* self) {
1938 uint32_t var /* : Char */;
1939 short int var1 /* : Bool */;
1940 uint32_t var2 /* : Char */;
1941 uint32_t var3 /* : Char */;
1942 var1 = self->attrs[COLOR_nitc__literal__AEndStringExpr__lazy_32d_delimiter_end].s; /* lazy _delimiter_end on <self:AEndStringExpr> */
1943 if(likely(var1)) {
1944 var2 = self->attrs[COLOR_nitc__literal__AEndStringExpr___delimiter_end].c; /* _delimiter_end on <self:AEndStringExpr> */
1945 } else {
1946 {
1947 var3 = '\"';
1948 goto RET_LABEL4;
1949 RET_LABEL4:(void)0;
1950 }
1951 self->attrs[COLOR_nitc__literal__AEndStringExpr___delimiter_end].c = var3; /* _delimiter_end on <self:AEndStringExpr> */
1952 var2 = var3;
1953 self->attrs[COLOR_nitc__literal__AEndStringExpr__lazy_32d_delimiter_end].s = 1; /* lazy _delimiter_end on <self:AEndStringExpr> */
1954 }
1955 var = var2;
1956 RET_LABEL:;
1957 return var;
1958 }
1959 /* method literal$AEndStringExpr$delimiter_end= for (self: AEndStringExpr, Char) */
1960 void nitc__literal___AEndStringExpr___AugmentedStringFormExpr__delimiter_end_61d(val* self, uint32_t p0) {
1961 self->attrs[COLOR_nitc__literal__AEndStringExpr___delimiter_end].c = p0; /* _delimiter_end on <self:AEndStringExpr> */
1962 self->attrs[COLOR_nitc__literal__AEndStringExpr__lazy_32d_delimiter_end].s = 1; /* lazy _delimiter_end on <self:AEndStringExpr> */
1963 RET_LABEL:;
1964 }
1965 /* method literal$AEndStringExpr$prefix for (self: AEndStringExpr): String */
1966 val* nitc__literal___AEndStringExpr___AAugmentedLiteral__prefix(val* self) {
1967 val* var /* : String */;
1968 static val* varonce;
1969 val* var1 /* : String */;
1970 char* var2 /* : CString */;
1971 val* var3 /* : String */;
1972 val* var4 /* : nullable Int */;
1973 val* var5 /* : nullable Int */;
1974 val* var6 /* : nullable Bool */;
1975 val* var7 /* : nullable Bool */;
1976 if (likely(varonce!=NULL)) {
1977 var1 = varonce;
1978 } else {
1979 var2 = "";
1980 var4 = (val*)(0l<<2|1);
1981 var5 = (val*)(0l<<2|1);
1982 var6 = (val*)((long)(0)<<2|3);
1983 var7 = (val*)((long)(0)<<2|3);
1984 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
1985 var1 = var3;
1986 varonce = var1;
1987 }
1988 var = var1;
1989 goto RET_LABEL;
1990 RET_LABEL:;
1991 return var;
1992 }
1993 /* method literal$AStartStringExpr$delimiter_start for (self: AStartStringExpr): Char */
1994 uint32_t nitc__literal___AStartStringExpr___AAugmentedLiteral__delimiter_start(val* self) {
1995 uint32_t var /* : Char */;
1996 short int var1 /* : Bool */;
1997 uint32_t var2 /* : Char */;
1998 uint32_t var3 /* : Char */;
1999 val* var5 /* : Token */;
2000 val* var7 /* : Token */;
2001 val* var8 /* : String */;
2002 val* var_str /* var str: String */;
2003 long var_i /* var i: Int */;
2004 long var9 /* : Int */;
2005 long var_ /* var : Int */;
2006 short int var10 /* : Bool */;
2007 short int var12 /* : Bool */;
2008 int cltype;
2009 int idtype;
2010 const char* var_class_name;
2011 short int var13 /* : Bool */;
2012 uint32_t var14 /* : Char */;
2013 uint32_t var_c /* var c: Char */;
2014 short int var15 /* : Bool */;
2015 short int var16 /* : Bool */;
2016 short int var18 /* : Bool */;
2017 short int var_19 /* var : Bool */;
2018 short int var20 /* : Bool */;
2019 short int var22 /* : Bool */;
2020 long var23 /* : Int */;
2021 var1 = self->attrs[COLOR_nitc__literal__AStartStringExpr__lazy_32d_delimiter_start].s; /* lazy _delimiter_start on <self:AStartStringExpr> */
2022 if(likely(var1)) {
2023 var2 = self->attrs[COLOR_nitc__literal__AStartStringExpr___delimiter_start].c; /* _delimiter_start on <self:AStartStringExpr> */
2024 } else {
2025 {
2026 {
2027 { /* Inline parser_nodes$AStringFormExpr$n_string (self) on <self:AStartStringExpr> */
2028 var7 = self->attrs[COLOR_nitc__parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStartStringExpr> */
2029 if (unlikely(var7 == NULL)) {
2030 if(catchStack.cursor >= 0){
2031 longjmp(catchStack.envs[catchStack.cursor], 1);
2032 }
2033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
2034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2616);
2035 fatal_exit(1);
2036 }
2037 var5 = var7;
2038 RET_LABEL6:(void)0;
2039 }
2040 }
2041 {
2042 var8 = nitc__lexer_work___Token___text(var5);
2043 }
2044 var_str = var8;
2045 var_i = 0l;
2046 {
2047 var9 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
2048 }
2049 var_ = var9;
2050 for(;;) {
2051 {
2052 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
2053 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
2054 /* <var_:Int> isa OTHER */
2055 var12 = 1; /* easy <var_:Int> isa OTHER*/
2056 if (unlikely(!var12)) {
2057 var_class_name = type_core__Int.name;
2058 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2059 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2060 fatal_exit(1);
2061 }
2062 var13 = var_i < var_;
2063 var10 = var13;
2064 goto RET_LABEL11;
2065 RET_LABEL11:(void)0;
2066 }
2067 }
2068 if (var10){
2069 } else {
2070 goto BREAK_label;
2071 }
2072 {
2073 var14 = ((uint32_t(*)(val* self, long p0))(var_str->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var_str, var_i); /* [] on <var_str:String>*/
2074 }
2075 var_c = var14;
2076 {
2077 { /* Inline kernel$Char$== (var_c,'\"') on <var_c:Char> */
2078 var18 = var_c == '\"';
2079 var16 = var18;
2080 goto RET_LABEL17;
2081 RET_LABEL17:(void)0;
2082 }
2083 }
2084 var_19 = var16;
2085 if (var16){
2086 var15 = var_19;
2087 } else {
2088 {
2089 { /* Inline kernel$Char$== (var_c,'\'') on <var_c:Char> */
2090 var22 = var_c == '\'';
2091 var20 = var22;
2092 goto RET_LABEL21;
2093 RET_LABEL21:(void)0;
2094 }
2095 }
2096 var15 = var20;
2097 }
2098 if (var15){
2099 var3 = var_c;
2100 goto RET_LABEL4;
2101 } else {
2102 }
2103 {
2104 var23 = core___core__Int___Discrete__successor(var_i, 1l);
2105 }
2106 var_i = var23;
2107 }
2108 BREAK_label: (void)0;
2109 if(catchStack.cursor >= 0){
2110 longjmp(catchStack.envs[catchStack.cursor], 1);
2111 }
2112 PRINT_ERROR("Runtime error: %s", "Aborted");
2113 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 243);
2114 fatal_exit(1);
2115 RET_LABEL4:(void)0;
2116 }
2117 self->attrs[COLOR_nitc__literal__AStartStringExpr___delimiter_start].c = var3; /* _delimiter_start on <self:AStartStringExpr> */
2118 var2 = var3;
2119 self->attrs[COLOR_nitc__literal__AStartStringExpr__lazy_32d_delimiter_start].s = 1; /* lazy _delimiter_start on <self:AStartStringExpr> */
2120 }
2121 var = var2;
2122 RET_LABEL:;
2123 return var;
2124 }
2125 /* method literal$AStartStringExpr$delimiter_start= for (self: AStartStringExpr, Char) */
2126 void nitc__literal___AStartStringExpr___AugmentedStringFormExpr__delimiter_start_61d(val* self, uint32_t p0) {
2127 self->attrs[COLOR_nitc__literal__AStartStringExpr___delimiter_start].c = p0; /* _delimiter_start on <self:AStartStringExpr> */
2128 self->attrs[COLOR_nitc__literal__AStartStringExpr__lazy_32d_delimiter_start].s = 1; /* lazy _delimiter_start on <self:AStartStringExpr> */
2129 RET_LABEL:;
2130 }
2131 /* method literal$AStartStringExpr$suffix for (self: AStartStringExpr): String */
2132 val* nitc__literal___AStartStringExpr___AAugmentedLiteral__suffix(val* self) {
2133 val* var /* : String */;
2134 static val* varonce;
2135 val* var1 /* : String */;
2136 char* var2 /* : CString */;
2137 val* var3 /* : String */;
2138 val* var4 /* : nullable Int */;
2139 val* var5 /* : nullable Int */;
2140 val* var6 /* : nullable Bool */;
2141 val* var7 /* : nullable Bool */;
2142 if (likely(varonce!=NULL)) {
2143 var1 = varonce;
2144 } else {
2145 var2 = "";
2146 var4 = (val*)(0l<<2|1);
2147 var5 = (val*)(0l<<2|1);
2148 var6 = (val*)((long)(0)<<2|3);
2149 var7 = (val*)((long)(0)<<2|3);
2150 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
2151 var1 = var3;
2152 varonce = var1;
2153 }
2154 var = var1;
2155 goto RET_LABEL;
2156 RET_LABEL:;
2157 return var;
2158 }
2159 /* method literal$AMidStringExpr$prefix for (self: AMidStringExpr): String */
2160 val* nitc__literal___AMidStringExpr___AAugmentedLiteral__prefix(val* self) {
2161 val* var /* : String */;
2162 static val* varonce;
2163 val* var1 /* : String */;
2164 char* var2 /* : CString */;
2165 val* var3 /* : String */;
2166 val* var4 /* : nullable Int */;
2167 val* var5 /* : nullable Int */;
2168 val* var6 /* : nullable Bool */;
2169 val* var7 /* : nullable Bool */;
2170 if (likely(varonce!=NULL)) {
2171 var1 = varonce;
2172 } else {
2173 var2 = "";
2174 var4 = (val*)(0l<<2|1);
2175 var5 = (val*)(0l<<2|1);
2176 var6 = (val*)((long)(0)<<2|3);
2177 var7 = (val*)((long)(0)<<2|3);
2178 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
2179 var1 = var3;
2180 varonce = var1;
2181 }
2182 var = var1;
2183 goto RET_LABEL;
2184 RET_LABEL:;
2185 return var;
2186 }
2187 /* method literal$AMidStringExpr$suffix for (self: AMidStringExpr): String */
2188 val* nitc__literal___AMidStringExpr___AAugmentedLiteral__suffix(val* self) {
2189 val* var /* : String */;
2190 static val* varonce;
2191 val* var1 /* : String */;
2192 char* var2 /* : CString */;
2193 val* var3 /* : String */;
2194 val* var4 /* : nullable Int */;
2195 val* var5 /* : nullable Int */;
2196 val* var6 /* : nullable Bool */;
2197 val* var7 /* : nullable Bool */;
2198 if (likely(varonce!=NULL)) {
2199 var1 = varonce;
2200 } else {
2201 var2 = "";
2202 var4 = (val*)(0l<<2|1);
2203 var5 = (val*)(0l<<2|1);
2204 var6 = (val*)((long)(0)<<2|3);
2205 var7 = (val*)((long)(0)<<2|3);
2206 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
2207 var1 = var3;
2208 varonce = var1;
2209 }
2210 var = var1;
2211 goto RET_LABEL;
2212 RET_LABEL:;
2213 return var;
2214 }
2215 /* method literal$AStringExpr$delimiter_start for (self: AStringExpr): Char */
2216 uint32_t nitc__literal___AStringExpr___AAugmentedLiteral__delimiter_start(val* self) {
2217 uint32_t var /* : Char */;
2218 short int var1 /* : Bool */;
2219 uint32_t var2 /* : Char */;
2220 uint32_t var3 /* : Char */;
2221 val* var5 /* : String */;
2222 val* var_str /* var str: String */;
2223 long var_i /* var i: Int */;
2224 long var6 /* : Int */;
2225 long var_ /* var : Int */;
2226 short int var7 /* : Bool */;
2227 short int var9 /* : Bool */;
2228 int cltype;
2229 int idtype;
2230 const char* var_class_name;
2231 short int var10 /* : Bool */;
2232 uint32_t var11 /* : Char */;
2233 uint32_t var_c /* var c: Char */;
2234 short int var12 /* : Bool */;
2235 short int var13 /* : Bool */;
2236 short int var15 /* : Bool */;
2237 short int var_16 /* var : Bool */;
2238 short int var17 /* : Bool */;
2239 short int var19 /* : Bool */;
2240 long var20 /* : Int */;
2241 var1 = self->attrs[COLOR_nitc__literal__AStringExpr__lazy_32d_delimiter_start].s; /* lazy _delimiter_start on <self:AStringExpr> */
2242 if(likely(var1)) {
2243 var2 = self->attrs[COLOR_nitc__literal__AStringExpr___delimiter_start].c; /* _delimiter_start on <self:AStringExpr> */
2244 } else {
2245 {
2246 {
2247 var5 = nitc__literal___AStringFormExpr___AAugmentedLiteral__text(self);
2248 }
2249 var_str = var5;
2250 var_i = 0l;
2251 {
2252 var6 = ((long(*)(val* self))(var_str->class->vft[COLOR_core__abstract_text__Text__length]))(var_str); /* length on <var_str:String>*/
2253 }
2254 var_ = var6;
2255 for(;;) {
2256 {
2257 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
2258 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
2259 /* <var_:Int> isa OTHER */
2260 var9 = 1; /* easy <var_:Int> isa OTHER*/
2261 if (unlikely(!var9)) {
2262 var_class_name = type_core__Int.name;
2263 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2264 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2265 fatal_exit(1);
2266 }
2267 var10 = var_i < var_;
2268 var7 = var10;
2269 goto RET_LABEL8;
2270 RET_LABEL8:(void)0;
2271 }
2272 }
2273 if (var7){
2274 } else {
2275 goto BREAK_label;
2276 }
2277 {
2278 var11 = ((uint32_t(*)(val* self, long p0))(var_str->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var_str, var_i); /* [] on <var_str:String>*/
2279 }
2280 var_c = var11;
2281 {
2282 { /* Inline kernel$Char$== (var_c,'\"') on <var_c:Char> */
2283 var15 = var_c == '\"';
2284 var13 = var15;
2285 goto RET_LABEL14;
2286 RET_LABEL14:(void)0;
2287 }
2288 }
2289 var_16 = var13;
2290 if (var13){
2291 var12 = var_16;
2292 } else {
2293 {
2294 { /* Inline kernel$Char$== (var_c,'\'') on <var_c:Char> */
2295 var19 = var_c == '\'';
2296 var17 = var19;
2297 goto RET_LABEL18;
2298 RET_LABEL18:(void)0;
2299 }
2300 }
2301 var12 = var17;
2302 }
2303 if (var12){
2304 {
2305 nitc__literal___AStringExpr___AugmentedStringFormExpr__delimiter_end_61d(self, var_c); /* Direct call literal$AStringExpr$delimiter_end= on <self:AStringExpr>*/
2306 }
2307 var3 = var_c;
2308 goto RET_LABEL4;
2309 } else {
2310 }
2311 {
2312 var20 = core___core__Int___Discrete__successor(var_i, 1l);
2313 }
2314 var_i = var20;
2315 }
2316 BREAK_label: (void)0;
2317 if(catchStack.cursor >= 0){
2318 longjmp(catchStack.envs[catchStack.cursor], 1);
2319 }
2320 PRINT_ERROR("Runtime error: %s", "Aborted");
2321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 265);
2322 fatal_exit(1);
2323 RET_LABEL4:(void)0;
2324 }
2325 self->attrs[COLOR_nitc__literal__AStringExpr___delimiter_start].c = var3; /* _delimiter_start on <self:AStringExpr> */
2326 var2 = var3;
2327 self->attrs[COLOR_nitc__literal__AStringExpr__lazy_32d_delimiter_start].s = 1; /* lazy _delimiter_start on <self:AStringExpr> */
2328 }
2329 var = var2;
2330 RET_LABEL:;
2331 return var;
2332 }
2333 /* method literal$AStringExpr$delimiter_start= for (self: AStringExpr, Char) */
2334 void nitc__literal___AStringExpr___AugmentedStringFormExpr__delimiter_start_61d(val* self, uint32_t p0) {
2335 self->attrs[COLOR_nitc__literal__AStringExpr___delimiter_start].c = p0; /* _delimiter_start on <self:AStringExpr> */
2336 self->attrs[COLOR_nitc__literal__AStringExpr__lazy_32d_delimiter_start].s = 1; /* lazy _delimiter_start on <self:AStringExpr> */
2337 RET_LABEL:;
2338 }
2339 /* method literal$AStringExpr$delimiter_end for (self: AStringExpr): Char */
2340 uint32_t nitc__literal___AStringExpr___AAugmentedLiteral__delimiter_end(val* self) {
2341 uint32_t var /* : Char */;
2342 short int var1 /* : Bool */;
2343 uint32_t var2 /* : Char */;
2344 uint32_t var3 /* : Char */;
2345 uint32_t var5 /* : Char */;
2346 var1 = self->attrs[COLOR_nitc__literal__AStringExpr__lazy_32d_delimiter_end].s; /* lazy _delimiter_end on <self:AStringExpr> */
2347 if(likely(var1)) {
2348 var2 = self->attrs[COLOR_nitc__literal__AStringExpr___delimiter_end].c; /* _delimiter_end on <self:AStringExpr> */
2349 } else {
2350 {
2351 {
2352 var5 = nitc__literal___AStringExpr___AAugmentedLiteral__delimiter_start(self);
2353 }
2354 var3 = var5;
2355 goto RET_LABEL4;
2356 RET_LABEL4:(void)0;
2357 }
2358 self->attrs[COLOR_nitc__literal__AStringExpr___delimiter_end].c = var3; /* _delimiter_end on <self:AStringExpr> */
2359 var2 = var3;
2360 self->attrs[COLOR_nitc__literal__AStringExpr__lazy_32d_delimiter_end].s = 1; /* lazy _delimiter_end on <self:AStringExpr> */
2361 }
2362 var = var2;
2363 RET_LABEL:;
2364 return var;
2365 }
2366 /* method literal$AStringExpr$delimiter_end= for (self: AStringExpr, Char) */
2367 void nitc__literal___AStringExpr___AugmentedStringFormExpr__delimiter_end_61d(val* self, uint32_t p0) {
2368 self->attrs[COLOR_nitc__literal__AStringExpr___delimiter_end].c = p0; /* _delimiter_end on <self:AStringExpr> */
2369 self->attrs[COLOR_nitc__literal__AStringExpr__lazy_32d_delimiter_end].s = 1; /* lazy _delimiter_end on <self:AStringExpr> */
2370 RET_LABEL:;
2371 }
2372 /* method literal$AStringExpr$accept_literal for (self: AStringExpr, LiteralVisitor) */
2373 void nitc__literal___AStringExpr___ANode__accept_literal(val* self, val* p0) {
2374 val* var_v /* var v: LiteralVisitor */;
2375 short int var /* : Bool */;
2376 short int var1 /* : Bool */;
2377 val* var2 /* : ToolContext */;
2378 val* var4 /* : ToolContext */;
2379 val* var5 /* : Location */;
2380 val* var6 /* : NativeArray[String] */;
2381 static val* varonce;
2382 static val* varonce7;
2383 val* var8 /* : String */;
2384 char* var9 /* : CString */;
2385 val* var10 /* : String */;
2386 val* var11 /* : nullable Int */;
2387 val* var12 /* : nullable Int */;
2388 val* var13 /* : nullable Bool */;
2389 val* var14 /* : nullable Bool */;
2390 static val* varonce15;
2391 val* var16 /* : String */;
2392 char* var17 /* : CString */;
2393 val* var18 /* : String */;
2394 val* var19 /* : nullable Int */;
2395 val* var20 /* : nullable Int */;
2396 val* var21 /* : nullable Bool */;
2397 val* var22 /* : nullable Bool */;
2398 val* var23 /* : String */;
2399 val* var24 /* : String */;
2400 val* var25 /* : String */;
2401 val* var26 /* : Message */;
2402 val* var27 /* : String */;
2403 static val* varonce28;
2404 val* var29 /* : String */;
2405 char* var30 /* : CString */;
2406 val* var31 /* : String */;
2407 val* var32 /* : nullable Int */;
2408 val* var33 /* : nullable Int */;
2409 val* var34 /* : nullable Bool */;
2410 val* var35 /* : nullable Bool */;
2411 short int var36 /* : Bool */;
2412 val* var_other /* var other: nullable Object */;
2413 short int var38 /* : Bool */;
2414 short int var39 /* : Bool */;
2415 val* var40 /* : String */;
2416 val* var41 /* : Bytes */;
2417 val* var43 /* : Bytes */;
2418 val* var45 /* : Bytes */;
2419 val* var46 /* : String */;
2420 var_v = p0;
2421 {
2422 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__literal___AStringExpr___ANode__accept_literal]))(self, p0); /* accept_literal on <self:AStringExpr>*/
2423 }
2424 {
2425 var = nitc___nitc__AugmentedStringFormExpr___AAugmentedLiteral__is_valid_augmentation(self);
2426 }
2427 var1 = !var;
2428 if (var1){
2429 {
2430 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
2431 var4 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
2432 if (unlikely(var4 == NULL)) {
2433 if(catchStack.cursor >= 0){
2434 longjmp(catchStack.envs[catchStack.cursor], 1);
2435 }
2436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2437 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
2438 fatal_exit(1);
2439 }
2440 var2 = var4;
2441 RET_LABEL3:(void)0;
2442 }
2443 }
2444 {
2445 var5 = nitc___nitc__ANode___hot_location(self);
2446 }
2447 if (unlikely(varonce==NULL)) {
2448 var6 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
2449 if (likely(varonce7!=NULL)) {
2450 var8 = varonce7;
2451 } else {
2452 var9 = "Error: invalid prefix/suffix combination ";
2453 var11 = (val*)(41l<<2|1);
2454 var12 = (val*)(41l<<2|1);
2455 var13 = (val*)((long)(0)<<2|3);
2456 var14 = (val*)((long)(0)<<2|3);
2457 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
2458 var8 = var10;
2459 varonce7 = var8;
2460 }
2461 ((struct instance_core__NativeArray*)var6)->values[0]=var8;
2462 if (likely(varonce15!=NULL)) {
2463 var16 = varonce15;
2464 } else {
2465 var17 = "/";
2466 var19 = (val*)(1l<<2|1);
2467 var20 = (val*)(1l<<2|1);
2468 var21 = (val*)((long)(0)<<2|3);
2469 var22 = (val*)((long)(0)<<2|3);
2470 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
2471 var16 = var18;
2472 varonce15 = var16;
2473 }
2474 ((struct instance_core__NativeArray*)var6)->values[2]=var16;
2475 } else {
2476 var6 = varonce;
2477 varonce = NULL;
2478 }
2479 {
2480 var23 = nitc___nitc__AAugmentedLiteral___prefix(self);
2481 }
2482 ((struct instance_core__NativeArray*)var6)->values[1]=var23;
2483 {
2484 var24 = nitc___nitc__AAugmentedLiteral___suffix(self);
2485 }
2486 ((struct instance_core__NativeArray*)var6)->values[3]=var24;
2487 {
2488 var25 = ((val*(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var6); /* native_to_s on <var6:NativeArray[String]>*/
2489 }
2490 varonce = var6;
2491 {
2492 var26 = nitc___nitc__ToolContext___error(var2, var5, var25);
2493 }
2494 goto RET_LABEL;
2495 } else {
2496 }
2497 {
2498 var27 = nitc___nitc__AAugmentedLiteral___prefix(self);
2499 }
2500 if (likely(varonce28!=NULL)) {
2501 var29 = varonce28;
2502 } else {
2503 var30 = "raw";
2504 var32 = (val*)(3l<<2|1);
2505 var33 = (val*)(3l<<2|1);
2506 var34 = (val*)((long)(0)<<2|3);
2507 var35 = (val*)((long)(0)<<2|3);
2508 var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
2509 var29 = var31;
2510 varonce28 = var29;
2511 }
2512 {
2513 { /* Inline kernel$Object$!= (var27,var29) on <var27:String> */
2514 var_other = var29;
2515 {
2516 var38 = ((short int(*)(val* self, val* p0))(var27->class->vft[COLOR_core__kernel__Object___61d_61d]))(var27, var_other); /* == on <var27:String>*/
2517 }
2518 var39 = !var38;
2519 var36 = var39;
2520 goto RET_LABEL37;
2521 RET_LABEL37:(void)0;
2522 }
2523 }
2524 if (var36){
2525 {
2526 var40 = nitc__literal___AStringFormExpr___raw_text(self);
2527 }
2528 {
2529 var41 = core__bytes___Text___unescape_to_bytes(var40);
2530 }
2531 {
2532 { /* Inline literal$AStringFormExpr$bytes= (self,var41) on <self:AStringExpr> */
2533 self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val = var41; /* _bytes on <self:AStringExpr> */
2534 RET_LABEL42:(void)0;
2535 }
2536 }
2537 {
2538 { /* Inline literal$AStringFormExpr$bytes (self) on <self:AStringExpr> */
2539 var45 = self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val; /* _bytes on <self:AStringExpr> */
2540 if (unlikely(var45 == NULL)) {
2541 if(catchStack.cursor >= 0){
2542 longjmp(catchStack.envs[catchStack.cursor], 1);
2543 }
2544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
2545 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 204);
2546 fatal_exit(1);
2547 }
2548 var43 = var45;
2549 RET_LABEL44:(void)0;
2550 }
2551 }
2552 {
2553 var46 = core___core__Bytes___core__abstract_text__Object__to_s(var43);
2554 }
2555 {
2556 { /* Inline literal$AStringFormExpr$value= (self,var46) on <self:AStringExpr> */
2557 self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val = var46; /* _value on <self:AStringExpr> */
2558 RET_LABEL47:(void)0;
2559 }
2560 }
2561 } else {
2562 }
2563 RET_LABEL:;
2564 }
2565 /* method literal$ASuperstringExpr$prefix for (self: ASuperstringExpr): String */
2566 val* nitc__literal___ASuperstringExpr___AAugmentedLiteral__prefix(val* self) {
2567 val* var /* : String */;
2568 short int var1 /* : Bool */;
2569 val* var2 /* : String */;
2570 val* var3 /* : String */;
2571 val* var5 /* : ANodes[AExpr] */;
2572 val* var7 /* : ANodes[AExpr] */;
2573 val* var8 /* : nullable Object */;
2574 val* var_fst /* var fst: AExpr */;
2575 short int var9 /* : Bool */;
2576 int cltype;
2577 int idtype;
2578 val* var10 /* : String */;
2579 val* var_prf /* var prf: String */;
2580 uint32_t var11 /* : Char */;
2581 uint32_t var13 /* : Char */;
2582 uint32_t var15 /* : Char */;
2583 static val* varonce;
2584 val* var17 /* : String */;
2585 char* var18 /* : CString */;
2586 val* var19 /* : String */;
2587 val* var20 /* : nullable Int */;
2588 val* var21 /* : nullable Int */;
2589 val* var22 /* : nullable Bool */;
2590 val* var23 /* : nullable Bool */;
2591 var1 = self->attrs[COLOR_nitc__literal__ASuperstringExpr___prefix].val != NULL; /* _prefix on <self:ASuperstringExpr> */
2592 if(likely(var1)) {
2593 var2 = self->attrs[COLOR_nitc__literal__ASuperstringExpr___prefix].val; /* _prefix on <self:ASuperstringExpr> */
2594 if (unlikely(var2 == NULL)) {
2595 if(catchStack.cursor >= 0){
2596 longjmp(catchStack.envs[catchStack.cursor], 1);
2597 }
2598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _prefix");
2599 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 287);
2600 fatal_exit(1);
2601 }
2602 } else {
2603 {
2604 {
2605 { /* Inline parser_nodes$ASuperstringExpr$n_exprs (self) on <self:ASuperstringExpr> */
2606 var7 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
2607 if (unlikely(var7 == NULL)) {
2608 if(catchStack.cursor >= 0){
2609 longjmp(catchStack.envs[catchStack.cursor], 1);
2610 }
2611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2612 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2645);
2613 fatal_exit(1);
2614 }
2615 var5 = var7;
2616 RET_LABEL6:(void)0;
2617 }
2618 }
2619 {
2620 var8 = core___core__SequenceRead___Collection__first(var5);
2621 }
2622 var_fst = var8;
2623 /* <var_fst:AExpr> isa AugmentedStringFormExpr */
2624 cltype = type_nitc__AugmentedStringFormExpr.color;
2625 idtype = type_nitc__AugmentedStringFormExpr.id;
2626 if(cltype >= var_fst->type->table_size) {
2627 var9 = 0;
2628 } else {
2629 var9 = var_fst->type->type_table[cltype] == idtype;
2630 }
2631 if (var9){
2632 {
2633 var10 = ((val*(*)(val* self))(var_fst->class->vft[COLOR_nitc__literal__AAugmentedLiteral__prefix]))(var_fst); /* prefix on <var_fst:AExpr(AugmentedStringFormExpr)>*/
2634 }
2635 var_prf = var10;
2636 {
2637 var11 = ((uint32_t(*)(val* self))(var_fst->class->vft[COLOR_nitc__literal__AAugmentedLiteral__delimiter_start]))(var_fst); /* delimiter_start on <var_fst:AExpr(AugmentedStringFormExpr)>*/
2638 }
2639 {
2640 { /* Inline literal$AugmentedStringFormExpr$delimiter_start= (self,var11) on <self:ASuperstringExpr> */
2641 self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_start].c = var11; /* _delimiter_start on <self:ASuperstringExpr> */
2642 RET_LABEL12:(void)0;
2643 }
2644 }
2645 {
2646 { /* Inline literal$AugmentedStringFormExpr$delimiter_start (self) on <self:ASuperstringExpr> */
2647 var15 = self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_start].c; /* _delimiter_start on <self:ASuperstringExpr> */
2648 var13 = var15;
2649 RET_LABEL14:(void)0;
2650 }
2651 }
2652 {
2653 { /* Inline literal$AugmentedStringFormExpr$delimiter_end= (self,var13) on <self:ASuperstringExpr> */
2654 self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_end].c = var13; /* _delimiter_end on <self:ASuperstringExpr> */
2655 RET_LABEL16:(void)0;
2656 }
2657 }
2658 var3 = var_prf;
2659 goto RET_LABEL4;
2660 } else {
2661 }
2662 if (likely(varonce!=NULL)) {
2663 var17 = varonce;
2664 } else {
2665 var18 = "";
2666 var20 = (val*)(0l<<2|1);
2667 var21 = (val*)(0l<<2|1);
2668 var22 = (val*)((long)(0)<<2|3);
2669 var23 = (val*)((long)(0)<<2|3);
2670 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
2671 var17 = var19;
2672 varonce = var17;
2673 }
2674 var3 = var17;
2675 goto RET_LABEL4;
2676 RET_LABEL4:(void)0;
2677 }
2678 self->attrs[COLOR_nitc__literal__ASuperstringExpr___prefix].val = var3; /* _prefix on <self:ASuperstringExpr> */
2679 var2 = var3;
2680 }
2681 var = var2;
2682 RET_LABEL:;
2683 return var;
2684 }
2685 /* method literal$ASuperstringExpr$suffix for (self: ASuperstringExpr): String */
2686 val* nitc__literal___ASuperstringExpr___AAugmentedLiteral__suffix(val* self) {
2687 val* var /* : String */;
2688 short int var1 /* : Bool */;
2689 val* var2 /* : String */;
2690 val* var3 /* : String */;
2691 val* var5 /* : ANodes[AExpr] */;
2692 val* var7 /* : ANodes[AExpr] */;
2693 val* var8 /* : nullable Object */;
2694 val* var_lst /* var lst: AExpr */;
2695 val* var9 /* : String */;
2696 short int var10 /* : Bool */;
2697 int cltype;
2698 int idtype;
2699 uint32_t var11 /* : Char */;
2700 uint32_t var13 /* : Char */;
2701 val* var14 /* : String */;
2702 static val* varonce;
2703 val* var15 /* : String */;
2704 char* var16 /* : CString */;
2705 val* var17 /* : String */;
2706 val* var18 /* : nullable Int */;
2707 val* var19 /* : nullable Int */;
2708 val* var20 /* : nullable Bool */;
2709 val* var21 /* : nullable Bool */;
2710 var1 = self->attrs[COLOR_nitc__literal__ASuperstringExpr___suffix].val != NULL; /* _suffix on <self:ASuperstringExpr> */
2711 if(likely(var1)) {
2712 var2 = self->attrs[COLOR_nitc__literal__ASuperstringExpr___suffix].val; /* _suffix on <self:ASuperstringExpr> */
2713 if (unlikely(var2 == NULL)) {
2714 if(catchStack.cursor >= 0){
2715 longjmp(catchStack.envs[catchStack.cursor], 1);
2716 }
2717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _suffix");
2718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 298);
2719 fatal_exit(1);
2720 }
2721 } else {
2722 {
2723 {
2724 { /* Inline parser_nodes$ASuperstringExpr$n_exprs (self) on <self:ASuperstringExpr> */
2725 var7 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
2726 if (unlikely(var7 == NULL)) {
2727 if(catchStack.cursor >= 0){
2728 longjmp(catchStack.envs[catchStack.cursor], 1);
2729 }
2730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2645);
2732 fatal_exit(1);
2733 }
2734 var5 = var7;
2735 RET_LABEL6:(void)0;
2736 }
2737 }
2738 {
2739 var8 = core___core__SequenceRead___last(var5);
2740 }
2741 var_lst = var8;
2742 {
2743 var9 = nitc__literal___ASuperstringExpr___AAugmentedLiteral__prefix(self);
2744 }
2745 /* <var_lst:AExpr> isa AugmentedStringFormExpr */
2746 cltype = type_nitc__AugmentedStringFormExpr.color;
2747 idtype = type_nitc__AugmentedStringFormExpr.id;
2748 if(cltype >= var_lst->type->table_size) {
2749 var10 = 0;
2750 } else {
2751 var10 = var_lst->type->type_table[cltype] == idtype;
2752 }
2753 if (var10){
2754 {
2755 { /* Inline literal$AugmentedStringFormExpr$delimiter_start (self) on <self:ASuperstringExpr> */
2756 var13 = self->attrs[COLOR_nitc__literal__AugmentedStringFormExpr___delimiter_start].c; /* _delimiter_start on <self:ASuperstringExpr> */
2757 var11 = var13;
2758 RET_LABEL12:(void)0;
2759 }
2760 }
2761 {
2762 ((void(*)(val* self, uint32_t p0))(var_lst->class->vft[COLOR_nitc__literal__AugmentedStringFormExpr__delimiter_end_61d]))(var_lst, var11); /* delimiter_end= on <var_lst:AExpr(AugmentedStringFormExpr)>*/
2763 }
2764 {
2765 var14 = ((val*(*)(val* self))(var_lst->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(var_lst); /* suffix on <var_lst:AExpr(AugmentedStringFormExpr)>*/
2766 }
2767 var3 = var14;
2768 goto RET_LABEL4;
2769 } else {
2770 }
2771 if (likely(varonce!=NULL)) {
2772 var15 = varonce;
2773 } else {
2774 var16 = "";
2775 var18 = (val*)(0l<<2|1);
2776 var19 = (val*)(0l<<2|1);
2777 var20 = (val*)((long)(0)<<2|3);
2778 var21 = (val*)((long)(0)<<2|3);
2779 var17 = core__flat___CString___to_s_unsafe(var16, var18, var19, var20, var21);
2780 var15 = var17;
2781 varonce = var15;
2782 }
2783 var3 = var15;
2784 goto RET_LABEL4;
2785 RET_LABEL4:(void)0;
2786 }
2787 self->attrs[COLOR_nitc__literal__ASuperstringExpr___suffix].val = var3; /* _suffix on <self:ASuperstringExpr> */
2788 var2 = var3;
2789 }
2790 var = var2;
2791 RET_LABEL:;
2792 return var;
2793 }
2794 /* method literal$ASuperstringExpr$accept_literal for (self: ASuperstringExpr, LiteralVisitor) */
2795 void nitc__literal___ASuperstringExpr___ANode__accept_literal(val* self, val* p0) {
2796 val* var_v /* var v: LiteralVisitor */;
2797 short int var /* : Bool */;
2798 val* var1 /* : ToolContext */;
2799 val* var3 /* : ToolContext */;
2800 val* var4 /* : Location */;
2801 static val* varonce;
2802 val* var5 /* : String */;
2803 char* var6 /* : CString */;
2804 val* var7 /* : String */;
2805 val* var8 /* : nullable Int */;
2806 val* var9 /* : nullable Int */;
2807 val* var10 /* : nullable Bool */;
2808 val* var11 /* : nullable Bool */;
2809 val* var12 /* : Message */;
2810 short int var13 /* : Bool */;
2811 short int var14 /* : Bool */;
2812 val* var15 /* : ToolContext */;
2813 val* var17 /* : ToolContext */;
2814 val* var18 /* : Location */;
2815 val* var20 /* : NativeArray[String] */;
2816 static val* varonce19;
2817 static val* varonce21;
2818 val* var22 /* : String */;
2819 char* var23 /* : CString */;
2820 val* var24 /* : String */;
2821 val* var25 /* : nullable Int */;
2822 val* var26 /* : nullable Int */;
2823 val* var27 /* : nullable Bool */;
2824 val* var28 /* : nullable Bool */;
2825 static val* varonce29;
2826 val* var30 /* : String */;
2827 char* var31 /* : CString */;
2828 val* var32 /* : String */;
2829 val* var33 /* : nullable Int */;
2830 val* var34 /* : nullable Int */;
2831 val* var35 /* : nullable Bool */;
2832 val* var36 /* : nullable Bool */;
2833 val* var37 /* : String */;
2834 val* var38 /* : String */;
2835 val* var39 /* : String */;
2836 val* var40 /* : Message */;
2837 var_v = p0;
2838 {
2839 var = nitc___nitc__AugmentedStringFormExpr___is_bytestring(self);
2840 }
2841 if (var){
2842 {
2843 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
2844 var3 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
2845 if (unlikely(var3 == NULL)) {
2846 if(catchStack.cursor >= 0){
2847 longjmp(catchStack.envs[catchStack.cursor], 1);
2848 }
2849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2850 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
2851 fatal_exit(1);
2852 }
2853 var1 = var3;
2854 RET_LABEL2:(void)0;
2855 }
2856 }
2857 {
2858 var4 = nitc___nitc__ANode___hot_location(self);
2859 }
2860 if (likely(varonce!=NULL)) {
2861 var5 = varonce;
2862 } else {
2863 var6 = "Error: cannot produce a ByteString on a Superstring";
2864 var8 = (val*)(51l<<2|1);
2865 var9 = (val*)(51l<<2|1);
2866 var10 = (val*)((long)(0)<<2|3);
2867 var11 = (val*)((long)(0)<<2|3);
2868 var7 = core__flat___CString___to_s_unsafe(var6, var8, var9, var10, var11);
2869 var5 = var7;
2870 varonce = var5;
2871 }
2872 {
2873 var12 = nitc___nitc__ToolContext___error(var1, var4, var5);
2874 }
2875 goto RET_LABEL;
2876 } else {
2877 }
2878 {
2879 var13 = nitc___nitc__AugmentedStringFormExpr___AAugmentedLiteral__is_valid_augmentation(self);
2880 }
2881 var14 = !var13;
2882 if (var14){
2883 {
2884 { /* Inline literal$LiteralVisitor$toolcontext (var_v) on <var_v:LiteralVisitor> */
2885 var17 = var_v->attrs[COLOR_nitc__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
2886 if (unlikely(var17 == NULL)) {
2887 if(catchStack.cursor >= 0){
2888 longjmp(catchStack.envs[catchStack.cursor], 1);
2889 }
2890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2891 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 46);
2892 fatal_exit(1);
2893 }
2894 var15 = var17;
2895 RET_LABEL16:(void)0;
2896 }
2897 }
2898 {
2899 var18 = nitc___nitc__ANode___hot_location(self);
2900 }
2901 if (unlikely(varonce19==NULL)) {
2902 var20 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
2903 if (likely(varonce21!=NULL)) {
2904 var22 = varonce21;
2905 } else {
2906 var23 = "Error: invalid prefix/suffix combination ";
2907 var25 = (val*)(41l<<2|1);
2908 var26 = (val*)(41l<<2|1);
2909 var27 = (val*)((long)(0)<<2|3);
2910 var28 = (val*)((long)(0)<<2|3);
2911 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
2912 var22 = var24;
2913 varonce21 = var22;
2914 }
2915 ((struct instance_core__NativeArray*)var20)->values[0]=var22;
2916 if (likely(varonce29!=NULL)) {
2917 var30 = varonce29;
2918 } else {
2919 var31 = "/";
2920 var33 = (val*)(1l<<2|1);
2921 var34 = (val*)(1l<<2|1);
2922 var35 = (val*)((long)(0)<<2|3);
2923 var36 = (val*)((long)(0)<<2|3);
2924 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
2925 var30 = var32;
2926 varonce29 = var30;
2927 }
2928 ((struct instance_core__NativeArray*)var20)->values[2]=var30;
2929 } else {
2930 var20 = varonce19;
2931 varonce19 = NULL;
2932 }
2933 {
2934 var37 = nitc__literal___ASuperstringExpr___AAugmentedLiteral__prefix(self);
2935 }
2936 ((struct instance_core__NativeArray*)var20)->values[1]=var37;
2937 {
2938 var38 = nitc__literal___ASuperstringExpr___AAugmentedLiteral__suffix(self);
2939 }
2940 ((struct instance_core__NativeArray*)var20)->values[3]=var38;
2941 {
2942 var39 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
2943 }
2944 varonce19 = var20;
2945 {
2946 var40 = nitc___nitc__ToolContext___error(var15, var18, var39);
2947 }
2948 goto RET_LABEL;
2949 } else {
2950 }
2951 RET_LABEL:;
2952 }
2953 /* method literal$ASuperstringExpr$visit_all for (self: ASuperstringExpr, Visitor) */
2954 void nitc__literal___ASuperstringExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
2955 val* var_v /* var v: Visitor */;
2956 val* var /* : String */;
2957 static val* varonce;
2958 val* var1 /* : String */;
2959 char* var2 /* : CString */;
2960 val* var3 /* : String */;
2961 val* var4 /* : nullable Int */;
2962 val* var5 /* : nullable Int */;
2963 val* var6 /* : nullable Bool */;
2964 val* var7 /* : nullable Bool */;
2965 short int var8 /* : Bool */;
2966 val* var_other /* var other: nullable Object */;
2967 short int var10 /* : Bool */;
2968 short int var11 /* : Bool */;
2969 val* var12 /* : ANodes[AExpr] */;
2970 val* var14 /* : ANodes[AExpr] */;
2971 val* var_ /* var : ANodes[AExpr] */;
2972 val* var15 /* : Iterator[ANode] */;
2973 val* var_16 /* var : Iterator[AExpr] */;
2974 short int var17 /* : Bool */;
2975 val* var18 /* : nullable Object */;
2976 val* var_i /* var i: AExpr */;
2977 short int var19 /* : Bool */;
2978 int cltype;
2979 int idtype;
2980 short int var20 /* : Bool */;
2981 val* var22 /* : String */;
2982 val* var23 /* : Bytes */;
2983 val* var25 /* : Bytes */;
2984 val* var27 /* : Bytes */;
2985 val* var28 /* : String */;
2986 var_v = p0;
2987 {
2988 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__literal___ASuperstringExpr___nitc__parser_nodes__ANode__visit_all]))(self, p0); /* visit_all on <self:ASuperstringExpr>*/
2989 }
2990 {
2991 var = nitc__literal___ASuperstringExpr___AAugmentedLiteral__prefix(self);
2992 }
2993 if (likely(varonce!=NULL)) {
2994 var1 = varonce;
2995 } else {
2996 var2 = "raw";
2997 var4 = (val*)(3l<<2|1);
2998 var5 = (val*)(3l<<2|1);
2999 var6 = (val*)((long)(0)<<2|3);
3000 var7 = (val*)((long)(0)<<2|3);
3001 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
3002 var1 = var3;
3003 varonce = var1;
3004 }
3005 {
3006 { /* Inline kernel$Object$!= (var,var1) on <var:String> */
3007 var_other = var1;
3008 {
3009 var10 = ((short int(*)(val* self, val* p0))(var->class->vft[COLOR_core__kernel__Object___61d_61d]))(var, var_other); /* == on <var:String>*/
3010 }
3011 var11 = !var10;
3012 var8 = var11;
3013 goto RET_LABEL9;
3014 RET_LABEL9:(void)0;
3015 }
3016 }
3017 if (var8){
3018 {
3019 { /* Inline parser_nodes$ASuperstringExpr$n_exprs (self) on <self:ASuperstringExpr> */
3020 var14 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
3021 if (unlikely(var14 == NULL)) {
3022 if(catchStack.cursor >= 0){
3023 longjmp(catchStack.envs[catchStack.cursor], 1);
3024 }
3025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2645);
3027 fatal_exit(1);
3028 }
3029 var12 = var14;
3030 RET_LABEL13:(void)0;
3031 }
3032 }
3033 var_ = var12;
3034 {
3035 var15 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
3036 }
3037 var_16 = var15;
3038 for(;;) {
3039 {
3040 var17 = ((short int(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_16); /* is_ok on <var_16:Iterator[AExpr]>*/
3041 }
3042 if (var17){
3043 } else {
3044 goto BREAK_label;
3045 }
3046 {
3047 var18 = ((val*(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_16); /* item on <var_16:Iterator[AExpr]>*/
3048 }
3049 var_i = var18;
3050 /* <var_i:AExpr> isa AStringFormExpr */
3051 cltype = type_nitc__AStringFormExpr.color;
3052 idtype = type_nitc__AStringFormExpr.id;
3053 if(cltype >= var_i->type->table_size) {
3054 var19 = 0;
3055 } else {
3056 var19 = var_i->type->type_table[cltype] == idtype;
3057 }
3058 var20 = !var19;
3059 if (var20){
3060 goto BREAK_label21;
3061 } else {
3062 }
3063 {
3064 var22 = nitc__literal___AStringFormExpr___raw_text(var_i);
3065 }
3066 {
3067 var23 = core__bytes___Text___unescape_to_bytes(var22);
3068 }
3069 {
3070 { /* Inline literal$AStringFormExpr$bytes= (var_i,var23) on <var_i:AExpr(AStringFormExpr)> */
3071 var_i->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val = var23; /* _bytes on <var_i:AExpr(AStringFormExpr)> */
3072 RET_LABEL24:(void)0;
3073 }
3074 }
3075 {
3076 { /* Inline literal$AStringFormExpr$bytes (var_i) on <var_i:AExpr(AStringFormExpr)> */
3077 var27 = var_i->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val; /* _bytes on <var_i:AExpr(AStringFormExpr)> */
3078 if (unlikely(var27 == NULL)) {
3079 if(catchStack.cursor >= 0){
3080 longjmp(catchStack.envs[catchStack.cursor], 1);
3081 }
3082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
3083 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 204);
3084 fatal_exit(1);
3085 }
3086 var25 = var27;
3087 RET_LABEL26:(void)0;
3088 }
3089 }
3090 {
3091 var28 = core___core__Bytes___core__abstract_text__Object__to_s(var25);
3092 }
3093 {
3094 { /* Inline literal$AStringFormExpr$value= (var_i,var28) on <var_i:AExpr(AStringFormExpr)> */
3095 var_i->attrs[COLOR_nitc__literal__AStringFormExpr___value].val = var28; /* _value on <var_i:AExpr(AStringFormExpr)> */
3096 RET_LABEL29:(void)0;
3097 }
3098 }
3099 BREAK_label21: (void)0;
3100 {
3101 ((void(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_16); /* next on <var_16:Iterator[AExpr]>*/
3102 }
3103 }
3104 BREAK_label: (void)0;
3105 {
3106 ((void(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_16); /* finish on <var_16:Iterator[AExpr]>*/
3107 }
3108 } else {
3109 }
3110 RET_LABEL:;
3111 }