Mercurial Hosting > luan
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 } |