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)); }
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)); }
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())); }
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); }
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); }