Next: Syntax of Arithmetic Expressions, Up: Syntax Summary [Contents][Index]
| Constant | ::= integer | |
| inf | { minus infinity } | |
| sup | { plus infinity } | |
| FixTerm | ::= Constant | |
| | 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) | ||
| ConstantSet | ::= {integer,…,integer} | |
| ConstantRange | ::= ConstantSet | |
| Constant .. Constant | ||
| ConstantRange /\ ConstantRange | ||
| ConstantRange \/ ConstantRange | ||
| \ ConstantRange | ||
| MapList | ::= [] | |
| [integer-ConstantRange|MapList] | ||
| CTable | ::= [] | |
| [CRow|CTable] | ||
| CRow | ::= [] | |
| [integer|CRow] | ||
| [ConstantRange|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 ConstantRange | ||
| element(var,CList,var) | ||
| table([VList],CTable) | ||
| | LinExpr RelOp LinExpr | ||
| #\ 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 |