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 modFixTerm | { floored remainder } | |
| | Term remFixTerm | { 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 modRange | { pointwise modulo } | |
| | Range remRange | { pointwise remainder } | |
| | Range +FixTerm | { pointwise addition } | |
| | Range -FixTerm | { pointwise subtraction } | |
| | FixTerm -Range | { pointwise subtraction } | |
| | Range modFixTerm | { pointwise floored remainder } | |
| | Range remFixTerm | { 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 inRange | |
| Indexicals | ::= Indexical | |
| | Indexical ,Indexicals | ||
| ConstraintBody | ::= var { Xstands forX#=1} | |
| | true | ||
| | false | ||
| | 1 | ||
| | 0 | ||
| | var inIntegerRange | ||
| | 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 |