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 (%s:%d)\n", "Uninitialized attribute @literal_phase", "src/literal.nit", 25);
15 /* method literal#ToolContext#literal_phase for (self: Object): Phase */
16 val
* VIRTUAL_literal__ToolContext__literal_phase(val
* self
) {
17 val
* var
/* : Phase */;
18 val
* var1
/* : Phase */;
19 var1
= literal__ToolContext__literal_phase(self
);
24 /* method literal#ToolContext#literal_phase= for (self: ToolContext, Phase) */
25 void literal__ToolContext__literal_phase_61d(val
* self
, val
* p0
) {
26 self
->attrs
[COLOR_literal__ToolContext___64dliteral_phase
].val
= p0
; /* @literal_phase on <self:ToolContext> */
29 /* method literal#ToolContext#literal_phase= for (self: Object, Phase) */
30 void VIRTUAL_literal__ToolContext__literal_phase_61d(val
* self
, val
* p0
) {
31 literal__ToolContext__literal_phase_61d(self
, p0
);
34 /* method literal#LiteralPhase#process_nmodule for (self: LiteralPhase, AModule) */
35 void literal__LiteralPhase__process_nmodule(val
* self
, val
* p0
) {
36 val
* var_nmodule
/* var nmodule: AModule */;
37 val
* var
/* : ToolContext */;
39 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:LiteralPhase>*/;
40 ((void (*)(val
*, val
*))(var_nmodule
->class->vft
[COLOR_literal__AModule__do_literal
]))(var_nmodule
, var
) /* do_literal on <var_nmodule:AModule>*/;
43 /* method literal#LiteralPhase#process_nmodule for (self: Object, AModule) */
44 void VIRTUAL_literal__LiteralPhase__process_nmodule(val
* self
, val
* p0
) {
45 literal__LiteralPhase__process_nmodule(self
, p0
);
48 /* method literal#AModule#do_literal for (self: AModule, ToolContext) */
49 void literal__AModule__do_literal(val
* self
, val
* p0
) {
50 val
* var_toolcontext
/* var toolcontext: ToolContext */;
51 val
* var
/* : LiteralVisitor */;
52 val
* var_v
/* var v: LiteralVisitor */;
54 var
= NEW_literal__LiteralVisitor(&type_literal__LiteralVisitor
);
55 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_literal__LiteralVisitor__init
]))(var
, var_toolcontext
) /* init on <var:LiteralVisitor>*/;
56 CHECK_NEW_literal__LiteralVisitor(var
);
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 (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/literal.nit", 47);
79 /* method literal#LiteralVisitor#toolcontext for (self: Object): ToolContext */
80 val
* VIRTUAL_literal__LiteralVisitor__toolcontext(val
* self
) {
81 val
* var
/* : ToolContext */;
82 val
* var1
/* : ToolContext */;
83 var1
= literal__LiteralVisitor__toolcontext(self
);
88 /* method literal#LiteralVisitor#toolcontext= for (self: LiteralVisitor, ToolContext) */
89 void literal__LiteralVisitor__toolcontext_61d(val
* self
, val
* p0
) {
90 self
->attrs
[COLOR_literal__LiteralVisitor___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:LiteralVisitor> */
93 /* method literal#LiteralVisitor#toolcontext= for (self: Object, ToolContext) */
94 void VIRTUAL_literal__LiteralVisitor__toolcontext_61d(val
* self
, val
* p0
) {
95 literal__LiteralVisitor__toolcontext_61d(self
, p0
);
98 /* method literal#LiteralVisitor#init for (self: LiteralVisitor, ToolContext) */
99 void literal__LiteralVisitor__init(val
* self
, val
* p0
) {
100 val
* var_toolcontext
/* var toolcontext: ToolContext */;
101 var_toolcontext
= p0
;
102 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:LiteralVisitor>*/;
103 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__LiteralVisitor__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:LiteralVisitor>*/;
106 /* method literal#LiteralVisitor#init for (self: Object, ToolContext) */
107 void VIRTUAL_literal__LiteralVisitor__init(val
* self
, val
* p0
) {
108 literal__LiteralVisitor__init(self
, p0
);
111 /* method literal#LiteralVisitor#visit for (self: LiteralVisitor, ANode) */
112 void literal__LiteralVisitor__visit(val
* self
, val
* p0
) {
113 val
* var_n
/* var n: ANode */;
115 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_literal__ANode__accept_literal
]))(var_n
, self
) /* accept_literal on <var_n:ANode>*/;
116 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
119 /* method literal#LiteralVisitor#visit for (self: Object, ANode) */
120 void VIRTUAL_literal__LiteralVisitor__visit(val
* self
, val
* p0
) {
121 literal__LiteralVisitor__visit(self
, p0
);
124 /* method literal#ANode#accept_literal for (self: ANode, LiteralVisitor) */
125 void literal__ANode__accept_literal(val
* self
, val
* p0
) {
126 val
* var_v
/* var v: LiteralVisitor */;
130 /* method literal#ANode#accept_literal for (self: Object, LiteralVisitor) */
131 void VIRTUAL_literal__ANode__accept_literal(val
* self
, val
* p0
) {
132 literal__ANode__accept_literal(self
, p0
);
135 /* method literal#AIntExpr#value for (self: AIntExpr): nullable Int */
136 val
* literal__AIntExpr__value(val
* self
) {
137 val
* var
/* : nullable Int */;
138 val
* var1
/* : nullable Int */;
139 var1
= self
->attrs
[COLOR_literal__AIntExpr___64dvalue
].val
; /* @value on <self:AIntExpr> */
144 /* method literal#AIntExpr#value for (self: Object): nullable Int */
145 val
* VIRTUAL_literal__AIntExpr__value(val
* self
) {
146 val
* var
/* : nullable Int */;
147 val
* var1
/* : nullable Int */;
148 var1
= literal__AIntExpr__value(self
);
153 /* method literal#AIntExpr#value= for (self: AIntExpr, nullable Int) */
154 void literal__AIntExpr__value_61d(val
* self
, val
* p0
) {
155 self
->attrs
[COLOR_literal__AIntExpr___64dvalue
].val
= p0
; /* @value on <self:AIntExpr> */
158 /* method literal#AIntExpr#value= for (self: Object, nullable Int) */
159 void VIRTUAL_literal__AIntExpr__value_61d(val
* self
, val
* p0
) {
160 literal__AIntExpr__value_61d(self
, p0
);
163 /* method literal#AIntExpr#accept_literal for (self: AIntExpr, LiteralVisitor) */
164 void literal__AIntExpr__accept_literal(val
* self
, val
* p0
) {
165 val
* var_v
/* var v: LiteralVisitor */;
166 val
* var
/* : TNumber */;
167 val
* var1
/* : String */;
168 long var2
/* : Int */;
169 val
* var3
/* : nullable Int */;
171 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIntExpr__n_number
]))(self
) /* n_number on <self:AIntExpr>*/;
172 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TNumber>*/;
173 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__to_i
]))(var1
) /* to_i on <var1:String>*/;
174 var3
= BOX_kernel__Int(var2
); /* autobox from Int to nullable Int */
175 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AIntExpr__value_61d
]))(self
, var3
) /* value= on <self:AIntExpr>*/;
178 /* method literal#AIntExpr#accept_literal for (self: Object, LiteralVisitor) */
179 void VIRTUAL_literal__AIntExpr__accept_literal(val
* self
, val
* p0
) {
180 literal__AIntExpr__accept_literal(self
, p0
);
183 /* method literal#AFloatExpr#value for (self: AFloatExpr): nullable Float */
184 val
* literal__AFloatExpr__value(val
* self
) {
185 val
* var
/* : nullable Float */;
186 val
* var1
/* : nullable Float */;
187 var1
= self
->attrs
[COLOR_literal__AFloatExpr___64dvalue
].val
; /* @value on <self:AFloatExpr> */
192 /* method literal#AFloatExpr#value for (self: Object): nullable Float */
193 val
* VIRTUAL_literal__AFloatExpr__value(val
* self
) {
194 val
* var
/* : nullable Float */;
195 val
* var1
/* : nullable Float */;
196 var1
= literal__AFloatExpr__value(self
);
201 /* method literal#AFloatExpr#value= for (self: AFloatExpr, nullable Float) */
202 void literal__AFloatExpr__value_61d(val
* self
, val
* p0
) {
203 self
->attrs
[COLOR_literal__AFloatExpr___64dvalue
].val
= p0
; /* @value on <self:AFloatExpr> */
206 /* method literal#AFloatExpr#value= for (self: Object, nullable Float) */
207 void VIRTUAL_literal__AFloatExpr__value_61d(val
* self
, val
* p0
) {
208 literal__AFloatExpr__value_61d(self
, p0
);
211 /* method literal#AFloatExpr#accept_literal for (self: AFloatExpr, LiteralVisitor) */
212 void literal__AFloatExpr__accept_literal(val
* self
, val
* p0
) {
213 val
* var_v
/* var v: LiteralVisitor */;
214 val
* var
/* : TFloat */;
215 val
* var1
/* : String */;
216 double var2
/* : Float */;
217 val
* var3
/* : nullable Float */;
219 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AFloatExpr__n_float
]))(self
) /* n_float on <self:AFloatExpr>*/;
220 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TFloat>*/;
221 var2
= ((double (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__to_f
]))(var1
) /* to_f on <var1:String>*/;
222 var3
= BOX_kernel__Float(var2
); /* autobox from Float to nullable Float */
223 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AFloatExpr__value_61d
]))(self
, var3
) /* value= on <self:AFloatExpr>*/;
226 /* method literal#AFloatExpr#accept_literal for (self: Object, LiteralVisitor) */
227 void VIRTUAL_literal__AFloatExpr__accept_literal(val
* self
, val
* p0
) {
228 literal__AFloatExpr__accept_literal(self
, p0
);
231 /* method literal#ACharExpr#value for (self: ACharExpr): nullable Char */
232 val
* literal__ACharExpr__value(val
* self
) {
233 val
* var
/* : nullable Char */;
234 val
* var1
/* : nullable Char */;
235 var1
= self
->attrs
[COLOR_literal__ACharExpr___64dvalue
].val
; /* @value on <self:ACharExpr> */
240 /* method literal#ACharExpr#value for (self: Object): nullable Char */
241 val
* VIRTUAL_literal__ACharExpr__value(val
* self
) {
242 val
* var
/* : nullable Char */;
243 val
* var1
/* : nullable Char */;
244 var1
= literal__ACharExpr__value(self
);
249 /* method literal#ACharExpr#value= for (self: ACharExpr, nullable Char) */
250 void literal__ACharExpr__value_61d(val
* self
, val
* p0
) {
251 self
->attrs
[COLOR_literal__ACharExpr___64dvalue
].val
= p0
; /* @value on <self:ACharExpr> */
254 /* method literal#ACharExpr#value= for (self: Object, nullable Char) */
255 void VIRTUAL_literal__ACharExpr__value_61d(val
* self
, val
* p0
) {
256 literal__ACharExpr__value_61d(self
, p0
);
259 /* method literal#ACharExpr#accept_literal for (self: ACharExpr, LiteralVisitor) */
260 void literal__ACharExpr__accept_literal(val
* self
, val
* p0
) {
261 val
* var_v
/* var v: LiteralVisitor */;
262 val
* var
/* : TChar */;
263 val
* var1
/* : String */;
264 val
* var2
/* : String */;
265 val
* var_txt
/* var txt: String */;
266 long var3
/* : Int */;
267 long var4
/* : Int */;
268 short int var5
/* : Bool */;
269 short int var7
/* : Bool */;
270 short int var8
/* : Bool */;
271 val
* var9
/* : ToolContext */;
272 val
* var10
/* : Location */;
274 val
* var11
/* : String */;
275 char* var12
/* : NativeString */;
276 long var13
/* : Int */;
277 val
* var14
/* : String */;
278 val
* var15
/* : Array[Object] */;
279 long var16
/* : Int */;
280 val
* var17
/* : NativeArray[Object] */;
281 val
* var18
/* : String */;
282 long var19
/* : Int */;
283 val
* var20
/* : nullable Object */;
285 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACharExpr__n_char
]))(self
) /* n_char on <self:ACharExpr>*/;
286 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:TChar>*/;
287 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__AbstractString__unescape_nit
]))(var1
) /* unescape_nit on <var1:String>*/;
289 var3
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
291 { /* Inline kernel#Int#!= (var3,var4) */
299 var9
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_literal__LiteralVisitor__toolcontext
]))(var_v
) /* toolcontext on <var_v:LiteralVisitor>*/;
300 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(self
) /* hot_location on <self:ACharExpr>*/;
304 var12
= "Invalid character literal ";
306 var14
= string__NativeString__to_s_with_length(var12
, var13
);
310 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
311 { /* var15 = array_instance Array[Object] */
313 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
314 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var11
;
315 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_txt
;
316 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
317 CHECK_NEW_array__Array(var15
);
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 short int var16
/* : Bool */;
385 long var17
/* : Int */;
386 long var18
/* : Int */;
387 long var19
/* : Int */;
388 long var20
/* : Int */;
389 long var22
/* : Int */;
390 long var23
/* : Int */;
391 long var25
/* : Int */;
392 val
* var26
/* : String */;
393 val
* var27
/* : String */;
395 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AStringFormExpr__n_string
]))(self
) /* n_string on <self:AStringFormExpr>*/;
396 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_parser_nodes__Token__text
]))(var
) /* text on <var:Token>*/;
401 var5
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var4
) /* [] on <var_txt:String>*/;
403 var7
= ((val
* (*)(val
*, long))(var_txt
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_txt
, var6
) /* [] on <var_txt:String>*/;
404 { /* Inline kernel#Char#== (var5,var7) */
405 var10
= var5
== var7
|| (((struct instance_kernel__Char
*)var5
)->value
== ((struct instance_kernel__Char
*)var7
)->value
);
412 var11
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
414 { /* Inline kernel#Int#>= (var11,var12) */
415 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
416 /* <var12:Int> isa OTHER */
417 var15
= 1; /* easy <var12:Int> isa OTHER*/
419 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
422 var16
= var11
>= var12
;
436 var18
= ((long (*)(val
*))(var_txt
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_txt
) /* length on <var_txt:String>*/;
438 { /* Inline kernel#Int#* (var19,var_skip) */
439 var22
= var19
* var_skip
;
444 { /* Inline kernel#Int#- (var18,var20) */
445 var25
= var18
- var20
;
450 var26
= ((val
* (*)(val
*, long, long))(var_txt
->class->vft
[COLOR_string__AbstractString__substring
]))(var_txt
, var_skip
, var23
) /* substring on <var_txt:String>*/;
451 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__AbstractString__unescape_nit
]))(var26
) /* unescape_nit on <var26:String>*/;
452 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_literal__AStringFormExpr__value_61d
]))(self
, var27
) /* value= on <self:AStringFormExpr>*/;
455 /* method literal#AStringFormExpr#accept_literal for (self: Object, LiteralVisitor) */
456 void VIRTUAL_literal__AStringFormExpr__accept_literal(val
* self
, val
* p0
) {
457 literal__AStringFormExpr__accept_literal(self
, p0
);