nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / literal.sep.1.c
1 #include "literal.sep.0.h"
2 /* method literal#LiteralPhase#process_nmodule for (self: LiteralPhase, AModule) */
3 void literal__LiteralPhase__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_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", "phase.nit", 162);
14 show_backtrace(1);
15 }
16 var = var2;
17 RET_LABEL1:(void)0;
18 }
19 }
20 {
21 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#LiteralPhase#process_nmodule for (self: Object, AModule) */
26 void VIRTUAL_literal__LiteralPhase__process_nmodule(val* self, val* p0) {
27 literal__LiteralPhase__process_nmodule(self, p0); /* Direct call literal#LiteralPhase#process_nmodule on <self:Object(LiteralPhase)>*/
28 RET_LABEL:;
29 }
30 /* method literal#AModule#do_literal for (self: AModule, ToolContext) */
31 void literal__AModule__do_literal(val* self, val* p0) {
32 val* var_toolcontext /* var toolcontext: ToolContext */;
33 val* var /* : LiteralVisitor */;
34 val* var_v /* var v: LiteralVisitor */;
35 var_toolcontext = p0;
36 var = NEW_literal__LiteralVisitor(&type_literal__LiteralVisitor);
37 {
38 literal__LiteralVisitor__init(var, var_toolcontext); /* Direct call literal#LiteralVisitor#init on <var:LiteralVisitor>*/
39 }
40 var_v = var;
41 {
42 parser_nodes__Visitor__enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:LiteralVisitor>*/
43 }
44 RET_LABEL:;
45 }
46 /* method literal#AModule#do_literal for (self: Object, ToolContext) */
47 void VIRTUAL_literal__AModule__do_literal(val* self, val* p0) {
48 literal__AModule__do_literal(self, p0); /* Direct call literal#AModule#do_literal on <self:Object(AModule)>*/
49 RET_LABEL:;
50 }
51 /* method literal#LiteralVisitor#toolcontext for (self: LiteralVisitor): ToolContext */
52 val* literal__LiteralVisitor__toolcontext(val* self) {
53 val* var /* : ToolContext */;
54 val* var1 /* : ToolContext */;
55 var1 = self->attrs[COLOR_literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <self:LiteralVisitor> */
56 if (unlikely(var1 == NULL)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
58 PRINT_ERROR(" (%s:%d)\n", "literal.nit", 45);
59 show_backtrace(1);
60 }
61 var = var1;
62 RET_LABEL:;
63 return var;
64 }
65 /* method literal#LiteralVisitor#toolcontext for (self: Object): ToolContext */
66 val* VIRTUAL_literal__LiteralVisitor__toolcontext(val* self) {
67 val* var /* : ToolContext */;
68 val* var1 /* : ToolContext */;
69 val* var3 /* : ToolContext */;
70 { /* Inline literal#LiteralVisitor#toolcontext (self) on <self:Object(LiteralVisitor)> */
71 var3 = self->attrs[COLOR_literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <self:Object(LiteralVisitor)> */
72 if (unlikely(var3 == NULL)) {
73 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
74 PRINT_ERROR(" (%s:%d)\n", "literal.nit", 45);
75 show_backtrace(1);
76 }
77 var1 = var3;
78 RET_LABEL2:(void)0;
79 }
80 var = var1;
81 RET_LABEL:;
82 return var;
83 }
84 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
85 void literal__LiteralVisitor__toolcontext_61d(val* self, val* p0) {
86 self->attrs[COLOR_literal__LiteralVisitor___toolcontext].val = p0; /* _toolcontext on <self:LiteralVisitor> */
87 RET_LABEL:;
88 }
89 /* method literal#LiteralVisitor#toolcontext= for (self: Object, ToolContext) */
90 void VIRTUAL_literal__LiteralVisitor__toolcontext_61d(val* self, val* p0) {
91 { /* Inline literal#LiteralVisitor#toolcontext= (self,p0) on <self:Object(LiteralVisitor)> */
92 self->attrs[COLOR_literal__LiteralVisitor___toolcontext].val = p0; /* _toolcontext on <self:Object(LiteralVisitor)> */
93 RET_LABEL1:(void)0;
94 }
95 RET_LABEL:;
96 }
97 /* method literal#LiteralVisitor#init for (self: LiteralVisitor, ToolContext) */
98 void literal__LiteralVisitor__init(val* self, val* p0) {
99 val* var_toolcontext /* var toolcontext: ToolContext */;
100 {
101 ((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:LiteralVisitor>*/;
102 }
103 var_toolcontext = p0;
104 {
105 { /* Inline literal#LiteralVisitor#toolcontext= (self,var_toolcontext) on <self:LiteralVisitor> */
106 self->attrs[COLOR_literal__LiteralVisitor___toolcontext].val = var_toolcontext; /* _toolcontext on <self:LiteralVisitor> */
107 RET_LABEL1:(void)0;
108 }
109 }
110 RET_LABEL:;
111 }
112 /* method literal#LiteralVisitor#init for (self: Object, ToolContext) */
113 void VIRTUAL_literal__LiteralVisitor__init(val* self, val* p0) {
114 literal__LiteralVisitor__init(self, p0); /* Direct call literal#LiteralVisitor#init on <self:Object(LiteralVisitor)>*/
115 RET_LABEL:;
116 }
117 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
118 void literal__LiteralVisitor__visit(val* self, val* p0) {
119 val* var_n /* var n: ANode */;
120 var_n = p0;
121 {
122 ((void (*)(val*, val*))(var_n->class->vft[COLOR_literal__ANode__accept_literal]))(var_n, self) /* accept_literal on <var_n:ANode>*/;
123 }
124 {
125 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
126 }
127 RET_LABEL:;
128 }
129 /* method literal#LiteralVisitor#visit for (self: Object, ANode) */
130 void VIRTUAL_literal__LiteralVisitor__visit(val* self, val* p0) {
131 literal__LiteralVisitor__visit(self, p0); /* Direct call literal#LiteralVisitor#visit on <self:Object(LiteralVisitor)>*/
132 RET_LABEL:;
133 }
134 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
135 void literal__ANode__accept_literal(val* self, val* p0) {
136 val* var_v /* var v: LiteralVisitor */;
137 var_v = p0;
138 RET_LABEL:;
139 }
140 /* method literal#ANode#accept_literal for (self: Object, LiteralVisitor) */
141 void VIRTUAL_literal__ANode__accept_literal(val* self, val* p0) {
142 val* var_v /* var v: LiteralVisitor */;
143 { /* Inline literal#ANode#accept_literal (self,p0) on <self:Object(ANode)> */
144 var_v = p0;
145 RET_LABEL1:(void)0;
146 }
147 RET_LABEL:;
148 }
149 /* method literal#AIntExpr#value for (self: AIntExpr): nullable Int */
150 val* literal__AIntExpr__value(val* self) {
151 val* var /* : nullable Int */;
152 val* var1 /* : nullable Int */;
153 var1 = self->attrs[COLOR_literal__AIntExpr___value].val; /* _value on <self:AIntExpr> */
154 var = var1;
155 RET_LABEL:;
156 return var;
157 }
158 /* method literal#AIntExpr#value for (self: Object): nullable Int */
159 val* VIRTUAL_literal__AIntExpr__value(val* self) {
160 val* var /* : nullable Int */;
161 val* var1 /* : nullable Int */;
162 val* var3 /* : nullable Int */;
163 { /* Inline literal#AIntExpr#value (self) on <self:Object(AIntExpr)> */
164 var3 = self->attrs[COLOR_literal__AIntExpr___value].val; /* _value on <self:Object(AIntExpr)> */
165 var1 = var3;
166 RET_LABEL2:(void)0;
167 }
168 var = var1;
169 RET_LABEL:;
170 return var;
171 }
172 /* method literal#AIntExpr#value= for (self: AIntExpr, nullable Int) */
173 void literal__AIntExpr__value_61d(val* self, val* p0) {
174 self->attrs[COLOR_literal__AIntExpr___value].val = p0; /* _value on <self:AIntExpr> */
175 RET_LABEL:;
176 }
177 /* method literal#AIntExpr#value= for (self: Object, nullable Int) */
178 void VIRTUAL_literal__AIntExpr__value_61d(val* self, val* p0) {
179 { /* Inline literal#AIntExpr#value= (self,p0) on <self:Object(AIntExpr)> */
180 self->attrs[COLOR_literal__AIntExpr___value].val = p0; /* _value on <self:Object(AIntExpr)> */
181 RET_LABEL1:(void)0;
182 }
183 RET_LABEL:;
184 }
185 /* method literal#ADecIntExpr#accept_literal for (self: ADecIntExpr, LiteralVisitor) */
186 void literal__ADecIntExpr__accept_literal(val* self, val* p0) {
187 val* var_v /* var v: LiteralVisitor */;
188 val* var /* : TNumber */;
189 val* var2 /* : TNumber */;
190 val* var3 /* : String */;
191 long var4 /* : Int */;
192 val* var6 /* : nullable Int */;
193 var_v = p0;
194 {
195 { /* Inline parser_nodes#ADecIntExpr#n_number (self) on <self:ADecIntExpr> */
196 var2 = self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val; /* _n_number on <self:ADecIntExpr> */
197 if (unlikely(var2 == NULL)) {
198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_number");
199 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1814);
200 show_backtrace(1);
201 }
202 var = var2;
203 RET_LABEL1:(void)0;
204 }
205 }
206 {
207 var3 = lexer_work__Token__text(var);
208 }
209 {
210 var4 = string__Text__to_i(var3);
211 }
212 {
213 { /* Inline literal#AIntExpr#value= (self,var4) on <self:ADecIntExpr> */
214 var6 = BOX_kernel__Int(var4); /* autobox from Int to nullable Int */
215 self->attrs[COLOR_literal__AIntExpr___value].val = var6; /* _value on <self:ADecIntExpr> */
216 RET_LABEL5:(void)0;
217 }
218 }
219 RET_LABEL:;
220 }
221 /* method literal#ADecIntExpr#accept_literal for (self: Object, LiteralVisitor) */
222 void VIRTUAL_literal__ADecIntExpr__accept_literal(val* self, val* p0) {
223 literal__ADecIntExpr__accept_literal(self, p0); /* Direct call literal#ADecIntExpr#accept_literal on <self:Object(ADecIntExpr)>*/
224 RET_LABEL:;
225 }
226 /* method literal#AHexIntExpr#accept_literal for (self: AHexIntExpr, LiteralVisitor) */
227 void literal__AHexIntExpr__accept_literal(val* self, val* p0) {
228 val* var_v /* var v: LiteralVisitor */;
229 val* var /* : THexNumber */;
230 val* var2 /* : THexNumber */;
231 val* var3 /* : String */;
232 long var4 /* : Int */;
233 val* var5 /* : Text */;
234 long var6 /* : Int */;
235 val* var8 /* : nullable Int */;
236 var_v = p0;
237 {
238 { /* Inline parser_nodes#AHexIntExpr#n_hex_number (self) on <self:AHexIntExpr> */
239 var2 = self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val; /* _n_hex_number on <self:AHexIntExpr> */
240 if (unlikely(var2 == NULL)) {
241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_number");
242 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1819);
243 show_backtrace(1);
244 }
245 var = var2;
246 RET_LABEL1:(void)0;
247 }
248 }
249 {
250 var3 = lexer_work__Token__text(var);
251 }
252 var4 = 2;
253 {
254 var5 = string__Text__substring_from(var3, var4);
255 }
256 {
257 var6 = string__Text__to_hex(var5);
258 }
259 {
260 { /* Inline literal#AIntExpr#value= (self,var6) on <self:AHexIntExpr> */
261 var8 = BOX_kernel__Int(var6); /* autobox from Int to nullable Int */
262 self->attrs[COLOR_literal__AIntExpr___value].val = var8; /* _value on <self:AHexIntExpr> */
263 RET_LABEL7:(void)0;
264 }
265 }
266 RET_LABEL:;
267 }
268 /* method literal#AHexIntExpr#accept_literal for (self: Object, LiteralVisitor) */
269 void VIRTUAL_literal__AHexIntExpr__accept_literal(val* self, val* p0) {
270 literal__AHexIntExpr__accept_literal(self, p0); /* Direct call literal#AHexIntExpr#accept_literal on <self:Object(AHexIntExpr)>*/
271 RET_LABEL:;
272 }
273 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
274 void literal__AFloatExpr__value_61d(val* self, val* p0) {
275 self->attrs[COLOR_literal__AFloatExpr___value].val = p0; /* _value on <self:AFloatExpr> */
276 RET_LABEL:;
277 }
278 /* method literal#AFloatExpr#value= for (self: Object, nullable Float) */
279 void VIRTUAL_literal__AFloatExpr__value_61d(val* self, val* p0) {
280 { /* Inline literal#AFloatExpr#value= (self,p0) on <self:Object(AFloatExpr)> */
281 self->attrs[COLOR_literal__AFloatExpr___value].val = p0; /* _value on <self:Object(AFloatExpr)> */
282 RET_LABEL1:(void)0;
283 }
284 RET_LABEL:;
285 }
286 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
287 void literal__AFloatExpr__accept_literal(val* self, val* p0) {
288 val* var_v /* var v: LiteralVisitor */;
289 val* var /* : TFloat */;
290 val* var2 /* : TFloat */;
291 val* var3 /* : String */;
292 double var4 /* : Float */;
293 val* var6 /* : nullable Float */;
294 var_v = p0;
295 {
296 { /* Inline parser_nodes#AFloatExpr#n_float (self) on <self:AFloatExpr> */
297 var2 = self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
298 if (unlikely(var2 == NULL)) {
299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
300 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1824);
301 show_backtrace(1);
302 }
303 var = var2;
304 RET_LABEL1:(void)0;
305 }
306 }
307 {
308 var3 = lexer_work__Token__text(var);
309 }
310 {
311 var4 = string__Text__to_f(var3);
312 }
313 {
314 { /* Inline literal#AFloatExpr#value= (self,var4) on <self:AFloatExpr> */
315 var6 = BOX_kernel__Float(var4); /* autobox from Float to nullable Float */
316 self->attrs[COLOR_literal__AFloatExpr___value].val = var6; /* _value on <self:AFloatExpr> */
317 RET_LABEL5:(void)0;
318 }
319 }
320 RET_LABEL:;
321 }
322 /* method literal#AFloatExpr#accept_literal for (self: Object, LiteralVisitor) */
323 void VIRTUAL_literal__AFloatExpr__accept_literal(val* self, val* p0) {
324 literal__AFloatExpr__accept_literal(self, p0); /* Direct call literal#AFloatExpr#accept_literal on <self:Object(AFloatExpr)>*/
325 RET_LABEL:;
326 }
327 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
328 val* literal__ACharExpr__value(val* self) {
329 val* var /* : nullable Char */;
330 val* var1 /* : nullable Char */;
331 var1 = self->attrs[COLOR_literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
332 var = var1;
333 RET_LABEL:;
334 return var;
335 }
336 /* method literal#ACharExpr#value for (self: Object): nullable Char */
337 val* VIRTUAL_literal__ACharExpr__value(val* self) {
338 val* var /* : nullable Char */;
339 val* var1 /* : nullable Char */;
340 val* var3 /* : nullable Char */;
341 { /* Inline literal#ACharExpr#value (self) on <self:Object(ACharExpr)> */
342 var3 = self->attrs[COLOR_literal__ACharExpr___value].val; /* _value on <self:Object(ACharExpr)> */
343 var1 = var3;
344 RET_LABEL2:(void)0;
345 }
346 var = var1;
347 RET_LABEL:;
348 return var;
349 }
350 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
351 void literal__ACharExpr__value_61d(val* self, val* p0) {
352 self->attrs[COLOR_literal__ACharExpr___value].val = p0; /* _value on <self:ACharExpr> */
353 RET_LABEL:;
354 }
355 /* method literal#ACharExpr#value= for (self: Object, nullable Char) */
356 void VIRTUAL_literal__ACharExpr__value_61d(val* self, val* p0) {
357 { /* Inline literal#ACharExpr#value= (self,p0) on <self:Object(ACharExpr)> */
358 self->attrs[COLOR_literal__ACharExpr___value].val = p0; /* _value on <self:Object(ACharExpr)> */
359 RET_LABEL1:(void)0;
360 }
361 RET_LABEL:;
362 }
363 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
364 void literal__ACharExpr__accept_literal(val* self, val* p0) {
365 val* var_v /* var v: LiteralVisitor */;
366 val* var /* : TChar */;
367 val* var2 /* : TChar */;
368 val* var3 /* : String */;
369 val* var4 /* : String */;
370 val* var_txt /* var txt: String */;
371 long var5 /* : Int */;
372 long var7 /* : Int */;
373 long var8 /* : Int */;
374 short int var9 /* : Bool */;
375 short int var10 /* : Bool */;
376 short int var12 /* : Bool */;
377 short int var13 /* : Bool */;
378 val* var14 /* : ToolContext */;
379 val* var16 /* : ToolContext */;
380 val* var17 /* : Location */;
381 static val* varonce;
382 val* var18 /* : String */;
383 char* var19 /* : NativeString */;
384 long var20 /* : Int */;
385 val* var21 /* : FlatString */;
386 val* var22 /* : Array[Object] */;
387 long var23 /* : Int */;
388 val* var24 /* : NativeArray[Object] */;
389 val* var25 /* : String */;
390 val* var26 /* : SequenceRead[Char] */;
391 val* var28 /* : SequenceRead[Char] */;
392 long var29 /* : Int */;
393 val* var30 /* : nullable Object */;
394 var_v = p0;
395 {
396 { /* Inline parser_nodes#ACharExpr#n_char (self) on <self:ACharExpr> */
397 var2 = self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
398 if (unlikely(var2 == NULL)) {
399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
400 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1829);
401 show_backtrace(1);
402 }
403 var = var2;
404 RET_LABEL1:(void)0;
405 }
406 }
407 {
408 var3 = lexer_work__Token__text(var);
409 }
410 {
411 var4 = string__Text__unescape_nit(var3);
412 }
413 var_txt = var4;
414 {
415 { /* Inline string#FlatText#length (var_txt) on <var_txt:String> */
416 var7 = var_txt->attrs[COLOR_string__FlatText___length].l; /* _length on <var_txt:String> */
417 var5 = var7;
418 RET_LABEL6:(void)0;
419 }
420 }
421 var8 = 3;
422 {
423 { /* Inline kernel#Int#!= (var5,var8) on <var5:Int> */
424 var12 = var5 == var8;
425 var13 = !var12;
426 var10 = var13;
427 goto RET_LABEL11;
428 RET_LABEL11:(void)0;
429 }
430 var9 = var10;
431 }
432 if (var9){
433 {
434 { /* Inline literal#LiteralVisitor#toolcontext (var_v) on <var_v:LiteralVisitor> */
435 var16 = var_v->attrs[COLOR_literal__LiteralVisitor___toolcontext].val; /* _toolcontext on <var_v:LiteralVisitor> */
436 if (unlikely(var16 == NULL)) {
437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
438 PRINT_ERROR(" (%s:%d)\n", "literal.nit", 45);
439 show_backtrace(1);
440 }
441 var14 = var16;
442 RET_LABEL15:(void)0;
443 }
444 }
445 {
446 var17 = parser_nodes__ANode__hot_location(self);
447 }
448 if (varonce) {
449 var18 = varonce;
450 } else {
451 var19 = "Invalid character literal ";
452 var20 = 26;
453 var21 = string__NativeString__to_s_with_length(var19, var20);
454 var18 = var21;
455 varonce = var18;
456 }
457 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
458 { /* var22 = array_instance Array[Object] */
459 var23 = 2;
460 var24 = NEW_array__NativeArray(var23, &type_array__NativeArraykernel__Object);
461 ((struct instance_array__NativeArray*)var24)->values[0] = (val*) var18;
462 ((struct instance_array__NativeArray*)var24)->values[1] = (val*) var_txt;
463 {
464 ((void (*)(val*, val*, long))(var22->class->vft[COLOR_array__Array__with_native]))(var22, var24, var23) /* with_native on <var22:Array[Object]>*/;
465 }
466 }
467 {
468 var25 = ((val* (*)(val*))(var22->class->vft[COLOR_string__Object__to_s]))(var22) /* to_s on <var22:Array[Object]>*/;
469 }
470 {
471 toolcontext__ToolContext__error(var14, var17, var25); /* Direct call toolcontext#ToolContext#error on <var14:ToolContext>*/
472 }
473 goto RET_LABEL;
474 } else {
475 }
476 {
477 { /* Inline string#FlatString#chars (var_txt) on <var_txt:String> */
478 var28 = var_txt->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_txt:String> */
479 if (unlikely(var28 == NULL)) {
480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
481 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
482 show_backtrace(1);
483 }
484 var26 = var28;
485 RET_LABEL27:(void)0;
486 }
487 }
488 var29 = 1;
489 {
490 var30 = ((val* (*)(val*, long))(var26->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var26, var29) /* [] on <var26:SequenceRead[Char]>*/;
491 }
492 {
493 { /* Inline literal#ACharExpr#value= (self,var30) on <self:ACharExpr> */
494 self->attrs[COLOR_literal__ACharExpr___value].val = var30; /* _value on <self:ACharExpr> */
495 RET_LABEL31:(void)0;
496 }
497 }
498 RET_LABEL:;
499 }
500 /* method literal#ACharExpr#accept_literal for (self: Object, LiteralVisitor) */
501 void VIRTUAL_literal__ACharExpr__accept_literal(val* self, val* p0) {
502 literal__ACharExpr__accept_literal(self, p0); /* Direct call literal#ACharExpr#accept_literal on <self:Object(ACharExpr)>*/
503 RET_LABEL:;
504 }
505 /* method literal#AStringFormExpr#value for (self: AStringFormExpr): nullable String */
506 val* literal__AStringFormExpr__value(val* self) {
507 val* var /* : nullable String */;
508 val* var1 /* : nullable String */;
509 var1 = self->attrs[COLOR_literal__AStringFormExpr___value].val; /* _value on <self:AStringFormExpr> */
510 var = var1;
511 RET_LABEL:;
512 return var;
513 }
514 /* method literal#AStringFormExpr#value for (self: Object): nullable String */
515 val* VIRTUAL_literal__AStringFormExpr__value(val* self) {
516 val* var /* : nullable String */;
517 val* var1 /* : nullable String */;
518 val* var3 /* : nullable String */;
519 { /* Inline literal#AStringFormExpr#value (self) on <self:Object(AStringFormExpr)> */
520 var3 = self->attrs[COLOR_literal__AStringFormExpr___value].val; /* _value on <self:Object(AStringFormExpr)> */
521 var1 = var3;
522 RET_LABEL2:(void)0;
523 }
524 var = var1;
525 RET_LABEL:;
526 return var;
527 }
528 /* method literal#AStringFormExpr#value= for (self: AStringFormExpr, nullable String) */
529 void literal__AStringFormExpr__value_61d(val* self, val* p0) {
530 self->attrs[COLOR_literal__AStringFormExpr___value].val = p0; /* _value on <self:AStringFormExpr> */
531 RET_LABEL:;
532 }
533 /* method literal#AStringFormExpr#value= for (self: Object, nullable String) */
534 void VIRTUAL_literal__AStringFormExpr__value_61d(val* self, val* p0) {
535 { /* Inline literal#AStringFormExpr#value= (self,p0) on <self:Object(AStringFormExpr)> */
536 self->attrs[COLOR_literal__AStringFormExpr___value].val = p0; /* _value on <self:Object(AStringFormExpr)> */
537 RET_LABEL1:(void)0;
538 }
539 RET_LABEL:;
540 }
541 /* method literal#AStringFormExpr#accept_literal for (self: AStringFormExpr, LiteralVisitor) */
542 void literal__AStringFormExpr__accept_literal(val* self, val* p0) {
543 val* var_v /* var v: LiteralVisitor */;
544 val* var /* : Token */;
545 val* var2 /* : Token */;
546 val* var3 /* : String */;
547 val* var_txt /* var txt: String */;
548 long var4 /* : Int */;
549 long var_behead /* var behead: Int */;
550 long var5 /* : Int */;
551 long var_betail /* var betail: Int */;
552 short int var6 /* : Bool */;
553 val* var7 /* : SequenceRead[Char] */;
554 val* var9 /* : SequenceRead[Char] */;
555 long var10 /* : Int */;
556 val* var11 /* : nullable Object */;
557 val* var12 /* : SequenceRead[Char] */;
558 val* var14 /* : SequenceRead[Char] */;
559 long var15 /* : Int */;
560 val* var16 /* : nullable Object */;
561 short int var17 /* : Bool */;
562 short int var18 /* : Bool */;
563 short int var20 /* : Bool */;
564 short int var_ /* var : Bool */;
565 long var21 /* : Int */;
566 long var23 /* : Int */;
567 long var24 /* : Int */;
568 short int var25 /* : Bool */;
569 short int var27 /* : Bool */;
570 int cltype;
571 int idtype;
572 const char* var_class_name;
573 short int var28 /* : Bool */;
574 long var29 /* : Int */;
575 long var30 /* : Int */;
576 short int var31 /* : Bool */;
577 val* var32 /* : SequenceRead[Char] */;
578 val* var34 /* : SequenceRead[Char] */;
579 long var35 /* : Int */;
580 val* var36 /* : nullable Object */;
581 char var37 /* : Char */;
582 short int var38 /* : Bool */;
583 short int var39 /* : Bool */;
584 short int var41 /* : Bool */;
585 char var42 /* : Char */;
586 short int var_43 /* var : Bool */;
587 val* var44 /* : SequenceRead[Char] */;
588 val* var46 /* : SequenceRead[Char] */;
589 long var47 /* : Int */;
590 val* var48 /* : nullable Object */;
591 char var49 /* : Char */;
592 short int var50 /* : Bool */;
593 short int var51 /* : Bool */;
594 short int var53 /* : Bool */;
595 char var54 /* : Char */;
596 long var55 /* : Int */;
597 long var56 /* : Int */;
598 long var58 /* : Int */;
599 long var59 /* : Int */;
600 short int var61 /* : Bool */;
601 int cltype62;
602 int idtype63;
603 const char* var_class_name64;
604 long var65 /* : Int */;
605 long var66 /* : Int */;
606 short int var68 /* : Bool */;
607 int cltype69;
608 int idtype70;
609 const char* var_class_name71;
610 long var72 /* : Int */;
611 val* var73 /* : String */;
612 val* var74 /* : String */;
613 var_v = p0;
614 {
615 { /* Inline parser_nodes#AStringFormExpr#n_string (self) on <self:AStringFormExpr> */
616 var2 = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringFormExpr> */
617 if (unlikely(var2 == NULL)) {
618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1834);
620 show_backtrace(1);
621 }
622 var = var2;
623 RET_LABEL1:(void)0;
624 }
625 }
626 {
627 var3 = lexer_work__Token__text(var);
628 }
629 var_txt = var3;
630 var4 = 1;
631 var_behead = var4;
632 var5 = 1;
633 var_betail = var5;
634 {
635 { /* Inline string#FlatString#chars (var_txt) on <var_txt:String> */
636 var9 = var_txt->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_txt:String> */
637 if (unlikely(var9 == NULL)) {
638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
639 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
640 show_backtrace(1);
641 }
642 var7 = var9;
643 RET_LABEL8:(void)0;
644 }
645 }
646 var10 = 0;
647 {
648 var11 = ((val* (*)(val*, long))(var7->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var7, var10) /* [] on <var7:SequenceRead[Char]>*/;
649 }
650 {
651 { /* Inline string#FlatString#chars (var_txt) on <var_txt:String> */
652 var14 = var_txt->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_txt:String> */
653 if (unlikely(var14 == NULL)) {
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
655 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
656 show_backtrace(1);
657 }
658 var12 = var14;
659 RET_LABEL13:(void)0;
660 }
661 }
662 var15 = 1;
663 {
664 var16 = ((val* (*)(val*, long))(var12->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var12, var15) /* [] on <var12:SequenceRead[Char]>*/;
665 }
666 {
667 { /* Inline kernel#Char#== (var11,var16) on <var11:nullable Object(Char)> */
668 var20 = var11 == var16 || (((struct instance_kernel__Char*)var11)->value == ((struct instance_kernel__Char*)var16)->value);
669 var18 = var20;
670 goto RET_LABEL19;
671 RET_LABEL19:(void)0;
672 }
673 var17 = var18;
674 }
675 var_ = var17;
676 if (var17){
677 {
678 { /* Inline string#FlatText#length (var_txt) on <var_txt:String> */
679 var23 = var_txt->attrs[COLOR_string__FlatText___length].l; /* _length on <var_txt:String> */
680 var21 = var23;
681 RET_LABEL22:(void)0;
682 }
683 }
684 var24 = 6;
685 {
686 { /* Inline kernel#Int#>= (var21,var24) on <var21:Int> */
687 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
688 /* <var24:Int> isa OTHER */
689 var27 = 1; /* easy <var24:Int> isa OTHER*/
690 if (unlikely(!var27)) {
691 var_class_name = type_kernel__Int.name;
692 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
693 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
694 show_backtrace(1);
695 }
696 var28 = var21 >= var24;
697 var25 = var28;
698 goto RET_LABEL26;
699 RET_LABEL26:(void)0;
700 }
701 }
702 var6 = var25;
703 } else {
704 var6 = var_;
705 }
706 if (var6){
707 var29 = 3;
708 var_behead = var29;
709 var30 = 3;
710 var_betail = var30;
711 {
712 { /* Inline string#FlatString#chars (var_txt) on <var_txt:String> */
713 var34 = var_txt->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_txt:String> */
714 if (unlikely(var34 == NULL)) {
715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
716 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
717 show_backtrace(1);
718 }
719 var32 = var34;
720 RET_LABEL33:(void)0;
721 }
722 }
723 var35 = 0;
724 {
725 var36 = ((val* (*)(val*, long))(var32->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var32, var35) /* [] on <var32:SequenceRead[Char]>*/;
726 }
727 var37 = '\"';
728 {
729 { /* Inline kernel#Char#== (var36,var37) on <var36:nullable Object(Char)> */
730 var41 = (var36 != NULL) && (var36->class == &class_kernel__Char);
731 if (var41) {
732 var42 = ((struct instance_kernel__Char*)var36)->value; /* autounbox from nullable Object to Char */;
733 var41 = (var42 == var37);
734 }
735 var39 = var41;
736 goto RET_LABEL40;
737 RET_LABEL40:(void)0;
738 }
739 var38 = var39;
740 }
741 var_43 = var38;
742 if (var38){
743 {
744 { /* Inline string#FlatString#chars (var_txt) on <var_txt:String> */
745 var46 = var_txt->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_txt:String> */
746 if (unlikely(var46 == NULL)) {
747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
748 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
749 show_backtrace(1);
750 }
751 var44 = var46;
752 RET_LABEL45:(void)0;
753 }
754 }
755 var47 = 3;
756 {
757 var48 = ((val* (*)(val*, long))(var44->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var44, var47) /* [] on <var44:SequenceRead[Char]>*/;
758 }
759 var49 = '\n';
760 {
761 { /* Inline kernel#Char#== (var48,var49) on <var48:nullable Object(Char)> */
762 var53 = (var48 != NULL) && (var48->class == &class_kernel__Char);
763 if (var53) {
764 var54 = ((struct instance_kernel__Char*)var48)->value; /* autounbox from nullable Object to Char */;
765 var53 = (var54 == var49);
766 }
767 var51 = var53;
768 goto RET_LABEL52;
769 RET_LABEL52:(void)0;
770 }
771 var50 = var51;
772 }
773 var31 = var50;
774 } else {
775 var31 = var_43;
776 }
777 if (var31){
778 var55 = 4;
779 var_behead = var55;
780 } else {
781 }
782 } else {
783 }
784 {
785 { /* Inline string#FlatText#length (var_txt) on <var_txt:String> */
786 var58 = var_txt->attrs[COLOR_string__FlatText___length].l; /* _length on <var_txt:String> */
787 var56 = var58;
788 RET_LABEL57:(void)0;
789 }
790 }
791 {
792 { /* Inline kernel#Int#- (var56,var_behead) on <var56:Int> */
793 /* Covariant cast for argument 0 (i) <var_behead:Int> isa OTHER */
794 /* <var_behead:Int> isa OTHER */
795 var61 = 1; /* easy <var_behead:Int> isa OTHER*/
796 if (unlikely(!var61)) {
797 var_class_name64 = type_kernel__Int.name;
798 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64);
799 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
800 show_backtrace(1);
801 }
802 var65 = var56 - var_behead;
803 var59 = var65;
804 goto RET_LABEL60;
805 RET_LABEL60:(void)0;
806 }
807 }
808 {
809 { /* Inline kernel#Int#- (var59,var_betail) on <var59:Int> */
810 /* Covariant cast for argument 0 (i) <var_betail:Int> isa OTHER */
811 /* <var_betail:Int> isa OTHER */
812 var68 = 1; /* easy <var_betail:Int> isa OTHER*/
813 if (unlikely(!var68)) {
814 var_class_name71 = type_kernel__Int.name;
815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71);
816 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
817 show_backtrace(1);
818 }
819 var72 = var59 - var_betail;
820 var66 = var72;
821 goto RET_LABEL67;
822 RET_LABEL67:(void)0;
823 }
824 }
825 {
826 var73 = string__FlatString__substring(var_txt, var_behead, var66);
827 }
828 {
829 var74 = string__Text__unescape_nit(var73);
830 }
831 {
832 { /* Inline literal#AStringFormExpr#value= (self,var74) on <self:AStringFormExpr> */
833 self->attrs[COLOR_literal__AStringFormExpr___value].val = var74; /* _value on <self:AStringFormExpr> */
834 RET_LABEL75:(void)0;
835 }
836 }
837 RET_LABEL:;
838 }
839 /* method literal#AStringFormExpr#accept_literal for (self: Object, LiteralVisitor) */
840 void VIRTUAL_literal__AStringFormExpr__accept_literal(val* self, val* p0) {
841 literal__AStringFormExpr__accept_literal(self, p0); /* Direct call literal#AStringFormExpr#accept_literal on <self:Object(AStringFormExpr)>*/
842 RET_LABEL:;
843 }