%[label:]...ACTIVATE ident[SCAN|RESCAN|NORESCAN][,ident[SCAN|RESCAN|NORESCAN]]...;
Abbreviation(s): %ACT for %ACTIVATE.
Each identifier must be a preprocessor variable, a preprocessor procedure name, or a preprocessor built-in function name.
Example 1.
%DECLARE A FIXED, B CHARACTER; %DEACTIVATE B; %A = 24; %B = 'VAR_NAME'; NUM = B + A; %ACTIVATE B; %DEACTIVATE A; NUM = B + A;
The text generated by this example would be as follows:
NUM = B + 24; NUM = VAR_NAME + A;
Example 2.
%DECLARE (C,D) CHARACTER; %C = D**2; %D = 'NUM'; NUM = C; %ACTIVATE C NORESCAN; NUM = C;
The text generated by this example would be as follows:
NUM = NUM**2; NUM = D**2;
Description
When a preprocessor variable is declared, it is automatically activated. It can be deactivated by use of the %DEACTIVATE statement and reactivated by use of the %ACTIVATE statement.
If RESCAN, SCAN or NORESCAN are not specified, RESCAN is assumed. RESCAN implies that after a text replacement has been made, text is rescanned to see if any further substitutions apply. SCAN and NORESCAN imply the opposite. SCAN is synonymous with NORESCAN.
The appearance of an identifier in a %ACTIVATE statement makes it active and eligible for replacement; that is, any subsequent encounter of that identifier in a nonprocessor statement, while the identifier is active, will initiate replacement activity, except when the identifier appears within a comment or within single quotes.