// ino.module.NewArray.8641.package package de.dhbwstuttgart.syntaxtree.statement; // ino.end // ino.module.NewArray.8641.import import java.util.Hashtable; import java.util.Vector; import de.dhbwstuttgart.logger.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.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; // ino.class.NewArray.25787.declaration public class NewArray extends Expr // ino.end // ino.class.NewArray.25787.body { // ino.method.NewArray.25791.definition public NewArray(int offset,int variableLength) // ino.end // ino.method.NewArray.25791.body { super(offset,variableLength); } // ino.end // ino.attribute.type.25794.declaration private Type type; // ino.end // ino.attribute.expr.25797.declaration public Vector expr = new Vector(); // ino.end // ino.attribute.parserlog.25800.declaration protected static Logger parserlog = Logger.getLogger("parser"); // ino.end // ino.method.getType.25803.defdescription type=javadoc /** * Author: J�rg B�uerle
* @return Returns the type. */ // ino.end // ino.method.getType.25803.definition public Type getType() // ino.end // ino.method.getType.25803.body { return type; } // ino.end // ino.method.setType.25806.defdescription type=javadoc /** * Author: J�rg B�uerle
* @param type The type to set. */ // ino.end // ino.method.setType.25806.definition public void setType(Type type) // ino.end // ino.method.setType.25806.body { this.type = type; } // ino.end // ino.method.get_Name.25809.definition public String get_Name() // ino.end // ino.method.get_Name.25809.body { return null; } // ino.end // ino.method.sc_check.25812.definition public void sc_check(Vector classname, Hashtable bh, Hashtable ch,boolean ext, Hashtable parach, Hashtable parabh) // ino.end // ino.method.sc_check.25812.body { if(ext) parserlog.debug(" ---NewArray---"); } // ino.end // ino.method.get_codegen_Array_Type.25815.definition public int get_codegen_Array_Type() throws JVMCodeException // ino.end // ino.method.get_codegen_Array_Type.25815.body { if(this.getType().equals("boolean")) return 4; else if(this.getType().equals("char")) return 5; else if(this.getType().equals("float")) return 6; else if(this.getType().equals("double")) return 7; else if(this.getType().equals("byte")) return 8; else if(this.getType().equals("short")) return 9; else if(this.getType().equals("int")) return 10; else if(this.getType().equals("long")) return 11; else throw new JVMCodeException("JVMCodeException: NewArray: int get_codegen_Array_Type()"); } // ino.end // ino.method.codegen.25818.definition public void codegen(ClassFile classfile, CodeAttribute code, Vector paralist) throws JVMCodeException // ino.end // ino.method.codegen.25818.body { if(JVMCode.get_nType(this.getType().getName().toString()) == 4) { for(int i = 0; i < expr.size(); i++) ((Expr)expr.elementAt(i)).codegen(classfile, code, paralist); code.add_code(JVMCode.anewarray); code.add_code_short(classfile.add_CONSTANT_Class_info(this.getType().getName().toString())); } else { for(int i = 0; i < expr.size(); i++) ((Expr)expr.elementAt(i)).codegen(classfile, code, paralist); code.add_code(JVMCode.newarray); code.add_code_byte(this.get_codegen_Array_Type()); } } // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.25827.definition public void wandleRefTypeAttributes2GenericAttributes(Vector paralist, Vector genericMethodParameters) // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.25827.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(); ret.addAll(this.expr); return ret; } } // ino.end