ストリング定数に後続するサフィックスは、それが正しい PL/I サフィックスであるか どうかには関係なく、マクロ・プリプロセッサーによって置換されません。 ただし、ストリングの末尾の引用符と、サフィックスの先頭の文字の 間に、区切り文字を挿入した場合を 除きます。
この変更は、OS PL/I V2R1 コンパイラーによって導入された ものであり、Enterprise PL/I コンパイラーと、PL/I for MVS & VM コンパイラー または OS PL/I V2Rx コンパイラーとの相違点ではないことに注意してください。 そのため、この制約事項にはフラグは立てられません。
例として、次の場合を考えます。
%DCL (GX, XX) CHAR;
%GX='||FX';
%XX='||ZZ';
DATA = 'STRING'GX;
DATA = 'STRING'XX;
DATA = 'STRING' GX;
DATA = 'STRING' XX;
OS PL/I V1 環境では、次のソースが生成されます。
DATA = 'STRING'||FX;
DATA = 'STRING'||ZZ;
DATA = 'STRING' ||FX;
DATA = 'STRING' ||ZZ;一方、Enterprise PL/I では次のソースが生成されます。
DATA = 'STRING'GX;
DATA = 'STRING'XX;
DATA = 'STRING' ||FX;
DATA = 'STRING' ||ZZ;