Mercurial Hosting > luan
comparison src/luan/lib/BasicLib.java @ 39:e5bcb1eeafc1
change naming convention
git-svn-id: https://luan-java.googlecode.com/svn/trunk@40 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Thu, 20 Dec 2012 02:54:06 +0000 |
parents | 8a57ebfdfd78 |
children | e3624b7cd603 |
comparison
equal
deleted
inserted
replaced
38:30fcb4fb0f76 | 39:e5bcb1eeafc1 |
---|---|
21 public final class BasicLib { | 21 public final class BasicLib { |
22 | 22 |
23 public static void register(LuaState lua) { | 23 public static void register(LuaState lua) { |
24 LuaTable global = lua.global(); | 24 LuaTable global = lua.global(); |
25 global.put( "_G", global ); | 25 global.put( "_G", global ); |
26 add( global, "getmetatable", LuaState.class, Object.class ); | 26 add( global, "do_file", LuaState.class, String.class ); |
27 add( global, "get_metatable", LuaState.class, Object.class ); | |
27 add( global, "ipairs", LuaTable.class ); | 28 add( global, "ipairs", LuaTable.class ); |
28 add( global, "load", LuaState.class, String.class ); | 29 add( global, "load", LuaState.class, String.class ); |
29 add( global, "loadfile", LuaState.class, String.class ); | 30 add( global, "load_file", LuaState.class, String.class ); |
30 add( global, "pairs", LuaTable.class ); | 31 add( global, "pairs", LuaTable.class ); |
31 add( global, "print", LuaState.class, new Object[0].getClass() ); | 32 add( global, "print", LuaState.class, new Object[0].getClass() ); |
32 add( global, "rawequal", Object.class, Object.class ); | 33 add( global, "raw_equal", Object.class, Object.class ); |
33 add( global, "rawget", LuaTable.class, Object.class ); | 34 add( global, "raw_get", LuaTable.class, Object.class ); |
34 add( global, "rawlen", Object.class ); | 35 add( global, "raw_len", Object.class ); |
35 add( global, "rawset", LuaTable.class, Object.class, Object.class ); | 36 add( global, "raw_set", LuaTable.class, Object.class, Object.class ); |
36 add( global, "setmetatable", LuaTable.class, LuaTable.class ); | 37 add( global, "set_metatable", LuaTable.class, LuaTable.class ); |
37 add( global, "tonumber", Object.class, Integer.class ); | 38 add( global, "to_number", Object.class, Integer.class ); |
38 add( global, "tostring", LuaState.class, Object.class ); | 39 add( global, "to_string", LuaState.class, Object.class ); |
39 add( global, "type", Object.class ); | 40 add( global, "type", Object.class ); |
40 global.put( "_VERSION", Lua.version ); | 41 global.put( "_VERSION", Lua.version ); |
42 | |
43 add( global, "make_standard", LuaState.class ); | |
41 } | 44 } |
42 | 45 |
43 private static void add(LuaTable t,String method,Class<?>... parameterTypes) { | 46 private static void add(LuaTable t,String method,Class<?>... parameterTypes) { |
44 try { | 47 try { |
45 t.put( method, new LuaJavaFunction(BasicLib.class.getMethod(method,parameterTypes),null) ); | 48 t.put( method, new LuaJavaFunction(BasicLib.class.getMethod(method,parameterTypes),null) ); |
46 } catch(NoSuchMethodException e) { | 49 } catch(NoSuchMethodException e) { |
47 throw new RuntimeException(e); | 50 throw new RuntimeException(e); |
48 } | 51 } |
52 } | |
53 | |
54 public static void make_standard(LuaState lua) { | |
55 LuaTable global = lua.global(); | |
56 global.put( "dofile", global.get("do_file") ); | |
57 global.put( "getmetatable", global.get("get_metatable") ); | |
58 global.put( "loadfile", global.get("load_file") ); | |
59 global.put( "rawequal", global.get("raw_equal") ); | |
60 global.put( "rawget", global.get("raw_get") ); | |
61 global.put( "rawlen", global.get("raw_len") ); | |
62 global.put( "rawset", global.get("raw_set") ); | |
63 global.put( "setmetatable", global.get("set_metatable") ); | |
64 global.put( "tonumber", global.get("to_number") ); | |
65 global.put( "tostring", global.get("to_string") ); | |
49 } | 66 } |
50 | 67 |
51 public static void print(LuaState lua,Object... args) throws LuaException { | 68 public static void print(LuaState lua,Object... args) throws LuaException { |
52 for( int i=0; i<args.length; i++ ) { | 69 for( int i=0; i<args.length; i++ ) { |
53 if( i > 0 ) | 70 if( i > 0 ) |
85 in.close(); | 102 in.close(); |
86 return s; | 103 return s; |
87 } | 104 } |
88 | 105 |
89 | 106 |
90 public static LuaFunction loadfile(LuaState lua,String fileName) throws LuaException,IOException { | 107 public static LuaFunction load_file(LuaState lua,String fileName) throws LuaException,IOException { |
91 String src = fileName==null ? readAll(new InputStreamReader(System.in)) : read(new File(fileName)); | 108 String src = fileName==null ? readAll(new InputStreamReader(System.in)) : read(new File(fileName)); |
92 return load(lua,src); | 109 return load(lua,src); |
93 } | 110 } |
94 | 111 |
95 public static Object[] dofile(LuaState lua,String fileName) throws LuaException,IOException { | 112 public static Object[] do_file(LuaState lua,String fileName) throws LuaException,IOException { |
96 return loadfile(lua,fileName).call(lua); | 113 return load_file(lua,fileName).call(lua); |
97 } | 114 } |
98 | 115 |
99 private static class TableIter { | 116 private static class TableIter { |
100 private final Iterator<Map.Entry<Object,Object>> iter; | 117 private final Iterator<Map.Entry<Object,Object>> iter; |
101 | 118 |
156 public static LuaFunction ipairs(LuaTable t) { | 173 public static LuaFunction ipairs(LuaTable t) { |
157 ArrayIter ai = new ArrayIter(t); | 174 ArrayIter ai = new ArrayIter(t); |
158 return new LuaJavaFunction(nextArrayIter,ai); | 175 return new LuaJavaFunction(nextArrayIter,ai); |
159 } | 176 } |
160 | 177 |
161 public static LuaTable getmetatable(LuaState lua,Object obj) { | 178 public static LuaTable get_metatable(LuaState lua,Object obj) { |
162 return lua.getMetatable(obj); | 179 return lua.getMetatable(obj); |
163 } | 180 } |
164 | 181 |
165 public static LuaTable setmetatable(LuaTable table,LuaTable metatable) { | 182 public static LuaTable set_metatable(LuaTable table,LuaTable metatable) { |
166 table.setMetatable(metatable); | 183 table.setMetatable(metatable); |
167 return table; | 184 return table; |
168 } | 185 } |
169 | 186 |
170 public static boolean rawequal(Object v1,Object v2) { | 187 public static boolean raw_equal(Object v1,Object v2) { |
171 return v1 == v2 || v1 != null && v1.equals(v2); | 188 return v1 == v2 || v1 != null && v1.equals(v2); |
172 } | 189 } |
173 | 190 |
174 public static Object rawget(LuaTable table,Object index) { | 191 public static Object raw_get(LuaTable table,Object index) { |
175 return table.get(index); | 192 return table.get(index); |
176 } | 193 } |
177 | 194 |
178 public static LuaTable rawset(LuaTable table,Object index,Object value) { | 195 public static LuaTable raw_set(LuaTable table,Object index,Object value) { |
179 table.put(index,value); | 196 table.put(index,value); |
180 return table; | 197 return table; |
181 } | 198 } |
182 | 199 |
183 public static int rawlen(Object v) throws LuaException { | 200 public static int raw_len(Object v) throws LuaException { |
184 if( v instanceof String ) { | 201 if( v instanceof String ) { |
185 String s = (String)v; | 202 String s = (String)v; |
186 return s.length(); | 203 return s.length(); |
187 } | 204 } |
188 if( v instanceof LuaTable ) { | 205 if( v instanceof LuaTable ) { |
189 LuaTable t = (LuaTable)v; | 206 LuaTable t = (LuaTable)v; |
190 return t.length(); | 207 return t.length(); |
191 } | 208 } |
192 throw new LuaException( "bad argument #1 to 'rawlen' (table or string expected)" ); | 209 throw new LuaException( "bad argument #1 to 'raw_len' (table or string expected)" ); |
193 } | 210 } |
194 | 211 |
195 public static LuaNumber tonumber(Object e,Integer base) { | 212 public static LuaNumber to_number(Object e,Integer base) { |
196 return Lua.toNumber(e,base); | 213 return Lua.toNumber(e,base); |
197 } | 214 } |
198 | 215 |
199 public static String tostring(LuaState lua,Object v) throws LuaException { | 216 public static String to_string(LuaState lua,Object v) throws LuaException { |
200 return lua.toString(v); | 217 return lua.toString(v); |
201 } | 218 } |
202 } | 219 } |