package net.iplantevin.ql.ast.expressions; import net.iplantevin.ql.ast.ASTNode; import net.iplantevin.ql.ast.LineInfo; import net.iplantevin.ql.ast.types.Type; import net.iplantevin.ql.ast.typechecking.TypeEnvironment; import net.iplantevin.ql.ast.visitors.IExpressionVisitor; /** * Abstract Expression class that implements the ASTNode interface. All kinds * of expressions must extend this class or a subclass of it. * * @author Ivan */ public abstract class Expression extends ASTNode { public Expression(LineInfo lineInfo) { super(lineInfo); } public abstract Type getType(TypeEnvironment idTypeStore); public abstract <T> T accept(IExpressionVisitor<T> visitor); }