Tamagotchy snapshot.
[elisp/egg.git] / its / hira.el
1 ;;; its/hira.el --- Hiragana Input in Egg Input Method Architecture
2
3 ;; Copyright (C) 1997 Mule Project,
4 ;; Powered by Electrotechnical Laboratory, JAPAN.
5 ;; Project Leader: Satoru Tomura <tomura@etl.go.jp>
6
7 ;; Author: Satoru Tomura <tomura@etl.go.jp>
8 ;;         jiro@math.keio.ac.jp (TANAKA Jiro)
9
10 ;; This file will be part of GNU Emacs (in future).
11
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
13 ;; it under the terms of the GNU General Public License as published by
14 ;; the Free Software Foundation; either version 2, or (at your option)
15 ;; any later version.
16
17 ;; GNU Emacs is distributed in the hope that it will be useful,
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 ;; GNU General Public License for more details.
21
22 ;; You should have received a copy of the GNU General Public License
23 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25 ;; Boston, MA 02111-1307, USA.
26
27 ;;; Commentary:
28 ;;
29 ;; Symbol input is desined by jiro@math.keio.ac.jp (TANAKA Jiro)
30 ;; This file is based on the rules of its/hira.el in Mule-2.3 distribution.
31 ;;
32
33 ;;; Code:
34
35 (eval-when-compile
36   (require 'its)
37   (require 'cl))
38
39 (defvar its-hira-enable-double-n nil "*Enable \"nn\" input for \"\e$B$s\e(B\" ")
40 (defvar its-hira-enable-zenkaku-alphabet t "*Enable Zenkaku alphabet")
41 (defvar its-hira-period "\e$B!#\e(B" "*\e$B%T%j%*%I\e(B")  ; ". " "\e$B!%\e(B"
42 (defvar its-hira-comma  "\e$B!"\e(B" "*\e$B%3%s%^\e(B")    ; ", " "\e$B!$\e(B"
43 (defvar its-hira-open-bracket  "\e$B!V\e(B" "*[")  ; "\e$B!N\e(B"
44 (defvar its-hira-close-bracket  "\e$B!W\e(B" "*]") ; "\e$B!O\e(B"
45 (defvar its-hira-horizontal  "\e$B!<\e(B" "*-")    ; "\e$B!]\e(B"
46
47 (define-its-state-machine its-hira-map
48   "roma-kana" "\e$B$"\e(B"
49   "Map for Romaji-Hiragana translation. (Japanese)"
50 ;;; k      k
51 ;;; kk     \e$B$C\e(Bk
52 ;;; kka    \e$B$C$+\e(B
53 ;;;
54 ;;; kkk    \e$B$C\e(Bk DING!
55
56   (its-defrule "tch"  "\e$B$C\e(B" -2)
57
58 ;;; \e$B!V$s!W$NF~NO\e(B
59
60   (dolist (q1 '("b" "m" "p"))
61     (its-defrule (concat "m" q1) "\e$B$s\e(B" -1))
62
63   (its-defrule "N" "\e$B$s\e(B")
64
65   (let ((state (its-goto-state "n" nil t)))
66     (its-make-next-state state -1 "n" "\e$B$s\e(B")
67     (its-make-next-state state ?' "n" "\e$B$s\e(B")
68     (its-defrule-otherwise state "\e$B$s\e(B"))
69
70   (let ((small '"x" ))
71     (its-defrule (concat small "a") "\e$B$!\e(B")
72     (its-defrule (concat small "i") "\e$B$#\e(B")
73     (its-defrule (concat small "u") "\e$B$%\e(B")
74     (its-defrule (concat small "e") "\e$B$'\e(B")
75     (its-defrule (concat small "o") "\e$B$)\e(B")
76     (its-defrule (concat small "ya") "\e$B$c\e(B")
77     (its-defrule (concat small "yu") "\e$B$e\e(B")
78     (its-defrule (concat small "yo") "\e$B$g\e(B")
79     (its-defrule (concat small "tu") "\e$B$C\e(B")
80     (its-defrule (concat small "tsu") "\e$B$C\e(B")
81     (its-defrule (concat small "wa") "\e$B$n\e(B")
82     )
83
84   (its-defrule   "a"    "\e$B$"\e(B")
85   (its-defrule   "i"    "\e$B$$\e(B")
86   (its-defrule   "u"    "\e$B$&\e(B")
87   (its-defrule   "e"    "\e$B$(\e(B")
88   (its-defrule   "o"    "\e$B$*\e(B")
89
90   (dolist (k '(("ka"  "\e$B$+\e(B") ("ki"  "\e$B$-\e(B") ("ku"  "\e$B$/\e(B") ("ke"  "\e$B$1\e(B") ("ko"  "\e$B$3\e(B")
91                ("kya" "\e$B$-$c\e(B") ("kyu"  "\e$B$-$e\e(B") ("kye"  "\e$B$-$'\e(B") ("kyo"  "\e$B$-$g\e(B")))
92     (its-defrule (car k) (cadr k))
93     (its-defrule (concat "k" (car k)) (concat "\e$B$C\e(B" (cadr k))))
94   (its-defoutput "kk" "\e$B$C\e(Bk")
95   (its-defoutput "kky" "\e$B$C\e(Bky")
96
97   (dolist (s '(("sa"  "\e$B$5\e(B") ("si"  "\e$B$7\e(B") ("su"  "\e$B$9\e(B") ("se"  "\e$B$;\e(B") ("so"  "\e$B$=\e(B")
98                ("sya"  "\e$B$7$c\e(B") ("syu"  "\e$B$7$e\e(B") ("sye"  "\e$B$7$'\e(B") ("syo"  "\e$B$7$g\e(B")
99                ("sha"  "\e$B$7$c\e(B") ("shi"  "\e$B$7\e(B") ("shu"  "\e$B$7$e\e(B") ("she"  "\e$B$7$'\e(B")
100                ("sho"  "\e$B$7$g\e(B")))
101     (its-defrule (car s) (cadr s))
102     (its-defrule (concat "s" (car s)) (concat "\e$B$C\e(B" (cadr s))))
103   (its-defoutput "ss" "\e$B$C\e(Bs")
104   (its-defoutput "ssy" "\e$B$C\e(Bsy")
105   (its-defoutput "ssh" "\e$B$C\e(Bsh")
106
107   (dolist (T '(("ta"  "\e$B$?\e(B") ("ti"  "\e$B$A\e(B") ("tu"  "\e$B$D\e(B") ("te"  "\e$B$F\e(B") ("to"  "\e$B$H\e(B")
108                ("tya"  "\e$B$A$c\e(B") ("tyi"  "\e$B$F$#\e(B") ("tyu"  "\e$B$A$e\e(B") ("tye"  "\e$B$A$'\e(B")
109                ("tyo"  "\e$B$A$g\e(B") ("tsu"  "\e$B$D\e(B")))
110     (its-defrule (car T) (cadr T))
111     (its-defrule (concat "t" (car T)) (concat "\e$B$C\e(B" (cadr T))))
112   (its-defoutput "tt" "\e$B$C\e(Bt")
113   (its-defoutput "tty" "\e$B$C\e(Bty")
114   (its-defoutput "tts" "\e$B$C\e(Bts")
115
116   (dolist (c '(("cha"  "\e$B$A$c\e(B") ("chi"  "\e$B$A\e(B") ("chu"  "\e$B$A$e\e(B")
117                ("che"  "\e$B$A$'\e(B") ("cho"  "\e$B$A$g\e(B")))
118     (its-defrule (car c) (cadr c))
119     (its-defrule (concat "c" (car c)) (concat "\e$B$C\e(B" (cadr c))))
120   (its-defoutput "cc" "\e$B$C\e(Bc")
121   (its-defoutput "cch" "\e$B$C\e(Bch")
122
123   (dolist (h '(("ha"  "\e$B$O\e(B") ("hi"  "\e$B$R\e(B") ("hu"  "\e$B$U\e(B") ("he"  "\e$B$X\e(B") ("ho"  "\e$B$[\e(B")
124                ("hya"  "\e$B$R$c\e(B") ("hyu"  "\e$B$R$e\e(B") ("hye"  "\e$B$R$'\e(B") ("hyo"  "\e$B$R$g\e(B")))
125     (its-defrule (car h) (cadr h))
126     (its-defrule (concat "h" (car h)) (concat "\e$B$C\e(B" (cadr h))))
127   (its-defoutput "hh" "\e$B$C\e(Bh")
128   (its-defoutput "hhy" "\e$B$C\e(Bhy")
129
130   (dolist (f '(("fa"  "\e$B$U$!\e(B") ("fi"  "\e$B$U$#\e(B") ("fu"  "\e$B$U\e(B") ("fe"  "\e$B$U$'\e(B")
131                ("fo"  "\e$B$U$)\e(B")))
132     (its-defrule (car f) (cadr f))
133     (its-defrule (concat "f" (car f)) (concat "\e$B$C\e(B" (cadr f))))
134   (its-defoutput "ff" "\e$B$C\e(Bf")
135
136   (dolist (r '(("ra"  "\e$B$i\e(B") ("ri"  "\e$B$j\e(B") ("ru"  "\e$B$k\e(B") ("re"  "\e$B$l\e(B") ("ro"  "\e$B$m\e(B")
137                ("rya"  "\e$B$j$c\e(B") ("ryu"  "\e$B$j$e\e(B") ("rye"  "\e$B$j$'\e(B") ("ryo"  "\e$B$j$g\e(B")))
138     (its-defrule (car r) (cadr r))
139     (its-defrule (concat "r" (car r)) (concat "\e$B$C\e(B" (cadr r))))
140   (its-defoutput "rr" "\e$B$C\e(Br")
141   (its-defoutput "rry" "\e$B$C\e(Bry")
142
143   (dolist (l '(("la"  "\e$B$i\e(B") ("li"  "\e$B$j\e(B") ("lu"  "\e$B$k\e(B") ("le"  "\e$B$l\e(B") ("lo"  "\e$B$m\e(B")
144                ("lya"  "\e$B$j$c\e(B") ("lyu"  "\e$B$j$e\e(B") ("lye"  "\e$B$j$'\e(B") ("lyo"  "\e$B$j$g\e(B")))
145     (its-defrule (car l) (cadr l))
146     (its-defrule (concat "l" (car l)) (concat "\e$B$C\e(B" (cadr l))))
147   (its-defoutput "ll" "\e$B$C\e(Bl")
148   (its-defoutput "lly" "\e$B$C\e(Bly")
149
150   (dolist (g '(("ga"  "\e$B$,\e(B") ("gi"  "\e$B$.\e(B") ("gu"  "\e$B$0\e(B") ("ge"  "\e$B$2\e(B") ("go"  "\e$B$4\e(B")
151                ("gya"  "\e$B$.$c\e(B") ("gyu"  "\e$B$.$e\e(B") ("gye"  "\e$B$.$'\e(B") ("gyo"  "\e$B$.$g\e(B")))
152     (its-defrule (car g) (cadr g))
153     (its-defrule (concat "g" (car g)) (concat "\e$B$C\e(B" (cadr g))))
154   (its-defoutput "gg" "\e$B$C\e(Bg")
155   (its-defoutput "ggy" "\e$B$C\e(Bgy")
156
157   (dolist (z '(("za"  "\e$B$6\e(B") ("zi"  "\e$B$8\e(B") ("zu"  "\e$B$:\e(B") ("ze"  "\e$B$<\e(B") ("zo"  "\e$B$>\e(B")
158                ("zya"  "\e$B$8$c\e(B") ("zyu"  "\e$B$8$e\e(B") ("zye"  "\e$B$8$'\e(B") ("zyo"  "\e$B$8$g\e(B")))
159     (its-defrule (car z) (cadr z))
160     (its-defrule (concat "z" (car z)) (concat "\e$B$C\e(B" (cadr z))))
161   (its-defoutput "zz" "\e$B$C\e(Bz")
162   (its-defoutput "zzy" "\e$B$C\e(Bzy")
163
164   (dolist (j '(("ja"  "\e$B$8$c\e(B") ("ji"  "\e$B$8\e(B") ("ju"  "\e$B$8$e\e(B") ("je"  "\e$B$8$'\e(B")
165                ("jo"  "\e$B$8$g\e(B") ("jya"  "\e$B$8$c\e(B") ("jyu"  "\e$B$8$e\e(B") ("jye"  "\e$B$8$'\e(B")
166                ("jyo"  "\e$B$8$g\e(B")))
167     (its-defrule (car j) (cadr j))
168     (its-defrule (concat "j" (car j)) (concat "\e$B$C\e(B" (cadr j))))
169   (its-defoutput "jj" "\e$B$C\e(Bj")
170   (its-defoutput "jjy" "\e$B$C\e(Bjy")
171
172   (dolist (d '(("da"  "\e$B$@\e(B") ("di"  "\e$B$B\e(B") ("du"  "\e$B$E\e(B") ("de"  "\e$B$G\e(B") ("do"  "\e$B$I\e(B")
173                ("dya"  "\e$B$B$c\e(B") ("dyi"  "\e$B$G$#\e(B") ("dyu"  "\e$B$B$e\e(B") ("dye"  "\e$B$B$'\e(B")
174                ("dyo"  "\e$B$B$g\e(B")))
175     (its-defrule (car d) (cadr d))
176     (its-defrule (concat "d" (car d)) (concat "\e$B$C\e(B" (cadr d))))
177   (its-defoutput "dd" "\e$B$C\e(Bd")
178   (its-defoutput "ddy" "\e$B$C\e(Bdy")
179
180   (dolist (b '(("ba"  "\e$B$P\e(B") ("bi"  "\e$B$S\e(B") ("bu"  "\e$B$V\e(B") ("be"  "\e$B$Y\e(B") ("bo"  "\e$B$\\e(B")
181                ("bya"  "\e$B$S$c\e(B") ("byu"  "\e$B$S$e\e(B") ("bye"  "\e$B$S$'\e(B") ("byo"  "\e$B$S$g\e(B")))
182     (its-defrule (car b) (cadr b))
183     (its-defrule (concat "b" (car b)) (concat "\e$B$C\e(B" (cadr b))))
184   (its-defoutput "bb" "\e$B$C\e(Bb")
185   (its-defoutput "bby" "\e$B$C\e(Bby")
186
187   (dolist (p '(("pa"  "\e$B$Q\e(B") ("pi"  "\e$B$T\e(B") ("pu"  "\e$B$W\e(B") ("pe"  "\e$B$Z\e(B") ("po"   "\e$B$]\e(B")
188                ("pya"  "\e$B$T$c\e(B") ("pyu"  "\e$B$T$e\e(B") ("pye"  "\e$B$T$'\e(B") ("pyo"  "\e$B$T$g\e(B")))
189     (its-defrule (car p) (cadr p))
190     (its-defrule (concat "p" (car p)) (concat "\e$B$C\e(B" (cadr p))))
191   (its-defoutput "pp" "\e$B$C\e(Bp")
192   (its-defoutput "ppy" "\e$B$C\e(Bpy")
193
194   (dolist (v '(("va" "\e$B%t$!\e(B") ("vi" "\e$B%t$#\e(B") ("vu" "\e$B%t\e(B") ("ve" "\e$B%t$'\e(B")
195                ("vo" "\e$B%t$)\e(B")))
196     (its-defrule (car v) (cadr v))
197     (its-defrule (concat "v" (car v)) (concat "\e$B$C\e(B" (cadr v))))
198   (its-defoutput "vv" "\e$B$C\e(Bv")
199
200   (its-defrule   "ma"   "\e$B$^\e(B")
201   (its-defrule   "mi"   "\e$B$_\e(B")
202   (its-defrule   "mu"   "\e$B$`\e(B")
203   (its-defrule   "me"   "\e$B$a\e(B")
204   (its-defrule   "mo"   "\e$B$b\e(B")
205   (its-defrule   "mya"  "\e$B$_$c\e(B")
206   (its-defrule   "myu"  "\e$B$_$e\e(B")
207   (its-defrule   "mye"  "\e$B$_$'\e(B")
208   (its-defrule   "myo"  "\e$B$_$g\e(B")
209   (its-defrule   "ya"   "\e$B$d\e(B")
210   (its-defrule   "yi"   "\e$B$$\e(B")
211   (its-defrule   "yu"   "\e$B$f\e(B")
212   (its-defrule   "yo"   "\e$B$h\e(B")
213   (its-defrule   "ye"   "\e$B$$$'\e(B")
214   (its-defrule   "wa"   "\e$B$o\e(B")
215   (its-defrule   "wi"   "\e$B$p\e(B")
216   (its-defrule   "wu"   "\e$B$&\e(B")
217   (its-defrule   "we"   "\e$B$q\e(B")
218   (its-defrule   "wo"   "\e$B$r\e(B")
219
220   (its-defrule   "kwa"  "\e$B$/$n\e(B")
221   (its-defrule   "kwi"  "\e$B$/$#\e(B")
222   (its-defrule   "kwu"  "\e$B$/\e(B")
223   (its-defrule   "kwe"  "\e$B$/$'\e(B")
224   (its-defrule   "kwo"  "\e$B$/$)\e(B")
225   (its-defrule   "gwa"  "\e$B$0$n\e(B")
226   (its-defrule   "gwi"  "\e$B$0$#\e(B")
227   (its-defrule   "gwu"  "\e$B$0\e(B")
228   (its-defrule   "gwe"  "\e$B$0$'\e(B")
229   (its-defrule   "gwo"  "\e$B$0$)\e(B")
230   (its-defrule   "tsa"  "\e$B$D$!\e(B")
231   (its-defrule   "tsi"  "\e$B$D$#\e(B")
232   (its-defrule   "tse"  "\e$B$D$'\e(B")
233   (its-defrule   "tso"  "\e$B$D$)\e(B")
234
235   (its-defrule   "na"   "\e$B$J\e(B")
236   (its-defrule   "ni"   "\e$B$K\e(B")
237   (its-defrule   "nu"   "\e$B$L\e(B")
238   (its-defrule   "ne"   "\e$B$M\e(B")
239   (its-defrule   "no"   "\e$B$N\e(B")
240   (its-defrule   "nya"  "\e$B$K$c\e(B")
241   (its-defrule   "nyu"  "\e$B$K$e\e(B")
242   (its-defrule   "nye"  "\e$B$K$'\e(B")
243   (its-defrule   "nyo"  "\e$B$K$g\e(B")
244
245   (its-defrule   "xka"  "\e$B%u\e(B")
246   (its-defrule   "xke"  "\e$B%v\e(B")
247   (its-defrule   "xti"  "\e$B$F$#\e(B")
248   (its-defrule   "xdi"  "\e$B$G$#\e(B")
249   (its-defrule   "xdu"  "\e$B$I$%\e(B")
250   (its-defrule   "xde"  "\e$B$G$'\e(B")
251   (its-defrule   "xdo"  "\e$B$I$)\e(B")
252   (its-defrule   "xwi"  "\e$B$&$#\e(B")
253   (its-defrule   "xwe"  "\e$B$&$'\e(B")
254   (its-defrule   "xwo"  "\e$B$&$)\e(B")
255
256 ;;;
257 ;;; Zenkaku inputs
258 ;;;
259
260   (its-defrule (concat its-zenkaku-escape "0") "\e$B#0\e(B")
261   (its-defrule (concat its-zenkaku-escape "1") "\e$B#1\e(B")
262   (its-defrule (concat its-zenkaku-escape "2") "\e$B#2\e(B")
263   (its-defrule (concat its-zenkaku-escape "3") "\e$B#3\e(B")
264   (its-defrule (concat its-zenkaku-escape "4") "\e$B#4\e(B")
265   (its-defrule (concat its-zenkaku-escape "5") "\e$B#5\e(B")
266   (its-defrule (concat its-zenkaku-escape "6") "\e$B#6\e(B")
267   (its-defrule (concat its-zenkaku-escape "7") "\e$B#7\e(B")
268   (its-defrule (concat its-zenkaku-escape "8") "\e$B#8\e(B")
269   (its-defrule (concat its-zenkaku-escape "9") "\e$B#9\e(B")
270
271   (its-defrule (concat its-zenkaku-escape "A") "\e$B#A\e(B")
272   (its-defrule (concat its-zenkaku-escape "B") "\e$B#B\e(B")
273   (its-defrule (concat its-zenkaku-escape "C") "\e$B#C\e(B")
274   (its-defrule (concat its-zenkaku-escape "D") "\e$B#D\e(B")
275   (its-defrule (concat its-zenkaku-escape "E") "\e$B#E\e(B")
276   (its-defrule (concat its-zenkaku-escape "F") "\e$B#F\e(B")
277   (its-defrule (concat its-zenkaku-escape "G") "\e$B#G\e(B")
278   (its-defrule (concat its-zenkaku-escape "H") "\e$B#H\e(B")
279   (its-defrule (concat its-zenkaku-escape "I") "\e$B#I\e(B")
280   (its-defrule (concat its-zenkaku-escape "J") "\e$B#J\e(B")
281   (its-defrule (concat its-zenkaku-escape "K") "\e$B#K\e(B")
282   (its-defrule (concat its-zenkaku-escape "L") "\e$B#L\e(B")
283   (its-defrule (concat its-zenkaku-escape "M") "\e$B#M\e(B")
284   (its-defrule (concat its-zenkaku-escape "N") "\e$B#N\e(B")
285   (its-defrule (concat its-zenkaku-escape "O") "\e$B#O\e(B")
286   (its-defrule (concat its-zenkaku-escape "P") "\e$B#P\e(B")
287   (its-defrule (concat its-zenkaku-escape "Q") "\e$B#Q\e(B")
288   (its-defrule (concat its-zenkaku-escape "R") "\e$B#R\e(B")
289   (its-defrule (concat its-zenkaku-escape "S") "\e$B#S\e(B")
290   (its-defrule (concat its-zenkaku-escape "T") "\e$B#T\e(B")
291   (its-defrule (concat its-zenkaku-escape "U") "\e$B#U\e(B")
292   (its-defrule (concat its-zenkaku-escape "V") "\e$B#V\e(B")
293   (its-defrule (concat its-zenkaku-escape "W") "\e$B#W\e(B")
294   (its-defrule (concat its-zenkaku-escape "X") "\e$B#X\e(B")
295   (its-defrule (concat its-zenkaku-escape "Y") "\e$B#Y\e(B")
296   (its-defrule (concat its-zenkaku-escape "Z") "\e$B#Z\e(B")
297
298   (its-defrule (concat its-zenkaku-escape "a") "\e$B#a\e(B")
299   (its-defrule (concat its-zenkaku-escape "b") "\e$B#b\e(B")
300   (its-defrule (concat its-zenkaku-escape "c") "\e$B#c\e(B")
301   (its-defrule (concat its-zenkaku-escape "d") "\e$B#d\e(B")
302   (its-defrule (concat its-zenkaku-escape "e") "\e$B#e\e(B")
303   (its-defrule (concat its-zenkaku-escape "f") "\e$B#f\e(B")
304   (its-defrule (concat its-zenkaku-escape "g") "\e$B#g\e(B")
305   (its-defrule (concat its-zenkaku-escape "h") "\e$B#h\e(B")
306   (its-defrule (concat its-zenkaku-escape "i") "\e$B#i\e(B")
307   (its-defrule (concat its-zenkaku-escape "j") "\e$B#j\e(B")
308   (its-defrule (concat its-zenkaku-escape "k") "\e$B#k\e(B")
309   (its-defrule (concat its-zenkaku-escape "l") "\e$B#l\e(B")
310   (its-defrule (concat its-zenkaku-escape "m") "\e$B#m\e(B")
311   (its-defrule (concat its-zenkaku-escape "n") "\e$B#n\e(B")
312   (its-defrule (concat its-zenkaku-escape "o") "\e$B#o\e(B")
313   (its-defrule (concat its-zenkaku-escape "p") "\e$B#p\e(B")
314   (its-defrule (concat its-zenkaku-escape "q") "\e$B#q\e(B")
315   (its-defrule (concat its-zenkaku-escape "r") "\e$B#r\e(B")
316   (its-defrule (concat its-zenkaku-escape "s") "\e$B#s\e(B")
317   (its-defrule (concat its-zenkaku-escape "t") "\e$B#t\e(B")
318   (its-defrule (concat its-zenkaku-escape "u") "\e$B#u\e(B")
319   (its-defrule (concat its-zenkaku-escape "v") "\e$B#v\e(B")
320   (its-defrule (concat its-zenkaku-escape "w") "\e$B#w\e(B")
321   (its-defrule (concat its-zenkaku-escape "x") "\e$B#x\e(B")
322   (its-defrule (concat its-zenkaku-escape "y") "\e$B#y\e(B")
323   (its-defrule (concat its-zenkaku-escape "z") "\e$B#z\e(B")
324
325   (its-defrule (concat its-zenkaku-escape " ")  "\e$B!!\e(B")
326   (its-defrule (concat its-zenkaku-escape "!")  "\e$B!*\e(B")
327   (its-defrule (concat its-zenkaku-escape "@")  "\e$B!w\e(B")
328   (its-defrule (concat its-zenkaku-escape "#")  "\e$B!t\e(B")
329   (its-defrule (concat its-zenkaku-escape "$")  "\e$B!p\e(B")
330   (its-defrule (concat its-zenkaku-escape "%")  "\e$B!s\e(B")
331   (its-defrule (concat its-zenkaku-escape "^")  "\e$B!0\e(B")
332   (its-defrule (concat its-zenkaku-escape "&")  "\e$B!u\e(B")
333   (its-defrule (concat its-zenkaku-escape "*")  "\e$B!v\e(B")
334   (its-defrule (concat its-zenkaku-escape "(")  "\e$B!J\e(B")
335   (its-defrule (concat its-zenkaku-escape ")")  "\e$B!K\e(B")
336   (its-defrule (concat its-zenkaku-escape "-")  "\e$B!]\e(B")
337   (its-defrule (concat its-zenkaku-escape "=")  "\e$B!a\e(B")
338   (its-defrule (concat its-zenkaku-escape "`")  "\e$B!.\e(B")
339   (its-defrule (concat its-zenkaku-escape "\\") "\e$B!o\e(B")
340   (its-defrule (concat its-zenkaku-escape "|")  "\e$B!C\e(B")
341   (its-defrule (concat its-zenkaku-escape "_")  "\e$B!2\e(B")
342   (its-defrule (concat its-zenkaku-escape "+")  "\e$B!\\e(B")
343   (its-defrule (concat its-zenkaku-escape "~")  "\e$B!1\e(B")
344   (its-defrule (concat its-zenkaku-escape "[")  "\e$B!N\e(B")
345   (its-defrule (concat its-zenkaku-escape "]")  "\e$B!O\e(B")
346   (its-defrule (concat its-zenkaku-escape "{")  "\e$B!P\e(B")
347   (its-defrule (concat its-zenkaku-escape "}")  "\e$B!Q\e(B")
348   (its-defrule (concat its-zenkaku-escape ":")  "\e$B!'\e(B")
349   (its-defrule (concat its-zenkaku-escape ";")  "\e$B!(\e(B")
350   (its-defrule (concat its-zenkaku-escape "\"") "\e$B!I\e(B")
351   (its-defrule (concat its-zenkaku-escape "'")  "\e$B!G\e(B")
352   (its-defrule (concat its-zenkaku-escape "<")  "\e$B!c\e(B")
353   (its-defrule (concat its-zenkaku-escape ">")  "\e$B!d\e(B")
354   (its-defrule (concat its-zenkaku-escape "?")  "\e$B!)\e(B")
355   (its-defrule (concat its-zenkaku-escape "/")  "\e$B!?\e(B")
356   (its-defrule (concat its-zenkaku-escape ",")  "\e$B!$\e(B")
357   (its-defrule (concat its-zenkaku-escape ".")  "\e$B!%\e(B")
358
359 ;;;
360 ;;; Hankaku inputs
361 ;;;
362
363   (dolist (digit '( "1"  "2"  "3"  "4" "5"  "6"  "7"  "8"  "9"  "0" ))
364     (its-defrule (concat its-hankaku-escape digit)  digit))
365
366   (dolist (symbol '( " "  "!"  "@"  "#"  "$"  "%"  "^"  "&"  "*"  "("  ")"
367                      "-"  "="  "`"  "\\" "|"  "_"  "+"  "~" "["  "]"  "{"  "}"
368                      ":"  ";"  "\"" "'"  "<"  ">"  "?"  "/"  ","  "." ))
369     (its-defrule (concat its-hankaku-escape symbol) symbol))
370
371   (dolist (downcase '("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
372                       "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"))
373     (its-defrule (concat its-hankaku-escape downcase) downcase))
374
375   (dolist (upcase    '("A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
376                        "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"))
377     (its-defrule (concat its-hankaku-escape upcase) upcase))
378
379 ;; SYMBOL Input
380   (its-defrule   "z1"   "\e$B!{\e(B")     (its-defrule   "z!"   "\e$B!|\e(B")
381   (its-defrule   "z2"   "\e$B"&\e(B")     (its-defrule   "z@"   "\e$B"'\e(B")
382   (its-defrule   "z3"   "\e$B"$\e(B")     (its-defrule   "z#"   "\e$B"%\e(B")
383   (its-defrule   "z4"   "\e$B""\e(B")     (its-defrule   "z$"   "\e$B"#\e(B")
384   (its-defrule   "z5"   "\e$B!~\e(B")     (its-defrule   "z%"   "\e$B"!\e(B")
385   (its-defrule   "z6"   "\e$B!y\e(B")     (its-defrule   "z^"   "\e$B!z\e(B")
386   (its-defrule   "z7"   "\e$B!}\e(B")     (its-defrule   "z&"   "\e$B!r\e(B")
387   (its-defrule   "z8"   "\e$B!q\e(B")     (its-defrule   "z*"   "\e$B!_\e(B")
388   (its-defrule   "z9"   "\e$B!i\e(B")     (its-defrule   "z("   "\e$B!Z\e(B")
389   (its-defrule   "z0"   "\e$B!j\e(B")     (its-defrule   "z)"   "\e$B![\e(B")
390   (its-defrule   "z-"   "\e$B!A\e(B")     (its-defrule   "z_"   "\e$B!h\e(B")
391   (its-defrule   "z="   "\e$B!b\e(B")     (its-defrule   "z+"   "\e$B!^\e(B")
392   (its-defrule   "z\\"  "\e$B!@\e(B")     (its-defrule   "z|"   "\e$B!B\e(B")
393   (its-defrule   "z`"   "\e$B!-\e(B")     (its-defrule   "z~"   "\e$B!/\e(B")
394
395   (its-defrule   "zq"   "\e$B!T\e(B")     (its-defrule   "zQ"   "\e$B!R\e(B")
396   (its-defrule   "zw"   "\e$B!U\e(B")     (its-defrule   "zW"   "\e$B!S\e(B")
397                                         ; e
398   (its-defrule   "zr"   "\e$B!9\e(B")     (its-defrule   "zR"   "\e$B!8\e(B")
399   (its-defrule   "zt"   "\e$B!:\e(B")     (its-defrule   "zT"   "\e$B!x\e(B")
400                                         ; y u i o
401   (its-defrule   "zp"   "\e$B")\e(B")     (its-defrule   "zP"   "\e$B",\e(B")
402   (its-defrule   "z["   "\e$B!X\e(B")     (its-defrule   "z{"   "\e$B!L\e(B")
403   (its-defrule   "z]"   "\e$B!Y\e(B")     (its-defrule   "z}"   "\e$B!M\e(B")
404
405                                         ; a
406   (its-defrule   "zs"   "\e$B!3\e(B")     (its-defrule   "zS"   "\e$B!4\e(B")
407   (its-defrule   "zd"   "\e$B!5\e(B")     (its-defrule   "zD"   "\e$B!6\e(B")
408   (its-defrule   "zf"   "\e$B!7\e(B")     (its-defrule   "zF"   "\e$B"*\e(B")
409   (its-defrule   "zg"   "\e$B!>\e(B")     (its-defrule   "zG"   "\e$B!=\e(B")
410   (its-defrule   "zh"   "\e$B"+\e(B")
411   (its-defrule   "zj"   "\e$B"-\e(B")
412   (its-defrule   "zk"   "\e$B",\e(B")
413   (its-defrule   "zl"   "\e$B"*\e(B")
414   (its-defrule   "z;"   "\e$B!+\e(B")     (its-defrule   "z:"   "\e$B!,\e(B")
415   (its-defrule   "z\'"  "\e$B!F\e(B")     (its-defrule   "z\""  "\e$B!H\e(B")
416
417                                         ; z
418   (its-defrule   "zx"   ":-")   (its-defrule   "zX"   ":-)")
419   (its-defrule   "zc"   "\e$B!;\e(B")     (its-defrule   "zC"   "\e$B!n\e(B")
420   (its-defrule   "zv"   "\e$B"(\e(B")     (its-defrule   "zV"   "\e$B!`\e(B")
421   (its-defrule   "zb"   "\e$B!k\e(B")     (its-defrule   "zB"   "\e$B"+\e(B")
422   (its-defrule   "zn"   "\e$B!l\e(B")     (its-defrule   "zN"   "\e$B"-\e(B")
423   (its-defrule   "zm"   "\e$B!m\e(B")     (its-defrule   "zM"   "\e$B".\e(B")
424   (its-defrule   "z,"   "\e$B!E\e(B")     (its-defrule   "z<"   "\e$B!e\e(B")
425   (its-defrule   "z."   "\e$B!D\e(B")     (its-defrule   "z>"   "\e$B!f\e(B")
426   (its-defrule   "z/"   "\e$B!&\e(B")     (its-defrule   "z?"   "\e$B!g\e(B")
427   )
428
429 (define-its-state-machine-append its-hira-map
430   (if its-hira-enable-double-n
431       (its-defrule "nn" "\e$B$s\e(B")
432     (its-defrule "nn" "\e$B$s\e(B" -1))
433
434   (its-defrule "-"   its-hira-horizontal)
435   (its-defrule "["    its-hira-open-bracket)
436   (its-defrule "]"    its-hira-close-bracket)
437   (its-defrule "." its-hira-period)
438   (its-defrule "," its-hira-comma)
439
440   (if its-hira-enable-zenkaku-alphabet
441       (progn
442         (its-defrule   "1"   "\e$B#1\e(B")  (its-defrule   "2"   "\e$B#2\e(B")
443         (its-defrule   "3"   "\e$B#3\e(B")  (its-defrule   "4"   "\e$B#4\e(B")
444         (its-defrule   "5"   "\e$B#5\e(B")  (its-defrule   "6"   "\e$B#6\e(B")
445         (its-defrule   "7"   "\e$B#7\e(B")  (its-defrule   "8"   "\e$B#8\e(B")
446         (its-defrule   "9"   "\e$B#9\e(B")  (its-defrule   "0"   "\e$B#0\e(B")
447         (its-defrule   "!"   "\e$B!*\e(B")  (its-defrule   "@"   "\e$B!w\e(B")
448         (its-defrule   "#"   "\e$B!t\e(B")  (its-defrule   "$"   "\e$B!p\e(B")
449         (its-defrule   "%"   "\e$B!s\e(B")  (its-defrule   "^"   "\e$B!0\e(B")
450         (its-defrule   "&"   "\e$B!u\e(B")  (its-defrule   "*"   "\e$B!v\e(B")
451         (its-defrule   "("   "\e$B!J\e(B")  (its-defrule   ")"   "\e$B!K\e(B")
452         (its-defrule   "="   "\e$B!a\e(B")  (its-defrule   "`"   "\e$B!.\e(B")
453         (its-defrule   "\\"  "\e$B!o\e(B")  (its-defrule   "|"   "\e$B!C\e(B")
454         (its-defrule   "_"   "\e$B!2\e(B")  (its-defrule   "+"   "\e$B!\\e(B")
455         (its-defrule   "~"   "\e$B!1\e(B" nil t)
456         (its-defrule   "{"   "\e$B!P\e(B")
457         (its-defrule   "}"   "\e$B!Q\e(B")  (its-defrule   ":"   "\e$B!'\e(B")
458         (its-defrule   ";"   "\e$B!(\e(B")  (its-defrule   "\""  "\e$B!I\e(B")
459         (its-defrule   "'"   "\e$B!G\e(B")  (its-defrule   "<"   "\e$B!c\e(B")
460         (its-defrule   ">"   "\e$B!d\e(B")  (its-defrule   "?"   "\e$B!)\e(B")
461         (its-defrule   "/"   "\e$B!?\e(B"))
462     (progn
463       (its-defrule   "1"   "1")  (its-defrule   "2"   "2")
464       (its-defrule   "3"   "3")  (its-defrule   "4"   "4")
465       (its-defrule   "5"   "5")  (its-defrule   "6"   "6")
466       (its-defrule   "7"   "7")  (its-defrule   "8"   "8")
467       (its-defrule   "9"   "9")  (its-defrule   "0"   "0")
468       (its-defrule   "!"   "!")  (its-defrule   "@"   "@")
469       (its-defrule   "#"   "#")  (its-defrule   "$"   "$")
470       (its-defrule   "%"   "%")  (its-defrule   "^"   "^")
471       (its-defrule   "&"   "&")  (its-defrule   "*"   "*")
472       (its-defrule   "("   "(")  (its-defrule   ")"   ")")
473       (its-defrule   "="   "=")  (its-defrule   "`"   "`")
474       (its-defrule   "\\"  "\\")  (its-defrule   "|"   "|")
475       (its-defrule   "_"   "_")  (its-defrule   "+"   "+")
476       (its-defrule   "~"   "~" nil t)
477       (its-defrule   "{"   "{")
478       (its-defrule   "}"   "}")  (its-defrule   ":"   ":")
479       (its-defrule   ";"   ";")  (its-defrule   "\""  "\"")
480       (its-defrule   "'"   "'")  (its-defrule   "<"   "<")
481       (its-defrule   ">"   ">")  (its-defrule   "?"   "?")
482       (its-defrule   "/"   "/")))
483   )
484
485 ;;; its/hira.el ends here.