JavaPatternMatching/src/mycompiler/myoperator/LessEquOp.java

64 lines
1.8 KiB
Java
Raw Normal View History

2013-10-18 11:33:46 +00:00
// ino.module.LessEquOp.8600.package
package mycompiler.myoperator;
// ino.end
// ino.module.LessEquOp.8600.import
import java.util.Vector;
import mycompiler.mybytecode.ClassFile;
import mycompiler.mybytecode.CodeAttribute;
import mycompiler.mybytecode.JVMCode;
import mycompiler.myexception.JVMCodeException;
import mycompiler.mystatement.Binary;
import mycompiler.mystatement.Expr;
// ino.end
// ino.class.LessEquOp.24160.declaration
public class LessEquOp extends RelOp
// ino.end
// ino.class.LessEquOp.24160.body
{
// ino.method.LessEquOp.24164.definition
public LessEquOp(int offset, int variableLength)
// ino.end
// ino.method.LessEquOp.24164.body
{
super(offset,variableLength);
}
// ino.end
// ino.method.codegen.24167.definition
public void codegen(ClassFile classfile, CodeAttribute code, Expr expr, boolean not, Vector paralist)
throws JVMCodeException
// ino.end
// ino.method.codegen.24167.body
{
Expr expr1 = ((Binary)expr).get_Expr1();
Expr expr2 = ((Binary)expr).get_Expr2();
expr1.codegen(classfile, code, paralist);
expr2.codegen(classfile, code , paralist);
if(!not) code.add_code(JVMCode.if_icmpgt);
else code.add_code(JVMCode.if_icmple);
code.add_code_short((short)7);
code.add_code(JVMCode.iconst_1);
code.add_code(JVMCode.goto_);
code.add_code_short((short)4);
code.add_code(JVMCode.iconst_0);
}
// ino.end
// ino.method.if_codegen.24170.definition
public void if_codegen(ClassFile classfile, CodeAttribute code, String type, boolean not)
throws JVMCodeException
// ino.end
// ino.method.if_codegen.24170.body
{
if(!not) code.add_code(JVMCode.if_icmpgt);
else code.add_code(JVMCode.if_icmple);
}
// ino.end
}
// ino.end