NOTICE: update dates and authors.
[nit.git] / c_src / lexer_work.sep.1.c
1 #include "lexer_work.sep.0.h"
2 /* method lexer_work#Token#text for (self: Token): String */
3 val* lexer_work__Token__text(val* self) {
4 val* var /* : String */;
5 val* var1 /* : nullable String */;
6 val* var_res /* var res: nullable String */;
7 val* var2 /* : null */;
8 short int var3 /* : Bool */;
9 short int var4 /* : Bool */;
10 val* var_other /* var other: nullable Object */;
11 short int var6 /* : Bool */;
12 short int var7 /* : Bool */;
13 short int var8 /* : Bool */;
14 val* var9 /* : Location */;
15 val* var10 /* : String */;
16 var1 = self->attrs[COLOR_lexer_work__Token___text].val; /* _text on <self:Token> */
17 var_res = var1;
18 var2 = NULL;
19 if (var_res == NULL) {
20 var3 = 0; /* is null */
21 } else {
22 var3 = 1; /* arg is null and recv is not */
23 }
24 if (0) {
25 { /* Inline kernel#Object#!= (var_res,var2) on <var_res:nullable String> */
26 var_other = var2;
27 {
28 var7 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable String(String)>*/;
29 var6 = var7;
30 }
31 var8 = !var6;
32 var4 = var8;
33 goto RET_LABEL5;
34 RET_LABEL5:(void)0;
35 }
36 var3 = var4;
37 }
38 if (var3){
39 var = var_res;
40 goto RET_LABEL;
41 } else {
42 }
43 {
44 var9 = parser_nodes__ANode__location(self);
45 }
46 {
47 var10 = location__Location__text(var9);
48 }
49 var_res = var10;
50 self->attrs[COLOR_lexer_work__Token___text].val = var_res; /* _text on <self:Token> */
51 var = var_res;
52 goto RET_LABEL;
53 RET_LABEL:;
54 return var;
55 }
56 /* method lexer_work#Token#text for (self: Object): String */
57 val* VIRTUAL_lexer_work__Token__text(val* self) {
58 val* var /* : String */;
59 val* var1 /* : String */;
60 var1 = lexer_work__Token__text(self);
61 var = var1;
62 RET_LABEL:;
63 return var;
64 }
65 /* method lexer_work#EOF#parser_index for (self: EOF): Int */
66 long lexer_work__EOF__parser_index(val* self) {
67 long var /* : Int */;
68 long var1 /* : Int */;
69 var1 = 97;
70 var = var1;
71 goto RET_LABEL;
72 RET_LABEL:;
73 return var;
74 }
75 /* method lexer_work#EOF#parser_index for (self: Object): Int */
76 long VIRTUAL_lexer_work__EOF__parser_index(val* self) {
77 long var /* : Int */;
78 long var1 /* : Int */;
79 var1 = lexer_work__EOF__parser_index(self);
80 var = var1;
81 RET_LABEL:;
82 return var;
83 }
84 /* method lexer_work#EOF#init_tk for (self: EOF, Location) */
85 void lexer_work__EOF__init_tk(val* self, val* p0) {
86 val* var_loc /* var loc: Location */;
87 static val* varonce;
88 val* var /* : String */;
89 char* var1 /* : NativeString */;
90 long var2 /* : Int */;
91 val* var3 /* : FlatString */;
92 var_loc = p0;
93 if (varonce) {
94 var = varonce;
95 } else {
96 var1 = "";
97 var2 = 0;
98 var3 = string__NativeString__to_s_with_length(var1, var2);
99 var = var3;
100 varonce = var;
101 }
102 self->attrs[COLOR_lexer_work__Token___text].val = var; /* _text on <self:EOF> */
103 self->attrs[COLOR_parser_nodes__ANode___location].val = var_loc; /* _location on <self:EOF> */
104 RET_LABEL:;
105 }
106 /* method lexer_work#EOF#init_tk for (self: Object, Location) */
107 void VIRTUAL_lexer_work__EOF__init_tk(val* self, val* p0) {
108 lexer_work__EOF__init_tk(self, p0); /* Direct call lexer_work#EOF#init_tk on <self:Object(EOF)>*/
109 RET_LABEL:;
110 }
111 /* method lexer_work#AError#message for (self: AError): String */
112 val* lexer_work__AError__message(val* self) {
113 val* var /* : String */;
114 val* var1 /* : String */;
115 var1 = self->attrs[COLOR_lexer_work__AError___message].val; /* _message on <self:AError> */
116 if (unlikely(var1 == NULL)) {
117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message");
118 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 55);
119 show_backtrace(1);
120 }
121 var = var1;
122 RET_LABEL:;
123 return var;
124 }
125 /* method lexer_work#AError#message for (self: Object): String */
126 val* VIRTUAL_lexer_work__AError__message(val* self) {
127 val* var /* : String */;
128 val* var1 /* : String */;
129 val* var3 /* : String */;
130 { /* Inline lexer_work#AError#message (self) on <self:Object(AError)> */
131 var3 = self->attrs[COLOR_lexer_work__AError___message].val; /* _message on <self:Object(AError)> */
132 if (unlikely(var3 == NULL)) {
133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message");
134 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 55);
135 show_backtrace(1);
136 }
137 var1 = var3;
138 RET_LABEL2:(void)0;
139 }
140 var = var1;
141 RET_LABEL:;
142 return var;
143 }
144 /* method lexer_work#AError#message= for (self: AError, String) */
145 void lexer_work__AError__message_61d(val* self, val* p0) {
146 self->attrs[COLOR_lexer_work__AError___message].val = p0; /* _message on <self:AError> */
147 RET_LABEL:;
148 }
149 /* method lexer_work#AError#message= for (self: Object, String) */
150 void VIRTUAL_lexer_work__AError__message_61d(val* self, val* p0) {
151 { /* Inline lexer_work#AError#message= (self,p0) on <self:Object(AError)> */
152 self->attrs[COLOR_lexer_work__AError___message].val = p0; /* _message on <self:Object(AError)> */
153 RET_LABEL1:(void)0;
154 }
155 RET_LABEL:;
156 }
157 /* method lexer_work#AError#init_error for (self: AError, String, Location) */
158 void lexer_work__AError__init_error(val* self, val* p0, val* p1) {
159 val* var_message /* var message: String */;
160 val* var_loc /* var loc: Location */;
161 var_message = p0;
162 var_loc = p1;
163 {
164 lexer_work__EOF__init_tk(self, var_loc); /* Direct call lexer_work#EOF#init_tk on <self:AError>*/
165 }
166 {
167 { /* Inline lexer_work#AError#message= (self,var_message) on <self:AError> */
168 self->attrs[COLOR_lexer_work__AError___message].val = var_message; /* _message on <self:AError> */
169 RET_LABEL1:(void)0;
170 }
171 }
172 RET_LABEL:;
173 }
174 /* method lexer_work#AError#init_error for (self: Object, String, Location) */
175 void VIRTUAL_lexer_work__AError__init_error(val* self, val* p0, val* p1) {
176 lexer_work__AError__init_error(self, p0, p1); /* Direct call lexer_work#AError#init_error on <self:Object(AError)>*/
177 RET_LABEL:;
178 }
179 /* method lexer_work#ALexerError#string= for (self: ALexerError, String) */
180 void lexer_work__ALexerError__string_61d(val* self, val* p0) {
181 self->attrs[COLOR_lexer_work__ALexerError___string].val = p0; /* _string on <self:ALexerError> */
182 RET_LABEL:;
183 }
184 /* method lexer_work#ALexerError#string= for (self: Object, String) */
185 void VIRTUAL_lexer_work__ALexerError__string_61d(val* self, val* p0) {
186 { /* Inline lexer_work#ALexerError#string= (self,p0) on <self:Object(ALexerError)> */
187 self->attrs[COLOR_lexer_work__ALexerError___string].val = p0; /* _string on <self:Object(ALexerError)> */
188 RET_LABEL1:(void)0;
189 }
190 RET_LABEL:;
191 }
192 /* method lexer_work#ALexerError#init_lexer_error for (self: ALexerError, String, Location, String) */
193 void lexer_work__ALexerError__init_lexer_error(val* self, val* p0, val* p1, val* p2) {
194 val* var_message /* var message: String */;
195 val* var_loc /* var loc: Location */;
196 val* var_string /* var string: String */;
197 var_message = p0;
198 var_loc = p1;
199 var_string = p2;
200 {
201 lexer_work__AError__init_error(self, var_message, var_loc); /* Direct call lexer_work#AError#init_error on <self:ALexerError>*/
202 }
203 {
204 { /* Inline lexer_work#ALexerError#string= (self,var_string) on <self:ALexerError> */
205 self->attrs[COLOR_lexer_work__ALexerError___string].val = var_string; /* _string on <self:ALexerError> */
206 RET_LABEL1:(void)0;
207 }
208 }
209 RET_LABEL:;
210 }
211 /* method lexer_work#ALexerError#init_lexer_error for (self: Object, String, Location, String) */
212 void VIRTUAL_lexer_work__ALexerError__init_lexer_error(val* self, val* p0, val* p1, val* p2) {
213 lexer_work__ALexerError__init_lexer_error(self, p0, p1, p2); /* Direct call lexer_work#ALexerError#init_lexer_error on <self:Object(ALexerError)>*/
214 RET_LABEL:;
215 }
216 /* method lexer_work#AParserError#token= for (self: AParserError, Token) */
217 void lexer_work__AParserError__token_61d(val* self, val* p0) {
218 self->attrs[COLOR_lexer_work__AParserError___token].val = p0; /* _token on <self:AParserError> */
219 RET_LABEL:;
220 }
221 /* method lexer_work#AParserError#token= for (self: Object, Token) */
222 void VIRTUAL_lexer_work__AParserError__token_61d(val* self, val* p0) {
223 { /* Inline lexer_work#AParserError#token= (self,p0) on <self:Object(AParserError)> */
224 self->attrs[COLOR_lexer_work__AParserError___token].val = p0; /* _token on <self:Object(AParserError)> */
225 RET_LABEL1:(void)0;
226 }
227 RET_LABEL:;
228 }
229 /* method lexer_work#AParserError#init_parser_error for (self: AParserError, String, Location, Token) */
230 void lexer_work__AParserError__init_parser_error(val* self, val* p0, val* p1, val* p2) {
231 val* var_message /* var message: String */;
232 val* var_loc /* var loc: Location */;
233 val* var_token /* var token: Token */;
234 var_message = p0;
235 var_loc = p1;
236 var_token = p2;
237 {
238 lexer_work__AError__init_error(self, var_message, var_loc); /* Direct call lexer_work#AError#init_error on <self:AParserError>*/
239 }
240 {
241 { /* Inline lexer_work#AParserError#token= (self,var_token) on <self:AParserError> */
242 self->attrs[COLOR_lexer_work__AParserError___token].val = var_token; /* _token on <self:AParserError> */
243 RET_LABEL1:(void)0;
244 }
245 }
246 RET_LABEL:;
247 }
248 /* method lexer_work#AParserError#init_parser_error for (self: Object, String, Location, Token) */
249 void VIRTUAL_lexer_work__AParserError__init_parser_error(val* self, val* p0, val* p1, val* p2) {
250 lexer_work__AParserError__init_parser_error(self, p0, p1, p2); /* Direct call lexer_work#AParserError#init_parser_error on <self:Object(AParserError)>*/
251 RET_LABEL:;
252 }
253 /* method lexer_work#Lexer#file for (self: Lexer): SourceFile */
254 val* lexer_work__Lexer__file(val* self) {
255 val* var /* : SourceFile */;
256 val* var1 /* : SourceFile */;
257 var1 = self->attrs[COLOR_lexer_work__Lexer___file].val; /* _file on <self:Lexer> */
258 if (unlikely(var1 == NULL)) {
259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
260 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 94);
261 show_backtrace(1);
262 }
263 var = var1;
264 RET_LABEL:;
265 return var;
266 }
267 /* method lexer_work#Lexer#file for (self: Object): SourceFile */
268 val* VIRTUAL_lexer_work__Lexer__file(val* self) {
269 val* var /* : SourceFile */;
270 val* var1 /* : SourceFile */;
271 val* var3 /* : SourceFile */;
272 { /* Inline lexer_work#Lexer#file (self) on <self:Object(Lexer)> */
273 var3 = self->attrs[COLOR_lexer_work__Lexer___file].val; /* _file on <self:Object(Lexer)> */
274 if (unlikely(var3 == NULL)) {
275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
276 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 94);
277 show_backtrace(1);
278 }
279 var1 = var3;
280 RET_LABEL2:(void)0;
281 }
282 var = var1;
283 RET_LABEL:;
284 return var;
285 }
286 /* method lexer_work#Lexer#file= for (self: Lexer, SourceFile) */
287 void lexer_work__Lexer__file_61d(val* self, val* p0) {
288 self->attrs[COLOR_lexer_work__Lexer___file].val = p0; /* _file on <self:Lexer> */
289 RET_LABEL:;
290 }
291 /* method lexer_work#Lexer#file= for (self: Object, SourceFile) */
292 void VIRTUAL_lexer_work__Lexer__file_61d(val* self, val* p0) {
293 { /* Inline lexer_work#Lexer#file= (self,p0) on <self:Object(Lexer)> */
294 self->attrs[COLOR_lexer_work__Lexer___file].val = p0; /* _file on <self:Object(Lexer)> */
295 RET_LABEL1:(void)0;
296 }
297 RET_LABEL:;
298 }
299 /* method lexer_work#Lexer#init for (self: Lexer, SourceFile) */
300 void lexer_work__Lexer__init(val* self, val* p0) {
301 val* var_file /* var file: SourceFile */;
302 var_file = p0;
303 {
304 { /* Inline lexer_work#Lexer#file= (self,var_file) on <self:Lexer> */
305 self->attrs[COLOR_lexer_work__Lexer___file].val = var_file; /* _file on <self:Lexer> */
306 RET_LABEL1:(void)0;
307 }
308 }
309 RET_LABEL:;
310 }
311 /* method lexer_work#Lexer#init for (self: Object, SourceFile) */
312 void VIRTUAL_lexer_work__Lexer__init(val* self, val* p0) {
313 lexer_work__Lexer__init(self, p0); /* Direct call lexer_work#Lexer#init on <self:Object(Lexer)>*/
314 RET_LABEL:;
315 }
316 /* method lexer_work#Lexer#last_token for (self: Lexer): nullable Token */
317 val* lexer_work__Lexer__last_token(val* self) {
318 val* var /* : nullable Token */;
319 val* var1 /* : nullable Token */;
320 var1 = self->attrs[COLOR_lexer_work__Lexer___last_token].val; /* _last_token on <self:Lexer> */
321 var = var1;
322 RET_LABEL:;
323 return var;
324 }
325 /* method lexer_work#Lexer#last_token for (self: Object): nullable Token */
326 val* VIRTUAL_lexer_work__Lexer__last_token(val* self) {
327 val* var /* : nullable Token */;
328 val* var1 /* : nullable Token */;
329 val* var3 /* : nullable Token */;
330 { /* Inline lexer_work#Lexer#last_token (self) on <self:Object(Lexer)> */
331 var3 = self->attrs[COLOR_lexer_work__Lexer___last_token].val; /* _last_token on <self:Object(Lexer)> */
332 var1 = var3;
333 RET_LABEL2:(void)0;
334 }
335 var = var1;
336 RET_LABEL:;
337 return var;
338 }
339 /* method lexer_work#Lexer#last_token= for (self: Lexer, nullable Token) */
340 void lexer_work__Lexer__last_token_61d(val* self, val* p0) {
341 self->attrs[COLOR_lexer_work__Lexer___last_token].val = p0; /* _last_token on <self:Lexer> */
342 RET_LABEL:;
343 }
344 /* method lexer_work#Lexer#last_token= for (self: Object, nullable Token) */
345 void VIRTUAL_lexer_work__Lexer__last_token_61d(val* self, val* p0) {
346 { /* Inline lexer_work#Lexer#last_token= (self,p0) on <self:Object(Lexer)> */
347 self->attrs[COLOR_lexer_work__Lexer___last_token].val = p0; /* _last_token on <self:Object(Lexer)> */
348 RET_LABEL1:(void)0;
349 }
350 RET_LABEL:;
351 }
352 /* method lexer_work#Lexer#peek for (self: Lexer): Token */
353 val* lexer_work__Lexer__peek(val* self) {
354 val* var /* : Token */;
355 val* var1 /* : nullable Token */;
356 val* var_t /* var t: nullable Token */;
357 val* var2 /* : null */;
358 short int var3 /* : Bool */;
359 short int var4 /* : Bool */;
360 val* var_other /* var other: nullable Object */;
361 short int var6 /* : Bool */;
362 short int var7 /* : Bool */;
363 short int var8 /* : Bool */;
364 val* var9 /* : nullable Token */;
365 val* var10 /* : null */;
366 short int var11 /* : Bool */;
367 short int var12 /* : Bool */;
368 val* var_other14 /* var other: nullable Object */;
369 short int var15 /* : Bool */;
370 short int var17 /* : Bool */;
371 val* var18 /* : nullable Token */;
372 val* var19 /* : nullable Location */;
373 val* var20 /* : null */;
374 short int var21 /* : Bool */;
375 short int var22 /* : Bool */;
376 short int var24 /* : Bool */;
377 short int var25 /* : Bool */;
378 short int var26 /* : Bool */;
379 val* var27 /* : nullable Token */;
380 val* var29 /* : nullable Token */;
381 val* var_l /* var l: nullable Token */;
382 val* var30 /* : null */;
383 short int var31 /* : Bool */;
384 short int var32 /* : Bool */;
385 short int var34 /* : Bool */;
386 short int var35 /* : Bool */;
387 short int var36 /* : Bool */;
388 val* var39 /* : SourceFile */;
389 val* var41 /* : SourceFile */;
390 var1 = self->attrs[COLOR_lexer_work__Lexer___token].val; /* _token on <self:Lexer> */
391 var_t = var1;
392 var2 = NULL;
393 if (var_t == NULL) {
394 var3 = 0; /* is null */
395 } else {
396 var3 = 1; /* arg is null and recv is not */
397 }
398 if (0) {
399 { /* Inline kernel#Object#!= (var_t,var2) on <var_t:nullable Token> */
400 var_other = var2;
401 {
402 var7 = ((short int (*)(val*, val*))(var_t->class->vft[COLOR_kernel__Object___61d_61d]))(var_t, var_other) /* == on <var_t:nullable Token(Token)>*/;
403 var6 = var7;
404 }
405 var8 = !var6;
406 var4 = var8;
407 goto RET_LABEL5;
408 RET_LABEL5:(void)0;
409 }
410 var3 = var4;
411 }
412 if (var3){
413 var = var_t;
414 goto RET_LABEL;
415 } else {
416 }
417 {
418 var9 = lexer_work__Lexer__get_token(self);
419 }
420 var_t = var9;
421 for(;;) {
422 var10 = NULL;
423 if (var_t == NULL) {
424 var11 = 1; /* is null */
425 } else {
426 var11 = 0; /* arg is null but recv is not */
427 }
428 if (0) {
429 { /* Inline kernel#Object#== (var_t,var10) on <var_t:nullable Token> */
430 var_other14 = var10;
431 {
432 { /* Inline kernel#Object#is_same_instance (var_t,var_other14) on <var_t:nullable Token(Token)> */
433 var17 = var_t == var_other14;
434 var15 = var17;
435 goto RET_LABEL16;
436 RET_LABEL16:(void)0;
437 }
438 }
439 var12 = var15;
440 goto RET_LABEL13;
441 RET_LABEL13:(void)0;
442 }
443 var11 = var12;
444 }
445 if (!var11) break;
446 {
447 var18 = lexer_work__Lexer__get_token(self);
448 }
449 var_t = var18;
450 CONTINUE_label: (void)0;
451 }
452 BREAK_label: (void)0;
453 var19 = var_t->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_t:nullable Token(Token)> */
454 var20 = NULL;
455 if (var19 == NULL) {
456 var21 = 0; /* is null */
457 } else {
458 var21 = 1; /* arg is null and recv is not */
459 }
460 if (0) {
461 { /* Inline kernel#Object#!= (var19,var20) on <var19:nullable Location> */
462 var_other = var20;
463 {
464 var25 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_kernel__Object___61d_61d]))(var19, var_other) /* == on <var19:nullable Location(Location)>*/;
465 var24 = var25;
466 }
467 var26 = !var24;
468 var22 = var26;
469 goto RET_LABEL23;
470 RET_LABEL23:(void)0;
471 }
472 var21 = var22;
473 }
474 if (var21){
475 {
476 { /* Inline lexer_work#Lexer#last_token (self) on <self:Lexer> */
477 var29 = self->attrs[COLOR_lexer_work__Lexer___last_token].val; /* _last_token on <self:Lexer> */
478 var27 = var29;
479 RET_LABEL28:(void)0;
480 }
481 }
482 var_l = var27;
483 var30 = NULL;
484 if (var_l == NULL) {
485 var31 = 0; /* is null */
486 } else {
487 var31 = 1; /* arg is null and recv is not */
488 }
489 if (0) {
490 { /* Inline kernel#Object#!= (var_l,var30) on <var_l:nullable Token> */
491 var_other = var30;
492 {
493 var35 = ((short int (*)(val*, val*))(var_l->class->vft[COLOR_kernel__Object___61d_61d]))(var_l, var_other) /* == on <var_l:nullable Token(Token)>*/;
494 var34 = var35;
495 }
496 var36 = !var34;
497 var32 = var36;
498 goto RET_LABEL33;
499 RET_LABEL33:(void)0;
500 }
501 var31 = var32;
502 }
503 if (var31){
504 {
505 { /* Inline parser_nodes#Token#next_token= (var_l,var_t) on <var_l:nullable Token(Token)> */
506 var_l->attrs[COLOR_parser_nodes__Token___next_token].val = var_t; /* _next_token on <var_l:nullable Token(Token)> */
507 RET_LABEL37:(void)0;
508 }
509 }
510 {
511 { /* Inline parser_nodes#Token#prev_token= (var_t,var_l) on <var_t:nullable Token(Token)> */
512 var_t->attrs[COLOR_parser_nodes__Token___prev_token].val = var_l; /* _prev_token on <var_t:nullable Token(Token)> */
513 RET_LABEL38:(void)0;
514 }
515 }
516 } else {
517 {
518 { /* Inline lexer_work#Lexer#file (self) on <self:Lexer> */
519 var41 = self->attrs[COLOR_lexer_work__Lexer___file].val; /* _file on <self:Lexer> */
520 if (unlikely(var41 == NULL)) {
521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
522 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 94);
523 show_backtrace(1);
524 }
525 var39 = var41;
526 RET_LABEL40:(void)0;
527 }
528 }
529 {
530 { /* Inline parser_nodes#SourceFile#first_token= (var39,var_t) on <var39:SourceFile> */
531 var39->attrs[COLOR_parser_nodes__SourceFile___first_token].val = var_t; /* _first_token on <var39:SourceFile> */
532 RET_LABEL42:(void)0;
533 }
534 }
535 }
536 {
537 { /* Inline lexer_work#Lexer#last_token= (self,var_t) on <self:Lexer> */
538 self->attrs[COLOR_lexer_work__Lexer___last_token].val = var_t; /* _last_token on <self:Lexer> */
539 RET_LABEL43:(void)0;
540 }
541 }
542 } else {
543 }
544 self->attrs[COLOR_lexer_work__Lexer___token].val = var_t; /* _token on <self:Lexer> */
545 var = var_t;
546 goto RET_LABEL;
547 RET_LABEL:;
548 return var;
549 }
550 /* method lexer_work#Lexer#peek for (self: Object): Token */
551 val* VIRTUAL_lexer_work__Lexer__peek(val* self) {
552 val* var /* : Token */;
553 val* var1 /* : Token */;
554 var1 = lexer_work__Lexer__peek(self);
555 var = var1;
556 RET_LABEL:;
557 return var;
558 }
559 /* method lexer_work#Lexer#next for (self: Lexer): Token */
560 val* lexer_work__Lexer__next(val* self) {
561 val* var /* : Token */;
562 val* var1 /* : Token */;
563 val* var_result /* var result: Token */;
564 val* var2 /* : null */;
565 {
566 var1 = lexer_work__Lexer__peek(self);
567 }
568 var_result = var1;
569 var2 = NULL;
570 self->attrs[COLOR_lexer_work__Lexer___token].val = var2; /* _token on <self:Lexer> */
571 var = var_result;
572 goto RET_LABEL;
573 RET_LABEL:;
574 return var;
575 }
576 /* method lexer_work#Lexer#next for (self: Object): Token */
577 val* VIRTUAL_lexer_work__Lexer__next(val* self) {
578 val* var /* : Token */;
579 val* var1 /* : Token */;
580 var1 = lexer_work__Lexer__next(self);
581 var = var1;
582 RET_LABEL:;
583 return var;
584 }
585 /* method lexer_work#Lexer#get_token for (self: Lexer): nullable Token */
586 val* lexer_work__Lexer__get_token(val* self) {
587 val* var /* : nullable Token */;
588 long var1 /* : Int */;
589 long var_dfa_state /* var dfa_state: Int */;
590 long var2 /* : Int */;
591 long var_sp /* var sp: Int */;
592 long var_start_stream_pos /* var start_stream_pos: Int */;
593 long var3 /* : Int */;
594 long var_start_pos /* var start_pos: Int */;
595 long var4 /* : Int */;
596 long var_start_line /* var start_line: Int */;
597 val* var5 /* : SourceFile */;
598 val* var7 /* : SourceFile */;
599 val* var_file /* var file: SourceFile */;
600 val* var8 /* : String */;
601 val* var10 /* : String */;
602 val* var_string /* var string: String */;
603 long var11 /* : Int */;
604 long var13 /* : Int */;
605 long var_string_len /* var string_len: Int */;
606 long var14 /* : Int */;
607 long var15 /* : Int */;
608 long var17 /* : Int */;
609 long var_accept_state /* var accept_state: Int */;
610 long var18 /* : Int */;
611 long var19 /* : Int */;
612 long var21 /* : Int */;
613 long var_accept_token /* var accept_token: Int */;
614 long var22 /* : Int */;
615 long var23 /* : Int */;
616 long var25 /* : Int */;
617 long var_accept_length /* var accept_length: Int */;
618 long var26 /* : Int */;
619 long var27 /* : Int */;
620 long var29 /* : Int */;
621 long var_accept_pos /* var accept_pos: Int */;
622 long var30 /* : Int */;
623 long var31 /* : Int */;
624 long var33 /* : Int */;
625 long var_accept_line /* var accept_line: Int */;
626 short int var34 /* : Bool */;
627 short int var36 /* : Bool */;
628 int cltype;
629 int idtype;
630 const char* var_class_name;
631 short int var37 /* : Bool */;
632 long var38 /* : Int */;
633 long var39 /* : Int */;
634 long var41 /* : Int */;
635 val* var42 /* : SequenceRead[Char] */;
636 val* var44 /* : SequenceRead[Char] */;
637 val* var45 /* : nullable Object */;
638 long var46 /* : Int */;
639 char var48 /* : Char */;
640 long var49 /* : Int */;
641 long var_c /* var c: Int */;
642 long var50 /* : Int */;
643 long var51 /* : Int */;
644 short int var53 /* : Bool */;
645 int cltype54;
646 int idtype55;
647 const char* var_class_name56;
648 long var57 /* : Int */;
649 short int var58 /* : Bool */;
650 short int var_cr /* var cr: Bool */;
651 long var59 /* : Int */;
652 long var_line /* var line: Int */;
653 long var60 /* : Int */;
654 long var_pos /* var pos: Int */;
655 long var61 /* : Int */;
656 short int var62 /* : Bool */;
657 short int var63 /* : Bool */;
658 short int var65 /* : Bool */;
659 short int var66 /* : Bool */;
660 val* var67 /* : Array[Int] */;
661 val* var69 /* : Array[Int] */;
662 val* var70 /* : nullable Object */;
663 long var71 /* : Int */;
664 long var72 /* : Int */;
665 short int var74 /* : Bool */;
666 int cltype75;
667 int idtype76;
668 const char* var_class_name77;
669 long var78 /* : Int */;
670 long var79 /* : Int */;
671 val* var80 /* : Array[Int] */;
672 val* var82 /* : Array[Int] */;
673 val* var83 /* : nullable Object */;
674 long var84 /* : Int */;
675 short int var85 /* : Bool */;
676 short int var86 /* : Bool */;
677 short int var88 /* : Bool */;
678 long var89 /* : Int */;
679 long var90 /* : Int */;
680 short int var92 /* : Bool */;
681 int cltype93;
682 int idtype94;
683 const char* var_class_name95;
684 long var96 /* : Int */;
685 long var97 /* : Int */;
686 short int var98 /* : Bool */;
687 val* var99 /* : Array[Int] */;
688 val* var101 /* : Array[Int] */;
689 val* var102 /* : nullable Object */;
690 long var103 /* : Int */;
691 long var104 /* : Int */;
692 short int var106 /* : Bool */;
693 int cltype107;
694 int idtype108;
695 const char* var_class_name109;
696 long var110 /* : Int */;
697 short int var111 /* : Bool */;
698 long var_old_state /* var old_state: Int */;
699 long var112 /* : Int */;
700 long var113 /* : Int */;
701 long var115 /* : Int */;
702 short int var116 /* : Bool */;
703 short int var118 /* : Bool */;
704 int cltype119;
705 int idtype120;
706 const char* var_class_name121;
707 short int var122 /* : Bool */;
708 long var123 /* : Int */;
709 long var124 /* : Int */;
710 long var126 /* : Int */;
711 long var127 /* : Int */;
712 short int var129 /* : Bool */;
713 int cltype130;
714 int idtype131;
715 const char* var_class_name132;
716 long var133 /* : Int */;
717 long var134 /* : Int */;
718 long var135 /* : Int */;
719 long var137 /* : Int */;
720 long var138 /* : Int */;
721 long var_low /* var low: Int */;
722 long var139 /* : Int */;
723 long var140 /* : Int */;
724 long var142 /* : Int */;
725 long var143 /* : Int */;
726 long var144 /* : Int */;
727 short int var146 /* : Bool */;
728 int cltype147;
729 int idtype148;
730 const char* var_class_name149;
731 long var150 /* : Int */;
732 long var_high /* var high: Int */;
733 long var151 /* : Int */;
734 short int var152 /* : Bool */;
735 short int var154 /* : Bool */;
736 int cltype155;
737 int idtype156;
738 const char* var_class_name157;
739 short int var158 /* : Bool */;
740 short int var159 /* : Bool */;
741 short int var161 /* : Bool */;
742 int cltype162;
743 int idtype163;
744 const char* var_class_name164;
745 short int var165 /* : Bool */;
746 long var166 /* : Int */;
747 short int var168 /* : Bool */;
748 int cltype169;
749 int idtype170;
750 const char* var_class_name171;
751 long var172 /* : Int */;
752 long var173 /* : Int */;
753 long var174 /* : Int */;
754 short int var176 /* : Bool */;
755 int cltype177;
756 int idtype178;
757 const char* var_class_name179;
758 long var180 /* : Int */;
759 long var_middle /* var middle: Int */;
760 long var181 /* : Int */;
761 long var182 /* : Int */;
762 short int var184 /* : Bool */;
763 int cltype185;
764 int idtype186;
765 const char* var_class_name187;
766 long var188 /* : Int */;
767 long var189 /* : Int */;
768 long var190 /* : Int */;
769 short int var192 /* : Bool */;
770 int cltype193;
771 int idtype194;
772 const char* var_class_name195;
773 long var196 /* : Int */;
774 long var_offset /* var offset: Int */;
775 long var197 /* : Int */;
776 long var199 /* : Int */;
777 short int var200 /* : Bool */;
778 short int var202 /* : Bool */;
779 int cltype203;
780 int idtype204;
781 const char* var_class_name205;
782 short int var206 /* : Bool */;
783 long var207 /* : Int */;
784 long var208 /* : Int */;
785 short int var210 /* : Bool */;
786 int cltype211;
787 int idtype212;
788 const char* var_class_name213;
789 long var214 /* : Int */;
790 long var215 /* : Int */;
791 long var216 /* : Int */;
792 short int var218 /* : Bool */;
793 int cltype219;
794 int idtype220;
795 const char* var_class_name221;
796 long var222 /* : Int */;
797 long var223 /* : Int */;
798 long var225 /* : Int */;
799 short int var226 /* : Bool */;
800 short int var228 /* : Bool */;
801 int cltype229;
802 int idtype230;
803 const char* var_class_name231;
804 short int var232 /* : Bool */;
805 long var233 /* : Int */;
806 long var234 /* : Int */;
807 short int var236 /* : Bool */;
808 int cltype237;
809 int idtype238;
810 const char* var_class_name239;
811 long var240 /* : Int */;
812 long var241 /* : Int */;
813 long var242 /* : Int */;
814 short int var244 /* : Bool */;
815 int cltype245;
816 int idtype246;
817 const char* var_class_name247;
818 long var248 /* : Int */;
819 long var249 /* : Int */;
820 long var251 /* : Int */;
821 long var252 /* : Int */;
822 long var253 /* : Int */;
823 long var255 /* : Int */;
824 short int var256 /* : Bool */;
825 short int var258 /* : Bool */;
826 int cltype259;
827 int idtype260;
828 const char* var_class_name261;
829 short int var262 /* : Bool */;
830 long var264 /* : Int */;
831 short int var265 /* : Bool */;
832 short int var267 /* : Bool */;
833 int cltype268;
834 int idtype269;
835 const char* var_class_name270;
836 short int var271 /* : Bool */;
837 long var272 /* : Int */;
838 long var274 /* : Int */;
839 long var_tok /* var tok: Int */;
840 long var275 /* : Int */;
841 long var276 /* : Int */;
842 long var278 /* : Int */;
843 short int var279 /* : Bool */;
844 short int var280 /* : Bool */;
845 short int var282 /* : Bool */;
846 short int var283 /* : Bool */;
847 long var284 /* : Int */;
848 short int var286 /* : Bool */;
849 int cltype287;
850 int idtype288;
851 const char* var_class_name289;
852 long var290 /* : Int */;
853 long var291 /* : Int */;
854 long var292 /* : Int */;
855 long var293 /* : Int */;
856 long var294 /* : Int */;
857 long var296 /* : Int */;
858 short int var297 /* : Bool */;
859 short int var298 /* : Bool */;
860 short int var300 /* : Bool */;
861 short int var301 /* : Bool */;
862 val* var302 /* : Location */;
863 long var303 /* : Int */;
864 long var304 /* : Int */;
865 short int var306 /* : Bool */;
866 int cltype307;
867 int idtype308;
868 const char* var_class_name309;
869 long var310 /* : Int */;
870 long var311 /* : Int */;
871 long var312 /* : Int */;
872 short int var314 /* : Bool */;
873 int cltype315;
874 int idtype316;
875 const char* var_class_name317;
876 long var318 /* : Int */;
877 long var319 /* : Int */;
878 long var320 /* : Int */;
879 short int var322 /* : Bool */;
880 int cltype323;
881 int idtype324;
882 const char* var_class_name325;
883 long var326 /* : Int */;
884 val* var_location /* var location: Location */;
885 long var327 /* : Int */;
886 short int var329 /* : Bool */;
887 int cltype330;
888 int idtype331;
889 const char* var_class_name332;
890 long var333 /* : Int */;
891 long var334 /* : Int */;
892 short int var335 /* : Bool */;
893 short int var336 /* : Bool */;
894 short int var338 /* : Bool */;
895 val* var339 /* : null */;
896 val* var340 /* : Token */;
897 val* var341 /* : Location */;
898 long var342 /* : Int */;
899 long var343 /* : Int */;
900 short int var345 /* : Bool */;
901 int cltype346;
902 int idtype347;
903 const char* var_class_name348;
904 long var349 /* : Int */;
905 long var350 /* : Int */;
906 long var351 /* : Int */;
907 short int var353 /* : Bool */;
908 int cltype354;
909 int idtype355;
910 const char* var_class_name356;
911 long var357 /* : Int */;
912 long var358 /* : Int */;
913 long var359 /* : Int */;
914 short int var361 /* : Bool */;
915 int cltype362;
916 int idtype363;
917 const char* var_class_name364;
918 long var365 /* : Int */;
919 long var366 /* : Int */;
920 long var367 /* : Int */;
921 short int var369 /* : Bool */;
922 int cltype370;
923 int idtype371;
924 const char* var_class_name372;
925 long var373 /* : Int */;
926 val* var_location374 /* var location: Location */;
927 short int var375 /* : Bool */;
928 short int var377 /* : Bool */;
929 int cltype378;
930 int idtype379;
931 const char* var_class_name380;
932 short int var381 /* : Bool */;
933 long var382 /* : Int */;
934 short int var384 /* : Bool */;
935 int cltype385;
936 int idtype386;
937 const char* var_class_name387;
938 long var388 /* : Int */;
939 val* var389 /* : String */;
940 val* var_text /* var text: String */;
941 val* var390 /* : ALexerError */;
942 static val* varonce;
943 val* var391 /* : String */;
944 char* var392 /* : NativeString */;
945 long var393 /* : Int */;
946 val* var394 /* : FlatString */;
947 static val* varonce395;
948 val* var396 /* : String */;
949 char* var397 /* : NativeString */;
950 long var398 /* : Int */;
951 val* var399 /* : FlatString */;
952 val* var400 /* : Array[Object] */;
953 long var401 /* : Int */;
954 val* var402 /* : NativeArray[Object] */;
955 val* var403 /* : String */;
956 val* var_token /* var token: ALexerError */;
957 val* var405 /* : EOF */;
958 val* var_token406 /* var token: EOF */;
959 var1 = 0;
960 var_dfa_state = var1;
961 var2 = self->attrs[COLOR_lexer_work__Lexer___stream_pos].l; /* _stream_pos on <self:Lexer> */
962 var_sp = var2;
963 var_start_stream_pos = var_sp;
964 var3 = self->attrs[COLOR_lexer_work__Lexer___pos].l; /* _pos on <self:Lexer> */
965 var_start_pos = var3;
966 var4 = self->attrs[COLOR_lexer_work__Lexer___line].l; /* _line on <self:Lexer> */
967 var_start_line = var4;
968 {
969 { /* Inline lexer_work#Lexer#file (self) on <self:Lexer> */
970 var7 = self->attrs[COLOR_lexer_work__Lexer___file].val; /* _file on <self:Lexer> */
971 if (unlikely(var7 == NULL)) {
972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
973 PRINT_ERROR(" (%s:%d)\n", "src/parser/lexer_work.nit", 94);
974 show_backtrace(1);
975 }
976 var5 = var7;
977 RET_LABEL6:(void)0;
978 }
979 }
980 var_file = var5;
981 {
982 { /* Inline location#SourceFile#string (var_file) on <var_file:SourceFile> */
983 var10 = var_file->attrs[COLOR_location__SourceFile___string].val; /* _string on <var_file:SourceFile> */
984 if (unlikely(var10 == NULL)) {
985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
986 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 25);
987 show_backtrace(1);
988 }
989 var8 = var10;
990 RET_LABEL9:(void)0;
991 }
992 }
993 var_string = var8;
994 {
995 { /* Inline string#FlatText#length (var_string) on <var_string:String> */
996 var13 = var_string->attrs[COLOR_string__FlatText___length].l; /* _length on <var_string:String> */
997 var11 = var13;
998 RET_LABEL12:(void)0;
999 }
1000 }
1001 var_string_len = var11;
1002 var14 = 1;
1003 {
1004 { /* Inline kernel#Int#unary - (var14) on <var14:Int> */
1005 var17 = -var14;
1006 var15 = var17;
1007 goto RET_LABEL16;
1008 RET_LABEL16:(void)0;
1009 }
1010 }
1011 var_accept_state = var15;
1012 var18 = 1;
1013 {
1014 { /* Inline kernel#Int#unary - (var18) on <var18:Int> */
1015 var21 = -var18;
1016 var19 = var21;
1017 goto RET_LABEL20;
1018 RET_LABEL20:(void)0;
1019 }
1020 }
1021 var_accept_token = var19;
1022 var22 = 1;
1023 {
1024 { /* Inline kernel#Int#unary - (var22) on <var22:Int> */
1025 var25 = -var22;
1026 var23 = var25;
1027 goto RET_LABEL24;
1028 RET_LABEL24:(void)0;
1029 }
1030 }
1031 var_accept_length = var23;
1032 var26 = 1;
1033 {
1034 { /* Inline kernel#Int#unary - (var26) on <var26:Int> */
1035 var29 = -var26;
1036 var27 = var29;
1037 goto RET_LABEL28;
1038 RET_LABEL28:(void)0;
1039 }
1040 }
1041 var_accept_pos = var27;
1042 var30 = 1;
1043 {
1044 { /* Inline kernel#Int#unary - (var30) on <var30:Int> */
1045 var33 = -var30;
1046 var31 = var33;
1047 goto RET_LABEL32;
1048 RET_LABEL32:(void)0;
1049 }
1050 }
1051 var_accept_line = var31;
1052 for(;;) {
1053 {
1054 { /* Inline kernel#Int#>= (var_sp,var_string_len) on <var_sp:Int> */
1055 /* Covariant cast for argument 0 (i) <var_string_len:Int> isa OTHER */
1056 /* <var_string_len:Int> isa OTHER */
1057 var36 = 1; /* easy <var_string_len:Int> isa OTHER*/
1058 if (unlikely(!var36)) {
1059 var_class_name = type_kernel__Int.name;
1060 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1061 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
1062 show_backtrace(1);
1063 }
1064 var37 = var_sp >= var_string_len;
1065 var34 = var37;
1066 goto RET_LABEL35;
1067 RET_LABEL35:(void)0;
1068 }
1069 }
1070 if (var34){
1071 var38 = 1;
1072 {
1073 { /* Inline kernel#Int#unary - (var38) on <var38:Int> */
1074 var41 = -var38;
1075 var39 = var41;
1076 goto RET_LABEL40;
1077 RET_LABEL40:(void)0;
1078 }
1079 }
1080 var_dfa_state = var39;
1081 } else {
1082 {
1083 { /* Inline string#FlatString#chars (var_string) on <var_string:String> */
1084 var44 = var_string->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_string:String> */
1085 if (unlikely(var44 == NULL)) {
1086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1087 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
1088 show_backtrace(1);
1089 }
1090 var42 = var44;
1091 RET_LABEL43:(void)0;
1092 }
1093 }
1094 {
1095 var45 = ((val* (*)(val*, long))(var42->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var42, var_sp) /* [] on <var42:SequenceRead[Char]>*/;
1096 }
1097 {
1098 { /* Inline kernel#Char#ascii (var45) on <var45:nullable Object(Char)> */
1099 var48 = ((struct instance_kernel__Char*)var45)->value; /* autounbox from nullable Object to Char */;
1100 var49 = (unsigned char)var48;
1101 var46 = var49;
1102 goto RET_LABEL47;
1103 RET_LABEL47:(void)0;
1104 }
1105 }
1106 var_c = var46;
1107 var50 = 1;
1108 {
1109 { /* Inline kernel#Int#+ (var_sp,var50) on <var_sp:Int> */
1110 /* Covariant cast for argument 0 (i) <var50:Int> isa OTHER */
1111 /* <var50:Int> isa OTHER */
1112 var53 = 1; /* easy <var50:Int> isa OTHER*/
1113 if (unlikely(!var53)) {
1114 var_class_name56 = type_kernel__Int.name;
1115 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
1116 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1117 show_backtrace(1);
1118 }
1119 var57 = var_sp + var50;
1120 var51 = var57;
1121 goto RET_LABEL52;
1122 RET_LABEL52:(void)0;
1123 }
1124 }
1125 var_sp = var51;
1126 var58 = self->attrs[COLOR_lexer_work__Lexer___cr].s; /* _cr on <self:Lexer> */
1127 var_cr = var58;
1128 var59 = self->attrs[COLOR_lexer_work__Lexer___line].l; /* _line on <self:Lexer> */
1129 var_line = var59;
1130 var60 = self->attrs[COLOR_lexer_work__Lexer___pos].l; /* _pos on <self:Lexer> */
1131 var_pos = var60;
1132 var61 = 10;
1133 {
1134 { /* Inline kernel#Int#== (var_c,var61) on <var_c:Int> */
1135 var65 = var_c == var61;
1136 var63 = var65;
1137 goto RET_LABEL64;
1138 RET_LABEL64:(void)0;
1139 }
1140 var62 = var63;
1141 }
1142 if (var62){
1143 if (var_cr){
1144 var66 = 0;
1145 var_cr = var66;
1146 {
1147 { /* Inline location#SourceFile#line_starts (var_file) on <var_file:SourceFile> */
1148 var69 = var_file->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <var_file:SourceFile> */
1149 if (unlikely(var69 == NULL)) {
1150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
1151 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 44);
1152 show_backtrace(1);
1153 }
1154 var67 = var69;
1155 RET_LABEL68:(void)0;
1156 }
1157 }
1158 {
1159 var70 = BOX_kernel__Int(var_sp); /* autobox from Int to nullable Object */
1160 array__Array___91d_93d_61d(var67, var_line, var70); /* Direct call array#Array#[]= on <var67:Array[Int]>*/
1161 }
1162 } else {
1163 var71 = 1;
1164 {
1165 { /* Inline kernel#Int#+ (var_line,var71) on <var_line:Int> */
1166 /* Covariant cast for argument 0 (i) <var71:Int> isa OTHER */
1167 /* <var71:Int> isa OTHER */
1168 var74 = 1; /* easy <var71:Int> isa OTHER*/
1169 if (unlikely(!var74)) {
1170 var_class_name77 = type_kernel__Int.name;
1171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77);
1172 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1173 show_backtrace(1);
1174 }
1175 var78 = var_line + var71;
1176 var72 = var78;
1177 goto RET_LABEL73;
1178 RET_LABEL73:(void)0;
1179 }
1180 }
1181 var_line = var72;
1182 var79 = 0;
1183 var_pos = var79;
1184 {
1185 { /* Inline location#SourceFile#line_starts (var_file) on <var_file:SourceFile> */
1186 var82 = var_file->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <var_file:SourceFile> */
1187 if (unlikely(var82 == NULL)) {
1188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
1189 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 44);
1190 show_backtrace(1);
1191 }
1192 var80 = var82;
1193 RET_LABEL81:(void)0;
1194 }
1195 }
1196 {
1197 var83 = BOX_kernel__Int(var_sp); /* autobox from Int to nullable Object */
1198 array__Array___91d_93d_61d(var80, var_line, var83); /* Direct call array#Array#[]= on <var80:Array[Int]>*/
1199 }
1200 }
1201 } else {
1202 var84 = 13;
1203 {
1204 { /* Inline kernel#Int#== (var_c,var84) on <var_c:Int> */
1205 var88 = var_c == var84;
1206 var86 = var88;
1207 goto RET_LABEL87;
1208 RET_LABEL87:(void)0;
1209 }
1210 var85 = var86;
1211 }
1212 if (var85){
1213 var89 = 1;
1214 {
1215 { /* Inline kernel#Int#+ (var_line,var89) on <var_line:Int> */
1216 /* Covariant cast for argument 0 (i) <var89:Int> isa OTHER */
1217 /* <var89:Int> isa OTHER */
1218 var92 = 1; /* easy <var89:Int> isa OTHER*/
1219 if (unlikely(!var92)) {
1220 var_class_name95 = type_kernel__Int.name;
1221 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name95);
1222 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1223 show_backtrace(1);
1224 }
1225 var96 = var_line + var89;
1226 var90 = var96;
1227 goto RET_LABEL91;
1228 RET_LABEL91:(void)0;
1229 }
1230 }
1231 var_line = var90;
1232 var97 = 0;
1233 var_pos = var97;
1234 var98 = 1;
1235 var_cr = var98;
1236 {
1237 { /* Inline location#SourceFile#line_starts (var_file) on <var_file:SourceFile> */
1238 var101 = var_file->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <var_file:SourceFile> */
1239 if (unlikely(var101 == NULL)) {
1240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
1241 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 44);
1242 show_backtrace(1);
1243 }
1244 var99 = var101;
1245 RET_LABEL100:(void)0;
1246 }
1247 }
1248 {
1249 var102 = BOX_kernel__Int(var_sp); /* autobox from Int to nullable Object */
1250 array__Array___91d_93d_61d(var99, var_line, var102); /* Direct call array#Array#[]= on <var99:Array[Int]>*/
1251 }
1252 } else {
1253 var103 = 1;
1254 {
1255 { /* Inline kernel#Int#+ (var_pos,var103) on <var_pos:Int> */
1256 /* Covariant cast for argument 0 (i) <var103:Int> isa OTHER */
1257 /* <var103:Int> isa OTHER */
1258 var106 = 1; /* easy <var103:Int> isa OTHER*/
1259 if (unlikely(!var106)) {
1260 var_class_name109 = type_kernel__Int.name;
1261 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name109);
1262 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1263 show_backtrace(1);
1264 }
1265 var110 = var_pos + var103;
1266 var104 = var110;
1267 goto RET_LABEL105;
1268 RET_LABEL105:(void)0;
1269 }
1270 }
1271 var_pos = var104;
1272 var111 = 0;
1273 var_cr = var111;
1274 }
1275 }
1276 for(;;) {
1277 var_old_state = var_dfa_state;
1278 var112 = 1;
1279 {
1280 { /* Inline kernel#Int#unary - (var112) on <var112:Int> */
1281 var115 = -var112;
1282 var113 = var115;
1283 goto RET_LABEL114;
1284 RET_LABEL114:(void)0;
1285 }
1286 }
1287 {
1288 { /* Inline kernel#Int#< (var_dfa_state,var113) on <var_dfa_state:Int> */
1289 /* Covariant cast for argument 0 (i) <var113:Int> isa OTHER */
1290 /* <var113:Int> isa OTHER */
1291 var118 = 1; /* easy <var113:Int> isa OTHER*/
1292 if (unlikely(!var118)) {
1293 var_class_name121 = type_kernel__Int.name;
1294 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
1295 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1296 show_backtrace(1);
1297 }
1298 var122 = var_dfa_state < var113;
1299 var116 = var122;
1300 goto RET_LABEL117;
1301 RET_LABEL117:(void)0;
1302 }
1303 }
1304 if (var116){
1305 var123 = 2;
1306 {
1307 { /* Inline kernel#Int#unary - (var123) on <var123:Int> */
1308 var126 = -var123;
1309 var124 = var126;
1310 goto RET_LABEL125;
1311 RET_LABEL125:(void)0;
1312 }
1313 }
1314 {
1315 { /* Inline kernel#Int#- (var124,var_dfa_state) on <var124:Int> */
1316 /* Covariant cast for argument 0 (i) <var_dfa_state:Int> isa OTHER */
1317 /* <var_dfa_state:Int> isa OTHER */
1318 var129 = 1; /* easy <var_dfa_state:Int> isa OTHER*/
1319 if (unlikely(!var129)) {
1320 var_class_name132 = type_kernel__Int.name;
1321 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name132);
1322 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1323 show_backtrace(1);
1324 }
1325 var133 = var124 - var_dfa_state;
1326 var127 = var133;
1327 goto RET_LABEL128;
1328 RET_LABEL128:(void)0;
1329 }
1330 }
1331 var_old_state = var127;
1332 } else {
1333 }
1334 var134 = 1;
1335 {
1336 { /* Inline kernel#Int#unary - (var134) on <var134:Int> */
1337 var137 = -var134;
1338 var135 = var137;
1339 goto RET_LABEL136;
1340 RET_LABEL136:(void)0;
1341 }
1342 }
1343 var_dfa_state = var135;
1344 var138 = 0;
1345 var_low = var138;
1346 var139 = 0;
1347 {
1348 { /* Inline tables#TablesCapable#lexer_goto (self,var_old_state,var139) on <self:Lexer> */
1349 var142 = lexer_goto(self, var_old_state, var139);
1350 var140 = var142;
1351 goto RET_LABEL141;
1352 RET_LABEL141:(void)0;
1353 }
1354 }
1355 var143 = 1;
1356 {
1357 { /* Inline kernel#Int#- (var140,var143) on <var140:Int> */
1358 /* Covariant cast for argument 0 (i) <var143:Int> isa OTHER */
1359 /* <var143:Int> isa OTHER */
1360 var146 = 1; /* easy <var143:Int> isa OTHER*/
1361 if (unlikely(!var146)) {
1362 var_class_name149 = type_kernel__Int.name;
1363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name149);
1364 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1365 show_backtrace(1);
1366 }
1367 var150 = var140 - var143;
1368 var144 = var150;
1369 goto RET_LABEL145;
1370 RET_LABEL145:(void)0;
1371 }
1372 }
1373 var_high = var144;
1374 var151 = 0;
1375 {
1376 { /* Inline kernel#Int#>= (var_high,var151) on <var_high:Int> */
1377 /* Covariant cast for argument 0 (i) <var151:Int> isa OTHER */
1378 /* <var151:Int> isa OTHER */
1379 var154 = 1; /* easy <var151:Int> isa OTHER*/
1380 if (unlikely(!var154)) {
1381 var_class_name157 = type_kernel__Int.name;
1382 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name157);
1383 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
1384 show_backtrace(1);
1385 }
1386 var158 = var_high >= var151;
1387 var152 = var158;
1388 goto RET_LABEL153;
1389 RET_LABEL153:(void)0;
1390 }
1391 }
1392 if (var152){
1393 for(;;) {
1394 {
1395 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
1396 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
1397 /* <var_high:Int> isa OTHER */
1398 var161 = 1; /* easy <var_high:Int> isa OTHER*/
1399 if (unlikely(!var161)) {
1400 var_class_name164 = type_kernel__Int.name;
1401 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name164);
1402 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
1403 show_backtrace(1);
1404 }
1405 var165 = var_low <= var_high;
1406 var159 = var165;
1407 goto RET_LABEL160;
1408 RET_LABEL160:(void)0;
1409 }
1410 }
1411 if (!var159) break;
1412 {
1413 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
1414 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
1415 /* <var_high:Int> isa OTHER */
1416 var168 = 1; /* easy <var_high:Int> isa OTHER*/
1417 if (unlikely(!var168)) {
1418 var_class_name171 = type_kernel__Int.name;
1419 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name171);
1420 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1421 show_backtrace(1);
1422 }
1423 var172 = var_low + var_high;
1424 var166 = var172;
1425 goto RET_LABEL167;
1426 RET_LABEL167:(void)0;
1427 }
1428 }
1429 var173 = 2;
1430 {
1431 { /* Inline kernel#Int#/ (var166,var173) on <var166:Int> */
1432 /* Covariant cast for argument 0 (i) <var173:Int> isa OTHER */
1433 /* <var173:Int> isa OTHER */
1434 var176 = 1; /* easy <var173:Int> isa OTHER*/
1435 if (unlikely(!var176)) {
1436 var_class_name179 = type_kernel__Int.name;
1437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name179);
1438 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 333);
1439 show_backtrace(1);
1440 }
1441 var180 = var166 / var173;
1442 var174 = var180;
1443 goto RET_LABEL175;
1444 RET_LABEL175:(void)0;
1445 }
1446 }
1447 var_middle = var174;
1448 var181 = 3;
1449 {
1450 { /* Inline kernel#Int#* (var_middle,var181) on <var_middle:Int> */
1451 /* Covariant cast for argument 0 (i) <var181:Int> isa OTHER */
1452 /* <var181:Int> isa OTHER */
1453 var184 = 1; /* easy <var181:Int> isa OTHER*/
1454 if (unlikely(!var184)) {
1455 var_class_name187 = type_kernel__Int.name;
1456 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name187);
1457 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 332);
1458 show_backtrace(1);
1459 }
1460 var188 = var_middle * var181;
1461 var182 = var188;
1462 goto RET_LABEL183;
1463 RET_LABEL183:(void)0;
1464 }
1465 }
1466 var189 = 1;
1467 {
1468 { /* Inline kernel#Int#+ (var182,var189) on <var182:Int> */
1469 /* Covariant cast for argument 0 (i) <var189:Int> isa OTHER */
1470 /* <var189:Int> isa OTHER */
1471 var192 = 1; /* easy <var189:Int> isa OTHER*/
1472 if (unlikely(!var192)) {
1473 var_class_name195 = type_kernel__Int.name;
1474 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name195);
1475 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1476 show_backtrace(1);
1477 }
1478 var196 = var182 + var189;
1479 var190 = var196;
1480 goto RET_LABEL191;
1481 RET_LABEL191:(void)0;
1482 }
1483 }
1484 var_offset = var190;
1485 {
1486 { /* Inline tables#TablesCapable#lexer_goto (self,var_old_state,var_offset) on <self:Lexer> */
1487 var199 = lexer_goto(self, var_old_state, var_offset);
1488 var197 = var199;
1489 goto RET_LABEL198;
1490 RET_LABEL198:(void)0;
1491 }
1492 }
1493 {
1494 { /* Inline kernel#Int#< (var_c,var197) on <var_c:Int> */
1495 /* Covariant cast for argument 0 (i) <var197:Int> isa OTHER */
1496 /* <var197:Int> isa OTHER */
1497 var202 = 1; /* easy <var197:Int> isa OTHER*/
1498 if (unlikely(!var202)) {
1499 var_class_name205 = type_kernel__Int.name;
1500 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name205);
1501 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1502 show_backtrace(1);
1503 }
1504 var206 = var_c < var197;
1505 var200 = var206;
1506 goto RET_LABEL201;
1507 RET_LABEL201:(void)0;
1508 }
1509 }
1510 if (var200){
1511 var207 = 1;
1512 {
1513 { /* Inline kernel#Int#- (var_middle,var207) on <var_middle:Int> */
1514 /* Covariant cast for argument 0 (i) <var207:Int> isa OTHER */
1515 /* <var207:Int> isa OTHER */
1516 var210 = 1; /* easy <var207:Int> isa OTHER*/
1517 if (unlikely(!var210)) {
1518 var_class_name213 = type_kernel__Int.name;
1519 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name213);
1520 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1521 show_backtrace(1);
1522 }
1523 var214 = var_middle - var207;
1524 var208 = var214;
1525 goto RET_LABEL209;
1526 RET_LABEL209:(void)0;
1527 }
1528 }
1529 var_high = var208;
1530 } else {
1531 var215 = 1;
1532 {
1533 { /* Inline kernel#Int#+ (var_offset,var215) on <var_offset:Int> */
1534 /* Covariant cast for argument 0 (i) <var215:Int> isa OTHER */
1535 /* <var215:Int> isa OTHER */
1536 var218 = 1; /* easy <var215:Int> isa OTHER*/
1537 if (unlikely(!var218)) {
1538 var_class_name221 = type_kernel__Int.name;
1539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name221);
1540 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1541 show_backtrace(1);
1542 }
1543 var222 = var_offset + var215;
1544 var216 = var222;
1545 goto RET_LABEL217;
1546 RET_LABEL217:(void)0;
1547 }
1548 }
1549 {
1550 { /* Inline tables#TablesCapable#lexer_goto (self,var_old_state,var216) on <self:Lexer> */
1551 var225 = lexer_goto(self, var_old_state, var216);
1552 var223 = var225;
1553 goto RET_LABEL224;
1554 RET_LABEL224:(void)0;
1555 }
1556 }
1557 {
1558 { /* Inline kernel#Int#> (var_c,var223) on <var_c:Int> */
1559 /* Covariant cast for argument 0 (i) <var223:Int> isa OTHER */
1560 /* <var223:Int> isa OTHER */
1561 var228 = 1; /* easy <var223:Int> isa OTHER*/
1562 if (unlikely(!var228)) {
1563 var_class_name231 = type_kernel__Int.name;
1564 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name231);
1565 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1566 show_backtrace(1);
1567 }
1568 var232 = var_c > var223;
1569 var226 = var232;
1570 goto RET_LABEL227;
1571 RET_LABEL227:(void)0;
1572 }
1573 }
1574 if (var226){
1575 var233 = 1;
1576 {
1577 { /* Inline kernel#Int#+ (var_middle,var233) on <var_middle:Int> */
1578 /* Covariant cast for argument 0 (i) <var233:Int> isa OTHER */
1579 /* <var233:Int> isa OTHER */
1580 var236 = 1; /* easy <var233:Int> isa OTHER*/
1581 if (unlikely(!var236)) {
1582 var_class_name239 = type_kernel__Int.name;
1583 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name239);
1584 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1585 show_backtrace(1);
1586 }
1587 var240 = var_middle + var233;
1588 var234 = var240;
1589 goto RET_LABEL235;
1590 RET_LABEL235:(void)0;
1591 }
1592 }
1593 var_low = var234;
1594 } else {
1595 var241 = 2;
1596 {
1597 { /* Inline kernel#Int#+ (var_offset,var241) on <var_offset:Int> */
1598 /* Covariant cast for argument 0 (i) <var241:Int> isa OTHER */
1599 /* <var241:Int> isa OTHER */
1600 var244 = 1; /* easy <var241:Int> isa OTHER*/
1601 if (unlikely(!var244)) {
1602 var_class_name247 = type_kernel__Int.name;
1603 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name247);
1604 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1605 show_backtrace(1);
1606 }
1607 var248 = var_offset + var241;
1608 var242 = var248;
1609 goto RET_LABEL243;
1610 RET_LABEL243:(void)0;
1611 }
1612 }
1613 {
1614 { /* Inline tables#TablesCapable#lexer_goto (self,var_old_state,var242) on <self:Lexer> */
1615 var251 = lexer_goto(self, var_old_state, var242);
1616 var249 = var251;
1617 goto RET_LABEL250;
1618 RET_LABEL250:(void)0;
1619 }
1620 }
1621 var_dfa_state = var249;
1622 goto BREAK_label;
1623 }
1624 }
1625 CONTINUE_label: (void)0;
1626 }
1627 BREAK_label: (void)0;
1628 } else {
1629 }
1630 var252 = 2;
1631 {
1632 { /* Inline kernel#Int#unary - (var252) on <var252:Int> */
1633 var255 = -var252;
1634 var253 = var255;
1635 goto RET_LABEL254;
1636 RET_LABEL254:(void)0;
1637 }
1638 }
1639 {
1640 { /* Inline kernel#Int#> (var_dfa_state,var253) on <var_dfa_state:Int> */
1641 /* Covariant cast for argument 0 (i) <var253:Int> isa OTHER */
1642 /* <var253:Int> isa OTHER */
1643 var258 = 1; /* easy <var253:Int> isa OTHER*/
1644 if (unlikely(!var258)) {
1645 var_class_name261 = type_kernel__Int.name;
1646 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name261);
1647 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1648 show_backtrace(1);
1649 }
1650 var262 = var_dfa_state > var253;
1651 var256 = var262;
1652 goto RET_LABEL257;
1653 RET_LABEL257:(void)0;
1654 }
1655 }
1656 if (var256){
1657 goto BREAK_label263;
1658 } else {
1659 }
1660 CONTINUE_label263: (void)0;
1661 }
1662 BREAK_label263: (void)0;
1663 self->attrs[COLOR_lexer_work__Lexer___cr].s = var_cr; /* _cr on <self:Lexer> */
1664 self->attrs[COLOR_lexer_work__Lexer___line].l = var_line; /* _line on <self:Lexer> */
1665 self->attrs[COLOR_lexer_work__Lexer___pos].l = var_pos; /* _pos on <self:Lexer> */
1666 }
1667 var264 = 0;
1668 {
1669 { /* Inline kernel#Int#>= (var_dfa_state,var264) on <var_dfa_state:Int> */
1670 /* Covariant cast for argument 0 (i) <var264:Int> isa OTHER */
1671 /* <var264:Int> isa OTHER */
1672 var267 = 1; /* easy <var264:Int> isa OTHER*/
1673 if (unlikely(!var267)) {
1674 var_class_name270 = type_kernel__Int.name;
1675 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name270);
1676 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
1677 show_backtrace(1);
1678 }
1679 var271 = var_dfa_state >= var264;
1680 var265 = var271;
1681 goto RET_LABEL266;
1682 RET_LABEL266:(void)0;
1683 }
1684 }
1685 if (var265){
1686 {
1687 { /* Inline tables#TablesCapable#lexer_accept (self,var_dfa_state) on <self:Lexer> */
1688 var274 = lexer_accept(self, var_dfa_state);
1689 var272 = var274;
1690 goto RET_LABEL273;
1691 RET_LABEL273:(void)0;
1692 }
1693 }
1694 var_tok = var272;
1695 var275 = 1;
1696 {
1697 { /* Inline kernel#Int#unary - (var275) on <var275:Int> */
1698 var278 = -var275;
1699 var276 = var278;
1700 goto RET_LABEL277;
1701 RET_LABEL277:(void)0;
1702 }
1703 }
1704 {
1705 { /* Inline kernel#Int#!= (var_tok,var276) on <var_tok:Int> */
1706 var282 = var_tok == var276;
1707 var283 = !var282;
1708 var280 = var283;
1709 goto RET_LABEL281;
1710 RET_LABEL281:(void)0;
1711 }
1712 var279 = var280;
1713 }
1714 if (var279){
1715 var_accept_state = var_dfa_state;
1716 var_accept_token = var_tok;
1717 {
1718 { /* Inline kernel#Int#- (var_sp,var_start_stream_pos) on <var_sp:Int> */
1719 /* Covariant cast for argument 0 (i) <var_start_stream_pos:Int> isa OTHER */
1720 /* <var_start_stream_pos:Int> isa OTHER */
1721 var286 = 1; /* easy <var_start_stream_pos:Int> isa OTHER*/
1722 if (unlikely(!var286)) {
1723 var_class_name289 = type_kernel__Int.name;
1724 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name289);
1725 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1726 show_backtrace(1);
1727 }
1728 var290 = var_sp - var_start_stream_pos;
1729 var284 = var290;
1730 goto RET_LABEL285;
1731 RET_LABEL285:(void)0;
1732 }
1733 }
1734 var_accept_length = var284;
1735 var291 = self->attrs[COLOR_lexer_work__Lexer___pos].l; /* _pos on <self:Lexer> */
1736 var_accept_pos = var291;
1737 var292 = self->attrs[COLOR_lexer_work__Lexer___line].l; /* _line on <self:Lexer> */
1738 var_accept_line = var292;
1739 } else {
1740 }
1741 } else {
1742 var293 = 1;
1743 {
1744 { /* Inline kernel#Int#unary - (var293) on <var293:Int> */
1745 var296 = -var293;
1746 var294 = var296;
1747 goto RET_LABEL295;
1748 RET_LABEL295:(void)0;
1749 }
1750 }
1751 {
1752 { /* Inline kernel#Int#!= (var_accept_state,var294) on <var_accept_state:Int> */
1753 var300 = var_accept_state == var294;
1754 var301 = !var300;
1755 var298 = var301;
1756 goto RET_LABEL299;
1757 RET_LABEL299:(void)0;
1758 }
1759 var297 = var298;
1760 }
1761 if (var297){
1762 var302 = NEW_location__Location(&type_location__Location);
1763 var303 = 1;
1764 {
1765 { /* Inline kernel#Int#+ (var_start_line,var303) on <var_start_line:Int> */
1766 /* Covariant cast for argument 0 (i) <var303:Int> isa OTHER */
1767 /* <var303:Int> isa OTHER */
1768 var306 = 1; /* easy <var303:Int> isa OTHER*/
1769 if (unlikely(!var306)) {
1770 var_class_name309 = type_kernel__Int.name;
1771 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name309);
1772 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1773 show_backtrace(1);
1774 }
1775 var310 = var_start_line + var303;
1776 var304 = var310;
1777 goto RET_LABEL305;
1778 RET_LABEL305:(void)0;
1779 }
1780 }
1781 var311 = 1;
1782 {
1783 { /* Inline kernel#Int#+ (var_accept_line,var311) on <var_accept_line:Int> */
1784 /* Covariant cast for argument 0 (i) <var311:Int> isa OTHER */
1785 /* <var311:Int> isa OTHER */
1786 var314 = 1; /* easy <var311:Int> isa OTHER*/
1787 if (unlikely(!var314)) {
1788 var_class_name317 = type_kernel__Int.name;
1789 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name317);
1790 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1791 show_backtrace(1);
1792 }
1793 var318 = var_accept_line + var311;
1794 var312 = var318;
1795 goto RET_LABEL313;
1796 RET_LABEL313:(void)0;
1797 }
1798 }
1799 var319 = 1;
1800 {
1801 { /* Inline kernel#Int#+ (var_start_pos,var319) on <var_start_pos:Int> */
1802 /* Covariant cast for argument 0 (i) <var319:Int> isa OTHER */
1803 /* <var319:Int> isa OTHER */
1804 var322 = 1; /* easy <var319:Int> isa OTHER*/
1805 if (unlikely(!var322)) {
1806 var_class_name325 = type_kernel__Int.name;
1807 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name325);
1808 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1809 show_backtrace(1);
1810 }
1811 var326 = var_start_pos + var319;
1812 var320 = var326;
1813 goto RET_LABEL321;
1814 RET_LABEL321:(void)0;
1815 }
1816 }
1817 {
1818 location__Location__init(var302, var_file, var304, var312, var320, var_accept_pos); /* Direct call location#Location#init on <var302:Location>*/
1819 }
1820 var_location = var302;
1821 self->attrs[COLOR_lexer_work__Lexer___pos].l = var_accept_pos; /* _pos on <self:Lexer> */
1822 self->attrs[COLOR_lexer_work__Lexer___line].l = var_accept_line; /* _line on <self:Lexer> */
1823 {
1824 { /* Inline kernel#Int#+ (var_start_stream_pos,var_accept_length) on <var_start_stream_pos:Int> */
1825 /* Covariant cast for argument 0 (i) <var_accept_length:Int> isa OTHER */
1826 /* <var_accept_length:Int> isa OTHER */
1827 var329 = 1; /* easy <var_accept_length:Int> isa OTHER*/
1828 if (unlikely(!var329)) {
1829 var_class_name332 = type_kernel__Int.name;
1830 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name332);
1831 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1832 show_backtrace(1);
1833 }
1834 var333 = var_start_stream_pos + var_accept_length;
1835 var327 = var333;
1836 goto RET_LABEL328;
1837 RET_LABEL328:(void)0;
1838 }
1839 }
1840 self->attrs[COLOR_lexer_work__Lexer___stream_pos].l = var327; /* _stream_pos on <self:Lexer> */
1841 var334 = 0;
1842 {
1843 { /* Inline kernel#Int#== (var_accept_token,var334) on <var_accept_token:Int> */
1844 var338 = var_accept_token == var334;
1845 var336 = var338;
1846 goto RET_LABEL337;
1847 RET_LABEL337:(void)0;
1848 }
1849 var335 = var336;
1850 }
1851 if (var335){
1852 var339 = NULL;
1853 var = var339;
1854 goto RET_LABEL;
1855 } else {
1856 }
1857 {
1858 var340 = lexer__Lexer__make_token(self, var_accept_token, var_location);
1859 }
1860 var = var340;
1861 goto RET_LABEL;
1862 } else {
1863 self->attrs[COLOR_lexer_work__Lexer___stream_pos].l = var_sp; /* _stream_pos on <self:Lexer> */
1864 var341 = NEW_location__Location(&type_location__Location);
1865 var342 = 1;
1866 {
1867 { /* Inline kernel#Int#+ (var_start_line,var342) on <var_start_line:Int> */
1868 /* Covariant cast for argument 0 (i) <var342:Int> isa OTHER */
1869 /* <var342:Int> isa OTHER */
1870 var345 = 1; /* easy <var342:Int> isa OTHER*/
1871 if (unlikely(!var345)) {
1872 var_class_name348 = type_kernel__Int.name;
1873 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name348);
1874 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1875 show_backtrace(1);
1876 }
1877 var349 = var_start_line + var342;
1878 var343 = var349;
1879 goto RET_LABEL344;
1880 RET_LABEL344:(void)0;
1881 }
1882 }
1883 var350 = 1;
1884 {
1885 { /* Inline kernel#Int#+ (var_start_line,var350) on <var_start_line:Int> */
1886 /* Covariant cast for argument 0 (i) <var350:Int> isa OTHER */
1887 /* <var350:Int> isa OTHER */
1888 var353 = 1; /* easy <var350:Int> isa OTHER*/
1889 if (unlikely(!var353)) {
1890 var_class_name356 = type_kernel__Int.name;
1891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name356);
1892 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1893 show_backtrace(1);
1894 }
1895 var357 = var_start_line + var350;
1896 var351 = var357;
1897 goto RET_LABEL352;
1898 RET_LABEL352:(void)0;
1899 }
1900 }
1901 var358 = 1;
1902 {
1903 { /* Inline kernel#Int#+ (var_start_pos,var358) on <var_start_pos:Int> */
1904 /* Covariant cast for argument 0 (i) <var358:Int> isa OTHER */
1905 /* <var358:Int> isa OTHER */
1906 var361 = 1; /* easy <var358:Int> isa OTHER*/
1907 if (unlikely(!var361)) {
1908 var_class_name364 = type_kernel__Int.name;
1909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name364);
1910 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1911 show_backtrace(1);
1912 }
1913 var365 = var_start_pos + var358;
1914 var359 = var365;
1915 goto RET_LABEL360;
1916 RET_LABEL360:(void)0;
1917 }
1918 }
1919 var366 = 1;
1920 {
1921 { /* Inline kernel#Int#+ (var_start_pos,var366) on <var_start_pos:Int> */
1922 /* Covariant cast for argument 0 (i) <var366:Int> isa OTHER */
1923 /* <var366:Int> isa OTHER */
1924 var369 = 1; /* easy <var366:Int> isa OTHER*/
1925 if (unlikely(!var369)) {
1926 var_class_name372 = type_kernel__Int.name;
1927 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name372);
1928 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1929 show_backtrace(1);
1930 }
1931 var373 = var_start_pos + var366;
1932 var367 = var373;
1933 goto RET_LABEL368;
1934 RET_LABEL368:(void)0;
1935 }
1936 }
1937 {
1938 location__Location__init(var341, var_file, var343, var351, var359, var367); /* Direct call location#Location#init on <var341:Location>*/
1939 }
1940 var_location374 = var341;
1941 {
1942 { /* Inline kernel#Int#> (var_sp,var_start_stream_pos) on <var_sp:Int> */
1943 /* Covariant cast for argument 0 (i) <var_start_stream_pos:Int> isa OTHER */
1944 /* <var_start_stream_pos:Int> isa OTHER */
1945 var377 = 1; /* easy <var_start_stream_pos:Int> isa OTHER*/
1946 if (unlikely(!var377)) {
1947 var_class_name380 = type_kernel__Int.name;
1948 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name380);
1949 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1950 show_backtrace(1);
1951 }
1952 var381 = var_sp > var_start_stream_pos;
1953 var375 = var381;
1954 goto RET_LABEL376;
1955 RET_LABEL376:(void)0;
1956 }
1957 }
1958 if (var375){
1959 {
1960 { /* Inline kernel#Int#- (var_sp,var_start_stream_pos) on <var_sp:Int> */
1961 /* Covariant cast for argument 0 (i) <var_start_stream_pos:Int> isa OTHER */
1962 /* <var_start_stream_pos:Int> isa OTHER */
1963 var384 = 1; /* easy <var_start_stream_pos:Int> isa OTHER*/
1964 if (unlikely(!var384)) {
1965 var_class_name387 = type_kernel__Int.name;
1966 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name387);
1967 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1968 show_backtrace(1);
1969 }
1970 var388 = var_sp - var_start_stream_pos;
1971 var382 = var388;
1972 goto RET_LABEL383;
1973 RET_LABEL383:(void)0;
1974 }
1975 }
1976 {
1977 var389 = string__FlatString__substring(var_string, var_start_stream_pos, var382);
1978 }
1979 var_text = var389;
1980 var390 = NEW_parser_nodes__ALexerError(&type_parser_nodes__ALexerError);
1981 if (varonce) {
1982 var391 = varonce;
1983 } else {
1984 var392 = "Syntax error: unknown token ";
1985 var393 = 28;
1986 var394 = string__NativeString__to_s_with_length(var392, var393);
1987 var391 = var394;
1988 varonce = var391;
1989 }
1990 if (varonce395) {
1991 var396 = varonce395;
1992 } else {
1993 var397 = ".";
1994 var398 = 1;
1995 var399 = string__NativeString__to_s_with_length(var397, var398);
1996 var396 = var399;
1997 varonce395 = var396;
1998 }
1999 var400 = NEW_array__Array(&type_array__Arraykernel__Object);
2000 { /* var400 = array_instance Array[Object] */
2001 var401 = 3;
2002 var402 = NEW_array__NativeArray(var401, &type_array__NativeArraykernel__Object);
2003 ((struct instance_array__NativeArray*)var402)->values[0] = (val*) var391;
2004 ((struct instance_array__NativeArray*)var402)->values[1] = (val*) var_text;
2005 ((struct instance_array__NativeArray*)var402)->values[2] = (val*) var396;
2006 {
2007 ((void (*)(val*, val*, long))(var400->class->vft[COLOR_array__Array__with_native]))(var400, var402, var401) /* with_native on <var400:Array[Object]>*/;
2008 }
2009 }
2010 {
2011 var403 = ((val* (*)(val*))(var400->class->vft[COLOR_string__Object__to_s]))(var400) /* to_s on <var400:Array[Object]>*/;
2012 }
2013 {
2014 lexer_work__ALexerError__init_lexer_error(var390, var403, var_location374, var_text); /* Direct call lexer_work#ALexerError#init_lexer_error on <var390:ALexerError>*/
2015 }
2016 var_token = var390;
2017 {
2018 { /* Inline parser_nodes#SourceFile#last_token= (var_file,var_token) on <var_file:SourceFile> */
2019 var_file->attrs[COLOR_parser_nodes__SourceFile___last_token].val = var_token; /* _last_token on <var_file:SourceFile> */
2020 RET_LABEL404:(void)0;
2021 }
2022 }
2023 var = var_token;
2024 goto RET_LABEL;
2025 } else {
2026 var405 = NEW_parser_nodes__EOF(&type_parser_nodes__EOF);
2027 {
2028 lexer_work__EOF__init_tk(var405, var_location374); /* Direct call lexer_work#EOF#init_tk on <var405:EOF>*/
2029 }
2030 var_token406 = var405;
2031 {
2032 { /* Inline parser_nodes#SourceFile#last_token= (var_file,var_token406) on <var_file:SourceFile> */
2033 var_file->attrs[COLOR_parser_nodes__SourceFile___last_token].val = var_token406; /* _last_token on <var_file:SourceFile> */
2034 RET_LABEL407:(void)0;
2035 }
2036 }
2037 var = var_token406;
2038 goto RET_LABEL;
2039 }
2040 }
2041 }
2042 CONTINUE_label408: (void)0;
2043 }
2044 BREAK_label408: (void)0;
2045 RET_LABEL:;
2046 return var;
2047 }
2048 /* method lexer_work#Lexer#get_token for (self: Object): nullable Token */
2049 val* VIRTUAL_lexer_work__Lexer__get_token(val* self) {
2050 val* var /* : nullable Token */;
2051 val* var1 /* : nullable Token */;
2052 var1 = lexer_work__Lexer__get_token(self);
2053 var = var1;
2054 RET_LABEL:;
2055 return var;
2056 }