cleanup some remaining nitc
[nit.git] / c_src / file.sep.1.c
1 #include "file.sep.0.h"
2 /* method file#Object#printn for (self: Object, Array[Object]) */
3 void file__Object__printn(val* self, val* p0) {
4 val* var_objects /* var objects: Array[Object] */;
5 val* var /* : OFStream */;
6 val* var1 /* : String */;
7 var_objects = p0;
8 var = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stdout]))(self) /* stdout on <self:Object>*/;
9 var1 = ((val* (*)(val*))(var_objects->class->vft[COLOR_string__Object__to_s]))(var_objects) /* to_s on <var_objects:Array[Object]>*/;
10 ((void (*)(val*, val*))(var->class->vft[COLOR_stream__OStream__write]))(var, var1) /* write on <var:OFStream>*/;
11 RET_LABEL:;
12 }
13 /* method file#Object#printn for (self: Object, Array[Object]) */
14 void VIRTUAL_file__Object__printn(val* self, val* p0) {
15 file__Object__printn(self, p0);
16 RET_LABEL:;
17 }
18 /* method file#Object#print for (self: Object, Object) */
19 void file__Object__print(val* self, val* p0) {
20 val* var_object /* var object: Object */;
21 val* var /* : OFStream */;
22 val* var1 /* : String */;
23 val* var2 /* : OFStream */;
24 static val* varonce;
25 val* var3 /* : String */;
26 char* var4 /* : NativeString */;
27 long var5 /* : Int */;
28 val* var6 /* : String */;
29 var_object = p0;
30 var = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stdout]))(self) /* stdout on <self:Object>*/;
31 var1 = ((val* (*)(val*))(var_object->class->vft[COLOR_string__Object__to_s]))(var_object) /* to_s on <var_object:Object>*/;
32 ((void (*)(val*, val*))(var->class->vft[COLOR_stream__OStream__write]))(var, var1) /* write on <var:OFStream>*/;
33 var2 = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stdout]))(self) /* stdout on <self:Object>*/;
34 if (varonce) {
35 var3 = varonce;
36 } else {
37 var4 = "\n";
38 var5 = 1;
39 var6 = string__NativeString__to_s_with_length(var4, var5);
40 var3 = var6;
41 varonce = var3;
42 }
43 ((void (*)(val*, val*))(var2->class->vft[COLOR_stream__OStream__write]))(var2, var3) /* write on <var2:OFStream>*/;
44 RET_LABEL:;
45 }
46 /* method file#Object#print for (self: Object, Object) */
47 void VIRTUAL_file__Object__print(val* self, val* p0) {
48 file__Object__print(self, p0);
49 RET_LABEL:;
50 }
51 /* method file#Object#getc for (self: Object): Char */
52 char file__Object__getc(val* self) {
53 char var /* : Char */;
54 val* var1 /* : Stdin */;
55 long var2 /* : Int */;
56 char var3 /* : Char */;
57 char var5 /* : Char */;
58 var1 = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stdin]))(self) /* stdin on <self:Object>*/;
59 var2 = ((long (*)(val*))(var1->class->vft[COLOR_stream__IStream__read_char]))(var1) /* read_char on <var1:Stdin>*/;
60 { /* Inline kernel#Int#ascii (var2) */
61 var5 = var2;
62 var3 = var5;
63 goto RET_LABEL4;
64 RET_LABEL4:(void)0;
65 }
66 var = var3;
67 goto RET_LABEL;
68 RET_LABEL:;
69 return var;
70 }
71 /* method file#Object#getc for (self: Object): Char */
72 char VIRTUAL_file__Object__getc(val* self) {
73 char var /* : Char */;
74 char var1 /* : Char */;
75 var1 = file__Object__getc(self);
76 var = var1;
77 RET_LABEL:;
78 return var;
79 }
80 /* method file#Object#gets for (self: Object): String */
81 val* file__Object__gets(val* self) {
82 val* var /* : String */;
83 val* var1 /* : Stdin */;
84 val* var2 /* : String */;
85 var1 = ((val* (*)(val*))(self->class->vft[COLOR_file__Object__stdin]))(self) /* stdin on <self:Object>*/;
86 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_stream__IStream__read_line]))(var1) /* read_line on <var1:Stdin>*/;
87 var = var2;
88 goto RET_LABEL;
89 RET_LABEL:;
90 return var;
91 }
92 /* method file#Object#gets for (self: Object): String */
93 val* VIRTUAL_file__Object__gets(val* self) {
94 val* var /* : String */;
95 val* var1 /* : String */;
96 var1 = file__Object__gets(self);
97 var = var1;
98 RET_LABEL:;
99 return var;
100 }
101 /* method file#Object#getcwd for (self: Object): String */
102 val* file__Object__getcwd(val* self) {
103 val* var /* : String */;
104 char* var1 /* : NativeString */;
105 val* var2 /* : String */;
106 var1 = ((char* (*)(val*))(self->class->vft[COLOR_file__Object__file_getcwd]))(self) /* file_getcwd on <self:Object>*/;
107 var2 = string__NativeString__to_s(var1);
108 var = var2;
109 goto RET_LABEL;
110 RET_LABEL:;
111 return var;
112 }
113 /* method file#Object#getcwd for (self: Object): String */
114 val* VIRTUAL_file__Object__getcwd(val* self) {
115 val* var /* : String */;
116 val* var1 /* : String */;
117 var1 = file__Object__getcwd(self);
118 var = var1;
119 RET_LABEL:;
120 return var;
121 }
122 /* method file#Object#file_getcwd for (self: Object): NativeString */
123 char* file__Object__file_getcwd(val* self) {
124 char* var /* : NativeString */;
125 char* var1 /* : NativeString */;
126 var1 = string_NativeString_NativeString_file_getcwd_0(self);
127 var = var1;
128 goto RET_LABEL;
129 RET_LABEL:;
130 return var;
131 }
132 /* method file#Object#file_getcwd for (self: Object): NativeString */
133 char* VIRTUAL_file__Object__file_getcwd(val* self) {
134 char* var /* : NativeString */;
135 char* var1 /* : NativeString */;
136 var1 = file__Object__file_getcwd(self);
137 var = var1;
138 RET_LABEL:;
139 return var;
140 }
141 /* method file#FStream#path for (self: FStream): nullable String */
142 val* file__FStream__path(val* self) {
143 val* var /* : nullable String */;
144 val* var1 /* : nullable String */;
145 var1 = self->attrs[COLOR_file__FStream___path].val; /* _path on <self:FStream> */
146 var = var1;
147 RET_LABEL:;
148 return var;
149 }
150 /* method file#FStream#path for (self: Object): nullable String */
151 val* VIRTUAL_file__FStream__path(val* self) {
152 val* var /* : nullable String */;
153 val* var1 /* : nullable String */;
154 var1 = file__FStream__path(self);
155 var = var1;
156 RET_LABEL:;
157 return var;
158 }
159 /* method file#FStream#file_stat for (self: FStream): FileStat */
160 void* file__FStream__file_stat(val* self) {
161 void* var /* : FileStat */;
162 val* var1 /* : nullable NativeFile */;
163 void* var2 /* : FileStat */;
164 var1 = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:FStream> */
165 if (var1 == NULL) {
166 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 66);
167 exit(1);
168 } else {
169 var2 = ((void* (*)(val*))(var1->class->vft[COLOR_file__NativeFile__file_stat]))(var1) /* file_stat on <var1:nullable NativeFile>*/;
170 }
171 var = var2;
172 goto RET_LABEL;
173 RET_LABEL:;
174 return var;
175 }
176 /* method file#FStream#file_stat for (self: Object): FileStat */
177 void* VIRTUAL_file__FStream__file_stat(val* self) {
178 void* var /* : FileStat */;
179 void* var1 /* : FileStat */;
180 var1 = file__FStream__file_stat(self);
181 var = var1;
182 RET_LABEL:;
183 return var;
184 }
185 /* method file#FStream#init for (self: FStream) */
186 void file__FStream__init(val* self) {
187 RET_LABEL:;
188 }
189 /* method file#FStream#init for (self: Object) */
190 void VIRTUAL_file__FStream__init(val* self) {
191 file__FStream__init(self);
192 RET_LABEL:;
193 }
194 /* method file#IFStream#reopen for (self: IFStream) */
195 void file__IFStream__reopen(val* self) {
196 short int var /* : Bool */;
197 short int var1 /* : Bool */;
198 void* var2 /* : NativeFile */;
199 val* var3 /* : nullable String */;
200 char* var4 /* : NativeString */;
201 void* var5 /* : NativeFile */;
202 val* var6 /* : nullable NativeFile */;
203 short int var7 /* : Bool */;
204 long var8 /* : Int */;
205 val* var9 /* : nullable Buffer */;
206 var = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on <self:IFStream>*/;
207 var1 = !var;
208 if (var1){
209 ((void (*)(val*))(self->class->vft[COLOR_stream__IOS__close]))(self) /* close on <self:IFStream>*/;
210 } else {
211 }
212 var2 = NULL/*special!*/;
213 var3 = self->attrs[COLOR_file__FStream___path].val; /* _path on <self:IFStream> */
214 if (var3 == NULL) {
215 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 80);
216 exit(1);
217 } else {
218 var4 = ((char* (*)(val*))(var3->class->vft[COLOR_string__String__to_cstring]))(var3) /* to_cstring on <var3:nullable String>*/;
219 }
220 var5 = file__NativeFile__io_open_read(var2, var4);
221 var6 = BOX_file__NativeFile(var5); /* autobox from NativeFile to nullable NativeFile */
222 self->attrs[COLOR_file__FStream___file].val = var6; /* _file on <self:IFStream> */
223 var7 = 0;
224 self->attrs[COLOR_file__IFStream___end_reached].s = var7; /* _end_reached on <self:IFStream> */
225 var8 = 0;
226 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var8; /* _buffer_pos on <self:IFStream> */
227 var9 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:IFStream> */
228 if (var9 == NULL) {
229 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 83);
230 exit(1);
231 } else {
232 ((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var9) /* clear on <var9:nullable Buffer>*/;
233 }
234 RET_LABEL:;
235 }
236 /* method file#IFStream#reopen for (self: Object) */
237 void VIRTUAL_file__IFStream__reopen(val* self) {
238 file__IFStream__reopen(self);
239 RET_LABEL:;
240 }
241 /* method file#IFStream#close for (self: IFStream) */
242 void file__IFStream__close(val* self) {
243 val* var /* : nullable NativeFile */;
244 long var1 /* : Int */;
245 long var_i /* var i: Int */;
246 short int var2 /* : Bool */;
247 var = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:IFStream> */
248 if (var == NULL) {
249 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 88);
250 exit(1);
251 } else {
252 var1 = ((long (*)(val*))(var->class->vft[COLOR_file__NativeFile__io_close]))(var) /* io_close on <var:nullable NativeFile>*/;
253 }
254 var_i = var1;
255 var2 = 1;
256 self->attrs[COLOR_file__IFStream___end_reached].s = var2; /* _end_reached on <self:IFStream> */
257 RET_LABEL:;
258 }
259 /* method file#IFStream#close for (self: Object) */
260 void VIRTUAL_file__IFStream__close(val* self) {
261 file__IFStream__close(self);
262 RET_LABEL:;
263 }
264 /* method file#IFStream#fill_buffer for (self: IFStream) */
265 void file__IFStream__fill_buffer(val* self) {
266 val* var /* : nullable NativeFile */;
267 val* var1 /* : nullable Buffer */;
268 char* var2 /* : NativeString */;
269 val* var3 /* : nullable Buffer */;
270 long var4 /* : Int */;
271 long var5 /* : Int */;
272 long var_nb /* var nb: Int */;
273 long var6 /* : Int */;
274 short int var7 /* : Bool */;
275 short int var9 /* : Bool */;
276 int cltype;
277 int idtype;
278 short int var10 /* : Bool */;
279 short int var11 /* : Bool */;
280 long var12 /* : Int */;
281 val* var13 /* : nullable Buffer */;
282 long var14 /* : Int */;
283 var = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:IFStream> */
284 var1 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:IFStream> */
285 if (var1 == NULL) {
286 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 94);
287 exit(1);
288 }
289 var2 = var1->attrs[COLOR_string__AbstractString___items].str; /* _items on <var1:nullable Buffer> */
290 var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:IFStream> */
291 if (var3 == NULL) {
292 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 94);
293 exit(1);
294 }
295 var4 = var3->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on <var3:nullable Buffer> */
296 if (var == NULL) {
297 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 94);
298 exit(1);
299 } else {
300 var5 = ((long (*)(val*, char*, long))(var->class->vft[COLOR_file__NativeFile__io_read]))(var, var2, var4) /* io_read on <var:nullable NativeFile>*/;
301 }
302 var_nb = var5;
303 var6 = 0;
304 { /* Inline kernel#Int#<= (var_nb,var6) */
305 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
306 /* <var6:Int> isa OTHER */
307 var9 = 1; /* easy <var6:Int> isa OTHER*/
308 if (!var9) {
309 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
310 exit(1);
311 }
312 var10 = var_nb <= var6;
313 var7 = var10;
314 goto RET_LABEL8;
315 RET_LABEL8:(void)0;
316 }
317 if (var7){
318 var11 = 1;
319 self->attrs[COLOR_file__IFStream___end_reached].s = var11; /* _end_reached on <self:IFStream> */
320 var12 = 0;
321 var_nb = var12;
322 } else {
323 }
324 var13 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on <self:IFStream> */
325 if (var13 == NULL) {
326 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 99);
327 exit(1);
328 }
329 var13->attrs[COLOR_array__AbstractArrayRead___length].l = var_nb; /* _length on <var13:nullable Buffer> */
330 var14 = 0;
331 self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var14; /* _buffer_pos on <self:IFStream> */
332 RET_LABEL:;
333 }
334 /* method file#IFStream#fill_buffer for (self: Object) */
335 void VIRTUAL_file__IFStream__fill_buffer(val* self) {
336 file__IFStream__fill_buffer(self);
337 RET_LABEL:;
338 }
339 /* method file#IFStream#end_reached for (self: IFStream): Bool */
340 short int file__IFStream__end_reached(val* self) {
341 short int var /* : Bool */;
342 short int var1 /* : Bool */;
343 var1 = self->attrs[COLOR_file__IFStream___end_reached].s; /* _end_reached on <self:IFStream> */
344 var = var1;
345 RET_LABEL:;
346 return var;
347 }
348 /* method file#IFStream#end_reached for (self: Object): Bool */
349 short int VIRTUAL_file__IFStream__end_reached(val* self) {
350 short int var /* : Bool */;
351 short int var1 /* : Bool */;
352 var1 = file__IFStream__end_reached(self);
353 var = var1;
354 RET_LABEL:;
355 return var;
356 }
357 /* method file#IFStream#open for (self: IFStream, String) */
358 void file__IFStream__open(val* self, val* p0) {
359 val* var_path /* var path: String */;
360 long var /* : Int */;
361 void* var1 /* : NativeFile */;
362 val* var2 /* : nullable String */;
363 char* var3 /* : NativeString */;
364 void* var4 /* : NativeFile */;
365 val* var5 /* : nullable NativeFile */;
366 val* var6 /* : nullable NativeFile */;
367 val* var7 /* : null */;
368 short int var8 /* : Bool */;
369 var_path = p0;
370 ((void (*)(val*))(self->class->vft[COLOR_file__FStream__init]))(self) /* init on <self:IFStream>*/;
371 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__init]))(self) /* init on <self:IFStream>*/;
372 self->attrs[COLOR_file__FStream___path].val = var_path; /* _path on <self:IFStream> */
373 var = 10;
374 ((void (*)(val*, long))(self->class->vft[COLOR_stream__BufferedIStream__prepare_buffer]))(self, var) /* prepare_buffer on <self:IFStream>*/;
375 var1 = NULL/*special!*/;
376 var2 = self->attrs[COLOR_file__FStream___path].val; /* _path on <self:IFStream> */
377 if (var2 == NULL) {
378 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 111);
379 exit(1);
380 } else {
381 var3 = ((char* (*)(val*))(var2->class->vft[COLOR_string__String__to_cstring]))(var2) /* to_cstring on <var2:nullable String>*/;
382 }
383 var4 = file__NativeFile__io_open_read(var1, var3);
384 var5 = BOX_file__NativeFile(var4); /* autobox from NativeFile to nullable NativeFile */
385 self->attrs[COLOR_file__FStream___file].val = var5; /* _file on <self:IFStream> */
386 var6 = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:IFStream> */
387 var7 = NULL;
388 if (var6 == NULL) {
389 var8 = 0; /* is null */
390 } else {
391 var8 = 1; /* arg is null and recv is not */
392 }
393 if (!var8) {
394 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'cant_open_file\' failed", "lib/standard/file.nit", 112);
395 exit(1);
396 }
397 RET_LABEL:;
398 }
399 /* method file#IFStream#open for (self: Object, String) */
400 void VIRTUAL_file__IFStream__open(val* self, val* p0) {
401 file__IFStream__open(self, p0);
402 RET_LABEL:;
403 }
404 /* method file#IFStream#init for (self: IFStream) */
405 void file__IFStream__init(val* self) {
406 ((void (*)(val*))(self->class->vft[COLOR_file__FStream__init]))(self) /* init on <self:IFStream>*/;
407 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__init]))(self) /* init on <self:IFStream>*/;
408 RET_LABEL:;
409 }
410 /* method file#IFStream#init for (self: Object) */
411 void VIRTUAL_file__IFStream__init(val* self) {
412 file__IFStream__init(self);
413 RET_LABEL:;
414 }
415 /* method file#IFStream#without_file for (self: IFStream) */
416 void file__IFStream__without_file(val* self) {
417 ((void (*)(val*))(self->class->vft[COLOR_file__FStream__init]))(self) /* init on <self:IFStream>*/;
418 ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__init]))(self) /* init on <self:IFStream>*/;
419 RET_LABEL:;
420 }
421 /* method file#IFStream#without_file for (self: Object) */
422 void VIRTUAL_file__IFStream__without_file(val* self) {
423 file__IFStream__without_file(self);
424 RET_LABEL:;
425 }
426 /* method file#OFStream#write for (self: OFStream, String) */
427 void file__OFStream__write(val* self, val* p0) {
428 val* var_s /* var s: String */;
429 short int var /* : Bool */;
430 char* var1 /* : NativeString */;
431 long var2 /* : Int */;
432 var_s = p0;
433 var = self->attrs[COLOR_file__OFStream___writable].s; /* _writable on <self:OFStream> */
434 if (!var) {
435 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/file.nit", 126);
436 exit(1);
437 }
438 var1 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__String__to_cstring]))(var_s) /* to_cstring on <var_s:String>*/;
439 var2 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
440 ((void (*)(val*, char*, long))(self->class->vft[COLOR_file__OFStream__write_native]))(self, var1, var2) /* write_native on <self:OFStream>*/;
441 RET_LABEL:;
442 }
443 /* method file#OFStream#write for (self: Object, String) */
444 void VIRTUAL_file__OFStream__write(val* self, val* p0) {
445 file__OFStream__write(self, p0);
446 RET_LABEL:;
447 }
448 /* method file#OFStream#is_writable for (self: OFStream): Bool */
449 short int file__OFStream__is_writable(val* self) {
450 short int var /* : Bool */;
451 short int var1 /* : Bool */;
452 var1 = self->attrs[COLOR_file__OFStream___writable].s; /* _writable on <self:OFStream> */
453 var = var1;
454 goto RET_LABEL;
455 RET_LABEL:;
456 return var;
457 }
458 /* method file#OFStream#is_writable for (self: Object): Bool */
459 short int VIRTUAL_file__OFStream__is_writable(val* self) {
460 short int var /* : Bool */;
461 short int var1 /* : Bool */;
462 var1 = file__OFStream__is_writable(self);
463 var = var1;
464 RET_LABEL:;
465 return var;
466 }
467 /* method file#OFStream#close for (self: OFStream) */
468 void file__OFStream__close(val* self) {
469 val* var /* : nullable NativeFile */;
470 long var1 /* : Int */;
471 long var_i /* var i: Int */;
472 short int var2 /* : Bool */;
473 var = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:OFStream> */
474 if (var == NULL) {
475 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 134);
476 exit(1);
477 } else {
478 var1 = ((long (*)(val*))(var->class->vft[COLOR_file__NativeFile__io_close]))(var) /* io_close on <var:nullable NativeFile>*/;
479 }
480 var_i = var1;
481 var2 = 0;
482 self->attrs[COLOR_file__OFStream___writable].s = var2; /* _writable on <self:OFStream> */
483 RET_LABEL:;
484 }
485 /* method file#OFStream#close for (self: Object) */
486 void VIRTUAL_file__OFStream__close(val* self) {
487 file__OFStream__close(self);
488 RET_LABEL:;
489 }
490 /* method file#OFStream#write_native for (self: OFStream, NativeString, Int) */
491 void file__OFStream__write_native(val* self, char* p0, long p1) {
492 char* var_native /* var native: NativeString */;
493 long var_len /* var len: Int */;
494 short int var /* : Bool */;
495 val* var1 /* : nullable NativeFile */;
496 long var2 /* : Int */;
497 long var_err /* var err: Int */;
498 short int var3 /* : Bool */;
499 short int var5 /* : Bool */;
500 short int var6 /* : Bool */;
501 static val* varonce;
502 val* var7 /* : String */;
503 char* var8 /* : NativeString */;
504 long var9 /* : Int */;
505 val* var10 /* : String */;
506 static val* varonce11;
507 val* var12 /* : String */;
508 char* var13 /* : NativeString */;
509 long var14 /* : Int */;
510 val* var15 /* : String */;
511 static val* varonce16;
512 val* var17 /* : String */;
513 char* var18 /* : NativeString */;
514 long var19 /* : Int */;
515 val* var20 /* : String */;
516 val* var21 /* : Array[Object] */;
517 long var22 /* : Int */;
518 val* var23 /* : NativeArray[Object] */;
519 val* var24 /* : Object */;
520 val* var25 /* : Object */;
521 var_native = p0;
522 var_len = p1;
523 var = self->attrs[COLOR_file__OFStream___writable].s; /* _writable on <self:OFStream> */
524 if (!var) {
525 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/file.nit", 144);
526 exit(1);
527 }
528 var1 = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:OFStream> */
529 if (var1 == NULL) {
530 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/file.nit", 145);
531 exit(1);
532 } else {
533 var2 = ((long (*)(val*, char*, long))(var1->class->vft[COLOR_file__NativeFile__io_write]))(var1, var_native, var_len) /* io_write on <var1:nullable NativeFile>*/;
534 }
535 var_err = var2;
536 { /* Inline kernel#Int#!= (var_err,var_len) */
537 var5 = var_err == var_len;
538 var6 = !var5;
539 var3 = var6;
540 goto RET_LABEL4;
541 RET_LABEL4:(void)0;
542 }
543 if (var3){
544 if (varonce) {
545 var7 = varonce;
546 } else {
547 var8 = "Problem in writing : ";
548 var9 = 21;
549 var10 = string__NativeString__to_s_with_length(var8, var9);
550 var7 = var10;
551 varonce = var7;
552 }
553 if (varonce11) {
554 var12 = varonce11;
555 } else {
556 var13 = " ";
557 var14 = 1;
558 var15 = string__NativeString__to_s_with_length(var13, var14);
559 var12 = var15;
560 varonce11 = var12;
561 }
562 if (varonce16) {
563 var17 = varonce16;
564 } else {
565 var18 = "\n";
566 var19 = 1;
567 var20 = string__NativeString__to_s_with_length(var18, var19);
568 var17 = var20;
569 varonce16 = var17;
570 }
571 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
572 { /* var21 = array_instance Array[Object] */
573 var22 = 5;
574 var23 = NEW_array__NativeArray(var22, &type_array__NativeArraykernel__Object);
575 ((struct instance_array__NativeArray*)var23)->values[0] = (val*) var7;
576 var24 = BOX_kernel__Int(var_err); /* autobox from Int to Object */
577 ((struct instance_array__NativeArray*)var23)->values[1] = (val*) var24;
578 ((struct instance_array__NativeArray*)var23)->values[2] = (val*) var12;
579 var25 = BOX_kernel__Int(var_len); /* autobox from Int to Object */
580 ((struct instance_array__NativeArray*)var23)->values[3] = (val*) var25;
581 ((struct instance_array__NativeArray*)var23)->values[4] = (val*) var17;
582 ((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
583 CHECK_NEW_array__Array(var21);
584 }
585 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__printn]))(self, var21) /* printn on <self:OFStream>*/;
586 } else {
587 }
588 RET_LABEL:;
589 }
590 /* method file#OFStream#write_native for (self: Object, NativeString, Int) */
591 void VIRTUAL_file__OFStream__write_native(val* self, char* p0, long p1) {
592 file__OFStream__write_native(self, p0, p1);
593 RET_LABEL:;
594 }
595 /* method file#OFStream#open for (self: OFStream, String) */
596 void file__OFStream__open(val* self, val* p0) {
597 val* var_path /* var path: String */;
598 void* var /* : NativeFile */;
599 char* var1 /* : NativeString */;
600 void* var2 /* : NativeFile */;
601 val* var3 /* : nullable NativeFile */;
602 val* var4 /* : nullable NativeFile */;
603 val* var5 /* : null */;
604 short int var6 /* : Bool */;
605 short int var7 /* : Bool */;
606 var_path = p0;
607 ((void (*)(val*))(self->class->vft[COLOR_file__FStream__init]))(self) /* init on <self:OFStream>*/;
608 var = NULL/*special!*/;
609 var1 = ((char* (*)(val*))(var_path->class->vft[COLOR_string__String__to_cstring]))(var_path) /* to_cstring on <var_path:String>*/;
610 var2 = file__NativeFile__io_open_write(var, var1);
611 var3 = BOX_file__NativeFile(var2); /* autobox from NativeFile to nullable NativeFile */
612 self->attrs[COLOR_file__FStream___file].val = var3; /* _file on <self:OFStream> */
613 var4 = self->attrs[COLOR_file__FStream___file].val; /* _file on <self:OFStream> */
614 var5 = NULL;
615 if (var4 == NULL) {
616 var6 = 0; /* is null */
617 } else {
618 var6 = 1; /* arg is null and recv is not */
619 }
620 if (!var6) {
621 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'cant_open_file\' failed", "lib/standard/file.nit", 156);
622 exit(1);
623 }
624 self->attrs[COLOR_file__FStream___path].val = var_path; /* _path on <self:OFStream> */
625 var7 = 1;
626 self->attrs[COLOR_file__OFStream___writable].s = var7; /* _writable on <self:OFStream> */
627 RET_LABEL:;
628 }
629 /* method file#OFStream#open for (self: Object, String) */
630 void VIRTUAL_file__OFStream__open(val* self, val* p0) {
631 file__OFStream__open(self, p0);
632 RET_LABEL:;
633 }
634 /* method file#OFStream#init for (self: OFStream) */
635 void file__OFStream__init(val* self) {
636 ((void (*)(val*))(self->class->vft[COLOR_file__FStream__init]))(self) /* init on <self:OFStream>*/;
637 RET_LABEL:;
638 }
639 /* method file#OFStream#init for (self: Object) */
640 void VIRTUAL_file__OFStream__init(val* self) {
641 file__OFStream__init(self);
642 RET_LABEL:;
643 }
644 /* method file#OFStream#without_file for (self: OFStream) */
645 void file__OFStream__without_file(val* self) {
646 ((void (*)(val*))(self->class->vft[COLOR_file__FStream__init]))(self) /* init on <self:OFStream>*/;
647 RET_LABEL:;
648 }
649 /* method file#OFStream#without_file for (self: Object) */
650 void VIRTUAL_file__OFStream__without_file(val* self) {
651 file__OFStream__without_file(self);
652 RET_LABEL:;
653 }
654 /* method file#Stdin#init for (self: Stdin) */
655 void file__Stdin__init(val* self) {
656 void* var /* : NativeFile */;
657 void* var1 /* : NativeFile */;
658 val* var2 /* : nullable NativeFile */;
659 static val* varonce;
660 val* var3 /* : String */;
661 char* var4 /* : NativeString */;
662 long var5 /* : Int */;
663 val* var6 /* : String */;
664 long var7 /* : Int */;
665 ((void (*)(val*))(self->class->vft[COLOR_file__IFStream__init]))(self) /* init on <self:Stdin>*/;
666 var = NULL/*special!*/;
667 var1 = file__NativeFile__native_stdin(var);
668 var2 = BOX_file__NativeFile(var1); /* autobox from NativeFile to nullable NativeFile */
669 self->attrs[COLOR_file__FStream___file].val = var2; /* _file on <self:Stdin> */
670 if (varonce) {
671 var3 = varonce;
672 } else {
673 var4 = "/dev/stdin";
674 var5 = 10;
675 var6 = string__NativeString__to_s_with_length(var4, var5);
676 var3 = var6;
677 varonce = var3;
678 }
679 self->attrs[COLOR_file__FStream___path].val = var3; /* _path on <self:Stdin> */
680 var7 = 1;
681 ((void (*)(val*, long))(self->class->vft[COLOR_stream__BufferedIStream__prepare_buffer]))(self, var7) /* prepare_buffer on <self:Stdin>*/;
682 RET_LABEL:;
683 }
684 /* method file#Stdin#init for (self: Object) */
685 void VIRTUAL_file__Stdin__init(val* self) {
686 file__Stdin__init(self);
687 RET_LABEL:;
688 }
689 /* method file#Stdin#poll_in for (self: Stdin): Bool */
690 short int file__Stdin__poll_in(val* self) {
691 short int var /* : Bool */;
692 short int var1 /* : Bool */;
693 var1 = file_stdin_poll_in(self);
694 var = var1;
695 goto RET_LABEL;
696 RET_LABEL:;
697 return var;
698 }
699 /* method file#Stdin#poll_in for (self: Object): Bool */
700 short int VIRTUAL_file__Stdin__poll_in(val* self) {
701 short int var /* : Bool */;
702 short int var1 /* : Bool */;
703 var1 = file__Stdin__poll_in(self);
704 var = var1;
705 RET_LABEL:;
706 return var;
707 }
708 /* method file#Stdout#init for (self: Stdout) */
709 void file__Stdout__init(val* self) {
710 void* var /* : NativeFile */;
711 void* var1 /* : NativeFile */;
712 val* var2 /* : nullable NativeFile */;
713 static val* varonce;
714 val* var3 /* : String */;
715 char* var4 /* : NativeString */;
716 long var5 /* : Int */;
717 val* var6 /* : String */;
718 short int var7 /* : Bool */;
719 ((void (*)(val*))(self->class->vft[COLOR_file__OFStream__init]))(self) /* init on <self:Stdout>*/;
720 var = NULL/*special!*/;
721 var1 = file__NativeFile__native_stdout(var);
722 var2 = BOX_file__NativeFile(var1); /* autobox from NativeFile to nullable NativeFile */
723 self->attrs[COLOR_file__FStream___file].val = var2; /* _file on <self:Stdout> */
724 if (varonce) {
725 var3 = varonce;
726 } else {
727 var4 = "/dev/stdout";
728 var5 = 11;
729 var6 = string__NativeString__to_s_with_length(var4, var5);
730 var3 = var6;
731 varonce = var3;
732 }
733 self->attrs[COLOR_file__FStream___path].val = var3; /* _path on <self:Stdout> */
734 var7 = 1;
735 self->attrs[COLOR_file__OFStream___writable].s = var7; /* _writable on <self:Stdout> */
736 RET_LABEL:;
737 }
738 /* method file#Stdout#init for (self: Object) */
739 void VIRTUAL_file__Stdout__init(val* self) {
740 file__Stdout__init(self);
741 RET_LABEL:;
742 }
743 /* method file#Stderr#init for (self: Stderr) */
744 void file__Stderr__init(val* self) {
745 void* var /* : NativeFile */;
746 void* var1 /* : NativeFile */;
747 val* var2 /* : nullable NativeFile */;
748 static val* varonce;
749 val* var3 /* : String */;
750 char* var4 /* : NativeString */;
751 long var5 /* : Int */;
752 val* var6 /* : String */;
753 short int var7 /* : Bool */;
754 ((void (*)(val*))(self->class->vft[COLOR_file__OFStream__init]))(self) /* init on <self:Stderr>*/;
755 var = NULL/*special!*/;
756 var1 = file__NativeFile__native_stderr(var);
757 var2 = BOX_file__NativeFile(var1); /* autobox from NativeFile to nullable NativeFile */
758 self->attrs[COLOR_file__FStream___file].val = var2; /* _file on <self:Stderr> */
759 if (varonce) {
760 var3 = varonce;
761 } else {
762 var4 = "/dev/stderr";
763 var5 = 11;
764 var6 = string__NativeString__to_s_with_length(var4, var5);
765 var3 = var6;
766 varonce = var3;
767 }
768 self->attrs[COLOR_file__FStream___path].val = var3; /* _path on <self:Stderr> */
769 var7 = 1;
770 self->attrs[COLOR_file__OFStream___writable].s = var7; /* _writable on <self:Stderr> */
771 RET_LABEL:;
772 }
773 /* method file#Stderr#init for (self: Object) */
774 void VIRTUAL_file__Stderr__init(val* self) {
775 file__Stderr__init(self);
776 RET_LABEL:;
777 }
778 /* method file#String#file_exists for (self: String): Bool */
779 short int file__String__file_exists(val* self) {
780 short int var /* : Bool */;
781 char* var1 /* : NativeString */;
782 short int var2 /* : Bool */;
783 var1 = ((char* (*)(val*))(self->class->vft[COLOR_string__String__to_cstring]))(self) /* to_cstring on <self:String>*/;
784 var2 = file__NativeString__file_exists(var1);
785 var = var2;
786 goto RET_LABEL;
787 RET_LABEL:;
788 return var;
789 }
790 /* method file#String#file_exists for (self: Object): Bool */
791 short int VIRTUAL_file__String__file_exists(val* self) {
792 short int var /* : Bool */;
793 short int var1 /* : Bool */;
794 var1 = file__String__file_exists(self);
795 var = var1;
796 RET_LABEL:;
797 return var;
798 }
799 /* method file#String#file_stat for (self: String): FileStat */
800 void* file__String__file_stat(val* self) {
801 void* var /* : FileStat */;
802 char* var1 /* : NativeString */;
803 void* var2 /* : FileStat */;
804 var1 = ((char* (*)(val*))(self->class->vft[COLOR_string__String__to_cstring]))(self) /* to_cstring on <self:String>*/;
805 var2 = file__NativeString__file_stat(var1);
806 var = var2;
807 goto RET_LABEL;
808 RET_LABEL:;
809 return var;
810 }
811 /* method file#String#file_stat for (self: Object): FileStat */
812 void* VIRTUAL_file__String__file_stat(val* self) {
813 void* var /* : FileStat */;
814 void* var1 /* : FileStat */;
815 var1 = file__String__file_stat(self);
816 var = var1;
817 RET_LABEL:;
818 return var;
819 }
820 /* method file#String#file_lstat for (self: String): FileStat */
821 void* file__String__file_lstat(val* self) {
822 void* var /* : FileStat */;
823 char* var1 /* : NativeString */;
824 void* var2 /* : FileStat */;
825 var1 = ((char* (*)(val*))(self->class->vft[COLOR_string__String__to_cstring]))(self) /* to_cstring on <self:String>*/;
826 var2 = file__NativeString__file_lstat(var1);
827 var = var2;
828 goto RET_LABEL;
829 RET_LABEL:;
830 return var;
831 }
832 /* method file#String#file_lstat for (self: Object): FileStat */
833 void* VIRTUAL_file__String__file_lstat(val* self) {
834 void* var /* : FileStat */;
835 void* var1 /* : FileStat */;
836 var1 = file__String__file_lstat(self);
837 var = var1;
838 RET_LABEL:;
839 return var;
840 }
841 /* method file#String#file_delete for (self: String): Bool */
842 short int file__String__file_delete(val* self) {
843 short int var /* : Bool */;
844 char* var1 /* : NativeString */;
845 short int var2 /* : Bool */;
846 var1 = ((char* (*)(val*))(self->class->vft[COLOR_string__String__to_cstring]))(self) /* to_cstring on <self:String>*/;
847 var2 = file__NativeString__file_delete(var1);
848 var = var2;
849 goto RET_LABEL;
850 RET_LABEL:;
851 return var;
852 }
853 /* method file#String#file_delete for (self: Object): Bool */
854 short int VIRTUAL_file__String__file_delete(val* self) {
855 short int var /* : Bool */;
856 short int var1 /* : Bool */;
857 var1 = file__String__file_delete(self);
858 var = var1;
859 RET_LABEL:;
860 return var;
861 }
862 /* method file#String#strip_extension for (self: String, String): String */
863 val* file__String__strip_extension(val* self, val* p0) {
864 val* var /* : String */;
865 val* var_ext /* var ext: String */;
866 short int var1 /* : Bool */;
867 long var2 /* : Int */;
868 long var3 /* : Int */;
869 long var4 /* : Int */;
870 long var5 /* : Int */;
871 long var7 /* : Int */;
872 val* var8 /* : String */;
873 var_ext = p0;
874 var1 = ((short int (*)(val*, val*))(self->class->vft[COLOR_string__AbstractString__has_suffix]))(self, var_ext) /* has_suffix on <self:String>*/;
875 if (var1){
876 var2 = 0;
877 var3 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:String>*/;
878 var4 = ((long (*)(val*))(var_ext->class->vft[COLOR_abstract_collection__Collection__length]))(var_ext) /* length on <var_ext:String>*/;
879 { /* Inline kernel#Int#- (var3,var4) */
880 var7 = var3 - var4;
881 var5 = var7;
882 goto RET_LABEL6;
883 RET_LABEL6:(void)0;
884 }
885 var8 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var2, var5) /* substring on <self:String>*/;
886 var = var8;
887 goto RET_LABEL;
888 } else {
889 }
890 var = self;
891 goto RET_LABEL;
892 RET_LABEL:;
893 return var;
894 }
895 /* method file#String#strip_extension for (self: Object, String): String */
896 val* VIRTUAL_file__String__strip_extension(val* self, val* p0) {
897 val* var /* : String */;
898 val* var1 /* : String */;
899 var1 = file__String__strip_extension(self, p0);
900 var = var1;
901 RET_LABEL:;
902 return var;
903 }
904 /* method file#String#basename for (self: String, String): String */
905 val* file__String__basename(val* self, val* p0) {
906 val* var /* : String */;
907 val* var_ext /* var ext: String */;
908 char var1 /* : Char */;
909 long var2 /* : Int */;
910 long var3 /* : Int */;
911 long var4 /* : Int */;
912 long var6 /* : Int */;
913 long var7 /* : Int */;
914 val* var8 /* : nullable Object */;
915 long var_pos /* var pos: Int */;
916 val* var_n /* var n: String */;
917 long var9 /* : Int */;
918 short int var10 /* : Bool */;
919 short int var12 /* : Bool */;
920 int cltype;
921 int idtype;
922 short int var13 /* : Bool */;
923 long var14 /* : Int */;
924 long var15 /* : Int */;
925 long var17 /* : Int */;
926 val* var18 /* : String */;
927 val* var19 /* : String */;
928 var_ext = p0;
929 var1 = '/';
930 var2 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:String> */
931 var3 = 1;
932 { /* Inline kernel#Int#- (var2,var3) */
933 var6 = var2 - var3;
934 var4 = var6;
935 goto RET_LABEL5;
936 RET_LABEL5:(void)0;
937 }
938 var8 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
939 var7 = ((long (*)(val*, val*, long))(self->class->vft[COLOR_array__AbstractArrayRead__last_index_of_from]))(self, var8, var4) /* last_index_of_from on <self:String>*/;
940 var_pos = var7;
941 var_n = self;
942 var9 = 0;
943 { /* Inline kernel#Int#>= (var_pos,var9) */
944 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
945 /* <var9:Int> isa OTHER */
946 var12 = 1; /* easy <var9:Int> isa OTHER*/
947 if (!var12) {
948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
949 exit(1);
950 }
951 var13 = var_pos >= var9;
952 var10 = var13;
953 goto RET_LABEL11;
954 RET_LABEL11:(void)0;
955 }
956 if (var10){
957 var14 = 1;
958 { /* Inline kernel#Int#+ (var_pos,var14) */
959 var17 = var_pos + var14;
960 var15 = var17;
961 goto RET_LABEL16;
962 RET_LABEL16:(void)0;
963 }
964 var18 = ((val* (*)(val*, long))(self->class->vft[COLOR_string__AbstractString__substring_from]))(self, var15) /* substring_from on <self:String>*/;
965 var_n = var18;
966 } else {
967 }
968 var19 = ((val* (*)(val*, val*))(var_n->class->vft[COLOR_file__String__strip_extension]))(var_n, var_ext) /* strip_extension on <var_n:String>*/;
969 var = var19;
970 goto RET_LABEL;
971 RET_LABEL:;
972 return var;
973 }
974 /* method file#String#basename for (self: Object, String): String */
975 val* VIRTUAL_file__String__basename(val* self, val* p0) {
976 val* var /* : String */;
977 val* var1 /* : String */;
978 var1 = file__String__basename(self, p0);
979 var = var1;
980 RET_LABEL:;
981 return var;
982 }
983 /* method file#String#dirname for (self: String): String */
984 val* file__String__dirname(val* self) {
985 val* var /* : String */;
986 long var1 /* : Int */;
987 long var2 /* : Int */;
988 long var3 /* : Int */;
989 long var5 /* : Int */;
990 long var_l /* var l: Int */;
991 short int var6 /* : Bool */;
992 long var7 /* : Int */;
993 short int var8 /* : Bool */;
994 short int var10 /* : Bool */;
995 int cltype;
996 int idtype;
997 short int var11 /* : Bool */;
998 short int var_ /* var : Bool */;
999 val* var12 /* : nullable Object */;
1000 char var13 /* : Char */;
1001 short int var14 /* : Bool */;
1002 short int var16 /* : Bool */;
1003 char var17 /* : Char */;
1004 long var18 /* : Int */;
1005 long var19 /* : Int */;
1006 long var21 /* : Int */;
1007 char var22 /* : Char */;
1008 long var23 /* : Int */;
1009 val* var24 /* : nullable Object */;
1010 long var_pos /* var pos: Int */;
1011 long var25 /* : Int */;
1012 short int var26 /* : Bool */;
1013 short int var28 /* : Bool */;
1014 int cltype29;
1015 int idtype30;
1016 short int var31 /* : Bool */;
1017 long var32 /* : Int */;
1018 val* var33 /* : String */;
1019 long var34 /* : Int */;
1020 short int var35 /* : Bool */;
1021 short int var37 /* : Bool */;
1022 static val* varonce;
1023 val* var38 /* : String */;
1024 char* var39 /* : NativeString */;
1025 long var40 /* : Int */;
1026 val* var41 /* : String */;
1027 static val* varonce42;
1028 val* var43 /* : String */;
1029 char* var44 /* : NativeString */;
1030 long var45 /* : Int */;
1031 val* var46 /* : String */;
1032 var1 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:String> */
1033 var2 = 1;
1034 { /* Inline kernel#Int#- (var1,var2) */
1035 var5 = var1 - var2;
1036 var3 = var5;
1037 goto RET_LABEL4;
1038 RET_LABEL4:(void)0;
1039 }
1040 var_l = var3;
1041 var7 = 0;
1042 { /* Inline kernel#Int#> (var_l,var7) */
1043 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
1044 /* <var7:Int> isa OTHER */
1045 var10 = 1; /* easy <var7:Int> isa OTHER*/
1046 if (!var10) {
1047 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
1048 exit(1);
1049 }
1050 var11 = var_l > var7;
1051 var8 = var11;
1052 goto RET_LABEL9;
1053 RET_LABEL9:(void)0;
1054 }
1055 var_ = var8;
1056 if (var8){
1057 var12 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_l) /* [] on <self:String>*/;
1058 var13 = '/';
1059 { /* Inline kernel#Char#== (var12,var13) */
1060 var16 = (var12 != NULL) && (var12->class == &class_kernel__Char);
1061 if (var16) {
1062 var17 = ((struct instance_kernel__Char*)var12)->value; /* autounbox from nullable Object to Char */;
1063 var16 = (var17 == var13);
1064 }
1065 var14 = var16;
1066 goto RET_LABEL15;
1067 RET_LABEL15:(void)0;
1068 }
1069 var6 = var14;
1070 } else {
1071 var6 = var_;
1072 }
1073 if (var6){
1074 var18 = 1;
1075 { /* Inline kernel#Int#- (var_l,var18) */
1076 var21 = var_l - var18;
1077 var19 = var21;
1078 goto RET_LABEL20;
1079 RET_LABEL20:(void)0;
1080 }
1081 var_l = var19;
1082 } else {
1083 }
1084 var22 = '/';
1085 var24 = BOX_kernel__Char(var22); /* autobox from Char to nullable Object */
1086 var23 = ((long (*)(val*, val*, long))(self->class->vft[COLOR_array__AbstractArrayRead__last_index_of_from]))(self, var24, var_l) /* last_index_of_from on <self:String>*/;
1087 var_pos = var23;
1088 var25 = 0;
1089 { /* Inline kernel#Int#> (var_pos,var25) */
1090 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
1091 /* <var25:Int> isa OTHER */
1092 var28 = 1; /* easy <var25:Int> isa OTHER*/
1093 if (!var28) {
1094 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
1095 exit(1);
1096 }
1097 var31 = var_pos > var25;
1098 var26 = var31;
1099 goto RET_LABEL27;
1100 RET_LABEL27:(void)0;
1101 }
1102 if (var26){
1103 var32 = 0;
1104 var33 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var32, var_pos) /* substring on <self:String>*/;
1105 var = var33;
1106 goto RET_LABEL;
1107 } else {
1108 var34 = 0;
1109 { /* Inline kernel#Int#== (var_pos,var34) */
1110 var37 = var_pos == var34;
1111 var35 = var37;
1112 goto RET_LABEL36;
1113 RET_LABEL36:(void)0;
1114 }
1115 if (var35){
1116 if (varonce) {
1117 var38 = varonce;
1118 } else {
1119 var39 = "/";
1120 var40 = 1;
1121 var41 = string__NativeString__to_s_with_length(var39, var40);
1122 var38 = var41;
1123 varonce = var38;
1124 }
1125 var = var38;
1126 goto RET_LABEL;
1127 } else {
1128 if (varonce42) {
1129 var43 = varonce42;
1130 } else {
1131 var44 = ".";
1132 var45 = 1;
1133 var46 = string__NativeString__to_s_with_length(var44, var45);
1134 var43 = var46;
1135 varonce42 = var43;
1136 }
1137 var = var43;
1138 goto RET_LABEL;
1139 }
1140 }
1141 RET_LABEL:;
1142 return var;
1143 }
1144 /* method file#String#dirname for (self: Object): String */
1145 val* VIRTUAL_file__String__dirname(val* self) {
1146 val* var /* : String */;
1147 val* var1 /* : String */;
1148 var1 = file__String__dirname(self);
1149 var = var1;
1150 RET_LABEL:;
1151 return var;
1152 }
1153 /* method file#String#simplify_path for (self: String): String */
1154 val* file__String__simplify_path(val* self) {
1155 val* var /* : String */;
1156 static val* varonce;
1157 val* var1 /* : String */;
1158 char* var2 /* : NativeString */;
1159 long var3 /* : Int */;
1160 val* var4 /* : String */;
1161 val* var5 /* : Array[String] */;
1162 val* var_a /* var a: Array[String] */;
1163 val* var6 /* : Array[String] */;
1164 val* var_a2 /* var a2: Array[String] */;
1165 val* var7 /* : Iterator[nullable Object] */;
1166 short int var8 /* : Bool */;
1167 val* var9 /* : nullable Object */;
1168 val* var_x /* var x: String */;
1169 static val* varonce10;
1170 val* var11 /* : String */;
1171 char* var12 /* : NativeString */;
1172 long var13 /* : Int */;
1173 val* var14 /* : String */;
1174 short int var15 /* : Bool */;
1175 short int var16 /* : Bool */;
1176 static val* varonce17;
1177 val* var18 /* : String */;
1178 char* var19 /* : NativeString */;
1179 long var20 /* : Int */;
1180 val* var21 /* : String */;
1181 short int var22 /* : Bool */;
1182 short int var_ /* var : Bool */;
1183 short int var23 /* : Bool */;
1184 short int var24 /* : Bool */;
1185 short int var25 /* : Bool */;
1186 short int var26 /* : Bool */;
1187 static val* varonce27;
1188 val* var28 /* : String */;
1189 char* var29 /* : NativeString */;
1190 long var30 /* : Int */;
1191 val* var31 /* : String */;
1192 short int var32 /* : Bool */;
1193 short int var_33 /* var : Bool */;
1194 short int var34 /* : Bool */;
1195 short int var35 /* : Bool */;
1196 short int var_36 /* var : Bool */;
1197 val* var37 /* : nullable Object */;
1198 static val* varonce38;
1199 val* var39 /* : String */;
1200 char* var40 /* : NativeString */;
1201 long var41 /* : Int */;
1202 val* var42 /* : String */;
1203 short int var43 /* : Bool */;
1204 val* var44 /* : nullable Object */;
1205 static val* varonce45;
1206 val* var46 /* : String */;
1207 char* var47 /* : NativeString */;
1208 long var48 /* : Int */;
1209 val* var49 /* : String */;
1210 val* var50 /* : String */;
1211 if (varonce) {
1212 var1 = varonce;
1213 } else {
1214 var2 = "/";
1215 var3 = 1;
1216 var4 = string__NativeString__to_s_with_length(var2, var3);
1217 var1 = var4;
1218 varonce = var1;
1219 }
1220 var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_string_search__String__split_with]))(self, var1) /* split_with on <self:String>*/;
1221 var_a = var5;
1222 var6 = NEW_array__Array(&type_array__Arraystring__String);
1223 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[String]>*/;
1224 CHECK_NEW_array__Array(var6);
1225 var_a2 = var6;
1226 var7 = ((val* (*)(val*))(var_a->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_a) /* iterator on <var_a:Array[String]>*/;
1227 for(;;) {
1228 var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on <var7:Iterator[nullable Object]>*/;
1229 if(!var8) break;
1230 var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on <var7:Iterator[nullable Object]>*/;
1231 var_x = var9;
1232 if (varonce10) {
1233 var11 = varonce10;
1234 } else {
1235 var12 = ".";
1236 var13 = 1;
1237 var14 = string__NativeString__to_s_with_length(var12, var13);
1238 var11 = var14;
1239 varonce10 = var11;
1240 }
1241 var15 = ((short int (*)(val*, val*))(var_x->class->vft[COLOR_kernel__Object___61d_61d]))(var_x, var11) /* == on <var_x:String>*/;
1242 if (var15){
1243 goto CONTINUE_label;
1244 } else {
1245 }
1246 if (varonce17) {
1247 var18 = varonce17;
1248 } else {
1249 var19 = "";
1250 var20 = 0;
1251 var21 = string__NativeString__to_s_with_length(var19, var20);
1252 var18 = var21;
1253 varonce17 = var18;
1254 }
1255 var22 = ((short int (*)(val*, val*))(var_x->class->vft[COLOR_kernel__Object___61d_61d]))(var_x, var18) /* == on <var_x:String>*/;
1256 var_ = var22;
1257 if (var22){
1258 var23 = ((short int (*)(val*))(var_a2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_a2) /* is_empty on <var_a2:Array[String]>*/;
1259 var24 = !var23;
1260 var16 = var24;
1261 } else {
1262 var16 = var_;
1263 }
1264 if (var16){
1265 goto CONTINUE_label;
1266 } else {
1267 }
1268 if (varonce27) {
1269 var28 = varonce27;
1270 } else {
1271 var29 = "..";
1272 var30 = 2;
1273 var31 = string__NativeString__to_s_with_length(var29, var30);
1274 var28 = var31;
1275 varonce27 = var28;
1276 }
1277 var32 = ((short int (*)(val*, val*))(var_x->class->vft[COLOR_kernel__Object___61d_61d]))(var_x, var28) /* == on <var_x:String>*/;
1278 var_33 = var32;
1279 if (var32){
1280 var34 = ((short int (*)(val*))(var_a2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_a2) /* is_empty on <var_a2:Array[String]>*/;
1281 var35 = !var34;
1282 var26 = var35;
1283 } else {
1284 var26 = var_33;
1285 }
1286 var_36 = var26;
1287 if (var26){
1288 var37 = ((val* (*)(val*))(var_a2->class->vft[COLOR_abstract_collection__SequenceRead__last]))(var_a2) /* last on <var_a2:Array[String]>*/;
1289 if (varonce38) {
1290 var39 = varonce38;
1291 } else {
1292 var40 = "..";
1293 var41 = 2;
1294 var42 = string__NativeString__to_s_with_length(var40, var41);
1295 var39 = var42;
1296 varonce38 = var39;
1297 }
1298 var43 = ((short int (*)(val*, val*))(var37->class->vft[COLOR_kernel__Object___33d_61d]))(var37, var39) /* != on <var37:nullable Object(String)>*/;
1299 var25 = var43;
1300 } else {
1301 var25 = var_36;
1302 }
1303 if (var25){
1304 var44 = ((val* (*)(val*))(var_a2->class->vft[COLOR_abstract_collection__Sequence__pop]))(var_a2) /* pop on <var_a2:Array[String]>*/;
1305 var44;
1306 goto CONTINUE_label;
1307 } else {
1308 }
1309 ((void (*)(val*, val*))(var_a2->class->vft[COLOR_abstract_collection__Sequence__push]))(var_a2, var_x) /* push on <var_a2:Array[String]>*/;
1310 CONTINUE_label: (void)0;
1311 ((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on <var7:Iterator[nullable Object]>*/;
1312 }
1313 BREAK_label: (void)0;
1314 if (varonce45) {
1315 var46 = varonce45;
1316 } else {
1317 var47 = "/";
1318 var48 = 1;
1319 var49 = string__NativeString__to_s_with_length(var47, var48);
1320 var46 = var49;
1321 varonce45 = var46;
1322 }
1323 var50 = ((val* (*)(val*, val*))(var_a2->class->vft[COLOR_string__Collection__join]))(var_a2, var46) /* join on <var_a2:Array[String]>*/;
1324 var = var50;
1325 goto RET_LABEL;
1326 RET_LABEL:;
1327 return var;
1328 }
1329 /* method file#String#simplify_path for (self: Object): String */
1330 val* VIRTUAL_file__String__simplify_path(val* self) {
1331 val* var /* : String */;
1332 val* var1 /* : String */;
1333 var1 = file__String__simplify_path(self);
1334 var = var1;
1335 RET_LABEL:;
1336 return var;
1337 }
1338 /* method file#String#join_path for (self: String, String): String */
1339 val* file__String__join_path(val* self, val* p0) {
1340 val* var /* : String */;
1341 val* var_path /* var path: String */;
1342 short int var1 /* : Bool */;
1343 short int var2 /* : Bool */;
1344 long var3 /* : Int */;
1345 val* var4 /* : nullable Object */;
1346 char var5 /* : Char */;
1347 short int var6 /* : Bool */;
1348 short int var8 /* : Bool */;
1349 char var9 /* : Char */;
1350 val* var10 /* : Array[Object] */;
1351 long var11 /* : Int */;
1352 val* var_ /* var : Array[Object] */;
1353 static val* varonce;
1354 val* var12 /* : String */;
1355 char* var13 /* : NativeString */;
1356 long var14 /* : Int */;
1357 val* var15 /* : String */;
1358 static val* varonce16;
1359 val* var17 /* : String */;
1360 char* var18 /* : NativeString */;
1361 long var19 /* : Int */;
1362 val* var20 /* : String */;
1363 static val* varonce21;
1364 val* var22 /* : String */;
1365 char* var23 /* : NativeString */;
1366 long var24 /* : Int */;
1367 val* var25 /* : String */;
1368 val* var26 /* : String */;
1369 var_path = p0;
1370 var1 = ((short int (*)(val*))(var_path->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_path) /* is_empty on <var_path:String>*/;
1371 if (var1){
1372 var = self;
1373 goto RET_LABEL;
1374 } else {
1375 }
1376 var2 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__is_empty]))(self) /* is_empty on <self:String>*/;
1377 if (var2){
1378 var = var_path;
1379 goto RET_LABEL;
1380 } else {
1381 }
1382 var3 = 0;
1383 var4 = ((val* (*)(val*, long))(var_path->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_path, var3) /* [] on <var_path:String>*/;
1384 var5 = '/';
1385 { /* Inline kernel#Char#== (var4,var5) */
1386 var8 = (var4 != NULL) && (var4->class == &class_kernel__Char);
1387 if (var8) {
1388 var9 = ((struct instance_kernel__Char*)var4)->value; /* autounbox from nullable Object to Char */;
1389 var8 = (var9 == var5);
1390 }
1391 var6 = var8;
1392 goto RET_LABEL7;
1393 RET_LABEL7:(void)0;
1394 }
1395 if (var6){
1396 var = var_path;
1397 goto RET_LABEL;
1398 } else {
1399 }
1400 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
1401 var11 = 5;
1402 ((void (*)(val*, long))(var10->class->vft[COLOR_array__Array__with_capacity]))(var10, var11) /* with_capacity on <var10:Array[Object]>*/;
1403 CHECK_NEW_array__Array(var10);
1404 var_ = var10;
1405 if (varonce) {
1406 var12 = varonce;
1407 } else {
1408 var13 = "";
1409 var14 = 0;
1410 var15 = string__NativeString__to_s_with_length(var13, var14);
1411 var12 = var15;
1412 varonce = var12;
1413 }
1414 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var12) /* add on <var_:Array[Object]>*/;
1415 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, self) /* add on <var_:Array[Object]>*/;
1416 if (varonce16) {
1417 var17 = varonce16;
1418 } else {
1419 var18 = "/";
1420 var19 = 1;
1421 var20 = string__NativeString__to_s_with_length(var18, var19);
1422 var17 = var20;
1423 varonce16 = var17;
1424 }
1425 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var17) /* add on <var_:Array[Object]>*/;
1426 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_path) /* add on <var_:Array[Object]>*/;
1427 if (varonce21) {
1428 var22 = varonce21;
1429 } else {
1430 var23 = "";
1431 var24 = 0;
1432 var25 = string__NativeString__to_s_with_length(var23, var24);
1433 var22 = var25;
1434 varonce21 = var22;
1435 }
1436 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var22) /* add on <var_:Array[Object]>*/;
1437 var26 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1438 var = var26;
1439 goto RET_LABEL;
1440 RET_LABEL:;
1441 return var;
1442 }
1443 /* method file#String#join_path for (self: Object, String): String */
1444 val* VIRTUAL_file__String__join_path(val* self, val* p0) {
1445 val* var /* : String */;
1446 val* var1 /* : String */;
1447 var1 = file__String__join_path(self, p0);
1448 var = var1;
1449 RET_LABEL:;
1450 return var;
1451 }
1452 /* method file#String#mkdir for (self: String) */
1453 void file__String__mkdir(val* self) {
1454 static val* varonce;
1455 val* var /* : String */;
1456 char* var1 /* : NativeString */;
1457 long var2 /* : Int */;
1458 val* var3 /* : String */;
1459 val* var4 /* : Array[String] */;
1460 val* var_dirs /* var dirs: Array[String] */;
1461 val* var5 /* : Buffer */;
1462 val* var_path /* var path: Buffer */;
1463 short int var6 /* : Bool */;
1464 long var7 /* : Int */;
1465 val* var8 /* : nullable Object */;
1466 short int var9 /* : Bool */;
1467 char var10 /* : Char */;
1468 val* var11 /* : nullable Object */;
1469 val* var12 /* : Iterator[nullable Object] */;
1470 short int var13 /* : Bool */;
1471 val* var14 /* : nullable Object */;
1472 val* var_d /* var d: String */;
1473 short int var15 /* : Bool */;
1474 char var16 /* : Char */;
1475 val* var17 /* : nullable Object */;
1476 val* var18 /* : String */;
1477 char* var19 /* : NativeString */;
1478 short int var20 /* : Bool */;
1479 if (varonce) {
1480 var = varonce;
1481 } else {
1482 var1 = "/";
1483 var2 = 1;
1484 var3 = string__NativeString__to_s_with_length(var1, var2);
1485 var = var3;
1486 varonce = var;
1487 }
1488 var4 = ((val* (*)(val*, val*))(self->class->vft[COLOR_string_search__String__split_with]))(self, var) /* split_with on <self:String>*/;
1489 var_dirs = var4;
1490 var5 = NEW_string__Buffer(&type_string__Buffer);
1491 ((void (*)(val*))(var5->class->vft[COLOR_string__Buffer__init]))(var5) /* init on <var5:Buffer>*/;
1492 CHECK_NEW_string__Buffer(var5);
1493 var_path = var5;
1494 var6 = ((short int (*)(val*))(var_dirs->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_dirs) /* is_empty on <var_dirs:Array[String]>*/;
1495 if (var6){
1496 goto RET_LABEL;
1497 } else {
1498 }
1499 var7 = 0;
1500 var8 = ((val* (*)(val*, long))(var_dirs->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_dirs, var7) /* [] on <var_dirs:Array[String]>*/;
1501 var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var8) /* is_empty on <var8:nullable Object(String)>*/;
1502 if (var9){
1503 var10 = '/';
1504 var11 = BOX_kernel__Char(var10); /* autobox from Char to nullable Object */
1505 ((void (*)(val*, val*))(var_path->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_path, var11) /* add on <var_path:Buffer>*/;
1506 } else {
1507 }
1508 var12 = ((val* (*)(val*))(var_dirs->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_dirs) /* iterator on <var_dirs:Array[String]>*/;
1509 for(;;) {
1510 var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on <var12:Iterator[nullable Object]>*/;
1511 if(!var13) break;
1512 var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on <var12:Iterator[nullable Object]>*/;
1513 var_d = var14;
1514 var15 = ((short int (*)(val*))(var_d->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_d) /* is_empty on <var_d:String>*/;
1515 if (var15){
1516 goto CONTINUE_label;
1517 } else {
1518 }
1519 ((void (*)(val*, val*))(var_path->class->vft[COLOR_abstract_collection__Sequence__append]))(var_path, var_d) /* append on <var_path:Buffer>*/;
1520 var16 = '/';
1521 var17 = BOX_kernel__Char(var16); /* autobox from Char to nullable Object */
1522 ((void (*)(val*, val*))(var_path->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_path, var17) /* add on <var_path:Buffer>*/;
1523 var18 = ((val* (*)(val*))(var_path->class->vft[COLOR_string__Object__to_s]))(var_path) /* to_s on <var_path:Buffer>*/;
1524 var19 = ((char* (*)(val*))(var18->class->vft[COLOR_string__String__to_cstring]))(var18) /* to_cstring on <var18:String>*/;
1525 var20 = file__NativeString__file_mkdir(var19);
1526 var20;
1527 CONTINUE_label: (void)0;
1528 ((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on <var12:Iterator[nullable Object]>*/;
1529 }
1530 BREAK_label: (void)0;
1531 RET_LABEL:;
1532 }
1533 /* method file#String#mkdir for (self: Object) */
1534 void VIRTUAL_file__String__mkdir(val* self) {
1535 file__String__mkdir(self);
1536 RET_LABEL:;
1537 }
1538 /* method file#String#chdir for (self: String) */
1539 void file__String__chdir(val* self) {
1540 char* var /* : NativeString */;
1541 var = ((char* (*)(val*))(self->class->vft[COLOR_string__String__to_cstring]))(self) /* to_cstring on <self:String>*/;
1542 file__NativeString__file_chdir(var);
1543 RET_LABEL:;
1544 }
1545 /* method file#String#chdir for (self: Object) */
1546 void VIRTUAL_file__String__chdir(val* self) {
1547 file__String__chdir(self);
1548 RET_LABEL:;
1549 }
1550 /* method file#String#file_extension for (self: String): nullable String */
1551 val* file__String__file_extension(val* self) {
1552 val* var /* : nullable String */;
1553 char var1 /* : Char */;
1554 long var2 /* : Int */;
1555 val* var3 /* : nullable Object */;
1556 long var_last_slash /* var last_slash: Int */;
1557 long var4 /* : Int */;
1558 short int var5 /* : Bool */;
1559 short int var7 /* : Bool */;
1560 int cltype;
1561 int idtype;
1562 short int var8 /* : Bool */;
1563 long var9 /* : Int */;
1564 long var10 /* : Int */;
1565 long var12 /* : Int */;
1566 long var13 /* : Int */;
1567 val* var14 /* : String */;
1568 val* var15 /* : null */;
1569 var1 = '.';
1570 var3 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
1571 var2 = ((long (*)(val*, val*))(self->class->vft[COLOR_array__AbstractArrayRead__last_index_of]))(self, var3) /* last_index_of on <self:String>*/;
1572 var_last_slash = var2;
1573 var4 = 0;
1574 { /* Inline kernel#Int#>= (var_last_slash,var4) */
1575 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1576 /* <var4:Int> isa OTHER */
1577 var7 = 1; /* easy <var4:Int> isa OTHER*/
1578 if (!var7) {
1579 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
1580 exit(1);
1581 }
1582 var8 = var_last_slash >= var4;
1583 var5 = var8;
1584 goto RET_LABEL6;
1585 RET_LABEL6:(void)0;
1586 }
1587 if (var5){
1588 var9 = 1;
1589 { /* Inline kernel#Int#+ (var_last_slash,var9) */
1590 var12 = var_last_slash + var9;
1591 var10 = var12;
1592 goto RET_LABEL11;
1593 RET_LABEL11:(void)0;
1594 }
1595 var13 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:String>*/;
1596 var14 = ((val* (*)(val*, long, long))(self->class->vft[COLOR_string__AbstractString__substring]))(self, var10, var13) /* substring on <self:String>*/;
1597 var = var14;
1598 goto RET_LABEL;
1599 } else {
1600 var15 = NULL;
1601 var = var15;
1602 goto RET_LABEL;
1603 }
1604 RET_LABEL:;
1605 return var;
1606 }
1607 /* method file#String#file_extension for (self: Object): nullable String */
1608 val* VIRTUAL_file__String__file_extension(val* self) {
1609 val* var /* : nullable String */;
1610 val* var1 /* : nullable String */;
1611 var1 = file__String__file_extension(self);
1612 var = var1;
1613 RET_LABEL:;
1614 return var;
1615 }
1616 /* method file#String#files for (self: String): Set[String] */
1617 val* file__String__files(val* self) {
1618 val* var /* : Set[String] */;
1619 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#String#files at lib/standard/file.nit:345,2--346,159\n");
1620 exit(1);
1621 RET_LABEL:;
1622 return var;
1623 }
1624 /* method file#String#files for (self: Object): Set[String] */
1625 val* VIRTUAL_file__String__files(val* self) {
1626 val* var /* : Set[String] */;
1627 val* var1 /* : Set[String] */;
1628 var1 = file__String__files(self);
1629 var = var1;
1630 RET_LABEL:;
1631 return var;
1632 }
1633 /* method file#NativeString#file_exists for (self: NativeString): Bool */
1634 short int file__NativeString__file_exists(char* self) {
1635 short int var /* : Bool */;
1636 short int var1 /* : Bool */;
1637 var1 = string_NativeString_NativeString_file_exists_0(self);
1638 var = var1;
1639 goto RET_LABEL;
1640 RET_LABEL:;
1641 return var;
1642 }
1643 /* method file#NativeString#file_exists for (self: Object): Bool */
1644 short int VIRTUAL_file__NativeString__file_exists(val* self) {
1645 short int var /* : Bool */;
1646 short int var1 /* : Bool */;
1647 char* var2 /* : NativeString */;
1648 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
1649 var1 = file__NativeString__file_exists(var2);
1650 var = var1;
1651 RET_LABEL:;
1652 return var;
1653 }
1654 /* method file#NativeString#file_stat for (self: NativeString): FileStat */
1655 void* file__NativeString__file_stat(char* self) {
1656 void* var /* : FileStat */;
1657 void* var1 /* : FileStat */;
1658 var1 = string_NativeString_NativeString_file_stat_0(self);
1659 var = var1;
1660 goto RET_LABEL;
1661 RET_LABEL:;
1662 return var;
1663 }
1664 /* method file#NativeString#file_stat for (self: Object): FileStat */
1665 void* VIRTUAL_file__NativeString__file_stat(val* self) {
1666 void* var /* : FileStat */;
1667 void* var1 /* : FileStat */;
1668 char* var2 /* : NativeString */;
1669 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
1670 var1 = file__NativeString__file_stat(var2);
1671 var = var1;
1672 RET_LABEL:;
1673 return var;
1674 }
1675 /* method file#NativeString#file_lstat for (self: NativeString): FileStat */
1676 void* file__NativeString__file_lstat(char* self) {
1677 void* var /* : FileStat */;
1678 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#NativeString#file_lstat at lib/standard/file.nit:352,2--359,3\n");
1679 exit(1);
1680 RET_LABEL:;
1681 return var;
1682 }
1683 /* method file#NativeString#file_lstat for (self: Object): FileStat */
1684 void* VIRTUAL_file__NativeString__file_lstat(val* self) {
1685 void* var /* : FileStat */;
1686 void* var1 /* : FileStat */;
1687 char* var2 /* : NativeString */;
1688 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
1689 var1 = file__NativeString__file_lstat(var2);
1690 var = var1;
1691 RET_LABEL:;
1692 return var;
1693 }
1694 /* method file#NativeString#file_mkdir for (self: NativeString): Bool */
1695 short int file__NativeString__file_mkdir(char* self) {
1696 short int var /* : Bool */;
1697 short int var1 /* : Bool */;
1698 var1 = string_NativeString_NativeString_file_mkdir_0(self);
1699 var = var1;
1700 goto RET_LABEL;
1701 RET_LABEL:;
1702 return var;
1703 }
1704 /* method file#NativeString#file_mkdir for (self: Object): Bool */
1705 short int VIRTUAL_file__NativeString__file_mkdir(val* self) {
1706 short int var /* : Bool */;
1707 short int var1 /* : Bool */;
1708 char* var2 /* : NativeString */;
1709 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
1710 var1 = file__NativeString__file_mkdir(var2);
1711 var = var1;
1712 RET_LABEL:;
1713 return var;
1714 }
1715 /* method file#NativeString#file_delete for (self: NativeString): Bool */
1716 short int file__NativeString__file_delete(char* self) {
1717 short int var /* : Bool */;
1718 short int var1 /* : Bool */;
1719 var1 = string_NativeString_NativeString_file_delete_0(self);
1720 var = var1;
1721 goto RET_LABEL;
1722 RET_LABEL:;
1723 return var;
1724 }
1725 /* method file#NativeString#file_delete for (self: Object): Bool */
1726 short int VIRTUAL_file__NativeString__file_delete(val* self) {
1727 short int var /* : Bool */;
1728 short int var1 /* : Bool */;
1729 char* var2 /* : NativeString */;
1730 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
1731 var1 = file__NativeString__file_delete(var2);
1732 var = var1;
1733 RET_LABEL:;
1734 return var;
1735 }
1736 /* method file#NativeString#file_chdir for (self: NativeString) */
1737 void file__NativeString__file_chdir(char* self) {
1738 string_NativeString_NativeString_file_chdir_0(self);
1739 RET_LABEL:;
1740 }
1741 /* method file#NativeString#file_chdir for (self: Object) */
1742 void VIRTUAL_file__NativeString__file_chdir(val* self) {
1743 char* var /* : NativeString */;
1744 var = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
1745 file__NativeString__file_chdir(var);
1746 RET_LABEL:;
1747 }
1748 /* method file#FileStat#mode for (self: FileStat): Int */
1749 long file__FileStat__mode(void* self) {
1750 long var /* : Int */;
1751 long var1 /* : Int */;
1752 var1 = file_FileStat_FileStat_mode_0(self);
1753 var = var1;
1754 goto RET_LABEL;
1755 RET_LABEL:;
1756 return var;
1757 }
1758 /* method file#FileStat#mode for (self: Object): Int */
1759 long VIRTUAL_file__FileStat__mode(val* self) {
1760 long var /* : Int */;
1761 long var1 /* : Int */;
1762 void* var2 /* : FileStat */;
1763 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1764 var1 = file__FileStat__mode(var2);
1765 var = var1;
1766 RET_LABEL:;
1767 return var;
1768 }
1769 /* method file#FileStat#atime for (self: FileStat): Int */
1770 long file__FileStat__atime(void* self) {
1771 long var /* : Int */;
1772 long var1 /* : Int */;
1773 var1 = file_FileStat_FileStat_atime_0(self);
1774 var = var1;
1775 goto RET_LABEL;
1776 RET_LABEL:;
1777 return var;
1778 }
1779 /* method file#FileStat#atime for (self: Object): Int */
1780 long VIRTUAL_file__FileStat__atime(val* self) {
1781 long var /* : Int */;
1782 long var1 /* : Int */;
1783 void* var2 /* : FileStat */;
1784 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1785 var1 = file__FileStat__atime(var2);
1786 var = var1;
1787 RET_LABEL:;
1788 return var;
1789 }
1790 /* method file#FileStat#ctime for (self: FileStat): Int */
1791 long file__FileStat__ctime(void* self) {
1792 long var /* : Int */;
1793 long var1 /* : Int */;
1794 var1 = file_FileStat_FileStat_ctime_0(self);
1795 var = var1;
1796 goto RET_LABEL;
1797 RET_LABEL:;
1798 return var;
1799 }
1800 /* method file#FileStat#ctime for (self: Object): Int */
1801 long VIRTUAL_file__FileStat__ctime(val* self) {
1802 long var /* : Int */;
1803 long var1 /* : Int */;
1804 void* var2 /* : FileStat */;
1805 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1806 var1 = file__FileStat__ctime(var2);
1807 var = var1;
1808 RET_LABEL:;
1809 return var;
1810 }
1811 /* method file#FileStat#mtime for (self: FileStat): Int */
1812 long file__FileStat__mtime(void* self) {
1813 long var /* : Int */;
1814 long var1 /* : Int */;
1815 var1 = file_FileStat_FileStat_mtime_0(self);
1816 var = var1;
1817 goto RET_LABEL;
1818 RET_LABEL:;
1819 return var;
1820 }
1821 /* method file#FileStat#mtime for (self: Object): Int */
1822 long VIRTUAL_file__FileStat__mtime(val* self) {
1823 long var /* : Int */;
1824 long var1 /* : Int */;
1825 void* var2 /* : FileStat */;
1826 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1827 var1 = file__FileStat__mtime(var2);
1828 var = var1;
1829 RET_LABEL:;
1830 return var;
1831 }
1832 /* method file#FileStat#size for (self: FileStat): Int */
1833 long file__FileStat__size(void* self) {
1834 long var /* : Int */;
1835 long var1 /* : Int */;
1836 var1 = file_FileStat_FileStat_size_0(self);
1837 var = var1;
1838 goto RET_LABEL;
1839 RET_LABEL:;
1840 return var;
1841 }
1842 /* method file#FileStat#size for (self: Object): Int */
1843 long VIRTUAL_file__FileStat__size(val* self) {
1844 long var /* : Int */;
1845 long var1 /* : Int */;
1846 void* var2 /* : FileStat */;
1847 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1848 var1 = file__FileStat__size(var2);
1849 var = var1;
1850 RET_LABEL:;
1851 return var;
1852 }
1853 /* method file#FileStat#is_reg for (self: FileStat): Bool */
1854 short int file__FileStat__is_reg(void* self) {
1855 short int var /* : Bool */;
1856 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_reg at lib/standard/file.nit:373,2--54\n");
1857 exit(1);
1858 RET_LABEL:;
1859 return var;
1860 }
1861 /* method file#FileStat#is_reg for (self: Object): Bool */
1862 short int VIRTUAL_file__FileStat__is_reg(val* self) {
1863 short int var /* : Bool */;
1864 short int var1 /* : Bool */;
1865 void* var2 /* : FileStat */;
1866 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1867 var1 = file__FileStat__is_reg(var2);
1868 var = var1;
1869 RET_LABEL:;
1870 return var;
1871 }
1872 /* method file#FileStat#is_dir for (self: FileStat): Bool */
1873 short int file__FileStat__is_dir(void* self) {
1874 short int var /* : Bool */;
1875 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_dir at lib/standard/file.nit:374,2--54\n");
1876 exit(1);
1877 RET_LABEL:;
1878 return var;
1879 }
1880 /* method file#FileStat#is_dir for (self: Object): Bool */
1881 short int VIRTUAL_file__FileStat__is_dir(val* self) {
1882 short int var /* : Bool */;
1883 short int var1 /* : Bool */;
1884 void* var2 /* : FileStat */;
1885 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1886 var1 = file__FileStat__is_dir(var2);
1887 var = var1;
1888 RET_LABEL:;
1889 return var;
1890 }
1891 /* method file#FileStat#is_chr for (self: FileStat): Bool */
1892 short int file__FileStat__is_chr(void* self) {
1893 short int var /* : Bool */;
1894 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_chr at lib/standard/file.nit:375,2--54\n");
1895 exit(1);
1896 RET_LABEL:;
1897 return var;
1898 }
1899 /* method file#FileStat#is_chr for (self: Object): Bool */
1900 short int VIRTUAL_file__FileStat__is_chr(val* self) {
1901 short int var /* : Bool */;
1902 short int var1 /* : Bool */;
1903 void* var2 /* : FileStat */;
1904 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1905 var1 = file__FileStat__is_chr(var2);
1906 var = var1;
1907 RET_LABEL:;
1908 return var;
1909 }
1910 /* method file#FileStat#is_blk for (self: FileStat): Bool */
1911 short int file__FileStat__is_blk(void* self) {
1912 short int var /* : Bool */;
1913 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_blk at lib/standard/file.nit:376,2--54\n");
1914 exit(1);
1915 RET_LABEL:;
1916 return var;
1917 }
1918 /* method file#FileStat#is_blk for (self: Object): Bool */
1919 short int VIRTUAL_file__FileStat__is_blk(val* self) {
1920 short int var /* : Bool */;
1921 short int var1 /* : Bool */;
1922 void* var2 /* : FileStat */;
1923 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1924 var1 = file__FileStat__is_blk(var2);
1925 var = var1;
1926 RET_LABEL:;
1927 return var;
1928 }
1929 /* method file#FileStat#is_fifo for (self: FileStat): Bool */
1930 short int file__FileStat__is_fifo(void* self) {
1931 short int var /* : Bool */;
1932 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_fifo at lib/standard/file.nit:377,2--56\n");
1933 exit(1);
1934 RET_LABEL:;
1935 return var;
1936 }
1937 /* method file#FileStat#is_fifo for (self: Object): Bool */
1938 short int VIRTUAL_file__FileStat__is_fifo(val* self) {
1939 short int var /* : Bool */;
1940 short int var1 /* : Bool */;
1941 void* var2 /* : FileStat */;
1942 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1943 var1 = file__FileStat__is_fifo(var2);
1944 var = var1;
1945 RET_LABEL:;
1946 return var;
1947 }
1948 /* method file#FileStat#is_lnk for (self: FileStat): Bool */
1949 short int file__FileStat__is_lnk(void* self) {
1950 short int var /* : Bool */;
1951 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_lnk at lib/standard/file.nit:378,2--54\n");
1952 exit(1);
1953 RET_LABEL:;
1954 return var;
1955 }
1956 /* method file#FileStat#is_lnk for (self: Object): Bool */
1957 short int VIRTUAL_file__FileStat__is_lnk(val* self) {
1958 short int var /* : Bool */;
1959 short int var1 /* : Bool */;
1960 void* var2 /* : FileStat */;
1961 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1962 var1 = file__FileStat__is_lnk(var2);
1963 var = var1;
1964 RET_LABEL:;
1965 return var;
1966 }
1967 /* method file#FileStat#is_sock for (self: FileStat): Bool */
1968 short int file__FileStat__is_sock(void* self) {
1969 short int var /* : Bool */;
1970 fprintf(stderr, "NOT YET IMPLEMENTED nitni for file#FileStat#is_sock at lib/standard/file.nit:379,2--56\n");
1971 exit(1);
1972 RET_LABEL:;
1973 return var;
1974 }
1975 /* method file#FileStat#is_sock for (self: Object): Bool */
1976 short int VIRTUAL_file__FileStat__is_sock(val* self) {
1977 short int var /* : Bool */;
1978 short int var1 /* : Bool */;
1979 void* var2 /* : FileStat */;
1980 var2 = ((struct instance_file__FileStat*)self)->value; /* autounbox from Object to FileStat */;
1981 var1 = file__FileStat__is_sock(var2);
1982 var = var1;
1983 RET_LABEL:;
1984 return var;
1985 }
1986 /* method file#NativeFile#io_read for (self: NativeFile, NativeString, Int): Int */
1987 long file__NativeFile__io_read(void* self, char* p0, long p1) {
1988 long var /* : Int */;
1989 long var1 /* : Int */;
1990 var1 = file_NativeFile_NativeFile_io_read_2(self, p0, p1);
1991 var = var1;
1992 goto RET_LABEL;
1993 RET_LABEL:;
1994 return var;
1995 }
1996 /* method file#NativeFile#io_read for (self: Object, NativeString, Int): Int */
1997 long VIRTUAL_file__NativeFile__io_read(val* self, char* p0, long p1) {
1998 long var /* : Int */;
1999 long var1 /* : Int */;
2000 void* var2 /* : NativeFile */;
2001 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2002 var1 = file__NativeFile__io_read(var2, p0, p1);
2003 var = var1;
2004 RET_LABEL:;
2005 return var;
2006 }
2007 /* method file#NativeFile#io_write for (self: NativeFile, NativeString, Int): Int */
2008 long file__NativeFile__io_write(void* self, char* p0, long p1) {
2009 long var /* : Int */;
2010 long var1 /* : Int */;
2011 var1 = file_NativeFile_NativeFile_io_write_2(self, p0, p1);
2012 var = var1;
2013 goto RET_LABEL;
2014 RET_LABEL:;
2015 return var;
2016 }
2017 /* method file#NativeFile#io_write for (self: Object, NativeString, Int): Int */
2018 long VIRTUAL_file__NativeFile__io_write(val* self, char* p0, long p1) {
2019 long var /* : Int */;
2020 long var1 /* : Int */;
2021 void* var2 /* : NativeFile */;
2022 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2023 var1 = file__NativeFile__io_write(var2, p0, p1);
2024 var = var1;
2025 RET_LABEL:;
2026 return var;
2027 }
2028 /* method file#NativeFile#io_close for (self: NativeFile): Int */
2029 long file__NativeFile__io_close(void* self) {
2030 long var /* : Int */;
2031 long var1 /* : Int */;
2032 var1 = file_NativeFile_NativeFile_io_close_0(self);
2033 var = var1;
2034 goto RET_LABEL;
2035 RET_LABEL:;
2036 return var;
2037 }
2038 /* method file#NativeFile#io_close for (self: Object): Int */
2039 long VIRTUAL_file__NativeFile__io_close(val* self) {
2040 long var /* : Int */;
2041 long var1 /* : Int */;
2042 void* var2 /* : NativeFile */;
2043 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2044 var1 = file__NativeFile__io_close(var2);
2045 var = var1;
2046 RET_LABEL:;
2047 return var;
2048 }
2049 /* method file#NativeFile#file_stat for (self: NativeFile): FileStat */
2050 void* file__NativeFile__file_stat(void* self) {
2051 void* var /* : FileStat */;
2052 void* var1 /* : FileStat */;
2053 var1 = file_NativeFile_NativeFile_file_stat_0(self);
2054 var = var1;
2055 goto RET_LABEL;
2056 RET_LABEL:;
2057 return var;
2058 }
2059 /* method file#NativeFile#file_stat for (self: Object): FileStat */
2060 void* VIRTUAL_file__NativeFile__file_stat(val* self) {
2061 void* var /* : FileStat */;
2062 void* var1 /* : FileStat */;
2063 void* var2 /* : NativeFile */;
2064 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2065 var1 = file__NativeFile__file_stat(var2);
2066 var = var1;
2067 RET_LABEL:;
2068 return var;
2069 }
2070 /* method file#NativeFile#io_open_read for (self: NativeFile, NativeString): NativeFile */
2071 void* file__NativeFile__io_open_read(void* self, char* p0) {
2072 void* var /* : NativeFile */;
2073 void* var1 /* : NativeFile */;
2074 var1 = file_NativeFileCapable_NativeFileCapable_io_open_read_1(p0);
2075 var = var1;
2076 goto RET_LABEL;
2077 RET_LABEL:;
2078 return var;
2079 }
2080 /* method file#NativeFile#io_open_read for (self: Object, NativeString): NativeFile */
2081 void* VIRTUAL_file__NativeFile__io_open_read(val* self, char* p0) {
2082 void* var /* : NativeFile */;
2083 val* var1 /* : Object */;
2084 void* var2 /* : NativeFile */;
2085 void* var3 /* : NativeFile */;
2086 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2087 var1 = file__NativeFile__io_open_read(var2, p0);
2088 var3 = ((struct instance_file__NativeFile*)var1)->value; /* autounbox from Object to NativeFile */;
2089 var = var3;
2090 RET_LABEL:;
2091 return var;
2092 }
2093 /* method file#NativeFile#io_open_write for (self: NativeFile, NativeString): NativeFile */
2094 void* file__NativeFile__io_open_write(void* self, char* p0) {
2095 void* var /* : NativeFile */;
2096 void* var1 /* : NativeFile */;
2097 var1 = file_NativeFileCapable_NativeFileCapable_io_open_write_1(p0);
2098 var = var1;
2099 goto RET_LABEL;
2100 RET_LABEL:;
2101 return var;
2102 }
2103 /* method file#NativeFile#io_open_write for (self: Object, NativeString): NativeFile */
2104 void* VIRTUAL_file__NativeFile__io_open_write(val* self, char* p0) {
2105 void* var /* : NativeFile */;
2106 val* var1 /* : Object */;
2107 void* var2 /* : NativeFile */;
2108 void* var3 /* : NativeFile */;
2109 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2110 var1 = file__NativeFile__io_open_write(var2, p0);
2111 var3 = ((struct instance_file__NativeFile*)var1)->value; /* autounbox from Object to NativeFile */;
2112 var = var3;
2113 RET_LABEL:;
2114 return var;
2115 }
2116 /* method file#NativeFile#native_stdin for (self: NativeFile): NativeFile */
2117 void* file__NativeFile__native_stdin(void* self) {
2118 void* var /* : NativeFile */;
2119 void* var1 /* : NativeFile */;
2120 var1 = file_NativeFileCapable_NativeFileCapable_native_stdin_0();
2121 var = var1;
2122 goto RET_LABEL;
2123 RET_LABEL:;
2124 return var;
2125 }
2126 /* method file#NativeFile#native_stdin for (self: Object): NativeFile */
2127 void* VIRTUAL_file__NativeFile__native_stdin(val* self) {
2128 void* var /* : NativeFile */;
2129 val* var1 /* : Object */;
2130 void* var2 /* : NativeFile */;
2131 void* var3 /* : NativeFile */;
2132 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2133 var1 = file__NativeFile__native_stdin(var2);
2134 var3 = ((struct instance_file__NativeFile*)var1)->value; /* autounbox from Object to NativeFile */;
2135 var = var3;
2136 RET_LABEL:;
2137 return var;
2138 }
2139 /* method file#NativeFile#native_stdout for (self: NativeFile): NativeFile */
2140 void* file__NativeFile__native_stdout(void* self) {
2141 void* var /* : NativeFile */;
2142 void* var1 /* : NativeFile */;
2143 var1 = file_NativeFileCapable_NativeFileCapable_native_stdout_0();
2144 var = var1;
2145 goto RET_LABEL;
2146 RET_LABEL:;
2147 return var;
2148 }
2149 /* method file#NativeFile#native_stdout for (self: Object): NativeFile */
2150 void* VIRTUAL_file__NativeFile__native_stdout(val* self) {
2151 void* var /* : NativeFile */;
2152 val* var1 /* : Object */;
2153 void* var2 /* : NativeFile */;
2154 void* var3 /* : NativeFile */;
2155 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2156 var1 = file__NativeFile__native_stdout(var2);
2157 var3 = ((struct instance_file__NativeFile*)var1)->value; /* autounbox from Object to NativeFile */;
2158 var = var3;
2159 RET_LABEL:;
2160 return var;
2161 }
2162 /* method file#NativeFile#native_stderr for (self: NativeFile): NativeFile */
2163 void* file__NativeFile__native_stderr(void* self) {
2164 void* var /* : NativeFile */;
2165 void* var1 /* : NativeFile */;
2166 var1 = file_NativeFileCapable_NativeFileCapable_native_stderr_0();
2167 var = var1;
2168 goto RET_LABEL;
2169 RET_LABEL:;
2170 return var;
2171 }
2172 /* method file#NativeFile#native_stderr for (self: Object): NativeFile */
2173 void* VIRTUAL_file__NativeFile__native_stderr(val* self) {
2174 void* var /* : NativeFile */;
2175 val* var1 /* : Object */;
2176 void* var2 /* : NativeFile */;
2177 void* var3 /* : NativeFile */;
2178 var2 = ((struct instance_file__NativeFile*)self)->value; /* autounbox from Object to NativeFile */;
2179 var1 = file__NativeFile__native_stderr(var2);
2180 var3 = ((struct instance_file__NativeFile*)var1)->value; /* autounbox from Object to NativeFile */;
2181 var = var3;
2182 RET_LABEL:;
2183 return var;
2184 }
2185 /* method file#Object#stdin for (self: Object): Stdin */
2186 val* file__Object__stdin(val* self) {
2187 val* var /* : Stdin */;
2188 static val* varonce;
2189 static int varonce_guard;
2190 val* var1 /* : Stdin */;
2191 val* var2 /* : Stdin */;
2192 if (varonce_guard) {
2193 var1 = varonce;
2194 } else {
2195 var2 = NEW_file__Stdin(&type_file__Stdin);
2196 ((void (*)(val*))(var2->class->vft[COLOR_file__Stdin__init]))(var2) /* init on <var2:Stdin>*/;
2197 CHECK_NEW_file__Stdin(var2);
2198 var1 = var2;
2199 varonce = var1;
2200 varonce_guard = 1;
2201 }
2202 var = var1;
2203 goto RET_LABEL;
2204 RET_LABEL:;
2205 return var;
2206 }
2207 /* method file#Object#stdin for (self: Object): Stdin */
2208 val* VIRTUAL_file__Object__stdin(val* self) {
2209 val* var /* : Stdin */;
2210 val* var1 /* : Stdin */;
2211 var1 = file__Object__stdin(self);
2212 var = var1;
2213 RET_LABEL:;
2214 return var;
2215 }
2216 /* method file#Object#stdout for (self: Object): OFStream */
2217 val* file__Object__stdout(val* self) {
2218 val* var /* : OFStream */;
2219 static val* varonce;
2220 static int varonce_guard;
2221 val* var1 /* : Stdout */;
2222 val* var2 /* : Stdout */;
2223 if (varonce_guard) {
2224 var1 = varonce;
2225 } else {
2226 var2 = NEW_file__Stdout(&type_file__Stdout);
2227 ((void (*)(val*))(var2->class->vft[COLOR_file__Stdout__init]))(var2) /* init on <var2:Stdout>*/;
2228 CHECK_NEW_file__Stdout(var2);
2229 var1 = var2;
2230 varonce = var1;
2231 varonce_guard = 1;
2232 }
2233 var = var1;
2234 goto RET_LABEL;
2235 RET_LABEL:;
2236 return var;
2237 }
2238 /* method file#Object#stdout for (self: Object): OFStream */
2239 val* VIRTUAL_file__Object__stdout(val* self) {
2240 val* var /* : OFStream */;
2241 val* var1 /* : OFStream */;
2242 var1 = file__Object__stdout(self);
2243 var = var1;
2244 RET_LABEL:;
2245 return var;
2246 }
2247 /* method file#Object#stderr for (self: Object): OFStream */
2248 val* file__Object__stderr(val* self) {
2249 val* var /* : OFStream */;
2250 static val* varonce;
2251 static int varonce_guard;
2252 val* var1 /* : Stderr */;
2253 val* var2 /* : Stderr */;
2254 if (varonce_guard) {
2255 var1 = varonce;
2256 } else {
2257 var2 = NEW_file__Stderr(&type_file__Stderr);
2258 ((void (*)(val*))(var2->class->vft[COLOR_file__Stderr__init]))(var2) /* init on <var2:Stderr>*/;
2259 CHECK_NEW_file__Stderr(var2);
2260 var1 = var2;
2261 varonce = var1;
2262 varonce_guard = 1;
2263 }
2264 var = var1;
2265 goto RET_LABEL;
2266 RET_LABEL:;
2267 return var;
2268 }
2269 /* method file#Object#stderr for (self: Object): OFStream */
2270 val* VIRTUAL_file__Object__stderr(val* self) {
2271 val* var /* : OFStream */;
2272 val* var1 /* : OFStream */;
2273 var1 = file__Object__stderr(self);
2274 var = var1;
2275 RET_LABEL:;
2276 return var;
2277 }