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