JavaPatternMatching/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java

71 lines
2.1 KiB
Java
Raw Normal View History

2013-10-18 11:33:46 +00:00
// ino.module.Statement.8652.package
2014-09-02 08:33:54 +00:00
package de.dhbwstuttgart.syntaxtree.statement;
2016-09-20 13:18:13 +00:00
2013-10-18 11:33:46 +00:00
import java.util.Enumeration;
import java.util.Hashtable;
2016-07-21 14:36:33 +00:00
import org.apache.bcel.generic.ClassGen;
import org.apache.bcel.generic.ConstantPoolGen;
import org.apache.bcel.generic.InstructionFactory;
import org.apache.bcel.generic.InstructionList;
2015-06-16 09:55:15 +00:00
import de.dhbwstuttgart.typeinference.Menge;
import de.dhbwstuttgart.bytecode.ClassGenerator;
2014-09-02 08:33:54 +00:00
import de.dhbwstuttgart.core.IItemWithOffset;
import de.dhbwstuttgart.syntaxtree.Class;
2014-09-04 14:35:44 +00:00
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
2014-09-02 08:33:54 +00:00
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;
2014-09-08 13:12:47 +00:00
import de.dhbwstuttgart.typeinference.Pair;
2014-09-02 08:33:54 +00:00
import de.dhbwstuttgart.typeinference.ResultSet;
import de.dhbwstuttgart.typeinference.Typeable;
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
2014-09-02 08:33:54 +00:00
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
2013-10-18 11:33:46 +00:00
2016-09-20 13:18:13 +00:00
public abstract class Statement extends Executeable
2013-10-18 11:33:46 +00:00
{
2016-09-20 13:18:13 +00:00
public Statement(Type type,int offset)
2013-10-18 11:33:46 +00:00
{
2016-09-20 13:18:13 +00:00
super(type,offset);
2013-10-18 11:33:46 +00:00
}
/**
* @author AI10023 - Andreas Stadelmeier
* Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke
2013-10-18 11:33:46 +00:00
* 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.
2013-10-18 11:33:46 +00:00
* Liefert Informationen zum Statment und dessen Typ.
* @return
*/
public String getTypeInformation(){
2016-09-20 13:18:13 +00:00
return this.printJavaCode(new ResultSet(new Menge<Pair>()))+" : "+this.getType().toString();
2013-10-18 11:33:46 +00:00
}
2014-03-17 16:55:55 +00:00
@Override
public String getDescription(){
return this.printJavaCode(new ResultSet(new Menge<Pair>())).toString();
2014-03-17 16:55:55 +00:00
}
public void setReturnType(Type t){
}
public Type getReturnType(){
2016-09-16 11:25:20 +00:00
return new de.dhbwstuttgart.syntaxtree.type.Void(-1);
}
2015-06-16 09:55:15 +00:00
2016-09-20 13:18:13 +00:00
}