7eb078b48523b16f71d34278e8df71f22543cb5a
[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, 25, LOCATE_file___Object___printn};
5 val_t variable[5];
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_file;
9 variable[0] = self;
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, " in %s (%s:%d)\n", LOCATE_file___Object___printn, LOCATE_file, 26); nit_exit(1); } /*cast Array[Object]*/;
12 variable[1] = param0;
13 variable[3] = variable[0];
14 variable[3] = CALL_file___Object___stdout(variable[3])(variable[3]) /*Object::stdout*/;
15 variable[4] = CALL_string___Object___to_s( variable[1] /*objects*/)( variable[1] /*objects*/) /*Collection::to_s*/;
16 CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
17 return_label0: while(false);
18 tracehead = trace.prev;
19 return;
20 }
21 void file___Object___print(val_t self, val_t param0) {
22 struct trace_t trace = {NULL, NULL, 31, LOCATE_file___Object___print};
23 val_t variable[5];
24 void **closurevariable = NULL;
25 trace.prev = tracehead; tracehead = &trace;
26 trace.file = LOCATE_file;
27 variable[0] = self;
28 variable[1] = param0;
29 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*object*/ == NIT_NULL /*null*/) || (( variable[1] /*object*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*object*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*object*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*object*/)( variable[1] /*object*/, NIT_NULL /*null*/) /*Object::==*/)))))));
30 if (UNTAG_Bool(variable[3])) { /*if*/
31 variable[3] = variable[0];
32 variable[3] = CALL_file___Object___stdout(variable[3])(variable[3]) /*Object::stdout*/;
33 variable[4] = CALL_string___Object___to_s( variable[1] /*object*/)( variable[1] /*object*/) /*Object::to_s*/;
34 CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
35 }
36 variable[3] = variable[0];
37 variable[3] = CALL_file___Object___stdout(variable[3])(variable[3]) /*Object::stdout*/;
38 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
39 CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
40 return_label1: while(false);
41 tracehead = trace.prev;
42 return;
43 }
44 val_t file___Object___getc(val_t self) {
45 struct trace_t trace = {NULL, NULL, 40, LOCATE_file___Object___getc};
46 val_t variable[3];
47 void **closurevariable = NULL;
48 trace.prev = tracehead; tracehead = &trace;
49 trace.file = LOCATE_file;
50 variable[0] = self;
51 variable[2] = variable[0];
52 variable[2] = CALL_file___Object___stdin(variable[2])(variable[2]) /*Object::stdin*/;
53 variable[2] = CALL_stream___IStream___read_char(variable[2])(variable[2]) /*BufferedIStream::read_char*/;
54 variable[2] = TAG_Char(UNTAG_Int(variable[2]));
55 variable[1] = variable[2];
56 goto return_label2;
57 return_label2: while(false);
58 tracehead = trace.prev;
59 return variable[1];
60 }
61 val_t file___Object___gets(val_t self) {
62 struct trace_t trace = {NULL, NULL, 46, LOCATE_file___Object___gets};
63 val_t variable[3];
64 void **closurevariable = NULL;
65 trace.prev = tracehead; tracehead = &trace;
66 trace.file = LOCATE_file;
67 variable[0] = self;
68 variable[2] = variable[0];
69 variable[2] = CALL_file___Object___stdin(variable[2])(variable[2]) /*Object::stdin*/;
70 variable[2] = CALL_stream___IStream___read_line(variable[2])(variable[2]) /*IStream::read_line*/;
71 variable[1] = variable[2];
72 goto return_label3;
73 return_label3: while(false);
74 tracehead = trace.prev;
75 return variable[1];
76 }
77 val_t file___Object___stdin(val_t self) {
78 struct trace_t trace = {NULL, NULL, 294, LOCATE_file___Object___stdin};
79 static val_t once_value_5; static int once_bool_5; /* Once value for variable[2]*/
80 val_t variable[3];
81 void **closurevariable = NULL;
82 trace.prev = tracehead; tracehead = &trace;
83 trace.file = LOCATE_file;
84 variable[0] = self;
85 if (once_bool_5) variable[2] = once_value_5;
86 else {
87 variable[2] = NEW_Stdin_file___Stdin___init(); /*new Stdin*/
88 once_value_5 = variable[2];
89 once_bool_5 = true;
90 }
91 variable[1] = variable[2];
92 goto return_label4;
93 return_label4: while(false);
94 tracehead = trace.prev;
95 return variable[1];
96 }
97 val_t file___Object___stdout(val_t self) {
98 struct trace_t trace = {NULL, NULL, 297, LOCATE_file___Object___stdout};
99 static val_t once_value_7; static int once_bool_7; /* Once value for variable[2]*/
100 val_t variable[3];
101 void **closurevariable = NULL;
102 trace.prev = tracehead; tracehead = &trace;
103 trace.file = LOCATE_file;
104 variable[0] = self;
105 if (once_bool_7) variable[2] = once_value_7;
106 else {
107 variable[2] = NEW_Stdout_file___Stdout___init(); /*new Stdout*/
108 once_value_7 = variable[2];
109 once_bool_7 = true;
110 }
111 variable[1] = variable[2];
112 goto return_label6;
113 return_label6: while(false);
114 tracehead = trace.prev;
115 return variable[1];
116 }
117 val_t file___Object___stderr(val_t self) {
118 struct trace_t trace = {NULL, NULL, 300, LOCATE_file___Object___stderr};
119 static val_t once_value_9; static int once_bool_9; /* Once value for variable[2]*/
120 val_t variable[3];
121 void **closurevariable = NULL;
122 trace.prev = tracehead; tracehead = &trace;
123 trace.file = LOCATE_file;
124 variable[0] = self;
125 if (once_bool_9) variable[2] = once_value_9;
126 else {
127 variable[2] = NEW_Stderr_file___Stderr___init(); /*new Stderr*/
128 once_value_9 = variable[2];
129 once_bool_9 = true;
130 }
131 variable[1] = variable[2];
132 goto return_label8;
133 return_label8: while(false);
134 tracehead = trace.prev;
135 return variable[1];
136 }
137 val_t file___FStream___path(val_t self) {
138 struct trace_t trace = {NULL, NULL, 58, LOCATE_file___FStream___path};
139 val_t *variable = NULL;
140 void **closurevariable = NULL;
141 trace.prev = tracehead; tracehead = &trace;
142 trace.file = LOCATE_file;
143 tracehead = trace.prev;
144 return ATTR_file___FStream____path( self) /*FStream::_path*/;
145 }
146 val_t file___FStream___file_stat(val_t self) {
147 struct trace_t trace = {NULL, NULL, 64, LOCATE_file___FStream___file_stat};
148 val_t variable[3];
149 void **closurevariable = NULL;
150 trace.prev = tracehead; tracehead = &trace;
151 trace.file = LOCATE_file;
152 variable[0] = self;
153 variable[2] = variable[0];
154 variable[2] = ATTR_file___FStream____file(variable[2]) /*FStream::_file*/;
155 variable[2] = CALL_file___NativeFile___file_stat(variable[2])(variable[2]) /*NativeFile::file_stat*/;
156 variable[1] = variable[2];
157 goto return_label10;
158 return_label10: while(false);
159 tracehead = trace.prev;
160 return variable[1];
161 }
162 void file___IFStream___close(val_t self) {
163 struct trace_t trace = {NULL, NULL, 83, LOCATE_file___IFStream___close};
164 val_t variable[4];
165 void **closurevariable = NULL;
166 trace.prev = tracehead; tracehead = &trace;
167 trace.file = LOCATE_file;
168 variable[0] = self;
169 variable[3] = variable[0];
170 variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
171 variable[3] = CALL_file___NativeFile___io_close(variable[3])(variable[3]) /*NativeFile::io_close*/;
172 variable[2] = variable[3];
173 variable[3] = variable[0];
174 ATTR_file___IFStream____end_reached(variable[3]) /*IFStream::_end_reached*/ = TAG_Bool(true);
175 return_label11: while(false);
176 tracehead = trace.prev;
177 return;
178 }
179 void file___IFStream___fill_buffer(val_t self) {
180 struct trace_t trace = {NULL, NULL, 89, LOCATE_file___IFStream___fill_buffer};
181 val_t variable[6];
182 void **closurevariable = NULL;
183 trace.prev = tracehead; tracehead = &trace;
184 trace.file = LOCATE_file;
185 variable[0] = self;
186 variable[3] = variable[0];
187 variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
188 variable[4] = variable[0];
189 variable[4] = ATTR_stream___BufferedIStream____buffer(variable[4]) /*BufferedIStream::_buffer*/;
190 variable[4] = ATTR_string___String____items(variable[4]) /*String::_items*/;
191 variable[5] = variable[0];
192 variable[5] = ATTR_stream___BufferedIStream____buffer(variable[5]) /*BufferedIStream::_buffer*/;
193 variable[5] = ATTR_string___String____capacity(variable[5]) /*String::_capacity*/;
194 variable[3] = CALL_file___NativeFile___io_read(variable[3])(variable[3], variable[4], variable[5]) /*NativeFile::io_read*/;
195 variable[2] = variable[3];
196 variable[3] = TAG_Bool(UNTAG_Int( variable[2] /*nb*/)<=UNTAG_Int( TAG_Int(0)));
197 if (UNTAG_Bool(variable[3])) { /*if*/
198 variable[3] = variable[0];
199 ATTR_file___IFStream____end_reached(variable[3]) /*IFStream::_end_reached*/ = TAG_Bool(true);
200 variable[2] = TAG_Int(0) /*nb=*/;
201 }
202 variable[3] = variable[0];
203 variable[3] = ATTR_stream___BufferedIStream____buffer(variable[3]) /*BufferedIStream::_buffer*/;
204 ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = variable[2] /*nb*/;
205 variable[3] = variable[0];
206 ATTR_stream___BufferedIStream____buffer_pos(variable[3]) /*BufferedIStream::_buffer_pos*/ = TAG_Int(0);
207 return_label12: while(false);
208 tracehead = trace.prev;
209 return;
210 }
211 val_t file___IFStream___end_reached(val_t self) {
212 struct trace_t trace = {NULL, NULL, 101, LOCATE_file___IFStream___end_reached};
213 val_t *variable = NULL;
214 void **closurevariable = NULL;
215 trace.prev = tracehead; tracehead = &trace;
216 trace.file = LOCATE_file;
217 tracehead = trace.prev;
218 return ATTR_file___IFStream____end_reached( self) /*IFStream::_end_reached*/;
219 }
220 void file___IFStream___reopen(val_t self) {
221 struct trace_t trace = {NULL, NULL, 74, LOCATE_file___IFStream___reopen};
222 val_t variable[5];
223 void **closurevariable = NULL;
224 trace.prev = tracehead; tracehead = &trace;
225 trace.file = LOCATE_file;
226 variable[0] = self;
227 variable[2] = variable[0];
228 variable[2] = CALL_stream___IStream___eof(variable[2])(variable[2]) /*BufferedIStream::eof*/;
229 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { /*if*/
230 variable[2] = variable[0];
231 CALL_stream___IOS___close(variable[2])(variable[2]) /*IFStream::close*/;
232 }
233 variable[2] = variable[0];
234 variable[3] = variable[0];
235 variable[4] = variable[0];
236 variable[4] = ATTR_file___FStream____path(variable[4]) /*FStream::_path*/;
237 variable[4] = CALL_string___String___to_cstring(variable[4])(variable[4]) /*String::to_cstring*/;
238 variable[3] = CALL_file___NativeFileCapable___io_open_read(variable[3])(variable[3], variable[4]) /*NativeFileCapable::io_open_read*/;
239 ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
240 variable[2] = variable[0];
241 ATTR_file___IFStream____end_reached(variable[2]) /*IFStream::_end_reached*/ = TAG_Bool(false);
242 variable[2] = variable[0];
243 ATTR_stream___BufferedIStream____buffer_pos(variable[2]) /*BufferedIStream::_buffer_pos*/ = TAG_Int(0);
244 variable[2] = variable[0];
245 variable[2] = ATTR_stream___BufferedIStream____buffer(variable[2]) /*BufferedIStream::_buffer*/;
246 CALL_abstract_collection___RemovableCollection___clear(variable[2])(variable[2]) /*AbstractArray::clear*/;
247 return_label13: while(false);
248 tracehead = trace.prev;
249 return;
250 }
251 void file___IFStream___open(val_t self, val_t param0, int* init_table) {
252 struct trace_t trace = {NULL, NULL, 104, LOCATE_file___IFStream___open};
253 val_t variable[6];
254 void **closurevariable = NULL;
255 trace.prev = tracehead; tracehead = &trace;
256 trace.file = LOCATE_file;
257 variable[0] = self;
258 variable[1] = param0;
259 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i]) return;
260 variable[3] = variable[0];
261 ATTR_file___FStream____path(variable[3]) /*FStream::_path*/ = variable[1] /*path*/;
262 variable[3] = variable[0];
263 CALL_stream___BufferedIStream___prepare_buffer(variable[3])(variable[3], TAG_Int(10)) /*BufferedIStream::prepare_buffer*/;
264 variable[3] = variable[0];
265 variable[4] = variable[0];
266 variable[5] = variable[0];
267 variable[5] = ATTR_file___FStream____path(variable[5]) /*FStream::_path*/;
268 variable[5] = CALL_string___String___to_cstring(variable[5])(variable[5]) /*String::to_cstring*/;
269 variable[4] = CALL_file___NativeFileCapable___io_open_read(variable[4])(variable[4], variable[5]) /*NativeFileCapable::io_open_read*/;
270 ATTR_file___FStream____file(variable[3]) /*FStream::_file*/ = variable[4];
271 variable[3] = variable[0];
272 variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
273 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
274 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'cant_open_file' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___IFStream___open, LOCATE_file, 110); nit_exit(1);}
275 return_label14: while(false);
276 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i] = 1;
277 tracehead = trace.prev;
278 return;
279 }
280 void file___IFStream___init(val_t self, int* init_table) {
281 struct trace_t trace = {NULL, NULL, 113, LOCATE_file___IFStream___init};
282 val_t variable[2];
283 void **closurevariable = NULL;
284 trace.prev = tracehead; tracehead = &trace;
285 trace.file = LOCATE_file;
286 variable[0] = self;
287 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i]) return;
288 return_label15: while(false);
289 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i] = 1;
290 tracehead = trace.prev;
291 return;
292 }
293 void file___IFStream___without_file(val_t self, int* init_table) {
294 struct trace_t trace = {NULL, NULL, 114, LOCATE_file___IFStream___without_file};
295 val_t variable[2];
296 void **closurevariable = NULL;
297 trace.prev = tracehead; tracehead = &trace;
298 trace.file = LOCATE_file;
299 variable[0] = self;
300 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i]) return;
301 return_label16: while(false);
302 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i] = 1;
303 tracehead = trace.prev;
304 return;
305 }
306 void file___OFStream___close(val_t self) {
307 struct trace_t trace = {NULL, NULL, 131, LOCATE_file___OFStream___close};
308 val_t variable[4];
309 void **closurevariable = NULL;
310 trace.prev = tracehead; tracehead = &trace;
311 trace.file = LOCATE_file;
312 variable[0] = self;
313 variable[3] = variable[0];
314 variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
315 variable[3] = CALL_file___NativeFile___io_close(variable[3])(variable[3]) /*NativeFile::io_close*/;
316 variable[2] = variable[3];
317 variable[3] = variable[0];
318 ATTR_file___OFStream____writable(variable[3]) /*OFStream::_writable*/ = TAG_Bool(false);
319 return_label17: while(false);
320 tracehead = trace.prev;
321 return;
322 }
323 void file___OFStream___write(val_t self, val_t param0) {
324 struct trace_t trace = {NULL, NULL, 122, LOCATE_file___OFStream___write};
325 val_t variable[6];
326 void **closurevariable = NULL;
327 trace.prev = tracehead; tracehead = &trace;
328 trace.file = LOCATE_file;
329 variable[0] = self;
330 variable[1] = param0;
331 variable[3] = variable[0];
332 variable[3] = ATTR_file___OFStream____writable(variable[3]) /*OFStream::_writable*/;
333 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___write, LOCATE_file, 125); nit_exit(1);}
334 variable[3] = variable[0];
335 variable[4] = CALL_string___String___to_cstring( variable[1] /*s*/)( variable[1] /*s*/) /*String::to_cstring*/;
336 variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
337 CALL_file___OFStream___write_native(variable[3])(variable[3], variable[4], variable[5]) /*OFStream::write_native*/;
338 return_label18: while(false);
339 tracehead = trace.prev;
340 return;
341 }
342 val_t file___OFStream___is_writable(val_t self) {
343 struct trace_t trace = {NULL, NULL, 129, LOCATE_file___OFStream___is_writable};
344 val_t variable[3];
345 void **closurevariable = NULL;
346 trace.prev = tracehead; tracehead = &trace;
347 trace.file = LOCATE_file;
348 variable[0] = self;
349 variable[2] = variable[0];
350 variable[2] = ATTR_file___OFStream____writable(variable[2]) /*OFStream::_writable*/;
351 variable[1] = variable[2];
352 goto return_label19;
353 return_label19: while(false);
354 tracehead = trace.prev;
355 return variable[1];
356 }
357 void file___OFStream___write_native(val_t self, val_t param0, val_t param1) {
358 struct trace_t trace = {NULL, NULL, 140, LOCATE_file___OFStream___write_native};
359 val_t variable[10];
360 void **closurevariable = NULL;
361 trace.prev = tracehead; tracehead = &trace;
362 trace.file = LOCATE_file;
363 variable[0] = self;
364 variable[1] = param0;
365 variable[2] = param1;
366 variable[4] = variable[0];
367 variable[4] = ATTR_file___OFStream____writable(variable[4]) /*OFStream::_writable*/;
368 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___write_native, LOCATE_file, 143); nit_exit(1);}
369 variable[5] = variable[0];
370 variable[5] = ATTR_file___FStream____file(variable[5]) /*FStream::_file*/;
371 variable[5] = CALL_file___NativeFile___io_write(variable[5])(variable[5], variable[1] /*native*/, variable[2] /*len*/) /*NativeFile::io_write*/;
372 variable[4] = variable[5];
373 variable[5] = TAG_Bool(( variable[4] /*err*/)!=( variable[2] /*len*/));
374 if (UNTAG_Bool(variable[5])) { /*if*/
375 variable[5] = variable[0];
376 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Object]*/
377 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Problem in writing : "), TAG_Int(21)); /*new String*/
378 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
379 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[4] /*err*/) /*AbstractArray::add*/;
380 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
381 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
382 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[2] /*len*/) /*AbstractArray::add*/;
383 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
384 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
385 CALL_file___Object___printn(variable[5])(variable[5], variable[6]) /*Object::printn*/;
386 }
387 return_label20: while(false);
388 tracehead = trace.prev;
389 return;
390 }
391 void file___OFStream___open(val_t self, val_t param0, int* init_table) {
392 struct trace_t trace = {NULL, NULL, 151, LOCATE_file___OFStream___open};
393 val_t variable[6];
394 void **closurevariable = NULL;
395 trace.prev = tracehead; tracehead = &trace;
396 trace.file = LOCATE_file;
397 variable[0] = self;
398 variable[1] = param0;
399 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i]) return;
400 variable[3] = variable[0];
401 variable[4] = variable[0];
402 variable[5] = CALL_string___String___to_cstring( variable[1] /*path*/)( variable[1] /*path*/) /*String::to_cstring*/;
403 variable[4] = CALL_file___NativeFileCapable___io_open_write(variable[4])(variable[4], variable[5]) /*NativeFileCapable::io_open_write*/;
404 ATTR_file___FStream____file(variable[3]) /*FStream::_file*/ = variable[4];
405 variable[3] = variable[0];
406 variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
407 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
408 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'cant_open_file' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___open, LOCATE_file, 155); nit_exit(1);}
409 variable[3] = variable[0];
410 ATTR_file___FStream____path(variable[3]) /*FStream::_path*/ = variable[1] /*path*/;
411 variable[3] = variable[0];
412 ATTR_file___OFStream____writable(variable[3]) /*OFStream::_writable*/ = TAG_Bool(true);
413 return_label21: while(false);
414 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i] = 1;
415 tracehead = trace.prev;
416 return;
417 }
418 void file___OFStream___init(val_t self, int* init_table) {
419 struct trace_t trace = {NULL, NULL, 160, LOCATE_file___OFStream___init};
420 val_t variable[2];
421 void **closurevariable = NULL;
422 trace.prev = tracehead; tracehead = &trace;
423 trace.file = LOCATE_file;
424 variable[0] = self;
425 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i]) return;
426 return_label22: while(false);
427 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i] = 1;
428 tracehead = trace.prev;
429 return;
430 }
431 void file___OFStream___without_file(val_t self, int* init_table) {
432 struct trace_t trace = {NULL, NULL, 161, LOCATE_file___OFStream___without_file};
433 val_t variable[2];
434 void **closurevariable = NULL;
435 trace.prev = tracehead; tracehead = &trace;
436 trace.file = LOCATE_file;
437 variable[0] = self;
438 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i]) return;
439 return_label23: while(false);
440 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i] = 1;
441 tracehead = trace.prev;
442 return;
443 }
444 void file___Stdin___init(val_t self, int* init_table) {
445 struct trace_t trace = {NULL, NULL, 168, LOCATE_file___Stdin___init};
446 val_t variable[4];
447 void **closurevariable = NULL;
448 trace.prev = tracehead; tracehead = &trace;
449 trace.file = LOCATE_file;
450 variable[0] = self;
451 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdin].i]) return;
452 CALL_file___IFStream___init(variable[0])(variable[0], init_table /*YYY*/) /*IFStream::init*/;
453 variable[2] = variable[0];
454 variable[3] = variable[0];
455 variable[3] = CALL_file___NativeFileCapable___native_stdin(variable[3])(variable[3]) /*NativeFileCapable::native_stdin*/;
456 ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
457 variable[2] = variable[0];
458 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("/dev/stdin"), TAG_Int(10)); /*new String*/
459 ATTR_file___FStream____path(variable[2]) /*FStream::_path*/ = variable[3];
460 variable[2] = variable[0];
461 CALL_stream___BufferedIStream___prepare_buffer(variable[2])(variable[2], TAG_Int(1)) /*BufferedIStream::prepare_buffer*/;
462 return_label24: while(false);
463 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdin].i] = 1;
464 tracehead = trace.prev;
465 return;
466 }
467 void file___Stdout___init(val_t self, int* init_table) {
468 struct trace_t trace = {NULL, NULL, 177, LOCATE_file___Stdout___init};
469 val_t variable[4];
470 void **closurevariable = NULL;
471 trace.prev = tracehead; tracehead = &trace;
472 trace.file = LOCATE_file;
473 variable[0] = self;
474 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdout].i]) return;
475 CALL_file___OFStream___init(variable[0])(variable[0], init_table /*YYY*/) /*OFStream::init*/;
476 variable[2] = variable[0];
477 variable[3] = variable[0];
478 variable[3] = CALL_file___NativeFileCapable___native_stdout(variable[3])(variable[3]) /*NativeFileCapable::native_stdout*/;
479 ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
480 variable[2] = variable[0];
481 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("/dev/stdout"), TAG_Int(11)); /*new String*/
482 ATTR_file___FStream____path(variable[2]) /*FStream::_path*/ = variable[3];
483 variable[2] = variable[0];
484 ATTR_file___OFStream____writable(variable[2]) /*OFStream::_writable*/ = TAG_Bool(true);
485 return_label25: while(false);
486 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdout].i] = 1;
487 tracehead = trace.prev;
488 return;
489 }
490 void file___Stderr___init(val_t self, int* init_table) {
491 struct trace_t trace = {NULL, NULL, 186, LOCATE_file___Stderr___init};
492 val_t variable[4];
493 void **closurevariable = NULL;
494 trace.prev = tracehead; tracehead = &trace;
495 trace.file = LOCATE_file;
496 variable[0] = self;
497 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stderr].i]) return;
498 CALL_file___OFStream___init(variable[0])(variable[0], init_table /*YYY*/) /*OFStream::init*/;
499 variable[2] = variable[0];
500 variable[3] = variable[0];
501 variable[3] = CALL_file___NativeFileCapable___native_stderr(variable[3])(variable[3]) /*NativeFileCapable::native_stderr*/;
502 ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
503 variable[2] = variable[0];
504 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("/dev/stderr"), TAG_Int(11)); /*new String*/
505 ATTR_file___FStream____path(variable[2]) /*FStream::_path*/ = variable[3];
506 variable[2] = variable[0];
507 ATTR_file___OFStream____writable(variable[2]) /*OFStream::_writable*/ = TAG_Bool(true);
508 return_label26: while(false);
509 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stderr].i] = 1;
510 tracehead = trace.prev;
511 return;
512 }
513 val_t file___String___file_exists(val_t self) {
514 struct trace_t trace = {NULL, NULL, 196, LOCATE_file___String___file_exists};
515 val_t variable[3];
516 void **closurevariable = NULL;
517 trace.prev = tracehead; tracehead = &trace;
518 trace.file = LOCATE_file;
519 variable[0] = self;
520 variable[2] = variable[0];
521 variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
522 variable[2] = CALL_file___NativeString___file_exists(variable[2])(variable[2]) /*NativeString::file_exists*/;
523 variable[1] = variable[2];
524 goto return_label27;
525 return_label27: while(false);
526 tracehead = trace.prev;
527 return variable[1];
528 }
529 val_t file___String___file_stat(val_t self) {
530 struct trace_t trace = {NULL, NULL, 199, LOCATE_file___String___file_stat};
531 val_t variable[3];
532 void **closurevariable = NULL;
533 trace.prev = tracehead; tracehead = &trace;
534 trace.file = LOCATE_file;
535 variable[0] = self;
536 variable[2] = variable[0];
537 variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
538 variable[2] = CALL_file___NativeString___file_stat(variable[2])(variable[2]) /*NativeString::file_stat*/;
539 variable[1] = variable[2];
540 goto return_label28;
541 return_label28: while(false);
542 tracehead = trace.prev;
543 return variable[1];
544 }
545 val_t file___String___file_delete(val_t self) {
546 struct trace_t trace = {NULL, NULL, 201, LOCATE_file___String___file_delete};
547 val_t variable[3];
548 void **closurevariable = NULL;
549 trace.prev = tracehead; tracehead = &trace;
550 trace.file = LOCATE_file;
551 variable[0] = self;
552 variable[2] = variable[0];
553 variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
554 variable[2] = CALL_file___NativeString___file_delete(variable[2])(variable[2]) /*NativeString::file_delete*/;
555 variable[1] = variable[2];
556 goto return_label29;
557 return_label29: while(false);
558 tracehead = trace.prev;
559 return variable[1];
560 }
561 val_t file___String___strip_extension(val_t self, val_t param0) {
562 struct trace_t trace = {NULL, NULL, 203, LOCATE_file___String___strip_extension};
563 val_t variable[6];
564 void **closurevariable = NULL;
565 trace.prev = tracehead; tracehead = &trace;
566 trace.file = LOCATE_file;
567 variable[0] = self;
568 variable[1] = param0;
569 variable[3] = variable[0];
570 variable[3] = CALL_string___String___has_suffix(variable[3])(variable[3], variable[1] /*ext*/) /*String::has_suffix*/;
571 if (UNTAG_Bool(variable[3])) { /*if*/
572 variable[3] = variable[0];
573 variable[4] = variable[0];
574 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
575 variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*ext*/)( variable[1] /*ext*/) /*AbstractArray::length*/;
576 variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int(variable[5]));
577 variable[3] = CALL_string___String___substring(variable[3])(variable[3], TAG_Int(0), variable[4]) /*String::substring*/;
578 variable[2] = variable[3];
579 goto return_label30;
580 }
581 variable[3] = variable[0];
582 variable[2] = variable[3];
583 goto return_label30;
584 return_label30: while(false);
585 tracehead = trace.prev;
586 return variable[2];
587 }
588 val_t file___String___basename(val_t self, val_t param0) {
589 struct trace_t trace = {NULL, NULL, 211, LOCATE_file___String___basename};
590 val_t variable[7];
591 void **closurevariable = NULL;
592 trace.prev = tracehead; tracehead = &trace;
593 trace.file = LOCATE_file;
594 variable[0] = self;
595 variable[1] = param0;
596 variable[4] = variable[0];
597 variable[5] = variable[0];
598 variable[5] = ATTR_array___AbstractArray____length(variable[5]) /*AbstractArray::_length*/;
599 variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int( TAG_Int(1)));
600 variable[4] = CALL_array___AbstractArray___last_index_of_from(variable[4])(variable[4], TAG_Char('/'), variable[5]) /*AbstractArray::last_index_of_from*/;
601 variable[3] = variable[4];
602 variable[5] = variable[0];
603 variable[4] = variable[5];
604 variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*pos*/)>=UNTAG_Int( TAG_Int(0)));
605 if (UNTAG_Bool(variable[5])) { /*if*/
606 variable[5] = variable[0];
607 variable[6] = TAG_Int(UNTAG_Int( variable[3] /*pos*/)+UNTAG_Int( TAG_Int(1)));
608 variable[5] = CALL_string___String___substring_from(variable[5])(variable[5], variable[6]) /*String::substring_from*/;
609 variable[4] = variable[5] /*n=*/;
610 }
611 variable[5] = CALL_file___String___strip_extension( variable[4] /*n*/)( variable[4] /*n*/, variable[1] /*ext*/) /*String::strip_extension*/;
612 variable[2] = variable[5];
613 goto return_label31;
614 return_label31: while(false);
615 tracehead = trace.prev;
616 return variable[2];
617 }
618 val_t file___String___dirname(val_t self) {
619 struct trace_t trace = {NULL, NULL, 221, LOCATE_file___String___dirname};
620 val_t variable[5];
621 void **closurevariable = NULL;
622 trace.prev = tracehead; tracehead = &trace;
623 trace.file = LOCATE_file;
624 variable[0] = self;
625 variable[3] = variable[0];
626 variable[4] = variable[0];
627 variable[4] = ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/;
628 variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
629 variable[3] = CALL_array___AbstractArray___last_index_of_from(variable[3])(variable[3], TAG_Char('/'), variable[4]) /*AbstractArray::last_index_of_from*/;
630 variable[2] = variable[3];
631 variable[3] = TAG_Bool(UNTAG_Int( variable[2] /*pos*/)>=UNTAG_Int( TAG_Int(0)));
632 if (UNTAG_Bool(variable[3])) { /*if*/
633 variable[3] = variable[0];
634 variable[3] = CALL_string___String___substring(variable[3])(variable[3], TAG_Int(0), variable[2] /*pos*/) /*String::substring*/;
635 variable[1] = variable[3];
636 goto return_label32;
637 } else { /*if*/
638 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
639 variable[1] = variable[3];
640 goto return_label32;
641 }
642 return_label32: while(false);
643 tracehead = trace.prev;
644 return variable[1];
645 }
646 val_t file___String___file_path(val_t self) {
647 struct trace_t trace = {NULL, NULL, 231, LOCATE_file___String___file_path};
648 val_t variable[6];
649 void **closurevariable = NULL;
650 trace.prev = tracehead; tracehead = &trace;
651 trace.file = LOCATE_file;
652 variable[0] = self;
653 variable[3] = variable[0];
654 variable[3] = ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/;
655 variable[2] = variable[3];
656 variable[4] = variable[0];
657 variable[5] = TAG_Int(UNTAG_Int( variable[2] /*l*/)-UNTAG_Int( TAG_Int(1)));
658 variable[4] = CALL_array___AbstractArray___last_index_of_from(variable[4])(variable[4], TAG_Char('/'), variable[5]) /*AbstractArray::last_index_of_from*/;
659 variable[3] = variable[4];
660 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*pos*/)>=UNTAG_Int( TAG_Int(0)));
661 if (UNTAG_Bool(variable[4])) { /*if*/
662 variable[4] = variable[0];
663 variable[4] = CALL_string___String___substring(variable[4])(variable[4], TAG_Int(0), variable[3] /*pos*/) /*String::substring*/;
664 variable[1] = variable[4];
665 goto return_label33;
666 }
667 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
668 variable[1] = variable[4];
669 goto return_label33;
670 return_label33: while(false);
671 tracehead = trace.prev;
672 return variable[1];
673 }
674 void file___String___mkdir(val_t self) {
675 struct trace_t trace = {NULL, NULL, 241, LOCATE_file___String___mkdir};
676 val_t variable[9];
677 void **closurevariable = NULL;
678 trace.prev = tracehead; tracehead = &trace;
679 trace.file = LOCATE_file;
680 variable[0] = self;
681 variable[3] = variable[0];
682 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
683 variable[3] = CALL_string_search___String___split_with(variable[3])(variable[3], variable[4]) /*String::split_with*/;
684 variable[2] = variable[3];
685 variable[4] = NEW_String_string___String___init(); /*new String*/
686 variable[3] = variable[4];
687 variable[4] = CALL_abstract_collection___Collection___is_empty( variable[2] /*dirs*/)( variable[2] /*dirs*/) /*AbstractArray::is_empty*/;
688 if (UNTAG_Bool(variable[4])) { /*if*/
689 goto return_label34;
690 }
691 variable[4] = variable[2] /*dirs*/;
692 variable[5] = TAG_Int(0);
693 variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
694 variable[8] = variable[7];
695 if (UNTAG_Bool(variable[8])) { /* and */
696 variable[8] = variable[4];
697 variable[8] = ATTR_array___AbstractArray____length(variable[8]) /*AbstractArray::_length*/;
698 variable[8] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)<UNTAG_Int(variable[8]));
699 }
700 variable[7] = variable[8];
701 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_file, 229); nit_exit(1);}
702 variable[7] = variable[4];
703 variable[7] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
704 variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[5] /*index*/)];
705 variable[6] = variable[7];
706 goto return_label35;
707 return_label35: while(false);
708 variable[4] = variable[6];
709 variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*AbstractArray::is_empty*/;
710 if (UNTAG_Bool(variable[4])) { /*if*/
711 CALL_abstract_collection___SimpleCollection___add( variable[3] /*path*/)( variable[3] /*path*/, TAG_Char('/')) /*String::add*/;
712 }
713 variable[4] = CALL_abstract_collection___Collection___iterator( variable[2] /*dirs*/)( variable[2] /*dirs*/) /*AbstractArray::iterator*/;
714 while (true) { /*for*/
715 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
716 if (!UNTAG_Bool(variable[5])) break; /*for*/
717 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
718 variable[6] = variable[5];
719 variable[7] = CALL_abstract_collection___Collection___is_empty( variable[6] /*d*/)( variable[6] /*d*/) /*AbstractArray::is_empty*/;
720 if (UNTAG_Bool(variable[7])) { /*if*/
721 goto continue_36;
722 }
723 CALL_abstract_collection___IndexedCollection___append( variable[3] /*path*/)( variable[3] /*path*/, variable[6] /*d*/) /*String::append*/;
724 CALL_abstract_collection___SimpleCollection___add( variable[3] /*path*/)( variable[3] /*path*/, TAG_Char('/')) /*String::add*/;
725 variable[7] = CALL_string___String___to_cstring( variable[3] /*path*/)( variable[3] /*path*/) /*String::to_cstring*/;
726 CALL_file___NativeString___file_mkdir(variable[7])(variable[7]) /*NativeString::file_mkdir*/;
727 continue_36: while(0);
728 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
729 }
730 break_36: while(0);
731 return_label34: while(false);
732 tracehead = trace.prev;
733 return;
734 }
735 val_t file___NativeString___file_exists(val_t self) {
736 struct trace_t trace = {NULL, NULL, 261, LOCATE_file___NativeString___file_exists};
737 val_t *variable = NULL;
738 void **closurevariable = NULL;
739 trace.prev = tracehead; tracehead = &trace;
740 trace.file = LOCATE_file;
741 tracehead = trace.prev;
742 return TAG_Bool(string_NativeString_NativeString_file_exists_0(UNBOX_NativeString( self)));
743 }
744 val_t file___NativeString___file_stat(val_t self) {
745 struct trace_t trace = {NULL, NULL, 262, LOCATE_file___NativeString___file_stat};
746 val_t *variable = NULL;
747 void **closurevariable = NULL;
748 trace.prev = tracehead; tracehead = &trace;
749 trace.file = LOCATE_file;
750 tracehead = trace.prev;
751 return BOX_FileStat(string_NativeString_NativeString_file_stat_0(UNBOX_NativeString( self)));
752 }
753 val_t file___NativeString___file_mkdir(val_t self) {
754 struct trace_t trace = {NULL, NULL, 263, LOCATE_file___NativeString___file_mkdir};
755 val_t *variable = NULL;
756 void **closurevariable = NULL;
757 trace.prev = tracehead; tracehead = &trace;
758 trace.file = LOCATE_file;
759 tracehead = trace.prev;
760 return TAG_Bool(string_NativeString_NativeString_file_mkdir_0(UNBOX_NativeString( self)));
761 }
762 val_t file___NativeString___file_delete(val_t self) {
763 struct trace_t trace = {NULL, NULL, 264, LOCATE_file___NativeString___file_delete};
764 val_t *variable = NULL;
765 void **closurevariable = NULL;
766 trace.prev = tracehead; tracehead = &trace;
767 trace.file = LOCATE_file;
768 tracehead = trace.prev;
769 return TAG_Bool(string_NativeString_NativeString_file_delete_0(UNBOX_NativeString( self)));
770 }
771 val_t file___FileStat___mode(val_t self) {
772 struct trace_t trace = {NULL, NULL, 269, LOCATE_file___FileStat___mode};
773 val_t *variable = NULL;
774 void **closurevariable = NULL;
775 trace.prev = tracehead; tracehead = &trace;
776 trace.file = LOCATE_file;
777 tracehead = trace.prev;
778 return TAG_Int(file_FileStat_FileStat_mode_0(UNBOX_FileStat( self)));
779 }
780 val_t file___FileStat___atime(val_t self) {
781 struct trace_t trace = {NULL, NULL, 271, LOCATE_file___FileStat___atime};
782 val_t *variable = NULL;
783 void **closurevariable = NULL;
784 trace.prev = tracehead; tracehead = &trace;
785 trace.file = LOCATE_file;
786 tracehead = trace.prev;
787 return TAG_Int(file_FileStat_FileStat_atime_0(UNBOX_FileStat( self)));
788 }
789 val_t file___FileStat___ctime(val_t self) {
790 struct trace_t trace = {NULL, NULL, 272, LOCATE_file___FileStat___ctime};
791 val_t *variable = NULL;
792 void **closurevariable = NULL;
793 trace.prev = tracehead; tracehead = &trace;
794 trace.file = LOCATE_file;
795 tracehead = trace.prev;
796 return TAG_Int(file_FileStat_FileStat_ctime_0(UNBOX_FileStat( self)));
797 }
798 val_t file___FileStat___mtime(val_t self) {
799 struct trace_t trace = {NULL, NULL, 273, LOCATE_file___FileStat___mtime};
800 val_t *variable = NULL;
801 void **closurevariable = NULL;
802 trace.prev = tracehead; tracehead = &trace;
803 trace.file = LOCATE_file;
804 tracehead = trace.prev;
805 return TAG_Int(file_FileStat_FileStat_mtime_0(UNBOX_FileStat( self)));
806 }
807 val_t file___FileStat___size(val_t self) {
808 struct trace_t trace = {NULL, NULL, 274, LOCATE_file___FileStat___size};
809 val_t *variable = NULL;
810 void **closurevariable = NULL;
811 trace.prev = tracehead; tracehead = &trace;
812 trace.file = LOCATE_file;
813 tracehead = trace.prev;
814 return TAG_Int(file_FileStat_FileStat_size_0(UNBOX_FileStat( self)));
815 }
816 val_t file___NativeFile___io_read(val_t self, val_t param0, val_t param1) {
817 struct trace_t trace = {NULL, NULL, 280, LOCATE_file___NativeFile___io_read};
818 val_t *variable = NULL;
819 void **closurevariable = NULL;
820 trace.prev = tracehead; tracehead = &trace;
821 trace.file = LOCATE_file;
822 tracehead = trace.prev;
823 return TAG_Int(file_NativeFile_NativeFile_io_read_2(UNBOX_NativeFile( self), UNBOX_NativeString( param0), UNTAG_Int( param1)));
824 }
825 val_t file___NativeFile___io_write(val_t self, val_t param0, val_t param1) {
826 struct trace_t trace = {NULL, NULL, 281, LOCATE_file___NativeFile___io_write};
827 val_t *variable = NULL;
828 void **closurevariable = NULL;
829 trace.prev = tracehead; tracehead = &trace;
830 trace.file = LOCATE_file;
831 tracehead = trace.prev;
832 return TAG_Int(file_NativeFile_NativeFile_io_write_2(UNBOX_NativeFile( self), UNBOX_NativeString( param0), UNTAG_Int( param1)));
833 }
834 val_t file___NativeFile___io_close(val_t self) {
835 struct trace_t trace = {NULL, NULL, 282, LOCATE_file___NativeFile___io_close};
836 val_t *variable = NULL;
837 void **closurevariable = NULL;
838 trace.prev = tracehead; tracehead = &trace;
839 trace.file = LOCATE_file;
840 tracehead = trace.prev;
841 return TAG_Int(file_NativeFile_NativeFile_io_close_0(UNBOX_NativeFile( self)));
842 }
843 val_t file___NativeFile___file_stat(val_t self) {
844 struct trace_t trace = {NULL, NULL, 283, LOCATE_file___NativeFile___file_stat};
845 val_t *variable = NULL;
846 void **closurevariable = NULL;
847 trace.prev = tracehead; tracehead = &trace;
848 trace.file = LOCATE_file;
849 tracehead = trace.prev;
850 return BOX_FileStat(file_NativeFile_NativeFile_file_stat_0(UNBOX_NativeFile( self)));
851 }
852 val_t file___NativeFileCapable___io_open_read(val_t self, val_t param0) {
853 struct trace_t trace = {NULL, NULL, 287, LOCATE_file___NativeFileCapable___io_open_read};
854 val_t *variable = NULL;
855 void **closurevariable = NULL;
856 trace.prev = tracehead; tracehead = &trace;
857 trace.file = LOCATE_file;
858 tracehead = trace.prev;
859 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_read_1( self, UNBOX_NativeString( param0)));
860 }
861 val_t file___NativeFileCapable___io_open_write(val_t self, val_t param0) {
862 struct trace_t trace = {NULL, NULL, 288, LOCATE_file___NativeFileCapable___io_open_write};
863 val_t *variable = NULL;
864 void **closurevariable = NULL;
865 trace.prev = tracehead; tracehead = &trace;
866 trace.file = LOCATE_file;
867 tracehead = trace.prev;
868 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_io_open_write_1( self, UNBOX_NativeString( param0)));
869 }
870 val_t file___NativeFileCapable___native_stdin(val_t self) {
871 struct trace_t trace = {NULL, NULL, 289, LOCATE_file___NativeFileCapable___native_stdin};
872 val_t *variable = NULL;
873 void **closurevariable = NULL;
874 trace.prev = tracehead; tracehead = &trace;
875 trace.file = LOCATE_file;
876 tracehead = trace.prev;
877 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdin_0( self));
878 }
879 val_t file___NativeFileCapable___native_stdout(val_t self) {
880 struct trace_t trace = {NULL, NULL, 290, LOCATE_file___NativeFileCapable___native_stdout};
881 val_t *variable = NULL;
882 void **closurevariable = NULL;
883 trace.prev = tracehead; tracehead = &trace;
884 trace.file = LOCATE_file;
885 tracehead = trace.prev;
886 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stdout_0( self));
887 }
888 val_t file___NativeFileCapable___native_stderr(val_t self) {
889 struct trace_t trace = {NULL, NULL, 291, LOCATE_file___NativeFileCapable___native_stderr};
890 val_t *variable = NULL;
891 void **closurevariable = NULL;
892 trace.prev = tracehead; tracehead = &trace;
893 trace.file = LOCATE_file;
894 tracehead = trace.prev;
895 return BOX_NativeFile(file_NativeFileCapable_NativeFileCapable_native_stderr_0( self));
896 }