Mercurial Hosting > luan
diff src/luan/lib/BasicLib.java @ 21:c93d8c781853
add functions
git-svn-id: https://luan-java.googlecode.com/svn/trunk@22 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Tue, 04 Dec 2012 09:16:03 +0000 |
parents | a7c13c6017f7 |
children | 9de9be530625 |
line wrap: on
line diff
--- a/src/luan/lib/BasicLib.java Sun Dec 02 10:51:18 2012 +0000 +++ b/src/luan/lib/BasicLib.java Tue Dec 04 09:16:03 2012 +0000 @@ -19,7 +19,7 @@ import luan.LuaException; import luan.interp.LuaParser; import luan.interp.Expressions; -import luan.interp.Stmt; +import luan.interp.Chunk; public class BasicLib { @@ -28,8 +28,8 @@ LuaTable t = lua.env(); add( t, "print", new Object[0].getClass() ); add( t, "type", Object.class ); - add( t, "load", String.class ); - add( t, "loadFile", String.class ); + add( t, "load", LuaState.class, String.class ); + add( t, "loadFile", LuaState.class, String.class ); add( t, "pairs", LuaTable.class ); add( t, "ipairs", LuaTable.class ); } @@ -55,7 +55,7 @@ return Lua.type(obj); } - public static LuaFunction load(String ld) throws LuaException { + public static LuaFunction load(LuaState lua,String ld) throws LuaException { LuaParser parser = Parboiled.createParser(LuaParser.class); ParsingResult<?> result = new ReportingParseRunner(parser.Target()).run(ld); // ParsingResult<?> result = new TracingParseRunner(parser.Target()).run(ld); @@ -70,13 +70,8 @@ } }; } - final Stmt stmt = (Stmt)resultValue; - return new LuaFunction() { - public Object[] call(LuaState lua,Object... args) throws LuaException { - stmt.eval(lua); - return LuaFunction.EMPTY_RTN; - } - }; + Chunk chunk = (Chunk)resultValue; + return chunk.newClosure(lua); } public static String readFile(String fileName) throws IOException { @@ -90,8 +85,8 @@ return sb.toString(); } - public static LuaFunction loadFile(String fileName) throws LuaException,IOException { - return load(readFile(fileName)); + public static LuaFunction loadFile(LuaState lua,String fileName) throws LuaException,IOException { + return load(lua,readFile(fileName)); } private static class TableIter {