特殊名段落

特殊名段落では、通貨文字列および通貨記号の指定、小数点の選択、

ANS85 記号文字 (symbolic-character) の指定、

利用者が指定する呼び名 (mnemonic-name) への作成者語の関連付け、文字集合または文字照合順序への符号系名 (alphabet-name) の関連付け、および文字の組への字類名 (class-name) の関連付けを行う。

MF パラメーターの引き渡しに関する事前定義の方式のうちのいずれかを選択できる。CALL 文および PROCEDURE DIVISION の見出しの拡張機能によって、これらのパラメーター引き渡し方式をプログラム間連絡に使用できるようになった。

一般形式

指令

  1. 予約語リストのフラグ設定および修正を行うコンパイラ指令に加えて、以下の指令が、本セクションに記載の構文または意味内容に影響を与える可能性がある。
    • ALPHASTART - ALPHABET 句で使用する有効な数値定数が 0 または 1 のどちらで始まるかを指定する。
    • CHARSET - どのアルファベットを固有文字集合と見なすかに影響する。この指令は一部の環境では無視される。
    • NATIVE - どのアルファベットを固有文字集合と見なすかに影響する。
    • SYMBSTART - SYMBOLIC CHARACTERS 句で使用する有効な数値定数が 0 または 1 のどちらで始まるかを指定する。

構文規則

  1. OSVSVSC2MF 特殊名段落内の句は、任意の順序で記述できる。
  2. ISO2002 クラスを定義するソース単位の外側のレベルでは、CURSOR および CRT STATUS 句を指定できない。
  3. ISO2002 クラス定義のファクトリまたはオブジェクトでは、CURSOR および CRT STATUS 句のみを指定できる。
  4. ISO2002 特殊名段落がインターフェイス定義に指定されている場合は、ALPHABET、CURRENCY、および DECIMAL-POINT 句のみを使用できる。
  5. mnemonic-name には、任意の COBOL 利用者定義語を使用できる。1 文字以上の英字を使用する。
  6. 関数名 (function-name) は、COBOL コンパイラが使用するシステム装置または機能を指す。

    OSVSVSC2MF  function-name が UPSI-0 から UPSI-7 のいずれかである場合、function-name は外部スイッチを指す。

  7. function-name が外部スイッチを指す場合、

    MFXOPEN または SWITCH-n が使用されている場合、

    関連付ける mnemonic-name はどこにも指定できない。

    MFXOPEN SET 文では指定できる。

    その mnemonic-name には、1 つ以上の条件名 (condition-name) を関連付ける。

    ANS85 condition-name は不要である。

  8. function-name が外部スイッチを指さない場合、関連付ける mnemonic-name は、ACCEPT、DISPLAY、SEND、または WRITE 文でのみ指定できる。そのような作成者語には、条件名は関連付けられない。
  9. alphabet-name-1 句の定数指定内で指定する定数は、以下のようにする。
    1. 定数が数値である場合は、符号の付かない整数とし、値の範囲は 1 以上で、固有文字集合の最大文字数以下とする。

      ALPHABET 句の数値定数の有効な最小値は、ALPHASTART コンパイラ指令の影響を受ける。

    2. 定数が文字であり、THROUGH または ALSO 指定に関連付けた場合、長さはすべて 1 文字とする。
    3. VSC2MF 浮動小数点定数または 2 バイト文字は指定できない。
  10. alphabet-name-1 句の定数を指定する場合、1 つの符号系名句で同じ文字を複数指定することはできない。
  11. THRU と THROUGH は同等である。
  12. MF STANDARD-1 と ASCII は同等である。
  13. ANS85 特殊名段落では、予約語 IS は不要である。
  14. ANS85 literal-4 で指定する定数は、以下のようにする。
    1. 定数が数値である場合は、符号の付かない整数とし、値の範囲は 1 以上で、固有文字集合の最大文字数以下とする。
    2. 定数が文字であり、THROUGH 指定に関連付けた場合、長さはすべて 1 文字とする。
    3. VSC2MF 浮動小数点定数または 2 バイト文字定数は指定できない。
  15. ANS85 literal-1 から literal-5 には、記号文字の表意定数は指定できない。
  16. ANS85 1 つの SYMBOLIC CHARACTERS 句には、同じ symbolic-character-1 を 1 回だけ使用できる。
  17. ANS85 各 symbolic-character-1 およびそれに対応する integer-1 の関係は、SYMBOLIC CHARACTERS 句の位置によって決まる。最初の symbolic-character-1 が最初の integer-1 とペアになり、2 番目の symbolic-character-1 が 2 番目の integer-1 とペアになるというように、SYMBOLIC CHARACTERS 句全体を通じて対応付けが行われる。IS または ARE 指定に分かれるのは、読みやすくするためだけである。

    integer-1 の有効な最小値は、SYMBSTART コンパイラ指令の影響を受ける。

  18. ANS85 symbolic-character-1 に指定する一連の文字および integer-1 に指定する一連の数値は、1 対 1 で対応させる。これは、各 IS または ARE 指定内、および SYMBOLIC CHARACTERS 句全体についても該当する。
  19. ANS85 integer-1 で指定する文字位置は、固有文字集合に含まれるものとする。IN を指定する場合は、integer-1 で指定する文字位置が、alphabet-name-2 で指定する文字集合に含まれるものとする。alphabet-name-2 は、ALPHABET 句で記述する。
  20. literal-6 は英数字定数とする。

    MFCOB370 または各国文字定数でもよい。

  21. literal-6 には表意定数を使用できない。
  22. PICTURE SYMBOL を指定しない場合、literal-6 は、以下を除く 1 文字で構成する。
    • 数字の 0 から 9。
    • 英字 A、B、C、D、L、P、R、S、V、X、Z (およびそれらの小文字)、または空白。
      • MF C および R は使用できる。
      • ANS85 L は使用できる。
      • OSVSVSC2MF E は使用できない。
      • MFCOB370 N は使用できない。
      • VSC2MF G は使用できない。
      • ANS85 小文字の英字は使用できない。
      • MF この規則で明示的に禁止されているものを除き、小文字の英字を使用できる。
    • 記号「+」、「-」、「,」、「.」、「*」、「/」、「;」、「(」、「)」、「"」、「=」。
  23. ISO2002MFOS390 PICTURE SYMBOL を指定した場合、literal-6 の長さは 32 バイト以下とする。
    1. literal-6 は、1 つ以上の文字 (空白を除く) を含む。
    2. literal-6 は、0 から 9 までの数字および記号「+」、「-」、「,」、「.」、「*」を除き、コンピューターの符号化文字集合の任意の文字で構成できる。
  24. ISO2002MFOS390 literal-7 は 1 文字からなる英数字の定数とする。表意定数は使用できない。literal-7 の 2 つの登場箇所で同じ値を使用することはできない。
  25. ISO2002MFOS390 literal-7 には、コンピューターの符号化文字集合の任意の文字を使用できる。ただし、以下を除く。
    • 数字の 0 から 9。
    • 英字 A、B、C、D、E、N、P、R、S、V、X、Z (およびそれらの小文字)、または空白。
      • MF C および R は使用できる。
      • MF G は使用できない。
    • 記号「+」、「-」、「,」、「.」、「*」、「/」、「;」、「(」、「)」、「"」、「=」。
  26. literal-6 の字類が英数字である場合、関連付ける通貨記号は、USAGE DISPLAY を指定した数値編集項目の定義にのみ使用できる。

    ISO2002MFOS390 literal-6 の字類が各国文字である場合、関連付ける通貨記号は、USAGE NATIONAL を指定した数値編集項目の定義にのみ使用できる。

  27. MF integer-2 は、0 から 65535 までの符号なし整数とする。
  28. MFXOPEN CURSOR IS 句の data-name-1 は、作業場所節で定義する。
  29. MFXOPEN CRT STATUS 句は、書き方 4

    MF または書き方 5

    の各 ACCEPT 文の後で状態値の転記先となるデータ項目を指定する。一部の環境では、これは作業場所節の最初の 64K でのみ定義できる。

  30. MFXOPEN data-name-2 は、作業場所節で定義し、長さは 3 バイトとする。
  31. MFXOPEN CURSOR IS 句は、ACCEPT 文が使用するカーソルのアドレスを含むデータ項目を指定する。

一般規則

  1. 外部スイッチは、実行時に操作者が設定する。その設定は、関連付けられた条件名を検証して決めることができる。
  2. mnemonic-name が外部スイッチと関連付けられている場合、書き方 1 の SET 文を実行して、その外部スイッチの状態を変更できる (「SET 文」トピックを参照)。
  3. alphabet-name-1 句では、指定した文字符号系および文字照合順序 (あるいはその両方) に名前を関連付けることができる。PROGRAM COLLATING SEQUENCE 句 (「実行用計算機段落」トピックを参照)、または SORT 文か MERGE 文 (「SORT 文」または「MERGE 文」トピックを参照) の COLLATING SEQUENCE 指定で alphabet-name-1 を参照する場合、alphabet-name-1 句は文字照合順序を指定する。ファイル記述項 (「ファイル記述項の全体的な骨組み」トピックを参照) の CODE-SET 句で alphabet-name-1 を参照する場合、alphabet-name-1 句は文字符号系を指定する。
    1. STANDARD-1

      MF または ASCII

      を指定すると、文字符号系または文字照合順序は、米国国家規格 X3.4-1968 で規定されている情報交換用米国標準コードとなる。

      ANS85 STANDARD-2 を指定すると、文字符号系は、国際規格 646 (情報処理交換用 7 ビット符号化文字集合) で規定されている、ISO 7 ビット コードの国際基準版となる。

      VSC2MFXOPEN EBCDIC を指定すると、文字符号系および文字照合順序は EBCDIC となる。

      NATIVE を指定すると、固有文字符号系または固有文字照合順序が使用される。固有文字照合順序は、NATIVE コンパイラ指令の指定により、ASCII または EBCDIC となる。

      ASCII 符号系、ASCII と EBCDIC の文字照合順序、および両者の対応関係については、付録「文字集合および照合順序」を参照。

    2. 定数を指定した場合、alphabet-name-1 は CODE-SET では参照できない (「CODE-SET 句」トピックを参照)。文字符号系および文字照合順序 (あるいはその両方) は、以下の規則に従って定義される。
      1. 各定数の値は、以下を指定する。
        1. 定数が数値の場合、固有文字集合内の文字の順序番号。この値は、固有文字集合の文字数を表す値以下とする。
        2. 定数が文字の場合、固有文字集合内の実際の文字。文字定数の値が複数の文字を含む場合、その文字定数内の各文字には、左端の文字から始まり、指定中の文字照合順序の連続する昇順の位置が割り当てられる。
      2. ALPHABET 句で定数を記述した順番により、指定している文字照合順序内の文字の順番が昇順で指定される。
      3. 固有文字照合順序内の文字のうち、この定数句で明示的に指定しなかったものは、明示的に指定されたいずれの文字よりも、指定中の文字照合順序内で大きい順位であると想定される。これらの指定されていない文字の集合内の相対順序は、固有文字照合順序から変更されない。
      4. 文字符号系を指定する際には、固有文字集合内の各文字のうち literal-1 で指定しなかったものについては、指定中の文字符号系内の順番を作成者が定義する。
      5. THROUGH を指定する場合、固有文字集合内の連続する文字の集合のうち、literal-1 の値が指定する文字から literal-2 の値が指定する文字までの一連の文字が、指定中の文字照合順序で昇順に連続した位置を割り当てられる。さらに、THROUGH で指定した連続する文字の集合は、固有文字集合の文字を昇順または降順のどちらでも指定できる。
      6. ALSO を指定すると、literal-1 および literal-3 の値が指定する固有文字集合の文字は、指定中の文字照合順序内、

        ANS85 またはデータを表すために使用する文字符号系内で、同じ順序を割り当てられる。

  4. プログラムの文字照合順序内で最高順位の文字が、表意定数 HIGH-VALUE に関連付けられる。

    ANS85 ただし、この表意定数を特殊名段落で定数として指定した場合は除く。

    プログラムの文字照合順序で最高順位の文字が複数ある場合は、最後に指定した文字が表意定数 HIGH-VALUE に関連付けられる。

  5. プログラムの文字照合順序で最低順位の文字が、表意定数 LOW-VALUE に関連付けられる。

    ANS85 ただし、この表意定数を特殊名段落で定数として指定した場合は除く。

    プログラムの文字照合順序で最低順位の文字が複数ある場合は、最初に指定した文字が表意定数 LOW-VALUE に関連付けられる。

  6. OSVSVSC2MF 浮動小数点数定数は、利用者定義の文字照合順序内では使用できない。
  7. ANS85 表意定数 HIGH-VALUE および LOW-VALUE を特殊名段落で定数として指定した場合、固有文字照合順序内の順序位置が最高および最低の文字にそれぞれ関連付けられる。
  8. ANS85 SYMBOLIC CHARACTERS 句は、表意定数のように使用できる利用者定義語を定義するために使用する。IN 句を指定しない場合、symbolic-character-1 は、固有文字集合の順位が integer-1 で指定される文字を表す。IN 句を指定する場合、integer-1 は、alphabet-name-2 で指定した文字集合で表される文字の順位を指定する。
  9. ANS85 symbolic-character-1 の内部表現は、固有文字集合で表される文字の内部表現となる。
  10. CURRENCY SIGN 句は、通貨文字列を指定するために使用する。この通貨文字列は、数値編集データ項目を受け取り側項目として使用する際にその数値編集データ項目に配置され、数値または数値編集の受け取り側項目を持つ送り出し側項目としてデータ項目を使用する際にそのデータ項目から編集を解除する。また、この通貨文字列の存在を指定するために、基本形式の PICTURE 句の文字列で使用している記号を判別するためにも使用される。この記号は、通貨記号と呼ばれる。

    literal-6 は、通貨文字列の値を表す。

    ISO2002MFOS390 CURRENCY SIGN 句で PICTURE SYMBOL が指定されている場合、通貨記号として literal-7 が使用される。

    CURRENCY SIGN 句で PICTURE SYMBOL が指定されていない場合、通貨記号として literal-6 が使用される。

    通貨記号が小文字の場合は、大文字と同等であると見なされる。

    この句がない場合、COBOL の文字集合で定義された通貨記号のみが PICTURE 句で使用される。詳細については、「COBOL 言語の概念」の章の「文字集合」セクションを参照。

  11. DECIMAL POINT IS COMMA 句は、PICTURE 句の文字列および数値定数でのカンマおよび小数点の機能を交換することを意味する。
  12. MF NUMERIC SIGN 句を指定した場合、符号付き数値項目のデフォルト設定では、データ記述項の対応する SIGN 句の記述どおりに符号が格納される。NUMERIC SIGN 句は、特定のデータ記述項の SIGN 句で上書きできる。
  13. OSVSVSC2MF mnemonic-name を使用できる場合は、function-name を使用できる。
  14. function-name が外部スイッチを参照しない場合は、以下の項目のいずれかを選ぶことができる。
    TAB 縦のタブ位置に移る (必要に応じて出力レコード中に ASCII X"0B" を挿入) WRITE ADVANCING 文
    PRINTER プリンター DISPLAY 文
    FORMFEED 改ページする (必要に応じて出力レコード中に ASCII X"0C" を挿入) WRITE ADVANCING 文
    COMMAND-LINE コマンド転送 ACCEPT および DISPLAY 文
    ARGUMENT-NUMBER コマンド ラインの引数番号 ACCEPT および DISPLAY 文
    ARGUMENT-VALUE コマンド ラインの引数値 ACCEPT 文
    ENVIRONMENT-NAME 環境変数名 DISPLAY 文
    ENVIRONMENT-VALUE 環境変数値 ACCEPT および DISPLAY 文
    SYSERR 標準エラー装置 DISPLAY 文

    OSVSVSC2 この COBOL システムで OS/VS COBOL、VS COBOLII、および SAA が提供する機能名のサポート状況を以下の表に示す。

    表 1. 機能名のサポート
      OSVS VSC2 Rel (2) COBOL/370 または VSC2 Rel (3)/(4) SAA L1
    SYSIN y y y y
    SYSIPT U U y  
    SYSOUT y y y y
    SYSLIST     y  
    SYSLST U U y  
    SYSPCH U U y  
    SYSPUNCH U y y  
    CONSOLE y y y y
    C01 y y y y
    C02 y y y  
    C03 y y y  
    C04 y y y  
    C05 y y y  
    C06 y y y  
    C07 y y y  
    C08 y y y  
    C09 y y y  
    C10 y y y  
    C11 y y y  
    C12 y y y  
    S01 y y y  
    S02 y y y  
    S03   U y  
    S04   U y  
    S05   U y  
    CSP y y y y
    1 char rw literal y      
    AFP-5A     y  
    キー:
    y
    文書に明記されており、メインフレームのコンパイラおよび COBOL システムで使用できる。
    U
    文書に明記されていないが、メインフレームのコンパイラで使用できる。
  15. ANS85 CLASS 句は、句内に指定した文字の組に名前を関連付ける。class-name-1 は字類条件の中でのみ参照できる。この句内の定数の値が指定する文字は、class-name-1 を構成する排他的な文字の組を定義する。各定数の値は、以下を指定する。
    1. 定数が数値の場合、固有文字集合内の文字の順序番号。この値は、固有文字集合の文字数を表す値以下とする。
    2. 定数が文字の場合、固有文字集合内の実際の文字。文字定数の値が複数の文字を含む場合、その定数の各文字は class-name-1 が表す文字の組に含まれる。

    THROUGH を指定する場合、固有文字集合内の連続する文字のうち、literal-4 の値が指定する文字から literal-5 の値が指定する文字までの一連の文字が、class-name-1 が表す文字の組に含まれる。さらに、THROUGH で指定した連続する文字は、固有文字集合の文字を昇順または降順で指定できる。

  16. ソース要素の特殊名段落の中に指定したすべての句は、そのソース要素に含まれるソース要素にも適用される。ソース要素が入れ子構造である場合、親ソース要素の特殊名段落で指定した条件名、呼び名、字類名、通貨記号、符号系名、および記号文字は、任意の子ソース要素から参照できる。
  17. MF CALL-CONVERSION 句を使用すると、パラメーターの受け渡しに関する事前定義済みの方式のうちのいずれかを選択できる。これにより、COBOL 以外の言語で記述され、パラメーター受け渡し方式が異なるサブプログラムを呼び出せる。
  18. MF CONSOLE IS CRT 句を指定する場合、ACCEPT 文または DISPLAY 文のうち、作用対象が画面名でなく特定の書き方に固有の句を含まないものが、書き方 5 として扱われるようになる。CONSOLE IS CRT 句を指定しない場合、それらの文は標準の ANSI ACCEPT 文または DISPLAY 文として扱われる。
  19. MFXOPEN CURSOR IS 句は、ACCEPT 文が使用するカーソルのアドレスを含むデータ項目を指定する。
    1. ACCEPT 文の開始時に、data-name-1 の値が画面上の有効な文字位置である場合、その文字位置がカーソルの初期位置として使用される。それ以外の場合、data-name-1 は無視されて、画面上の最初の入力フィールドの先頭がカーソルの初期位置となる。ACCEPT 文の終了時に data-name-1 内の文字位置を ACCEPT 文で使用すると、data-name-1 の値が更新される。その結果、ACCEPT 文の終了時のカーソルの位置が data-name-1 に含まれる。
    2. CURSOR IS 句は、画面上のフィールドの位置指定には影響を与えない。
    3. data-name-1 の長さは 4 文字または 6 文字とする。data-name-1 の長さが 4 文字である場合、上 2 文字が行番号として解釈され、下 2 文字が列番号として解釈される。data-name-1 の長さが 6 文字である場合、上 3 文字が行番号として解釈され、下 3 文字が列番号として解釈される。
    4. data-name-1 に含まれる値が有効な位置でない場合 (ゼロ、文字、画面の最下部よりも下の値など)、この句は効力を発揮しない。
    5. data-name-1 に含まれる値が有効な位置ではあるが、現在の ACCEPT 文で受け取る入力フィールドに対応しない場合、カーソルは次の入力項目に位置指定される。その際、次の入力項目が存在しないと、最初の入力項目に位置指定される。入力項目の順番は、データ部にデータ記述を書いた順番である。
  20. MFXOPEN CRT STATUS 句は、書き方 4 または書き方 5 の各 ACCEPT 文の実行後に、状態値の転記先となる 3 バイトのデータ項目を指定する。

    特殊名段落に CRT STATUS 句を指定した場合、書き方 4 または書き方 5 の各 ACCEPT 文の実行により (詳細は本章で後述)、その結果を示す値が data-name-2 に入れられる。data-name-2 は状態キーから構成される。状態キーは、処理の完了結果を表す状態を示す。各状態キーの意味については、以下で説明する。

  21. ANS85MF xml-schema-name-1 は、XML PARSE 文の VALIDATING 指定で使用できる名前を指定する。翻訳オプション ASSIGN(DYNAMIC) を設定した場合、literal-8 または data-name-3 は XML スキーマのファイル名をテキスト形式で指定する。ASSIGN(EXTERNAL) を設定した場合、external-file-reference-1 を使用して、外部環境名にマッピングしてスキーマを識別する。
MFXOPEN 

CRT 状態キー CRT 状態キー

CRT 状態キー 1:data-name-1 の最初のバイトは、CRT 状態キー 1 である。これは PICTURE 9 USAGE DISPLAY として記述する。この状態キーは、ACCEPT 操作を終了させた条件を示す。使用される値は以下のとおり。

0 終了キーまたは最後のフィールドの外に出る自動スキップを示す
1 利用者定義のファンクション キーを示す
2 COBOL システムで定義されたファンクション キーを示す
9 エラーを示す

終了キーとは、ACCEPT 操作を終わらせるためのキーである (Enter キーなど)。特定の構成オプションにより、ACCEPT の最後の項目でフィールド タブ キーを押すと、終了キーとして機能させることができる。ファンクション キーの定義も、構成オプションで行える。

終了時に「0」の値が戻された場合、処理が正常に終了したことを示す。

ACCEPT 文が ON EXCEPTION 指定を含む場合、CRT 状態キー 1 の値が「0」以外であれば、その指定内の無条件文が実行される。

CRT 状態キー 2:data-name-1 の 2 番目のバイトは CRT 状態キー 2 であり、ACCEPT 操作を終了させた条件に関する詳細を示すコードを含む。この形式および値は CRT 状態キー 1 の値によって異なる。詳細は以下のとおり。

表 2. CRT 状態キー 1 および 2 の有効な組み合わせ
キー 1 キー 2 意味
0 形式:PIC 9 DISPLAY

値:0

操作者が終了キーを押した
0 形式:PIC 9 DISPLAY

値:1

最後のフィールドの外に出る自動スキップ
1 形式:PIC 99 COMP

値:0 から 127

ファンクション キー番号
2 形式:PIC 99 COMP

値:0 から 26

ファンクション キー番号
9 形式:PIC 99 COMP

値:0

画面内に何も項目がない

ファンクション キー番号については、COBOL システムのドキュメントの、画面処理およびユーザー インターフェイスに関する記述を参照。

CRT 状態キー 3:data-name-1 の 3 番目のバイトは CRT 状態キー 3 であり、PICTURE 99 COMP-X または PICTURE 99 COMP として記述する (NOIBMCOMP 指令を指定)。CRT 状態キー 1 および CRT 状態キー 2 がともにゼロの場合、CRT 状態キー 3 には、ACCEPT 操作を終わらせたキーの元のキーボード コードが含まれる。それ以外の場合、CRT 状態キー 3 の内容は未定義となる。

単一のキーではなく、連続した複数のキーを押すことで 1 つの機能を実行するように構成されている場合は、最初に押したキーに対するコードのみが返される。

例:

  1. CRT 状態キー フィールドの使用例については、「特殊名段落の CRT STATUS 句」トピックを参照。