comparison src/luan/tools/CmdLine.java @ 59:5c9cadd0acce

move standard calls from CmdLine to LuanState git-svn-id: https://luan-java.googlecode.com/svn/trunk@60 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Mon, 07 Jan 2013 03:36:28 +0000
parents 9381b23ea9e1
children f86e4f77ef32
comparison
equal deleted inserted replaced
58:d6c454b7f58c 59:5c9cadd0acce
1 package luan.tools; 1 package luan.tools;
2 2
3 import java.util.Arrays; 3 import java.util.Arrays;
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;
7 import luan.lib.MathLib;
8 import luan.lib.StringLib;
9 import luan.lib.TableLib;
10 import luan.lib.HtmlLib;
11 import luan.Luan; 6 import luan.Luan;
12 import luan.LuanState; 7 import luan.LuanState;
13 import luan.LuanFunction; 8 import luan.LuanFunction;
14 import luan.LuanTable; 9 import luan.LuanTable;
15 import luan.LuanException; 10 import luan.LuanException;
16 import luan.interp.LuanCompiler;
17 11
18 12
19 public class CmdLine { 13 public class CmdLine {
20 14
21 public static LuanState newStandardLuan() {
22 LuanState luan = LuanCompiler.newLuanState();
23 BasicLib.register(luan);
24 JavaLib.register(luan);
25 MathLib.register(luan);
26 StringLib.register(luan);
27 TableLib.register(luan);
28 HtmlLib.register(luan);
29 return luan;
30 }
31
32 public static void main(String[] args) { 15 public static void main(String[] args) {
33 LuanState luan = newStandardLuan(); 16 LuanState luan = LuanState.newStandard();
34 BasicLib.make_standard(luan); 17 BasicLib.make_standard(luan);
35 boolean interactive = false; 18 boolean interactive = false;
36 boolean showVersion = false; 19 boolean showVersion = false;
37 int i = 0; 20 int i = 0;
38 if( args.length == 0 ) { 21 if( args.length == 0 ) {
113 static void interactive(LuanState luan) { 96 static void interactive(LuanState luan) {
114 while( true ) { 97 while( true ) {
115 System.out.print("> "); 98 System.out.print("> ");
116 String input = new Scanner(System.in).nextLine(); 99 String input = new Scanner(System.in).nextLine();
117 try { 100 try {
118 Object[] rtn = eval(luan,input,"stdin"); 101 Object[] rtn = luan.eval(input,"stdin");
119 if( rtn.length > 0 ) 102 if( rtn.length > 0 )
120 BasicLib.print(luan,rtn); 103 BasicLib.print(luan,rtn);
121 } catch(LuanException e) { 104 } catch(LuanException e) {
122 System.out.println(e.getMessage()); 105 System.out.println(e.getMessage());
123 } 106 }
124 } 107 }
125 } 108 }
126 109
127 public static Object[] eval(LuanState luan,String cmd,String sourceName) throws LuanException {
128 LuanFunction fn = BasicLib.load(luan,cmd,sourceName);
129 return luan.call(fn,null,null);
130 }
131 } 110 }