// ino.module.Return.8651.package package mycompiler.mystatement; // ino.end // ino.module.Return.8651.import import java.util.Hashtable; import java.util.Vector; import mycompiler.mybytecode.ClassFile; import mycompiler.mybytecode.CodeAttribute; import mycompiler.mybytecode.JVMCode; import mycompiler.myclass.Class; import mycompiler.myexception.CTypeReconstructionException; import mycompiler.myexception.JVMCodeException; import mycompiler.myexception.SCExcept; import mycompiler.myexception.SCStatementException; import mycompiler.mytype.GenericTypeVar; import mycompiler.mytype.Type; import mycompiler.mytype.TypePlaceholder; import mycompiler.mytypereconstruction.CSupportData; import mycompiler.mytypereconstruction.replacementlistener.CReplaceTypeEvent; import mycompiler.mytypereconstruction.set.CSubstitutionSet; import mycompiler.mytypereconstruction.set.CTripleSet; import mycompiler.mytypereconstruction.set.CTypeAssumptionSet; import mycompiler.mytypereconstruction.typeassumption.CTypeAssumption; import org.apache.log4j.Logger; // ino.end import sun.reflect.generics.reflectiveObjects.NotImplementedException; import typinferenz.JavaCodeResult; import typinferenz.SingleConstraint; import typinferenz.ConstraintsSet; import typinferenz.FreshTypeVariable; import typinferenz.ResultSet; import typinferenz.assumptions.TypeAssumptions; // ino.class.Return.26150.declaration public class Return extends Statement // ino.end // ino.class.Return.26150.body { // ino.method.Return.26154.definition public Return(int offset,int variableLength) // ino.end // ino.method.Return.26154.body { super(offset,variableLength); } // ino.end // ino.attribute.retexpr.26157.declaration public Expr retexpr; // ino.end // ino.attribute.parserlog.26160.declaration protected static Logger parserlog = Logger.getLogger("parser"); // ino.end // ino.method.set_ReturnExpr.26166.definition public Return set_ReturnExpr(Expr ret) // ino.end // ino.method.set_ReturnExpr.26166.body { this.retexpr=ret; return this; } // ino.end // ino.method.get_Type.26169.definition public String get_Type() // ino.end // ino.method.get_Type.26169.body { return retexpr.getTypeName(); } // ino.end // ino.method.codegen.26172.definition public void codegen(ClassFile classfile, CodeAttribute code, Vector paralist) throws JVMCodeException // ino.end // ino.method.codegen.26172.body { retexpr.codegen(classfile, code, paralist); code.add_code(JVMCode.nreturn(retexpr.getTypeName())); } // ino.end // ino.method.toString.26178.definition public String toString() // ino.end // ino.method.toString.26178.body { return type + " Return " + retexpr.toString(); } // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.26181.definition public void wandleRefTypeAttributes2GenericAttributes(Vector paralist, Vector genericMethodParameters) // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.26181.body { } // ino.end public boolean addOffsetsToStatement(CTypeAssumption localAssumption, String NameVariable, boolean isMemberVariable) { retexpr.addOffsetsToExpression(localAssumption,NameVariable,isMemberVariable); return true; } @Override public ConstraintsSet TYPEStmt(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); ret.add(this.retexpr.TYPEExpr(assumptions)); //this.setTypeVariable(TypePlaceholder.fresh("Return Type")); this.setType(TypePlaceholder.fresh(this)); ret.add(new SingleConstraint(retexpr.getType(), this.getType())); return ret; } public void replaceType(CReplaceTypeEvent e) { super.replaceType(e); } public int getTypeLineNumber() { return 0; } @Override public String getTypeInformation(){ String ret = this.getType()+" :: (Return "+this.retexpr.getTypeInformation()+")"; return ret; } @Override public JavaCodeResult printJavaCode(ResultSet resultSet) { JavaCodeResult ret = new JavaCodeResult("return "); ret.attach(this.retexpr.printJavaCode(resultSet)); return ret.attach(";"); } } // ino.end