c_src : Regenerated c_src to prevent use of String contructors
[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 = 26;
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:26 */
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, 26);
26 }
27 /* ../lib/standard/file.nit:29 */
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 = 32;
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:35 */
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:36 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(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 = 39;
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:42 */
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:318 */
88 REGB0 = TAG_Char(UNTAG_Int(REGB0));
89 /* ../lib/standard/file.nit:42 */
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 = 45;
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:48 */
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 = 368;
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:369 */
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 = 371;
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:372 */
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 = 374;
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:375 */
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 = 55;
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:55 */
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 = 61;
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:62 */
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, 62);
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 = 71;
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:75 */
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:76 */
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, 76);
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:77 */
286 REGB0 = TAG_Bool(0);
287 ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
288 /* ../lib/standard/file.nit:78 */
289 REGB0 = TAG_Int(0);
290 ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
291 /* ../lib/standard/file.nit:79 */
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, 79);
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 = 82;
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:84 */
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, 84);
321 }
322 REGB0 = CALL_standard___file___NativeFile___io_close(fra.me.REG[1])(fra.me.REG[1]);
323 /* ../lib/standard/file.nit:85 */
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 = 88;
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:90 */
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, 90);
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, 90);
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, 90);
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, 90);
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, 90);
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:91 */
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:241 */
385 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
386 /* ../lib/standard/file.nit:91 */
387 if (UNTAG_Bool(REGB1)) {
388 /* ../lib/standard/file.nit:92 */
389 REGB1 = TAG_Bool(1);
390 ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB1;
391 /* ../lib/standard/file.nit:93 */
392 REGB1 = TAG_Int(0);
393 REGB0 = REGB1;
394 }
395 /* ../lib/standard/file.nit:95 */
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, 95);
400 }
401 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
402 /* ../lib/standard/file.nit:96 */
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 = 99;
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:99 */
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, 99);
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 = 102;
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:102 */
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:105 */
457 ATTR_standard___file___FStream____path(fra.me.REG[2]) = fra.me.REG[1];
458 /* ../lib/standard/file.nit:106 */
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:107 */
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, 107);
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:108 */
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, 108);
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 = 111;
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:111 */
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 = 112;
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:112 */
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 = 120;
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:122 */
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, 122);
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, 122);
564 }
565 /* ../lib/standard/file.nit:123 */
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:123 */
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 = 126;
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:126 */
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, 126);
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 = 128;
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:130 */
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, 130);
625 }
626 REGB0 = CALL_standard___file___NativeFile___io_close(fra.me.REG[1])(fra.me.REG[1]);
627 /* ../lib/standard/file.nit:131 */
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 = 137;
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:140 */
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, 140);
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, 140);
667 }
668 /* ../lib/standard/file.nit:141 */
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, 141);
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:142 */
676 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
677 if (UNTAG_Bool(REGB2)) {
678 } else {
679 /* ../lib/standard/kernel.nit:237 */
680 REGB3 = TAG_Bool((REGB1)==(REGB0));
681 /* ../lib/standard/file.nit:142 */
682 REGB2 = REGB3;
683 }
684 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
685 if (UNTAG_Bool(REGB2)) {
686 /* ../lib/standard/file.nit:144 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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 = 148;
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:148 */
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:151 */
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:152 */
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, 152);
768 }
769 /* ../lib/standard/file.nit:153 */
770 ATTR_standard___file___FStream____path(fra.me.REG[2]) = fra.me.REG[1];
771 /* ../lib/standard/file.nit:154 */
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 = 157;
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:157 */
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 = 158;
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:158 */
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 = 165;
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:165 */
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:166 */
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:167 */
845 if (!once_value_1) {
846 fra.me.REG[0] = BOX_NativeString("/dev/stdin");
847 REGB0 = TAG_Int(10);
848 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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:168 */
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 = 171;
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:171 */
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 = 178;
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:178 */
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:179 */
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:180 */
905 if (!once_value_1) {
906 fra.me.REG[0] = BOX_NativeString("/dev/stdout");
907 REGB0 = TAG_Int(11);
908 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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:181 */
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 = 187;
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:187 */
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:188 */
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:189 */
946 if (!once_value_1) {
947 fra.me.REG[0] = BOX_NativeString("/dev/stderr");
948 REGB0 = TAG_Int(11);
949 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(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:190 */
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 = 197;
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:198 */
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 = 200;
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:200 */
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_lstat[] = "file::String::file_lstat";
1006 val_t standard___file___String___file_lstat(val_t p0){
1007 struct {struct stack_frame_t me;} fra;
1008 val_t tmp;
1009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1010 fra.me.file = LOCATE_standard___file;
1011 fra.me.line = 201;
1012 fra.me.meth = LOCATE_standard___file___String___file_lstat;
1013 fra.me.has_broke = 0;
1014 fra.me.REG_size = 1;
1015 fra.me.nitni_local_ref_head = NULL;
1016 fra.me.REG[0] = NIT_NULL;
1017 fra.me.REG[0] = p0;
1018 /* ../lib/standard/file.nit:201 */
1019 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
1020 fra.me.REG[0] = CALL_standard___file___NativeString___file_lstat(fra.me.REG[0])(fra.me.REG[0]);
1021 goto label1;
1022 label1: while(0);
1023 stack_frame_head = fra.me.prev;
1024 return fra.me.REG[0];
1025 }
1026 static const char LOCATE_standard___file___String___file_delete[] = "file::String::file_delete";
1027 val_t standard___file___String___file_delete(val_t p0){
1028 struct {struct stack_frame_t me;} fra;
1029 val_t REGB0;
1030 val_t tmp;
1031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1032 fra.me.file = LOCATE_standard___file;
1033 fra.me.line = 203;
1034 fra.me.meth = LOCATE_standard___file___String___file_delete;
1035 fra.me.has_broke = 0;
1036 fra.me.REG_size = 1;
1037 fra.me.nitni_local_ref_head = NULL;
1038 fra.me.REG[0] = NIT_NULL;
1039 fra.me.REG[0] = p0;
1040 /* ../lib/standard/file.nit:204 */
1041 fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
1042 REGB0 = CALL_standard___file___NativeString___file_delete(fra.me.REG[0])(fra.me.REG[0]);
1043 goto label1;
1044 label1: while(0);
1045 stack_frame_head = fra.me.prev;
1046 return REGB0;
1047 }
1048 static const char LOCATE_standard___file___String___strip_extension[] = "file::String::strip_extension";
1049 val_t standard___file___String___strip_extension(val_t p0, val_t p1){
1050 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1051 val_t REGB0;
1052 val_t REGB1;
1053 val_t REGB2;
1054 val_t tmp;
1055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1056 fra.me.file = LOCATE_standard___file;
1057 fra.me.line = 206;
1058 fra.me.meth = LOCATE_standard___file___String___strip_extension;
1059 fra.me.has_broke = 0;
1060 fra.me.REG_size = 2;
1061 fra.me.nitni_local_ref_head = NULL;
1062 fra.me.REG[0] = NIT_NULL;
1063 fra.me.REG[1] = NIT_NULL;
1064 fra.me.REG[0] = p0;
1065 fra.me.REG[1] = p1;
1066 /* ../lib/standard/file.nit:209 */
1067 REGB0 = CALL_standard___string___AbstractString___has_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1068 if (UNTAG_Bool(REGB0)) {
1069 /* ../lib/standard/file.nit:210 */
1070 REGB0 = TAG_Int(0);
1071 /* ../lib/standard/collection/array.nit:24 */
1072 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1073 if (UNTAG_Bool(REGB1)) {
1074 } else {
1075 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1076 }
1077 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1078 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1079 if (UNTAG_Bool(REGB2)) {
1080 } else {
1081 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1082 }
1083 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1084 /* ../lib/standard/kernel.nit:247 */
1085 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1086 /* ../lib/standard/file.nit:210 */
1087 fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1088 goto label1;
1089 }
1090 /* ../lib/standard/file.nit:212 */
1091 fra.me.REG[1] = fra.me.REG[0];
1092 goto label1;
1093 label1: while(0);
1094 stack_frame_head = fra.me.prev;
1095 return fra.me.REG[1];
1096 }
1097 static const char LOCATE_standard___file___String___basename[] = "file::String::basename";
1098 val_t standard___file___String___basename(val_t p0, val_t p1){
1099 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1100 val_t REGB0;
1101 val_t REGB1;
1102 val_t REGB2;
1103 val_t tmp;
1104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1105 fra.me.file = LOCATE_standard___file;
1106 fra.me.line = 215;
1107 fra.me.meth = LOCATE_standard___file___String___basename;
1108 fra.me.has_broke = 0;
1109 fra.me.REG_size = 3;
1110 fra.me.nitni_local_ref_head = NULL;
1111 fra.me.REG[0] = NIT_NULL;
1112 fra.me.REG[1] = NIT_NULL;
1113 fra.me.REG[2] = NIT_NULL;
1114 fra.me.REG[0] = p0;
1115 fra.me.REG[1] = p1;
1116 /* ../lib/standard/file.nit:218 */
1117 REGB0 = TAG_Char('/');
1118 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1119 if (UNTAG_Bool(REGB1)) {
1120 } else {
1121 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 218);
1122 }
1123 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1124 REGB2 = TAG_Int(1);
1125 /* ../lib/standard/kernel.nit:247 */
1126 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1127 /* ../lib/standard/file.nit:218 */
1128 REGB2 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1129 /* ../lib/standard/file.nit:219 */
1130 fra.me.REG[2] = fra.me.REG[0];
1131 /* ../lib/standard/file.nit:220 */
1132 REGB0 = TAG_Int(0);
1133 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1134 if (UNTAG_Bool(REGB1)) {
1135 } else {
1136 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1137 }
1138 /* ../lib/standard/kernel.nit:243 */
1139 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
1140 /* ../lib/standard/file.nit:220 */
1141 if (UNTAG_Bool(REGB0)) {
1142 /* ../lib/standard/file.nit:221 */
1143 REGB0 = TAG_Int(1);
1144 /* ../lib/standard/kernel.nit:245 */
1145 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1146 /* ../lib/standard/file.nit:221 */
1147 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
1148 fra.me.REG[2] = fra.me.REG[0];
1149 }
1150 /* ../lib/standard/file.nit:223 */
1151 fra.me.REG[1] = CALL_standard___file___String___strip_extension(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1152 goto label1;
1153 label1: while(0);
1154 stack_frame_head = fra.me.prev;
1155 return fra.me.REG[1];
1156 }
1157 static const char LOCATE_standard___file___String___dirname[] = "file::String::dirname";
1158 val_t standard___file___String___dirname(val_t p0){
1159 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1160 val_t REGB0;
1161 val_t REGB1;
1162 val_t REGB2;
1163 val_t tmp;
1164 static val_t once_value_2; /* Once value */
1165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1166 fra.me.file = LOCATE_standard___file;
1167 fra.me.line = 226;
1168 fra.me.meth = LOCATE_standard___file___String___dirname;
1169 fra.me.has_broke = 0;
1170 fra.me.REG_size = 2;
1171 fra.me.nitni_local_ref_head = NULL;
1172 fra.me.REG[0] = NIT_NULL;
1173 fra.me.REG[1] = NIT_NULL;
1174 fra.me.REG[0] = p0;
1175 /* ../lib/standard/file.nit:229 */
1176 REGB0 = TAG_Char('/');
1177 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1178 if (UNTAG_Bool(REGB1)) {
1179 } else {
1180 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 229);
1181 }
1182 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1183 REGB2 = TAG_Int(1);
1184 /* ../lib/standard/kernel.nit:247 */
1185 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1186 /* ../lib/standard/file.nit:229 */
1187 REGB2 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1188 /* ../lib/standard/file.nit:230 */
1189 REGB0 = TAG_Int(0);
1190 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1191 if (UNTAG_Bool(REGB1)) {
1192 } else {
1193 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1194 }
1195 /* ../lib/standard/kernel.nit:243 */
1196 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
1197 /* ../lib/standard/file.nit:230 */
1198 if (UNTAG_Bool(REGB0)) {
1199 /* ../lib/standard/file.nit:231 */
1200 REGB0 = TAG_Int(0);
1201 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
1202 goto label1;
1203 } else {
1204 /* ../lib/standard/file.nit:233 */
1205 if (!once_value_2) {
1206 fra.me.REG[1] = BOX_NativeString(".");
1207 REGB2 = TAG_Int(1);
1208 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB2);
1209 once_value_2 = fra.me.REG[1];
1210 register_static_object(&once_value_2);
1211 } else fra.me.REG[1] = once_value_2;
1212 fra.me.REG[1] = fra.me.REG[1];
1213 fra.me.REG[0] = fra.me.REG[1];
1214 goto label1;
1215 }
1216 label1: while(0);
1217 stack_frame_head = fra.me.prev;
1218 return fra.me.REG[0];
1219 }
1220 static const char LOCATE_standard___file___String___simplify_path[] = "file::String::simplify_path";
1221 val_t standard___file___String___simplify_path(val_t p0){
1222 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1223 val_t REGB0;
1224 val_t REGB1;
1225 val_t REGB2;
1226 val_t tmp;
1227 static val_t once_value_1; /* Once value */
1228 static val_t once_value_2; /* Once value */
1229 static val_t once_value_4; /* Once value */
1230 static val_t once_value_5; /* Once value */
1231 static val_t once_value_6; /* Once value */
1232 static val_t once_value_8; /* Once value */
1233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1234 fra.me.file = LOCATE_standard___file;
1235 fra.me.line = 237;
1236 fra.me.meth = LOCATE_standard___file___String___simplify_path;
1237 fra.me.has_broke = 0;
1238 fra.me.REG_size = 6;
1239 fra.me.nitni_local_ref_head = NULL;
1240 fra.me.REG[0] = NIT_NULL;
1241 fra.me.REG[1] = NIT_NULL;
1242 fra.me.REG[2] = NIT_NULL;
1243 fra.me.REG[3] = NIT_NULL;
1244 fra.me.REG[4] = NIT_NULL;
1245 fra.me.REG[5] = NIT_NULL;
1246 fra.me.REG[0] = p0;
1247 /* ../lib/standard/file.nit:252 */
1248 if (!once_value_1) {
1249 fra.me.REG[1] = BOX_NativeString("/");
1250 REGB0 = TAG_Int(1);
1251 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
1252 once_value_1 = fra.me.REG[1];
1253 register_static_object(&once_value_1);
1254 } else fra.me.REG[1] = once_value_1;
1255 fra.me.REG[1] = fra.me.REG[1];
1256 fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1257 /* ../lib/standard/file.nit:253 */
1258 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
1259 /* ../lib/standard/collection/array.nit:270 */
1260 REGB0 = TAG_Int(0);
1261 /* ../lib/standard/collection/array.nit:271 */
1262 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1263 if (UNTAG_Bool(REGB1)) {
1264 } else {
1265 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
1266 }
1267 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1268 /* ../lib/standard/collection/array.nit:272 */
1269 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1270 /* ../lib/standard/collection/array.nit:273 */
1271 while(1) {
1272 /* ../lib/standard/collection/array.nit:24 */
1273 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1274 if (UNTAG_Bool(REGB1)) {
1275 } else {
1276 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1277 }
1278 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1279 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1280 if (UNTAG_Bool(REGB2)) {
1281 } else {
1282 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1283 }
1284 /* ../lib/standard/kernel.nit:242 */
1285 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1286 /* ../lib/standard/collection/array.nit:273 */
1287 if (UNTAG_Bool(REGB1)) {
1288 /* ../lib/standard/collection/array.nit:274 */
1289 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1290 if (UNTAG_Bool(REGB1)) {
1291 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
1292 }
1293 /* ../lib/standard/collection/array.nit:725 */
1294 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1295 /* ../lib/standard/file.nit:255 */
1296 if (!once_value_2) {
1297 fra.me.REG[4] = BOX_NativeString(".");
1298 REGB1 = TAG_Int(1);
1299 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1);
1300 once_value_2 = fra.me.REG[4];
1301 register_static_object(&once_value_2);
1302 } else fra.me.REG[4] = once_value_2;
1303 fra.me.REG[4] = fra.me.REG[4];
1304 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1305 if (UNTAG_Bool(REGB1)) {
1306 } else {
1307 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1308 REGB1 = REGB2;
1309 }
1310 if (UNTAG_Bool(REGB1)) {
1311 goto label3;
1312 }
1313 /* ../lib/standard/file.nit:256 */
1314 if (!once_value_4) {
1315 fra.me.REG[4] = BOX_NativeString("");
1316 REGB1 = TAG_Int(0);
1317 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1);
1318 once_value_4 = fra.me.REG[4];
1319 register_static_object(&once_value_4);
1320 } else fra.me.REG[4] = once_value_4;
1321 fra.me.REG[4] = fra.me.REG[4];
1322 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1323 if (UNTAG_Bool(REGB1)) {
1324 } else {
1325 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1326 REGB1 = REGB2;
1327 }
1328 if (UNTAG_Bool(REGB1)) {
1329 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1330 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1331 } else {
1332 REGB2 = TAG_Bool(0);
1333 REGB1 = REGB2;
1334 }
1335 if (UNTAG_Bool(REGB1)) {
1336 goto label3;
1337 }
1338 /* ../lib/standard/file.nit:257 */
1339 if (!once_value_5) {
1340 fra.me.REG[4] = BOX_NativeString("..");
1341 REGB1 = TAG_Int(2);
1342 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1);
1343 once_value_5 = fra.me.REG[4];
1344 register_static_object(&once_value_5);
1345 } else fra.me.REG[4] = once_value_5;
1346 fra.me.REG[4] = fra.me.REG[4];
1347 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
1348 if (UNTAG_Bool(REGB1)) {
1349 } else {
1350 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1351 REGB1 = REGB2;
1352 }
1353 if (UNTAG_Bool(REGB1)) {
1354 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1355 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1356 } else {
1357 REGB2 = TAG_Bool(0);
1358 REGB1 = REGB2;
1359 }
1360 if (UNTAG_Bool(REGB1)) {
1361 fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[0])(fra.me.REG[0]);
1362 if (!once_value_6) {
1363 fra.me.REG[5] = BOX_NativeString("..");
1364 REGB1 = TAG_Int(2);
1365 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
1366 once_value_6 = fra.me.REG[5];
1367 register_static_object(&once_value_6);
1368 } else fra.me.REG[5] = once_value_6;
1369 fra.me.REG[5] = fra.me.REG[5];
1370 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[5],fra.me.REG[4]));
1371 if (UNTAG_Bool(REGB1)) {
1372 } else {
1373 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1374 if (UNTAG_Bool(REGB2)) {
1375 REGB2 = TAG_Bool(0);
1376 REGB1 = REGB2;
1377 } else {
1378 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1379 REGB1 = REGB2;
1380 }
1381 }
1382 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1383 } else {
1384 REGB2 = TAG_Bool(0);
1385 REGB1 = REGB2;
1386 }
1387 if (UNTAG_Bool(REGB1)) {
1388 /* ../lib/standard/file.nit:258 */
1389 CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
1390 /* ../lib/standard/file.nit:259 */
1391 goto label3;
1392 }
1393 /* ../lib/standard/file.nit:261 */
1394 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1395 label3: while(0);
1396 /* ../lib/standard/collection/array.nit:275 */
1397 REGB1 = TAG_Int(1);
1398 /* ../lib/standard/kernel.nit:245 */
1399 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1400 /* ../lib/standard/collection/array.nit:275 */
1401 REGB0 = REGB1;
1402 } else {
1403 /* ../lib/standard/collection/array.nit:273 */
1404 goto label7;
1405 }
1406 }
1407 label7: while(0);
1408 /* ../lib/standard/file.nit:263 */
1409 if (!once_value_8) {
1410 fra.me.REG[2] = BOX_NativeString("/");
1411 REGB0 = TAG_Int(1);
1412 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
1413 once_value_8 = fra.me.REG[2];
1414 register_static_object(&once_value_8);
1415 } else fra.me.REG[2] = once_value_8;
1416 fra.me.REG[2] = fra.me.REG[2];
1417 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1418 goto label9;
1419 label9: while(0);
1420 stack_frame_head = fra.me.prev;
1421 return fra.me.REG[2];
1422 }
1423 static const char LOCATE_standard___file___String___join_path[] = "file::String::join_path";
1424 val_t standard___file___String___join_path(val_t p0, val_t p1){
1425 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1426 val_t REGB0;
1427 val_t REGB1;
1428 val_t REGB2;
1429 val_t tmp;
1430 static val_t once_value_2; /* Once value */
1431 static val_t once_value_3; /* Once value */
1432 static val_t once_value_4; /* Once value */
1433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1434 fra.me.file = LOCATE_standard___file;
1435 fra.me.line = 266;
1436 fra.me.meth = LOCATE_standard___file___String___join_path;
1437 fra.me.has_broke = 0;
1438 fra.me.REG_size = 5;
1439 fra.me.nitni_local_ref_head = NULL;
1440 fra.me.REG[0] = NIT_NULL;
1441 fra.me.REG[1] = NIT_NULL;
1442 fra.me.REG[2] = NIT_NULL;
1443 fra.me.REG[3] = NIT_NULL;
1444 fra.me.REG[4] = NIT_NULL;
1445 fra.me.REG[0] = p0;
1446 fra.me.REG[1] = p1;
1447 /* ../lib/standard/file.nit:283 */
1448 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
1449 if (UNTAG_Bool(REGB0)) {
1450 fra.me.REG[2] = fra.me.REG[0];
1451 goto label1;
1452 }
1453 /* ../lib/standard/file.nit:284 */
1454 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1455 if (UNTAG_Bool(REGB0)) {
1456 fra.me.REG[2] = fra.me.REG[1];
1457 goto label1;
1458 }
1459 /* ../lib/standard/file.nit:285 */
1460 REGB0 = TAG_Int(0);
1461 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
1462 REGB1 = TAG_Char('/');
1463 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1464 if (UNTAG_Bool(REGB2)) {
1465 } else {
1466 /* ../lib/standard/kernel.nit:434 */
1467 REGB1 = TAG_Bool((REGB0)==(REGB1));
1468 /* ../lib/standard/file.nit:285 */
1469 REGB2 = REGB1;
1470 }
1471 if (UNTAG_Bool(REGB2)) {
1472 fra.me.REG[2] = fra.me.REG[1];
1473 goto label1;
1474 }
1475 /* ../lib/standard/file.nit:286 */
1476 REGB2 = TAG_Int(5);
1477 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1478 if (!once_value_2) {
1479 fra.me.REG[4] = BOX_NativeString("");
1480 REGB2 = TAG_Int(0);
1481 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
1482 once_value_2 = fra.me.REG[4];
1483 register_static_object(&once_value_2);
1484 } else fra.me.REG[4] = once_value_2;
1485 fra.me.REG[4] = fra.me.REG[4];
1486 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1488 if (!once_value_3) {
1489 fra.me.REG[0] = BOX_NativeString("/");
1490 REGB2 = TAG_Int(1);
1491 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
1492 once_value_3 = fra.me.REG[0];
1493 register_static_object(&once_value_3);
1494 } else fra.me.REG[0] = once_value_3;
1495 fra.me.REG[0] = fra.me.REG[0];
1496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1498 if (!once_value_4) {
1499 fra.me.REG[1] = BOX_NativeString("");
1500 REGB2 = TAG_Int(0);
1501 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB2);
1502 once_value_4 = fra.me.REG[1];
1503 register_static_object(&once_value_4);
1504 } else fra.me.REG[1] = once_value_4;
1505 fra.me.REG[1] = fra.me.REG[1];
1506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1507 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1508 fra.me.REG[2] = fra.me.REG[3];
1509 goto label1;
1510 label1: while(0);
1511 stack_frame_head = fra.me.prev;
1512 return fra.me.REG[2];
1513 }
1514 static const char LOCATE_standard___file___String___mkdir[] = "file::String::mkdir";
1515 void standard___file___String___mkdir(val_t p0){
1516 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1517 val_t REGB0;
1518 val_t REGB1;
1519 val_t REGB2;
1520 val_t tmp;
1521 static val_t once_value_1; /* Once value */
1522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1523 fra.me.file = LOCATE_standard___file;
1524 fra.me.line = 289;
1525 fra.me.meth = LOCATE_standard___file___String___mkdir;
1526 fra.me.has_broke = 0;
1527 fra.me.REG_size = 4;
1528 fra.me.nitni_local_ref_head = NULL;
1529 fra.me.REG[0] = NIT_NULL;
1530 fra.me.REG[1] = NIT_NULL;
1531 fra.me.REG[2] = NIT_NULL;
1532 fra.me.REG[3] = NIT_NULL;
1533 fra.me.REG[0] = p0;
1534 /* ../lib/standard/file.nit:292 */
1535 if (!once_value_1) {
1536 fra.me.REG[1] = BOX_NativeString("/");
1537 REGB0 = TAG_Int(1);
1538 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
1539 once_value_1 = fra.me.REG[1];
1540 register_static_object(&once_value_1);
1541 } else fra.me.REG[1] = once_value_1;
1542 fra.me.REG[1] = fra.me.REG[1];
1543 fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1544 /* ../lib/standard/file.nit:293 */
1545 fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___init();
1546 /* ../lib/standard/file.nit:294 */
1547 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
1548 if (UNTAG_Bool(REGB0)) {
1549 goto label2;
1550 }
1551 /* ../lib/standard/file.nit:295 */
1552 REGB0 = TAG_Int(0);
1553 /* ../lib/standard/collection/array.nit:279 */
1554 fra.me.REG[2] = fra.me.REG[1];
1555 /* ../lib/standard/collection/array.nit:281 */
1556 REGB1 = TAG_Int(0);
1557 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1558 if (UNTAG_Bool(REGB2)) {
1559 } else {
1560 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1561 }
1562 /* ../lib/standard/kernel.nit:243 */
1563 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1564 /* ../lib/standard/collection/array.nit:281 */
1565 if (UNTAG_Bool(REGB1)) {
1566 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1567 if (UNTAG_Bool(REGB1)) {
1568 } else {
1569 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
1570 }
1571 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1572 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1573 if (UNTAG_Bool(REGB2)) {
1574 } else {
1575 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1576 }
1577 /* ../lib/standard/kernel.nit:242 */
1578 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1579 } else {
1580 /* ../lib/standard/collection/array.nit:281 */
1581 REGB2 = TAG_Bool(0);
1582 REGB1 = REGB2;
1583 }
1584 if (UNTAG_Bool(REGB1)) {
1585 } else {
1586 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
1587 }
1588 /* ../lib/standard/collection/array.nit:282 */
1589 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1590 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1591 if (UNTAG_Bool(REGB1)) {
1592 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
1593 }
1594 /* ../lib/standard/collection/array.nit:725 */
1595 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1596 /* ../lib/standard/collection/array.nit:282 */
1597 goto label3;
1598 label3: while(0);
1599 /* ../lib/standard/file.nit:295 */
1600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1601 if (UNTAG_Bool(REGB0)) {
1602 nit_abort("Reciever is null", NULL, LOCATE_standard___file, 295);
1603 }
1604 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
1605 if (UNTAG_Bool(REGB0)) {
1606 /* ../lib/standard/file.nit:297 */
1607 REGB0 = TAG_Char('/');
1608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB0);
1609 }
1610 /* ../lib/standard/collection/array.nit:270 */
1611 REGB0 = TAG_Int(0);
1612 /* ../lib/standard/collection/array.nit:271 */
1613 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1614 if (UNTAG_Bool(REGB1)) {
1615 } else {
1616 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
1617 }
1618 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1619 /* ../lib/standard/collection/array.nit:272 */
1620 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1621 /* ../lib/standard/collection/array.nit:273 */
1622 while(1) {
1623 /* ../lib/standard/collection/array.nit:24 */
1624 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1625 if (UNTAG_Bool(REGB1)) {
1626 } else {
1627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1628 }
1629 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1630 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1631 if (UNTAG_Bool(REGB2)) {
1632 } else {
1633 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1634 }
1635 /* ../lib/standard/kernel.nit:242 */
1636 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1637 /* ../lib/standard/collection/array.nit:273 */
1638 if (UNTAG_Bool(REGB1)) {
1639 /* ../lib/standard/collection/array.nit:274 */
1640 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1641 if (UNTAG_Bool(REGB1)) {
1642 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
1643 }
1644 /* ../lib/standard/collection/array.nit:725 */
1645 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1646 /* ../lib/standard/file.nit:300 */
1647 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
1648 if (UNTAG_Bool(REGB1)) {
1649 goto label4;
1650 }
1651 /* ../lib/standard/file.nit:301 */
1652 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1653 /* ../lib/standard/file.nit:302 */
1654 REGB1 = TAG_Char('/');
1655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
1656 /* ../lib/standard/file.nit:303 */
1657 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1658 fra.me.REG[3] = CALL_standard___string___String___to_cstring(fra.me.REG[3])(fra.me.REG[3]);
1659 CALL_standard___file___NativeString___file_mkdir(fra.me.REG[3])(fra.me.REG[3]);
1660 label4: while(0);
1661 /* ../lib/standard/collection/array.nit:275 */
1662 REGB1 = TAG_Int(1);
1663 /* ../lib/standard/kernel.nit:245 */
1664 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1665 /* ../lib/standard/collection/array.nit:275 */
1666 REGB0 = REGB1;
1667 } else {
1668 /* ../lib/standard/collection/array.nit:273 */
1669 goto label5;
1670 }
1671 }
1672 label5: while(0);
1673 label2: while(0);
1674 stack_frame_head = fra.me.prev;
1675 return;
1676 }
1677 static const char LOCATE_standard___file___String___file_extension[] = "file::String::file_extension";
1678 val_t standard___file___String___file_extension(val_t p0){
1679 struct {struct stack_frame_t me;} fra;
1680 val_t REGB0;
1681 val_t REGB1;
1682 val_t REGB2;
1683 val_t tmp;
1684 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1685 fra.me.file = LOCATE_standard___file;
1686 fra.me.line = 307;
1687 fra.me.meth = LOCATE_standard___file___String___file_extension;
1688 fra.me.has_broke = 0;
1689 fra.me.REG_size = 1;
1690 fra.me.nitni_local_ref_head = NULL;
1691 fra.me.REG[0] = NIT_NULL;
1692 fra.me.REG[0] = p0;
1693 /* ../lib/standard/file.nit:310 */
1694 REGB0 = TAG_Char('.');
1695 REGB0 = CALL_standard___collection___array___AbstractArrayRead___last_index_of(fra.me.REG[0])(fra.me.REG[0], REGB0);
1696 /* ../lib/standard/file.nit:311 */
1697 REGB1 = TAG_Int(0);
1698 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1699 if (UNTAG_Bool(REGB2)) {
1700 } else {
1701 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1702 }
1703 /* ../lib/standard/kernel.nit:243 */
1704 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1705 /* ../lib/standard/file.nit:311 */
1706 if (UNTAG_Bool(REGB1)) {
1707 /* ../lib/standard/file.nit:312 */
1708 REGB1 = TAG_Int(1);
1709 /* ../lib/standard/kernel.nit:245 */
1710 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1711 /* ../lib/standard/collection/array.nit:24 */
1712 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1713 if (UNTAG_Bool(REGB0)) {
1714 } else {
1715 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1716 }
1717 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1718 /* ../lib/standard/file.nit:312 */
1719 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0);
1720 goto label1;
1721 } else {
1722 /* ../lib/standard/file.nit:314 */
1723 fra.me.REG[0] = NIT_NULL;
1724 goto label1;
1725 }
1726 label1: while(0);
1727 stack_frame_head = fra.me.prev;
1728 return fra.me.REG[0];
1729 }
1730 static const char LOCATE_standard___file___String___files[] = "file::String::files";
1731 val_t standard___file___String___files(val_t p0){
1732 struct {struct stack_frame_t me;} fra;
1733 val_t tmp;
1734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1735 fra.me.file = LOCATE_standard___file;
1736 fra.me.line = 318;
1737 fra.me.meth = LOCATE_standard___file___String___files;
1738 fra.me.has_broke = 0;
1739 fra.me.REG_size = 1;
1740 fra.me.nitni_local_ref_head = NULL;
1741 fra.me.REG[0] = NIT_NULL;
1742 fra.me.REG[0] = p0;
1743 /* ../lib/standard/file.nit:318 */
1744 fra.me.REG[0] = String_files___out(fra.me.REG[0]);
1745 ;
1746 ;
1747 ;
1748 ;
1749 stack_frame_head = fra.me.prev;
1750 return fra.me.REG[0];
1751 }
1752 static const char LOCATE_standard___file___NativeString___file_exists[] = "file::NativeString::file_exists";
1753 val_t standard___file___NativeString___file_exists(val_t p0){
1754 struct {struct stack_frame_t me;} fra;
1755 val_t REGB0;
1756 val_t tmp;
1757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1758 fra.me.file = LOCATE_standard___file;
1759 fra.me.line = 323;
1760 fra.me.meth = LOCATE_standard___file___NativeString___file_exists;
1761 fra.me.has_broke = 0;
1762 fra.me.REG_size = 1;
1763 fra.me.nitni_local_ref_head = NULL;
1764 fra.me.REG[0] = NIT_NULL;
1765 fra.me.REG[0] = p0;
1766 /* ../lib/standard/file.nit:323 */
1767 REGB0 = NativeString_file_exists___out(fra.me.REG[0]);
1768 stack_frame_head = fra.me.prev;
1769 return REGB0;
1770 }
1771 static const char LOCATE_standard___file___NativeString___file_stat[] = "file::NativeString::file_stat";
1772 val_t standard___file___NativeString___file_stat(val_t p0){
1773 struct {struct stack_frame_t me;} fra;
1774 val_t tmp;
1775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1776 fra.me.file = LOCATE_standard___file;
1777 fra.me.line = 324;
1778 fra.me.meth = LOCATE_standard___file___NativeString___file_stat;
1779 fra.me.has_broke = 0;
1780 fra.me.REG_size = 1;
1781 fra.me.nitni_local_ref_head = NULL;
1782 fra.me.REG[0] = NIT_NULL;
1783 fra.me.REG[0] = p0;
1784 /* ../lib/standard/file.nit:324 */
1785 fra.me.REG[0] = NativeString_file_stat___out(fra.me.REG[0]);
1786 stack_frame_head = fra.me.prev;
1787 return fra.me.REG[0];
1788 }
1789 static const char LOCATE_standard___file___NativeString___file_lstat[] = "file::NativeString::file_lstat";
1790 val_t standard___file___NativeString___file_lstat(val_t p0){
1791 struct {struct stack_frame_t me;} fra;
1792 val_t tmp;
1793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1794 fra.me.file = LOCATE_standard___file;
1795 fra.me.line = 325;
1796 fra.me.meth = LOCATE_standard___file___NativeString___file_lstat;
1797 fra.me.has_broke = 0;
1798 fra.me.REG_size = 1;
1799 fra.me.nitni_local_ref_head = NULL;
1800 fra.me.REG[0] = NIT_NULL;
1801 fra.me.REG[0] = p0;
1802 /* ../lib/standard/file.nit:325 */
1803 fra.me.REG[0] = NativeString_file_lstat___out(fra.me.REG[0]);
1804 stack_frame_head = fra.me.prev;
1805 return fra.me.REG[0];
1806 }
1807 static const char LOCATE_standard___file___NativeString___file_mkdir[] = "file::NativeString::file_mkdir";
1808 val_t standard___file___NativeString___file_mkdir(val_t p0){
1809 struct {struct stack_frame_t me;} fra;
1810 val_t REGB0;
1811 val_t tmp;
1812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1813 fra.me.file = LOCATE_standard___file;
1814 fra.me.line = 333;
1815 fra.me.meth = LOCATE_standard___file___NativeString___file_mkdir;
1816 fra.me.has_broke = 0;
1817 fra.me.REG_size = 1;
1818 fra.me.nitni_local_ref_head = NULL;
1819 fra.me.REG[0] = NIT_NULL;
1820 fra.me.REG[0] = p0;
1821 /* ../lib/standard/file.nit:333 */
1822 REGB0 = NativeString_file_mkdir___out(fra.me.REG[0]);
1823 stack_frame_head = fra.me.prev;
1824 return REGB0;
1825 }
1826 static const char LOCATE_standard___file___NativeString___file_delete[] = "file::NativeString::file_delete";
1827 val_t standard___file___NativeString___file_delete(val_t p0){
1828 struct {struct stack_frame_t me;} fra;
1829 val_t REGB0;
1830 val_t tmp;
1831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1832 fra.me.file = LOCATE_standard___file;
1833 fra.me.line = 334;
1834 fra.me.meth = LOCATE_standard___file___NativeString___file_delete;
1835 fra.me.has_broke = 0;
1836 fra.me.REG_size = 1;
1837 fra.me.nitni_local_ref_head = NULL;
1838 fra.me.REG[0] = NIT_NULL;
1839 fra.me.REG[0] = p0;
1840 /* ../lib/standard/file.nit:334 */
1841 REGB0 = NativeString_file_delete___out(fra.me.REG[0]);
1842 stack_frame_head = fra.me.prev;
1843 return REGB0;
1844 }
1845 static const char LOCATE_standard___file___FileStat___mode[] = "file::FileStat::mode";
1846 val_t standard___file___FileStat___mode(val_t p0){
1847 struct {struct stack_frame_t me;} fra;
1848 val_t REGB0;
1849 val_t tmp;
1850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1851 fra.me.file = LOCATE_standard___file;
1852 fra.me.line = 338;
1853 fra.me.meth = LOCATE_standard___file___FileStat___mode;
1854 fra.me.has_broke = 0;
1855 fra.me.REG_size = 1;
1856 fra.me.nitni_local_ref_head = NULL;
1857 fra.me.REG[0] = NIT_NULL;
1858 fra.me.REG[0] = p0;
1859 /* ../lib/standard/file.nit:338 */
1860 REGB0 = FileStat_mode___out(fra.me.REG[0]);
1861 stack_frame_head = fra.me.prev;
1862 return REGB0;
1863 }
1864 static const char LOCATE_standard___file___FileStat___atime[] = "file::FileStat::atime";
1865 val_t standard___file___FileStat___atime(val_t p0){
1866 struct {struct stack_frame_t me;} fra;
1867 val_t REGB0;
1868 val_t tmp;
1869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1870 fra.me.file = LOCATE_standard___file;
1871 fra.me.line = 340;
1872 fra.me.meth = LOCATE_standard___file___FileStat___atime;
1873 fra.me.has_broke = 0;
1874 fra.me.REG_size = 1;
1875 fra.me.nitni_local_ref_head = NULL;
1876 fra.me.REG[0] = NIT_NULL;
1877 fra.me.REG[0] = p0;
1878 /* ../lib/standard/file.nit:340 */
1879 REGB0 = FileStat_atime___out(fra.me.REG[0]);
1880 stack_frame_head = fra.me.prev;
1881 return REGB0;
1882 }
1883 static const char LOCATE_standard___file___FileStat___ctime[] = "file::FileStat::ctime";
1884 val_t standard___file___FileStat___ctime(val_t p0){
1885 struct {struct stack_frame_t me;} fra;
1886 val_t REGB0;
1887 val_t tmp;
1888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1889 fra.me.file = LOCATE_standard___file;
1890 fra.me.line = 341;
1891 fra.me.meth = LOCATE_standard___file___FileStat___ctime;
1892 fra.me.has_broke = 0;
1893 fra.me.REG_size = 1;
1894 fra.me.nitni_local_ref_head = NULL;
1895 fra.me.REG[0] = NIT_NULL;
1896 fra.me.REG[0] = p0;
1897 /* ../lib/standard/file.nit:341 */
1898 REGB0 = FileStat_ctime___out(fra.me.REG[0]);
1899 stack_frame_head = fra.me.prev;
1900 return REGB0;
1901 }
1902 static const char LOCATE_standard___file___FileStat___mtime[] = "file::FileStat::mtime";
1903 val_t standard___file___FileStat___mtime(val_t p0){
1904 struct {struct stack_frame_t me;} fra;
1905 val_t REGB0;
1906 val_t tmp;
1907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1908 fra.me.file = LOCATE_standard___file;
1909 fra.me.line = 342;
1910 fra.me.meth = LOCATE_standard___file___FileStat___mtime;
1911 fra.me.has_broke = 0;
1912 fra.me.REG_size = 1;
1913 fra.me.nitni_local_ref_head = NULL;
1914 fra.me.REG[0] = NIT_NULL;
1915 fra.me.REG[0] = p0;
1916 /* ../lib/standard/file.nit:342 */
1917 REGB0 = FileStat_mtime___out(fra.me.REG[0]);
1918 stack_frame_head = fra.me.prev;
1919 return REGB0;
1920 }
1921 static const char LOCATE_standard___file___FileStat___size[] = "file::FileStat::size";
1922 val_t standard___file___FileStat___size(val_t p0){
1923 struct {struct stack_frame_t me;} fra;
1924 val_t REGB0;
1925 val_t tmp;
1926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1927 fra.me.file = LOCATE_standard___file;
1928 fra.me.line = 343;
1929 fra.me.meth = LOCATE_standard___file___FileStat___size;
1930 fra.me.has_broke = 0;
1931 fra.me.REG_size = 1;
1932 fra.me.nitni_local_ref_head = NULL;
1933 fra.me.REG[0] = NIT_NULL;
1934 fra.me.REG[0] = p0;
1935 /* ../lib/standard/file.nit:343 */
1936 REGB0 = FileStat_size___out(fra.me.REG[0]);
1937 stack_frame_head = fra.me.prev;
1938 return REGB0;
1939 }
1940 static const char LOCATE_standard___file___FileStat___is_reg[] = "file::FileStat::is_reg";
1941 val_t standard___file___FileStat___is_reg(val_t p0){
1942 struct {struct stack_frame_t me;} fra;
1943 val_t REGB0;
1944 val_t tmp;
1945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1946 fra.me.file = LOCATE_standard___file;
1947 fra.me.line = 345;
1948 fra.me.meth = LOCATE_standard___file___FileStat___is_reg;
1949 fra.me.has_broke = 0;
1950 fra.me.REG_size = 1;
1951 fra.me.nitni_local_ref_head = NULL;
1952 fra.me.REG[0] = NIT_NULL;
1953 fra.me.REG[0] = p0;
1954 /* ../lib/standard/file.nit:345 */
1955 REGB0 = FileStat_is_reg___out(fra.me.REG[0]);
1956 stack_frame_head = fra.me.prev;
1957 return REGB0;
1958 }
1959 static const char LOCATE_standard___file___FileStat___is_dir[] = "file::FileStat::is_dir";
1960 val_t standard___file___FileStat___is_dir(val_t p0){
1961 struct {struct stack_frame_t me;} fra;
1962 val_t REGB0;
1963 val_t tmp;
1964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1965 fra.me.file = LOCATE_standard___file;
1966 fra.me.line = 346;
1967 fra.me.meth = LOCATE_standard___file___FileStat___is_dir;
1968 fra.me.has_broke = 0;
1969 fra.me.REG_size = 1;
1970 fra.me.nitni_local_ref_head = NULL;
1971 fra.me.REG[0] = NIT_NULL;
1972 fra.me.REG[0] = p0;
1973 /* ../lib/standard/file.nit:346 */
1974 REGB0 = FileStat_is_dir___out(fra.me.REG[0]);
1975 stack_frame_head = fra.me.prev;
1976 return REGB0;
1977 }
1978 static const char LOCATE_standard___file___FileStat___is_chr[] = "file::FileStat::is_chr";
1979 val_t standard___file___FileStat___is_chr(val_t p0){
1980 struct {struct stack_frame_t me;} fra;
1981 val_t REGB0;
1982 val_t tmp;
1983 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1984 fra.me.file = LOCATE_standard___file;
1985 fra.me.line = 347;
1986 fra.me.meth = LOCATE_standard___file___FileStat___is_chr;
1987 fra.me.has_broke = 0;
1988 fra.me.REG_size = 1;
1989 fra.me.nitni_local_ref_head = NULL;
1990 fra.me.REG[0] = NIT_NULL;
1991 fra.me.REG[0] = p0;
1992 /* ../lib/standard/file.nit:347 */
1993 REGB0 = FileStat_is_chr___out(fra.me.REG[0]);
1994 stack_frame_head = fra.me.prev;
1995 return REGB0;
1996 }
1997 static const char LOCATE_standard___file___FileStat___is_blk[] = "file::FileStat::is_blk";
1998 val_t standard___file___FileStat___is_blk(val_t p0){
1999 struct {struct stack_frame_t me;} fra;
2000 val_t REGB0;
2001 val_t tmp;
2002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2003 fra.me.file = LOCATE_standard___file;
2004 fra.me.line = 348;
2005 fra.me.meth = LOCATE_standard___file___FileStat___is_blk;
2006 fra.me.has_broke = 0;
2007 fra.me.REG_size = 1;
2008 fra.me.nitni_local_ref_head = NULL;
2009 fra.me.REG[0] = NIT_NULL;
2010 fra.me.REG[0] = p0;
2011 /* ../lib/standard/file.nit:348 */
2012 REGB0 = FileStat_is_blk___out(fra.me.REG[0]);
2013 stack_frame_head = fra.me.prev;
2014 return REGB0;
2015 }
2016 static const char LOCATE_standard___file___FileStat___is_fifo[] = "file::FileStat::is_fifo";
2017 val_t standard___file___FileStat___is_fifo(val_t p0){
2018 struct {struct stack_frame_t me;} fra;
2019 val_t REGB0;
2020 val_t tmp;
2021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2022 fra.me.file = LOCATE_standard___file;
2023 fra.me.line = 349;
2024 fra.me.meth = LOCATE_standard___file___FileStat___is_fifo;
2025 fra.me.has_broke = 0;
2026 fra.me.REG_size = 1;
2027 fra.me.nitni_local_ref_head = NULL;
2028 fra.me.REG[0] = NIT_NULL;
2029 fra.me.REG[0] = p0;
2030 /* ../lib/standard/file.nit:349 */
2031 REGB0 = FileStat_is_fifo___out(fra.me.REG[0]);
2032 stack_frame_head = fra.me.prev;
2033 return REGB0;
2034 }
2035 static const char LOCATE_standard___file___FileStat___is_lnk[] = "file::FileStat::is_lnk";
2036 val_t standard___file___FileStat___is_lnk(val_t p0){
2037 struct {struct stack_frame_t me;} fra;
2038 val_t REGB0;
2039 val_t tmp;
2040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2041 fra.me.file = LOCATE_standard___file;
2042 fra.me.line = 350;
2043 fra.me.meth = LOCATE_standard___file___FileStat___is_lnk;
2044 fra.me.has_broke = 0;
2045 fra.me.REG_size = 1;
2046 fra.me.nitni_local_ref_head = NULL;
2047 fra.me.REG[0] = NIT_NULL;
2048 fra.me.REG[0] = p0;
2049 /* ../lib/standard/file.nit:350 */
2050 REGB0 = FileStat_is_lnk___out(fra.me.REG[0]);
2051 stack_frame_head = fra.me.prev;
2052 return REGB0;
2053 }
2054 static const char LOCATE_standard___file___FileStat___is_sock[] = "file::FileStat::is_sock";
2055 val_t standard___file___FileStat___is_sock(val_t p0){
2056 struct {struct stack_frame_t me;} fra;
2057 val_t REGB0;
2058 val_t tmp;
2059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2060 fra.me.file = LOCATE_standard___file;
2061 fra.me.line = 351;
2062 fra.me.meth = LOCATE_standard___file___FileStat___is_sock;
2063 fra.me.has_broke = 0;
2064 fra.me.REG_size = 1;
2065 fra.me.nitni_local_ref_head = NULL;
2066 fra.me.REG[0] = NIT_NULL;
2067 fra.me.REG[0] = p0;
2068 /* ../lib/standard/file.nit:351 */
2069 REGB0 = FileStat_is_sock___out(fra.me.REG[0]);
2070 stack_frame_head = fra.me.prev;
2071 return REGB0;
2072 }
2073 static const char LOCATE_standard___file___NativeFile___io_read[] = "file::NativeFile::io_read";
2074 val_t standard___file___NativeFile___io_read(val_t p0, val_t p1, val_t p2){
2075 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2076 val_t REGB0;
2077 val_t tmp;
2078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2079 fra.me.file = LOCATE_standard___file;
2080 fra.me.line = 356;
2081 fra.me.meth = LOCATE_standard___file___NativeFile___io_read;
2082 fra.me.has_broke = 0;
2083 fra.me.REG_size = 2;
2084 fra.me.nitni_local_ref_head = NULL;
2085 fra.me.REG[0] = NIT_NULL;
2086 fra.me.REG[1] = NIT_NULL;
2087 fra.me.REG[0] = p0;
2088 fra.me.REG[1] = p1;
2089 REGB0 = p2;
2090 /* ../lib/standard/file.nit:356 */
2091 REGB0 = NativeFile_io_read___out(fra.me.REG[0], fra.me.REG[1], REGB0);
2092 stack_frame_head = fra.me.prev;
2093 return REGB0;
2094 }
2095 static const char LOCATE_standard___file___NativeFile___io_write[] = "file::NativeFile::io_write";
2096 val_t standard___file___NativeFile___io_write(val_t p0, val_t p1, val_t p2){
2097 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2098 val_t REGB0;
2099 val_t tmp;
2100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2101 fra.me.file = LOCATE_standard___file;
2102 fra.me.line = 357;
2103 fra.me.meth = LOCATE_standard___file___NativeFile___io_write;
2104 fra.me.has_broke = 0;
2105 fra.me.REG_size = 2;
2106 fra.me.nitni_local_ref_head = NULL;
2107 fra.me.REG[0] = NIT_NULL;
2108 fra.me.REG[1] = NIT_NULL;
2109 fra.me.REG[0] = p0;
2110 fra.me.REG[1] = p1;
2111 REGB0 = p2;
2112 /* ../lib/standard/file.nit:357 */
2113 REGB0 = NativeFile_io_write___out(fra.me.REG[0], fra.me.REG[1], REGB0);
2114 stack_frame_head = fra.me.prev;
2115 return REGB0;
2116 }
2117 static const char LOCATE_standard___file___NativeFile___io_close[] = "file::NativeFile::io_close";
2118 val_t standard___file___NativeFile___io_close(val_t p0){
2119 struct {struct stack_frame_t me;} fra;
2120 val_t REGB0;
2121 val_t tmp;
2122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2123 fra.me.file = LOCATE_standard___file;
2124 fra.me.line = 358;
2125 fra.me.meth = LOCATE_standard___file___NativeFile___io_close;
2126 fra.me.has_broke = 0;
2127 fra.me.REG_size = 1;
2128 fra.me.nitni_local_ref_head = NULL;
2129 fra.me.REG[0] = NIT_NULL;
2130 fra.me.REG[0] = p0;
2131 /* ../lib/standard/file.nit:358 */
2132 REGB0 = NativeFile_io_close___out(fra.me.REG[0]);
2133 stack_frame_head = fra.me.prev;
2134 return REGB0;
2135 }
2136 static const char LOCATE_standard___file___NativeFile___file_stat[] = "file::NativeFile::file_stat";
2137 val_t standard___file___NativeFile___file_stat(val_t p0){
2138 struct {struct stack_frame_t me;} fra;
2139 val_t tmp;
2140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2141 fra.me.file = LOCATE_standard___file;
2142 fra.me.line = 359;
2143 fra.me.meth = LOCATE_standard___file___NativeFile___file_stat;
2144 fra.me.has_broke = 0;
2145 fra.me.REG_size = 1;
2146 fra.me.nitni_local_ref_head = NULL;
2147 fra.me.REG[0] = NIT_NULL;
2148 fra.me.REG[0] = p0;
2149 /* ../lib/standard/file.nit:359 */
2150 fra.me.REG[0] = NativeFile_file_stat___out(fra.me.REG[0]);
2151 stack_frame_head = fra.me.prev;
2152 return fra.me.REG[0];
2153 }
2154 static const char LOCATE_standard___file___NativeFile___io_open_read[] = "file::NativeFile::io_open_read";
2155 void standard___file___NativeFile___io_open_read(val_t p0, val_t p1, int* init_table){
2156 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2157 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2158 val_t tmp;
2159 if (init_table[itpos10]) return;
2160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2161 fra.me.file = LOCATE_standard___file;
2162 fra.me.line = 361;
2163 fra.me.meth = LOCATE_standard___file___NativeFile___io_open_read;
2164 fra.me.has_broke = 0;
2165 fra.me.REG_size = 2;
2166 fra.me.nitni_local_ref_head = NULL;
2167 fra.me.REG[0] = NIT_NULL;
2168 fra.me.REG[1] = NIT_NULL;
2169 fra.me.REG[0] = p0;
2170 fra.me.REG[1] = p1;
2171 /* ../lib/standard/file.nit:361 */
2172 stack_frame_head = fra.me.prev;
2173 init_table[itpos10] = 1;
2174 return;
2175 }
2176 static const char LOCATE_standard___file___NativeFile___io_open_write[] = "file::NativeFile::io_open_write";
2177 void standard___file___NativeFile___io_open_write(val_t p0, val_t p1, int* init_table){
2178 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2179 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2180 val_t tmp;
2181 if (init_table[itpos11]) return;
2182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2183 fra.me.file = LOCATE_standard___file;
2184 fra.me.line = 362;
2185 fra.me.meth = LOCATE_standard___file___NativeFile___io_open_write;
2186 fra.me.has_broke = 0;
2187 fra.me.REG_size = 2;
2188 fra.me.nitni_local_ref_head = NULL;
2189 fra.me.REG[0] = NIT_NULL;
2190 fra.me.REG[1] = NIT_NULL;
2191 fra.me.REG[0] = p0;
2192 fra.me.REG[1] = p1;
2193 /* ../lib/standard/file.nit:362 */
2194 stack_frame_head = fra.me.prev;
2195 init_table[itpos11] = 1;
2196 return;
2197 }
2198 static const char LOCATE_standard___file___NativeFile___native_stdin[] = "file::NativeFile::native_stdin";
2199 void standard___file___NativeFile___native_stdin(val_t p0, int* init_table){
2200 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2201 struct {struct stack_frame_t me;} fra;
2202 val_t tmp;
2203 if (init_table[itpos12]) return;
2204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2205 fra.me.file = LOCATE_standard___file;
2206 fra.me.line = 363;
2207 fra.me.meth = LOCATE_standard___file___NativeFile___native_stdin;
2208 fra.me.has_broke = 0;
2209 fra.me.REG_size = 1;
2210 fra.me.nitni_local_ref_head = NULL;
2211 fra.me.REG[0] = NIT_NULL;
2212 fra.me.REG[0] = p0;
2213 /* ../lib/standard/file.nit:363 */
2214 stack_frame_head = fra.me.prev;
2215 init_table[itpos12] = 1;
2216 return;
2217 }
2218 static const char LOCATE_standard___file___NativeFile___native_stdout[] = "file::NativeFile::native_stdout";
2219 void standard___file___NativeFile___native_stdout(val_t p0, int* init_table){
2220 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2221 struct {struct stack_frame_t me;} fra;
2222 val_t tmp;
2223 if (init_table[itpos13]) return;
2224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2225 fra.me.file = LOCATE_standard___file;
2226 fra.me.line = 364;
2227 fra.me.meth = LOCATE_standard___file___NativeFile___native_stdout;
2228 fra.me.has_broke = 0;
2229 fra.me.REG_size = 1;
2230 fra.me.nitni_local_ref_head = NULL;
2231 fra.me.REG[0] = NIT_NULL;
2232 fra.me.REG[0] = p0;
2233 /* ../lib/standard/file.nit:364 */
2234 stack_frame_head = fra.me.prev;
2235 init_table[itpos13] = 1;
2236 return;
2237 }
2238 static const char LOCATE_standard___file___NativeFile___native_stderr[] = "file::NativeFile::native_stderr";
2239 void standard___file___NativeFile___native_stderr(val_t p0, int* init_table){
2240 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
2241 struct {struct stack_frame_t me;} fra;
2242 val_t tmp;
2243 if (init_table[itpos14]) return;
2244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2245 fra.me.file = LOCATE_standard___file;
2246 fra.me.line = 365;
2247 fra.me.meth = LOCATE_standard___file___NativeFile___native_stderr;
2248 fra.me.has_broke = 0;
2249 fra.me.REG_size = 1;
2250 fra.me.nitni_local_ref_head = NULL;
2251 fra.me.REG[0] = NIT_NULL;
2252 fra.me.REG[0] = p0;
2253 /* ../lib/standard/file.nit:365 */
2254 stack_frame_head = fra.me.prev;
2255 init_table[itpos14] = 1;
2256 return;
2257 }