Next: , Up: Syntax Summary   [Contents][Index]


10.10.13.1 Syntax of Indexicals

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


Send feedback on this subject.