Mnemonic Primaries

<file mnemonic primary>

──┬─ <file mnemonic> ──────────────────────────────────────────┬───────┤
  ├─ <file identifier> ── ( ── <mnemonic file attribute> ── ) ─┤
  └─ # ── <string primary> ────────────────────────────────────┘

<task mnemonic primary>

──┬─ <task mnemonic> ──────────────────────────────────────────┬───────┤
  ├─ <task identifier> ── ( ── <mnemonic task attribute> ── ) ─┤
  └─ # ── <string primary> ────────────────────────────────────┘

The following table defines the mnemonic syntax elements.

Mnemonic

Description

<file mnemonic>

Any mnemonic value that can be assigned to a file attribute of type mnemonic. The mnemonic values available for each mnemonic file attribute are listed in the File Attributes Programming Reference Manual.

<task mnemonic>

Any mnemonic value that can be assigned to a task attribute of type mnemonic. The mnemonic values available for each mnemonic task attribute are listed in the Task Attributes Programming Reference Manual.

Explanation

File mnemonic primaries and task mnemonic primaries enable mnemonic-valued attributes to be used in comparisons and assignments.

In mnemonic attribute comparisons and assignments, the specific attributes and mnemonics must be compatible. For example, the MYUSE attribute of one file (or one of the MYUSE mnemonics CLOSED, IN, OUT, or IO) can be compared with or assigned to the MYUSE attribute of another file. However, the values of the MYUSE and KIND attributes cannot be compared or assigned to each other, because they are different attributes. If the # string primary form is used, it must also represent a compatible mnemonic.

Example

In the following example, F is a file identifier, T is a task identifier, and S is a string identifier:

S:="ALGOL";
IF F(FILEKIND) IS #(S&"SYMBOL") THEN...
S:="NEVERUSED";
T(STATUS=#S);
STRING DISK;
DISK:="PRINTER";
F(KIND=#DISK);                           % Yields KIND = PRINTER