Mercurial Hosting > luan
comparison src/luan/interp/SetStmt.java @ 13:3b22ffbdb83a
minor
git-svn-id: https://luan-java.googlecode.com/svn/trunk@14 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 23 Nov 2012 13:04:03 +0000 |
parents | b7d7069fee58 |
children | 09d41f7490a8 |
comparison
equal
deleted
inserted
replaced
12:9cea1aea5eef | 13:3b22ffbdb83a |
---|---|
26 this.vars = vars; | 26 this.vars = vars; |
27 this.expressions = expressions; | 27 this.expressions = expressions; |
28 } | 28 } |
29 | 29 |
30 @Override public void eval(LuaState lua) throws LuaException { | 30 @Override public void eval(LuaState lua) throws LuaException { |
31 List vals = expressions.eval(lua); | 31 final Object[] vals = expressions.eval(lua); |
32 int n = vals.size(); | |
33 for( int i=0; i<vars.length; i++ ) { | 32 for( int i=0; i<vars.length; i++ ) { |
34 Var var = vars[i]; | 33 Var var = vars[i]; |
35 Object t = var.table.eval(lua); | 34 Object t = var.table.eval(lua); |
36 if( !(t instanceof LuaTable) ) | 35 if( !(t instanceof LuaTable) ) |
37 throw new LuaException( "attempt to index a " + Lua.type(t) + " value" ); | 36 throw new LuaException( "attempt to index a " + Lua.type(t) + " value" ); |
38 LuaTable tbl = (LuaTable)t; | 37 LuaTable tbl = (LuaTable)t; |
39 Object key = var.key.eval(lua); | 38 Object key = var.key.eval(lua); |
40 Object val = i < n ? vals.get(i) : null; | 39 Object val = i < vals.length ? vals[i] : null; |
41 tbl.set(key,val); | 40 tbl.set(key,val); |
42 } | 41 } |
43 } | 42 } |
44 | 43 |
45 } | 44 } |