package Models.Expressions;

import Exceptions.BaseException;
import Models.Program.IDictionary;
import Models.Program.IHeap;
import Models.Types.IType;
import Models.Values.IValue;

public interface IExpression {
    public IValue evaluate(IDictionary<String, IValue> table, IHeap heap) throws BaseException;
    public IType typeCheck(IDictionary<String, IType> typeTable) throws BaseException;
    public IExpression copy();
}
