package zinara.ast; import zinara.ast.expression.Expression; import zinara.code_generator.Genx86; import zinara.exceptions.InvalidCodeException; import zinara.exceptions.TypeClashException; import java.io.IOException; public abstract class ASTNode { public String code; public int register; public abstract void tox86(Genx86 generate) throws IOException,InvalidCodeException; public void boolValue(Genx86 generate, Expression expr, String ret, String reg) throws IOException,InvalidCodeException{ String yesLabel = generate.newLabel(); String noLabel = generate.newLabel(); expr.yesLabel = yesLabel; expr.noLabel = noLabel; expr.tox86(generate); generate.writeLabel(yesLabel); generate.write(generate.movBool(reg,"1")); generate.write(generate.jump(ret)); generate.writeLabel(noLabel); generate.write(generate.movBool(reg,"0")); } }