Node:Syntax of Indexicals, Next:Syntax of Arithmetic Expressions, Up:Syntax Summary
X | ::= variable | { domain variable }
|
Constant | ::= integer
| |
| inf | { minus infinity }
| |
| sup | { plus infinity }
| |
Term | ::= Constant
| |
| X | { suspend until assigned }
| |
| min(X) | { min. of domain of X }
| |
| max(X) | { max. of domain of X }
| |
| card(X) | { size of domain of X }
| |
| - Term
| ||
| Term + Term
| ||
| Term - Term
| ||
| Term * Term
| ||
| Term /> Term | { division rounded up }
| |
| Term /< Term | { division rounded down }
| |
| Term mod Term
| ||
TermSet | ::= {Term,...,Term}
| |
Range | ::= TermSet
| |
| dom(X) | { 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 + Term | { pointwise addition }
| |
| Range - Term | { pointwise subtraction }
| |
| Term - Range | { pointwise subtraction }
| |
| Range mod Term | { pointwise modulo }
| |
| Range ? Range
| ||
| unionof(X,Range,Range)
| ||
| switch(Term,MapList)
| ||
ConstantSet | ::= {integer,...,integer}
| |
ConstantRange | ::= ConstantSet
| |
| Constant .. Constant
| ||
| ConstantRange /\ ConstantRange
| ||
| ConstantRange \/ ConstantRange
| ||
| \ ConstantRange
| ||
MapList | ::= []
| |
| [integer-ConstantRange|MapList]
| ||
CList | ::= []
| |
| [integer|CList]
| ||
Indexical | ::= X in Range
| |
Indexicals | ::= Indexical
| |
| Indexical , Indexicals
| ||
ConstraintBody | ::= Indexicals
| |
| LinExpr RelOp LinExpr
| ||
| element(X,CList,X)
| ||
| relation(X,MapList,X)
| ||
Head | ::= term | { a compound term with unique variable args }
|
TellPos | ::= Head +: ConstraintBody
| |
TellNeg | ::= Head -: ConstraintBody
| |
AskPos | ::= Head +? Indexical
| |
AskNeg | ::= Head -? Indexical
| |
ConstraintDef | ::= TellPos.
| |
?(TellNeg.)
| ||
?(AskPos.)
| ||
?(AskNeg.)
|