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 )