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.