BindingExpressionNodeIF.java
package edu.udel.cis.vsl.tass.ast.IF.expression;
import edu.udel.cis.vsl.tass.ast.IF.declaration.BoundVariableDeclarationNodeIF;
/** General quantified expressions. */
public interface BindingExpressionNodeIF extends PureExpressionNodeIF {
public enum Quantifier {
FORALL, EXISTS, LAMBDA, UNIFORM, SUM
};
/** The quantifier type for this binding expression. */
Quantifier quantifier();
/** Variable that is bound by the quantifier. */
BoundVariableDeclarationNodeIF boundVariable();
/** Constraint on the possible values of the bound variable. */
PureExpressionNodeIF constraint();
/** Quantified expression. */
PureExpressionNodeIF expression();
/** Set the quantifier type for this binding expression. */
void setQuantifier(Quantifier quantifier);
/** Set the variable that is bound by the quantifier. */
void setBoundVariable(BoundVariableDeclarationNodeIF boundVariable);
/** Set the constraint on the possible values of the bound variable. */
void setConstraint(PureExpressionNodeIF constraint);
/** Set the quantified expression. */
void setExpression(PureExpressionNodeIF expression);
}