Coding system name changed from
[bpt/emacs.git] / lisp / language / tibetan.el
CommitLineData
80d75b56
KH
1;;; tibetan.el --- Support for Tibetan language
2
3;; Copyright (C) 1997 Free Software Foundation, Inc.
4;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
5
6;; Keywords: multilingual, Tibetan
7
8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software; you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
12;; the Free Software Foundation; either version 2, or (at your option)
13;; any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
21;; along with GNU Emacs; see the file COPYING. If not, write to the
22;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23;; Boston, MA 02111-1307, USA.
24
25;; Author: Toru TOMABECHI, <Toru.Tomabechi@orient.unil.ch>
26
27;; Created: Feb. 17. 1997
28
29;; History:
30;; 1997.03.13 Modification for special signs and punctuations.
31
32;;; Code:
33
80d75b56
KH
34;;; Tibetan Character set.
35;;; \x2130 -- \x234a is a subset of Unicode v.2 \x0f00 - \x0fb9
36;;; with a slight modification. And there are some subjoined
37;;; consonants which are not specified in Unicode.
38;;; I hope I can add missing characters later.
39;;;
40;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
41;;;2120 // \e$(7!!\e(B \e$(7!"\e(B \e$(7!#\e(B \e$(7!$\e(B \e$(7!%\e(B \e$(7!&\e(B \e$(7!'\e(B \e$(7!(\e(B \e$(7!)\e(B \e$(7!*\e(B \e$(7!+\e(B \e$(7!,\e(B \e$(7!-\e(B \e$(7!.\e(B \e$(7!/\e(B ;
42;;;2130 \e$(7!0\e(B \e$(7!1\e(B \e$(7!2\e(B \e$(7!3\e(B \e$(7!4\e(B \e$(7!5\e(B \e$(7!6\e(B \e$(7!7\e(B \e$(7!8\e(B \e$(7!9\e(B \e$(7!:\e(B \e$(7!;\e(B \e$(7!<\e(B \e$(7!=\e(B \e$(7!>\e(B \e$(7!?\e(B ; Punctuations,
43;;;2140 \e$(7!@\e(B \e$(7!A\e(B \e$(7!B\e(B \e$(7!C\e(B \e$(7!D\e(B \e$(7!E\e(B \e$(7!F\e(B \e$(7!G\e(B \e$(7!H\e(B \e$(7!I\e(B \e$(7!J\e(B \e$(7!K\e(B \e$(7!L\e(B \e$(7!M\e(B \e$(7!N\e(B \e$(7!O\e(B ; Digits and
44;;;2150 \e$(7!P\e(B \e$(7!Q\e(B \e$(7!R\e(B \e$(7!S\e(B \e$(7!T\e(B \e$(7!U\e(B \e$(7!V\e(B \e$(7!W\e(B \e$(7!X\e(B \e$(7!Y\e(B \e$(7!Z\e(B \e$(7![\e(B \e$(7!\\e(B \e$(7!]\e(B \e$(7!^\e(B \e$(7!_\e(B ; Special signs.
45;;;2160 \e$(7!`\e(B \e$(7!a\e(B \e$(7!b\e(B \e$(7!c\e(B \e$(7!d\e(B \e$(7!e\e(B \e$(7!f\e(B \e$(7!g\e(B \e$(7!h\e(B \e$(7!i\e(B \e$(7!j\e(B \e$(7!k\e(B \e$(7!l\e(B \e$(7!m\e(B \e$(7!n\e(B \e$(7!o\e(B ;
46;;;2170 \e$(7!p\e(B \e$(7!q\e(B \e$(7!r\e(B \e$(7!s\e(B \e$(7!t\e(B \e$(7!u\e(B \e$(7!v\e(B \e$(7!w\e(B \e$(7!x\e(B \e$(7!y\e(B \e$(7!z\e(B \e$(7!{\e(B \e$(7!|\e(B \e$(7!}\e(B \e$(7!~\e(B // ;
47;;;
48;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
49;;;2220 // \e$(7"!\e(B \e$(7""\e(B \e$(7"#\e(B \e$(7"$\e(B \e$(7"%\e(B \e$(7"&\e(B \e$(7"'\e(B \e$(7"(\e(B \e$(7")\e(B \e$(7"*\e(B \e$(7"+\e(B \e$(7",\e(B \e$(7"-\e(B \e$(7".\e(B \e$(7"/\e(B ; Base consonants
50;;;2230 \e$(7"0\e(B \e$(7"1\e(B \e$(7"2\e(B \e$(7"3\e(B \e$(7"4\e(B \e$(7"5\e(B \e$(7"6\e(B \e$(7"7\e(B \e$(7"8\e(B \e$(7"9\e(B \e$(7":\e(B \e$(7";\e(B \e$(7"<\e(B \e$(7"=\e(B \e$(7">\e(B \e$(7"?\e(B ; and
51;;;2240 \e$(7"@\e(B \e$(7"A\e(B \e$(7"B\e(B \e$(7"C\e(B \e$(7"D\e(B \e$(7"E\e(B \e$(7"F\e(B \e$(7"G\e(B \e$(7"H\e(B \e$(7"I\e(B \e$(7"J\e(B \e$(7"K\e(B \e$(7"L\e(B \e$(7"M\e(B \e$(7"N\e(B \e$(7"O\e(B ; Vowel signs.
52;;;2250 \e$(7"P\e(B \e$(7"Q\e(B \e$(7"R\e(B \e$(7"S\e(B \e$(7"T\e(B \e$(7"U\e(B \e$(7"V\e(B \e$(7"W\e(B \e$(7"X\e(B \e$(7"Y\e(B \e$(7"Z\e(B \e$(7"[\e(B \e$(7"\\e(B \e$(7"]\e(B \e$(7"^\e(B \e$(7"_\e(B ; (\x2251 = vowel a)
53;;;2260 \e$(7"`\e(B \e$(7"a\e(B \e$(7"b\e(B \e$(7"c\e(B \e$(7"d\e(B \e$(7"e\e(B \e$(7"f\e(B \e$(7"g\e(B \e$(7"h\e(B \e$(7"i\e(B \e$(7"j\e(B \e$(7"k\e(B \e$(7"l\e(B \e$(7"m\e(B \e$(7"n\e(B \e$(7"o\e(B ; Long vowels and
54;;;2270 \e$(7"p\e(B \e$(7"q\e(B \e$(7"r\e(B \e$(7"s\e(B \e$(7"t\e(B \e$(7"u\e(B \e$(7"v\e(B \e$(7"w\e(B \e$(7"x\e(B \e$(7"y\e(B \e$(7"z\e(B \e$(7"{\e(B \e$(7"|\e(B \e$(7"}\e(B \e$(7"~\e(B // ; vocalic r, l are
55;;; ; not atomically
56;;; ; encoded.
57;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
58;;;2320 // \e$(7#!\e(B \e$(7#"\e(B \e$(7##\e(B \e$(7#$\e(B \e$(7#%\e(B \e$(7#&\e(B \e$(7#'\e(B \e$(7#(\e(B \e$(7#)\e(B \e$(7#*\e(B \e$(7#+\e(B \e$(7#,\e(B \e$(7#-\e(B \e$(7#.\e(B \e$(7#/\e(B ; Subjoined consonants
59;;;2330 \e$(7#0\e(B \e$(7#1\e(B \e$(7#2\e(B \e$(7#3\e(B \e$(7#4\e(B \e$(7#5\e(B \e$(7#6\e(B \e$(7#7\e(B \e$(7#8\e(B \e$(7#9\e(B \e$(7#:\e(B \e$(7#;\e(B \e$(7#<\e(B \e$(7#=\e(B \e$(7#>\e(B \e$(7#?\e(B ;
60;;;2340 \e$(7#@\e(B \e$(7#A\e(B \e$(7#B\e(B \e$(7#C\e(B \e$(7#D\e(B \e$(7#E\e(B \e$(7#F\e(B \e$(7#G\e(B \e$(7#H\e(B \e$(7#I\e(B \e$(7#J\e(B \e$(7#K\e(B \e$(7#L\e(B \e$(7#M\e(B \e$(7#N\e(B \e$(7#O\e(B ; 'a chung (\x2341)is
61;;; ; here,
62;;; ; while in Unicode
63;;; ; it is classified
64;;; ; as a vowel sign
65;;; ; (\x0f71).
66;;;
67;;;2350 \e$(7#P\e(B \e$(7#Q\e(B \e$(7#R\e(B \e$(7#S\e(B \e$(7#T\e(B \e$(7#U\e(B \e$(7#V\e(B \e$(7#W\e(B \e$(7#X\e(B \e$(7#Y\e(B \e$(7#Z\e(B \e$(7#[\e(B \e$(7#\\e(B \e$(7#]\e(B \e$(7#^\e(B \e$(7#_\e(B ; Hereafter, the chars
68;;;2360 \e$(7#`\e(B \e$(7#a\e(B \e$(7#b\e(B \e$(7#c\e(B \e$(7#d\e(B \e$(7#e\e(B \e$(7#f\e(B \e$(7#g\e(B \e$(7#h\e(B \e$(7#i\e(B \e$(7#j\e(B \e$(7#k\e(B \e$(7#l\e(B \e$(7#m\e(B \e$(7#n\e(B \e$(7#o\e(B ; are not specified
69;;;2370 \e$(7#p\e(B \e$(7#q\e(B \e$(7#r\e(B \e$(7#s\e(B \e$(7#t\e(B \e$(7#u\e(B \e$(7#v\e(B \e$(7#w\e(B \e$(7#x\e(B \e$(7#y\e(B \e$(7#z\e(B \e$(7#{\e(B \e$(7#|\e(B \e$(7#}\e(B \e$(7#~\e(B // ; in Unicode.
70;;; ; The character \x2351
71;;; ; is not used in our
72;;; ; implementation.
73;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
74;;;2420 // \e$(7$!\e(B \e$(7$"\e(B \e$(7$#\e(B \e$(7$$\e(B \e$(7$%\e(B \e$(7$&\e(B \e$(7$'\e(B \e$(7$(\e(B \e$(7$)\e(B \e$(7$*\e(B \e$(7$+\e(B \e$(7$,\e(B \e$(7$-\e(B \e$(7$.\e(B \e$(7$/\e(B ; Precomposed
75;;;2430 \e$(7$0\e(B \e$(7$1\e(B \e$(7$2\e(B \e$(7$3\e(B \e$(7$4\e(B \e$(7$5\e(B \e$(7$6\e(B \e$(7$7\e(B \e$(7$8\e(B \e$(7$9\e(B \e$(7$:\e(B \e$(7$;\e(B \e$(7$<\e(B \e$(7$=\e(B \e$(7$>\e(B \e$(7$?\e(B ; consonants for
76;;;2440 \e$(7$@\e(B \e$(7$A\e(B \e$(7$B\e(B \e$(7$C\e(B \e$(7$D\e(B \e$(7$E\e(B \e$(7$F\e(B \e$(7$G\e(B \e$(7$H\e(B \e$(7$I\e(B \e$(7$J\e(B \e$(7$K\e(B \e$(7$L\e(B \e$(7$M\e(B \e$(7$N\e(B \e$(7$O\e(B ; ordinary Tibetan.
77;;;2450 \e$(7$P\e(B \e$(7$Q\e(B \e$(7$R\e(B \e$(7$S\e(B \e$(7$T\e(B \e$(7$U\e(B \e$(7$V\e(B \e$(7$W\e(B \e$(7$X\e(B \e$(7$Y\e(B \e$(7$Z\e(B \e$(7$[\e(B \e$(7$\\e(B \e$(7$]\e(B \e$(7$^\e(B \e$(7$_\e(B ; They are decomposed
78;;;2460 \e$(7$`\e(B \e$(7$a\e(B \e$(7$b\e(B \e$(7$c\e(B \e$(7$d\e(B \e$(7$e\e(B \e$(7$f\e(B \e$(7$g\e(B \e$(7$h\e(B \e$(7$i\e(B \e$(7$j\e(B \e$(7$k\e(B \e$(7$l\e(B \e$(7$m\e(B \e$(7$n\e(B \e$(7$o\e(B ; into base and
79;;;2470 \e$(7$p\e(B \e$(7$q\e(B \e$(7$r\e(B \e$(7$s\e(B \e$(7$t\e(B \e$(7$u\e(B \e$(7$v\e(B \e$(7$w\e(B \e$(7$x\e(B \e$(7$y\e(B \e$(7$z\e(B \e$(7${\e(B \e$(7$|\e(B \e$(7$}\e(B \e$(7$~\e(B // ; subjoined consonants
80;;; ; when written on a
81;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ; file in Tibetan
82;;;2520 // \e$(7%!\e(B \e$(7%"\e(B \e$(7%#\e(B \e$(7%$\e(B \e$(7%%\e(B \e$(7%&\e(B \e$(7%'\e(B \e$(7%(\e(B \e$(7%)\e(B \e$(7%*\e(B \e$(7%+\e(B \e$(7%,\e(B \e$(7%-\e(B \e$(7%.\e(B \e$(7%/\e(B ; coding system.
83;;;2530 \e$(7%0\e(B \e$(7%1\e(B \e$(7%2\e(B \e$(7%3\e(B \e$(7%4\e(B \e$(7%5\e(B \e$(7%6\e(B \e$(7%7\e(B \e$(7%8\e(B \e$(7%9\e(B \e$(7%:\e(B \e$(7%;\e(B \e$(7%<\e(B \e$(7%=\e(B \e$(7%>\e(B \e$(7%?\e(B ;
84;;;2540 \e$(7%@\e(B \e$(7%A\e(B \e$(7%B\e(B \e$(7%C\e(B \e$(7%D\e(B \e$(7%E\e(B \e$(7%F\e(B \e$(7%G\e(B \e$(7%H\e(B \e$(7%I\e(B \e$(7%J\e(B \e$(7%K\e(B \e$(7%L\e(B \e$(7%M\e(B \e$(7%N\e(B \e$(7%O\e(B ;
85;;;2550 \e$(7%P\e(B \e$(7%Q\e(B \e$(7%R\e(B \e$(7%S\e(B \e$(7%T\e(B \e$(7%U\e(B \e$(7%V\e(B \e$(7%W\e(B \e$(7%X\e(B \e$(7%Y\e(B \e$(7%Z\e(B \e$(7%[\e(B \e$(7%\\e(B \e$(7%]\e(B \e$(7%^\e(B \e$(7%_\e(B ;
86;;;2560 \e$(7%`\e(B \e$(7%a\e(B \e$(7%b\e(B \e$(7%c\e(B \e$(7%d\e(B \e$(7%e\e(B \e$(7%f\e(B \e$(7%g\e(B \e$(7%h\e(B \e$(7%i\e(B \e$(7%j\e(B \e$(7%k\e(B \e$(7%l\e(B \e$(7%m\e(B \e$(7%n\e(B \e$(7%o\e(B ;
87;;;2570 \e$(7%p\e(B \e$(7%q\e(B \e$(7%r\e(B \e$(7%s\e(B \e$(7%t\e(B \e$(7%u\e(B \e$(7%v\e(B \e$(7%w\e(B \e$(7%x\e(B \e$(7%y\e(B \e$(7%z\e(B \e$(7%{\e(B \e$(7%|\e(B \e$(7%}\e(B \e$(7%~\e(B // ;
88;;;
89
90
91(make-coding-system
92 'tibetan 2 ?Q
93 "Coding-system used for ASCII(MSB=0) & TIBETAN(MSB=1)."
94 '((ascii t) (tibetan t) nil nil
95 nil ascii-eol))
96
97(put 'tibetan 'post-read-conversion 'tibetan-post-read-conversion)
98(put 'tibetan 'pre-write-conversion 'tibetan-pre-write-conversion)
99
100(register-input-method
101 "Tibetan" '("quail-tibetan-wylie" quail-use-package "quail/tibetan"))
102(register-input-method
103 "Tibetan" '("quail-tibetan-tibkey" quail-use-package "quail/tibetan"))
104
80d75b56
KH
105(set-language-info-alist
106 "Tibetan" '((setup-function . setup-tibetan-environment)
107 (charset . (tibetan tibetan-1-column))
108 (coding-system . (tibetan))
109 (documentation . t)
110 (sample-text .
111"Tibetan (\e2\e$(7"70"]\e1"2\e$(8!;\e2\e$(7%P`"Q\e1"2\e$(8!;\e(B) \e2\e$(7#RP#SP#S\e1!>"7\e2$P`"Q\e1\e$(8!;\e2\e$(7"E0"S\e1"G\e$(8!;\e$(7"7\e2"20"[\e1\e$(8!;\e2\e$(7"D0"[\e1"#"G!>\e2"I0"]0"_\e1\e$(8!;\e2\e$(7"9`"Q\e1\e$(8!;\e2\e$(7"/0"S\e1\e$(8!;\e2\e$(7"5`"Q\e1\e2#2`#90"[\e1\e$(8!;\e2\e$(7"H`#A`"U0"c\e1!>\e(B")))
112
113
114;;;
115;;; Definitions of conversion data.
116;;;
117
118
119;;; alists for tibetan char <-> transcription conversion
120;;; longer transcription should come first
121(defconst tibetan-consonant-transcription-alist
122 '(("tsh" . "\e$(7";\e(B")
123 ("dzh" . "\e$(7"=\e(B")
124 ("kSH" . "\e$(7"J\e(B")
125 ("kh" . "\e$(7""\e(B")
126 ("gh" . "\e$(7"$\e(B")
127 ("ng" . "\e$(7"%\e(B")
128 ("ch" . "\e$(7"'\e(B")
129 ("ny" . "\e$(7"*\e(B")
130 ("TH" . "\e$(7",\e(B")
131 ("DH" . "\e$(7".\e(B")
132 ("th" . "\e$(7"1\e(B")
133 ("dh" . "\e$(7"3\e(B")
134 ("ph" . "\e$(7"6\e(B")
135 ("bh" . "\e$(7"8\e(B")
136 ("ts" . "\e$(7":\e(B")
137 ("dz" . "\e$(7"<\e(B")
138 ("zh" . "\e$(7"?\e(B")
139 ("sh" . "\e$(7"E\e(B")
140 ("SH" . "\e$(7"F\e(B")
141 ("k" . "\e$(7"!\e(B")
142 ("g" . "\e$(7"#\e(B")
143 ("c" . "\e$(7"&\e(B")
144 ("j" . "\e$(7"(\e(B")
145 ("T" . "\e$(7"+\e(B")
146 ("D" . "\e$(7"-\e(B")
147 ("N" . "\e$(7"/\e(B")
148 ("t" . "\e$(7"0\e(B")
149 ("d" . "\e$(7"2\e(B")
150 ("n" . "\e$(7"4\e(B")
151 ("p" . "\e$(7"5\e(B")
152 ("b" . "\e$(7"7\e(B")
153 ("m" . "\e$(7"9\e(B")
154 ("w" . "\e$(7">\e(B")
155 ("z" . "\e$(7"@\e(B")
156 ("'" . "\e$(7"A\e(B")
157 ("y" . "\e$(7"B\e(B")
158 ("r" . "\e$(7"C\e(B")
159 ("l" . "\e$(7"D\e(B")
160 ("s" . "\e$(7"G\e(B")
161 ("h" . "\e$(7"H\e(B")
162 ("H" . "\e$(7"H\e(B")
163 ("A" . "\e$(7"I\e(B")))
164
165
166(defconst tibetan-vowel-transcription-alist
167 '(("ai" . "\e$(7"\\e(B")
168 ("au" . "\e$(7"^\e(B")
169 ("ee" . "\e$(7"\\e(B")
170 ("oo" . "\e$(7"^\e(B")
171 ("a" . "\e$(7"Q\e(B") ; invisible vowel sign (\x2251)
172 ("i" . "\e$(7"S\e(B")
173 ("u" . "\e$(7"U\e(B")
174 ("e" . "\e$(7"[\e(B")
175 ("o" . "\e$(7"]\e(B")
176 ("E" . "\e$(7"\\e(B")
177 ("O" . "\e$(7"^\e(B")
178 ("I" . "\e$(7"a\e(B")
179 ("M" . "\e$(7"_\e(B")
180 ("~" . "\e$(7"c\e(B") ; not specified in Ext.wylie
181 ("`" . "\e$(7"d\e(B") ; idem.
182 ("," . "\e$(7"e\e(B") ; idem.
183 ("v" . "\e$(7"g\e(B") ; idem.
184 ("V" . "\e$(7"h\e(B") ; idem.
185 ("x" . "\e$(7"i\e(B") ; idem.
186 ("X" . "\e$(7"j\e(B") ; idem.
187 ("q" . "\e$(7"k\e(B") ; idem.
188 ("Q" . "\e$(7"l\e(B") ; idem.
189 ("_o" . "\e$(7!g\e(B") ; idem.
190 ("_O" . "\e$(7!e\e(B") ; idem.
191 ("_/" . "\e$(7!I\e(B") ; idem.
192 ))
193
194(defconst tibetan-precomposed-transcription-alist
195 '(("phyw" . "\e$(7$G\e(B")
196 ("tshw" . "\e$(7$)\e(B")
197 ("rtsw" . "\e$(7%.\e(B")
198 ("khw" . "\e$(7$"\e(B")
199 ("nyw" . "\e$(7$%\e(B")
200 ("tsw" . "\e$(7$(\e(B")
201 ("zhw" . "\e$(7$*\e(B")
202 ("shw" . "\e$(7$.\e(B")
203 ("khy" . "\e$(7$A\e(B")
204 ("phy" . "\e$(7$D\e(B")
205 ("khr" . "\e$(7$Q\e(B")
206 ("thr" . "\e$(7$T\e(B")
207 ("phr" . "\e$(7$W\e(B")
208 ("shr" . "\e$(7$Z\e(B")
209 ("dzr" . "\e$(7$^\e(B")
210 ("grw" . "\e$(7$_\e(B")
211 ("rng" . "\e$(7%#\e(B")
212 ("rny" . "\e$(7%%\e(B")
213 ("rts" . "\e$(7%+\e(B")
214 ("rdz" . "\e$(7%,\e(B")
215 ("rgw" . "\e$(7%-\e(B")
216 ("rky" . "\e$(7%0\e(B")
217 ("rgy" . "\e$(7%1\e(B")
218 ("rmy" . "\e$(7%2\e(B")
219 ("lng" . "\e$(7%B\e(B")
220 ("sng" . "\e$(7%R\e(B")
221 ("sny" . "\e$(7%S\e(B")
222 ("sts" . "\e$(7%Z\e(B")
223 ("sky" . "\e$(7%`\e(B")
224 ("sgy" . "\e$(7%a\e(B")
225 ("spy" . "\e$(7%b\e(B")
226 ("sby" . "\e$(7%c\e(B")
227 ("smy" . "\e$(7%d\e(B")
228 ("skr" . "\e$(7%p\e(B")
229 ("sgr" . "\e$(7%q\e(B")
230 ("snr" . "\e$(7%r\e(B")
231 ("spr" . "\e$(7%s\e(B")
232 ("sbr" . "\e$(7%t\e(B")
233 ("smr" . "\e$(7%u\e(B")
234 ("kw" . "\e$(7$!\e(B")
235 ("gw" . "\e$(7$#\e(B")
236 ("cw" . "\e$(7$$\e(B")
237 ("tw" . "\e$(7$&\e(B")
238 ("dw" . "\e$(7$'\e(B")
239 ("zw" . "\e$(7$+\e(B")
240 ("rw" . "\e$(7$,\e(B")
241 ("lw" . "\e$(7$-\e(B")
242 ("sw" . "\e$(7$/\e(B")
243 ("hw" . "\e$(7$0\e(B")
244 ("ky" . "\e$(7$@\e(B")
245 ("gy" . "\e$(7$B\e(B")
246 ("py" . "\e$(7$C\e(B")
247 ("by" . "\e$(7$E\e(B")
248 ("my" . "\e$(7$F\e(B")
249 ("kr" . "\e$(7$P\e(B")
250 ("gr" . "\e$(7$R\e(B")
251 ("tr" . "\e$(7$S\e(B")
252 ("dr" . "\e$(7$U\e(B")
253 ("pr" . "\e$(7$V\e(B")
254 ("brk" . "\e$(7"7%!\e(B")
255 ("brg" . "\e$(7"7%"\e(B")
256 ("brng" . "\e$(7"7%#\e(B")
257 ("brj" . "\e$(7"7%$\e(B")
258 ("brny" . "\e$(7"7%%\e(B")
259 ("brt" . "\e$(7"7%&\e(B")
260 ("brd" . "\e$(7"7%'\e(B")
261 ("brn" . "\e$(7"7%(\e(B")
262 ("brts" . "\e$(7"7%+\e(B")
263 ("brdz" . "\e$(7"7%,\e(B")
264 ("brl" . "\e$(7"7$d\e(B")
265 ("br" . "\e$(7$X\e(B")
266 ("mr" . "\e$(7$Y\e(B")
267 ("sr" . "\e$(7$[\e(B")
268 ("hr" . "\e$(7$\\e(B")
269 ("jr" . "\e$(7$]\e(B")
270 ("kl" . "\e$(7$`\e(B")
271 ("gl" . "\e$(7$a\e(B")
272 ("blt" . "\e$(7"7%E\e(B")
273 ("bld" . "\e$(7"7%F\e(B")
274 ("bl" . "\e$(7$b\e(B")
275 ("zl" . "\e$(7$c\e(B")
276 ("rl" . "\e$(7$d\e(B")
277 ("sl" . "\e$(7$e\e(B")
278 ("rk" . "\e$(7%!\e(B")
279 ("rg" . "\e$(7%"\e(B")
280 ("rj" . "\e$(7%$\e(B")
281 ("rt" . "\e$(7%&\e(B")
282 ("rd" . "\e$(7%'\e(B")
283 ("rn" . "\e$(7%(\e(B")
284 ("rb" . "\e$(7%)\e(B")
285 ("rm" . "\e$(7%*\e(B")
286 ("lk" . "\e$(7%@\e(B")
287 ("lg" . "\e$(7%A\e(B")
288 ("lc" . "\e$(7%C\e(B")
289 ("lj" . "\e$(7%D\e(B")
290 ("lt" . "\e$(7%E\e(B")
291 ("ld" . "\e$(7%F\e(B")
292 ("ln" . "\e$(7!!\e(B") ; dummy \x2121
293 ("lp" . "\e$(7%G\e(B")
294 ("lb" . "\e$(7%H\e(B")
295 ("lh" . "\e$(7%I\e(B")
296 ("sk" . "\e$(7%P\e(B")
297 ("sg" . "\e$(7%Q\e(B")
298 ("st" . "\e$(7%T\e(B")
299 ("sd" . "\e$(7%U\e(B")
300 ("sn" . "\e$(7%V\e(B")
301 ("sp" . "\e$(7%W\e(B")
302 ("sb" . "\e$(7%X\e(B")
303 ("sm" . "\e$(7%Y\e(B")))
304
305(defconst tibetan-subjoined-transcription-alist
306 '(("+k" . "\e$(7#!\e(B")
307 ("+kh" . "\e$(7#"\e(B")
308 ("+g" . "\e$(7##\e(B")
309 ("+gh" . "\e$(7#$\e(B")
310 ("+ng" . "\e$(7#%\e(B")
311 ("+c" . "\e$(7#&\e(B")
312 ("+ch" . "\e$(7#'\e(B")
313 ("+j" . "\e$(7#(\e(B")
314 ("+ny" . "\e$(7#*\e(B")
315 ("+T" . "\e$(7#+\e(B")
316 ("+TH" . "\e$(7#,\e(B")
317 ("+D" . "\e$(7#-\e(B")
318 ("+DH" . "\e$(7#.\e(B")
319 ("+N" . "\e$(7#/\e(B")
320 ("+t" . "\e$(7#0\e(B")
321 ("+th" . "\e$(7#1\e(B")
322 ("+d" . "\e$(7#2\e(B")
323 ("+dh" . "\e$(7#3\e(B")
324 ("+n" . "\e$(7#4\e(B")
325 ("+p" . "\e$(7#5\e(B")
326 ("+ph" . "\e$(7#6\e(B")
327 ("+b" . "\e$(7#7\e(B")
328 ("+bh" . "\e$(7#8\e(B")
329 ("+m" . "\e$(7#9\e(B")
330 ("+ts" . "\e$(7#:\e(B")
331 ("+tsh" . "\e$(7#;\e(B")
332 ("+dz" . "\e$(7#<\e(B")
333 ("+dzh" . "\e$(7#=\e(B")
334 ("+w" . "\e$(7#>\e(B")
335 ("+zh" . "\e$(7#?\e(B")
336 ("+z" . "\e$(7#@\e(B")
337 ("+'" . "\e$(7#A\e(B")
338 ("+y" . "\e$(7#B\e(B")
339 ("+r" . "\e$(7#C\e(B")
340 ("+l" . "\e$(7#D\e(B")
341 ("+sh" . "\e$(7#E\e(B")
342 ("+SH" . "\e$(7#F\e(B")
343 ("+s" . "\e$(7#G\e(B")
344 ("+h" . "\e$(7#H\e(B")
345 ("+A" . "\e$(7#I\e(B")
346 ("+kSH" . "\e$(7#J\e(B")
347 ("R" . "\e$(7#P\e(B")))
348
349;;;
350;;; alist for Tibetan base consonant <-> subjoined consonant conversion.
351;;;
352(defconst tibetan-base-to-subjoined-alist
353 '(("\e$(7"!\e(B" . "\e$(7#!\e(B")
354 ("\e$(7""\e(B" . "\e$(7#"\e(B")
355 ("\e$(7"#\e(B" . "\e$(7##\e(B")
356 ("\e$(7"$\e(B" . "\e$(7#$\e(B")
357 ("\e$(7"%\e(B" . "\e$(7#%\e(B")
358 ("\e$(7"&\e(B" . "\e$(7#&\e(B")
359 ("\e$(7"'\e(B" . "\e$(7#'\e(B")
360 ("\e$(7"(\e(B" . "\e$(7#(\e(B")
361 ("\e$(7"*\e(B" . "\e$(7#*\e(B")
362 ("\e$(7"+\e(B" . "\e$(7#+\e(B")
363 ("\e$(7",\e(B" . "\e$(7#,\e(B")
364 ("\e$(7"-\e(B" . "\e$(7#-\e(B")
365 ("\e$(7".\e(B" . "\e$(7#.\e(B")
366 ("\e$(7"/\e(B" . "\e$(7#/\e(B")
367 ("\e$(7"0\e(B" . "\e$(7#0\e(B")
368 ("\e$(7"1\e(B" . "\e$(7#1\e(B")
369 ("\e$(7"2\e(B" . "\e$(7#2\e(B")
370 ("\e$(7"3\e(B" . "\e$(7#3\e(B")
371 ("\e$(7"4\e(B" . "\e$(7#4\e(B")
372 ("\e$(7"5\e(B" . "\e$(7#5\e(B")
373 ("\e$(7"6\e(B" . "\e$(7#6\e(B")
374 ("\e$(7"7\e(B" . "\e$(7#7\e(B")
375 ("\e$(7"8\e(B" . "\e$(7#8\e(B")
376 ("\e$(7"9\e(B" . "\e$(7#9\e(B")
377 ("\e$(7":\e(B" . "\e$(7#:\e(B")
378 ("\e$(7";\e(B" . "\e$(7#;\e(B")
379 ("\e$(7"<\e(B" . "\e$(7#<\e(B")
380 ("\e$(7"=\e(B" . "\e$(7#=\e(B")
381 ("\e$(7">\e(B" . "\e$(7#>\e(B")
382 ("\e$(7"?\e(B" . "\e$(7#?\e(B")
383 ("\e$(7"@\e(B" . "\e$(7#@\e(B")
384 ("\e$(7"A\e(B" . "\e$(7#A\e(B")
385 ("\e$(7"B\e(B" . "\e$(7#B\e(B")
386 ("\e$(7"C\e(B" . "\e$(7#C\e(B")
387 ("\e$(7"D\e(B" . "\e$(7#D\e(B")
388 ("\e$(7"E\e(B" . "\e$(7#E\e(B")
389 ("\e$(7"F\e(B" . "\e$(7#F\e(B")
390 ("\e$(7"G\e(B" . "\e$(7#G\e(B")
391 ("\e$(7"H\e(B" . "\e$(7#H\e(B")
392 ("\e$(7"I\e(B" . "\e$(7#I\e(B")
393 ("\e$(7"J\e(B" . "\e$(7#J\e(B")))
394
395;;;
396;;; alist for Tibetan consonantic components <-> precomposed glyph conversion.
397;;; (includes some punctuation conversion rules)
398;;;
399(defconst tibetan-precomposition-rule-alist
400 '(("\e$(7"6#B#>\e(B" . "\e$(7$G\e(B")
401 ("\e$(7"##C#>\e(B" . "\e$(7$_\e(B")
402 ("\e$(7";#>\e(B" . "\e$(7$)\e(B")
403 ("\e$(7"C#:#>\e(B" . "\e$(7%.\e(B")
404 ("\e$(7"C###>\e(B" . "\e$(7%-\e(B")
405 ("\e$(7"C#!#B\e(B" . "\e$(7%0\e(B")
406 ("\e$(7"C###B\e(B" . "\e$(7%1\e(B")
407 ("\e$(7"C#9#B\e(B" . "\e$(7%2\e(B")
408 ("\e$(7"G#!#B\e(B" . "\e$(7%`\e(B")
409 ("\e$(7"G###B\e(B" . "\e$(7%a\e(B")
410 ("\e$(7"G#5#B\e(B" . "\e$(7%b\e(B")
411 ("\e$(7"G#7#B\e(B" . "\e$(7%c\e(B")
412 ("\e$(7"G#9#B\e(B" . "\e$(7%d\e(B")
413 ("\e$(7"G#!#C\e(B" . "\e$(7%p\e(B")
414 ("\e$(7"G###C\e(B" . "\e$(7%q\e(B")
415 ("\e$(7"G#4#C\e(B" . "\e$(7%r\e(B")
416 ("\e$(7"G#5#C\e(B" . "\e$(7%s\e(B")
417 ("\e$(7"G#7#C\e(B" . "\e$(7%t\e(B")
418 ("\e$(7"G#9#C\e(B" . "\e$(7%u\e(B")
419 ("\e$(7""#>\e(B" . "\e$(7$"\e(B")
420 ("\e$(7"*#>\e(B" . "\e$(7$%\e(B")
421 ("\e$(7":#>\e(B" . "\e$(7$(\e(B")
422 ("\e$(7"?#>\e(B" . "\e$(7$*\e(B")
423 ("\e$(7"E#>\e(B" . "\e$(7$.\e(B")
424 ("\e$(7""#B\e(B" . "\e$(7$A\e(B")
425 ("\e$(7"6#B\e(B" . "\e$(7$D\e(B")
426 ("\e$(7""#C\e(B" . "\e$(7$Q\e(B")
427 ("\e$(7"1#C\e(B" . "\e$(7$T\e(B")
428 ("\e$(7"6#C\e(B" . "\e$(7$W\e(B")
429 ("\e$(7"E#C\e(B" . "\e$(7$Z\e(B")
430 ("\e$(7"<#C\e(B" . "\e$(7$^\e(B")
431 ("\e$(7"C#%\e(B" . "\e$(7%#\e(B")
432 ("\e$(7"C#*\e(B" . "\e$(7%%\e(B")
433 ("\e$(7"C#:\e(B" . "\e$(7%+\e(B")
434 ("\e$(7"C#<\e(B" . "\e$(7%,\e(B")
435 ("\e$(7"D#%\e(B" . "\e$(7%B\e(B")
436 ("\e$(7"G#%\e(B" . "\e$(7%R\e(B")
437 ("\e$(7"G#*\e(B" . "\e$(7%S\e(B")
438 ("\e$(7"G#:\e(B" . "\e$(7%Z\e(B")
439 ("\e$(7"!#>\e(B" . "\e$(7$!\e(B")
440 ("\e$(7"##>\e(B" . "\e$(7$#\e(B")
441 ("\e$(7"&#>\e(B" . "\e$(7$$\e(B")
442 ("\e$(7"0#>\e(B" . "\e$(7$&\e(B")
443 ("\e$(7"2#>\e(B" . "\e$(7$'\e(B")
444 ("\e$(7"@#>\e(B" . "\e$(7$+\e(B")
445 ("\e$(7"C#>\e(B" . "\e$(7$,\e(B")
446 ("\e$(7"D#>\e(B" . "\e$(7$-\e(B")
447 ("\e$(7"G#>\e(B" . "\e$(7$/\e(B")
448 ("\e$(7"H#>\e(B" . "\e$(7$0\e(B")
449 ("\e$(7"!#B\e(B" . "\e$(7$@\e(B")
450 ("\e$(7"##B\e(B" . "\e$(7$B\e(B")
451 ("\e$(7"5#B\e(B" . "\e$(7$C\e(B")
452 ("\e$(7"7#B\e(B" . "\e$(7$E\e(B")
453 ("\e$(7"9#B\e(B" . "\e$(7$F\e(B")
454 ("\e$(7"!#C\e(B" . "\e$(7$P\e(B")
455 ("\e$(7"##C\e(B" . "\e$(7$R\e(B")
456 ("\e$(7"0#C\e(B" . "\e$(7$S\e(B")
457 ("\e$(7"2#C\e(B" . "\e$(7$U\e(B")
458 ("\e$(7"5#C\e(B" . "\e$(7$V\e(B")
459 ("\e$(7"7#C\e(B" . "\e$(7$X\e(B")
460 ("\e$(7"9#C\e(B" . "\e$(7$Y\e(B")
461 ("\e$(7"G#C\e(B" . "\e$(7$[\e(B")
462 ("\e$(7"H#C\e(B" . "\e$(7$\\e(B")
463 ("\e$(7"(#C\e(B" . "\e$(7$]\e(B")
464 ("\e$(7"!#D\e(B" . "\e$(7$`\e(B")
465 ("\e$(7"##D\e(B" . "\e$(7$a\e(B")
466 ("\e$(7"7#D\e(B" . "\e$(7$b\e(B")
467 ("\e$(7"@#D\e(B" . "\e$(7$c\e(B")
468 ("\e$(7"C#D\e(B" . "\e$(7$d\e(B")
469 ("\e$(7"G#D\e(B" . "\e$(7$e\e(B")
470 ("\e$(7"C#!\e(B" . "\e$(7%!\e(B")
471 ("\e$(7"C##\e(B" . "\e$(7%"\e(B")
472 ("\e$(7"C#(\e(B" . "\e$(7%$\e(B")
473 ("\e$(7"C#0\e(B" . "\e$(7%&\e(B")
474 ("\e$(7"C#2\e(B" . "\e$(7%'\e(B")
475 ("\e$(7"C#4\e(B" . "\e$(7%(\e(B")
476 ("\e$(7"C#7\e(B" . "\e$(7%)\e(B")
477 ("\e$(7"C#9\e(B" . "\e$(7%*\e(B")
478 ("\e$(7"D#!\e(B" . "\e$(7%@\e(B")
479 ("\e$(7"D##\e(B" . "\e$(7%A\e(B")
480 ("\e$(7"D#&\e(B" . "\e$(7%C\e(B")
481 ("\e$(7"D#(\e(B" . "\e$(7%D\e(B")
482 ("\e$(7"D#0\e(B" . "\e$(7%E\e(B")
483 ("\e$(7"D#2\e(B" . "\e$(7%F\e(B")
484 ("\e$(7"D#5\e(B" . "\e$(7%G\e(B")
485 ("\e$(7"D#7\e(B" . "\e$(7%H\e(B")
486 ("\e$(7"D#H\e(B" . "\e$(7%I\e(B")
487 ("\e$(7"G#!\e(B" . "\e$(7%P\e(B")
488 ("\e$(7"G##\e(B" . "\e$(7%Q\e(B")
489 ("\e$(7"G#0\e(B" . "\e$(7%T\e(B")
490 ("\e$(7"G#2\e(B" . "\e$(7%U\e(B")
491 ("\e$(7"G#4\e(B" . "\e$(7%V\e(B")
492 ("\e$(7"G#5\e(B" . "\e$(7%W\e(B")
493 ("\e$(7"G#7\e(B" . "\e$(7%X\e(B")
494 ("\e$(7"G#9\e(B" . "\e$(7%Y\e(B")
495 ("\e$(7!=\e(B" . "\e$(8!=\e(B") ; 2 col <-> 1 col
496 ("\e$(7!?\e(B" . "\e$(8!?\e(B")
497 ("\e$(7!@\e(B" . "\e$(8!@\e(B")
498 ("\e$(7!A\e(B" . "\e$(8!A\e(B")
499 ("\e$(7"`\e(B" . "\e$(8"`\e(B")
500 ("\e$(7!;\e(B" . "\e$(8!;\e(B")
501 ("\e$(7!D\e(B" . "\e$(8!D\e(B")
502 ("\e$(7!>\e(B \e$(7!>\e(B" . "\e2\e$(7!>P\e(B P\e$(7!>\e1\e(B") ; Yes this is dirty. But ...
503 ("\e$(7!4!5!5\e(B" . "\e2\e$(7#RP#SP#SP#S\e1\e(B")
504 ("\e$(7!4!5\e(B" . "\e2\e$(7#RP#SP#S\e1\e(B")
505 ("\e$(7!6\e(B" . "\e2\e$(7#RP#S_!I\e1\e(B")
506 ("\e$(7!4\e(B" . "\e2\e$(7#RP#S\e1\e(B")))
507
508(defvar tibetan-regexp
509 (let ((l (append tibetan-consonant-transcription-alist
510 tibetan-vowel-transcription-alist
511 tibetan-subjoined-transcription-alist))
512 temp)
513 (setq temp "\\(")
514 (setq temp (concat temp (car (car l))))
515 (setq l (cdr l))
516 (while l
517 (setq temp (concat temp "\\|" (car (car l))))
518 (setq l (cdr l)))
519 (concat temp "\\)$"))
520 "Regexp string to match a romanized Tibetan character component, i.e.,
521base and subjoined consonant, vowel and vowel modifier. The result of matching
522is to be used for indexing alists at conversion from a roman transcription to
523the corresponding Tibetan character.")
524
525(defvar tibetan-precomposed-regexp
526 (let ((l tibetan-precomposed-transcription-alist)
527 temp)
528 (setq temp "^\\(")
529 (setq temp
530 (concat temp (car (car l))))
531 (setq l (cdr l))
532 (while l
533 (setq temp
534 (concat temp "\\|" (car (car l))))
535 (setq l (cdr l)))
536 (concat temp "\\)"))
537 "Regexp string to match a romanized Tibetan complex consonant.
538The result of matching is to be used for indexing alists when the input key
539from an input method is converted to the corresponding precomposed glyph.")
540
541(defvar tibetan-precomposition-rule-regexp
542 (let ((l tibetan-precomposition-rule-alist)
543 temp)
544 (setq temp "\\(")
545 (setq temp (concat temp (car (car l))))
546 (setq l (cdr l))
547 (while l
548 (setq temp (concat temp "\\|" (car (car l))))
549 (setq l (cdr l)))
550 (concat temp "\\)"))
551 "Regexp string to match a sequence of Tibetan consonantic components, i.e.,
552one base consonant and one or more subjoined consonants.
553The result of matching is to be used for indexing alist when the component
554sequence is converted to the corresponding precomposed glyph.
555This also matches some punctuation characters which need conversion.")
556
557(defvar tibetan-decomposed nil)
558(defvar tibetan-decomposed-temp nil)
559
560;;; language/tibetan.el ends here