図4-6-特殊名段落構文
特殊名(SPECIAL-NAMES)段落は、通貨記号の指定、小数点の選択、[記号文字の指定]実装者名とユーザ指定のニーモニック名の関連付け、アルファベット名と文字セットまたは大小順序の関連付け、および字類名と文字のセットの関連付けを行う。
つまり、この段落には、別のPC環境で作成されたCOBOLプログラムを簡単に「構成」して、opensource COBOL環境では最小限の変更のみでコンパイルできるようにするといった役割がある。
CONSOLE IS CRT句は、opensource COBOLの他のバージョンとのソースコードの互換性を保持する。これにより、デバイス「CRT」と「CONSOLE」をDISPLAY文(6.14.1)およびACCEPT文(6.4.1)で相互に使用できるようになる。opensource COBOLプログラムを「ゼロから」コーディングする場合は、これら二つのデバイスはすでに同様のものと見なされているため、この句は必要ない。
IS ニーモニック名-1句を使うと、「IS」の前に指定された組み込みopensource COBOLデバイス名に代替名を定義することができる。
SWITCH-1からSWITCH-8の外部値は、それぞれCOB_SWITCH_1からCOB_SWITCH_8の環境変数を使用してプログラムに指定される。「ON」の値はスイッチをオンにし、その他の値(未定義の環境変数を含む)はスイッチをオフにする。ON STATUS句およびOFF STATUS句は、実行時にスイッチが設定されているかどうかをテストするための条件名を定義する。詳細については6.1.4.2.1および6.1.4.2.4で説明する。
ALPHABET句は、「定数-1」オプションを使用して自分で定義したものを含め、名前を、指定された文字コードセットまたは大小順序と関連付けることができ、定数-1、定数-2、または定数-3に英数字定数を指定できる。比喩的な定数SPACE[S]、ZERO[[E]S]、QUOTE[S]、HIGH-VALUE[S]、またはLOW-VALUE[S]を指定することもできる。
SYMBOLIC CHARACTERS句は構文的に認識されても無視される。「-Wall」または「-W」コンパイラスイッチを使用すると、この機能がまだ実装されていないことを示す警告メッセージが表示される。
ユーザ定義クラスは、CLASS句を使って定義される。この句で指定された定数はクラスの一部と見なされるため、データ項目の値に含まれる可能性のある文字を定義する。例えば、以下に「Hexadecimal」と呼ばれるクラスを定義し、データ項目が「Hexadecimal」クラスの一部である場合、データ項目に存在する可能性のある文字のみを指定する。
CLASS Hexadecimal IS ‘0’ THRU ‘9’, ‘A’ THRU ‘F’, ‘a’ THRU ‘f’
このユーザ定義クラスの使用例については、6.1.4.2.2で説明する。
LOCALE句を使って、UNIX標準のローカル名をデータ部で定義された一意名と関連付けることができ、局所名は次のいずれかになる:
表4-7-局所名
af_ZA | dv_MV | fi_FI | lt_LT | sma_NO |
am_ET | el_GR | fil_PH | lv_LV | sma_SE |
ar_AE | en_029 | fo_FO | mi_NZ | smj_NO |
ar_BH | en_AU | fr_BE | mk_MK | smj_SE |
ar_DZ | en_BZ | fr_CA | ml_IN | smn_FI |
ar_EG | en_CA | fr_CH | mn_Cyrl_MN | sms_FI |
ar_IQ | en_GB | fr_FR | mn_Mong_CN | sq_AL |
ar_JO | en_IE | fr_LU | moh_CA | sr_Cyrl_BA |
ar_KW | en_IN | fr_MC | mr_IN | sr_Cyrl_CS |
ar_LB | en_JM | fy_NL | ms_BN | sr_Latn_BA |
ar_LY | en_MY | ga_IE | ms_MY | sr_Latn_CS |
ar_MA | en_NZ | gbz_AF | mt_MT | sv_FI |
ar_OM | en_PH | gl_ES | nb_NO | sv_SE |
ar_QA | en_SG | gsw_FR | ne_NP | sw_KE |
ar_SA | en_TT | gu_IN | nl_BE | syr_SY |
ar_SY | en_US | ha_Latn_NG | nl_NL | ta_IN |
ar_TN | en_ZA | he_IL | nn_NO | te_IN |
ar_YE | en_ZW | hi_IN | ns_ZA | tg_Cyrl_TJ |
arn_CL | es_AR | hr_BA | oc_FR | th_TH |
as_IN | es_BO | hr_HR | or_IN | tk_TM |
az_Cyrl_AZ | es_CL | hu_HU | pa_IN | tmz_Latn_DZ |
az_Latn_AZ | es_CO | hy_AM | pl_PL | tn_ZA |
ba_R | es_CR | id_ID | ps_AF | tr_IN |
be_BY | es_DO | ig_NG | pt_BR | tr_TR |
bg_BG | es_EC | ii_CN | pt_PT | tt_RU |
bn_IN | es_ES | is_IS | qut_GT | ug_CN |
bo_BT | es_GT | it_CH | quz_BO | uk_UA |
bo_CN | es_HN | it_IT | quz_EC | ur_PK |
br_FR | es_MX | iu_Cans_CA | quz_PE | uz_Cyrl_UZ |
bs_Cyrl_BA | es_NI | iu_Latn_CA | rm_CH | uz_Latn_UZ |
bs_Latn_BA | es_PA | ja_JP | ro_RO | vi_VN |
ca_ES | es_PE | ka_GE | ru_RU | wen_DE |
cs_CZ | es_PR | kh_KH | rw_RW | wo_SN |
cy_GB | es_PY | kk_KZ | sa_IN | xh_ZA |
da_DK | es_SV | kl_GL | sah_RU | yo_NG |
de_AT | es_US | kn_IN | se_FI | zh_CN |
de_CH | es_UY | ko_KR | se_NO | zh_HK |
de_DE | es_VE | kok_IN | se_SE | zh_MO |
de_LI | et_EE | ky_KG | si_LK | zh_SG |
de_LU | eu_ES | lb_LU | sk_SK | zh_TW |
dsb_DE | fa_IR | lo_LA | sl_SI | zu_ZA |
CURRENCY SIGN句を使って、PICTURE編集記号で使用される通貨記号として任意の1文字を定義できる(表5-9を参照)。通貨記号が指定されていない場合の既定値は円記号(¥)である。
DECIMAL POINT IS COMMA句は、PICTURE編集記号(表5-9を参照)および数字定数として使用される場合「,」および「.」文字の定義を逆にするが、望ましくない副作用が生じる可能性がある(1.5を参照)。
一意名-3のPICTURE句(CRT-STATUS)は9(4)である必要がある。この項目はACCEPT画面の実行時ステータスを示す4桁の値を受け取り、ステータスコードは次の通りである。
表4-8-ACCEPT画面ステータスコード
コード | 意味 |
---|---|
0000 | ENTERキー押下 |
1001 - 1064 | F1 — F64 |
2001, 2002 | PgUP, PgDn4 |
2003, 2004, 2006 | 上矢印, 下矢印, PrtSc(プリントスクリーン)5 |
2005 | Esc6 |
8000 | ACCEPT画面に利用できるデータがない |
9000 | 致命的なI/O画面エラー |
CRT STATUS句が指定されていない場合、ACCEPTステータス画面を受け取る目的で、COB-CRT-STATUS一意名(9(4)のPICTURE句)が暗黙的に割り当てられる。
SCREEN CONTROL句とEVENT STATUS句は、コンパイル時にサポートされていない一方で、CURSORIS句はサポートされている。しかし現在、実行時には機能していない。
4
実行時に環境変数COB_SCREEN_EXCEPTIONSが空白以外の値に設定されている場合にのみ使用できる。
5
Windowsシステムでは検出できない。
6
実行時に環境変数COB_SCREEN_ESCが空白以外の値に設定されている場合にのみ使用できる。(これはCOB_SCREEN_EXCEPTIONSの設定に追加される。)