Next: Syntax of Range Expressions, Up: Syntax Summary [Contents][Index]
FixTerm | ::= IntConstant | |
| var | { suspend until assigned } | |
Term | ::= min(var) | { min. of domain of X } |
| max(var) | { max. of domain of X } | |
| card(var) | { size of domain of X } | |
| FixTerm | ||
| - FixTerm | ||
| Term + FixTerm | ||
| Term - FixTerm | ||
| Term * FixTerm | ||
| Term /> FixTerm | { ceilinged division } | |
| Term /< FixTerm | { floored division } | |
| Term mod FixTerm | { floored remainder } | |
| Term rem FixTerm | { truncated remainder } | |
TermSet | ::= {FixTerm,…,FixTerm} | |
Range | ::= TermSet | |
| dom(var) | { domain of X } | |
| Term .. Term | { interval } | |
| Range /\ Range | { intersection } | |
| Range \/ Range | { union } | |
| \ Range | { complement } | |
| - Range | { pointwise negation } | |
| Range + Range | { pointwise addition } | |
| Range - Range | { pointwise subtraction } | |
| Range mod Range | { pointwise modulo } | |
| Range rem Range | { pointwise remainder } | |
| Range + FixTerm | { pointwise addition } | |
| Range - FixTerm | { pointwise subtraction } | |
| FixTerm - Range | { pointwise subtraction } | |
| Range mod FixTerm | { pointwise floored remainder } | |
| Range rem FixTerm | { pointwise truncated remainder } | |
| Range ? Range | ||
| unionof(var,Range,Range) | ||
| switch(FixTerm,MapList) | ||
MapList | ::= [] | |
| [integer-IntegerRange|MapList] | ||
CTable | ::= [] | |
| [CRow|CTable] | ||
CRow | ::= [] | |
| [integer|CRow] | ||
| [IntegerRange|CRow] | ||
CList | ::= [] | |
| [integer|CList] | ||
VList | ::= [] | |
| [var|VList] | ||
Indexical | ::= var in Range | |
Indexicals | ::= Indexical | |
| Indexical , Indexicals | ||
ConstraintBody | ::= var { X stands for X#=1 } | |
| true | ||
| false | ||
| 1 | ||
| 0 | ||
| var in IntegerRange | ||
| element(var,CList,var) | ||
| table([VList],CTable) | ||
| LinIntExpr IRelOp LinIntExpr | ||
| #\ ConstraintBody | ||
| ConstraintBody #/\ ConstraintBody | ||
| ConstraintBody #\/ ConstraintBody | ||
| ConstraintBody #=> ConstraintBody | ||
| ConstraintBody #\ ConstraintBody | ||
| ConstraintBody #<=> ConstraintBody | ||
IxConstraintBody | ::= Indexicals | |
| ConstraintBody | ||
Head | ::= term | { a compound term with unique variable args } |
TellPos | ::= Head +: IxConstraintBody | |
TellNeg | ::= Head -: Indexicals | |
AskPos | ::= Head +? Indexical | |
AskNeg | ::= Head -? Indexical | |
ConstraintDef | ::= TellPos | |
| TellNeg | ||
| AskPos | ||
| AskNeg |