34 lines
808 B
Plaintext
34 lines
808 B
Plaintext
|
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());
|
||
|
}
|
||
|
}
|
||
|
}
|