Mercurial Hosting > luan
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 ) { |