This section describes the options that the macro preprocessor supports.
This option specifies if the preprocessor should convert the input text to uppercase.
.-UPPER-. >>-CASE--(--+-ASIS--+--)---------------------------------------><
This option specifies if the preprocessor should normalize DBCS during text replacement.
.-INEXACT-. >>-DBCS--(--+-EXACT---+--)-------------------------------------><
This option specifies the default base for FIXED variables.
.-DECIMAL-. >>-FIXED--(--+-BINARY--+--)------------------------------------><
The INCONLY option specifies that the preprocessor should process only %INCLUDE and %XINCLUDE statements.
The NOINCONLY option specifies that the preprocessor should process all preprocessor statements and not only %INCLUDE and %XINCLUDE statements
.-NOINCONLY-. >>-+-INCONLY---+-----------------------------------------------><
When the INCONLY option is in effect,you may use neither INCLUDE or XINCLUDE as a macro
The INCONLY option and the NOINCONLY option are mutually exclusive.
For compatibility, the default is NOINCONLY.
The NAMEPREFIX option specifies that the names of preprocessor procedures and variables must start with the specified character.
The NONAMEPREFIX option specifies that the names of preprocessor procedures and variables are not required to start with one particular character.
.-NONAMEPREFIX------------. >>-+-NAMEPREFIX--(character)-+---------------------------------><
The character should be specified "as is" and should not be enclosed in quotes.
The default is NONAMEPREFIX.
This option specifies how the preprocessor should handle the case of identifiers when rescanning text.
.-ASIS--. >>-RESCAN--(--+-UPPER-+--)-------------------------------------><
To see the effect of this option, consider the following code fragment
%dcl eins char ext; %dcl text char ext; %eins = 'zwei'; %text = 'EINS'; display( text ); %text = 'eins'; display( text );
When compiled with PP(MACRO('RESCAN(ASIS)')), in the second display statement, the value of text is replaced by eins, but no further replacement occurs since under RESCAN(ASIS), eins does not match the macro variable eins since the former is left asis while the latter is uppercased. Hence the following text would be generated
DISPLAY( zwei ); DISPLAY( eins );
But when compiled with PP(MACRO('RESCAN(UPPER)')), in the second display statement, the value of text is replaced by eins, but further replacement does occur since under RESCAN(UPPER), eins does match the macro variable eins since both are uppercased. Hence the following text would be generated
DISPLAY( zwei ); DISPLAY( zwei );
In short: RESCAN(UPPER) ignores case while RESCAN(ASIS) does not.