tests: add tests for nitvm
[nit.git] / c_src / exec.sep.1.c
1 #include "exec.sep.0.h"
2 /* method exec#Process#id for (self: Process): Int */
3 long exec__Process__id(val* self) {
4 long var /* : Int */;
5 void* var1 /* : NativeProcess */;
6 long var2 /* : Int */;
7 var1 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:Process>*/;
8 var2 = exec__NativeProcess__id(var1);
9 var = var2;
10 goto RET_LABEL;
11 RET_LABEL:;
12 return var;
13 }
14 /* method exec#Process#id for (self: Object): Int */
15 long VIRTUAL_exec__Process__id(val* self) {
16 long var /* : Int */;
17 long var1 /* : Int */;
18 var1 = exec__Process__id(self);
19 var = var1;
20 RET_LABEL:;
21 return var;
22 }
23 /* method exec#Process#is_finished for (self: Process): Bool */
24 short int exec__Process__is_finished(val* self) {
25 short int var /* : Bool */;
26 void* var1 /* : NativeProcess */;
27 short int var2 /* : Bool */;
28 var1 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:Process>*/;
29 var2 = exec__NativeProcess__is_finished(var1);
30 var = var2;
31 goto RET_LABEL;
32 RET_LABEL:;
33 return var;
34 }
35 /* method exec#Process#is_finished for (self: Object): Bool */
36 short int VIRTUAL_exec__Process__is_finished(val* self) {
37 short int var /* : Bool */;
38 short int var1 /* : Bool */;
39 var1 = exec__Process__is_finished(self);
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method exec#Process#wait for (self: Process) */
45 void exec__Process__wait(val* self) {
46 void* var /* : NativeProcess */;
47 short int var1 /* : Bool */;
48 var = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:Process>*/;
49 exec__NativeProcess__wait(var);
50 var1 = ((short int (*)(val*))(self->class->vft[COLOR_exec__Process__is_finished]))(self) /* is_finished on <self:Process>*/;
51 if (!var1) {
52 fprintf(stderr, "Runtime error: %s", "Assert failed");
53 fprintf(stderr, " (%s:%d)\n", "lib/standard/exec.nit", 32);
54 show_backtrace(1);
55 }
56 RET_LABEL:;
57 }
58 /* method exec#Process#wait for (self: Object) */
59 void VIRTUAL_exec__Process__wait(val* self) {
60 exec__Process__wait(self);
61 RET_LABEL:;
62 }
63 /* method exec#Process#status for (self: Process): Int */
64 long exec__Process__status(val* self) {
65 long var /* : Int */;
66 short int var1 /* : Bool */;
67 void* var2 /* : NativeProcess */;
68 long var3 /* : Int */;
69 var1 = ((short int (*)(val*))(self->class->vft[COLOR_exec__Process__is_finished]))(self) /* is_finished on <self:Process>*/;
70 if (!var1) {
71 fprintf(stderr, "Runtime error: %s", "Assert failed");
72 fprintf(stderr, " (%s:%d)\n", "lib/standard/exec.nit", 38);
73 show_backtrace(1);
74 }
75 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:Process>*/;
76 var3 = exec__NativeProcess__status(var2);
77 var = var3;
78 goto RET_LABEL;
79 RET_LABEL:;
80 return var;
81 }
82 /* method exec#Process#status for (self: Object): Int */
83 long VIRTUAL_exec__Process__status(val* self) {
84 long var /* : Int */;
85 long var1 /* : Int */;
86 var1 = exec__Process__status(self);
87 var = var1;
88 RET_LABEL:;
89 return var;
90 }
91 /* method exec#Process#init for (self: Process, String, Array[String]) */
92 void exec__Process__init(val* self, val* p0, val* p1) {
93 val* var_command /* var command: String */;
94 val* var_arguments /* var arguments: Array[String] */;
95 long var /* : Int */;
96 var_command = p0;
97 var_arguments = p1;
98 var = 0;
99 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:Process>*/;
100 RET_LABEL:;
101 }
102 /* method exec#Process#init for (self: Object, String, Array[String]) */
103 void VIRTUAL_exec__Process__init(val* self, val* p0, val* p1) {
104 exec__Process__init(self, p0, p1);
105 RET_LABEL:;
106 }
107 /* method exec#Process#init_ for (self: Process, String) */
108 void exec__Process__init_(val* self, val* p0) {
109 val* var_command /* var command: String */;
110 val* var /* : null */;
111 long var1 /* : Int */;
112 var_command = p0;
113 var = NULL;
114 var1 = 0;
115 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var, var1) /* execute on <self:Process>*/;
116 RET_LABEL:;
117 }
118 /* method exec#Process#init_ for (self: Object, String) */
119 void VIRTUAL_exec__Process__init_(val* self, val* p0) {
120 exec__Process__init_(self, p0);
121 RET_LABEL:;
122 }
123 /* method exec#Process#from_a for (self: Process, String, Array[String]) */
124 void exec__Process__from_a(val* self, val* p0, val* p1) {
125 val* var_command /* var command: String */;
126 val* var_arguments /* var arguments: Array[String] */;
127 long var /* : Int */;
128 var_command = p0;
129 var_arguments = p1;
130 var = 0;
131 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:Process>*/;
132 RET_LABEL:;
133 }
134 /* method exec#Process#from_a for (self: Object, String, Array[String]) */
135 void VIRTUAL_exec__Process__from_a(val* self, val* p0, val* p1) {
136 exec__Process__from_a(self, p0, p1);
137 RET_LABEL:;
138 }
139 /* method exec#Process#execute for (self: Process, String, nullable Array[String], Int) */
140 void exec__Process__execute(val* self, val* p0, val* p1, long p2) {
141 val* var_command /* var command: String */;
142 val* var_arguments /* var arguments: nullable Array[String] */;
143 long var_pipeflags /* var pipeflags: Int */;
144 val* var /* : Buffer */;
145 val* var_args /* var args: Buffer */;
146 long var1 /* : Int */;
147 long var_l /* var l: Int */;
148 val* var2 /* : null */;
149 short int var3 /* : Bool */;
150 val* var4 /* : Iterator[nullable Object] */;
151 short int var5 /* : Bool */;
152 val* var6 /* : nullable Object */;
153 val* var_a /* var a: String */;
154 char var7 /* : Char */;
155 val* var8 /* : nullable Object */;
156 long var9 /* : Int */;
157 long var10 /* : Int */;
158 long var12 /* : Int */;
159 char* var13 /* : NativeString */;
160 val* var14 /* : String */;
161 char* var15 /* : NativeString */;
162 void* var16 /* : NativeProcess */;
163 var_command = p0;
164 var_arguments = p1;
165 var_pipeflags = p2;
166 var = NEW_string__Buffer(&type_string__Buffer);
167 ((void (*)(val*))(var->class->vft[COLOR_string__Buffer__init]))(var) /* init on <var:Buffer>*/;
168 var_args = var;
169 var1 = 1;
170 var_l = var1;
171 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__Sequence__append]))(var_args, var_command) /* append on <var_args:Buffer>*/;
172 var2 = NULL;
173 if (var_arguments == NULL) {
174 var3 = 0; /* is null */
175 } else {
176 var3 = 1; /* arg is null and recv is not */
177 }
178 if (var3){
179 var4 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_arguments) /* iterator on <var_arguments:nullable Array[String](Array[String])>*/;
180 for(;;) {
181 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
182 if(!var5) break;
183 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
184 var_a = var6;
185 var7 = '\0';
186 var8 = BOX_kernel__Char(var7); /* autobox from Char to nullable Object */
187 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var8) /* add on <var_args:Buffer>*/;
188 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__Sequence__append]))(var_args, var_a) /* append on <var_args:Buffer>*/;
189 CONTINUE_label: (void)0;
190 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
191 }
192 BREAK_label: (void)0;
193 var9 = ((long (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__length]))(var_arguments) /* length on <var_arguments:nullable Array[String](Array[String])>*/;
194 { /* Inline kernel#Int#+ (var_l,var9) */
195 var12 = var_l + var9;
196 var10 = var12;
197 goto RET_LABEL11;
198 RET_LABEL11:(void)0;
199 }
200 var_l = var10;
201 } else {
202 }
203 var13 = ((char* (*)(val*))(var_command->class->vft[COLOR_string__String__to_cstring]))(var_command) /* to_cstring on <var_command:String>*/;
204 var14 = ((val* (*)(val*))(var_args->class->vft[COLOR_string__Object__to_s]))(var_args) /* to_s on <var_args:Buffer>*/;
205 var15 = ((char* (*)(val*))(var14->class->vft[COLOR_string__String__to_cstring]))(var14) /* to_cstring on <var14:String>*/;
206 var16 = ((void* (*)(val*, char*, char*, long, long))(self->class->vft[COLOR_exec__Process__basic_exec_execute]))(self, var13, var15, var_l, var_pipeflags) /* basic_exec_execute on <self:Process>*/;
207 ((void (*)(val*, void*))(self->class->vft[COLOR_exec__Process__data_61d]))(self, var16) /* data= on <self:Process>*/;
208 RET_LABEL:;
209 }
210 /* method exec#Process#execute for (self: Object, String, nullable Array[String], Int) */
211 void VIRTUAL_exec__Process__execute(val* self, val* p0, val* p1, long p2) {
212 exec__Process__execute(self, p0, p1, p2);
213 RET_LABEL:;
214 }
215 /* method exec#Process#data for (self: Process): NativeProcess */
216 void* exec__Process__data(val* self) {
217 void* var /* : NativeProcess */;
218 void* var1 /* : NativeProcess */;
219 var1 = self->attrs[COLOR_exec__Process___64ddata].ptr; /* @data on <self:Process> */
220 var = var1;
221 RET_LABEL:;
222 return var;
223 }
224 /* method exec#Process#data for (self: Object): NativeProcess */
225 void* VIRTUAL_exec__Process__data(val* self) {
226 void* var /* : NativeProcess */;
227 void* var1 /* : NativeProcess */;
228 var1 = exec__Process__data(self);
229 var = var1;
230 RET_LABEL:;
231 return var;
232 }
233 /* method exec#Process#data= for (self: Process, NativeProcess) */
234 void exec__Process__data_61d(val* self, void* p0) {
235 self->attrs[COLOR_exec__Process___64ddata].ptr = p0; /* @data on <self:Process> */
236 RET_LABEL:;
237 }
238 /* method exec#Process#data= for (self: Object, NativeProcess) */
239 void VIRTUAL_exec__Process__data_61d(val* self, void* p0) {
240 exec__Process__data_61d(self, p0);
241 RET_LABEL:;
242 }
243 /* method exec#Process#basic_exec_execute for (self: Process, NativeString, NativeString, Int, Int): NativeProcess */
244 void* exec__Process__basic_exec_execute(val* self, char* p0, char* p1, long p2, long p3) {
245 void* var /* : NativeProcess */;
246 void* var1 /* : NativeProcess */;
247 var1 = exec_Process_Process_basic_exec_execute_4(self, p0, p1, p2, p3);
248 var = var1;
249 goto RET_LABEL;
250 RET_LABEL:;
251 return var;
252 }
253 /* method exec#Process#basic_exec_execute for (self: Object, NativeString, NativeString, Int, Int): NativeProcess */
254 void* VIRTUAL_exec__Process__basic_exec_execute(val* self, char* p0, char* p1, long p2, long p3) {
255 void* var /* : NativeProcess */;
256 void* var1 /* : NativeProcess */;
257 var1 = exec__Process__basic_exec_execute(self, p0, p1, p2, p3);
258 var = var1;
259 RET_LABEL:;
260 return var;
261 }
262 /* method exec#IProcess#stream_in for (self: IProcess): FDIStream */
263 val* exec__IProcess__stream_in(val* self) {
264 val* var /* : FDIStream */;
265 val* var1 /* : FDIStream */;
266 var1 = self->attrs[COLOR_exec__IProcess___64dstream_in].val; /* @stream_in on <self:IProcess> */
267 if (var1 == NULL) {
268 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @stream_in");
269 fprintf(stderr, " (%s:%d)\n", "lib/standard/exec.nit", 83);
270 show_backtrace(1);
271 }
272 var = var1;
273 RET_LABEL:;
274 return var;
275 }
276 /* method exec#IProcess#stream_in for (self: Object): FDIStream */
277 val* VIRTUAL_exec__IProcess__stream_in(val* self) {
278 val* var /* : FDIStream */;
279 val* var1 /* : FDIStream */;
280 var1 = exec__IProcess__stream_in(self);
281 var = var1;
282 RET_LABEL:;
283 return var;
284 }
285 /* method exec#IProcess#stream_in= for (self: IProcess, FDIStream) */
286 void exec__IProcess__stream_in_61d(val* self, val* p0) {
287 self->attrs[COLOR_exec__IProcess___64dstream_in].val = p0; /* @stream_in on <self:IProcess> */
288 RET_LABEL:;
289 }
290 /* method exec#IProcess#stream_in= for (self: Object, FDIStream) */
291 void VIRTUAL_exec__IProcess__stream_in_61d(val* self, val* p0) {
292 exec__IProcess__stream_in_61d(self, p0);
293 RET_LABEL:;
294 }
295 /* method exec#IProcess#close for (self: IProcess) */
296 void exec__IProcess__close(val* self) {
297 val* var /* : FDIStream */;
298 var = ((val* (*)(val*))(self->class->vft[COLOR_exec__IProcess__stream_in]))(self) /* stream_in on <self:IProcess>*/;
299 ((void (*)(val*))(var->class->vft[COLOR_stream__IOS__close]))(var) /* close on <var:FDIStream>*/;
300 RET_LABEL:;
301 }
302 /* method exec#IProcess#close for (self: Object) */
303 void VIRTUAL_exec__IProcess__close(val* self) {
304 exec__IProcess__close(self);
305 RET_LABEL:;
306 }
307 /* method exec#IProcess#read_char for (self: IProcess): Int */
308 long exec__IProcess__read_char(val* self) {
309 long var /* : Int */;
310 val* var1 /* : FDIStream */;
311 long var2 /* : Int */;
312 var1 = ((val* (*)(val*))(self->class->vft[COLOR_exec__IProcess__stream_in]))(self) /* stream_in on <self:IProcess>*/;
313 var2 = ((long (*)(val*))(var1->class->vft[COLOR_stream__IStream__read_char]))(var1) /* read_char on <var1:FDIStream>*/;
314 var = var2;
315 goto RET_LABEL;
316 RET_LABEL:;
317 return var;
318 }
319 /* method exec#IProcess#read_char for (self: Object): Int */
320 long VIRTUAL_exec__IProcess__read_char(val* self) {
321 long var /* : Int */;
322 long var1 /* : Int */;
323 var1 = exec__IProcess__read_char(self);
324 var = var1;
325 RET_LABEL:;
326 return var;
327 }
328 /* method exec#IProcess#eof for (self: IProcess): Bool */
329 short int exec__IProcess__eof(val* self) {
330 short int var /* : Bool */;
331 val* var1 /* : FDIStream */;
332 short int var2 /* : Bool */;
333 var1 = ((val* (*)(val*))(self->class->vft[COLOR_exec__IProcess__stream_in]))(self) /* stream_in on <self:IProcess>*/;
334 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_stream__IStream__eof]))(var1) /* eof on <var1:FDIStream>*/;
335 var = var2;
336 goto RET_LABEL;
337 RET_LABEL:;
338 return var;
339 }
340 /* method exec#IProcess#eof for (self: Object): Bool */
341 short int VIRTUAL_exec__IProcess__eof(val* self) {
342 short int var /* : Bool */;
343 short int var1 /* : Bool */;
344 var1 = exec__IProcess__eof(self);
345 var = var1;
346 RET_LABEL:;
347 return var;
348 }
349 /* method exec#IProcess#init for (self: IProcess, String, Array[String]) */
350 void exec__IProcess__init(val* self, val* p0, val* p1) {
351 val* var_command /* var command: String */;
352 val* var_arguments /* var arguments: Array[String] */;
353 long var /* : Int */;
354 val* var1 /* : FDIStream */;
355 void* var2 /* : NativeProcess */;
356 long var3 /* : Int */;
357 var_command = p0;
358 var_arguments = p1;
359 var = 2;
360 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:IProcess>*/;
361 var1 = NEW_stream__FDIStream(&type_stream__FDIStream);
362 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IProcess>*/;
363 var3 = exec__NativeProcess__out_fd(var2);
364 ((void (*)(val*, long))(var1->class->vft[COLOR_stream__FDIStream__init]))(var1, var3) /* init on <var1:FDIStream>*/;
365 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__IProcess__stream_in_61d]))(self, var1) /* stream_in= on <self:IProcess>*/;
366 RET_LABEL:;
367 }
368 /* method exec#IProcess#init for (self: Object, String, Array[String]) */
369 void VIRTUAL_exec__IProcess__init(val* self, val* p0, val* p1) {
370 exec__IProcess__init(self, p0, p1);
371 RET_LABEL:;
372 }
373 /* method exec#IProcess#init_ for (self: IProcess, String) */
374 void exec__IProcess__init_(val* self, val* p0) {
375 val* var_command /* var command: String */;
376 val* var /* : null */;
377 long var1 /* : Int */;
378 val* var2 /* : FDIStream */;
379 void* var3 /* : NativeProcess */;
380 long var4 /* : Int */;
381 var_command = p0;
382 var = NULL;
383 var1 = 2;
384 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var, var1) /* execute on <self:IProcess>*/;
385 var2 = NEW_stream__FDIStream(&type_stream__FDIStream);
386 var3 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IProcess>*/;
387 var4 = exec__NativeProcess__out_fd(var3);
388 ((void (*)(val*, long))(var2->class->vft[COLOR_stream__FDIStream__init]))(var2, var4) /* init on <var2:FDIStream>*/;
389 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__IProcess__stream_in_61d]))(self, var2) /* stream_in= on <self:IProcess>*/;
390 RET_LABEL:;
391 }
392 /* method exec#IProcess#init_ for (self: Object, String) */
393 void VIRTUAL_exec__IProcess__init_(val* self, val* p0) {
394 exec__IProcess__init_(self, p0);
395 RET_LABEL:;
396 }
397 /* method exec#IProcess#from_a for (self: IProcess, String, Array[String]) */
398 void exec__IProcess__from_a(val* self, val* p0, val* p1) {
399 val* var_command /* var command: String */;
400 val* var_arguments /* var arguments: Array[String] */;
401 long var /* : Int */;
402 val* var1 /* : FDIStream */;
403 void* var2 /* : NativeProcess */;
404 long var3 /* : Int */;
405 var_command = p0;
406 var_arguments = p1;
407 var = 2;
408 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:IProcess>*/;
409 var1 = NEW_stream__FDIStream(&type_stream__FDIStream);
410 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IProcess>*/;
411 var3 = exec__NativeProcess__out_fd(var2);
412 ((void (*)(val*, long))(var1->class->vft[COLOR_stream__FDIStream__init]))(var1, var3) /* init on <var1:FDIStream>*/;
413 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__IProcess__stream_in_61d]))(self, var1) /* stream_in= on <self:IProcess>*/;
414 RET_LABEL:;
415 }
416 /* method exec#IProcess#from_a for (self: Object, String, Array[String]) */
417 void VIRTUAL_exec__IProcess__from_a(val* self, val* p0, val* p1) {
418 exec__IProcess__from_a(self, p0, p1);
419 RET_LABEL:;
420 }
421 /* method exec#OProcess#stream_out for (self: OProcess): OStream */
422 val* exec__OProcess__stream_out(val* self) {
423 val* var /* : OStream */;
424 val* var1 /* : OStream */;
425 var1 = self->attrs[COLOR_exec__OProcess___64dstream_out].val; /* @stream_out on <self:OProcess> */
426 if (var1 == NULL) {
427 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @stream_out");
428 fprintf(stderr, " (%s:%d)\n", "lib/standard/exec.nit", 114);
429 show_backtrace(1);
430 }
431 var = var1;
432 RET_LABEL:;
433 return var;
434 }
435 /* method exec#OProcess#stream_out for (self: Object): OStream */
436 val* VIRTUAL_exec__OProcess__stream_out(val* self) {
437 val* var /* : OStream */;
438 val* var1 /* : OStream */;
439 var1 = exec__OProcess__stream_out(self);
440 var = var1;
441 RET_LABEL:;
442 return var;
443 }
444 /* method exec#OProcess#stream_out= for (self: OProcess, OStream) */
445 void exec__OProcess__stream_out_61d(val* self, val* p0) {
446 self->attrs[COLOR_exec__OProcess___64dstream_out].val = p0; /* @stream_out on <self:OProcess> */
447 RET_LABEL:;
448 }
449 /* method exec#OProcess#stream_out= for (self: Object, OStream) */
450 void VIRTUAL_exec__OProcess__stream_out_61d(val* self, val* p0) {
451 exec__OProcess__stream_out_61d(self, p0);
452 RET_LABEL:;
453 }
454 /* method exec#OProcess#close for (self: OProcess) */
455 void exec__OProcess__close(val* self) {
456 val* var /* : OStream */;
457 var = ((val* (*)(val*))(self->class->vft[COLOR_exec__OProcess__stream_out]))(self) /* stream_out on <self:OProcess>*/;
458 ((void (*)(val*))(var->class->vft[COLOR_stream__IOS__close]))(var) /* close on <var:OStream>*/;
459 RET_LABEL:;
460 }
461 /* method exec#OProcess#close for (self: Object) */
462 void VIRTUAL_exec__OProcess__close(val* self) {
463 exec__OProcess__close(self);
464 RET_LABEL:;
465 }
466 /* method exec#OProcess#is_writable for (self: OProcess): Bool */
467 short int exec__OProcess__is_writable(val* self) {
468 short int var /* : Bool */;
469 val* var1 /* : OStream */;
470 short int var2 /* : Bool */;
471 var1 = ((val* (*)(val*))(self->class->vft[COLOR_exec__OProcess__stream_out]))(self) /* stream_out on <self:OProcess>*/;
472 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_stream__OStream__is_writable]))(var1) /* is_writable on <var1:OStream>*/;
473 var = var2;
474 goto RET_LABEL;
475 RET_LABEL:;
476 return var;
477 }
478 /* method exec#OProcess#is_writable for (self: Object): Bool */
479 short int VIRTUAL_exec__OProcess__is_writable(val* self) {
480 short int var /* : Bool */;
481 short int var1 /* : Bool */;
482 var1 = exec__OProcess__is_writable(self);
483 var = var1;
484 RET_LABEL:;
485 return var;
486 }
487 /* method exec#OProcess#write for (self: OProcess, String) */
488 void exec__OProcess__write(val* self, val* p0) {
489 val* var_s /* var s: String */;
490 val* var /* : OStream */;
491 var_s = p0;
492 var = ((val* (*)(val*))(self->class->vft[COLOR_exec__OProcess__stream_out]))(self) /* stream_out on <self:OProcess>*/;
493 ((void (*)(val*, val*))(var->class->vft[COLOR_stream__OStream__write]))(var, var_s) /* write on <var:OStream>*/;
494 RET_LABEL:;
495 }
496 /* method exec#OProcess#write for (self: Object, String) */
497 void VIRTUAL_exec__OProcess__write(val* self, val* p0) {
498 exec__OProcess__write(self, p0);
499 RET_LABEL:;
500 }
501 /* method exec#OProcess#init for (self: OProcess, String, Array[String]) */
502 void exec__OProcess__init(val* self, val* p0, val* p1) {
503 val* var_command /* var command: String */;
504 val* var_arguments /* var arguments: Array[String] */;
505 long var /* : Int */;
506 val* var1 /* : FDOStream */;
507 void* var2 /* : NativeProcess */;
508 long var3 /* : Int */;
509 var_command = p0;
510 var_arguments = p1;
511 var = 1;
512 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:OProcess>*/;
513 var1 = NEW_stream__FDOStream(&type_stream__FDOStream);
514 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:OProcess>*/;
515 var3 = exec__NativeProcess__in_fd(var2);
516 ((void (*)(val*, long))(var1->class->vft[COLOR_stream__FDOStream__init]))(var1, var3) /* init on <var1:FDOStream>*/;
517 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__OProcess__stream_out_61d]))(self, var1) /* stream_out= on <self:OProcess>*/;
518 RET_LABEL:;
519 }
520 /* method exec#OProcess#init for (self: Object, String, Array[String]) */
521 void VIRTUAL_exec__OProcess__init(val* self, val* p0, val* p1) {
522 exec__OProcess__init(self, p0, p1);
523 RET_LABEL:;
524 }
525 /* method exec#OProcess#init_ for (self: OProcess, String) */
526 void exec__OProcess__init_(val* self, val* p0) {
527 val* var_command /* var command: String */;
528 val* var /* : null */;
529 long var1 /* : Int */;
530 val* var2 /* : FDOStream */;
531 void* var3 /* : NativeProcess */;
532 long var4 /* : Int */;
533 var_command = p0;
534 var = NULL;
535 var1 = 1;
536 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var, var1) /* execute on <self:OProcess>*/;
537 var2 = NEW_stream__FDOStream(&type_stream__FDOStream);
538 var3 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:OProcess>*/;
539 var4 = exec__NativeProcess__in_fd(var3);
540 ((void (*)(val*, long))(var2->class->vft[COLOR_stream__FDOStream__init]))(var2, var4) /* init on <var2:FDOStream>*/;
541 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__OProcess__stream_out_61d]))(self, var2) /* stream_out= on <self:OProcess>*/;
542 RET_LABEL:;
543 }
544 /* method exec#OProcess#init_ for (self: Object, String) */
545 void VIRTUAL_exec__OProcess__init_(val* self, val* p0) {
546 exec__OProcess__init_(self, p0);
547 RET_LABEL:;
548 }
549 /* method exec#OProcess#from_a for (self: OProcess, String, Array[String]) */
550 void exec__OProcess__from_a(val* self, val* p0, val* p1) {
551 val* var_command /* var command: String */;
552 val* var_arguments /* var arguments: Array[String] */;
553 long var /* : Int */;
554 val* var1 /* : FDOStream */;
555 void* var2 /* : NativeProcess */;
556 long var3 /* : Int */;
557 var_command = p0;
558 var_arguments = p1;
559 var = 1;
560 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:OProcess>*/;
561 var1 = NEW_stream__FDOStream(&type_stream__FDOStream);
562 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:OProcess>*/;
563 var3 = exec__NativeProcess__in_fd(var2);
564 ((void (*)(val*, long))(var1->class->vft[COLOR_stream__FDOStream__init]))(var1, var3) /* init on <var1:FDOStream>*/;
565 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__OProcess__stream_out_61d]))(self, var1) /* stream_out= on <self:OProcess>*/;
566 RET_LABEL:;
567 }
568 /* method exec#OProcess#from_a for (self: Object, String, Array[String]) */
569 void VIRTUAL_exec__OProcess__from_a(val* self, val* p0, val* p1) {
570 exec__OProcess__from_a(self, p0, p1);
571 RET_LABEL:;
572 }
573 /* method exec#IOProcess#close for (self: IOProcess) */
574 void exec__IOProcess__close(val* self) {
575 val* var /* : FDIStream */;
576 val* var1 /* : OStream */;
577 var = ((val* (*)(val*))(self->class->vft[COLOR_exec__IProcess__stream_in]))(self) /* stream_in on <self:IOProcess>*/;
578 ((void (*)(val*))(var->class->vft[COLOR_stream__IOS__close]))(var) /* close on <var:FDIStream>*/;
579 var1 = ((val* (*)(val*))(self->class->vft[COLOR_exec__OProcess__stream_out]))(self) /* stream_out on <self:IOProcess>*/;
580 ((void (*)(val*))(var1->class->vft[COLOR_stream__IOS__close]))(var1) /* close on <var1:OStream>*/;
581 RET_LABEL:;
582 }
583 /* method exec#IOProcess#close for (self: Object) */
584 void VIRTUAL_exec__IOProcess__close(val* self) {
585 exec__IOProcess__close(self);
586 RET_LABEL:;
587 }
588 /* method exec#IOProcess#init for (self: IOProcess, String, Array[String]) */
589 void exec__IOProcess__init(val* self, val* p0, val* p1) {
590 val* var_command /* var command: String */;
591 val* var_arguments /* var arguments: Array[String] */;
592 long var /* : Int */;
593 val* var1 /* : FDIStream */;
594 void* var2 /* : NativeProcess */;
595 long var3 /* : Int */;
596 val* var4 /* : FDOStream */;
597 void* var5 /* : NativeProcess */;
598 long var6 /* : Int */;
599 var_command = p0;
600 var_arguments = p1;
601 var = 3;
602 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:IOProcess>*/;
603 var1 = NEW_stream__FDIStream(&type_stream__FDIStream);
604 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IOProcess>*/;
605 var3 = exec__NativeProcess__out_fd(var2);
606 ((void (*)(val*, long))(var1->class->vft[COLOR_stream__FDIStream__init]))(var1, var3) /* init on <var1:FDIStream>*/;
607 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__IProcess__stream_in_61d]))(self, var1) /* stream_in= on <self:IOProcess>*/;
608 var4 = NEW_stream__FDOStream(&type_stream__FDOStream);
609 var5 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IOProcess>*/;
610 var6 = exec__NativeProcess__in_fd(var5);
611 ((void (*)(val*, long))(var4->class->vft[COLOR_stream__FDOStream__init]))(var4, var6) /* init on <var4:FDOStream>*/;
612 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__OProcess__stream_out_61d]))(self, var4) /* stream_out= on <self:IOProcess>*/;
613 RET_LABEL:;
614 }
615 /* method exec#IOProcess#init for (self: Object, String, Array[String]) */
616 void VIRTUAL_exec__IOProcess__init(val* self, val* p0, val* p1) {
617 exec__IOProcess__init(self, p0, p1);
618 RET_LABEL:;
619 }
620 /* method exec#IOProcess#init_ for (self: IOProcess, String) */
621 void exec__IOProcess__init_(val* self, val* p0) {
622 val* var_command /* var command: String */;
623 val* var /* : null */;
624 long var1 /* : Int */;
625 val* var2 /* : FDIStream */;
626 void* var3 /* : NativeProcess */;
627 long var4 /* : Int */;
628 val* var5 /* : FDOStream */;
629 void* var6 /* : NativeProcess */;
630 long var7 /* : Int */;
631 var_command = p0;
632 var = NULL;
633 var1 = 3;
634 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var, var1) /* execute on <self:IOProcess>*/;
635 var2 = NEW_stream__FDIStream(&type_stream__FDIStream);
636 var3 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IOProcess>*/;
637 var4 = exec__NativeProcess__out_fd(var3);
638 ((void (*)(val*, long))(var2->class->vft[COLOR_stream__FDIStream__init]))(var2, var4) /* init on <var2:FDIStream>*/;
639 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__IProcess__stream_in_61d]))(self, var2) /* stream_in= on <self:IOProcess>*/;
640 var5 = NEW_stream__FDOStream(&type_stream__FDOStream);
641 var6 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IOProcess>*/;
642 var7 = exec__NativeProcess__in_fd(var6);
643 ((void (*)(val*, long))(var5->class->vft[COLOR_stream__FDOStream__init]))(var5, var7) /* init on <var5:FDOStream>*/;
644 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__OProcess__stream_out_61d]))(self, var5) /* stream_out= on <self:IOProcess>*/;
645 RET_LABEL:;
646 }
647 /* method exec#IOProcess#init_ for (self: Object, String) */
648 void VIRTUAL_exec__IOProcess__init_(val* self, val* p0) {
649 exec__IOProcess__init_(self, p0);
650 RET_LABEL:;
651 }
652 /* method exec#IOProcess#from_a for (self: IOProcess, String, Array[String]) */
653 void exec__IOProcess__from_a(val* self, val* p0, val* p1) {
654 val* var_command /* var command: String */;
655 val* var_arguments /* var arguments: Array[String] */;
656 long var /* : Int */;
657 val* var1 /* : FDIStream */;
658 void* var2 /* : NativeProcess */;
659 long var3 /* : Int */;
660 val* var4 /* : FDOStream */;
661 void* var5 /* : NativeProcess */;
662 long var6 /* : Int */;
663 var_command = p0;
664 var_arguments = p1;
665 var = 3;
666 ((void (*)(val*, val*, val*, long))(self->class->vft[COLOR_exec__Process__execute]))(self, var_command, var_arguments, var) /* execute on <self:IOProcess>*/;
667 var1 = NEW_stream__FDIStream(&type_stream__FDIStream);
668 var2 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IOProcess>*/;
669 var3 = exec__NativeProcess__out_fd(var2);
670 ((void (*)(val*, long))(var1->class->vft[COLOR_stream__FDIStream__init]))(var1, var3) /* init on <var1:FDIStream>*/;
671 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__IProcess__stream_in_61d]))(self, var1) /* stream_in= on <self:IOProcess>*/;
672 var4 = NEW_stream__FDOStream(&type_stream__FDOStream);
673 var5 = ((void* (*)(val*))(self->class->vft[COLOR_exec__Process__data]))(self) /* data on <self:IOProcess>*/;
674 var6 = exec__NativeProcess__in_fd(var5);
675 ((void (*)(val*, long))(var4->class->vft[COLOR_stream__FDOStream__init]))(var4, var6) /* init on <var4:FDOStream>*/;
676 ((void (*)(val*, val*))(self->class->vft[COLOR_exec__OProcess__stream_out_61d]))(self, var4) /* stream_out= on <self:IOProcess>*/;
677 RET_LABEL:;
678 }
679 /* method exec#IOProcess#from_a for (self: Object, String, Array[String]) */
680 void VIRTUAL_exec__IOProcess__from_a(val* self, val* p0, val* p1) {
681 exec__IOProcess__from_a(self, p0, p1);
682 RET_LABEL:;
683 }
684 /* method exec#Sys#system for (self: Sys, String): Int */
685 long exec__Sys__system(val* self, val* p0) {
686 long var /* : Int */;
687 val* var_command /* var command: String */;
688 char* var1 /* : NativeString */;
689 long var2 /* : Int */;
690 var_command = p0;
691 var1 = ((char* (*)(val*))(var_command->class->vft[COLOR_string__String__to_cstring]))(var_command) /* to_cstring on <var_command:String>*/;
692 var2 = exec__NativeString__system(var1);
693 var = var2;
694 goto RET_LABEL;
695 RET_LABEL:;
696 return var;
697 }
698 /* method exec#Sys#system for (self: Object, String): Int */
699 long VIRTUAL_exec__Sys__system(val* self, val* p0) {
700 long var /* : Int */;
701 long var1 /* : Int */;
702 var1 = exec__Sys__system(self, p0);
703 var = var1;
704 RET_LABEL:;
705 return var;
706 }
707 /* method exec#NativeString#system for (self: NativeString): Int */
708 long exec__NativeString__system(char* self) {
709 long var /* : Int */;
710 long var1 /* : Int */;
711 var1 = string_NativeString_NativeString_system_0(self);
712 var = var1;
713 goto RET_LABEL;
714 RET_LABEL:;
715 return var;
716 }
717 /* method exec#NativeString#system for (self: Object): Int */
718 long VIRTUAL_exec__NativeString__system(val* self) {
719 long var /* : Int */;
720 long var1 /* : Int */;
721 char* var2 /* : NativeString */;
722 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
723 var1 = exec__NativeString__system(var2);
724 var = var1;
725 RET_LABEL:;
726 return var;
727 }
728 /* method exec#NativeProcess#id for (self: NativeProcess): Int */
729 long exec__NativeProcess__id(void* self) {
730 long var /* : Int */;
731 long var1 /* : Int */;
732 var1 = exec_NativeProcess_NativeProcess_id_0(self);
733 var = var1;
734 goto RET_LABEL;
735 RET_LABEL:;
736 return var;
737 }
738 /* method exec#NativeProcess#id for (self: Object): Int */
739 long VIRTUAL_exec__NativeProcess__id(val* self) {
740 long var /* : Int */;
741 long var1 /* : Int */;
742 void* var2 /* : NativeProcess */;
743 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
744 var1 = exec__NativeProcess__id(var2);
745 var = var1;
746 RET_LABEL:;
747 return var;
748 }
749 /* method exec#NativeProcess#is_finished for (self: NativeProcess): Bool */
750 short int exec__NativeProcess__is_finished(void* self) {
751 short int var /* : Bool */;
752 short int var1 /* : Bool */;
753 var1 = exec_NativeProcess_NativeProcess_is_finished_0(self);
754 var = var1;
755 goto RET_LABEL;
756 RET_LABEL:;
757 return var;
758 }
759 /* method exec#NativeProcess#is_finished for (self: Object): Bool */
760 short int VIRTUAL_exec__NativeProcess__is_finished(val* self) {
761 short int var /* : Bool */;
762 short int var1 /* : Bool */;
763 void* var2 /* : NativeProcess */;
764 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
765 var1 = exec__NativeProcess__is_finished(var2);
766 var = var1;
767 RET_LABEL:;
768 return var;
769 }
770 /* method exec#NativeProcess#status for (self: NativeProcess): Int */
771 long exec__NativeProcess__status(void* self) {
772 long var /* : Int */;
773 long var1 /* : Int */;
774 var1 = exec_NativeProcess_NativeProcess_status_0(self);
775 var = var1;
776 goto RET_LABEL;
777 RET_LABEL:;
778 return var;
779 }
780 /* method exec#NativeProcess#status for (self: Object): Int */
781 long VIRTUAL_exec__NativeProcess__status(val* self) {
782 long var /* : Int */;
783 long var1 /* : Int */;
784 void* var2 /* : NativeProcess */;
785 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
786 var1 = exec__NativeProcess__status(var2);
787 var = var1;
788 RET_LABEL:;
789 return var;
790 }
791 /* method exec#NativeProcess#wait for (self: NativeProcess) */
792 void exec__NativeProcess__wait(void* self) {
793 exec_NativeProcess_NativeProcess_wait_0(self);
794 RET_LABEL:;
795 }
796 /* method exec#NativeProcess#wait for (self: Object) */
797 void VIRTUAL_exec__NativeProcess__wait(val* self) {
798 void* var /* : NativeProcess */;
799 var = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
800 exec__NativeProcess__wait(var);
801 RET_LABEL:;
802 }
803 /* method exec#NativeProcess#in_fd for (self: NativeProcess): Int */
804 long exec__NativeProcess__in_fd(void* self) {
805 long var /* : Int */;
806 long var1 /* : Int */;
807 var1 = exec_NativeProcess_NativeProcess_in_fd_0(self);
808 var = var1;
809 goto RET_LABEL;
810 RET_LABEL:;
811 return var;
812 }
813 /* method exec#NativeProcess#in_fd for (self: Object): Int */
814 long VIRTUAL_exec__NativeProcess__in_fd(val* self) {
815 long var /* : Int */;
816 long var1 /* : Int */;
817 void* var2 /* : NativeProcess */;
818 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
819 var1 = exec__NativeProcess__in_fd(var2);
820 var = var1;
821 RET_LABEL:;
822 return var;
823 }
824 /* method exec#NativeProcess#out_fd for (self: NativeProcess): Int */
825 long exec__NativeProcess__out_fd(void* self) {
826 long var /* : Int */;
827 long var1 /* : Int */;
828 var1 = exec_NativeProcess_NativeProcess_out_fd_0(self);
829 var = var1;
830 goto RET_LABEL;
831 RET_LABEL:;
832 return var;
833 }
834 /* method exec#NativeProcess#out_fd for (self: Object): Int */
835 long VIRTUAL_exec__NativeProcess__out_fd(val* self) {
836 long var /* : Int */;
837 long var1 /* : Int */;
838 void* var2 /* : NativeProcess */;
839 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
840 var1 = exec__NativeProcess__out_fd(var2);
841 var = var1;
842 RET_LABEL:;
843 return var;
844 }
845 /* method exec#NativeProcess#err_fd for (self: NativeProcess): Int */
846 long exec__NativeProcess__err_fd(void* self) {
847 long var /* : Int */;
848 long var1 /* : Int */;
849 var1 = exec_NativeProcess_NativeProcess_err_fd_0(self);
850 var = var1;
851 goto RET_LABEL;
852 RET_LABEL:;
853 return var;
854 }
855 /* method exec#NativeProcess#err_fd for (self: Object): Int */
856 long VIRTUAL_exec__NativeProcess__err_fd(val* self) {
857 long var /* : Int */;
858 long var1 /* : Int */;
859 void* var2 /* : NativeProcess */;
860 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeProcess */;
861 var1 = exec__NativeProcess__err_fd(var2);
862 var = var1;
863 RET_LABEL:;
864 return var;
865 }