f4772a94ae7701e3eac87e0729743cd2bc841546
[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, NULL, 24, LOCATE_file___Object___printn};
5 val_t variable0;
6 val_t variable1;
7 val_t variable2;
8 trace.prev = tracehead; tracehead = &trace;
9 trace.file = LOCATE_file;
10 /* check if p<Array[Object] with p:Object */
11 if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled"); fprintf(stderr, " (%s:%d)\n", LOCATE_file, 25); nit_exit(1); } /*cast Array[Object]*/;
12 variable0 = param0;
13 variable1 = ((file___Object___stdout_t)CALL( self,COLOR_file___Object___stdout))( self) /*Object::stdout*/;
14 variable2 = ((string___Collection___to_s_t)CALL( variable0 /*objects*/,COLOR_string___Object___to_s))( variable0 /*objects*/) /*Collection::to_s*/;
15 ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
16 tracehead = trace.prev;
17 return;
18 }
19 void file___Object___print(val_t self, val_t param0) {
20 struct trace_t trace = {NULL, NULL, 30, LOCATE_file___Object___print};
21 val_t variable0;
22 val_t variable1;
23 val_t variable2;
24 trace.prev = tracehead; tracehead = &trace;
25 trace.file = LOCATE_file;
26 variable0 = param0;
27 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::==*/)))))));
28 if (UNTAG_Bool(variable1)) { /*if*/
29 variable1 = ((file___Object___stdout_t)CALL( self,COLOR_file___Object___stdout))( self) /*Object::stdout*/;
30 variable2 = ((string___Object___to_s_t)CALL( variable0 /*object*/,COLOR_string___Object___to_s))( variable0 /*object*/) /*Object::to_s*/;
31 ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
32 }
33 variable1 = ((file___Object___stdout_t)CALL( self,COLOR_file___Object___stdout))( self) /*Object::stdout*/;
34 variable2 = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
35 ((file___OFStream___write_t)CALL(variable1,COLOR_stream___OStream___write))(variable1, variable2) /*OFStream::write*/;
36 tracehead = trace.prev;
37 return;
38 }
39 val_t file___Object___getc(val_t self) {
40 struct trace_t trace = {NULL, NULL, 39, LOCATE_file___Object___getc};
41 val_t variable0;
42 trace.prev = tracehead; tracehead = &trace;
43 trace.file = LOCATE_file;
44 variable0 = ((file___Object___stdin_t)CALL( self,COLOR_file___Object___stdin))( self) /*Object::stdin*/;
45 variable0 = ((stream___BufferedIStream___read_char_t)CALL(variable0,COLOR_stream___IStream___read_char))(variable0) /*BufferedIStream::read_char*/;
46 variable0 = TAG_Char(UNTAG_Int(variable0));
47 goto return_label2;
48 return_label2: while(false);
49 tracehead = trace.prev;
50 return variable0;
51 }
52 val_t file___Object___gets(val_t self) {
53 struct trace_t trace = {NULL, NULL, 45, LOCATE_file___Object___gets};
54 val_t variable0;
55 trace.prev = tracehead; tracehead = &trace;
56 trace.file = LOCATE_file;
57 variable0 = ((file___Object___stdin_t)CALL( self,COLOR_file___Object___stdin))( self) /*Object::stdin*/;
58 variable0 = ((stream___IStream___read_line_t)CALL(variable0,COLOR_stream___IStream___read_line))(variable0) /*IStream::read_line*/;
59 goto return_label3;
60 return_label3: while(false);
61 tracehead = trace.prev;
62 return variable0;
63 }
64 val_t file___Object___stdin(val_t self) {
65 struct trace_t trace = {NULL, NULL, 290, LOCATE_file___Object___stdin};
66 val_t variable0;
67 static val_t once_value_variable0_5; static int once_bool_variable0_5;
68 trace.prev = tracehead; tracehead = &trace;
69 trace.file = LOCATE_file;
70 if (once_bool_variable0_5) variable0 = once_value_variable0_5;
71 else {
72 variable0 = NEW_Stdin_file___Stdin___init(); /*new Stdin*/
73 once_value_variable0_5 = variable0;
74 once_bool_variable0_5 = true;
75 }
76 goto return_label4;
77 return_label4: while(false);
78 tracehead = trace.prev;
79 return variable0;
80 }
81 val_t file___Object___stdout(val_t self) {
82 struct trace_t trace = {NULL, NULL, 293, LOCATE_file___Object___stdout};
83 val_t variable0;
84 static val_t once_value_variable0_7; static int once_bool_variable0_7;
85 trace.prev = tracehead; tracehead = &trace;
86 trace.file = LOCATE_file;
87 if (once_bool_variable0_7) variable0 = once_value_variable0_7;
88 else {
89 variable0 = NEW_Stdout_file___Stdout___init(); /*new Stdout*/
90 once_value_variable0_7 = variable0;
91 once_bool_variable0_7 = true;
92 }
93 goto return_label6;
94 return_label6: while(false);
95 tracehead = trace.prev;
96 return variable0;
97 }
98 val_t file___Object___stderr(val_t self) {
99 struct trace_t trace = {NULL, NULL, 296, LOCATE_file___Object___stderr};
100 val_t variable0;
101 static val_t once_value_variable0_9; static int once_bool_variable0_9;
102 trace.prev = tracehead; tracehead = &trace;
103 trace.file = LOCATE_file;
104 if (once_bool_variable0_9) variable0 = once_value_variable0_9;
105 else {
106 variable0 = NEW_Stderr_file___Stderr___init(); /*new Stderr*/
107 once_value_variable0_9 = variable0;
108 once_bool_variable0_9 = true;
109 }
110 goto return_label8;
111 return_label8: while(false);
112 tracehead = trace.prev;
113 return variable0;
114 }
115 val_t file___FStream___path(val_t self) {
116 struct trace_t trace = {NULL, NULL, 57, LOCATE_file___FStream___path};
117 trace.prev = tracehead; tracehead = &trace;
118 trace.file = LOCATE_file;
119 tracehead = trace.prev;
120 return ATTR_file___FStream____path( self) /*FStream::_path*/;
121 }
122 val_t file___FStream___file_stat(val_t self) {
123 struct trace_t trace = {NULL, NULL, 63, LOCATE_file___FStream___file_stat};
124 val_t variable0;
125 trace.prev = tracehead; tracehead = &trace;
126 trace.file = LOCATE_file;
127 variable0 = ATTR_file___FStream____file( self) /*FStream::_file*/;
128 variable0 = ((file___NativeFile___file_stat_t)CALL(variable0,COLOR_file___NativeFile___file_stat))(variable0) /*NativeFile::file_stat*/;
129 goto return_label10;
130 return_label10: while(false);
131 tracehead = trace.prev;
132 return variable0;
133 }
134 void file___IFStream___reopen(val_t self) {
135 struct trace_t trace = {NULL, NULL, 73, LOCATE_file___IFStream___reopen};
136 val_t variable0;
137 trace.prev = tracehead; tracehead = &trace;
138 trace.file = LOCATE_file;
139 variable0 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
140 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { /*if*/
141 ((file___IFStream___close_t)CALL( self,COLOR_stream___IOS___close))( self) /*IFStream::close*/;
142 }
143 variable0 = ATTR_file___FStream____path( self) /*FStream::_path*/;
144 variable0 = ((string___String___to_cstring_t)CALL(variable0,COLOR_string___String___to_cstring))(variable0) /*String::to_cstring*/;
145 variable0 = ((file___NativeFileCapable___io_open_read_t)CALL( self,COLOR_file___NativeFileCapable___io_open_read))( self, variable0) /*NativeFileCapable::io_open_read*/;
146 ATTR_file___FStream____file( self) /*FStream::_file*/ = variable0;
147 ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/ = TAG_Bool(false);
148 ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ = TAG_Int(0);
149 variable0 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
150 ((array___AbstractArray___clear_t)CALL(variable0,COLOR_abstract_collection___RemovableCollection___clear))(variable0) /*AbstractArray::clear*/;
151 tracehead = trace.prev;
152 return;
153 }
154 void file___IFStream___close(val_t self) {
155 struct trace_t trace = {NULL, NULL, 82, LOCATE_file___IFStream___close};
156 val_t variable0;
157 val_t variable1;
158 trace.prev = tracehead; tracehead = &trace;
159 trace.file = LOCATE_file;
160 variable1 = ATTR_file___FStream____file( self) /*FStream::_file*/;
161 variable1 = ((file___NativeFile___io_close_t)CALL(variable1,COLOR_file___NativeFile___io_close))(variable1) /*NativeFile::io_close*/;
162 variable0 = variable1;
163 ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/ = TAG_Bool(true);
164 tracehead = trace.prev;
165 return;
166 }
167 void file___IFStream___fill_buffer(val_t self) {
168 struct trace_t trace = {NULL, NULL, 88, LOCATE_file___IFStream___fill_buffer};
169 val_t variable0;
170 val_t variable1;
171 val_t variable2;
172 val_t variable3;
173 trace.prev = tracehead; tracehead = &trace;
174 trace.file = LOCATE_file;
175 variable1 = ATTR_file___FStream____file( self) /*FStream::_file*/;
176 variable2 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
177 variable2 = ATTR_string___String____items(variable2) /*String::_items*/;
178 variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
179 variable3 = ATTR_string___String____capacity(variable3) /*String::_capacity*/;
180 variable1 = ((file___NativeFile___io_read_t)CALL(variable1,COLOR_file___NativeFile___io_read))(variable1, variable2, variable3) /*NativeFile::io_read*/;
181 variable0 = variable1;
182 variable1 = TAG_Bool(UNTAG_Int( variable0 /*nb*/)<=UNTAG_Int( TAG_Int(0)));
183 if (UNTAG_Bool(variable1)) { /*if*/
184 ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/ = TAG_Bool(true);
185 variable0 = TAG_Int(0) /*nb=*/;
186 }
187 variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
188 ATTR_array___AbstractArray____length(variable1) /*AbstractArray::_length*/ = variable0 /*nb*/;
189 ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ = TAG_Int(0);
190 tracehead = trace.prev;
191 return;
192 }
193 val_t file___IFStream___end_reached(val_t self) {
194 struct trace_t trace = {NULL, NULL, 100, LOCATE_file___IFStream___end_reached};
195 trace.prev = tracehead; tracehead = &trace;
196 trace.file = LOCATE_file;
197 tracehead = trace.prev;
198 return ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/;
199 }
200 void file___IFStream___open(val_t self, val_t param0, int* init_table) {
201 struct trace_t trace = {NULL, NULL, 103, LOCATE_file___IFStream___open};
202 val_t variable0;
203 val_t variable1;
204 trace.prev = tracehead; tracehead = &trace;
205 trace.file = LOCATE_file;
206 variable0 = param0;
207 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i]) return;
208 ATTR_file___FStream____path( self) /*FStream::_path*/ = variable0 /*path*/;
209 ((stream___BufferedIStream___prepare_buffer_t)CALL( self,COLOR_stream___BufferedIStream___prepare_buffer))( self, TAG_Int(10)) /*BufferedIStream::prepare_buffer*/;
210 variable1 = ATTR_file___FStream____path( self) /*FStream::_path*/;
211 variable1 = ((string___String___to_cstring_t)CALL(variable1,COLOR_string___String___to_cstring))(variable1) /*String::to_cstring*/;
212 variable1 = ((file___NativeFileCapable___io_open_read_t)CALL( self,COLOR_file___NativeFileCapable___io_open_read))( self, variable1) /*NativeFileCapable::io_open_read*/;
213 ATTR_file___FStream____file( self) /*FStream::_file*/ = variable1;
214 variable1 = ATTR_file___FStream____file( self) /*FStream::_file*/;
215 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*/) /*Object::==*/)))))));
216 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", " 'cant_open_file' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___IFStream___open, LOCATE_file, 109); nit_exit(1);}
217 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i] = 1;
218 tracehead = trace.prev;
219 return;
220 }
221 void file___IFStream___init(val_t self, int* init_table) {
222 struct trace_t trace = {NULL, NULL, 112, LOCATE_file___IFStream___init};
223 trace.prev = tracehead; tracehead = &trace;
224 trace.file = LOCATE_file;
225 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i]) return;
226 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i] = 1;
227 tracehead = trace.prev;
228 return;
229 }
230 void file___IFStream___without_file(val_t self, int* init_table) {
231 struct trace_t trace = {NULL, NULL, 113, LOCATE_file___IFStream___without_file};
232 trace.prev = tracehead; tracehead = &trace;
233 trace.file = LOCATE_file;
234 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i]) return;
235 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_IFStream].i] = 1;
236 tracehead = trace.prev;
237 return;
238 }
239 void file___OFStream___write(val_t self, val_t param0) {
240 struct trace_t trace = {NULL, NULL, 121, LOCATE_file___OFStream___write};
241 val_t variable0;
242 val_t variable1;
243 val_t variable2;
244 trace.prev = tracehead; tracehead = &trace;
245 trace.file = LOCATE_file;
246 variable0 = param0;
247 variable1 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
248 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___write, LOCATE_file, 124); nit_exit(1);}
249 variable1 = ((string___String___to_cstring_t)CALL( variable0 /*s*/,COLOR_string___String___to_cstring))( variable0 /*s*/) /*String::to_cstring*/;
250 variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/;
251 ((file___OFStream___write_native_t)CALL( self,COLOR_file___OFStream___write_native))( self, variable1, variable2) /*OFStream::write_native*/;
252 tracehead = trace.prev;
253 return;
254 }
255 val_t file___OFStream___is_writable(val_t self) {
256 struct trace_t trace = {NULL, NULL, 128, LOCATE_file___OFStream___is_writable};
257 val_t variable0;
258 trace.prev = tracehead; tracehead = &trace;
259 trace.file = LOCATE_file;
260 variable0 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
261 goto return_label18;
262 return_label18: while(false);
263 tracehead = trace.prev;
264 return variable0;
265 }
266 void file___OFStream___close(val_t self) {
267 struct trace_t trace = {NULL, NULL, 130, LOCATE_file___OFStream___close};
268 val_t variable0;
269 val_t variable1;
270 trace.prev = tracehead; tracehead = &trace;
271 trace.file = LOCATE_file;
272 variable1 = ATTR_file___FStream____file( self) /*FStream::_file*/;
273 variable1 = ((file___NativeFile___io_close_t)CALL(variable1,COLOR_file___NativeFile___io_close))(variable1) /*NativeFile::io_close*/;
274 variable0 = variable1;
275 ATTR_file___OFStream____writable( self) /*OFStream::_writable*/ = TAG_Bool(false);
276 tracehead = trace.prev;
277 return;
278 }
279 void file___OFStream___write_native(val_t self, val_t param0, val_t param1) {
280 struct trace_t trace = {NULL, NULL, 139, LOCATE_file___OFStream___write_native};
281 val_t variable0;
282 val_t variable1;
283 val_t variable2;
284 val_t variable3;
285 val_t variable4;
286 val_t variable5;
287 val_t variable6;
288 trace.prev = tracehead; tracehead = &trace;
289 trace.file = LOCATE_file;
290 variable0 = param0;
291 variable1 = param1;
292 variable2 = ATTR_file___OFStream____writable( self) /*OFStream::_writable*/;
293 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___write_native, LOCATE_file, 142); nit_exit(1);}
294 variable3 = ATTR_file___FStream____file( self) /*FStream::_file*/;
295 variable3 = ((file___NativeFile___io_write_t)CALL(variable3,COLOR_file___NativeFile___io_write))(variable3, variable0 /*native*/, variable1 /*len*/) /*NativeFile::io_write*/;
296 variable2 = variable3;
297 variable3 = TAG_Bool(( variable2 /*err*/)!=( variable1 /*len*/));
298 if (UNTAG_Bool(variable3)) { /*if*/
299 variable3 = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Object]*/
300 variable4 = NEW_String_string___String___with_native(BOX_NativeString("Problem in writing : "), TAG_Int(21)); /*new String*/
301 ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable4) /*AbstractArray::add*/;
302 ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable2 /*err*/) /*AbstractArray::add*/;
303 variable5 = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
304 ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable5) /*AbstractArray::add*/;
305 ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable1 /*len*/) /*AbstractArray::add*/;
306 variable6 = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
307 ((array___AbstractArray___add_t)CALL(variable3,COLOR_abstract_collection___SimpleCollection___add))(variable3, variable6) /*AbstractArray::add*/;
308 ((file___Object___printn_t)CALL( self,COLOR_file___Object___printn))( self, variable3) /*Object::printn*/;
309 }
310 tracehead = trace.prev;
311 return;
312 }
313 void file___OFStream___open(val_t self, val_t param0, int* init_table) {
314 struct trace_t trace = {NULL, NULL, 150, LOCATE_file___OFStream___open};
315 val_t variable0;
316 val_t variable1;
317 trace.prev = tracehead; tracehead = &trace;
318 trace.file = LOCATE_file;
319 variable0 = param0;
320 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i]) return;
321 variable1 = ((string___String___to_cstring_t)CALL( variable0 /*path*/,COLOR_string___String___to_cstring))( variable0 /*path*/) /*String::to_cstring*/;
322 variable1 = ((file___NativeFileCapable___io_open_write_t)CALL( self,COLOR_file___NativeFileCapable___io_open_write))( self, variable1) /*NativeFileCapable::io_open_write*/;
323 ATTR_file___FStream____file( self) /*FStream::_file*/ = variable1;
324 variable1 = ATTR_file___FStream____file( self) /*FStream::_file*/;
325 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*/) /*Object::==*/)))))));
326 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", " 'cant_open_file' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___open, LOCATE_file, 154); nit_exit(1);}
327 ATTR_file___FStream____path( self) /*FStream::_path*/ = variable0 /*path*/;
328 ATTR_file___OFStream____writable( self) /*OFStream::_writable*/ = TAG_Bool(true);
329 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i] = 1;
330 tracehead = trace.prev;
331 return;
332 }
333 void file___OFStream___init(val_t self, int* init_table) {
334 struct trace_t trace = {NULL, NULL, 159, LOCATE_file___OFStream___init};
335 trace.prev = tracehead; tracehead = &trace;
336 trace.file = LOCATE_file;
337 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i]) return;
338 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i] = 1;
339 tracehead = trace.prev;
340 return;
341 }
342 void file___OFStream___without_file(val_t self, int* init_table) {
343 struct trace_t trace = {NULL, NULL, 160, LOCATE_file___OFStream___without_file};
344 trace.prev = tracehead; tracehead = &trace;
345 trace.file = LOCATE_file;
346 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i]) return;
347 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OFStream].i] = 1;
348 tracehead = trace.prev;
349 return;
350 }
351 void file___Stdin___init(val_t self, int* init_table) {
352 struct trace_t trace = {NULL, NULL, 167, LOCATE_file___Stdin___init};
353 val_t variable0;
354 trace.prev = tracehead; tracehead = &trace;
355 trace.file = LOCATE_file;
356 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdin].i]) return;
357 ((file___IFStream___init_t)CALL( self,COLOR_file___IFStream___init))( self, init_table /*YYY*/) /*IFStream::init*/;
358 variable0 = ((file___NativeFileCapable___native_stdin_t)CALL( self,COLOR_file___NativeFileCapable___native_stdin))( self) /*NativeFileCapable::native_stdin*/;
359 ATTR_file___FStream____file( self) /*FStream::_file*/ = variable0;
360 variable0 = NEW_String_string___String___with_native(BOX_NativeString("/dev/stdin"), TAG_Int(10)); /*new String*/
361 ATTR_file___FStream____path( self) /*FStream::_path*/ = variable0;
362 ((stream___BufferedIStream___prepare_buffer_t)CALL( self,COLOR_stream___BufferedIStream___prepare_buffer))( self, TAG_Int(1)) /*BufferedIStream::prepare_buffer*/;
363 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdin].i] = 1;
364 tracehead = trace.prev;
365 return;
366 }
367 void file___Stdout___init(val_t self, int* init_table) {
368 struct trace_t trace = {NULL, NULL, 176, LOCATE_file___Stdout___init};
369 val_t variable0;
370 trace.prev = tracehead; tracehead = &trace;
371 trace.file = LOCATE_file;
372 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdout].i]) return;
373 ((file___OFStream___init_t)CALL( self,COLOR_file___OFStream___init))( self, init_table /*YYY*/) /*OFStream::init*/;
374 variable0 = ((file___NativeFileCapable___native_stdout_t)CALL( self,COLOR_file___NativeFileCapable___native_stdout))( self) /*NativeFileCapable::native_stdout*/;
375 ATTR_file___FStream____file( self) /*FStream::_file*/ = variable0;
376 variable0 = NEW_String_string___String___with_native(BOX_NativeString("/dev/stdout"), TAG_Int(11)); /*new String*/
377 ATTR_file___FStream____path( self) /*FStream::_path*/ = variable0;
378 ATTR_file___OFStream____writable( self) /*OFStream::_writable*/ = TAG_Bool(true);
379 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stdout].i] = 1;
380 tracehead = trace.prev;
381 return;
382 }
383 void file___Stderr___init(val_t self, int* init_table) {
384 struct trace_t trace = {NULL, NULL, 185, LOCATE_file___Stderr___init};
385 val_t variable0;
386 trace.prev = tracehead; tracehead = &trace;
387 trace.file = LOCATE_file;
388 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stderr].i]) return;
389 ((file___OFStream___init_t)CALL( self,COLOR_file___OFStream___init))( self, init_table /*YYY*/) /*OFStream::init*/;
390 variable0 = ((file___NativeFileCapable___native_stderr_t)CALL( self,COLOR_file___NativeFileCapable___native_stderr))( self) /*NativeFileCapable::native_stderr*/;
391 ATTR_file___FStream____file( self) /*FStream::_file*/ = variable0;
392 variable0 = NEW_String_string___String___with_native(BOX_NativeString("/dev/stderr"), TAG_Int(11)); /*new String*/
393 ATTR_file___FStream____path( self) /*FStream::_path*/ = variable0;
394 ATTR_file___OFStream____writable( self) /*OFStream::_writable*/ = TAG_Bool(true);
395 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Stderr].i] = 1;
396 tracehead = trace.prev;
397 return;
398 }
399 val_t file___String___file_exists(val_t self) {
400 struct trace_t trace = {NULL, NULL, 195, LOCATE_file___String___file_exists};
401 val_t variable0;
402 trace.prev = tracehead; tracehead = &trace;
403 trace.file = LOCATE_file;
404 variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/;
405 variable0 = ((file___NativeString___file_exists_t)CALL(variable0,COLOR_file___NativeString___file_exists))(variable0) /*NativeString::file_exists*/;
406 goto return_label27;
407 return_label27: while(false);
408 tracehead = trace.prev;
409 return variable0;
410 }
411 val_t file___String___file_stat(val_t self) {
412 struct trace_t trace = {NULL, NULL, 198, LOCATE_file___String___file_stat};
413 val_t variable0;
414 trace.prev = tracehead; tracehead = &trace;
415 trace.file = LOCATE_file;
416 variable0 = ((string___String___to_cstring_t)CALL( self,COLOR_string___String___to_cstring))( self) /*String::to_cstring*/;
417 variable0 = ((file___NativeString___file_stat_t)CALL(variable0,COLOR_file___NativeString___file_stat))(variable0) /*NativeString::file_stat*/;
418 goto return_label28;
419 return_label28: while(false);
420 tracehead = trace.prev;
421 return variable0;
422 }
423 val_t file___String___strip_extension(val_t self, val_t param0) {
424 struct trace_t trace = {NULL, NULL, 200, LOCATE_file___String___strip_extension};
425 val_t variable0;
426 val_t variable1;
427 val_t variable2;
428 trace.prev = tracehead; tracehead = &trace;
429 trace.file = LOCATE_file;
430 variable0 = param0;
431 variable1 = ((string___String___has_suffix_t)CALL( self,COLOR_string___String___has_suffix))( self, variable0 /*ext*/) /*String::has_suffix*/;
432 if (UNTAG_Bool(variable1)) { /*if*/
433 variable1 = ((array___AbstractArray___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*AbstractArray::length*/;
434 variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*ext*/,COLOR_abstract_collection___Collection___length))( variable0 /*ext*/) /*AbstractArray::length*/;
435 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int(variable2));
436 variable1 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self, TAG_Int(0), variable1) /*String::substring*/;
437 goto return_label29;
438 }
439 variable1 = self;
440 goto return_label29;
441 return_label29: while(false);
442 tracehead = trace.prev;
443 return variable1;
444 }
445 val_t file___String___basename(val_t self, val_t param0) {
446 struct trace_t trace = {NULL, NULL, 208, LOCATE_file___String___basename};
447 val_t variable0;
448 val_t variable1;
449 val_t variable2;
450 val_t variable3;
451 trace.prev = tracehead; tracehead = &trace;
452 trace.file = LOCATE_file;
453 variable0 = param0;
454 variable2 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
455 variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
456 variable2 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self, TAG_Char('/'), variable2) /*AbstractArray::last_index_of_from*/;
457 variable1 = variable2;
458 variable2 = self;
459 variable3 = TAG_Bool(UNTAG_Int( variable1 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
460 if (UNTAG_Bool(variable3)) { /*if*/
461 variable3 = TAG_Int(UNTAG_Int( variable1 /*pos*/)+UNTAG_Int( TAG_Int(1)));
462 variable3 = ((string___String___substring_from_t)CALL( self,COLOR_string___String___substring_from))( self, variable3) /*String::substring_from*/;
463 variable2 = variable3 /*n=*/;
464 }
465 variable3 = ((file___String___strip_extension_t)CALL( variable2 /*n*/,COLOR_file___String___strip_extension))( variable2 /*n*/, variable0 /*ext*/) /*String::strip_extension*/;
466 variable1 = variable3;
467 goto return_label30;
468 return_label30: while(false);
469 tracehead = trace.prev;
470 return variable1;
471 }
472 val_t file___String___dirname(val_t self) {
473 struct trace_t trace = {NULL, NULL, 218, LOCATE_file___String___dirname};
474 val_t variable0;
475 val_t variable1;
476 trace.prev = tracehead; tracehead = &trace;
477 trace.file = LOCATE_file;
478 variable1 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
479 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
480 variable1 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self, TAG_Char('/'), variable1) /*AbstractArray::last_index_of_from*/;
481 variable0 = variable1;
482 variable1 = TAG_Bool(UNTAG_Int( variable0 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
483 if (UNTAG_Bool(variable1)) { /*if*/
484 variable1 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self, TAG_Int(0), variable0 /*pos*/) /*String::substring*/;
485 variable0 = variable1;
486 goto return_label31;
487 } else { /*if*/
488 variable1 = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
489 variable0 = variable1;
490 goto return_label31;
491 }
492 return_label31: while(false);
493 tracehead = trace.prev;
494 return variable0;
495 }
496 val_t file___String___file_path(val_t self) {
497 struct trace_t trace = {NULL, NULL, 228, LOCATE_file___String___file_path};
498 val_t variable0;
499 val_t variable1;
500 val_t variable2;
501 trace.prev = tracehead; tracehead = &trace;
502 trace.file = LOCATE_file;
503 variable1 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
504 variable0 = variable1;
505 variable2 = TAG_Int(UNTAG_Int( variable0 /*l*/)-UNTAG_Int( TAG_Int(1)));
506 variable2 = ((array___AbstractArray___last_index_of_from_t)CALL( self,COLOR_array___AbstractArray___last_index_of_from))( self, TAG_Char('/'), variable2) /*AbstractArray::last_index_of_from*/;
507 variable1 = variable2;
508 variable2 = TAG_Bool(UNTAG_Int( variable1 /*pos*/)>=UNTAG_Int( TAG_Int(0)));
509 if (UNTAG_Bool(variable2)) { /*if*/
510 variable2 = ((string___String___substring_t)CALL( self,COLOR_string___String___substring))( self, TAG_Int(0), variable1 /*pos*/) /*String::substring*/;
511 variable0 = variable2;
512 goto return_label32;
513 }
514 variable2 = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
515 variable0 = variable2;
516 goto return_label32;
517 return_label32: while(false);
518 tracehead = trace.prev;
519 return variable0;
520 }
521 void file___String___mkdir(val_t self) {
522 struct trace_t trace = {NULL, NULL, 238, LOCATE_file___String___mkdir};
523 val_t variable0;
524 val_t variable1;
525 val_t variable2;
526 val_t variable3;
527 val_t variable4;
528 trace.prev = tracehead; tracehead = &trace;
529 trace.file = LOCATE_file;
530 variable1 = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
531 variable1 = ((string_search___String___split_with_t)CALL( self,COLOR_string_search___String___split_with))( self, variable1) /*String::split_with*/;
532 variable0 = variable1;
533 variable2 = NEW_String_string___String___init(); /*new String*/
534 variable1 = variable2;
535 variable2 = ((array___AbstractArray___is_empty_t)CALL( variable0 /*dirs*/,COLOR_abstract_collection___Collection___is_empty))( variable0 /*dirs*/) /*AbstractArray::is_empty*/;
536 if (UNTAG_Bool(variable2)) { /*if*/
537 goto return_label33;
538 }
539 variable2 = TAG_Int(0);
540 variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
541 variable4 = variable3;
542 if (UNTAG_Bool(variable4)) { /* and */
543 variable4 = ATTR_array___AbstractArray____length( variable0 /*dirs*/) /*AbstractArray::_length*/;
544 variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
545 }
546 variable3 = variable4;
547 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_file, 229); nit_exit(1);}
548 variable3 = ATTR_array___Array____items( variable0 /*dirs*/) /*Array::_items*/;
549 variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
550 goto return_label34;
551 return_label34: while(false);
552 variable2 = variable3;
553 variable2 = ((array___AbstractArray___is_empty_t)CALL(variable2,COLOR_abstract_collection___Collection___is_empty))(variable2) /*AbstractArray::is_empty*/;
554 if (UNTAG_Bool(variable2)) { /*if*/
555 ((string___String___add_t)CALL( variable1 /*path*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*path*/, TAG_Char('/')) /*String::add*/;
556 }
557 variable2 = ((array___AbstractArray___iterator_t)CALL( variable0 /*dirs*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*dirs*/) /*AbstractArray::iterator*/;
558 while (true) { /*for*/
559 variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
560 if (!UNTAG_Bool(variable3)) break; /*for*/
561 variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/;
562 variable4 = ((array___AbstractArray___is_empty_t)CALL( variable3 /*d*/,COLOR_abstract_collection___Collection___is_empty))( variable3 /*d*/) /*AbstractArray::is_empty*/;
563 if (UNTAG_Bool(variable4)) { /*if*/
564 goto continue_35;
565 }
566 ((string___String___append_t)CALL( variable1 /*path*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*path*/, variable3 /*d*/) /*String::append*/;
567 ((string___String___add_t)CALL( variable1 /*path*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*path*/, TAG_Char('/')) /*String::add*/;
568 variable4 = ((string___String___to_cstring_t)CALL( variable1 /*path*/,COLOR_string___String___to_cstring))( variable1 /*path*/) /*String::to_cstring*/;
569 ((file___NativeString___file_mkdir_t)CALL(variable4,COLOR_file___NativeString___file_mkdir))(variable4) /*NativeString::file_mkdir*/;
570 continue_35: while(0);
571 ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/;
572 }
573 break_35: while(0);
574 return_label33: while(false);
575 tracehead = trace.prev;
576 return;
577 }
578 val_t file___NativeString___file_exists(val_t self) {
579 struct trace_t trace = {NULL, NULL, 258, LOCATE_file___NativeString___file_exists};
580 trace.prev = tracehead; tracehead = &trace;
581 trace.file = LOCATE_file;
582 tracehead = trace.prev;
583 return TAG_Bool(string_NativeString_NativeString_file_exists_0(UNBOX_NativeString( self)));
584 }
585 val_t file___NativeString___file_stat(val_t self) {
586 struct trace_t trace = {NULL, NULL, 259, LOCATE_file___NativeString___file_stat};
587 trace.prev = tracehead; tracehead = &trace;
588 trace.file = LOCATE_file;
589 tracehead = trace.prev;
590 return BOX_FileStat(string_NativeString_NativeString_file_stat_0(UNBOX_NativeString( self)));
591 }
592 val_t file___NativeString___file_mkdir(val_t self) {
593 struct trace_t trace = {NULL, NULL, 260, LOCATE_file___NativeString___file_mkdir};
594 trace.prev = tracehead; tracehead = &trace;
595 trace.file = LOCATE_file;
596 tracehead = trace.prev;
597 return TAG_Bool(string_NativeString_NativeString_file_mkdir_0(UNBOX_NativeString( self)));
598 }
599 val_t file___FileStat___mode(val_t self) {
600 struct trace_t trace = {NULL, NULL, 265, LOCATE_file___FileStat___mode};
601 trace.prev = tracehead; tracehead = &trace;
602 trace.file = LOCATE_file;
603 tracehead = trace.prev;
604 return TAG_Int(file_FileStat_FileStat_mode_0(UNBOX_FileStat( self)));
605 }
606 val_t file___FileStat___atime(val_t self) {
607 struct trace_t trace = {NULL, NULL, 267, LOCATE_file___FileStat___atime};
608 trace.prev = tracehead; tracehead = &trace;
609 trace.file = LOCATE_file;
610 tracehead = trace.prev;
611 return TAG_Int(file_FileStat_FileStat_atime_0(UNBOX_FileStat( self)));
612 }
613 val_t file___FileStat___ctime(val_t self) {
614 struct trace_t trace = {NULL, NULL, 268, LOCATE_file___FileStat___ctime};
615 trace.prev = tracehead; tracehead = &trace;
616 trace.file = LOCATE_file;
617 tracehead = trace.prev;
618 return TAG_Int(file_FileStat_FileStat_ctime_0(UNBOX_FileStat( self)));
619 }
620 val_t file___FileStat___mtime(val_t self) {
621 struct trace_t trace = {NULL, NULL, 269, LOCATE_file___FileStat___mtime};
622 trace.prev = tracehead; tracehead = &trace;
623 trace.file = LOCATE_file;
624 tracehead = trace.prev;
625 return TAG_Int(file_FileStat_FileStat_mtime_0(UNBOX_FileStat( self)));
626 }
627 val_t file___FileStat___size(val_t self) {
628 struct trace_t trace = {NULL, NULL, 270, LOCATE_file___FileStat___size};
629 trace.prev = tracehead; tracehead = &trace;
630 trace.file = LOCATE_file;
631 tracehead = trace.prev;
632 return TAG_Int(file_FileStat_FileStat_size_0(UNBOX_FileStat( self)));
633 }
634 val_t file___NativeFile___io_read(val_t self, val_t param0, val_t param1) {
635 struct trace_t trace = {NULL, NULL, 276, LOCATE_file___NativeFile___io_read};
636 trace.prev = tracehead; tracehead = &trace;
637 trace.file = LOCATE_file;
638 tracehead = trace.prev;
639 return TAG_Int(file_NativeFile_NativeFile_io_read_2(UNBOX_NativeFile( self), UNBOX_NativeString( param0), UNTAG_Int( param1)));
640 }
641 val_t file___NativeFile___io_write(val_t self, val_t param0, val_t param1) {
642 struct trace_t trace = {NULL, NULL, 277, LOCATE_file___NativeFile___io_write};
643 trace.prev = tracehead; tracehead = &trace;
644 trace.file = LOCATE_file;
645 tracehead = trace.prev;
646 return TAG_Int(file_NativeFile_NativeFile_io_write_2(UNBOX_NativeFile( self), UNBOX_NativeString( param0), UNTAG_Int( param1)));
647 }
648 val_t file___NativeFile___io_close(val_t self) {
649 struct trace_t trace = {NULL, NULL, 278, LOCATE_file___NativeFile___io_close};
650 trace.prev = tracehead; tracehead = &trace;
651 trace.file = LOCATE_file;
652 tracehead = trace.prev;
653 return TAG_Int(file_NativeFile_NativeFile_io_close_0(UNBOX_NativeFile( self)));
654 }
655 val_t file___NativeFile___file_stat(val_t self) {
656 struct trace_t trace = {NULL, NULL, 279, LOCATE_file___NativeFile___file_stat};
657 trace.prev = tracehead; tracehead = &trace;
658 trace.file = LOCATE_file;
659 tracehead = trace.prev;
660 return BOX_FileStat(file_NativeFile_NativeFile_file_stat_0(UNBOX_NativeFile( self)));
661 }
662 val_t file___NativeFileCapable___io_open_read(val_t self, val_t param0) {
663 struct trace_t trace = {NULL, NULL, 283, LOCATE_file___NativeFileCapable___io_open_read};
664 trace.prev = tracehead; tracehead = &trace;
665 trace.file = LOCATE_file;
666 tracehead = trace.prev;
667 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_read_1( self, UNBOX_NativeString( param0)));
668 }
669 val_t file___NativeFileCapable___io_open_write(val_t self, val_t param0) {
670 struct trace_t trace = {NULL, NULL, 284, LOCATE_file___NativeFileCapable___io_open_write};
671 trace.prev = tracehead; tracehead = &trace;
672 trace.file = LOCATE_file;
673 tracehead = trace.prev;
674 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_write_1( self, UNBOX_NativeString( param0)));
675 }
676 val_t file___NativeFileCapable___native_stdin(val_t self) {
677 struct trace_t trace = {NULL, NULL, 285, LOCATE_file___NativeFileCapable___native_stdin};
678 trace.prev = tracehead; tracehead = &trace;
679 trace.file = LOCATE_file;
680 tracehead = trace.prev;
681 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdin_0( self));
682 }
683 val_t file___NativeFileCapable___native_stdout(val_t self) {
684 struct trace_t trace = {NULL, NULL, 286, LOCATE_file___NativeFileCapable___native_stdout};
685 trace.prev = tracehead; tracehead = &trace;
686 trace.file = LOCATE_file;
687 tracehead = trace.prev;
688 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdout_0( self));
689 }
690 val_t file___NativeFileCapable___native_stderr(val_t self) {
691 struct trace_t trace = {NULL, NULL, 287, LOCATE_file___NativeFileCapable___native_stderr};
692 trace.prev = tracehead; tracehead = &trace;
693 trace.file = LOCATE_file;
694 tracehead = trace.prev;
695 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stderr_0( self));
696 }