;;; skk-azik.el --- 拡張ローマ字入力 "AZIK" を SKK で使うための設定 -*- coding: iso-2022-jp -*-

;; Copyright (C) 2002 ONODA Arata <onoto@ma.nma.ne.jp>

;; Author: ONODA Arata <onoto@ma.nma.ne.jp>
;; Maintainer: SKK Development Team
;; URL: https://github.com/skk-dev/ddskk
;; Keywords: japanese, mule, input method
;; Created: Jan. 9, 2002

;; This file is part of Daredevil SKK.

;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of
;; the License, or (at your option) any later version.

;; This program is distributed in the hope that it will be
;; useful, but WITHOUT ANY WARRANTY; without even the implied
;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
;; PURPOSE.  See the GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:

;; 拡張ローマ字入力 "AZIK" を SKK で使うための設定です。
;; "AZIK"については、以下の URL を参照して下さい。
;;   http://hp.vector.co.jp/authors/VA002116/azik/azikindx.htm

;; 使い方 - 下記の設定を .skk に加えてください。
;;          その後 Emacs(Mule) を再起動すれば skk による AZIK での
;;          入力が可能です。

;;          (setq skk-use-azik t)
;;          (setq skk-azik-keyboard-type 'jp106)

;;          変数 skk-azik-keyboard-type にお使いのキーボードのタイプを
;;          指定して下さい。skk-azik-keyboard-type はシンボルで
;;          'jp106 もしくは 'jp-pc98 、または、 'en を指定します。


;; 注意 1 - AZIK では "q" を "ん" の入力に使うので、"q" のもともと
;;          の機能である "skk-toggle-characters" には、日本語キーボード
;;          であれば "@" を、英語キーボードであれば、"[" で代用します。
;;          SKK 標準の "@"(日本語キーボード) や "["(英語キーボード) は、
;;          は、 x を付けて、それぞれ "x@" と "x[" で使用できます。

;;      2 - 純正の AZIK では "la" で "ぁ" を入力します。しかし
;;          SKK では L を ASCII/全英モードの切り替えキーとして
;;          使用するので、 "xxa" で "ぁ" が入力できるようにして
;;          います。


;;; Code:

(require 'skk)

(eval-when-compile
  (defvar skk-jisx0201-rule-list)
  (defvar skk-jisx0201-base-rule-list))

(defvar skk-azik-unnecessary-base-rule-list
  '("cha" "che" "chi" "cho" "chu"
    "dha" "dhe" "dhi" "dho" "dhu"
    "sha" "she" "shi" "sho" "shu"
    "tha" "the" "thi" "tho" "thu"))

(defvar skk-azik-additional-rom-kana-rule-list
  '((";" nil ("ッ" . "っ"))
    ("x;" nil ";")
    ("bd" nil ("ベン" . "べん"))
    ("bh" nil ("ブウ" . "ぶう"))
    ("bj" nil ("ブン" . "ぶん"))
    ("bk" nil ("ビン" . "びん"))
    ("bl" nil ("ボン" . "ぼん"))
    ("bn" nil ("バン" . "ばん"))
    ("bp" nil ("ボウ" . "ぼう"))
    ("bq" nil ("バイ" . "ばい"))
    ("br" nil ("バラ" . "ばら"))
    ("bt" nil ("ビト" . "びと"))
    ("bw" nil ("ベイ" . "べい"))
    ("bx" nil ("ベイ" . "べい"))
    ("byd" nil ("ビェン" . "びぇん"))
    ("byh" nil ("ビュウ" . "びゅう"))
    ("byj" nil ("ビュン" . "びゅん"))
    ("byl" nil ("ビョン" . "びょん"))
    ("byn" nil ("ビャン" . "びゃん"))
    ("byp" nil ("ビョウ" . "びょう"))
    ("byq" nil ("ビャイ" . "びゃい"))
    ("byw" nil ("ビェイ" . "びぇい"))
    ("byz" nil ("ビャン" . "びゃん"))
    ("bz" nil ("バン" . "ばん"))
    ("ca" nil ("チャ" . "ちゃ"))
    ("cc" nil ("チャ" . "ちゃ"))
    ("cd" nil ("チェン" . "ちぇん"))
    ("ce" nil ("チェ" . "ちぇ"))
    ("cf" nil ("チェ" . "ちぇ"))
    ("ch" nil ("チュウ" . "ちゅう"))
    ("ci" nil ("チ" . "ち"))
    ("cj" nil ("チュン" . "ちゅん"))
    ("ck" nil ("チン" . "ちん"))
    ("cl" nil ("チョン" . "ちょん"))
    ("cn" nil ("チャン" . "ちゃん"))
    ("co" nil ("チョ" . "ちょ"))
    ("cp" nil ("チョウ" . "ちょう"))
    ("cq" nil ("チャイ" . "ちゃい"))
    ("cu" nil ("チュ" . "ちゅ"))
    ("cv" nil ("チャイ" . "ちゃい"))
    ("cw" nil ("チェイ" . "ちぇい"))
    ("cx" nil ("チェイ" . "ちぇい"))
    ("cz" nil ("チャン" . "ちゃん"))
    ("dch" nil ("デュー" . "でゅー"))
    ("dci" nil ("ディ" . "でぃ"))
    ("dck" nil ("ディン" . "でぃん"))
    ("dcp" nil ("ドゥー" . "どぅー"))
    ("dcu" nil ("デュ" . "でゅ"))
    ("dd" nil ("デン" . "でん"))
    ("df" nil ("デ" . "で"))
    ("dg" nil ("ダガ" . "だが"))
    ("dh" nil ("ヅウ" . "づう"))
    ("dj" nil ("ヅン" . "づん"))
    ("dk" nil ("ヂン" . "ぢん"))
    ("dl" nil ("ドン" . "どん"))
    ("dm" nil ("デモ" . "でも"))
    ("dn" nil ("ダン" . "だん"))
    ("dp" nil ("ドウ" . "どう"))
    ("dq" nil ("ダイ" . "だい"))
    ("dr" nil ("デアル" . "である"))
    ("ds" nil ("デス" . "です"))
    ("dt" nil ("ダチ" . "だち"))
    ("dv" nil ("デン" . "でん"))
    ("dw" nil ("デイ" . "でい"))
    ("dy" nil ("ディ" . "でぃ"))
    ("dz" nil ("ダン" . "だん"))
    ("fd" nil ("フェン" . "ふぇん"))
    ("fh" nil ("フウ" . "ふう"))
    ("fj" nil ("フン" . "ふん"))
    ("fk" nil ("フィン" . "ふぃん"))
    ("fl" nil ("フォン" . "ふぉん"))
    ("fm" nil ("フム" . "ふむ"))
    ("fn" nil ("ファン" . "ふぁん"))
    ("fp" nil ("フォー" . "ふぉー"))
    ("fq" nil ("ファイ" . "ふぁい"))
    ("fr" nil ("フル" . "ふる"))
    ("fs" nil ("ファイ" . "ふぁい"))
    ("fw" nil ("フェイ" . "ふぇい"))
    ("fz" nil ("ファン" . "ふぁん"))
    ("gd" nil ("ゲン" . "げん"))
    ("gh" nil ("グウ" . "ぐう"))
    ("gj" nil ("グン" . "ぐん"))
    ("gk" nil ("ギン" . "ぎん"))
    ("gl" nil ("ゴン" . "ごん"))
    ("gn" nil ("ガン" . "がん"))
    ("gp" nil ("ゴウ" . "ごう"))
    ("gq" nil ("ガイ" . "がい"))
    ("gr" nil ("ガラ" . "がら"))
    ("gt" nil ("ゴト" . "ごと"))
    ("gw" nil ("ゲイ" . "げい"))
    ("gyd" nil ("ギェン" . "ぎぇん"))
    ("gyh" nil ("ギュウ" . "ぎゅう"))
    ("gyj" nil ("ギュン" . "ぎゅん"))
    ("gyl" nil ("ギョン" . "ぎょん"))
    ("gyn" nil ("ギャン" . "ぎゃん"))
    ("gyp" nil ("ギョウ" . "ぎょう"))
    ("gyq" nil ("ギャイ" . "ぎゃい"))
    ("gyw" nil ("ギェイ" . "ぎぇい"))
    ("gyz" nil ("ギャン" . "ぎゃん"))
    ("gz" nil ("ガン" . "がん"))
    ("hd" nil ("ヘン" . "へん"))
    ("hf" nil ("フ" . "ふ"))
    ("hga" nil ("ヒャ" . "ひゃ"))
    ("hgd" nil ("ヒェン" . "ひぇん"))
    ("hge" nil ("ヒェ" . "ひぇ"))
    ("hgh" nil ("ヒュウ" . "ひゅう"))
    ("hgj" nil ("ヒュン" . "ひゅん"))
    ("hgl" nil ("ヒョン" . "ひょん"))
    ("hgn" nil ("ヒャン" . "ひゃん"))
    ("hgo" nil ("ヒョ" . "ひょ"))
    ("hgp" nil ("ヒョウ" . "ひょう"))
    ("hgq" nil ("ヒャイ" . "ひゃい"))
    ("hgu" nil ("ヒュ" . "ひゅ"))
    ("hgw" nil ("ヒェイ" . "ひぇい"))
    ("hgz" nil ("ヒャン" . "ひゃん"))
    ("hh" nil ("フウ" . "ふう"))
    ("hj" nil ("フン" . "ふん"))
    ("hk" nil ("ヒン" . "ひん"))
    ("hl" nil ("ホン" . "ほん"))
    ("hn" nil ("ハン" . "はん"))
    ("hp" nil ("ホウ" . "ほう"))
    ("hq" nil ("ハイ" . "はい"))
    ("ht" nil ("ヒト" . "ひと"))
    ("hw" nil ("ヘイ" . "へい"))
    ("hyd" nil ("ヒェン" . "ひぇん"))
    ("hyh" nil ("ヒュウ" . "ひゅう"))
    ("hyl" nil ("ヒョン" . "ひょん"))
    ("hyp" nil ("ヒョウ" . "ひょう"))
    ("hyq" nil ("ヒャイ" . "ひゃい"))
    ("hyw" nil ("ヒェイ" . "ひぇい"))
    ("hyz" nil ("ヒャン" . "ひゃん"))
    ("hz" nil ("ハン" . "はん"))
    ("jd" nil ("ジェン" . "じぇん"))
    ("jf" nil ("ジュ" . "じゅ"))
    ("jh" nil ("ジュウ" . "じゅう"))
    ("jj" nil ("ジュン" . "じゅん"))
    ("jk" nil ("ジン" . "じん"))
    ("jl" nil ("ジョン" . "じょん"))
    ("jn" nil ("ジャン" . "じゃん"))
    ("jp" nil ("ジョウ" . "じょう"))
    ("jq" nil ("ジャイ" . "じゃい"))
    ("jv" nil ("ジュウ" . "じゅう"))
    ("jw" nil ("ジェイ" . "じぇい"))
    ("jz" nil ("ジャン" . "じゃん"))
    ("kA" nil ("ヵ" . "ヵ"))
    ("kE" nil ("ヶ" . "ヶ"))
    ("kd" nil ("ケン" . "けん"))
    ("kf" nil ("キ" . "き"))
    ("kga" nil ("キャ" . "きゃ"))
    ("kgd" nil ("キェン" . "きぇん"))
    ("kge" nil ("キェ" . "きぇ"))
    ("kgh" nil ("キュウ" . "きゅう"))
    ("kgl" nil ("キョン" . "きょん"))
    ("kgn" nil ("キャン" . "きゃん"))
    ("kgo" nil ("キョ" . "きょ"))
    ("kgp" nil ("キョウ" . "きょう"))
    ("kgq" nil ("キャイ" . "きゃい"))
    ("kgu" nil ("キュ" . "きゅ"))
    ("kgw" nil ("キェイ" . "きぇい"))
    ("kgz" nil ("キャン" . "きゃん"))
    ("kh" nil ("クウ" . "くう"))
    ("kj" nil ("クン" . "くん"))
    ("kk" nil ("キン" . "きん"))
    ("kl" nil ("コン" . "こん"))
    ("km" nil ("カモ" . "かも"))
    ("kn" nil ("カン" . "かん"))
    ("kp" nil ("コウ" . "こう"))
    ("kq" nil ("カイ" . "かい"))
    ("kr" nil ("カラ" . "から"))
    ("kt" nil ("コト" . "こと"))
    ("kv" nil ("キン" . "きん"))
    ("kw" nil ("ケイ" . "けい"))
    ("kyd" nil ("キェン" . "きぇん"))
    ("kyh" nil ("キュウ" . "きゅう"))
    ("kyj" nil ("キュン" . "きゅん"))
    ("kyl" nil ("キョン" . "きょん"))
    ("kyn" nil ("キャン" . "きゃん"))
    ("kyp" nil ("キョウ" . "きょう"))
    ("kyq" nil ("キャイ" . "きゃい"))
    ("kyw" nil ("キェイ" . "きぇい"))
    ("kyz" nil ("キャン" . "きゃん"))
    ("kz" nil ("カン" . "かん"))
    ("md" nil ("メン" . "めん"))
    ("mf" nil ("ム" . "む"))
    ("mga" nil ("ミャ" . "みゃ"))
    ("mgd" nil ("ミェン" . "みぇん"))
    ("mge" nil ("ミェ" . "みぇ"))
    ("mgh" nil ("ミュウ" . "みゅう"))
    ("mgj" nil ("ミュン" . "みゅん"))
    ("mgl" nil ("ミョン" . "みょん"))
    ("mgn" nil ("ミャン" . "みゃん"))
    ("mgo" nil ("ミョ" . "みょ"))
    ("mgp" nil ("ミョウ" . "みょう"))
    ("mgq" nil ("ミャイ" . "みゃい"))
    ("mgu" nil ("ミュ" . "みゅ"))
    ("mgw" nil ("ミェイ" . "みぇい"))
    ("mgz" nil ("ミャン" . "みゃん"))
    ("mh" nil ("ムウ" . "むう"))
    ("mj" nil ("ムン" . "むん"))
    ("mk" nil ("ミン" . "みん"))
    ("ml" nil ("モン" . "もん"))
    ("mn" nil ("モノ" . "もの"))
    ("mp" nil ("モウ" . "もう"))
    ("mq" nil ("マイ" . "まい"))
    ("mr" nil ("マル" . "まる"))
    ("ms" nil ("マス" . "ます"))
    ("mt" nil ("マタ" . "また"))
    ("mv" nil ("ムン" . "むん"))
    ("mw" nil ("メイ" . "めい"))
    ("myd" nil ("ミェン" . "みぇん"))
    ("myh" nil ("ミュウ" . "みゅう"))
    ("myj" nil ("ミュン" . "みゅん"))
    ("myl" nil ("ミョン" . "みょん"))
    ("myn" nil ("ミャン" . "みゃん"))
    ("myp" nil ("ミョウ" . "みょう"))
    ("myq" nil ("ミャイ" . "みゃい"))
    ("myw" nil ("ミェイ" . "みぇい"))
    ("myz" nil ("ミャン" . "みゃん"))
    ("mz" nil ("マン" . "まん"))
    ("nb" nil ("ネバ" . "ねば"))
    ("nd" nil ("ネン" . "ねん"))
    ("nf" nil ("ヌ" . "ぬ"))
    ("nga" nil ("ニャ" . "にゃ"))
    ("ngd" nil ("ニェン" . "にぇん"))
    ("nge" nil ("ニェ" . "にぇ"))
    ("ngh" nil ("ニュウ" . "にゅう"))
    ("ngj" nil ("ニュン" . "にゅん"))
    ("ngl" nil ("ニョン" . "にょん"))
    ("ngn" nil ("ニャン" . "にゃん"))
    ("ngo" nil ("ニョ" . "にょ"))
    ("ngp" nil ("ニョウ" . "にょう"))
    ("ngq" nil ("ニャイ" . "にゃい"))
    ("ngu" nil ("ニュ" . "にゅ"))
    ("ngw" nil ("ニェイ" . "にぇい"))
    ("ngz" nil ("ニャン" . "にゃん"))
    ("nh" nil ("ヌウ" . "ぬう"))
    ("nj" nil ("ヌン" . "ぬん"))
    ("nk" nil ("ニン" . "にん"))
    ("nl" nil ("ノン" . "のん"))
    ("np" nil ("ノウ" . "のう"))
    ("nq" nil ("ナイ" . "ない"))
    ("nr" nil ("ナル" . "なる"))
    ("nt" nil ("ニチ" . "にち"))
    ("nv" nil ("ヌン" . "ぬん"))
    ("nw" nil ("ネイ" . "ねい"))
    ("nyd" nil ("ニェン" . "にぇん"))
    ("nyh" nil ("ニュウ" . "にゅう"))
    ("nyj" nil ("ニュン" . "にゅん"))
    ("nyl" nil ("ニョン" . "にょん"))
    ("nyn" nil ("ニャン" . "にゃん"))
    ("nyp" nil ("ニョウ" . "にょう"))
    ("nyq" nil ("ニャイ" . "にゃい"))
    ("nyw" nil ("ニェイ" . "にぇい"))
    ("nyz" nil ("ニャン" . "にゃん"))
    ("nz" nil ("ナン" . "なん"))
    ("pd" nil ("ペン" . "ぺん"))
    ("pf" nil ("ポン" . "ぽん"))
    ("pga" nil ("ピャ" . "ぴゃ"))
    ("pgd" nil ("ピェン" . "ぴぇん"))
    ("pge" nil ("ピェ" . "ぴぇ"))
    ("pgh" nil ("ピュウ" . "ぴゅう"))
    ("pgj" nil ("ピュン" . "ぴゅん"))
    ("pgl" nil ("ピョン" . "ぴょん"))
    ("pgn" nil ("ピャン" . "ぴゃん"))
    ("pgo" nil ("ピョ" . "ぴょ"))
    ("pgp" nil ("ピョウ" . "ぴょう"))
    ("pgq" nil ("ピャイ" . "ぴゃい"))
    ("pgu" nil ("ピュ" . "ぴゅ"))
    ("pgw" nil ("ピェイ" . "ぴぇい"))
    ("pgz" nil ("ピャン" . "ぴゃん"))
    ("ph" nil ("プウ" . "ぷう"))
    ("pj" nil ("プン" . "ぷん"))
    ("pk" nil ("ピン" . "ぴん"))
    ("pl" nil ("ポン" . "ぽん"))
    ("pn" nil ("パン" . "ぱん"))
    ("pp" nil ("ポウ" . "ぽう"))
    ("pq" nil ("パイ" . "ぱい"))
    ("pv" nil ("ポウ" . "ぽう"))
    ("pw" nil ("ペイ" . "ぺい"))
    ("pyd" nil ("ピェン" . "ぴぇん"))
    ("pyh" nil ("ピュウ" . "ぴゅう"))
    ("pyj" nil ("ピュン" . "ぴゅん"))
    ("pyl" nil ("ピョン" . "ぴょん"))
    ("pyn" nil ("ピャン" . "ぴゃん"))
    ("pyp" nil ("ピョウ" . "ぴょう"))
    ("pyq" nil ("ピャイ" . "ぴゃい"))
    ("pyw" nil ("ピェイ" . "ぴぇい"))
    ("pyz" nil ("ピャン" . "ぴゃん"))
    ("pz" nil ("パン" . "ぱん"))
    ("q" nil ("ン" . "ん"))
    ("rd" nil ("レン" . "れん"))
    ("rh" nil ("ルウ" . "るう"))
    ("rj" nil ("ルン" . "るん"))
    ("rk" nil ("リン" . "りん"))
    ("rl" nil ("ロン" . "ろん"))
    ("rn" nil ("ラン" . "らん"))
    ("rp" nil ("ロウ" . "ろう"))
    ("rq" nil ("ライ" . "らい"))
    ("rr" nil ("ラレ" . "られ"))
    ("rw" nil ("レイ" . "れい"))
    ("ryd" nil ("リェン" . "りぇん"))
    ("ryh" nil ("リュウ" . "りゅう"))
    ("ryj" nil ("リュン" . "りゅん"))
    ("ryk" nil ("リョク" . "りょく"))
    ("ryl" nil ("リョン" . "りょん"))
    ("ryn" nil ("リャン" . "りゃん"))
    ("ryp" nil ("リョウ" . "りょう"))
    ("ryq" nil ("リャイ" . "りゃい"))
    ("ryw" nil ("リェイ" . "りぇい"))
    ("ryz" nil ("リャン" . "りゃん"))
    ("rz" nil ("ラン" . "らん"))
    ("sd" nil ("セン" . "せん"))
    ("sf" nil ("サイ" . "さい"))
    ("sh" nil ("スウ" . "すう"))
    ("sj" nil ("スン" . "すん"))
    ("sk" nil ("シン" . "しん"))
    ("sl" nil ("ソン" . "そん"))
    ("sm" nil ("シモ" . "しも"))
    ("sn" nil ("サン" . "さん"))
    ("sp" nil ("ソウ" . "そう"))
    ("sq" nil ("サイ" . "さい"))
    ("sr" nil ("スル" . "する"))
    ("ss" nil ("セイ" . "せい"))
    ("st" nil ("シタ" . "した"))
    ("sv" nil ("サイ" . "さい"))
    ("sw" nil ("セイ" . "せい"))
    ("syd" nil ("シェン" . "しぇん"))
    ("syh" nil ("シュウ" . "しゅう"))
    ("syj" nil ("シュン" . "しゅん"))
    ("syl" nil ("ション" . "しょん"))
    ("syp" nil ("ショウ" . "しょう"))
    ("syq" nil ("シャイ" . "しゃい"))
    ("syw" nil ("シェイ" . "しぇい"))
    ("syz" nil ("シャン" . "しゃん"))
    ("sz" nil ("サン" . "さん"))
    ("tb" nil ("タビ" . "たび"))
    ("td" nil ("テン" . "てん"))
    ("tgh" nil ("テュー" . "てゅー"))
    ("tgi" nil ("ティ" . "てぃ"))
    ("tgk" nil ("ティン" . "てぃん"))
    ("tgp" nil ("トゥー" . "とぅー"))
    ("tgu" nil ("テュ" . "てゅ"))
    ("th" nil ("ツウ" . "つう"))
    ("tj" nil ("ツン" . "つん"))
    ("tk" nil ("チン" . "ちん"))
    ("tl" nil ("トン" . "とん"))
    ("tm" nil ("タメ" . "ため"))
    ("tn" nil ("タン" . "たん"))
    ("tp" nil ("トウ" . "とう"))
    ("tq" nil ("タイ" . "たい"))
    ("tr" nil ("タラ" . "たら"))
    ("tsa" nil ("ツァ" . "つぁ"))
    ("tse" nil ("ツェ" . "つぇ"))
    ("tsi" nil ("ツィ" . "つぃ"))
    ("tso" nil ("ツォ" . "つぉ"))
    ("tt" nil ("タチ" . "たち"))
    ("tw" nil ("テイ" . "てい"))
    ("tyd" nil ("チェン" . "ちぇん"))
    ("tyh" nil ("チュウ" . "ちゅう"))
    ("tyj" nil ("チュン" . "ちゅん"))
    ("tyl" nil ("チョン" . "ちょん"))
    ("tyn" nil ("チャン" . "ちゃん"))
    ("typ" nil ("チョウ" . "ちょう"))
    ("tyq" nil ("チャイ" . "ちゃい"))
    ("tyw" nil ("チェイ" . "ちぇい"))
    ("tyz" nil ("チャン" . "ちゃん"))
    ("tz" nil ("タン" . "たん"))
    ("vd" nil ("ヴェン" . "う゛ぇん"))
    ("vk" nil ("ヴィン" . "う゛ぃん"))
    ("vl" nil ("ヴォン" . "う゛ぉん"))
    ("vn" nil ("ヴァン" . "う゛ぁん"))
    ("vp" nil ("ヴォー" . "う゛ぉー"))
    ("vq" nil ("ヴァイ" . "う゛ぁい"))
    ("vw" nil ("ヴェイ" . "う゛ぇい"))
    ("vya" nil ("ヴャ" . "う゛ゃ"))
    ("vye" nil ("ヴェ" . "う゛ぇ"))
    ("vyo" nil ("ヴョ" . "う゛ょ"))
    ("vyu" nil ("ヴュ" . "う゛ゅ"))
    ("vz" nil ("ヴァン" . "う゛ぁん"))
    ("wA" nil ("ヮ" . "ゎ"))
    ("wd" nil ("ウェン" . "うぇん"))
    ("wf" nil ("ワイ" . "わい"))
    ("wha" nil ("ウァ" . "うぁ"))
    ("whe" nil ("ウェ" . "うぇ"))
    ("whi" nil ("ウィ" . "うぃ"))
    ("who" nil ("ウォ" . "うぉ"))
    ("whu" nil ("ウ" . "う"))
    ("wk" nil ("ウィン" . "うぃん"))
    ("wl" nil ("ウォン" . "うぉん"))
    ("wn" nil ("ワン" . "わん"))
    ("wp" nil ("ウォー" . "うぉー"))
    ("wq" nil ("ワイ" . "わい"))
    ("wr" nil ("ワレ" . "われ"))
    ("wso" nil ("ウォ" . "うぉ"))
    ("wt" nil ("ワタ" . "わた"))
    ("wz" nil ("ワン" . "わん"))
    ("xa" nil ("シャ" . "しゃ"))
    ("xc" nil ("シャ" . "しゃ"))
    ("xd" nil ("シェン" . "しぇん"))
    ("xe" nil ("シェ" . "しぇ"))
    ("xf" nil ("シェイ" . "しぇい"))
    ("xh" nil ("シュウ" . "しゅう"))
    ("xi" nil ("シ" . "し"))
    ("xj" nil ("シュン" . "しゅん"))
    ("xk" nil ("シン" . "しん"))
    ("xl" nil ("ション" . "しょん"))
    ("xn" nil ("シャン" . "しゃん"))
    ("xo" nil ("ショ" . "しょ"))
    ("xp" nil ("ショウ" . "しょう"))
    ("xq" nil ("シャイ" . "しゃい"))
    ("xt" nil ("シュツ" . "しゅつ"))
    ("xu" nil ("シュ" . "しゅ"))
    ("xv" nil ("シャイ" . "しゃい"))
    ("xw" nil ("シェイ" . "しぇい"))
    ("xxa" nil ("ァ" . "ぁ"))
    ("xxe" nil ("ェ" . "ぇ"))
    ("xxi" nil ("ィ" . "ぃ"))
    ("xxo" nil ("ォ" . "ぉ"))
    ("xxu" nil ("ゥ" . "ぅ"))
    ("xxh" nil "←")
    ("xxj" nil "↓")
    ("xxk" nil "↑")
    ("xxl" nil "→")
    ("xz" nil ("シャン" . "しゃん"))
    ("y<" nil "←")
    ("y>" nil "→")
    ("y^" nil "↑")
    ("yf" nil ("ユ" . "ゆ"))
    ("yh" nil ("ユウ" . "ゆう"))
    ("yi" nil ("ヰ" . "ゐ"))
    ("yj" nil ("ユン" . "ゆん"))
    ("yl" nil ("ヨン" . "よん"))
    ("yn" nil ("ヤン" . "やん"))
    ("yp" nil ("ヨウ" . "よう"))
    ("yq" nil ("ヤイ" . "やい"))
    ("yr" nil ("ヨル" . "よる"))
    ("yv" nil ("ユウ" . "ゆう"))
    ("yz" nil ("ヤン" . "やん"))
    ("zc" nil ("ザ" . "ざ"))
    ("zd" nil ("ゼン" . "ぜん"))
    ("zf" nil ("ゼ" . "ぜ"))
    ("zh" nil ("ズウ" . "ずう"))
    ("zj" nil ("ズン" . "ずん"))
    ("zk" nil ("ジン" . "じん"))
    ("zl" nil ("ゾン" . "ぞん"))
    ("zn" nil ("ザン" . "ざん"))
    ("zp" nil ("ゾウ" . "ぞう"))
    ("zq" nil ("ザイ" . "ざい"))
    ("zr" nil ("ザル" . "ざる"))
    ("zv" nil ("ザイ" . "ざい"))
    ("zw" nil ("ゼイ" . "ぜい"))
    ("zx" nil ("ゼイ" . "ぜい"))
    ("zyd" nil ("ジェン" . "じぇん"))
    ("zyh" nil ("ジュウ" . "じゅう"))
    ("zyj" nil ("ジュン" . "じゅん"))
    ("zyl" nil ("ジョン" . "じょん"))
    ("zyn" nil ("ジャン" . "じゃん"))
    ("zyp" nil ("ジョウ" . "じょう"))
    ("zyq" nil ("ジャイ" . "じゃい"))
    ("zyw" nil ("ジェイ" . "じぇい"))
    ("zyz" nil ("ジャン" . "じゃん"))
    ("zz" nil ("ザン" . "ざん"))))

(defvar skk-azik-keyboard-specific-additional-rom-kana-rule-list nil)

;; キーボード依存部分。
;; skk-azik-keyboard-type が設定されていれば以下を実行。
(if skk-azik-keyboard-type
    (cond
     ((eq skk-azik-keyboard-type 'jp106)
      (setq skk-set-henkan-point-key
            (append '(?+) skk-set-henkan-point-key))
      (setq skk-downcase-alist
            (append '((?+ . ?\;)) skk-downcase-alist))
      (setq skk-azik-keyboard-specific-additional-rom-kana-rule-list
            '(("@" nil skk-toggle-characters)
              ("x@" nil skk-today)
              ("`" nil skk-set-henkan-point-subr)
              (":" nil "ー"))))
     ((eq skk-azik-keyboard-type 'jp-pc98)
      (setq skk-set-henkan-point-key
            (append '(?+) skk-set-henkan-point-key))
      (setq skk-downcase-alist
            (append '((?+ . ?\;)) skk-downcase-alist))
      (setq skk-azik-keyboard-specific-additional-rom-kana-rule-list
            '(("@" nil skk-toggle-characters)
              ("x@" nil skk-today)
              ("~" nil skk-set-henkan-point-subr)
              ("x~" nil "~")
              (":" nil "ー"))))
     (t
      (setq skk-set-henkan-point-key
            (append '(?:) skk-set-henkan-point-key))
      (setq skk-downcase-alist
            (append '((?: . ?\;)) skk-downcase-alist))
      (setq skk-azik-keyboard-specific-additional-rom-kana-rule-list
            '(("\'" nil "ー")
              ("x\'" nil "'")
              ("[" nil skk-toggle-characters)
              ("{" nil skk-set-henkan-point-subr)
              ("x[" nil "「"))))))

;; 以下共通
(setq skk-set-henkan-point-key
      (append '(?Q ?X) skk-set-henkan-point-key))

;; skk-rom-kana-base-rule-list から変換規則を削除する
(dolist (str skk-azik-unnecessary-base-rule-list)
  (setq skk-rom-kana-base-rule-list
        (skk-del-alist str skk-rom-kana-base-rule-list)))

;; AZIK 特有の変換規則を追加する
(dolist (rule (append skk-azik-keyboard-specific-additional-rom-kana-rule-list
                      skk-azik-additional-rom-kana-rule-list))
  (add-to-list 'skk-rom-kana-rule-list rule))

;; for jisx0201
(with-eval-after-load "skk-jisx0201"
  (dolist (str skk-azik-unnecessary-base-rule-list)
    (setq skk-jisx0201-base-rule-list
          (skk-del-alist str skk-jisx0201-base-rule-list)))

  (dolist (rule (append skk-azik-keyboard-specific-additional-rom-kana-rule-list
                        skk-azik-additional-rom-kana-rule-list))
    (add-to-list 'skk-jisx0201-rule-list
                 (if (listp (nth 2 rule))
                     (list (nth 0 rule) (nth 1 rule)
                           (japanese-hankaku (car (nth 2 rule))))
                   rule)))

  (setq skk-jisx0201-base-rule-tree
        (skk-compile-rule-list skk-jisx0201-base-rule-list
                               skk-jisx0201-rule-list)))

(run-hooks 'skk-azik-load-hook)

(provide 'skk-azik)

;; Local Variables:
;; indent-tabs-mode: nil
;; End:

;;; skk-azik.el ends here
