Mercurial Hosting > luan
comparison src/luan/tools/CmdLine.java @ 52:0c0f2b107099
add WebRun
git-svn-id: https://luan-java.googlecode.com/svn/trunk@53 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Mon, 31 Dec 2012 03:15:20 +0000 |
parents | 8ede219cd111 |
children | 9381b23ea9e1 |
comparison
equal
deleted
inserted
replaced
51:28dfd91a816c | 52:0c0f2b107099 |
---|---|
4 import java.util.Scanner; | 4 import java.util.Scanner; |
5 import luan.lib.BasicLib; | 5 import luan.lib.BasicLib; |
6 import luan.lib.JavaLib; | 6 import luan.lib.JavaLib; |
7 import luan.lib.StringLib; | 7 import luan.lib.StringLib; |
8 import luan.lib.TableLib; | 8 import luan.lib.TableLib; |
9 import luan.lib.HtmlLib; | |
9 import luan.Luan; | 10 import luan.Luan; |
10 import luan.LuanState; | 11 import luan.LuanState; |
11 import luan.LuanFunction; | 12 import luan.LuanFunction; |
12 import luan.LuanTable; | 13 import luan.LuanTable; |
13 import luan.LuanException; | 14 import luan.LuanException; |
14 import luan.interp.LuanCompiler; | 15 import luan.interp.LuanCompiler; |
15 | 16 |
16 | 17 |
17 public class CmdLine { | 18 public class CmdLine { |
18 | 19 |
19 public static void main(String[] args) { | 20 public static LuanState newStandardLuan() { |
20 LuanState luan = LuanCompiler.newLuanState(); | 21 LuanState luan = LuanCompiler.newLuanState(); |
21 BasicLib.register(luan); | 22 BasicLib.register(luan); |
22 JavaLib.register(luan); | 23 JavaLib.register(luan); |
23 StringLib.register(luan); | 24 StringLib.register(luan); |
24 TableLib.register(luan); | 25 TableLib.register(luan); |
26 HtmlLib.register(luan); | |
27 return luan; | |
28 } | |
29 | |
30 public static void main(String[] args) { | |
31 LuanState luan = newStandardLuan(); | |
25 BasicLib.make_standard(luan); | 32 BasicLib.make_standard(luan); |
26 boolean interactive = false; | 33 boolean interactive = false; |
27 boolean showVersion = false; | 34 boolean showVersion = false; |
28 int i = 0; | 35 int i = 0; |
29 if( args.length == 0 ) { | 36 if( args.length == 0 ) { |
104 static void interactive(LuanState luan) { | 111 static void interactive(LuanState luan) { |
105 while( true ) { | 112 while( true ) { |
106 System.out.print("> "); | 113 System.out.print("> "); |
107 String input = new Scanner(System.in).nextLine(); | 114 String input = new Scanner(System.in).nextLine(); |
108 try { | 115 try { |
109 LuanFunction fn = BasicLib.load(luan,input,"stdin"); | 116 Object[] rtn = eval(luan,input,"stdin"); |
110 Object[] rtn = luan.call(fn,null,null); | |
111 if( rtn.length > 0 ) | 117 if( rtn.length > 0 ) |
112 BasicLib.print(luan,rtn); | 118 BasicLib.print(luan,rtn); |
113 } catch(LuanException e) { | 119 } catch(LuanException e) { |
114 System.out.println(e.getMessage()); | 120 System.out.println(e.getMessage()); |
115 } | 121 } |
116 } | 122 } |
117 } | 123 } |
124 | |
125 public static Object[] eval(LuanState luan,String cmd,String sourceName) throws LuanException { | |
126 LuanFunction fn = BasicLib.load(luan,cmd,sourceName); | |
127 return luan.call(fn,null,null); | |
128 } | |
118 } | 129 } |