示例#1
0
文件: Procs.cs 项目: cell-lang/csharp
 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));
     }
 }
示例#2
0
文件: Procs.cs 项目: cell-lang/csharp
 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));
     }
 }
示例#3
0
 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));
     }
 }
示例#4
0
        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);
        }
示例#5
0
文件: Procs.cs 项目: cell-lang/csharp
 public static void Print_P(Obj str, object env)
 {
     IO.StdOutWrite(str.GetString());
 }