@Override public void run() { literal(loop.getStatementLabel()); visit(loop.getBooleanExpression()); visitWithSafepoint(loop.getLoopBlock()); } });
public void visitDoWhileLoop(DoWhileStatement loop) { onLineNumber(loop, "visitDoWhileLoop"); visitStatement(loop); compileStack.pushLoop(loop.getStatementLabel()); Label breakLabel = compileStack.getBreakLabel(); Label continueLabel = compileStack.getContinueLabel(); mv.visitLabel(continueLabel); loop.getLoopBlock().visit(this); loop.getBooleanExpression().visit(this); mv.visitJumpInsn(IFEQ, continueLabel); mv.visitLabel(breakLabel); compileStack.pop(); }
public void visitDoWhileLoop(DoWhileStatement loop) { onLineNumber(loop, "visitDoWhileLoop"); visitStatement(loop); compileStack.pushLoop(loop.getStatementLabel()); Label breakLabel = compileStack.getBreakLabel(); Label continueLabel = compileStack.getContinueLabel(); mv.visitLabel(continueLabel); loop.getLoopBlock().visit(this); loop.getBooleanExpression().visit(this); mv.visitJumpInsn(IFEQ, continueLabel); mv.visitLabel(breakLabel); compileStack.pop(); }
public void visitDoWhileLoop(DoWhileStatement loop) { onLineNumber(loop, "visitDoWhileLoop"); visitStatement(loop); compileStack.pushLoop(loop.getStatementLabel()); Label breakLabel = compileStack.getBreakLabel(); Label continueLabel = compileStack.getContinueLabel(); mv.visitLabel(continueLabel); loop.getLoopBlock().visit(this); loop.getBooleanExpression().visit(this); mv.visitJumpInsn(IFEQ, continueLabel); mv.visitLabel(breakLabel); compileStack.pop(); }
public void writeDoWhileLoop(DoWhileStatement loop) { controller.getAcg().onLineNumber(loop,"visitDoWhileLoop"); writeStatementLabel(loop); MethodVisitor mv = controller.getMethodVisitor(); controller.getCompileStack().pushLoop(loop.getStatementLabel()); Label breakLabel = controller.getCompileStack().getBreakLabel(); Label continueLabel = controller.getCompileStack().getContinueLabel(); mv.visitLabel(continueLabel); loop.getLoopBlock().visit(controller.getAcg()); loop.getBooleanExpression().visit(controller.getAcg()); controller.getOperandStack().jump(IFEQ, continueLabel); mv.visitLabel(breakLabel); controller.getCompileStack().pop(); }