Mercurial Hosting > luan
diff src/luan/LuanState.java @ 75:aa7538ae5fb6
can now load modules from classpath
git-svn-id: https://luan-java.googlecode.com/svn/trunk@76 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Wed, 13 Feb 2013 09:19:15 +0000 |
parents | f003338d503b |
children | 4bf3d0c0b6b9 |
line wrap: on
line diff
--- a/src/luan/LuanState.java Wed Feb 13 06:27:56 2013 +0000 +++ b/src/luan/LuanState.java Wed Feb 13 09:19:15 2013 +0000 @@ -28,6 +28,30 @@ final List<StackTraceElement> stackTrace = new ArrayList<StackTraceElement>(); + public Object get(String name) { + String[] a = name.split("\\."); + LuanTable t = global; + for( int i=0; i<a.length-1; i++ ) { + Object obj = t.get(a[i]); + if( !(obj instanceof LuanTable) ) + return null; + t = (LuanTable)obj; + } + return t.get(a[a.length-1]); + } + + public Object set(String name,Object value) { + String[] a = name.split("\\."); + LuanTable t = global; + for( int i=0; i<a.length-1; i++ ) { + Object obj = t.get(a[i]); + if( !(obj instanceof LuanTable) ) + return null; + t = (LuanTable)obj; + } + return t.put(a[a.length-1],value); + } + public void load(LuanFunction loader,String modName) throws LuanException { Object mod = Luan.first(call(loader,LuanElement.JAVA,"loader",modName)); if( mod == null )