[uim-commit] r708 - branches/composer/scm
yamaken at freedesktop.org
yamaken at freedesktop.org
Wed Feb 23 17:26:21 PST 2005
Author: yamaken
Date: 2005-02-23 17:26:18 -0800 (Wed, 23 Feb 2005)
New Revision: 708
Added:
branches/composer/scm/japanese-nicola.scm
branches/composer/scm/ng-japanese-azik.scm
branches/composer/scm/ng-japanese-kana.scm
branches/composer/scm/ng-japanese-romaji.scm
branches/composer/scm/ng-japanese.scm
Modified:
branches/composer/scm/Makefile.am
Log:
* This commit adds several Japanese composition tables for evmap
* scm/Makefile.am
- (SCM_FILES): Add ng-japanese.scm, ng-japanese-romaji.scm,
ng-japanese-kana.scm, japanese-nicola.scm and
ng-japanese-azik.scm
* scm/ng-japanese.scm
- (record ja-kana, record ja-kana-props): New record
- (ja-extract-dedicated-ruleset, ja-define-dedicated-ruleset,
ja-define-dedicated-rulesets): New procedure
- (ja-kana-a, ja-kana-i, ja-kana-u, ja-kana-e, ja-kana-o,
ja-kana-ka, ja-kana-ki, ja-kana-ku, ja-kana-ke, ja-kana-ko,
ja-kana-kya, ja-kana-kyi, ja-kana-kyu, ja-kana-kye, ja-kana-kyo,
ja-kana-ga, ja-kana-gi, ja-kana-gu, ja-kana-ge, ja-kana-go,
ja-kana-gya, ja-kana-gyi, ja-kana-gyu, ja-kana-gye, ja-kana-gyo,
ja-kana-xtsu): New variable for kana definition
- (ja-kana-props-alist, ja-halfwidth-space-ruleset,
ja-fullwidth-space-ruleset, ja-halfwidth-hyphen-ruleset,
ja-fullwidth-hyphen-ruleset, ja-halfwidth-comma-ruleset,
ja-fullwidth-comma-ruleset, ja-fullwidth-kana-comma-ruleset,
ja-halfwidth-kana-comma-ruleset, ja-halfwidth-period-ruleset,
ja-fullwidth-period-ruleset, ja-fullwidth-kana-period-ruleset,
ja-halfwidth-kana-period-ruleset,
ja-halfwidth-basic-symbol-ruleset,
ja-fullwidth-basic-symbol-ruleset, ja-halfwidth-number-ruleset,
ja-fullwidth-number-ruleset, ja-halfwidth-alphabet-ruleset,
ja-fullwidth-alphabet-ruleset, ja-halfwidth-alphanumeric-ruleset,
ja-fullwidth-alphanumeric-ruleset): New variable
* scm/ng-japanese-romaji.scm,
- (ja-romaji-generate-double-consonant-ruleset): New procedure
- (ja-romaji-double-consonant-alist,
ja-romaji-double-consonant-guide-ruleset, ja-romaji-basic-ruleset,
ja-romaji-basic-double-consonant-ruleset,
ja-romaji-x-prefixed-small-kana-ruleset,
ja-romaji-l-prefixed-small-kana-ruleset, ja-romaji-minor-ruleset,
ja-romaji-minor-contracted-ruleset,
ja-romaji-minor-contracted-double-consonant-ruleset,
ja-romaji-skk-like-symbol-ruleset, ja-romaji-hepburn-ruleset,
ja-romaji-hepburn-double-consonant-ruleset,
ja-romaji-hepburn-n-ruleset, ja-romaji-hepburn-oh-ruleset,
ja-romaji-hepburn-irregular-double-consonant-guide-ruleset,
ja-romaji-hepburn-irregular-double-consonant-ruleset,
ja-romaji-ruleset-name-list, ja-romaji-hiragana-ruleset,
ja-romaji-katakana-ruleset, ja-romaji-halfkana-ruleset): New
variable
* scm/ng-japanese-kana.scm,
- (ja-kana-char-sensitive-core-ruleset, ja-kana-core-ruleset,
ja-kana-ruleset-name-list, ja-kana-hiragana-ruleset,
ja-kana-katakana-ruleset, ja-kana-halfkana-ruleset): New variable
* scm/japanese-nicola.scm,
- (ja-nicola-core-ruleset,
ja-nicola-postfixed-voiced-consonant-ruleset,
ja-nicola-jp106-pseudo-thumb-shift-ruleset,
ja-nicola-ruleset-name-list, ja-nicola-hiragana-ruleset,
ja-nicola-katakana-ruleset, ja-nicola-halfkana-ruleset): New
variable
* scm/ng-japanese-azik.scm,
- (ja-azik-core-ruleset, ja-azik-ruleset-name-list,
ja-azik-hiragana-ruleset, ja-azik-katakana-ruleset,
ja-azik-halfkana-ruleset): New variable
Modified: branches/composer/scm/Makefile.am
===================================================================
--- branches/composer/scm/Makefile.am 2005-02-24 00:59:57 UTC (rev 707)
+++ branches/composer/scm/Makefile.am 2005-02-24 01:26:18 UTC (rev 708)
@@ -11,6 +11,8 @@
uim-sh.scm custom.scm custom-rt.scm \
manage-modules.scm \
direct.scm \
+ ng-japanese.scm ng-japanese-romaji.scm ng-japanese-kana.scm \
+ japanese-nicola.scm ng-japanese-azik.scm \
rk.scm \
generic.scm generic-custom.scm generic-key-custom.scm \
pyload.scm PY.scm pyunihan.scm pinyin-big5.scm \
Added: branches/composer/scm/japanese-nicola.scm
===================================================================
--- branches/composer/scm/japanese-nicola.scm 2005-02-24 00:59:57 UTC (rev 707)
+++ branches/composer/scm/japanese-nicola.scm 2005-02-24 01:26:18 UTC (rev 708)
@@ -0,0 +1,269 @@
+;;; japanese-nicola.scm: NICOLA composition rulesets for Japanese
+;;;
+;;; Copyright (c) 2005 uim Project http://uim.freedesktop.org/
+;;;
+;;; All rights reserved.
+;;;
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+;;; 1. Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+;;; 2. Redistributions in binary form must reproduce the above copyright
+;;; notice, this list of conditions and the following disclaimer in the
+;;; documentation and/or other materials provided with the distribution.
+;;; 3. Neither the name of authors nor the names of its contributors
+;;; may be used to endorse or promote products derived from this software
+;;; without specific prior written permission.
+;;;
+;;; THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+;;; SUCH DAMAGE.
+;;;;
+
+;; See following pages for further information about the NICOLA kana
+;; input method
+;;
+;; Draft JIS specification (Japanese)
+;; http://nicola.sunicom.co.jp/spec/jisdraft.htm
+;;
+;; Specification (Japanese)
+;; http://nicola.sunicom.co.jp/spec/kikaku.htm
+;;
+;; Keyboard layout variations
+;; http://nicola.sunicom.co.jp/info2.html
+
+
+;; The key mappings coded in this file are transcribed from the NICOLA
+;; specifications by hand. No other copyrighted data are included.
+;; -- YamaKen 2005-02-11
+
+;; This composition rulesets only sense strict simultaneous key
+;; presses. Timer-based compensations is not available.
+
+(require "ng-japanese.scm")
+(require "physical-key.scm")
+
+
+(define ja-nicola-core-ruleset
+ '(
+ ;; left hand side without shift
+ ((pkey_jp106_q) ("¡£" "¡£" "¡"))
+ ((pkey_jp106_w) ("¤«" "¥«" "¶"))
+ ((pkey_jp106_e) ("¤¿" "¥¿" "À"))
+ ((pkey_jp106_r) ("¤³" "¥³" "º"))
+ ((pkey_jp106_t) ("¤µ" "¥µ" "»"))
+
+ ((pkey_jp106_a) ("¤¦" "¥¦" "³"))
+ ((pkey_jp106_s) ("¤·" "¥·" "¼"))
+ ((pkey_jp106_d) ("¤Æ" "¥Æ" "Ã"))
+ ((pkey_jp106_f) ("¤±" "¥±" "¹"))
+ ((pkey_jp106_g) ("¤»" "¥»" "¾"))
+
+ ((pkey_jp106_z) ("¡¥" "¡¥" "."))
+ ((pkey_jp106_x) ("¤Ò" "¥Ò" "Ë"))
+ ((pkey_jp106_c) ("¤¹" "¥¹" "½"))
+ ((pkey_jp106_v) ("¤Õ" "¥Õ" "Ì"))
+ ((pkey_jp106_b) ("¤Ø" "¥Ø" "Í"))
+
+ ;; right hand side without shift
+ ((pkey_jp106_y) ("¤é" "¥é" "×"))
+ ((pkey_jp106_u) ("¤Á" "¥Á" "Á"))
+ ((pkey_jp106_i) ("¤¯" "¥¯" "¸"))
+ ((pkey_jp106_o) ("¤Ä" "¥Ä" "Â"))
+ ((pkey_jp106_p) ("¡¤" "¡¤" ","))
+ ((pkey_jp106_at) ("¡¢" "¡¢" "¤"))
+
+ ((pkey_jp106_h) ("¤Ï" "¥Ï" "Ê"))
+ ((pkey_jp106_j) ("¤È" "¥È" "Ä"))
+ ((pkey_jp106_k) ("¤" "¥" "·"))
+ ((pkey_jp106_l) ("¤¤" "¥¤" "²"))
+ ((pkey_jp106_semicolon) ("¤ó" "¥ó" "Ý"))
+
+ ((pkey_jp106_n) ("¤á" "¥á" "Ò"))
+ ((pkey_jp106_m) ("¤½" "¥½" "¿"))
+ ((pkey_jp106_comma) ("¤Í" "¥Í" "È"))
+ ((pkey_jp106_period) ("¤Û" "¥Û" "Î"))
+ ((pkey_jp106_slash) ("¡¦" "¡¦" "¥"))
+
+ ;; left hand side with same-handed shift
+ (((chord lkey_Thumb_Shift_L pkey_jp106_q)) ("¤¡" "¥¡" "§"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_w)) ("¤¨" "¥¨" "´"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_e)) ("¤ê" "¥ê" "Ø"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_r)) ("¤ã" "¥ã" "¬"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_t)) ("¤ì" "¥ì" "Ú"))
+
+ (((chord lkey_Thumb_Shift_L pkey_jp106_a)) ("¤ò" "¥ò" "¦"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_s)) ("¤¢" "¥¢" "±"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_d)) ("¤Ê" "¥Ê" "Å"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_f)) ("¤å" "¥å" ""))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_g)) ("¤â" "¥â" "Ó"))
+
+ (((chord lkey_Thumb_Shift_L pkey_jp106_z)) ("¤¥" "¥¥" "©"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_x)) ("¡¼" "¡¼" "°"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_c)) ("¤í" "¥í" "Û"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_v)) ("¤ä" "¥ä" "Ô"))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_b)) ("¤£" "¥£" "¨"))
+
+ ;; right hand side with same-handed shift
+ (((chord lkey_Thumb_Shift_R pkey_jp106_y)) ("¤è" "¥è" "Ö"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_u)) ("¤Ë" "¥Ë" "Æ"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_i)) ("¤ë" "¥ë" "Ù"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_o)) ("¤Þ" "¥Þ" "Ï"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_p)) ("¤§" "¥§" "ª"))
+ ;;(((chord lkey_Thumb_Shift_R pkey_jp106_at)) ("" "" ""))
+
+ (((chord lkey_Thumb_Shift_R pkey_jp106_h)) ("¤ß" "¥ß" "Ð"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_j)) ("¤ª" "¥ª" "µ"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_k)) ("¤Î" "¥Î" "É"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_l)) ("¤ç" "¥ç" "®"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_semicolon)) ("¤Ã" "¥Ã" "¯"))
+
+ (((chord lkey_Thumb_Shift_R pkey_jp106_n)) ("¤Ì" "¥Ì" "Ç"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_m)) ("¤æ" "¥æ" "Õ"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_comma)) ("¤à" "¥à" "Ñ"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_period)) ("¤ï" "¥ï" "Ü"))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_slash)) ("¤©" "¥©" "«"))
+
+ ;; left hand side with cross-shift
+ ;;(((chord lkey_Thumb_Shift_R pkey_jp106_q)) ("" "" ""))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_w)) ("¤¬" "¥¬" ("¶" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_e)) ("¤À" "¥À" ("À" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_r)) ("¤´" "¥´" ("º" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_t)) ("¤¶" "¥¶" ("»" "Þ")))
+
+ ;;(((chord lkey_Thumb_Shift_R pkey_jp106_a)) (("¤¦" "¡«") "¥ô" ("³" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_s)) ("¤¸" "¥¸" ("¼" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_d)) ("¤Ç" "¥Ç" ("Ã" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_f)) ("¤²" "¥²" ("¹" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_g)) ("¤¼" "¥¼" ("¾" "Þ")))
+
+ ;;(((chord lkey_Thumb_Shift_R pkey_jp106_z)) ("" "" ""))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_x)) ("¤Ó" "¥Ó" ("Ë" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_c)) ("¤º" "¥º" ("½" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_v)) ("¤Ö" "¥Ö" ("Ì" "Þ")))
+ (((chord lkey_Thumb_Shift_R pkey_jp106_b)) ("¤Ù" "¥Ù" ("Í" "Þ")))
+
+ ;; right hand side with cross-shift
+ (((chord lkey_Thumb_Shift_L pkey_jp106_y)) ("¤Ñ" "¥Ñ" ("Ê" "ß")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_u)) ("¤Â" "¥Â" ("Á" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_i)) ("¤°" "¥°" ("¸" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_o)) ("¤Å" "¥Å" ("Â" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_p)) ("¤Ô" "¥Ô" ("Ë" "ß")))
+ ;;(((chord lkey_Thumb_Shift_L pkey_jp106_at)) ("" "" ""))
+
+ (((chord lkey_Thumb_Shift_L pkey_jp106_h)) ("¤Ð" "¥Ð" ("Ê" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_j)) ("¤É" "¥É" ("Ä" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_k)) ("¤®" "¥®" ("·" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_l)) ("¤Ý" "¥Ý" ("Î" "ß")))
+ ;;(((chord lkey_Thumb_Shift_L pkey_jp106_semicolon)) ("" "" ""))
+
+ (((chord lkey_Thumb_Shift_L pkey_jp106_n)) ("¤×" "¥×" ("Ì" "ß")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_m)) ("¤¾" "¥¾" ("¿" "Þ")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_comma)) ("¤Ú" "¥Ú" ("Í" "ß")))
+ (((chord lkey_Thumb_Shift_L pkey_jp106_period)) ("¤Ü" "¥Ü" ("Î" "Þ")))
+ ;;(((chord lkey_Thumb_Shift_L pkey_jp106_slash)) ("" "" ""))
+ ))
+
+(define ja-nicola-postfixed-voiced-consonant-ruleset
+ '(
+ ;; right hand side without shift
+ ((pkey_jp106_bracketleft) ("¡«" "" ""))
+
+ ;; right hand side with same-handed shift
+ (((chord lkey_Thumb_Shift_R pkey_jp106_bracketleft)) ("¡¬" "" ""))
+
+ ;; right hand side with cross-shift
+ ;;(((chord lkey_Thumb_Shift_R pkey_jp106_bracketleft)) ("" "" ""))
+
+ ;; left hand side without shift
+ ;;((pkey_jp106_q pkey_jp106_bracketleft) ("¡£" "¡£" "¡"))
+ ((pkey_jp106_w pkey_jp106_bracketleft) ("¤¬" "¥¬" ("¶" "Þ")))
+ ((pkey_jp106_e pkey_jp106_bracketleft) ("¤À" "¥À" ("À" "Þ")))
+ ((pkey_jp106_r pkey_jp106_bracketleft) ("¤´" "¥´" ("º" "Þ")))
+ ((pkey_jp106_t pkey_jp106_bracketleft) ("¤¶" "¥¶" ("»" "Þ")))
+
+ ((pkey_jp106_a pkey_jp106_bracketleft) (("¤¦" "¡«") "¥ô" ("³" "Þ")))
+ ((pkey_jp106_s pkey_jp106_bracketleft) ("¤¸" "¥¸" ("¼" "Þ")))
+ ((pkey_jp106_d pkey_jp106_bracketleft) ("¤Ç" "¥Ç" ("Ã" "Þ")))
+ ((pkey_jp106_f pkey_jp106_bracketleft) ("¤²" "¥²" ("¹" "Þ")))
+ ((pkey_jp106_g pkey_jp106_bracketleft) ("¤¼" "¥¼" ("¾" "Þ")))
+
+ ;;((pkey_jp106_z pkey_jp106_bracketleft) ("¡¥" "¡¥" "."))
+ ((pkey_jp106_x pkey_jp106_bracketleft) ("¤Ó" "¥Ó" ("Ë" "Þ")))
+ ((pkey_jp106_c pkey_jp106_bracketleft) ("¤º" "¥º" ("½" "Þ")))
+ ((pkey_jp106_v pkey_jp106_bracketleft) ("¤Ö" "¥Ö" ("Ì" "Þ")))
+ ((pkey_jp106_b pkey_jp106_bracketleft) ("¤Ù" "¥Ù" ("Í" "Þ")))
+
+ ;; right hand side without shift
+ ;;((pkey_jp106_y pkey_jp106_bracketleft) ("¤é" "¥é" "×"))
+ ((pkey_jp106_u pkey_jp106_bracketleft) ("¤Â" "¥Â" ("Á" "Þ")))
+ ((pkey_jp106_i pkey_jp106_bracketleft) ("¤°" "¥°" ("¸" "Þ")))
+ ((pkey_jp106_o pkey_jp106_bracketleft) ("¤Å" "¥Å" ("Â" "Þ")))
+ ;;((pkey_jp106_p pkey_jp106_bracketleft) ("¡¤" "¡¤" ","))
+ ;;((pkey_jp106_at pkey_jp106_bracketleft) ("¡¢" "¡¢" "¤"))
+
+ ((pkey_jp106_h pkey_jp106_bracketleft) ("¤Ð" "¥Ð" ("Ê" "Þ")))
+ ((pkey_jp106_j pkey_jp106_bracketleft) ("¤É" "¥É" ("Ä" "Þ")))
+ ((pkey_jp106_k pkey_jp106_bracketleft) ("¤®" "¥®" ("·" "Þ")))
+ ;;((pkey_jp106_l pkey_jp106_bracketleft) ("¤¤" "¥¤" "²"))
+ ;;((pkey_jp106_semicolon pkey_jp106_bracketleft) ("¤ó" "¥ó" "Ý"))
+
+ ;;((pkey_jp106_n pkey_jp106_bracketleft) ("¤á" "¥á" "Ò"))
+ ((pkey_jp106_m pkey_jp106_bracketleft) ("¤¾" "¥¾" ("¿" "Þ")))
+ ;;((pkey_jp106_comma pkey_jp106_bracketleft) ("¤Í" "¥Í" "È"))
+ ((pkey_jp106_period pkey_jp106_bracketleft) ("¤Ü" "¥Ü" ("Î" "Þ")))
+ ;;((pkey_jp106_slash pkey_jp106_bracketleft) ("¡¦" "¡¦" "¥"))
+
+ ;; left hand side without shift
+ ((pkey_jp106_x (chord lkey_Thumb_Shift_R pkey_jp106_bracketleft))
+ ("¤Ô" "¥Ô" ("Ë" "ß")))
+ ((pkey_jp106_v (chord lkey_Thumb_Shift_R pkey_jp106_bracketleft))
+ ("¤×" "¥×" ("Ì" "ß")))
+ ((pkey_jp106_b (chord lkey_Thumb_Shift_R pkey_jp106_bracketleft))
+ ("¤Ú" "¥Ú" ("Í" "ß")))
+
+ ;; right hand side without shift
+ ((pkey_jp106_h (chord lkey_Thumb_Shift_R pkey_jp106_bracketleft))
+ ("¤Ñ" "¥Ñ" ("Ê" "ß")))
+ ((pkey_jp106_period (chord lkey_Thumb_Shift_R pkey_jp106_bracketleft))
+ ("¤Ý" "¥Ý" ("Î" "ß")))
+ ))
+
+(define ja-nicola-jp106-pseudo-thumb-shift-ruleset
+ '((((lkey_Henkan press peek)) (($1 lkey_Thumb_Shift_R loopback)))
+ (((lkey_Henkan release peek)) (($1 lkey_Thumb_Shift_R loopback)))
+ (((lkey_Muhenkan press peek)) (($1 lkey_Thumb_Shift_L loopback)))
+ (((lkey_Muhenkan release peek)) (($1 lkey_Thumb_Shift_L loopback)))))
+
+(define ja-nicola-ruleset-name-list
+ '(core
+ postfixed-voiced-consonant))
+
+(ja-define-dedicated-rulesets 'ja-nicola ja-nicola-ruleset-name-list)
+
+(define ja-nicola-hiragana-ruleset
+ (append
+ ja-nicola-hiragana-core-ruleset
+ ja-nicola-hiragana-postfixed-voiced-consonant-ruleset
+ ja-nicola-jp106-pseudo-thumb-shift-ruleset))
+
+(define ja-nicola-katakana-ruleset
+ (append
+ ja-nicola-katakana-core-ruleset
+ ja-nicola-katakana-postfixed-voiced-consonant-ruleset
+ ja-nicola-jp106-pseudo-thumb-shift-ruleset))
+
+(define ja-nicola-halfkana-ruleset
+ (append
+ ja-nicola-halfkana-core-ruleset
+ ja-nicola-halfkana-postfixed-voiced-consonant-ruleset
+ ja-nicola-jp106-pseudo-thumb-shift-ruleset))
Added: branches/composer/scm/ng-japanese-azik.scm
===================================================================
--- branches/composer/scm/ng-japanese-azik.scm 2005-02-24 00:59:57 UTC (rev 707)
+++ branches/composer/scm/ng-japanese-azik.scm 2005-02-24 01:26:18 UTC (rev 708)
@@ -0,0 +1,610 @@
+;;; ng-japanese-azik.scm: AZIK composition rulesets for Japanese
+;;;
+;;; Copyright (c) 2003-2005 uim Project http://uim.freedesktop.org/
+;;;
+;;; All rights reserved.
+;;;
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+;;; 1. Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+;;; 2. Redistributions in binary form must reproduce the above copyright
+;;; notice, this list of conditions and the following disclaimer in the
+;;; documentation and/or other materials provided with the distribution.
+;;; 3. Neither the name of authors nor the names of its contributors
+;;; may be used to endorse or promote products derived from this software
+;;; without specific prior written permission.
+;;;
+;;; THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+;;; SUCH DAMAGE.
+;;;;
+
+(require "ng-japanese-romaji.scm")
+
+
+(define ja-azik-core-ruleset
+ '(
+ ((":") ("¡¼" "¡¼" "°"))
+ ((";") ("¤Ã" "¥Ã" "¯"))
+ (("b" "d") (("¤Ù" "¤ó") ("¥Ù" "¥ó") ("Í" "Þ" "Ý")))
+ (("b" "g" "a") (("¤Ó" "¤ã") ("¥Ó" "¥ã") ("Ë" "Þ" "¬")))
+ (("b" "g" "d") (("¤Ó" "¤§" "¤ó") ("¥Ó" "¥§" "¥ó") ("Ë" "Þ" "ª" "Ý")))
+ (("b" "g" "e") (("¤Ó" "¤§") ("¥Ó" "¥§") ("Ë" "Þ" "ª")))
+ (("b" "g" "h") (("¤Ó" "¤å" "¤¦") ("¥Ó" "¥å" "¥¦") ("Ë" "Þ" "" "³")))
+ (("b" "g" "j") (("¤Ó" "¤å" "¤ó") ("¥Ó" "¥å" "¥ó") ("Ë" "Þ" "" "Ý")))
+ (("b" "g" "l") (("¤Ó" "¤ç" "¤ó") ("¥Ó" "¥ç" "¥ó") ("Ë" "Þ" "®" "Ý")))
+ (("b" "g" "n") (("¤Ó" "¤ã" "¤ó") ("¥Ó" "¥ã" "¥ó") ("Ë" "Þ" "¬" "Ý")))
+ (("b" "g" "o") (("¤Ó" "¤ç") ("¥Ó" "¥ç") ("Ë" "Þ" "®")))
+ (("b" "g" "p") (("¤Ó" "¤ç" "¤¦") ("¥Ó" "¥ç" "¥¦") ("Ë" "Þ" "®" "³")))
+ (("b" "g" "q") (("¤Ó" "¤ã" "¤¤") ("¥Ó" "¥ã" "¥¤") ("Ë" "Þ" "¬" "²")))
+ (("b" "g" "u") (("¤Ó" "¤å") ("¥Ó" "¥å") ("Ë" "Þ" "")))
+ (("b" "g" "w") (("¤Ó" "¤§" "¤¤") ("¥Ó" "¥§" "¥¤") ("Ë" "Þ" "ª" "²")))
+ (("b" "g" "z") (("¤Ó" "¤ã" "¤ó") ("¥Ó" "¥ã" "¥ó") ("Ë" "Þ" "¬" "Ý")))
+ (("b" "h") (("¤Ö" "¤¦") ("¥Ö" "¥¦") ("Ì" "Þ" "³")))
+ (("b" "j") (("¤Ö" "¤ó") ("¥Ö" "¥ó") ("Ì" "Þ" "Ý")))
+ (("b" "k") (("¤Ó" "¤ó") ("¥Ó" "¥ó") ("Ë" "Þ" "Ý")))
+ (("b" "l") (("¤Ü" "¤ó") ("¥Ü" "¥ó") ("Î" "Þ" "Ý")))
+ (("b" "n") (("¤Ð" "¤ó") ("¥Ð" "¥ó") ("Ê" "Þ" "Ý")))
+ (("b" "p") (("¤Ü" "¤¦") ("¥Ü" "¥¦") ("Î" "Þ" "³")))
+ (("b" "q") (("¤Ð" "¤¤") ("¥Ð" "¥¤") ("Ê" "Þ" "²")))
+ (("b" "t") (("¤Ó" "¤È") ("¥Ó" "¥È") ("Ë" "Þ" "Ä")))
+ (("b" "w") (("¤Ù" "¤¤") ("¥Ù" "¥¤") ("Í" "Þ" "²")))
+ (("b" "y" "d") (("¤Ó" "¤§" "¤ó") ("¥Ó" "¥§" "¥ó") ("Ë" "Þ" "ª" "Ý")))
+ (("b" "y" "h") (("¤Ó" "¤å" "¤¦") ("¥Ó" "¥å" "¥¦") ("Ë" "Þ" "" "³")))
+ (("b" "y" "j") (("¤Ó" "¤å" "¤ó") ("¥Ó" "¥å" "¥ó") ("Ë" "Þ" "" "Ý")))
+ (("b" "y" "l") (("¤Ó" "¤ç" "¤ó") ("¥Ó" "¥ç" "¥ó") ("Ë" "Þ" "®" "Ý")))
+ (("b" "y" "n") (("¤Ó" "¤ã" "¤ó") ("¥Ó" "¥ã" "¥ó") ("Ë" "Þ" "¬" "Ý")))
+ (("b" "y" "p") (("¤Ó" "¤ç" "¤¦") ("¥Ó" "¥ç" "¥¦") ("Ë" "Þ" "®" "³")))
+ (("b" "y" "q") (("¤Ó" "¤ã" "¤¤") ("¥Ó" "¥ã" "¥¤") ("Ë" "Þ" "¬" "²")))
+ (("b" "y" "w") (("¤Ó" "¤§" "¤¤") ("¥Ó" "¥§" "¥¤") ("Ë" "Þ" "ª" "²")))
+ (("b" "y" "z") (("¤Ó" "¤ã" "¤ó") ("¥Ó" "¥ã" "¥ó") ("Ë" "Þ" "¬" "Ý")))
+ (("b" "z") (("¤Ð" "¤ó") ("¥Ð" "¥ó") ("Ê" "Þ" "Ý")))
+ (("c" "a") (("¤Á" "¤ã") ("¥Á" "¥ã") ("Á" "¬")))
+ (("c" "d") (("¤Á" "¤§" "¤ó") ("¥Á" "¥§" "¥ó") ("Á" "ª" "Ý")))
+ (("c" "e") (("¤Á" "¤§") ("¥Á" "¥§") ("Á" "ª")))
+ (("c" "h") (("¤Á" "¤å" "¤¦") ("¥Á" "¥å" "¥¦") ("Á" "" "³")))
+ (("c" "j") (("¤Á" "¤å" "¤ó") ("¥Á" "¥å" "¥ó") ("Á" "" "Ý")))
+ (("c" "l") (("¤Á" "¤ç" "¤ó") ("¥Á" "¥ç" "¥ó") ("Á" "®" "Ý")))
+ (("c" "n") (("¤Á" "¤ã" "¤ó") ("¥Á" "¥ã" "¥ó") ("Á" "¬" "Ý")))
+ (("c" "o") (("¤Á" "¤ç") ("¥Á" "¥ç") ("Á" "®")))
+ (("c" "p") (("¤Á" "¤ç" "¤¦") ("¥Á" "¥ç" "¥¦") ("Á" "®" "³")))
+ (("c" "q") (("¤Á" "¤ã" "¤¤") ("¥Á" "¥ã" "¥¤") ("Á" "¬" "²")))
+ (("c" "u") (("¤Á" "¤å") ("¥Á" "¥å") ("Á" "")))
+ (("c" "w") (("¤Á" "¤§" "¤¤") ("¥Á" "¥§" "¥¤") ("Á" "ª" "²")))
+ (("c" "y" "a") (("¤Á" "¤ã") ("¥Á" "¥ã") ("Á" "¬")))
+ (("c" "y" "e") (("¤Á" "¤§") ("¥Á" "¥§") ("Á" "ª")))
+ (("c" "y" "i") (("¤Á" "¤£") ("¥Á" "¥£") ("Á" "¨")))
+ (("c" "y" "o") (("¤Á" "¤ç") ("¥Á" "¥ç") ("Á" "®")))
+ (("c" "y" "u") (("¤Á" "¤å") ("¥Á" "¥å") ("Á" "")))
+ (("c" "z") (("¤Á" "¤ã" "¤ó") ("¥Á" "¥ã" "¥ó") ("Á" "¬" "Ý")))
+ (("d" "c" "i") (("¤Ç" "¤£") ("¥Ç" "¥£") ("Ã" "Þ" "¨")))
+ (("d" "c" "u") (("¤É" "¤¥") ("¥É" "¥¥") ("Ä" "Þ" "©")))
+ (("d" "d") (("¤Ç" "¤ó") ("¥Ç" "¥ó") ("Ã" "Þ" "Ý")))
+ (("d" "f") ("¤Ç" "¥Ç" "Ã" "Þ"))
+ (("d" "g" "i") (("¤Ç" "¤£") ("¥Ç" "¥£") ("Ã" "Þ" "¨")))
+ (("d" "g" "u") (("¤É" "¤¥") ("¥É" "¥¥") ("Ä" "Þ" "©")))
+ (("d" "h") (("¤Å" "¤¦") ("¥Å" "¥¦") ("Â" "Þ" "³")))
+ (("d" "j") (("¤Å" "¤ó") ("¥Å" "¥ó") ("Â" "Þ" "Ý")))
+ (("d" "k") (("¤Â" "¤ó") ("¥Â" "¥ó") ("Á" "Þ" "Ý")))
+ (("d" "l") (("¤É" "¤ó") ("¥É" "¥ó") ("Ä" "Þ" "Ý")))
+ (("d" "m") (("¤Ç" "¤â") ("¥Ç" "¥â") ("Ã" "Þ" "Ó")))
+ (("d" "n") (("¤À" "¤ó") ("¥À" "¥ó") ("À" "Þ" "Ý")))
+ (("d" "p") (("¤É" "¤¦") ("¥É" "¥¦") ("Ä" "Þ" "³")))
+ (("d" "q") (("¤À" "¤¤") ("¥À" "¥¤") ("À" "Þ" "²")))
+ (("d" "s") (("¤Ç" "¤¹") ("¥Ç" "¥¹") ("Ã" "Þ" "½")))
+ (("d" "t") (("¤À" "¤Á") ("¥À" "¥Á") ("À" "Þ" "Á")))
+ (("d" "w") (("¤Ç" "¤¤") ("¥Ç" "¥¤") ("Ã" "Þ" "²")))
+ (("d" "z") (("¤À" "¤ó") ("¥À" "¥ó") ("À" "Þ" "Ý")))
+ (("f" "d") (("¤Õ" "¤§" "¤ó") ("¥Õ" "¥§" "¥ó") ("Ì" "ª" "Ý")))
+ (("f" "h") (("¤Õ" "¤¦") ("¥Õ" "¥¦") ("Ì" "³")))
+ (("f" "j") (("¤Õ" "¤ó") ("¥Õ" "¥ó") ("Ì" "Ý")))
+ (("f" "k") (("¤Õ" "¤£" "¤ó") ("¥Õ" "¥£" "¥ó") ("Ì" "¨" "Ý")))
+ (("f" "l") (("¤Õ" "¤©" "¤ó") ("¥Õ" "¥©" "¥ó") ("Ì" "«" "Ý")))
+ (("f" "n") (("¤Õ" "¤¡" "¤ó") ("¥Õ" "¥¡" "¥ó") ("Ì" "§" "Ý")))
+ (("f" "p") (("¤Õ" "¤©" "¡¼") ("¥Õ" "¥©" "¡¼") ("Ì" "«" "°")))
+ (("f" "q") (("¤Õ" "¤¡" "¤¤") ("¥Õ" "¥¡" "¥¤") ("Ì" "§" "²")))
+ (("f" "w") (("¤Õ" "¤§" "¤¤") ("¥Õ" "¥§" "¥¤") ("Ì" "ª" "²")))
+ (("f" "z") (("¤Õ" "¤¡" "¤ó") ("¥Õ" "¥¡" "¥ó") ("Ì" "§" "Ý")))
+ (("g" "d") (("¤²" "¤ó") ("¥²" "¥ó") ("¹" "Þ" "Ý")))
+ (("g" "g" "a") (("¤®" "¤ã") ("¥®" "¥ã") ("·" "Þ" "¬")))
+ (("g" "g" "u") (("¤®" "¤å") ("¥®" "¥å") ("·" "Þ" "")))
+ (("g" "g" "e") (("¤®" "¤§") ("¥®" "¥§") ("·" "Þ" "ª")))
+ (("g" "g" "o") (("¤®" "¤ç") ("¥®" "¥ç") ("·" "Þ" "®")))
+ (("g" "g" "z") (("¤®" "¤ã" "¤ó") ("¥®" "¥ã" "¥ó") ("·" "Þ" "¬" "Ý")))
+ (("g" "g" "n") (("¤®" "¤ã" "¤ó") ("¥®" "¥ã" "¥ó") ("·" "Þ" "¬" "Ý")))
+ (("g" "g" "j") (("¤®" "¤å" "¤ó") ("¥®" "¥å" "¥ó") ("·" "Þ" "" "Ý")))
+ (("g" "g" "d") (("¤®" "¤§" "¤ó") ("¥®" "¥§" "¥ó") ("·" "Þ" "ª" "Ý")))
+ (("g" "g" "l") (("¤®" "¤ç" "¤ó") ("¥®" "¥ç" "¥ó") ("·" "Þ" "®" "Ý")))
+ (("g" "g" "q") (("¤®" "¤ã" "¤¤") ("¥®" "¥ã" "¥¤") ("·" "Þ" "¬" "²")))
+ (("g" "g" "h") (("¤®" "¤å" "¤¦") ("¥®" "¥å" "¥¦") ("·" "Þ" "" "³")))
+ (("g" "g" "w") (("¤®" "¤§" "¤¤") ("¥®" "¥§" "¥¤") ("·" "Þ" "ª" "²")))
+ (("g" "g" "p") (("¤®" "¤ç" "¤¦") ("¥®" "¥ç" "¥¦") ("·" "Þ" "®" "³")))
+ (("g" "h") (("¤°" "¤¦") ("¥°" "¥¦") ("¸" "Þ" "³")))
+ (("g" "j") (("¤°" "¤ó") ("¥°" "¥ó") ("¸" "Þ" "Ý")))
+ (("g" "k") (("¤®" "¤ó") ("¥®" "¥ó") ("·" "Þ" "Ý")))
+ (("g" "l") (("¤´" "¤ó") ("¥´" "¥ó") ("º" "Þ" "Ý")))
+ (("g" "n") (("¤¬" "¤ó") ("¥¬" "¥ó") ("¶" "Þ" "Ý")))
+ (("g" "p") (("¤´" "¤¦") ("¥´" "¥¦") ("º" "Þ" "³")))
+ (("g" "q") (("¤¬" "¤¤") ("¥¬" "¥¤") ("¶" "Þ" "²")))
+ (("g" "r") (("¤¬" "¤é") ("¥¬" "¥é") ("¶" "Þ" "×")))
+ (("g" "t") (("¤´" "¤È") ("¥´" "¥È") ("º" "Þ" "Ä")))
+ (("g" "w") (("¤²" "¤¤") ("¥²" "¥¤") ("¹" "Þ" "²")))
+ (("g" "w" "a") (("¤°" "¤¡") ("¥°" "¥¡") ("¸" "Þ" "§")))
+ (("g" "w" "e") (("¤°" "¤§") ("¥°" "¥§") ("¸" "Þ" "ª")))
+ (("g" "w" "i") (("¤°" "¤£") ("¥°" "¥£") ("¸" "Þ" "¨")))
+ (("g" "w" "o") (("¤°" "¤©") ("¥°" "¥©") ("¸" "Þ" "«")))
+ (("g" "w" "u") (("¤°" "¤¥") ("¥°" "¥¥") ("¸" "Þ" "©")))
+ (("g" "y" "d") (("¤®" "¤§" "¤ó") ("¥®" "¥§" "¥ó") ("·" "Þ" "ª" "Ý")))
+ (("g" "y" "h") (("¤®" "¤å" "¤¦") ("¥®" "¥å" "¥¦") ("·" "Þ" "" "³")))
+ (("g" "y" "j") (("¤®" "¤å" "¤ó") ("¥®" "¥å" "¥ó") ("·" "Þ" "" "Ý")))
+ (("g" "y" "l") (("¤®" "¤ç" "¤ó") ("¥®" "¥ç" "¥ó") ("·" "Þ" "®" "Ý")))
+ (("g" "y" "n") (("¤®" "¤ã" "¤ó") ("¥®" "¥ã" "¥ó") ("·" "Þ" "¬" "Ý")))
+ (("g" "y" "p") (("¤®" "¤ç" "¤¦") ("¥®" "¥ç" "¥¦") ("·" "Þ" "®" "³")))
+ (("g" "y" "q") (("¤®" "¤ã" "¤¤") ("¥®" "¥ã" "¥¤") ("·" "Þ" "¬" "²")))
+ (("g" "y" "w") (("¤®" "¤§" "¤¤") ("¥®" "¥§" "¥¤") ("·" "Þ" "ª" "²")))
+ (("g" "y" "z") (("¤®" "¤ã" "¤ó") ("¥®" "¥ã" "¥ó") ("·" "Þ" "¬" "Ý")))
+ (("g" "z") (("¤¬" "¤ó") ("¥¬" "¥ó") ("¶" "Þ" "Ý")))
+ (("h" "d") (("¤Ø" "¤ó") ("¥Ø" "¥ó") ("Í" "Ý")))
+ (("h" "g" "a") (("¤Ò" "¤ã") ("¥Ò" "¥ã") ("Ë" "¬")))
+ (("h" "g" "d") (("¤Ò" "¤§" "¤ó") ("¥Ò" "¥§" "¥ó") ("Ë" "ª" "Ý")))
+ (("h" "g" "e") (("¤Ò" "¤§") ("¥Ò" "¥§") ("Ë" "ª")))
+ (("h" "g" "h") (("¤Ò" "¤å" "¤¦") ("¥Ò" "¥å" "¥¦") ("Ë" "" "³")))
+ (("h" "g" "j") (("¤Ò" "¤å" "¤ó") ("¥Ò" "¥å" "¥ó") ("Ë" "" "Ý")))
+ (("h" "g" "l") (("¤Ò" "¤ç" "¤ó") ("¥Ò" "¥ç" "¥ó") ("Ë" "®" "Ý")))
+ (("h" "g" "n") (("¤Ò" "¤ã" "¤ó") ("¥Ò" "¥ã" "¥ó") ("Ë" "¬" "Ý")))
+ (("h" "g" "o") (("¤Ò" "¤ç") ("¥Ò" "¥ç") ("Ë" "®")))
+ (("h" "g" "p") (("¤Ò" "¤ç" "¤¦") ("¥Ò" "¥ç" "¥¦") ("Ë" "®" "³")))
+ (("h" "g" "q") (("¤Ò" "¤ã" "¤¤") ("¥Ò" "¥ã" "¥¤") ("Ë" "¬" "²")))
+ (("h" "g" "u") (("¤Ò" "¤å") ("¥Ò" "¥å") ("Ë" "")))
+ (("h" "g" "w") (("¤Ò" "¤§" "¤¤") ("¥Ò" "¥§" "¥¤") ("Ë" "ª" "²")))
+ (("h" "g" "z") (("¤Ò" "¤ã" "¤ó") ("¥Ò" "¥ã" "¥ó") ("Ë" "¬" "Ý")))
+ (("h" "h") (("¤Õ" "¤¦") ("¥Õ" "¥¦") ("Ì" "³")))
+ (("h" "j") (("¤Õ" "¤ó") ("¥Õ" "¥ó") ("Ì" "Ý")))
+ (("h" "k") (("¤Ò" "¤ó") ("¥Ò" "¥ó") ("Ë" "Ý")))
+ (("h" "l") (("¤Û" "¤ó") ("¥Û" "¥ó") ("Î" "Ý")))
+ (("h" "n") (("¤Ï" "¤ó") ("¥Ï" "¥ó") ("Ê" "Ý")))
+ (("h" "p") (("¤Û" "¤¦") ("¥Û" "¥¦") ("Î" "³")))
+ (("h" "q") (("¤Ï" "¤¤") ("¥Ï" "¥¤") ("Ê" "²")))
+ (("h" "t") (("¤Ò" "¤È") ("¥Ò" "¥È") ("Ë" "Ä")))
+ (("h" "w") (("¤Ø" "¤¤") ("¥Ø" "¥¤") ("Í" "²")))
+ (("h" "y" "d") (("¤Ò" "¤§" "¤ó") ("¥Ò" "¥§" "¥ó") ("Ë" "ª" "Ý")))
+ (("h" "y" "h") (("¤Ò" "¤å" "¤¦") ("¥Ò" "¥å" "¥¦") ("Ë" "" "³")))
+ (("h" "y" "j") (("¤Ò" "¤å" "¤ó") ("¥Ò" "¥å" "¥ó") ("Ë" "" "Ý")))
+ (("h" "y" "l") (("¤Ò" "¤ç" "¤ó") ("¥Ò" "¥ç" "¥ó") ("Ë" "®" "Ý")))
+ (("h" "y" "n") (("¤Ò" "¤ã" "¤ó") ("¥Ò" "¥ã" "¥ó") ("Ë" "¬" "Ý")))
+ (("h" "y" "p") (("¤Ò" "¤ç" "¤¦") ("¥Ò" "¥ç" "¥¦") ("Ë" "®" "³")))
+ (("h" "y" "q") (("¤Ò" "¤ã" "¤¤") ("¥Ò" "¥ã" "¥¤") ("Ë" "¬" "²")))
+ (("h" "y" "w") (("¤Ò" "¤§" "¤¤") ("¥Ò" "¥§" "¥¤") ("Ë" "ª" "²")))
+ (("h" "y" "z") (("¤Ò" "¤ã" "¤ó") ("¥Ò" "¥ã" "¥ó") ("Ë" "¬" "Ý")))
+ (("h" "z") (("¤Ï" "¤ó") ("¥Ï" "¥ó") ("Ê" "Ý")))
+ (("j" "d") (("¤¸" "¤§" "¤ó") ("¥¸" "¥§" "¥ó") ("¼" "Þ" "ª" "Ý")))
+ (("j" "f") (("¤¸" "¤å") ("¥¸" "¥å") ("¼" "Þ" "")))
+ (("j" "h") (("¤¸" "¤å" "¤¦") ("¥¸" "¥å" "¥¦") ("¼" "Þ" "" "³")))
+ (("j" "j") (("¤¸" "¤å" "¤ó") ("¥¸" "¥å" "¥ó") ("¼" "Þ" "" "Ý")))
+ (("j" "k") (("¤¸" "¤ó") ("¥¸" "¥ó") ("¼" "Þ" "Ý")))
+ (("j" "l") (("¤¸" "¤ç" "¤ó") ("¥¸" "¥ç" "¥ó") ("¼" "Þ" "®" "Ý")))
+ (("j" "n") (("¤¸" "¤ã" "¤ó") ("¥¸" "¥ã" "¥ó") ("¼" "Þ" "¬" "Ý")))
+ (("j" "p") (("¤¸" "¤ç" "¤¦") ("¥¸" "¥ç" "¥¦") ("¼" "Þ" "®" "³")))
+ (("j" "q") (("¤¸" "¤ã" "¤¤") ("¥¸" "¥ã" "¥¤") ("¼" "Þ" "¬" "²")))
+ (("j" "w") (("¤¸" "¤§" "¤¤") ("¥¸" "¥§" "¥¤") ("¼" "Þ" "ª" "²")))
+ (("j" "y" "a") (("¤¸" "¤ã") ("¥¸" "¥ã") ("¼" "Þ" "¬")))
+ (("j" "y" "e") (("¤¸" "¤§") ("¥¸" "¥§") ("¼" "Þ" "ª")))
+ (("j" "y" "i") (("¤¸" "¤£") ("¥¸" "¥£") ("¼" "Þ" "¨")))
+ (("j" "y" "o") (("¤¸" "¤ç") ("¥¸" "¥ç") ("¼" "Þ" "®")))
+ (("j" "y" "u") (("¤¸" "¤å") ("¥¸" "¥å") ("¼" "Þ" "")))
+ (("j" "z") (("¤¸" "¤ã" "¤ó") ("¥¸" "¥ã" "¥ó") ("¼" "Þ" "¬" "Ý")))
+ (("k" "d") (("¤±" "¤ó") ("¥±" "¥ó") ("¹" "Ý")))
+ (("k" "f") ("¤" "¥" "·"))
+ (("k" "g" "a") (("¤" "¤ã") ("¥" "¥ã") ("·" "¬")))
+ (("k" "g" "d") (("¤" "¤§" "¤ó") ("¥" "¥§" "¥ó") ("·" "ª" "Ý")))
+ (("k" "g" "e") (("¤" "¤§") ("¥" "¥§") ("·" "ª")))
+ (("k" "g" "h") (("¤" "¤å" "¤¦") ("¥" "¥å" "¥¦") ("·" "" "³")))
+ (("k" "g" "j") (("¤" "¤å" "¤ó") ("¥" "¥å" "¥ó") ("·" "" "Ý")))
+ (("k" "g" "l") (("¤" "¤ç" "¤ó") ("¥" "¥ç" "¥ó") ("·" "®" "Ý")))
+ (("k" "g" "n") (("¤" "¤ã" "¤ó") ("¥" "¥ã" "¥ó") ("·" "¬" "Ý")))
+ (("k" "g" "o") (("¤" "¤ç") ("¥" "¥ç") ("·" "®")))
+ (("k" "g" "p") (("¤" "¤ç" "¤¦") ("¥" "¥ç" "¥¦") ("·" "®" "³")))
+ (("k" "g" "q") (("¤" "¤ã" "¤¤") ("¥" "¥ã" "¥¤") ("·" "¬" "²")))
+ (("k" "g" "u") (("¤" "¤å") ("¥" "¥å") ("·" "")))
+ (("k" "g" "w") (("¤" "¤§" "¤¤") ("¥" "¥§" "¥¤") ("·" "ª" "²")))
+ (("k" "g" "z") (("¤" "¤ã" "¤ó") ("¥" "¥ã" "¥ó") ("·" "¬" "Ý")))
+ (("k" "h") (("¤¯" "¤¦") ("¥¯" "¥¦") ("¸" "³")))
+ (("k" "j") (("¤¯" "¤ó") ("¥¯" "¥ó") ("¸" "Ý")))
+ (("k" "k") (("¤" "¤ó") ("¥" "¥ó") ("·" "Ý")))
+ (("k" "l") (("¤³" "¤ó") ("¥³" "¥ó") ("º" "Ý")))
+ (("k" "m") (("¤«" "¤â") ("¥«" "¥â") ("¶" "Ó")))
+ (("k" "n") (("¤«" "¤ó") ("¥«" "¥ó") ("¶" "Ý")))
+ (("k" "p") (("¤³" "¤¦") ("¥³" "¥¦") ("º" "³")))
+ (("k" "q") (("¤«" "¤¤") ("¥«" "¥¤") ("¶" "²")))
+ (("k" "r") (("¤«" "¤é") ("¥«" "¥é") ("¶" "×")))
+ (("k" "t") (("¤³" "¤È") ("¥³" "¥È") ("º" "Ä")))
+ (("k" "w") (("¤±" "¤¤") ("¥±" "¥¤") ("¹" "²")))
+ (("k" "y" "d") (("¤" "¤§" "¤ó") ("¥" "¥§" "¥ó") ("·" "ª" "Ý")))
+ (("k" "y" "h") (("¤" "¤å" "¤¦") ("¥" "¥å" "¥¦") ("·" "" "³")))
+ (("k" "y" "j") (("¤" "¤å" "¤ó") ("¥" "¥å" "¥ó") ("·" "" "Ý")))
+ (("k" "y" "l") (("¤" "¤ç" "¤ó") ("¥" "¥ç" "¥ó") ("·" "®" "Ý")))
+ (("k" "y" "n") (("¤" "¤ã" "¤ó") ("¥" "¥ã" "¥ó") ("·" "¬" "Ý")))
+ (("k" "y" "p") (("¤" "¤ç" "¤¦") ("¥" "¥ç" "¥¦") ("·" "®" "³")))
+ (("k" "y" "q") (("¤" "¤ã" "¤¤") ("¥" "¥ã" "¥¤") ("·" "¬" "²")))
+ (("k" "y" "w") (("¤" "¤§" "¤¤") ("¥" "¥§" "¥¤") ("·" "ª" "²")))
+ (("k" "y" "z") (("¤" "¤ã" "¤ó") ("¥" "¥ã" "¥ó") ("·" "¬" "Ý")))
+ (("k" "z") (("¤«" "¤ó") ("¥«" "¥ó") ("¶" "Ý")))
+ (("l" "a") ("¤¡" "¥¡" "§"))
+ (("l" "e") ("¤§" "¥§" "ª"))
+ (("l" "i") ("¤£" "¥£" "¨"))
+ (("l" "o") ("¤©" "¥©" "«"))
+ (("l" "u") ("¤¥" "¥¥" "©"))
+ (("l" "y" "a") ("¤ã" "¥ã" "¬"))
+ (("l" "y" "e") (("¤ê" "¤§") ("¥ê" "¥§") ("Ø" "ª")))
+ (("l" "y" "i") (("¤ê" "¤£") ("¥ê" "¥£") ("Ø" "¨")))
+ (("l" "y" "o") ("¤ç" "¥ç" "®"))
+ (("l" "y" "u") ("¤å" "¥å" ""))
+ (("m" "d") (("¤á" "¤ó") ("¥á" "¥ó") ("Ò" "Ý")))
+ (("m" "g" "a") (("¤ß" "¤ã") ("¥ß" "¥ã") ("Ð" "¬")))
+ (("m" "g" "d") (("¤ß" "¤§" "¤ó") ("¥ß" "¥§" "¥ó") ("Ð" "ª" "Ý")))
+ (("m" "g" "e") (("¤ß" "¤§") ("¥ß" "¥§") ("Ð" "ª")))
+ (("m" "g" "h") (("¤ß" "¤å" "¤¦") ("¥ß" "¥å" "¥¦") ("Ð" "" "³")))
+ (("m" "g" "j") (("¤ß" "¤å" "¤ó") ("¥ß" "¥å" "¥ó") ("Ð" "" "Ý")))
+ (("m" "g" "l") (("¤ß" "¤ç" "¤ó") ("¥ß" "¥ç" "¥ó") ("Ð" "®" "Ý")))
+ (("m" "g" "n") (("¤ß" "¤ã" "¤ó") ("¥ß" "¥ã" "¥ó") ("Ð" "¬" "Ý")))
+ (("m" "g" "o") (("¤ß" "¤ç") ("¥ß" "¥ç") ("Ð" "®")))
+ (("m" "g" "p") (("¤ß" "¤ç" "¤¦") ("¥ß" "¥ç" "¥¦") ("Ð" "®" "³")))
+ (("m" "g" "q") (("¤ß" "¤ã" "¤¤") ("¥ß" "¥ã" "¥¤") ("Ð" "¬" "²")))
+ (("m" "g" "u") (("¤ß" "¤å") ("¥ß" "¥å") ("Ð" "")))
+ (("m" "g" "w") (("¤ß" "¤§" "¤¤") ("¥ß" "¥§" "¥¤") ("Ð" "ª" "²")))
+ (("m" "g" "z") (("¤ß" "¤ã" "¤ó") ("¥ß" "¥ã" "¥ó") ("Ð" "¬" "Ý")))
+ (("m" "f") ("¤à" "¥à" "Ñ"))
+ (("m" "h") (("¤à" "¤¦") ("¥à" "¥¦") ("Ñ" "³")))
+ (("m" "j") (("¤à" "¤ó") ("¥à" "¥ó") ("Ñ" "Ý")))
+ (("m" "k") (("¤ß" "¤ó") ("¥ß" "¥ó") ("Ð" "Ý")))
+ (("m" "l") (("¤â" "¤ó") ("¥â" "¥ó") ("Ó" "Ý")))
+ (("m" "n") (("¤â" "¤Î") ("¥â" "¥Î") ("Ó" "É")))
+ (("m" "p") (("¤â" "¤¦") ("¥â" "¥¦") ("Ó" "³")))
+ (("m" "q") (("¤Þ" "¤¤") ("¥Þ" "¥¤") ("Ï" "²")))
+ (("m" "s") (("¤Þ" "¤¹") ("¥Þ" "¥¹") ("Ï" "½")))
+ (("m" "t") (("¤Þ" "¤¿") ("¥Þ" "¥¿") ("Ï" "À")))
+ (("m" "w") (("¤á" "¤¤") ("¥á" "¥¤") ("Ò" "²")))
+ (("m" "y" "d") (("¤ß" "¤§" "¤ó") ("¥ß" "¥§" "¥ó") ("Ð" "ª" "Ý")))
+ (("m" "y" "h") (("¤ß" "¤å" "¤¦") ("¥ß" "¥å" "¥¦") ("Ð" "" "³")))
+ (("m" "y" "j") (("¤ß" "¤å" "¤ó") ("¥ß" "¥å" "¥ó") ("Ð" "" "Ý")))
+ (("m" "y" "l") (("¤ß" "¤ç" "¤ó") ("¥ß" "¥ç" "¥ó") ("Ð" "®" "Ý")))
+ (("m" "y" "n") (("¤ß" "¤ã" "¤ó") ("¥ß" "¥ã" "¥ó") ("Ð" "¬" "Ý")))
+ (("m" "y" "p") (("¤ß" "¤ç" "¤¦") ("¥ß" "¥ç" "¥¦") ("Ð" "®" "³")))
+ (("m" "y" "q") (("¤ß" "¤ã" "¤¤") ("¥ß" "¥ã" "¥¤") ("Ð" "¬" "²")))
+ (("m" "y" "w") (("¤ß" "¤§" "¤¤") ("¥ß" "¥§" "¥¤") ("Ð" "ª" "²")))
+ (("m" "y" "z") (("¤ß" "¤ã" "¤ó") ("¥ß" "¥ã" "¥ó") ("Ð" "¬" "Ý")))
+ (("m" "z") (("¤Þ" "¤ó") ("¥Þ" "¥ó") ("Ï" "Ý")))
+ (("n") ("¤ó" "¥ó" "Ý"))
+ (("n" "b") (("¤Í" "¤Ð") ("¥Í" "¥Ð") ("È" "Ê" "Þ")))
+ (("n" "d") (("¤Í" "¤ó") ("¥Í" "¥ó") ("È" "Ý")))
+ (("n" "g" "a") (("¤Ë" "¤ã") ("¥Ë" "¥ã") ("Æ" "¬")))
+ (("n" "g" "d") (("¤Ë" "¤§" "¤ó") ("¥Ë" "¥§" "¥ó") ("Æ" "ª" "Ý")))
+ (("n" "g" "e") (("¤Ë" "¤§") ("¥Ë" "¥§") ("Æ" "ª")))
+ (("n" "g" "h") (("¤Ë" "¤å" "¤¦") ("¥Ë" "¥å" "¥¦") ("Æ" "" "³")))
+ (("n" "g" "j") (("¤Ë" "¤å" "¤ó") ("¥Ë" "¥å" "¥ó") ("Æ" "" "Ý")))
+ (("n" "g" "l") (("¤Ë" "¤ç" "¤ó") ("¥Ë" "¥ç" "¥ó") ("Æ" "®" "Ý")))
+ (("n" "g" "n") (("¤Ë" "¤ã" "¤ó") ("¥Ë" "¥ã" "¥ó") ("Æ" "¬" "Ý")))
+ (("n" "g" "o") (("¤Ë" "¤ç") ("¥Ë" "¥ç") ("Æ" "®")))
+ (("n" "g" "p") (("¤Ë" "¤ç" "¤¦") ("¥Ë" "¥ç" "¥¦") ("Æ" "®" "³")))
+ (("n" "g" "q") (("¤Ë" "¤ã" "¤¤") ("¥Ë" "¥ã" "¥¤") ("Æ" "¬" "²")))
+ (("n" "g" "u") (("¤Ë" "¤å") ("¥Ë" "¥å") ("Æ" "")))
+ (("n" "g" "w") (("¤Ë" "¤§" "¤¤") ("¥Ë" "¥§" "¥¤") ("Æ" "ª" "²")))
+ (("n" "g" "z") (("¤Ë" "¤ã" "¤ó") ("¥Ë" "¥ã" "¥ó") ("Æ" "¬" "Ý")))
+ (("n" "h") (("¤Ì" "¤¦") ("¥Ì" "¥¦") ("Ç" "³")))
+ (("n" "j") (("¤Ì" "¤ó") ("¥Ì" "¥ó") ("Ç" "Ý")))
+ (("n" "k") (("¤Ë" "¤ó") ("¥Ë" "¥ó") ("Æ" "Ý")))
+ (("n" "l") (("¤Î" "¤ó") ("¥Î" "¥ó") ("É" "Ý")))
+ (("n" "p") (("¤Î" "¤¦") ("¥Î" "¥¦") ("É" "³")))
+ (("n" "q") (("¤Ê" "¤¤") ("¥Ê" "¥¤") ("Å" "²")))
+ (("n" "r") (("¤Ê" "¤ë") ("¥Ê" "¥ë") ("Å" "Ù")))
+ (("n" "t") (("¤Ë" "¤Á") ("¥Ë" "¥Á") ("Æ" "Á")))
+ (("n" "w") (("¤Í" "¤¤") ("¥Í" "¥¤") ("È" "²")))
+ (("n" "y" "d") (("¤Ë" "¤§" "¤ó") ("¥Ë" "¥§" "¥ó") ("Æ" "ª" "Ý")))
+ (("n" "y" "h") (("¤Ë" "¤å" "¤¦") ("¥Ë" "¥å" "¥¦") ("Æ" "" "³")))
+ (("n" "y" "j") (("¤Ë" "¤å" "¤ó") ("¥Ë" "¥å" "¥ó") ("Æ" "" "Ý")))
+ (("n" "y" "l") (("¤Ë" "¤ç" "¤ó") ("¥Ë" "¥ç" "¥ó") ("Æ" "®" "Ý")))
+ (("n" "y" "n") (("¤Ë" "¤ã" "¤ó") ("¥Ë" "¥ã" "¥ó") ("Æ" "¬" "Ý")))
+ (("n" "y" "p") (("¤Ë" "¤ç" "¤¦") ("¥Ë" "¥ç" "¥¦") ("Æ" "®" "³")))
+ (("n" "y" "q") (("¤Ë" "¤ã" "¤¤") ("¥Ë" "¥ã" "¥¤") ("Æ" "¬" "²")))
+ (("n" "y" "w") (("¤Ë" "¤§" "¤¤") ("¥Ë" "¥§" "¥¤") ("Æ" "ª" "²")))
+ (("n" "y" "z") (("¤Ë" "¤ã" "¤ó") ("¥Ë" "¥ã" "¥ó") ("Æ" "¬" "Ý")))
+ (("n" "z") (("¤Ê" "¤ó") ("¥Ê" "¥ó") ("Å" "Ý")))
+ (("p" "d") (("¤Ú" "¤ó") ("¥Ú" "¥ó") ("Í" "ß" "Ý")))
+ (("p" "g" "a") (("¤Ô" "¤ã") ("¥Ô" "¥ã") ("Ë" "ß" "¬")))
+ (("p" "g" "d") (("¤Ô" "¤§" "¤ó") ("¥Ô" "¥§" "¥ó") ("Ë" "ß" "ª" "Ý")))
+ (("p" "g" "e") (("¤Ô" "¤§") ("¥Ô" "¥§") ("Ë" "ß" "ª")))
+ (("p" "g" "h") (("¤Ô" "¤å" "¤¦") ("¥Ô" "¥å" "¥¦") ("Ë" "ß" "" "³")))
+ (("p" "g" "j") (("¤Ô" "¤å" "¤ó") ("¥Ô" "¥å" "¥ó") ("Ë" "ß" "" "Ý")))
+ (("p" "g" "l") (("¤Ô" "¤ç" "¤ó") ("¥Ô" "¥ç" "¥ó") ("Ë" "ß" "®" "Ý")))
+ (("p" "g" "n") (("¤Ô" "¤ã" "¤ó") ("¥Ô" "¥ã" "¥ó") ("Ë" "ß" "¬" "Ý")))
+ (("p" "g" "o") (("¤Ô" "¤ç") ("¥Ô" "¥ç") ("Ë" "ß" "®")))
+ (("p" "g" "p") (("¤Ô" "¤ç" "¤¦") ("¥Ô" "¥ç" "¥¦") ("Ë" "ß" "®" "³")))
+ (("p" "g" "q") (("¤Ô" "¤ã" "¤¤") ("¥Ô" "¥ã" "¥¤") ("Ë" "ß" "¬" "²")))
+ (("p" "g" "u") (("¤Ô" "¤å") ("¥Ô" "¥å") ("Ë" "ß" "")))
+ (("p" "g" "w") (("¤Ô" "¤§" "¤¤") ("¥Ô" "¥§" "¥¤") ("Ë" "ß" "ª" "²")))
+ (("p" "g" "z") (("¤Ô" "¤ã" "¤ó") ("¥Ô" "¥ã" "¥ó") ("Ë" "ß" "¬" "Ý")))
+ (("p" "h") (("¤×" "¤¦") ("¥×" "¥¦") ("Ì" "ß" "³")))
+ (("p" "j") (("¤×" "¤ó") ("¥×" "¥ó") ("Ì" "ß" "Ý")))
+ (("p" "k") (("¤Ô" "¤ó") ("¥Ô" "¥ó") ("Ë" "ß" "Ý")))
+ (("p" "l") (("¤Ý" "¤ó") ("¥Ý" "¥ó") ("Î" "ß" "Ý")))
+ (("p" "n") (("¤Ñ" "¤ó") ("¥Ñ" "¥ó") ("Ê" "ß" "Ý")))
+ (("p" "p") (("¤Ý" "¤¦") ("¥Ý" "¥¦") ("Î" "ß" "³")))
+ (("p" "q") (("¤Ñ" "¤¤") ("¥Ñ" "¥¤") ("Ê" "ß" "²")))
+ (("p" "w") (("¤Ú" "¤¤") ("¥Ú" "¥¤") ("Í" "ß" "²")))
+ (("p" "y" "d") (("¤Ô" "¤§" "¤ó") ("¥Ô" "¥§" "¥ó") ("Ë" "ß" "ª" "Ý")))
+ (("p" "y" "h") (("¤Ô" "¤å" "¤¦") ("¥Ô" "¥å" "¥¦") ("Ë" "ß" "" "³")))
+ (("p" "y" "j") (("¤Ô" "¤å" "¤ó") ("¥Ô" "¥å" "¥ó") ("Ë" "ß" "" "Ý")))
+ (("p" "y" "l") (("¤Ô" "¤ç" "¤ó") ("¥Ô" "¥ç" "¥ó") ("Ë" "ß" "®" "Ý")))
+ (("p" "y" "n") (("¤Ô" "¤ã" "¤ó") ("¥Ô" "¥ã" "¥ó") ("Ë" "ß" "¬" "Ý")))
+ (("p" "y" "p") (("¤Ô" "¤ç" "¤¦") ("¥Ô" "¥ç" "¥¦") ("Ë" "ß" "®" "³")))
+ (("p" "y" "q") (("¤Ô" "¤ã" "¤¤") ("¥Ô" "¥ã" "¥¤") ("Ë" "ß" "¬" "²")))
+ (("p" "y" "w") (("¤Ô" "¤§" "¤¤") ("¥Ô" "¥§" "¥¤") ("Ë" "ß" "ª" "²")))
+ (("p" "y" "z") (("¤Ô" "¤ã" "¤ó") ("¥Ô" "¥ã" "¥ó") ("Ë" "ß" "¬" "Ý")))
+ (("p" "z") (("¤Ñ" "¤ó") ("¥Ñ" "¥ó") ("Ê" "ß" "Ý")))
+ (("q") ("¤ó" "¥ó" "Ý"))
+ (("r" "d") (("¤ì" "¤ó") ("¥ì" "¥ó") ("Ú" "Ý")))
+ (("r" "g" "a") (("¤ê" "¤ã") ("¥ê" "¥ã") ("Ø" "¬")))
+ (("r" "g" "d") (("¤ê" "¤§" "¤ó") ("¥ê" "¥§" "¥ó") ("Ø" "ª" "Ý")))
+ (("r" "g" "e") (("¤ê" "¤§") ("¥ê" "¥§") ("Ø" "ª")))
+ (("r" "g" "h") (("¤ê" "¤å" "¤¦") ("¥ê" "¥å" "¥¦") ("Ø" "" "³")))
+ (("r" "g" "j") (("¤ê" "¤å" "¤ó") ("¥ê" "¥å" "¥ó") ("Ø" "" "Ý")))
+ (("r" "g" "l") (("¤ê" "¤ç" "¤ó") ("¥ê" "¥ç" "¥ó") ("Ø" "®" "Ý")))
+ (("r" "g" "n") (("¤ê" "¤ã" "¤ó") ("¥ê" "¥ã" "¥ó") ("Ø" "¬" "Ý")))
+ (("r" "g" "o") (("¤ê" "¤ç") ("¥ê" "¥ç") ("Ø" "®")))
+ (("r" "g" "p") (("¤ê" "¤ç" "¤¦") ("¥ê" "¥ç" "¥¦") ("Ø" "®" "³")))
+ (("r" "g" "q") (("¤ê" "¤ã" "¤¤") ("¥ê" "¥ã" "¥¤") ("Ø" "¬" "²")))
+ (("r" "g" "u") (("¤ê" "¤å") ("¥ê" "¥å") ("Ø" "")))
+ (("r" "g" "w") (("¤ê" "¤§" "¤¤") ("¥ê" "¥§" "¥¤") ("Ø" "ª" "²")))
+ (("r" "g" "z") (("¤ê" "¤ã" "¤ó") ("¥ê" "¥ã" "¥ó") ("Ø" "¬" "Ý")))
+ (("r" "h") (("¤ë" "¤¦") ("¥ë" "¥¦") ("Ù" "³")))
+ (("r" "j") (("¤ë" "¤ó") ("¥ë" "¥ó") ("Ù" "Ý")))
+ (("r" "k") (("¤ê" "¤ó") ("¥ê" "¥ó") ("Ø" "Ý")))
+ (("r" "l") (("¤í" "¤ó") ("¥í" "¥ó") ("Û" "Ý")))
+ (("r" "n") (("¤é" "¤ó") ("¥é" "¥ó") ("×" "Ý")))
+ (("r" "p") (("¤í" "¤¦") ("¥í" "¥¦") ("Û" "³")))
+ (("r" "q") (("¤é" "¤¤") ("¥é" "¥¤") ("×" "²")))
+ (("r" "r") (("¤é" "¤ì") ("¥é" "¥ì") ("×" "Ú")))
+ (("r" "w") (("¤ì" "¤¤") ("¥ì" "¥¤") ("Ú" "²")))
+ (("r" "y" "d") (("¤ê" "¤§" "¤ó") ("¥ê" "¥§" "¥ó") ("Ø" "ª" "Ý")))
+ (("r" "y" "h") (("¤ê" "¤å" "¤¦") ("¥ê" "¥å" "¥¦") ("Ø" "" "³")))
+ (("r" "y" "j") (("¤ê" "¤å" "¤ó") ("¥ê" "¥å" "¥ó") ("Ø" "" "Ý")))
+ (("r" "y" "l") (("¤ê" "¤ç" "¤ó") ("¥ê" "¥ç" "¥ó") ("Ø" "®" "Ý")))
+ (("r" "y" "n") (("¤ê" "¤ã" "¤ó") ("¥ê" "¥ã" "¥ó") ("Ø" "¬" "Ý")))
+ (("r" "y" "p") (("¤ê" "¤ç" "¤¦") ("¥ê" "¥ç" "¥¦") ("Ø" "®" "³")))
+ (("r" "y" "q") (("¤ê" "¤ã" "¤¤") ("¥ê" "¥ã" "¥¤") ("Ø" "¬" "²")))
+ (("r" "y" "w") (("¤ê" "¤§" "¤¤") ("¥ê" "¥§" "¥¤") ("Ø" "ª" "²")))
+ (("r" "y" "z") (("¤ê" "¤ã" "¤ó") ("¥ê" "¥ã" "¥ó") ("Ø" "¬" "Ý")))
+ (("r" "z") (("¤é" "¤ó") ("¥é" "¥ó") ("×" "Ý")))
+ (("s" "d") (("¤»" "¤ó") ("¥»" "¥ó") ("¾" "Ý")))
+ (("s" "f") (("¤µ" "¤¤") ("¥µ" "¥¤") ("»" "²")))
+ (("s" "h") (("¤¹" "¤¦") ("¥¹" "¥¦") ("½" "³")))
+ (("s" "j") (("¤¹" "¤ó") ("¥¹" "¥ó") ("½" "Ý")))
+ (("s" "k") (("¤·" "¤ó") ("¥·" "¥ó") ("¼" "Ý")))
+ (("s" "l") (("¤½" "¤ó") ("¥½" "¥ó") ("¿" "Ý")))
+ (("s" "n") (("¤µ" "¤ó") ("¥µ" "¥ó") ("»" "Ý")))
+ (("s" "p") (("¤½" "¤¦") ("¥½" "¥¦") ("¿" "³")))
+ (("s" "q") (("¤µ" "¤¤") ("¥µ" "¥¤") ("»" "²")))
+ (("s" "r") (("¤¹" "¤ë") ("¥¹" "¥ë") ("½" "Ù")))
+ (("s" "s") (("¤»" "¤¤") ("¥»" "¥¤") ("¾" "²")))
+ (("s" "t") (("¤·" "¤¿") ("¥·" "¥¿") ("¼" "À")))
+ (("s" "w") (("¤»" "¤¤") ("¥»" "¥¤") ("¾" "²")))
+ (("s" "y" "d") (("¤·" "¤§" "¤ó") ("¥·" "¥§" "¥ó") ("¼" "ª" "Ý")))
+ (("s" "y" "h") (("¤·" "¤å" "¤¦") ("¥·" "¥å" "¥¦") ("¼" "" "³")))
+ (("s" "y" "j") (("¤·" "¤å" "¤ó") ("¥·" "¥å" "¥ó") ("¼" "" "Ý")))
+ (("s" "y" "l") (("¤·" "¤ç" "¤ó") ("¥·" "¥ç" "¥ó") ("¼" "®" "Ý")))
+ (("s" "y" "n") (("¤·" "¤ã" "¤ó") ("¥·" "¥ã" "¥ó") ("¼" "¬" "Ý")))
+ (("s" "y" "p") (("¤·" "¤ç" "¤¦") ("¥·" "¥ç" "¥¦") ("¼" "®" "³")))
+ (("s" "y" "q") (("¤·" "¤ã" "¤¤") ("¥·" "¥ã" "¥¤") ("¼" "¬" "²")))
+ (("s" "y" "w") (("¤·" "¤§" "¤¤") ("¥·" "¥§" "¥¤") ("¼" "ª" "²")))
+ (("s" "y" "z") (("¤·" "¤ã" "¤ó") ("¥·" "¥ã" "¥ó") ("¼" "¬" "Ý")))
+ (("s" "z") (("¤µ" "¤ó") ("¥µ" "¥ó") ("»" "Ý")))
+ (("t" "b") (("¤¿" "¤Ó") ("¥¿" "¥Ó") ("À" "Ë" "Þ")))
+ (("t" "c" "h") ("¤Ã" "¥Ã" "¯"))
+ (("t" "d") (("¤Æ" "¤ó") ("¥Æ" "¥ó") ("Ã" "Ý")))
+ (("t" "g" "i") (("¤Æ" "¤£") ("¥Æ" "¥£") ("Ã" "¨")))
+ (("t" "g" "u") (("¤È" "¤¥") ("¥È" "¥¥") ("Ä" "©")))
+ (("t" "h") (("¤Ä" "¤¦") ("¥Ä" "¥¦") ("Â" "³")))
+ (("t" "j") (("¤Ä" "¤ó") ("¥Ä" "¥ó") ("Â" "Ý")))
+ (("t" "k") (("¤Á" "¤ó") ("¥Á" "¥ó") ("Á" "Ý")))
+ (("t" "l") (("¤È" "¤ó") ("¥È" "¥ó") ("Ä" "Ý")))
+ (("t" "m") (("¤¿" "¤á") ("¥¿" "¥á") ("À" "Ò")))
+ (("t" "n") (("¤¿" "¤ó") ("¥¿" "¥ó") ("À" "Ý")))
+ (("t" "p") (("¤È" "¤¦") ("¥È" "¥¦") ("Ä" "³")))
+ (("t" "q") (("¤¿" "¤¤") ("¥¿" "¥¤") ("À" "²")))
+ (("t" "r") (("¤¿" "¤é") ("¥¿" "¥é") ("À" "×")))
+ (("t" "s" "a") (("¤Ä" "¤¡") ("¥Ä" "¥¡") ("Â" "§")))
+ (("t" "s" "e") (("¤Ä" "¤§") ("¥Ä" "¥§") ("Â" "ª")))
+ (("t" "s" "i") (("¤Ä" "¤£") ("¥Ä" "¥£") ("Â" "¨")))
+ (("t" "s" "o") (("¤Ä" "¤©") ("¥Ä" "¥©") ("Â" "«")))
+ (("t" "t") (("¤¿" "¤Á") ("¥¿" "¥Á") ("À" "Á")))
+ (("t" "w") (("¤Æ" "¤¤") ("¥Æ" "¥¤") ("Ã" "²")))
+ (("t" "y" "d") (("¤Á" "¤§" "¤ó") ("¥Á" "¥§" "¥ó") ("Á" "ª" "Ý")))
+ (("t" "y" "h") (("¤Á" "¤å" "¤¦") ("¥Á" "¥å" "¥¦") ("Á" "" "³")))
+ (("t" "y" "j") (("¤Á" "¤å" "¤ó") ("¥Á" "¥å" "¥ó") ("Á" "" "Ý")))
+ (("t" "y" "l") (("¤Á" "¤ç" "¤ó") ("¥Á" "¥ç" "¥ó") ("Á" "®" "Ý")))
+ (("t" "y" "n") (("¤Á" "¤ã" "¤ó") ("¥Á" "¥ã" "¥ó") ("Á" "¬" "Ý")))
+ (("t" "y" "p") (("¤Á" "¤ç" "¤¦") ("¥Á" "¥ç" "¥¦") ("Á" "®" "³")))
+ (("t" "y" "q") (("¤Á" "¤ã" "¤¤") ("¥Á" "¥ã" "¥¤") ("Á" "¬" "²")))
+ (("t" "y" "w") (("¤Á" "¤§" "¤¤") ("¥Á" "¥§" "¥¤") ("Á" "ª" "²")))
+ (("t" "y" "z") (("¤Á" "¤ã" "¤ó") ("¥Á" "¥ã" "¥ó") ("Á" "¬" "Ý")))
+ (("t" "z") (("¤¿" "¤ó") ("¥¿" "¥ó") ("À" "Ý")))
+ (("w" "d") (("¤¦" "¤§" "¤ó") ("¥¦" "¥§" "¥ó") ("³" "ª" "Ý")))
+ (("w" "k") (("¤¦" "¤£" "¤ó") ("¥¦" "¥£" "¥ó") ("³" "¨" "Ý")))
+ (("w" "l") (("¤¦" "¤©" "¤ó") ("¥¦" "¥©" "¥ó") ("³" "«" "Ý")))
+ (("w" "n") (("¤ï" "¤ó") ("¥ï" "¥ó") ("Ü" "Ý")))
+ (("w" "p") (("¤¦" "¤©" "¡¼") ("¥¦" "¥©" "¡¼") ("³" "«" "°")))
+ (("w" "q") (("¤ï" "¤¤") ("¥ï" "¥¤") ("Ü" "²")))
+ (("w" "r") (("¤ï" "¤ì") ("¥ï" "¥ì") ("Ü" "Ú")))
+ (("w" "s" "o") (("¤¦" "¤©") ("¥¦" "¥©") ("³" "«")))
+ (("w" "t") (("¤ï" "¤¿") ("¥ï" "¥¿") ("Ü" "À")))
+ (("w" "u") ("¤¦" "¥¦" "³"))
+ (("w" "z") (("¤ï" "¤ó") ("¥ï" "¥ó") ("Ü" "Ý")))
+ (("x" "a") (("¤·" "¤ã") ("¥·" "¥ã") ("¼" "¬")))
+ (("x" "d") (("¤·" "¤§" "¤ó") ("¥·" "¥§" "¥ó") ("¼" "ª" "Ý")))
+ (("x" "e") (("¤·" "¤§") ("¥·" "¥§") ("¼" "ª")))
+ (("x" "h") (("¤·" "¤å" "¤¦") ("¥·" "¥å" "¥¦") ("¼" "" "³")))
+ (("x" "j") (("¤·" "¤å" "¤ó") ("¥·" "¥å" "¥ó") ("¼" "" "Ý")))
+ (("x" "l") (("¤·" "¤ç" "¤ó") ("¥·" "¥ç" "¥ó") ("¼" "®" "Ý")))
+ (("x" "n") (("¤·" "¤ã" "¤ó") ("¥·" "¥ã" "¥ó") ("¼" "¬" "Ý")))
+ (("x" "o") (("¤·" "¤ç") ("¥·" "¥ç") ("¼" "®")))
+ (("x" "p") (("¤·" "¤ç" "¤¦") ("¥·" "¥ç" "¥¦") ("¼" "®" "³")))
+ (("x" "q") (("¤·" "¤ã" "¤¤") ("¥·" "¥ã" "¥¤") ("¼" "¬" "²")))
+ (("x" "u") (("¤·" "¤å") ("¥·" "¥å") ("¼" "")))
+ (("x" "x" "a") ("¤¡" "¥¡" "§"))
+ (("x" "x" "i") ("¤£" "¥£" "¨"))
+ (("x" "x" "u") ("¤¥" "¥¥" "©"))
+ (("x" "x" "e") ("¤§" "¥§" "ª"))
+ (("x" "x" "o") ("¤©" "¥©" "«"))
+ (("x" "x" "w" "a") ("¤î" "¥î" "Ü"))
+ (("x" "x" "w" "i") ("¤ð" "¥ð" "¨"))
+ (("x" "x" "w" "e") ("¤ñ" "¥ñ" "ª"))
+ (("x" "x" "h") ("¢«" "¢«" ""))
+ (("x" "x" "j") ("¢" "¢" ""))
+ (("x" "x" "k") ("¢¬" "¢¬" ""))
+ (("x" "x" "l") ("¢ª" "¢ª" ""))
+ (("x" "w") (("¤·" "¤§" "¤¤") ("¥·" "¥§" "¥¤") ("¼" "ª" "²")))
+ (("x" "z") (("¤·" "¤ã" "¤ó") ("¥·" "¥ã" "¥ó") ("¼" "¬" "Ý")))
+ (("y" "e") (("¤¤" "¤§") ("¥¤" "¥§") ("²" "ª")))
+ (("y" "h") (("¤æ" "¤¦") ("¥æ" "¥¦") ("Õ" "³")))
+ (("y" "i") ("¤¤" "¥¤" "²"))
+ (("y" "j") (("¤æ" "¤ó") ("¥æ" "¥ó") ("Õ" "Ý")))
+ (("y" "l") (("¤è" "¤ó") ("¥è" "¥ó") ("Ö" "Ý")))
+ (("y" "n") (("¤ä" "¤ó") ("¥ä" "¥ó") ("Ô" "Ý")))
+ (("y" "p") (("¤è" "¤¦") ("¥è" "¥¦") ("Ö" "³")))
+ (("y" "q") (("¤ä" "¤¤") ("¥ä" "¥¤") ("Ô" "²")))
+ (("y" "r") (("¤è" "¤ë") ("¥è" "¥ë") ("Ö" "Ù")))
+ (("y" "w") (("¤¤" "¤§" "¤¤") ("¥¤" "¥§" "¥¤") ("²" "ª" "²")))
+ (("y" "z") (("¤ä" "¤ó") ("¥ä" "¥ó") ("Ô" "Ý")))
+ (("z" "c") ("¤¶" "¥¶" "»" "Þ"))
+ (("z" "d") (("¤¼" "¤ó") ("¥¼" "¥ó") ("¾" "Þ" "Ý")))
+ (("z" "f") ("¤¼" "¥¼" "¾" "Þ"))
+ (("z" "g" "a") (("¤¸" "¤ã") ("¥¸" "¥ã") ("¼" "Þ" "¬")))
+ (("z" "g" "d") (("¤¸" "¤§" "¤ó") ("¥¸" "¥§" "¥ó") ("¼" "Þ" "ª" "Ý")))
+ (("z" "g" "e") (("¤¸" "¤§") ("¥¸" "¥§") ("¼" "Þ" "ª")))
+ (("z" "g" "h") (("¤¸" "¤å" "¤¦") ("¥¸" "¥å" "¥¦") ("¼" "Þ" "" "³")))
+ (("z" "g" "j") (("¤¸" "¤å" "¤ó") ("¥¸" "¥å" "¥ó") ("¼" "Þ" "" "Ý")))
+ (("z" "g" "l") (("¤¸" "¤ç" "¤ó") ("¥¸" "¥ç" "¥ó") ("¼" "Þ" "®" "Ý")))
+ (("z" "g" "n") (("¤¸" "¤ã" "¤ó") ("¥¸" "¥ã" "¥ó") ("¼" "Þ" "¬" "Ý")))
+ (("z" "g" "o") (("¤¸" "¤ç") ("¥¸" "¥ç") ("¼" "Þ" "®")))
+ (("z" "g" "p") (("¤¸" "¤ç" "¤¦") ("¥¸" "¥ç" "¥¦") ("¼" "Þ" "®" "³")))
+ (("z" "g" "q") (("¤¸" "¤ã" "¤¤") ("¥¸" "¥ã" "¥¤") ("¼" "Þ" "¬" "²")))
+ (("z" "g" "u") (("¤¸" "¤å") ("¥¸" "¥å") ("¼" "Þ" "")))
+ (("z" "g" "w") (("¤¸" "¤§" "¤¤") ("¥¸" "¥§" "¥¤") ("¼" "Þ" "ª" "²")))
+ (("z" "g" "z") (("¤¸" "¤ã" "¤ó") ("¥¸" "¥ã" "¥ó") ("¼" "Þ" "¬" "Ý")))
+ (("z" "h") (("¤º" "¤¦") ("¥º" "¥¦") ("½" "Þ" "³")))
+ (("z" "j") (("¤º" "¤ó") ("¥º" "¥ó") ("½" "Þ" "Ý")))
+ (("z" "k") (("¤¸" "¤ó") ("¥¸" "¥ó") ("¼" "Þ" "Ý")))
+ (("z" "l") (("¤¾" "¤ó") ("¥¾" "¥ó") ("¿" "Þ" "Ý")))
+ (("z" "n") (("¤¶" "¤ó") ("¥¶" "¥ó") ("»" "Þ" "Ý")))
+ (("z" "p") (("¤¾" "¤¦") ("¥¾" "¥¦") ("¿" "Þ" "³")))
+ (("z" "q") (("¤¶" "¤¤") ("¥¶" "¥¤") ("»" "Þ" "²")))
+ (("z" "r") (("¤¶" "¤ë") ("¥¶" "¥ë") ("»" "Þ" "Ù")))
+ (("z" "v") (("¤¶" "¤¤") ("¥¶" "¥¤") ("»" "Þ" "²")))
+ (("z" "w") (("¤¼" "¤¤") ("¥¼" "¥¤") ("¾" "Þ" "²")))
+ (("z" "x") (("¤¼" "¤¤") ("¥¼" "¥¤") ("¾" "Þ" "²")))
+ (("z" "y" "d") (("¤¸" "¤§" "¤ó") ("¥¸" "¥§" "¥ó") ("¼" "Þ" "ª" "Ý")))
+ (("z" "y" "h") (("¤¸" "¤å" "¤¦") ("¥¸" "¥å" "¥¦") ("¼" "Þ" "" "³")))
+ (("z" "y" "j") (("¤¸" "¤å" "¤ó") ("¥¸" "¥å" "¥ó") ("¼" "Þ" "" "Ý")))
+ (("z" "y" "l") (("¤¸" "¤ç" "¤ó") ("¥¸" "¥ç" "¥ó") ("¼" "Þ" "®" "Ý")))
+ (("z" "y" "n") (("¤¸" "¤ã" "¤ó") ("¥¸" "¥ã" "¥ó") ("¼" "Þ" "¬" "Ý")))
+ (("z" "y" "p") (("¤¸" "¤ç" "¤¦") ("¥¸" "¥ç" "¥¦") ("¼" "Þ" "®" "³")))
+ (("z" "y" "q") (("¤¸" "¤ã" "¤¤") ("¥¸" "¥ã" "¥¤") ("¼" "Þ" "¬" "²")))
+ (("z" "y" "w") (("¤¸" "¤§" "¤¤") ("¥¸" "¥§" "¥¤") ("¼" "Þ" "ª" "²")))
+ (("z" "y" "z") (("¤¸" "¤ã" "¤ó") ("¥¸" "¥ã" "¥ó") ("¼" "Þ" "¬" "Ý")))
+ (("z" "z") (("¤¶" "¤ó") ("¥¶" "¥ó") ("»" "Þ" "Ý")))
+ ))
+
+(define ja-azik-ruleset-name-list
+ '(core))
+
+(ja-define-dedicated-rulesets 'ja-azik ja-azik-ruleset-name-list)
+
+
+;; may be replaced with more efficient way for ruleset composition
+(define ja-azik-hiragana-ruleset
+ (append
+ ja-fullwidth-space-ruleset
+ ja-fullwidth-kana-period-ruleset
+ ja-fullwidth-kana-comma-ruleset
+ ja-fullwidth-basic-symbol-ruleset
+ ja-fullwidth-number-ruleset
+ ja-fullwidth-alphabet-ruleset
+ ja-romaji-hiragana-basic-ruleset
+ ;;ja-romaji-hiragana-double-consonant-guide-ruleset
+ ;;ja-romaji-hiragana-basic-double-consonant-ruleset
+ ;;ja-romaji-hiragana-x-prefixed-small-kana-ruleset
+ ;;ja-romaji-hiragana-l-prefixed-small-kana-ruleset
+ ;;ja-romaji-hiragana-minor-ruleset
+ ;;ja-romaji-hiragana-minor-contracted-ruleset
+ ;;ja-romaji-hiragana-minor-contracted-double-consonant-ruleset
+ ;;ja-romaji-hiragana-hepburn-ruleset
+ ;;ja-romaji-hiragana-hepburn-double-consonant-ruleset
+ ;;ja-romaji-hiragana-hepburn-n-ruleset
+ ;;ja-romaji-hiragana-hepburn-oh-ruleset
+ ;;ja-romaji-hiragana-hepburn-irregular-double-consonant-guide-ruleset
+ ;;ja-romaji-hiragana-hepburn-irregular-double-consonant-ruleset
+ ;;ja-romaji-hiragana-skk-like-symbol-ruleset
+ ja-azik-hiragana-basic-ruleset
+ ))
+
+(define ja-azik-katakana-ruleset
+ (append
+ ja-fullwidth-space-ruleset
+ ja-fullwidth-kana-period-ruleset
+ ja-fullwidth-kana-comma-ruleset
+ ja-fullwidth-basic-symbol-ruleset
+ ja-fullwidth-number-ruleset
+ ja-fullwidth-alphabet-ruleset
+ ja-romaji-katakana-basic-ruleset
+ ;;ja-romaji-katakana-double-consonant-guide-ruleset
+ ;;ja-romaji-katakana-basic-double-consonant-ruleset
+ ;;ja-romaji-katakana-x-prefixed-small-kana-ruleset
+ ;;ja-romaji-katakana-l-prefixed-small-kana-ruleset
+ ;;ja-romaji-katakana-minor-ruleset
+ ;;ja-romaji-katakana-minor-contracted-ruleset
+ ;;ja-romaji-katakana-minor-contracted-double-consonant-ruleset
+ ;;ja-romaji-katakana-hepburn-ruleset
+ ;;ja-romaji-katakana-hepburn-double-consonant-ruleset
+ ;;ja-romaji-katakana-hepburn-n-ruleset
+ ;;ja-romaji-katakana-hepburn-oh-ruleset
+ ;;ja-romaji-katakana-hepburn-irregular-double-consonant-guide-ruleset
+ ;;ja-romaji-katakana-hepburn-irregular-double-consonant-ruleset
+ ;;ja-romaji-katakana-skk-like-symbol-ruleset
+ ja-azik-katakana-basic-ruleset
+ ))
+
+(define ja-azik-halfkana-ruleset
+ (append
+ ja-halfwidth-space-ruleset
+ ja-halfwidth-kana-period-ruleset
+ ja-halfwidth-kana-comma-ruleset
+ ja-halfwidth-basic-symbol-ruleset
+ ja-halfwidth-number-ruleset
+ ja-halfwidth-alphabet-ruleset
+ ja-romaji-halfkana-basic-ruleset
+ ;;ja-romaji-halfkana-double-consonant-guide-ruleset
+ ;;ja-romaji-halfkana-basic-double-consonant-ruleset
+ ;;ja-romaji-halfkana-x-prefixed-small-kana-ruleset
+ ;;ja-romaji-halfkana-l-prefixed-small-kana-ruleset
+ ;;ja-romaji-halfkana-minor-ruleset
+ ;;ja-romaji-halfkana-minor-contracted-ruleset
+ ;;ja-romaji-halfkana-minor-contracted-double-consonant-ruleset
+ ;;ja-romaji-halfkana-hepburn-ruleset
+ ;;ja-romaji-halfkana-hepburn-double-consonant-ruleset
+ ;;ja-romaji-halfkana-hepburn-n-ruleset
+ ;;ja-romaji-halfkana-hepburn-oh-ruleset
+ ;;ja-romaji-halfkana-hepburn-irregular-double-consonant-guide-ruleset
+ ;;ja-romaji-halfkana-hepburn-irregular-double-consonant-ruleset
+ ;;ja-romaji-halfkana-skk-like-symbol-ruleset
+ ja-azik-halfkana-basic-ruleset
+ ))
Added: branches/composer/scm/ng-japanese-kana.scm
===================================================================
--- branches/composer/scm/ng-japanese-kana.scm 2005-02-24 00:59:57 UTC (rev 707)
+++ branches/composer/scm/ng-japanese-kana.scm 2005-02-24 01:26:18 UTC (rev 708)
@@ -0,0 +1,271 @@
+;;; ng-japanese-kana.scm: Kana composition rulesets for Japanese
+;;;
+;;; Copyright (c) 2004-2005 uim Project http://uim.freedesktop.org/
+;;;
+;;; All rights reserved.
+;;;
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+;;; 1. Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+;;; 2. Redistributions in binary form must reproduce the above copyright
+;;; notice, this list of conditions and the following disclaimer in the
+;;; documentation and/or other materials provided with the distribution.
+;;; 3. Neither the name of authors nor the names of its contributors
+;;; may be used to endorse or promote products derived from this software
+;;; without specific prior written permission.
+;;;
+;;; THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+;;; SUCH DAMAGE.
+;;;;
+
+
+(require "ng-japanese.scm")
+(require "physical-key.scm")
+
+
+;; character sensitive version
+(define ja-kana-char-sensitive-core-ruleset
+ '(
+ (("3") ("¤¢" "¥¢" "±"))
+ (("e") ("¤¤" "¥¤" "²"))
+ (("4") ("¤¦" "¥¦" "³"))
+ (("5") ("¤¨" "¥¨" "´"))
+ (("6") ("¤ª" "¥ª" "µ"))
+
+ (("t") ("¤«" "¥«" "¶"))
+ (("g") ("¤" "¥" "·"))
+ (("h") ("¤¯" "¥¯" "¸"))
+ ((":") ("¤±" "¥±" "¹"))
+ (("b") ("¤³" "¥³" "º"))
+
+ (("x") ("¤µ" "¥µ" "»"))
+ (("d") ("¤·" "¥·" "¼"))
+ (("r") ("¤¹" "¥¹" "½"))
+ (("p") ("¤»" "¥»" "¾"))
+ (("c") ("¤½" "¥½" "¿"))
+
+ (("q") ("¤¿" "¥¿" "À"))
+ (("a") ("¤Á" "¥Á" "Á"))
+ (("z") ("¤Ä" "¥Ä" "Â"))
+ (("w") ("¤Æ" "¥Æ" "Ã"))
+ (("s") ("¤È" "¥È" "Ä"))
+
+ (("u") ("¤Ê" "¥Ê" "Å"))
+ (("i") ("¤Ë" "¥Ë" "Æ"))
+ (("1") ("¤Ì" "¥Ì" "Ç"))
+ ((",") ("¤Í" "¥Í" "È"))
+ (("k") ("¤Î" "¥Î" "É"))
+
+ (("f") ("¤Ï" "¥Ï" "Ê"))
+ (("v") ("¤Ò" "¥Ò" "Ë"))
+ (("2") ("¤Õ" "¥Õ" "Ì"))
+ (("^") ("¤Ø" "¥Ø" "Í"))
+ (("-") ("¤Û" "¥Û" "Î"))
+
+ (("j") ("¤Þ" "¥Þ" "Ï"))
+ (("n") ("¤ß" "¥ß" "Ð"))
+ (("]") ("¤à" "¥à" "Ñ")) ;; be careful
+ (("/") ("¤á" "¥á" "Ò"))
+ (("m") ("¤â" "¥â" "Ó"))
+
+ (("7") ("¤ä" "¥ä" "Ô"))
+ (("8") ("¤æ" "¥æ" "Õ"))
+ (("9") ("¤è" "¥è" "Ö"))
+
+ (("o") ("¤é" "¥é" "×"))
+ (("l") ("¤ê" "¥ê" "Ø"))
+ ((".") ("¤ë" "¥ë" "Ù"))
+ ((";") ("¤ì" "¥ì" "Ú"))
+ (("\\") ("¤í" "¥í" "Û")) ;; be careful
+
+ (("0") ("¤ï" "¥ï" "Ü"))
+ (("~") ("¤ò" "¥ò" "¦")) ;; not proper key
+ (("y") ("¤ó" "¥ó" "Ý"))
+
+ (("4" "@") (("¤¦" "¡«") "¥ô" ("³" "Þ")))
+
+ (("t" "@") ("¤¬" "¥¬" ("¶" "Þ")))
+ (("g" "@") ("¤®" "¥®" ("·" "Þ")))
+ (("h" "@") ("¤°" "¥°" ("¸" "Þ")))
+ ((":" "@") ("¤²" "¥²" ("¹" "Þ")))
+ (("b" "@") ("¤´" "¥´" ("º" "Þ")))
+
+ (("x" "@") ("¤¶" "¥¶" ("»" "Þ")))
+ (("d" "@") ("¤¸" "¥¸" ("¼" "Þ")))
+ (("r" "@") ("¤º" "¥º" ("½" "Þ")))
+ (("p" "@") ("¤¼" "¥¼" ("¾" "Þ")))
+ (("c" "@") ("¤¾" "¥¾" ("¿" "Þ")))
+
+ (("q" "@") ("¤À" "¥À" ("À" "Þ")))
+ (("a" "@") ("¤Â" "¥Â" ("Á" "Þ")))
+ (("z" "@") ("¤Å" "¥Å" ("Â" "Þ")))
+ (("w" "@") ("¤Ç" "¥Ç" ("Ã" "Þ")))
+ (("s" "@") ("¤É" "¥É" ("Ä" "Þ")))
+
+ (("f" "@") ("¤Ð" "¥Ð" ("Ê" "Þ")))
+ (("v" "@") ("¤Ó" "¥Ó" ("Ë" "Þ")))
+ (("2" "@") ("¤Ö" "¥Ö" ("Ì" "Þ")))
+ (("^" "@") ("¤Ù" "¥Ù" ("Í" "Þ")))
+ (("-" "@") ("¤Ü" "¥Ü" ("Î" "Þ")))
+
+ (("f" "[") ("¤Ñ" "¥Ñ" ("Ê" "ß")))
+ (("v" "[") ("¤Ô" "¥Ô" ("Ë" "ß")))
+ (("2" "[") ("¤×" "¥×" ("Ì" "ß")))
+ (("^" "[") ("¤Ú" "¥Ú" ("Í" "ß")))
+ (("-" "[") ("¤Ý" "¥Ý" ("Î" "ß")))
+
+ (("#") ("¤¡" "¥¡" "§"))
+ (("E") ("¤£" "¥£" "¨"))
+ (("$") ("¤¥" "¥¥" "©"))
+ (("%") ("¤§" "¥§" "ª"))
+ (("&") ("¤©" "¥©" "«"))
+
+ (("'") ("¤ã" "¥ã" "¬"))
+ (("(") ("¤å" "¥å" ""))
+ ((")") ("¤ç" "¥ç" "®"))
+
+ (("Z") ("¤Ã" "¥Ã" "¯"))
+
+ (("@") ("¡«" "¡«" "Þ"))
+ (("[") ("¡¬" "¡¬" "ß"))
+ (("|") ("¡¼" "¡¼" "°")) ;; be careful, not proper key
+ ((">") ("¡£" "¡£" "¡"))
+ (("<") ("¡¢" "¡¢" "¤"))
+ (("?") ("¡¦" "¡¦" "¥"))
+ (("{") ("¡Ö" "¡Ö" "¢"))
+ (("}") ("¡×" "¡×" "£"))
+ ))
+
+;; physical key sensitive version
+(define ja-kana-core-ruleset
+ '(
+ ((pkey_jp106_3) ("¤¢" "¥¢" "±"))
+ ((pkey_jp106_e) ("¤¤" "¥¤" "²"))
+ ((pkey_jp106_4) ("¤¦" "¥¦" "³"))
+ ((pkey_jp106_5) ("¤¨" "¥¨" "´"))
+ ((pkey_jp106_6) ("¤ª" "¥ª" "µ"))
+
+ ((pkey_jp106_t) ("¤«" "¥«" "¶"))
+ ((pkey_jp106_g) ("¤" "¥" "·"))
+ ((pkey_jp106_h) ("¤¯" "¥¯" "¸"))
+ ((pkey_jp106_colon) ("¤±" "¥±" "¹"))
+ ((pkey_jp106_b) ("¤³" "¥³" "º"))
+
+ ((pkey_jp106_x) ("¤µ" "¥µ" "»"))
+ ((pkey_jp106_d) ("¤·" "¥·" "¼"))
+ ((pkey_jp106_r) ("¤¹" "¥¹" "½"))
+ ((pkey_jp106_p) ("¤»" "¥»" "¾"))
+ ((pkey_jp106_c) ("¤½" "¥½" "¿"))
+
+ ((pkey_jp106_q) ("¤¿" "¥¿" "À"))
+ ((pkey_jp106_a) ("¤Á" "¥Á" "Á"))
+ ((pkey_jp106_z) ("¤Ä" "¥Ä" "Â"))
+ ((pkey_jp106_w) ("¤Æ" "¥Æ" "Ã"))
+ ((pkey_jp106_s) ("¤È" "¥È" "Ä"))
+
+ ((pkey_jp106_u) ("¤Ê" "¥Ê" "Å"))
+ ((pkey_jp106_i) ("¤Ë" "¥Ë" "Æ"))
+ ((pkey_jp106_1) ("¤Ì" "¥Ì" "Ç"))
+ ((pkey_jp106_comma) ("¤Í" "¥Í" "È"))
+ ((pkey_jp106_k) ("¤Î" "¥Î" "É"))
+
+ ((pkey_jp106_f) ("¤Ï" "¥Ï" "Ê"))
+ ((pkey_jp106_v) ("¤Ò" "¥Ò" "Ë"))
+ ((pkey_jp106_2) ("¤Õ" "¥Õ" "Ì"))
+ ((pkey_jp106_asciicircum) ("¤Ø" "¥Ø" "Í"))
+ ((pkey_jp106_minus) ("¤Û" "¥Û" "Î"))
+
+ ((pkey_jp106_j) ("¤Þ" "¥Þ" "Ï"))
+ ((pkey_jp106_n) ("¤ß" "¥ß" "Ð"))
+ ((pkey_jp106_bracketright) ("¤à" "¥à" "Ñ")) ;; be careful
+ ((pkey_jp106_slash) ("¤á" "¥á" "Ò"))
+ ((pkey_jp106_m) ("¤â" "¥â" "Ó"))
+
+ ((pkey_jp106_7) ("¤ä" "¥ä" "Ô"))
+ ((pkey_jp106_8) ("¤æ" "¥æ" "Õ"))
+ ((pkey_jp106_9) ("¤è" "¥è" "Ö"))
+
+ ((pkey_jp106_o) ("¤é" "¥é" "×"))
+ ((pkey_jp106_l) ("¤ê" "¥ê" "Ø"))
+ ((pkey_jp106_period) ("¤ë" "¥ë" "Ù"))
+ ((pkey_jp106_semicolon) ("¤ì" "¥ì" "Ú"))
+ ((pkey_jp106_backslash) ("¤í" "¥í" "Û")) ;; be careful
+
+ ((pkey_jp106_0) ("¤ï" "¥ï" "Ü"))
+ ((pkey_jp106_0 mod_shift) ("¤ò" "¥ò" "¦"))
+ ((pkey_jp106_y) ("¤ó" "¥ó" "Ý"))
+
+ ((pkey_jp106_4 pkey_jp106_at) (("¤¦" "¡«") "¥ô" ("³" "Þ")))
+
+ ((pkey_jp106_t pkey_jp106_at) ("¤¬" "¥¬" ("¶" "Þ")))
+ ((pkey_jp106_g pkey_jp106_at) ("¤®" "¥®" ("·" "Þ")))
+ ((pkey_jp106_h pkey_jp106_at) ("¤°" "¥°" ("¸" "Þ")))
+ ((pkey_jp106_colon pkey_jp106_at) ("¤²" "¥²" ("¹" "Þ")))
+ ((pkey_jp106_b pkey_jp106_at) ("¤´" "¥´" ("º" "Þ")))
+
+ ((pkey_jp106_x pkey_jp106_at) ("¤¶" "¥¶" ("»" "Þ")))
+ ((pkey_jp106_d pkey_jp106_at) ("¤¸" "¥¸" ("¼" "Þ")))
+ ((pkey_jp106_r pkey_jp106_at) ("¤º" "¥º" ("½" "Þ")))
+ ((pkey_jp106_p pkey_jp106_at) ("¤¼" "¥¼" ("¾" "Þ")))
+ ((pkey_jp106_c pkey_jp106_at) ("¤¾" "¥¾" ("¿" "Þ")))
+
+ ((pkey_jp106_q pkey_jp106_at) ("¤À" "¥À" ("À" "Þ")))
+ ((pkey_jp106_a pkey_jp106_at) ("¤Â" "¥Â" ("Á" "Þ")))
+ ((pkey_jp106_z pkey_jp106_at) ("¤Å" "¥Å" ("Â" "Þ")))
+ ((pkey_jp106_w pkey_jp106_at) ("¤Ç" "¥Ç" ("Ã" "Þ")))
+ ((pkey_jp106_s pkey_jp106_at) ("¤É" "¥É" ("Ä" "Þ")))
+
+ ((pkey_jp106_f pkey_jp106_at) ("¤Ð" "¥Ð" ("Ê" "Þ")))
+ ((pkey_jp106_v pkey_jp106_at) ("¤Ó" "¥Ó" ("Ë" "Þ")))
+ ((pkey_jp106_2 pkey_jp106_at) ("¤Ö" "¥Ö" ("Ì" "Þ")))
+ ((pkey_jp106_asciicircum pkey_jp106_at) ("¤Ù" "¥Ù" ("Í" "Þ")))
+ ((pkey_jp106_minus pkey_jp106_at) ("¤Ü" "¥Ü" ("Î" "Þ")))
+
+ ((pkey_jp106_f pkey_jp106_bracketleft) ("¤Ñ" "¥Ñ" ("Ê" "ß")))
+ ((pkey_jp106_v pkey_jp106_bracketleft) ("¤Ô" "¥Ô" ("Ë" "ß")))
+ ((pkey_jp106_2 pkey_jp106_bracketleft) ("¤×" "¥×" ("Ì" "ß")))
+ ((pkey_jp106_asciicircum pkey_jp106_bracketleft) ("¤Ú" "¥Ú" ("Í" "ß")))
+ ((pkey_jp106_minus pkey_jp106_bracketleft) ("¤Ý" "¥Ý" ("Î" "ß")))
+
+ ((pkey_jp106_3 mod_shift) ("¤¡" "¥¡" "§"))
+ ((pkey_jp106_e mod_shift) ("¤£" "¥£" "¨"))
+ ((pkey_jp106_4 mod_shift) ("¤¥" "¥¥" "©"))
+ ((pkey_jp106_5 mod_shift) ("¤§" "¥§" "ª"))
+ ((pkey_jp106_6 mod_shift) ("¤©" "¥©" "«"))
+
+ ((pkey_jp106_7 mod_shift) ("¤ã" "¥ã" "¬"))
+ ((pkey_jp106_8 mod_shift) ("¤å" "¥å" ""))
+ ((pkey_jp106_9 mod_shift) ("¤ç" "¥ç" "®"))
+
+ ((pkey_jp106_z mod_shift) ("¤Ã" "¥Ã" "¯"))
+
+ ((pkey_jp106_at) ("¡«" "¡«" "Þ"))
+ ((pkey_jp106_bracketleft) ("¡¬" "¡¬" "ß"))
+ ((pkey_jp106_yen) ("¡¼" "¡¼" "°")) ;; be careful
+ ((pkey_jp106_period mod_shift) ("¡£" "¡£" "¡"))
+ ((pkey_jp106_comma mod_shift) ("¡¢" "¡¢" "¤"))
+ ((pkey_jp106_slash mod_shift) ("¡¦" "¡¦" "¥"))
+ ((pkey_jp106_bracketleft mod_shift) ("¡Ö" "¡Ö" "¢"))
+ ((pkey_jp106_bracketright mod_shift) ("¡×" "¡×" "£")) ;; be careful
+ ))
+
+(define ja-kana-ruleset-name-list
+ '(char-sensitive-core
+ core))
+
+(ja-define-dedicated-rulesets 'ja-kana ja-kana-ruleset-name-list)
+
+(define ja-kana-hiragana-ruleset ja-kana-hiragana-core-ruleset)
+(define ja-kana-katakana-ruleset ja-kana-katakana-core-ruleset)
+(define ja-kana-halfkana-ruleset ja-kana-halfkana-core-ruleset)
Added: branches/composer/scm/ng-japanese-romaji.scm
===================================================================
--- branches/composer/scm/ng-japanese-romaji.scm 2005-02-24 00:59:57 UTC (rev 707)
+++ branches/composer/scm/ng-japanese-romaji.scm 2005-02-24 01:26:18 UTC (rev 708)
@@ -0,0 +1,675 @@
+;;; ng-japanese-romaji.scm: Romaji composition rulesets for Japanese
+;;;
+;;; Copyright (c) 2004-2005 uim Project http://uim.freedesktop.org/
+;;;
+;;; All rights reserved.
+;;;
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+;;; 1. Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+;;; 2. Redistributions in binary form must reproduce the above copyright
+;;; notice, this list of conditions and the following disclaimer in the
+;;; documentation and/or other materials provided with the distribution.
+;;; 3. Neither the name of authors nor the names of its contributors
+;;; may be used to endorse or promote products derived from this software
+;;; without specific prior written permission.
+;;;
+;;; THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+;;; SUCH DAMAGE.
+;;;;
+
+;; See following pages for further information about romaji.
+;;
+;; http://en.wikipedia.org/wiki/Romaji
+;; http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%9E%E5%AD%97
+
+(require "ng-japanese.scm")
+
+
+;;
+;; double consonant: Â¥²»
+;;
+
+;; (("k" "k") (("¤Ã" "k")))
+;; (("k" "k" "a") (("¤Ã" "¤«")))
+;; ...
+;; (("k" "k" "o") (("¤Ã" "¤³")))
+;; (("k" "k" "z") ("you can use any kk* sequence"))
+
+(define ja-romaji-double-consonant-alist
+ (map (lambda (c)
+ (cons c ja-kana-xtsu))
+ '("k" "g" "s" "z" "j" "t" "c" "d" "h" "f" "b" "p"
+ ;;"m" ;; rk contains this rule
+ "y" "r" "v" "w")))
+
+(define ja-romaji-generate-double-consonant-ruleset
+ (lambda (romaji-ruleset)
+ (append-map (lambda (entry)
+ (let ((letter (car entry))
+ (kana (cdr entry)))
+ (filter-map (lambda (rule)
+ (let* ((seq (evmap-rule-event-seq rule))
+ (res (evmap-rule-action-seq rule))
+ (listified (if (list? (car res))
+ res
+ (map list res))))
+ (and (string=? letter
+ (car seq))
+ (list (cons letter seq)
+ (map cons kana listified)))))
+ romaji-ruleset)))
+ ja-romaji-double-consonant-alist)))
+
+(define ja-romaji-double-consonant-guide-ruleset
+ (map (lambda (entry)
+ (let ((letter (car entry))
+ (kana (cdr entry)))
+ (list (list letter letter)
+ (map cons
+ kana
+ (make-list (length kana)
+ (list letter))))))
+ ja-romaji-double-consonant-alist))
+
+;;
+;; the rulesets
+;;
+
+(define ja-romaji-basic-ruleset
+ '(
+ ;; ¤¢¹Ô
+ (("a") ("¤¢" "¥¢" "±"))
+ (("i") ("¤¤" "¥¤" "²"))
+ (("u") ("¤¦" "¥¦" "³"))
+ (("e") ("¤¨" "¥¨" "´"))
+ (("o") ("¤ª" "¥ª" "µ"))
+
+ ;; ¤«¹Ô
+ (("k" "a") ("¤«" "¥«" "¶"))
+ (("k" "i") ("¤" "¥" "·"))
+ (("k" "u") ("¤¯" "¥¯" "¸"))
+ (("k" "e") ("¤±" "¥±" "¹"))
+ (("k" "o") ("¤³" "¥³" "º"))
+
+ (("k" "y" "a") (("¤" "¤ã") ("¥" "¥ã") ("·" "¬")))
+ (("k" "y" "i") (("¤" "¤£") ("¥" "¥£") ("·" "¨")))
+ (("k" "y" "u") (("¤" "¤å") ("¥" "¥å") ("·" "")))
+ (("k" "y" "e") (("¤" "¤§") ("¥" "¥§") ("·" "ª")))
+ (("k" "y" "o") (("¤" "¤ç") ("¥" "¥ç") ("·" "®")))
+
+ (("g" "a") ("¤¬" "¥¬" ("¶" "Þ")))
+ (("g" "i") ("¤®" "¥®" ("·" "Þ")))
+ (("g" "u") ("¤°" "¥°" ("¸" "Þ")))
+ (("g" "e") ("¤²" "¥²" ("¹" "Þ")))
+ (("g" "o") ("¤´" "¥´" ("º" "Þ")))
+
+ (("g" "y" "a") (("¤®" "¤ã") ("¥®" "¥ã") ("·" "Þ" "¬")))
+ (("g" "y" "i") (("¤®" "¤£") ("¥®" "¥£") ("·" "Þ" "¨")))
+ (("g" "y" "u") (("¤®" "¤å") ("¥®" "¥å") ("·" "Þ" "")))
+ (("g" "y" "e") (("¤®" "¤§") ("¥®" "¥§") ("·" "Þ" "ª")))
+ (("g" "y" "o") (("¤®" "¤ç") ("¥®" "¥ç") ("·" "Þ" "®")))
+
+ ;; ¤µ¹Ô
+ (("s" "a") ("¤µ" "¥µ" "»"))
+ (("s" "i") ("¤·" "¥·" "¼"))
+ (("s" "u") ("¤¹" "¥¹" "½"))
+ (("s" "e") ("¤»" "¥»" "¾"))
+ (("s" "o") ("¤½" "¥½" "¿"))
+
+ (("s" "y" "a") (("¤·" "¤ã") ("¥·" "¥ã") ("¼" "¬")))
+ (("s" "y" "i") (("¤·" "¤£") ("¥·" "¥£") ("¼" "¨")))
+ (("s" "y" "u") (("¤·" "¤å") ("¥·" "¥å") ("¼" "")))
+ (("s" "y" "e") (("¤·" "¤§") ("¥·" "¥§") ("¼" "ª")))
+ (("s" "y" "o") (("¤·" "¤ç") ("¥·" "¥ç") ("¼" "®")))
+
+ (("z" "a") ("¤¶" "¥¶" ("»" "Þ")))
+ (("z" "i") ("¤¸" "¥¸" ("¼" "Þ")))
+ (("z" "u") ("¤º" "¥º" ("½" "Þ")))
+ (("z" "e") ("¤¼" "¥¼" ("¾" "Þ")))
+ (("z" "o") ("¤¾" "¥¾" ("¿" "Þ")))
+
+ (("z" "y" "a") (("¤¸" "¤ã") ("¥¸" "¥ã") ("¼" "Þ" "¬")))
+ (("z" "y" "i") (("¤¸" "¤£") ("¥¸" "¥£") ("¼" "Þ" "¨")))
+ (("z" "y" "u") (("¤¸" "¤å") ("¥¸" "¥å") ("¼" "Þ" "")))
+ (("z" "y" "e") (("¤¸" "¤§") ("¥¸" "¥§") ("¼" "Þ" "ª")))
+ (("z" "y" "o") (("¤¸" "¤ç") ("¥¸" "¥ç") ("¼" "Þ" "®")))
+
+ ;; ¤¿¹Ô
+ (("t" "a") ("¤¿" "¥¿" "À"))
+ (("t" "i") ("¤Á" "¥Á" "Á"))
+ (("t" "u") ("¤Ä" "¥Ä" "Â"))
+ (("t" "e") ("¤Æ" "¥Æ" "Ã"))
+ (("t" "o") ("¤È" "¥È" "Ä"))
+
+ (("t" "y" "a") (("¤Á" "¤ã") ("¥Á" "¥ã") ("Á" "¬")))
+ (("t" "y" "i") (("¤Á" "¤£") ("¥Á" "¥£") ("Á" "¨")))
+ (("t" "y" "u") (("¤Á" "¤å") ("¥Á" "¥å") ("Á" "")))
+ (("t" "y" "e") (("¤Á" "¤§") ("¥Á" "¥§") ("Á" "ª")))
+ (("t" "y" "o") (("¤Á" "¤ç") ("¥Á" "¥ç") ("Á" "®")))
+
+ (("d" "a") ("¤À" "¥À" ("À" "Þ")))
+ (("d" "i") ("¤Â" "¥Â" ("Á" "Þ")))
+ (("d" "u") ("¤Å" "¥Å" ("Â" "Þ")))
+ (("d" "e") ("¤Ç" "¥Ç" ("Ã" "Þ")))
+ (("d" "o") ("¤É" "¥É" ("Ä" "Þ")))
+
+ (("d" "y" "a") (("¤Â" "¤ã") ("¥Â" "¥ã") ("Á" "Þ" "¬")))
+ (("d" "y" "i") (("¤Â" "¤£") ("¥Â" "¥£") ("Á" "Þ" "¨")))
+ (("d" "y" "u") (("¤Â" "¤å") ("¥Â" "¥å") ("Á" "Þ" "")))
+ (("d" "y" "e") (("¤Â" "¤§") ("¥Â" "¥§") ("Á" "Þ" "ª")))
+ (("d" "y" "o") (("¤Â" "¤ç") ("¥Â" "¥ç") ("Á" "Þ" "®")))
+
+ ;; ¤Ê¹Ô
+ (("n" "a") ("¤Ê" "¥Ê" "Å"))
+ (("n" "i") ("¤Ë" "¥Ë" "Æ"))
+ (("n" "u") ("¤Ì" "¥Ì" "Ç"))
+ (("n" "e") ("¤Í" "¥Í" "È"))
+ (("n" "o") ("¤Î" "¥Î" "É"))
+
+ (("n" "y" "a") (("¤Ë" "¤ã") ("¥Ë" "¥ã") ("Æ" "¬")))
+ (("n" "y" "i") (("¤Ë" "¤£") ("¥Ë" "¥£") ("Æ" "¨")))
+ (("n" "y" "u") (("¤Ë" "¤å") ("¥Ë" "¥å") ("Æ" "")))
+ (("n" "y" "e") (("¤Ë" "¤§") ("¥Ë" "¥§") ("Æ" "ª")))
+ (("n" "y" "o") (("¤Ë" "¤ç") ("¥Ë" "¥ç") ("Æ" "®")))
+
+ ;; ¤Ï¹Ô
+ (("h" "a") ("¤Ï" "¥Ï" "Ê"))
+ (("h" "i") ("¤Ò" "¥Ò" "Ë"))
+ (("h" "u") ("¤Õ" "¥Õ" "Ì"))
+ (("h" "e") ("¤Ø" "¥Ø" "Í"))
+ (("h" "o") ("¤Û" "¥Û" "Î"))
+
+ (("h" "y" "a") (("¤Ò" "¤ã") ("¥Ò" "¥ã") ("Ë" "¬")))
+ (("h" "y" "i") (("¤Ò" "¤£") ("¥Ò" "¥£") ("Ë" "¨")))
+ (("h" "y" "u") (("¤Ò" "¤å") ("¥Ò" "¥å") ("Ë" "")))
+ (("h" "y" "e") (("¤Ò" "¤§") ("¥Ò" "¥§") ("Ë" "ª")))
+ (("h" "y" "o") (("¤Ò" "¤ç") ("¥Ò" "¥ç") ("Ë" "®")))
+
+ (("f" "a") (("¤Õ" "¤¡") ("¥Õ" "¥¡") ("Ì" "§")))
+ (("f" "i") (("¤Õ" "¤£") ("¥Õ" "¥£") ("Ì" "¨")))
+ (("f" "e") (("¤Õ" "¤§") ("¥Õ" "¥§") ("Ì" "ª")))
+ (("f" "o") (("¤Õ" "¤©") ("¥Õ" "¥©") ("Ì" "«")))
+
+ (("b" "a") ("¤Ð" "¥Ð" ("Ê" "Þ")))
+ (("b" "i") ("¤Ó" "¥Ó" ("Ë" "Þ")))
+ (("b" "u") ("¤Ö" "¥Ö" ("Ì" "Þ")))
+ (("b" "e") ("¤Ù" "¥Ù" ("Í" "Þ")))
+ (("b" "o") ("¤Ü" "¥Ü" ("Î" "Þ")))
+
+ (("b" "y" "a") (("¤Ó" "¤ã") ("¥Ó" "¥ã") ("Ë" "Þ" "¬")))
+ (("b" "y" "i") (("¤Ó" "¤£") ("¥Ó" "¥£") ("Ë" "Þ" "¨")))
+ (("b" "y" "u") (("¤Ó" "¤å") ("¥Ó" "¥å") ("Ë" "Þ" "")))
+ (("b" "y" "e") (("¤Ó" "¤§") ("¥Ó" "¥§") ("Ë" "Þ" "ª")))
+ (("b" "y" "o") (("¤Ó" "¤ç") ("¥Ó" "¥ç") ("Ë" "Þ" "®")))
+
+ (("p" "a") ("¤Ñ" "¥Ñ" ("Ê" "ß")))
+ (("p" "i") ("¤Ô" "¥Ô" ("Ë" "ß")))
+ (("p" "u") ("¤×" "¥×" ("Ì" "ß")))
+ (("p" "e") ("¤Ú" "¥Ú" ("Í" "ß")))
+ (("p" "o") ("¤Ý" "¥Ý" ("Î" "ß")))
+
+ (("p" "y" "a") (("¤Ô" "¤ã") ("¥Ô" "¥ã") ("Ë" "ß" "¬")))
+ (("p" "y" "i") (("¤Ô" "¤£") ("¥Ô" "¥£") ("Ë" "ß" "¨")))
+ (("p" "y" "u") (("¤Ô" "¤å") ("¥Ô" "¥å") ("Ë" "ß" "")))
+ (("p" "y" "e") (("¤Ô" "¤§") ("¥Ô" "¥§") ("Ë" "ß" "ª")))
+ (("p" "y" "o") (("¤Ô" "¤ç") ("¥Ô" "¥ç") ("Ë" "ß" "®")))
+
+ ;; ¤Þ¹Ô
+ (("m" "a") ("¤Þ" "¥Þ" "Ï"))
+ (("m" "i") ("¤ß" "¥ß" "Ð"))
+ (("m" "u") ("¤à" "¥à" "Ñ"))
+ (("m" "e") ("¤á" "¥á" "Ò"))
+ (("m" "o") ("¤â" "¥â" "Ó"))
+
+ (("m" "y" "a") (("¤ß" "¤ã") ("¥ß" "¥ã") ("Ð" "¬")))
+ (("m" "y" "i") (("¤ß" "¤£") ("¥ß" "¥£") ("Ð" "¨")))
+ (("m" "y" "u") (("¤ß" "¤å") ("¥ß" "¥å") ("Ð" "")))
+ (("m" "y" "e") (("¤ß" "¤§") ("¥ß" "¥§") ("Ð" "ª")))
+ (("m" "y" "o") (("¤ß" "¤ç") ("¥ß" "¥ç") ("Ð" "®")))
+
+ ;; ¤ä¹Ô
+ (("y" "a") ("¤ä" "¥ä" "Ô"))
+ (("y" "i") ("¤¤" "¥¤" "²")) ;; rk does not contain this rule
+ (("y" "u") ("¤æ" "¥æ" "Õ"))
+ (("y" "e") (("¤¤" "¤§") ("¥¤" "¥§") ("²" "ª")))
+ (("y" "o") ("¤è" "¥è" "Ö"))
+
+ ;; ¤é¹Ô
+ (("r" "a") ("¤é" "¥é" "×"))
+ (("r" "i") ("¤ê" "¥ê" "Ø"))
+ (("r" "u") ("¤ë" "¥ë" "Ù"))
+ (("r" "e") ("¤ì" "¥ì" "Ú"))
+ (("r" "o") ("¤í" "¥í" "Û"))
+
+ (("r" "y" "a") (("¤ê" "¤ã") ("¥ê" "¥ã") ("Ø" "¬")))
+ (("r" "y" "i") (("¤ê" "¤£") ("¥ê" "¥£") ("Ø" "¨")))
+ (("r" "y" "u") (("¤ê" "¤å") ("¥ê" "¥å") ("Ø" "")))
+ (("r" "y" "e") (("¤ê" "¤§") ("¥ê" "¥§") ("Ø" "ª")))
+ (("r" "y" "o") (("¤ê" "¤ç") ("¥ê" "¥ç") ("Ø" "®")))
+
+ ;; ¤ï¹Ô
+ (("w" "a") ("¤ï" "¥ï" "Ü"))
+ (("w" "i") (("¤¦" "¤£") ("¥¦" "¥£") ("³" "¨")))
+ (("w" "u") ("¤¦" "¥¦" "³"))
+ (("w" "e") (("¤¦" "¤§") ("¥¦" "¥§") ("³" "ª")))
+ (("w" "o") ("¤ò" "¥ò" "¦"))
+
+ ;; ¤¦¡«
+ (("v" "a") (("¤¦" "¡«" "¤¡") ("¥ô" "¥¡") ("³" "Þ" "§")))
+ (("v" "i") (("¤¦" "¡«" "¤£") ("¥ô" "¥£") ("³" "Þ" "¨")))
+ (("v" "u") (("¤¦" "¡«") "¥ô" ("³" "Þ")))
+ (("v" "e") (("¤¦" "¡«" "¤§") ("¥ô" "¥§") ("³" "Þ" "ª")))
+ (("v" "o") (("¤¦" "¡«" "¤©") ("¥ô" "¥©") ("³" "Þ" "«")))
+
+ (("v" "y" "a") (("¤¦" "¡«" "¤ã") ("¥ô" "¥ã") ("³" "Þ" "¬")))
+ (("v" "y" "u") (("¤¦" "¡«" "¤å") ("¥ô" "¥å") ("³" "Þ" "")))
+ (("v" "y" "o") (("¤¦" "¡«" "¤ç") ("¥ô" "¥ç") ("³" "Þ" "®")))
+
+ ;; ¤ó
+ (("n" "n") ("¤ó" "¥ó" "Ý"))
+ (("n" (char-nonvowel press peek)) (("¤ó" ($3 loopback))
+ ("¥ó" ($3 loopback))
+ ("Ý" ($3 loopback))))
+
+ ;; µ¹æ
+ (("-") ("¡¼" "¡¼" "°"))
+ (("[") ("¡Ö" "¡Ö" "¢"))
+ (("]") ("¡×" "¡×" "£"))
+ ))
+
+(define ja-romaji-basic-double-consonant-ruleset
+ (ja-romaji-generate-double-consonant-ruleset
+ ja-romaji-basic-ruleset))
+
+(define ja-romaji-x-prefixed-small-kana-ruleset
+ '((("x" "a") ("¤¡" "¥¡" "§"))
+ (("x" "i") ("¤£" "¥£" "¨"))
+ (("x" "u") ("¤¥" "¥¥" "©"))
+ (("x" "e") ("¤§" "¥§" "ª"))
+ (("x" "o") ("¤©" "¥©" "«"))
+
+ (("x" "y" "a") ("¤ã" "¥ã" "¬"))
+ (("x" "y" "i") ("¤£" "¥£" "¨"))
+ (("x" "y" "u") ("¤å" "¥å" ""))
+ (("x" "y" "e") ("¤§" "¥§" "ª"))
+ (("x" "y" "o") ("¤ç" "¥ç" "®"))
+
+ (("x" "t" "u") ("¤Ã" "¥Ã" "¯"))
+ (("x" "t" "s" "u") ("¤Ã" "¥Ã" "¯"))))
+
+(define ja-romaji-l-prefixed-small-kana-ruleset
+ '((("l" "a") ("¤¡" "¥¡" "§"))
+ (("l" "i") ("¤£" "¥£" "¨"))
+ (("l" "u") ("¤¥" "¥¥" "©"))
+ (("l" "e") ("¤§" "¥§" "ª"))
+ (("l" "o") ("¤©" "¥©" "«"))
+
+ ;; rk does not contain these rules
+ (("l" "y" "a") ("¤ã" "¥ã" "¬"))
+ (("l" "y" "i") ("¤£" "¥£" "¨"))
+ (("l" "y" "u") ("¤å" "¥å" ""))
+ (("l" "y" "e") ("¤§" "¥§" "ª"))
+ (("l" "y" "o") ("¤ç" "¥ç" "®"))
+
+ (("l" "t" "u") ("¤Ã" "¥Ã" "¯"))
+ (("l" "t" "s" "u") ("¤Ã" "¥Ã" "¯"))))
+
+;; rk contains these rules
+(define ja-romaji-minor-ruleset
+ '(
+ (("d" "s" "u") ("¤Å" "¥Å" ("Â" "Þ")))
+
+ (("x" "w" "a") ("¤î" "¥î" "Ü"))
+ (("x" "w" "i") ("¤ð" "¥ð" "¨"))
+ (("x" "w" "e") ("¤ñ" "¥ñ" "ª"))
+
+ ;; "°ì¥ö·î", "10¥õ¾ò"
+ (("x" "c" "a") ("¥õ" "¥õ" ""))
+ (("x" "k" "a") ("¥õ" "¥õ" ""))
+ (("x" "k" "e") ("¥ö" "¥ö" ""))
+ ))
+
+;; Ù¹²»
+(define ja-romaji-minor-contracted-ruleset
+ '(
+ (("j" "y" "a") (("¤¸" "¤ã") ("¥¸" "¥ã") ("¼" "Þ" "¬")))
+ (("j" "y" "i") (("¤¸" "¤£") ("¥¸" "¥£") ("¼" "Þ" "¨")))
+ (("j" "y" "u") (("¤¸" "¤å") ("¥¸" "¥å") ("¼" "Þ" "")))
+ (("j" "y" "e") (("¤¸" "¤§") ("¥¸" "¥§") ("¼" "Þ" "ª")))
+ (("j" "y" "o") (("¤¸" "¤ç") ("¥¸" "¥ç") ("¼" "Þ" "®")))
+
+ (("t" "s" "a") (("¤Ä" "¤¡") ("¥Ä" "¥¡") ("Â" "§")))
+ (("t" "s" "i") (("¤Ä" "¤£") ("¥Ä" "¥£") ("Â" "¨")))
+ (("t" "s" "e") (("¤Ä" "¤§") ("¥Ä" "¥§") ("Â" "ª")))
+ (("t" "s" "o") (("¤Ä" "¤©") ("¥Ä" "¥©") ("Â" "«")))
+
+ (("c" "y" "a") (("¤Á" "¤ã") ("¥Á" "¥ã") ("Á" "¬")))
+ (("c" "y" "i") (("¤Á" "¤£") ("¥Á" "¥£") ("Á" "¨")))
+ (("c" "y" "u") (("¤Á" "¤å") ("¥Á" "¥å") ("Á" "")))
+ (("c" "y" "e") (("¤Á" "¤§") ("¥Á" "¥§") ("Á" "ª")))
+ (("c" "y" "o") (("¤Á" "¤ç") ("¥Á" "¥ç") ("Á" "®")))
+
+ (("f" "y" "a") (("¤Õ" "¤ã") ("¥Õ" "¥ã") ("Ì" "¬")))
+ (("f" "y" "i") (("¤Õ" "¤£") ("¥Õ" "¥£") ("Ì" "¨")))
+ (("f" "y" "u") (("¤Õ" "¤å") ("¥Õ" "¥å") ("Ì" "")))
+ (("f" "y" "e") (("¤Õ" "¤§") ("¥Õ" "¥§") ("Ì" "ª")))
+ (("f" "y" "o") (("¤Õ" "¤ç") ("¥Õ" "¥ç") ("Ì" "®")))
+
+ ;; rk contains these rules. but it conflicts with
+ ;; ja-romaji-l-prefixed-small-kana-ruleset
+ ;;(("l" "y" "a") (("¤ê" "¤ã") ("¥ê" "¥ã") ("Ø" "¬")))
+ ;;(("l" "y" "i") (("¤ê" "¤£") ("¥ê" "¥£") ("Ø" "¨")))
+ ;;(("l" "y" "u") (("¤ê" "¤å") ("¥ê" "¥å") ("Ø" "")))
+ ;;(("l" "y" "e") (("¤ê" "¤§") ("¥ê" "¥§") ("Ø" "ª")))
+ ;;(("l" "y" "o") (("¤ê" "¤ç") ("¥ê" "¥ç") ("Ø" "®")))
+
+ (("w" "h" "a") (("¤¦" "¤¡") ("¥¦" "¥¡") ("³" "§")))
+ (("w" "h" "i") (("¤¦" "¤£") ("¥¦" "¥£") ("³" "¨")))
+ (("w" "h" "u") ("¤¦" "¥¦" "³"))
+ (("w" "h" "e") (("¤¦" "¤§") ("¥¦" "¥§") ("³" "ª")))
+ (("w" "h" "o") (("¤¦" "¤©") ("¥¦" "¥©") ("³" "«")))
+
+ (("d" "h" "a") (("¤Ç" "¤ã") ("¥Ç" "¥ã") ("Ã" "Þ" "¬")))
+ (("d" "h" "i") (("¤Ç" "¤£") ("¥Ç" "¥£") ("Ã" "Þ" "¨")))
+ (("d" "h" "u") (("¤Ç" "¤å") ("¥Ç" "¥å") ("Ã" "Þ" "")))
+ (("d" "h" "e") (("¤Ç" "¤§") ("¥Ç" "¥§") ("Ã" "Þ" "ª")))
+ (("d" "h" "o") (("¤Ç" "¤ç") ("¥Ç" "¥ç") ("Ã" "Þ" "®")))
+
+ (("d" "w" "a") (("¤É" "¤¡") ("¥É" "¥¡") ("Ä" "Þ" "§")))
+ (("d" "w" "i") (("¤É" "¤£") ("¥É" "¥£") ("Ä" "Þ" "¨")))
+ (("d" "w" "u") (("¤É" "¤¥") ("¥É" "¥¥") ("Ä" "Þ" "©")))
+ (("d" "w" "e") (("¤É" "¤§") ("¥É" "¥§") ("Ä" "Þ" "ª")))
+ (("d" "w" "o") (("¤É" "¤©") ("¥É" "¥©") ("Ä" "Þ" "«")))
+
+ (("k" "w" "a") (("¤¯" "¤¡") ("¥¯" "¥¡") ("¸" "§")))
+ (("k" "w" "i") (("¤¯" "¤£") ("¥¯" "¥£") ("¸" "¨")))
+ (("k" "w" "u") (("¤¯" "¤¥") ("¥¯" "¥¥") ("¸" "©")))
+ (("k" "w" "e") (("¤¯" "¤§") ("¥¯" "¥§") ("¸" "ª")))
+ (("k" "w" "o") (("¤¯" "¤©") ("¥¯" "¥©") ("¸" "«")))
+
+ (("s" "w" "a") (("¤¹" "¤¡") ("¥¹" "¥¡") ("½" "§")))
+ (("s" "w" "i") (("¤¹" "¤£") ("¥¹" "¥£") ("½" "¨")))
+ (("s" "w" "u") (("¤¹" "¤¥") ("¥¹" "¥¥") ("½" "©")))
+ (("s" "w" "e") (("¤¹" "¤§") ("¥¹" "¥§") ("½" "ª")))
+ (("s" "w" "o") (("¤¹" "¤©") ("¥¹" "¥©") ("½" "«")))
+
+ (("t" "w" "a") (("¤È" "¤¡") ("¥È" "¥¡") ("Ä" "§")))
+ (("t" "w" "i") (("¤È" "¤£") ("¥È" "¥£") ("Ä" "¨")))
+ (("t" "w" "u") (("¤È" "¤¥") ("¥È" "¥¥") ("Ä" "©")))
+ (("t" "w" "e") (("¤È" "¤§") ("¥È" "¥§") ("Ä" "ª")))
+ (("t" "w" "o") (("¤È" "¤©") ("¥È" "¥©") ("Ä" "«")))
+
+ (("t" "h" "a") (("¤Æ" "¤ã") ("¥Æ" "¥ã") ("Ã" "¬")))
+ (("t" "h" "i") (("¤Æ" "¤£") ("¥Æ" "¥£") ("Ã" "¨")))
+ (("t" "h" "u") (("¤Æ" "¤å") ("¥Æ" "¥å") ("Ã" "")))
+ (("t" "h" "e") (("¤Æ" "¤§") ("¥Æ" "¥§") ("Ã" "ª")))
+ (("t" "h" "o") (("¤Æ" "¤ç") ("¥Æ" "¥ç") ("Ã" "®")))
+
+ (("h" "w" "a") (("¤Õ" "¤¡") ("¥Õ" "¥¡") ("Ì" "§")))
+ (("h" "w" "i") (("¤Õ" "¤£") ("¥Õ" "¥£") ("Ì" "¨")))
+ (("h" "w" "e") (("¤Õ" "¤§") ("¥Õ" "¥§") ("Ì" "ª")))
+ (("h" "w" "o") (("¤Õ" "¤©") ("¥Õ" "¥©") ("Ì" "«")))
+
+ (("f" "w" "a") (("¤Õ" "¤¡") ("¥Õ" "¥¡") ("Ì" "§")))
+ (("f" "w" "i") (("¤Õ" "¤£") ("¥Õ" "¥£") ("Ì" "¨")))
+ (("f" "w" "u") (("¤Õ" "¤¥") ("¥Õ" "¥¥") ("Ì" "©")))
+ (("f" "w" "e") (("¤Õ" "¤§") ("¥Õ" "¥§") ("Ì" "ª")))
+ (("f" "w" "o") (("¤Õ" "¤©") ("¥Õ" "¥©") ("Ì" "«")))
+
+ (("q" "w" "a") (("¤¯" "¤¡") ("¥¯" "¥¡") ("¸" "§")))
+ (("q" "w" "i") (("¤¯" "¤£") ("¥¯" "¥£") ("¸" "¨")))
+ (("q" "w" "u") (("¤¯" "¤¥") ("¥¯" "¥¥") ("¸" "©")))
+ (("q" "w" "e") (("¤¯" "¤§") ("¥¯" "¥§") ("¸" "ª")))
+ (("q" "w" "o") (("¤¯" "¤©") ("¥¯" "¥©") ("¸" "«")))
+
+ (("q" "y" "a") (("¤¯" "¤ã") ("¥¯" "¥ã") ("¸" "¬")))
+ (("q" "y" "i") (("¤¯" "¤£") ("¥¯" "¥£") ("¸" "¨")))
+ (("q" "y" "u") (("¤¯" "¤å") ("¥¯" "¥å") ("¸" "")))
+ (("q" "y" "e") (("¤¯" "¤§") ("¥¯" "¥§") ("¸" "ª")))
+ (("q" "y" "o") (("¤¯" "¤ç") ("¥¯" "¥ç") ("¸" "®")))
+
+ (("g" "w" "a") (("¤°" "¤¡") ("¥°" "¥¡") ("¸" "Þ" "§")))
+ (("g" "w" "i") (("¤°" "¤£") ("¥°" "¥£") ("¸" "Þ" "¨")))
+ (("g" "w" "u") (("¤°" "¤¥") ("¥°" "¥¥") ("¸" "Þ" "©")))
+ (("g" "w" "e") (("¤°" "¤§") ("¥°" "¥§") ("¸" "Þ" "ª")))
+ (("g" "w" "o") (("¤°" "¤©") ("¥°" "¥©") ("¸" "Þ" "«")))
+ ))
+
+(define ja-romaji-minor-contracted-double-consonant-ruleset
+ (ja-romaji-generate-double-consonant-ruleset
+ ja-romaji-minor-contracted-ruleset))
+
+(define ja-romaji-skk-like-symbol-ruleset
+ '((("z" "k") ("¢¬" "¢¬" ""))
+ (("z" "j") ("¢" "¢" ""))
+ (("z" "h") ("¢«" "¢«" ""))
+ (("z" "l") ("¢ª" "¢ª" ""))
+ (("z" "-") ("¡Á" "¡Á" ""))
+ (("z" "[") ("¡Ø" "¡Ø" ""))
+ (("z" "]") ("¡Ù" "¡Ù" ""))
+ (("z" ",") ("¡Å" "¡Å" ("¥" "¥")))
+ (("z" ".") ("¡Ä" "¡Ä" ("¥" "¥" "¥")))
+ (("z" "/") ("¡¦" "¡¦" "¥"))))
+
+;;
+;; Hepburn style romaji: ¥Ø¥Ü¥ó¼°¥í¡¼¥Þ»ú
+;;
+
+(define ja-romaji-hepburn-ruleset
+ '(
+ (("s" "h" "a") (("¤·" "¤ã") ("¥·" "¥ã") ("¼" "¬")))
+ (("s" "h" "i") ("¤·" "¥·" "¼"))
+ (("s" "h" "u") (("¤·" "¤å") ("¥·" "¥å") ("¼" "")))
+ (("s" "h" "e") (("¤·" "¤§") ("¥·" "¥§") ("¼" "ª")))
+ (("s" "h" "o") (("¤·" "¤ç") ("¥·" "¥ç") ("¼" "®")))
+
+ (("j" "a") (("¤¸" "¤ã") ("¥¸" "¥ã") ("¼" "Þ" "¬")))
+ (("j" "i") ("¤¸" "¥¸" ("¼" "Þ")))
+ (("j" "u") (("¤¸" "¤å") ("¥¸" "¥å") ("¼" "Þ" "")))
+ (("j" "e") (("¤¸" "¤§") ("¥¸" "¥§") ("¼" "Þ" "ª")))
+ (("j" "o") (("¤¸" "¤ç") ("¥¸" "¥ç") ("¼" "Þ" "®")))
+
+ (("t" "s" "u") ("¤Ä" "¥Ä" "Â"))
+
+ (("c" "h" "a") (("¤Á" "¤ã") ("¥Á" "¥ã") ("Á" "¬")))
+ (("c" "h" "i") ("¤Á" "¥Á" "Á"))
+ (("c" "h" "u") (("¤Á" "¤å") ("¥Á" "¥å") ("Á" "")))
+ (("c" "h" "e") (("¤Á" "¤§") ("¥Á" "¥§") ("Á" "ª")))
+ (("c" "h" "o") (("¤Á" "¤ç") ("¥Á" "¥ç") ("Á" "®")))
+
+ (("f" "u") ("¤Õ" "¥Õ" "Ì"))
+ ))
+
+(define ja-romaji-hepburn-double-consonant-ruleset
+ (ja-romaji-generate-double-consonant-ruleset
+ ja-romaji-hepburn-ruleset))
+
+;; ¤ó
+(define ja-romaji-hepburn-n-ruleset
+ '(
+ ;; "namba" ¢ª "¤Ê¤ó¤Ð"
+ (("m" ("b" press peek)) (("¤ó" ($3 loopback))
+ ("¥ó" ($3 loopback))
+ ("Ý" ($3 loopback))))
+
+ ;; "homma" ¢ª "¤Û¤ó¤Þ"
+ (("m" ("m" press peek)) (("¤ó" ($3 loopback))
+ ("¥ó" ($3 loopback))
+ ("Ý" ($3 loopback))))
+
+ ;; "kampo" ¢ª "¤«¤ó¤Ý"
+ (("m" ("p" press peek)) (("¤ó" ($3 loopback))
+ ("¥ó" ($3 loopback))
+ ("Ý" ($3 loopback))))))
+
+;; ¤ª¤ª¡¢¤ª¤¦ (experimental)
+(define ja-romaji-hepburn-oh-ruleset
+ '((("o" "h" (char-nonvowel press peek)) (("¤ª" "¤ª" ($5 loopback))
+ ("¥ª" "¥ª" ($5 loopback))
+ ("µ" "µ" ($5 loopback))))
+ (("k" "o" "h" (char-nonvowel press peek)) (("¤³" "¤¦" ($7 loopback))
+ ("¥³" "¥¦" ($7 loopback))
+ ("º" "³" ($7 loopback))))
+ (("g" "o" "h" (char-nonvowel press peek)) (("¤´" "¤¦" ($7 loopback))
+ ("¥´" "¥¦" ($7 loopback))
+ ("º" "Þ" "³" ($7 loopback))))
+ (("s" "o" "h" (char-nonvowel press peek)) (("¤½" "¤¦" ($7 loopback))
+ ("¥½" "¥¦" ($7 loopback))
+ ("¿" "³" ($7 loopback))))
+ (("z" "o" "h" (char-nonvowel press peek)) (("¤¾" "¤¦" ($7 loopback))
+ ("¥¾" "¥¦" ($7 loopback))
+ ("¿" "Þ" "³" ($7 loopback))))
+ (("j" "o" "h" (char-nonvowel press peek)) (("¤¸" "¤ç" "¤¦" ($7 loopback))
+ ("¥¸" "¥ç" "¥¦" ($7 loopback))
+ ("¼" "Þ" "®" "³" ($7 loopback))))
+ (("t" "o" "h" (char-nonvowel press peek)) (("¤È" "¤¦" ($7 loopback))
+ ("¥È" "¥¦" ($7 loopback))
+ ("Ä" "³" ($7 loopback))))
+ (("d" "o" "h" (char-nonvowel press peek)) (("¤É" "¤¦" ($7 loopback))
+ ("¥É" "¥¦" ($7 loopback))
+ ("Ä" "Þ" "³" ($7 loopback))))
+ (("n" "o" "h" (char-nonvowel press peek)) (("¤Î" "¤¦" ($7 loopback))
+ ("¥Î" "¥¦" ($7 loopback))
+ ("É" "³" ($7 loopback))))
+ (("h" "o" "h" (char-nonvowel press peek)) (("¤Û" "¤¦" ($7 loopback))
+ ("¥Û" "¥¦" ($7 loopback))
+ ("Î" "³" ($7 loopback))))
+;; (("f" "o" "h" (char-nonvowel press peek)) (("¤Õ" "¤©" "¤¦" ($7 loopback))
+;; ("¥Õ" "¥©" "¥¦" ($7 loopback))
+;; ("Ì" "«" "³" ($7 loopback))))
+ (("b" "o" "h" (char-nonvowel press peek)) (("¤Ü" "¤¦" ($7 loopback))
+ ("¥Ü" "¥¦" ($7 loopback))
+ ("Î" "Þ" "³" ($7 loopback))))
+ (("p" "o" "h" (char-nonvowel press peek)) (("¤Ý" "¤¦" ($7 loopback))
+ ("¥Ý" "¥¦" ($7 loopback))
+ ("Î" "ß" "³" ($7 loopback))))
+ (("m" "o" "h" (char-nonvowel press peek)) (("¤â" "¤¦" ($7 loopback))
+ ("¥â" "¥¦" ($7 loopback))
+ ("Ó" "³" ($7 loopback))))
+ (("y" "o" "h" (char-nonvowel press peek)) (("¤è" "¤¦" ($7 loopback))
+ ("¥è" "¥¦" ($7 loopback))
+ ("Ö" "³" ($7 loopback))))
+ (("r" "o" "h" (char-nonvowel press peek)) (("¤í" "¤¦" ($7 loopback))
+ ("¥í" "¥¦" ($7 loopback))
+ ("Û" "³" ($7 loopback))))))
+
+;; Êѧ¥²» ÊÑ´¹Ãæɽ¼¨
+(define ja-romaji-hepburn-irregular-double-consonant-guide-ruleset
+ '((("t" "c") (("¤Ã" "c") ("¥Ã" "c") ("¯" "c")))))
+
+;; Êѧ¥²»
+(define ja-romaji-hepburn-irregular-double-consonant-ruleset
+ '((("t" "c" "h" "a") (("¤Ã" "¤Á" "¤ã") ("¥Ã" "¥Á" "¥ã") ("¯" "Á" "¬")))
+ (("t" "c" "h" "i") (("¤Ã" "¤Á" "¤£") ("¥Ã" "¥Á" "¥£") ("¯" "Á" "¨")))
+ (("t" "c" "h" "u") (("¤Ã" "¤Á" "¤å") ("¥Ã" "¥Á" "¥å") ("¯" "Á" "")))
+ ;;(("t" "c" "h" "e") (("¤Ã" "¤Á" "¤§") ("¥Ã" "¥Á" "¥§") ("¯" "Á" "ª")))
+ (("t" "c" "h" "o") (("¤Ã" "¤Á" "¤ç") ("¥Ã" "¥Á" "¥ç") ("¯" "Á" "®")))))
+
+
+;; separate romaji rulesets into 3 parts dedicated for hiragana,
+;; katakana and halfkana
+(define ja-romaji-ruleset-name-list
+ '(double-consonant-guide
+ basic
+ basic-double-consonant
+ x-prefixed-small-kana
+ l-prefixed-small-kana
+ minor
+ minor-contracted
+ minor-contracted-double-consonant
+ skk-like-symbol
+ hepburn
+ hepburn-double-consonant
+ hepburn-n
+ hepburn-oh
+ hepburn-irregular-double-consonant-guide
+ hepburn-irregular-double-consonant))
+
+(ja-define-dedicated-rulesets 'ja-romaji ja-romaji-ruleset-name-list)
+
+
+;; may be replaced with more efficient way for ruleset composition(merging)
+(define ja-romaji-hiragana-ruleset
+ (append
+ ja-fullwidth-space-ruleset
+ ja-fullwidth-kana-period-ruleset
+ ja-fullwidth-kana-comma-ruleset
+ ja-fullwidth-basic-symbol-ruleset
+ ja-fullwidth-number-ruleset
+ ja-fullwidth-alphabet-ruleset
+ ja-romaji-hiragana-basic-ruleset
+ ja-romaji-hiragana-double-consonant-guide-ruleset
+ ja-romaji-hiragana-basic-double-consonant-ruleset
+ ja-romaji-hiragana-x-prefixed-small-kana-ruleset
+ ja-romaji-hiragana-l-prefixed-small-kana-ruleset
+ ja-romaji-hiragana-minor-ruleset
+ ja-romaji-hiragana-minor-contracted-ruleset
+ ja-romaji-hiragana-minor-contracted-double-consonant-ruleset
+ ja-romaji-hiragana-hepburn-ruleset
+ ja-romaji-hiragana-hepburn-double-consonant-ruleset
+ ja-romaji-hiragana-hepburn-n-ruleset
+ ja-romaji-hiragana-hepburn-oh-ruleset
+ ja-romaji-hiragana-hepburn-irregular-double-consonant-guide-ruleset
+ ja-romaji-hiragana-hepburn-irregular-double-consonant-ruleset
+ ja-romaji-hiragana-skk-like-symbol-ruleset))
+
+(define ja-romaji-katakana-ruleset
+ (append
+ ja-fullwidth-space-ruleset
+ ja-fullwidth-kana-period-ruleset
+ ja-fullwidth-kana-comma-ruleset
+ ja-fullwidth-basic-symbol-ruleset
+ ja-fullwidth-number-ruleset
+ ja-fullwidth-alphabet-ruleset
+ ja-romaji-katakana-basic-ruleset
+ ja-romaji-katakana-double-consonant-guide-ruleset
+ ja-romaji-katakana-basic-double-consonant-ruleset
+ ja-romaji-katakana-x-prefixed-small-kana-ruleset
+ ja-romaji-katakana-l-prefixed-small-kana-ruleset
+ ja-romaji-katakana-minor-ruleset
+ ja-romaji-katakana-minor-contracted-ruleset
+ ja-romaji-katakana-minor-contracted-double-consonant-ruleset
+ ja-romaji-katakana-hepburn-ruleset
+ ja-romaji-katakana-hepburn-double-consonant-ruleset
+ ja-romaji-katakana-hepburn-n-ruleset
+ ja-romaji-katakana-hepburn-oh-ruleset
+ ja-romaji-katakana-hepburn-irregular-double-consonant-guide-ruleset
+ ja-romaji-katakana-hepburn-irregular-double-consonant-ruleset
+ ja-romaji-katakana-skk-like-symbol-ruleset))
+
+(define ja-romaji-halfkana-ruleset
+ (append
+ ja-halfwidth-space-ruleset
+ ja-halfwidth-kana-period-ruleset
+ ja-halfwidth-kana-comma-ruleset
+ ja-halfwidth-basic-symbol-ruleset
+ ja-halfwidth-number-ruleset
+ ja-halfwidth-alphabet-ruleset
+ ja-romaji-halfkana-basic-ruleset
+ ja-romaji-halfkana-double-consonant-guide-ruleset
+ ja-romaji-halfkana-basic-double-consonant-ruleset
+ ja-romaji-halfkana-x-prefixed-small-kana-ruleset
+ ja-romaji-halfkana-l-prefixed-small-kana-ruleset
+ ja-romaji-halfkana-minor-ruleset
+ ja-romaji-halfkana-minor-contracted-ruleset
+ ja-romaji-halfkana-minor-contracted-double-consonant-ruleset
+ ja-romaji-halfkana-hepburn-ruleset
+ ja-romaji-halfkana-hepburn-double-consonant-ruleset
+ ja-romaji-halfkana-hepburn-n-ruleset
+ ja-romaji-halfkana-hepburn-oh-ruleset
+ ja-romaji-halfkana-hepburn-irregular-double-consonant-guide-ruleset
+ ja-romaji-halfkana-hepburn-irregular-double-consonant-ruleset
+ ja-romaji-halfkana-skk-like-symbol-ruleset))
+
Added: branches/composer/scm/ng-japanese.scm
===================================================================
--- branches/composer/scm/ng-japanese.scm 2005-02-24 00:59:57 UTC (rev 707)
+++ branches/composer/scm/ng-japanese.scm 2005-02-24 01:26:18 UTC (rev 708)
@@ -0,0 +1,453 @@
+;;; ng-japanese.scm: Character composition rulesets for Japanese
+;;;
+;;; Copyright (c) 2004-2005 uim Project http://uim.freedesktop.org/
+;;;
+;;; All rights reserved.
+;;;
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+;;; 1. Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+;;; 2. Redistributions in binary form must reproduce the above copyright
+;;; notice, this list of conditions and the following disclaimer in the
+;;; documentation and/or other materials provided with the distribution.
+;;; 3. Neither the name of authors nor the names of its contributors
+;;; may be used to endorse or promote products derived from this software
+;;; without specific prior written permission.
+;;;
+;;; THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+;;; SUCH DAMAGE.
+;;;;
+
+(require "util.scm")
+(require "ng-key.scm")
+(require "evmap.scm")
+
+
+;;
+;; kana definitions
+;;
+
+(define-record 'ja-kana
+ '((hiragana "")
+ (katakana "")
+ (halfkana "") ;; JIS X 0201 kana
+ ;;(manyou "") ;; Manyou-gana
+ ;;(kusachu "") ;; kana representations for a closed community
+ ;;(gal "") ;; kana representations for a closed community
+ ))
+
+(define-record 'ja-kana-props
+ '((id #f)
+ (extractor #f)
+ (indication-id #f)
+ (label "")
+ (short-desc "")))
+
+(define ja-kana-props-alist
+ (list
+ (list 'hiragana
+ ja-kana-hiragana
+ 'figure_ja_hiragana
+ "Hiragana"
+ "")
+ (list 'katakana
+ ja-kana-katakana
+ 'figure_ja_katakana
+ "Katakana"
+ "")
+ (list 'halfkana
+ ja-kana-halfkana
+ 'figure_ja_halfkana
+ "Halfwidth katakana"
+ "")
+;; (list 'manyou
+;; ja-kana-manyou
+;; 'figure_ja_manyou
+;; "Manyou-gana"
+;; "")
+;; (list 'kusachu
+;; ja-kana-kusachu
+;; 'figure_ja_kusachu
+;; "Kusachu ideographs"
+;; "")
+;; (list 'gal
+;; ja-kana-gal
+;; 'figure_ja_gal
+;; "Gal ideographs"
+;; "")
+ ))
+
+;; Japanese kana composition rulesets will be rewritten using
+;; following symbolic kana references in future version of uim to
+;; modify kana representations easily, reduce memory consumptions, and
+;; to prevent human errors when copying each definitions into
+;; rulesets.
+
+;; ¤¢¹Ô
+(define ja-kana-a '("¤¢" "¥¢" "±"))
+(define ja-kana-i '("¤¤" "¥¤" "²"))
+(define ja-kana-u '("¤¦" "¥¦" "³"))
+(define ja-kana-e '("¤¨" "¥¨" "´"))
+(define ja-kana-o '("¤ª" "¥ª" "µ"))
+
+;;¤«¹Ô
+(define ja-kana-ka '("¤«" "¥«" "¶"))
+(define ja-kana-ki '("¤" "¥" "·"))
+(define ja-kana-ku '("¤¯" "¥¯" "¸"))
+(define ja-kana-ke '("¤±" "¥±" "¹"))
+(define ja-kana-ko '("¤³" "¥³" "º"))
+
+(define ja-kana-kya '(("¤" "¤ã") ("¥" "¥ã") ("·" "¬")))
+(define ja-kana-kyi '(("¤" "¤£") ("¥" "¥£") ("·" "¨")))
+(define ja-kana-kyu '(("¤" "¤å") ("¥" "¥å") ("·" "")))
+(define ja-kana-kye '(("¤" "¤§") ("¥" "¥§") ("·" "ª")))
+(define ja-kana-kyo '(("¤" "¤ç") ("¥" "¥ç") ("·" "®")))
+
+(define ja-kana-ga '("¤¬" "¥¬" ("¶" "Þ")))
+(define ja-kana-gi '("¤®" "¥®" ("·" "Þ")))
+(define ja-kana-gu '("¤°" "¥°" ("¸" "Þ")))
+(define ja-kana-ge '("¤²" "¥²" ("¹" "Þ")))
+(define ja-kana-go '("¤´" "¥´" ("º" "Þ")))
+
+(define ja-kana-gya '(("¤®" "¤ã") ("¥®" "¥ã") ("·" "Þ" "¬")))
+(define ja-kana-gyi '(("¤®" "¤£") ("¥®" "¥£") ("·" "Þ" "¨")))
+(define ja-kana-gyu '(("¤®" "¤å") ("¥®" "¥å") ("·" "Þ" "")))
+(define ja-kana-gye '(("¤®" "¤§") ("¥®" "¥§") ("·" "Þ" "ª")))
+(define ja-kana-gyo '(("¤®" "¤ç") ("¥®" "¥ç") ("·" "Þ" "®")))
+
+(define ja-kana-xtsu '("¤Ã" "¥Ã" "¯"))
+
+;; Can be extended as follows if you want
+;;(define ja-kana-sa '("¤µ" "¥µ" "»" "º¸" "¡Þ" "¡Þ"))
+;;(define ja-kana-de '("¤Ç" "¥Ç" ("Ã" "Þ") "Å¥" "¤Æ~" "¦Ó¡·"))
+
+;;
+;; Japanese ruleset generator
+;;
+
+(define ja-extract-dedicated-ruleset
+ (lambda (ruleset kana-extractor)
+ (map (lambda (rule)
+ (let ((kana (kana-extractor (evmap-rule-action-seq rule))))
+ (list (evmap-rule-event-seq rule)
+ (if (list? kana)
+ kana
+ (list kana)))))
+ ruleset)))
+
+(define ja-define-dedicated-ruleset
+ (lambda (prefix name kana)
+ (let* ((ruleset-name (symbolconc prefix '- kana '- name '-ruleset))
+ (src-ruleset-name (symbolconc prefix '- name '-ruleset))
+ (src-ruleset (symbol-value src-ruleset-name))
+ (kana-extractor (ja-kana-props-extractor
+ (assq kana ja-kana-props-alist)))
+ (extracted-ruleset (ja-extract-dedicated-ruleset
+ src-ruleset
+ kana-extractor)))
+ (eval (list 'define ruleset-name (list 'quote extracted-ruleset))
+ toplevel-env))))
+
+(define ja-define-dedicated-rulesets
+ (lambda (prefix ruleset-name-list)
+ (for-each (lambda (ruleset-name)
+ (for-each (lambda (kana)
+ (ja-define-dedicated-ruleset
+ prefix ruleset-name kana))
+ (map ja-kana-props-id ja-kana-props-alist)))
+ ruleset-name-list)))
+
+
+;;
+;; symbols and punctuations
+;;
+
+;; space
+(define ja-halfwidth-space-ruleset
+ '(((" ") (" "))))
+
+(define ja-fullwidth-space-ruleset
+ '(((" ") ("¡¡"))))
+
+;; hyphen
+(define ja-halfwidth-hyphen-ruleset
+ '((("-") ("-"))))
+
+(define ja-fullwidth-hyphen-ruleset
+ '((("-") ("¡Ý"))))
+
+;; comma
+;; Should be replaced with more elaborated configuration method.
+(define ja-halfwidth-comma-ruleset
+ '(((",") (","))))
+
+(define ja-fullwidth-comma-ruleset
+ '(((",") ("¡¤"))))
+
+(define ja-fullwidth-kana-comma-ruleset
+ '(((",") ("¡¢"))))
+
+(define ja-halfwidth-kana-comma-ruleset
+ '(((",") ("¤"))))
+
+;; period
+;; Should be replaced with more elaborated configuration method.
+(define ja-halfwidth-period-ruleset
+ '(((".") ("."))))
+
+(define ja-fullwidth-period-ruleset
+ '(((".") ("¡¥"))))
+
+(define ja-fullwidth-kana-period-ruleset
+ '(((".") ("¡£"))))
+
+(define ja-halfwidth-kana-period-ruleset
+ '(((".") ("¡"))))
+
+;; basic symbols
+;; separate these entries into appropriate classes on demand.
+;; (map (compose print (lambda (s) (list s s)) list charcode->string)
+;; (append (iota 48 33) (iota 65 58) (iota 97 91) (iota 127 123)))
+(define ja-halfwidth-basic-symbol-ruleset
+ '(
+ ;;((" ") (" "))
+ (("!") ("!"))
+ (("\"") ("\""))
+ (("#") ("#"))
+ (("$") ("$"))
+ (("%") ("%"))
+ (("&") ("&"))
+ (("'") ("'"))
+ (("(") ("("))
+ ((")") (")"))
+ (("*") ("*"))
+ (("+") ("+"))
+ ;;((",") (","))
+ ;;(("-") ("-"))
+ ;;((".") ("."))
+ (("/") ("/"))
+ ((":") (":"))
+ ((";") (";"))
+ (("<") ("<"))
+ (("=") ("="))
+ ((">") (">"))
+ (("?") ("?"))
+ (("@") ("@"))
+ (("[") ("["))
+ (("\\") ("\\"))
+ (("]") ("]"))
+ (("^") ("^"))
+ (("_") ("_"))
+ (("`") ("`"))
+ (("{") ("{"))
+ (("|") ("|"))
+ (("}") ("}"))
+ (("~") ("~"))
+ ))
+
+(define ja-fullwidth-basic-symbol-ruleset
+ '(
+ ;;((" ") ("¡¡"))
+ (("!") ("¡ª"))
+ (("\"") ("¡É"))
+ (("#") ("¡ô"))
+ (("$") ("¡ð"))
+ (("%") ("¡ó"))
+ (("&") ("¡õ"))
+ (("'") ("¡Ç"))
+ (("(") ("¡Ê"))
+ ((")") ("¡Ë"))
+ (("*") ("¡ö"))
+ (("+") ("¡Ü"))
+ ;;((",") ("¡¤"))
+ ;;(("-") ("¡Ý"))
+ ;;((".") ("¡¥"))
+ (("/") ("¡¿"))
+ ((":") ("¡§"))
+ ((";") ("¡¨"))
+ (("<") ("¡ã"))
+ (("=") ("¡á"))
+ ((">") ("¡ä"))
+ (("?") ("¡©"))
+ (("@") ("¡÷"))
+ (("[") ("¡Î"))
+ (("\\") ("¡À"))
+ (("]") ("¡Ï"))
+ (("^") ("¡°"))
+ (("_") ("¡²"))
+ (("`") ("¡Æ"))
+ (("{") ("¡Ð"))
+ (("|") ("¡Ã"))
+ (("}") ("¡Ñ"))
+ (("~") ("¡Á"))
+ ))
+
+;; numbers
+(define ja-halfwidth-number-ruleset
+ '((("1") ("1"))
+ (("2") ("2"))
+ (("3") ("3"))
+ (("4") ("4"))
+ (("5") ("5"))
+ (("6") ("6"))
+ (("7") ("7"))
+ (("8") ("8"))
+ (("9") ("9"))
+ (("0") ("0"))))
+
+(define ja-fullwidth-number-ruleset
+ '((("1") ("£±"))
+ (("2") ("£²"))
+ (("3") ("£³"))
+ (("4") ("£´"))
+ (("5") ("£µ"))
+ (("6") ("£¶"))
+ (("7") ("£·"))
+ (("8") ("£¸"))
+ (("9") ("£¹"))
+ (("0") ("£°"))))
+
+;; alphabets
+(define ja-halfwidth-alphabet-ruleset
+ '((("a") ("a"))
+ (("b") ("b"))
+ (("c") ("c"))
+ (("d") ("d"))
+ (("e") ("e"))
+ (("f") ("f"))
+ (("g") ("g"))
+ (("h") ("h"))
+ (("i") ("i"))
+ (("j") ("j"))
+ (("k") ("k"))
+ (("l") ("l"))
+ (("m") ("m"))
+ (("n") ("n"))
+ (("o") ("o"))
+ (("p") ("p"))
+ (("q") ("q"))
+ (("r") ("r"))
+ (("s") ("s"))
+ (("t") ("t"))
+ (("u") ("u"))
+ (("v") ("v"))
+ (("w") ("w"))
+ (("x") ("x"))
+ (("y") ("y"))
+ (("z") ("z"))
+
+ (("A") ("A"))
+ (("B") ("B"))
+ (("C") ("C"))
+ (("D") ("D"))
+ (("E") ("E"))
+ (("F") ("F"))
+ (("G") ("G"))
+ (("H") ("H"))
+ (("I") ("I"))
+ (("J") ("J"))
+ (("K") ("K"))
+ (("L") ("L"))
+ (("M") ("M"))
+ (("N") ("N"))
+ (("O") ("O"))
+ (("P") ("P"))
+ (("Q") ("Q"))
+ (("R") ("R"))
+ (("S") ("S"))
+ (("T") ("T"))
+ (("U") ("U"))
+ (("V") ("V"))
+ (("W") ("W"))
+ (("X") ("X"))
+ (("Y") ("Y"))
+ (("Z") ("Z"))))
+
+(define ja-fullwidth-alphabet-ruleset
+ '((("a") ("£á"))
+ (("b") ("£â"))
+ (("c") ("£ã"))
+ (("d") ("£ä"))
+ (("e") ("£å"))
+ (("f") ("£æ"))
+ (("g") ("£ç"))
+ (("h") ("£è"))
+ (("i") ("£é"))
+ (("j") ("£ê"))
+ (("k") ("£ë"))
+ (("l") ("£ì"))
+ (("m") ("£í"))
+ (("n") ("£î"))
+ (("o") ("£ï"))
+ (("p") ("£ð"))
+ (("q") ("£ñ"))
+ (("r") ("£ò"))
+ (("s") ("£ó"))
+ (("t") ("£ô"))
+ (("u") ("£õ"))
+ (("v") ("£ö"))
+ (("w") ("£÷"))
+ (("x") ("£ø"))
+ (("y") ("£ù"))
+ (("z") ("£ú"))
+
+ (("A") ("£Á"))
+ (("B") ("£Â"))
+ (("C") ("£Ã"))
+ (("D") ("£Ä"))
+ (("E") ("£Å"))
+ (("F") ("£Æ"))
+ (("G") ("£Ç"))
+ (("H") ("£È"))
+ (("I") ("£É"))
+ (("J") ("£Ê"))
+ (("K") ("£Ë"))
+ (("L") ("£Ì"))
+ (("M") ("£Í"))
+ (("N") ("£Î"))
+ (("O") ("£Ï"))
+ (("P") ("£Ð"))
+ (("Q") ("£Ñ"))
+ (("R") ("£Ò"))
+ (("S") ("£Ó"))
+ (("T") ("£Ô"))
+ (("U") ("£Õ"))
+ (("V") ("£Ö"))
+ (("W") ("£×"))
+ (("X") ("£Ø"))
+ (("Y") ("£Ù"))
+ (("Z") ("£Ú"))))
+
+;; This ruleset will not be used in ordinary input method. Direct
+;; input mode passes through almost of key events instead of using
+;; this ruleset.
+(define ja-halfwidth-alphanumeric-ruleset
+ (append
+ ja-halfwidth-space-ruleset
+ ja-halfwidth-hyphen-ruleset
+ ja-halfwidth-comma-ruleset
+ ja-halfwidth-period-ruleset
+ ja-halfwidth-basic-symbol-ruleset
+ ja-halfwidth-number-ruleset
+ ja-halfwidth-alphabet-ruleset))
+
+(define ja-fullwidth-alphanumeric-ruleset
+ (append
+ ja-fullwidth-space-ruleset
+ ja-fullwidth-hyphen-ruleset
+ ja-fullwidth-comma-ruleset
+ ja-fullwidth-period-ruleset
+ ja-fullwidth-basic-symbol-ruleset
+ ja-fullwidth-number-ruleset
+ ja-fullwidth-alphabet-ruleset))
More information about the Uim-commit
mailing list