Example #1
0
                private IodineObject Empty(VirtualMachine vm, IodineObject self, IodineObject[] args)
                {
                    IodineSubprocess proc = self as IodineSubprocess;

                    if (proc == null)
                    {
                        vm.RaiseException(new IodineTypeException(TypeDefinition.Name));
                        return(null);
                    }

                    return(IodineBool.Create(proc.Value.StandardOutput.Peek() < 0));
                }
Example #2
0
                private IodineObject Alive(VirtualMachine vm, IodineObject self, IodineObject[] args)
                {
                    IodineSubprocess proc = self as IodineSubprocess;

                    if (proc == null)
                    {
                        vm.RaiseException(new IodineTypeException(TypeDefinition.Name));
                        return(null);
                    }

                    return(IodineBool.Create(proc.Value.HasExited));
                }
Example #3
0
                private IodineObject Read(VirtualMachine vm, IodineObject self, IodineObject[] args)
                {
                    IodineSubprocess proc = self as IodineSubprocess;

                    if (proc == null)
                    {
                        vm.RaiseException(new IodineTypeException(TypeDefinition.Name));
                        return(null);
                    }

                    return(new IodineString(proc.Value.StandardOutput.ReadToEnd()));
                }
Example #4
0
                private static IodineObject Kill(
                    VirtualMachine vm,
                    IodineObject self,
                    IodineObject[] args)
                {
                    IodineSubprocess procObj = self as IodineSubprocess;

                    if (procObj == null)
                    {
                        vm.RaiseException(new IodineTypeException(TypeDefinition.Name));
                        return(null);
                    }

                    procObj.Value.Kill();

                    return(null);
                }
Example #5
0
                private IodineObject Writeln(VirtualMachine vm, IodineObject self, IodineObject[] args)
                {
                    IodineSubprocess proc = self as IodineSubprocess;

                    if (proc == null)
                    {
                        vm.RaiseException(new IodineTypeException(TypeDefinition.Name));
                        return(null);
                    }

                    foreach (IodineObject obj in args)
                    {
                        IodineString str = obj as IodineString;

                        if (str == null)
                        {
                            vm.RaiseException(new IodineTypeException("Str"));
                            return(null);
                        }

                        proc.StdinWriteString(vm, str.Value + "\n");
                    }
                    return(null);
                }