}
adapter.storeLocal(step);
// boolean dirPlus=(step > 0);
int dirPlus=adapter.newLocal(Types.BOOLEAN_VALUE);
DecisionDoubleVisitor div=new DecisionDoubleVisitor();
div.visitBegin();
adapter.loadLocal(step);
div.visitGT();
adapter.push(0D);
div.visitEnd(bc);
adapter.storeLocal(dirPlus);
//if(step!=0) {
div=new DecisionDoubleVisitor();
div.visitBegin();
adapter.loadLocal(step);
div.visitNEQ();
adapter.push(0D);
div.visitEnd(bc);
Label ifEnd=new Label();
adapter.ifZCmp(Opcodes.IFEQ, ifEnd);
// VariableReference index>=VariableInterpreter.getVariableReference(pc,@index));
int index = adapter.newLocal(Types.VARIABLE_REFERENCE);
adapter.loadArg(0);
ExpressionUtil.writeOutSilent(getAttribute("index").getValue(), bc, Expression.MODE_REF);
adapter.invokeStatic(Types.VARIABLE_INTERPRETER, GET_VARIABLE_REFERENCE);
adapter.storeLocal(index);
// index.set(from);
adapter.loadLocal(index);
adapter.loadLocal(from);
adapter.invokeVirtual(Types.VARIABLE_REFERENCE, SET_DOUBLE);
// for
//int i=forConditionVisitor.visitBeforeExpression(adapter,from,step,true);
// init
adapter.visitLabel(forDoubleVisitor.beforeInit);
forDoubleVisitor.forInit(adapter, from, true);
adapter.goTo(forDoubleVisitor.beforeExpr);
// update
adapter.visitLabel(forDoubleVisitor.beforeUpdate);
adapter.loadLocal(index);
//forConditionVisitor.forUpdate(adapter, step, true);
adapter.visitVarInsn(Opcodes.DLOAD, forDoubleVisitor.i);
adapter.loadLocal(step);
adapter.visitInsn(Opcodes.DADD);
adapter.visitInsn(Opcodes.DUP2);
adapter.visitVarInsn(Opcodes.DSTORE, forDoubleVisitor.i);
adapter.invokeVirtual(Types.VARIABLE_REFERENCE, SET_DOUBLE);
// expression
adapter.visitLabel(forDoubleVisitor.beforeExpr);
int i=forDoubleVisitor.i;
adapter.loadLocal(dirPlus);
Label l1 = new Label();
adapter.visitJumpInsn(Opcodes.IFEQ, l1);
div=new DecisionDoubleVisitor();
div.visitBegin();
adapter.visitVarInsn(Opcodes.DLOAD, i);
div.visitLTE();
adapter.loadLocal(to);
div.visitEnd(bc);
Label l2 = new Label();
adapter.visitJumpInsn(Opcodes.GOTO, l2);
adapter.visitLabel(l1);
div=new DecisionDoubleVisitor();
div.visitBegin();
adapter.visitVarInsn(Opcodes.DLOAD, i);
div.visitGTE();
adapter.loadLocal(to);
div.visitEnd(bc);
adapter.visitLabel(l2);
forDoubleVisitor.visitAfterExpressionBeginBody(adapter);
//adapter.loadLocal(index);