jisx0213
[elisp/tamago.git] / its / quanjiao.el
1 ;;; its/quanjiao.el --- Quanjiao ASCII Input in Egg Input Method Architecture
2
3 ;; Copyright (C) 1999,2000 PFU LIMITED
4
5 ;; Author: KATAYAMA Yoshio <kate@pfu.co.jp>
6
7 ;; Maintainer: TOMURA Satoru <tomura@etl.go.jp>
8
9 ;; Keywords: mule, multilingual, input method
10
11 ;; This file is part of EGG.
12
13 ;; EGG is free software; you can redistribute it and/or modify
14 ;; it under the terms of the GNU General Public License as published by
15 ;; the Free Software Foundation; either version 2, or (at your option)
16 ;; any later version.
17
18 ;; EGG is distributed in the hope that it will be useful,
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 ;; GNU General Public License for more details.
22
23 ;; You should have received a copy of the GNU General Public License
24 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
25 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
26 ;; Boston, MA 02111-1307, USA.
27
28 ;;; Commentary:
29
30
31 ;;; Code:
32
33 (eval-when-compile
34   (require 'its))
35
36 (define-its-state-machine its-quanjiao-up-cn-map
37   "quanjiao-upcase-cn" "\e$A#A\e(B" Chinese-GB
38   "Map for quanjiao-upcase input. (Chinese-GB)"
39
40   (dolist (ascii '(("0" . "\e$A#0\e(B")  ("1" . "\e$A#1\e(B")  ("2" . "\e$A#2\e(B")  ("3" . "\e$A#3\e(B")
41                    ("4" . "\e$A#4\e(B")  ("5" . "\e$A#5\e(B")  ("6" . "\e$A#6\e(B")  ("7" . "\e$A#7\e(B")
42                    ("8" . "\e$A#8\e(B")  ("9" . "\e$A#9\e(B") 
43                    (" " . "\e$A!!\e(B")  ("!" . "\e$A#!\e(B")  ("@" . "\e$A#@\e(B")  ("#" . "\e$A##\e(B")
44                    ("$" . "\e$A!g\e(B")  ("%" . "\e$A#%\e(B")  ("^" . "\e$A#^\e(B")  ("&" . "\e$A#&\e(B")
45                    ("*" . "\e$A#*\e(B")  ("(" . "\e$A#(\e(B")  (")" . "\e$A#)\e(B")
46                    ("-" . "\e$A#-\e(B")  ("=" . "\e$A#=\e(B")  ("`" . "\e$A#`\e(B")  ("\\" . "\e$A#\\e(B")
47                    ("|" . "\e$A#|\e(B")  ("_" . "\e$A#_\e(B")  ("+" . "\e$A#+\e(B")  ("~" . "\e$A!+\e(B")
48                    ("[" . "\e$A#[\e(B")  ("]" . "\e$A#]\e(B")  ("{" . "\e$A#{\e(B")  ("}" . "\e$A#}\e(B")
49                    (":" . "\e$A#:\e(B")  (";" . "\e$A#;\e(B")  ("\"" . "\e$A#"\e(B") ("'" . "\e$A#'\e(B")
50                    ("<" . "\e$A#<\e(B")  (">" . "\e$A#>\e(B")  ("?" . "\e$A#?\e(B")  ("/" . "\e$A#/\e(B")
51                    ("," . "\e$A#,\e(B")  ("." . "\e$A#.\e(B")
52                    ("a" . "\e$A#A\e(B")  ("b" . "\e$A#B\e(B")  ("c" . "\e$A#C\e(B")  ("d" . "\e$A#D\e(B")
53                    ("e" . "\e$A#E\e(B")  ("f" . "\e$A#F\e(B")  ("g" . "\e$A#G\e(B")  ("h" . "\e$A#H\e(B")
54                    ("i" . "\e$A#I\e(B")  ("j" . "\e$A#J\e(B")  ("k" . "\e$A#K\e(B")  ("l" . "\e$A#L\e(B")
55                    ("m" . "\e$A#M\e(B")  ("n" . "\e$A#N\e(B")  ("o" . "\e$A#O\e(B")  ("p" . "\e$A#P\e(B")
56                    ("q" . "\e$A#Q\e(B")  ("r" . "\e$A#R\e(B")  ("s" . "\e$A#S\e(B")  ("t" . "\e$A#T\e(B")
57                    ("u" . "\e$A#U\e(B")  ("v" . "\e$A#V\e(B")  ("w" . "\e$A#W\e(B")  ("x" . "\e$A#X\e(B")
58                    ("y" . "\e$A#Y\e(B")  ("z" . "\e$A#Z\e(B")
59                    ("A" . "\e$A#A\e(B")  ("B" . "\e$A#B\e(B")  ("C" . "\e$A#C\e(B")  ("D" . "\e$A#D\e(B")
60                    ("E" . "\e$A#E\e(B")  ("F" . "\e$A#F\e(B")  ("G" . "\e$A#G\e(B")  ("H" . "\e$A#H\e(B")
61                    ("I" . "\e$A#I\e(B")  ("J" . "\e$A#J\e(B")  ("K" . "\e$A#K\e(B")  ("L" . "\e$A#L\e(B")
62                    ("M" . "\e$A#M\e(B")  ("N" . "\e$A#N\e(B")  ("O" . "\e$A#O\e(B")  ("P" . "\e$A#P\e(B")
63                    ("Q" . "\e$A#Q\e(B")  ("R" . "\e$A#R\e(B")  ("S" . "\e$A#S\e(B")  ("T" . "\e$A#T\e(B")
64                    ("U" . "\e$A#U\e(B")  ("V" . "\e$A#V\e(B")  ("W" . "\e$A#W\e(B")  ("X" . "\e$A#X\e(B")
65                    ("Y" . "\e$A#Y\e(B")  ("Z" . "\e$A#Z\e(B")))
66     (let ((in (car ascii)) (out (cdr ascii)))
67       (its-defrule in out))))
68
69 (define-its-state-machine-append its-quanjiao-up-cn-map)
70
71 (define-its-state-machine its-quanjiao-down-cn-map
72   "quanjiao-downcase-cn" "\e$A#a\e(B" Chinese-GB
73   "Map for quanjiao-downcase input. (Chinese-GB)"
74
75   (dolist (ascii '(("0" . "\e$A#0\e(B")  ("1" . "\e$A#1\e(B")  ("2" . "\e$A#2\e(B")  ("3" . "\e$A#3\e(B")
76                    ("4" . "\e$A#4\e(B")  ("5" . "\e$A#5\e(B")  ("6" . "\e$A#6\e(B")  ("7" . "\e$A#7\e(B")
77                    ("8" . "\e$A#8\e(B")  ("9" . "\e$A#9\e(B") 
78                    (" " . "\e$A!!\e(B")  ("!" . "\e$A#!\e(B")  ("@" . "\e$A#@\e(B")  ("#" . "\e$A##\e(B")
79                    ("$" . "\e$A!g\e(B")  ("%" . "\e$A#%\e(B")  ("^" . "\e$A#^\e(B")  ("&" . "\e$A#&\e(B")
80                    ("*" . "\e$A#*\e(B")  ("(" . "\e$A#(\e(B")  (")" . "\e$A#)\e(B")
81                    ("-" . "\e$A#-\e(B")  ("=" . "\e$A#=\e(B")  ("`" . "\e$A#`\e(B")  ("\\" . "\e$A#\\e(B")
82                    ("|" . "\e$A#|\e(B")  ("_" . "\e$A#_\e(B")  ("+" . "\e$A#+\e(B")  ("~" . "\e$A!+\e(B")
83                    ("[" . "\e$A#[\e(B")  ("]" . "\e$A#]\e(B")  ("{" . "\e$A#{\e(B")  ("}" . "\e$A#}\e(B")
84                    (":" . "\e$A#:\e(B")  (";" . "\e$A#;\e(B")  ("\"" . "\e$A#"\e(B") ("'" . "\e$A#'\e(B")
85                    ("<" . "\e$A#<\e(B")  (">" . "\e$A#>\e(B")  ("?" . "\e$A#?\e(B")  ("/" . "\e$A#/\e(B")
86                    ("," . "\e$A#,\e(B")  ("." . "\e$A#.\e(B")
87                    ("a" . "\e$A#a\e(B")  ("b" . "\e$A#b\e(B")  ("c" . "\e$A#c\e(B")  ("d" . "\e$A#d\e(B")
88                    ("e" . "\e$A#e\e(B")  ("f" . "\e$A#f\e(B")  ("g" . "\e$A#g\e(B")  ("h" . "\e$A#h\e(B")
89                    ("i" . "\e$A#i\e(B")  ("j" . "\e$A#j\e(B")  ("k" . "\e$A#k\e(B")  ("l" . "\e$A#l\e(B")
90                    ("m" . "\e$A#m\e(B")  ("n" . "\e$A#n\e(B")  ("o" . "\e$A#o\e(B")  ("p" . "\e$A#p\e(B")
91                    ("q" . "\e$A#q\e(B")  ("r" . "\e$A#r\e(B")  ("s" . "\e$A#s\e(B")  ("t" . "\e$A#t\e(B")
92                    ("u" . "\e$A#u\e(B")  ("v" . "\e$A#v\e(B")  ("w" . "\e$A#w\e(B")  ("x" . "\e$A#x\e(B")
93                    ("y" . "\e$A#y\e(B")  ("z" . "\e$A#z\e(B")
94                    ("A" . "\e$A#A\e(B")  ("B" . "\e$A#B\e(B")  ("C" . "\e$A#C\e(B")  ("D" . "\e$A#D\e(B")
95                    ("E" . "\e$A#E\e(B")  ("F" . "\e$A#F\e(B")  ("G" . "\e$A#G\e(B")  ("H" . "\e$A#H\e(B")
96                    ("I" . "\e$A#I\e(B")  ("J" . "\e$A#J\e(B")  ("K" . "\e$A#K\e(B")  ("L" . "\e$A#L\e(B")
97                    ("M" . "\e$A#M\e(B")  ("N" . "\e$A#N\e(B")  ("O" . "\e$A#O\e(B")  ("P" . "\e$A#P\e(B")
98                    ("Q" . "\e$A#Q\e(B")  ("R" . "\e$A#R\e(B")  ("S" . "\e$A#S\e(B")  ("T" . "\e$A#T\e(B")
99                    ("U" . "\e$A#U\e(B")  ("V" . "\e$A#V\e(B")  ("W" . "\e$A#W\e(B")  ("X" . "\e$A#X\e(B")
100                    ("Y" . "\e$A#Y\e(B")  ("Z" . "\e$A#Z\e(B")))
101     (let ((in (car ascii)) (out (cdr ascii)))
102       (its-defrule in out))))
103
104 (define-its-state-machine-append its-quanjiao-down-cn-map)
105
106 (define-its-state-machine its-quanjiao-up-tw-map
107   "quanjiao-upcase-tw" "\e$(G$A\e(B" Chinese-CNS
108   "Map for quanjiao-upcase input. (Chinese-CNS)"
109
110   (dolist (ascii '(("0" . "\e$(G$!\e(B")  ("1" . "\e$(G$"\e(B")  ("2" . "\e$(G$#\e(B")  ("3" . "\e$(G$$\e(B")
111                    ("4" . "\e$(G$%\e(B")  ("5" . "\e$(G$&\e(B")  ("6" . "\e$(G$'\e(B")  ("7" . "\e$(G$(\e(B")
112                    ("8" . "\e$(G$)\e(B")  ("9" . "\e$(G$*\e(B") 
113                    (" " . "\e$(G!!\e(B")  ("!" . "\e$(G!*\e(B")  ("@" . "\e$(G"i\e(B")  ("#" . "\e$(G!l\e(B")
114                    ("$" . "\e$(G"c\e(B")  ("%" . "\e$(G"h\e(B")  ("^" . "\e$(G!T\e(B")  ("&" . "\e$(G!m\e(B")
115                    ("*" . "\e$(G!n\e(B")  ("(" . "\e$(G!>\e(B")  (")" . "\e$(G!?\e(B")
116                    ("-" . "\e$(G"1\e(B")  ("=" . "\e$(G"8\e(B")  ("`" . "\e$(G!j\e(B")  ("\\" . "\e$(G"b\e(B")
117                    ("|" . "\e$(G"^\e(B")  ("_" . "\e$(G"%\e(B")  ("+" . "\e$(G"0\e(B")  ("~" . "\e$(G"D\e(B")
118                    ("[" . "\e$(G!b\e(B")  ("]" . "\e$(G!c\e(B")  ("{" . "\e$A#{\e(B")  ("}" . "\e$(G!a\e(B")
119                    (":" . "\e$(G!(\e(B")  (";" . "\e$(G!'\e(B")  ("\"" . "\e$(G!i\e(B") ("'" . "\e$(G!k\e(B")
120                    ("<" . "\e$(G"6\e(B")  (">" . "\e$(G"7\e(B")  ("?" . "\e$(G!)\e(B")  ("/" . "\e$(G"a\e(B")
121                    ("," . "\e$(G!"\e(B")  ("." . "\e$(G!%\e(B")
122                    ("a" . "\e$(G$A\e(B")  ("b" . "\e$(G$B\e(B")  ("c" . "\e$(G$C\e(B")  ("d" . "\e$(G$D\e(B")
123                    ("e" . "\e$(G$E\e(B")  ("f" . "\e$(G$F\e(B")  ("g" . "\e$(G$G\e(B")  ("h" . "\e$(G$H\e(B")
124                    ("i" . "\e$(G$I\e(B")  ("j" . "\e$(G$J\e(B")  ("k" . "\e$(G$K\e(B")  ("l" . "\e$(G$L\e(B")
125                    ("m" . "\e$(G$M\e(B")  ("n" . "\e$(G$N\e(B")  ("o" . "\e$(G$O\e(B")  ("p" . "\e$(G$P\e(B")
126                    ("q" . "\e$(G$Q\e(B")  ("r" . "\e$(G$R\e(B")  ("s" . "\e$(G$S\e(B")  ("t" . "\e$(G$T\e(B")
127                    ("u" . "\e$(G$U\e(B")  ("v" . "\e$(G$V\e(B")  ("w" . "\e$(G$W\e(B")  ("x" . "\e$(G$X\e(B")
128                    ("y" . "\e$(G$Y\e(B")  ("z" . "\e$(G$Z\e(B")
129                    ("A" . "\e$(G$A\e(B")  ("B" . "\e$(G$B\e(B")  ("C" . "\e$(G$C\e(B")  ("D" . "\e$(G$D\e(B")
130                    ("E" . "\e$(G$E\e(B")  ("F" . "\e$(G$F\e(B")  ("G" . "\e$(G$G\e(B")  ("H" . "\e$(G$H\e(B")
131                    ("I" . "\e$(G$I\e(B")  ("J" . "\e$(G$J\e(B")  ("K" . "\e$(G$K\e(B")  ("L" . "\e$(G$L\e(B")
132                    ("M" . "\e$(G$M\e(B")  ("N" . "\e$(G$N\e(B")  ("O" . "\e$(G$O\e(B")  ("P" . "\e$(G$P\e(B")
133                    ("Q" . "\e$(G$Q\e(B")  ("R" . "\e$(G$R\e(B")  ("S" . "\e$(G$S\e(B")  ("T" . "\e$(G$T\e(B")
134                    ("U" . "\e$(G$U\e(B")  ("V" . "\e$(G$V\e(B")  ("W" . "\e$(G$W\e(B")  ("X" . "\e$(G$X\e(B")
135                    ("Y" . "\e$(G$Y\e(B")  ("Z" . "\e$(G$Z\e(B")))
136     (let ((in (car ascii)) (out (cdr ascii)))
137       (its-defrule in out))))
138
139 (define-its-state-machine-append its-quanjiao-up-tw-map)
140
141 (define-its-state-machine its-quanjiao-down-tw-map
142   "quanjiao-downcase-tw" "\e$(G$[\e(B" Chinese-CNS
143   "Map for quanjiao-downcase input. (Chinese-CNS)"
144
145   (dolist (ascii '(("0" . "\e$(G$!\e(B")  ("1" . "\e$(G$"\e(B")  ("2" . "\e$(G$#\e(B")  ("3" . "\e$(G$$\e(B")
146                    ("4" . "\e$(G$%\e(B")  ("5" . "\e$(G$&\e(B")  ("6" . "\e$(G$'\e(B")  ("7" . "\e$(G$(\e(B")
147                    ("8" . "\e$(G$)\e(B")  ("9" . "\e$(G$*\e(B") 
148                    (" " . "\e$(G!!\e(B")  ("!" . "\e$(G!*\e(B")  ("@" . "\e$(G"i\e(B")  ("#" . "\e$(G!l\e(B")
149                    ("$" . "\e$(G"c\e(B")  ("%" . "\e$(G"h\e(B")  ("^" . "\e$(G!T\e(B")  ("&" . "\e$(G!m\e(B")
150                    ("*" . "\e$(G!n\e(B")  ("(" . "\e$(G!>\e(B")  (")" . "\e$(G!?\e(B")
151                    ("-" . "\e$(G"1\e(B")  ("=" . "\e$(G"8\e(B")  ("`" . "\e$(G!j\e(B")  ("\\" . "\e$(G"`\e(B")
152                    ("|" . "\e$(G"^\e(B")  ("_" . "\e$(G"%\e(B")  ("+" . "\e$(G"0\e(B")  ("~" . "\e$(G"D\e(B")
153                    ("[" . "\e$(G!b\e(B")  ("]" . "\e$(G!c\e(B")  ("{" . "\e$(G!B\e(B")  ("}" . "\e$(G!C\e(B")
154                    (":" . "\e$(G!(\e(B")  (";" . "\e$(G!'\e(B")  ("\"" . "\e$(G!i\e(B") ("'" . "\e$(G!k\e(B")
155                    ("<" . "\e$(G"6\e(B")  (">" . "\e$(G"7\e(B")  ("?" . "\e$(G!)\e(B")  ("/" . "\e$(G"_\e(B")
156                    ("," . "\e$(G!"\e(B")  ("." . "\e$(G!%\e(B")
157                    ("a" . "\e$(G$[\e(B")  ("b" . "\e$(G$\\e(B")  ("c" . "\e$(G$]\e(B")  ("d" . "\e$(G$^\e(B")
158                    ("e" . "\e$(G$_\e(B")  ("f" . "\e$(G$`\e(B")  ("g" . "\e$(G$a\e(B")  ("h" . "\e$(G$b\e(B")
159                    ("i" . "\e$(G$c\e(B")  ("j" . "\e$(G$d\e(B")  ("k" . "\e$(G$e\e(B")  ("l" . "\e$(G$f\e(B")
160                    ("m" . "\e$(G$g\e(B")  ("n" . "\e$(G$h\e(B")  ("o" . "\e$(G$i\e(B")  ("p" . "\e$(G$j\e(B")
161                    ("q" . "\e$(G$k\e(B")  ("r" . "\e$(G$l\e(B")  ("s" . "\e$(G$m\e(B")  ("t" . "\e$(G$n\e(B")
162                    ("u" . "\e$(G$o\e(B")  ("v" . "\e$(G$p\e(B")  ("w" . "\e$(G$q\e(B")  ("x" . "\e$(G$r\e(B")
163                    ("y" . "\e$(G$s\e(B")  ("z" . "\e$(G$t\e(B")
164                    ("A" . "\e$(G$A\e(B")  ("B" . "\e$(G$B\e(B")  ("C" . "\e$(G$C\e(B")  ("D" . "\e$(G$D\e(B")
165                    ("E" . "\e$(G$E\e(B")  ("F" . "\e$(G$F\e(B")  ("G" . "\e$(G$G\e(B")  ("H" . "\e$(G$H\e(B")
166                    ("I" . "\e$(G$I\e(B")  ("J" . "\e$(G$J\e(B")  ("K" . "\e$(G$K\e(B")  ("L" . "\e$(G$L\e(B")
167                    ("M" . "\e$(G$M\e(B")  ("N" . "\e$(G$N\e(B")  ("O" . "\e$(G$O\e(B")  ("P" . "\e$(G$P\e(B")
168                    ("Q" . "\e$(G$Q\e(B")  ("R" . "\e$(G$R\e(B")  ("S" . "\e$(G$S\e(B")  ("T" . "\e$(G$T\e(B")
169                    ("U" . "\e$(G$U\e(B")  ("V" . "\e$(G$V\e(B")  ("W" . "\e$(G$W\e(B")  ("X" . "\e$(G$X\e(B")
170                    ("Y" . "\e$(G$Y\e(B")  ("Z" . "\e$(G$Z\e(B")))
171     (let ((in (car ascii)) (out (cdr ascii)))
172       (its-defrule in out))))
173
174 (define-its-state-machine-append its-quanjiao-down-tw-map)
175
176 (provide 'its/quanjiao)