metrics: replace is_user_defined() by is_standard()
[nit.git] / c_src / stream.sep.1.c
1 #include "stream.sep.0.h"
2 /* method stream#IOS#close for (self: IOS) */
3 void stream__IOS__close(val* self) {
4 const char* var_class_name;
5 var_class_name = self == NULL ? "null" : self->type->name;
6 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "close", var_class_name);
7 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 20);
8 show_backtrace(1);
9 RET_LABEL:;
10 }
11 /* method stream#IOS#close for (self: Object) */
12 void VIRTUAL_stream__IOS__close(val* self) {
13 stream__IOS__close(self);
14 RET_LABEL:;
15 }
16 /* method stream#IStream#read_char for (self: IStream): Int */
17 long stream__IStream__read_char(val* self) {
18 long var /* : Int */;
19 const char* var_class_name;
20 var_class_name = self == NULL ? "null" : self->type->name;
21 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "read_char", var_class_name);
22 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 27);
23 show_backtrace(1);
24 RET_LABEL:;
25 return var;
26 }
27 /* method stream#IStream#read_char for (self: Object): Int */
28 long VIRTUAL_stream__IStream__read_char(val* self) {
29 long var /* : Int */;
30 long var1 /* : Int */;
31 var1 = stream__IStream__read_char(self);
32 var = var1;
33 RET_LABEL:;
34 return var;
35 }
36 /* method stream#IStream#read for (self: IStream, Int): String */
37 val* stream__IStream__read(val* self, long p0) {
38 val* var /* : String */;
39 long var_i /* var i: Int */;
40 val* var1 /* : Buffer */;
41 val* var_s /* var s: Buffer */;
42 short int var2 /* : Bool */;
43 long var3 /* : Int */;
44 short int var4 /* : Bool */;
45 short int var6 /* : Bool */;
46 int cltype;
47 int idtype;
48 const char* var_class_name;
49 short int var7 /* : Bool */;
50 short int var_ /* var : Bool */;
51 short int var8 /* : Bool */;
52 short int var9 /* : Bool */;
53 long var10 /* : Int */;
54 long var_c /* var c: Int */;
55 long var11 /* : Int */;
56 short int var12 /* : Bool */;
57 short int var14 /* : Bool */;
58 int cltype15;
59 int idtype16;
60 const char* var_class_name17;
61 short int var18 /* : Bool */;
62 char var19 /* : Char */;
63 char var21 /* : Char */;
64 val* var22 /* : nullable Object */;
65 long var23 /* : Int */;
66 long var24 /* : Int */;
67 long var26 /* : Int */;
68 val* var27 /* : String */;
69 var_i = p0;
70 var1 = NEW_string__Buffer(&type_string__Buffer);
71 ((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var_i) /* with_capacity on <var1:Buffer>*/;
72 var_s = var1;
73 for(;;) {
74 var3 = 0;
75 { /* Inline kernel#Int#> (var_i,var3) */
76 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
77 /* <var3:Int> isa OTHER */
78 var6 = 1; /* easy <var3:Int> isa OTHER*/
79 if (!var6) {
80 var_class_name = type_kernel__Int.name;
81 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
82 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
83 show_backtrace(1);
84 }
85 var7 = var_i > var3;
86 var4 = var7;
87 goto RET_LABEL5;
88 RET_LABEL5:(void)0;
89 }
90 var_ = var4;
91 if (var4){
92 var8 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
93 var9 = !var8;
94 var2 = var9;
95 } else {
96 var2 = var_;
97 }
98 if (!var2) break;
99 var10 = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on <self:IStream>*/;
100 var_c = var10;
101 var11 = 0;
102 { /* Inline kernel#Int#>= (var_c,var11) */
103 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
104 /* <var11:Int> isa OTHER */
105 var14 = 1; /* easy <var11:Int> isa OTHER*/
106 if (!var14) {
107 var_class_name17 = type_kernel__Int.name;
108 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
109 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
110 show_backtrace(1);
111 }
112 var18 = var_c >= var11;
113 var12 = var18;
114 goto RET_LABEL13;
115 RET_LABEL13:(void)0;
116 }
117 if (var12){
118 { /* Inline kernel#Int#ascii (var_c) */
119 var21 = var_c;
120 var19 = var21;
121 goto RET_LABEL20;
122 RET_LABEL20:(void)0;
123 }
124 var22 = BOX_kernel__Char(var19); /* autobox from Char to nullable Object */
125 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var22) /* add on <var_s:Buffer>*/;
126 var23 = 1;
127 { /* Inline kernel#Int#- (var_i,var23) */
128 var26 = var_i - var23;
129 var24 = var26;
130 goto RET_LABEL25;
131 RET_LABEL25:(void)0;
132 }
133 var_i = var24;
134 } else {
135 }
136 CONTINUE_label: (void)0;
137 }
138 BREAK_label: (void)0;
139 var27 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
140 var = var27;
141 goto RET_LABEL;
142 RET_LABEL:;
143 return var;
144 }
145 /* method stream#IStream#read for (self: Object, Int): String */
146 val* VIRTUAL_stream__IStream__read(val* self, long p0) {
147 val* var /* : String */;
148 val* var1 /* : String */;
149 var1 = stream__IStream__read(self, p0);
150 var = var1;
151 RET_LABEL:;
152 return var;
153 }
154 /* method stream#IStream#read_line for (self: IStream): String */
155 val* stream__IStream__read_line(val* self) {
156 val* var /* : String */;
157 short int var1 /* : Bool */;
158 short int var2 /* : Bool */;
159 val* var3 /* : Buffer */;
160 val* var_s /* var s: Buffer */;
161 val* var4 /* : String */;
162 var1 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
163 var2 = !var1;
164 if (!var2) {
165 fprintf(stderr, "Runtime error: %s", "Assert failed");
166 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 47);
167 show_backtrace(1);
168 }
169 var3 = NEW_string__Buffer(&type_string__Buffer);
170 ((void (*)(val*))(var3->class->vft[COLOR_string__Buffer__init]))(var3) /* init on <var3:Buffer>*/;
171 var_s = var3;
172 ((void (*)(val*, val*))(self->class->vft[COLOR_stream__IStream__append_line_to]))(self, var_s) /* append_line_to on <self:IStream>*/;
173 var4 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
174 var = var4;
175 goto RET_LABEL;
176 RET_LABEL:;
177 return var;
178 }
179 /* method stream#IStream#read_line for (self: Object): String */
180 val* VIRTUAL_stream__IStream__read_line(val* self) {
181 val* var /* : String */;
182 val* var1 /* : String */;
183 var1 = stream__IStream__read_line(self);
184 var = var1;
185 RET_LABEL:;
186 return var;
187 }
188 /* method stream#IStream#read_all for (self: IStream): String */
189 val* stream__IStream__read_all(val* self) {
190 val* var /* : String */;
191 val* var1 /* : Buffer */;
192 val* var_s /* var s: Buffer */;
193 short int var2 /* : Bool */;
194 short int var3 /* : Bool */;
195 long var4 /* : Int */;
196 long var_c /* var c: Int */;
197 long var5 /* : Int */;
198 short int var6 /* : Bool */;
199 short int var8 /* : Bool */;
200 int cltype;
201 int idtype;
202 const char* var_class_name;
203 short int var9 /* : Bool */;
204 char var10 /* : Char */;
205 char var12 /* : Char */;
206 val* var13 /* : nullable Object */;
207 val* var14 /* : String */;
208 var1 = NEW_string__Buffer(&type_string__Buffer);
209 ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on <var1:Buffer>*/;
210 var_s = var1;
211 for(;;) {
212 var2 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
213 var3 = !var2;
214 if (!var3) break;
215 var4 = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on <self:IStream>*/;
216 var_c = var4;
217 var5 = 0;
218 { /* Inline kernel#Int#>= (var_c,var5) */
219 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
220 /* <var5:Int> isa OTHER */
221 var8 = 1; /* easy <var5:Int> isa OTHER*/
222 if (!var8) {
223 var_class_name = type_kernel__Int.name;
224 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
225 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
226 show_backtrace(1);
227 }
228 var9 = var_c >= var5;
229 var6 = var9;
230 goto RET_LABEL7;
231 RET_LABEL7:(void)0;
232 }
233 if (var6){
234 { /* Inline kernel#Int#ascii (var_c) */
235 var12 = var_c;
236 var10 = var12;
237 goto RET_LABEL11;
238 RET_LABEL11:(void)0;
239 }
240 var13 = BOX_kernel__Char(var10); /* autobox from Char to nullable Object */
241 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var13) /* add on <var_s:Buffer>*/;
242 } else {
243 }
244 CONTINUE_label: (void)0;
245 }
246 BREAK_label: (void)0;
247 var14 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
248 var = var14;
249 goto RET_LABEL;
250 RET_LABEL:;
251 return var;
252 }
253 /* method stream#IStream#read_all for (self: Object): String */
254 val* VIRTUAL_stream__IStream__read_all(val* self) {
255 val* var /* : String */;
256 val* var1 /* : String */;
257 var1 = stream__IStream__read_all(self);
258 var = var1;
259 RET_LABEL:;
260 return var;
261 }
262 /* method stream#IStream#append_line_to for (self: IStream, Buffer) */
263 void stream__IStream__append_line_to(val* self, val* p0) {
264 val* var_s /* var s: Buffer */;
265 long var /* : Int */;
266 long var_x /* var x: Int */;
267 long var1 /* : Int */;
268 long var2 /* : Int */;
269 long var4 /* : Int */;
270 short int var5 /* : Bool */;
271 short int var7 /* : Bool */;
272 short int var8 /* : Bool */;
273 char var9 /* : Char */;
274 char var11 /* : Char */;
275 char var_c /* var c: Char */;
276 val* var12 /* : nullable Object */;
277 char var13 /* : Char */;
278 short int var14 /* : Bool */;
279 short int var16 /* : Bool */;
280 var_s = p0;
281 for(;;) {
282 var = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on <self:IStream>*/;
283 var_x = var;
284 var1 = 1;
285 { /* Inline kernel#Int#unary - (var1) */
286 var4 = -var1;
287 var2 = var4;
288 goto RET_LABEL3;
289 RET_LABEL3:(void)0;
290 }
291 { /* Inline kernel#Int#== (var_x,var2) */
292 var7 = var_x == var2;
293 var5 = var7;
294 goto RET_LABEL6;
295 RET_LABEL6:(void)0;
296 }
297 if (var5){
298 var8 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IStream>*/;
299 if (var8){
300 goto RET_LABEL;
301 } else {
302 }
303 } else {
304 { /* Inline kernel#Int#ascii (var_x) */
305 var11 = var_x;
306 var9 = var11;
307 goto RET_LABEL10;
308 RET_LABEL10:(void)0;
309 }
310 var_c = var9;
311 var12 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */
312 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__push]))(var_s, var12) /* push on <var_s:Buffer>*/;
313 var13 = '\n';
314 { /* Inline kernel#Char#== (var_c,var13) */
315 var16 = var_c == var13;
316 var14 = var16;
317 goto RET_LABEL15;
318 RET_LABEL15:(void)0;
319 }
320 if (var14){
321 goto RET_LABEL;
322 } else {
323 }
324 }
325 CONTINUE_label: (void)0;
326 }
327 BREAK_label: (void)0;
328 RET_LABEL:;
329 }
330 /* method stream#IStream#append_line_to for (self: Object, Buffer) */
331 void VIRTUAL_stream__IStream__append_line_to(val* self, val* p0) {
332 stream__IStream__append_line_to(self, p0);
333 RET_LABEL:;
334 }
335 /* method stream#IStream#eof for (self: IStream): Bool */
336 short int stream__IStream__eof(val* self) {
337 short int var /* : Bool */;
338 const char* var_class_name;
339 var_class_name = self == NULL ? "null" : self->type->name;
340 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "eof", var_class_name);
341 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 79);
342 show_backtrace(1);
343 RET_LABEL:;
344 return var;
345 }
346 /* method stream#IStream#eof for (self: Object): Bool */
347 short int VIRTUAL_stream__IStream__eof(val* self) {
348 short int var /* : Bool */;
349 short int var1 /* : Bool */;
350 var1 = stream__IStream__eof(self);
351 var = var1;
352 RET_LABEL:;
353 return var;
354 }
355 /* method stream#OStream#write for (self: OStream, String) */
356 void stream__OStream__write(val* self, val* p0) {
357 const char* var_class_name;
358 var_class_name = self == NULL ? "null" : self->type->name;
359 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "write", var_class_name);
360 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 87);
361 show_backtrace(1);
362 RET_LABEL:;
363 }
364 /* method stream#OStream#write for (self: Object, String) */
365 void VIRTUAL_stream__OStream__write(val* self, val* p0) {
366 stream__OStream__write(self, p0);
367 RET_LABEL:;
368 }
369 /* method stream#OStream#is_writable for (self: OStream): Bool */
370 short int stream__OStream__is_writable(val* self) {
371 short int var /* : Bool */;
372 const char* var_class_name;
373 var_class_name = self == NULL ? "null" : self->type->name;
374 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "is_writable", var_class_name);
375 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 90);
376 show_backtrace(1);
377 RET_LABEL:;
378 return var;
379 }
380 /* method stream#OStream#is_writable for (self: Object): Bool */
381 short int VIRTUAL_stream__OStream__is_writable(val* self) {
382 short int var /* : Bool */;
383 short int var1 /* : Bool */;
384 var1 = stream__OStream__is_writable(self);
385 var = var1;
386 RET_LABEL:;
387 return var;
388 }
389 /* method stream#BufferedIStream#read_char for (self: BufferedIStream): Int */
390 long stream__BufferedIStream__read_char(val* self) {
391 long var /* : Int */;
392 short int var1 /* : Bool */;
393 short int var2 /* : Bool */;
394 long var3 /* : Int */;
395 val* var4 /* : nullable Buffer */;
396 long var5 /* : Int */;
397 short int var6 /* : Bool */;
398 short int var8 /* : Bool */;
399 int cltype;
400 int idtype;
401 const char* var_class_name;
402 short int var9 /* : Bool */;
403 long var10 /* : Int */;
404 val* var11 /* : nullable Buffer */;
405 long var12 /* : Int */;
406 short int var13 /* : Bool */;
407 short int var15 /* : Bool */;
408 int cltype16;
409 int idtype17;
410 const char* var_class_name18;
411 short int var19 /* : Bool */;
412 long var20 /* : Int */;
413 long var21 /* : Int */;
414 long var23 /* : Int */;
415 val* var24 /* : nullable Buffer */;
416 long var25 /* : Int */;
417 val* var26 /* : nullable Object */;
418 char var27 /* : Char */;
419 char var_c /* var c: Char */;
420 val* var_ /* var : BufferedIStream */;
421 long var28 /* : Int */;
422 long var29 /* : Int */;
423 long var30 /* : Int */;
424 long var32 /* : Int */;
425 long var33 /* : Int */;
426 long var35 /* : Int */;
427 var1 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:BufferedIStream>*/;
428 var2 = !var1;
429 if (!var2) {
430 fprintf(stderr, "Runtime error: %s", "Assert failed");
431 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 99);
432 show_backtrace(1);
433 }
434 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
435 var4 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
436 if (var4 == NULL) {
437 fprintf(stderr, "Runtime error: %s", "Reciever is null");
438 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 100);
439 show_backtrace(1);
440 } else {
441 var5 = ((long (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__length]))(var4) /* length on <var4:nullable Buffer>*/;
442 }
443 { /* Inline kernel#Int#>= (var3,var5) */
444 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
445 /* <var5:Int> isa OTHER */
446 var8 = 1; /* easy <var5:Int> isa OTHER*/
447 if (!var8) {
448 var_class_name = type_kernel__Int.name;
449 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
450 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
451 show_backtrace(1);
452 }
453 var9 = var3 >= var5;
454 var6 = var9;
455 goto RET_LABEL7;
456 RET_LABEL7:(void)0;
457 }
458 if (var6){
459 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
460 } else {
461 }
462 var10 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
463 var11 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
464 if (var11 == NULL) {
465 fprintf(stderr, "Runtime error: %s", "Reciever is null");
466 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 103);
467 show_backtrace(1);
468 } else {
469 var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on <var11:nullable Buffer>*/;
470 }
471 { /* Inline kernel#Int#>= (var10,var12) */
472 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
473 /* <var12:Int> isa OTHER */
474 var15 = 1; /* easy <var12:Int> isa OTHER*/
475 if (!var15) {
476 var_class_name18 = type_kernel__Int.name;
477 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
478 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
479 show_backtrace(1);
480 }
481 var19 = var10 >= var12;
482 var13 = var19;
483 goto RET_LABEL14;
484 RET_LABEL14:(void)0;
485 }
486 if (var13){
487 var20 = 1;
488 { /* Inline kernel#Int#unary - (var20) */
489 var23 = -var20;
490 var21 = var23;
491 goto RET_LABEL22;
492 RET_LABEL22:(void)0;
493 }
494 var = var21;
495 goto RET_LABEL;
496 } else {
497 }
498 var24 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
499 var25 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
500 if (var24 == NULL) {
501 fprintf(stderr, "Runtime error: %s", "Reciever is null");
502 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 106);
503 show_backtrace(1);
504 } else {
505 var26 = ((val* (*)(val*, long))(var24->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var24, var25) /* [] on <var24:nullable Buffer>*/;
506 }
507 var27 = ((struct instance_kernel__Char*)var26)->value; /* autounbox from nullable Object to Char */;
508 var_c = var27;
509 var_ = self;
510 var28 = var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <var_:BufferedIStream> */
511 var29 = 1;
512 { /* Inline kernel#Int#+ (var28,var29) */
513 var32 = var28 + var29;
514 var30 = var32;
515 goto RET_LABEL31;
516 RET_LABEL31:(void)0;
517 }
518 var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var30; /* _buffer_pos on <var_:BufferedIStream> */
519 { /* Inline kernel#Char#ascii (var_c) */
520 var35 = (unsigned char)var_c;
521 var33 = var35;
522 goto RET_LABEL34;
523 RET_LABEL34:(void)0;
524 }
525 var = var33;
526 goto RET_LABEL;
527 RET_LABEL:;
528 return var;
529 }
530 /* method stream#BufferedIStream#read_char for (self: Object): Int */
531 long VIRTUAL_stream__BufferedIStream__read_char(val* self) {
532 long var /* : Int */;
533 long var1 /* : Int */;
534 var1 = stream__BufferedIStream__read_char(self);
535 var = var1;
536 RET_LABEL:;
537 return var;
538 }
539 /* method stream#BufferedIStream#read for (self: BufferedIStream, Int): String */
540 val* stream__BufferedIStream__read(val* self, long p0) {
541 val* var /* : String */;
542 long var_i /* var i: Int */;
543 val* var1 /* : Buffer */;
544 val* var_s /* var s: Buffer */;
545 long var2 /* : Int */;
546 long var_j /* var j: Int */;
547 val* var3 /* : nullable Buffer */;
548 long var4 /* : Int */;
549 long var_k /* var k: Int */;
550 long var5 /* : Int */;
551 short int var6 /* : Bool */;
552 short int var8 /* : Bool */;
553 int cltype;
554 int idtype;
555 const char* var_class_name;
556 short int var9 /* : Bool */;
557 short int var10 /* : Bool */;
558 short int var12 /* : Bool */;
559 int cltype13;
560 int idtype14;
561 const char* var_class_name15;
562 short int var16 /* : Bool */;
563 short int var17 /* : Bool */;
564 val* var18 /* : String */;
565 long var19 /* : Int */;
566 val* var20 /* : nullable Buffer */;
567 long var21 /* : Int */;
568 short int var22 /* : Bool */;
569 short int var23 /* : Bool */;
570 short int var25 /* : Bool */;
571 int cltype26;
572 int idtype27;
573 const char* var_class_name28;
574 short int var29 /* : Bool */;
575 short int var_ /* var : Bool */;
576 long var30 /* : Int */;
577 short int var31 /* : Bool */;
578 short int var33 /* : Bool */;
579 int cltype34;
580 int idtype35;
581 const char* var_class_name36;
582 short int var37 /* : Bool */;
583 val* var38 /* : nullable Buffer */;
584 val* var39 /* : nullable Object */;
585 long var40 /* : Int */;
586 long var41 /* : Int */;
587 long var43 /* : Int */;
588 long var44 /* : Int */;
589 long var45 /* : Int */;
590 long var47 /* : Int */;
591 val* var49 /* : String */;
592 var_i = p0;
593 var1 = NEW_string__Buffer(&type_string__Buffer);
594 ((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var_i) /* with_capacity on <var1:Buffer>*/;
595 var_s = var1;
596 var2 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
597 var_j = var2;
598 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
599 if (var3 == NULL) {
600 fprintf(stderr, "Runtime error: %s", "Reciever is null");
601 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 115);
602 show_backtrace(1);
603 } else {
604 var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on <var3:nullable Buffer>*/;
605 }
606 var_k = var4;
607 for(;;) {
608 var5 = 0;
609 { /* Inline kernel#Int#> (var_i,var5) */
610 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
611 /* <var5:Int> isa OTHER */
612 var8 = 1; /* easy <var5:Int> isa OTHER*/
613 if (!var8) {
614 var_class_name = type_kernel__Int.name;
615 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
616 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
617 show_backtrace(1);
618 }
619 var9 = var_i > var5;
620 var6 = var9;
621 goto RET_LABEL7;
622 RET_LABEL7:(void)0;
623 }
624 if (!var6) break;
625 { /* Inline kernel#Int#>= (var_j,var_k) */
626 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
627 /* <var_k:Int> isa OTHER */
628 var12 = 1; /* easy <var_k:Int> isa OTHER*/
629 if (!var12) {
630 var_class_name15 = type_kernel__Int.name;
631 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
632 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
633 show_backtrace(1);
634 }
635 var16 = var_j >= var_k;
636 var10 = var16;
637 goto RET_LABEL11;
638 RET_LABEL11:(void)0;
639 }
640 if (var10){
641 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
642 var17 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:BufferedIStream>*/;
643 if (var17){
644 var18 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
645 var = var18;
646 goto RET_LABEL;
647 } else {
648 }
649 var19 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
650 var_j = var19;
651 var20 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
652 if (var20 == NULL) {
653 fprintf(stderr, "Runtime error: %s", "Reciever is null");
654 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 121);
655 show_backtrace(1);
656 } else {
657 var21 = ((long (*)(val*))(var20->class->vft[COLOR_abstract_collection__Collection__length]))(var20) /* length on <var20:nullable Buffer>*/;
658 }
659 var_k = var21;
660 } else {
661 }
662 for(;;) {
663 { /* Inline kernel#Int#< (var_j,var_k) */
664 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
665 /* <var_k:Int> isa OTHER */
666 var25 = 1; /* easy <var_k:Int> isa OTHER*/
667 if (!var25) {
668 var_class_name28 = type_kernel__Int.name;
669 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
670 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
671 show_backtrace(1);
672 }
673 var29 = var_j < var_k;
674 var23 = var29;
675 goto RET_LABEL24;
676 RET_LABEL24:(void)0;
677 }
678 var_ = var23;
679 if (var23){
680 var30 = 0;
681 { /* Inline kernel#Int#> (var_i,var30) */
682 /* Covariant cast for argument 0 (i) <var30:Int> isa OTHER */
683 /* <var30:Int> isa OTHER */
684 var33 = 1; /* easy <var30:Int> isa OTHER*/
685 if (!var33) {
686 var_class_name36 = type_kernel__Int.name;
687 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
688 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
689 show_backtrace(1);
690 }
691 var37 = var_i > var30;
692 var31 = var37;
693 goto RET_LABEL32;
694 RET_LABEL32:(void)0;
695 }
696 var22 = var31;
697 } else {
698 var22 = var_;
699 }
700 if (!var22) break;
701 var38 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
702 if (var38 == NULL) {
703 fprintf(stderr, "Runtime error: %s", "Reciever is null");
704 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 124);
705 show_backtrace(1);
706 } else {
707 var39 = ((val* (*)(val*, long))(var38->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var38, var_j) /* [] on <var38:nullable Buffer>*/;
708 }
709 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var39) /* add on <var_s:Buffer>*/;
710 var40 = 1;
711 { /* Inline kernel#Int#+ (var_j,var40) */
712 var43 = var_j + var40;
713 var41 = var43;
714 goto RET_LABEL42;
715 RET_LABEL42:(void)0;
716 }
717 var_j = var41;
718 var44 = 1;
719 { /* Inline kernel#Int#- (var_i,var44) */
720 var47 = var_i - var44;
721 var45 = var47;
722 goto RET_LABEL46;
723 RET_LABEL46:(void)0;
724 }
725 var_i = var45;
726 CONTINUE_label: (void)0;
727 }
728 BREAK_label: (void)0;
729 CONTINUE_label48: (void)0;
730 }
731 BREAK_label48: (void)0;
732 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_j; /* _buffer_pos on <self:BufferedIStream> */
733 var49 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
734 var = var49;
735 goto RET_LABEL;
736 RET_LABEL:;
737 return var;
738 }
739 /* method stream#BufferedIStream#read for (self: Object, Int): String */
740 val* VIRTUAL_stream__BufferedIStream__read(val* self, long p0) {
741 val* var /* : String */;
742 val* var1 /* : String */;
743 var1 = stream__BufferedIStream__read(self, p0);
744 var = var1;
745 RET_LABEL:;
746 return var;
747 }
748 /* method stream#BufferedIStream#read_all for (self: BufferedIStream): String */
749 val* stream__BufferedIStream__read_all(val* self) {
750 val* var /* : String */;
751 val* var1 /* : Buffer */;
752 val* var_s /* var s: Buffer */;
753 short int var2 /* : Bool */;
754 short int var3 /* : Bool */;
755 long var4 /* : Int */;
756 long var_j /* var j: Int */;
757 val* var5 /* : nullable Buffer */;
758 long var6 /* : Int */;
759 long var_k /* var k: Int */;
760 short int var7 /* : Bool */;
761 short int var9 /* : Bool */;
762 int cltype;
763 int idtype;
764 const char* var_class_name;
765 short int var10 /* : Bool */;
766 val* var11 /* : nullable Buffer */;
767 val* var12 /* : nullable Object */;
768 long var13 /* : Int */;
769 long var14 /* : Int */;
770 long var16 /* : Int */;
771 val* var18 /* : String */;
772 var1 = NEW_string__Buffer(&type_string__Buffer);
773 ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on <var1:Buffer>*/;
774 var_s = var1;
775 for(;;) {
776 var2 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:BufferedIStream>*/;
777 var3 = !var2;
778 if (!var3) break;
779 var4 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
780 var_j = var4;
781 var5 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
782 if (var5 == NULL) {
783 fprintf(stderr, "Runtime error: %s", "Reciever is null");
784 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 138);
785 show_backtrace(1);
786 } else {
787 var6 = ((long (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__length]))(var5) /* length on <var5:nullable Buffer>*/;
788 }
789 var_k = var6;
790 for(;;) {
791 { /* Inline kernel#Int#< (var_j,var_k) */
792 /* Covariant cast for argument 0 (i) <var_k:Int> isa OTHER */
793 /* <var_k:Int> isa OTHER */
794 var9 = 1; /* easy <var_k:Int> isa OTHER*/
795 if (!var9) {
796 var_class_name = type_kernel__Int.name;
797 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
798 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
799 show_backtrace(1);
800 }
801 var10 = var_j < var_k;
802 var7 = var10;
803 goto RET_LABEL8;
804 RET_LABEL8:(void)0;
805 }
806 if (!var7) break;
807 var11 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
808 if (var11 == NULL) {
809 fprintf(stderr, "Runtime error: %s", "Reciever is null");
810 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 140);
811 show_backtrace(1);
812 } else {
813 var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_j) /* [] on <var11:nullable Buffer>*/;
814 }
815 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var12) /* add on <var_s:Buffer>*/;
816 var13 = 1;
817 { /* Inline kernel#Int#+ (var_j,var13) */
818 var16 = var_j + var13;
819 var14 = var16;
820 goto RET_LABEL15;
821 RET_LABEL15:(void)0;
822 }
823 var_j = var14;
824 CONTINUE_label: (void)0;
825 }
826 BREAK_label: (void)0;
827 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_j; /* _buffer_pos on <self:BufferedIStream> */
828 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
829 CONTINUE_label17: (void)0;
830 }
831 BREAK_label17: (void)0;
832 var18 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on <var_s:Buffer>*/;
833 var = var18;
834 goto RET_LABEL;
835 RET_LABEL:;
836 return var;
837 }
838 /* method stream#BufferedIStream#read_all for (self: Object): String */
839 val* VIRTUAL_stream__BufferedIStream__read_all(val* self) {
840 val* var /* : String */;
841 val* var1 /* : String */;
842 var1 = stream__BufferedIStream__read_all(self);
843 var = var1;
844 RET_LABEL:;
845 return var;
846 }
847 /* method stream#BufferedIStream#append_line_to for (self: BufferedIStream, Buffer) */
848 void stream__BufferedIStream__append_line_to(val* self, val* p0) {
849 val* var_s /* var s: Buffer */;
850 long var /* : Int */;
851 long var_i /* var i: Int */;
852 short int var1 /* : Bool */;
853 val* var2 /* : nullable Buffer */;
854 long var3 /* : Int */;
855 short int var4 /* : Bool */;
856 short int var6 /* : Bool */;
857 int cltype;
858 int idtype;
859 const char* var_class_name;
860 short int var7 /* : Bool */;
861 short int var_ /* var : Bool */;
862 val* var8 /* : nullable Buffer */;
863 val* var9 /* : nullable Object */;
864 char var10 /* : Char */;
865 short int var11 /* : Bool */;
866 short int var13 /* : Bool */;
867 char var14 /* : Char */;
868 short int var15 /* : Bool */;
869 long var16 /* : Int */;
870 long var17 /* : Int */;
871 long var19 /* : Int */;
872 long var20 /* : Int */;
873 short int var21 /* : Bool */;
874 short int var23 /* : Bool */;
875 int cltype24;
876 int idtype25;
877 const char* var_class_name26;
878 short int var27 /* : Bool */;
879 long var28 /* : Int */;
880 long var29 /* : Int */;
881 long var31 /* : Int */;
882 long var32 /* : Int */;
883 long var33 /* : Int */;
884 long var35 /* : Int */;
885 long var36 /* : Int */;
886 long var_j /* var j: Int */;
887 short int var37 /* : Bool */;
888 short int var39 /* : Bool */;
889 int cltype40;
890 int idtype41;
891 const char* var_class_name42;
892 short int var43 /* : Bool */;
893 val* var44 /* : nullable Buffer */;
894 val* var45 /* : nullable Object */;
895 long var46 /* : Int */;
896 long var47 /* : Int */;
897 long var49 /* : Int */;
898 val* var51 /* : nullable Buffer */;
899 long var52 /* : Int */;
900 short int var53 /* : Bool */;
901 short int var55 /* : Bool */;
902 int cltype56;
903 int idtype57;
904 const char* var_class_name58;
905 short int var59 /* : Bool */;
906 long var60 /* : Int */;
907 long var61 /* : Int */;
908 long var63 /* : Int */;
909 short int var64 /* : Bool */;
910 var_s = p0;
911 for(;;) {
912 var = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
913 var_i = var;
914 for(;;) {
915 var2 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
916 if (var2 == NULL) {
917 fprintf(stderr, "Runtime error: %s", "Reciever is null");
918 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 154);
919 show_backtrace(1);
920 } else {
921 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:nullable Buffer>*/;
922 }
923 { /* Inline kernel#Int#< (var_i,var3) */
924 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
925 /* <var3:Int> isa OTHER */
926 var6 = 1; /* easy <var3:Int> isa OTHER*/
927 if (!var6) {
928 var_class_name = type_kernel__Int.name;
929 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
930 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
931 show_backtrace(1);
932 }
933 var7 = var_i < var3;
934 var4 = var7;
935 goto RET_LABEL5;
936 RET_LABEL5:(void)0;
937 }
938 var_ = var4;
939 if (var4){
940 var8 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
941 if (var8 == NULL) {
942 fprintf(stderr, "Runtime error: %s", "Reciever is null");
943 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 154);
944 show_backtrace(1);
945 } else {
946 var9 = ((val* (*)(val*, long))(var8->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var8, var_i) /* [] on <var8:nullable Buffer>*/;
947 }
948 var10 = '\n';
949 { /* Inline kernel#Char#!= (var9,var10) */
950 var13 = (var9 != NULL) && (var9->class == &class_kernel__Char);
951 if (var13) {
952 var14 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */;
953 var13 = (var14 == var10);
954 }
955 var15 = !var13;
956 var11 = var15;
957 goto RET_LABEL12;
958 RET_LABEL12:(void)0;
959 }
960 var1 = var11;
961 } else {
962 var1 = var_;
963 }
964 if (!var1) break;
965 var16 = 1;
966 { /* Inline kernel#Int#+ (var_i,var16) */
967 var19 = var_i + var16;
968 var17 = var19;
969 goto RET_LABEL18;
970 RET_LABEL18:(void)0;
971 }
972 var_i = var17;
973 CONTINUE_label: (void)0;
974 }
975 BREAK_label: (void)0;
976 var20 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
977 { /* Inline kernel#Int#> (var_i,var20) */
978 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
979 /* <var20:Int> isa OTHER */
980 var23 = 1; /* easy <var20:Int> isa OTHER*/
981 if (!var23) {
982 var_class_name26 = type_kernel__Int.name;
983 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
984 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
985 show_backtrace(1);
986 }
987 var27 = var_i > var20;
988 var21 = var27;
989 goto RET_LABEL22;
990 RET_LABEL22:(void)0;
991 }
992 if (var21){
993 var28 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Buffer>*/;
994 { /* Inline kernel#Int#+ (var28,var_i) */
995 var31 = var28 + var_i;
996 var29 = var31;
997 goto RET_LABEL30;
998 RET_LABEL30:(void)0;
999 }
1000 var32 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
1001 { /* Inline kernel#Int#- (var29,var32) */
1002 var35 = var29 - var32;
1003 var33 = var35;
1004 goto RET_LABEL34;
1005 RET_LABEL34:(void)0;
1006 }
1007 ((void (*)(val*, long))(var_s->class->vft[COLOR_array__AbstractArray__enlarge]))(var_s, var33) /* enlarge on <var_s:Buffer>*/;
1008 var36 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
1009 var_j = var36;
1010 for(;;) {
1011 { /* Inline kernel#Int#< (var_j,var_i) */
1012 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
1013 /* <var_i:Int> isa OTHER */
1014 var39 = 1; /* easy <var_i:Int> isa OTHER*/
1015 if (!var39) {
1016 var_class_name42 = type_kernel__Int.name;
1017 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
1018 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1019 show_backtrace(1);
1020 }
1021 var43 = var_j < var_i;
1022 var37 = var43;
1023 goto RET_LABEL38;
1024 RET_LABEL38:(void)0;
1025 }
1026 if (!var37) break;
1027 var44 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
1028 if (var44 == NULL) {
1029 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1030 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 164);
1031 show_backtrace(1);
1032 } else {
1033 var45 = ((val* (*)(val*, long))(var44->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var44, var_j) /* [] on <var44:nullable Buffer>*/;
1034 }
1035 ((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var45) /* add on <var_s:Buffer>*/;
1036 var46 = 1;
1037 { /* Inline kernel#Int#+ (var_j,var46) */
1038 var49 = var_j + var46;
1039 var47 = var49;
1040 goto RET_LABEL48;
1041 RET_LABEL48:(void)0;
1042 }
1043 var_j = var47;
1044 CONTINUE_label50: (void)0;
1045 }
1046 BREAK_label50: (void)0;
1047 } else {
1048 }
1049 var51 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
1050 if (var51 == NULL) {
1051 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1052 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 169);
1053 show_backtrace(1);
1054 } else {
1055 var52 = ((long (*)(val*))(var51->class->vft[COLOR_abstract_collection__Collection__length]))(var51) /* length on <var51:nullable Buffer>*/;
1056 }
1057 { /* Inline kernel#Int#< (var_i,var52) */
1058 /* Covariant cast for argument 0 (i) <var52:Int> isa OTHER */
1059 /* <var52:Int> isa OTHER */
1060 var55 = 1; /* easy <var52:Int> isa OTHER*/
1061 if (!var55) {
1062 var_class_name58 = type_kernel__Int.name;
1063 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
1064 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1065 show_backtrace(1);
1066 }
1067 var59 = var_i < var52;
1068 var53 = var59;
1069 goto RET_LABEL54;
1070 RET_LABEL54:(void)0;
1071 }
1072 if (var53){
1073 var60 = 1;
1074 { /* Inline kernel#Int#+ (var_i,var60) */
1075 var63 = var_i + var60;
1076 var61 = var63;
1077 goto RET_LABEL62;
1078 RET_LABEL62:(void)0;
1079 }
1080 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var61; /* _buffer_pos on <self:BufferedIStream> */
1081 goto RET_LABEL;
1082 } else {
1083 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_i; /* _buffer_pos on <self:BufferedIStream> */
1084 var64 = ((short int (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__end_reached]))(self) /* end_reached on <self:BufferedIStream>*/;
1085 if (var64){
1086 goto RET_LABEL;
1087 } else {
1088 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on <self:BufferedIStream>*/;
1089 }
1090 }
1091 CONTINUE_label65: (void)0;
1092 }
1093 BREAK_label65: (void)0;
1094 RET_LABEL:;
1095 }
1096 /* method stream#BufferedIStream#append_line_to for (self: Object, Buffer) */
1097 void VIRTUAL_stream__BufferedIStream__append_line_to(val* self, val* p0) {
1098 stream__BufferedIStream__append_line_to(self, p0);
1099 RET_LABEL:;
1100 }
1101 /* method stream#BufferedIStream#eof for (self: BufferedIStream): Bool */
1102 short int stream__BufferedIStream__eof(val* self) {
1103 short int var /* : Bool */;
1104 short int var1 /* : Bool */;
1105 long var2 /* : Int */;
1106 val* var3 /* : nullable Buffer */;
1107 long var4 /* : Int */;
1108 short int var5 /* : Bool */;
1109 short int var7 /* : Bool */;
1110 int cltype;
1111 int idtype;
1112 const char* var_class_name;
1113 short int var8 /* : Bool */;
1114 short int var_ /* var : Bool */;
1115 short int var9 /* : Bool */;
1116 var2 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on <self:BufferedIStream> */
1117 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:BufferedIStream> */
1118 if (var3 == NULL) {
1119 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1120 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 185);
1121 show_backtrace(1);
1122 } else {
1123 var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on <var3:nullable Buffer>*/;
1124 }
1125 { /* Inline kernel#Int#>= (var2,var4) */
1126 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1127 /* <var4:Int> isa OTHER */
1128 var7 = 1; /* easy <var4:Int> isa OTHER*/
1129 if (!var7) {
1130 var_class_name = type_kernel__Int.name;
1131 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1132 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
1133 show_backtrace(1);
1134 }
1135 var8 = var2 >= var4;
1136 var5 = var8;
1137 goto RET_LABEL6;
1138 RET_LABEL6:(void)0;
1139 }
1140 var_ = var5;
1141 if (var5){
1142 var9 = ((short int (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__end_reached]))(self) /* end_reached on <self:BufferedIStream>*/;
1143 var1 = var9;
1144 } else {
1145 var1 = var_;
1146 }
1147 var = var1;
1148 goto RET_LABEL;
1149 RET_LABEL:;
1150 return var;
1151 }
1152 /* method stream#BufferedIStream#eof for (self: Object): Bool */
1153 short int VIRTUAL_stream__BufferedIStream__eof(val* self) {
1154 short int var /* : Bool */;
1155 short int var1 /* : Bool */;
1156 var1 = stream__BufferedIStream__eof(self);
1157 var = var1;
1158 RET_LABEL:;
1159 return var;
1160 }
1161 /* method stream#BufferedIStream#fill_buffer for (self: BufferedIStream) */
1162 void stream__BufferedIStream__fill_buffer(val* self) {
1163 const char* var_class_name;
1164 var_class_name = self == NULL ? "null" : self->type->name;
1165 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "fill_buffer", var_class_name);
1166 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 193);
1167 show_backtrace(1);
1168 RET_LABEL:;
1169 }
1170 /* method stream#BufferedIStream#fill_buffer for (self: Object) */
1171 void VIRTUAL_stream__BufferedIStream__fill_buffer(val* self) {
1172 stream__BufferedIStream__fill_buffer(self);
1173 RET_LABEL:;
1174 }
1175 /* method stream#BufferedIStream#end_reached for (self: BufferedIStream): Bool */
1176 short int stream__BufferedIStream__end_reached(val* self) {
1177 short int var /* : Bool */;
1178 const char* var_class_name;
1179 var_class_name = self == NULL ? "null" : self->type->name;
1180 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "end_reached", var_class_name);
1181 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 196);
1182 show_backtrace(1);
1183 RET_LABEL:;
1184 return var;
1185 }
1186 /* method stream#BufferedIStream#end_reached for (self: Object): Bool */
1187 short int VIRTUAL_stream__BufferedIStream__end_reached(val* self) {
1188 short int var /* : Bool */;
1189 short int var1 /* : Bool */;
1190 var1 = stream__BufferedIStream__end_reached(self);
1191 var = var1;
1192 RET_LABEL:;
1193 return var;
1194 }
1195 /* method stream#BufferedIStream#prepare_buffer for (self: BufferedIStream, Int) */
1196 void stream__BufferedIStream__prepare_buffer(val* self, long p0) {
1197 long var_capacity /* var capacity: Int */;
1198 val* var /* : Buffer */;
1199 long var1 /* : Int */;
1200 var_capacity = p0;
1201 var = NEW_string__Buffer(&type_string__Buffer);
1202 ((void (*)(val*, long))(var->class->vft[COLOR_string__Buffer__with_capacity]))(var, var_capacity) /* with_capacity on <var:Buffer>*/;
1203 self->attrs[COLOR_stream__BufferedIStream___buffer].val = var; /* _buffer on <self:BufferedIStream> */
1204 var1 = 0;
1205 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var1; /* _buffer_pos on <self:BufferedIStream> */
1206 RET_LABEL:;
1207 }
1208 /* method stream#BufferedIStream#prepare_buffer for (self: Object, Int) */
1209 void VIRTUAL_stream__BufferedIStream__prepare_buffer(val* self, long p0) {
1210 stream__BufferedIStream__prepare_buffer(self, p0);
1211 RET_LABEL:;
1212 }
1213 /* method stream#BufferedIStream#init for (self: BufferedIStream) */
1214 void stream__BufferedIStream__init(val* self) {
1215 RET_LABEL:;
1216 }
1217 /* method stream#BufferedIStream#init for (self: Object) */
1218 void VIRTUAL_stream__BufferedIStream__init(val* self) {
1219 stream__BufferedIStream__init(self);
1220 RET_LABEL:;
1221 }
1222 /* method stream#FDStream#fd for (self: FDStream): Int */
1223 long stream__FDStream__fd(val* self) {
1224 long var /* : Int */;
1225 long var1 /* : Int */;
1226 var1 = self->attrs[COLOR_stream__FDStream___64dfd].l; /* @fd on <self:FDStream> */
1227 var = var1;
1228 RET_LABEL:;
1229 return var;
1230 }
1231 /* method stream#FDStream#fd for (self: Object): Int */
1232 long VIRTUAL_stream__FDStream__fd(val* self) {
1233 long var /* : Int */;
1234 long var1 /* : Int */;
1235 var1 = stream__FDStream__fd(self);
1236 var = var1;
1237 RET_LABEL:;
1238 return var;
1239 }
1240 /* method stream#FDStream#fd= for (self: FDStream, Int) */
1241 void stream__FDStream__fd_61d(val* self, long p0) {
1242 self->attrs[COLOR_stream__FDStream___64dfd].l = p0; /* @fd on <self:FDStream> */
1243 RET_LABEL:;
1244 }
1245 /* method stream#FDStream#fd= for (self: Object, Int) */
1246 void VIRTUAL_stream__FDStream__fd_61d(val* self, long p0) {
1247 stream__FDStream__fd_61d(self, p0);
1248 RET_LABEL:;
1249 }
1250 /* method stream#FDStream#close for (self: FDStream) */
1251 void stream__FDStream__close(val* self) {
1252 long var /* : Int */;
1253 long var1 /* : Int */;
1254 var = ((long (*)(val*))(self->class->vft[COLOR_stream__FDStream__fd]))(self) /* fd on <self:FDStream>*/;
1255 var1 = ((long (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__native_close]))(self, var) /* native_close on <self:FDStream>*/;
1256 var1;
1257 RET_LABEL:;
1258 }
1259 /* method stream#FDStream#close for (self: Object) */
1260 void VIRTUAL_stream__FDStream__close(val* self) {
1261 stream__FDStream__close(self);
1262 RET_LABEL:;
1263 }
1264 /* method stream#FDStream#native_close for (self: FDStream, Int): Int */
1265 long stream__FDStream__native_close(val* self, long p0) {
1266 long var /* : Int */;
1267 long var1 /* : Int */;
1268 var1 = stream_FDStream_FDStream_native_close_1(self, p0);
1269 var = var1;
1270 goto RET_LABEL;
1271 RET_LABEL:;
1272 return var;
1273 }
1274 /* method stream#FDStream#native_close for (self: Object, Int): Int */
1275 long VIRTUAL_stream__FDStream__native_close(val* self, long p0) {
1276 long var /* : Int */;
1277 long var1 /* : Int */;
1278 var1 = stream__FDStream__native_close(self, p0);
1279 var = var1;
1280 RET_LABEL:;
1281 return var;
1282 }
1283 /* method stream#FDStream#native_read_char for (self: FDStream, Int): Int */
1284 long stream__FDStream__native_read_char(val* self, long p0) {
1285 long var /* : Int */;
1286 long var1 /* : Int */;
1287 var1 = stream_FDStream_FDStream_native_read_char_1(self, p0);
1288 var = var1;
1289 goto RET_LABEL;
1290 RET_LABEL:;
1291 return var;
1292 }
1293 /* method stream#FDStream#native_read_char for (self: Object, Int): Int */
1294 long VIRTUAL_stream__FDStream__native_read_char(val* self, long p0) {
1295 long var /* : Int */;
1296 long var1 /* : Int */;
1297 var1 = stream__FDStream__native_read_char(self, p0);
1298 var = var1;
1299 RET_LABEL:;
1300 return var;
1301 }
1302 /* method stream#FDStream#native_read for (self: FDStream, Int, NativeString, Int): Int */
1303 long stream__FDStream__native_read(val* self, long p0, char* p1, long p2) {
1304 long var /* : Int */;
1305 long var1 /* : Int */;
1306 var1 = stream_FDStream_FDStream_native_read_3(self, p0, p1, p2);
1307 var = var1;
1308 goto RET_LABEL;
1309 RET_LABEL:;
1310 return var;
1311 }
1312 /* method stream#FDStream#native_read for (self: Object, Int, NativeString, Int): Int */
1313 long VIRTUAL_stream__FDStream__native_read(val* self, long p0, char* p1, long p2) {
1314 long var /* : Int */;
1315 long var1 /* : Int */;
1316 var1 = stream__FDStream__native_read(self, p0, p1, p2);
1317 var = var1;
1318 RET_LABEL:;
1319 return var;
1320 }
1321 /* method stream#FDStream#native_write for (self: FDStream, Int, NativeString, Int): Int */
1322 long stream__FDStream__native_write(val* self, long p0, char* p1, long p2) {
1323 long var /* : Int */;
1324 long var1 /* : Int */;
1325 var1 = stream_FDStream_FDStream_native_write_3(self, p0, p1, p2);
1326 var = var1;
1327 goto RET_LABEL;
1328 RET_LABEL:;
1329 return var;
1330 }
1331 /* method stream#FDStream#native_write for (self: Object, Int, NativeString, Int): Int */
1332 long VIRTUAL_stream__FDStream__native_write(val* self, long p0, char* p1, long p2) {
1333 long var /* : Int */;
1334 long var1 /* : Int */;
1335 var1 = stream__FDStream__native_write(self, p0, p1, p2);
1336 var = var1;
1337 RET_LABEL:;
1338 return var;
1339 }
1340 /* method stream#FDStream#native_write_char for (self: FDStream, Int, Char): Int */
1341 long stream__FDStream__native_write_char(val* self, long p0, char p1) {
1342 long var /* : Int */;
1343 long var1 /* : Int */;
1344 var1 = stream_FDStream_FDStream_native_write_char_2(self, p0, p1);
1345 var = var1;
1346 goto RET_LABEL;
1347 RET_LABEL:;
1348 return var;
1349 }
1350 /* method stream#FDStream#native_write_char for (self: Object, Int, Char): Int */
1351 long VIRTUAL_stream__FDStream__native_write_char(val* self, long p0, char p1) {
1352 long var /* : Int */;
1353 long var1 /* : Int */;
1354 var1 = stream__FDStream__native_write_char(self, p0, p1);
1355 var = var1;
1356 RET_LABEL:;
1357 return var;
1358 }
1359 /* method stream#FDStream#init for (self: FDStream, Int) */
1360 void stream__FDStream__init(val* self, long p0) {
1361 long var_fd /* var fd: Int */;
1362 var_fd = p0;
1363 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__fd_61d]))(self, var_fd) /* fd= on <self:FDStream>*/;
1364 RET_LABEL:;
1365 }
1366 /* method stream#FDStream#init for (self: Object, Int) */
1367 void VIRTUAL_stream__FDStream__init(val* self, long p0) {
1368 stream__FDStream__init(self, p0);
1369 RET_LABEL:;
1370 }
1371 /* method stream#FDIStream#eof for (self: FDIStream): Bool */
1372 short int stream__FDIStream__eof(val* self) {
1373 short int var /* : Bool */;
1374 short int var1 /* : Bool */;
1375 var1 = self->attrs[COLOR_stream__FDIStream___64deof].s; /* @eof on <self:FDIStream> */
1376 var = var1;
1377 RET_LABEL:;
1378 return var;
1379 }
1380 /* method stream#FDIStream#eof for (self: Object): Bool */
1381 short int VIRTUAL_stream__FDIStream__eof(val* self) {
1382 short int var /* : Bool */;
1383 short int var1 /* : Bool */;
1384 var1 = stream__FDIStream__eof(self);
1385 var = var1;
1386 RET_LABEL:;
1387 return var;
1388 }
1389 /* method stream#FDIStream#eof= for (self: FDIStream, Bool) */
1390 void stream__FDIStream__eof_61d(val* self, short int p0) {
1391 self->attrs[COLOR_stream__FDIStream___64deof].s = p0; /* @eof on <self:FDIStream> */
1392 RET_LABEL:;
1393 }
1394 /* method stream#FDIStream#eof= for (self: Object, Bool) */
1395 void VIRTUAL_stream__FDIStream__eof_61d(val* self, short int p0) {
1396 stream__FDIStream__eof_61d(self, p0);
1397 RET_LABEL:;
1398 }
1399 /* method stream#FDIStream#read_char for (self: FDIStream): Int */
1400 long stream__FDIStream__read_char(val* self) {
1401 long var /* : Int */;
1402 long var1 /* : Int */;
1403 long var2 /* : Int */;
1404 long var_nb /* var nb: Int */;
1405 long var3 /* : Int */;
1406 long var4 /* : Int */;
1407 long var6 /* : Int */;
1408 short int var7 /* : Bool */;
1409 short int var9 /* : Bool */;
1410 short int var10 /* : Bool */;
1411 var1 = ((long (*)(val*))(self->class->vft[COLOR_stream__FDStream__fd]))(self) /* fd on <self:FDIStream>*/;
1412 var2 = ((long (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__native_read_char]))(self, var1) /* native_read_char on <self:FDIStream>*/;
1413 var_nb = var2;
1414 var3 = 1;
1415 { /* Inline kernel#Int#unary - (var3) */
1416 var6 = -var3;
1417 var4 = var6;
1418 goto RET_LABEL5;
1419 RET_LABEL5:(void)0;
1420 }
1421 { /* Inline kernel#Int#== (var_nb,var4) */
1422 var9 = var_nb == var4;
1423 var7 = var9;
1424 goto RET_LABEL8;
1425 RET_LABEL8:(void)0;
1426 }
1427 if (var7){
1428 var10 = 1;
1429 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDIStream__eof_61d]))(self, var10) /* eof= on <self:FDIStream>*/;
1430 } else {
1431 }
1432 var = var_nb;
1433 goto RET_LABEL;
1434 RET_LABEL:;
1435 return var;
1436 }
1437 /* method stream#FDIStream#read_char for (self: Object): Int */
1438 long VIRTUAL_stream__FDIStream__read_char(val* self) {
1439 long var /* : Int */;
1440 long var1 /* : Int */;
1441 var1 = stream__FDIStream__read_char(self);
1442 var = var1;
1443 RET_LABEL:;
1444 return var;
1445 }
1446 /* method stream#FDIStream#init for (self: FDIStream, Int) */
1447 void stream__FDIStream__init(val* self, long p0) {
1448 long var_fd /* var fd: Int */;
1449 var_fd = p0;
1450 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__init]))(self, p0) /* init on <self:FDIStream>*/;
1451 RET_LABEL:;
1452 }
1453 /* method stream#FDIStream#init for (self: Object, Int) */
1454 void VIRTUAL_stream__FDIStream__init(val* self, long p0) {
1455 stream__FDIStream__init(self, p0);
1456 RET_LABEL:;
1457 }
1458 /* method stream#FDOStream#is_writable for (self: FDOStream): Bool */
1459 short int stream__FDOStream__is_writable(val* self) {
1460 short int var /* : Bool */;
1461 short int var1 /* : Bool */;
1462 var1 = self->attrs[COLOR_stream__FDOStream___64dis_writable].s; /* @is_writable on <self:FDOStream> */
1463 var = var1;
1464 RET_LABEL:;
1465 return var;
1466 }
1467 /* method stream#FDOStream#is_writable for (self: Object): Bool */
1468 short int VIRTUAL_stream__FDOStream__is_writable(val* self) {
1469 short int var /* : Bool */;
1470 short int var1 /* : Bool */;
1471 var1 = stream__FDOStream__is_writable(self);
1472 var = var1;
1473 RET_LABEL:;
1474 return var;
1475 }
1476 /* method stream#FDOStream#is_writable= for (self: FDOStream, Bool) */
1477 void stream__FDOStream__is_writable_61d(val* self, short int p0) {
1478 self->attrs[COLOR_stream__FDOStream___64dis_writable].s = p0; /* @is_writable on <self:FDOStream> */
1479 RET_LABEL:;
1480 }
1481 /* method stream#FDOStream#is_writable= for (self: Object, Bool) */
1482 void VIRTUAL_stream__FDOStream__is_writable_61d(val* self, short int p0) {
1483 stream__FDOStream__is_writable_61d(self, p0);
1484 RET_LABEL:;
1485 }
1486 /* method stream#FDOStream#write for (self: FDOStream, String) */
1487 void stream__FDOStream__write(val* self, val* p0) {
1488 val* var_s /* var s: String */;
1489 long var /* : Int */;
1490 char* var1 /* : NativeString */;
1491 long var2 /* : Int */;
1492 long var3 /* : Int */;
1493 long var_nb /* var nb: Int */;
1494 long var4 /* : Int */;
1495 short int var5 /* : Bool */;
1496 short int var7 /* : Bool */;
1497 int cltype;
1498 int idtype;
1499 const char* var_class_name;
1500 short int var8 /* : Bool */;
1501 short int var9 /* : Bool */;
1502 var_s = p0;
1503 var = ((long (*)(val*))(self->class->vft[COLOR_stream__FDStream__fd]))(self) /* fd on <self:FDOStream>*/;
1504 var1 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__String__to_cstring]))(var_s) /* to_cstring on <var_s:String>*/;
1505 var2 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
1506 var3 = ((long (*)(val*, long, char*, long))(self->class->vft[COLOR_stream__FDStream__native_write]))(self, var, var1, var2) /* native_write on <self:FDOStream>*/;
1507 var_nb = var3;
1508 var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
1509 { /* Inline kernel#Int#< (var_nb,var4) */
1510 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1511 /* <var4:Int> isa OTHER */
1512 var7 = 1; /* easy <var4:Int> isa OTHER*/
1513 if (!var7) {
1514 var_class_name = type_kernel__Int.name;
1515 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1516 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1517 show_backtrace(1);
1518 }
1519 var8 = var_nb < var4;
1520 var5 = var8;
1521 goto RET_LABEL6;
1522 RET_LABEL6:(void)0;
1523 }
1524 if (var5){
1525 var9 = 0;
1526 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDOStream__is_writable_61d]))(self, var9) /* is_writable= on <self:FDOStream>*/;
1527 } else {
1528 }
1529 RET_LABEL:;
1530 }
1531 /* method stream#FDOStream#write for (self: Object, String) */
1532 void VIRTUAL_stream__FDOStream__write(val* self, val* p0) {
1533 stream__FDOStream__write(self, p0);
1534 RET_LABEL:;
1535 }
1536 /* method stream#FDOStream#init for (self: FDOStream, Int) */
1537 void stream__FDOStream__init(val* self, long p0) {
1538 long var_fd /* var fd: Int */;
1539 short int var /* : Bool */;
1540 var_fd = p0;
1541 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__init]))(self, p0) /* init on <self:FDOStream>*/;
1542 var = 1;
1543 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDOStream__is_writable_61d]))(self, var) /* is_writable= on <self:FDOStream>*/;
1544 RET_LABEL:;
1545 }
1546 /* method stream#FDOStream#init for (self: Object, Int) */
1547 void VIRTUAL_stream__FDOStream__init(val* self, long p0) {
1548 stream__FDOStream__init(self, p0);
1549 RET_LABEL:;
1550 }
1551 /* method stream#FDIOStream#init for (self: FDIOStream, Int) */
1552 void stream__FDIOStream__init(val* self, long p0) {
1553 long var_fd /* var fd: Int */;
1554 short int var /* : Bool */;
1555 var_fd = p0;
1556 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDIStream__init]))(self, p0) /* init on <self:FDIOStream>*/;
1557 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDOStream__init]))(self, p0) /* init on <self:FDIOStream>*/;
1558 ((void (*)(val*, long))(self->class->vft[COLOR_stream__FDStream__fd_61d]))(self, var_fd) /* fd= on <self:FDIOStream>*/;
1559 var = 1;
1560 ((void (*)(val*, short int))(self->class->vft[COLOR_stream__FDOStream__is_writable_61d]))(self, var) /* is_writable= on <self:FDIOStream>*/;
1561 RET_LABEL:;
1562 }
1563 /* method stream#FDIOStream#init for (self: Object, Int) */
1564 void VIRTUAL_stream__FDIOStream__init(val* self, long p0) {
1565 stream__FDIOStream__init(self, p0);
1566 RET_LABEL:;
1567 }
1568 /* method stream#Object#poll for (self: Object, Sequence[FDStream]): nullable FDStream */
1569 val* stream__Object__poll(val* self, val* p0) {
1570 val* var /* : nullable FDStream */;
1571 val* var_streams /* var streams: Sequence[FDStream] */;
1572 val* var1 /* : Array[Int] */;
1573 val* var_in_fds /* var in_fds: Array[Int] */;
1574 val* var2 /* : Array[Int] */;
1575 val* var_out_fds /* var out_fds: Array[Int] */;
1576 val* var3 /* : HashMap[Int, FDStream] */;
1577 val* var_fd_to_stream /* var fd_to_stream: HashMap[Int, FDStream] */;
1578 val* var4 /* : Iterator[nullable Object] */;
1579 short int var5 /* : Bool */;
1580 val* var6 /* : nullable Object */;
1581 val* var_s /* var s: FDStream */;
1582 long var7 /* : Int */;
1583 long var_fd /* var fd: Int */;
1584 short int var8 /* : Bool */;
1585 int cltype;
1586 int idtype;
1587 val* var9 /* : nullable Object */;
1588 short int var10 /* : Bool */;
1589 int cltype11;
1590 int idtype12;
1591 val* var13 /* : nullable Object */;
1592 val* var14 /* : Object */;
1593 val* var15 /* : nullable Int */;
1594 val* var_polled_fd /* var polled_fd: nullable Int */;
1595 val* var16 /* : null */;
1596 short int var17 /* : Bool */;
1597 val* var18 /* : null */;
1598 val* var19 /* : nullable Object */;
1599 var_streams = p0;
1600 var1 = NEW_array__Array(&type_array__Arraykernel__Int);
1601 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Int]>*/;
1602 var_in_fds = var1;
1603 var2 = NEW_array__Array(&type_array__Arraykernel__Int);
1604 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Int]>*/;
1605 var_out_fds = var2;
1606 var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapkernel__Intstream__FDStream);
1607 ((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[Int, FDStream]>*/;
1608 var_fd_to_stream = var3;
1609 var4 = ((val* (*)(val*))(var_streams->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_streams) /* iterator on <var_streams:Sequence[FDStream]>*/;
1610 for(;;) {
1611 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
1612 if(!var5) break;
1613 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
1614 var_s = var6;
1615 var7 = ((long (*)(val*))(var_s->class->vft[COLOR_stream__FDStream__fd]))(var_s) /* fd on <var_s:FDStream>*/;
1616 var_fd = var7;
1617 /* <var_s:FDStream> isa FDIStream */
1618 cltype = type_stream__FDIStream.color;
1619 idtype = type_stream__FDIStream.id;
1620 if(cltype >= var_s->type->table_size) {
1621 var8 = 0;
1622 } else {
1623 var8 = var_s->type->type_table[cltype] == idtype;
1624 }
1625 if (var8){
1626 var9 = BOX_kernel__Int(var_fd); /* autobox from Int to nullable Object */
1627 ((void (*)(val*, val*))(var_in_fds->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_in_fds, var9) /* add on <var_in_fds:Array[Int]>*/;
1628 } else {
1629 }
1630 /* <var_s:FDStream> isa FDOStream */
1631 cltype11 = type_stream__FDOStream.color;
1632 idtype12 = type_stream__FDOStream.id;
1633 if(cltype11 >= var_s->type->table_size) {
1634 var10 = 0;
1635 } else {
1636 var10 = var_s->type->type_table[cltype11] == idtype12;
1637 }
1638 if (var10){
1639 var13 = BOX_kernel__Int(var_fd); /* autobox from Int to nullable Object */
1640 ((void (*)(val*, val*))(var_out_fds->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_out_fds, var13) /* add on <var_out_fds:Array[Int]>*/;
1641 } else {
1642 }
1643 var14 = BOX_kernel__Int(var_fd); /* autobox from Int to Object */
1644 ((void (*)(val*, val*, val*))(var_fd_to_stream->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var_fd_to_stream, var14, var_s) /* []= on <var_fd_to_stream:HashMap[Int, FDStream]>*/;
1645 CONTINUE_label: (void)0;
1646 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
1647 }
1648 BREAK_label: (void)0;
1649 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_stream__Object__intern_poll]))(self, var_in_fds, var_out_fds) /* intern_poll on <self:Object>*/;
1650 var_polled_fd = var15;
1651 var16 = NULL;
1652 if (var_polled_fd == NULL) {
1653 var17 = 1; /* is null */
1654 } else {
1655 var17 = 0; /* arg is null but recv is not */
1656 }
1657 if (var17){
1658 var18 = NULL;
1659 var = var18;
1660 goto RET_LABEL;
1661 } else {
1662 var19 = ((val* (*)(val*, val*))(var_fd_to_stream->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_fd_to_stream, var_polled_fd) /* [] on <var_fd_to_stream:HashMap[Int, FDStream]>*/;
1663 var = var19;
1664 goto RET_LABEL;
1665 }
1666 RET_LABEL:;
1667 return var;
1668 }
1669 /* method stream#Object#poll for (self: Object, Sequence[FDStream]): nullable FDStream */
1670 val* VIRTUAL_stream__Object__poll(val* self, val* p0) {
1671 val* var /* : nullable FDStream */;
1672 val* var1 /* : nullable FDStream */;
1673 var1 = stream__Object__poll(self, p0);
1674 var = var1;
1675 RET_LABEL:;
1676 return var;
1677 }
1678 /* method stream#Object#intern_poll for (self: Object, Array[Int], Array[Int]): nullable Int */
1679 val* stream__Object__intern_poll(val* self, val* p0, val* p1) {
1680 val* var /* : nullable Int */;
1681 fprintf(stderr, "NOT YET IMPLEMENTED nitni for stream#Object#intern_poll at lib/standard/stream.nit:298,2--171\n");
1682 show_backtrace(1);
1683 RET_LABEL:;
1684 return var;
1685 }
1686 /* method stream#Object#intern_poll for (self: Object, Array[Int], Array[Int]): nullable Int */
1687 val* VIRTUAL_stream__Object__intern_poll(val* self, val* p0, val* p1) {
1688 val* var /* : nullable Int */;
1689 val* var1 /* : nullable Int */;
1690 var1 = stream__Object__intern_poll(self, p0, p1);
1691 var = var1;
1692 RET_LABEL:;
1693 return var;
1694 }
1695 /* method stream#StringOStream#content for (self: StringOStream): Array[String] */
1696 val* stream__StringOStream__content(val* self) {
1697 val* var /* : Array[String] */;
1698 val* var1 /* : Array[String] */;
1699 var1 = self->attrs[COLOR_stream__StringOStream___64dcontent].val; /* @content on <self:StringOStream> */
1700 if (var1 == NULL) {
1701 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @content");
1702 fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 305);
1703 show_backtrace(1);
1704 }
1705 var = var1;
1706 RET_LABEL:;
1707 return var;
1708 }
1709 /* method stream#StringOStream#content for (self: Object): Array[String] */
1710 val* VIRTUAL_stream__StringOStream__content(val* self) {
1711 val* var /* : Array[String] */;
1712 val* var1 /* : Array[String] */;
1713 var1 = stream__StringOStream__content(self);
1714 var = var1;
1715 RET_LABEL:;
1716 return var;
1717 }
1718 /* method stream#StringOStream#content= for (self: StringOStream, Array[String]) */
1719 void stream__StringOStream__content_61d(val* self, val* p0) {
1720 self->attrs[COLOR_stream__StringOStream___64dcontent].val = p0; /* @content on <self:StringOStream> */
1721 RET_LABEL:;
1722 }
1723 /* method stream#StringOStream#content= for (self: Object, Array[String]) */
1724 void VIRTUAL_stream__StringOStream__content_61d(val* self, val* p0) {
1725 stream__StringOStream__content_61d(self, p0);
1726 RET_LABEL:;
1727 }
1728 /* method stream#StringOStream#to_s for (self: StringOStream): String */
1729 val* stream__StringOStream__to_s(val* self) {
1730 val* var /* : String */;
1731 val* var1 /* : Array[String] */;
1732 val* var2 /* : String */;
1733 var1 = ((val* (*)(val*))(self->class->vft[COLOR_stream__StringOStream__content]))(self) /* content on <self:StringOStream>*/;
1734 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_string__Object__to_s]))(var1) /* to_s on <var1:Array[String]>*/;
1735 var = var2;
1736 goto RET_LABEL;
1737 RET_LABEL:;
1738 return var;
1739 }
1740 /* method stream#StringOStream#to_s for (self: Object): String */
1741 val* VIRTUAL_stream__StringOStream__to_s(val* self) {
1742 val* var /* : String */;
1743 val* var1 /* : String */;
1744 var1 = stream__StringOStream__to_s(self);
1745 var = var1;
1746 RET_LABEL:;
1747 return var;
1748 }
1749 /* method stream#StringOStream#is_writable for (self: StringOStream): Bool */
1750 short int stream__StringOStream__is_writable(val* self) {
1751 short int var /* : Bool */;
1752 short int var1 /* : Bool */;
1753 var1 = 1;
1754 var = var1;
1755 goto RET_LABEL;
1756 RET_LABEL:;
1757 return var;
1758 }
1759 /* method stream#StringOStream#is_writable for (self: Object): Bool */
1760 short int VIRTUAL_stream__StringOStream__is_writable(val* self) {
1761 short int var /* : Bool */;
1762 short int var1 /* : Bool */;
1763 var1 = stream__StringOStream__is_writable(self);
1764 var = var1;
1765 RET_LABEL:;
1766 return var;
1767 }
1768 /* method stream#StringOStream#write for (self: StringOStream, String) */
1769 void stream__StringOStream__write(val* self, val* p0) {
1770 val* var_str /* var str: String */;
1771 val* var /* : Array[String] */;
1772 var_str = p0;
1773 var = ((val* (*)(val*))(self->class->vft[COLOR_stream__StringOStream__content]))(self) /* content on <self:StringOStream>*/;
1774 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var_str) /* add on <var:Array[String]>*/;
1775 RET_LABEL:;
1776 }
1777 /* method stream#StringOStream#write for (self: Object, String) */
1778 void VIRTUAL_stream__StringOStream__write(val* self, val* p0) {
1779 stream__StringOStream__write(self, p0);
1780 RET_LABEL:;
1781 }
1782 /* method stream#StringOStream#init for (self: StringOStream) */
1783 void stream__StringOStream__init(val* self) {
1784 RET_LABEL:;
1785 }
1786 /* method stream#StringOStream#init for (self: Object) */
1787 void VIRTUAL_stream__StringOStream__init(val* self) {
1788 stream__StringOStream__init(self);
1789 RET_LABEL:;
1790 }