summaryrefslogtreecommitdiff
path: root/lisp/language/tibetan.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/language/tibetan.el')
-rw-r--r--lisp/language/tibetan.el49
1 files changed, 18 insertions, 31 deletions
diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el
index 4f18dbb9d38..28f8c229d3d 100644
--- a/lisp/language/tibetan.el
+++ b/lisp/language/tibetan.el
@@ -126,6 +126,7 @@
;;; Definitions of conversion data.
;;;
+(eval-and-compile
;;; alists for tibetan char <-> transcription conversion
;;; longer transcription should come first
@@ -333,6 +334,7 @@
(defconst tibetan-subjoined-transcription-alist
+ (eval-when-compile
(sort
(copy-sequence
'(("+k" . "ྐ")
@@ -381,7 +383,7 @@
("+Y" . "ྻ") ;; fixed form subscribed YA
("+R" . "ྼ") ;; fixed form subscribed RA
))
- (lambda (x y) (> (length (car x)) (length (car y))))))
+ (lambda (x y) (> (length (car x)) (length (car y)))))))
;;;
;;; alist for Tibetan base consonant <-> subjoined consonant conversion.
@@ -557,49 +559,34 @@
("སྦ" . "")
("སྨ" . "")))
+) ; eval-and-compile
+
(defconst tibetan-regexp
- (let (pattern)
- (dolist (alist (list tibetan-precomposed-transcription-alist
- tibetan-consonant-transcription-alist
- tibetan-vowel-transcription-alist
- tibetan-modifier-transcription-alist
- tibetan-subjoined-transcription-alist)
- (apply #'concat (nreverse (cdr pattern))))
- (dolist (key-val alist)
- (setq pattern (cons "\\|" (cons (regexp-quote (car key-val))
- pattern))))))
+ (eval-when-compile
+ (regexp-opt (mapcar #'car
+ (append tibetan-precomposed-transcription-alist
+ tibetan-consonant-transcription-alist
+ tibetan-vowel-transcription-alist
+ tibetan-modifier-transcription-alist
+ tibetan-subjoined-transcription-alist))))
"Regexp matching a Tibetan transcription of a composable Tibetan sequence.
The result of matching is to be used for indexing alists at conversion
from a roman transcription to the corresponding Tibetan character.")
(defvar tibetan-precomposed-regexp
(purecopy
- (let ((l tibetan-precomposed-transcription-alist)
- temp)
- (setq temp "^\\(")
- (setq temp
- (concat temp (car (car l))))
- (setq l (cdr l))
- (while l
- (setq temp
- (concat temp "\\|" (car (car l))))
- (setq l (cdr l)))
- (concat temp "\\)")))
+ (eval-when-compile
+ (concat "^"
+ (regexp-opt (mapcar #'car tibetan-precomposed-transcription-alist)
+ t))))
"Regexp string to match a romanized Tibetan complex consonant.
The result of matching is to be used for indexing alists when the input key
from an input method is converted to the corresponding precomposed glyph.")
(defvar tibetan-precomposition-rule-regexp
(purecopy
- (let ((l tibetan-precomposition-rule-alist)
- temp)
- (setq temp "\\(")
- (setq temp (concat temp (car (car l))))
- (setq l (cdr l))
- (while l
- (setq temp (concat temp "\\|" (car (car l))))
- (setq l (cdr l)))
- (concat temp "\\)")))
+ (eval-when-compile
+ (regexp-opt (mapcar #'car tibetan-precomposition-rule-alist) t)))
"Regexp string to match a sequence of Tibetan consonantic components.
That is, one base consonant and one or more subjoined consonants.
The result of matching is to be used for indexing alist when the component