README: document nit_env.sh
[nit.git] / c_src / nit__literal.sep.1.c
1 #include "nit__literal.sep.0.h"
2 /* method literal#LiteralPhase#process_nmodule for (self: LiteralPhase, AModule) */
3 void nit__literal___nit__literal__LiteralPhase___nit__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_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:LiteralPhase> */
11 if (unlikely(var2 == NULL)) {
12 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
13 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200);
14 fatal_exit(1);
15 }
16 var = var2;
17 RET_LABEL1:(void)0;
18 }
19 }
20 {
21 nit__literal___AModule___do_literal(var_nmodule, var); /* Direct call literal#AModule#do_literal on <var_nmodule:AModule>*/
22 }
23 RET_LABEL:;
24 }
25 /* method literal#AModule#do_literal for (self: AModule, ToolContext) */
26 void nit__literal___AModule___do_literal(val* self, val* p0) {
27 val* var_toolcontext /* var toolcontext: ToolContext */;
28 val* var /* : LiteralVisitor */;
29 val* var_v /* var v: LiteralVisitor */;
30 var_toolcontext = p0;
31 var = NEW_nit__literal__LiteralVisitor(&type_nit__literal__LiteralVisitor);
32 {
33 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__literal__LiteralVisitor__toolcontext_61d]))(var, var_toolcontext); /* toolcontext= on <var:LiteralVisitor>*/
34 }
35 {
36 ((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on <var:LiteralVisitor>*/
37 }
38 var_v = var;
39 {
40 nit___nit__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:LiteralVisitor>*/
41 }
42 RET_LABEL:;
43 }
44 /* method literal#LiteralVisitor#toolcontext for (self: LiteralVisitor): ToolContext */
45 val* nit__literal___nit__literal__LiteralVisitor___toolcontext(val* self) {
46 val* var /* : ToolContext */;
47 val* var1 /* : ToolContext */;
48 var1 = self->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <self:LiteralVisitor> */
49 if (unlikely(var1 == NULL)) {
50 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
51 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
52 fatal_exit(1);
53 }
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
59 void nit__literal___nit__literal__LiteralVisitor___toolcontext_61d(val* self, val* p0) {
60 self->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val = p0; /* _toolcontext on <self:LiteralVisitor> */
61 RET_LABEL:;
62 }
63 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
64 void nit__literal___nit__literal__LiteralVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
65 val* var_n /* var n: ANode */;
66 var_n = p0;
67 {
68 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__literal__ANode__accept_literal]))(var_n, self); /* accept_literal on <var_n:ANode>*/
69 }
70 {
71 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on <var_n:ANode>*/
72 }
73 RET_LABEL:;
74 }
75 /* method literal#LiteralVisitor#init for (self: LiteralVisitor) */
76 void nit__literal___nit__literal__LiteralVisitor___standard__kernel__Object__init(val* self) {
77 {
78 ((void(*)(val* self))(self->class->vft[COLOR_nit__literal___nit__literal__LiteralVisitor___standard__kernel__Object__init]))(self); /* init on <self:LiteralVisitor>*/
79 }
80 RET_LABEL:;
81 }
82 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
83 void nit__literal___ANode___accept_literal(val* self, val* p0) {
84 val* var_v /* var v: LiteralVisitor */;
85 var_v = p0;
86 RET_LABEL:;
87 }
88 /* method literal#AExpr#as_string for (self: AExpr): nullable String */
89 val* nit__literal___AExpr___as_string(val* self) {
90 val* var /* : nullable String */;
91 short int var1 /* : Bool */;
92 int cltype;
93 int idtype;
94 short int var2 /* : Bool */;
95 val* var3 /* : nullable String */;
96 val* var5 /* : nullable String */;
97 /* <self:AExpr> isa AStringFormExpr */
98 cltype = type_nit__AStringFormExpr.color;
99 idtype = type_nit__AStringFormExpr.id;
100 if(cltype >= self->type->table_size) {
101 var1 = 0;
102 } else {
103 var1 = self->type->type_table[cltype] == idtype;
104 }
105 var2 = !var1;
106 if (var2){
107 var = ((val*)NULL);
108 goto RET_LABEL;
109 } else {
110 }
111 {
112 { /* Inline literal#AStringFormExpr#value (self) on <self:AExpr(AStringFormExpr)> */
113 var5 = self->attrs[COLOR_nit__literal__AStringFormExpr___value].val; /* _value on <self:AExpr(AStringFormExpr)> */
114 var3 = var5;
115 RET_LABEL4:(void)0;
116 }
117 }
118 if (unlikely(var3 == NULL)) {
119 PRINT_ERROR("Runtime error: %s", "Cast failed");
120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 65);
121 fatal_exit(1);
122 }
123 var = var3;
124 goto RET_LABEL;
125 RET_LABEL:;
126 return var;
127 }
128 /* method literal#AExpr#as_id for (self: AExpr): nullable String */
129 val* nit__literal___AExpr___as_id(val* self) {
130 val* var /* : nullable String */;
131 short int var1 /* : Bool */;
132 int cltype;
133 int idtype;
134 val* var2 /* : String */;
135 short int var3 /* : Bool */;
136 int cltype4;
137 int idtype5;
138 short int var6 /* : Bool */;
139 val* var7 /* : AExpr */;
140 val* var9 /* : AExpr */;
141 short int var10 /* : Bool */;
142 int cltype11;
143 int idtype12;
144 short int var13 /* : Bool */;
145 val* var14 /* : AExprs */;
146 val* var16 /* : AExprs */;
147 val* var17 /* : ANodes[AExpr] */;
148 val* var19 /* : ANodes[AExpr] */;
149 short int var20 /* : Bool */;
150 short int var21 /* : Bool */;
151 val* var22 /* : TId */;
152 val* var24 /* : TId */;
153 val* var25 /* : String */;
154 /* <self:AExpr> isa AMethidExpr */
155 cltype = type_nit__AMethidExpr.color;
156 idtype = type_nit__AMethidExpr.id;
157 if(cltype >= self->type->table_size) {
158 var1 = 0;
159 } else {
160 var1 = self->type->type_table[cltype] == idtype;
161 }
162 if (var1){
163 {
164 var2 = nit__parser_work___Prod___collect_text(self);
165 }
166 var = var2;
167 goto RET_LABEL;
168 } else {
169 }
170 /* <self:AExpr> isa ACallExpr */
171 cltype4 = type_nit__ACallExpr.color;
172 idtype5 = type_nit__ACallExpr.id;
173 if(cltype4 >= self->type->table_size) {
174 var3 = 0;
175 } else {
176 var3 = self->type->type_table[cltype4] == idtype5;
177 }
178 var6 = !var3;
179 if (var6){
180 var = ((val*)NULL);
181 goto RET_LABEL;
182 } else {
183 }
184 {
185 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:AExpr(ACallExpr)> */
186 var9 = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AExpr(ACallExpr)> */
187 if (unlikely(var9 == NULL)) {
188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
189 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2025);
190 fatal_exit(1);
191 }
192 var7 = var9;
193 RET_LABEL8:(void)0;
194 }
195 }
196 /* <var7:AExpr> isa AImplicitSelfExpr */
197 cltype11 = type_nit__AImplicitSelfExpr.color;
198 idtype12 = type_nit__AImplicitSelfExpr.id;
199 if(cltype11 >= var7->type->table_size) {
200 var10 = 0;
201 } else {
202 var10 = var7->type->type_table[cltype11] == idtype12;
203 }
204 var13 = !var10;
205 if (var13){
206 var = ((val*)NULL);
207 goto RET_LABEL;
208 } else {
209 }
210 {
211 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:AExpr(ACallExpr)> */
212 var16 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:AExpr(ACallExpr)> */
213 if (unlikely(var16 == NULL)) {
214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
215 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2295);
216 fatal_exit(1);
217 }
218 var14 = var16;
219 RET_LABEL15:(void)0;
220 }
221 }
222 {
223 { /* Inline parser_nodes#AExprs#n_exprs (var14) on <var14:AExprs> */
224 var19 = var14->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var14:AExprs> */
225 if (unlikely(var19 == NULL)) {
226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771);
228 fatal_exit(1);
229 }
230 var17 = var19;
231 RET_LABEL18:(void)0;
232 }
233 }
234 {
235 var20 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var17);
236 }
237 var21 = !var20;
238 if (var21){
239 var = ((val*)NULL);
240 goto RET_LABEL;
241 } else {
242 }
243 {
244 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:AExpr(ACallExpr)> */
245 var24 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:AExpr(ACallExpr)> */
246 if (unlikely(var24 == NULL)) {
247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
248 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2292);
249 fatal_exit(1);
250 }
251 var22 = var24;
252 RET_LABEL23:(void)0;
253 }
254 }
255 {
256 var25 = nit__lexer_work___Token___text(var22);
257 }
258 var = var25;
259 goto RET_LABEL;
260 RET_LABEL:;
261 return var;
262 }
263 /* method literal#Text#remove_underscores for (self: Text): Text */
264 val* nit__literal___standard__Text___remove_underscores(val* self) {
265 val* var /* : Text */;
266 val* var1 /* : FlatBuffer */;
267 val* var_b /* var b: FlatBuffer */;
268 val* var3 /* : SequenceRead[Char] */;
269 val* var_ /* var : SequenceRead[Char] */;
270 val* var4 /* : Iterator[nullable Object] */;
271 val* var_5 /* var : IndexedIterator[Char] */;
272 short int var6 /* : Bool */;
273 val* var7 /* : nullable Object */;
274 uint32_t var8 /* : Char */;
275 uint32_t var_i /* var i: Char */;
276 short int var9 /* : Bool */;
277 short int var11 /* : Bool */;
278 var1 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer);
279 {
280 { /* Inline string#FlatBuffer#init (var1) on <var1:FlatBuffer> */
281 {
282 ((void(*)(val* self))(var1->class->vft[COLOR_standard___standard__FlatBuffer___standard__kernel__Object__init]))(var1); /* init on <var1:FlatBuffer>*/
283 }
284 RET_LABEL2:(void)0;
285 }
286 }
287 var_b = var1;
288 {
289 var3 = ((val*(*)(val* self))(self->class->vft[COLOR_standard__string__Text__chars]))(self); /* chars on <self:Text>*/
290 }
291 var_ = var3;
292 {
293 var4 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
294 }
295 var_5 = var4;
296 for(;;) {
297 {
298 var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:IndexedIterator[Char]>*/
299 }
300 if (var6){
301 {
302 var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:IndexedIterator[Char]>*/
303 }
304 var8 = (uint32_t)((long)(var7)>>2);
305 var_i = var8;
306 {
307 { /* Inline kernel#Char#== (var_i,'_') on <var_i:Char> */
308 var11 = var_i == '_';
309 var9 = var11;
310 goto RET_LABEL10;
311 RET_LABEL10:(void)0;
312 }
313 }
314 if (var9){
315 goto BREAK_label;
316 } else {
317 }
318 {
319 standard___standard__FlatBuffer___Buffer__add(var_b, var_i); /* Direct call string#FlatBuffer#add on <var_b:FlatBuffer>*/
320 }
321 BREAK_label: (void)0;
322 {
323 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:IndexedIterator[Char]>*/
324 }
325 } else {
326 goto BREAK_label12;
327 }
328 }
329 BREAK_label12: (void)0;
330 {
331 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:IndexedIterator[Char]>*/
332 }
333 var = var_b;
334 goto RET_LABEL;
335 RET_LABEL:;
336 return var;
337 }
338 /* method literal#AIntExpr#value for (self: AIntExpr): nullable Int */
339 val* nit__literal___AIntExpr___value(val* self) {
340 val* var /* : nullable Int */;
341 val* var1 /* : nullable Int */;
342 var1 = self->attrs[COLOR_nit__literal__AIntExpr___value].val; /* _value on <self:AIntExpr> */
343 var = var1;
344 RET_LABEL:;
345 return var;
346 }
347 /* method literal#AIntExpr#value= for (self: AIntExpr, nullable Int) */
348 void nit__literal___AIntExpr___value_61d(val* self, val* p0) {
349 self->attrs[COLOR_nit__literal__AIntExpr___value].val = p0; /* _value on <self:AIntExpr> */
350 RET_LABEL:;
351 }
352 /* method literal#ADecIntExpr#accept_literal for (self: ADecIntExpr, LiteralVisitor) */
353 void nit__literal___ADecIntExpr___ANode__accept_literal(val* self, val* p0) {
354 val* var_v /* var v: LiteralVisitor */;
355 val* var /* : TNumber */;
356 val* var2 /* : TNumber */;
357 val* var3 /* : String */;
358 long var4 /* : Int */;
359 val* var6 /* : nullable Int */;
360 var_v = p0;
361 {
362 { /* Inline parser_nodes#ADecIntExpr#n_number (self) on <self:ADecIntExpr> */
363 var2 = self->attrs[COLOR_nit__parser_nodes__ADecIntExpr___n_number].val; /* _n_number on <self:ADecIntExpr> */
364 if (unlikely(var2 == NULL)) {
365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_number");
366 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2512);
367 fatal_exit(1);
368 }
369 var = var2;
370 RET_LABEL1:(void)0;
371 }
372 }
373 {
374 var3 = nit__lexer_work___Token___text(var);
375 }
376 {
377 var4 = standard___standard__Text___to_i(var3);
378 }
379 {
380 { /* Inline literal#AIntExpr#value= (self,var4) on <self:ADecIntExpr> */
381 var6 = (val*)(var4<<2|1);
382 self->attrs[COLOR_nit__literal__AIntExpr___value].val = var6; /* _value on <self:ADecIntExpr> */
383 RET_LABEL5:(void)0;
384 }
385 }
386 RET_LABEL:;
387 }
388 /* method literal#AHexIntExpr#accept_literal for (self: AHexIntExpr, LiteralVisitor) */
389 void nit__literal___AHexIntExpr___ANode__accept_literal(val* self, val* p0) {
390 val* var_v /* var v: LiteralVisitor */;
391 val* var /* : THexNumber */;
392 val* var2 /* : THexNumber */;
393 val* var3 /* : String */;
394 val* var4 /* : Text */;
395 val* var5 /* : Text */;
396 val* var_s /* var s: Text */;
397 short int var6 /* : Bool */;
398 val* var7 /* : ToolContext */;
399 val* var9 /* : ToolContext */;
400 val* var10 /* : Location */;
401 val* var12 /* : Location */;
402 static val* varonce;
403 val* var13 /* : String */;
404 char* var14 /* : NativeString */;
405 val* var15 /* : FlatString */;
406 val* var16 /* : Message */;
407 long var17 /* : Int */;
408 val* var19 /* : nullable Int */;
409 var_v = p0;
410 {
411 { /* Inline parser_nodes#AHexIntExpr#n_hex_number (self) on <self:AHexIntExpr> */
412 var2 = self->attrs[COLOR_nit__parser_nodes__AHexIntExpr___n_hex_number].val; /* _n_hex_number on <self:AHexIntExpr> */
413 if (unlikely(var2 == NULL)) {
414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_number");
415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2520);
416 fatal_exit(1);
417 }
418 var = var2;
419 RET_LABEL1:(void)0;
420 }
421 }
422 {
423 var3 = nit__lexer_work___Token___text(var);
424 }
425 {
426 var4 = standard___standard__Text___substring_from(var3, 2l);
427 }
428 {
429 var5 = nit__literal___standard__Text___remove_underscores(var4);
430 }
431 var_s = var5;
432 {
433 var6 = standard___standard__Text___is_empty(var_s);
434 }
435 if (var6){
436 {
437 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
438 var9 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
439 if (unlikely(var9 == NULL)) {
440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
441 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
442 fatal_exit(1);
443 }
444 var7 = var9;
445 RET_LABEL8:(void)0;
446 }
447 }
448 {
449 { /* Inline parser_nodes#ANode#location (self) on <self:AHexIntExpr> */
450 var12 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AHexIntExpr> */
451 if (unlikely(var12 == NULL)) {
452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
453 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
454 fatal_exit(1);
455 }
456 var10 = var12;
457 RET_LABEL11:(void)0;
458 }
459 }
460 if (likely(varonce!=NULL)) {
461 var13 = varonce;
462 } else {
463 var14 = "Error: invalid hexadecimal literal";
464 var15 = standard___standard__NativeString___to_s_with_length(var14, 34l);
465 var13 = var15;
466 varonce = var13;
467 }
468 {
469 var16 = nit___nit__ToolContext___error(var7, var10, var13);
470 }
471 goto RET_LABEL;
472 } else {
473 }
474 {
475 var17 = standard___standard__Text___to_hex(var_s);
476 }
477 {
478 { /* Inline literal#AIntExpr#value= (self,var17) on <self:AHexIntExpr> */
479 var19 = (val*)(var17<<2|1);
480 self->attrs[COLOR_nit__literal__AIntExpr___value].val = var19; /* _value on <self:AHexIntExpr> */
481 RET_LABEL18:(void)0;
482 }
483 }
484 RET_LABEL:;
485 }
486 /* method literal#ABinIntExpr#accept_literal for (self: ABinIntExpr, LiteralVisitor) */
487 void nit__literal___ABinIntExpr___ANode__accept_literal(val* self, val* p0) {
488 val* var_v /* var v: LiteralVisitor */;
489 val* var /* : TBinNumber */;
490 val* var2 /* : TBinNumber */;
491 val* var3 /* : String */;
492 val* var4 /* : Text */;
493 val* var5 /* : Text */;
494 val* var_s /* var s: Text */;
495 short int var6 /* : Bool */;
496 val* var7 /* : ToolContext */;
497 val* var9 /* : ToolContext */;
498 val* var10 /* : Location */;
499 val* var12 /* : Location */;
500 static val* varonce;
501 val* var13 /* : String */;
502 char* var14 /* : NativeString */;
503 val* var15 /* : FlatString */;
504 val* var16 /* : Message */;
505 long var17 /* : Int */;
506 val* var19 /* : nullable Int */;
507 var_v = p0;
508 {
509 { /* Inline parser_nodes#ABinIntExpr#n_bin_number (self) on <self:ABinIntExpr> */
510 var2 = self->attrs[COLOR_nit__parser_nodes__ABinIntExpr___n_bin_number].val; /* _n_bin_number on <self:ABinIntExpr> */
511 if (unlikely(var2 == NULL)) {
512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_bin_number");
513 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2528);
514 fatal_exit(1);
515 }
516 var = var2;
517 RET_LABEL1:(void)0;
518 }
519 }
520 {
521 var3 = nit__lexer_work___Token___text(var);
522 }
523 {
524 var4 = standard___standard__Text___substring_from(var3, 2l);
525 }
526 {
527 var5 = nit__literal___standard__Text___remove_underscores(var4);
528 }
529 var_s = var5;
530 {
531 var6 = standard___standard__Text___is_empty(var_s);
532 }
533 if (var6){
534 {
535 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
536 var9 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
537 if (unlikely(var9 == NULL)) {
538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
539 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
540 fatal_exit(1);
541 }
542 var7 = var9;
543 RET_LABEL8:(void)0;
544 }
545 }
546 {
547 { /* Inline parser_nodes#ANode#location (self) on <self:ABinIntExpr> */
548 var12 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:ABinIntExpr> */
549 if (unlikely(var12 == NULL)) {
550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
551 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
552 fatal_exit(1);
553 }
554 var10 = var12;
555 RET_LABEL11:(void)0;
556 }
557 }
558 if (likely(varonce!=NULL)) {
559 var13 = varonce;
560 } else {
561 var14 = "Error: invalid binary literal";
562 var15 = standard___standard__NativeString___to_s_with_length(var14, 29l);
563 var13 = var15;
564 varonce = var13;
565 }
566 {
567 var16 = nit___nit__ToolContext___error(var7, var10, var13);
568 }
569 goto RET_LABEL;
570 } else {
571 }
572 {
573 var17 = standard___standard__Text___to_bin(var_s);
574 }
575 {
576 { /* Inline literal#AIntExpr#value= (self,var17) on <self:ABinIntExpr> */
577 var19 = (val*)(var17<<2|1);
578 self->attrs[COLOR_nit__literal__AIntExpr___value].val = var19; /* _value on <self:ABinIntExpr> */
579 RET_LABEL18:(void)0;
580 }
581 }
582 RET_LABEL:;
583 }
584 /* method literal#AOctIntExpr#accept_literal for (self: AOctIntExpr, LiteralVisitor) */
585 void nit__literal___AOctIntExpr___ANode__accept_literal(val* self, val* p0) {
586 val* var_v /* var v: LiteralVisitor */;
587 val* var /* : TOctNumber */;
588 val* var2 /* : TOctNumber */;
589 val* var3 /* : String */;
590 val* var4 /* : Text */;
591 val* var5 /* : Text */;
592 val* var_s /* var s: Text */;
593 short int var6 /* : Bool */;
594 val* var7 /* : ToolContext */;
595 val* var9 /* : ToolContext */;
596 val* var10 /* : Location */;
597 val* var12 /* : Location */;
598 static val* varonce;
599 val* var13 /* : String */;
600 char* var14 /* : NativeString */;
601 val* var15 /* : FlatString */;
602 val* var16 /* : Message */;
603 long var17 /* : Int */;
604 val* var19 /* : nullable Int */;
605 var_v = p0;
606 {
607 { /* Inline parser_nodes#AOctIntExpr#n_oct_number (self) on <self:AOctIntExpr> */
608 var2 = self->attrs[COLOR_nit__parser_nodes__AOctIntExpr___n_oct_number].val; /* _n_oct_number on <self:AOctIntExpr> */
609 if (unlikely(var2 == NULL)) {
610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_oct_number");
611 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2536);
612 fatal_exit(1);
613 }
614 var = var2;
615 RET_LABEL1:(void)0;
616 }
617 }
618 {
619 var3 = nit__lexer_work___Token___text(var);
620 }
621 {
622 var4 = standard___standard__Text___substring_from(var3, 2l);
623 }
624 {
625 var5 = nit__literal___standard__Text___remove_underscores(var4);
626 }
627 var_s = var5;
628 {
629 var6 = standard___standard__Text___is_empty(var_s);
630 }
631 if (var6){
632 {
633 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
634 var9 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
635 if (unlikely(var9 == NULL)) {
636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
637 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
638 fatal_exit(1);
639 }
640 var7 = var9;
641 RET_LABEL8:(void)0;
642 }
643 }
644 {
645 { /* Inline parser_nodes#ANode#location (self) on <self:AOctIntExpr> */
646 var12 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AOctIntExpr> */
647 if (unlikely(var12 == NULL)) {
648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
650 fatal_exit(1);
651 }
652 var10 = var12;
653 RET_LABEL11:(void)0;
654 }
655 }
656 if (likely(varonce!=NULL)) {
657 var13 = varonce;
658 } else {
659 var14 = "Error: invalid octal literal";
660 var15 = standard___standard__NativeString___to_s_with_length(var14, 28l);
661 var13 = var15;
662 varonce = var13;
663 }
664 {
665 var16 = nit___nit__ToolContext___error(var7, var10, var13);
666 }
667 goto RET_LABEL;
668 } else {
669 }
670 {
671 var17 = standard___standard__Text___to_oct(var_s);
672 }
673 {
674 { /* Inline literal#AIntExpr#value= (self,var17) on <self:AOctIntExpr> */
675 var19 = (val*)(var17<<2|1);
676 self->attrs[COLOR_nit__literal__AIntExpr___value].val = var19; /* _value on <self:AOctIntExpr> */
677 RET_LABEL18:(void)0;
678 }
679 }
680 RET_LABEL:;
681 }
682 /* method literal#AByteExpr#value for (self: AByteExpr): nullable Byte */
683 val* nit__literal___AByteExpr___value(val* self) {
684 val* var /* : nullable Byte */;
685 val* var1 /* : nullable Byte */;
686 var1 = self->attrs[COLOR_nit__literal__AByteExpr___value].val; /* _value on <self:AByteExpr> */
687 var = var1;
688 RET_LABEL:;
689 return var;
690 }
691 /* method literal#AByteExpr#value= for (self: AByteExpr, nullable Byte) */
692 void nit__literal___AByteExpr___value_61d(val* self, val* p0) {
693 self->attrs[COLOR_nit__literal__AByteExpr___value].val = p0; /* _value on <self:AByteExpr> */
694 RET_LABEL:;
695 }
696 /* method literal#ADecByteExpr#accept_literal for (self: ADecByteExpr, LiteralVisitor) */
697 void nit__literal___ADecByteExpr___ANode__accept_literal(val* self, val* p0) {
698 val* var_v /* var v: LiteralVisitor */;
699 val* var /* : TBytenum */;
700 val* var2 /* : TBytenum */;
701 val* var3 /* : String */;
702 val* var_t /* var t: String */;
703 long var4 /* : Int */;
704 long var5 /* : Int */;
705 short int var7 /* : Bool */;
706 int cltype;
707 int idtype;
708 const char* var_class_name;
709 long var8 /* : Int */;
710 val* var9 /* : Text */;
711 long var10 /* : Int */;
712 unsigned char var11 /* : Byte */;
713 unsigned char var13 /* : Byte */;
714 val* var15 /* : nullable Byte */;
715 var_v = p0;
716 {
717 { /* Inline parser_nodes#ADecByteExpr#n_bytenum (self) on <self:ADecByteExpr> */
718 var2 = self->attrs[COLOR_nit__parser_nodes__ADecByteExpr___n_bytenum].val; /* _n_bytenum on <self:ADecByteExpr> */
719 if (unlikely(var2 == NULL)) {
720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_bytenum");
721 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2549);
722 fatal_exit(1);
723 }
724 var = var2;
725 RET_LABEL1:(void)0;
726 }
727 }
728 {
729 var3 = nit__lexer_work___Token___text(var);
730 }
731 var_t = var3;
732 {
733 var4 = ((long(*)(val* self))(var_t->class->vft[COLOR_standard__string__Text__length]))(var_t); /* length on <var_t:String>*/
734 }
735 {
736 { /* Inline kernel#Int#- (var4,2l) on <var4:Int> */
737 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
738 /* <2l:Int> isa OTHER */
739 var7 = 1; /* easy <2l:Int> isa OTHER*/
740 if (unlikely(!var7)) {
741 var_class_name = type_standard__Int.name;
742 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
743 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
744 fatal_exit(1);
745 }
746 var8 = var4 - 2l;
747 var5 = var8;
748 goto RET_LABEL6;
749 RET_LABEL6:(void)0;
750 }
751 }
752 {
753 var9 = ((val*(*)(val* self, long p0, long p1))(var_t->class->vft[COLOR_standard__string__Text__substring]))(var_t, 0l, var5); /* substring on <var_t:String>*/
754 }
755 {
756 var10 = standard___standard__Text___to_i(var9);
757 }
758 {
759 { /* Inline kernel#Int#to_b (var10) on <var10:Int> */
760 var13 = (unsigned char)var10;
761 var11 = var13;
762 goto RET_LABEL12;
763 RET_LABEL12:(void)0;
764 }
765 }
766 {
767 { /* Inline literal#AByteExpr#value= (self,var11) on <self:ADecByteExpr> */
768 var15 = BOX_standard__Byte(var11); /* autobox from Byte to nullable Byte */
769 self->attrs[COLOR_nit__literal__AByteExpr___value].val = var15; /* _value on <self:ADecByteExpr> */
770 RET_LABEL14:(void)0;
771 }
772 }
773 RET_LABEL:;
774 }
775 /* method literal#AHexByteExpr#accept_literal for (self: AHexByteExpr, LiteralVisitor) */
776 void nit__literal___AHexByteExpr___ANode__accept_literal(val* self, val* p0) {
777 val* var_v /* var v: LiteralVisitor */;
778 val* var /* : THexBytenum */;
779 val* var2 /* : THexBytenum */;
780 val* var3 /* : String */;
781 val* var_t /* var t: String */;
782 long var4 /* : Int */;
783 long var5 /* : Int */;
784 short int var7 /* : Bool */;
785 int cltype;
786 int idtype;
787 const char* var_class_name;
788 long var8 /* : Int */;
789 val* var9 /* : Text */;
790 val* var10 /* : Text */;
791 val* var_s /* var s: Text */;
792 short int var11 /* : Bool */;
793 val* var12 /* : ToolContext */;
794 val* var14 /* : ToolContext */;
795 val* var15 /* : Location */;
796 val* var17 /* : Location */;
797 static val* varonce;
798 val* var18 /* : String */;
799 char* var19 /* : NativeString */;
800 val* var20 /* : FlatString */;
801 val* var21 /* : Message */;
802 long var22 /* : Int */;
803 unsigned char var23 /* : Byte */;
804 unsigned char var25 /* : Byte */;
805 val* var27 /* : nullable Byte */;
806 var_v = p0;
807 {
808 { /* Inline parser_nodes#AHexByteExpr#n_hex_bytenum (self) on <self:AHexByteExpr> */
809 var2 = self->attrs[COLOR_nit__parser_nodes__AHexByteExpr___n_hex_bytenum].val; /* _n_hex_bytenum on <self:AHexByteExpr> */
810 if (unlikely(var2 == NULL)) {
811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_bytenum");
812 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2557);
813 fatal_exit(1);
814 }
815 var = var2;
816 RET_LABEL1:(void)0;
817 }
818 }
819 {
820 var3 = nit__lexer_work___Token___text(var);
821 }
822 var_t = var3;
823 {
824 var4 = ((long(*)(val* self))(var_t->class->vft[COLOR_standard__string__Text__length]))(var_t); /* length on <var_t:String>*/
825 }
826 {
827 { /* Inline kernel#Int#- (var4,4l) on <var4:Int> */
828 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
829 /* <4l:Int> isa OTHER */
830 var7 = 1; /* easy <4l:Int> isa OTHER*/
831 if (unlikely(!var7)) {
832 var_class_name = type_standard__Int.name;
833 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
834 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
835 fatal_exit(1);
836 }
837 var8 = var4 - 4l;
838 var5 = var8;
839 goto RET_LABEL6;
840 RET_LABEL6:(void)0;
841 }
842 }
843 {
844 var9 = ((val*(*)(val* self, long p0, long p1))(var_t->class->vft[COLOR_standard__string__Text__substring]))(var_t, 2l, var5); /* substring on <var_t:String>*/
845 }
846 {
847 var10 = nit__literal___standard__Text___remove_underscores(var9);
848 }
849 var_s = var10;
850 {
851 var11 = standard___standard__Text___is_empty(var_s);
852 }
853 if (var11){
854 {
855 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
856 var14 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
857 if (unlikely(var14 == NULL)) {
858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
859 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
860 fatal_exit(1);
861 }
862 var12 = var14;
863 RET_LABEL13:(void)0;
864 }
865 }
866 {
867 { /* Inline parser_nodes#ANode#location (self) on <self:AHexByteExpr> */
868 var17 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AHexByteExpr> */
869 if (unlikely(var17 == NULL)) {
870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
871 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
872 fatal_exit(1);
873 }
874 var15 = var17;
875 RET_LABEL16:(void)0;
876 }
877 }
878 if (likely(varonce!=NULL)) {
879 var18 = varonce;
880 } else {
881 var19 = "Error: invalid hexadecimal literal";
882 var20 = standard___standard__NativeString___to_s_with_length(var19, 34l);
883 var18 = var20;
884 varonce = var18;
885 }
886 {
887 var21 = nit___nit__ToolContext___error(var12, var15, var18);
888 }
889 goto RET_LABEL;
890 } else {
891 }
892 {
893 var22 = standard___standard__Text___to_hex(var_s);
894 }
895 {
896 { /* Inline kernel#Int#to_b (var22) on <var22:Int> */
897 var25 = (unsigned char)var22;
898 var23 = var25;
899 goto RET_LABEL24;
900 RET_LABEL24:(void)0;
901 }
902 }
903 {
904 { /* Inline literal#AByteExpr#value= (self,var23) on <self:AHexByteExpr> */
905 var27 = BOX_standard__Byte(var23); /* autobox from Byte to nullable Byte */
906 self->attrs[COLOR_nit__literal__AByteExpr___value].val = var27; /* _value on <self:AHexByteExpr> */
907 RET_LABEL26:(void)0;
908 }
909 }
910 RET_LABEL:;
911 }
912 /* method literal#ABinByteExpr#accept_literal for (self: ABinByteExpr, LiteralVisitor) */
913 void nit__literal___ABinByteExpr___ANode__accept_literal(val* self, val* p0) {
914 val* var_v /* var v: LiteralVisitor */;
915 val* var /* : TBinBytenum */;
916 val* var2 /* : TBinBytenum */;
917 val* var3 /* : String */;
918 val* var_t /* var t: String */;
919 long var4 /* : Int */;
920 long var5 /* : Int */;
921 short int var7 /* : Bool */;
922 int cltype;
923 int idtype;
924 const char* var_class_name;
925 long var8 /* : Int */;
926 val* var9 /* : Text */;
927 val* var10 /* : Text */;
928 val* var_s /* var s: Text */;
929 short int var11 /* : Bool */;
930 val* var12 /* : ToolContext */;
931 val* var14 /* : ToolContext */;
932 val* var15 /* : Location */;
933 val* var17 /* : Location */;
934 static val* varonce;
935 val* var18 /* : String */;
936 char* var19 /* : NativeString */;
937 val* var20 /* : FlatString */;
938 val* var21 /* : Message */;
939 long var22 /* : Int */;
940 unsigned char var23 /* : Byte */;
941 unsigned char var25 /* : Byte */;
942 val* var27 /* : nullable Byte */;
943 var_v = p0;
944 {
945 { /* Inline parser_nodes#ABinByteExpr#n_bin_bytenum (self) on <self:ABinByteExpr> */
946 var2 = self->attrs[COLOR_nit__parser_nodes__ABinByteExpr___n_bin_bytenum].val; /* _n_bin_bytenum on <self:ABinByteExpr> */
947 if (unlikely(var2 == NULL)) {
948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_bin_bytenum");
949 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2565);
950 fatal_exit(1);
951 }
952 var = var2;
953 RET_LABEL1:(void)0;
954 }
955 }
956 {
957 var3 = nit__lexer_work___Token___text(var);
958 }
959 var_t = var3;
960 {
961 var4 = ((long(*)(val* self))(var_t->class->vft[COLOR_standard__string__Text__length]))(var_t); /* length on <var_t:String>*/
962 }
963 {
964 { /* Inline kernel#Int#- (var4,4l) on <var4:Int> */
965 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
966 /* <4l:Int> isa OTHER */
967 var7 = 1; /* easy <4l:Int> isa OTHER*/
968 if (unlikely(!var7)) {
969 var_class_name = type_standard__Int.name;
970 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
971 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
972 fatal_exit(1);
973 }
974 var8 = var4 - 4l;
975 var5 = var8;
976 goto RET_LABEL6;
977 RET_LABEL6:(void)0;
978 }
979 }
980 {
981 var9 = ((val*(*)(val* self, long p0, long p1))(var_t->class->vft[COLOR_standard__string__Text__substring]))(var_t, 2l, var5); /* substring on <var_t:String>*/
982 }
983 {
984 var10 = nit__literal___standard__Text___remove_underscores(var9);
985 }
986 var_s = var10;
987 {
988 var11 = standard___standard__Text___is_empty(var_s);
989 }
990 if (var11){
991 {
992 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
993 var14 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
994 if (unlikely(var14 == NULL)) {
995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
996 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
997 fatal_exit(1);
998 }
999 var12 = var14;
1000 RET_LABEL13:(void)0;
1001 }
1002 }
1003 {
1004 { /* Inline parser_nodes#ANode#location (self) on <self:ABinByteExpr> */
1005 var17 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:ABinByteExpr> */
1006 if (unlikely(var17 == NULL)) {
1007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1008 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
1009 fatal_exit(1);
1010 }
1011 var15 = var17;
1012 RET_LABEL16:(void)0;
1013 }
1014 }
1015 if (likely(varonce!=NULL)) {
1016 var18 = varonce;
1017 } else {
1018 var19 = "Error: invalid binary literal";
1019 var20 = standard___standard__NativeString___to_s_with_length(var19, 29l);
1020 var18 = var20;
1021 varonce = var18;
1022 }
1023 {
1024 var21 = nit___nit__ToolContext___error(var12, var15, var18);
1025 }
1026 goto RET_LABEL;
1027 } else {
1028 }
1029 {
1030 var22 = standard___standard__Text___to_bin(var_s);
1031 }
1032 {
1033 { /* Inline kernel#Int#to_b (var22) on <var22:Int> */
1034 var25 = (unsigned char)var22;
1035 var23 = var25;
1036 goto RET_LABEL24;
1037 RET_LABEL24:(void)0;
1038 }
1039 }
1040 {
1041 { /* Inline literal#AByteExpr#value= (self,var23) on <self:ABinByteExpr> */
1042 var27 = BOX_standard__Byte(var23); /* autobox from Byte to nullable Byte */
1043 self->attrs[COLOR_nit__literal__AByteExpr___value].val = var27; /* _value on <self:ABinByteExpr> */
1044 RET_LABEL26:(void)0;
1045 }
1046 }
1047 RET_LABEL:;
1048 }
1049 /* method literal#AOctByteExpr#accept_literal for (self: AOctByteExpr, LiteralVisitor) */
1050 void nit__literal___AOctByteExpr___ANode__accept_literal(val* self, val* p0) {
1051 val* var_v /* var v: LiteralVisitor */;
1052 val* var /* : TOctBytenum */;
1053 val* var2 /* : TOctBytenum */;
1054 val* var3 /* : String */;
1055 val* var_t /* var t: String */;
1056 long var4 /* : Int */;
1057 long var5 /* : Int */;
1058 short int var7 /* : Bool */;
1059 int cltype;
1060 int idtype;
1061 const char* var_class_name;
1062 long var8 /* : Int */;
1063 val* var9 /* : Text */;
1064 val* var10 /* : Text */;
1065 val* var_s /* var s: Text */;
1066 short int var11 /* : Bool */;
1067 val* var12 /* : ToolContext */;
1068 val* var14 /* : ToolContext */;
1069 val* var15 /* : Location */;
1070 val* var17 /* : Location */;
1071 static val* varonce;
1072 val* var18 /* : String */;
1073 char* var19 /* : NativeString */;
1074 val* var20 /* : FlatString */;
1075 val* var21 /* : Message */;
1076 long var22 /* : Int */;
1077 unsigned char var23 /* : Byte */;
1078 unsigned char var25 /* : Byte */;
1079 val* var27 /* : nullable Byte */;
1080 var_v = p0;
1081 {
1082 { /* Inline parser_nodes#AOctByteExpr#n_oct_bytenum (self) on <self:AOctByteExpr> */
1083 var2 = self->attrs[COLOR_nit__parser_nodes__AOctByteExpr___n_oct_bytenum].val; /* _n_oct_bytenum on <self:AOctByteExpr> */
1084 if (unlikely(var2 == NULL)) {
1085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_oct_bytenum");
1086 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2573);
1087 fatal_exit(1);
1088 }
1089 var = var2;
1090 RET_LABEL1:(void)0;
1091 }
1092 }
1093 {
1094 var3 = nit__lexer_work___Token___text(var);
1095 }
1096 var_t = var3;
1097 {
1098 var4 = ((long(*)(val* self))(var_t->class->vft[COLOR_standard__string__Text__length]))(var_t); /* length on <var_t:String>*/
1099 }
1100 {
1101 { /* Inline kernel#Int#- (var4,4l) on <var4:Int> */
1102 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
1103 /* <4l:Int> isa OTHER */
1104 var7 = 1; /* easy <4l:Int> isa OTHER*/
1105 if (unlikely(!var7)) {
1106 var_class_name = type_standard__Int.name;
1107 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1108 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1109 fatal_exit(1);
1110 }
1111 var8 = var4 - 4l;
1112 var5 = var8;
1113 goto RET_LABEL6;
1114 RET_LABEL6:(void)0;
1115 }
1116 }
1117 {
1118 var9 = ((val*(*)(val* self, long p0, long p1))(var_t->class->vft[COLOR_standard__string__Text__substring]))(var_t, 2l, var5); /* substring on <var_t:String>*/
1119 }
1120 {
1121 var10 = nit__literal___standard__Text___remove_underscores(var9);
1122 }
1123 var_s = var10;
1124 {
1125 var11 = standard___standard__Text___is_empty(var_s);
1126 }
1127 if (var11){
1128 {
1129 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
1130 var14 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
1131 if (unlikely(var14 == NULL)) {
1132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1133 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
1134 fatal_exit(1);
1135 }
1136 var12 = var14;
1137 RET_LABEL13:(void)0;
1138 }
1139 }
1140 {
1141 { /* Inline parser_nodes#ANode#location (self) on <self:AOctByteExpr> */
1142 var17 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AOctByteExpr> */
1143 if (unlikely(var17 == NULL)) {
1144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
1146 fatal_exit(1);
1147 }
1148 var15 = var17;
1149 RET_LABEL16:(void)0;
1150 }
1151 }
1152 if (likely(varonce!=NULL)) {
1153 var18 = varonce;
1154 } else {
1155 var19 = "Error: invalid octal literal";
1156 var20 = standard___standard__NativeString___to_s_with_length(var19, 28l);
1157 var18 = var20;
1158 varonce = var18;
1159 }
1160 {
1161 var21 = nit___nit__ToolContext___error(var12, var15, var18);
1162 }
1163 goto RET_LABEL;
1164 } else {
1165 }
1166 {
1167 var22 = standard___standard__Text___to_oct(var_s);
1168 }
1169 {
1170 { /* Inline kernel#Int#to_b (var22) on <var22:Int> */
1171 var25 = (unsigned char)var22;
1172 var23 = var25;
1173 goto RET_LABEL24;
1174 RET_LABEL24:(void)0;
1175 }
1176 }
1177 {
1178 { /* Inline literal#AByteExpr#value= (self,var23) on <self:AOctByteExpr> */
1179 var27 = BOX_standard__Byte(var23); /* autobox from Byte to nullable Byte */
1180 self->attrs[COLOR_nit__literal__AByteExpr___value].val = var27; /* _value on <self:AOctByteExpr> */
1181 RET_LABEL26:(void)0;
1182 }
1183 }
1184 RET_LABEL:;
1185 }
1186 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
1187 void nit__literal___AFloatExpr___value_61d(val* self, val* p0) {
1188 self->attrs[COLOR_nit__literal__AFloatExpr___value].val = p0; /* _value on <self:AFloatExpr> */
1189 RET_LABEL:;
1190 }
1191 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
1192 void nit__literal___AFloatExpr___ANode__accept_literal(val* self, val* p0) {
1193 val* var_v /* var v: LiteralVisitor */;
1194 val* var /* : TFloat */;
1195 val* var2 /* : TFloat */;
1196 val* var3 /* : String */;
1197 double var4 /* : Float */;
1198 val* var6 /* : nullable Float */;
1199 var_v = p0;
1200 {
1201 { /* Inline parser_nodes#AFloatExpr#n_float (self) on <self:AFloatExpr> */
1202 var2 = self->attrs[COLOR_nit__parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
1203 if (unlikely(var2 == NULL)) {
1204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
1205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2581);
1206 fatal_exit(1);
1207 }
1208 var = var2;
1209 RET_LABEL1:(void)0;
1210 }
1211 }
1212 {
1213 var3 = nit__lexer_work___Token___text(var);
1214 }
1215 {
1216 var4 = standard___standard__Text___to_f(var3);
1217 }
1218 {
1219 { /* Inline literal#AFloatExpr#value= (self,var4) on <self:AFloatExpr> */
1220 var6 = BOX_standard__Float(var4); /* autobox from Float to nullable Float */
1221 self->attrs[COLOR_nit__literal__AFloatExpr___value].val = var6; /* _value on <self:AFloatExpr> */
1222 RET_LABEL5:(void)0;
1223 }
1224 }
1225 RET_LABEL:;
1226 }
1227 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
1228 val* nit__literal___ACharExpr___value(val* self) {
1229 val* var /* : nullable Char */;
1230 val* var1 /* : nullable Char */;
1231 var1 = self->attrs[COLOR_nit__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
1232 var = var1;
1233 RET_LABEL:;
1234 return var;
1235 }
1236 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
1237 void nit__literal___ACharExpr___value_61d(val* self, val* p0) {
1238 self->attrs[COLOR_nit__literal__ACharExpr___value].val = p0; /* _value on <self:ACharExpr> */
1239 RET_LABEL:;
1240 }
1241 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
1242 void nit__literal___ACharExpr___ANode__accept_literal(val* self, val* p0) {
1243 val* var_v /* var v: LiteralVisitor */;
1244 val* var /* : TChar */;
1245 val* var2 /* : TChar */;
1246 val* var3 /* : String */;
1247 val* var4 /* : String */;
1248 val* var_txt /* var txt: String */;
1249 long var5 /* : Int */;
1250 short int var6 /* : Bool */;
1251 short int var8 /* : Bool */;
1252 short int var9 /* : Bool */;
1253 val* var10 /* : ToolContext */;
1254 val* var12 /* : ToolContext */;
1255 val* var13 /* : Location */;
1256 val* var14 /* : NativeArray[String] */;
1257 static val* varonce;
1258 static val* varonce15;
1259 val* var16 /* : String */;
1260 char* var17 /* : NativeString */;
1261 val* var18 /* : FlatString */;
1262 static val* varonce19;
1263 val* var20 /* : String */;
1264 char* var21 /* : NativeString */;
1265 val* var22 /* : FlatString */;
1266 val* var23 /* : String */;
1267 val* var24 /* : Message */;
1268 val* var25 /* : SequenceRead[Char] */;
1269 val* var26 /* : nullable Object */;
1270 var_v = p0;
1271 {
1272 { /* Inline parser_nodes#ACharExpr#n_char (self) on <self:ACharExpr> */
1273 var2 = self->attrs[COLOR_nit__parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
1274 if (unlikely(var2 == NULL)) {
1275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
1276 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2589);
1277 fatal_exit(1);
1278 }
1279 var = var2;
1280 RET_LABEL1:(void)0;
1281 }
1282 }
1283 {
1284 var3 = nit__lexer_work___Token___text(var);
1285 }
1286 {
1287 var4 = standard___standard__Text___unescape_nit(var3);
1288 }
1289 var_txt = var4;
1290 {
1291 var5 = ((long(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__length]))(var_txt); /* length on <var_txt:String>*/
1292 }
1293 {
1294 { /* Inline kernel#Int#!= (var5,3l) on <var5:Int> */
1295 var8 = var5 == 3l;
1296 var9 = !var8;
1297 var6 = var9;
1298 goto RET_LABEL7;
1299 RET_LABEL7:(void)0;
1300 }
1301 }
1302 if (var6){
1303 {
1304 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
1305 var12 = var_v->attrs[COLOR_nit__literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
1306 if (unlikely(var12 == NULL)) {
1307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1308 PRINT_ERROR(" (%s:%d)\n", FILE_nit__literal, 46);
1309 fatal_exit(1);
1310 }
1311 var10 = var12;
1312 RET_LABEL11:(void)0;
1313 }
1314 }
1315 {
1316 var13 = nit___nit__ANode___hot_location(self);
1317 }
1318 if (unlikely(varonce==NULL)) {
1319 var14 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1320 if (likely(varonce15!=NULL)) {
1321 var16 = varonce15;
1322 } else {
1323 var17 = "Syntax Error: invalid character literal `";
1324 var18 = standard___standard__NativeString___to_s_with_length(var17, 41l);
1325 var16 = var18;
1326 varonce15 = var16;
1327 }
1328 ((struct instance_standard__NativeArray*)var14)->values[0]=var16;
1329 if (likely(varonce19!=NULL)) {
1330 var20 = varonce19;
1331 } else {
1332 var21 = "`.";
1333 var22 = standard___standard__NativeString___to_s_with_length(var21, 2l);
1334 var20 = var22;
1335 varonce19 = var20;
1336 }
1337 ((struct instance_standard__NativeArray*)var14)->values[2]=var20;
1338 } else {
1339 var14 = varonce;
1340 varonce = NULL;
1341 }
1342 ((struct instance_standard__NativeArray*)var14)->values[1]=var_txt;
1343 {
1344 var23 = ((val*(*)(val* self))(var14->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
1345 }
1346 varonce = var14;
1347 {
1348 var24 = nit___nit__ToolContext___error(var10, var13, var23);
1349 }
1350 goto RET_LABEL;
1351 } else {
1352 }
1353 {
1354 var25 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1355 }
1356 {
1357 var26 = ((val*(*)(val* self, long p0))((((long)var25&3)?class_info[((long)var25&3)]:var25->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var25, 1l); /* [] on <var25:SequenceRead[Char]>*/
1358 }
1359 {
1360 { /* Inline literal#ACharExpr#value= (self,var26) on <self:ACharExpr> */
1361 self->attrs[COLOR_nit__literal__ACharExpr___value].val = var26; /* _value on <self:ACharExpr> */
1362 RET_LABEL27:(void)0;
1363 }
1364 }
1365 RET_LABEL:;
1366 }
1367 /* method literal#AStringFormExpr#value for (self: AStringFormExpr): nullable String */
1368 val* nit__literal___AStringFormExpr___value(val* self) {
1369 val* var /* : nullable String */;
1370 val* var1 /* : nullable String */;
1371 var1 = self->attrs[COLOR_nit__literal__AStringFormExpr___value].val; /* _value on <self:AStringFormExpr> */
1372 var = var1;
1373 RET_LABEL:;
1374 return var;
1375 }
1376 /* method literal#AStringFormExpr#value= for (self: AStringFormExpr, nullable String) */
1377 void nit__literal___AStringFormExpr___value_61d(val* self, val* p0) {
1378 self->attrs[COLOR_nit__literal__AStringFormExpr___value].val = p0; /* _value on <self:AStringFormExpr> */
1379 RET_LABEL:;
1380 }
1381 /* method literal#AStringFormExpr#accept_literal for (self: AStringFormExpr, LiteralVisitor) */
1382 void nit__literal___AStringFormExpr___ANode__accept_literal(val* self, val* p0) {
1383 val* var_v /* var v: LiteralVisitor */;
1384 val* var /* : Token */;
1385 val* var2 /* : Token */;
1386 val* var3 /* : String */;
1387 val* var_txt /* var txt: String */;
1388 long var_behead /* var behead: Int */;
1389 long var_betail /* var betail: Int */;
1390 short int var4 /* : Bool */;
1391 val* var5 /* : SequenceRead[Char] */;
1392 val* var6 /* : nullable Object */;
1393 val* var7 /* : SequenceRead[Char] */;
1394 val* var8 /* : nullable Object */;
1395 short int var9 /* : Bool */;
1396 short int var11 /* : Bool */;
1397 short int var_ /* var : Bool */;
1398 long var12 /* : Int */;
1399 short int var13 /* : Bool */;
1400 short int var15 /* : Bool */;
1401 int cltype;
1402 int idtype;
1403 const char* var_class_name;
1404 short int var16 /* : Bool */;
1405 short int var17 /* : Bool */;
1406 val* var18 /* : SequenceRead[Char] */;
1407 val* var19 /* : nullable Object */;
1408 short int var20 /* : Bool */;
1409 short int var22 /* : Bool */;
1410 uint32_t var23 /* : Char */;
1411 short int var_24 /* var : Bool */;
1412 val* var25 /* : SequenceRead[Char] */;
1413 val* var26 /* : nullable Object */;
1414 short int var27 /* : Bool */;
1415 short int var29 /* : Bool */;
1416 uint32_t var30 /* : Char */;
1417 long var31 /* : Int */;
1418 long var32 /* : Int */;
1419 short int var34 /* : Bool */;
1420 int cltype35;
1421 int idtype36;
1422 const char* var_class_name37;
1423 long var38 /* : Int */;
1424 long var39 /* : Int */;
1425 short int var41 /* : Bool */;
1426 int cltype42;
1427 int idtype43;
1428 const char* var_class_name44;
1429 long var45 /* : Int */;
1430 val* var46 /* : Text */;
1431 val* var47 /* : String */;
1432 var_v = p0;
1433 {
1434 { /* Inline parser_nodes#AStringFormExpr#n_string (self) on <self:AStringFormExpr> */
1435 var2 = self->attrs[COLOR_nit__parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringFormExpr> */
1436 if (unlikely(var2 == NULL)) {
1437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
1438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2597);
1439 fatal_exit(1);
1440 }
1441 var = var2;
1442 RET_LABEL1:(void)0;
1443 }
1444 }
1445 {
1446 var3 = nit__lexer_work___Token___text(var);
1447 }
1448 var_txt = var3;
1449 var_behead = 1l;
1450 var_betail = 1l;
1451 {
1452 var5 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1453 }
1454 {
1455 var6 = ((val*(*)(val* self, long p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var5, 0l); /* [] on <var5:SequenceRead[Char]>*/
1456 }
1457 {
1458 var7 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1459 }
1460 {
1461 var8 = ((val*(*)(val* self, long p0))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var7, 1l); /* [] on <var7:SequenceRead[Char]>*/
1462 }
1463 {
1464 { /* Inline kernel#Char#== (var6,var8) on <var6:nullable Object(Char)> */
1465 var11 = var6 == var8;
1466 var9 = var11;
1467 goto RET_LABEL10;
1468 RET_LABEL10:(void)0;
1469 }
1470 }
1471 var_ = var9;
1472 if (var9){
1473 {
1474 var12 = ((long(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__length]))(var_txt); /* length on <var_txt:String>*/
1475 }
1476 {
1477 { /* Inline kernel#Int#>= (var12,6l) on <var12:Int> */
1478 /* Covariant cast for argument 0 (i) <6l:Int> isa OTHER */
1479 /* <6l:Int> isa OTHER */
1480 var15 = 1; /* easy <6l:Int> isa OTHER*/
1481 if (unlikely(!var15)) {
1482 var_class_name = type_standard__Int.name;
1483 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1484 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1485 fatal_exit(1);
1486 }
1487 var16 = var12 >= 6l;
1488 var13 = var16;
1489 goto RET_LABEL14;
1490 RET_LABEL14:(void)0;
1491 }
1492 }
1493 var4 = var13;
1494 } else {
1495 var4 = var_;
1496 }
1497 if (var4){
1498 var_behead = 3l;
1499 var_betail = 3l;
1500 {
1501 var18 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1502 }
1503 {
1504 var19 = ((val*(*)(val* self, long p0))((((long)var18&3)?class_info[((long)var18&3)]:var18->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var18, 0l); /* [] on <var18:SequenceRead[Char]>*/
1505 }
1506 {
1507 { /* Inline kernel#Char#== (var19,'\"') on <var19:nullable Object(Char)> */
1508 var23 = (uint32_t)((long)(var19)>>2);
1509 var22 = (var19 != NULL) && (var23 == '\"');
1510 var20 = var22;
1511 goto RET_LABEL21;
1512 RET_LABEL21:(void)0;
1513 }
1514 }
1515 var_24 = var20;
1516 if (var20){
1517 {
1518 var25 = ((val*(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__chars]))(var_txt); /* chars on <var_txt:String>*/
1519 }
1520 {
1521 var26 = ((val*(*)(val* self, long p0))((((long)var25&3)?class_info[((long)var25&3)]:var25->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var25, 3l); /* [] on <var25:SequenceRead[Char]>*/
1522 }
1523 {
1524 { /* Inline kernel#Char#== (var26,'\n') on <var26:nullable Object(Char)> */
1525 var30 = (uint32_t)((long)(var26)>>2);
1526 var29 = (var26 != NULL) && (var30 == '\n');
1527 var27 = var29;
1528 goto RET_LABEL28;
1529 RET_LABEL28:(void)0;
1530 }
1531 }
1532 var17 = var27;
1533 } else {
1534 var17 = var_24;
1535 }
1536 if (var17){
1537 var_behead = 4l;
1538 } else {
1539 }
1540 } else {
1541 }
1542 {
1543 var31 = ((long(*)(val* self))(var_txt->class->vft[COLOR_standard__string__Text__length]))(var_txt); /* length on <var_txt:String>*/
1544 }
1545 {
1546 { /* Inline kernel#Int#- (var31,var_behead) on <var31:Int> */
1547 /* Covariant cast for argument 0 (i) <var_behead:Int> isa OTHER */
1548 /* <var_behead:Int> isa OTHER */
1549 var34 = 1; /* easy <var_behead:Int> isa OTHER*/
1550 if (unlikely(!var34)) {
1551 var_class_name37 = type_standard__Int.name;
1552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
1553 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1554 fatal_exit(1);
1555 }
1556 var38 = var31 - var_behead;
1557 var32 = var38;
1558 goto RET_LABEL33;
1559 RET_LABEL33:(void)0;
1560 }
1561 }
1562 {
1563 { /* Inline kernel#Int#- (var32,var_betail) on <var32:Int> */
1564 /* Covariant cast for argument 0 (i) <var_betail:Int> isa OTHER */
1565 /* <var_betail:Int> isa OTHER */
1566 var41 = 1; /* easy <var_betail:Int> isa OTHER*/
1567 if (unlikely(!var41)) {
1568 var_class_name44 = type_standard__Int.name;
1569 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
1570 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1571 fatal_exit(1);
1572 }
1573 var45 = var32 - var_betail;
1574 var39 = var45;
1575 goto RET_LABEL40;
1576 RET_LABEL40:(void)0;
1577 }
1578 }
1579 {
1580 var46 = ((val*(*)(val* self, long p0, long p1))(var_txt->class->vft[COLOR_standard__string__Text__substring]))(var_txt, var_behead, var39); /* substring on <var_txt:String>*/
1581 }
1582 {
1583 var47 = standard___standard__Text___unescape_nit(var46);
1584 }
1585 {
1586 { /* Inline literal#AStringFormExpr#value= (self,var47) on <self:AStringFormExpr> */
1587 self->attrs[COLOR_nit__literal__AStringFormExpr___value].val = var47; /* _value on <self:AStringFormExpr> */
1588 RET_LABEL48:(void)0;
1589 }
1590 }
1591 RET_LABEL:;
1592 }