| 1 | ;;; tibetan.el --- support for Tibetan language -*- coding: iso-2022-7bit; -*- |
| 2 | |
| 3 | ;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. |
| 4 | ;; Licensed to the Free Software Foundation. |
| 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 | ;;; Commentary: |
| 33 | |
| 34 | ;;; Code: |
| 35 | |
| 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 |
| 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) |
| 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 |
| 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 |
| 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 ; |
| 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 ; |
| 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. |
| 66 | ;;; |
| 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 |
| 86 | 'tibetan-iso-8bit 2 ?Q |
| 87 | "8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)." |
| 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))) |
| 93 | |
| 94 | (define-coding-system-alias 'tibetan 'tibetan-iso-8bit) |
| 95 | |
| 96 | (set-language-info-alist |
| 97 | "Tibetan" '((charset tibetan tibetan-1-column) |
| 98 | (coding-system tibetan-iso-8bit) |
| 99 | (coding-priority iso-2022-7bit tibetan-iso-8bit) |
| 100 | (input-method . "tibetan-wylie") |
| 101 | (features tibet-util) |
| 102 | (documentation . t) |
| 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"))))) |
| 107 | |
| 108 | |
| 109 | ;; `\e$(7"A\e(B' is included in the pattern for subjoined consonants because we |
| 110 | ;; treat it specially in tibetan-add-components. |
| 111 | ;; modified by Tomabechi 1999/12/10 |
| 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) |
| 117 | (defconst tibetan-composable-pattern |
| 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]*" |
| 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 | |
| 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") |
| 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 | )) |
| 178 | |
| 179 | |
| 180 | (defconst tibetan-vowel-transcription-alist |
| 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") |
| 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") |
| 205 | ("," . "\e$(7"e\e(B") ; idem. |
| 206 | )) |
| 207 | |
| 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 | |
| 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") |
| 287 | ("brt" . "\e$(7"7%&\e(B") |
| 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") |
| 331 | ("sm" . "\e$(7%Y\e(B")) |
| 332 | ) |
| 333 | |
| 334 | |
| 335 | (defconst tibetan-subjoined-transcription-alist |
| 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") |
| 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 | ) |
| 382 | (lambda (x y) (> (length (car x)) (length (car y)))))) |
| 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") |
| 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 | )) |
| 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 | |
| 456 | ;;; |
| 457 | ;;; alist for Tibetan consonantic components <-> precomposed glyph conversion. |
| 458 | ;;; (includes some punctuation conversion rules) |
| 459 | ;;; |
| 460 | (defconst tibetan-precomposition-rule-alist |
| 461 | `(("\e$(7"6#B#>\e(B" . "\e$(7$G\e(B") |
| 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") |
| 541 | ("\e$(7"D#4\e(B" . "\e$(7!!\e(B") ; dummy 0x2121 added 2000/06/08 for transition l -> lng |
| 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") |
| 556 | ("\e$(7"G#9\e(B" . "\e$(7%Y\e(B"))) |
| 557 | |
| 558 | (defconst tibetan-regexp |
| 559 | (let ((l (list tibetan-precomposed-transcription-alist |
| 560 | tibetan-consonant-transcription-alist |
| 561 | tibetan-vowel-transcription-alist |
| 562 | tibetan-modifier-transcription-alist |
| 563 | tibetan-subjoined-transcription-alist)) |
| 564 | (separator "\\|") |
| 565 | tail pattern) |
| 566 | (while l |
| 567 | (setq tail (car l) l (cdr l)) |
| 568 | (while tail |
| 569 | (setq pattern (cons separator (cons (car (car tail)) pattern)) |
| 570 | tail (cdr tail)))) |
| 571 | (apply 'concat (nreverse (cdr pattern)))) |
| 572 | "Regexp matching a Tibetan transcription of a composable Tibetan sequence. |
| 573 | The result of matching is to be used for indexing alists at conversion |
| 574 | from a roman transcription to the corresponding Tibetan character.") |
| 575 | |
| 576 | (defvar tibetan-precomposed-regexp |
| 577 | (let ((l tibetan-precomposed-transcription-alist) |
| 578 | temp) |
| 579 | (setq temp "^\\(") |
| 580 | (setq temp |
| 581 | (concat temp (car (car l)))) |
| 582 | (setq l (cdr l)) |
| 583 | (while l |
| 584 | (setq temp |
| 585 | (concat temp "\\|" (car (car l)))) |
| 586 | (setq l (cdr l))) |
| 587 | (concat temp "\\)")) |
| 588 | "Regexp string to match a romanized Tibetan complex consonant. |
| 589 | The result of matching is to be used for indexing alists when the input key |
| 590 | from an input method is converted to the corresponding precomposed glyph.") |
| 591 | |
| 592 | (defvar tibetan-precomposition-rule-regexp |
| 593 | (let ((l tibetan-precomposition-rule-alist) |
| 594 | temp) |
| 595 | (setq temp "\\(") |
| 596 | (setq temp (concat temp (car (car l)))) |
| 597 | (setq l (cdr l)) |
| 598 | (while l |
| 599 | (setq temp (concat temp "\\|" (car (car l)))) |
| 600 | (setq l (cdr l))) |
| 601 | (concat temp "\\)")) |
| 602 | "Regexp string to match a sequence of Tibetan consonantic components, i.e., |
| 603 | one base consonant and one or more subjoined consonants. |
| 604 | The result of matching is to be used for indexing alist when the component |
| 605 | sequence is converted to the corresponding precomposed glyph. |
| 606 | This also matches some punctuation characters which need conversion.") |
| 607 | |
| 608 | (defvar tibetan-decomposed nil) |
| 609 | (defvar tibetan-decomposed-temp nil) |
| 610 | |
| 611 | (provide 'tibetan) |
| 612 | |
| 613 | ;;; arch-tag: 8d37c8d7-f95d-450f-9ec2-819e61fc79a7 |
| 614 | ;;; tibetan.el ends here |