Next: Source tasks, Previous: Task descriptions, Up: Task descriptions [Contents][Index]

A *restricted identifier* declares a variable,
restricting it to the set of tasks that satisfy a given relational
expression (see Relational
expressions). The syntax, shown below, represents the
mathematical notion of “for all <`ident`> such that
<`rel_expr`> is TRUE and <`ident`> is
between zero and the number of tasks…”.

<restricted_ident> |
::= |
<ident> `SUCH THAT`
<rel_expr> |

As an example, ‘`evno SUCH THAT evno IS EVEN`’
describes all even-numbered tasks. On each such task, the variable
‘`evno`’ takes on that task’s ID. Similarly, ‘`thr
SUCH THAT 3 DIVIDES thr-1`’ describes tasks 1, 4, 7, 10,
13.... On each of those
tasks, ‘`thr`’ will be bound to the task ID. On all
other tasks, ‘`thr`’ will be undefined. When order
matters (as in the cases described in Sending and Reordering task
IDs),
<`ident`> takes on task IDs in
increasing order.