forked from JavaTX/JavaCompilerCore
119 lines
3.2 KiB
Java
Executable File
119 lines
3.2 KiB
Java
Executable File
// 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
|