Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


コンパイラー指示ステートメント

プログラムのコンパイルを指示するのに役立つステートメントがいくつかあります。

以下のコンパイラー指示ステートメントがあります。

BASIS ステートメント
この拡張ソース・プログラム・ライブラリー・ステートメントは、コンパイルのソースとして、完全な COBOL プログラムを提供します。形式化および処理の規則については、COPY ステートメントの text-name の説明を参照してください。
*CONTROL (*CBL) ステートメント
このコンパイラー指示ステートメントは、出力の作成を抑制するかまたは可能にするかを選択します。名前の *CONTROL*CBL は同義語です。
COPY ステートメント
構文図を読む構文図をスキップする
COPY ステートメントの構文

>>-COPY-+-text-name-+-+--------------------------+-------------->
        '-literal-1-' '-+-OF-+--+-library-name-+-'   
                        '-IN-'  '-literal-2----'     

>--+----------+--+-----------------------------------------+---><
   '-SUPPRESS-'  |            .--------------------------. |   
                 |            V                          | |   
                 '-REPLACING----operand-1--BY--operand-2-+-'   

このライブラリー・ステートメントは、事前に作成されたテキストを COBOL プログラムに入れます。ユーザー定義語を text-name または library-name と同じにすることができます。text-name および library-name の固有性は、システム依存名の形式化および変換の規則が適用された後で決められます。library-name を省略した場合は、SYSLIB と見なされます。

JCL によってコンパイルするとき:

text-namelibrary-name、および literal は、次のように処理されます。

  • 名前 (1 文字から 30 文字までの長さ) は 8 文字に切り捨てられます。text-name および library-name の最初の 8 文字だけが、識別名として使用されます。これらの 8 文字は、1 つの COBOL ライブラリー内では固有でなければなりません。
  • 名前は大文字に変換されます。
  • 先頭文字でも最後の文字でもないハイフンはゼロ (0) に変換され、警告メッセージが出されます。
  • 先頭文字が数値である場合、文字 1 から 9 は A から I へ変換され、 ゼロ (0) は J へ変換され、警告メッセージが生成されます。

以下に例を示します。

COPY INVOICES1Q
COPY "Company-#Employees" IN Personellib

IN/OF 句の中の library-name は、コピー元の区分データ・セットを識別する DD 名です。次の例に示すように、DD ステートメントを使用して、library-name を定義します。

//COPYLIB DD DSNAME=ABC.COB,VOLUME=SER=111111,
//           DISP=SHR,UNIT=3380

複数のコピー・ライブラリーを指定するには、JCL または JCL と IN/OF 句の組み合わせのいずれかを使用してください。JCL だけを使用する場合は、SYSLIB に対する DD ステートメント上でデータ・セットを連結します。あるいは、複数の DD ステートメントを定義し、COPY ステートメントに IN/OF 句を組み込みます。

コピー・ライブラリーの最大ブロック・サイズは、データ・セットが常駐している装置によって決まります。

z/OS UNIX シェルでコンパイルするとき:

cob2 コマンドを使用してコンパイルすると、コピーブックは HFS から取り込まれます。text-namelibrary-name、および literal は、次のように処理されます。

  • ユーザー定義語は大文字に変換されます。リテラルは変換されません。UNIX は大/小文字の区別をするので、ファイル名が小文字であるか大/小文字混合である場合は、それをリテラルとして指定します。
  • text-name がリテラルのとき、library-name が省略されていると、text-name は直接的に使用されます。すなわち、ファイル名、相対パス名、または絶対パス名 (先頭文字が / の場合) として使用されます。以下に、その例を示します。
    COPY "MyInc"
    COPY "x/MyInc"
    COPY "/u/user1/MyInc"
  • text-name がユーザー定義語で、その名前の環境変数が定義されていると、その環境変数の値が、コピーブックを含むファイルの名前として使用されます。

    その名前の環境変数が定義されていない場合には、コピーブックは、以下の名前として、この順に探索されます。

    1. text-name.cpy
    2. text-name.CPY
    3. text-name.cbl
    4. text-name.CBL
    5. text-name.cob
    6. text-name.COB
    7. text-name
  • library-name がリテラルである場合は、それはコピー・ファイル text-name までの実際のパス (相対または絶対) として扱われます。
  • library-name がユーザー定義語であると、それは環境変数として扱われます。その環境変数の値がパスとして使用されます。環境変数が設定されていないと、エラーとなります。
  • library-nametext-name の両方が指定された場合、コンパイラーは、library-nametext-name の間にパス区切り文字 (/) を入れて 2 つの値を連結することによって、コピーブックのパス名を形成します。例えば、COPY MYCOPY OF MYLIB が次のように設定されているとします。
    export MYCOPY=mystuff/today.cpy
    export MYLIB=/u/user1

    この設定の結果、次のようになります。

    /u/user1/mystuff/today.cpy

library-name が環境変数で、この環境変数の値がコピーブックのコピー元のパスを識別する場合は、次の例に示すように、export コマンドを使用して library-name を定義します。

export COPYLIB=/u/mystuff/copybooks

環境変数の名前は大文字でなければなりません。複数のコピー・ライブラリーを指定するには、コロン (:) で区切った複数のパス名を、環境変数に設定してください。

library-name が省略されたときに、text-name が絶対パス名でないと、コピーブックは、次の順序で探索されます。

  1. 現行ディレクトリー
  2. -I cob2 オプションで指定されたパス
  3. SYSLIB 環境変数で指定されたパス
DELETE ステートメント
この拡張ソース・ライブラリー・ステートメントは、BASIS ソース・プログラムから COBOL ステートメントを除去します。
EJECT ステートメント
このコンパイラー指示ステートメントは、次のソース・ステートメントが次のページの最上部に印刷されるように指定します。
ENTER ステートメント
コンパイラーはこのステートメントをコメントとして処理します。
INSERT ステートメント
このライブラリー・ステートメントは、COBOL ステートメントを BASIS ソース・プログラムに追加します。
PROCESS (CBL) ステートメント
このステートメントは、最外部の IDENTIFICATION DIVISION ヘッダーの前に置かれるもので、プログラムのコンパイル時にどのコンパイラー・オプションが使用されるのかを示します。
REPLACE ステートメント
このステートメントは、ソース・プログラム・テキストを置き換えるために使用されます。
SERVICE LABEL ステートメント
このステートメントは、制御の流れを示すために CICS 変換プログラムによって生成され、CEE3SRP の呼び出しのために再開点で使用する必要があります。 一般的に使用されるものではありません。
SKIP1/2/3 ステートメント
このステートメントは、ある行がソース・リストでスキップされることを示します。
TITLE ステートメント
このステートメントは、ソース・リストの各ページの最上部に表題 (ヘッダー) が印刷されるように指定します。
USE ステートメント
USE ステートメントは、以下のエレメントを指定するための宣言 を提供します。
  • エラー処理プロシージャー: EXCEPTION/ERROR
  • ユーザー・ラベル処理プロシージャー: LABEL
  • デバッグ行およびセクション: DEBUGGING

関連参照
cob2 の構文およびオプション  
COPY ステートメント (Enterprise COBOL 言語解説書)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)