package de.dhbwstuttgart.syntaxtree.statement;

import de.dhbwstuttgart.syntaxtree.ParameterList;
import de.dhbwstuttgart.syntaxtree.type.FunN;
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation;
import de.dhbwstuttgart.typeinference.constraints.ConstraintSet;
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;

/**
 * @author A10023 - Andreas Stadelmeier
 * Momentan erweitert LambdaExpression noch Expr und erbt dadurch auch von ExprStatement ist also auch ein Statement
 * 
 * LambdaExpression Aufbau:
 * ( ParameterList ) -> { method_body };
 */
public class LambdaExpression extends Expression{
	

	/**
	 * Wird bei der TYPE Methode gesetzt. Speichert den errechneten Typ des LambdaAusdrucks
	 */
	private FunN lambdaType;
	
	private Block method_body;
	private ParameterList params;
	
	public LambdaExpression(int offset, int variableLength) {
		super(null,null);
	}


	@Override
	public ConstraintSet getConstraints(TypeInferenceBlockInformation info) {
		throw new NotImplementedException();
	}
}
