Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / core__stream.sep.1.c
1 #include "core__stream.sep.0.h"
2 /* method stream$Stream$last_error for (self: Stream): nullable IOError */
3 val* core___core__Stream___last_error(val* self) {
4 val* var /* : nullable IOError */;
5 val* var1 /* : nullable IOError */;
6 var1 = self->attrs[COLOR_core__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 core___core__Stream___last_error_61d(val* self, val* p0) {
13 self->attrs[COLOR_core__stream__Stream___last_error].val = p0; /* _last_error on <self:Stream> */
14 RET_LABEL:;
15 }
16 /* method stream$Reader$read_line for (self: Reader): String */
17 val* core___core__Reader___read_line(val* self) {
18 val* var /* : String */;
19 val* var1 /* : nullable IOError */;
20 val* var3 /* : nullable IOError */;
21 short int var4 /* : Bool */;
22 short int var5 /* : Bool */;
23 val* var_other /* var other: nullable Object */;
24 short int var7 /* : Bool */;
25 short int var8 /* : Bool */;
26 static val* varonce;
27 val* var9 /* : String */;
28 char* var10 /* : CString */;
29 val* var11 /* : String */;
30 val* var12 /* : nullable Int */;
31 val* var13 /* : nullable Int */;
32 val* var14 /* : nullable Bool */;
33 val* var15 /* : nullable Bool */;
34 short int var16 /* : Bool */;
35 static val* varonce17;
36 val* var18 /* : String */;
37 char* var19 /* : CString */;
38 val* var20 /* : String */;
39 val* var21 /* : nullable Int */;
40 val* var22 /* : nullable Int */;
41 val* var23 /* : nullable Bool */;
42 val* var24 /* : nullable Bool */;
43 val* var25 /* : FlatBuffer */;
44 val* var_s /* var s: FlatBuffer */;
45 val* var27 /* : String */;
46 val* var28 /* : Text */;
47 {
48 { /* Inline stream$Stream$last_error (self) on <self:Reader> */
49 var3 = self->attrs[COLOR_core__stream__Stream___last_error].val; /* _last_error on <self:Reader> */
50 var1 = var3;
51 RET_LABEL2:(void)0;
52 }
53 }
54 if (var1 == NULL) {
55 var4 = 0; /* is null */
56 } else {
57 var4 = 1; /* arg is null and recv is not */
58 }
59 if (0) {
60 { /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable IOError> */
61 var_other = ((val*)NULL);
62 {
63 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
64 }
65 var8 = !var7;
66 var5 = var8;
67 goto RET_LABEL6;
68 RET_LABEL6:(void)0;
69 }
70 var4 = var5;
71 }
72 if (var4){
73 if (likely(varonce!=NULL)) {
74 var9 = varonce;
75 } else {
76 var10 = "";
77 var12 = (val*)(0l<<2|1);
78 var13 = (val*)(0l<<2|1);
79 var14 = (val*)((long)(0)<<2|3);
80 var15 = (val*)((long)(0)<<2|3);
81 var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
82 var9 = var11;
83 varonce = var9;
84 }
85 var = var9;
86 goto RET_LABEL;
87 } else {
88 }
89 {
90 var16 = core___core__BufferedReader___Reader__eof(self);
91 }
92 if (var16){
93 if (likely(varonce17!=NULL)) {
94 var18 = varonce17;
95 } else {
96 var19 = "";
97 var21 = (val*)(0l<<2|1);
98 var22 = (val*)(0l<<2|1);
99 var23 = (val*)((long)(0)<<2|3);
100 var24 = (val*)((long)(0)<<2|3);
101 var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
102 var18 = var20;
103 varonce17 = var18;
104 }
105 var = var18;
106 goto RET_LABEL;
107 } else {
108 }
109 var25 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
110 {
111 { /* Inline flat$FlatBuffer$init (var25) on <var25:FlatBuffer> */
112 {
113 ((void(*)(val* self))(var25->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var25); /* init on <var25:FlatBuffer>*/
114 }
115 RET_LABEL26:(void)0;
116 }
117 }
118 var_s = var25;
119 {
120 core___core__BufferedReader___Reader__append_line_to(self, var_s); /* Direct call stream$BufferedReader$append_line_to on <self:Reader>*/
121 }
122 {
123 var27 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_s);
124 }
125 {
126 var28 = core___core__Text___chomp(var27);
127 }
128 var = var28;
129 goto RET_LABEL;
130 RET_LABEL:;
131 return var;
132 }
133 /* method stream$Reader$read_all for (self: Reader): String */
134 val* core___core__Reader___read_all(val* self) {
135 val* var /* : String */;
136 val* var1 /* : Bytes */;
137 val* var_s /* var s: Bytes */;
138 long var2 /* : Int */;
139 long var4 /* : Int */;
140 long var_slen /* var slen: Int */;
141 short int var5 /* : Bool */;
142 short int var7 /* : Bool */;
143 static val* varonce;
144 val* var8 /* : String */;
145 char* var9 /* : CString */;
146 val* var10 /* : String */;
147 val* var11 /* : nullable Int */;
148 val* var12 /* : nullable Int */;
149 val* var13 /* : nullable Bool */;
150 val* var14 /* : nullable Bool */;
151 static val* varonce15;
152 val* var16 /* : String */;
153 char* var17 /* : CString */;
154 val* var18 /* : String */;
155 val* var19 /* : nullable Int */;
156 val* var20 /* : nullable Int */;
157 val* var21 /* : nullable Bool */;
158 val* var22 /* : nullable Bool */;
159 val* var_rets /* var rets: String */;
160 long var_pos /* var pos: Int */;
161 char* var23 /* : CString */;
162 char* var25 /* : CString */;
163 val* var26 /* : FlatString */;
164 val* var_str /* var str: FlatString */;
165 long var27 /* : Int */;
166 long var29 /* : Int */;
167 char* var30 /* : CString */;
168 char* var32 /* : CString */;
169 char* var_sits /* var sits: CString */;
170 long var_remsp /* var remsp: Int */;
171 short int var33 /* : Bool */;
172 short int var35 /* : Bool */;
173 int cltype;
174 int idtype;
175 const char* var_class_name;
176 short int var36 /* : Bool */;
177 long var_chunksz /* var chunksz: Int */;
178 short int var37 /* : Bool */;
179 short int var39 /* : Bool */;
180 int cltype40;
181 int idtype41;
182 const char* var_class_name42;
183 short int var43 /* : Bool */;
184 static val* varoncenew;
185 static int varoncenew_guard;
186 val* var44 /* : FlatString */;
187 val* var45 /* : FlatString */;
188 val* var46 /* : FlatString */;
189 val* var47 /* : Text */;
190 long var48 /* : Int */;
191 short int var50 /* : Bool */;
192 int cltype51;
193 int idtype52;
194 const char* var_class_name53;
195 long var54 /* : Int */;
196 long var55 /* : Int */;
197 short int var57 /* : Bool */;
198 int cltype58;
199 int idtype59;
200 const char* var_class_name60;
201 long var61 /* : Int */;
202 long var62 /* : Int */;
203 long var_st /* var st: Int */;
204 long var63 /* : Int */;
205 short int var65 /* : Bool */;
206 int cltype66;
207 int idtype67;
208 const char* var_class_name68;
209 long var69 /* : Int */;
210 long var_byte_length /* var byte_length: Int */;
211 static val* varoncenew70;
212 static int varoncenew70_guard;
213 val* var71 /* : FlatString */;
214 val* var72 /* : FlatString */;
215 val* var73 /* : FlatString */;
216 val* var74 /* : Text */;
217 long var75 /* : Int */;
218 short int var77 /* : Bool */;
219 int cltype78;
220 int idtype79;
221 const char* var_class_name80;
222 long var81 /* : Int */;
223 short int var82 /* : Bool */;
224 int cltype83;
225 int idtype84;
226 val* var85 /* : String */;
227 {
228 var1 = core___core__BufferedReader___Reader__read_all_bytes(self);
229 }
230 var_s = var1;
231 {
232 { /* Inline bytes$Bytes$length (var_s) on <var_s:Bytes> */
233 var4 = var_s->attrs[COLOR_core__bytes__Bytes___length].l; /* _length on <var_s:Bytes> */
234 var2 = var4;
235 RET_LABEL3:(void)0;
236 }
237 }
238 var_slen = var2;
239 {
240 { /* Inline kernel$Int$== (var_slen,0l) on <var_slen:Int> */
241 var7 = var_slen == 0l;
242 var5 = var7;
243 goto RET_LABEL6;
244 RET_LABEL6:(void)0;
245 }
246 }
247 if (var5){
248 if (likely(varonce!=NULL)) {
249 var8 = varonce;
250 } else {
251 var9 = "";
252 var11 = (val*)(0l<<2|1);
253 var12 = (val*)(0l<<2|1);
254 var13 = (val*)((long)(0)<<2|3);
255 var14 = (val*)((long)(0)<<2|3);
256 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
257 var8 = var10;
258 varonce = var8;
259 }
260 var = var8;
261 goto RET_LABEL;
262 } else {
263 }
264 if (likely(varonce15!=NULL)) {
265 var16 = varonce15;
266 } else {
267 var17 = "";
268 var19 = (val*)(0l<<2|1);
269 var20 = (val*)(0l<<2|1);
270 var21 = (val*)((long)(0)<<2|3);
271 var22 = (val*)((long)(0)<<2|3);
272 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
273 var16 = var18;
274 varonce15 = var16;
275 }
276 var_rets = var16;
277 var_pos = 0l;
278 {
279 { /* Inline bytes$Bytes$items (var_s) on <var_s:Bytes> */
280 var25 = var_s->attrs[COLOR_core__bytes__Bytes___items].str; /* _items on <var_s:Bytes> */
281 var23 = var25;
282 RET_LABEL24:(void)0;
283 }
284 }
285 {
286 var26 = core__flat___CString___clean_utf8(var23, var_slen);
287 }
288 var_str = var26;
289 {
290 { /* Inline abstract_text$FlatText$byte_length (var_str) on <var_str:FlatString> */
291 var29 = var_str->attrs[COLOR_core__abstract_text__FlatText___byte_length].l; /* _byte_length on <var_str:FlatString> */
292 var27 = var29;
293 RET_LABEL28:(void)0;
294 }
295 }
296 var_slen = var27;
297 {
298 { /* Inline abstract_text$FlatText$items (var_str) on <var_str:FlatString> */
299 var32 = var_str->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_str:FlatString> */
300 var30 = var32;
301 RET_LABEL31:(void)0;
302 }
303 }
304 var_sits = var30;
305 var_remsp = var_slen;
306 for(;;) {
307 {
308 { /* Inline kernel$Int$< (var_pos,var_slen) on <var_pos:Int> */
309 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
310 /* <var_slen:Int> isa OTHER */
311 var35 = 1; /* easy <var_slen:Int> isa OTHER*/
312 if (unlikely(!var35)) {
313 var_class_name = type_core__Int.name;
314 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
315 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
316 fatal_exit(1);
317 }
318 var36 = var_pos < var_slen;
319 var33 = var36;
320 goto RET_LABEL34;
321 RET_LABEL34:(void)0;
322 }
323 }
324 if (var33){
325 var_chunksz = 129l;
326 {
327 { /* Inline kernel$Int$> (var_chunksz,var_remsp) on <var_chunksz:Int> */
328 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
329 /* <var_remsp:Int> isa OTHER */
330 var39 = 1; /* easy <var_remsp:Int> isa OTHER*/
331 if (unlikely(!var39)) {
332 var_class_name42 = type_core__Int.name;
333 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
334 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
335 fatal_exit(1);
336 }
337 var43 = var_chunksz > var_remsp;
338 var37 = var43;
339 goto RET_LABEL38;
340 RET_LABEL38:(void)0;
341 }
342 }
343 if (var37){
344 if (likely(varoncenew_guard)) {
345 var44 = varoncenew;
346 } else {
347 var45 = NEW_core__FlatString(&type_core__FlatString);
348 var44 = var45;
349 varoncenew = var44;
350 varoncenew_guard = 1;
351 }
352 {
353 var46 = core___core__FlatString___with_infos(var44, var_sits, var_remsp, var_pos);
354 }
355 {
356 var47 = ((val*(*)(val* self, val* p0))(var_rets->class->vft[COLOR_core__abstract_text__Text___43d]))(var_rets, var46); /* + on <var_rets:String>*/
357 }
358 var_rets = var47;
359 goto BREAK_label;
360 } else {
361 }
362 {
363 { /* Inline kernel$Int$+ (var_pos,var_chunksz) on <var_pos:Int> */
364 /* Covariant cast for argument 0 (i) <var_chunksz:Int> isa OTHER */
365 /* <var_chunksz:Int> isa OTHER */
366 var50 = 1; /* easy <var_chunksz:Int> isa OTHER*/
367 if (unlikely(!var50)) {
368 var_class_name53 = type_core__Int.name;
369 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
370 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
371 fatal_exit(1);
372 }
373 var54 = var_pos + var_chunksz;
374 var48 = var54;
375 goto RET_LABEL49;
376 RET_LABEL49:(void)0;
377 }
378 }
379 {
380 { /* Inline kernel$Int$- (var48,1l) on <var48:Int> */
381 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
382 /* <1l:Int> isa OTHER */
383 var57 = 1; /* easy <1l:Int> isa OTHER*/
384 if (unlikely(!var57)) {
385 var_class_name60 = type_core__Int.name;
386 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
387 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
388 fatal_exit(1);
389 }
390 var61 = var48 - 1l;
391 var55 = var61;
392 goto RET_LABEL56;
393 RET_LABEL56:(void)0;
394 }
395 }
396 {
397 var62 = core___core__CString___find_beginning_of_char_at(var_sits, var55);
398 }
399 var_st = var62;
400 {
401 { /* Inline kernel$Int$- (var_st,var_pos) on <var_st:Int> */
402 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
403 /* <var_pos:Int> isa OTHER */
404 var65 = 1; /* easy <var_pos:Int> isa OTHER*/
405 if (unlikely(!var65)) {
406 var_class_name68 = type_core__Int.name;
407 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
408 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
409 fatal_exit(1);
410 }
411 var69 = var_st - var_pos;
412 var63 = var69;
413 goto RET_LABEL64;
414 RET_LABEL64:(void)0;
415 }
416 }
417 var_byte_length = var63;
418 if (likely(varoncenew70_guard)) {
419 var71 = varoncenew70;
420 } else {
421 var72 = NEW_core__FlatString(&type_core__FlatString);
422 var71 = var72;
423 varoncenew70 = var71;
424 varoncenew70_guard = 1;
425 }
426 {
427 var73 = core___core__FlatString___with_infos(var71, var_sits, var_byte_length, var_pos);
428 }
429 {
430 var74 = ((val*(*)(val* self, val* p0))(var_rets->class->vft[COLOR_core__abstract_text__Text___43d]))(var_rets, var73); /* + on <var_rets:String>*/
431 }
432 var_rets = var74;
433 var_pos = var_st;
434 {
435 { /* Inline kernel$Int$- (var_remsp,var_byte_length) on <var_remsp:Int> */
436 /* Covariant cast for argument 0 (i) <var_byte_length:Int> isa OTHER */
437 /* <var_byte_length:Int> isa OTHER */
438 var77 = 1; /* easy <var_byte_length:Int> isa OTHER*/
439 if (unlikely(!var77)) {
440 var_class_name80 = type_core__Int.name;
441 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80);
442 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
443 fatal_exit(1);
444 }
445 var81 = var_remsp - var_byte_length;
446 var75 = var81;
447 goto RET_LABEL76;
448 RET_LABEL76:(void)0;
449 }
450 }
451 var_remsp = var75;
452 } else {
453 goto BREAK_label;
454 }
455 }
456 BREAK_label: (void)0;
457 /* <var_rets:String> isa Concat */
458 cltype83 = type_core__ropes__Concat.color;
459 idtype84 = type_core__ropes__Concat.id;
460 if(cltype83 >= var_rets->type->table_size) {
461 var82 = 0;
462 } else {
463 var82 = var_rets->type->type_table[cltype83] == idtype84;
464 }
465 if (var82){
466 {
467 var85 = core__ropes___core__ropes__Concat___balance(var_rets);
468 }
469 var = var85;
470 goto RET_LABEL;
471 } else {
472 }
473 var = var_rets;
474 goto RET_LABEL;
475 RET_LABEL:;
476 return var;
477 }
478 /* method stream$Writer$write_char for (self: Writer, Char) */
479 void core___core__Writer___write_char(val* self, uint32_t p0) {
480 uint32_t var_c /* var c: Char */;
481 val* var /* : String */;
482 var_c = p0;
483 {
484 var = core__abstract_text___Char___Object__to_s(var_c);
485 }
486 {
487 core___core__FileWriter___core__stream__Writer__write(self, var); /* Direct call file$FileWriter$write on <self:Writer>*/
488 }
489 RET_LABEL:;
490 }
491 /* method stream$Bytes$write_to for (self: Bytes, Writer) */
492 void core__stream___Bytes___Writable__write_to(val* self, val* p0) {
493 val* var_s /* var s: Writer */;
494 var_s = p0;
495 {
496 core___core__FileWriter___core__stream__Writer__write_bytes(var_s, self); /* Direct call file$FileWriter$write_bytes on <var_s:Writer>*/
497 }
498 RET_LABEL:;
499 }
500 /* method stream$Text$write_to for (self: Text, Writer) */
501 void core__stream___Text___Writable__write_to(val* self, val* p0) {
502 val* var_stream /* var stream: Writer */;
503 var_stream = p0;
504 {
505 core___core__FileWriter___core__stream__Writer__write(var_stream, self); /* Direct call file$FileWriter$write on <var_stream:Writer>*/
506 }
507 RET_LABEL:;
508 }
509 /* method stream$BufferedReader$buffer_reset for (self: BufferedReader) */
510 void core___core__BufferedReader___buffer_reset(val* self) {
511 self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l = 0l; /* _buffer_length on <self:BufferedReader> */
512 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = 0l; /* _buffer_pos on <self:BufferedReader> */
513 RET_LABEL:;
514 }
515 /* method stream$BufferedReader$read_bytes for (self: BufferedReader, Int): Bytes */
516 val* core___core__BufferedReader___Reader__read_bytes(val* self, long p0) {
517 val* var /* : Bytes */;
518 long var_i /* var i: Int */;
519 val* var1 /* : nullable IOError */;
520 val* var3 /* : nullable IOError */;
521 short int var4 /* : Bool */;
522 short int var5 /* : Bool */;
523 val* var_other /* var other: nullable Object */;
524 short int var7 /* : Bool */;
525 short int var8 /* : Bool */;
526 val* var9 /* : Bytes */;
527 val* var10 /* : Bytes */;
528 val* var_buf /* var buf: Bytes */;
529 long var11 /* : Int */;
530 var_i = p0;
531 {
532 { /* Inline stream$Stream$last_error (self) on <self:BufferedReader> */
533 var3 = self->attrs[COLOR_core__stream__Stream___last_error].val; /* _last_error on <self:BufferedReader> */
534 var1 = var3;
535 RET_LABEL2:(void)0;
536 }
537 }
538 if (var1 == NULL) {
539 var4 = 0; /* is null */
540 } else {
541 var4 = 1; /* arg is null and recv is not */
542 }
543 if (0) {
544 { /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable IOError> */
545 var_other = ((val*)NULL);
546 {
547 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
548 }
549 var8 = !var7;
550 var5 = var8;
551 goto RET_LABEL6;
552 RET_LABEL6:(void)0;
553 }
554 var4 = var5;
555 }
556 if (var4){
557 var9 = NEW_core__Bytes(&type_core__Bytes);
558 {
559 core___core__Bytes___empty(var9); /* Direct call bytes$Bytes$empty on <var9:Bytes>*/
560 }
561 var = var9;
562 goto RET_LABEL;
563 } else {
564 }
565 var10 = NEW_core__Bytes(&type_core__Bytes);
566 {
567 core___core__Bytes___with_capacity(var10, var_i); /* Direct call bytes$Bytes$with_capacity on <var10:Bytes>*/
568 }
569 var_buf = var10;
570 {
571 var11 = core___core__BufferedReader___read_intern(self, var_i, var_buf);
572 }
573 var = var_buf;
574 goto RET_LABEL;
575 RET_LABEL:;
576 return var;
577 }
578 /* method stream$BufferedReader$read_intern for (self: BufferedReader, Int, Bytes): Int */
579 long core___core__BufferedReader___read_intern(val* self, long p0, val* p1) {
580 long var /* : Int */;
581 long var_i /* var i: Int */;
582 val* var_buf /* var buf: Bytes */;
583 short int var1 /* : Bool */;
584 long var2 /* : Int */;
585 long var_p /* var p: Int */;
586 long var3 /* : Int */;
587 long var4 /* : Int */;
588 short int var6 /* : Bool */;
589 int cltype;
590 int idtype;
591 const char* var_class_name;
592 long var7 /* : Int */;
593 long var_bufsp /* var bufsp: Int */;
594 short int var8 /* : Bool */;
595 short int var10 /* : Bool */;
596 int cltype11;
597 int idtype12;
598 const char* var_class_name13;
599 short int var14 /* : Bool */;
600 val* var_ /* var : BufferedReader */;
601 long var15 /* : Int */;
602 long var16 /* : Int */;
603 short int var18 /* : Bool */;
604 int cltype19;
605 int idtype20;
606 const char* var_class_name21;
607 long var22 /* : Int */;
608 char* var23 /* : CString */;
609 long var24 /* : Int */;
610 long var25 /* : Int */;
611 long var26 /* : Int */;
612 short int var28 /* : Bool */;
613 int cltype29;
614 int idtype30;
615 const char* var_class_name31;
616 long var32 /* : Int */;
617 long var_readln /* var readln: Int */;
618 char* var33 /* : CString */;
619 long var34 /* : Int */;
620 short int var36 /* : Bool */;
621 int cltype37;
622 int idtype38;
623 const char* var_class_name39;
624 long var40 /* : Int */;
625 long var41 /* : Int */;
626 long var_rd /* var rd: Int */;
627 long var42 /* : Int */;
628 short int var44 /* : Bool */;
629 int cltype45;
630 int idtype46;
631 const char* var_class_name47;
632 long var48 /* : Int */;
633 var_i = p0;
634 var_buf = p1;
635 {
636 var1 = core___core__BufferedReader___Reader__eof(self);
637 }
638 if (var1){
639 var = 0l;
640 goto RET_LABEL;
641 } else {
642 }
643 var2 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
644 var_p = var2;
645 var3 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
646 {
647 { /* Inline kernel$Int$- (var3,var_p) on <var3:Int> */
648 /* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
649 /* <var_p:Int> isa OTHER */
650 var6 = 1; /* easy <var_p:Int> isa OTHER*/
651 if (unlikely(!var6)) {
652 var_class_name = type_core__Int.name;
653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
654 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
655 fatal_exit(1);
656 }
657 var7 = var3 - var_p;
658 var4 = var7;
659 goto RET_LABEL5;
660 RET_LABEL5:(void)0;
661 }
662 }
663 var_bufsp = var4;
664 {
665 { /* Inline kernel$Int$>= (var_bufsp,var_i) on <var_bufsp:Int> */
666 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
667 /* <var_i:Int> isa OTHER */
668 var10 = 1; /* easy <var_i:Int> isa OTHER*/
669 if (unlikely(!var10)) {
670 var_class_name13 = type_core__Int.name;
671 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
672 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
673 fatal_exit(1);
674 }
675 var14 = var_bufsp >= var_i;
676 var8 = var14;
677 goto RET_LABEL9;
678 RET_LABEL9:(void)0;
679 }
680 }
681 if (var8){
682 var_ = self;
683 var15 = var_->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <var_:BufferedReader> */
684 {
685 { /* Inline kernel$Int$+ (var15,var_i) on <var15:Int> */
686 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
687 /* <var_i:Int> isa OTHER */
688 var18 = 1; /* easy <var_i:Int> isa OTHER*/
689 if (unlikely(!var18)) {
690 var_class_name21 = type_core__Int.name;
691 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
692 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
693 fatal_exit(1);
694 }
695 var22 = var15 + var_i;
696 var16 = var22;
697 goto RET_LABEL17;
698 RET_LABEL17:(void)0;
699 }
700 }
701 var_->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var16; /* _buffer_pos on <var_:BufferedReader> */
702 var23 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
703 {
704 core___core__Bytes___append_ns_from(var_buf, var23, var_i, var_p); /* Direct call bytes$Bytes$append_ns_from on <var_buf:Bytes>*/
705 }
706 var = var_i;
707 goto RET_LABEL;
708 } else {
709 }
710 var24 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
711 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var24; /* _buffer_pos on <self:BufferedReader> */
712 var25 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
713 {
714 { /* Inline kernel$Int$- (var25,var_p) on <var25:Int> */
715 /* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
716 /* <var_p:Int> isa OTHER */
717 var28 = 1; /* easy <var_p:Int> isa OTHER*/
718 if (unlikely(!var28)) {
719 var_class_name31 = type_core__Int.name;
720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
721 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
722 fatal_exit(1);
723 }
724 var32 = var25 - var_p;
725 var26 = var32;
726 goto RET_LABEL27;
727 RET_LABEL27:(void)0;
728 }
729 }
730 var_readln = var26;
731 var33 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
732 {
733 core___core__Bytes___append_ns_from(var_buf, var33, var_readln, var_p); /* Direct call bytes$Bytes$append_ns_from on <var_buf:Bytes>*/
734 }
735 {
736 { /* Inline kernel$Int$- (var_i,var_readln) on <var_i:Int> */
737 /* Covariant cast for argument 0 (i) <var_readln:Int> isa OTHER */
738 /* <var_readln:Int> isa OTHER */
739 var36 = 1; /* easy <var_readln:Int> isa OTHER*/
740 if (unlikely(!var36)) {
741 var_class_name39 = type_core__Int.name;
742 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
743 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
744 fatal_exit(1);
745 }
746 var40 = var_i - var_readln;
747 var34 = var40;
748 goto RET_LABEL35;
749 RET_LABEL35:(void)0;
750 }
751 }
752 {
753 var41 = core___core__BufferedReader___read_intern(self, var34, var_buf);
754 }
755 var_rd = var41;
756 {
757 { /* Inline kernel$Int$+ (var_rd,var_readln) on <var_rd:Int> */
758 /* Covariant cast for argument 0 (i) <var_readln:Int> isa OTHER */
759 /* <var_readln:Int> isa OTHER */
760 var44 = 1; /* easy <var_readln:Int> isa OTHER*/
761 if (unlikely(!var44)) {
762 var_class_name47 = type_core__Int.name;
763 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
764 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
765 fatal_exit(1);
766 }
767 var48 = var_rd + var_readln;
768 var42 = var48;
769 goto RET_LABEL43;
770 RET_LABEL43:(void)0;
771 }
772 }
773 var = var42;
774 goto RET_LABEL;
775 RET_LABEL:;
776 return var;
777 }
778 /* method stream$BufferedReader$read_all_bytes for (self: BufferedReader): Bytes */
779 val* core___core__BufferedReader___Reader__read_all_bytes(val* self) {
780 val* var /* : Bytes */;
781 val* var1 /* : nullable IOError */;
782 val* var3 /* : nullable IOError */;
783 short int var4 /* : Bool */;
784 short int var5 /* : Bool */;
785 val* var_other /* var other: nullable Object */;
786 short int var7 /* : Bool */;
787 short int var8 /* : Bool */;
788 val* var9 /* : Bytes */;
789 val* var10 /* : Bytes */;
790 val* var_s /* var s: Bytes */;
791 char* var11 /* : CString */;
792 char* var_b /* var b: CString */;
793 short int var12 /* : Bool */;
794 short int var13 /* : Bool */;
795 long var14 /* : Int */;
796 long var_j /* var j: Int */;
797 long var15 /* : Int */;
798 long var_k /* var k: Int */;
799 long var16 /* : Int */;
800 short int var18 /* : Bool */;
801 int cltype;
802 int idtype;
803 const char* var_class_name;
804 long var19 /* : Int */;
805 long var_rd_sz /* var rd_sz: Int */;
806 {
807 { /* Inline stream$Stream$last_error (self) on <self:BufferedReader> */
808 var3 = self->attrs[COLOR_core__stream__Stream___last_error].val; /* _last_error on <self:BufferedReader> */
809 var1 = var3;
810 RET_LABEL2:(void)0;
811 }
812 }
813 if (var1 == NULL) {
814 var4 = 0; /* is null */
815 } else {
816 var4 = 1; /* arg is null and recv is not */
817 }
818 if (0) {
819 { /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable IOError> */
820 var_other = ((val*)NULL);
821 {
822 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
823 }
824 var8 = !var7;
825 var5 = var8;
826 goto RET_LABEL6;
827 RET_LABEL6:(void)0;
828 }
829 var4 = var5;
830 }
831 if (var4){
832 var9 = NEW_core__Bytes(&type_core__Bytes);
833 {
834 core___core__Bytes___empty(var9); /* Direct call bytes$Bytes$empty on <var9:Bytes>*/
835 }
836 var = var9;
837 goto RET_LABEL;
838 } else {
839 }
840 var10 = NEW_core__Bytes(&type_core__Bytes);
841 {
842 core___core__Bytes___with_capacity(var10, 10l); /* Direct call bytes$Bytes$with_capacity on <var10:Bytes>*/
843 }
844 var_s = var10;
845 var11 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
846 var_b = var11;
847 for(;;) {
848 {
849 var12 = core___core__BufferedReader___Reader__eof(self);
850 }
851 var13 = !var12;
852 if (var13){
853 var14 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
854 var_j = var14;
855 var15 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
856 var_k = var15;
857 {
858 { /* Inline kernel$Int$- (var_k,var_j) on <var_k:Int> */
859 /* Covariant cast for argument 0 (i) <var_j:Int> isa OTHER */
860 /* <var_j:Int> isa OTHER */
861 var18 = 1; /* easy <var_j:Int> isa OTHER*/
862 if (unlikely(!var18)) {
863 var_class_name = type_core__Int.name;
864 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
865 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
866 fatal_exit(1);
867 }
868 var19 = var_k - var_j;
869 var16 = var19;
870 goto RET_LABEL17;
871 RET_LABEL17:(void)0;
872 }
873 }
874 var_rd_sz = var16;
875 {
876 core___core__Bytes___append_ns_from(var_s, var_b, var_rd_sz, var_j); /* Direct call bytes$Bytes$append_ns_from on <var_s:Bytes>*/
877 }
878 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var_k; /* _buffer_pos on <self:BufferedReader> */
879 {
880 core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file$FileReader$fill_buffer on <self:BufferedReader>*/
881 }
882 } else {
883 goto BREAK_label;
884 }
885 }
886 BREAK_label: (void)0;
887 var = var_s;
888 goto RET_LABEL;
889 RET_LABEL:;
890 return var;
891 }
892 /* method stream$BufferedReader$append_line_to for (self: BufferedReader, Buffer) */
893 void core___core__BufferedReader___Reader__append_line_to(val* self, val* p0) {
894 val* var_s /* var s: Buffer */;
895 val* var /* : Bytes */;
896 val* var_lb /* var lb: Bytes */;
897 long var1 /* : Int */;
898 long var_i /* var i: Int */;
899 short int var2 /* : Bool */;
900 long var3 /* : Int */;
901 short int var4 /* : Bool */;
902 short int var6 /* : Bool */;
903 int cltype;
904 int idtype;
905 const char* var_class_name;
906 short int var7 /* : Bool */;
907 short int var_ /* var : Bool */;
908 char* var8 /* : CString */;
909 unsigned char var9 /* : Byte */;
910 unsigned char var11 /* : Byte */;
911 short int var12 /* : Bool */;
912 short int var14 /* : Bool */;
913 short int var15 /* : Bool */;
914 long var16 /* : Int */;
915 short int var18 /* : Bool */;
916 int cltype19;
917 int idtype20;
918 const char* var_class_name21;
919 long var22 /* : Int */;
920 long var23 /* : Int */;
921 short int var24 /* : Bool */;
922 short int var26 /* : Bool */;
923 int cltype27;
924 int idtype28;
925 const char* var_class_name29;
926 short int var30 /* : Bool */;
927 char* var31 /* : CString */;
928 unsigned char var32 /* : Byte */;
929 unsigned char var34 /* : Byte */;
930 short int var35 /* : Bool */;
931 short int var37 /* : Bool */;
932 long var38 /* : Int */;
933 short int var40 /* : Bool */;
934 int cltype41;
935 int idtype42;
936 const char* var_class_name43;
937 long var44 /* : Int */;
938 val* var45 /* : nullable Object */;
939 val* var_eol /* var eol: nullable Object */;
940 val* var46 /* : nullable Object */;
941 long var47 /* : Int */;
942 short int var48 /* : Bool */;
943 short int var50 /* : Bool */;
944 int cltype51;
945 int idtype52;
946 const char* var_class_name53;
947 short int var54 /* : Bool */;
948 long var55 /* : Int */;
949 long var_j /* var j: Int */;
950 short int var56 /* : Bool */;
951 short int var58 /* : Bool */;
952 int cltype59;
953 int idtype60;
954 const char* var_class_name61;
955 short int var62 /* : Bool */;
956 char* var63 /* : CString */;
957 unsigned char var64 /* : Byte */;
958 unsigned char var66 /* : Byte */;
959 long var67 /* : Int */;
960 short int var69 /* : Bool */;
961 int cltype70;
962 int idtype71;
963 const char* var_class_name72;
964 long var73 /* : Int */;
965 short int var75 /* : Bool */;
966 short int var77 /* : Bool */;
967 val* var78 /* : String */;
968 short int var79 /* : Bool */;
969 val* var80 /* : String */;
970 short int var81 /* : Bool */;
971 short int var83 /* : Bool */;
972 val* var84 /* : String */;
973 var_s = p0;
974 var = NEW_core__Bytes(&type_core__Bytes);
975 {
976 core___core__Bytes___with_capacity(var, 10l); /* Direct call bytes$Bytes$with_capacity on <var:Bytes>*/
977 }
978 var_lb = var;
979 for(;;) {
980 var1 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
981 var_i = var1;
982 for(;;) {
983 var3 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
984 {
985 { /* Inline kernel$Int$< (var_i,var3) on <var_i:Int> */
986 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
987 /* <var3:Int> isa OTHER */
988 var6 = 1; /* easy <var3:Int> isa OTHER*/
989 if (unlikely(!var6)) {
990 var_class_name = type_core__Int.name;
991 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
992 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
993 fatal_exit(1);
994 }
995 var7 = var_i < var3;
996 var4 = var7;
997 goto RET_LABEL5;
998 RET_LABEL5:(void)0;
999 }
1000 }
1001 var_ = var4;
1002 if (var4){
1003 var8 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
1004 {
1005 { /* Inline native$CString$[] (var8,var_i) on <var8:CString> */
1006 var11 = (unsigned char)((int)var8[var_i]);
1007 var9 = var11;
1008 goto RET_LABEL10;
1009 RET_LABEL10:(void)0;
1010 }
1011 }
1012 {
1013 { /* Inline kernel$Byte$!= (var9,((unsigned char)0x0a)) on <var9:Byte> */
1014 var14 = var9 == ((unsigned char)0x0a);
1015 var15 = !var14;
1016 var12 = var15;
1017 goto RET_LABEL13;
1018 RET_LABEL13:(void)0;
1019 }
1020 }
1021 var2 = var12;
1022 } else {
1023 var2 = var_;
1024 }
1025 if (var2){
1026 {
1027 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
1028 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1029 /* <1l:Int> isa OTHER */
1030 var18 = 1; /* easy <1l:Int> isa OTHER*/
1031 if (unlikely(!var18)) {
1032 var_class_name21 = type_core__Int.name;
1033 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
1034 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1035 fatal_exit(1);
1036 }
1037 var22 = var_i + 1l;
1038 var16 = var22;
1039 goto RET_LABEL17;
1040 RET_LABEL17:(void)0;
1041 }
1042 }
1043 var_i = var16;
1044 } else {
1045 goto BREAK_label;
1046 }
1047 }
1048 BREAK_label: (void)0;
1049 var23 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
1050 {
1051 { /* Inline kernel$Int$< (var_i,var23) on <var_i:Int> */
1052 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
1053 /* <var23:Int> isa OTHER */
1054 var26 = 1; /* easy <var23:Int> isa OTHER*/
1055 if (unlikely(!var26)) {
1056 var_class_name29 = type_core__Int.name;
1057 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1058 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1059 fatal_exit(1);
1060 }
1061 var30 = var_i < var23;
1062 var24 = var30;
1063 goto RET_LABEL25;
1064 RET_LABEL25:(void)0;
1065 }
1066 }
1067 if (var24){
1068 var31 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
1069 {
1070 { /* Inline native$CString$[] (var31,var_i) on <var31:CString> */
1071 var34 = (unsigned char)((int)var31[var_i]);
1072 var32 = var34;
1073 goto RET_LABEL33;
1074 RET_LABEL33:(void)0;
1075 }
1076 }
1077 {
1078 { /* Inline kernel$Byte$== (var32,((unsigned char)0x0a)) on <var32:Byte> */
1079 var37 = var32 == ((unsigned char)0x0a);
1080 var35 = var37;
1081 goto RET_LABEL36;
1082 RET_LABEL36:(void)0;
1083 }
1084 }
1085 if (unlikely(!var35)) {
1086 if(catchStack.cursor >= 0){
1087 longjmp(catchStack.envs[catchStack.cursor], 1);
1088 }
1089 PRINT_ERROR("Runtime error: %s", "Assert failed");
1090 PRINT_ERROR(" (%s:%d)\n", FILE_core__stream, 586);
1091 fatal_exit(1);
1092 }
1093 {
1094 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
1095 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1096 /* <1l:Int> isa OTHER */
1097 var40 = 1; /* easy <1l:Int> isa OTHER*/
1098 if (unlikely(!var40)) {
1099 var_class_name43 = type_core__Int.name;
1100 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
1101 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1102 fatal_exit(1);
1103 }
1104 var44 = var_i + 1l;
1105 var38 = var44;
1106 goto RET_LABEL39;
1107 RET_LABEL39:(void)0;
1108 }
1109 }
1110 var_i = var38;
1111 var45 = (val*)((long)(1)<<2|3);
1112 var_eol = var45;
1113 } else {
1114 var46 = (val*)((long)(0)<<2|3);
1115 var_eol = var46;
1116 }
1117 var47 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
1118 {
1119 { /* Inline kernel$Int$> (var_i,var47) on <var_i:Int> */
1120 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
1121 /* <var47:Int> isa OTHER */
1122 var50 = 1; /* easy <var47:Int> isa OTHER*/
1123 if (unlikely(!var50)) {
1124 var_class_name53 = type_core__Int.name;
1125 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
1126 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1127 fatal_exit(1);
1128 }
1129 var54 = var_i > var47;
1130 var48 = var54;
1131 goto RET_LABEL49;
1132 RET_LABEL49:(void)0;
1133 }
1134 }
1135 if (var48){
1136 var55 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
1137 var_j = var55;
1138 for(;;) {
1139 {
1140 { /* Inline kernel$Int$< (var_j,var_i) on <var_j:Int> */
1141 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
1142 /* <var_i:Int> isa OTHER */
1143 var58 = 1; /* easy <var_i:Int> isa OTHER*/
1144 if (unlikely(!var58)) {
1145 var_class_name61 = type_core__Int.name;
1146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
1147 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1148 fatal_exit(1);
1149 }
1150 var62 = var_j < var_i;
1151 var56 = var62;
1152 goto RET_LABEL57;
1153 RET_LABEL57:(void)0;
1154 }
1155 }
1156 if (var56){
1157 var63 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
1158 {
1159 { /* Inline native$CString$[] (var63,var_j) on <var63:CString> */
1160 var66 = (unsigned char)((int)var63[var_j]);
1161 var64 = var66;
1162 goto RET_LABEL65;
1163 RET_LABEL65:(void)0;
1164 }
1165 }
1166 {
1167 core___core__Bytes___core__abstract_collection__SimpleCollection__add(var_lb, var64); /* Direct call bytes$Bytes$add on <var_lb:Bytes>*/
1168 }
1169 {
1170 { /* Inline kernel$Int$+ (var_j,1l) on <var_j:Int> */
1171 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1172 /* <1l:Int> isa OTHER */
1173 var69 = 1; /* easy <1l:Int> isa OTHER*/
1174 if (unlikely(!var69)) {
1175 var_class_name72 = type_core__Int.name;
1176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
1177 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1178 fatal_exit(1);
1179 }
1180 var73 = var_j + 1l;
1181 var67 = var73;
1182 goto RET_LABEL68;
1183 RET_LABEL68:(void)0;
1184 }
1185 }
1186 var_j = var67;
1187 } else {
1188 goto BREAK_label74;
1189 }
1190 }
1191 BREAK_label74: (void)0;
1192 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var_i; /* _buffer_pos on <self:BufferedReader> */
1193 } else {
1194 {
1195 { /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
1196 var77 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
1197 var75 = var77;
1198 RET_LABEL76:(void)0;
1199 }
1200 }
1201 if (unlikely(!var75)) {
1202 if(catchStack.cursor >= 0){
1203 longjmp(catchStack.envs[catchStack.cursor], 1);
1204 }
1205 PRINT_ERROR("Runtime error: %s", "Assert failed");
1206 PRINT_ERROR(" (%s:%d)\n", FILE_core__stream, 603);
1207 fatal_exit(1);
1208 }
1209 {
1210 var78 = core___core__Bytes___core__abstract_text__Object__to_s(var_lb);
1211 }
1212 {
1213 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var78); /* append on <var_s:Buffer>*/
1214 }
1215 goto RET_LABEL;
1216 }
1217 var79 = (short int)((long)(var_eol)>>2);
1218 if (var79){
1219 {
1220 var80 = core___core__Bytes___core__abstract_text__Object__to_s(var_lb);
1221 }
1222 {
1223 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var80); /* append on <var_s:Buffer>*/
1224 }
1225 goto RET_LABEL;
1226 } else {
1227 {
1228 { /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
1229 var83 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
1230 var81 = var83;
1231 RET_LABEL82:(void)0;
1232 }
1233 }
1234 if (var81){
1235 {
1236 var84 = core___core__Bytes___core__abstract_text__Object__to_s(var_lb);
1237 }
1238 {
1239 ((void(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_s, var84); /* append on <var_s:Buffer>*/
1240 }
1241 goto RET_LABEL;
1242 } else {
1243 }
1244 {
1245 core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file$FileReader$fill_buffer on <self:BufferedReader>*/
1246 }
1247 }
1248 }
1249 RET_LABEL:;
1250 }
1251 /* method stream$BufferedReader$eof for (self: BufferedReader): Bool */
1252 short int core___core__BufferedReader___Reader__eof(val* self) {
1253 short int var /* : Bool */;
1254 long var1 /* : Int */;
1255 long var2 /* : Int */;
1256 short int var3 /* : Bool */;
1257 short int var5 /* : Bool */;
1258 int cltype;
1259 int idtype;
1260 const char* var_class_name;
1261 short int var6 /* : Bool */;
1262 short int var7 /* : Bool */;
1263 short int var9 /* : Bool */;
1264 short int var10 /* : Bool */;
1265 long var11 /* : Int */;
1266 long var12 /* : Int */;
1267 short int var13 /* : Bool */;
1268 short int var15 /* : Bool */;
1269 int cltype16;
1270 int idtype17;
1271 const char* var_class_name18;
1272 short int var19 /* : Bool */;
1273 short int var_ /* var : Bool */;
1274 short int var20 /* : Bool */;
1275 short int var22 /* : Bool */;
1276 var1 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
1277 var2 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
1278 {
1279 { /* Inline kernel$Int$< (var1,var2) on <var1:Int> */
1280 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1281 /* <var2:Int> isa OTHER */
1282 var5 = 1; /* easy <var2:Int> isa OTHER*/
1283 if (unlikely(!var5)) {
1284 var_class_name = type_core__Int.name;
1285 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1286 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1287 fatal_exit(1);
1288 }
1289 var6 = var1 < var2;
1290 var3 = var6;
1291 goto RET_LABEL4;
1292 RET_LABEL4:(void)0;
1293 }
1294 }
1295 if (var3){
1296 var = 0;
1297 goto RET_LABEL;
1298 } else {
1299 }
1300 {
1301 { /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
1302 var9 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
1303 var7 = var9;
1304 RET_LABEL8:(void)0;
1305 }
1306 }
1307 if (var7){
1308 var = 1;
1309 goto RET_LABEL;
1310 } else {
1311 }
1312 {
1313 core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file$FileReader$fill_buffer on <self:BufferedReader>*/
1314 }
1315 var11 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
1316 var12 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
1317 {
1318 { /* Inline kernel$Int$>= (var11,var12) on <var11:Int> */
1319 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
1320 /* <var12:Int> isa OTHER */
1321 var15 = 1; /* easy <var12:Int> isa OTHER*/
1322 if (unlikely(!var15)) {
1323 var_class_name18 = type_core__Int.name;
1324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1325 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
1326 fatal_exit(1);
1327 }
1328 var19 = var11 >= var12;
1329 var13 = var19;
1330 goto RET_LABEL14;
1331 RET_LABEL14:(void)0;
1332 }
1333 }
1334 var_ = var13;
1335 if (var13){
1336 {
1337 { /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
1338 var22 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
1339 var20 = var22;
1340 RET_LABEL21:(void)0;
1341 }
1342 }
1343 var10 = var20;
1344 } else {
1345 var10 = var_;
1346 }
1347 var = var10;
1348 goto RET_LABEL;
1349 RET_LABEL:;
1350 return var;
1351 }
1352 /* method stream$BufferedReader$prepare_buffer for (self: BufferedReader, Int) */
1353 void core___core__BufferedReader___prepare_buffer(val* self, long p0) {
1354 long var_capacity /* var capacity: Int */;
1355 static char* varoncenew;
1356 static int varoncenew_guard;
1357 char* var /* : CString */;
1358 char* var1 /* : CString */;
1359 char* var2 /* : CString */;
1360 char* var4 /* : CString */;
1361 var_capacity = p0;
1362 if (likely(varoncenew_guard)) {
1363 var = varoncenew;
1364 } else {
1365 var1 = NULL/*special!*/;
1366 var = var1;
1367 varoncenew = var;
1368 varoncenew_guard = 1;
1369 }
1370 {
1371 { /* Inline native$CString$new (var,var_capacity) on <var:CString> */
1372 var4 = (char*)nit_alloc(var_capacity);
1373 var2 = var4;
1374 goto RET_LABEL3;
1375 RET_LABEL3:(void)0;
1376 }
1377 }
1378 self->attrs[COLOR_core__stream__BufferedReader___buffer].str = var2; /* _buffer on <self:BufferedReader> */
1379 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = 0l; /* _buffer_pos on <self:BufferedReader> */
1380 self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l = 0l; /* _buffer_length on <self:BufferedReader> */
1381 self->attrs[COLOR_core__stream__BufferedReader___buffer_capacity].l = var_capacity; /* _buffer_capacity on <self:BufferedReader> */
1382 RET_LABEL:;
1383 }