Modify method to set up load-path.
[elisp/nabe.git] / roman-to-kana.el
1 ;;; roman-to-kana.el --- Roman to Kana converter
2
3 ;; Copyright (C) 1996,1997 MORIOKA Tomohiko
4
5 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
6 ;; Version:
7 ;;      $Id: roman-to-kana.el,v 0.7 1997/02/28 02:28:48 tmorioka Exp $
8 ;; Keywords: Roman-to-Kana, input, Japanese, mule
9
10 ;; This file is not part of GNU Emacs.
11
12 ;; This program is free software; you can redistribute it and/or
13 ;; modify it under the terms of the GNU General Public License as
14 ;; published by the Free Software Foundation; either version 2, or (at
15 ;; your option) any later version.
16
17 ;; This program is distributed in the hope that it will be useful, but
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 ;; 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 ;;; Code:
28
29 (require 'cl)
30
31 (defvar roman-to-kana-translate-table 'hepburn)
32
33 (defvar hepburn-roman-to-kana-translation-rule-alist
34   '(("a" . "\e$B$"\e(B")
35     ("i" . "\e$B$$\e(B")
36     ("u" . "\e$B$&\e(B")
37     ("e" . "\e$B$(\e(B")
38     ("o" . "\e$B$*\e(B")
39     
40     ("ka" . "\e$B$+\e(B")("kka" . "\e$B$C$+\e(B")
41     ("ki" . "\e$B$-\e(B")("kki" . "\e$B$C$-\e(B")
42     ("ku" . "\e$B$/\e(B")("kku" . "\e$B$C$/\e(B")
43     ("ke" . "\e$B$1\e(B")("kke" . "\e$B$C$1\e(B")
44     ("ko" . "\e$B$3\e(B")("kko" . "\e$B$C$3\e(B")
45     
46     ("ga" . "\e$B$,\e(B")("gga" . "\e$B$C$,\e(B")
47     ("gi" . "\e$B$.\e(B")("ggi" . "\e$B$C$.\e(B")
48     ("gu" . "\e$B$0\e(B")("ggu" . "\e$B$C$0\e(B")
49     ("ge" . "\e$B$2\e(B")("gge" . "\e$B$C$2\e(B")
50     ("go" . "\e$B$4\e(B")("ggo" . "\e$B$C$4\e(B")
51     
52     ("kya" . "\e$B$-$c\e(B")("kkya" . "\e$B$C$-$c\e(B")
53     ("kyi" . "\e$B$-$#\e(B")("kkyi" . "\e$B$C$-$#\e(B")
54     ("kyu" . "\e$B$-$e\e(B")("kkyu" . "\e$B$C$-$e\e(B")
55     ("kye" . "\e$B$-$'\e(B")("kkye" . "\e$B$C$-$'\e(B")
56     ("kyo" . "\e$B$-$g\e(B")("kkyo" . "\e$B$C$-$g\e(B")
57     
58     ("gya" . "\e$B$.$c\e(B")("ggya" . "\e$B$C$.$c\e(B")
59     ("gyi" . "\e$B$.$#\e(B")("ggyi" . "\e$B$C$.$#\e(B")
60     ("gyu" . "\e$B$.$e\e(B")("ggyu" . "\e$B$C$.$e\e(B")
61     ("gye" . "\e$B$.$'\e(B")("ggye" . "\e$B$C$.$'\e(B")
62     ("gyo" . "\e$B$.$g\e(B")("ggyo" . "\e$B$C$.$g\e(B")
63     
64     ("sa" . "\e$B$5\e(B")("ssa" . "\e$B$C$5\e(B")
65     ("si" . "\e$B$7\e(B")("ssi" . "\e$B$C$7\e(B")
66     ("su" . "\e$B$9\e(B")("ssu" . "\e$B$C$9\e(B")
67     ("se" . "\e$B$;\e(B")("sse" . "\e$B$C$;\e(B")
68     ("so" . "\e$B$=\e(B")("sso" . "\e$B$C$=\e(B")
69     
70     ("za" . "\e$B$6\e(B")("zza" . "\e$B$C$6\e(B")
71     ("zi" . "\e$B$8\e(B")("zzi" . "\e$B$C$8\e(B")
72     ("zu" . "\e$B$:\e(B")("zzu" . "\e$B$C$:\e(B")
73     ("ze" . "\e$B$<\e(B")("zze" . "\e$B$C$<\e(B")
74     ("zo" . "\e$B$>\e(B")("zzo" . "\e$B$C$>\e(B")
75     
76     ("sha" . "\e$B$7$c\e(B")("ssha" . "\e$B$C$7$c\e(B")
77     ("shi" . "\e$B$7\e(B")  ("sshi" . "\e$B$C$7\e(B")
78     ("shu" . "\e$B$7$e\e(B")("sshu" . "\e$B$C$7$e\e(B")
79     ("she" . "\e$B$7$'\e(B")("sshe" . "\e$B$C$7$'\e(B")
80     ("sho" . "\e$B$7$g\e(B")("ssho" . "\e$B$C$7$g\e(B")
81     
82     ("ja" . "\e$B$8$c\e(B")("jja" . "\e$B$C$8$c\e(B")
83     ("ji" . "\e$B$8\e(B")  ("jji" . "\e$B$C$8\e(B")
84     ("ju" . "\e$B$8$e\e(B")("jju" . "\e$B$C$8$e\e(B")
85     ("je" . "\e$B$8$'\e(B")("jje" . "\e$B$C$8$'\e(B")
86     ("jo" . "\e$B$8$g\e(B")("jjo" . "\e$B$C$8$g\e(B")
87     
88     ("ta" . "\e$B$?\e(B")  ("tta" . "\e$B$C$?\e(B")
89     ("ti" . "\e$B$F$#\e(B")("tti" . "\e$B$C$F$#\e(B")
90     ("tu" . "\e$B$H$%\e(B")("ttu" . "\e$B$C$H$%\e(B")
91     ("te" . "\e$B$F\e(B")  ("tte" . "\e$B$C$F\e(B")
92     ("to" . "\e$B$H\e(B")  ("tto" . "\e$B$C$H\e(B")
93     
94     ("da" . "\e$B$@\e(B")  ("dda" . "\e$B$C$@\e(B")
95     ("di" . "\e$B$G$#\e(B")("ddi" . "\e$B$C$G$#\e(B")
96     ("du" . "\e$B$E\e(B")  ("ddu" . "\e$B$C$E\e(B")
97     ("de" . "\e$B$G\e(B")  ("dde" . "\e$B$C$G\e(B")
98     ("do" . "\e$B$I\e(B")  ("ddo" . "\e$B$C$I\e(B")
99     
100     ("tsa" . "\e$B$D$!\e(B")("ttsa" . "\e$B$C$D$!\e(B")
101     ("tsi" . "\e$B$D$#\e(B")("ttsi" . "\e$B$C$D$#\e(B")
102     ("tsu" . "\e$B$D\e(B")  ("ttsu" . "\e$B$C$D\e(B")
103     ("tse" . "\e$B$D$'\e(B")("ttse" . "\e$B$C$D$'\e(B")
104     ("tso" . "\e$B$D$)\e(B")("ttso" . "\e$B$C$D$)\e(B")
105     
106     ("dza" . "\e$B$E$!\e(B")("ddza" . "\e$B$C$E$!\e(B")
107     ("dzi" . "\e$B$E$#\e(B")("ddzi" . "\e$B$C$E$#\e(B")
108     ("dzu" . "\e$B$E\e(B")  ("ddzu" . "\e$B$C$E\e(B")
109     ("dze" . "\e$B$E$'\e(B")("ddze" . "\e$B$C$E$'\e(B")
110     ("dzo" . "\e$B$E$)\e(B")("ddzo" . "\e$B$C$E$)\e(B")
111     
112     ("cha" . "\e$B$A$c\e(B")("ccha" . "\e$B$C$A$c\e(B")
113     ("chi" . "\e$B$A\e(B")  ("cchi" . "\e$B$C$A\e(B")
114     ("chu" . "\e$B$A$e\e(B")("cchu" . "\e$B$C$A$e\e(B")
115     ("che" . "\e$B$A$'\e(B")("cche" . "\e$B$C$A$'\e(B")
116     ("cho" . "\e$B$A$g\e(B")("ccho" . "\e$B$C$A$g\e(B")
117     
118     ("dja" . "\e$B$B$c\e(B")("ddja" . "\e$B$C$B$c\e(B")
119     ("dji" . "\e$B$B\e(B")  ("ddji" . "\e$B$C$B\e(B")
120     ("dju" . "\e$B$B$e\e(B")("ddju" . "\e$B$C$B$e\e(B")
121     ("dje" . "\e$B$B$'\e(B")("ddje" . "\e$B$C$B$'\e(B")
122     ("djo" . "\e$B$B$g\e(B")("ddjo" . "\e$B$C$B$g\e(B")
123     
124     ("na" . "\e$B$J\e(B")("nna" . "\e$B$s$J\e(B")
125     ("ni" . "\e$B$K\e(B")("nni" . "\e$B$s$K\e(B")
126     ("nu" . "\e$B$L\e(B")("nnu" . "\e$B$s$L\e(B")
127     ("ne" . "\e$B$M\e(B")("nne" . "\e$B$s$M\e(B")
128     ("no" . "\e$B$N\e(B")("nno" . "\e$B$s$N\e(B")
129     
130     ("nya" . "\e$B$K$c\e(B")("nnya" . "\e$B$C$K$c\e(B")
131     ("nyi" . "\e$B$K$#\e(B")("nnyi" . "\e$B$C$K$#\e(B")
132     ("nyu" . "\e$B$K$e\e(B")("nnyu" . "\e$B$C$K$e\e(B")
133     ("nye" . "\e$B$K$'\e(B")("nnye" . "\e$B$C$K$'\e(B")
134     ("nyo" . "\e$B$K$g\e(B")("nnyo" . "\e$B$C$K$g\e(B")
135         
136     ("ha" . "\e$B$O\e(B")("hha" . "\e$B$C$O\e(B")
137     ("hi" . "\e$B$R\e(B")("hhi" . "\e$B$C$R\e(B")
138     ("hu" . "\e$B$U\e(B")("hhu" . "\e$B$C$U\e(B")
139     ("he" . "\e$B$X\e(B")("hhe" . "\e$B$C$X\e(B")
140     ("ho" . "\e$B$[\e(B")("hho" . "\e$B$C$[\e(B")
141     
142     ("pa" . "\e$B$Q\e(B")("ppa" . "\e$B$C$Q\e(B")
143     ("pi" . "\e$B$T\e(B")("ppi" . "\e$B$C$T\e(B")
144     ("pu" . "\e$B$W\e(B")("ppu" . "\e$B$C$W\e(B")
145     ("pe" . "\e$B$Z\e(B")("ppe" . "\e$B$C$Z\e(B")
146     ("po" . "\e$B$]\e(B")("ppo" . "\e$B$C$]\e(B")
147     
148     ("ba" . "\e$B$P\e(B")("bba" . "\e$B$C$P\e(B")
149     ("bi" . "\e$B$S\e(B")("bbi" . "\e$B$C$S\e(B")
150     ("bu" . "\e$B$V\e(B")("bbu" . "\e$B$C$V\e(B")
151     ("be" . "\e$B$Y\e(B")("bbe" . "\e$B$C$Y\e(B")
152     ("bo" . "\e$B$\\e(B")("bbo" . "\e$B$C$\\e(B")
153     
154     ("hya" . "\e$B$R$c\e(B")("hhya" . "\e$B$C$R$c\e(B")
155     ("hyi" . "\e$B$R$#\e(B")("hhyi" . "\e$B$C$R$#\e(B")
156     ("hyu" . "\e$B$R$e\e(B")("hhyu" . "\e$B$C$R$e\e(B")
157     ("hye" . "\e$B$R$'\e(B")("hhye" . "\e$B$C$R$'\e(B")
158     ("hyo" . "\e$B$R$g\e(B")("hhyo" . "\e$B$C$R$g\e(B")
159     
160     ("pya" . "\e$B$T$c\e(B")("ppya" . "\e$B$C$T$c\e(B")
161     ("pyi" . "\e$B$T$#\e(B")("ppyi" . "\e$B$C$T$#\e(B")
162     ("pyu" . "\e$B$T$e\e(B")("ppyu" . "\e$B$C$T$e\e(B")
163     ("pye" . "\e$B$T$'\e(B")("ppye" . "\e$B$C$T$'\e(B")
164     ("pyo" . "\e$B$T$g\e(B")("ppyo" . "\e$B$C$T$g\e(B")
165     
166     ("bya" . "\e$B$S$c\e(B")("bbya" . "\e$B$C$S$c\e(B")
167     ("byi" . "\e$B$S$#\e(B")("bbyi" . "\e$B$C$S$#\e(B")
168     ("byu" . "\e$B$S$e\e(B")("bbyu" . "\e$B$C$S$e\e(B")
169     ("bye" . "\e$B$S$'\e(B")("bbye" . "\e$B$C$S$'\e(B")
170     ("byo" . "\e$B$S$g\e(B")("bbyo" . "\e$B$C$S$g\e(B")
171     
172     ("fa" . "\e$B$U$!\e(B")("ffa" . "\e$B$C$U$!\e(B")
173     ("fi" . "\e$B$U$#\e(B")("ffi" . "\e$B$C$U$#\e(B")
174     ("fu" . "\e$B$U\e(B")  ("ffu" . "\e$B$C$U\e(B")
175     ("fe" . "\e$B$U$'\e(B")("ffe" . "\e$B$C$U$'\e(B")
176     ("fo" . "\e$B$U$)\e(B")("ffo" . "\e$B$C$U$)\e(B")
177     
178     ("pfa" . "\e$B$W$!\e(B")("ppfa" . "\e$B$C$W$!\e(B")
179     ("pfi" . "\e$B$W$#\e(B")("ppfi" . "\e$B$C$W$#\e(B")
180     ("pfu" . "\e$B$W\e(B")  ("ppfu" . "\e$B$C$W\e(B")
181     ("pfe" . "\e$B$W$'\e(B")("ppfe" . "\e$B$C$W$'\e(B")
182     ("pfo" . "\e$B$W$)\e(B")("ppfo" . "\e$B$C$W$)\e(B")
183     
184     ("va" . "\e$B%t$!\e(B")("vva" . "\e$B$C%t$!\e(B")
185     ("vi" . "\e$B%t$#\e(B")("vvi" . "\e$B$C%t$#\e(B")
186     ("vu" . "\e$B%t\e(B")  ("vvu" . "\e$B$C%t\e(B")
187     ("ve" . "\e$B%t$'\e(B")("vve" . "\e$B$C%t$'\e(B")
188     ("vo" . "\e$B%t$)\e(B")("vvo" . "\e$B$C%t$)\e(B")
189     
190     ("ma" . "\e$B$^\e(B")("mma" . "\e$B$C$^\e(B")
191     ("mi" . "\e$B$_\e(B")("mmi" . "\e$B$C$_\e(B")
192     ("mu" . "\e$B$`\e(B")("mmu" . "\e$B$C$`\e(B")
193     ("me" . "\e$B$a\e(B")("mme" . "\e$B$C$a\e(B")
194     ("mo" . "\e$B$b\e(B")("mmo" . "\e$B$C$b\e(B")
195     
196     ("mya" . "\e$B$_$c\e(B")("mmya" . "\e$B$C$_$c\e(B")
197     ("myi" . "\e$B$_$#\e(B")("mmyi" . "\e$B$C$_$#\e(B")
198     ("myu" . "\e$B$_$e\e(B")("mmyu" . "\e$B$C$_$e\e(B")
199     ("mye" . "\e$B$_$'\e(B")("mmye" . "\e$B$C$_$'\e(B")
200     ("myo" . "\e$B$_$g\e(B")("mmyo" . "\e$B$C$_$g\e(B")
201     
202     ("ya" . "\e$B$d\e(B")  ("yya" . "\e$B$C$d\e(B")
203     ("yi" . "\e$B$$\e(B")  ("yyi" . "\e$B$C$$\e(B")
204     ("yu" . "\e$B$f\e(B")  ("yyu" . "\e$B$C$f\e(B")
205     ("ye" . "\e$B$$$'\e(B")("yye" . "\e$B$C$$$'\e(B")
206     ("yo" . "\e$B$h\e(B")  ("yyo" . "\e$B$C$h\e(B")
207     
208     ("ra" . "\e$B$i\e(B")("rra" . "\e$B$C$i\e(B")
209     ("ri" . "\e$B$j\e(B")("rri" . "\e$B$C$j\e(B")
210     ("ru" . "\e$B$k\e(B")("rru" . "\e$B$C$k\e(B")
211     ("re" . "\e$B$l\e(B")("rre" . "\e$B$C$l\e(B")
212     ("ro" . "\e$B$m\e(B")("rro" . "\e$B$C$m\e(B")
213     
214     ("rya" . "\e$B$j$c\e(B")("rrya" . "\e$B$C$j$c\e(B")
215     ("ryi" . "\e$B$j$#\e(B")("rryi" . "\e$B$C$j$#\e(B")
216     ("ryu" . "\e$B$j$e\e(B")("rryu" . "\e$B$C$j$e\e(B")
217     ("rye" . "\e$B$j$'\e(B")("rrye" . "\e$B$C$j$'\e(B")
218     ("ryo" . "\e$B$j$g\e(B")("rryo" . "\e$B$C$j$g\e(B")
219     
220     ("wa" . "\e$B$o\e(B")("wwa" . "\e$B$C$o\e(B")
221     ("wi" . "\e$B$p\e(B")("wwi" . "\e$B$C$p\e(B")
222     ("wu" . "\e$B$&\e(B")("wwu" . "\e$B$C$&\e(B")
223     ("we" . "\e$B$q\e(B")("wwe" . "\e$B$C$q\e(B")
224     ("wo" . "\e$B$r\e(B")("wwo" . "\e$B$C$r\e(B")
225     
226     ("n'" . "\e$B$s\e(B")
227     ("n" . "\e$B$s\e(B")
228     ("x" . "\e$B$s\e(B")
229     ("q" . "\e$B$C\e(B")
230
231     ("1" . "\e$B#1\e(B") ("2" . "\e$B#2\e(B") ("3" . "\e$B#3\e(B") ("4" . "\e$B#4\e(B") ("5" . "\e$B#5\e(B")
232     ("6" . "\e$B#6\e(B") ("7" . "\e$B#7\e(B") ("8" . "\e$B#8\e(B") ("9" . "\e$B#9\e(B") ("0" . "\e$B#0\e(B")
233
234     ("!" . "\e$B!*\e(B") ("@" . "\e$B!w\e(B") ("#" . "\e$B!t\e(B") ("$" . "\e$B!p\e(B") ("%" . "\e$B!s\e(B")
235     ("^" . "\e$B!0\e(B") ("&" . "\e$B!u\e(B") ("*" . "\e$B!v\e(B") ("(" . "\e$B!J\e(B") (")" . "\e$B!K\e(B")
236     ("-" . "\e$B!<\e(B") ("=" . "\e$B!a\e(B") ("`" . "\e$B!.\e(B") ("\\" . "\e$B!@\e(B")("|" . "\e$B!C\e(B")
237     ("_" . "\e$B!2\e(B") ("+" . "\e$B!\\e(B") ("~" . "\e$B!1\e(B") ("[" . "\e$B!V\e(B") ("]" . "\e$B!W\e(B")
238     ("{" . "\e$B!P\e(B") ("}" . "\e$B!Q\e(B") (":" . "\e$B!'\e(B") (";" . "\e$B!(\e(B") ("\"" . "\e$B!I\e(B")
239     ("'" . "\e$B!G\e(B") ("." . "\e$B!#\e(B") ("," . "\e$B!"\e(B") ("<" . "\e$B!c\e(B") (">" . "\e$B!d\e(B")
240     ("?" . "\e$B!)\e(B") ("/" . "\e$B!?\e(B")
241
242     ("z1" . "\e$B!{\e(B") ("z!" . "\e$B!|\e(B")
243     ("z2" . "\e$B"&\e(B") ("z@" . "\e$B"'\e(B")
244     ("z3" . "\e$B"$\e(B") ("z#" . "\e$B"%\e(B")
245     ("z4" . "\e$B""\e(B") ("z$" . "\e$B"#\e(B")
246     ("z5" . "\e$B!~\e(B") ("z%" . "\e$B"!\e(B")
247     ("z6" . "\e$B!y\e(B") ("z^" . "\e$B!z\e(B")
248     ("z7" . "\e$B!}\e(B") ("z&" . "\e$B!r\e(B")
249     ("z8" . "\e$B!q\e(B") ("z*" . "\e$B!_\e(B")
250     ("z9" . "\e$B!i\e(B") ("z(" . "\e$B!Z\e(B")
251     ("z0" . "\e$B!j\e(B") ("z)" . "\e$B![\e(B")
252     ("z-" . "\e$B!A\e(B") ("z_" . "\e$B!h\e(B")
253     ("z=" . "\e$B!b\e(B") ("z+" . "\e$B!^\e(B")
254     ("z\\" . "\e$B!o\e(B")("z|" . "\e$B!B\e(B")
255     ("z`" . "\e$B!-\e(B") ("z~" . "\e$B!/\e(B")
256     
257     ("zq" . "\e$B!T\e(B") ("zQ" . "\e$B!R\e(B")
258     ("zw" . "\e$B!U\e(B") ("zW" . "\e$B!S\e(B")
259     ("zr" . "\e$B!9\e(B") ("zR" . "\e$B!8\e(B")
260     ("zt" . "\e$B!:\e(B") ("zT" . "\e$B!x\e(B")
261     ("zp" . "\e$B")\e(B") ("zP" . "\e$B",\e(B")
262     ("z[" . "\e$B!X\e(B") ("z{" . "\e$B!L\e(B")
263     ("z]" . "\e$B!Y\e(B") ("z}" . "\e$B!M\e(B")
264     
265     ("zs" . "\e$B!3\e(B") ("zS" . "\e$B!4\e(B")
266     ("zd" . "\e$B!5\e(B") ("zD" . "\e$B!6\e(B")
267     ("zf" . "\e$B!7\e(B") ("zF" . "\e$B"*\e(B")
268     ("zg" . "\e$B!>\e(B") ("zG" . "\e$B!=\e(B")
269     ("zh" . "\e$B"+\e(B")
270     ("zj" . "\e$B"-\e(B")
271     ("zk" . "\e$B",\e(B")
272     ("zl" . "\e$B"*\e(B")
273     ("z;" . "\e$B!+\e(B") ("z:" . "\e$B!,\e(B")
274     ("z\'" . "\e$B!F\e(B")("z\"" . "\e$B!H\e(B")
275     
276     ("zx" . ":-") ("zX" . ":-)")
277     ("zc" . "\e$B!;\e(B") ("zC" . "\e$B!n\e(B")
278     ("zv" . "\e$B"(\e(B") ("zV" . "\e$B!`\e(B")
279     ("zb" . "\e$B!k\e(B") ("zB" . "\e$B"+\e(B")
280     ("zn" . "\e$B!l\e(B") ("zN" . "\e$B"-\e(B")
281     ("zm" . "\e$B!m\e(B") ("zM" . "\e$B".\e(B")
282     ("z," . "\e$B!E\e(B") ("z<" . "\e$B!e\e(B")
283     ("z." . "\e$B!D\e(B") ("z>" . "\e$B!f\e(B")
284     ("z/" . "\e$B!&\e(B") ("z?" . "\e$B!g\e(B")
285     
286     ("Z " . "\e$B!!\e(B") ("Z!" . "\e$B!*\e(B") ("Z\"" . "\e$B!m\e(B") ("Z#" . "\e$B!t\e(B")
287     ("Z$" . "\e$B!p\e(B") ("Z%" . "\e$B!s\e(B") ("Z&" . "\e$B!u\e(B") ("Z'" . "\e$B!l\e(B")
288     ("Z(" . "\e$B!J\e(B") ("Z)" . "\e$B!K\e(B") ("Z*" . "\e$B!v\e(B") ("Z+" . "\e$B!\\e(B")
289     ("Z," . "\e$B!$\e(B") ("Z-" . "\e$B!]\e(B") ("Z." . "\e$B!%\e(B") ("Z/" . "\e$B!?\e(B")
290     ("Z0" . "\e$B#0\e(B") ("Z1" . "\e$B#1\e(B") ("Z2" . "\e$B#2\e(B") ("Z3" . "\e$B#3\e(B")
291     ("Z4" . "\e$B#4\e(B") ("Z5" . "\e$B#5\e(B") ("Z6" . "\e$B#6\e(B") ("Z7" . "\e$B#7\e(B")
292     ("Z8" . "\e$B#8\e(B") ("Z9" . "\e$B#9\e(B") ("Z:" . "\e$B!'\e(B") ("Z;" . "\e$B!(\e(B")
293     ("Z<" . "\e$B!c\e(B") ("Z=" . "\e$B!a\e(B") ("Z>" . "\e$B!d\e(B") ("Z?" . "\e$B!)\e(B")
294     ("Z@" . "\e$B!w\e(B") ("ZA" . "\e$B#A\e(B") ("ZB" . "\e$B#B\e(B") ("ZC" . "\e$B#C\e(B")
295     ("ZD" . "\e$B#D\e(B") ("ZE" . "\e$B#E\e(B") ("ZF" . "\e$B#F\e(B") ("ZG" . "\e$B#G\e(B")
296     ("ZH" . "\e$B#H\e(B") ("ZI" . "\e$B#I\e(B") ("ZJ" . "\e$B#J\e(B") ("ZK" . "\e$B#K\e(B")
297     ("ZL" . "\e$B#L\e(B") ("ZM" . "\e$B#M\e(B") ("ZN" . "\e$B#N\e(B") ("ZO" . "\e$B#O\e(B")
298     ("ZP" . "\e$B#P\e(B") ("ZQ" . "\e$B#Q\e(B") ("ZR" . "\e$B#R\e(B") ("ZS" . "\e$B#S\e(B")
299     ("ZT" . "\e$B#T\e(B") ("ZU" . "\e$B#U\e(B") ("ZV" . "\e$B#V\e(B") ("ZW" . "\e$B#W\e(B")
300     ("ZX" . "\e$B#X\e(B") ("ZY" . "\e$B#Y\e(B") ("ZZ" . "\e$B#Z\e(B") ("Z[" . "\e$B!N\e(B")
301     ("Z\\" . "\e$B!@\e(B")("Z]" . "\e$B!O\e(B") ("Z^" . "\e$B!0\e(B") ("Z_" . "\e$B!2\e(B")
302     ("Z`" . "\e$B!F\e(B") ("Za" . "\e$B#a\e(B") ("Zb" . "\e$B#b\e(B") ("Zc" . "\e$B#c\e(B")
303     ("Zd" . "\e$B#d\e(B") ("Ze" . "\e$B#e\e(B") ("Zf" . "\e$B#f\e(B") ("Zg" . "\e$B#g\e(B")
304     ("Zh" . "\e$B#h\e(B") ("Zi" . "\e$B#i\e(B") ("Zj" . "\e$B#j\e(B") ("Zk" . "\e$B#k\e(B")
305     ("Zl" . "\e$B#l\e(B") ("Zm" . "\e$B#m\e(B") ("Zn" . "\e$B#n\e(B") ("Zo" . "\e$B#o\e(B")
306     ("Zp" . "\e$B#p\e(B") ("Zq" . "\e$B#q\e(B") ("Zr" . "\e$B#r\e(B") ("Zs" . "\e$B#s\e(B")
307     ("Zt" . "\e$B#t\e(B") ("Zu" . "\e$B#u\e(B") ("Zv" . "\e$B#v\e(B") ("Zw" . "\e$B#w\e(B")
308     ("Zx" . "\e$B#x\e(B") ("Zy" . "\e$B#y\e(B") ("Zz" . "\e$B#z\e(B") ("Z{" . "\e$B!P\e(B")
309     ("Z|" . "\e$B!C\e(B") ("Z}" . "\e$B!Q\e(B") ("Z~" . "\e$B!A\e(B") 
310     ))
311
312 (defun roman-to-kana-string-1 (str table)
313   (let* (case-fold-search
314          (ret
315           (find-if (function
316                     (lambda (rule)
317                       (string-match (concat "^" (regexp-quote (car rule)))
318                                     str)
319                       ))
320                    table)))
321     (if ret
322         (cons (cdr ret)(substring str (match-end 0)))
323       )
324     ))
325
326 (defun roman-to-kana-translate-string (str &optional table)
327   (or table
328       (setq table (symbol-value
329                    (intern (concat
330                            (symbol-name roman-to-kana-translate-table)
331                            "-roman-to-kana-translation-rule-alist"))
332                    )))
333   (let (ret dest)
334     (while (setq ret (roman-to-kana-string-1 str table))
335       (setq dest (concat dest (car ret)))
336       (setq str (cdr ret))
337       )
338     (concat dest str)
339     ))
340
341 (defun roman-to-kana-translate-region (start end)
342   (save-excursion
343     (let ((str (buffer-substring start end)))
344       (delete-region start end)
345       (goto-char start)
346       (insert (roman-to-kana-translate-string str))
347       )))
348
349
350 ;;; @ end
351 ;;;
352
353 (provide 'roman-to-kana)
354
355 (run-hooks 'roman-to-kana-load-hook)
356
357 ;;; roman-to-kana.el ends here