Mercurial Hosting > luan
comparison src/luan/interp/FnCall.java @ 3:7a2cdbc5767f
add LuaState
git-svn-id: https://luan-java.googlecode.com/svn/trunk@4 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 16 Nov 2012 05:23:12 +0000 |
parents | 4da26b11d12a |
children | b7d7069fee58 |
comparison
equal
deleted
inserted
replaced
2:4da26b11d12a | 3:7a2cdbc5767f |
---|---|
3 import java.util.Arrays; | 3 import java.util.Arrays; |
4 import java.util.List; | 4 import java.util.List; |
5 import luan.Lua; | 5 import luan.Lua; |
6 import luan.LuaFunction; | 6 import luan.LuaFunction; |
7 import luan.LuaException; | 7 import luan.LuaException; |
8 import luan.LuaState; | |
8 | 9 |
9 | 10 |
10 final class FnCall extends Values { | 11 final class FnCall extends Values { |
11 private final Expr fnExpr; | 12 private final Expr fnExpr; |
12 private final Values args; | 13 private final Values args; |
14 FnCall(Expr fnExpr,Values args) { | 15 FnCall(Expr fnExpr,Values args) { |
15 this.fnExpr = fnExpr; | 16 this.fnExpr = fnExpr; |
16 this.args = args; | 17 this.args = args; |
17 } | 18 } |
18 | 19 |
19 List eval() throws LuaException { | 20 List eval(LuaState lua) throws LuaException { |
20 LuaFunction fn = Lua.toFunction( fnExpr.eval() ); | 21 LuaFunction fn = Lua.checkFunction( fnExpr.eval(lua) ); |
21 return Arrays.asList( fn.call( args.eval().toArray() ) ); | 22 return Arrays.asList( fn.call( args.eval(lua).toArray() ) ); |
22 } | 23 } |
23 } | 24 } |