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