1 #include "literal.sep.0.h"
2 /* method literal#ToolContext#literal_phase for (self: ToolContext): Phase */
3 val
* literal__ToolContext__literal_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_literal__ToolContext___64dliteral_phase
].val
; /* @literal_phase on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @literal_phase");
9 fprintf(stderr
, " (%s:%d)\n", "src/literal.nit", 25);
16 /* method literal#ToolContext#literal_phase for (self: Object): Phase */
17 val
* VIRTUAL_literal__ToolContext__literal_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 var1
= literal__ToolContext__literal_phase(self
);
25 /* method literal#ToolContext#literal_phase= for (self: ToolContext, Phase) */
26 void literal__ToolContext__literal_phase_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_literal__ToolContext___64dliteral_phase
].val
= p0
; /* @literal_phase on <self:ToolContext> */
30 /* method literal#ToolContext#literal_phase= for (self: Object, Phase) */
31 void VIRTUAL_literal__ToolContext__literal_phase_61d(val
* self
, val
* p0
) {
32 literal__ToolContext__literal_phase_61d(self
, p0
);
35 /* method literal#LiteralPhase#process_nmodule for (self: LiteralPhase, AModule) */
36 void literal__LiteralPhase__process_nmodule(val
* self
, val
* p0
) {
37 val
* var_nmodule
/* var nmodule: AModule */;
38 val
* var
/* : ToolContext */;
40 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:LiteralPhase>*/;
41 ((void (*)(val
*, val
*))(var_nmodule
->class->vft
[COLOR_literal__AModule__do_literal
]))(var_nmodule
, var
) /* do_literal on <var_nmodule:AModule>*/;
44 /* method literal#LiteralPhase#process_nmodule for (self: Object, AModule) */
45 void VIRTUAL_literal__LiteralPhase__process_nmodule(val
* self
, val
* p0
) {
46 literal__LiteralPhase__process_nmodule(self
, p0
);
49 /* method literal#AModule#do_literal for (self: AModule, ToolContext) */
50 void literal__AModule__do_literal(val
* self
, val
* p0
) {
51 val
* var_toolcontext
/* var toolcontext: ToolContext */;
52 val
* var
/* : LiteralVisitor */;
53 val
* var_v
/* var v: LiteralVisitor */;
55 var
= NEW_literal__LiteralVisitor(&type_literal__LiteralVisitor
);
56 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_literal__LiteralVisitor__init
]))(var
, var_toolcontext
) /* init on <var:LiteralVisitor>*/;
57 CHECK_NEW_literal__LiteralVisitor(var
);
59 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, self
) /* enter_visit on <var_v:LiteralVisitor>*/;
62 /* method literal#AModule#do_literal for (self: Object, ToolContext) */
63 void VIRTUAL_literal__AModule__do_literal(val
* self
, val
* p0
) {
64 literal__AModule__do_literal(self
, p0
);
67 /* method literal#LiteralVisitor#toolcontext for (self: LiteralVisitor): ToolContext */
68 val
* literal__LiteralVisitor__toolcontext(val
* self
) {
69 val
* var
/* : ToolContext */;
70 val
* var1
/* : ToolContext */;
71 var1
= self
->attrs
[COLOR_literal__LiteralVisitor___64dtoolcontext
].val
; /* @toolcontext on <self:LiteralVisitor> */
73 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @toolcontext");
74 fprintf(stderr
, " (%s:%d)\n", "src/literal.nit", 47);
81 /* method literal#LiteralVisitor#toolcontext for (self: Object): ToolContext */
82 val
* VIRTUAL_literal__LiteralVisitor__toolcontext(val
* self
) {
83 val
* var
/* : ToolContext */;
84 val
* var1
/* : ToolContext */;
85 var1
= literal__LiteralVisitor__toolcontext(self
);
90 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
91 void literal__LiteralVisitor__toolcontext_61d(val
* self
, val
* p0
) {
92 self
->attrs
[COLOR_literal__LiteralVisitor___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:LiteralVisitor> */
95 /* method literal#LiteralVisitor#toolcontext= for (self: Object, ToolContext) */
96 void VIRTUAL_literal__LiteralVisitor__toolcontext_61d(val
* self
, val
* p0
) {
97 literal__LiteralVisitor__toolcontext_61d(self
, p0
);
100 /* method literal#LiteralVisitor#init for (self: LiteralVisitor, ToolContext) */
101 void literal__LiteralVisitor__init(val
* self
, val
* p0
) {
102 val
* var_toolcontext
/* var toolcontext: ToolContext */;
103 var_toolcontext
= p0
;
104 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:LiteralVisitor>*/;
105 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__LiteralVisitor__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:LiteralVisitor>*/;
108 /* method literal#LiteralVisitor#init for (self: Object, ToolContext) */
109 void VIRTUAL_literal__LiteralVisitor__init(val
* self
, val
* p0
) {
110 literal__LiteralVisitor__init(self
, p0
);
113 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
114 void literal__LiteralVisitor__visit(val
* self
, val
* p0
) {
115 val
* var_n
/* var n: ANode */;
117 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_literal__ANode__accept_literal
]))(var_n
, self
) /* accept_literal on <var_n:ANode>*/;
118 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
121 /* method literal#LiteralVisitor#visit for (self: Object, ANode) */
122 void VIRTUAL_literal__LiteralVisitor__visit(val
* self
, val
* p0
) {
123 literal__LiteralVisitor__visit(self
, p0
);
126 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
127 void literal__ANode__accept_literal(val
* self
, val
* p0
) {
128 val
* var_v
/* var v: LiteralVisitor */;
132 /* method literal#ANode#accept_literal for (self: Object, LiteralVisitor) */
133 void VIRTUAL_literal__ANode__accept_literal(val
* self
, val
* p0
) {
134 literal__ANode__accept_literal(self
, p0
);
137 /* method literal#AIntExpr#value for (self: AIntExpr): nullable Int */
138 val
* literal__AIntExpr__value(val
* self
) {
139 val
* var
/* : nullable Int */;
140 val
* var1
/* : nullable Int */;
141 var1
= self
->attrs
[COLOR_literal__AIntExpr___64dvalue
].val
; /* @value on <self:AIntExpr> */
146 /* method literal#AIntExpr#value for (self: Object): nullable Int */
147 val
* VIRTUAL_literal__AIntExpr__value(val
* self
) {
148 val
* var
/* : nullable Int */;
149 val
* var1
/* : nullable Int */;
150 var1
= literal__AIntExpr__value(self
);
155 /* method literal#AIntExpr#value= for (self: AIntExpr, nullable Int) */
156 void literal__AIntExpr__value_61d(val
* self
, val
* p0
) {
157 self
->attrs
[COLOR_literal__AIntExpr___64dvalue
].val
= p0
; /* @value on <self:AIntExpr> */
160 /* method literal#AIntExpr#value= for (self: Object, nullable Int) */
161 void VIRTUAL_literal__AIntExpr__value_61d(val
* self
, val
* p0
) {
162 literal__AIntExpr__value_61d(self
, p0
);
165 /* method literal#AIntExpr#accept_literal for (self: AIntExpr, LiteralVisitor) */
166 void literal__AIntExpr__accept_literal(val
* self
, val
* p0
) {
167 val
* var_v
/* var v: LiteralVisitor */;
168 val
* var
/* : TNumber */;
169 val
* var1
/* : String */;
170 long var2
/* : Int */;
171 val
* var3
/* : nullable Int */;
173 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIntExpr__n_number
]))(self
) /* n_number on <self:AIntExpr>*/;
174 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TNumber>*/;
175 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__to_i
]))(var1
) /* to_i on <var1:String>*/;
176 var3
= BOX_kernel__Int(var2
); /* autobox from Int to nullable Int */
177 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AIntExpr__value_61d
]))(self
, var3
) /* value= on <self:AIntExpr>*/;
180 /* method literal#AIntExpr#accept_literal for (self: Object, LiteralVisitor) */
181 void VIRTUAL_literal__AIntExpr__accept_literal(val
* self
, val
* p0
) {
182 literal__AIntExpr__accept_literal(self
, p0
);
185 /* method literal#AFloatExpr#value for (self: AFloatExpr): nullable Float */
186 val
* literal__AFloatExpr__value(val
* self
) {
187 val
* var
/* : nullable Float */;
188 val
* var1
/* : nullable Float */;
189 var1
= self
->attrs
[COLOR_literal__AFloatExpr___64dvalue
].val
; /* @value on <self:AFloatExpr> */
194 /* method literal#AFloatExpr#value for (self: Object): nullable Float */
195 val
* VIRTUAL_literal__AFloatExpr__value(val
* self
) {
196 val
* var
/* : nullable Float */;
197 val
* var1
/* : nullable Float */;
198 var1
= literal__AFloatExpr__value(self
);
203 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
204 void literal__AFloatExpr__value_61d(val
* self
, val
* p0
) {
205 self
->attrs
[COLOR_literal__AFloatExpr___64dvalue
].val
= p0
; /* @value on <self:AFloatExpr> */
208 /* method literal#AFloatExpr#value= for (self: Object, nullable Float) */
209 void VIRTUAL_literal__AFloatExpr__value_61d(val
* self
, val
* p0
) {
210 literal__AFloatExpr__value_61d(self
, p0
);
213 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
214 void literal__AFloatExpr__accept_literal(val
* self
, val
* p0
) {
215 val
* var_v
/* var v: LiteralVisitor */;
216 val
* var
/* : TFloat */;
217 val
* var1
/* : String */;
218 double var2
/* : Float */;
219 val
* var3
/* : nullable Float */;
221 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AFloatExpr__n_float
]))(self
) /* n_float on <self:AFloatExpr>*/;
222 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TFloat>*/;
223 var2
= ((double (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__to_f
]))(var1
) /* to_f on <var1:String>*/;
224 var3
= BOX_kernel__Float(var2
); /* autobox from Float to nullable Float */
225 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AFloatExpr__value_61d
]))(self
, var3
) /* value= on <self:AFloatExpr>*/;
228 /* method literal#AFloatExpr#accept_literal for (self: Object, LiteralVisitor) */
229 void VIRTUAL_literal__AFloatExpr__accept_literal(val
* self
, val
* p0
) {
230 literal__AFloatExpr__accept_literal(self
, p0
);
233 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
234 val
* literal__ACharExpr__value(val
* self
) {
235 val
* var
/* : nullable Char */;
236 val
* var1
/* : nullable Char */;
237 var1
= self
->attrs
[COLOR_literal__ACharExpr___64dvalue
].val
; /* @value on <self:ACharExpr> */
242 /* method literal#ACharExpr#value for (self: Object): nullable Char */
243 val
* VIRTUAL_literal__ACharExpr__value(val
* self
) {
244 val
* var
/* : nullable Char */;
245 val
* var1
/* : nullable Char */;
246 var1
= literal__ACharExpr__value(self
);
251 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
252 void literal__ACharExpr__value_61d(val
* self
, val
* p0
) {
253 self
->attrs
[COLOR_literal__ACharExpr___64dvalue
].val
= p0
; /* @value on <self:ACharExpr> */
256 /* method literal#ACharExpr#value= for (self: Object, nullable Char) */
257 void VIRTUAL_literal__ACharExpr__value_61d(val
* self
, val
* p0
) {
258 literal__ACharExpr__value_61d(self
, p0
);
261 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
262 void literal__ACharExpr__accept_literal(val
* self
, val
* p0
) {
263 val
* var_v
/* var v: LiteralVisitor */;
264 val
* var
/* : TChar */;
265 val
* var1
/* : String */;
266 val
* var2
/* : String */;
267 val
* var_txt
/* var txt: String */;
268 long var3
/* : Int */;
269 long var4
/* : Int */;
270 short int var5
/* : Bool */;
271 short int var7
/* : Bool */;
272 short int var8
/* : Bool */;
273 val
* var9
/* : ToolContext */;
274 val
* var10
/* : Location */;
276 val
* var11
/* : String */;
277 char* var12
/* : NativeString */;
278 long var13
/* : Int */;
279 val
* var14
/* : String */;
280 val
* var15
/* : Array[Object] */;
281 long var16
/* : Int */;
282 val
* var17
/* : NativeArray[Object] */;
283 val
* var18
/* : String */;
284 long var19
/* : Int */;
285 val
* var20
/* : nullable Object */;
287 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACharExpr__n_char
]))(self
) /* n_char on <self:ACharExpr>*/;
288 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TChar>*/;
289 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__unescape_nit
]))(var1
) /* unescape_nit on <var1:String>*/;
291 var3
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
293 { /* Inline kernel#Int#!= (var3,var4) */
301 var9
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_literal__LiteralVisitor__toolcontext
]))(var_v
) /* toolcontext on <var_v:LiteralVisitor>*/;
302 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(self
) /* hot_location on <self:ACharExpr>*/;
306 var12
= "Invalid character literal ";
308 var14
= string__NativeString__to_s_with_length(var12
, var13
);
312 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
313 { /* var15 = array_instance Array[Object] */
315 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
316 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var11
;
317 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_txt
;
318 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
319 CHECK_NEW_array__Array(var15
);
321 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
322 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var9
, var10
, var18
) /* error on <var9:ToolContext>*/;
327 var20
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var19
) /* [] on <var_txt:String>*/;
328 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__ACharExpr__value_61d
]))(self
, var20
) /* value= on <self:ACharExpr>*/;
331 /* method literal#ACharExpr#accept_literal for (self: Object, LiteralVisitor) */
332 void VIRTUAL_literal__ACharExpr__accept_literal(val
* self
, val
* p0
) {
333 literal__ACharExpr__accept_literal(self
, p0
);
336 /* method literal#AStringFormExpr#value for (self: AStringFormExpr): nullable String */
337 val
* literal__AStringFormExpr__value(val
* self
) {
338 val
* var
/* : nullable String */;
339 val
* var1
/* : nullable String */;
340 var1
= self
->attrs
[COLOR_literal__AStringFormExpr___64dvalue
].val
; /* @value on <self:AStringFormExpr> */
345 /* method literal#AStringFormExpr#value for (self: Object): nullable String */
346 val
* VIRTUAL_literal__AStringFormExpr__value(val
* self
) {
347 val
* var
/* : nullable String */;
348 val
* var1
/* : nullable String */;
349 var1
= literal__AStringFormExpr__value(self
);
354 /* method literal#AStringFormExpr#value= for (self: AStringFormExpr, nullable String) */
355 void literal__AStringFormExpr__value_61d(val
* self
, val
* p0
) {
356 self
->attrs
[COLOR_literal__AStringFormExpr___64dvalue
].val
= p0
; /* @value on <self:AStringFormExpr> */
359 /* method literal#AStringFormExpr#value= for (self: Object, nullable String) */
360 void VIRTUAL_literal__AStringFormExpr__value_61d(val
* self
, val
* p0
) {
361 literal__AStringFormExpr__value_61d(self
, p0
);
364 /* method literal#AStringFormExpr#accept_literal for (self: AStringFormExpr, LiteralVisitor) */
365 void literal__AStringFormExpr__accept_literal(val
* self
, val
* p0
) {
366 val
* var_v
/* var v: LiteralVisitor */;
367 val
* var
/* : Token */;
368 val
* var1
/* : String */;
369 val
* var_txt
/* var txt: String */;
370 long var2
/* : Int */;
371 long var_skip
/* var skip: Int */;
372 short int var3
/* : Bool */;
373 long var4
/* : Int */;
374 val
* var5
/* : nullable Object */;
375 long var6
/* : Int */;
376 val
* var7
/* : nullable Object */;
377 short int var8
/* : Bool */;
378 short int var10
/* : Bool */;
379 short int var_
/* var : Bool */;
380 long var11
/* : Int */;
381 long var12
/* : Int */;
382 short int var13
/* : Bool */;
383 short int var15
/* : Bool */;
386 const char* var_class_name
;
387 short int var16
/* : Bool */;
388 long var17
/* : Int */;
389 long var18
/* : Int */;
390 long var19
/* : Int */;
391 long var20
/* : Int */;
392 long var22
/* : Int */;
393 long var23
/* : Int */;
394 long var25
/* : Int */;
395 val
* var26
/* : String */;
396 val
* var27
/* : String */;
398 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AStringFormExpr__n_string
]))(self
) /* n_string on <self:AStringFormExpr>*/;
399 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:Token>*/;
404 var5
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var4
) /* [] on <var_txt:String>*/;
406 var7
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var6
) /* [] on <var_txt:String>*/;
407 { /* Inline kernel#Char#== (var5,var7) */
408 var10
= var5
== var7
|| (((struct instance_kernel__Char
*)var5
)->value
== ((struct instance_kernel__Char
*)var7
)->value
);
415 var11
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
417 { /* Inline kernel#Int#>= (var11,var12) */
418 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
419 /* <var12:Int> isa OTHER */
420 var15
= 1; /* easy <var12:Int> isa OTHER*/
422 var_class_name
= type_kernel__Int
.name
;
423 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
424 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
427 var16
= var11
>= var12
;
441 var18
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
443 { /* Inline kernel#Int#* (var19,var_skip) */
444 var22
= var19
* var_skip
;
449 { /* Inline kernel#Int#- (var18,var20) */
450 var25
= var18
- var20
;
455 var26
= ((val
* (*)(val
*, long, long))(var_txt
->class->vft
[COLOR_string__AbstractString__substring
]))(var_txt
, var_skip
, var23
) /* substring on <var_txt:String>*/;
456 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__AbstractString__unescape_nit
]))(var26
) /* unescape_nit on <var26:String>*/;
457 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AStringFormExpr__value_61d
]))(self
, var27
) /* value= on <self:AStringFormExpr>*/;
460 /* method literal#AStringFormExpr#accept_literal for (self: Object, LiteralVisitor) */
461 void VIRTUAL_literal__AStringFormExpr__accept_literal(val
* self
, val
* p0
) {
462 literal__AStringFormExpr__accept_literal(self
, p0
);