c_src: update to have intern args
[nit.git] / c_src / standard___file._sep.c
1 /* This C file is generated by NIT to compile module standard___file. */
2 #include "standard___file._sep.h"
3 static const char LOCATE_standard___file___Object___printn[] = "file::Object::printn";
4 void standard___file___Object___printn(val_t p0, val_t p1){
5 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
6 val_t REGB0;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_standard___file;
10 fra.me.line = 25;
11 fra.me.meth = LOCATE_standard___file___Object___printn;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 3;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[1] = NIT_NULL;
17 fra.me.REG[2] = NIT_NULL;
18 fra.me.REG[0] = p0;
19 fra.me.REG[1] = p1;
20 /* ../lib/standard/file.nit:25 */
21 fra.me.REG[2] = fra.me.REG[0];
22 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
23 if (UNTAG_Bool(REGB0)) {
24 } else {
25 nit_abort("Cast failed", NULL, LOCATE_standard___file, 25);
26 }
27 /* ../lib/standard/file.nit:28 */
28 fra.me.REG[2] = CALL_standard___file___Object___stdout(fra.me.REG[2])(fra.me.REG[2]);
29 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
30 CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
31 stack_frame_head = fra.me.prev;
32 return;
33 }
34 static const char LOCATE_standard___file___Object___print[] = "file::Object::print";
35 void standard___file___Object___print(val_t p0, val_t p1){
36 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37 val_t REGB0;
38 val_t tmp;
39 static val_t once_value_1; /* Once value */
40 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41 fra.me.file = LOCATE_standard___file;
42 fra.me.line = 31;
43 fra.me.meth = LOCATE_standard___file___Object___print;
44 fra.me.has_broke = 0;
45 fra.me.REG_size = 3;
46 fra.me.nitni_local_ref_head = NULL;
47 fra.me.REG[0] = NIT_NULL;
48 fra.me.REG[1] = NIT_NULL;
49 fra.me.REG[2] = NIT_NULL;
50 fra.me.REG[0] = p0;
51 fra.me.REG[1] = p1;
52 /* ../lib/standard/file.nit:34 */
53 fra.me.REG[2] = CALL_standard___file___Object___stdout(fra.me.REG[0])(fra.me.REG[0]);
54 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
55 CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
56 /* ../lib/standard/file.nit:35 */
57 fra.me.REG[0] = CALL_standard___file___Object___stdout(fra.me.REG[0])(fra.me.REG[0]);
58 if (!once_value_1) {
59 fra.me.REG[1] = BOX_NativeString("\n");
60 REGB0 = TAG_Int(1);
61 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
62 once_value_1 = fra.me.REG[1];
63 register_static_object(&once_value_1);
64 } else fra.me.REG[1] = once_value_1;
65 fra.me.REG[1] = fra.me.REG[1];
66 CALL_standard___stream___OStream___write(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
67 stack_frame_head = fra.me.prev;
68 return;
69 }
70 static const char LOCATE_standard___file___Object___getc[] = "file::Object::getc";
71 val_t standard___file___Object___getc(val_t p0){
72 struct {struct stack_frame_t me;} fra;
73 val_t REGB0;
74 val_t tmp;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_standard___file;
77 fra.me.line = 38;
78 fra.me.meth = LOCATE_standard___file___Object___getc;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 1;
81 fra.me.nitni_local_ref_head = NULL;
82 fra.me.REG[0] = NIT_NULL;
83 fra.me.REG[0] = p0;
84 /* ../lib/standard/file.nit:41 */
85 fra.me.REG[0] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
86 REGB0 = CALL_standard___stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
87 /* ../lib/standard/kernel.nit:300 */
88 REGB0 = TAG_Char(UNTAG_Int(REGB0));
89 /* ../lib/standard/file.nit:41 */
90 goto label1;
91 label1: while(0);
92 stack_frame_head = fra.me.prev;
93 return REGB0;
94 }
95 static const char LOCATE_standard___file___Object___gets[] = "file::Object::gets";
96 val_t standard___file___Object___gets(val_t p0){
97 struct {struct stack_frame_t me;} fra;
98 val_t tmp;
99 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
100 fra.me.file = LOCATE_standard___file;
101 fra.me.line = 44;
102 fra.me.meth = LOCATE_standard___file___Object___gets;
103 fra.me.has_broke = 0;
104 fra.me.REG_size = 1;
105 fra.me.nitni_local_ref_head = NULL;
106 fra.me.REG[0] = NIT_NULL;
107 fra.me.REG[0] = p0;
108 /* ../lib/standard/file.nit:47 */
109 fra.me.REG[0] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
110 fra.me.REG[0] = CALL_standard___stream___IStream___read_line(fra.me.REG[0])(fra.me.REG[0]);
111 goto label1;
112 label1: while(0);
113 stack_frame_head = fra.me.prev;
114 return fra.me.REG[0];
115 }
116 static const char LOCATE_standard___file___Object___stdin[] = "file::Object::stdin";
117 val_t standard___file___Object___stdin(val_t p0){
118 struct {struct stack_frame_t me;} fra;
119 val_t tmp;
120 static val_t once_value_1; /* Once value */
121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
122 fra.me.file = LOCATE_standard___file;
123 fra.me.line = 350;
124 fra.me.meth = LOCATE_standard___file___Object___stdin;
125 fra.me.has_broke = 0;
126 fra.me.REG_size = 1;
127 fra.me.nitni_local_ref_head = NULL;
128 fra.me.REG[0] = NIT_NULL;
129 fra.me.REG[0] = p0;
130 /* ../lib/standard/file.nit:351 */
131 if (!once_value_1) {
132 fra.me.REG[0] = NEW_Stdin_standard___file___Stdin___init();
133 once_value_1 = fra.me.REG[0];
134 register_static_object(&once_value_1);
135 } else fra.me.REG[0] = once_value_1;
136 fra.me.REG[0] = fra.me.REG[0];
137 goto label2;
138 label2: while(0);
139 stack_frame_head = fra.me.prev;
140 return fra.me.REG[0];
141 }
142 static const char LOCATE_standard___file___Object___stdout[] = "file::Object::stdout";
143 val_t standard___file___Object___stdout(val_t p0){
144 struct {struct stack_frame_t me;} fra;
145 val_t tmp;
146 static val_t once_value_1; /* Once value */
147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
148 fra.me.file = LOCATE_standard___file;
149 fra.me.line = 353;
150 fra.me.meth = LOCATE_standard___file___Object___stdout;
151 fra.me.has_broke = 0;
152 fra.me.REG_size = 1;
153 fra.me.nitni_local_ref_head = NULL;
154 fra.me.REG[0] = NIT_NULL;
155 fra.me.REG[0] = p0;
156 /* ../lib/standard/file.nit:354 */
157 if (!once_value_1) {
158 fra.me.REG[0] = NEW_Stdout_standard___file___Stdout___init();
159 once_value_1 = fra.me.REG[0];
160 register_static_object(&once_value_1);
161 } else fra.me.REG[0] = once_value_1;
162 fra.me.REG[0] = fra.me.REG[0];
163 goto label2;
164 label2: while(0);
165 stack_frame_head = fra.me.prev;
166 return fra.me.REG[0];
167 }
168 static const char LOCATE_standard___file___Object___stderr[] = "file::Object::stderr";
169 val_t standard___file___Object___stderr(val_t p0){
170 struct {struct stack_frame_t me;} fra;
171 val_t tmp;
172 static val_t once_value_1; /* Once value */
173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
174 fra.me.file = LOCATE_standard___file;
175 fra.me.line = 356;
176 fra.me.meth = LOCATE_standard___file___Object___stderr;
177 fra.me.has_broke = 0;
178 fra.me.REG_size = 1;
179 fra.me.nitni_local_ref_head = NULL;
180 fra.me.REG[0] = NIT_NULL;
181 fra.me.REG[0] = p0;
182 /* ../lib/standard/file.nit:357 */
183 if (!once_value_1) {
184 fra.me.REG[0] = NEW_Stderr_standard___file___Stderr___init();
185 once_value_1 = fra.me.REG[0];
186 register_static_object(&once_value_1);
187 } else fra.me.REG[0] = once_value_1;
188 fra.me.REG[0] = fra.me.REG[0];
189 goto label2;
190 label2: while(0);
191 stack_frame_head = fra.me.prev;
192 return fra.me.REG[0];
193 }
194 static const char LOCATE_standard___file___FStream___path[] = "file::FStream::path";
195 val_t standard___file___FStream___path(val_t p0){
196 struct {struct stack_frame_t me;} fra;
197 val_t tmp;
198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
199 fra.me.file = LOCATE_standard___file;
200 fra.me.line = 54;
201 fra.me.meth = LOCATE_standard___file___FStream___path;
202 fra.me.has_broke = 0;
203 fra.me.REG_size = 1;
204 fra.me.nitni_local_ref_head = NULL;
205 fra.me.REG[0] = NIT_NULL;
206 fra.me.REG[0] = p0;
207 /* ../lib/standard/file.nit:54 */
208 fra.me.REG[0] = ATTR_standard___file___FStream____path(fra.me.REG[0]);
209 stack_frame_head = fra.me.prev;
210 return fra.me.REG[0];
211 }
212 static const char LOCATE_standard___file___FStream___file_stat[] = "file::FStream::file_stat";
213 val_t standard___file___FStream___file_stat(val_t p0){
214 struct {struct stack_frame_t me;} fra;
215 val_t REGB0;
216 val_t tmp;
217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
218 fra.me.file = LOCATE_standard___file;
219 fra.me.line = 60;
220 fra.me.meth = LOCATE_standard___file___FStream___file_stat;
221 fra.me.has_broke = 0;
222 fra.me.REG_size = 1;
223 fra.me.nitni_local_ref_head = NULL;
224 fra.me.REG[0] = NIT_NULL;
225 fra.me.REG[0] = p0;
226 /* ../lib/standard/file.nit:61 */
227 fra.me.REG[0] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
228 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
229 if (UNTAG_Bool(REGB0)) {
230 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 61);
231 }
232 fra.me.REG[0] = CALL_standard___file___NativeFile___file_stat(fra.me.REG[0])(fra.me.REG[0]);
233 goto label1;
234 label1: while(0);
235 stack_frame_head = fra.me.prev;
236 return fra.me.REG[0];
237 }
238 static const char LOCATE_standard___file___FStream___init[] = "file::FStream::init";
239 void standard___file___FStream___init(val_t p0, int* init_table){
240 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___FStream].i;
241 struct {struct stack_frame_t me;} fra;
242 val_t tmp;
243 if (init_table[itpos0]) return;
244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
245 fra.me.file = LOCATE_standard___file;
246 fra.me.line = 0;
247 fra.me.meth = LOCATE_standard___file___FStream___init;
248 fra.me.has_broke = 0;
249 fra.me.REG_size = 0;
250 fra.me.nitni_local_ref_head = NULL;
251 stack_frame_head = fra.me.prev;
252 init_table[itpos0] = 1;
253 return;
254 }
255 static const char LOCATE_standard___file___IFStream___reopen[] = "file::IFStream::reopen";
256 void standard___file___IFStream___reopen(val_t p0){
257 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
258 val_t REGB0;
259 val_t tmp;
260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
261 fra.me.file = LOCATE_standard___file;
262 fra.me.line = 70;
263 fra.me.meth = LOCATE_standard___file___IFStream___reopen;
264 fra.me.has_broke = 0;
265 fra.me.REG_size = 2;
266 fra.me.nitni_local_ref_head = NULL;
267 fra.me.REG[0] = NIT_NULL;
268 fra.me.REG[1] = NIT_NULL;
269 fra.me.REG[0] = p0;
270 /* ../lib/standard/file.nit:74 */
271 REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
272 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
273 if (UNTAG_Bool(REGB0)) {
274 CALL_standard___stream___IOS___close(fra.me.REG[0])(fra.me.REG[0]);
275 }
276 /* ../lib/standard/file.nit:75 */
277 fra.me.REG[1] = ATTR_standard___file___FStream____path(fra.me.REG[0]);
278 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
279 if (UNTAG_Bool(REGB0)) {
280 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 75);
281 }
282 fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
283 fra.me.REG[1] = NEW_NativeFile_standard___file___NativeFile___io_open_read(fra.me.REG[1]);
284 ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
285 /* ../lib/standard/file.nit:76 */
286 REGB0 = TAG_Bool(0);
287 ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
288 /* ../lib/standard/file.nit:77 */
289 REGB0 = TAG_Int(0);
290 ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
291 /* ../lib/standard/file.nit:78 */
292 fra.me.REG[0] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
293 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
294 if (UNTAG_Bool(REGB0)) {
295 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 78);
296 }
297 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
298 stack_frame_head = fra.me.prev;
299 return;
300 }
301 static const char LOCATE_standard___file___IFStream___close[] = "file::IFStream::(stream::IOS::close)";
302 void standard___file___IFStream___close(val_t p0){
303 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
304 val_t REGB0;
305 val_t tmp;
306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
307 fra.me.file = LOCATE_standard___file;
308 fra.me.line = 81;
309 fra.me.meth = LOCATE_standard___file___IFStream___close;
310 fra.me.has_broke = 0;
311 fra.me.REG_size = 2;
312 fra.me.nitni_local_ref_head = NULL;
313 fra.me.REG[0] = NIT_NULL;
314 fra.me.REG[1] = NIT_NULL;
315 fra.me.REG[0] = p0;
316 /* ../lib/standard/file.nit:83 */
317 fra.me.REG[1] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
318 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
319 if (UNTAG_Bool(REGB0)) {
320 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 83);
321 }
322 REGB0 = CALL_standard___file___NativeFile___io_close(fra.me.REG[1])(fra.me.REG[1]);
323 /* ../lib/standard/file.nit:84 */
324 REGB0 = TAG_Bool(1);
325 ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
326 stack_frame_head = fra.me.prev;
327 return;
328 }
329 static const char LOCATE_standard___file___IFStream___fill_buffer[] = "file::IFStream::(stream::BufferedIStream::fill_buffer)";
330 void standard___file___IFStream___fill_buffer(val_t p0){
331 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
332 val_t REGB0;
333 val_t REGB1;
334 val_t REGB2;
335 val_t tmp;
336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
337 fra.me.file = LOCATE_standard___file;
338 fra.me.line = 87;
339 fra.me.meth = LOCATE_standard___file___IFStream___fill_buffer;
340 fra.me.has_broke = 0;
341 fra.me.REG_size = 4;
342 fra.me.nitni_local_ref_head = NULL;
343 fra.me.REG[0] = NIT_NULL;
344 fra.me.REG[1] = NIT_NULL;
345 fra.me.REG[2] = NIT_NULL;
346 fra.me.REG[3] = NIT_NULL;
347 fra.me.REG[0] = p0;
348 /* ../lib/standard/file.nit:89 */
349 fra.me.REG[1] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
350 fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
352 if (UNTAG_Bool(REGB0)) {
353 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 89);
354 }
355 REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
356 if (UNTAG_Bool(REGB0)) {
357 } else {
358 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___file, 89);
359 }
360 fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[2]);
361 fra.me.REG[3] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
362 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
363 if (UNTAG_Bool(REGB0)) {
364 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 89);
365 }
366 REGB0 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[3])!=NIT_NULL);
367 if (UNTAG_Bool(REGB0)) {
368 } else {
369 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___file, 89);
370 }
371 REGB0 = ATTR_standard___string___Buffer____capacity(fra.me.REG[3]);
372 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
373 if (UNTAG_Bool(REGB1)) {
374 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 89);
375 }
376 REGB0 = CALL_standard___file___NativeFile___io_read(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
377 /* ../lib/standard/file.nit:90 */
378 REGB1 = TAG_Int(0);
379 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
380 if (UNTAG_Bool(REGB2)) {
381 } else {
382 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
383 }
384 /* ../lib/standard/kernel.nit:234 */
385 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
386 /* ../lib/standard/file.nit:90 */
387 if (UNTAG_Bool(REGB1)) {
388 /* ../lib/standard/file.nit:91 */
389 REGB1 = TAG_Bool(1);
390 ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB1;
391 /* ../lib/standard/file.nit:92 */
392 REGB1 = TAG_Int(0);
393 REGB0 = REGB1;
394 }
395 /* ../lib/standard/file.nit:94 */
396 fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
397 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
398 if (UNTAG_Bool(REGB1)) {
399 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 94);
400 }
401 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
402 /* ../lib/standard/file.nit:95 */
403 REGB0 = TAG_Int(0);
404 ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
405 stack_frame_head = fra.me.prev;
406 return;
407 }
408 static const char LOCATE_standard___file___IFStream___end_reached[] = "file::IFStream::(stream::BufferedIStream::end_reached)";
409 val_t standard___file___IFStream___end_reached(val_t p0){
410 struct {struct stack_frame_t me;} fra;
411 val_t REGB0;
412 val_t tmp;
413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
414 fra.me.file = LOCATE_standard___file;
415 fra.me.line = 98;
416 fra.me.meth = LOCATE_standard___file___IFStream___end_reached;
417 fra.me.has_broke = 0;
418 fra.me.REG_size = 1;
419 fra.me.nitni_local_ref_head = NULL;
420 fra.me.REG[0] = NIT_NULL;
421 fra.me.REG[0] = p0;
422 /* ../lib/standard/file.nit:98 */
423 REGB0 = TAG_Bool(ATTR_standard___file___IFStream____end_reached(fra.me.REG[0])!=NIT_NULL);
424 if (UNTAG_Bool(REGB0)) {
425 } else {
426 nit_abort("Uninitialized attribute %s", "_end_reached", LOCATE_standard___file, 98);
427 }
428 REGB0 = ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]);
429 stack_frame_head = fra.me.prev;
430 return REGB0;
431 }
432 static const char LOCATE_standard___file___IFStream___open[] = "file::IFStream::open";
433 void standard___file___IFStream___open(val_t p0, val_t p1, int* init_table){
434 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
435 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
436 val_t REGB0;
437 val_t REGB1;
438 val_t tmp;
439 if (init_table[itpos1]) return;
440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
441 fra.me.file = LOCATE_standard___file;
442 fra.me.line = 101;
443 fra.me.meth = LOCATE_standard___file___IFStream___open;
444 fra.me.has_broke = 0;
445 fra.me.REG_size = 3;
446 fra.me.nitni_local_ref_head = NULL;
447 fra.me.REG[0] = NIT_NULL;
448 fra.me.REG[1] = NIT_NULL;
449 fra.me.REG[2] = NIT_NULL;
450 fra.me.REG[0] = p0;
451 fra.me.REG[1] = p1;
452 /* ../lib/standard/file.nit:101 */
453 fra.me.REG[2] = fra.me.REG[0];
454 CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
455 CALL_standard___stream___BufferedIStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
456 /* ../lib/standard/file.nit:104 */
457 ATTR_standard___file___FStream____path(fra.me.REG[2]) = fra.me.REG[1];
458 /* ../lib/standard/file.nit:105 */
459 REGB0 = TAG_Int(10);
460 CALL_standard___stream___BufferedIStream___prepare_buffer(fra.me.REG[2])(fra.me.REG[2], REGB0);
461 /* ../lib/standard/file.nit:106 */
462 fra.me.REG[1] = ATTR_standard___file___FStream____path(fra.me.REG[2]);
463 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
464 if (UNTAG_Bool(REGB0)) {
465 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 106);
466 }
467 fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
468 fra.me.REG[1] = NEW_NativeFile_standard___file___NativeFile___io_open_read(fra.me.REG[1]);
469 ATTR_standard___file___FStream____file(fra.me.REG[2]) = fra.me.REG[1];
470 /* ../lib/standard/file.nit:107 */
471 fra.me.REG[2] = ATTR_standard___file___FStream____file(fra.me.REG[2]);
472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
473 if (UNTAG_Bool(REGB0)) {
474 } else {
475 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
476 if (UNTAG_Bool(REGB1)) {
477 REGB1 = TAG_Bool(0);
478 REGB0 = REGB1;
479 } else {
480 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
481 REGB0 = REGB1;
482 }
483 }
484 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
485 if (UNTAG_Bool(REGB0)) {
486 } else {
487 nit_abort("Assert '%s' failed", "cant_open_file", LOCATE_standard___file, 107);
488 }
489 stack_frame_head = fra.me.prev;
490 init_table[itpos1] = 1;
491 return;
492 }
493 static const char LOCATE_standard___file___IFStream___init[] = "file::IFStream::init";
494 void standard___file___IFStream___init(val_t p0, int* init_table){
495 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
496 struct {struct stack_frame_t me;} fra;
497 val_t tmp;
498 if (init_table[itpos2]) return;
499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
500 fra.me.file = LOCATE_standard___file;
501 fra.me.line = 110;
502 fra.me.meth = LOCATE_standard___file___IFStream___init;
503 fra.me.has_broke = 0;
504 fra.me.REG_size = 1;
505 fra.me.nitni_local_ref_head = NULL;
506 fra.me.REG[0] = NIT_NULL;
507 fra.me.REG[0] = p0;
508 /* ../lib/standard/file.nit:110 */
509 CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
510 CALL_standard___stream___BufferedIStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
511 stack_frame_head = fra.me.prev;
512 init_table[itpos2] = 1;
513 return;
514 }
515 static const char LOCATE_standard___file___IFStream___without_file[] = "file::IFStream::without_file";
516 void standard___file___IFStream___without_file(val_t p0, int* init_table){
517 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
518 struct {struct stack_frame_t me;} fra;
519 val_t tmp;
520 if (init_table[itpos3]) return;
521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
522 fra.me.file = LOCATE_standard___file;
523 fra.me.line = 111;
524 fra.me.meth = LOCATE_standard___file___IFStream___without_file;
525 fra.me.has_broke = 0;
526 fra.me.REG_size = 1;
527 fra.me.nitni_local_ref_head = NULL;
528 fra.me.REG[0] = NIT_NULL;
529 fra.me.REG[0] = p0;
530 /* ../lib/standard/file.nit:111 */
531 CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
532 CALL_standard___stream___BufferedIStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
533 stack_frame_head = fra.me.prev;
534 init_table[itpos3] = 1;
535 return;
536 }
537 static const char LOCATE_standard___file___OFStream___write[] = "file::OFStream::(stream::OStream::write)";
538 void standard___file___OFStream___write(val_t p0, val_t p1){
539 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
540 val_t REGB0;
541 val_t tmp;
542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
543 fra.me.file = LOCATE_standard___file;
544 fra.me.line = 119;
545 fra.me.meth = LOCATE_standard___file___OFStream___write;
546 fra.me.has_broke = 0;
547 fra.me.REG_size = 3;
548 fra.me.nitni_local_ref_head = NULL;
549 fra.me.REG[0] = NIT_NULL;
550 fra.me.REG[1] = NIT_NULL;
551 fra.me.REG[2] = NIT_NULL;
552 fra.me.REG[0] = p0;
553 fra.me.REG[1] = p1;
554 /* ../lib/standard/file.nit:121 */
555 REGB0 = TAG_Bool(ATTR_standard___file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
556 if (UNTAG_Bool(REGB0)) {
557 } else {
558 nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 121);
559 }
560 REGB0 = ATTR_standard___file___OFStream____writable(fra.me.REG[0]);
561 if (UNTAG_Bool(REGB0)) {
562 } else {
563 nit_abort("Assert failed", NULL, LOCATE_standard___file, 121);
564 }
565 /* ../lib/standard/file.nit:122 */
566 fra.me.REG[2] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
567 /* ../lib/standard/collection/array.nit:24 */
568 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
569 if (UNTAG_Bool(REGB0)) {
570 } else {
571 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
572 }
573 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
574 /* ../lib/standard/file.nit:122 */
575 CALL_standard___file___OFStream___write_native(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], REGB0);
576 stack_frame_head = fra.me.prev;
577 return;
578 }
579 static const char LOCATE_standard___file___OFStream___is_writable[] = "file::OFStream::(stream::OStream::is_writable)";
580 val_t standard___file___OFStream___is_writable(val_t p0){
581 struct {struct stack_frame_t me;} fra;
582 val_t REGB0;
583 val_t tmp;
584 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
585 fra.me.file = LOCATE_standard___file;
586 fra.me.line = 125;
587 fra.me.meth = LOCATE_standard___file___OFStream___is_writable;
588 fra.me.has_broke = 0;
589 fra.me.REG_size = 1;
590 fra.me.nitni_local_ref_head = NULL;
591 fra.me.REG[0] = NIT_NULL;
592 fra.me.REG[0] = p0;
593 /* ../lib/standard/file.nit:125 */
594 REGB0 = TAG_Bool(ATTR_standard___file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
595 if (UNTAG_Bool(REGB0)) {
596 } else {
597 nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 125);
598 }
599 REGB0 = ATTR_standard___file___OFStream____writable(fra.me.REG[0]);
600 goto label1;
601 label1: while(0);
602 stack_frame_head = fra.me.prev;
603 return REGB0;
604 }
605 static const char LOCATE_standard___file___OFStream___close[] = "file::OFStream::(stream::IOS::close)";
606 void standard___file___OFStream___close(val_t p0){
607 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
608 val_t REGB0;
609 val_t tmp;
610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
611 fra.me.file = LOCATE_standard___file;
612 fra.me.line = 127;
613 fra.me.meth = LOCATE_standard___file___OFStream___close;
614 fra.me.has_broke = 0;
615 fra.me.REG_size = 2;
616 fra.me.nitni_local_ref_head = NULL;
617 fra.me.REG[0] = NIT_NULL;
618 fra.me.REG[1] = NIT_NULL;
619 fra.me.REG[0] = p0;
620 /* ../lib/standard/file.nit:129 */
621 fra.me.REG[1] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
622 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
623 if (UNTAG_Bool(REGB0)) {
624 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 129);
625 }
626 REGB0 = CALL_standard___file___NativeFile___io_close(fra.me.REG[1])(fra.me.REG[1]);
627 /* ../lib/standard/file.nit:130 */
628 REGB0 = TAG_Bool(0);
629 ATTR_standard___file___OFStream____writable(fra.me.REG[0]) = REGB0;
630 stack_frame_head = fra.me.prev;
631 return;
632 }
633 static const char LOCATE_standard___file___OFStream___write_native[] = "file::OFStream::write_native";
634 void standard___file___OFStream___write_native(val_t p0, val_t p1, val_t p2){
635 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
636 val_t REGB0;
637 val_t REGB1;
638 val_t REGB2;
639 val_t REGB3;
640 val_t tmp;
641 static val_t once_value_1; /* Once value */
642 static val_t once_value_2; /* Once value */
643 static val_t once_value_3; /* Once value */
644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
645 fra.me.file = LOCATE_standard___file;
646 fra.me.line = 136;
647 fra.me.meth = LOCATE_standard___file___OFStream___write_native;
648 fra.me.has_broke = 0;
649 fra.me.REG_size = 3;
650 fra.me.nitni_local_ref_head = NULL;
651 fra.me.REG[0] = NIT_NULL;
652 fra.me.REG[1] = NIT_NULL;
653 fra.me.REG[2] = NIT_NULL;
654 fra.me.REG[0] = p0;
655 fra.me.REG[1] = p1;
656 REGB0 = p2;
657 /* ../lib/standard/file.nit:139 */
658 REGB1 = TAG_Bool(ATTR_standard___file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
659 if (UNTAG_Bool(REGB1)) {
660 } else {
661 nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 139);
662 }
663 REGB1 = ATTR_standard___file___OFStream____writable(fra.me.REG[0]);
664 if (UNTAG_Bool(REGB1)) {
665 } else {
666 nit_abort("Assert failed", NULL, LOCATE_standard___file, 139);
667 }
668 /* ../lib/standard/file.nit:140 */
669 fra.me.REG[2] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
670 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
671 if (UNTAG_Bool(REGB1)) {
672 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 140);
673 }
674 REGB1 = CALL_standard___file___NativeFile___io_write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
675 /* ../lib/standard/file.nit:141 */
676 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
677 if (UNTAG_Bool(REGB2)) {
678 } else {
679 /* ../lib/standard/kernel.nit:230 */
680 REGB3 = TAG_Bool((REGB1)==(REGB0));
681 /* ../lib/standard/file.nit:141 */
682 REGB2 = REGB3;
683 }
684 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
685 if (UNTAG_Bool(REGB2)) {
686 /* ../lib/standard/file.nit:143 */
687 REGB2 = TAG_Int(4);
688 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
689 if (!once_value_1) {
690 fra.me.REG[2] = BOX_NativeString("Problem in writing : ");
691 REGB2 = TAG_Int(21);
692 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
693 once_value_1 = fra.me.REG[2];
694 register_static_object(&once_value_1);
695 } else fra.me.REG[2] = once_value_1;
696 fra.me.REG[2] = fra.me.REG[2];
697 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB1);
699 if (!once_value_2) {
700 fra.me.REG[2] = BOX_NativeString(" ");
701 REGB1 = TAG_Int(1);
702 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
703 once_value_2 = fra.me.REG[2];
704 register_static_object(&once_value_2);
705 } else fra.me.REG[2] = once_value_2;
706 fra.me.REG[2] = fra.me.REG[2];
707 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
708 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB0);
709 if (!once_value_3) {
710 fra.me.REG[2] = BOX_NativeString("\n");
711 REGB0 = TAG_Int(1);
712 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
713 once_value_3 = fra.me.REG[2];
714 register_static_object(&once_value_3);
715 } else fra.me.REG[2] = once_value_3;
716 fra.me.REG[2] = fra.me.REG[2];
717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
718 CALL_standard___file___Object___printn(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
719 }
720 stack_frame_head = fra.me.prev;
721 return;
722 }
723 static const char LOCATE_standard___file___OFStream___open[] = "file::OFStream::open";
724 void standard___file___OFStream___open(val_t p0, val_t p1, int* init_table){
725 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
726 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
727 val_t REGB0;
728 val_t REGB1;
729 val_t tmp;
730 if (init_table[itpos4]) return;
731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
732 fra.me.file = LOCATE_standard___file;
733 fra.me.line = 147;
734 fra.me.meth = LOCATE_standard___file___OFStream___open;
735 fra.me.has_broke = 0;
736 fra.me.REG_size = 3;
737 fra.me.nitni_local_ref_head = NULL;
738 fra.me.REG[0] = NIT_NULL;
739 fra.me.REG[1] = NIT_NULL;
740 fra.me.REG[2] = NIT_NULL;
741 fra.me.REG[0] = p0;
742 fra.me.REG[1] = p1;
743 /* ../lib/standard/file.nit:147 */
744 fra.me.REG[2] = fra.me.REG[0];
745 CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
746 /* ../lib/standard/file.nit:150 */
747 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
748 fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___io_open_write(fra.me.REG[0]);
749 ATTR_standard___file___FStream____file(fra.me.REG[2]) = fra.me.REG[0];
750 /* ../lib/standard/file.nit:151 */
751 fra.me.REG[0] = ATTR_standard___file___FStream____file(fra.me.REG[2]);
752 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
753 if (UNTAG_Bool(REGB0)) {
754 } else {
755 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
756 if (UNTAG_Bool(REGB1)) {
757 REGB1 = TAG_Bool(0);
758 REGB0 = REGB1;
759 } else {
760 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
761 REGB0 = REGB1;
762 }
763 }
764 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
765 if (UNTAG_Bool(REGB0)) {
766 } else {
767 nit_abort("Assert '%s' failed", "cant_open_file", LOCATE_standard___file, 151);
768 }
769 /* ../lib/standard/file.nit:152 */
770 ATTR_standard___file___FStream____path(fra.me.REG[2]) = fra.me.REG[1];
771 /* ../lib/standard/file.nit:153 */
772 REGB0 = TAG_Bool(1);
773 ATTR_standard___file___OFStream____writable(fra.me.REG[2]) = REGB0;
774 stack_frame_head = fra.me.prev;
775 init_table[itpos4] = 1;
776 return;
777 }
778 static const char LOCATE_standard___file___OFStream___init[] = "file::OFStream::init";
779 void standard___file___OFStream___init(val_t p0, int* init_table){
780 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
781 struct {struct stack_frame_t me;} fra;
782 val_t tmp;
783 if (init_table[itpos5]) return;
784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
785 fra.me.file = LOCATE_standard___file;
786 fra.me.line = 156;
787 fra.me.meth = LOCATE_standard___file___OFStream___init;
788 fra.me.has_broke = 0;
789 fra.me.REG_size = 1;
790 fra.me.nitni_local_ref_head = NULL;
791 fra.me.REG[0] = NIT_NULL;
792 fra.me.REG[0] = p0;
793 /* ../lib/standard/file.nit:156 */
794 CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
795 stack_frame_head = fra.me.prev;
796 init_table[itpos5] = 1;
797 return;
798 }
799 static const char LOCATE_standard___file___OFStream___without_file[] = "file::OFStream::without_file";
800 void standard___file___OFStream___without_file(val_t p0, int* init_table){
801 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
802 struct {struct stack_frame_t me;} fra;
803 val_t tmp;
804 if (init_table[itpos6]) return;
805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
806 fra.me.file = LOCATE_standard___file;
807 fra.me.line = 157;
808 fra.me.meth = LOCATE_standard___file___OFStream___without_file;
809 fra.me.has_broke = 0;
810 fra.me.REG_size = 1;
811 fra.me.nitni_local_ref_head = NULL;
812 fra.me.REG[0] = NIT_NULL;
813 fra.me.REG[0] = p0;
814 /* ../lib/standard/file.nit:157 */
815 CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
816 stack_frame_head = fra.me.prev;
817 init_table[itpos6] = 1;
818 return;
819 }
820 static const char LOCATE_standard___file___Stdin___init[] = "file::Stdin::init";
821 void standard___file___Stdin___init(val_t p0, int* init_table){
822 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stdin].i;
823 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
824 val_t REGB0;
825 val_t tmp;
826 static val_t once_value_1; /* Once value */
827 if (init_table[itpos7]) return;
828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
829 fra.me.file = LOCATE_standard___file;
830 fra.me.line = 164;
831 fra.me.meth = LOCATE_standard___file___Stdin___init;
832 fra.me.has_broke = 0;
833 fra.me.REG_size = 2;
834 fra.me.nitni_local_ref_head = NULL;
835 fra.me.REG[0] = NIT_NULL;
836 fra.me.REG[1] = NIT_NULL;
837 fra.me.REG[0] = p0;
838 /* ../lib/standard/file.nit:164 */
839 fra.me.REG[1] = fra.me.REG[0];
840 CALL_standard___file___IFStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
841 /* ../lib/standard/file.nit:165 */
842 fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___native_stdin();
843 ATTR_standard___file___FStream____file(fra.me.REG[1]) = fra.me.REG[0];
844 /* ../lib/standard/file.nit:166 */
845 if (!once_value_1) {
846 fra.me.REG[0] = BOX_NativeString("/dev/stdin");
847 REGB0 = TAG_Int(10);
848 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
849 once_value_1 = fra.me.REG[0];
850 register_static_object(&once_value_1);
851 } else fra.me.REG[0] = once_value_1;
852 fra.me.REG[0] = fra.me.REG[0];
853 ATTR_standard___file___FStream____path(fra.me.REG[1]) = fra.me.REG[0];
854 /* ../lib/standard/file.nit:167 */
855 REGB0 = TAG_Int(1);
856 CALL_standard___stream___BufferedIStream___prepare_buffer(fra.me.REG[1])(fra.me.REG[1], REGB0);
857 stack_frame_head = fra.me.prev;
858 init_table[itpos7] = 1;
859 return;
860 }
861 static const char LOCATE_standard___file___Stdin___poll_in[] = "file::Stdin::poll_in";
862 val_t standard___file___Stdin___poll_in(val_t p0){
863 struct {struct stack_frame_t me;} fra;
864 val_t REGB0;
865 val_t tmp;
866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
867 fra.me.file = LOCATE_standard___file;
868 fra.me.line = 170;
869 fra.me.meth = LOCATE_standard___file___Stdin___poll_in;
870 fra.me.has_broke = 0;
871 fra.me.REG_size = 1;
872 fra.me.nitni_local_ref_head = NULL;
873 fra.me.REG[0] = NIT_NULL;
874 fra.me.REG[0] = p0;
875 /* ../lib/standard/file.nit:170 */
876 REGB0 = Stdin_poll_in___out(fra.me.REG[0]);
877 stack_frame_head = fra.me.prev;
878 return REGB0;
879 }
880 static const char LOCATE_standard___file___Stdout___init[] = "file::Stdout::init";
881 void standard___file___Stdout___init(val_t p0, int* init_table){
882 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stdout].i;
883 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
884 val_t REGB0;
885 val_t tmp;
886 static val_t once_value_1; /* Once value */
887 if (init_table[itpos8]) return;
888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
889 fra.me.file = LOCATE_standard___file;
890 fra.me.line = 177;
891 fra.me.meth = LOCATE_standard___file___Stdout___init;
892 fra.me.has_broke = 0;
893 fra.me.REG_size = 2;
894 fra.me.nitni_local_ref_head = NULL;
895 fra.me.REG[0] = NIT_NULL;
896 fra.me.REG[1] = NIT_NULL;
897 fra.me.REG[0] = p0;
898 /* ../lib/standard/file.nit:177 */
899 fra.me.REG[1] = fra.me.REG[0];
900 CALL_standard___file___OFStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
901 /* ../lib/standard/file.nit:178 */
902 fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___native_stdout();
903 ATTR_standard___file___FStream____file(fra.me.REG[1]) = fra.me.REG[0];
904 /* ../lib/standard/file.nit:179 */
905 if (!once_value_1) {
906 fra.me.REG[0] = BOX_NativeString("/dev/stdout");
907 REGB0 = TAG_Int(11);
908 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
909 once_value_1 = fra.me.REG[0];
910 register_static_object(&once_value_1);
911 } else fra.me.REG[0] = once_value_1;
912 fra.me.REG[0] = fra.me.REG[0];
913 ATTR_standard___file___FStream____path(fra.me.REG[1]) = fra.me.REG[0];
914 /* ../lib/standard/file.nit:180 */
915 REGB0 = TAG_Bool(1);
916 ATTR_standard___file___OFStream____writable(fra.me.REG[1]) = REGB0;
917 stack_frame_head = fra.me.prev;
918 init_table[itpos8] = 1;
919 return;
920 }
921 static const char LOCATE_standard___file___Stderr___init[] = "file::Stderr::init";
922 void standard___file___Stderr___init(val_t p0, int* init_table){
923 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stderr].i;
924 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
925 val_t REGB0;
926 val_t tmp;
927 static val_t once_value_1; /* Once value */
928 if (init_table[itpos9]) return;
929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
930 fra.me.file = LOCATE_standard___file;
931 fra.me.line = 186;
932 fra.me.meth = LOCATE_standard___file___Stderr___init;
933 fra.me.has_broke = 0;
934 fra.me.REG_size = 2;
935 fra.me.nitni_local_ref_head = NULL;
936 fra.me.REG[0] = NIT_NULL;
937 fra.me.REG[1] = NIT_NULL;
938 fra.me.REG[0] = p0;
939 /* ../lib/standard/file.nit:186 */
940 fra.me.REG[1] = fra.me.REG[0];
941 CALL_standard___file___OFStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
942 /* ../lib/standard/file.nit:187 */
943 fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___native_stderr();
944 ATTR_standard___file___FStream____file(fra.me.REG[1]) = fra.me.REG[0];
945 /* ../lib/standard/file.nit:188 */
946 if (!once_value_1) {
947 fra.me.REG[0] = BOX_NativeString("/dev/stderr");
948 REGB0 = TAG_Int(11);
949 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
950 once_value_1 = fra.me.REG[0];
951 register_static_object(&once_value_1);
952 } else fra.me.REG[0] = once_value_1;
953 fra.me.REG[0] = fra.me.REG[0];
954 ATTR_standard___file___FStream____path(fra.me.REG[1]) = fra.me.REG[0];
955 /* ../lib/standard/file.nit:189 */
956 REGB0 = TAG_Bool(1);
957 ATTR_standard___file___OFStream____writable(fra.me.REG[1]) = REGB0;
958 stack_frame_head = fra.me.prev;
959 init_table[itpos9] = 1;
960 return;
961 }
962 static const char LOCATE_standard___file___String___file_exists[] = "file::String::file_exists";
963 val_t standard___file___String___file_exists(val_t p0){
964 struct {struct stack_frame_t me;} fra;
965 val_t REGB0;
966 val_t tmp;
967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
968 fra.me.file = LOCATE_standard___file;
969 fra.me.line = 196;
970 fra.me.meth = LOCATE_standard___file___String___file_exists;
971 fra.me.has_broke = 0;
972 fra.me.REG_size = 1;
973 fra.me.nitni_local_ref_head = NULL;
974 fra.me.REG[0] = NIT_NULL;
975 fra.me.REG[0] = p0;
976 /* ../lib/standard/file.nit:197 */
977 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
978 REGB0 = CALL_standard___file___NativeString___file_exists(fra.me.REG[0])(fra.me.REG[0]);
979 goto label1;
980 label1: while(0);
981 stack_frame_head = fra.me.prev;
982 return REGB0;
983 }
984 static const char LOCATE_standard___file___String___file_stat[] = "file::String::file_stat";
985 val_t standard___file___String___file_stat(val_t p0){
986 struct {struct stack_frame_t me;} fra;
987 val_t tmp;
988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
989 fra.me.file = LOCATE_standard___file;
990 fra.me.line = 199;
991 fra.me.meth = LOCATE_standard___file___String___file_stat;
992 fra.me.has_broke = 0;
993 fra.me.REG_size = 1;
994 fra.me.nitni_local_ref_head = NULL;
995 fra.me.REG[0] = NIT_NULL;
996 fra.me.REG[0] = p0;
997 /* ../lib/standard/file.nit:199 */
998 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
999 fra.me.REG[0] = CALL_standard___file___NativeString___file_stat(fra.me.REG[0])(fra.me.REG[0]);
1000 goto label1;
1001 label1: while(0);
1002 stack_frame_head = fra.me.prev;
1003 return fra.me.REG[0];
1004 }
1005 static const char LOCATE_standard___file___String___file_delete[] = "file::String::file_delete";
1006 val_t standard___file___String___file_delete(val_t p0){
1007 struct {struct stack_frame_t me;} fra;
1008 val_t REGB0;
1009 val_t tmp;
1010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1011 fra.me.file = LOCATE_standard___file;
1012 fra.me.line = 201;
1013 fra.me.meth = LOCATE_standard___file___String___file_delete;
1014 fra.me.has_broke = 0;
1015 fra.me.REG_size = 1;
1016 fra.me.nitni_local_ref_head = NULL;
1017 fra.me.REG[0] = NIT_NULL;
1018 fra.me.REG[0] = p0;
1019 /* ../lib/standard/file.nit:202 */
1020 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
1021 REGB0 = CALL_standard___file___NativeString___file_delete(fra.me.REG[0])(fra.me.REG[0]);
1022 goto label1;
1023 label1: while(0);
1024 stack_frame_head = fra.me.prev;
1025 return REGB0;
1026 }
1027 static const char LOCATE_standard___file___String___strip_extension[] = "file::String::strip_extension";
1028 val_t standard___file___String___strip_extension(val_t p0, val_t p1){
1029 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1030 val_t REGB0;
1031 val_t REGB1;
1032 val_t REGB2;
1033 val_t tmp;
1034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1035 fra.me.file = LOCATE_standard___file;
1036 fra.me.line = 204;
1037 fra.me.meth = LOCATE_standard___file___String___strip_extension;
1038 fra.me.has_broke = 0;
1039 fra.me.REG_size = 2;
1040 fra.me.nitni_local_ref_head = NULL;
1041 fra.me.REG[0] = NIT_NULL;
1042 fra.me.REG[1] = NIT_NULL;
1043 fra.me.REG[0] = p0;
1044 fra.me.REG[1] = p1;
1045 /* ../lib/standard/file.nit:207 */
1046 REGB0 = CALL_standard___string___AbstractString___has_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1047 if (UNTAG_Bool(REGB0)) {
1048 /* ../lib/standard/file.nit:208 */
1049 REGB0 = TAG_Int(0);
1050 /* ../lib/standard/collection/array.nit:24 */
1051 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1052 if (UNTAG_Bool(REGB1)) {
1053 } else {
1054 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1055 }
1056 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1057 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1058 if (UNTAG_Bool(REGB2)) {
1059 } else {
1060 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1061 }
1062 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1063 /* ../lib/standard/kernel.nit:240 */
1064 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1065 /* ../lib/standard/file.nit:208 */
1066 fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1067 goto label1;
1068 }
1069 /* ../lib/standard/file.nit:210 */
1070 fra.me.REG[1] = fra.me.REG[0];
1071 goto label1;
1072 label1: while(0);
1073 stack_frame_head = fra.me.prev;
1074 return fra.me.REG[1];
1075 }
1076 static const char LOCATE_standard___file___String___basename[] = "file::String::basename";
1077 val_t standard___file___String___basename(val_t p0, val_t p1){
1078 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1079 val_t REGB0;
1080 val_t REGB1;
1081 val_t REGB2;
1082 val_t tmp;
1083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1084 fra.me.file = LOCATE_standard___file;
1085 fra.me.line = 213;
1086 fra.me.meth = LOCATE_standard___file___String___basename;
1087 fra.me.has_broke = 0;
1088 fra.me.REG_size = 3;
1089 fra.me.nitni_local_ref_head = NULL;
1090 fra.me.REG[0] = NIT_NULL;
1091 fra.me.REG[1] = NIT_NULL;
1092 fra.me.REG[2] = NIT_NULL;
1093 fra.me.REG[0] = p0;
1094 fra.me.REG[1] = p1;
1095 /* ../lib/standard/file.nit:216 */
1096 REGB0 = TAG_Char('/');
1097 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1098 if (UNTAG_Bool(REGB1)) {
1099 } else {
1100 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 216);
1101 }
1102 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1103 REGB2 = TAG_Int(1);
1104 /* ../lib/standard/kernel.nit:240 */
1105 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1106 /* ../lib/standard/file.nit:216 */
1107 REGB2 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1108 /* ../lib/standard/file.nit:217 */
1109 fra.me.REG[2] = fra.me.REG[0];
1110 /* ../lib/standard/file.nit:218 */
1111 REGB0 = TAG_Int(0);
1112 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1113 if (UNTAG_Bool(REGB1)) {
1114 } else {
1115 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1116 }
1117 /* ../lib/standard/kernel.nit:236 */
1118 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
1119 /* ../lib/standard/file.nit:218 */
1120 if (UNTAG_Bool(REGB0)) {
1121 /* ../lib/standard/file.nit:219 */
1122 REGB0 = TAG_Int(1);
1123 /* ../lib/standard/kernel.nit:238 */
1124 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1125 /* ../lib/standard/file.nit:219 */
1126 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
1127 fra.me.REG[2] = fra.me.REG[0];
1128 }
1129 /* ../lib/standard/file.nit:221 */
1130 fra.me.REG[1] = CALL_standard___file___String___strip_extension(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1131 goto label1;
1132 label1: while(0);
1133 stack_frame_head = fra.me.prev;
1134 return fra.me.REG[1];
1135 }
1136 static const char LOCATE_standard___file___String___dirname[] = "file::String::dirname";
1137 val_t standard___file___String___dirname(val_t p0){
1138 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1139 val_t REGB0;
1140 val_t REGB1;
1141 val_t REGB2;
1142 val_t tmp;
1143 static val_t once_value_2; /* Once value */
1144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1145 fra.me.file = LOCATE_standard___file;
1146 fra.me.line = 224;
1147 fra.me.meth = LOCATE_standard___file___String___dirname;
1148 fra.me.has_broke = 0;
1149 fra.me.REG_size = 2;
1150 fra.me.nitni_local_ref_head = NULL;
1151 fra.me.REG[0] = NIT_NULL;
1152 fra.me.REG[1] = NIT_NULL;
1153 fra.me.REG[0] = p0;
1154 /* ../lib/standard/file.nit:227 */
1155 REGB0 = TAG_Char('/');
1156 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1157 if (UNTAG_Bool(REGB1)) {
1158 } else {
1159 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 227);
1160 }
1161 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1162 REGB2 = TAG_Int(1);
1163 /* ../lib/standard/kernel.nit:240 */
1164 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1165 /* ../lib/standard/file.nit:227 */
1166 REGB2 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1167 /* ../lib/standard/file.nit:228 */
1168 REGB0 = TAG_Int(0);
1169 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1170 if (UNTAG_Bool(REGB1)) {
1171 } else {
1172 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1173 }
1174 /* ../lib/standard/kernel.nit:236 */
1175 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
1176 /* ../lib/standard/file.nit:228 */
1177 if (UNTAG_Bool(REGB0)) {
1178 /* ../lib/standard/file.nit:229 */
1179 REGB0 = TAG_Int(0);
1180 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1181 goto label1;
1182 } else {
1183 /* ../lib/standard/file.nit:231 */
1184 if (!once_value_2) {
1185 fra.me.REG[1] = BOX_NativeString(".");
1186 REGB2 = TAG_Int(1);
1187 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB2);
1188 once_value_2 = fra.me.REG[1];
1189 register_static_object(&once_value_2);
1190 } else fra.me.REG[1] = once_value_2;
1191 fra.me.REG[1] = fra.me.REG[1];
1192 fra.me.REG[0] = fra.me.REG[1];
1193 goto label1;
1194 }
1195 label1: while(0);
1196 stack_frame_head = fra.me.prev;
1197 return fra.me.REG[0];
1198 }
1199 static const char LOCATE_standard___file___String___simplify_path[] = "file::String::simplify_path";
1200 val_t standard___file___String___simplify_path(val_t p0){
1201 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1202 val_t REGB0;
1203 val_t REGB1;
1204 val_t REGB2;
1205 val_t tmp;
1206 static val_t once_value_1; /* Once value */
1207 static val_t once_value_2; /* Once value */
1208 static val_t once_value_4; /* Once value */
1209 static val_t once_value_5; /* Once value */
1210 static val_t once_value_6; /* Once value */
1211 static val_t once_value_8; /* Once value */
1212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1213 fra.me.file = LOCATE_standard___file;
1214 fra.me.line = 235;
1215 fra.me.meth = LOCATE_standard___file___String___simplify_path;
1216 fra.me.has_broke = 0;
1217 fra.me.REG_size = 6;
1218 fra.me.nitni_local_ref_head = NULL;
1219 fra.me.REG[0] = NIT_NULL;
1220 fra.me.REG[1] = NIT_NULL;
1221 fra.me.REG[2] = NIT_NULL;
1222 fra.me.REG[3] = NIT_NULL;
1223 fra.me.REG[4] = NIT_NULL;
1224 fra.me.REG[5] = NIT_NULL;
1225 fra.me.REG[0] = p0;
1226 /* ../lib/standard/file.nit:250 */
1227 if (!once_value_1) {
1228 fra.me.REG[1] = BOX_NativeString("/");
1229 REGB0 = TAG_Int(1);
1230 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1231 once_value_1 = fra.me.REG[1];
1232 register_static_object(&once_value_1);
1233 } else fra.me.REG[1] = once_value_1;
1234 fra.me.REG[1] = fra.me.REG[1];
1235 fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1236 /* ../lib/standard/file.nit:251 */
1237 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
1238 /* ../lib/standard/collection/array.nit:269 */
1239 REGB0 = TAG_Int(0);
1240 /* ../lib/standard/collection/array.nit:270 */
1241 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1242 if (UNTAG_Bool(REGB1)) {
1243 } else {
1244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1245 }
1246 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1247 /* ../lib/standard/collection/array.nit:271 */
1248 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1249 /* ../lib/standard/collection/array.nit:272 */
1250 while(1) {
1251 /* ../lib/standard/collection/array.nit:24 */
1252 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1253 if (UNTAG_Bool(REGB1)) {
1254 } else {
1255 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1256 }
1257 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1258 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1259 if (UNTAG_Bool(REGB2)) {
1260 } else {
1261 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1262 }
1263 /* ../lib/standard/kernel.nit:235 */
1264 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1265 /* ../lib/standard/collection/array.nit:272 */
1266 if (UNTAG_Bool(REGB1)) {
1267 /* ../lib/standard/collection/array.nit:273 */
1268 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1269 if (UNTAG_Bool(REGB1)) {
1270 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1271 }
1272 /* ../lib/standard/collection/array.nit:724 */
1273 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1274 /* ../lib/standard/file.nit:253 */
1275 if (!once_value_2) {
1276 fra.me.REG[4] = BOX_NativeString(".");
1277 REGB1 = TAG_Int(1);
1278 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1279 once_value_2 = fra.me.REG[4];
1280 register_static_object(&once_value_2);
1281 } else fra.me.REG[4] = once_value_2;
1282 fra.me.REG[4] = fra.me.REG[4];
1283 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1284 if (UNTAG_Bool(REGB1)) {
1285 } else {
1286 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1287 REGB1 = REGB2;
1288 }
1289 if (UNTAG_Bool(REGB1)) {
1290 goto label3;
1291 }
1292 /* ../lib/standard/file.nit:254 */
1293 if (!once_value_4) {
1294 fra.me.REG[4] = BOX_NativeString("");
1295 REGB1 = TAG_Int(0);
1296 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1297 once_value_4 = fra.me.REG[4];
1298 register_static_object(&once_value_4);
1299 } else fra.me.REG[4] = once_value_4;
1300 fra.me.REG[4] = fra.me.REG[4];
1301 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1302 if (UNTAG_Bool(REGB1)) {
1303 } else {
1304 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1305 REGB1 = REGB2;
1306 }
1307 if (UNTAG_Bool(REGB1)) {
1308 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1309 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1310 } else {
1311 REGB2 = TAG_Bool(0);
1312 REGB1 = REGB2;
1313 }
1314 if (UNTAG_Bool(REGB1)) {
1315 goto label3;
1316 }
1317 /* ../lib/standard/file.nit:255 */
1318 if (!once_value_5) {
1319 fra.me.REG[4] = BOX_NativeString("..");
1320 REGB1 = TAG_Int(2);
1321 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1322 once_value_5 = fra.me.REG[4];
1323 register_static_object(&once_value_5);
1324 } else fra.me.REG[4] = once_value_5;
1325 fra.me.REG[4] = fra.me.REG[4];
1326 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1327 if (UNTAG_Bool(REGB1)) {
1328 } else {
1329 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1330 REGB1 = REGB2;
1331 }
1332 if (UNTAG_Bool(REGB1)) {
1333 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1334 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1335 } else {
1336 REGB2 = TAG_Bool(0);
1337 REGB1 = REGB2;
1338 }
1339 if (UNTAG_Bool(REGB1)) {
1340 fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[0])(fra.me.REG[0]);
1341 if (!once_value_6) {
1342 fra.me.REG[5] = BOX_NativeString("..");
1343 REGB1 = TAG_Int(2);
1344 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
1345 once_value_6 = fra.me.REG[5];
1346 register_static_object(&once_value_6);
1347 } else fra.me.REG[5] = once_value_6;
1348 fra.me.REG[5] = fra.me.REG[5];
1349 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[5],fra.me.REG[4]));
1350 if (UNTAG_Bool(REGB1)) {
1351 } else {
1352 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1353 if (UNTAG_Bool(REGB2)) {
1354 REGB2 = TAG_Bool(0);
1355 REGB1 = REGB2;
1356 } else {
1357 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1358 REGB1 = REGB2;
1359 }
1360 }
1361 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1362 } else {
1363 REGB2 = TAG_Bool(0);
1364 REGB1 = REGB2;
1365 }
1366 if (UNTAG_Bool(REGB1)) {
1367 /* ../lib/standard/file.nit:256 */
1368 CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
1369 /* ../lib/standard/file.nit:257 */
1370 goto label3;
1371 }
1372 /* ../lib/standard/file.nit:259 */
1373 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1374 label3: while(0);
1375 /* ../lib/standard/collection/array.nit:274 */
1376 REGB1 = TAG_Int(1);
1377 /* ../lib/standard/kernel.nit:238 */
1378 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1379 /* ../lib/standard/collection/array.nit:274 */
1380 REGB0 = REGB1;
1381 } else {
1382 /* ../lib/standard/collection/array.nit:272 */
1383 goto label7;
1384 }
1385 }
1386 label7: while(0);
1387 /* ../lib/standard/file.nit:261 */
1388 if (!once_value_8) {
1389 fra.me.REG[2] = BOX_NativeString("/");
1390 REGB0 = TAG_Int(1);
1391 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1392 once_value_8 = fra.me.REG[2];
1393 register_static_object(&once_value_8);
1394 } else fra.me.REG[2] = once_value_8;
1395 fra.me.REG[2] = fra.me.REG[2];
1396 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1397 goto label9;
1398 label9: while(0);
1399 stack_frame_head = fra.me.prev;
1400 return fra.me.REG[2];
1401 }
1402 static const char LOCATE_standard___file___String___join_path[] = "file::String::join_path";
1403 val_t standard___file___String___join_path(val_t p0, val_t p1){
1404 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1405 val_t REGB0;
1406 val_t REGB1;
1407 val_t REGB2;
1408 val_t tmp;
1409 static val_t once_value_2; /* Once value */
1410 static val_t once_value_3; /* Once value */
1411 static val_t once_value_4; /* Once value */
1412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1413 fra.me.file = LOCATE_standard___file;
1414 fra.me.line = 264;
1415 fra.me.meth = LOCATE_standard___file___String___join_path;
1416 fra.me.has_broke = 0;
1417 fra.me.REG_size = 5;
1418 fra.me.nitni_local_ref_head = NULL;
1419 fra.me.REG[0] = NIT_NULL;
1420 fra.me.REG[1] = NIT_NULL;
1421 fra.me.REG[2] = NIT_NULL;
1422 fra.me.REG[3] = NIT_NULL;
1423 fra.me.REG[4] = NIT_NULL;
1424 fra.me.REG[0] = p0;
1425 fra.me.REG[1] = p1;
1426 /* ../lib/standard/file.nit:281 */
1427 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
1428 if (UNTAG_Bool(REGB0)) {
1429 fra.me.REG[2] = fra.me.REG[0];
1430 goto label1;
1431 }
1432 /* ../lib/standard/file.nit:282 */
1433 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1434 if (UNTAG_Bool(REGB0)) {
1435 fra.me.REG[2] = fra.me.REG[1];
1436 goto label1;
1437 }
1438 /* ../lib/standard/file.nit:283 */
1439 REGB0 = TAG_Int(0);
1440 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
1441 REGB1 = TAG_Char('/');
1442 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1443 if (UNTAG_Bool(REGB2)) {
1444 } else {
1445 /* ../lib/standard/kernel.nit:381 */
1446 REGB1 = TAG_Bool((REGB0)==(REGB1));
1447 /* ../lib/standard/file.nit:283 */
1448 REGB2 = REGB1;
1449 }
1450 if (UNTAG_Bool(REGB2)) {
1451 fra.me.REG[2] = fra.me.REG[1];
1452 goto label1;
1453 }
1454 /* ../lib/standard/file.nit:284 */
1455 REGB2 = TAG_Int(5);
1456 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1457 if (!once_value_2) {
1458 fra.me.REG[4] = BOX_NativeString("");
1459 REGB2 = TAG_Int(0);
1460 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
1461 once_value_2 = fra.me.REG[4];
1462 register_static_object(&once_value_2);
1463 } else fra.me.REG[4] = once_value_2;
1464 fra.me.REG[4] = fra.me.REG[4];
1465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1467 if (!once_value_3) {
1468 fra.me.REG[0] = BOX_NativeString("/");
1469 REGB2 = TAG_Int(1);
1470 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
1471 once_value_3 = fra.me.REG[0];
1472 register_static_object(&once_value_3);
1473 } else fra.me.REG[0] = once_value_3;
1474 fra.me.REG[0] = fra.me.REG[0];
1475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1476 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1477 if (!once_value_4) {
1478 fra.me.REG[1] = BOX_NativeString("");
1479 REGB2 = TAG_Int(0);
1480 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB2);
1481 once_value_4 = fra.me.REG[1];
1482 register_static_object(&once_value_4);
1483 } else fra.me.REG[1] = once_value_4;
1484 fra.me.REG[1] = fra.me.REG[1];
1485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1486 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1487 fra.me.REG[2] = fra.me.REG[3];
1488 goto label1;
1489 label1: while(0);
1490 stack_frame_head = fra.me.prev;
1491 return fra.me.REG[2];
1492 }
1493 static const char LOCATE_standard___file___String___mkdir[] = "file::String::mkdir";
1494 void standard___file___String___mkdir(val_t p0){
1495 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1496 val_t REGB0;
1497 val_t REGB1;
1498 val_t REGB2;
1499 val_t tmp;
1500 static val_t once_value_1; /* Once value */
1501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1502 fra.me.file = LOCATE_standard___file;
1503 fra.me.line = 287;
1504 fra.me.meth = LOCATE_standard___file___String___mkdir;
1505 fra.me.has_broke = 0;
1506 fra.me.REG_size = 4;
1507 fra.me.nitni_local_ref_head = NULL;
1508 fra.me.REG[0] = NIT_NULL;
1509 fra.me.REG[1] = NIT_NULL;
1510 fra.me.REG[2] = NIT_NULL;
1511 fra.me.REG[3] = NIT_NULL;
1512 fra.me.REG[0] = p0;
1513 /* ../lib/standard/file.nit:290 */
1514 if (!once_value_1) {
1515 fra.me.REG[1] = BOX_NativeString("/");
1516 REGB0 = TAG_Int(1);
1517 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1518 once_value_1 = fra.me.REG[1];
1519 register_static_object(&once_value_1);
1520 } else fra.me.REG[1] = once_value_1;
1521 fra.me.REG[1] = fra.me.REG[1];
1522 fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1523 /* ../lib/standard/file.nit:291 */
1524 fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___init();
1525 /* ../lib/standard/file.nit:292 */
1526 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
1527 if (UNTAG_Bool(REGB0)) {
1528 goto label2;
1529 }
1530 /* ../lib/standard/file.nit:293 */
1531 REGB0 = TAG_Int(0);
1532 /* ../lib/standard/collection/array.nit:278 */
1533 fra.me.REG[2] = fra.me.REG[1];
1534 /* ../lib/standard/collection/array.nit:280 */
1535 REGB1 = TAG_Int(0);
1536 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1537 if (UNTAG_Bool(REGB2)) {
1538 } else {
1539 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1540 }
1541 /* ../lib/standard/kernel.nit:236 */
1542 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1543 /* ../lib/standard/collection/array.nit:280 */
1544 if (UNTAG_Bool(REGB1)) {
1545 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1546 if (UNTAG_Bool(REGB1)) {
1547 } else {
1548 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1549 }
1550 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1551 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1552 if (UNTAG_Bool(REGB2)) {
1553 } else {
1554 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1555 }
1556 /* ../lib/standard/kernel.nit:235 */
1557 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1558 } else {
1559 /* ../lib/standard/collection/array.nit:280 */
1560 REGB2 = TAG_Bool(0);
1561 REGB1 = REGB2;
1562 }
1563 if (UNTAG_Bool(REGB1)) {
1564 } else {
1565 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
1566 }
1567 /* ../lib/standard/collection/array.nit:281 */
1568 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1569 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1570 if (UNTAG_Bool(REGB1)) {
1571 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1572 }
1573 /* ../lib/standard/collection/array.nit:724 */
1574 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1575 /* ../lib/standard/collection/array.nit:281 */
1576 goto label3;
1577 label3: while(0);
1578 /* ../lib/standard/file.nit:293 */
1579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1580 if (UNTAG_Bool(REGB0)) {
1581 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 293);
1582 }
1583 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
1584 if (UNTAG_Bool(REGB0)) {
1585 /* ../lib/standard/file.nit:295 */
1586 REGB0 = TAG_Char('/');
1587 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB0);
1588 }
1589 /* ../lib/standard/collection/array.nit:269 */
1590 REGB0 = TAG_Int(0);
1591 /* ../lib/standard/collection/array.nit:270 */
1592 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1593 if (UNTAG_Bool(REGB1)) {
1594 } else {
1595 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1596 }
1597 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1598 /* ../lib/standard/collection/array.nit:271 */
1599 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1600 /* ../lib/standard/collection/array.nit:272 */
1601 while(1) {
1602 /* ../lib/standard/collection/array.nit:24 */
1603 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1604 if (UNTAG_Bool(REGB1)) {
1605 } else {
1606 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1607 }
1608 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1609 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1610 if (UNTAG_Bool(REGB2)) {
1611 } else {
1612 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1613 }
1614 /* ../lib/standard/kernel.nit:235 */
1615 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1616 /* ../lib/standard/collection/array.nit:272 */
1617 if (UNTAG_Bool(REGB1)) {
1618 /* ../lib/standard/collection/array.nit:273 */
1619 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1620 if (UNTAG_Bool(REGB1)) {
1621 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1622 }
1623 /* ../lib/standard/collection/array.nit:724 */
1624 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1625 /* ../lib/standard/file.nit:298 */
1626 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
1627 if (UNTAG_Bool(REGB1)) {
1628 goto label4;
1629 }
1630 /* ../lib/standard/file.nit:299 */
1631 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1632 /* ../lib/standard/file.nit:300 */
1633 REGB1 = TAG_Char('/');
1634 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
1635 /* ../lib/standard/file.nit:301 */
1636 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1637 fra.me.REG[3] = CALL_standard___string___String___to_cstring(fra.me.REG[3])(fra.me.REG[3]);
1638 CALL_standard___file___NativeString___file_mkdir(fra.me.REG[3])(fra.me.REG[3]);
1639 label4: while(0);
1640 /* ../lib/standard/collection/array.nit:274 */
1641 REGB1 = TAG_Int(1);
1642 /* ../lib/standard/kernel.nit:238 */
1643 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1644 /* ../lib/standard/collection/array.nit:274 */
1645 REGB0 = REGB1;
1646 } else {
1647 /* ../lib/standard/collection/array.nit:272 */
1648 goto label5;
1649 }
1650 }
1651 label5: while(0);
1652 label2: while(0);
1653 stack_frame_head = fra.me.prev;
1654 return;
1655 }
1656 static const char LOCATE_standard___file___String___file_extension[] = "file::String::file_extension";
1657 val_t standard___file___String___file_extension(val_t p0){
1658 struct {struct stack_frame_t me;} fra;
1659 val_t REGB0;
1660 val_t REGB1;
1661 val_t REGB2;
1662 val_t tmp;
1663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1664 fra.me.file = LOCATE_standard___file;
1665 fra.me.line = 305;
1666 fra.me.meth = LOCATE_standard___file___String___file_extension;
1667 fra.me.has_broke = 0;
1668 fra.me.REG_size = 1;
1669 fra.me.nitni_local_ref_head = NULL;
1670 fra.me.REG[0] = NIT_NULL;
1671 fra.me.REG[0] = p0;
1672 /* ../lib/standard/file.nit:308 */
1673 REGB0 = TAG_Char('.');
1674 REGB0 = CALL_standard___collection___array___AbstractArrayRead___last_index_of(fra.me.REG[0])(fra.me.REG[0], REGB0);
1675 /* ../lib/standard/file.nit:309 */
1676 REGB1 = TAG_Int(0);
1677 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1678 if (UNTAG_Bool(REGB2)) {
1679 } else {
1680 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1681 }
1682 /* ../lib/standard/kernel.nit:236 */
1683 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1684 /* ../lib/standard/file.nit:309 */
1685 if (UNTAG_Bool(REGB1)) {
1686 /* ../lib/standard/file.nit:310 */
1687 REGB1 = TAG_Int(1);
1688 /* ../lib/standard/kernel.nit:238 */
1689 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1690 /* ../lib/standard/collection/array.nit:24 */
1691 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1692 if (UNTAG_Bool(REGB0)) {
1693 } else {
1694 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1695 }
1696 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1697 /* ../lib/standard/file.nit:310 */
1698 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0);
1699 goto label1;
1700 } else {
1701 /* ../lib/standard/file.nit:312 */
1702 fra.me.REG[0] = NIT_NULL;
1703 goto label1;
1704 }
1705 label1: while(0);
1706 stack_frame_head = fra.me.prev;
1707 return fra.me.REG[0];
1708 }
1709 static const char LOCATE_standard___file___String___files[] = "file::String::files";
1710 val_t standard___file___String___files(val_t p0){
1711 struct {struct stack_frame_t me;} fra;
1712 val_t tmp;
1713 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1714 fra.me.file = LOCATE_standard___file;
1715 fra.me.line = 316;
1716 fra.me.meth = LOCATE_standard___file___String___files;
1717 fra.me.has_broke = 0;
1718 fra.me.REG_size = 1;
1719 fra.me.nitni_local_ref_head = NULL;
1720 fra.me.REG[0] = NIT_NULL;
1721 fra.me.REG[0] = p0;
1722 /* ../lib/standard/file.nit:316 */
1723 fra.me.REG[0] = String_files___out(fra.me.REG[0]);
1724 ;
1725 ;
1726 ;
1727 ;
1728 stack_frame_head = fra.me.prev;
1729 return fra.me.REG[0];
1730 }
1731 static const char LOCATE_standard___file___NativeString___file_exists[] = "file::NativeString::file_exists";
1732 val_t standard___file___NativeString___file_exists(val_t p0){
1733 struct {struct stack_frame_t me;} fra;
1734 val_t REGB0;
1735 val_t tmp;
1736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1737 fra.me.file = LOCATE_standard___file;
1738 fra.me.line = 321;
1739 fra.me.meth = LOCATE_standard___file___NativeString___file_exists;
1740 fra.me.has_broke = 0;
1741 fra.me.REG_size = 1;
1742 fra.me.nitni_local_ref_head = NULL;
1743 fra.me.REG[0] = NIT_NULL;
1744 fra.me.REG[0] = p0;
1745 /* ../lib/standard/file.nit:321 */
1746 REGB0 = NativeString_file_exists___out(fra.me.REG[0]);
1747 stack_frame_head = fra.me.prev;
1748 return REGB0;
1749 }
1750 static const char LOCATE_standard___file___NativeString___file_stat[] = "file::NativeString::file_stat";
1751 val_t standard___file___NativeString___file_stat(val_t p0){
1752 struct {struct stack_frame_t me;} fra;
1753 val_t tmp;
1754 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1755 fra.me.file = LOCATE_standard___file;
1756 fra.me.line = 322;
1757 fra.me.meth = LOCATE_standard___file___NativeString___file_stat;
1758 fra.me.has_broke = 0;
1759 fra.me.REG_size = 1;
1760 fra.me.nitni_local_ref_head = NULL;
1761 fra.me.REG[0] = NIT_NULL;
1762 fra.me.REG[0] = p0;
1763 /* ../lib/standard/file.nit:322 */
1764 fra.me.REG[0] = NativeString_file_stat___out(fra.me.REG[0]);
1765 stack_frame_head = fra.me.prev;
1766 return fra.me.REG[0];
1767 }
1768 static const char LOCATE_standard___file___NativeString___file_mkdir[] = "file::NativeString::file_mkdir";
1769 val_t standard___file___NativeString___file_mkdir(val_t p0){
1770 struct {struct stack_frame_t me;} fra;
1771 val_t REGB0;
1772 val_t tmp;
1773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1774 fra.me.file = LOCATE_standard___file;
1775 fra.me.line = 323;
1776 fra.me.meth = LOCATE_standard___file___NativeString___file_mkdir;
1777 fra.me.has_broke = 0;
1778 fra.me.REG_size = 1;
1779 fra.me.nitni_local_ref_head = NULL;
1780 fra.me.REG[0] = NIT_NULL;
1781 fra.me.REG[0] = p0;
1782 /* ../lib/standard/file.nit:323 */
1783 REGB0 = NativeString_file_mkdir___out(fra.me.REG[0]);
1784 stack_frame_head = fra.me.prev;
1785 return REGB0;
1786 }
1787 static const char LOCATE_standard___file___NativeString___file_delete[] = "file::NativeString::file_delete";
1788 val_t standard___file___NativeString___file_delete(val_t p0){
1789 struct {struct stack_frame_t me;} fra;
1790 val_t REGB0;
1791 val_t tmp;
1792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1793 fra.me.file = LOCATE_standard___file;
1794 fra.me.line = 324;
1795 fra.me.meth = LOCATE_standard___file___NativeString___file_delete;
1796 fra.me.has_broke = 0;
1797 fra.me.REG_size = 1;
1798 fra.me.nitni_local_ref_head = NULL;
1799 fra.me.REG[0] = NIT_NULL;
1800 fra.me.REG[0] = p0;
1801 /* ../lib/standard/file.nit:324 */
1802 REGB0 = NativeString_file_delete___out(fra.me.REG[0]);
1803 stack_frame_head = fra.me.prev;
1804 return REGB0;
1805 }
1806 static const char LOCATE_standard___file___FileStat___mode[] = "file::FileStat::mode";
1807 val_t standard___file___FileStat___mode(val_t p0){
1808 struct {struct stack_frame_t me;} fra;
1809 val_t REGB0;
1810 val_t tmp;
1811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1812 fra.me.file = LOCATE_standard___file;
1813 fra.me.line = 328;
1814 fra.me.meth = LOCATE_standard___file___FileStat___mode;
1815 fra.me.has_broke = 0;
1816 fra.me.REG_size = 1;
1817 fra.me.nitni_local_ref_head = NULL;
1818 fra.me.REG[0] = NIT_NULL;
1819 fra.me.REG[0] = p0;
1820 /* ../lib/standard/file.nit:328 */
1821 REGB0 = FileStat_mode___out(fra.me.REG[0]);
1822 stack_frame_head = fra.me.prev;
1823 return REGB0;
1824 }
1825 static const char LOCATE_standard___file___FileStat___atime[] = "file::FileStat::atime";
1826 val_t standard___file___FileStat___atime(val_t p0){
1827 struct {struct stack_frame_t me;} fra;
1828 val_t REGB0;
1829 val_t tmp;
1830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1831 fra.me.file = LOCATE_standard___file;
1832 fra.me.line = 330;
1833 fra.me.meth = LOCATE_standard___file___FileStat___atime;
1834 fra.me.has_broke = 0;
1835 fra.me.REG_size = 1;
1836 fra.me.nitni_local_ref_head = NULL;
1837 fra.me.REG[0] = NIT_NULL;
1838 fra.me.REG[0] = p0;
1839 /* ../lib/standard/file.nit:330 */
1840 REGB0 = FileStat_atime___out(fra.me.REG[0]);
1841 stack_frame_head = fra.me.prev;
1842 return REGB0;
1843 }
1844 static const char LOCATE_standard___file___FileStat___ctime[] = "file::FileStat::ctime";
1845 val_t standard___file___FileStat___ctime(val_t p0){
1846 struct {struct stack_frame_t me;} fra;
1847 val_t REGB0;
1848 val_t tmp;
1849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1850 fra.me.file = LOCATE_standard___file;
1851 fra.me.line = 331;
1852 fra.me.meth = LOCATE_standard___file___FileStat___ctime;
1853 fra.me.has_broke = 0;
1854 fra.me.REG_size = 1;
1855 fra.me.nitni_local_ref_head = NULL;
1856 fra.me.REG[0] = NIT_NULL;
1857 fra.me.REG[0] = p0;
1858 /* ../lib/standard/file.nit:331 */
1859 REGB0 = FileStat_ctime___out(fra.me.REG[0]);
1860 stack_frame_head = fra.me.prev;
1861 return REGB0;
1862 }
1863 static const char LOCATE_standard___file___FileStat___mtime[] = "file::FileStat::mtime";
1864 val_t standard___file___FileStat___mtime(val_t p0){
1865 struct {struct stack_frame_t me;} fra;
1866 val_t REGB0;
1867 val_t tmp;
1868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1869 fra.me.file = LOCATE_standard___file;
1870 fra.me.line = 332;
1871 fra.me.meth = LOCATE_standard___file___FileStat___mtime;
1872 fra.me.has_broke = 0;
1873 fra.me.REG_size = 1;
1874 fra.me.nitni_local_ref_head = NULL;
1875 fra.me.REG[0] = NIT_NULL;
1876 fra.me.REG[0] = p0;
1877 /* ../lib/standard/file.nit:332 */
1878 REGB0 = FileStat_mtime___out(fra.me.REG[0]);
1879 stack_frame_head = fra.me.prev;
1880 return REGB0;
1881 }
1882 static const char LOCATE_standard___file___FileStat___size[] = "file::FileStat::size";
1883 val_t standard___file___FileStat___size(val_t p0){
1884 struct {struct stack_frame_t me;} fra;
1885 val_t REGB0;
1886 val_t tmp;
1887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1888 fra.me.file = LOCATE_standard___file;
1889 fra.me.line = 333;
1890 fra.me.meth = LOCATE_standard___file___FileStat___size;
1891 fra.me.has_broke = 0;
1892 fra.me.REG_size = 1;
1893 fra.me.nitni_local_ref_head = NULL;
1894 fra.me.REG[0] = NIT_NULL;
1895 fra.me.REG[0] = p0;
1896 /* ../lib/standard/file.nit:333 */
1897 REGB0 = FileStat_size___out(fra.me.REG[0]);
1898 stack_frame_head = fra.me.prev;
1899 return REGB0;
1900 }
1901 static const char LOCATE_standard___file___NativeFile___io_read[] = "file::NativeFile::io_read";
1902 val_t standard___file___NativeFile___io_read(val_t p0, val_t p1, val_t p2){
1903 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1904 val_t REGB0;
1905 val_t tmp;
1906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1907 fra.me.file = LOCATE_standard___file;
1908 fra.me.line = 338;
1909 fra.me.meth = LOCATE_standard___file___NativeFile___io_read;
1910 fra.me.has_broke = 0;
1911 fra.me.REG_size = 2;
1912 fra.me.nitni_local_ref_head = NULL;
1913 fra.me.REG[0] = NIT_NULL;
1914 fra.me.REG[1] = NIT_NULL;
1915 fra.me.REG[0] = p0;
1916 fra.me.REG[1] = p1;
1917 REGB0 = p2;
1918 /* ../lib/standard/file.nit:338 */
1919 REGB0 = NativeFile_io_read___out(fra.me.REG[0], fra.me.REG[1], REGB0);
1920 stack_frame_head = fra.me.prev;
1921 return REGB0;
1922 }
1923 static const char LOCATE_standard___file___NativeFile___io_write[] = "file::NativeFile::io_write";
1924 val_t standard___file___NativeFile___io_write(val_t p0, val_t p1, val_t p2){
1925 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1926 val_t REGB0;
1927 val_t tmp;
1928 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1929 fra.me.file = LOCATE_standard___file;
1930 fra.me.line = 339;
1931 fra.me.meth = LOCATE_standard___file___NativeFile___io_write;
1932 fra.me.has_broke = 0;
1933 fra.me.REG_size = 2;
1934 fra.me.nitni_local_ref_head = NULL;
1935 fra.me.REG[0] = NIT_NULL;
1936 fra.me.REG[1] = NIT_NULL;
1937 fra.me.REG[0] = p0;
1938 fra.me.REG[1] = p1;
1939 REGB0 = p2;
1940 /* ../lib/standard/file.nit:339 */
1941 REGB0 = NativeFile_io_write___out(fra.me.REG[0], fra.me.REG[1], REGB0);
1942 stack_frame_head = fra.me.prev;
1943 return REGB0;
1944 }
1945 static const char LOCATE_standard___file___NativeFile___io_close[] = "file::NativeFile::io_close";
1946 val_t standard___file___NativeFile___io_close(val_t p0){
1947 struct {struct stack_frame_t me;} fra;
1948 val_t REGB0;
1949 val_t tmp;
1950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1951 fra.me.file = LOCATE_standard___file;
1952 fra.me.line = 340;
1953 fra.me.meth = LOCATE_standard___file___NativeFile___io_close;
1954 fra.me.has_broke = 0;
1955 fra.me.REG_size = 1;
1956 fra.me.nitni_local_ref_head = NULL;
1957 fra.me.REG[0] = NIT_NULL;
1958 fra.me.REG[0] = p0;
1959 /* ../lib/standard/file.nit:340 */
1960 REGB0 = NativeFile_io_close___out(fra.me.REG[0]);
1961 stack_frame_head = fra.me.prev;
1962 return REGB0;
1963 }
1964 static const char LOCATE_standard___file___NativeFile___file_stat[] = "file::NativeFile::file_stat";
1965 val_t standard___file___NativeFile___file_stat(val_t p0){
1966 struct {struct stack_frame_t me;} fra;
1967 val_t tmp;
1968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1969 fra.me.file = LOCATE_standard___file;
1970 fra.me.line = 341;
1971 fra.me.meth = LOCATE_standard___file___NativeFile___file_stat;
1972 fra.me.has_broke = 0;
1973 fra.me.REG_size = 1;
1974 fra.me.nitni_local_ref_head = NULL;
1975 fra.me.REG[0] = NIT_NULL;
1976 fra.me.REG[0] = p0;
1977 /* ../lib/standard/file.nit:341 */
1978 fra.me.REG[0] = NativeFile_file_stat___out(fra.me.REG[0]);
1979 stack_frame_head = fra.me.prev;
1980 return fra.me.REG[0];
1981 }
1982 static const char LOCATE_standard___file___NativeFile___io_open_read[] = "file::NativeFile::io_open_read";
1983 void standard___file___NativeFile___io_open_read(val_t p0, val_t p1, int* init_table){
1984 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
1985 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1986 val_t tmp;
1987 if (init_table[itpos10]) return;
1988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1989 fra.me.file = LOCATE_standard___file;
1990 fra.me.line = 343;
1991 fra.me.meth = LOCATE_standard___file___NativeFile___io_open_read;
1992 fra.me.has_broke = 0;
1993 fra.me.REG_size = 2;
1994 fra.me.nitni_local_ref_head = NULL;
1995 fra.me.REG[0] = NIT_NULL;
1996 fra.me.REG[1] = NIT_NULL;
1997 fra.me.REG[0] = p0;
1998 fra.me.REG[1] = p1;
1999 /* ../lib/standard/file.nit:343 */
2000 stack_frame_head = fra.me.prev;
2001 init_table[itpos10] = 1;
2002 return;
2003 }
2004 static const char LOCATE_standard___file___NativeFile___io_open_write[] = "file::NativeFile::io_open_write";
2005 void standard___file___NativeFile___io_open_write(val_t p0, val_t p1, int* init_table){
2006 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2007 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2008 val_t tmp;
2009 if (init_table[itpos11]) return;
2010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2011 fra.me.file = LOCATE_standard___file;
2012 fra.me.line = 344;
2013 fra.me.meth = LOCATE_standard___file___NativeFile___io_open_write;
2014 fra.me.has_broke = 0;
2015 fra.me.REG_size = 2;
2016 fra.me.nitni_local_ref_head = NULL;
2017 fra.me.REG[0] = NIT_NULL;
2018 fra.me.REG[1] = NIT_NULL;
2019 fra.me.REG[0] = p0;
2020 fra.me.REG[1] = p1;
2021 /* ../lib/standard/file.nit:344 */
2022 stack_frame_head = fra.me.prev;
2023 init_table[itpos11] = 1;
2024 return;
2025 }
2026 static const char LOCATE_standard___file___NativeFile___native_stdin[] = "file::NativeFile::native_stdin";
2027 void standard___file___NativeFile___native_stdin(val_t p0, int* init_table){
2028 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2029 struct {struct stack_frame_t me;} fra;
2030 val_t tmp;
2031 if (init_table[itpos12]) return;
2032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2033 fra.me.file = LOCATE_standard___file;
2034 fra.me.line = 345;
2035 fra.me.meth = LOCATE_standard___file___NativeFile___native_stdin;
2036 fra.me.has_broke = 0;
2037 fra.me.REG_size = 1;
2038 fra.me.nitni_local_ref_head = NULL;
2039 fra.me.REG[0] = NIT_NULL;
2040 fra.me.REG[0] = p0;
2041 /* ../lib/standard/file.nit:345 */
2042 stack_frame_head = fra.me.prev;
2043 init_table[itpos12] = 1;
2044 return;
2045 }
2046 static const char LOCATE_standard___file___NativeFile___native_stdout[] = "file::NativeFile::native_stdout";
2047 void standard___file___NativeFile___native_stdout(val_t p0, int* init_table){
2048 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2049 struct {struct stack_frame_t me;} fra;
2050 val_t tmp;
2051 if (init_table[itpos13]) return;
2052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2053 fra.me.file = LOCATE_standard___file;
2054 fra.me.line = 346;
2055 fra.me.meth = LOCATE_standard___file___NativeFile___native_stdout;
2056 fra.me.has_broke = 0;
2057 fra.me.REG_size = 1;
2058 fra.me.nitni_local_ref_head = NULL;
2059 fra.me.REG[0] = NIT_NULL;
2060 fra.me.REG[0] = p0;
2061 /* ../lib/standard/file.nit:346 */
2062 stack_frame_head = fra.me.prev;
2063 init_table[itpos13] = 1;
2064 return;
2065 }
2066 static const char LOCATE_standard___file___NativeFile___native_stderr[] = "file::NativeFile::native_stderr";
2067 void standard___file___NativeFile___native_stderr(val_t p0, int* init_table){
2068 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2069 struct {struct stack_frame_t me;} fra;
2070 val_t tmp;
2071 if (init_table[itpos14]) return;
2072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2073 fra.me.file = LOCATE_standard___file;
2074 fra.me.line = 347;
2075 fra.me.meth = LOCATE_standard___file___NativeFile___native_stderr;
2076 fra.me.has_broke = 0;
2077 fra.me.REG_size = 1;
2078 fra.me.nitni_local_ref_head = NULL;
2079 fra.me.REG[0] = NIT_NULL;
2080 fra.me.REG[0] = p0;
2081 /* ../lib/standard/file.nit:347 */
2082 stack_frame_head = fra.me.prev;
2083 init_table[itpos14] = 1;
2084 return;
2085 }