public static Obj FileAppend_P(Obj fname, Obj data, object env) { try { IO.AppendAllBytes(fname.GetString(), data.GetByteArray()); return(SymbObj.Get(SymbObj.TrueSymbId)); } catch (Exception) { return(SymbObj.Get(SymbObj.FalseSymbId)); } }
public static Obj FileRead_P(Obj fname, object env) { try { byte[] content = IO.ReadAllBytes(fname.GetString()); Obj bytesObj = Builder.CreateSeq(content); return(Builder.CreateTaggedObj(SymbObj.JustSymbId, bytesObj)); } catch (Exception) { return(SymbObj.Get(SymbObj.NothingSymbId)); } }
public static Obj Save_P(Obj fname, RelAutoBase automaton, RelAutoUpdaterBase updater, object env) { try { DataWriter writer = IO.FileDataWriter(fname.GetString()); automaton.WriteState(writer); return(SymbObj.Get(true)); } catch (Exception e) { updater.lastException = e; return(SymbObj.Get(false)); } }
public static bool Load(Obj fname, RelAutoBase automaton, RelAutoUpdaterBase updater) { try { using (Stream stream = new FileStream(fname.GetString(), FileMode.Open)) { automaton.LoadState(new StreamReader(stream)); } } catch (Exception e) { updater.lastException = e; return(false); } if (!automaton.FullCheck()) { updater.lastException = new Exception("Invalid state"); return(false); } return(true); }
public static void Print_P(Obj str, object env) { IO.StdOutWrite(str.GetString()); }