HLASM Language Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Sequence symbols

HLASM Language Reference
SC26-4940-06

You can use a sequence symbol in the name field of a statement to branch to that statement during conditional assembly processing, thus altering the sequence in which the assembler processes your conditional assembly and macro instructions. You can select the model statements from which the assembler generates assembler language statements for processing at assembly time.

A sequence symbol consists of a period (.) followed by an alphabetic character, followed by 0 to 61 alphanumeric characters.

Examples:
.BRANCHING_LABEL#1
.A
Sequence symbols can be specified in the name field of assembler language statements and model statements; however, sequence symbols must not be used as name entries in the following assembler instructions:
ALIAS               EQU                 OPSYN               SETC
AREAD               ICTL                SETA                SETAF
CATTR               LOCTR               SETB                SETCF
DXD

Also, sequence symbols cannot be used as name entries in macro prototype instructions, or in any instruction that already contains an ordinary or a variable symbol in the name field.

Sequence symbols can be specified in the operand field of an AIF or AGO instruction to branch to a statement with the same sequence symbol as a label.

Scope:
A sequence symbol has a local scope. Thus, if a sequence symbol is used in an AIF or an AGO instruction, the sequence symbol must be defined as a label in the same part of the program in which the AIF or AGO instruction appears; that is, in the same macro definition or in open code.
Symbolic Parameters:
If a sequence symbol appears in the name field of a macro instruction, and the corresponding prototype statement contains a symbolic parameter in the name field, the sequence symbol does not replace the symbolic parameter wherever it is used in the macro definition. The value of the symbolic parameter is a null character string.
Example:
          MACRO
 &NAME    MOVE            &TO,&FROM           Statement 1
 &NAME    ST              2,SAVEAREA          Statement 2
          L               2,&FROM
          ST              2,&TO
          L               2,SAVEAREA
          MEND
 ------------------------------------------------------------------
 .SYM     MOVE            FIELDA,FIELDB       Statement 3
 ------------------------------------------------------------------
+         ST              2,SAVEAREA          Statement 4
+         L               2,FIELDB
+         ST              2,FIELDA
+         L               2,SAVEAREA

The symbolic parameter &NAME is used in the name field of the prototype statement (Statement 1) and the first model statement (Statement 2). In the macro instruction (Statement 3), a sequence symbol (.SYM) corresponds to the symbolic parameter &NAME. &NAME is not replaced by .SYM and, therefore, the generated statement (Statement 4) does not contain an entry in the name field.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014