예제 #1
0
파일: LpFile.cs 프로젝트: baban/lp
        private static LpObject open(LpObject self, LpObject[] args, LpObject block = null)
        {
            var filename = args[0].stringValue;
            var mode     = args[1].stringValue;
            var obj      = self.Clone();

            obj.stringValue = mode;
            switch (mode)
            {
            case "r":
            case "r+":
                obj.streamReader = new System.IO.StreamReader(filename, System.Text.Encoding.GetEncoding("UTF-8"));
                break;

            case "w":
            case "w+":
                obj.streamWriter = new System.IO.StreamWriter(filename);
                break;

            default:
                throw new Error.LpArgumentError();
            }

            return(obj);
        }
예제 #2
0
파일: LpMacro.cs 프로젝트: baban/lp
        private static LpObject new_(LpObject self, LpObject[] args, LpObject block = null)
        {
            if (block == null)
            {
                throw new Error.LpArgumentError();
            }

            var obj = self.Clone();

            obj.statements = block.statements;
            obj.arguments  = block.arguments;
            return(obj);
        }
예제 #3
0
파일: LpObject.cs 프로젝트: baban/lp
 private static LpObject createClassTemplate()
 {
     if (classes.ContainsKey(className))
     {
         return(classes[className].Clone());
     }
     else
     {
         LpObject obj = new LpObject();
         setMethods(obj);
         obj.superclass     = LpKernel.initialize();
         obj.class_name     = className;
         classes[className] = obj;
         return(obj.Clone());
     }
 }
예제 #4
0
파일: LpObject.cs 프로젝트: baban/lp
 private static LpObject copy(LpObject self, LpObject[] args, LpObject block = null)
 {
     return(self.Clone());
 }
예제 #5
0
파일: LpClass.cs 프로젝트: baban/lp
 public static LpObject initialize(LpObject self, LpObject[] args, LpObject block = null)
 {
     return(self.Clone());
 }