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

Macro preprocessor options

This section describes the options that the macro preprocessor supports.

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.

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.

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).

INCONLY

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

Read syntax diagramSkip visual syntax diagram   .-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.

NAMEPREFIX

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.

Read syntax diagramSkip visual syntax diagram   .-NONAMEPREFIX------------.
>>-+-NAMEPREFIX--(character)-+---------------------------------><
 

The character should be specified "as is" and should not be enclosed in quotes.

The default is NONAMEPREFIX.

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.


Terms of use | Feedback

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