Compiler Directives

The compiler directive statements /TITLE, /EJECT, /SPACE, /COPY, and /INCLUDE allow you to specify heading information for the compiler listing, to control the spacing of the compiler listing, and to insert records from other file members during a compile. The conditional compilation directive statements /DEFINE, /UNDEFINE, /IF, /ELSEIF, /ELSE, /ENDIF, and /EOF allow you to select or omit source records.

The compiler directive statements must precede any compile-time array or table records, translation records, and alternate collating sequence records.

Note: The compiler directive statements /FREE and /END-FREE are no longer used. If you specify them, they will be ignored. See /FREE... /END-FREE.

Directives can begin in column 7 or later in column-limited source, or in column 1 or later for fully free-form source.

All directives can be specified within a single fixed-form statement, and between any statements.

No directive can be specified within a single free-form calculation statement.

The /IF, /ELSEIF, /ELSE, and /ENDIF directives can be specified within a single free-form control, file, definition, or procedure statement. No other directives can be specified within these statements.

Within a free-form statement, when a line begins with what appears to be a directive that is not allowed within that statement, it is interpreted as a slash followed by a name. For example, in the following statement, "/TITLE" is interpreted as division by a variable called "TITLE".

    x = y
      /title + 5;

The special directive **FREE can only appear in column 1 of the first line of the source. When **FREE is specified, the entire source member must be free-form. See Fully free-form statements.