%[label:]...ACTIVATE ident[RESCAN|NORESCAN][,ident[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 neither RESCAN nor NORESCAN is specified, RESCAN is assumed. RESCAN implies that, after a text replacement has been made, this text will be rescanned to see if any further substitutions apply. NORESCAN implies the opposite.
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.