The %REPLACE statement specifies that an identifier is to be replaced by a specified constant or other name during compilation. The general form of this statement is:
%REPLACE name BY constant-or-name;
Beginning at the point at which the %REPLACE statement is encountered, each occurrence of name that follows the %REPLACE statement is replaced by the specified constant or other name until the end of compilation.
The %REPLACE statement is often used to supply the sizes of tables or to give names to special constants whose meaning would not otherwise be obvious. For example:
%REPLACE TRUE BY '1'B; %REPLACE TABLE_SIZE BY 400; %REPLACE MOTOR_POOL BY 5; %REPLACE X BY -3.0E0; DECLARE X(TABLE_SIZE) FIXED STATIC; DO K = 1 TO TABLE_SIZE; IF DEPARTMENT_NUMBER = MOTOR_POOL THEN DO; . . .
Both the %REPLACE and %INCLUDE statements operate on the program text without regard to the meaning of the text.
The %REPLACE statement substitutes all subsequent occurrences of the name without regard to the block structure of the module, as explained in the section Blocks.