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

Macro preprocessor

Suffixes that follow string constants are not replaced by the macro preprocessor—whether or not these are legal PL/I suffixes—unless you insert a delimiter between the ending quotation mark of the string and the first letter of the suffix.

Note that the OS PL/I V2R1 compiler introduced this change, and so this is not a difference between the Enterprise PL/I compiler and either the PL/I for MVS & VM compiler or the OS PL/I V2Rx compilers. This restriction is consequently not flagged.

As an example, consider:

    %DCL (GX, XX) CHAR;
    %GX='||FX';
    %XX='||ZZ';
    DATA = 'STRING'GX;
    DATA = 'STRING'XX;
    DATA = 'STRING' GX;
    DATA = 'STRING' XX;

Under OS PL/I V1, this produces the source:

    DATA = 'STRING'||FX;
    DATA = 'STRING'||ZZ;
    DATA = 'STRING' ||FX;
    DATA = 'STRING' ||ZZ;

whereas, under Enterprise PL/I it produces:

    DATA = 'STRING'GX;
    DATA = 'STRING'XX;
    DATA = 'STRING' ||FX;
    DATA = 'STRING' ||ZZ;

Terms of use | Feedback

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