package eu.wietsevenema.lang.oberon.interpreter; import eu.wietsevenema.lang.oberon.ast.expressions.Expression; import eu.wietsevenema.lang.oberon.ast.expressions.Identifier; import eu.wietsevenema.lang.oberon.ast.types.VarType; import eu.wietsevenema.lang.oberon.exceptions.IdentifierExpectedInParamList; import eu.wietsevenema.lang.oberon.exceptions.TypeMismatchException; import eu.wietsevenema.lang.oberon.exceptions.ValueUndefinedException; import eu.wietsevenema.lang.oberon.exceptions.SymbolAlreadyDeclaredException; //FIXME Deze interface wordt alleen geimplementeerd door FormalVar... public interface Formal { public abstract Identifier getIdentifier(); public abstract VarType getVarType(); public abstract void assignParameter(InterpreterScope scope, Expression param) throws TypeMismatchException, IdentifierExpectedInParamList, SymbolAlreadyDeclaredException, ValueUndefinedException; }