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