clock | ::= | ’ ident |
| | ( clock ) | |
| | stream-clock | |
| | ( carrier-clock : stream-clock ) | |
| | ( clock { * clock } ) | |
| | clock sig | |
| | static | |
stream-clock | ::= | ’ ident |
| | ( stream-clock ) | |
| | stream-clock on carrier-clock | |
| | stream-clock on not carrier-clock | |
carrier-clock | ::= | value-path |
| | ( carrier-clock ) | |
| | _ ident |
The precedences are given in the following table. The constructions with higher precedences come first.
Operator | Associativity |
sig | - |
on | - |
: | - |
* | - |
-> | right |
’ ident denotes the clock variable ident.
( clock ) stands for clock.
The clock stream-clock is the presence information of a stream.
The stream clock stream-clock on carrier-clock denotes the sub-clock of stream-clock when carrier-clock is true. The stream clock stream-clock on not carrier-clock denotes the sub-clock of stream-clock when carrier-clock is false.
The clock ( carrier-clock : stream-clock ) of a stream e means that e has value carrier-clock which has the stream clock stream-clock. The value may be either a global value (defined at top-level) or an identifier. This identifier is unique and is an abstraction of the actual value of e.
The clock clock sig of a stream e means that e is a signal. A signal boxes a value with its internal clock indicating when the value is present.
The clock static of a value e means that e can be computed at instantiation time, that is, before the execution starts. A variable defined with a static clock can thus be used at any clock.
The clock ( clock1 * ... * clockn ) is the clock of expressions evaluating to ( v1, ... , vn ) where vi is on clock clocki. The clock clock1 -> clock2 is the clock of a function whose argument is on clock clock1 and result on clock clock2.