package slangc.model.statements; import slangc.api.BytecodeInstructionWriter; import slangc.api.Reporter; import slangc.model.StatementModel; import slangc.model.StatementOwner; import slangc.parser.Node; public class BreakStatement extends StatementModel { public BreakStatement(StatementOwner owner, Node source) { super(owner, source); } @Override public void dump(Reporter reporter, String indent, String incr) { reporter.note("DUMP", indent + "> Break (no label)"); } @Override public int resolveExpressions() { return 0; } @Override public void innerGenerate(BytecodeInstructionWriter w) { if (w.getBreak() == null) { w.genError("Nowhere to break to"); } else { w.genJump(BytecodeInstructionWriter.JumpOp.GOTO, w.getBreak()); } } }