// ino.module.Statement.8652.package package de.dhbwstuttgart.syntaxtree.statement; import java.util.Enumeration; import java.util.Hashtable; import org.apache.bcel.generic.ClassGen; import org.apache.bcel.generic.ConstantPoolGen; import org.apache.bcel.generic.InstructionFactory; import org.apache.bcel.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.core.IItemWithOffset; 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.syntaxtree.type.TypePlaceholder; import de.dhbwstuttgart.typeinference.ConstraintsSet; import de.dhbwstuttgart.typeinference.JavaCodeResult; import de.dhbwstuttgart.typeinference.Pair; import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.Typeable; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; public abstract class Statement extends Executeable { public Statement(Type type,int offset) { super(type,offset); } /** * @author AI10023 - Andreas Stadelmeier * Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke * Jedes Statement wird im Zuge des Algorithmus durch die TYPEExpr-Funktion angesprochen. */ public abstract ConstraintsSet TYPEStmt(TypeAssumptions assumptions); /** * @author Andreas Stadelmeier, a10023 * Sollte von jedem Statement überschrieben werden. * Liefert Informationen zum Statment und dessen Typ. * @return */ public String getTypeInformation(){ return this.printJavaCode(new ResultSet(new Menge()))+" : "+this.getType().toString(); } @Override public String getDescription(){ return this.printJavaCode(new ResultSet(new Menge())).toString(); } public void setReturnType(Type t){ } public Type getReturnType(){ return new de.dhbwstuttgart.syntaxtree.type.Void(-1); } }