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))