SymbolicRange.java
package dev.civl.sarl.IF.expr;
/**
* Represents a symbolic range of integer values.
*
* @author awilton
*/
public interface SymbolicRange {
static public enum RangeKind {
/**
* A range consisting of a single value.
*/
SINGLETON,
/**
* A contiguous range of values.
*/
INTERVAL,
/**
* A range of values which are evenly spaced by a step value.
*/
REGULAR
}
/**
* @return the {@link RangeKind} of this object
*/
RangeKind getRangeKind();
/**
* @return the (inclusive) lower bound expression
*/
NumericExpression getLower();
/**
* @return the (exclusive) upper bound expression
*/
NumericExpression getUpper();
/**
* @return the step expression
*/
NumericExpression getStep();
}