Function: quail-make-sisheng-rules
quail-make-sisheng-rules is a byte-compiled function defined in
sisheng.el.gz.
Signature
(quail-make-sisheng-rules SYLLABLE)
Source Code
;; Defined in /usr/src/emacs/lisp/leim/quail/sisheng.el.gz
;; This function converts e.g.
;;
;; "zhuō"
;;
;; into
;;
;; (("zhuo4" ["zhuò"])
;; ("zhuo3" ["zhuǒ"])
;; ("zhuo2" ["zhuó"])
;; ("zhuo1" ["zhuō"]))
;;
(defun quail-make-sisheng-rules (syllable)
(let ((case-fold-search t)
vowel-match
vowel-list
input-vowel
base-key
key
value
key-value-list
(i 1))
(string-match sisheng-regexp syllable)
(setq vowel-match (downcase (match-string 0 syllable)))
(setq vowel-list
(cdr (assoc-string vowel-match sisheng-vowel-table)))
(setq input-vowel (car vowel-list))
(setq base-key (replace-match input-vowel nil nil syllable))
(while (<= i 4)
(setq key (concat base-key (number-to-string i)))
(setq value (vector (replace-match (nth i vowel-list) nil nil syllable)))
(push (list key value) key-value-list)
(setq i (1+ i)))
key-value-list))