(char-valid-p): Make it an alias of characterp.
[bpt/emacs.git] / lisp / language / tibetan.el
CommitLineData
e8af40ee 1;;; tibetan.el --- support for Tibetan language -*- coding: iso-2022-7bit; -*-
80d75b56 2
80d75b56 3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
fa526c4a 4;; Licensed to the Free Software Foundation.
80d75b56
KH
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
e8af40ee
PJ
32;;; Commentary:
33
80d75b56
KH
34;;; Code:
35
80d75b56
KH
36;;; Tibetan Character set.
37;;; \x2130 -- \x234a is a subset of Unicode v.2 \x0f00 - \x0fb9
38;;; with a slight modification. And there are some subjoined
39;;; consonants which are not specified in Unicode.
40;;; I hope I can add missing characters later.
41;;;
42;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
ab3f4890 43;;;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 ; obsolete glyphs (2123-5)
80d75b56
KH
44;;;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,
45;;;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
46;;;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.
47;;;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 ;
48;;;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 // ;
49;;;
50;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
51;;;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
52;;;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
53;;;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.
54;;;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)
55;;;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
ab3f4890
KH
56;;;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
57;;; ; atomically
80d75b56
KH
58;;; ; encoded.
59;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
60;;;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
61;;;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 ;
ab3f4890 62;;;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 ;
80d75b56
KH
63;;;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
64;;;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
65;;;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.
ab3f4890 66;;;
80d75b56
KH
67;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
68;;;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
69;;;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
70;;;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.
71;;;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
72;;;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
73;;;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
74;;; ; when written on a
75;;; 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ; file in Tibetan
76;;;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.
77;;;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 ;
78;;;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 ;
79;;;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 ;
80;;;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 ;
81;;;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 // ;
82;;;
83
84
85(make-coding-system
a79a3c79 86 'tibetan-iso-8bit 2 ?Q
5ef35063 87 "8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)."
a79a3c79
KH
88 '(ascii tibetan nil nil
89 nil nil)
90 '((safe-charsets ascii tibetan)
91 (post-read-conversion . tibetan-post-read-conversion)
92 (pre-write-conversion . tibetan-pre-write-conversion)))
80d75b56 93
a79a3c79 94(define-coding-system-alias 'tibetan 'tibetan-iso-8bit)
80d75b56 95
80d75b56 96(set-language-info-alist
a564ccf9 97 "Tibetan" '((charset tibetan tibetan-1-column)
a79a3c79
KH
98 (coding-system tibetan-iso-8bit)
99 (coding-priority iso-2022-7bit tibetan-iso-8bit)
a564ccf9
KH
100 (input-method . "tibetan-wylie")
101 (features tibet-util)
80d75b56 102 (documentation . t)
ec724c29
KH
103 (sample-text
104 . (tibetan-compose-string
105 (copy-sequence
106"Tibetan (\e4\e$(7"7r'"]\e0"7"]\e1\e4"2\e0"2\e1!;\e4%P\e0"G#!"Q\e1\e4"2\e0"2\e1!;\e(B) \e$(7!4!5!5!>\e4"7\e0"7\e1\e4$P\e0"!#C"Q\e1!;\e4"Er'"S\e0"E"S\e1\e4"G\e0"G\e1!;\e4"7\e0"7\e1\e4"2r'"[\e0"2"[\e1!;\e4"Dr'"[\e0"D"[\e1\e4"#\e0"#\e1\e4"G\e0"G\e1!>\e4"Ir'"]r'"_\e0"I"]"_\e1!;\e4"9\e0"9"Q\e1!;\e4"/r'"S\e0"/"S\e1!;\e4"5\e0"5"Q\e1\e4#2x!#9r'"[\e0"2#9"[\e1!;\e4"Hx!"Rx!"Ur'"c\e0"H"A"U"c\e1!>\e(B")))))
80d75b56
KH
107
108
d169c89e
KH
109;; `\e$(7"A\e(B' is included in the pattern for subjoined consonants because we
110;; treat it specially in tibetan-add-components.
ab3f4890 111;; modified by Tomabechi 1999/12/10
3e799ba1
KH
112;; modified by Tomabechi 2000/06/08
113;; To allow infinite addition of vowels/modifiers
114;; as specified in Unicode v.3
115;; \e$(7"A\e(B is removed from the class of subjoined. Tomabechi 2000/06/08
116;; (for Unicode support)
d169c89e 117(defconst tibetan-composable-pattern
3e799ba1 118 "[\e$(7"!\e(B-\e$(7"J"K\e(B][\e$(7#!\e(B-\e$(7#J#K#L#M\e(B]*[\e$(7"Q"R"S\e(B-\e$(7"^"a"b"e\e(B]*[\e$(7"_"c"d"g\e(B-\e$(7"l!I!e!g\e(B]*"
d169c89e
KH
119 "Regexp matching a composable sequence of Tibetan characters.")
120
121;; Register a function to compose Tibetan characters.
122(aset composition-function-table (make-char 'tibetan)
123 (list (cons tibetan-composable-pattern 'tibetan-composition-function)))
124
80d75b56
KH
125;;;
126;;; Definitions of conversion data.
127;;;
128
129
130;;; alists for tibetan char <-> transcription conversion
131;;; longer transcription should come first
132(defconst tibetan-consonant-transcription-alist
133 '(("tsh" . "\e$(7";\e(B")
134 ("dzh" . "\e$(7"=\e(B")
135 ("kSH" . "\e$(7"J\e(B")
136 ("kh" . "\e$(7""\e(B")
137 ("gh" . "\e$(7"$\e(B")
138 ("ng" . "\e$(7"%\e(B")
139 ("ch" . "\e$(7"'\e(B")
140 ("ny" . "\e$(7"*\e(B")
141 ("TH" . "\e$(7",\e(B")
142 ("DH" . "\e$(7".\e(B")
143 ("th" . "\e$(7"1\e(B")
144 ("dh" . "\e$(7"3\e(B")
145 ("ph" . "\e$(7"6\e(B")
146 ("bh" . "\e$(7"8\e(B")
147 ("ts" . "\e$(7":\e(B")
148 ("dz" . "\e$(7"<\e(B")
149 ("zh" . "\e$(7"?\e(B")
150 ("sh" . "\e$(7"E\e(B")
151 ("SH" . "\e$(7"F\e(B")
152 ("k" . "\e$(7"!\e(B")
153 ("g" . "\e$(7"#\e(B")
154 ("c" . "\e$(7"&\e(B")
155 ("j" . "\e$(7"(\e(B")
156 ("T" . "\e$(7"+\e(B")
157 ("D" . "\e$(7"-\e(B")
158 ("N" . "\e$(7"/\e(B")
159 ("t" . "\e$(7"0\e(B")
160 ("d" . "\e$(7"2\e(B")
161 ("n" . "\e$(7"4\e(B")
162 ("p" . "\e$(7"5\e(B")
163 ("b" . "\e$(7"7\e(B")
164 ("m" . "\e$(7"9\e(B")
165 ("w" . "\e$(7">\e(B")
166 ("z" . "\e$(7"@\e(B")
167 ("'" . "\e$(7"A\e(B")
168 ("y" . "\e$(7"B\e(B")
169 ("r" . "\e$(7"C\e(B")
170 ("l" . "\e$(7"D\e(B")
171 ("s" . "\e$(7"G\e(B")
172 ("h" . "\e$(7"H\e(B")
173 ("H" . "\e$(7"H\e(B")
ab3f4890
KH
174 ("A" . "\e$(7"I\e(B")
175 ;; Added by Tomabechi 1999/12/10
176 ("R" . "\e$(7"K\e(B") ;; fixed form RA
177 ))
80d75b56
KH
178
179
180(defconst tibetan-vowel-transcription-alist
3e799ba1
KH
181 '(
182 ;; Composite Vowels
183 ;; Added by Tomabechi 2000/06/08
184 ("frr" . "\e$(7"X\e(B")
185 ("fll" . "\e$(7"Z\e(B")
186 ("fa" . "\e$(7"R\e(B")
187 ("fi" . "\e$(7"T\e(B")
188 ("fu" . "\e$(7"V\e(B")
189 ("fr" . "\e$(7"W\e(B")
190 ("fl" . "\e$(7"Y\e(B")
191 ("fI" . "\e$(7"b\e(B")
192 ;; Normal Vowels
193 ("ai" . "\e$(7"\\e(B")
80d75b56
KH
194 ("au" . "\e$(7"^\e(B")
195 ("ee" . "\e$(7"\\e(B")
196 ("oo" . "\e$(7"^\e(B")
197 ("a" . "\e$(7"Q\e(B") ; invisible vowel sign (\x2251)
198 ("i" . "\e$(7"S\e(B")
199 ("u" . "\e$(7"U\e(B")
200 ("e" . "\e$(7"[\e(B")
201 ("o" . "\e$(7"]\e(B")
202 ("E" . "\e$(7"\\e(B")
203 ("O" . "\e$(7"^\e(B")
204 ("I" . "\e$(7"a\e(B")
80d75b56 205 ("," . "\e$(7"e\e(B") ; idem.
80d75b56
KH
206 ))
207
d169c89e
KH
208(defconst tibetan-modifier-transcription-alist
209 '(("M" . "\e$(7"_\e(B")
210 ("~" . "\e$(7"c\e(B")
211 ("`" . "\e$(7"d\e(B")
212 ("x" . "\e$(7"i\e(B")
213 ("X" . "\e$(7"j\e(B")
214 ("v" . "\e$(7"g\e(B")
215 ("V" . "\e$(7"h\e(B")
216 ("q" . "\e$(7"k\e(B")
217 ("Q" . "\e$(7"l\e(B")
218 ("_/" . "\e$(7!I\e(B")
219 ("_o" . "\e$(7!g\e(B")
220 ("_O" . "\e$(7!e\e(B")))
221
80d75b56
KH
222(defconst tibetan-precomposed-transcription-alist
223 '(("phyw" . "\e$(7$G\e(B")
224 ("tshw" . "\e$(7$)\e(B")
225 ("rtsw" . "\e$(7%.\e(B")
226 ("khw" . "\e$(7$"\e(B")
227 ("nyw" . "\e$(7$%\e(B")
228 ("tsw" . "\e$(7$(\e(B")
229 ("zhw" . "\e$(7$*\e(B")
230 ("shw" . "\e$(7$.\e(B")
231 ("khy" . "\e$(7$A\e(B")
232 ("phy" . "\e$(7$D\e(B")
233 ("khr" . "\e$(7$Q\e(B")
234 ("thr" . "\e$(7$T\e(B")
235 ("phr" . "\e$(7$W\e(B")
236 ("shr" . "\e$(7$Z\e(B")
237 ("dzr" . "\e$(7$^\e(B")
238 ("grw" . "\e$(7$_\e(B")
239 ("rng" . "\e$(7%#\e(B")
240 ("rny" . "\e$(7%%\e(B")
241 ("rts" . "\e$(7%+\e(B")
242 ("rdz" . "\e$(7%,\e(B")
243 ("rgw" . "\e$(7%-\e(B")
244 ("rky" . "\e$(7%0\e(B")
245 ("rgy" . "\e$(7%1\e(B")
246 ("rmy" . "\e$(7%2\e(B")
247 ("lng" . "\e$(7%B\e(B")
248 ("sng" . "\e$(7%R\e(B")
249 ("sny" . "\e$(7%S\e(B")
250 ("sts" . "\e$(7%Z\e(B")
251 ("sky" . "\e$(7%`\e(B")
252 ("sgy" . "\e$(7%a\e(B")
253 ("spy" . "\e$(7%b\e(B")
254 ("sby" . "\e$(7%c\e(B")
255 ("smy" . "\e$(7%d\e(B")
256 ("skr" . "\e$(7%p\e(B")
257 ("sgr" . "\e$(7%q\e(B")
258 ("snr" . "\e$(7%r\e(B")
259 ("spr" . "\e$(7%s\e(B")
260 ("sbr" . "\e$(7%t\e(B")
261 ("smr" . "\e$(7%u\e(B")
262 ("kw" . "\e$(7$!\e(B")
263 ("gw" . "\e$(7$#\e(B")
264 ("cw" . "\e$(7$$\e(B")
265 ("tw" . "\e$(7$&\e(B")
266 ("dw" . "\e$(7$'\e(B")
267 ("zw" . "\e$(7$+\e(B")
268 ("rw" . "\e$(7$,\e(B")
269 ("lw" . "\e$(7$-\e(B")
270 ("sw" . "\e$(7$/\e(B")
271 ("hw" . "\e$(7$0\e(B")
272 ("ky" . "\e$(7$@\e(B")
273 ("gy" . "\e$(7$B\e(B")
274 ("py" . "\e$(7$C\e(B")
275 ("by" . "\e$(7$E\e(B")
276 ("my" . "\e$(7$F\e(B")
277 ("kr" . "\e$(7$P\e(B")
278 ("gr" . "\e$(7$R\e(B")
279 ("tr" . "\e$(7$S\e(B")
280 ("dr" . "\e$(7$U\e(B")
281 ("pr" . "\e$(7$V\e(B")
282 ("brk" . "\e$(7"7%!\e(B")
283 ("brg" . "\e$(7"7%"\e(B")
284 ("brng" . "\e$(7"7%#\e(B")
285 ("brj" . "\e$(7"7%$\e(B")
286 ("brny" . "\e$(7"7%%\e(B")
ab3f4890 287 ("brt" . "\e$(7"7%&\e(B")
80d75b56
KH
288 ("brd" . "\e$(7"7%'\e(B")
289 ("brn" . "\e$(7"7%(\e(B")
290 ("brts" . "\e$(7"7%+\e(B")
291 ("brdz" . "\e$(7"7%,\e(B")
292 ("brl" . "\e$(7"7$d\e(B")
293 ("br" . "\e$(7$X\e(B")
294 ("mr" . "\e$(7$Y\e(B")
295 ("sr" . "\e$(7$[\e(B")
296 ("hr" . "\e$(7$\\e(B")
297 ("jr" . "\e$(7$]\e(B")
298 ("kl" . "\e$(7$`\e(B")
299 ("gl" . "\e$(7$a\e(B")
300 ("blt" . "\e$(7"7%E\e(B")
301 ("bld" . "\e$(7"7%F\e(B")
302 ("bl" . "\e$(7$b\e(B")
303 ("zl" . "\e$(7$c\e(B")
304 ("rl" . "\e$(7$d\e(B")
305 ("sl" . "\e$(7$e\e(B")
306 ("rk" . "\e$(7%!\e(B")
307 ("rg" . "\e$(7%"\e(B")
308 ("rj" . "\e$(7%$\e(B")
309 ("rt" . "\e$(7%&\e(B")
310 ("rd" . "\e$(7%'\e(B")
311 ("rn" . "\e$(7%(\e(B")
312 ("rb" . "\e$(7%)\e(B")
313 ("rm" . "\e$(7%*\e(B")
314 ("lk" . "\e$(7%@\e(B")
315 ("lg" . "\e$(7%A\e(B")
316 ("lc" . "\e$(7%C\e(B")
317 ("lj" . "\e$(7%D\e(B")
318 ("lt" . "\e$(7%E\e(B")
319 ("ld" . "\e$(7%F\e(B")
320 ("ln" . "\e$(7!!\e(B") ; dummy \x2121
321 ("lp" . "\e$(7%G\e(B")
322 ("lb" . "\e$(7%H\e(B")
323 ("lh" . "\e$(7%I\e(B")
324 ("sk" . "\e$(7%P\e(B")
325 ("sg" . "\e$(7%Q\e(B")
326 ("st" . "\e$(7%T\e(B")
327 ("sd" . "\e$(7%U\e(B")
328 ("sn" . "\e$(7%V\e(B")
329 ("sp" . "\e$(7%W\e(B")
330 ("sb" . "\e$(7%X\e(B")
ab3f4890
KH
331 ("sm" . "\e$(7%Y\e(B"))
332 )
333
80d75b56
KH
334
335(defconst tibetan-subjoined-transcription-alist
d169c89e
KH
336 (sort '(("+k" . "\e$(7#!\e(B")
337 ("+kh" . "\e$(7#"\e(B")
338 ("+g" . "\e$(7##\e(B")
339 ("+gh" . "\e$(7#$\e(B")
340 ("+ng" . "\e$(7#%\e(B")
341 ("+c" . "\e$(7#&\e(B")
342 ("+ch" . "\e$(7#'\e(B")
343 ("+j" . "\e$(7#(\e(B")
344 ("+ny" . "\e$(7#*\e(B")
345 ("+T" . "\e$(7#+\e(B")
346 ("+TH" . "\e$(7#,\e(B")
347 ("+D" . "\e$(7#-\e(B")
348 ("+DH" . "\e$(7#.\e(B")
349 ("+N" . "\e$(7#/\e(B")
350 ("+t" . "\e$(7#0\e(B")
351 ("+th" . "\e$(7#1\e(B")
352 ("+d" . "\e$(7#2\e(B")
353 ("+dh" . "\e$(7#3\e(B")
354 ("+n" . "\e$(7#4\e(B")
355 ("+p" . "\e$(7#5\e(B")
356 ("+ph" . "\e$(7#6\e(B")
357 ("+b" . "\e$(7#7\e(B")
358 ("+bh" . "\e$(7#8\e(B")
359 ("+m" . "\e$(7#9\e(B")
360 ("+ts" . "\e$(7#:\e(B")
361 ("+tsh" . "\e$(7#;\e(B")
362 ("+dz" . "\e$(7#<\e(B")
363 ("+dzh" . "\e$(7#=\e(B")
364 ("+w" . "\e$(7#>\e(B")
365 ("+zh" . "\e$(7#?\e(B")
366 ("+z" . "\e$(7#@\e(B")
367 ("+'" . "\e$(7#A\e(B")
368 ("+y" . "\e$(7#B\e(B")
369 ("+r" . "\e$(7#C\e(B")
370 ("+l" . "\e$(7#D\e(B")
371 ("+sh" . "\e$(7#E\e(B")
372 ("+SH" . "\e$(7#F\e(B")
373 ("+s" . "\e$(7#G\e(B")
374 ("+h" . "\e$(7#H\e(B")
375 ("+A" . "\e$(7#I\e(B")
376 ("+kSH" . "\e$(7#J\e(B")
ab3f4890
KH
377 ;; Added by Tomabechi 1999/12/10
378 ("+W" . "\e$(7#K\e(B") ;; fixed form subscribed WA
379 ("+Y" . "\e$(7#L\e(B") ;; fixed form subscribed YA
380 ("+R" . "\e$(7#M\e(B") ;; fixed form subscribed RA
381 )
d169c89e 382 (lambda (x y) (> (length (car x)) (length (car y))))))
80d75b56
KH
383
384;;;
385;;; alist for Tibetan base consonant <-> subjoined consonant conversion.
386;;;
387(defconst tibetan-base-to-subjoined-alist
388 '(("\e$(7"!\e(B" . "\e$(7#!\e(B")
389 ("\e$(7""\e(B" . "\e$(7#"\e(B")
390 ("\e$(7"#\e(B" . "\e$(7##\e(B")
391 ("\e$(7"$\e(B" . "\e$(7#$\e(B")
392 ("\e$(7"%\e(B" . "\e$(7#%\e(B")
393 ("\e$(7"&\e(B" . "\e$(7#&\e(B")
394 ("\e$(7"'\e(B" . "\e$(7#'\e(B")
395 ("\e$(7"(\e(B" . "\e$(7#(\e(B")
396 ("\e$(7"*\e(B" . "\e$(7#*\e(B")
397 ("\e$(7"+\e(B" . "\e$(7#+\e(B")
398 ("\e$(7",\e(B" . "\e$(7#,\e(B")
399 ("\e$(7"-\e(B" . "\e$(7#-\e(B")
400 ("\e$(7".\e(B" . "\e$(7#.\e(B")
401 ("\e$(7"/\e(B" . "\e$(7#/\e(B")
402 ("\e$(7"0\e(B" . "\e$(7#0\e(B")
403 ("\e$(7"1\e(B" . "\e$(7#1\e(B")
404 ("\e$(7"2\e(B" . "\e$(7#2\e(B")
405 ("\e$(7"3\e(B" . "\e$(7#3\e(B")
406 ("\e$(7"4\e(B" . "\e$(7#4\e(B")
407 ("\e$(7"5\e(B" . "\e$(7#5\e(B")
408 ("\e$(7"6\e(B" . "\e$(7#6\e(B")
409 ("\e$(7"7\e(B" . "\e$(7#7\e(B")
410 ("\e$(7"8\e(B" . "\e$(7#8\e(B")
411 ("\e$(7"9\e(B" . "\e$(7#9\e(B")
412 ("\e$(7":\e(B" . "\e$(7#:\e(B")
413 ("\e$(7";\e(B" . "\e$(7#;\e(B")
414 ("\e$(7"<\e(B" . "\e$(7#<\e(B")
415 ("\e$(7"=\e(B" . "\e$(7#=\e(B")
416 ("\e$(7">\e(B" . "\e$(7#>\e(B")
417 ("\e$(7"?\e(B" . "\e$(7#?\e(B")
418 ("\e$(7"@\e(B" . "\e$(7#@\e(B")
419 ("\e$(7"A\e(B" . "\e$(7#A\e(B")
420 ("\e$(7"B\e(B" . "\e$(7#B\e(B")
421 ("\e$(7"C\e(B" . "\e$(7#C\e(B")
422 ("\e$(7"D\e(B" . "\e$(7#D\e(B")
423 ("\e$(7"E\e(B" . "\e$(7#E\e(B")
424 ("\e$(7"F\e(B" . "\e$(7#F\e(B")
425 ("\e$(7"G\e(B" . "\e$(7#G\e(B")
426 ("\e$(7"H\e(B" . "\e$(7#H\e(B")
427 ("\e$(7"I\e(B" . "\e$(7#I\e(B")
ab3f4890
KH
428 ("\e$(7"J\e(B" . "\e$(7#J\e(B")
429 ;; Added by Tomabechi 1999/12/10
430 ("\e$(7"K\e(B" . "\e$(7#M\e(B") ;; Fixed form RA (224B->234D)
431 ))
3e799ba1
KH
432
433;;; alist for Tibetan composite vowels (long i, vocalic r, etc.)
434;;; New varialble. created by Tomabechi 2000/06/08
435(defconst tibetan-composite-vowel-alist
436 '(;; LONG A
437 ;; ("\e$(7"R\e(B" . ((bc . tc) ?\e$(7"R\e(B))
438 ;; LONG I
439 ("\e$(7"T\e(B" . (?\e$(7"R\e(B (tc . bc) ?\e$(7"S\e(B))
440 ;; LONG U
441 ("\e$(7"V\e(B" . (?\e$(7"R\e(B (bc . tc) ?\e$(7"U\e(B))
442 ;; VOCALIC R
443 ("\e$(7"W\e(B" . (?\e$(7#C\e(B (tc . bc) ?\e$(7"a\e(B))
444 ;; LONG VOCALIC R
445 ("\e$(7"X\e(B" . (?\e$(7#C\e(B (bc . tc) ?\e$(7"R\e(B (tc . bc) ?\e$(7"a\e(B))
446 ;; VOCALIC L
447 ("\e$(7"Y\e(B" . (?\e$(7#D\e(B (tc . bc) ?\e$(7"a\e(B))
448 ;;\e$(7!;\e(BLONG VOCALIC L
449 ("\e$(7"Z\e(B" . (?\e$(7#D\e(B (bc . tc) ?\e$(7"R\e(B (tc . bc) ?\e$(7"a\e(B))
450 ;; LONG REVERSE I
451 ("\e$(7"b\e(B" . (?\e$(7"R\e(B (tc . bc) ?\e$(7"a\e(B))
452 ))
453
454
455
80d75b56
KH
456;;;
457;;; alist for Tibetan consonantic components <-> precomposed glyph conversion.
458;;; (includes some punctuation conversion rules)
459;;;
460(defconst tibetan-precomposition-rule-alist
d169c89e 461 `(("\e$(7"6#B#>\e(B" . "\e$(7$G\e(B")
80d75b56
KH
462 ("\e$(7"##C#>\e(B" . "\e$(7$_\e(B")
463 ("\e$(7";#>\e(B" . "\e$(7$)\e(B")
464 ("\e$(7"C#:#>\e(B" . "\e$(7%.\e(B")
465 ("\e$(7"C###>\e(B" . "\e$(7%-\e(B")
466 ("\e$(7"C#!#B\e(B" . "\e$(7%0\e(B")
467 ("\e$(7"C###B\e(B" . "\e$(7%1\e(B")
468 ("\e$(7"C#9#B\e(B" . "\e$(7%2\e(B")
469 ("\e$(7"G#!#B\e(B" . "\e$(7%`\e(B")
470 ("\e$(7"G###B\e(B" . "\e$(7%a\e(B")
471 ("\e$(7"G#5#B\e(B" . "\e$(7%b\e(B")
472 ("\e$(7"G#7#B\e(B" . "\e$(7%c\e(B")
473 ("\e$(7"G#9#B\e(B" . "\e$(7%d\e(B")
474 ("\e$(7"G#!#C\e(B" . "\e$(7%p\e(B")
475 ("\e$(7"G###C\e(B" . "\e$(7%q\e(B")
476 ("\e$(7"G#4#C\e(B" . "\e$(7%r\e(B")
477 ("\e$(7"G#5#C\e(B" . "\e$(7%s\e(B")
478 ("\e$(7"G#7#C\e(B" . "\e$(7%t\e(B")
479 ("\e$(7"G#9#C\e(B" . "\e$(7%u\e(B")
480 ("\e$(7""#>\e(B" . "\e$(7$"\e(B")
481 ("\e$(7"*#>\e(B" . "\e$(7$%\e(B")
482 ("\e$(7":#>\e(B" . "\e$(7$(\e(B")
483 ("\e$(7"?#>\e(B" . "\e$(7$*\e(B")
484 ("\e$(7"E#>\e(B" . "\e$(7$.\e(B")
485 ("\e$(7""#B\e(B" . "\e$(7$A\e(B")
486 ("\e$(7"6#B\e(B" . "\e$(7$D\e(B")
487 ("\e$(7""#C\e(B" . "\e$(7$Q\e(B")
488 ("\e$(7"1#C\e(B" . "\e$(7$T\e(B")
489 ("\e$(7"6#C\e(B" . "\e$(7$W\e(B")
490 ("\e$(7"E#C\e(B" . "\e$(7$Z\e(B")
491 ("\e$(7"<#C\e(B" . "\e$(7$^\e(B")
492 ("\e$(7"C#%\e(B" . "\e$(7%#\e(B")
493 ("\e$(7"C#*\e(B" . "\e$(7%%\e(B")
494 ("\e$(7"C#:\e(B" . "\e$(7%+\e(B")
495 ("\e$(7"C#<\e(B" . "\e$(7%,\e(B")
496 ("\e$(7"D#%\e(B" . "\e$(7%B\e(B")
497 ("\e$(7"G#%\e(B" . "\e$(7%R\e(B")
498 ("\e$(7"G#*\e(B" . "\e$(7%S\e(B")
499 ("\e$(7"G#:\e(B" . "\e$(7%Z\e(B")
500 ("\e$(7"!#>\e(B" . "\e$(7$!\e(B")
501 ("\e$(7"##>\e(B" . "\e$(7$#\e(B")
502 ("\e$(7"&#>\e(B" . "\e$(7$$\e(B")
503 ("\e$(7"0#>\e(B" . "\e$(7$&\e(B")
504 ("\e$(7"2#>\e(B" . "\e$(7$'\e(B")
505 ("\e$(7"@#>\e(B" . "\e$(7$+\e(B")
506 ("\e$(7"C#>\e(B" . "\e$(7$,\e(B")
507 ("\e$(7"D#>\e(B" . "\e$(7$-\e(B")
508 ("\e$(7"G#>\e(B" . "\e$(7$/\e(B")
509 ("\e$(7"H#>\e(B" . "\e$(7$0\e(B")
510 ("\e$(7"!#B\e(B" . "\e$(7$@\e(B")
511 ("\e$(7"##B\e(B" . "\e$(7$B\e(B")
512 ("\e$(7"5#B\e(B" . "\e$(7$C\e(B")
513 ("\e$(7"7#B\e(B" . "\e$(7$E\e(B")
514 ("\e$(7"9#B\e(B" . "\e$(7$F\e(B")
515 ("\e$(7"!#C\e(B" . "\e$(7$P\e(B")
516 ("\e$(7"##C\e(B" . "\e$(7$R\e(B")
517 ("\e$(7"0#C\e(B" . "\e$(7$S\e(B")
518 ("\e$(7"2#C\e(B" . "\e$(7$U\e(B")
519 ("\e$(7"5#C\e(B" . "\e$(7$V\e(B")
520 ("\e$(7"7#C\e(B" . "\e$(7$X\e(B")
521 ("\e$(7"9#C\e(B" . "\e$(7$Y\e(B")
522 ("\e$(7"G#C\e(B" . "\e$(7$[\e(B")
523 ("\e$(7"H#C\e(B" . "\e$(7$\\e(B")
524 ("\e$(7"(#C\e(B" . "\e$(7$]\e(B")
525 ("\e$(7"!#D\e(B" . "\e$(7$`\e(B")
526 ("\e$(7"##D\e(B" . "\e$(7$a\e(B")
527 ("\e$(7"7#D\e(B" . "\e$(7$b\e(B")
528 ("\e$(7"@#D\e(B" . "\e$(7$c\e(B")
529 ("\e$(7"C#D\e(B" . "\e$(7$d\e(B")
530 ("\e$(7"G#D\e(B" . "\e$(7$e\e(B")
531 ("\e$(7"C#!\e(B" . "\e$(7%!\e(B")
532 ("\e$(7"C##\e(B" . "\e$(7%"\e(B")
533 ("\e$(7"C#(\e(B" . "\e$(7%$\e(B")
534 ("\e$(7"C#0\e(B" . "\e$(7%&\e(B")
535 ("\e$(7"C#2\e(B" . "\e$(7%'\e(B")
536 ("\e$(7"C#4\e(B" . "\e$(7%(\e(B")
537 ("\e$(7"C#7\e(B" . "\e$(7%)\e(B")
538 ("\e$(7"C#9\e(B" . "\e$(7%*\e(B")
539 ("\e$(7"D#!\e(B" . "\e$(7%@\e(B")
540 ("\e$(7"D##\e(B" . "\e$(7%A\e(B")
3e799ba1 541 ("\e$(7"D#4\e(B" . "\e$(7!!\e(B") ; dummy 0x2121 added 2000/06/08 for transition l -> lng
80d75b56
KH
542 ("\e$(7"D#&\e(B" . "\e$(7%C\e(B")
543 ("\e$(7"D#(\e(B" . "\e$(7%D\e(B")
544 ("\e$(7"D#0\e(B" . "\e$(7%E\e(B")
545 ("\e$(7"D#2\e(B" . "\e$(7%F\e(B")
546 ("\e$(7"D#5\e(B" . "\e$(7%G\e(B")
547 ("\e$(7"D#7\e(B" . "\e$(7%H\e(B")
548 ("\e$(7"D#H\e(B" . "\e$(7%I\e(B")
549 ("\e$(7"G#!\e(B" . "\e$(7%P\e(B")
550 ("\e$(7"G##\e(B" . "\e$(7%Q\e(B")
551 ("\e$(7"G#0\e(B" . "\e$(7%T\e(B")
552 ("\e$(7"G#2\e(B" . "\e$(7%U\e(B")
553 ("\e$(7"G#4\e(B" . "\e$(7%V\e(B")
554 ("\e$(7"G#5\e(B" . "\e$(7%W\e(B")
555 ("\e$(7"G#7\e(B" . "\e$(7%X\e(B")
d169c89e
KH
556 ("\e$(7"G#9\e(B" . "\e$(7%Y\e(B")))
557
558(defconst tibetan-obsolete-glyphs
559 `(("\e$(7!=\e(B" . "\e$(8!=\e(B") ; 2 col <-> 1 col
80d75b56
KH
560 ("\e$(7!?\e(B" . "\e$(8!?\e(B")
561 ("\e$(7!@\e(B" . "\e$(8!@\e(B")
562 ("\e$(7!A\e(B" . "\e$(8!A\e(B")
563 ("\e$(7"`\e(B" . "\e$(8"`\e(B")
564 ("\e$(7!;\e(B" . "\e$(8!;\e(B")
565 ("\e$(7!D\e(B" . "\e$(8!D\e(B")
d169c89e
KH
566 ;; Yes these are dirty. But ...
567 ("\e$(7!>\e(B \e$(7!>\e(B" . ,(compose-string "\e$(7!>\e(B \e$(7!>\e(B" 0 3 [?\e$(7!>\e(B (Br . Bl) ? (Br . Bl) ?\e$(7!>\e(B]))
568 ("\e$(7!4!5!5\e(B" . ,(compose-string
569 "\e$(7#R#S#S#S\e(B" 0 4
570 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B (Br . Bl) ?\e$(7#S\e(B (Br . Bl) ?\e$(7#S\e(B]))
571 ("\e$(7!4!5\e(B" . ,(compose-string "\e$(7#R#S#S\e(B" 0 3 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B (Br . Bl) ?\e$(7#S\e(B]))
572 ("\e$(7!6\e(B" . ,(compose-string "\e$(7#R#S!I\e(B" 0 3 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B (br . tr) ?\e$(7!I\e(B]))
573 ("\e$(7!4\e(B" . ,(compose-string "\e$(7#R#S\e(B" 0 2 [?\e$(7#R\e(B (Br . Bl) ?\e$(7#S\e(B]))))
80d75b56 574
d169c89e
KH
575(defconst tibetan-regexp
576 (let ((l (list tibetan-precomposed-transcription-alist
577 tibetan-consonant-transcription-alist
578 tibetan-vowel-transcription-alist
579 tibetan-modifier-transcription-alist
580 tibetan-subjoined-transcription-alist))
581 (separator "\\|")
582 tail pattern)
80d75b56 583 (while l
d169c89e
KH
584 (setq tail (car l) l (cdr l))
585 (while tail
586 (setq pattern (cons separator (cons (car (car tail)) pattern))
587 tail (cdr tail))))
588 (apply 'concat (nreverse (cdr pattern))))
589 "Regexp matching a Tibetan transcription of a composable Tibetan sequence.
590The result of matching is to be used for indexing alists at conversion
591from a roman transcription to the corresponding Tibetan character.")
80d75b56
KH
592
593(defvar tibetan-precomposed-regexp
594 (let ((l tibetan-precomposed-transcription-alist)
595 temp)
596 (setq temp "^\\(")
597 (setq temp
598 (concat temp (car (car l))))
599 (setq l (cdr l))
600 (while l
601 (setq temp
602 (concat temp "\\|" (car (car l))))
603 (setq l (cdr l)))
604 (concat temp "\\)"))
605 "Regexp string to match a romanized Tibetan complex consonant.
606The result of matching is to be used for indexing alists when the input key
607from an input method is converted to the corresponding precomposed glyph.")
608
609(defvar tibetan-precomposition-rule-regexp
610 (let ((l tibetan-precomposition-rule-alist)
611 temp)
612 (setq temp "\\(")
613 (setq temp (concat temp (car (car l))))
614 (setq l (cdr l))
615 (while l
616 (setq temp (concat temp "\\|" (car (car l))))
617 (setq l (cdr l)))
618 (concat temp "\\)"))
619 "Regexp string to match a sequence of Tibetan consonantic components, i.e.,
620one base consonant and one or more subjoined consonants.
621The result of matching is to be used for indexing alist when the component
622sequence is converted to the corresponding precomposed glyph.
623This also matches some punctuation characters which need conversion.")
624
625(defvar tibetan-decomposed nil)
626(defvar tibetan-decomposed-temp nil)
627
41da80b1
DL
628(provide 'tibetan)
629
e8af40ee 630;;; tibetan.el ends here