JavaPatternMatching/src/de/dhbwstuttgart/syntaxtree/operator/TimesOp.java

56 lines
1.5 KiB
Java
Raw Normal View History

2013-10-18 11:33:46 +00:00
// ino.module.TimesOp.8611.package
2014-09-02 08:33:54 +00:00
package de.dhbwstuttgart.syntaxtree.operator;
2013-10-18 11:33:46 +00:00
// ino.end
// ino.module.TimesOp.8611.import
import java.util.Vector;
2014-09-02 08:33:54 +00:00
2014-09-04 14:35:44 +00:00
import de.dhbwstuttgart.bytecode.ClassFile;
import de.dhbwstuttgart.bytecode.CodeAttribute;
import de.dhbwstuttgart.bytecode.JVMCode;
import de.dhbwstuttgart.myexception.JVMCodeException;
2014-09-02 08:33:54 +00:00
import de.dhbwstuttgart.syntaxtree.statement.Binary;
import de.dhbwstuttgart.syntaxtree.statement.Expr;
2013-10-18 11:33:46 +00:00
// ino.class.TimesOp.24312.declaration
public class TimesOp extends MulOp
// ino.end
// ino.class.TimesOp.24312.body
{
// ino.method.TimesOp.24316.definition
public TimesOp(int offset,int variableLength)
// ino.end
// ino.method.TimesOp.24316.body
{
super(offset,variableLength);
}
// ino.end
// ino.method.codegen.24319.definition
public void codegen(ClassFile classfile, CodeAttribute code, Expr expr,
boolean neg, Vector paralist)
throws JVMCodeException
// ino.end
// ino.method.codegen.24319.body
{
Expr expr1 = ((Binary) expr).get_Expr1();
Expr expr2 = ((Binary) expr).get_Expr2();
expr1.codegen(classfile, code, paralist);
// unboxing
makePrimitive( classfile, code);
expr2.codegen(classfile, code, paralist);
// unboxing
makePrimitive( classfile, code);
// Die Multiplikation
code.add_code(JVMCode.imul);
// Boxing des Typs
makeWrapper(classfile, code);
}
// ino.end
}
// ino.end