SKK日本語入力FEP設定
THE CLIFFHANGER
- 運の悪い人は安心せよ、
- それ以上の悪運はないのだから…
オォゥケェェェェィ!(バシャバシャ)おわぁぁ!
ダウンロード
概要
解説
このファイルには
SKK日本語入力FEP(以下SKKFEP)の動作に必要な情報を記述します。
このファイルには主にローマ字かな変換の定義が記述されています。ローマ字かな変換規則はSKK10のものを基準に、ヘボン式ローマ字表記の一部を拡張したものとなっています。本格的にルール拡張を行ないたい場合は、
skkrule_azik.txtなどの例を参照してください。
このファイルはシフトJIS/EUC/UTF-8N/UTF-8/UTF-16LEで記述可能です。シフトJISやEUCでの文字化けを防ぎ確実に文字を記述したい場合はHTMLと同じ文字コード記述表記が利用してください。
このファイルは行単位で処理されます。各行は語句で構成されており、語句の間は空白やタブで区切って記述します。
以下の定義が記述可能です。
- 定義一覧
名称 | 表記 | 補足 |
註釈: | # | #以降は存在しないものとして扱われる |
制御用註釈: | ?変数名=値 | 条件を満たす場合のみ処理する |
定義開始・終了: | . | 定義開始または範囲註釈 |
アセンブラ始動: | | デバッグ版のみ |
文字順序定義: | "** 文字" | 出現順に登録され、重複した文字は除外される |
文字順序定義: | "*** 文字" | 出現順に登録され、重複があってもそのまま |
状態定義: | 状態名: | 名称・数値または1文字で指定可能 |
|
初期定義: | 起動/拡張/時間/空欄 数値 | |
発動定義: | 発動 文字列 | |
選択定義: | 選択 文字列 | |
回数定義: | 回数 数値 | 候補選択の文字数以下の値のみ指定可能 |
除外定義: | 除外 文字 | 子音確定から除外する文字を1文字だけ指定可能 |
音素定義: | 音素(文字) 文字列 | 利用前に定義が必要 |
設定定義: | 設定 変数名 値 | 設定用変数の定義 |
変換規則定義: | [開始状態:]変換パターン 出力文字列 [[次の状態:]次パターン] | |
SKKFEPのローマ字かな変換処理は『一文字マッチングして文字出力と状態遷移を行なう』という動作の繰り返しを基本とし、その操作をなるべく小規模のグループでまとめることでデータサイズと展開処理の双方のサイズ短縮を目指しています。
正直、設定に関しては非常に難解で弄りにくい構造になってしまっていると思いますが、実行効率とサイズ削減のためならたとえゴムゴムした禁断の果実であろうがマヨネーズで食べ尽くす勢いで作っていますので仕方ありません。ユーザの利便性などというしみったれた俗世の柵とは無縁の孤独な世界で限界を追い求め続ける有限状態マシンのプログラミングをお楽しみください。
特殊表記について
変換規則定義では以下の特殊表記が使用できます。
- 特殊表記一覧
文字 | 意味 | 補足 |
. | 文字なし | a.bとa,bのどちらもabと同じ |
, | 文字なし | |
文字: | 状態 | 全ての名称は先頭一文字だけで判定 |
|
"*" | すべての文字に一致 | |
?文字 | 任意の音素 | 音素名は省略可能 |
!文字 | 任意の音素で文字出力 | 音素名は省略可能 |
$文字 | 特殊文字 | 通常の文字とは異なる特殊な文字コードとして扱う |
&文字 | 子音置換 | 次パターン部分にのみ記述可能 |
値; | 文字コード記述 | HTMLと同じ |
|
\文字 | エスケープシーケンス | 記号類を使う時はエスケープすること |
^文字 | コントロールコード | 通常キー(BS/TAB/ENTER/ESC)で発生した場合も含む |
|
S-キー | SHIFTと文字の押下 | |
C-キー | CTRLと文字の押下 | |
M-キー | ALTと文字の押下 | |
キー+キー | 複数キーの押下 (最後のキーが押下された時に判定) | |
[特殊キー名称] | 特殊キー (キーコードまたはキー名称) | |
- 変換パターンの特殊表記
- 「.」「,」の単独使用不可 (必ず1文字以上の有効なキー入力であること)
- 次パターンの特殊表記
- 末尾の「*」「?」「!」は同じ動作 (常に最後のキー入力を引き継ぐ。省略可)
- 「&文字」と表記した場合、子音を文字で置き換える (次パターン遷移と排他)
- 出力文字列の特殊表記
- 「*」は自動変換不要の意味となる (未実装)
- 「!名称」で動作命令または特殊命令となる
- 動作命令一覧
名称 | 動作 |
!直接確定 | アプリケーションにそのままキー入力を伝える。 |
!子音確定 | 入力された子音アルファベットをそのまま確定する。 |
|
!日付 | 未実装 |
!拡張機能発動 | 未実装 |
|
!反転確定 | ひらがな⇔カタカナ |
!置換確定 | ひらがな⇒半角カナ 半角英数⇒全角英数 |
!偽装確定 | 学習せずに確定する (シフト+ASDFJKLによる選択時も同様) |
|
!変換 | 編集内容を変換する。 |
!送り変換 | 編集内容を送りがな付で変換する。 |
!接尾辞変換 | 編集内容を接尾辞として変換する。 |
!推定変換 | 編集内容を補完して変換する。 |
!補完 | 編集内容を補完する。補完中なら次の候補を選択する。 |
!前補完 | 編集内容を補完する。補完中なら前の候補を選択する。 |
!取戻 | 入力内容を取り戻して編集する。 |
!取戻変換 | 入力内容を取り戻して変換する。(未実装) |
!取戻推定変換 | 入力内容を取り戻して推定変換する。(未実装) |
|
!送りがな | 送りがな変換操作を開始する。 |
!送り入力 | 送りがなとして文字入力する。 |
!編集入力 | 編集状態にして文字入力する。(未実装) |
!英語入力 | 英語状態にして文字入力する。(未実装) |
!半角入力 | 半角状態にして文字入力する。(未実装) |
!和英切替 | 編集状態の日本語⇔英語を切り替える。 |
!表示切替 | 表示形式の外部領域⇔変換領域を切り替える。 |
|
!次候補 | 次の候補を選択する。 |
!前候補 | 前の候補を選択する。 |
!削除 | 現在の候補をユーザ辞書から削除する。 |
!再編集 | 現在の候補の登録内容を修正してユーザ辞書に保存する。 |
!絞り込み | 同じ漢字を持つ単語で候補を絞り込む。 |
|
!編集 | 単語の編集を開始する。 |
!英語編集 | 英単語の編集を開始する。 |
!接頭辞編集 | 現在の候補を確定し接頭辞の編集を開始する。 |
|
!日本語 | ひらがな状態にする。(カタカナ状態ならば何もしない) |
!ひらがな | ひらがな状態にする。 |
!カタカナ | カタカナ状態にする。 |
!半角カナ | 半角カナ状態にする。 |
!全角英数 | 全角英数状態にする。 |
!半角英数 | 半角英数状態にする。 |
!直接操作 | 入力メソッド(IME)無効状態にする。 |
|
!カタカナ切替 | ひらがな⇔カタカナ状態を切り替える。 |
!半角カナ切替 | ひらがな⇔半角カナ状態を切り替える。 |
!全角英数切替 | ひらがな⇔全角英数状態を切り替える。 |
!半角英数切替 | ひらがな⇔半角英数状態を切り替える。 |
!入力切替 | ひらがな⇔入力メソッド(IME)無効状態を切り替『だが断る』 |
- 特殊命令一覧
名称 | 動作 |
(標準) | 入力処理を行なう。 |
?中断 | 操作を中断する。(新規操作を開始できる状態へ) |
?後退 | 一文字後退する。(一文字後退が実行できる状態へ) |
?無効 | 入力処理を行なわない。(暗黙の確定すら行なわない) |
|
(標準) | 確定時のみキー操作を吸収する。(指定なし時の動作) |
?吸収 | 常にキー操作を吸収する。 |
?通過 | 確定時にキー操作を吸収しない。 |
|
?実行 | 単語登録時に単語登録を実行する。 |
?貼付 | 単語登録時にクリップボードの内容を貼り付ける。 |
?区切 | 単語登録時に区切り文字を入力する。(セミコロンで代用できない場面用) |
?切替 | 単語登録時に表示形式を切り替える。 |
- アセンブラ命令一覧
書式 | 内容 |
f 名前 | 命令追加命令を定義 |
l 名前 | 命令追加命令を定義(制御) |
r 名前 | 命令追加命令を定義(無効) |
文字: | ラベルを定義 |
"文字列" | 文字列を出力 |
- キー名称一覧
番号による表記 | 名前による表記 |
0x08 | BS |
0x09 | TAB |
0x0D | ENTER RETURN |
0x10 | SHIFT |
0x11 | CTRL |
0x12 | ALT |
0x13 | PAUSE |
0x19 | 漢字 (ALT+半角/全角を表現) |
0x1B | ESC |
0x1C | 変換 |
0x1D | 無変換 |
0x20 | SPACE |
0x21 | PAGEUP |
0x22 | PAGEDOWN |
0x23 | END |
0x24 | HOME |
0x25 | ← |
0x26 | ↑ |
0x27 | → |
0x28 | ↓ |
0x2D | INSERT |
0x2E | DELETE DEL |
0x5B | WIN |
0x5C | 右WIN |
0x5D | APP |
0x70 | F1 |
0x71 | F2 |
0x72 | F3 |
0x73 | F4 |
0x74 | F5 |
0x75 | F6 |
0x76 | F7 |
0x77 | F8 |
0x78 | F9 |
0x79 | F10 |
0x7A | F11 |
0x7B | F12 |
0x90 | NUM |
0x91 | SCROLL |
0xA0 | 左SHIFT |
0xA1 | 右SHIFT |
0xA2 | 左CTRL |
0xA3 | 右CTRL |
0xA4 | 左ALT |
0xA5 | 右ALT |
0xF0 | CAPS |
0xF2 | ひらがな |
0xF3 | 半角 |
0xF4 | 全角 |
- 補足
開始状態と次の状態は省略可能です。初期値は「共通:」になっています。
パターンはキー入力の順に記述します。主にアルファベットで記述します。
特殊文字はキー入力では表現不可能な独自の内部コードに変換されます。
記号類を本来の文字として利用する場合はバックスラッシュを前置します。
出力文字列はひらがなで記述しますが「ヴヵヶヷヸヹヺ」は特別にカタカナで記述可能です。
それ以外はカタカナで書くとひらがな状態でもカタカナのまま出力されます。
ひらがな・カタカナの変換が必要かどうかは定義時に静的に判定されるため、顔文字などで仮名を記号的に扱いたい場合は、先頭に*を記入します。(未実装)
文字順序の定義について
文字順序の定義はレジストリやROM上のデータ格納順序に影響します。
文字セット順に並べてテーブルを圧縮しやすくしたり、テーブル内に特定のメッセージを仕込むなどといった用途に使用します。文字列は区切りを含まず連結されて格納されるため、文字の組み合わせ順を工夫することでテーブルサイズを短縮できます。例えば「あい」と「いう」なら「あいう」の3文字で格納可能です。
第15版以降は、多くの文字が木側に格納されるようになり、本テーブルも自動生成されるようになったため、宣言不要となりました。なお、標準設定では文字列テーブルは利用していません。ルール拡張時に活用してください。
詳細動作の定義について
この設定ファイルを受け取った利用者におすすめしたい初期値を記述しておくことができます。記述した値は初期値としてのみ扱われるため、この設定ファイルを変更しなくても利用者の好みで後からレジストリ(≒GUI設定)で上書き可能です。
記述が面倒な場合はすべて省略可能です。
その他
開始状態は英数字または「通常/編集/変換/共通/特殊/万能」の名称で指定します。この6種類は最低限の動作に必要となる固有名です。これに加えて9種類の状態を自由に定義できます。状態名を表記すると自動的に定義されます。標準設定では8種類(h/a/i/u/e/o/n/w)の状態を定義しています。
音素定義では母音や記号などの判定用の文字列を記述します。音素は16種類まで自由に定義できます。音素定義を行なうと、音素のどれか一文字との一致判定(ワイルドカード)が利用できるようになります。標準設定では5種類(!?/!?n/!?s/!?z/!?v)の“音素”と“定義”っちまったんだよ・・・!?ビキィ
特殊文字(特殊キー)は内部で1つの文字として処理されます。合計約90種類が定義可能です。標準設定では2種類($x/$y)の特殊文字を定義しています。
定義は「共通:」状態で開始されます。
特殊文字が変換パターンまたは次パターンの1文字目に出現する場合は自動的に「万能:」状態が指定されます。
動作命令と特殊命令は必ず語句の先頭に記述します。文字出力とは排他動作となります。
特殊命令が出現する場合は自動的に「特殊:」状態が指定されます。
変換規則の記述順序に制限はありません。基本的に文字コードの判定は記述した順に行なわれるため、出現頻度の高い順に記述すると誤差程度に動作クロックを稼げます。なお、音素に含まれる文字が単独で出現した場合、音素に対応するワイルドカードよりも優先して判定されます。例えば「a」の文字を含んだ定義は「!?」(母音1文字)を含む定義よりも必ず先に判定されます。ワイルドカード同士の優先度の調整は行なわれません。
co (Twitter♺)