README: document nit_env.sh
[nit.git] / c_src / standard__stream.sep.1.c
1 #include "standard__stream.sep.0.h"
2 /* method stream#Stream#last_error for (self: Stream): nullable IOError */
3 val* standard___standard__Stream___last_error(val* self) {
4 val* var /* : nullable IOError */;
5 val* var1 /* : nullable IOError */;
6 var1 = self->attrs[COLOR_standard__stream__Stream___last_error].val; /* _last_error on <self:Stream> */
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method stream#Stream#last_error= for (self: Stream, nullable IOError) */
12 void standard___standard__Stream___last_error_61d(val* self, val* p0) {
13 self->attrs[COLOR_standard__stream__Stream___last_error].val = p0; /* _last_error on <self:Stream> */
14 RET_LABEL:;
15 }
16 /* method stream#Reader#read for (self: Reader, Int): String */
17 val* standard___standard__Reader___read(val* self, long p0) {
18 val* var /* : String */;
19 long var_i /* var i: Int */;
20 val* var1 /* : Bytes */;
21 val* var2 /* : String */;
22 var_i = p0;
23 {
24 var1 = standard___standard__BufferedReader___Reader__read_bytes(self, var_i);
25 }
26 {
27 var2 = standard___standard__Bytes___standard__string__Object__to_s(var1);
28 }
29 var = var2;
30 goto RET_LABEL;
31 RET_LABEL:;
32 return var;
33 }
34 /* method stream#Reader#read_line for (self: Reader): String */
35 val* standard___standard__Reader___read_line(val* self) {
36 val* var /* : String */;
37 val* var1 /* : nullable IOError */;
38 val* var3 /* : nullable IOError */;
39 short int var4 /* : Bool */;
40 short int var5 /* : Bool */;
41 val* var_other /* var other: nullable Object */;
42 short int var7 /* : Bool */;
43 short int var8 /* : Bool */;
44 static val* varonce;
45 val* var9 /* : String */;
46 char* var10 /* : NativeString */;
47 val* var11 /* : FlatString */;
48 short int var12 /* : Bool */;
49 static val* varonce13;
50 val* var14 /* : String */;
51 char* var15 /* : NativeString */;
52 val* var16 /* : FlatString */;
53 val* var17 /* : FlatBuffer */;
54 val* var_s /* var s: FlatBuffer */;
55 val* var19 /* : String */;
56 val* var20 /* : Text */;
57 {
58 { /* Inline stream#Stream#last_error (self) on <self:Reader> */
59 var3 = self->attrs[COLOR_standard__stream__Stream___last_error].val; /* _last_error on <self:Reader> */
60 var1 = var3;
61 RET_LABEL2:(void)0;
62 }
63 }
64 if (var1 == NULL) {
65 var4 = 0; /* is null */
66 } else {
67 var4 = 1; /* arg is null and recv is not */
68 }
69 if (0) {
70 { /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable IOError> */
71 var_other = ((val*)NULL);
72 {
73 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
74 }
75 var8 = !var7;
76 var5 = var8;
77 goto RET_LABEL6;
78 RET_LABEL6:(void)0;
79 }
80 var4 = var5;
81 }
82 if (var4){
83 if (likely(varonce!=NULL)) {
84 var9 = varonce;
85 } else {
86 var10 = "";
87 var11 = standard___standard__NativeString___to_s_with_length(var10, 0l);
88 var9 = var11;
89 varonce = var9;
90 }
91 var = var9;
92 goto RET_LABEL;
93 } else {
94 }
95 {
96 var12 = standard___standard__BufferedReader___Reader__eof(self);
97 }
98 if (var12){
99 if (likely(varonce13!=NULL)) {
100 var14 = varonce13;
101 } else {
102 var15 = "";
103 var16 = standard___standard__NativeString___to_s_with_length(var15, 0l);
104 var14 = var16;
105 varonce13 = var14;
106 }
107 var = var14;
108 goto RET_LABEL;
109 } else {
110 }
111 var17 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer);
112 {
113 { /* Inline string#FlatBuffer#init (var17) on <var17:FlatBuffer> */
114 {
115 ((void(*)(val* self))(var17->class->vft[COLOR_standard___standard__FlatBuffer___standard__kernel__Object__init]))(var17); /* init on <var17:FlatBuffer>*/
116 }
117 RET_LABEL18:(void)0;
118 }
119 }
120 var_s = var17;
121 {
122 standard___standard__BufferedReader___Reader__append_line_to(self, var_s); /* Direct call stream#BufferedReader#append_line_to on <self:Reader>*/
123 }
124 {
125 var19 = standard___standard__FlatBuffer___Object__to_s(var_s);
126 }
127 {
128 var20 = standard___standard__Text___chomp(var19);
129 }
130 var = var20;
131 goto RET_LABEL;
132 RET_LABEL:;
133 return var;
134 }
135 /* method stream#Reader#read_all for (self: Reader): String */
136 val* standard___standard__Reader___read_all(val* self) {
137 val* var /* : String */;
138 val* var1 /* : Bytes */;
139 val* var2 /* : String */;
140 {
141 var1 = standard___standard__BufferedReader___Reader__read_all_bytes(self);
142 }
143 {
144 var2 = standard___standard__Bytes___standard__string__Object__to_s(var1);
145 }
146 var = var2;
147 goto RET_LABEL;
148 RET_LABEL:;
149 return var;
150 }
151 /* method stream#Text#write_to for (self: Text, Writer) */
152 void standard__stream___Text___Writable__write_to(val* self, val* p0) {
153 val* var_stream /* var stream: Writer */;
154 var_stream = p0;
155 {
156 standard___standard__FileWriter___standard__stream__Writer__write(var_stream, self); /* Direct call file#FileWriter#write on <var_stream:Writer>*/
157 }
158 RET_LABEL:;
159 }
160 /* method stream#BufferedReader#buffer_reset for (self: BufferedReader) */
161 void standard___standard__BufferedReader___buffer_reset(val* self) {
162 self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l = 0l; /* _buffer_length on <self:BufferedReader> */
163 self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l = 0l; /* _buffer_pos on <self:BufferedReader> */
164 RET_LABEL:;
165 }
166 /* method stream#BufferedReader#read_bytes for (self: BufferedReader, Int): Bytes */
167 val* standard___standard__BufferedReader___Reader__read_bytes(val* self, long p0) {
168 val* var /* : Bytes */;
169 long var_i /* var i: Int */;
170 val* var1 /* : nullable IOError */;
171 val* var3 /* : nullable IOError */;
172 short int var4 /* : Bool */;
173 short int var5 /* : Bool */;
174 val* var_other /* var other: nullable Object */;
175 short int var7 /* : Bool */;
176 short int var8 /* : Bool */;
177 val* var9 /* : Bytes */;
178 val* var10 /* : Bytes */;
179 val* var_buf /* var buf: Bytes */;
180 long var11 /* : Int */;
181 var_i = p0;
182 {
183 { /* Inline stream#Stream#last_error (self) on <self:BufferedReader> */
184 var3 = self->attrs[COLOR_standard__stream__Stream___last_error].val; /* _last_error on <self:BufferedReader> */
185 var1 = var3;
186 RET_LABEL2:(void)0;
187 }
188 }
189 if (var1 == NULL) {
190 var4 = 0; /* is null */
191 } else {
192 var4 = 1; /* arg is null and recv is not */
193 }
194 if (0) {
195 { /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable IOError> */
196 var_other = ((val*)NULL);
197 {
198 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
199 }
200 var8 = !var7;
201 var5 = var8;
202 goto RET_LABEL6;
203 RET_LABEL6:(void)0;
204 }
205 var4 = var5;
206 }
207 if (var4){
208 var9 = NEW_standard__Bytes(&type_standard__Bytes);
209 {
210 standard___standard__Bytes___empty(var9); /* Direct call bytes#Bytes#empty on <var9:Bytes>*/
211 }
212 var = var9;
213 goto RET_LABEL;
214 } else {
215 }
216 var10 = NEW_standard__Bytes(&type_standard__Bytes);
217 {
218 standard___standard__Bytes___with_capacity(var10, var_i); /* Direct call bytes#Bytes#with_capacity on <var10:Bytes>*/
219 }
220 var_buf = var10;
221 {
222 var11 = standard___standard__BufferedReader___read_intern(self, var_i, var_buf);
223 }
224 var = var_buf;
225 goto RET_LABEL;
226 RET_LABEL:;
227 return var;
228 }
229 /* method stream#BufferedReader#read_intern for (self: BufferedReader, Int, Bytes): Int */
230 long standard___standard__BufferedReader___read_intern(val* self, long p0, val* p1) {
231 long var /* : Int */;
232 long var_i /* var i: Int */;
233 val* var_buf /* var buf: Bytes */;
234 short int var1 /* : Bool */;
235 long var2 /* : Int */;
236 long var_p /* var p: Int */;
237 long var3 /* : Int */;
238 long var4 /* : Int */;
239 short int var6 /* : Bool */;
240 int cltype;
241 int idtype;
242 const char* var_class_name;
243 long var7 /* : Int */;
244 long var_bufsp /* var bufsp: Int */;
245 short int var8 /* : Bool */;
246 short int var10 /* : Bool */;
247 int cltype11;
248 int idtype12;
249 const char* var_class_name13;
250 short int var14 /* : Bool */;
251 val* var_ /* var : BufferedReader */;
252 long var15 /* : Int */;
253 long var16 /* : Int */;
254 short int var18 /* : Bool */;
255 int cltype19;
256 int idtype20;
257 const char* var_class_name21;
258 long var22 /* : Int */;
259 char* var23 /* : NativeString */;
260 long var24 /* : Int */;
261 long var25 /* : Int */;
262 long var26 /* : Int */;
263 short int var28 /* : Bool */;
264 int cltype29;
265 int idtype30;
266 const char* var_class_name31;
267 long var32 /* : Int */;
268 long var_readln /* var readln: Int */;
269 char* var33 /* : NativeString */;
270 long var34 /* : Int */;
271 short int var36 /* : Bool */;
272 int cltype37;
273 int idtype38;
274 const char* var_class_name39;
275 long var40 /* : Int */;
276 long var41 /* : Int */;
277 long var_rd /* var rd: Int */;
278 long var42 /* : Int */;
279 short int var44 /* : Bool */;
280 int cltype45;
281 int idtype46;
282 const char* var_class_name47;
283 long var48 /* : Int */;
284 var_i = p0;
285 var_buf = p1;
286 {
287 var1 = standard___standard__BufferedReader___Reader__eof(self);
288 }
289 if (var1){
290 var = 0l;
291 goto RET_LABEL;
292 } else {
293 }
294 var2 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
295 var_p = var2;
296 var3 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
297 {
298 { /* Inline kernel#Int#- (var3,var_p) on <var3:Int> */
299 /* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
300 /* <var_p:Int> isa OTHER */
301 var6 = 1; /* easy <var_p:Int> isa OTHER*/
302 if (unlikely(!var6)) {
303 var_class_name = type_standard__Int.name;
304 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
305 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
306 fatal_exit(1);
307 }
308 var7 = var3 - var_p;
309 var4 = var7;
310 goto RET_LABEL5;
311 RET_LABEL5:(void)0;
312 }
313 }
314 var_bufsp = var4;
315 {
316 { /* Inline kernel#Int#>= (var_bufsp,var_i) on <var_bufsp:Int> */
317 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
318 /* <var_i:Int> isa OTHER */
319 var10 = 1; /* easy <var_i:Int> isa OTHER*/
320 if (unlikely(!var10)) {
321 var_class_name13 = type_standard__Int.name;
322 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
323 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
324 fatal_exit(1);
325 }
326 var14 = var_bufsp >= var_i;
327 var8 = var14;
328 goto RET_LABEL9;
329 RET_LABEL9:(void)0;
330 }
331 }
332 if (var8){
333 var_ = self;
334 var15 = var_->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <var_:BufferedReader> */
335 {
336 { /* Inline kernel#Int#+ (var15,var_i) on <var15:Int> */
337 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
338 /* <var_i:Int> isa OTHER */
339 var18 = 1; /* easy <var_i:Int> isa OTHER*/
340 if (unlikely(!var18)) {
341 var_class_name21 = type_standard__Int.name;
342 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
343 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
344 fatal_exit(1);
345 }
346 var22 = var15 + var_i;
347 var16 = var22;
348 goto RET_LABEL17;
349 RET_LABEL17:(void)0;
350 }
351 }
352 var_->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l = var16; /* _buffer_pos on <var_:BufferedReader> */
353 var23 = self->attrs[COLOR_standard__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
354 {
355 standard___standard__Bytes___append_ns_from(var_buf, var23, var_i, var_p); /* Direct call bytes#Bytes#append_ns_from on <var_buf:Bytes>*/
356 }
357 var = var_i;
358 goto RET_LABEL;
359 } else {
360 }
361 var24 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
362 self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l = var24; /* _buffer_pos on <self:BufferedReader> */
363 var25 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
364 {
365 { /* Inline kernel#Int#- (var25,var_p) on <var25:Int> */
366 /* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
367 /* <var_p:Int> isa OTHER */
368 var28 = 1; /* easy <var_p:Int> isa OTHER*/
369 if (unlikely(!var28)) {
370 var_class_name31 = type_standard__Int.name;
371 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
372 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
373 fatal_exit(1);
374 }
375 var32 = var25 - var_p;
376 var26 = var32;
377 goto RET_LABEL27;
378 RET_LABEL27:(void)0;
379 }
380 }
381 var_readln = var26;
382 var33 = self->attrs[COLOR_standard__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
383 {
384 standard___standard__Bytes___append_ns_from(var_buf, var33, var_readln, var_p); /* Direct call bytes#Bytes#append_ns_from on <var_buf:Bytes>*/
385 }
386 {
387 { /* Inline kernel#Int#- (var_i,var_readln) on <var_i:Int> */
388 /* Covariant cast for argument 0 (i) <var_readln:Int> isa OTHER */
389 /* <var_readln:Int> isa OTHER */
390 var36 = 1; /* easy <var_readln:Int> isa OTHER*/
391 if (unlikely(!var36)) {
392 var_class_name39 = type_standard__Int.name;
393 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
394 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
395 fatal_exit(1);
396 }
397 var40 = var_i - var_readln;
398 var34 = var40;
399 goto RET_LABEL35;
400 RET_LABEL35:(void)0;
401 }
402 }
403 {
404 var41 = standard___standard__BufferedReader___read_intern(self, var34, var_buf);
405 }
406 var_rd = var41;
407 {
408 { /* Inline kernel#Int#+ (var_rd,var_readln) on <var_rd:Int> */
409 /* Covariant cast for argument 0 (i) <var_readln:Int> isa OTHER */
410 /* <var_readln:Int> isa OTHER */
411 var44 = 1; /* easy <var_readln:Int> isa OTHER*/
412 if (unlikely(!var44)) {
413 var_class_name47 = type_standard__Int.name;
414 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
415 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
416 fatal_exit(1);
417 }
418 var48 = var_rd + var_readln;
419 var42 = var48;
420 goto RET_LABEL43;
421 RET_LABEL43:(void)0;
422 }
423 }
424 var = var42;
425 goto RET_LABEL;
426 RET_LABEL:;
427 return var;
428 }
429 /* method stream#BufferedReader#read_all_bytes for (self: BufferedReader): Bytes */
430 val* standard___standard__BufferedReader___Reader__read_all_bytes(val* self) {
431 val* var /* : Bytes */;
432 val* var1 /* : nullable IOError */;
433 val* var3 /* : nullable IOError */;
434 short int var4 /* : Bool */;
435 short int var5 /* : Bool */;
436 val* var_other /* var other: nullable Object */;
437 short int var7 /* : Bool */;
438 short int var8 /* : Bool */;
439 val* var9 /* : Bytes */;
440 val* var10 /* : Bytes */;
441 val* var_s /* var s: Bytes */;
442 short int var11 /* : Bool */;
443 short int var12 /* : Bool */;
444 long var13 /* : Int */;
445 long var_j /* var j: Int */;
446 long var14 /* : Int */;
447 long var_k /* var k: Int */;
448 short int var15 /* : Bool */;
449 short int var17 /* : Bool */;
450 int cltype;
451 int idtype;
452 const char* var_class_name;
453 short int var18 /* : Bool */;
454 char* var19 /* : NativeString */;
455 uint32_t var20 /* : Char */;
456 uint32_t var22 /* : Char */;
457 long var23 /* : Int */;
458 long var25 /* : Int */;
459 long var26 /* : Int */;
460 short int var28 /* : Bool */;
461 int cltype29;
462 int idtype30;
463 const char* var_class_name31;
464 long var32 /* : Int */;
465 {
466 { /* Inline stream#Stream#last_error (self) on <self:BufferedReader> */
467 var3 = self->attrs[COLOR_standard__stream__Stream___last_error].val; /* _last_error on <self:BufferedReader> */
468 var1 = var3;
469 RET_LABEL2:(void)0;
470 }
471 }
472 if (var1 == NULL) {
473 var4 = 0; /* is null */
474 } else {
475 var4 = 1; /* arg is null and recv is not */
476 }
477 if (0) {
478 { /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable IOError> */
479 var_other = ((val*)NULL);
480 {
481 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
482 }
483 var8 = !var7;
484 var5 = var8;
485 goto RET_LABEL6;
486 RET_LABEL6:(void)0;
487 }
488 var4 = var5;
489 }
490 if (var4){
491 var9 = NEW_standard__Bytes(&type_standard__Bytes);
492 {
493 standard___standard__Bytes___empty(var9); /* Direct call bytes#Bytes#empty on <var9:Bytes>*/
494 }
495 var = var9;
496 goto RET_LABEL;
497 } else {
498 }
499 var10 = NEW_standard__Bytes(&type_standard__Bytes);
500 {
501 standard___standard__Bytes___with_capacity(var10, 10l); /* Direct call bytes#Bytes#with_capacity on <var10:Bytes>*/
502 }
503 var_s = var10;
504 for(;;) {
505 {
506 var11 = standard___standard__BufferedReader___Reader__eof(self);
507 }
508 var12 = !var11;
509 if (var12){
510 var13 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
511 var_j = var13;
512 var14 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
513 var_k = var14;
514 for(;;) {
515 {
516 { /* Inline kernel#Int#< (var_j,var_k) on <var_j:Int> */
517 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
518 /* <var_k:Int> isa OTHER */
519 var17 = 1; /* easy <var_k:Int> isa OTHER*/
520 if (unlikely(!var17)) {
521 var_class_name = type_standard__Int.name;
522 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
523 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
524 fatal_exit(1);
525 }
526 var18 = var_j < var_k;
527 var15 = var18;
528 goto RET_LABEL16;
529 RET_LABEL16:(void)0;
530 }
531 }
532 if (var15){
533 var19 = self->attrs[COLOR_standard__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
534 {
535 { /* Inline string#NativeString#[] (var19,var_j) on <var19:NativeString> */
536 var22 = (uint32_t)(unsigned char)var19[var_j];
537 var20 = var22;
538 goto RET_LABEL21;
539 RET_LABEL21:(void)0;
540 }
541 }
542 {
543 { /* Inline kernel#Char#ascii (var20) on <var20:Char> */
544 var25 = (long)var20;
545 var23 = var25;
546 goto RET_LABEL24;
547 RET_LABEL24:(void)0;
548 }
549 }
550 {
551 standard___standard__Bytes___standard__abstract_collection__SimpleCollection__add(var_s, var23); /* Direct call bytes#Bytes#add on <var_s:Bytes>*/
552 }
553 {
554 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
555 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
556 /* <1l:Int> isa OTHER */
557 var28 = 1; /* easy <1l:Int> isa OTHER*/
558 if (unlikely(!var28)) {
559 var_class_name31 = type_standard__Int.name;
560 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
561 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
562 fatal_exit(1);
563 }
564 var32 = var_j + 1l;
565 var26 = var32;
566 goto RET_LABEL27;
567 RET_LABEL27:(void)0;
568 }
569 }
570 var_j = var26;
571 } else {
572 goto BREAK_label;
573 }
574 }
575 BREAK_label: (void)0;
576 self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l = var_j; /* _buffer_pos on <self:BufferedReader> */
577 {
578 standard___standard__FileReader___standard__stream__BufferedReader__fill_buffer(self); /* Direct call file#FileReader#fill_buffer on <self:BufferedReader>*/
579 }
580 } else {
581 goto BREAK_label33;
582 }
583 }
584 BREAK_label33: (void)0;
585 var = var_s;
586 goto RET_LABEL;
587 RET_LABEL:;
588 return var;
589 }
590 /* method stream#BufferedReader#append_line_to for (self: BufferedReader, Buffer) */
591 void standard___standard__BufferedReader___Reader__append_line_to(val* self, val* p0) {
592 val* var_s /* var s: Buffer */;
593 long var /* : Int */;
594 long var_i /* var i: Int */;
595 short int var1 /* : Bool */;
596 long var2 /* : Int */;
597 short int var3 /* : Bool */;
598 short int var5 /* : Bool */;
599 int cltype;
600 int idtype;
601 const char* var_class_name;
602 short int var6 /* : Bool */;
603 short int var_ /* var : Bool */;
604 char* var7 /* : NativeString */;
605 uint32_t var8 /* : Char */;
606 uint32_t var10 /* : Char */;
607 short int var11 /* : Bool */;
608 short int var13 /* : Bool */;
609 short int var14 /* : Bool */;
610 long var15 /* : Int */;
611 short int var17 /* : Bool */;
612 int cltype18;
613 int idtype19;
614 const char* var_class_name20;
615 long var21 /* : Int */;
616 long var22 /* : Int */;
617 short int var23 /* : Bool */;
618 short int var25 /* : Bool */;
619 int cltype26;
620 int idtype27;
621 const char* var_class_name28;
622 short int var29 /* : Bool */;
623 char* var30 /* : NativeString */;
624 uint32_t var31 /* : Char */;
625 uint32_t var33 /* : Char */;
626 short int var34 /* : Bool */;
627 short int var36 /* : Bool */;
628 long var37 /* : Int */;
629 short int var39 /* : Bool */;
630 int cltype40;
631 int idtype41;
632 const char* var_class_name42;
633 long var43 /* : Int */;
634 val* var44 /* : nullable Object */;
635 val* var_eol /* var eol: nullable Object */;
636 val* var45 /* : nullable Object */;
637 long var46 /* : Int */;
638 short int var47 /* : Bool */;
639 short int var49 /* : Bool */;
640 int cltype50;
641 int idtype51;
642 const char* var_class_name52;
643 short int var53 /* : Bool */;
644 long var54 /* : Int */;
645 long var55 /* : Int */;
646 short int var57 /* : Bool */;
647 int cltype58;
648 int idtype59;
649 const char* var_class_name60;
650 long var61 /* : Int */;
651 long var62 /* : Int */;
652 long var63 /* : Int */;
653 short int var65 /* : Bool */;
654 int cltype66;
655 int idtype67;
656 const char* var_class_name68;
657 long var69 /* : Int */;
658 long var70 /* : Int */;
659 long var_j /* var j: Int */;
660 short int var71 /* : Bool */;
661 short int var73 /* : Bool */;
662 int cltype74;
663 int idtype75;
664 const char* var_class_name76;
665 short int var77 /* : Bool */;
666 char* var78 /* : NativeString */;
667 uint32_t var79 /* : Char */;
668 uint32_t var81 /* : Char */;
669 long var82 /* : Int */;
670 short int var84 /* : Bool */;
671 int cltype85;
672 int idtype86;
673 const char* var_class_name87;
674 long var88 /* : Int */;
675 short int var90 /* : Bool */;
676 short int var92 /* : Bool */;
677 short int var93 /* : Bool */;
678 short int var94 /* : Bool */;
679 short int var96 /* : Bool */;
680 var_s = p0;
681 for(;;) {
682 var = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
683 var_i = var;
684 for(;;) {
685 var2 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
686 {
687 { /* Inline kernel#Int#< (var_i,var2) on <var_i:Int> */
688 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
689 /* <var2:Int> isa OTHER */
690 var5 = 1; /* easy <var2:Int> isa OTHER*/
691 if (unlikely(!var5)) {
692 var_class_name = type_standard__Int.name;
693 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
694 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
695 fatal_exit(1);
696 }
697 var6 = var_i < var2;
698 var3 = var6;
699 goto RET_LABEL4;
700 RET_LABEL4:(void)0;
701 }
702 }
703 var_ = var3;
704 if (var3){
705 var7 = self->attrs[COLOR_standard__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
706 {
707 { /* Inline string#NativeString#[] (var7,var_i) on <var7:NativeString> */
708 var10 = (uint32_t)(unsigned char)var7[var_i];
709 var8 = var10;
710 goto RET_LABEL9;
711 RET_LABEL9:(void)0;
712 }
713 }
714 {
715 { /* Inline kernel#Char#!= (var8,'\n') on <var8:Char> */
716 var13 = var8 == '\n';
717 var14 = !var13;
718 var11 = var14;
719 goto RET_LABEL12;
720 RET_LABEL12:(void)0;
721 }
722 }
723 var1 = var11;
724 } else {
725 var1 = var_;
726 }
727 if (var1){
728 {
729 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
730 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
731 /* <1l:Int> isa OTHER */
732 var17 = 1; /* easy <1l:Int> isa OTHER*/
733 if (unlikely(!var17)) {
734 var_class_name20 = type_standard__Int.name;
735 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
736 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
737 fatal_exit(1);
738 }
739 var21 = var_i + 1l;
740 var15 = var21;
741 goto RET_LABEL16;
742 RET_LABEL16:(void)0;
743 }
744 }
745 var_i = var15;
746 } else {
747 goto BREAK_label;
748 }
749 }
750 BREAK_label: (void)0;
751 var22 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
752 {
753 { /* Inline kernel#Int#< (var_i,var22) on <var_i:Int> */
754 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
755 /* <var22:Int> isa OTHER */
756 var25 = 1; /* easy <var22:Int> isa OTHER*/
757 if (unlikely(!var25)) {
758 var_class_name28 = type_standard__Int.name;
759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
760 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
761 fatal_exit(1);
762 }
763 var29 = var_i < var22;
764 var23 = var29;
765 goto RET_LABEL24;
766 RET_LABEL24:(void)0;
767 }
768 }
769 if (var23){
770 var30 = self->attrs[COLOR_standard__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
771 {
772 { /* Inline string#NativeString#[] (var30,var_i) on <var30:NativeString> */
773 var33 = (uint32_t)(unsigned char)var30[var_i];
774 var31 = var33;
775 goto RET_LABEL32;
776 RET_LABEL32:(void)0;
777 }
778 }
779 {
780 { /* Inline kernel#Char#== (var31,'\n') on <var31:Char> */
781 var36 = var31 == '\n';
782 var34 = var36;
783 goto RET_LABEL35;
784 RET_LABEL35:(void)0;
785 }
786 }
787 if (unlikely(!var34)) {
788 PRINT_ERROR("Runtime error: %s", "Assert failed");
789 PRINT_ERROR(" (%s:%d)\n", FILE_standard__stream, 519);
790 fatal_exit(1);
791 }
792 {
793 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
794 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
795 /* <1l:Int> isa OTHER */
796 var39 = 1; /* easy <1l:Int> isa OTHER*/
797 if (unlikely(!var39)) {
798 var_class_name42 = type_standard__Int.name;
799 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
800 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
801 fatal_exit(1);
802 }
803 var43 = var_i + 1l;
804 var37 = var43;
805 goto RET_LABEL38;
806 RET_LABEL38:(void)0;
807 }
808 }
809 var_i = var37;
810 var44 = (val*)((long)(1)<<2|3);
811 var_eol = var44;
812 } else {
813 var45 = (val*)((long)(0)<<2|3);
814 var_eol = var45;
815 }
816 var46 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
817 {
818 { /* Inline kernel#Int#> (var_i,var46) on <var_i:Int> */
819 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
820 /* <var46:Int> isa OTHER */
821 var49 = 1; /* easy <var46:Int> isa OTHER*/
822 if (unlikely(!var49)) {
823 var_class_name52 = type_standard__Int.name;
824 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
825 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
826 fatal_exit(1);
827 }
828 var53 = var_i > var46;
829 var47 = var53;
830 goto RET_LABEL48;
831 RET_LABEL48:(void)0;
832 }
833 }
834 if (var47){
835 {
836 var54 = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on <var_s:Buffer>*/
837 }
838 {
839 { /* Inline kernel#Int#+ (var54,var_i) on <var54:Int> */
840 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
841 /* <var_i:Int> isa OTHER */
842 var57 = 1; /* easy <var_i:Int> isa OTHER*/
843 if (unlikely(!var57)) {
844 var_class_name60 = type_standard__Int.name;
845 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
846 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
847 fatal_exit(1);
848 }
849 var61 = var54 + var_i;
850 var55 = var61;
851 goto RET_LABEL56;
852 RET_LABEL56:(void)0;
853 }
854 }
855 var62 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
856 {
857 { /* Inline kernel#Int#- (var55,var62) on <var55:Int> */
858 /* Covariant cast for argument 0 (i) <var62:Int> isa OTHER */
859 /* <var62:Int> isa OTHER */
860 var65 = 1; /* easy <var62:Int> isa OTHER*/
861 if (unlikely(!var65)) {
862 var_class_name68 = type_standard__Int.name;
863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
864 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
865 fatal_exit(1);
866 }
867 var69 = var55 - var62;
868 var63 = var69;
869 goto RET_LABEL64;
870 RET_LABEL64:(void)0;
871 }
872 }
873 {
874 ((void(*)(val* self, long p0))(var_s->class->vft[COLOR_standard__string__Buffer__enlarge]))(var_s, var63); /* enlarge on <var_s:Buffer>*/
875 }
876 var70 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
877 var_j = var70;
878 for(;;) {
879 {
880 { /* Inline kernel#Int#< (var_j,var_i) on <var_j:Int> */
881 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
882 /* <var_i:Int> isa OTHER */
883 var73 = 1; /* easy <var_i:Int> isa OTHER*/
884 if (unlikely(!var73)) {
885 var_class_name76 = type_standard__Int.name;
886 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76);
887 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
888 fatal_exit(1);
889 }
890 var77 = var_j < var_i;
891 var71 = var77;
892 goto RET_LABEL72;
893 RET_LABEL72:(void)0;
894 }
895 }
896 if (var71){
897 var78 = self->attrs[COLOR_standard__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
898 {
899 { /* Inline string#NativeString#[] (var78,var_j) on <var78:NativeString> */
900 var81 = (uint32_t)(unsigned char)var78[var_j];
901 var79 = var81;
902 goto RET_LABEL80;
903 RET_LABEL80:(void)0;
904 }
905 }
906 {
907 ((void(*)(val* self, uint32_t p0))(var_s->class->vft[COLOR_standard__string__Buffer__add]))(var_s, var79); /* add on <var_s:Buffer>*/
908 }
909 {
910 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
911 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
912 /* <1l:Int> isa OTHER */
913 var84 = 1; /* easy <1l:Int> isa OTHER*/
914 if (unlikely(!var84)) {
915 var_class_name87 = type_standard__Int.name;
916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name87);
917 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
918 fatal_exit(1);
919 }
920 var88 = var_j + 1l;
921 var82 = var88;
922 goto RET_LABEL83;
923 RET_LABEL83:(void)0;
924 }
925 }
926 var_j = var82;
927 } else {
928 goto BREAK_label89;
929 }
930 }
931 BREAK_label89: (void)0;
932 self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l = var_i; /* _buffer_pos on <self:BufferedReader> */
933 } else {
934 {
935 { /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
936 var92 = self->attrs[COLOR_standard__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
937 var90 = var92;
938 RET_LABEL91:(void)0;
939 }
940 }
941 if (unlikely(!var90)) {
942 PRINT_ERROR("Runtime error: %s", "Assert failed");
943 PRINT_ERROR(" (%s:%d)\n", FILE_standard__stream, 539);
944 fatal_exit(1);
945 }
946 goto RET_LABEL;
947 }
948 var93 = (short int)((long)(var_eol)>>2);
949 if (var93){
950 goto RET_LABEL;
951 } else {
952 {
953 { /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
954 var96 = self->attrs[COLOR_standard__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
955 var94 = var96;
956 RET_LABEL95:(void)0;
957 }
958 }
959 if (var94){
960 goto RET_LABEL;
961 } else {
962 }
963 {
964 standard___standard__FileReader___standard__stream__BufferedReader__fill_buffer(self); /* Direct call file#FileReader#fill_buffer on <self:BufferedReader>*/
965 }
966 }
967 }
968 RET_LABEL:;
969 }
970 /* method stream#BufferedReader#eof for (self: BufferedReader): Bool */
971 short int standard___standard__BufferedReader___Reader__eof(val* self) {
972 short int var /* : Bool */;
973 long var1 /* : Int */;
974 long var2 /* : Int */;
975 short int var3 /* : Bool */;
976 short int var5 /* : Bool */;
977 int cltype;
978 int idtype;
979 const char* var_class_name;
980 short int var6 /* : Bool */;
981 short int var7 /* : Bool */;
982 short int var9 /* : Bool */;
983 short int var10 /* : Bool */;
984 long var11 /* : Int */;
985 long var12 /* : Int */;
986 short int var13 /* : Bool */;
987 short int var15 /* : Bool */;
988 int cltype16;
989 int idtype17;
990 const char* var_class_name18;
991 short int var19 /* : Bool */;
992 short int var_ /* var : Bool */;
993 short int var20 /* : Bool */;
994 short int var22 /* : Bool */;
995 var1 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
996 var2 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
997 {
998 { /* Inline kernel#Int#< (var1,var2) on <var1:Int> */
999 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1000 /* <var2:Int> isa OTHER */
1001 var5 = 1; /* easy <var2:Int> isa OTHER*/
1002 if (unlikely(!var5)) {
1003 var_class_name = type_standard__Int.name;
1004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1005 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1006 fatal_exit(1);
1007 }
1008 var6 = var1 < var2;
1009 var3 = var6;
1010 goto RET_LABEL4;
1011 RET_LABEL4:(void)0;
1012 }
1013 }
1014 if (var3){
1015 var = 0;
1016 goto RET_LABEL;
1017 } else {
1018 }
1019 {
1020 { /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
1021 var9 = self->attrs[COLOR_standard__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
1022 var7 = var9;
1023 RET_LABEL8:(void)0;
1024 }
1025 }
1026 if (var7){
1027 var = 1;
1028 goto RET_LABEL;
1029 } else {
1030 }
1031 {
1032 standard___standard__FileReader___standard__stream__BufferedReader__fill_buffer(self); /* Direct call file#FileReader#fill_buffer on <self:BufferedReader>*/
1033 }
1034 var11 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
1035 var12 = self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
1036 {
1037 { /* Inline kernel#Int#>= (var11,var12) on <var11:Int> */
1038 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
1039 /* <var12:Int> isa OTHER */
1040 var15 = 1; /* easy <var12:Int> isa OTHER*/
1041 if (unlikely(!var15)) {
1042 var_class_name18 = type_standard__Int.name;
1043 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1044 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1045 fatal_exit(1);
1046 }
1047 var19 = var11 >= var12;
1048 var13 = var19;
1049 goto RET_LABEL14;
1050 RET_LABEL14:(void)0;
1051 }
1052 }
1053 var_ = var13;
1054 if (var13){
1055 {
1056 { /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
1057 var22 = self->attrs[COLOR_standard__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
1058 var20 = var22;
1059 RET_LABEL21:(void)0;
1060 }
1061 }
1062 var10 = var20;
1063 } else {
1064 var10 = var_;
1065 }
1066 var = var10;
1067 goto RET_LABEL;
1068 RET_LABEL:;
1069 return var;
1070 }
1071 /* method stream#BufferedReader#prepare_buffer for (self: BufferedReader, Int) */
1072 void standard___standard__BufferedReader___prepare_buffer(val* self, long p0) {
1073 long var_capacity /* var capacity: Int */;
1074 char* var /* : NativeString */;
1075 char* var1 /* : NativeString */;
1076 char* var3 /* : NativeString */;
1077 var_capacity = p0;
1078 var = NULL/*special!*/;
1079 {
1080 { /* Inline string#NativeString#new (var,var_capacity) on <var:NativeString> */
1081 var3 = (char*)nit_alloc(var_capacity);
1082 var1 = var3;
1083 goto RET_LABEL2;
1084 RET_LABEL2:(void)0;
1085 }
1086 }
1087 self->attrs[COLOR_standard__stream__BufferedReader___buffer].str = var1; /* _buffer on <self:BufferedReader> */
1088 self->attrs[COLOR_standard__stream__BufferedReader___buffer_pos].l = 0l; /* _buffer_pos on <self:BufferedReader> */
1089 self->attrs[COLOR_standard__stream__BufferedReader___buffer_length].l = 0l; /* _buffer_length on <self:BufferedReader> */
1090 self->attrs[COLOR_standard__stream__BufferedReader___buffer_capacity].l = var_capacity; /* _buffer_capacity on <self:BufferedReader> */
1091 RET_LABEL:;
1092 }