package com.example.Models.Expressions;

import com.example.Exceptions.BaseException;
import com.example.Models.Program.IDictionary;
import com.example.Models.Program.IHeap;
import com.example.Models.Types.IType;
import com.example.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();
}
