PREPROCESS、P

コンパイラが、ソース ファイルからではなく、プリプロセッサから原始プログラムを受け取るように指定します。

構文:

>>-.---.-.----.-PREPROCESS-.-"name".----------------..------..><
   +-/-+ |    +-P----------+       +-preproc-params-++-ENDP-+|
         +-NO-.-PREPROCESS-.---------------------------------+
              +-P----------+

パラメーター:

name
使用するプリプロセッサ。
preproc-params
プリプロセッサに直接渡すパラメーター。

プロパティ:

デフォルト: NOPREPROCESS
段階: 構文チェック
$SET: 最初のソース行でのみ
  不可 (NOPREPROCESS を指定した状態で)

説明:

この指令は、統合されたプリプロセッサを使用することをコンパイラに伝えます。

$SET 文はコンパイラおよびプリプロセッサの両方により前処理されます。また、$SET 文で PREPROCESS 指令が設定されている場合、この指令は $SET 文全体が処理されてから有効になります。$SET 文に他の指令が含まれていた場合、プリプロセッサで、そのソースが 2 度解析されると、矛盾が発生する場合があります。特に、SOURCEFORMAT 指令は、プリプロセッサで自由形式と解釈されたソースを、コンパイラでは固定形式と解釈される、またはその逆の現象が発生する原因となります。そのため、PREPROCESS コンパイラ指令を $SET 文で指定する場合は、$SET 文には PREPROCESS 指令のみが含まれるようにしてください。他の指令を設定する場合は、PREPROCESS 指令を指定した $SET 文以降の行に、別の $SET 文を使って指定してください。

プリプロセッサに渡す指令は、ENDP COBOL 指令を使用して終了させてください。ENDP の後に指定された指令は、COBOL コンパイラに渡されます。ENDP 指令を指定しないと、コンパイラ指令が、COBOL コンパイラにではなく、プリプロセッサに渡され続けます。

指令を COBSQL プリプロセッサに送る場合は END-C を使用して、COBSQL に渡す指令と、プリコンパイラに渡す指令を区別します。たとえば、次のコマンド ラインでは、END-C の前に指定した指令は COBSQL に渡され、END-C と ENDP の間に指定した指令は COBSQL 経由でプリコンパイラに渡されます。

preprocess(cobsql) cobsqltype=oracle end-c comp5=yes endp;