1 #include "file.sep.0.h"
2 /* method file#FStream#path= for (self: FStream, nullable String) */
3 void file__FStream__path_61d(val
* self
, val
* p0
) {
4 self
->attrs
[COLOR_file__FStream___path
].val
= p0
; /* _path on <self:FStream> */
7 /* method file#FStream#path= for (self: Object, nullable String) */
8 void VIRTUAL_file__FStream__path_61d(val
* self
, val
* p0
) {
9 { /* Inline file#FStream#path= (self,p0) on <self:Object(FStream)> */
10 self
->attrs
[COLOR_file__FStream___path
].val
= p0
; /* _path on <self:Object(FStream)> */
15 /* method file#FStream#init for (self: FStream) */
16 void file__FStream__init(val
* self
) {
19 /* method file#FStream#init for (self: Object) */
20 void VIRTUAL_file__FStream__init(val
* self
) {
21 { /* Inline file#FStream#init (self) on <self:Object(FStream)> */
26 /* method file#IFStream#close for (self: IFStream) */
27 void file__IFStream__close(val
* self
) {
28 val
* var
/* : nullable NativeFile */;
29 long var1
/* : Int */;
30 long var3
/* : Int */;
31 void* var4
/* : NativeFile */;
32 long var_i
/* var i: Int */;
33 short int var5
/* : Bool */;
34 var
= self
->attrs
[COLOR_file__FStream___file
].val
; /* _file on <self:IFStream> */
36 PRINT_ERROR("Runtime error: %s", "Receiver is null");
37 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 63);
40 { /* Inline file#NativeFile#io_close (var) on <var:nullable NativeFile> */
41 var4
= ((struct instance_kernel__Pointer
*)var
)->value
; /* autounbox from nullable NativeFile to NativeFile */;
42 var3
= file_NativeFile_NativeFile_io_close_0(var4
);
51 { /* Inline file#IFStream#end_reached= (self,var5) on <self:IFStream> */
52 self
->attrs
[COLOR_file__IFStream___end_reached
].s
= var5
; /* _end_reached on <self:IFStream> */
58 /* method file#IFStream#close for (self: Object) */
59 void VIRTUAL_file__IFStream__close(val
* self
) {
60 file__IFStream__close(self
); /* Direct call file#IFStream#close on <self:Object(IFStream)>*/
63 /* method file#IFStream#fill_buffer for (self: IFStream) */
64 void file__IFStream__fill_buffer(val
* self
) {
65 val
* var
/* : nullable NativeFile */;
66 val
* var1
/* : nullable FlatBuffer */;
67 char* var2
/* : NativeString */;
68 char* var4
/* : NativeString */;
69 val
* var5
/* : nullable FlatBuffer */;
70 long var6
/* : Int */;
71 long var8
/* : Int */;
72 long var9
/* : Int */;
73 long var11
/* : Int */;
74 void* var12
/* : NativeFile */;
75 long var_nb
/* var nb: Int */;
76 long var13
/* : Int */;
77 short int var14
/* : Bool */;
78 short int var16
/* : Bool */;
81 const char* var_class_name
;
82 short int var17
/* : Bool */;
83 short int var18
/* : Bool */;
84 long var20
/* : Int */;
85 val
* var21
/* : nullable FlatBuffer */;
86 long var23
/* : Int */;
87 var
= self
->attrs
[COLOR_file__FStream___file
].val
; /* _file on <self:IFStream> */
88 var1
= self
->attrs
[COLOR_stream__BufferedIStream___buffer
].val
; /* _buffer on <self:IFStream> */
90 PRINT_ERROR("Runtime error: %s", "Receiver is null");
91 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 69);
94 { /* Inline string#FlatText#items (var1) on <var1:nullable FlatBuffer> */
95 if (unlikely(var1
== NULL
)) {
96 PRINT_ERROR("Runtime error: %s", "Receiver is null");
97 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 551);
100 var4
= var1
->attrs
[COLOR_string__FlatText___items
].str
; /* _items on <var1:nullable FlatBuffer> */
105 var5
= self
->attrs
[COLOR_stream__BufferedIStream___buffer
].val
; /* _buffer on <self:IFStream> */
107 PRINT_ERROR("Runtime error: %s", "Receiver is null");
108 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 69);
111 { /* Inline string#FlatBuffer#capacity (var5) on <var5:nullable FlatBuffer> */
112 if (unlikely(var5
== NULL
)) {
113 PRINT_ERROR("Runtime error: %s", "Receiver is null");
114 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1165);
117 var8
= var5
->attrs
[COLOR_string__FlatBuffer___capacity
].l
; /* _capacity on <var5:nullable FlatBuffer> */
123 PRINT_ERROR("Runtime error: %s", "Receiver is null");
124 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 69);
127 { /* Inline file#NativeFile#io_read (var,var2,var6) on <var:nullable NativeFile> */
128 var12
= ((struct instance_kernel__Pointer
*)var
)->value
; /* autounbox from nullable NativeFile to NativeFile */;
129 var11
= file_NativeFile_NativeFile_io_read_2(var12
, var2
, var6
);
138 { /* Inline kernel#Int#<= (var_nb,var13) on <var_nb:Int> */
139 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
140 /* <var13:Int> isa OTHER */
141 var16
= 1; /* easy <var13:Int> isa OTHER*/
142 if (unlikely(!var16
)) {
143 var_class_name
= type_kernel__Int
.name
;
144 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
145 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
148 var17
= var_nb
<= var13
;
157 { /* Inline file#IFStream#end_reached= (self,var18) on <self:IFStream> */
158 self
->attrs
[COLOR_file__IFStream___end_reached
].s
= var18
; /* _end_reached on <self:IFStream> */
166 var21
= self
->attrs
[COLOR_stream__BufferedIStream___buffer
].val
; /* _buffer on <self:IFStream> */
168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
169 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 74);
172 { /* Inline string#FlatText#length= (var21,var_nb) on <var21:nullable FlatBuffer> */
173 if (unlikely(var21
== NULL
)) {
174 PRINT_ERROR("Runtime error: %s", "Receiver is null");
175 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 556);
178 var21
->attrs
[COLOR_string__FlatText___length
].l
= var_nb
; /* _length on <var21:nullable FlatBuffer> */
183 self
->attrs
[COLOR_stream__BufferedIStream___buffer_pos
].l
= var23
; /* _buffer_pos on <self:IFStream> */
186 /* method file#IFStream#fill_buffer for (self: Object) */
187 void VIRTUAL_file__IFStream__fill_buffer(val
* self
) {
188 file__IFStream__fill_buffer(self
); /* Direct call file#IFStream#fill_buffer on <self:Object(IFStream)>*/
191 /* method file#IFStream#end_reached for (self: IFStream): Bool */
192 short int file__IFStream__end_reached(val
* self
) {
193 short int var
/* : Bool */;
194 short int var1
/* : Bool */;
195 var1
= self
->attrs
[COLOR_file__IFStream___end_reached
].s
; /* _end_reached on <self:IFStream> */
200 /* method file#IFStream#end_reached for (self: Object): Bool */
201 short int VIRTUAL_file__IFStream__end_reached(val
* self
) {
202 short int var
/* : Bool */;
203 short int var1
/* : Bool */;
204 short int var3
/* : Bool */;
205 { /* Inline file#IFStream#end_reached (self) on <self:Object(IFStream)> */
206 var3
= self
->attrs
[COLOR_file__IFStream___end_reached
].s
; /* _end_reached on <self:Object(IFStream)> */
214 /* method file#IFStream#end_reached= for (self: IFStream, Bool) */
215 void file__IFStream__end_reached_61d(val
* self
, short int p0
) {
216 self
->attrs
[COLOR_file__IFStream___end_reached
].s
= p0
; /* _end_reached on <self:IFStream> */
219 /* method file#IFStream#end_reached= for (self: Object, Bool) */
220 void VIRTUAL_file__IFStream__end_reached_61d(val
* self
, short int p0
) {
221 { /* Inline file#IFStream#end_reached= (self,p0) on <self:Object(IFStream)> */
222 self
->attrs
[COLOR_file__IFStream___end_reached
].s
= p0
; /* _end_reached on <self:Object(IFStream)> */
227 /* method file#IFStream#open for (self: IFStream, String) */
228 void file__IFStream__open(val
* self
, val
* p0
) {
229 val
* var_path
/* var path: String */;
230 long var
/* : Int */;
231 void* var4
/* : NativeFile */;
232 char* var5
/* : NativeString */;
233 void* var6
/* : NativeFile */;
234 void* var8
/* : NativeFile */;
235 val
* var9
/* : nullable NativeFile */;
236 val
* var10
/* : nullable NativeFile */;
237 short int var11
/* : Bool */;
238 short int var13
/* : Bool */;
239 void* var14
/* : Pointer */;
240 short int var15
/* : Bool */;
242 val
* var16
/* : String */;
243 char* var17
/* : NativeString */;
244 long var18
/* : Int */;
245 val
* var19
/* : FlatString */;
246 static val
* varonce20
;
247 val
* var21
/* : String */;
248 char* var22
/* : NativeString */;
249 long var23
/* : Int */;
250 val
* var24
/* : FlatString */;
251 val
* var25
/* : Sys */;
252 val
* var27
/* : Sys */;
253 long var28
/* : Int */;
254 long var30
/* : Int */;
255 val
* var31
/* : String */;
256 static val
* varonce32
;
257 val
* var33
/* : String */;
258 char* var34
/* : NativeString */;
259 long var35
/* : Int */;
260 val
* var36
/* : FlatString */;
261 val
* var37
/* : Array[Object] */;
262 long var38
/* : Int */;
263 val
* var39
/* : NativeArray[Object] */;
264 val
* var40
/* : String */;
266 { /* Inline file#FStream#init (self) on <self:IFStream> */
271 { /* Inline stream#BufferedIStream#init (self) on <self:IFStream> */
277 { /* Inline file#FStream#path= (self,var_path) on <self:IFStream> */
278 self
->attrs
[COLOR_file__FStream___path
].val
= var_path
; /* _path on <self:IFStream> */
284 stream__BufferedIStream__prepare_buffer(self
, var
); /* Direct call stream#BufferedIStream#prepare_buffer on <self:IFStream>*/
286 var4
= NULL
/*special!*/;
288 var5
= string__FlatString__to_cstring(var_path
);
291 { /* Inline file#NativeFile#io_open_read (var4,var5) on <var4:NativeFile> */
292 var8
= file_NativeFileCapable_NativeFileCapable_io_open_read_1(var5
);
298 var9
= BOX_file__NativeFile(var6
); /* autobox from NativeFile to nullable NativeFile */
299 self
->attrs
[COLOR_file__FStream___file
].val
= var9
; /* _file on <self:IFStream> */
300 var10
= self
->attrs
[COLOR_file__FStream___file
].val
; /* _file on <self:IFStream> */
302 PRINT_ERROR("Runtime error: %s", "Receiver is null");
303 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 87);
306 { /* Inline kernel#Pointer#address_is_null (var10) on <var10:nullable NativeFile> */
307 var14
= ((struct instance_kernel__Pointer
*)var10
)->value
; /* autounbox from nullable NativeFile to Pointer */;
308 var13
= address_is_null(var14
);
315 if (unlikely(!var15
)) {
319 var17
= "Error: Opening file at \'";
321 var19
= string__NativeString__to_s_with_length(var17
, var18
);
328 var22
= "\' failed with \'";
330 var24
= string__NativeString__to_s_with_length(var22
, var23
);
335 { /* Inline kernel#Object#sys (self) on <self:IFStream> */
343 { /* Inline kernel#Sys#errno (var25) on <var25:Sys> */
344 struct nitni_instance
* var_for_c_0
;
345 var_for_c_0
= nit_alloc(sizeof(struct nitni_instance
));
346 var_for_c_0
->value
= var25
;
347 var30
= kernel___Sys_errno___impl(var_for_c_0
);
354 var31
= string__Int__strerror(var28
);
361 var36
= string__NativeString__to_s_with_length(var34
, var35
);
365 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
366 { /* var37 = array_instance Array[Object] */
368 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
369 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var16
;
370 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_path
;
371 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var21
;
372 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var31
;
373 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var33
;
375 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
379 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
382 file__Object__print(self
, var40
); /* Direct call file#Object#print on <self:IFStream>*/
384 PRINT_ERROR("Runtime error: %s", "Assert failed");
385 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 87);
390 /* method file#IFStream#open for (self: Object, String) */
391 void VIRTUAL_file__IFStream__open(val
* self
, val
* p0
) {
392 file__IFStream__open(self
, p0
); /* Direct call file#IFStream#open on <self:Object(IFStream)>*/
395 /* method file#IFStream#init for (self: IFStream) */
396 void file__IFStream__init(val
* self
) {
398 { /* Inline file#FStream#init (self) on <self:IFStream> */
403 { /* Inline stream#BufferedIStream#init (self) on <self:IFStream> */
409 /* method file#IFStream#init for (self: Object) */
410 void VIRTUAL_file__IFStream__init(val
* self
) {
411 file__IFStream__init(self
); /* Direct call file#IFStream#init on <self:Object(IFStream)>*/
414 /* method file#OFStream#write for (self: OFStream, Text) */
415 void file__OFStream__write(val
* self
, val
* p0
) {
416 val
* var_s
/* var s: Text */;
417 short int var
/* : Bool */;
418 short int var1
/* : Bool */;
421 char* var2
/* : NativeString */;
422 long var3
/* : Int */;
423 long var5
/* : Int */;
424 val
* var6
/* : Iterator[Text] */;
425 val
* var7
/* : Iterator[nullable Object] */;
426 short int var8
/* : Bool */;
427 val
* var9
/* : nullable Object */;
428 val
* var_i
/* var i: Text */;
429 char* var10
/* : NativeString */;
430 long var11
/* : Int */;
431 long var13
/* : Int */;
433 var
= self
->attrs
[COLOR_file__OFStream___writable
].s
; /* _writable on <self:OFStream> */
434 if (unlikely(!var
)) {
435 PRINT_ERROR("Runtime error: %s", "Assert failed");
436 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 103);
439 /* <var_s:Text> isa FlatText */
440 cltype
= type_string__FlatText
.color
;
441 idtype
= type_string__FlatText
.id
;
442 if(cltype
>= var_s
->type
->table_size
) {
445 var1
= var_s
->type
->type_table
[cltype
] == idtype
;
449 var2
= ((char* (*)(val
*))(var_s
->class->vft
[COLOR_string__Text__to_cstring
]))(var_s
) /* to_cstring on <var_s:Text(FlatText)>*/;
452 { /* Inline string#FlatText#length (var_s) on <var_s:Text(FlatText)> */
453 var5
= var_s
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_s:Text(FlatText)> */
459 file__OFStream__write_native(self
, var2
, var3
); /* Direct call file#OFStream#write_native on <self:OFStream>*/
463 var6
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_string__Text__substrings
]))(var_s
) /* substrings on <var_s:Text>*/;
466 var7
= abstract_collection__Iterator__iterator(var6
);
470 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
474 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
478 var10
= ((char* (*)(val
*))(var_i
->class->vft
[COLOR_string__Text__to_cstring
]))(var_i
) /* to_cstring on <var_i:Text>*/;
481 { /* Inline string#FlatText#length (var_i) on <var_i:Text> */
482 var13
= var_i
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_i:Text> */
488 file__OFStream__write_native(self
, var10
, var11
); /* Direct call file#OFStream#write_native on <self:OFStream>*/
490 CONTINUE_label
: (void)0;
492 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
495 BREAK_label
: (void)0;
499 /* method file#OFStream#write for (self: Object, Text) */
500 void VIRTUAL_file__OFStream__write(val
* self
, val
* p0
) {
501 file__OFStream__write(self
, p0
); /* Direct call file#OFStream#write on <self:Object(OFStream)>*/
504 /* method file#OFStream#close for (self: OFStream) */
505 void file__OFStream__close(val
* self
) {
506 val
* var
/* : nullable NativeFile */;
507 long var1
/* : Int */;
508 long var3
/* : Int */;
509 void* var4
/* : NativeFile */;
510 long var_i
/* var i: Int */;
511 short int var5
/* : Bool */;
512 var
= self
->attrs
[COLOR_file__FStream___file
].val
; /* _file on <self:OFStream> */
514 PRINT_ERROR("Runtime error: %s", "Receiver is null");
515 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 115);
518 { /* Inline file#NativeFile#io_close (var) on <var:nullable NativeFile> */
519 var4
= ((struct instance_kernel__Pointer
*)var
)->value
; /* autounbox from nullable NativeFile to NativeFile */;
520 var3
= file_NativeFile_NativeFile_io_close_0(var4
);
528 self
->attrs
[COLOR_file__OFStream___writable
].s
= var5
; /* _writable on <self:OFStream> */
531 /* method file#OFStream#close for (self: Object) */
532 void VIRTUAL_file__OFStream__close(val
* self
) {
533 file__OFStream__close(self
); /* Direct call file#OFStream#close on <self:Object(OFStream)>*/
536 /* method file#OFStream#write_native for (self: OFStream, NativeString, Int) */
537 void file__OFStream__write_native(val
* self
, char* p0
, long p1
) {
538 char* var_native
/* var native: NativeString */;
539 long var_len
/* var len: Int */;
540 short int var
/* : Bool */;
541 val
* var1
/* : nullable NativeFile */;
542 long var2
/* : Int */;
543 long var4
/* : Int */;
544 void* var5
/* : NativeFile */;
545 long var_err
/* var err: Int */;
546 short int var6
/* : Bool */;
547 short int var7
/* : Bool */;
548 short int var9
/* : Bool */;
549 short int var10
/* : Bool */;
551 val
* var11
/* : String */;
552 char* var12
/* : NativeString */;
553 long var13
/* : Int */;
554 val
* var14
/* : FlatString */;
555 static val
* varonce15
;
556 val
* var16
/* : String */;
557 char* var17
/* : NativeString */;
558 long var18
/* : Int */;
559 val
* var19
/* : FlatString */;
560 static val
* varonce20
;
561 val
* var21
/* : String */;
562 char* var22
/* : NativeString */;
563 long var23
/* : Int */;
564 val
* var24
/* : FlatString */;
565 val
* var25
/* : Array[Object] */;
566 long var26
/* : Int */;
567 val
* var27
/* : NativeArray[Object] */;
568 val
* var28
/* : Object */;
569 val
* var29
/* : Object */;
572 var
= self
->attrs
[COLOR_file__OFStream___writable
].s
; /* _writable on <self:OFStream> */
573 if (unlikely(!var
)) {
574 PRINT_ERROR("Runtime error: %s", "Assert failed");
575 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 125);
578 var1
= self
->attrs
[COLOR_file__FStream___file
].val
; /* _file on <self:OFStream> */
580 PRINT_ERROR("Runtime error: %s", "Receiver is null");
581 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 126);
584 { /* Inline file#NativeFile#io_write (var1,var_native,var_len) on <var1:nullable NativeFile> */
585 var5
= ((struct instance_kernel__Pointer
*)var1
)->value
; /* autounbox from nullable NativeFile to NativeFile */;
586 var4
= file_NativeFile_NativeFile_io_write_2(var5
, var_native
, var_len
);
594 { /* Inline kernel#Int#!= (var_err,var_len) on <var_err:Int> */
595 var9
= var_err
== var_len
;
607 var12
= "Problem in writing : ";
609 var14
= string__NativeString__to_s_with_length(var12
, var13
);
618 var19
= string__NativeString__to_s_with_length(var17
, var18
);
627 var24
= string__NativeString__to_s_with_length(var22
, var23
);
631 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
632 { /* var25 = array_instance Array[Object] */
634 var27
= NEW_array__NativeArray(var26
, &type_array__NativeArraykernel__Object
);
635 ((struct instance_array__NativeArray
*)var27
)->values
[0] = (val
*) var11
;
636 var28
= BOX_kernel__Int(var_err
); /* autobox from Int to Object */
637 ((struct instance_array__NativeArray
*)var27
)->values
[1] = (val
*) var28
;
638 ((struct instance_array__NativeArray
*)var27
)->values
[2] = (val
*) var16
;
639 var29
= BOX_kernel__Int(var_len
); /* autobox from Int to Object */
640 ((struct instance_array__NativeArray
*)var27
)->values
[3] = (val
*) var29
;
641 ((struct instance_array__NativeArray
*)var27
)->values
[4] = (val
*) var21
;
643 ((void (*)(val
*, val
*, long))(var25
->class->vft
[COLOR_array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
647 file__Object__printn(self
, var25
); /* Direct call file#Object#printn on <self:OFStream>*/
653 /* method file#OFStream#write_native for (self: Object, NativeString, Int) */
654 void VIRTUAL_file__OFStream__write_native(val
* self
, char* p0
, long p1
) {
655 file__OFStream__write_native(self
, p0
, p1
); /* Direct call file#OFStream#write_native on <self:Object(OFStream)>*/
658 /* method file#OFStream#open for (self: OFStream, String) */
659 void file__OFStream__open(val
* self
, val
* p0
) {
660 val
* var_path
/* var path: String */;
661 void* var
/* : NativeFile */;
662 char* var2
/* : NativeString */;
663 void* var3
/* : NativeFile */;
664 void* var5
/* : NativeFile */;
665 val
* var6
/* : nullable NativeFile */;
666 val
* var7
/* : nullable NativeFile */;
667 short int var8
/* : Bool */;
668 short int var10
/* : Bool */;
669 void* var11
/* : Pointer */;
670 short int var12
/* : Bool */;
672 val
* var13
/* : String */;
673 char* var14
/* : NativeString */;
674 long var15
/* : Int */;
675 val
* var16
/* : FlatString */;
676 static val
* varonce17
;
677 val
* var18
/* : String */;
678 char* var19
/* : NativeString */;
679 long var20
/* : Int */;
680 val
* var21
/* : FlatString */;
681 val
* var22
/* : Sys */;
682 val
* var24
/* : Sys */;
683 long var25
/* : Int */;
684 long var27
/* : Int */;
685 val
* var28
/* : String */;
686 static val
* varonce29
;
687 val
* var30
/* : String */;
688 char* var31
/* : NativeString */;
689 long var32
/* : Int */;
690 val
* var33
/* : FlatString */;
691 val
* var34
/* : Array[Object] */;
692 long var35
/* : Int */;
693 val
* var36
/* : NativeArray[Object] */;
694 val
* var37
/* : String */;
695 short int var39
/* : Bool */;
697 { /* Inline file#FStream#init (self) on <self:OFStream> */
702 var
= NULL
/*special!*/;
704 var2
= string__FlatString__to_cstring(var_path
);
707 { /* Inline file#NativeFile#io_open_write (var,var2) on <var:NativeFile> */
708 var5
= file_NativeFileCapable_NativeFileCapable_io_open_write_1(var2
);
714 var6
= BOX_file__NativeFile(var3
); /* autobox from NativeFile to nullable NativeFile */
715 self
->attrs
[COLOR_file__FStream___file
].val
= var6
; /* _file on <self:OFStream> */
716 var7
= self
->attrs
[COLOR_file__FStream___file
].val
; /* _file on <self:OFStream> */
718 PRINT_ERROR("Runtime error: %s", "Receiver is null");
719 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 137);
722 { /* Inline kernel#Pointer#address_is_null (var7) on <var7:nullable NativeFile> */
723 var11
= ((struct instance_kernel__Pointer
*)var7
)->value
; /* autounbox from nullable NativeFile to Pointer */;
724 var10
= address_is_null(var11
);
731 if (unlikely(!var12
)) {
735 var14
= "Error: Opening file at \'";
737 var16
= string__NativeString__to_s_with_length(var14
, var15
);
744 var19
= "\' failed with \'";
746 var21
= string__NativeString__to_s_with_length(var19
, var20
);
751 { /* Inline kernel#Object#sys (self) on <self:OFStream> */
759 { /* Inline kernel#Sys#errno (var22) on <var22:Sys> */
760 struct nitni_instance
* var_for_c_0
;
761 var_for_c_0
= nit_alloc(sizeof(struct nitni_instance
));
762 var_for_c_0
->value
= var22
;
763 var27
= kernel___Sys_errno___impl(var_for_c_0
);
770 var28
= string__Int__strerror(var25
);
777 var33
= string__NativeString__to_s_with_length(var31
, var32
);
781 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
782 { /* var34 = array_instance Array[Object] */
784 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
785 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var13
;
786 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_path
;
787 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var18
;
788 ((struct instance_array__NativeArray
*)var36
)->values
[3] = (val
*) var28
;
789 ((struct instance_array__NativeArray
*)var36
)->values
[4] = (val
*) var30
;
791 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
795 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
798 file__Object__print(self
, var37
); /* Direct call file#Object#print on <self:OFStream>*/
800 PRINT_ERROR("Runtime error: %s", "Assert failed");
801 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 137);
805 { /* Inline file#FStream#path= (self,var_path) on <self:OFStream> */
806 self
->attrs
[COLOR_file__FStream___path
].val
= var_path
; /* _path on <self:OFStream> */
811 self
->attrs
[COLOR_file__OFStream___writable
].s
= var39
; /* _writable on <self:OFStream> */
814 /* method file#OFStream#open for (self: Object, String) */
815 void VIRTUAL_file__OFStream__open(val
* self
, val
* p0
) {
816 file__OFStream__open(self
, p0
); /* Direct call file#OFStream#open on <self:Object(OFStream)>*/
819 /* method file#OFStream#init for (self: OFStream) */
820 void file__OFStream__init(val
* self
) {
822 { /* Inline file#FStream#init (self) on <self:OFStream> */
828 /* method file#OFStream#init for (self: Object) */
829 void VIRTUAL_file__OFStream__init(val
* self
) {
830 file__OFStream__init(self
); /* Direct call file#OFStream#init on <self:Object(OFStream)>*/
833 /* method file#Stdin#init for (self: Stdin) */
834 void file__Stdin__init(val
* self
) {
835 void* var
/* : NativeFile */;
836 void* var1
/* : NativeFile */;
837 void* var3
/* : NativeFile */;
838 val
* var4
/* : nullable NativeFile */;
840 val
* var5
/* : String */;
841 char* var6
/* : NativeString */;
842 long var7
/* : Int */;
843 val
* var8
/* : FlatString */;
844 long var10
/* : Int */;
846 file__IFStream__init(self
); /* Direct call file#IFStream#init on <self:Stdin>*/
848 var
= NULL
/*special!*/;
850 { /* Inline file#NativeFile#native_stdin (var) on <var:NativeFile> */
851 var3
= file_NativeFileCapable_NativeFileCapable_native_stdin_0();
857 var4
= BOX_file__NativeFile(var1
); /* autobox from NativeFile to nullable NativeFile */
858 self
->attrs
[COLOR_file__FStream___file
].val
= var4
; /* _file on <self:Stdin> */
864 var8
= string__NativeString__to_s_with_length(var6
, var7
);
869 { /* Inline file#FStream#path= (self,var5) on <self:Stdin> */
870 self
->attrs
[COLOR_file__FStream___path
].val
= var5
; /* _path on <self:Stdin> */
876 stream__BufferedIStream__prepare_buffer(self
, var10
); /* Direct call stream#BufferedIStream#prepare_buffer on <self:Stdin>*/
880 /* method file#Stdin#init for (self: Object) */
881 void VIRTUAL_file__Stdin__init(val
* self
) {
882 file__Stdin__init(self
); /* Direct call file#Stdin#init on <self:Object(Stdin)>*/
885 /* method file#Stdout#init for (self: Stdout) */
886 void file__Stdout__init(val
* self
) {
887 void* var
/* : NativeFile */;
888 void* var1
/* : NativeFile */;
889 void* var3
/* : NativeFile */;
890 val
* var4
/* : nullable NativeFile */;
892 val
* var5
/* : String */;
893 char* var6
/* : NativeString */;
894 long var7
/* : Int */;
895 val
* var8
/* : FlatString */;
896 short int var10
/* : Bool */;
898 file__OFStream__init(self
); /* Direct call file#OFStream#init on <self:Stdout>*/
900 var
= NULL
/*special!*/;
902 { /* Inline file#NativeFile#native_stdout (var) on <var:NativeFile> */
903 var3
= file_NativeFileCapable_NativeFileCapable_native_stdout_0();
909 var4
= BOX_file__NativeFile(var1
); /* autobox from NativeFile to nullable NativeFile */
910 self
->attrs
[COLOR_file__FStream___file
].val
= var4
; /* _file on <self:Stdout> */
914 var6
= "/dev/stdout";
916 var8
= string__NativeString__to_s_with_length(var6
, var7
);
921 { /* Inline file#FStream#path= (self,var5) on <self:Stdout> */
922 self
->attrs
[COLOR_file__FStream___path
].val
= var5
; /* _path on <self:Stdout> */
927 self
->attrs
[COLOR_file__OFStream___writable
].s
= var10
; /* _writable on <self:Stdout> */
930 /* method file#Stdout#init for (self: Object) */
931 void VIRTUAL_file__Stdout__init(val
* self
) {
932 file__Stdout__init(self
); /* Direct call file#Stdout#init on <self:Object(Stdout)>*/
935 /* method file#Stderr#init for (self: Stderr) */
936 void file__Stderr__init(val
* self
) {
937 void* var
/* : NativeFile */;
938 void* var1
/* : NativeFile */;
939 void* var3
/* : NativeFile */;
940 val
* var4
/* : nullable NativeFile */;
942 val
* var5
/* : String */;
943 char* var6
/* : NativeString */;
944 long var7
/* : Int */;
945 val
* var8
/* : FlatString */;
946 short int var10
/* : Bool */;
948 file__OFStream__init(self
); /* Direct call file#OFStream#init on <self:Stderr>*/
950 var
= NULL
/*special!*/;
952 { /* Inline file#NativeFile#native_stderr (var) on <var:NativeFile> */
953 var3
= file_NativeFileCapable_NativeFileCapable_native_stderr_0();
959 var4
= BOX_file__NativeFile(var1
); /* autobox from NativeFile to nullable NativeFile */
960 self
->attrs
[COLOR_file__FStream___file
].val
= var4
; /* _file on <self:Stderr> */
964 var6
= "/dev/stderr";
966 var8
= string__NativeString__to_s_with_length(var6
, var7
);
971 { /* Inline file#FStream#path= (self,var5) on <self:Stderr> */
972 self
->attrs
[COLOR_file__FStream___path
].val
= var5
; /* _path on <self:Stderr> */
977 self
->attrs
[COLOR_file__OFStream___writable
].s
= var10
; /* _writable on <self:Stderr> */
980 /* method file#Stderr#init for (self: Object) */
981 void VIRTUAL_file__Stderr__init(val
* self
) {
982 file__Stderr__init(self
); /* Direct call file#Stderr#init on <self:Object(Stderr)>*/
985 /* method file#String#file_exists for (self: String): Bool */
986 short int file__String__file_exists(val
* self
) {
987 short int var
/* : Bool */;
988 char* var1
/* : NativeString */;
989 short int var2
/* : Bool */;
990 short int var4
/* : Bool */;
992 var1
= string__FlatString__to_cstring(self
);
995 { /* Inline file#NativeString#file_exists (var1) on <var1:NativeString> */
996 var4
= string_NativeString_NativeString_file_exists_0(var1
);
1007 /* method file#String#file_exists for (self: Object): Bool */
1008 short int VIRTUAL_file__String__file_exists(val
* self
) {
1009 short int var
/* : Bool */;
1010 short int var1
/* : Bool */;
1011 var1
= file__String__file_exists(self
);
1016 /* method file#String#file_copy_to for (self: String, String) */
1017 void file__String__file_copy_to(val
* self
, val
* p0
) {
1018 val
* var_dest
/* var dest: String */;
1019 val
* var
/* : IFStream */;
1020 val
* var_input
/* var input: IFStream */;
1021 val
* var1
/* : OFStream */;
1022 val
* var_output
/* var output: OFStream */;
1023 short int var2
/* : Bool */;
1024 short int var3
/* : Bool */;
1025 long var4
/* : Int */;
1026 val
* var5
/* : String */;
1027 val
* var_buffer
/* var buffer: String */;
1029 var
= NEW_file__IFStream(&type_file__IFStream
);
1031 file__IFStream__open(var
, self
); /* Direct call file#IFStream#open on <var:IFStream>*/
1034 var1
= NEW_file__OFStream(&type_file__OFStream
);
1036 file__OFStream__open(var1
, var_dest
); /* Direct call file#OFStream#open on <var1:OFStream>*/
1041 var2
= stream__BufferedIStream__eof(var_input
);
1047 var5
= stream__BufferedIStream__read(var_input
, var4
);
1051 file__OFStream__write(var_output
, var_buffer
); /* Direct call file#OFStream#write on <var_output:OFStream>*/
1053 CONTINUE_label
: (void)0;
1055 BREAK_label
: (void)0;
1057 file__IFStream__close(var_input
); /* Direct call file#IFStream#close on <var_input:IFStream>*/
1060 file__OFStream__close(var_output
); /* Direct call file#OFStream#close on <var_output:OFStream>*/
1064 /* method file#String#file_copy_to for (self: Object, String) */
1065 void VIRTUAL_file__String__file_copy_to(val
* self
, val
* p0
) {
1066 file__String__file_copy_to(self
, p0
); /* Direct call file#String#file_copy_to on <self:Object(String)>*/
1069 /* method file#String#strip_extension for (self: String, String): String */
1070 val
* file__String__strip_extension(val
* self
, val
* p0
) {
1071 val
* var
/* : String */;
1072 val
* var_ext
/* var ext: String */;
1073 short int var1
/* : Bool */;
1074 long var2
/* : Int */;
1075 long var3
/* : Int */;
1076 long var5
/* : Int */;
1077 long var6
/* : Int */;
1078 long var8
/* : Int */;
1079 long var9
/* : Int */;
1080 short int var11
/* : Bool */;
1083 const char* var_class_name
;
1084 long var12
/* : Int */;
1085 val
* var13
/* : String */;
1088 var1
= string__Text__has_suffix(self
, var_ext
);
1093 { /* Inline string#FlatText#length (self) on <self:String> */
1094 var5
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:String> */
1100 { /* Inline string#FlatText#length (var_ext) on <var_ext:String> */
1101 var8
= var_ext
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <var_ext:String> */
1107 { /* Inline kernel#Int#- (var3,var6) on <var3:Int> */
1108 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
1109 /* <var6:Int> isa OTHER */
1110 var11
= 1; /* easy <var6:Int> isa OTHER*/
1111 if (unlikely(!var11
)) {
1112 var_class_name
= type_kernel__Int
.name
;
1113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1114 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1117 var12
= var3
- var6
;
1120 RET_LABEL10
:(void)0;
1124 var13
= string__FlatString__substring(self
, var2
, var9
);
1135 /* method file#String#strip_extension for (self: Object, String): String */
1136 val
* VIRTUAL_file__String__strip_extension(val
* self
, val
* p0
) {
1137 val
* var
/* : String */;
1138 val
* var1
/* : String */;
1139 var1
= file__String__strip_extension(self
, p0
);
1144 /* method file#String#basename for (self: String, String): String */
1145 val
* file__String__basename(val
* self
, val
* p0
) {
1146 val
* var
/* : String */;
1147 val
* var_ext
/* var ext: String */;
1148 long var1
/* : Int */;
1149 long var3
/* : Int */;
1150 long var4
/* : Int */;
1151 long var5
/* : Int */;
1152 short int var7
/* : Bool */;
1155 const char* var_class_name
;
1156 long var8
/* : Int */;
1157 long var_l
/* var l: Int */;
1158 short int var9
/* : Bool */;
1159 long var10
/* : Int */;
1160 short int var11
/* : Bool */;
1161 short int var13
/* : Bool */;
1164 const char* var_class_name16
;
1165 short int var17
/* : Bool */;
1166 short int var_
/* var : Bool */;
1167 val
* var18
/* : SequenceRead[Char] */;
1168 val
* var20
/* : SequenceRead[Char] */;
1169 val
* var21
/* : nullable Object */;
1170 char var22
/* : Char */;
1171 short int var23
/* : Bool */;
1172 short int var24
/* : Bool */;
1173 short int var26
/* : Bool */;
1174 char var27
/* : Char */;
1175 long var28
/* : Int */;
1176 long var29
/* : Int */;
1177 short int var31
/* : Bool */;
1180 const char* var_class_name34
;
1181 long var35
/* : Int */;
1182 long var36
/* : Int */;
1183 short int var37
/* : Bool */;
1184 short int var38
/* : Bool */;
1185 short int var40
/* : Bool */;
1186 static val
* varonce
;
1187 val
* var41
/* : String */;
1188 char* var42
/* : NativeString */;
1189 long var43
/* : Int */;
1190 val
* var44
/* : FlatString */;
1191 val
* var45
/* : SequenceRead[Char] */;
1192 val
* var47
/* : SequenceRead[Char] */;
1193 char var48
/* : Char */;
1194 long var49
/* : Int */;
1195 val
* var50
/* : nullable Object */;
1196 long var_pos
/* var pos: Int */;
1197 val
* var_n
/* var n: String */;
1198 long var51
/* : Int */;
1199 short int var52
/* : Bool */;
1200 short int var54
/* : Bool */;
1203 const char* var_class_name57
;
1204 short int var58
/* : Bool */;
1205 long var59
/* : Int */;
1206 long var60
/* : Int */;
1207 short int var62
/* : Bool */;
1210 const char* var_class_name65
;
1211 long var66
/* : Int */;
1212 long var67
/* : Int */;
1213 short int var69
/* : Bool */;
1216 const char* var_class_name72
;
1217 long var73
/* : Int */;
1218 val
* var74
/* : String */;
1219 val
* var75
/* : String */;
1222 { /* Inline string#FlatText#length (self) on <self:String> */
1223 var3
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:String> */
1230 { /* Inline kernel#Int#- (var1,var4) on <var1:Int> */
1231 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1232 /* <var4:Int> isa OTHER */
1233 var7
= 1; /* easy <var4:Int> isa OTHER*/
1234 if (unlikely(!var7
)) {
1235 var_class_name
= type_kernel__Int
.name
;
1236 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1237 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1250 { /* Inline kernel#Int#> (var_l,var10) on <var_l:Int> */
1251 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
1252 /* <var10:Int> isa OTHER */
1253 var13
= 1; /* easy <var10:Int> isa OTHER*/
1254 if (unlikely(!var13
)) {
1255 var_class_name16
= type_kernel__Int
.name
;
1256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16
);
1257 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1260 var17
= var_l
> var10
;
1263 RET_LABEL12
:(void)0;
1269 { /* Inline string#FlatString#chars (self) on <self:String> */
1270 var20
= self
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <self:String> */
1271 if (unlikely(var20
== NULL
)) {
1272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1273 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
1277 RET_LABEL19
:(void)0;
1281 var21
= ((val
* (*)(val
*, long))(var18
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var18
, var_l
) /* [] on <var18:SequenceRead[Char]>*/;
1285 { /* Inline kernel#Char#== (var21,var22) on <var21:nullable Object(Char)> */
1286 var26
= (var21
!= NULL
) && (var21
->class == &class_kernel__Char
);
1288 var27
= ((struct instance_kernel__Char
*)var21
)->value
; /* autounbox from nullable Object to Char */;
1289 var26
= (var27
== var22
);
1293 RET_LABEL25
:(void)0;
1304 { /* Inline kernel#Int#- (var_l,var28) on <var_l:Int> */
1305 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
1306 /* <var28:Int> isa OTHER */
1307 var31
= 1; /* easy <var28:Int> isa OTHER*/
1308 if (unlikely(!var31
)) {
1309 var_class_name34
= type_kernel__Int
.name
;
1310 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
1311 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1314 var35
= var_l
- var28
;
1317 RET_LABEL30
:(void)0;
1321 CONTINUE_label
: (void)0;
1323 BREAK_label
: (void)0;
1326 { /* Inline kernel#Int#== (var_l,var36) on <var_l:Int> */
1327 var40
= var_l
== var36
;
1330 RET_LABEL39
:(void)0;
1340 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1349 { /* Inline string#FlatString#chars (self) on <self:String> */
1350 var47
= self
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <self:String> */
1351 if (unlikely(var47
== NULL
)) {
1352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1353 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
1357 RET_LABEL46
:(void)0;
1362 var50
= BOX_kernel__Char(var48
); /* autobox from Char to nullable Object */
1363 var49
= ((long (*)(val
*, val
*, long))(var45
->class->vft
[COLOR_abstract_collection__SequenceRead__last_index_of_from
]))(var45
, var50
, var_l
) /* last_index_of_from on <var45:SequenceRead[Char]>*/;
1369 { /* Inline kernel#Int#>= (var_pos,var51) on <var_pos:Int> */
1370 /* Covariant cast for argument 0 (i) <var51:Int> isa OTHER */
1371 /* <var51:Int> isa OTHER */
1372 var54
= 1; /* easy <var51:Int> isa OTHER*/
1373 if (unlikely(!var54
)) {
1374 var_class_name57
= type_kernel__Int
.name
;
1375 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57
);
1376 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
1379 var58
= var_pos
>= var51
;
1382 RET_LABEL53
:(void)0;
1388 { /* Inline kernel#Int#+ (var_pos,var59) on <var_pos:Int> */
1389 /* Covariant cast for argument 0 (i) <var59:Int> isa OTHER */
1390 /* <var59:Int> isa OTHER */
1391 var62
= 1; /* easy <var59:Int> isa OTHER*/
1392 if (unlikely(!var62
)) {
1393 var_class_name65
= type_kernel__Int
.name
;
1394 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65
);
1395 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1398 var66
= var_pos
+ var59
;
1401 RET_LABEL61
:(void)0;
1405 { /* Inline kernel#Int#- (var_l,var_pos) on <var_l:Int> */
1406 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1407 /* <var_pos:Int> isa OTHER */
1408 var69
= 1; /* easy <var_pos:Int> isa OTHER*/
1409 if (unlikely(!var69
)) {
1410 var_class_name72
= type_kernel__Int
.name
;
1411 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72
);
1412 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1415 var73
= var_l
- var_pos
;
1418 RET_LABEL68
:(void)0;
1422 var74
= string__FlatString__substring(self
, var60
, var67
);
1428 var75
= file__String__strip_extension(var_n
, var_ext
);
1435 /* method file#String#basename for (self: Object, String): String */
1436 val
* VIRTUAL_file__String__basename(val
* self
, val
* p0
) {
1437 val
* var
/* : String */;
1438 val
* var1
/* : String */;
1439 var1
= file__String__basename(self
, p0
);
1444 /* method file#String#dirname for (self: String): String */
1445 val
* file__String__dirname(val
* self
) {
1446 val
* var
/* : String */;
1447 long var1
/* : Int */;
1448 long var3
/* : Int */;
1449 long var4
/* : Int */;
1450 long var5
/* : Int */;
1451 short int var7
/* : Bool */;
1454 const char* var_class_name
;
1455 long var8
/* : Int */;
1456 long var_l
/* var l: Int */;
1457 short int var9
/* : Bool */;
1458 long var10
/* : Int */;
1459 short int var11
/* : Bool */;
1460 short int var13
/* : Bool */;
1463 const char* var_class_name16
;
1464 short int var17
/* : Bool */;
1465 short int var_
/* var : Bool */;
1466 val
* var18
/* : SequenceRead[Char] */;
1467 val
* var20
/* : SequenceRead[Char] */;
1468 val
* var21
/* : nullable Object */;
1469 char var22
/* : Char */;
1470 short int var23
/* : Bool */;
1471 short int var24
/* : Bool */;
1472 short int var26
/* : Bool */;
1473 char var27
/* : Char */;
1474 long var28
/* : Int */;
1475 long var29
/* : Int */;
1476 short int var31
/* : Bool */;
1479 const char* var_class_name34
;
1480 long var35
/* : Int */;
1481 val
* var36
/* : SequenceRead[Char] */;
1482 val
* var38
/* : SequenceRead[Char] */;
1483 char var39
/* : Char */;
1484 long var40
/* : Int */;
1485 val
* var41
/* : nullable Object */;
1486 long var_pos
/* var pos: Int */;
1487 long var42
/* : Int */;
1488 short int var43
/* : Bool */;
1489 short int var45
/* : Bool */;
1492 const char* var_class_name48
;
1493 short int var49
/* : Bool */;
1494 long var50
/* : Int */;
1495 val
* var51
/* : String */;
1496 long var52
/* : Int */;
1497 short int var53
/* : Bool */;
1498 short int var54
/* : Bool */;
1499 short int var56
/* : Bool */;
1500 static val
* varonce
;
1501 val
* var57
/* : String */;
1502 char* var58
/* : NativeString */;
1503 long var59
/* : Int */;
1504 val
* var60
/* : FlatString */;
1505 static val
* varonce61
;
1506 val
* var62
/* : String */;
1507 char* var63
/* : NativeString */;
1508 long var64
/* : Int */;
1509 val
* var65
/* : FlatString */;
1511 { /* Inline string#FlatText#length (self) on <self:String> */
1512 var3
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:String> */
1519 { /* Inline kernel#Int#- (var1,var4) on <var1:Int> */
1520 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1521 /* <var4:Int> isa OTHER */
1522 var7
= 1; /* easy <var4:Int> isa OTHER*/
1523 if (unlikely(!var7
)) {
1524 var_class_name
= type_kernel__Int
.name
;
1525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1526 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1539 { /* Inline kernel#Int#> (var_l,var10) on <var_l:Int> */
1540 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
1541 /* <var10:Int> isa OTHER */
1542 var13
= 1; /* easy <var10:Int> isa OTHER*/
1543 if (unlikely(!var13
)) {
1544 var_class_name16
= type_kernel__Int
.name
;
1545 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16
);
1546 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1549 var17
= var_l
> var10
;
1552 RET_LABEL12
:(void)0;
1558 { /* Inline string#FlatString#chars (self) on <self:String> */
1559 var20
= self
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <self:String> */
1560 if (unlikely(var20
== NULL
)) {
1561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1562 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
1566 RET_LABEL19
:(void)0;
1570 var21
= ((val
* (*)(val
*, long))(var18
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var18
, var_l
) /* [] on <var18:SequenceRead[Char]>*/;
1574 { /* Inline kernel#Char#== (var21,var22) on <var21:nullable Object(Char)> */
1575 var26
= (var21
!= NULL
) && (var21
->class == &class_kernel__Char
);
1577 var27
= ((struct instance_kernel__Char
*)var21
)->value
; /* autounbox from nullable Object to Char */;
1578 var26
= (var27
== var22
);
1582 RET_LABEL25
:(void)0;
1593 { /* Inline kernel#Int#- (var_l,var28) on <var_l:Int> */
1594 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
1595 /* <var28:Int> isa OTHER */
1596 var31
= 1; /* easy <var28:Int> isa OTHER*/
1597 if (unlikely(!var31
)) {
1598 var_class_name34
= type_kernel__Int
.name
;
1599 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
1600 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1603 var35
= var_l
- var28
;
1606 RET_LABEL30
:(void)0;
1610 CONTINUE_label
: (void)0;
1612 BREAK_label
: (void)0;
1614 { /* Inline string#FlatString#chars (self) on <self:String> */
1615 var38
= self
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <self:String> */
1616 if (unlikely(var38
== NULL
)) {
1617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1618 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
1622 RET_LABEL37
:(void)0;
1627 var41
= BOX_kernel__Char(var39
); /* autobox from Char to nullable Object */
1628 var40
= ((long (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_abstract_collection__SequenceRead__last_index_of_from
]))(var36
, var41
, var_l
) /* last_index_of_from on <var36:SequenceRead[Char]>*/;
1633 { /* Inline kernel#Int#> (var_pos,var42) on <var_pos:Int> */
1634 /* Covariant cast for argument 0 (i) <var42:Int> isa OTHER */
1635 /* <var42:Int> isa OTHER */
1636 var45
= 1; /* easy <var42:Int> isa OTHER*/
1637 if (unlikely(!var45
)) {
1638 var_class_name48
= type_kernel__Int
.name
;
1639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48
);
1640 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1643 var49
= var_pos
> var42
;
1646 RET_LABEL44
:(void)0;
1652 var51
= string__FlatString__substring(self
, var50
, var_pos
);
1659 { /* Inline kernel#Int#== (var_pos,var52) on <var_pos:Int> */
1660 var56
= var_pos
== var52
;
1663 RET_LABEL55
:(void)0;
1673 var60
= string__NativeString__to_s_with_length(var58
, var59
);
1685 var65
= string__NativeString__to_s_with_length(var63
, var64
);
1696 /* method file#String#dirname for (self: Object): String */
1697 val
* VIRTUAL_file__String__dirname(val
* self
) {
1698 val
* var
/* : String */;
1699 val
* var1
/* : String */;
1700 var1
= file__String__dirname(self
);
1705 /* method file#String#realpath for (self: String): String */
1706 val
* file__String__realpath(val
* self
) {
1707 val
* var
/* : String */;
1708 char* var1
/* : NativeString */;
1709 char* var2
/* : NativeString */;
1710 char* var4
/* : NativeString */;
1711 char* var_cs
/* var cs: NativeString */;
1712 val
* var5
/* : FlatString */;
1713 val
* var_res
/* var res: FlatString */;
1715 var1
= string__FlatString__to_cstring(self
);
1718 { /* Inline file#NativeString#file_realpath (var1) on <var1:NativeString> */
1719 var4
= file_NativeString_realpath(var1
);
1727 var5
= string__NativeString__to_s_with_copy(var_cs
);
1735 /* method file#String#realpath for (self: Object): String */
1736 val
* VIRTUAL_file__String__realpath(val
* self
) {
1737 val
* var
/* : String */;
1738 val
* var1
/* : String */;
1739 var1
= file__String__realpath(self
);
1744 /* method file#String#simplify_path for (self: String): String */
1745 val
* file__String__simplify_path(val
* self
) {
1746 val
* var
/* : String */;
1747 static val
* varonce
;
1748 val
* var1
/* : String */;
1749 char* var2
/* : NativeString */;
1750 long var3
/* : Int */;
1751 val
* var4
/* : FlatString */;
1752 val
* var5
/* : Array[Text] */;
1753 val
* var_a
/* var a: Array[String] */;
1754 val
* var6
/* : Array[String] */;
1755 val
* var_a2
/* var a2: Array[String] */;
1756 val
* var7
/* : ArrayIterator[nullable Object] */;
1757 short int var8
/* : Bool */;
1758 val
* var9
/* : nullable Object */;
1759 val
* var_x
/* var x: String */;
1760 static val
* varonce10
;
1761 val
* var11
/* : String */;
1762 char* var12
/* : NativeString */;
1763 long var13
/* : Int */;
1764 val
* var14
/* : FlatString */;
1765 short int var15
/* : Bool */;
1766 short int var16
/* : Bool */;
1767 short int var17
/* : Bool */;
1768 static val
* varonce18
;
1769 val
* var19
/* : String */;
1770 char* var20
/* : NativeString */;
1771 long var21
/* : Int */;
1772 val
* var22
/* : FlatString */;
1773 short int var23
/* : Bool */;
1774 short int var24
/* : Bool */;
1775 short int var_
/* var : Bool */;
1776 short int var25
/* : Bool */;
1777 short int var26
/* : Bool */;
1778 short int var27
/* : Bool */;
1779 short int var28
/* : Bool */;
1780 static val
* varonce29
;
1781 val
* var30
/* : String */;
1782 char* var31
/* : NativeString */;
1783 long var32
/* : Int */;
1784 val
* var33
/* : FlatString */;
1785 short int var34
/* : Bool */;
1786 short int var35
/* : Bool */;
1787 short int var_36
/* var : Bool */;
1788 short int var37
/* : Bool */;
1789 short int var38
/* : Bool */;
1790 short int var_39
/* var : Bool */;
1791 val
* var40
/* : nullable Object */;
1792 static val
* varonce41
;
1793 val
* var42
/* : String */;
1794 char* var43
/* : NativeString */;
1795 long var44
/* : Int */;
1796 val
* var45
/* : FlatString */;
1797 short int var46
/* : Bool */;
1798 short int var47
/* : Bool */;
1799 val
* var_other
/* var other: nullable Object */;
1800 short int var49
/* : Bool */;
1801 short int var50
/* : Bool */;
1802 short int var51
/* : Bool */;
1803 val
* var52
/* : nullable Object */;
1804 short int var53
/* : Bool */;
1805 static val
* varonce54
;
1806 val
* var55
/* : String */;
1807 char* var56
/* : NativeString */;
1808 long var57
/* : Int */;
1809 val
* var58
/* : FlatString */;
1810 short int var59
/* : Bool */;
1811 long var60
/* : Int */;
1812 long var61
/* : Int */;
1813 short int var62
/* : Bool */;
1814 short int var63
/* : Bool */;
1815 short int var65
/* : Bool */;
1816 short int var_66
/* var : Bool */;
1817 val
* var67
/* : nullable Object */;
1818 static val
* varonce68
;
1819 val
* var69
/* : String */;
1820 char* var70
/* : NativeString */;
1821 long var71
/* : Int */;
1822 val
* var72
/* : FlatString */;
1823 short int var73
/* : Bool */;
1824 short int var74
/* : Bool */;
1825 static val
* varonce75
;
1826 val
* var76
/* : String */;
1827 char* var77
/* : NativeString */;
1828 long var78
/* : Int */;
1829 val
* var79
/* : FlatString */;
1830 static val
* varonce80
;
1831 val
* var81
/* : String */;
1832 char* var82
/* : NativeString */;
1833 long var83
/* : Int */;
1834 val
* var84
/* : FlatString */;
1835 val
* var85
/* : String */;
1841 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1846 var5
= string_search__Text__split_with(self
, var1
);
1849 var6
= NEW_array__Array(&type_array__Arraystring__String
);
1851 array__Array__init(var6
); /* Direct call array#Array#init on <var6:Array[String]>*/
1855 var7
= array__AbstractArrayRead__iterator(var_a
);
1859 var8
= array__ArrayIterator__is_ok(var7
);
1863 var9
= array__ArrayIterator__item(var7
);
1871 var14
= string__NativeString__to_s_with_length(var12
, var13
);
1876 var16
= string__FlatString___61d_61d(var_x
, var11
);
1880 goto CONTINUE_label
;
1888 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1893 var24
= string__FlatString___61d_61d(var_x
, var19
);
1899 var25
= array__AbstractArrayRead__is_empty(var_a2
);
1907 goto CONTINUE_label
;
1915 var33
= string__NativeString__to_s_with_length(var31
, var32
);
1920 var35
= string__FlatString___61d_61d(var_x
, var30
);
1926 var37
= array__AbstractArrayRead__is_empty(var_a2
);
1936 var40
= abstract_collection__SequenceRead__last(var_a2
);
1943 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1948 { /* Inline kernel#Object#!= (var40,var42) on <var40:nullable Object(String)> */
1951 var50
= ((short int (*)(val
*, val
*))(var40
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var40
, var_other
) /* == on <var40:nullable Object(String)>*/;
1957 RET_LABEL48
:(void)0;
1967 var52
= array__AbstractArray__pop(var_a2
);
1970 goto CONTINUE_label
;
1974 array__AbstractArray__push(var_a2
, var_x
); /* Direct call array#AbstractArray#push on <var_a2:Array[String]>*/
1976 CONTINUE_label
: (void)0;
1978 array__ArrayIterator__next(var7
); /* Direct call array#ArrayIterator#next on <var7:ArrayIterator[nullable Object]>*/
1981 BREAK_label
: (void)0;
1983 var53
= array__AbstractArrayRead__is_empty(var_a2
);
1991 var58
= string__NativeString__to_s_with_length(var56
, var57
);
2000 var60
= array__AbstractArrayRead__length(var_a2
);
2004 { /* Inline kernel#Int#== (var60,var61) on <var60:Int> */
2005 var65
= var60
== var61
;
2008 RET_LABEL64
:(void)0;
2015 var67
= abstract_collection__SequenceRead__first(var_a2
);
2022 var72
= string__NativeString__to_s_with_length(var70
, var71
);
2027 var74
= string__FlatString___61d_61d(var67
, var69
);
2040 var79
= string__NativeString__to_s_with_length(var77
, var78
);
2053 var84
= string__NativeString__to_s_with_length(var82
, var83
);
2058 var85
= string__Collection__join(var_a2
, var81
);
2065 /* method file#String#simplify_path for (self: Object): String */
2066 val
* VIRTUAL_file__String__simplify_path(val
* self
) {
2067 val
* var
/* : String */;
2068 val
* var1
/* : String */;
2069 var1
= file__String__simplify_path(self
);
2074 /* method file#String#join_path for (self: String, String): String */
2075 val
* file__String__join_path(val
* self
, val
* p0
) {
2076 val
* var
/* : String */;
2077 val
* var_path
/* var path: String */;
2078 short int var1
/* : Bool */;
2079 short int var2
/* : Bool */;
2080 val
* var3
/* : SequenceRead[Char] */;
2081 val
* var5
/* : SequenceRead[Char] */;
2082 long var6
/* : Int */;
2083 val
* var7
/* : nullable Object */;
2084 char var8
/* : Char */;
2085 short int var9
/* : Bool */;
2086 short int var10
/* : Bool */;
2087 short int var12
/* : Bool */;
2088 char var13
/* : Char */;
2089 static val
* varonce
;
2090 val
* var14
/* : String */;
2091 char* var15
/* : NativeString */;
2092 long var16
/* : Int */;
2093 val
* var17
/* : FlatString */;
2094 val
* var18
/* : Array[Object] */;
2095 long var19
/* : Int */;
2096 val
* var20
/* : NativeArray[Object] */;
2097 val
* var21
/* : String */;
2100 var1
= string__Text__is_empty(var_path
);
2108 var2
= string__Text__is_empty(self
);
2116 { /* Inline string#FlatString#chars (var_path) on <var_path:String> */
2117 var5
= var_path
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <var_path:String> */
2118 if (unlikely(var5
== NULL
)) {
2119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2120 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
2129 var7
= ((val
* (*)(val
*, long))(var3
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var3
, var6
) /* [] on <var3:SequenceRead[Char]>*/;
2133 { /* Inline kernel#Char#== (var7,var8) on <var7:nullable Object(Char)> */
2134 var12
= (var7
!= NULL
) && (var7
->class == &class_kernel__Char
);
2136 var13
= ((struct instance_kernel__Char
*)var7
)->value
; /* autounbox from nullable Object to Char */;
2137 var12
= (var13
== var8
);
2141 RET_LABEL11
:(void)0;
2155 var17
= string__NativeString__to_s_with_length(var15
, var16
);
2159 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
2160 { /* var18 = array_instance Array[Object] */
2162 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
2163 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) self
;
2164 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var14
;
2165 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var_path
;
2167 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
2171 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
2178 /* method file#String#join_path for (self: Object, String): String */
2179 val
* VIRTUAL_file__String__join_path(val
* self
, val
* p0
) {
2180 val
* var
/* : String */;
2181 val
* var1
/* : String */;
2182 var1
= file__String__join_path(self
, p0
);
2187 /* method file#String#mkdir for (self: String) */
2188 void file__String__mkdir(val
* self
) {
2189 static val
* varonce
;
2190 val
* var
/* : String */;
2191 char* var1
/* : NativeString */;
2192 long var2
/* : Int */;
2193 val
* var3
/* : FlatString */;
2194 val
* var4
/* : Array[Text] */;
2195 val
* var_dirs
/* var dirs: Array[String] */;
2196 val
* var5
/* : FlatBuffer */;
2197 val
* var_path
/* var path: FlatBuffer */;
2198 short int var6
/* : Bool */;
2199 long var7
/* : Int */;
2200 val
* var8
/* : nullable Object */;
2201 short int var9
/* : Bool */;
2202 char var10
/* : Char */;
2203 val
* var11
/* : ArrayIterator[nullable Object] */;
2204 short int var12
/* : Bool */;
2205 val
* var13
/* : nullable Object */;
2206 val
* var_d
/* var d: String */;
2207 short int var14
/* : Bool */;
2208 char var15
/* : Char */;
2209 val
* var16
/* : String */;
2210 char* var17
/* : NativeString */;
2211 short int var18
/* : Bool */;
2212 short int var20
/* : Bool */;
2218 var3
= string__NativeString__to_s_with_length(var1
, var2
);
2223 var4
= string_search__Text__split_with(self
, var
);
2226 var5
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
2228 string__FlatBuffer__init(var5
); /* Direct call string#FlatBuffer#init on <var5:FlatBuffer>*/
2232 var6
= array__AbstractArrayRead__is_empty(var_dirs
);
2240 var8
= array__Array___91d_93d(var_dirs
, var7
);
2243 var9
= string__Text__is_empty(var8
);
2248 string__FlatBuffer__add(var_path
, var10
); /* Direct call string#FlatBuffer#add on <var_path:FlatBuffer>*/
2253 var11
= array__AbstractArrayRead__iterator(var_dirs
);
2257 var12
= array__ArrayIterator__is_ok(var11
);
2261 var13
= array__ArrayIterator__item(var11
);
2265 var14
= string__Text__is_empty(var_d
);
2268 goto CONTINUE_label
;
2272 string__FlatBuffer__append(var_path
, var_d
); /* Direct call string#FlatBuffer#append on <var_path:FlatBuffer>*/
2276 string__FlatBuffer__add(var_path
, var15
); /* Direct call string#FlatBuffer#add on <var_path:FlatBuffer>*/
2279 var16
= string__FlatBuffer__to_s(var_path
);
2282 var17
= string__FlatString__to_cstring(var16
);
2285 { /* Inline file#NativeString#file_mkdir (var17) on <var17:NativeString> */
2286 var20
= string_NativeString_NativeString_file_mkdir_0(var17
);
2289 RET_LABEL19
:(void)0;
2293 CONTINUE_label
: (void)0;
2295 array__ArrayIterator__next(var11
); /* Direct call array#ArrayIterator#next on <var11:ArrayIterator[nullable Object]>*/
2298 BREAK_label
: (void)0;
2301 /* method file#String#mkdir for (self: Object) */
2302 void VIRTUAL_file__String__mkdir(val
* self
) {
2303 file__String__mkdir(self
); /* Direct call file#String#mkdir on <self:Object(String)>*/
2306 /* method file#String#file_extension for (self: String): nullable String */
2307 val
* file__String__file_extension(val
* self
) {
2308 val
* var
/* : nullable String */;
2309 val
* var1
/* : SequenceRead[Char] */;
2310 val
* var3
/* : SequenceRead[Char] */;
2311 char var4
/* : Char */;
2312 long var5
/* : Int */;
2313 val
* var6
/* : nullable Object */;
2314 long var_last_slash
/* var last_slash: Int */;
2315 long var7
/* : Int */;
2316 short int var8
/* : Bool */;
2317 short int var10
/* : Bool */;
2320 const char* var_class_name
;
2321 short int var11
/* : Bool */;
2322 long var12
/* : Int */;
2323 long var13
/* : Int */;
2324 short int var15
/* : Bool */;
2327 const char* var_class_name18
;
2328 long var19
/* : Int */;
2329 long var20
/* : Int */;
2330 long var22
/* : Int */;
2331 val
* var23
/* : String */;
2332 val
* var24
/* : null */;
2334 { /* Inline string#FlatString#chars (self) on <self:String> */
2335 var3
= self
->attrs
[COLOR_string__FlatString___chars
].val
; /* _chars on <self:String> */
2336 if (unlikely(var3
== NULL
)) {
2337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2338 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
2347 var6
= BOX_kernel__Char(var4
); /* autobox from Char to nullable Object */
2348 var5
= ((long (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__SequenceRead__last_index_of
]))(var1
, var6
) /* last_index_of on <var1:SequenceRead[Char]>*/;
2350 var_last_slash
= var5
;
2353 { /* Inline kernel#Int#> (var_last_slash,var7) on <var_last_slash:Int> */
2354 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
2355 /* <var7:Int> isa OTHER */
2356 var10
= 1; /* easy <var7:Int> isa OTHER*/
2357 if (unlikely(!var10
)) {
2358 var_class_name
= type_kernel__Int
.name
;
2359 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2360 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
2363 var11
= var_last_slash
> var7
;
2372 { /* Inline kernel#Int#+ (var_last_slash,var12) on <var_last_slash:Int> */
2373 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
2374 /* <var12:Int> isa OTHER */
2375 var15
= 1; /* easy <var12:Int> isa OTHER*/
2376 if (unlikely(!var15
)) {
2377 var_class_name18
= type_kernel__Int
.name
;
2378 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18
);
2379 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2382 var19
= var_last_slash
+ var12
;
2385 RET_LABEL14
:(void)0;
2389 { /* Inline string#FlatText#length (self) on <self:String> */
2390 var22
= self
->attrs
[COLOR_string__FlatText___length
].l
; /* _length on <self:String> */
2392 RET_LABEL21
:(void)0;
2396 var23
= string__FlatString__substring(self
, var13
, var20
);
2408 /* method file#String#file_extension for (self: Object): nullable String */
2409 val
* VIRTUAL_file__String__file_extension(val
* self
) {
2410 val
* var
/* : nullable String */;
2411 val
* var1
/* : nullable String */;
2412 var1
= file__String__file_extension(self
);
2417 /* method file#NativeString#file_exists for (self: NativeString): Bool */
2418 short int file__NativeString__file_exists(char* self
) {
2419 short int var
/* : Bool */;
2420 short int var1
/* : Bool */;
2421 var1
= string_NativeString_NativeString_file_exists_0(self
);
2427 /* method file#NativeString#file_exists for (self: Object): Bool */
2428 short int VIRTUAL_file__NativeString__file_exists(val
* self
) {
2429 short int var
/* : Bool */;
2430 short int var1
/* : Bool */;
2431 short int var3
/* : Bool */;
2432 char* var4
/* : NativeString */;
2433 { /* Inline file#NativeString#file_exists (self) on <self:Object(NativeString)> */
2434 var4
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeString */;
2435 var3
= string_NativeString_NativeString_file_exists_0(var4
);
2444 /* method file#NativeString#file_mkdir for (self: NativeString): Bool */
2445 short int file__NativeString__file_mkdir(char* self
) {
2446 short int var
/* : Bool */;
2447 short int var1
/* : Bool */;
2448 var1
= string_NativeString_NativeString_file_mkdir_0(self
);
2454 /* method file#NativeString#file_mkdir for (self: Object): Bool */
2455 short int VIRTUAL_file__NativeString__file_mkdir(val
* self
) {
2456 short int var
/* : Bool */;
2457 short int var1
/* : Bool */;
2458 short int var3
/* : Bool */;
2459 char* var4
/* : NativeString */;
2460 { /* Inline file#NativeString#file_mkdir (self) on <self:Object(NativeString)> */
2461 var4
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeString */;
2462 var3
= string_NativeString_NativeString_file_mkdir_0(var4
);
2471 /* method file#NativeString#file_realpath for (self: NativeString): NativeString */
2472 char* file__NativeString__file_realpath(char* self
) {
2473 char* var
/* : NativeString */;
2474 char* var1
/* : NativeString */;
2475 var1
= file_NativeString_realpath(self
);
2481 /* method file#NativeString#file_realpath for (self: Object): NativeString */
2482 char* VIRTUAL_file__NativeString__file_realpath(val
* self
) {
2483 char* var
/* : NativeString */;
2484 char* var1
/* : NativeString */;
2485 char* var3
/* : NativeString */;
2486 char* var4
/* : NativeString */;
2487 { /* Inline file#NativeString#file_realpath (self) on <self:Object(NativeString)> */
2488 var4
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeString */;
2489 var3
= file_NativeString_realpath(var4
);
2498 /* method file#NativeFile#io_read for (self: NativeFile, NativeString, Int): Int */
2499 long file__NativeFile__io_read(void* self
, char* p0
, long p1
) {
2500 long var
/* : Int */;
2501 long var1
/* : Int */;
2502 var1
= file_NativeFile_NativeFile_io_read_2(self
, p0
, p1
);
2508 /* method file#NativeFile#io_read for (self: Object, NativeString, Int): Int */
2509 long VIRTUAL_file__NativeFile__io_read(val
* self
, char* p0
, long p1
) {
2510 long var
/* : Int */;
2511 long var1
/* : Int */;
2512 long var3
/* : Int */;
2513 void* var4
/* : NativeFile */;
2514 { /* Inline file#NativeFile#io_read (self,p0,p1) on <self:Object(NativeFile)> */
2515 var4
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2516 var3
= file_NativeFile_NativeFile_io_read_2(var4
, p0
, p1
);
2525 /* method file#NativeFile#io_write for (self: NativeFile, NativeString, Int): Int */
2526 long file__NativeFile__io_write(void* self
, char* p0
, long p1
) {
2527 long var
/* : Int */;
2528 long var1
/* : Int */;
2529 var1
= file_NativeFile_NativeFile_io_write_2(self
, p0
, p1
);
2535 /* method file#NativeFile#io_write for (self: Object, NativeString, Int): Int */
2536 long VIRTUAL_file__NativeFile__io_write(val
* self
, char* p0
, long p1
) {
2537 long var
/* : Int */;
2538 long var1
/* : Int */;
2539 long var3
/* : Int */;
2540 void* var4
/* : NativeFile */;
2541 { /* Inline file#NativeFile#io_write (self,p0,p1) on <self:Object(NativeFile)> */
2542 var4
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2543 var3
= file_NativeFile_NativeFile_io_write_2(var4
, p0
, p1
);
2552 /* method file#NativeFile#io_close for (self: NativeFile): Int */
2553 long file__NativeFile__io_close(void* self
) {
2554 long var
/* : Int */;
2555 long var1
/* : Int */;
2556 var1
= file_NativeFile_NativeFile_io_close_0(self
);
2562 /* method file#NativeFile#io_close for (self: Object): Int */
2563 long VIRTUAL_file__NativeFile__io_close(val
* self
) {
2564 long var
/* : Int */;
2565 long var1
/* : Int */;
2566 long var3
/* : Int */;
2567 void* var4
/* : NativeFile */;
2568 { /* Inline file#NativeFile#io_close (self) on <self:Object(NativeFile)> */
2569 var4
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2570 var3
= file_NativeFile_NativeFile_io_close_0(var4
);
2579 /* method file#NativeFile#io_open_read for (self: NativeFile, NativeString): NativeFile */
2580 void* file__NativeFile__io_open_read(void* self
, char* p0
) {
2581 void* var
/* : NativeFile */;
2582 void* var1
/* : NativeFile */;
2583 var1
= file_NativeFileCapable_NativeFileCapable_io_open_read_1(p0
);
2589 /* method file#NativeFile#io_open_read for (self: Object, NativeString): NativeFile */
2590 void* VIRTUAL_file__NativeFile__io_open_read(val
* self
, char* p0
) {
2591 void* var
/* : NativeFile */;
2592 val
* var1
/* : Object */;
2593 void* var3
/* : NativeFile */;
2594 void* var4
/* : NativeFile */;
2595 val
* var5
/* : Object */;
2596 void* var6
/* : NativeFile */;
2597 { /* Inline file#NativeFile#io_open_read (self,p0) on <self:Object(NativeFile)> */
2598 var3
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2599 var4
= file_NativeFileCapable_NativeFileCapable_io_open_read_1(p0
);
2600 var5
= BOX_file__NativeFile(var4
); /* autobox from NativeFile to Object */
2605 var6
= ((struct instance_kernel__Pointer
*)var1
)->value
; /* autounbox from Object to NativeFile */;
2610 /* method file#NativeFile#io_open_write for (self: NativeFile, NativeString): NativeFile */
2611 void* file__NativeFile__io_open_write(void* self
, char* p0
) {
2612 void* var
/* : NativeFile */;
2613 void* var1
/* : NativeFile */;
2614 var1
= file_NativeFileCapable_NativeFileCapable_io_open_write_1(p0
);
2620 /* method file#NativeFile#io_open_write for (self: Object, NativeString): NativeFile */
2621 void* VIRTUAL_file__NativeFile__io_open_write(val
* self
, char* p0
) {
2622 void* var
/* : NativeFile */;
2623 val
* var1
/* : Object */;
2624 void* var3
/* : NativeFile */;
2625 void* var4
/* : NativeFile */;
2626 val
* var5
/* : Object */;
2627 void* var6
/* : NativeFile */;
2628 { /* Inline file#NativeFile#io_open_write (self,p0) on <self:Object(NativeFile)> */
2629 var3
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2630 var4
= file_NativeFileCapable_NativeFileCapable_io_open_write_1(p0
);
2631 var5
= BOX_file__NativeFile(var4
); /* autobox from NativeFile to Object */
2636 var6
= ((struct instance_kernel__Pointer
*)var1
)->value
; /* autounbox from Object to NativeFile */;
2641 /* method file#NativeFile#native_stdin for (self: NativeFile): NativeFile */
2642 void* file__NativeFile__native_stdin(void* self
) {
2643 void* var
/* : NativeFile */;
2644 void* var1
/* : NativeFile */;
2645 var1
= file_NativeFileCapable_NativeFileCapable_native_stdin_0();
2651 /* method file#NativeFile#native_stdin for (self: Object): NativeFile */
2652 void* VIRTUAL_file__NativeFile__native_stdin(val
* self
) {
2653 void* var
/* : NativeFile */;
2654 val
* var1
/* : Object */;
2655 void* var3
/* : NativeFile */;
2656 void* var4
/* : NativeFile */;
2657 val
* var5
/* : Object */;
2658 void* var6
/* : NativeFile */;
2659 { /* Inline file#NativeFile#native_stdin (self) on <self:Object(NativeFile)> */
2660 var3
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2661 var4
= file_NativeFileCapable_NativeFileCapable_native_stdin_0();
2662 var5
= BOX_file__NativeFile(var4
); /* autobox from NativeFile to Object */
2667 var6
= ((struct instance_kernel__Pointer
*)var1
)->value
; /* autounbox from Object to NativeFile */;
2672 /* method file#NativeFile#native_stdout for (self: NativeFile): NativeFile */
2673 void* file__NativeFile__native_stdout(void* self
) {
2674 void* var
/* : NativeFile */;
2675 void* var1
/* : NativeFile */;
2676 var1
= file_NativeFileCapable_NativeFileCapable_native_stdout_0();
2682 /* method file#NativeFile#native_stdout for (self: Object): NativeFile */
2683 void* VIRTUAL_file__NativeFile__native_stdout(val
* self
) {
2684 void* var
/* : NativeFile */;
2685 val
* var1
/* : Object */;
2686 void* var3
/* : NativeFile */;
2687 void* var4
/* : NativeFile */;
2688 val
* var5
/* : Object */;
2689 void* var6
/* : NativeFile */;
2690 { /* Inline file#NativeFile#native_stdout (self) on <self:Object(NativeFile)> */
2691 var3
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2692 var4
= file_NativeFileCapable_NativeFileCapable_native_stdout_0();
2693 var5
= BOX_file__NativeFile(var4
); /* autobox from NativeFile to Object */
2698 var6
= ((struct instance_kernel__Pointer
*)var1
)->value
; /* autounbox from Object to NativeFile */;
2703 /* method file#NativeFile#native_stderr for (self: NativeFile): NativeFile */
2704 void* file__NativeFile__native_stderr(void* self
) {
2705 void* var
/* : NativeFile */;
2706 void* var1
/* : NativeFile */;
2707 var1
= file_NativeFileCapable_NativeFileCapable_native_stderr_0();
2713 /* method file#NativeFile#native_stderr for (self: Object): NativeFile */
2714 void* VIRTUAL_file__NativeFile__native_stderr(val
* self
) {
2715 void* var
/* : NativeFile */;
2716 val
* var1
/* : Object */;
2717 void* var3
/* : NativeFile */;
2718 void* var4
/* : NativeFile */;
2719 val
* var5
/* : Object */;
2720 void* var6
/* : NativeFile */;
2721 { /* Inline file#NativeFile#native_stderr (self) on <self:Object(NativeFile)> */
2722 var3
= ((struct instance_kernel__Pointer
*)self
)->value
; /* autounbox from Object to NativeFile */;
2723 var4
= file_NativeFileCapable_NativeFileCapable_native_stderr_0();
2724 var5
= BOX_file__NativeFile(var4
); /* autobox from NativeFile to Object */
2729 var6
= ((struct instance_kernel__Pointer
*)var1
)->value
; /* autounbox from Object to NativeFile */;
2734 /* method file#Sys#stdout for (self: Sys): OStream */
2735 val
* file__Sys__stdout(val
* self
) {
2736 val
* var
/* : OStream */;
2737 val
* var1
/* : OStream */;
2738 var1
= self
->attrs
[COLOR_file__Sys___stdout
].val
; /* _stdout on <self:Sys> */
2739 if (unlikely(var1
== NULL
)) {
2740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
2741 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 530);
2748 /* method file#Sys#stdout for (self: Object): OStream */
2749 val
* VIRTUAL_file__Sys__stdout(val
* self
) {
2750 val
* var
/* : OStream */;
2751 val
* var1
/* : OStream */;
2752 val
* var3
/* : OStream */;
2753 { /* Inline file#Sys#stdout (self) on <self:Object(Sys)> */
2754 var3
= self
->attrs
[COLOR_file__Sys___stdout
].val
; /* _stdout on <self:Object(Sys)> */
2755 if (unlikely(var3
== NULL
)) {
2756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
2757 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 530);
2767 /* method file#Sys#stderr for (self: Sys): OStream */
2768 val
* file__Sys__stderr(val
* self
) {
2769 val
* var
/* : OStream */;
2770 val
* var1
/* : OStream */;
2771 var1
= self
->attrs
[COLOR_file__Sys___stderr
].val
; /* _stderr on <self:Sys> */
2772 if (unlikely(var1
== NULL
)) {
2773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
2774 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 533);
2781 /* method file#Sys#stderr for (self: Object): OStream */
2782 val
* VIRTUAL_file__Sys__stderr(val
* self
) {
2783 val
* var
/* : OStream */;
2784 val
* var1
/* : OStream */;
2785 val
* var3
/* : OStream */;
2786 { /* Inline file#Sys#stderr (self) on <self:Object(Sys)> */
2787 var3
= self
->attrs
[COLOR_file__Sys___stderr
].val
; /* _stderr on <self:Object(Sys)> */
2788 if (unlikely(var3
== NULL
)) {
2789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
2790 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 533);
2800 /* method file#Object#printn for (self: Object, Array[Object]) */
2801 void file__Object__printn(val
* self
, val
* p0
) {
2802 val
* var_objects
/* var objects: Array[Object] */;
2803 val
* var
/* : Sys */;
2804 val
* var2
/* : Sys */;
2805 val
* var3
/* : OStream */;
2806 val
* var5
/* : OStream */;
2807 val
* var6
/* : String */;
2810 { /* Inline kernel#Object#sys (self) on <self:Object> */
2818 { /* Inline file#Sys#stdout (var) on <var:Sys> */
2819 var5
= var
->attrs
[COLOR_file__Sys___stdout
].val
; /* _stdout on <var:Sys> */
2820 if (unlikely(var5
== NULL
)) {
2821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
2822 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 530);
2830 var6
= string__Array__to_s(var_objects
);
2833 file__OFStream__write(var3
, var6
); /* Direct call file#OFStream#write on <var3:OStream>*/
2837 /* method file#Object#printn for (self: Object, Array[Object]) */
2838 void VIRTUAL_file__Object__printn(val
* self
, val
* p0
) {
2839 file__Object__printn(self
, p0
); /* Direct call file#Object#printn on <self:Object>*/
2842 /* method file#Object#print for (self: Object, Object) */
2843 void file__Object__print(val
* self
, val
* p0
) {
2844 val
* var_object
/* var object: Object */;
2845 val
* var
/* : Sys */;
2846 val
* var2
/* : Sys */;
2847 val
* var3
/* : OStream */;
2848 val
* var5
/* : OStream */;
2849 val
* var6
/* : String */;
2850 val
* var7
/* : Sys */;
2851 val
* var9
/* : Sys */;
2852 val
* var10
/* : OStream */;
2853 val
* var12
/* : OStream */;
2854 static val
* varonce
;
2855 val
* var13
/* : String */;
2856 char* var14
/* : NativeString */;
2857 long var15
/* : Int */;
2858 val
* var16
/* : FlatString */;
2861 { /* Inline kernel#Object#sys (self) on <self:Object> */
2869 { /* Inline file#Sys#stdout (var) on <var:Sys> */
2870 var5
= var
->attrs
[COLOR_file__Sys___stdout
].val
; /* _stdout on <var:Sys> */
2871 if (unlikely(var5
== NULL
)) {
2872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
2873 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 530);
2881 var6
= ((val
* (*)(val
*))(var_object
->class->vft
[COLOR_string__Object__to_s
]))(var_object
) /* to_s on <var_object:Object>*/;
2884 file__OFStream__write(var3
, var6
); /* Direct call file#OFStream#write on <var3:OStream>*/
2887 { /* Inline kernel#Object#sys (self) on <self:Object> */
2895 { /* Inline file#Sys#stdout (var7) on <var7:Sys> */
2896 var12
= var7
->attrs
[COLOR_file__Sys___stdout
].val
; /* _stdout on <var7:Sys> */
2897 if (unlikely(var12
== NULL
)) {
2898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
2899 PRINT_ERROR(" (%s:%d)\n", "lib/standard/file.nit", 530);
2903 RET_LABEL11
:(void)0;
2911 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2916 file__OFStream__write(var10
, var13
); /* Direct call file#OFStream#write on <var10:OStream>*/
2920 /* method file#Object#print for (self: Object, Object) */
2921 void VIRTUAL_file__Object__print(val
* self
, val
* p0
) {
2922 file__Object__print(self
, p0
); /* Direct call file#Object#print on <self:Object>*/
2925 /* method file#Object#getcwd for (self: Object): String */
2926 val
* file__Object__getcwd(val
* self
) {
2927 val
* var
/* : String */;
2928 char* var1
/* : NativeString */;
2929 char* var3
/* : NativeString */;
2930 val
* var4
/* : String */;
2932 { /* Inline file#Object#file_getcwd (self) on <self:Object> */
2933 var3
= string_NativeString_NativeString_file_getcwd_0(self
);
2940 var4
= string__NativeString__to_s(var1
);
2947 /* method file#Object#getcwd for (self: Object): String */
2948 val
* VIRTUAL_file__Object__getcwd(val
* self
) {
2949 val
* var
/* : String */;
2950 val
* var1
/* : String */;
2951 var1
= file__Object__getcwd(self
);
2956 /* method file#Object#file_getcwd for (self: Object): NativeString */
2957 char* file__Object__file_getcwd(val
* self
) {
2958 char* var
/* : NativeString */;
2959 char* var1
/* : NativeString */;
2960 var1
= string_NativeString_NativeString_file_getcwd_0(self
);
2966 /* method file#Object#file_getcwd for (self: Object): NativeString */
2967 char* VIRTUAL_file__Object__file_getcwd(val
* self
) {
2968 char* var
/* : NativeString */;
2969 char* var1
/* : NativeString */;
2970 char* var3
/* : NativeString */;
2971 { /* Inline file#Object#file_getcwd (self) on <self:Object> */
2972 var3
= string_NativeString_NativeString_file_getcwd_0(self
);