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 }