Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

マクロ・プリプロセッサーのオプション

マクロ・プリプロセッサーは、次のオプションをサポートします。

FIXED
このオプションは、FIXED 変数のデフォルト基数を指定します。
構文図を読む構文図をスキップする             .-DECIMAL-.
>>-FIXED--(--+-BINARY--+--)------------------------------------><
 
DECIMAL
FIXED 変数の属性は REAL FIXED DEC(5) になります。
BINARY
FIXED 変数の属性は REAL SIGNED FIXED BIN(31) になります。
CASE
このオプションは、プリプロセッサーが入力テキストを大文字に変換するかどうかを指定します。
構文図を読む構文図をスキップする            .-UPPER-.
>>-CASE--(--+-ASIS--+--)---------------------------------------><
 
ASIS
入力テキストは「現状のまま」です。
UPPER
入力テキストを大文字に変換します。
INCONLY
このオプションは、プリプロセッサーで %INCLUDE および %XINCLUDE ステートメントのみを処理する必要があることを指定します。 このオプションが有効になると、マクロとして INCLUDE も XINCLUDE も使用できなくなります。
NOINCONLY
このオプションは、プリプロセッサーですべてのプリプロセッサー・ステートメントを処理する必要があり、%INCLUDE および %XINCLUDE ステートメントのみではないことを指定します。 このオプションおよび INCONLY オプションは同時に指定できません。また、互換性のため、NOINCONLY がデフォルトです。
RESCAN
このオプションは、テキストの再スキャンのとき、プリプロセッサーが ID の大文字小文字をどのように処理するかを指定します。
構文図を読む構文図をスキップする              .-ASIS--.
>>-RESCAN--(--+-UPPER-+--)-------------------------------------><
 
UPPER
再スキャンは大文字小文字を区別しません。
ASIS
再スキャンは大文字小文字を区別します。

このオプションの影響を見るため、次のコード・フラグメントについて考えてみましょう。

   %dcl eins char ext;
   %dcl text char ext;

   %eins = 'zwei';

   %text = 'EINS';
   display( text );

   %text = 'eins';
   display( text );

PP(MACRO('RESCAN(ASIS)')) で 2 番目の表示ステートメントをコンパイルすると、値 texteins に置き換えられますが、RESCAN(ASIS) が指定されていると、eins とマクロ変数 eins では前者が asis (現状のまま) で後者が uppercase (大文字) であるために一致せず、これ以上の置き換えは行われません。したがって、次のテキストが生成されます。

   DISPLAY( zwei );

   DISPLAY( eins );

しかし、PP(MACRO('RESCAN(UPPER)')) で 2 番目の表示ステートメントをコンパイル すると、text の値は eins に置き換えられますが、RESCAN(UPPER) が 指定されていると、eins と、マクロ変数 eins の両方が uppercase (大文字) なので 合致し、さらに置き換えが行われます。したがって、次のテキストが生成されます。

   DISPLAY( zwei );

   DISPLAY( zwei );

つまり、RESCAN(UPPER) は、大文字小文字の区別を無視し、RESCAN(ASIS) は、大文字小文字を区別します。

DBCS
このオプションは、テキスト置換時にプリプロセッサーが DBCS を正規化するかどうかを指定します。
構文図を読む構文図をスキップする            .-INEXACT-.
>>-DBCS--(--+-EXACT---+--)-------------------------------------><
 
EXACT
入力テキストは「現状のまま」です。プリプロセッサーは <kk.B> と <kk>B を別の名前として扱います。
INEXACT
入力テキストは「正規化」されます。プリプロセッサーは <kk.B> と <kk>B を同じ名前の 2 つのバージョンとして扱います。


Terms of use | Feedback

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