package me.august.lumen.compile.parser.ast.stmt; import me.august.lumen.compile.analyze.ASTVisitor; import me.august.lumen.compile.analyze.VisitorConsumer; import me.august.lumen.compile.codegen.BuildContext; import me.august.lumen.compile.parser.ast.CodeBlock; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; public class NextStmt implements CodeBlock, VisitorConsumer { private Loop owner; public NextStmt() { } public NextStmt(Loop owner) { this.owner = owner; } public Loop getOwner() { return owner; } public void setOwner(Loop owner) { this.owner = owner; } @Override public void generate(MethodVisitor visitor, BuildContext context) { visitor.visitJumpInsn(Opcodes.GOTO, owner.getRepeatLabel()); } @Override public void accept(ASTVisitor astVisitor) { astVisitor.visitNextStmt(this); } }