b98b31ba515642bddec252b8e66dbb3d4ab69846
[nit.git] / c_src / file._sep.c
1 /* This C file is generated by NIT to compile module file. */
2 #include "file._sep.h"
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)"};
5 val_t variable0;
6 val_t variable1;
7 val_t variable2;
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]*/;
11 variable0 = param0;
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;
16 return;
17 }
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)"};
20 val_t variable0;
21 val_t variable1;
22 val_t variable2;
23 trace.prev = tracehead; tracehead = &trace;
24 variable0 = param0;
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*/;
30 }
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;
35 return;
36 }
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)"};
39 val_t variable0;
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));
44 goto return_label2;
45 return_label2: while(false);
46 tracehead = trace.prev;
47 return variable0;
48 }
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)"};
51 val_t variable0;
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*/;
55 goto return_label3;
56 return_label3: while(false);
57 tracehead = trace.prev;
58 return variable0;
59 }
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)"};
62 val_t variable0;
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;
66 else {
67 variable0 = NEW_file___Stdin___init(); /*new Stdin*/
68 once_value_variable0_5 = variable0;
69 once_bool_variable0_5 = true;
70 }
71 goto return_label4;
72 return_label4: while(false);
73 tracehead = trace.prev;
74 return variable0;
75 }
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)"};
78 val_t variable0;
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;
82 else {
83 variable0 = NEW_file___Stdout___init(); /*new Stdout*/
84 once_value_variable0_7 = variable0;
85 once_bool_variable0_7 = true;
86 }
87 goto return_label6;
88 return_label6: while(false);
89 tracehead = trace.prev;
90 return variable0;
91 }
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)"};
94 val_t variable0;
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;
98 else {
99 variable0 = NEW_file___Stderr___init(); /*new Stderr*/
100 once_value_variable0_9 = variable0;
101 once_bool_variable0_9 = true;
102 }
103 goto return_label8;
104 return_label8: while(false);
105 tracehead = trace.prev;
106 return variable0;
107 }
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*/;
113 }
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)"};
116 val_t variable0;
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*/;
120 goto return_label10;
121 return_label10: while(false);
122 tracehead = trace.prev;
123 return variable0;
124 }
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)"};
127 val_t variable0;
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*/;
132 }
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;
142 return;
143 }
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)"};
146 val_t variable0;
147 val_t variable1;
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;
154 return;
155 }
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)"};
158 val_t variable0;
159 val_t variable1;
160 val_t variable2;
161 val_t variable3;
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=*/;
174 }
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;
179 return;
180 }
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*/;
186 }
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)"};
189 val_t variable0;
190 val_t variable1;
191 trace.prev = tracehead; tracehead = &trace;
192 variable0 = param0;
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;
205 return;
206 }
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;
213 return;
214 }
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)"};
217 val_t variable0;
218 val_t variable1;
219 val_t variable2;
220 trace.prev = tracehead; tracehead = &trace;
221 variable0 = param0;
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;
228 return;
229 }
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)"};
232 val_t variable0;
233 trace.prev = tracehead; tracehead = &trace;
234 variable0 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
235 goto return_label17;
236 return_label17: while(false);
237 tracehead = trace.prev;
238 return variable0;
239 }
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)"};
242 val_t variable0;
243 val_t variable1;
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;
250 return;
251 }
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)"};
254 val_t variable0;
255 val_t variable1;
256 val_t variable2;
257 val_t variable3;
258 val_t variable4;
259 val_t variable5;
260 val_t variable6;
261 trace.prev = tracehead; tracehead = &trace;
262 variable0 = param0;
263 variable1 = param1;
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*/;
281 }
282 tracehead = trace.prev;
283 return;
284 }
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)"};
287 val_t variable0;
288 val_t variable1;
289 trace.prev = tracehead; tracehead = &trace;
290 variable0 = param0;
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;
302 return;
303 }
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;
310 return;
311 }
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)"};
314 val_t variable0;
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;
325 return;
326 }
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)"};
329 val_t variable0;
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;
340 return;
341 }
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)"};
344 val_t variable0;
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;
355 return;
356 }
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)"};
359 val_t variable0;
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*/;
363 goto return_label25;
364 return_label25: while(false);
365 tracehead = trace.prev;
366 return variable0;
367 }
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)"};
370 val_t variable0;
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*/;
374 goto return_label26;
375 return_label26: while(false);
376 tracehead = trace.prev;
377 return variable0;
378 }
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)"};
381 val_t variable0;
382 val_t variable1;
383 val_t variable2;
384 trace.prev = tracehead; tracehead = &trace;
385 variable0 = param0;
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*/;
392 goto return_label27;
393 }
394 variable1 = self;
395 goto return_label27;
396 return_label27: while(false);
397 tracehead = trace.prev;
398 return variable1;
399 }
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)"};
402 val_t variable0;
403 val_t variable1;
404 val_t variable2;
405 val_t variable3;
406 trace.prev = tracehead; tracehead = &trace;
407 variable0 = param0;
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;
412 variable2 = self;
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=*/;
418 }
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;
421 goto return_label28;
422 return_label28: while(false);
423 tracehead = trace.prev;
424 return variable1;
425 }
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)"};
428 val_t variable0;
429 val_t variable1;
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;
439 goto return_label29;
440 } else { /*if*/
441 variable1 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
442 variable0 = variable1;
443 goto return_label29;
444 }
445 return_label29: while(false);
446 tracehead = trace.prev;
447 return variable0;
448 }
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)"};
451 val_t variable0;
452 val_t variable1;
453 val_t variable2;
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;
464 goto return_label30;
465 }
466 variable2 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
467 variable0 = variable2;
468 goto return_label30;
469 return_label30: while(false);
470 tracehead = trace.prev;
471 return variable0;
472 }
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)"};
475 val_t variable0;
476 val_t variable1;
477 val_t variable2;
478 val_t variable3;
479 val_t variable4;
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*/
488 goto return_label31;
489 }
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));
496 }
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*/)];
501 goto return_label32;
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*/;
507 }
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*/
515 goto continue_33;
516 }
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*/;
523 }
524 break_33: while(0);
525 return_label31: while(false);
526 tracehead = trace.prev;
527 return;
528 }
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)));
534 }
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)));
540 }
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)));
546 }
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)));
552 }
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)));
558 }
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)));
564 }
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)));
570 }
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)));
576 }
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)));
582 }
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)));
588 }
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)));
594 }
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)));
600 }
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)));
606 }
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)));
612 }
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));
618 }
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));
624 }
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));
630 }