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>*/;
58 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, self
) /* enter_visit on <var_v:LiteralVisitor>*/;
61 /* method literal#AModule#do_literal for (self: Object, ToolContext) */
62 void VIRTUAL_literal__AModule__do_literal(val
* self
, val
* p0
) {
63 literal__AModule__do_literal(self
, p0
);
66 /* method literal#LiteralVisitor#toolcontext for (self: LiteralVisitor): ToolContext */
67 val
* literal__LiteralVisitor__toolcontext(val
* self
) {
68 val
* var
/* : ToolContext */;
69 val
* var1
/* : ToolContext */;
70 var1
= self
->attrs
[COLOR_literal__LiteralVisitor___64dtoolcontext
].val
; /* @toolcontext on <self:LiteralVisitor> */
72 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @toolcontext");
73 fprintf(stderr
, " (%s:%d)\n", "src/literal.nit", 47);
80 /* method literal#LiteralVisitor#toolcontext for (self: Object): ToolContext */
81 val
* VIRTUAL_literal__LiteralVisitor__toolcontext(val
* self
) {
82 val
* var
/* : ToolContext */;
83 val
* var1
/* : ToolContext */;
84 var1
= literal__LiteralVisitor__toolcontext(self
);
89 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
90 void literal__LiteralVisitor__toolcontext_61d(val
* self
, val
* p0
) {
91 self
->attrs
[COLOR_literal__LiteralVisitor___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:LiteralVisitor> */
94 /* method literal#LiteralVisitor#toolcontext= for (self: Object, ToolContext) */
95 void VIRTUAL_literal__LiteralVisitor__toolcontext_61d(val
* self
, val
* p0
) {
96 literal__LiteralVisitor__toolcontext_61d(self
, p0
);
99 /* method literal#LiteralVisitor#init for (self: LiteralVisitor, ToolContext) */
100 void literal__LiteralVisitor__init(val
* self
, val
* p0
) {
101 val
* var_toolcontext
/* var toolcontext: ToolContext */;
102 var_toolcontext
= p0
;
103 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:LiteralVisitor>*/;
104 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__LiteralVisitor__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:LiteralVisitor>*/;
107 /* method literal#LiteralVisitor#init for (self: Object, ToolContext) */
108 void VIRTUAL_literal__LiteralVisitor__init(val
* self
, val
* p0
) {
109 literal__LiteralVisitor__init(self
, p0
);
112 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
113 void literal__LiteralVisitor__visit(val
* self
, val
* p0
) {
114 val
* var_n
/* var n: ANode */;
116 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_literal__ANode__accept_literal
]))(var_n
, self
) /* accept_literal on <var_n:ANode>*/;
117 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
120 /* method literal#LiteralVisitor#visit for (self: Object, ANode) */
121 void VIRTUAL_literal__LiteralVisitor__visit(val
* self
, val
* p0
) {
122 literal__LiteralVisitor__visit(self
, p0
);
125 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
126 void literal__ANode__accept_literal(val
* self
, val
* p0
) {
127 val
* var_v
/* var v: LiteralVisitor */;
131 /* method literal#ANode#accept_literal for (self: Object, LiteralVisitor) */
132 void VIRTUAL_literal__ANode__accept_literal(val
* self
, val
* p0
) {
133 literal__ANode__accept_literal(self
, p0
);
136 /* method literal#AIntExpr#value for (self: AIntExpr): nullable Int */
137 val
* literal__AIntExpr__value(val
* self
) {
138 val
* var
/* : nullable Int */;
139 val
* var1
/* : nullable Int */;
140 var1
= self
->attrs
[COLOR_literal__AIntExpr___64dvalue
].val
; /* @value on <self:AIntExpr> */
145 /* method literal#AIntExpr#value for (self: Object): nullable Int */
146 val
* VIRTUAL_literal__AIntExpr__value(val
* self
) {
147 val
* var
/* : nullable Int */;
148 val
* var1
/* : nullable Int */;
149 var1
= literal__AIntExpr__value(self
);
154 /* method literal#AIntExpr#value= for (self: AIntExpr, nullable Int) */
155 void literal__AIntExpr__value_61d(val
* self
, val
* p0
) {
156 self
->attrs
[COLOR_literal__AIntExpr___64dvalue
].val
= p0
; /* @value on <self:AIntExpr> */
159 /* method literal#AIntExpr#value= for (self: Object, nullable Int) */
160 void VIRTUAL_literal__AIntExpr__value_61d(val
* self
, val
* p0
) {
161 literal__AIntExpr__value_61d(self
, p0
);
164 /* method literal#AIntExpr#accept_literal for (self: AIntExpr, LiteralVisitor) */
165 void literal__AIntExpr__accept_literal(val
* self
, val
* p0
) {
166 val
* var_v
/* var v: LiteralVisitor */;
167 val
* var
/* : TNumber */;
168 val
* var1
/* : String */;
169 long var2
/* : Int */;
170 val
* var3
/* : nullable Int */;
172 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIntExpr__n_number
]))(self
) /* n_number on <self:AIntExpr>*/;
173 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TNumber>*/;
174 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__to_i
]))(var1
) /* to_i on <var1:String>*/;
175 var3
= BOX_kernel__Int(var2
); /* autobox from Int to nullable Int */
176 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AIntExpr__value_61d
]))(self
, var3
) /* value= on <self:AIntExpr>*/;
179 /* method literal#AIntExpr#accept_literal for (self: Object, LiteralVisitor) */
180 void VIRTUAL_literal__AIntExpr__accept_literal(val
* self
, val
* p0
) {
181 literal__AIntExpr__accept_literal(self
, p0
);
184 /* method literal#AFloatExpr#value for (self: AFloatExpr): nullable Float */
185 val
* literal__AFloatExpr__value(val
* self
) {
186 val
* var
/* : nullable Float */;
187 val
* var1
/* : nullable Float */;
188 var1
= self
->attrs
[COLOR_literal__AFloatExpr___64dvalue
].val
; /* @value on <self:AFloatExpr> */
193 /* method literal#AFloatExpr#value for (self: Object): nullable Float */
194 val
* VIRTUAL_literal__AFloatExpr__value(val
* self
) {
195 val
* var
/* : nullable Float */;
196 val
* var1
/* : nullable Float */;
197 var1
= literal__AFloatExpr__value(self
);
202 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
203 void literal__AFloatExpr__value_61d(val
* self
, val
* p0
) {
204 self
->attrs
[COLOR_literal__AFloatExpr___64dvalue
].val
= p0
; /* @value on <self:AFloatExpr> */
207 /* method literal#AFloatExpr#value= for (self: Object, nullable Float) */
208 void VIRTUAL_literal__AFloatExpr__value_61d(val
* self
, val
* p0
) {
209 literal__AFloatExpr__value_61d(self
, p0
);
212 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
213 void literal__AFloatExpr__accept_literal(val
* self
, val
* p0
) {
214 val
* var_v
/* var v: LiteralVisitor */;
215 val
* var
/* : TFloat */;
216 val
* var1
/* : String */;
217 double var2
/* : Float */;
218 val
* var3
/* : nullable Float */;
220 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AFloatExpr__n_float
]))(self
) /* n_float on <self:AFloatExpr>*/;
221 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TFloat>*/;
222 var2
= ((double (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__to_f
]))(var1
) /* to_f on <var1:String>*/;
223 var3
= BOX_kernel__Float(var2
); /* autobox from Float to nullable Float */
224 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AFloatExpr__value_61d
]))(self
, var3
) /* value= on <self:AFloatExpr>*/;
227 /* method literal#AFloatExpr#accept_literal for (self: Object, LiteralVisitor) */
228 void VIRTUAL_literal__AFloatExpr__accept_literal(val
* self
, val
* p0
) {
229 literal__AFloatExpr__accept_literal(self
, p0
);
232 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
233 val
* literal__ACharExpr__value(val
* self
) {
234 val
* var
/* : nullable Char */;
235 val
* var1
/* : nullable Char */;
236 var1
= self
->attrs
[COLOR_literal__ACharExpr___64dvalue
].val
; /* @value on <self:ACharExpr> */
241 /* method literal#ACharExpr#value for (self: Object): nullable Char */
242 val
* VIRTUAL_literal__ACharExpr__value(val
* self
) {
243 val
* var
/* : nullable Char */;
244 val
* var1
/* : nullable Char */;
245 var1
= literal__ACharExpr__value(self
);
250 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
251 void literal__ACharExpr__value_61d(val
* self
, val
* p0
) {
252 self
->attrs
[COLOR_literal__ACharExpr___64dvalue
].val
= p0
; /* @value on <self:ACharExpr> */
255 /* method literal#ACharExpr#value= for (self: Object, nullable Char) */
256 void VIRTUAL_literal__ACharExpr__value_61d(val
* self
, val
* p0
) {
257 literal__ACharExpr__value_61d(self
, p0
);
260 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
261 void literal__ACharExpr__accept_literal(val
* self
, val
* p0
) {
262 val
* var_v
/* var v: LiteralVisitor */;
263 val
* var
/* : TChar */;
264 val
* var1
/* : String */;
265 val
* var2
/* : String */;
266 val
* var_txt
/* var txt: String */;
267 long var3
/* : Int */;
268 long var4
/* : Int */;
269 short int var5
/* : Bool */;
270 short int var7
/* : Bool */;
271 short int var8
/* : Bool */;
272 val
* var9
/* : ToolContext */;
273 val
* var10
/* : Location */;
275 val
* var11
/* : String */;
276 char* var12
/* : NativeString */;
277 long var13
/* : Int */;
278 val
* var14
/* : String */;
279 val
* var15
/* : Array[Object] */;
280 long var16
/* : Int */;
281 val
* var17
/* : NativeArray[Object] */;
282 val
* var18
/* : String */;
283 long var19
/* : Int */;
284 val
* var20
/* : nullable Object */;
286 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACharExpr__n_char
]))(self
) /* n_char on <self:ACharExpr>*/;
287 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TChar>*/;
288 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__unescape_nit
]))(var1
) /* unescape_nit on <var1:String>*/;
290 var3
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
292 { /* Inline kernel#Int#!= (var3,var4) */
300 var9
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_literal__LiteralVisitor__toolcontext
]))(var_v
) /* toolcontext on <var_v:LiteralVisitor>*/;
301 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(self
) /* hot_location on <self:ACharExpr>*/;
305 var12
= "Invalid character literal ";
307 var14
= string__NativeString__to_s_with_length(var12
, var13
);
311 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
312 { /* var15 = array_instance Array[Object] */
314 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
315 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var11
;
316 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_txt
;
317 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
319 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
320 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var9
, var10
, var18
) /* error on <var9:ToolContext>*/;
325 var20
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var19
) /* [] on <var_txt:String>*/;
326 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__ACharExpr__value_61d
]))(self
, var20
) /* value= on <self:ACharExpr>*/;
329 /* method literal#ACharExpr#accept_literal for (self: Object, LiteralVisitor) */
330 void VIRTUAL_literal__ACharExpr__accept_literal(val
* self
, val
* p0
) {
331 literal__ACharExpr__accept_literal(self
, p0
);
334 /* method literal#AStringFormExpr#value for (self: AStringFormExpr): nullable String */
335 val
* literal__AStringFormExpr__value(val
* self
) {
336 val
* var
/* : nullable String */;
337 val
* var1
/* : nullable String */;
338 var1
= self
->attrs
[COLOR_literal__AStringFormExpr___64dvalue
].val
; /* @value on <self:AStringFormExpr> */
343 /* method literal#AStringFormExpr#value for (self: Object): nullable String */
344 val
* VIRTUAL_literal__AStringFormExpr__value(val
* self
) {
345 val
* var
/* : nullable String */;
346 val
* var1
/* : nullable String */;
347 var1
= literal__AStringFormExpr__value(self
);
352 /* method literal#AStringFormExpr#value= for (self: AStringFormExpr, nullable String) */
353 void literal__AStringFormExpr__value_61d(val
* self
, val
* p0
) {
354 self
->attrs
[COLOR_literal__AStringFormExpr___64dvalue
].val
= p0
; /* @value on <self:AStringFormExpr> */
357 /* method literal#AStringFormExpr#value= for (self: Object, nullable String) */
358 void VIRTUAL_literal__AStringFormExpr__value_61d(val
* self
, val
* p0
) {
359 literal__AStringFormExpr__value_61d(self
, p0
);
362 /* method literal#AStringFormExpr#accept_literal for (self: AStringFormExpr, LiteralVisitor) */
363 void literal__AStringFormExpr__accept_literal(val
* self
, val
* p0
) {
364 val
* var_v
/* var v: LiteralVisitor */;
365 val
* var
/* : Token */;
366 val
* var1
/* : String */;
367 val
* var_txt
/* var txt: String */;
368 long var2
/* : Int */;
369 long var_skip
/* var skip: Int */;
370 short int var3
/* : Bool */;
371 long var4
/* : Int */;
372 val
* var5
/* : nullable Object */;
373 long var6
/* : Int */;
374 val
* var7
/* : nullable Object */;
375 short int var8
/* : Bool */;
376 short int var10
/* : Bool */;
377 short int var_
/* var : Bool */;
378 long var11
/* : Int */;
379 long var12
/* : Int */;
380 short int var13
/* : Bool */;
381 short int var15
/* : Bool */;
384 const char* var_class_name
;
385 short int var16
/* : Bool */;
386 long var17
/* : Int */;
387 long var18
/* : Int */;
388 long var19
/* : Int */;
389 long var20
/* : Int */;
390 long var22
/* : Int */;
391 long var23
/* : Int */;
392 long var25
/* : Int */;
393 val
* var26
/* : String */;
394 val
* var27
/* : String */;
396 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AStringFormExpr__n_string
]))(self
) /* n_string on <self:AStringFormExpr>*/;
397 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:Token>*/;
402 var5
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var4
) /* [] on <var_txt:String>*/;
404 var7
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var6
) /* [] on <var_txt:String>*/;
405 { /* Inline kernel#Char#== (var5,var7) */
406 var10
= var5
== var7
|| (((struct instance_kernel__Char
*)var5
)->value
== ((struct instance_kernel__Char
*)var7
)->value
);
413 var11
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
415 { /* Inline kernel#Int#>= (var11,var12) */
416 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
417 /* <var12:Int> isa OTHER */
418 var15
= 1; /* easy <var12:Int> isa OTHER*/
420 var_class_name
= type_kernel__Int
.name
;
421 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
422 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
425 var16
= var11
>= var12
;
439 var18
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
441 { /* Inline kernel#Int#* (var19,var_skip) */
442 var22
= var19
* var_skip
;
447 { /* Inline kernel#Int#- (var18,var20) */
448 var25
= var18
- var20
;
453 var26
= ((val
* (*)(val
*, long, long))(var_txt
->class->vft
[COLOR_string__AbstractString__substring
]))(var_txt
, var_skip
, var23
) /* substring on <var_txt:String>*/;
454 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__AbstractString__unescape_nit
]))(var26
) /* unescape_nit on <var26:String>*/;
455 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AStringFormExpr__value_61d
]))(self
, var27
) /* value= on <self:AStringFormExpr>*/;
458 /* method literal#AStringFormExpr#accept_literal for (self: Object, LiteralVisitor) */
459 void VIRTUAL_literal__AStringFormExpr__accept_literal(val
* self
, val
* p0
) {
460 literal__AStringFormExpr__accept_literal(self
, p0
);