Mercurial Hosting > luan
diff src/luan/LuanState.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 | 8ede219cd111 |
children | f7e17cfb35f9 |
line wrap: on
line diff
--- a/src/luan/LuanState.java Mon Jan 07 00:18:35 2013 +0000 +++ b/src/luan/LuanState.java Mon Jan 07 03:36:28 2013 +0000 @@ -4,9 +4,35 @@ import java.io.PrintStream; import java.util.List; import java.util.ArrayList; +import luan.interp.LuanCompiler; +import luan.lib.BasicLib; +import luan.lib.JavaLib; +import luan.lib.MathLib; +import luan.lib.StringLib; +import luan.lib.TableLib; +import luan.lib.HtmlLib; public abstract class LuanState { + + public static LuanState newStandard() { + LuanState luan = LuanCompiler.newLuanState(); + BasicLib.register(luan); + JavaLib.register(luan); + MathLib.register(luan); + StringLib.register(luan); + TableLib.register(luan); + HtmlLib.register(luan); + return luan; + } + + public Object[] eval(String cmd,String sourceName) throws LuanException { + LuanFunction fn = BasicLib.load(this,cmd,sourceName); + return call(fn,null,null); + } + + + private final LuanTable global = new LuanTable(); private final List<MetatableGetter> mtGetters = new ArrayList<MetatableGetter>(); final List<StackTraceElement> stackTrace = new ArrayList<StackTraceElement>();