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 |