comparison src/luan/interp/NumericForStmt.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 a443637829c1
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.LuaSource; 5 import luan.LuanSource;
6 6
7 7
8 final class NumericForStmt extends CodeImpl implements Stmt { 8 final class NumericForStmt extends CodeImpl implements Stmt {
9 private final int iVar; 9 private final int iVar;
10 private final Expr fromExpr; 10 private final Expr fromExpr;
11 private final Expr toExpr; 11 private final Expr toExpr;
12 private final Expr stepExpr; 12 private final Expr stepExpr;
13 private final Stmt block; 13 private final Stmt block;
14 14
15 NumericForStmt(LuaSource.Element se,int iVar,Expr fromExpr,Expr toExpr,Expr stepExpr,Stmt block) { 15 NumericForStmt(LuanSource.Element se,int iVar,Expr fromExpr,Expr toExpr,Expr stepExpr,Stmt block) {
16 super(se); 16 super(se);
17 this.iVar = iVar; 17 this.iVar = iVar;
18 this.fromExpr = fromExpr; 18 this.fromExpr = fromExpr;
19 this.toExpr = toExpr; 19 this.toExpr = toExpr;
20 this.stepExpr = stepExpr; 20 this.stepExpr = stepExpr;
21 this.block = block; 21 this.block = block;
22 } 22 }
23 23
24 @Override public void eval(LuaStateImpl lua) throws LuaException { 24 @Override public void eval(LuanStateImpl lua) throws LuanException {
25 double v = lua.checkNumber( se, fromExpr.eval(lua) ).doubleValue(); 25 double v = lua.checkNumber( se, fromExpr.eval(lua) ).doubleValue();
26 double limit = lua.checkNumber( se, toExpr.eval(lua) ).doubleValue(); 26 double limit = lua.checkNumber( se, toExpr.eval(lua) ).doubleValue();
27 double step = lua.checkNumber( se, stepExpr.eval(lua) ).doubleValue(); 27 double step = lua.checkNumber( se, stepExpr.eval(lua) ).doubleValue();
28 try { 28 try {
29 while( step > 0.0 && v <= limit || step < 0.0 && v >= limit ) { 29 while( step > 0.0 && v <= limit || step < 0.0 && v >= limit ) {