Next: Code Listing
Up: SML Implementation of
Previous: References
To shorten some otherwise lengthy expressions in the following rules, we
adopt the convention:
Syntax of General COSY Macro Notation
Context-Sensitive Restrictions:
- Crest1:
- If the upperbound and lowerbound of dimensions of the collective names are integers then the upperbound has to be greater than or equal to their corresponding implicit or explicit lowerbound.
- Crest2:
- An array identifier may occur only once in collectivisors.
- Crest3:
- Each replicator without range variables must specify a non-empty range for its index.
- Irest1:
- Identifiers for replicator indices and range variables should be distinct from any identifiers used for simple events. Identifiers for replicator indices and range variables should also be distinct.
- Irest2:
- Replicator index variables are only defined inside the [ ] of the replicators with which they are associated. In the scope of a replicator index variable no other replicator index variable having the same name is permitted.
- BRrest:
- The range of the bodyreplicator indices should be non-empty.
- Rrest1.1:
- For every replicator if inc is an integer then
.
- Rrest1.2:
- For every concatenator and bodyreplicator if in, fi, inc are integers then
.
- Rrest1.3:
- For every imbricator, if in, fi, inc are integers then
.
- Rrest2:
- The replicators should generate indexed events permitted by the corresponding collectivisors.
- Drest1:
- For every distributor
, msequence must contain at least one slice event.
- Drest2.1:
- If both range and dim are blank then the number of sections generated by the rightmost distributable (current) dimension must be the same for all slice events occurring in msequence.
- Drest2.2:
- If range is blank, dim=j and j is an integer, then the number of sections generated by jth dimension must be the same for all slice events occurring in msequence and having the jth dimension distributable.
- Drest3:
- Inside a k-nested distributor there must be at least one slice event with k distributable dimensions, and no array slices with more than
k distributable dimensions.
- Drest4:
- If dim=j then every slice event with maximal number of distributable dimensions must have the jth dimension as a distributable dimension.
-
-
-
-
- Drest5.1:
- If
, dim is blank and
,
,
are integers, then
,
and
must be smaller than or equal to the number of sections generated by the rightmost distributable (current) dimension of any slice event occurring in msequence.
- Drest5.2:
- If
,
,
, dim=j and
,
,
, j are integers, then
,
and
must be smaller than or equal to the number of sections generated by the jth dimension of any slice event occurring in msequence
which has the jth dimension distributable.
Next: Code Listing
Up: SML Implementation of
Previous: References
Peter Lauer
Mon Jul 22 17:29:46 EDT 1996