1 /* This C file is generated by NIT to compile module file. */
3 void file___Object___printn(val_t self
, val_t param0
) {
4 struct trace_t trace
= {NULL
, "file::Object::printn (bin/../lib/standard//file.nit:24,2--27:27)"};
8 trace
.prev
= tracehead
; tracehead
= &trace
;
9 /* check if p<Array[Object] with p:Object */
10 if (( param0
!=NIT_NULL
) && !VAL_ISA( param0
, COLOR_Array
, ID_Array
)) { fprintf(stderr
, "Cast failled at bin/../lib/standard//file.nit:25,24--41\n"); nit_exit(1); } /*cast Array[Object]*/;
12 variable1
= ((file___Object___stdout_t
)CALL( self
,COLOR_file___Object___stdout
))( self
) /*Object::stdout*/;
13 variable2
= ((string___Collection___to_s_t
)CALL( variable0
/*objects*/,COLOR_string___Object___to_s
))( variable0
/*objects*/) /*Array::to_s*/;
14 ((file___OFStream___write_t
)CALL(variable1
,COLOR_stream___OStream___write
))(variable1
, variable2
) /*OFStream::write*/;
15 tracehead
= trace
.prev
;
18 void file___Object___print(val_t self
, val_t param0
) {
19 struct trace_t trace
= {NULL
, "file::Object::print (bin/../lib/standard//file.nit:30,2--36:19)"};
23 trace
.prev
= tracehead
; tracehead
= &trace
;
25 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*object*/ == NIT_NULL
/*null*/) || (( variable0
/*object*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*object*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*object*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*object*/,COLOR_kernel___Object_____eqeq
))( variable0
/*object*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
26 if (UNTAG_Bool(variable1
)) { /*if*/
27 variable1
= ((file___Object___stdout_t
)CALL( self
,COLOR_file___Object___stdout
))( self
) /*Object::stdout*/;
28 variable2
= ((string___Object___to_s_t
)CALL( variable0
/*object*/,COLOR_string___Object___to_s
))( variable0
/*object*/) /*Object::to_s*/;
29 ((file___OFStream___write_t
)CALL(variable1
,COLOR_stream___OStream___write
))(variable1
, variable2
) /*OFStream::write*/;
31 variable1
= ((file___Object___stdout_t
)CALL( self
,COLOR_file___Object___stdout
))( self
) /*Object::stdout*/;
32 variable2
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
33 ((file___OFStream___write_t
)CALL(variable1
,COLOR_stream___OStream___write
))(variable1
, variable2
) /*OFStream::write*/;
34 tracehead
= trace
.prev
;
37 val_t
file___Object___getc(val_t self
) {
38 struct trace_t trace
= {NULL
, "file::Object::getc (bin/../lib/standard//file.nit:39,2--42:30)"};
40 trace
.prev
= tracehead
; tracehead
= &trace
;
41 variable0
= ((file___Object___stdin_t
)CALL( self
,COLOR_file___Object___stdin
))( self
) /*Object::stdin*/;
42 variable0
= ((stream___BufferedIStream___read_char_t
)CALL(variable0
,COLOR_stream___IStream___read_char
))(variable0
) /*IFStream::read_char*/;
43 variable0
= TAG_Char(UNTAG_Int(variable0
));
45 return_label2
: while(false);
46 tracehead
= trace
.prev
;
49 val_t
file___Object___gets(val_t self
) {
50 struct trace_t trace
= {NULL
, "file::Object::gets (bin/../lib/standard//file.nit:45,2--48:24)"};
52 trace
.prev
= tracehead
; tracehead
= &trace
;
53 variable0
= ((file___Object___stdin_t
)CALL( self
,COLOR_file___Object___stdin
))( self
) /*Object::stdin*/;
54 variable0
= ((stream___IStream___read_line_t
)CALL(variable0
,COLOR_stream___IStream___read_line
))(variable0
) /*IFStream::read_line*/;
56 return_label3
: while(false);
57 tracehead
= trace
.prev
;
60 val_t
file___Object___stdin(val_t self
) {
61 struct trace_t trace
= {NULL
, "file::Object::stdin (bin/../lib/standard//file.nit:288,1--289:45)"};
63 static val_t once_value_variable0_5
; static int once_bool_variable0_5
;
64 trace
.prev
= tracehead
; tracehead
= &trace
;
65 if (once_bool_variable0_5
) variable0
= once_value_variable0_5
;
67 variable0
= NEW_file___Stdin___init(); /*new Stdin*/
68 once_value_variable0_5
= variable0
;
69 once_bool_variable0_5
= true;
72 return_label4
: while(false);
73 tracehead
= trace
.prev
;
76 val_t
file___Object___stdout(val_t self
) {
77 struct trace_t trace
= {NULL
, "file::Object::stdout (bin/../lib/standard//file.nit:291,1--292:47)"};
79 static val_t once_value_variable0_7
; static int once_bool_variable0_7
;
80 trace
.prev
= tracehead
; tracehead
= &trace
;
81 if (once_bool_variable0_7
) variable0
= once_value_variable0_7
;
83 variable0
= NEW_file___Stdout___init(); /*new Stdout*/
84 once_value_variable0_7
= variable0
;
85 once_bool_variable0_7
= true;
88 return_label6
: while(false);
89 tracehead
= trace
.prev
;
92 val_t
file___Object___stderr(val_t self
) {
93 struct trace_t trace
= {NULL
, "file::Object::stderr (bin/../lib/standard//file.nit:294,1--295:47)"};
95 static val_t once_value_variable0_9
; static int once_bool_variable0_9
;
96 trace
.prev
= tracehead
; tracehead
= &trace
;
97 if (once_bool_variable0_9
) variable0
= once_value_variable0_9
;
99 variable0
= NEW_file___Stderr___init(); /*new Stderr*/
100 once_value_variable0_9
= variable0
;
101 once_bool_variable0_9
= true;
104 return_label8
: while(false);
105 tracehead
= trace
.prev
;
108 val_t
file___FStream___path(val_t self
) {
109 struct trace_t trace
= {NULL
, "file::FStream::path (bin/../lib/standard//file.nit:57,2--58:28)"};
110 trace
.prev
= tracehead
; tracehead
= &trace
;
111 tracehead
= trace
.prev
;
112 return ATTR_file___FStream____path( self
) /*FStream::_path*/;
114 val_t
file___FStream___file_stat(val_t self
) {
115 struct trace_t trace
= {NULL
, "file::FStream::file_stat (bin/../lib/standard//file.nit:63,2--64:26)"};
117 trace
.prev
= tracehead
; tracehead
= &trace
;
118 variable0
= ATTR_file___FStream____file( self
) /*FStream::_file*/;
119 variable0
= ((file___NativeFile___file_stat_t
)CALL(variable0
,COLOR_file___NativeFile___file_stat
))(variable0
) /*NativeFile::file_stat*/;
121 return_label10
: while(false);
122 tracehead
= trace
.prev
;
125 void file___IFStream___reopen(val_t self
) {
126 struct trace_t trace
= {NULL
, "file::IFStream::reopen (bin/../lib/standard//file.nit:73,2--79:15)"};
128 trace
.prev
= tracehead
; tracehead
= &trace
;
129 variable0
= ((stream___BufferedIStream___eof_t
)CALL( self
,COLOR_stream___IStream___eof
))( self
) /*IFStream::eof*/;
130 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0
)))) { /*if*/
131 ((file___IFStream___close_t
)CALL( self
,COLOR_stream___IOS___close
))( self
) /*IFStream::close*/;
133 variable0
= ATTR_file___FStream____path( self
) /*IFStream::_path*/;
134 variable0
= ((string___String___to_cstring_t
)CALL(variable0
,COLOR_string___String___to_cstring
))(variable0
) /*String::to_cstring*/;
135 variable0
= ((file___NativeFileCapable___io_open_read_t
)CALL( self
,COLOR_file___NativeFileCapable___io_open_read
))( self
, variable0
) /*IFStream::io_open_read*/;
136 ATTR_file___FStream____file( self
) /*IFStream::_file*/ = variable0
;
137 ATTR_file___IFStream____end_reached( self
) /*IFStream::_end_reached*/ = TAG_Bool(false);
138 ATTR_stream___BufferedIStream____buffer_pos( self
) /*IFStream::_buffer_pos*/ = TAG_Int(0);
139 variable0
= ATTR_stream___BufferedIStream____buffer( self
) /*IFStream::_buffer*/;
140 ((array___AbstractArray___clear_t
)CALL(variable0
,COLOR_abstract_collection___RemovableCollection___clear
))(variable0
) /*String::clear*/;
141 tracehead
= trace
.prev
;
144 void file___IFStream___close(val_t self
) {
145 struct trace_t trace
= {NULL
, "file::IFStream::close (bin/../lib/standard//file.nit:82,2--85:21)"};
148 trace
.prev
= tracehead
; tracehead
= &trace
;
149 variable1
= ATTR_file___FStream____file( self
) /*IFStream::_file*/;
150 variable1
= ((file___NativeFile___io_close_t
)CALL(variable1
,COLOR_file___NativeFile___io_close
))(variable1
) /*NativeFile::io_close*/;
151 variable0
= variable1
;
152 ATTR_file___IFStream____end_reached( self
) /*IFStream::_end_reached*/ = TAG_Bool(true);
153 tracehead
= trace
.prev
;
156 void file___IFStream___fill_buffer(val_t self
) {
157 struct trace_t trace
= {NULL
, "file::IFStream::fill_buffer (bin/../lib/standard//file.nit:88,2--97:17)"};
162 trace
.prev
= tracehead
; tracehead
= &trace
;
163 variable1
= ATTR_file___FStream____file( self
) /*IFStream::_file*/;
164 variable2
= ATTR_stream___BufferedIStream____buffer( self
) /*IFStream::_buffer*/;
165 variable2
= ATTR_string___String____items(variable2
) /*String::_items*/;
166 variable3
= ATTR_stream___BufferedIStream____buffer( self
) /*IFStream::_buffer*/;
167 variable3
= ATTR_string___String____capacity(variable3
) /*String::_capacity*/;
168 variable1
= ((file___NativeFile___io_read_t
)CALL(variable1
,COLOR_file___NativeFile___io_read
))(variable1
, variable2
, variable3
) /*NativeFile::io_read*/;
169 variable0
= variable1
;
170 variable1
= TAG_Bool(UNTAG_Int( variable0
/*nb*/)<=UNTAG_Int( TAG_Int(0)));
171 if (UNTAG_Bool(variable1
)) { /*if*/
172 ATTR_file___IFStream____end_reached( self
) /*IFStream::_end_reached*/ = TAG_Bool(true);
173 variable0
= TAG_Int(0) /*nb=*/;
175 variable1
= ATTR_stream___BufferedIStream____buffer( self
) /*IFStream::_buffer*/;
176 ATTR_array___AbstractArray____length(variable1
) /*String::_length*/ = variable0
/*nb*/;
177 ATTR_stream___BufferedIStream____buffer_pos( self
) /*IFStream::_buffer_pos*/ = TAG_Int(0);
178 tracehead
= trace
.prev
;
181 val_t
file___IFStream___end_reached(val_t self
) {
182 struct trace_t trace
= {NULL
, "file::IFStream::end_reached (bin/../lib/standard//file.nit:100,2--101:39)"};
183 trace
.prev
= tracehead
; tracehead
= &trace
;
184 tracehead
= trace
.prev
;
185 return ATTR_file___IFStream____end_reached( self
) /*IFStream::_end_reached*/;
187 void file___IFStream___open(val_t self
, val_t param0
, int* init_table
) {
188 struct trace_t trace
= {NULL
, "file::IFStream::open (bin/../lib/standard//file.nit:103,2--109:38)"};
191 trace
.prev
= tracehead
; tracehead
= &trace
;
193 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_IFStream
].i
]) return;
194 ATTR_file___FStream____path( self
) /*IFStream::_path*/ = variable0
/*path*/;
195 ((stream___BufferedIStream___prepare_buffer_t
)CALL( self
,COLOR_stream___BufferedIStream___prepare_buffer
))( self
, TAG_Int(10)) /*IFStream::prepare_buffer*/;
196 variable1
= ATTR_file___FStream____path( self
) /*IFStream::_path*/;
197 variable1
= ((string___String___to_cstring_t
)CALL(variable1
,COLOR_string___String___to_cstring
))(variable1
) /*String::to_cstring*/;
198 variable1
= ((file___NativeFileCapable___io_open_read_t
)CALL( self
,COLOR_file___NativeFileCapable___io_open_read
))( self
, variable1
) /*IFStream::io_open_read*/;
199 ATTR_file___FStream____file( self
) /*IFStream::_file*/ = variable1
;
200 variable1
= ATTR_file___FStream____file( self
) /*IFStream::_file*/;
201 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1
== NIT_NULL
/*null*/) || ((variable1
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable1
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))(variable1
, NIT_NULL
/*null*/) /*NativeFile::==*/)))))));
202 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert 'cant_open_file' failed: bin/../lib/standard//file.nit:109,3--38\n"); nit_exit(1);}
203 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_IFStream
].i
] = 1;
204 tracehead
= trace
.prev
;
207 void file___IFStream___without_file(val_t self
, int* init_table
) {
208 struct trace_t trace
= {NULL
, "file::IFStream::without_file (bin/../lib/standard//file.nit:112,2--26)"};
209 trace
.prev
= tracehead
; tracehead
= &trace
;
210 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_IFStream
].i
]) return;
211 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_IFStream
].i
] = 1;
212 tracehead
= trace
.prev
;
215 void file___OFStream___write(val_t self
, val_t param0
) {
216 struct trace_t trace
= {NULL
, "file::OFStream::write (bin/../lib/standard//file.nit:120,2--124:37)"};
220 trace
.prev
= tracehead
; tracehead
= &trace
;
222 variable1
= ATTR_file___OFStream____writable( self
) /*OFStream::_writable*/;
223 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//file.nit:123,3--18\n"); nit_exit(1);}
224 variable1
= ((string___String___to_cstring_t
)CALL( variable0
/*s*/,COLOR_string___String___to_cstring
))( variable0
/*s*/) /*String::to_cstring*/;
225 variable2
= ((array___AbstractArray___length_t
)CALL( variable0
/*s*/,COLOR_abstract_collection___Collection___length
))( variable0
/*s*/) /*String::length*/;
226 ((file___OFStream___write_native_t
)CALL( self
,COLOR_file___OFStream___write_native
))( self
, variable1
, variable2
) /*OFStream::write_native*/;
227 tracehead
= trace
.prev
;
230 val_t
file___OFStream___is_writable(val_t self
) {
231 struct trace_t trace
= {NULL
, "file::OFStream::is_writable (bin/../lib/standard//file.nit:127,2--43)"};
233 trace
.prev
= tracehead
; tracehead
= &trace
;
234 variable0
= ATTR_file___OFStream____writable( self
) /*OFStream::_writable*/;
236 return_label17
: while(false);
237 tracehead
= trace
.prev
;
240 void file___OFStream___close(val_t self
) {
241 struct trace_t trace
= {NULL
, "file::OFStream::close (bin/../lib/standard//file.nit:129,2--132:19)"};
244 trace
.prev
= tracehead
; tracehead
= &trace
;
245 variable1
= ATTR_file___FStream____file( self
) /*OFStream::_file*/;
246 variable1
= ((file___NativeFile___io_close_t
)CALL(variable1
,COLOR_file___NativeFile___io_close
))(variable1
) /*NativeFile::io_close*/;
247 variable0
= variable1
;
248 ATTR_file___OFStream____writable( self
) /*OFStream::_writable*/ = TAG_Bool(false);
249 tracehead
= trace
.prev
;
252 void file___OFStream___write_native(val_t self
, val_t param0
, val_t param1
) {
253 struct trace_t trace
= {NULL
, "file::OFStream::write_native (bin/../lib/standard//file.nit:138,2--145:54)"};
261 trace
.prev
= tracehead
; tracehead
= &trace
;
264 variable2
= ATTR_file___OFStream____writable( self
) /*OFStream::_writable*/;
265 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//file.nit:141,3--18\n"); nit_exit(1);}
266 variable3
= ATTR_file___FStream____file( self
) /*OFStream::_file*/;
267 variable3
= ((file___NativeFile___io_write_t
)CALL(variable3
,COLOR_file___NativeFile___io_write
))(variable3
, variable0
/*native*/, variable1
/*len*/) /*NativeFile::io_write*/;
268 variable2
= variable3
;
269 variable3
= TAG_Bool(( variable2
/*err*/)!=( variable1
/*len*/));
270 if (UNTAG_Bool(variable3
)) { /*if*/
271 variable3
= NEW_array___Array___with_capacity(TAG_Int(5)); /*new Array[Object]*/
272 variable4
= NEW_string___String___with_native(BOX_NativeString("Problem in writing : "), TAG_Int(21)); /*new String*/
273 ((array___AbstractArray___add_t
)CALL(variable3
,COLOR_abstract_collection___SimpleCollection___add
))(variable3
, variable4
) /*Array::add*/;
274 ((array___AbstractArray___add_t
)CALL(variable3
,COLOR_abstract_collection___SimpleCollection___add
))(variable3
, variable2
/*err*/) /*Array::add*/;
275 variable5
= NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
276 ((array___AbstractArray___add_t
)CALL(variable3
,COLOR_abstract_collection___SimpleCollection___add
))(variable3
, variable5
) /*Array::add*/;
277 ((array___AbstractArray___add_t
)CALL(variable3
,COLOR_abstract_collection___SimpleCollection___add
))(variable3
, variable1
/*len*/) /*Array::add*/;
278 variable6
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
279 ((array___AbstractArray___add_t
)CALL(variable3
,COLOR_abstract_collection___SimpleCollection___add
))(variable3
, variable6
) /*Array::add*/;
280 ((file___Object___printn_t
)CALL( self
,COLOR_file___Object___printn
))( self
, variable3
) /*OFStream::printn*/;
282 tracehead
= trace
.prev
;
285 void file___OFStream___open(val_t self
, val_t param0
, int* init_table
) {
286 struct trace_t trace
= {NULL
, "file::OFStream::open (bin/../lib/standard//file.nit:149,2--155:18)"};
289 trace
.prev
= tracehead
; tracehead
= &trace
;
291 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_OFStream
].i
]) return;
292 variable1
= ((string___String___to_cstring_t
)CALL( variable0
/*path*/,COLOR_string___String___to_cstring
))( variable0
/*path*/) /*String::to_cstring*/;
293 variable1
= ((file___NativeFileCapable___io_open_write_t
)CALL( self
,COLOR_file___NativeFileCapable___io_open_write
))( self
, variable1
) /*OFStream::io_open_write*/;
294 ATTR_file___FStream____file( self
) /*OFStream::_file*/ = variable1
;
295 variable1
= ATTR_file___FStream____file( self
) /*OFStream::_file*/;
296 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1
== NIT_NULL
/*null*/) || ((variable1
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable1
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))(variable1
, NIT_NULL
/*null*/) /*NativeFile::==*/)))))));
297 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert 'cant_open_file' failed: bin/../lib/standard//file.nit:153,3--38\n"); nit_exit(1);}
298 ATTR_file___FStream____path( self
) /*OFStream::_path*/ = variable0
/*path*/;
299 ATTR_file___OFStream____writable( self
) /*OFStream::_writable*/ = TAG_Bool(true);
300 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_OFStream
].i
] = 1;
301 tracehead
= trace
.prev
;
304 void file___OFStream___without_file(val_t self
, int* init_table
) {
305 struct trace_t trace
= {NULL
, "file::OFStream::without_file (bin/../lib/standard//file.nit:158,2--26)"};
306 trace
.prev
= tracehead
; tracehead
= &trace
;
307 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_OFStream
].i
]) return;
308 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_OFStream
].i
] = 1;
309 tracehead
= trace
.prev
;
312 void file___Stdin___init(val_t self
, int* init_table
) {
313 struct trace_t trace
= {NULL
, "file::Stdin::init (bin/../lib/standard//file.nit:165,2--168:18)"};
315 trace
.prev
= tracehead
; tracehead
= &trace
;
316 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Stdin
].i
]) return;
317 ((file___IFStream___without_file_t
)CALL( self
,COLOR_file___IFStream___without_file
))( self
, init_table
/*YYY*/) /*IFStream::without_file*/;
318 variable0
= ((file___NativeFileCapable___native_stdin_t
)CALL( self
,COLOR_file___NativeFileCapable___native_stdin
))( self
) /*Stdin::native_stdin*/;
319 ATTR_file___FStream____file( self
) /*Stdin::_file*/ = variable0
;
320 variable0
= NEW_string___String___with_native(BOX_NativeString("/dev/stdin"), TAG_Int(10)); /*new String*/
321 ATTR_file___FStream____path( self
) /*Stdin::_path*/ = variable0
;
322 ((stream___BufferedIStream___prepare_buffer_t
)CALL( self
,COLOR_stream___BufferedIStream___prepare_buffer
))( self
, TAG_Int(1)) /*Stdin::prepare_buffer*/;
323 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Stdin
].i
] = 1;
324 tracehead
= trace
.prev
;
327 void file___Stdout___init(val_t self
, int* init_table
) {
328 struct trace_t trace
= {NULL
, "file::Stdout::init (bin/../lib/standard//file.nit:174,2--177:18)"};
330 trace
.prev
= tracehead
; tracehead
= &trace
;
331 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Stdout
].i
]) return;
332 ((file___OFStream___without_file_t
)CALL( self
,COLOR_file___OFStream___without_file
))( self
, init_table
/*YYY*/) /*OFStream::without_file*/;
333 variable0
= ((file___NativeFileCapable___native_stdout_t
)CALL( self
,COLOR_file___NativeFileCapable___native_stdout
))( self
) /*Stdout::native_stdout*/;
334 ATTR_file___FStream____file( self
) /*Stdout::_file*/ = variable0
;
335 variable0
= NEW_string___String___with_native(BOX_NativeString("/dev/stdout"), TAG_Int(11)); /*new String*/
336 ATTR_file___FStream____path( self
) /*Stdout::_path*/ = variable0
;
337 ATTR_file___OFStream____writable( self
) /*Stdout::_writable*/ = TAG_Bool(true);
338 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Stdout
].i
] = 1;
339 tracehead
= trace
.prev
;
342 void file___Stderr___init(val_t self
, int* init_table
) {
343 struct trace_t trace
= {NULL
, "file::Stderr::init (bin/../lib/standard//file.nit:183,2--186:18)"};
345 trace
.prev
= tracehead
; tracehead
= &trace
;
346 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Stderr
].i
]) return;
347 ((file___OFStream___without_file_t
)CALL( self
,COLOR_file___OFStream___without_file
))( self
, init_table
/*YYY*/) /*OFStream::without_file*/;
348 variable0
= ((file___NativeFileCapable___native_stderr_t
)CALL( self
,COLOR_file___NativeFileCapable___native_stderr
))( self
) /*Stderr::native_stderr*/;
349 ATTR_file___FStream____file( self
) /*Stderr::_file*/ = variable0
;
350 variable0
= NEW_string___String___with_native(BOX_NativeString("/dev/stderr"), TAG_Int(11)); /*new String*/
351 ATTR_file___FStream____path( self
) /*Stderr::_path*/ = variable0
;
352 ATTR_file___OFStream____writable( self
) /*Stderr::_writable*/ = TAG_Bool(true);
353 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Stderr
].i
] = 1;
354 tracehead
= trace
.prev
;
357 val_t
file___String___file_exists(val_t self
) {
358 struct trace_t trace
= {NULL
, "file::String::file_exists (bin/../lib/standard//file.nit:193,2--194:56)"};
360 trace
.prev
= tracehead
; tracehead
= &trace
;
361 variable0
= ((string___String___to_cstring_t
)CALL( self
,COLOR_string___String___to_cstring
))( self
) /*String::to_cstring*/;
362 variable0
= ((file___NativeString___file_exists_t
)CALL(variable0
,COLOR_file___NativeString___file_exists
))(variable0
) /*NativeString::file_exists*/;
364 return_label25
: while(false);
365 tracehead
= trace
.prev
;
368 val_t
file___String___file_stat(val_t self
) {
369 struct trace_t trace
= {NULL
, "file::String::file_stat (bin/../lib/standard//file.nit:196,2--56)"};
371 trace
.prev
= tracehead
; tracehead
= &trace
;
372 variable0
= ((string___String___to_cstring_t
)CALL( self
,COLOR_string___String___to_cstring
))( self
) /*String::to_cstring*/;
373 variable0
= ((file___NativeString___file_stat_t
)CALL(variable0
,COLOR_file___NativeString___file_stat
))(variable0
) /*NativeString::file_stat*/;
375 return_label26
: while(false);
376 tracehead
= trace
.prev
;
379 val_t
file___String___strip_extension(val_t self
, val_t param0
) {
380 struct trace_t trace
= {NULL
, "file::String::strip_extension (bin/../lib/standard//file.nit:198,2--203:13)"};
384 trace
.prev
= tracehead
; tracehead
= &trace
;
386 variable1
= ((string___String___has_suffix_t
)CALL( self
,COLOR_string___String___has_suffix
))( self
, variable0
/*ext*/) /*String::has_suffix*/;
387 if (UNTAG_Bool(variable1
)) { /*if*/
388 variable1
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*String::length*/;
389 variable2
= ((array___AbstractArray___length_t
)CALL( variable0
/*ext*/,COLOR_abstract_collection___Collection___length
))( variable0
/*ext*/) /*String::length*/;
390 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int(variable2
));
391 variable1
= ((string___String___substring_t
)CALL( self
,COLOR_string___String___substring
))( self
, TAG_Int(0), variable1
) /*String::substring*/;
396 return_label27
: while(false);
397 tracehead
= trace
.prev
;
400 val_t
file___String___basename(val_t self
, val_t param0
) {
401 struct trace_t trace
= {NULL
, "file::String::basename (bin/../lib/standard//file.nit:206,2--213:30)"};
406 trace
.prev
= tracehead
; tracehead
= &trace
;
408 variable2
= ATTR_array___AbstractArray____length( self
) /*String::_length*/;
409 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
410 variable2
= ((array___AbstractArray___last_index_of_from_t
)CALL( self
,COLOR_array___AbstractArray___last_index_of_from
))( self
, TAG_Char('/'), variable2
) /*String::last_index_of_from*/;
411 variable1
= variable2
;
413 variable3
= TAG_Bool(UNTAG_Int( variable1
/*pos*/)>=UNTAG_Int( TAG_Int(0)));
414 if (UNTAG_Bool(variable3
)) { /*if*/
415 variable3
= TAG_Int(UNTAG_Int( variable1
/*pos*/)+UNTAG_Int( TAG_Int(1)));
416 variable3
= ((string___String___substring_from_t
)CALL( self
,COLOR_string___String___substring_from
))( self
, variable3
) /*String::substring_from*/;
417 variable2
= variable3
/*n=*/;
419 variable3
= ((file___String___strip_extension_t
)CALL( variable2
/*n*/,COLOR_file___String___strip_extension
))( variable2
/*n*/, variable0
/*ext*/) /*String::strip_extension*/;
420 variable1
= variable3
;
422 return_label28
: while(false);
423 tracehead
= trace
.prev
;
426 val_t
file___String___dirname(val_t self
) {
427 struct trace_t trace
= {NULL
, "file::String::dirname (bin/../lib/standard//file.nit:216,2--222:13)"};
430 trace
.prev
= tracehead
; tracehead
= &trace
;
431 variable1
= ATTR_array___AbstractArray____length( self
) /*String::_length*/;
432 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1)));
433 variable1
= ((array___AbstractArray___last_index_of_from_t
)CALL( self
,COLOR_array___AbstractArray___last_index_of_from
))( self
, TAG_Char('/'), variable1
) /*String::last_index_of_from*/;
434 variable0
= variable1
;
435 variable1
= TAG_Bool(UNTAG_Int( variable0
/*pos*/)>=UNTAG_Int( TAG_Int(0)));
436 if (UNTAG_Bool(variable1
)) { /*if*/
437 variable1
= ((string___String___substring_t
)CALL( self
,COLOR_string___String___substring
))( self
, TAG_Int(0), variable0
/*pos*/) /*String::substring*/;
438 variable0
= variable1
;
441 variable1
= NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
442 variable0
= variable1
;
445 return_label29
: while(false);
446 tracehead
= trace
.prev
;
449 val_t
file___String___file_path(val_t self
) {
450 struct trace_t trace
= {NULL
, "file::String::file_path (bin/../lib/standard//file.nit:226,2--233:12)"};
454 trace
.prev
= tracehead
; tracehead
= &trace
;
455 variable1
= ATTR_array___AbstractArray____length( self
) /*String::_length*/;
456 variable0
= variable1
;
457 variable2
= TAG_Int(UNTAG_Int( variable0
/*l*/)-UNTAG_Int( TAG_Int(1)));
458 variable2
= ((array___AbstractArray___last_index_of_from_t
)CALL( self
,COLOR_array___AbstractArray___last_index_of_from
))( self
, TAG_Char('/'), variable2
) /*String::last_index_of_from*/;
459 variable1
= variable2
;
460 variable2
= TAG_Bool(UNTAG_Int( variable1
/*pos*/)>=UNTAG_Int( TAG_Int(0)));
461 if (UNTAG_Bool(variable2
)) { /*if*/
462 variable2
= ((string___String___substring_t
)CALL( self
,COLOR_string___String___substring
))( self
, TAG_Int(0), variable1
/*pos*/) /*String::substring*/;
463 variable0
= variable2
;
466 variable2
= NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
467 variable0
= variable2
;
469 return_label30
: while(false);
470 tracehead
= trace
.prev
;
473 void file___String___mkdir(val_t self
) {
474 struct trace_t trace
= {NULL
, "file::String::mkdir (bin/../lib/standard//file.nit:236,2--250:29)"};
480 trace
.prev
= tracehead
; tracehead
= &trace
;
481 variable1
= NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
482 variable1
= ((string_search___String___split_with_t
)CALL( self
,COLOR_string_search___String___split_with
))( self
, variable1
) /*String::split_with*/;
483 variable0
= variable1
;
484 variable2
= NEW_string___String___init(); /*new String*/
485 variable1
= variable2
;
486 variable2
= ((array___AbstractArray___is_empty_t
)CALL( variable0
/*dirs*/,COLOR_abstract_collection___Collection___is_empty
))( variable0
/*dirs*/) /*Array::is_empty*/;
487 if (UNTAG_Bool(variable2
)) { /*if*/
490 variable2
= TAG_Int(0);
491 variable3
= TAG_Bool(UNTAG_Int( variable2
/*index*/)>=UNTAG_Int( TAG_Int(0)));
492 variable4
= variable3
;
493 if (UNTAG_Bool(variable4
)) { /* and */
494 variable4
= ATTR_array___AbstractArray____length( variable0
/*dirs*/) /*Array::_length*/;
495 variable4
= TAG_Bool(UNTAG_Int( variable2
/*index*/)<UNTAG_Int(variable4
));
497 variable3
= variable4
;
498 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
499 variable3
= ATTR_array___Array____items( variable0
/*dirs*/) /*Array::_items*/;
500 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable2
/*index*/)];
502 return_label32
: while(false);
503 variable2
= variable3
;
504 variable2
= ((array___AbstractArray___is_empty_t
)CALL(variable2
,COLOR_abstract_collection___Collection___is_empty
))(variable2
) /*String::is_empty*/;
505 if (UNTAG_Bool(variable2
)) { /*if*/
506 ((string___String___add_t
)CALL( variable1
/*path*/,COLOR_abstract_collection___SimpleCollection___add
))( variable1
/*path*/, TAG_Char('/')) /*String::add*/;
508 variable2
= ((array___AbstractArray___iterator_t
)CALL( variable0
/*dirs*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*dirs*/) /*Array::iterator*/;
509 while (true) { /*for*/
510 variable3
= ((array___ArrayIterator___is_ok_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___is_ok
))(variable2
) /*ArrayIterator::is_ok*/;
511 if (!UNTAG_Bool(variable3
)) break; /*for*/
512 variable3
= ((array___ArrayIterator___item_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___item
))(variable2
) /*ArrayIterator::item*/;
513 variable4
= ((array___AbstractArray___is_empty_t
)CALL( variable3
/*d*/,COLOR_abstract_collection___Collection___is_empty
))( variable3
/*d*/) /*String::is_empty*/;
514 if (UNTAG_Bool(variable4
)) { /*if*/
517 ((string___String___append_t
)CALL( variable1
/*path*/,COLOR_abstract_collection___IndexedCollection___append
))( variable1
/*path*/, variable3
/*d*/) /*String::append*/;
518 ((string___String___add_t
)CALL( variable1
/*path*/,COLOR_abstract_collection___SimpleCollection___add
))( variable1
/*path*/, TAG_Char('/')) /*String::add*/;
519 variable4
= ((string___String___to_cstring_t
)CALL( variable1
/*path*/,COLOR_string___String___to_cstring
))( variable1
/*path*/) /*String::to_cstring*/;
520 ((file___NativeString___file_mkdir_t
)CALL(variable4
,COLOR_file___NativeString___file_mkdir
))(variable4
) /*NativeString::file_mkdir*/;
521 continue_33
: while(0);
522 ((array___ArrayIterator___next_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___next
))(variable2
) /*ArrayIterator::next*/;
525 return_label31
: while(false);
526 tracehead
= trace
.prev
;
529 val_t
file___NativeString___file_exists(val_t self
) {
530 struct trace_t trace
= {NULL
, "file::NativeString::file_exists (bin/../lib/standard//file.nit:256,2--90)"};
531 trace
.prev
= tracehead
; tracehead
= &trace
;
532 tracehead
= trace
.prev
;
533 return TAG_Bool(string_NativeString_NativeString_file_exists_0(UNBOX_NativeString( self
)));
535 val_t
file___NativeString___file_stat(val_t self
) {
536 struct trace_t trace
= {NULL
, "file::NativeString::file_stat (bin/../lib/standard//file.nit:257,2--90)"};
537 trace
.prev
= tracehead
; tracehead
= &trace
;
538 tracehead
= trace
.prev
;
539 return BOX_FileStat(string_NativeString_NativeString_file_stat_0(UNBOX_NativeString( self
)));
541 val_t
file___NativeString___file_mkdir(val_t self
) {
542 struct trace_t trace
= {NULL
, "file::NativeString::file_mkdir (bin/../lib/standard//file.nit:258,2--88)"};
543 trace
.prev
= tracehead
; tracehead
= &trace
;
544 tracehead
= trace
.prev
;
545 return TAG_Bool(string_NativeString_NativeString_file_mkdir_0(UNBOX_NativeString( self
)));
547 val_t
file___FileStat___mode(val_t self
) {
548 struct trace_t trace
= {NULL
, "file::FileStat::mode (bin/../lib/standard//file.nit:263,1--264:57)"};
549 trace
.prev
= tracehead
; tracehead
= &trace
;
550 tracehead
= trace
.prev
;
551 return TAG_Int(file_FileStat_FileStat_mode_0(UNBOX_FileStat( self
)));
553 val_t
file___FileStat___atime(val_t self
) {
554 struct trace_t trace
= {NULL
, "file::FileStat::atime (bin/../lib/standard//file.nit:265,2--59)"};
555 trace
.prev
= tracehead
; tracehead
= &trace
;
556 tracehead
= trace
.prev
;
557 return TAG_Int(file_FileStat_FileStat_atime_0(UNBOX_FileStat( self
)));
559 val_t
file___FileStat___ctime(val_t self
) {
560 struct trace_t trace
= {NULL
, "file::FileStat::ctime (bin/../lib/standard//file.nit:266,2--59)"};
561 trace
.prev
= tracehead
; tracehead
= &trace
;
562 tracehead
= trace
.prev
;
563 return TAG_Int(file_FileStat_FileStat_ctime_0(UNBOX_FileStat( self
)));
565 val_t
file___FileStat___mtime(val_t self
) {
566 struct trace_t trace
= {NULL
, "file::FileStat::mtime (bin/../lib/standard//file.nit:267,2--59)"};
567 trace
.prev
= tracehead
; tracehead
= &trace
;
568 tracehead
= trace
.prev
;
569 return TAG_Int(file_FileStat_FileStat_mtime_0(UNBOX_FileStat( self
)));
571 val_t
file___FileStat___size(val_t self
) {
572 struct trace_t trace
= {NULL
, "file::FileStat::size (bin/../lib/standard//file.nit:268,2--57)"};
573 trace
.prev
= tracehead
; tracehead
= &trace
;
574 tracehead
= trace
.prev
;
575 return TAG_Int(file_FileStat_FileStat_size_0(UNBOX_FileStat( self
)));
577 val_t
file___NativeFile___io_read(val_t self
, val_t param0
, val_t param1
) {
578 struct trace_t trace
= {NULL
, "file::NativeFile::io_read (bin/../lib/standard//file.nit:274,2--96)"};
579 trace
.prev
= tracehead
; tracehead
= &trace
;
580 tracehead
= trace
.prev
;
581 return TAG_Int(file_NativeFile_NativeFile_io_read_2(UNBOX_NativeFile( self
), UNBOX_NativeString( param0
), UNTAG_Int( param1
)));
583 val_t
file___NativeFile___io_write(val_t self
, val_t param0
, val_t param1
) {
584 struct trace_t trace
= {NULL
, "file::NativeFile::io_write (bin/../lib/standard//file.nit:275,2--98)"};
585 trace
.prev
= tracehead
; tracehead
= &trace
;
586 tracehead
= trace
.prev
;
587 return TAG_Int(file_NativeFile_NativeFile_io_write_2(UNBOX_NativeFile( self
), UNBOX_NativeString( param0
), UNTAG_Int( param1
)));
589 val_t
file___NativeFile___io_close(val_t self
) {
590 struct trace_t trace
= {NULL
, "file::NativeFile::io_close (bin/../lib/standard//file.nit:276,2--69)"};
591 trace
.prev
= tracehead
; tracehead
= &trace
;
592 tracehead
= trace
.prev
;
593 return TAG_Int(file_NativeFile_NativeFile_io_close_0(UNBOX_NativeFile( self
)));
595 val_t
file___NativeFile___file_stat(val_t self
) {
596 struct trace_t trace
= {NULL
, "file::NativeFile::file_stat (bin/../lib/standard//file.nit:277,2--76)"};
597 trace
.prev
= tracehead
; tracehead
= &trace
;
598 tracehead
= trace
.prev
;
599 return BOX_FileStat(file_NativeFile_NativeFile_file_stat_0(UNBOX_NativeFile( self
)));
601 val_t
file___NativeFileCapable___io_open_read(val_t self
, val_t param0
) {
602 struct trace_t trace
= {NULL
, "file::NativeFileCapable::io_open_read (bin/../lib/standard//file.nit:281,2--118)"};
603 trace
.prev
= tracehead
; tracehead
= &trace
;
604 tracehead
= trace
.prev
;
605 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_read_1( self
, UNBOX_NativeString( param0
)));
607 val_t
file___NativeFileCapable___io_open_write(val_t self
, val_t param0
) {
608 struct trace_t trace
= {NULL
, "file::NativeFileCapable::io_open_write (bin/../lib/standard//file.nit:282,2--120)"};
609 trace
.prev
= tracehead
; tracehead
= &trace
;
610 tracehead
= trace
.prev
;
611 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_write_1( self
, UNBOX_NativeString( param0
)));
613 val_t
file___NativeFileCapable___native_stdin(val_t self
) {
614 struct trace_t trace
= {NULL
, "file::NativeFileCapable::native_stdin (bin/../lib/standard//file.nit:283,2--98)"};
615 trace
.prev
= tracehead
; tracehead
= &trace
;
616 tracehead
= trace
.prev
;
617 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdin_0( self
));
619 val_t
file___NativeFileCapable___native_stdout(val_t self
) {
620 struct trace_t trace
= {NULL
, "file::NativeFileCapable::native_stdout (bin/../lib/standard//file.nit:284,2--100)"};
621 trace
.prev
= tracehead
; tracehead
= &trace
;
622 tracehead
= trace
.prev
;
623 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdout_0( self
));
625 val_t
file___NativeFileCapable___native_stderr(val_t self
) {
626 struct trace_t trace
= {NULL
, "file::NativeFileCapable::native_stderr (bin/../lib/standard//file.nit:285,2--100)"};
627 trace
.prev
= tracehead
; tracehead
= &trace
;
628 tracehead
= trace
.prev
;
629 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stderr_0( self
));