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

4.3.1 Restricted identifiers

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.

Scott Pakin,