Mercurial Hosting > luan
comparison src/luan/interp/GenericForStmt.java @ 48:64ecb7a3aad7
rename Lua to Luan
git-svn-id: https://luan-java.googlecode.com/svn/trunk@49 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 28 Dec 2012 03:29:12 +0000 |
parents | e3624b7cd603 |
children | 8ede219cd111 |
comparison
equal
deleted
inserted
replaced
47:659c7139e903 | 48:64ecb7a3aad7 |
---|---|
1 package luan.interp; | 1 package luan.interp; |
2 | 2 |
3 import luan.Lua; | 3 import luan.Luan; |
4 import luan.LuaException; | 4 import luan.LuanException; |
5 import luan.LuaFunction; | 5 import luan.LuanFunction; |
6 import luan.LuaSource; | 6 import luan.LuanSource; |
7 | 7 |
8 | 8 |
9 final class GenericForStmt extends CodeImpl implements Stmt { | 9 final class GenericForStmt extends CodeImpl implements Stmt { |
10 private final int iVars; | 10 private final int iVars; |
11 private final int nVars; | 11 private final int nVars; |
12 private final Expr iterExpr; | 12 private final Expr iterExpr; |
13 private final Stmt block; | 13 private final Stmt block; |
14 | 14 |
15 GenericForStmt(LuaSource.Element se,int iVars,int nVars,Expr iterExpr,Stmt block) { | 15 GenericForStmt(LuanSource.Element se,int iVars,int nVars,Expr iterExpr,Stmt block) { |
16 super(se); | 16 super(se); |
17 this.iVars = iVars; | 17 this.iVars = iVars; |
18 this.nVars = nVars; | 18 this.nVars = nVars; |
19 this.iterExpr = iterExpr; | 19 this.iterExpr = iterExpr; |
20 this.block = block; | 20 this.block = block; |
21 } | 21 } |
22 | 22 |
23 @Override public void eval(LuaStateImpl lua) throws LuaException { | 23 @Override public void eval(LuanStateImpl lua) throws LuanException { |
24 LuaFunction iter = lua.checkFunction( se, iterExpr.eval(lua) ); | 24 LuanFunction iter = lua.checkFunction( se, iterExpr.eval(lua) ); |
25 try { | 25 try { |
26 while(true) { | 26 while(true) { |
27 Object[] vals = lua.call(iter,iterExpr.se(),iterExpr.se().text()); | 27 Object[] vals = lua.call(iter,iterExpr.se(),iterExpr.se().text()); |
28 if( vals.length==0 || vals[0]==null ) | 28 if( vals.length==0 || vals[0]==null ) |
29 break; | 29 break; |