Show
Ignore:
Timestamp:
06/22/09 13:26:10 (6 years ago)
Author:
hoge1e3
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/csharp/soyText/soyText/PythonEngine.cs

    r34038 r34100  
    1616        private ScriptEngine engine; 
    1717        private ScriptScope scope; 
    18  
    19         public PythonEngine() 
     18        private Document document; 
     19        public PythonEngine(Document document) 
    2020        { 
     21            this.document = document; 
    2122            engine = Python.CreateEngine(); 
    2223            scope = engine.CreateScope(); 
     
    2728            button = from_form; 
    2829        } 
    29         /*public string evaluate(EditorTab ds, string code) 
     30 
     31        public string evaluate() 
    3032        { 
    31             var u = new PythonUtil(ds); 
    32             return evaluate(u, code); 
    33         }*/ 
     33            var u = new PythonUtil(documentSet); 
     34            var uses=document.parsed["uses"] ?? ""; 
     35            var buf = ""; 
     36            buf += "import sys\r\n"; 
     37            buf += "sys.stdout=util\r\n"; 
     38            buf += "sys.path+=[r\"" + libDir + "\"]\r\n"; 
     39            foreach (var l in Str.eachLine(uses)) 
     40            { 
     41                var s = l; 
     42                Reg.sub(ref s, @"^\s*", ""); 
     43                importModule(s); 
     44                buf += "from m" + s + " import *\r\n"; 
     45            } 
     46            return evaluate(u, buf+document.body); 
     47        } 
     48        public void importModule(string id) 
     49        { 
     50            Mkdir.setFileContent(libDir + "/m" + id + ".py", documentSet.byId(id).body); 
    3451 
    35         public string evaluate(DocumentSet ds, string code) 
    36         { 
    37             var u = new PythonUtil(ds); 
    38             return evaluate(u, code); 
    3952        } 
    4053        public string evaluate(PythonUtil u, string code) { 
    4154            scope.SetVariable("util", u); 
    42  
    43             /*var d=Delegate.CreateDelegate(; 
    44             d.Method=delegate(string s) 
    45             { 
    46                 MessageBox.Show(s); 
    47             }); 
    48             scope.("alert",);*/ 
    4955 
    5056            try 
     
    6167            } 
    6268            return u.stdout; 
    63  
    64             /* 
    65             if (!scope.ContainsVariable("x")) 
     69        } 
     70        public DocumentSet documentSet 
     71        { 
     72            get 
    6673            { 
    67                 return "x was deleted"; 
     74                return document.documentSet; 
    6875            } 
    69             string result = scope.GetVariable<object>("x").ToString(); 
    70             if (result == "") return "RESULT is empty: " + code; 
    71             return result.Length+": "+result;*/ 
     76        } 
     77        public string libDir 
     78        { 
     79            get 
     80            { 
     81                return documentSet.workspace.home + "/ironPython/lib"; 
     82            } 
    7283        } 
    7384    }