コ−ド変換テ−ブル定義用ファイルの書式は次のとおりです。各変換規則は、1 行で構成されています。
入力文字列変換文字列 再評価文字数 | s ]
再評価文字数を指定した場合は、入力文字列の後ろから再評価する文字数を表します。この文字数は、入力文字列の文字数より小さい必要があります。省略した場合は 0 を指定したものとみなします。また、数字のかわりに s を指定した場合は、未決の文字列は変換しないことを表します。「未決」とは、入力文字列が複数の規則に一致する可能性がある状態のことをいいます。s を指定した場合には、再評価する文字数を指定することはできません。
次に変換例を示します。
kitto の入力を「きっと」に変換する
ki き
to と
tto っ 2
このように定義すると、入力文字列 kitto は、まず ki に一致するので「き」に変換されます。次に tto に一致するので「っ」に変換されます。さらに tto の後ろから 2 文字の to が再評価されます。これは to に一致するので「と」に変換されます。全体として「きっと」 に変換されます。
入力文字列 kitto から「きっと」を得る変換規則には次のような方法もありますが、これらの方法には、それぞれ問題点があります。
次のように定義すると、ttttt が「っっっっt」に変換されます。
ki き
to と
tt っ 1
次のように定義すると、to の変換結果を変更する場合に tto の変換結果も合わせて変更する必要があります。
ki き
to と
tto っ と
未決の n を変換する
n ん s
na な
ni に
このように定義すると、入力文字列 n は n に一致しますが、s が指定されていて、しかも未決であるため「ん」には変換されません。次に a または i が入力された場合は、「な」または「に」に変換されます。未決を解決する文字が入力されて初めて n は「ん」に変換されます。s が指定されていない場合は、n は「ん」にいったん変換されますが、次に a または i が入力されると、「ん」は、「な」または「に」に変わります。
1 行は、改行文字が現れるまでの最大 1024 文字です。# で始まる行はコメント行として扱われます。変換規則のフィールドの区切り記号は、空白またはタブ文字です。
制御文字などを「入力文字列」または「変換文字列」に指定する場合には、 表 6-1に示す拡張記号を使用する必要があります。
記号 |
機能 |
---|---|
¥n |
改行 |
¥r |
復帰 |
¥t |
タブ |
¥f |
改ページ |
¥‾ |
空白 (0x20) |
¥{ |
( |
¥} |
) |
¥# |
# |
¥¥ |
¥ |
¥^ |
^ |
¥0 |
8 進数 (¥001, ¥012) |
¥1 |
8 進数 (¥100, ¥123) |
¥x |
2 桁の 16 進数 (¥x01, ¥xff) |
¥w |
4 桁の 16 進数 (¥w0101, ¥wabcd) |
¥q |
8 桁の 16 進数 (¥q00000101, ¥q8000cdab) |
¥k |
区点コード (¥k0101, ¥k1616) |