// ino.module.IntLiteral.8635.package package de.dhbwstuttgart.syntaxtree.statement; // ino.end // ino.module.IntLiteral.8635.import import java.util.Hashtable; import java.util.Vector; import org.apache.log4j.Logger; import de.dhbwstuttgart.bytecode.ClassFile; import de.dhbwstuttgart.bytecode.CodeAttribute; import de.dhbwstuttgart.bytecode.JVMCode; import de.dhbwstuttgart.myexception.CTypeReconstructionException; import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.IntegerType; import de.dhbwstuttgart.syntaxtree.type.LongType; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.Type; import de.dhbwstuttgart.typeinference.ConstraintsSet; import de.dhbwstuttgart.typeinference.JavaCodeResult; import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.unify.CSubstitutionSet; import sun.reflect.generics.reflectiveObjects.NotImplementedException; // ino.end // ino.class.IntLiteral.25447.declaration public class LongLiteral extends Literal // ino.end // ino.class.IntLiteral.25447.body { // ino.attribute.Int.25451.declaration private long Long; // ino.end // ino.attribute.parserlog.25454.declaration protected static Logger parserlog = Logger.getLogger("parser"); // ino.end // ino.method.IntLiteral.25457.definition public LongLiteral() // ino.end // ino.method.IntLiteral.25457.body { super(-1,-1); this.setType(new LongType(this)); } // ino.end // ino.method.set_Int.25460.definition public void set_Long(long i) // ino.end // ino.method.set_Int.25460.body { this.Long = i; } // ino.end // ino.method.get_Int.25463.definition public long get_Long() // ino.end // ino.method.get_Int.25463.body { return Long; } // ino.end // ino.method.sc_check.25466.definition public void sc_check(Vector classname, Hashtable ch, Hashtable bh, boolean ext, Hashtable parach, Hashtable parabh) // ino.end // ino.method.sc_check.25466.body { parserlog.debug("SC -> Semantik-Check f�r LongLiteral wurde aufgerufen --> nichts zu tun!"); } // ino.end // ino.method.get_Name.25469.definition public String get_Name() // ino.end // ino.method.get_Name.25469.body { return null; } // ino.end // ino.method.codegen.25472.definition public void codegen(ClassFile classfile, CodeAttribute code, Vector paralist) throws JVMCodeException // ino.end // ino.method.codegen.25472.body { /*if (Int >= 0 && Int <= 5) // Kleine Werte lassen sich direkt realisieren code.add_code(JVMCode.nconst_n("int", Int)); else if (Int >= -128 && Int <= 127) { // Aenderung des Codes fuer etwas groessere Werte code.add_code(JVMCode.bipush); code.add_code_byte((byte) Int); } else if (Int >= -32768 && Int <= 32767) { // Aenderung des Codes fuer groessere Werte code.add_code(JVMCode.sipush); code.add_code_short((short) Int); } else { // Ablage als Konstante int index = classfile.add_CONSTANT_Integer_info(Int); if (index < 256) { code.add_code(JVMCode.ldc); code.add_code_byte((byte) index); } else { code.add_code(JVMCode.ldc_w); code.add_code_short((short) index); } } // Auto-Boxing: Da int nicht so nicht weiterverwendet werden kann, // in Integer umwandeln. if (!getPrimitiveFlag()) { code.add_code(JVMCode.invokestatic); code.add_code_short(classfile.add_method_ref("java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;")); }*/ throw new JVMCodeException("Bytecode nicht implementiert"); } // ino.end // ino.method.ConstantCodegen.25475.definition public short ConstantCodegen(ClassFile classfile) throws JVMCodeException // ino.end // ino.method.ConstantCodegen.25475.body { //return (short) classfile.add_CONSTANT_Integer_info(get_Int()); throw new JVMCodeException("Bytecode nicht implementiert"); } // ino.end // ino.method.toString.25484.defdescription type=javadoc /** *
Author: Martin Pl�micke * @return */ // ino.end // ino.method.toString.25484.definition public String toString() // ino.end // ino.method.toString.25484.body { return getType().toString() + " " + Long; } // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.25487.definition public void wandleRefTypeAttributes2GenericAttributes(Vector paralist, Vector genericMethodParameters) // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.25487.body { } // ino.end @Override public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { // TODO Auto-generated method stub return null; } @Override public JavaCodeResult printJavaCode(ResultSet resultSet) { // TODO Auto-generated method stub return null; } @Override public Vector getChildren() { Vector ret = new Vector(); return ret; } } // ino.end