package net.iplantevin.ql.ast.expressions.operators;
import net.iplantevin.ql.ast.LineInfo;
import net.iplantevin.ql.ast.expressions.Expression;
import net.iplantevin.ql.ast.types.BooleanType;
import net.iplantevin.ql.ast.types.Type;
import net.iplantevin.ql.ast.typechecking.TypeEnvironment;
import net.iplantevin.ql.ast.visitors.IExpressionVisitor;
/**
* Logical AND (&&).
*
* @author Ivan
*/
public class And extends Binary {
public And(Expression left, Expression right, LineInfo lineInfo) {
super(left, right, lineInfo);
}
@Override
public Type getType(TypeEnvironment idTypeStore) {
return new BooleanType();
}
@Override
public String toString() {
return getLeftHS() + " && " + getRightHS();
}
@Override
public <T> T accept(IExpressionVisitor<T> visitor) {
return visitor.visit(this);
}
}