日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
ロケール定義ソース・ファイルは,ロケールを記述する1つ以上のカテゴリで構成されます。ロケール定義ソース・ファイルは, LOCALE COMPILEコマンドを使用することによって,ロケールに変換できます。ロケールの変更は,ロケール定義ソース・ファイルを編集し,その新しいソース・ファイルに対してもう一度 LOCALE COMPILE コマンドを実行することによってのみ行うことができます。ロケール・ソース・ファイルの各セクションが,ロケール・データのカテゴリを定義します。ソース・ファイルは,同じカテゴリに対して複数のセクションを持つことはできません。
2.1 ロケール・カテゴリ
次の標準ロケール・カテゴリがサポートされます。
ロケール・ソース・ファイルの先頭に,オプションの宣言を指定することによって,ロケール・カテゴリ定義で使用される,デフォルトのコメント文字およびエスケープ文字を変更できます。
escape_char <char_symbol> |
comment_char <char_symbol> |
上の例で,<char_symbol>は,ロケール・コードセットを作成するのに使用されたcharmapファイルで定義されている,文字のシンボル名です。
escape_charまたはcomment_charと, <char_symbol>とのあいだは, 1 つ以上の空白文字(スペースまたはタブ)で区切らなければなりません。
2.1.2 カテゴリ・ソース定義
各カテゴリ・ソース定義は,次の内容で構成されます。
例を次に示します。
LC_CTYPE <source for LC_CTYPE category> END LC_CTYPE |
すべてのカテゴリについて,ソースは,キーワード,文字列,文字リテラル,および文字シンボルを使用して指定します。各キーワードは,定義と規則のいずれかを示しています。キーワードが含まれている文の残りの部分には,キーワードに対するオペランドが含まれます。オペランドとキーワードは,1 つ以上の空白文字(スペースまたはタブ)で区切ります。なお,行を終了する改行文字の前に,最終文字としてバックスラッシュ (\) を入力すると,文は次の行に継続します。 1 桁目にコメント文字 (#) がある行は,コメント行として扱われます。
シンボル名は,左山括弧文字 (<) ではじまり,右山括弧文字(>)で終了します。 <および>のあいだには,制御文字およびスペース文字を除く, Portable Character Setのすべての文字を指定できます。たとえば, <A-diaeresis>という指定は,ある文字のシンボル名として有効です。ロケール・ソース・ファイルの中で参照されるシンボル名は, Portable Character Setを使用して,またはそのロケール用の文字セット記述 ( charmap ) ファイルの中で定義する必要があります。
文字リテラルは,文字そのもの,あるいは 10 進,16 進,または 8 進定数です。 10 進定数は,2 桁または 3 桁の 10 進数により,次の形式で構成されます。ここで,nは10進数を表します。
\dnn or \dnnn |
16 進定数は,2 桁の 16 進数により,次の形式で構成されます。ここで,n は 16 進数を表します。
\xnn |
8 進定数は,2 桁または 3 桁の8進数により,次の形式で構成されます。ここで,n は 8 進数を表します。
\nn or \nnn |
ロケール定義ソース・ファイル内で,すべてのカテゴリを明示的に定義する必要はありません。ロケール定義ソース・ファイルの中でカテゴリが定義されていない場合, LOCALE COMPILEコマンドの出力するロケール・ファイルには,このカテゴリのデータは何も格納されません。
2.2 LC_COLLATE カテゴリ
LC_COLLATEカテゴリは,照合項目間の相対順序を定義します。このカテゴリは,LC_COLLATE ヘッダではじまり, END LC_COLLATE トレーラで終了します。
照合項目は,照合を行う上での比較の単位であり,文字または文字の並びです。ロケール内の照合項目はすべて,これがロケール内の別の照合項目より以前,等しい,または以降であるかどうかを決定する重みのセットを持っています。ロケール項目はそれぞれ,ロケール・ソース・ファイルをコンパイルするときに, LOCALE COMPILE コマンドによって,照合重みが割り当てられます。これらの照合重みは,文字列を比較するアプリケーション・プログラムによって使用されます。
文字列の比較は,文字列内の各文字の照合重みの比較を,相違が検出されるまで,または文字列が等しいと判断されるまで実行することによって行われます。この比較は,ロケールが複数の照合順序を定義している場合は,数回に渡って行われることがあります。たとえば,フランスのロケールの場合,文字列は,照合重みの 1 次セットを使用して比較されます。この比較の段階で両者が等しいと判断されると,照合重みの 2 次セットを使用してもう一度比較が行われます。照合項目は,ロケールに対して定義されている照合ソート規則の数だけ,関連する照合重みのセットを持ちます。
charmapファイル内で定義される各文字 ( charmapファイルが指定されていない場合は, Portable Character Set 内のすべての文字 ) は,これ自体が照合項目です。新たな照合項目は, collating-element 文を使用して定義できます ( 次の説明参照 )。
表 2-1 は, LC_COLLATE カテゴリで認識される文キーワードの一覧です。
キーワード | 説明 |
---|---|
copy | このカテゴリの定義として使用する,既存のロケール名を指定する。 copy文を指定すると,このカテゴリの中で他のキーワードを指定する必要はない。 |
collating-element | 複数文字の照合項目を指定する。 |
collating-symbol | 照合シーケンス文で使用する照合シンボルを指定する。 |
order_start | 照合重みを照合項目に割り当てる照合シーケンス文を指定する。 |
collating-element文,collating-symbol文,およびorder_start文については,以降の項で詳しく説明します。
collating-element文は,複数文字の照合項目を指定します。
構文
2.2.1 collating-element 文
collating-element <character_symbol> from <string> |
character_symbol 引数は, 1 文字以上の文字列の照合項目を,1 つの照合項目として定義します。 character_symbol は,現在の charmap ファイル内のシンボル名,またはこの照合定義の中で定義されている他のシンボル名と重複することはできません。
string 引数は,character_symbol 引数を定義する 2 文字以上の文字列を指定します。 collating-element 文の例を次に示します。
collating-element <ch> from "<c><h>" collating-element <e-acute> from "<acute><e>" collating-element <11> from "<1><1>" |
collating-element 文で定義される
character_symbol 引数は, LC_COLLATE カテゴリの中に限って認識されます。
collating-symbol 文は,照合シーケンス文で使用する照合シンボルを指定します。
構文
2.2.2 collating-symbol 文
collating-symbol <collating_symbol> |
collating_symbol 引数は,現在の charmap ファイル内のシンボル名,またはこの照合定義の中で定義されている他のシンボル名と重複することはできません。 collating-symbol 文の例を次に示します。
collating-symbol <UPPER_CASE> collating-symbol <HIGH> |
collating_symbol 文で定義される引数は, LC_COLLATE カテゴリの中に限って認識されます。
order_start 文には,照合重みを照合項目に割り当てる 1 つ以上の照合順序文,および order_end キーワードが続きます。 order_start 文は,必ず指定する必要があります。
構文
2.2.3 order_start 文
order_start sort_rules;sort_rules;...;sort_rules collation_order_statements order_end |
sort_rules指示文は,次の構文で指定します。
keyword, keyword,...,keyword |
ここで,keyword はFORWARD,BACKWARD,POSITIONのいずれかです。
sort_rules 指示文はオプションです。指定された場合には,文字列比較に適用される規則を定義します。指定された sort_rules 指示文の数は,各照合項目に割り当てられる重みの数を定義します ( つまり,指示文は,ロケールの中での照合順序数を定義します )。 sort_rules 指示文が指定されない場合, 1 つの forward 指示文が想定され,文字列ではなく,文字単位に比較が行われます。
sort_rules 指示文がある場合, 1 次重みを使用して文字列を比較するときに先頭の指示文, 2 次重みを使用して文字列を比較するときに 2 番目の指示文がそれぞれ適用されます。以降についても同様です。各 sort_rules 指示文のセットは,セミコロン (;) で区切ります。 sort_rules 指示文は,コンマで区切った1つ以上のキーワードで構成されます。次のキーワードがサポートされています。
FORWARD --- 照合重みの比較が,文字列の先頭から最後に向かって行われることを指定する。
BACKWARD --- 照合重みの比較が,文字列の最後から先頭に向かって行われることを指定する。
POSITION --- 照合重みの比較が,文字列内の対象要素の相対位置を考慮することを指定する ( 文字列が等しいことを比較する場合,比較の開始位置から最短の位置にある要素を,最初に照合する )。
forward キーワードおよび backward キーワードは,相互に排他的です。
sort_rules 指示文の例を次に示します。
order_start forward;backward |
照合順序文には次の構文規則が適用されます。
照合項目の 1 次重み,2 次重み,または以降の重みを定義するには,各照合項目に対してオプションのオペランドを使用します。また,文字列を比較する場合に無視される照合項目を指定するには,特殊シンボル IGNORE を使用します。
collating_element_list の位置に指定される反復記号キーワードは,指定範囲内の文字に対して,先行する文の左側にある文字シンボルの重みを基準に,昇順で,重みが割り当てられることを表します。
反復記号キーワードを使用すると,異なる文字セット記述 ( charmap ) ソース・ファイルでコンパイルした場合に,異なる照合を行うロケールが作成されます。
UNDEFINED 特殊シンボルは,明示的に,または反復記号シンボルで指定されていない,すべてのコード化文字セット値を含みます。これらの文字は,UNDEFINED 特殊シンボルで指示される位置に,文字照合順序に従って挿入され,同じ重みがすべて割り当てられます。 UNDEFINED 特殊シンボルがなく,照合順序が,コード化文字セットからすべての照合項目を指定していない場合,警告メッセージが表示され,未定義文字がすべて,文字照合順序の最後に設定されます。
LC_COLLATEロケール定義ソース・ファイル・カテゴリ内の,照合順序文セクションの例を次に示します。
order_start forward;backward UNDEFINED IGNORE;IGNORE <LOW> <space> <LOW>;<space> ... <LOW>;... <a> <a>;<a> <a-acute> <a>;<a-acute> <a-grave> <a>;<a-grave> <A> <a>;<A> <A-acute> <a>;<A-acute> <A-grave> <a>;<A-grave> <ch> <ch>;<ch> <Ch> <ch>;<Ch> <s> <s>;<s> <ss> <s><s>;<s><s> <eszet> <s><s>;<eszet><eszet> ... <HIGH>;... <HIGH> order_end |
この例は,次のように解釈されます。
LC_CTYPEカテゴリは,文字分類,大文字/小文字変換,および他の文字属性を定義します。このカテゴリは LC_CTYPEヘッダではじまり, END LC_CTYPEトレーラで終了します。
LC_CTYPE カテゴリ文に対するオペランドはすべて,文字のリストとして定義されます。各リストは,セミコロンで区切られた 1 つ以上の文字またはシンボル文字名で構成されます。反復記号 (...) は,一連の文字を表します。たとえば, <a>;...;<z> という指定は,a〜z の範囲を表します。
表 2-2 は, LC_CTYPE カテゴリで認識される文キーワードの一覧です。キーワードの説明の中で,「自動的に含まれる」という表現は,参照文字が含まれる場合も含まれない場合も,エラーが発生しないことを表します。指定がない場合は文字が提供され,指定されている場合はその指定が適用されます。
キーワード | 説明 |
---|---|
copy | このカテゴリの定義として使用する,既存のロケール名を指定する。
copy文を指定すると,このカテゴリの中で他のキーワードを指定する必要はない。 |
upper | 大文字を定義する。
cntrl, digit, punct,または spaceキーワードで定義される文字は指定しない。大文字のA〜Zは,このセットに自動的に含まれる。 |
lower | 小文字を定義する。
cntrl, digit, punct,または spaceキーワードで定義される文字は指定しない。小文字のa〜zは,このセットに自動的に含まれる。 |
alpha | すべての英文字を定義する。
cntrl, digit, punct,または spaceキーワードで定義される文字は指定しない。 upperおよび lowerキーワードで定義される文字は,この文字クラスに自動的に含まれる。 |
digit | 数字文字を定義する。
数字0,1,2,3,4,5,6,7,8,9だけを指定できる。数字0〜9は,このセットに自動的に含まれる。 |
space | 空白文字を定義する。
upper, lower, alpha, digit, graph,または xdigitキーワードで定義される文字は指定しない。スペース,改ページ,用紙送り,改行,キャリッジ・リターン,タブ,および垂直タブ文字は,このセットに自動的に含まれる。 |
cntrl | 制御文字を定義する。
upper, lower, alpha, digit, punct, graph, print,または xdigitキーワードで定義される文字は指定しない。 |
punct | 区切り文字を定義する。
upper, lower, alpha, digit, cntrl,または xdigitで定義される文字は指定しない。 |
graph | スペース文字を除く,プリント可能文字を定義する。
cntrlキーワードで定義される文字は指定しない。 upper, lower, alpha, digit, xdigit,および punctキーワードで定義される文字は,この文字クラスに自動的に含まれる。 |
スペース文字を含む,プリント可能文字を定義する。
cntrlキーワードで定義される文字は指定しない。スペース文字,および upper, lower, alpha, digit, xdigit,および punctキーワードで定義される文字は,この文字クラスに自動的に含まれる。 |
|
xdigit | 16進数字文字を定義する。
数字0,1,2,3,4,5,6,7,8,9だけを指定できる。ただし, 16進値の10〜15については,任意の文字を指定できる。これらの代替16進数字は,数字文字列を16進から数量に変換するときに,標準変換ルーチンが使用することはない。数字0〜9,および英字A〜Fと英字a〜fは,このセットに自動的に含まれる。 |
blank | 空白文字を定義する。
この文字クラスには,スペースおよび水平タブ文字が含まれる。この文で定義される任意の文字は, spaceクラスに自動的に含まれる。 |
toupper | 小文字から大文字へのマッピングを定義する。
このキーワードに対するオペランドは,コンマで区切られた文字のペアで構成される。各文字ペアは括弧()で囲まれ,セミコロン(;)で次のペアと区切られる。各ペアの最初の文字は小文字,2番目の文字は大文字と見なされる。 lowerおよび upperキーワードで定義された文字に限って指定できる。 toupperの指定を省略すると,デフォルトの設定で, a〜zはA〜Zにマップされる。 |
tolower | 大文字から小文字へのマッピングを定義する。
このキーワードに対するオペランドは,コンマで区切られた文字のペアで構成される。各文字ペアは括弧()で囲まれ,セミコロン(;)で次のペアと区切られる。各ペアの最初の文字は大文字,2番目の文字は小文字と見なされる。 lowerおよび upperキーワードで定義された文字に限って指定できる。 tolower が指定されていなければ,デフォルトの設定に従って, toupper キーワードが指定されている場合,その逆のマッピングが行われる。 toupper と tolower の両キーワードの指定が省略されると,各マッピングは,C ロケールのマッピングに従う。 |
目次 | 索引 |
|