package zinara.ast.instructions; import zinara.ast.ASTNode; import zinara.ast.expression.Expression; import zinara.ast.instructions.Instruction; import zinara.code_generator.Genx86; import zinara.exceptions.InvalidCodeException; import zinara.exceptions.TypeClashException; import java.io.IOException; public abstract class Instruction extends ASTNode { public String nextInst; public String break_label; public String continue_label; public abstract String toString(); public abstract void tox86(Genx86 generate) throws InvalidCodeException,IOException; public void checkNoReturns(){}; public void set_breaks_continues(CodeBlock code, String break_label, String continue_label){ Instruction inst; for (int i = 0; i < code.getBlock().size(); i++) { inst = (Instruction)code.getBlock().get(i); if ((inst instanceof Break)|| (inst instanceof Continue)|| (inst instanceof If)){ inst.break_label = break_label; inst.continue_label = continue_label; } } } }