// ino.module.Expr.8630.package package de.dhbwstuttgart.syntaxtree.statement; // ino.end // ino.module.Expr.8630.import import java.util.Hashtable; import java.util.Iterator; import org.apache.bcel.generic.ClassGen; import org.apache.bcel.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.myexception.CTypeReconstructionException; import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.misc.UsedId; import de.dhbwstuttgart.syntaxtree.type.Type; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; import de.dhbwstuttgart.typeinference.ConstraintsSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; // ino.class.Expr.25225.declaration public abstract class Expr extends ExprStmt // ino.end // ino.class.Expr.25225.body { // ino.method.Expr.25229.definition public Expr(int offset, int variableLength) // ino.end // ino.method.Expr.25229.body { super(offset, variableLength); } // ino.end // ino.attribute.usedid.25232.declaration public UsedId usedid; //String type; ab sofort in die Klasse ExprStmt verlegt. last1 17.03.02 // ino.end // ino.method.set_Type.25235.definition public void set_Type(Type type) // ino.end // ino.method.set_Type.25235.body { this.setType(type); } // ino.end // ino.method.set_UsedId.25238.definition public void set_UsedId(UsedId ui) // ino.end // ino.method.set_UsedId.25238.body { this.usedid = ui; } // ino.end // ino.method.get_UsedId.25241.definition public UsedId get_UsedId() // ino.end // ino.method.get_UsedId.25241.body { return usedid; } // ino.end // ino.method.get_Name_Menge.25244.definition public Menge get_Name_Menge() // ino.end // ino.method.get_Name_Menge.25244.body { return usedid.get_Name(); } // ino.end // ino.method.get_Type_Menge.25247.definition public Menge get_Type_Menge() // ino.end // ino.method.get_Type_Menge.25247.body { return usedid.get_Typen(); } // ino.end // ino.method.get_Name.25253.declaration public abstract String get_Name(); // ino.end /** * @author AI10023 - Andreas Stadelmeier * Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke * Jede Expression wird im Zuge des Algorithmus durch die TYPEExpr-Funktion angesprochen. */ public abstract ConstraintsSet TYPEExpr(TypeAssumptions assumptions); /** * @author AI10023 - Andreas Stadelmeier * Die Funktion überschreiben, damit sie von Expressions nicht mehr spezifiziert werden muss. * Denn Expressions müssen diese Funktion nicht implementieren. */ @Override public ConstraintsSet TYPEStmt(TypeAssumptions assumptions){ throw new NotImplementedException(); //wird die TYPEStmt-Methode innerhalb einer Expr aufgerufen, dann ist etwas schief gelaufen. } public abstract InstructionList genByteCode(ClassGen _cg); } // ino.end