Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Programming Guide

Macro preprocessor options

The macro preprocessor supports the following options:

FIXED
This option specifies the default base for FIXED variables.
Read syntax diagramSkip visual syntax diagram             .-DECIMAL-.
>>-FIXED--(--+-BINARY--+--)------------------------------------><
 
DECIMAL
FIXED variables will have the attributes REAL FIXED DEC(5).
BINARY
FIXED variables will have the attributes REAL SIGNED FIXED BIN(31).
CASE
This option specifies if the preprocessor should convert the input text to uppercase.
Read syntax diagramSkip visual syntax diagram            .-UPPER-.
>>-CASE--(--+-ASIS--+--)---------------------------------------><
 
ASIS
the input text is left "as is".
UPPER
the input text is to be converted to upper case.
INCONLY
This option specifies that the preprocessor should process only %INCLUDE and %XINCLUDE statements. When this option is in effect, you may use neither INCLUDE or XINCLUDE as a macro
NOINCONLY
This option specifies that the preprocessor should process all preprocessor statements and not only %INCLUDE and %XINCLUDE statements. This option and the INCONLY option are mutually exclusive, and for compatibility, NOINCONLY is the default.
RESCAN
This option specifies how the preprocessor should handle the case of identifiers when rescanning text.
Read syntax diagramSkip visual syntax diagram              .-ASIS--.
>>-RESCAN--(--+-UPPER-+--)-------------------------------------><
 
UPPER
rescans will not be case-sensitive.
ASIS
rescans will be case-sensitive.

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.

DBCS
This option specifies if the preprocessor should normalize DBCS during text replacement.
Read syntax diagramSkip visual syntax diagram            .-INEXACT-.
>>-DBCS--(--+-EXACT---+--)-------------------------------------><
 
EXACT
the input text is left "as is", and the preprocessor will treat <kk.B> and <kk>B as different names.
INEXACT
the input text is "normalized", and the preprocessor will treat <kk.B> and <kk>B as two versions of the same name.


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)