,@(mapcar (lambda (syl) `(its-define-zhuyin ,@syl))
list)))
- (defmacro its-define-zhuyin (shengmu yunmu1 &optional yunmu2 qing-only)
+ (defmacro its-define-zhuyin (shengmu yunmu1 &optional yunmu2 qingsheng)
`(let ((s (list ,@shengmu))
(yi (concat (car ,yunmu1) (car ,yunmu2)))
(yo (concat (nth 1 ,yunmu1) (nth 1 ,yunmu2)))
- (tone (if ,qing-only "\e(0A\e(B" "\e(0@\e(B"))
+ (tone (if ,qingsheng "\e(0A\e(B" "\e(0@\e(B"))
in out out1 state)
(while s
(setq in (concat (car (car s)) yi)
out (concat (nth 1 (car s)) yo)
out1 (concat out tone)
- state (its-goto-state in nil t))
- (if (and ,qing-only (its-get-kst/t state))
- (its-set-output state out)
- (its-set-output state out1))
- (its-make-next-state state -1 in out1)
- (its-make-next-state state ? (concat in " ") out1)
- (its-define-otherwise state (its-make-otherwise
- out1
- its-otherwise-back-one))
- ,(if qing-only
- nil
- '(progn
- (its-make-next-state state ?1 (concat in 1) (concat out "\e(0A\e(B"))
- (its-make-next-state state ?2 (concat in 2) (concat out "\e(0B\e(B"))
- (its-make-next-state state ?3 (concat in 3) (concat out "\e(0C\e(B"))
- (its-make-next-state state ?4 (concat in 4) (concat out "\e(0D\e(B"))))
- (setq s (cdr s)))))
+ state (its-defrule in out1)
+ s (cdr s))
+ (its-defrule (concat in " ") out1)
+ ,@(if (null qingsheng)
+ '((its-make-next-state state ?1 (concat out "\e(0A\e(B"))
+ (its-make-next-state state ?2 (concat out "\e(0B\e(B"))
+ (its-make-next-state state ?3 (concat out "\e(0C\e(B"))
+ (its-make-next-state state ?4 (concat out "\e(0D\e(B")))))))
(defmacro its-define-zhuyin-table ()
'(let ((- '("" ""))
(ER '("^" "\e(0f\e(B")) (OU '("y" "\e(0a\e(B"))
(I '("e" "\e(0g\e(B")) (U '("x" "\e(0h\e(B")) (V '("u" "\e(0i\e(B")))
- (mapcar (lambda (s) (its-defrule (car s) (nth 1 s)))
- (list B P M F D T N L G K H J Q X))
+ (its-define-zhuyin (- H) M nil t)
+ (its-define-zhuyin (- H) '("@" "@") nil t)
+ (its-define-zhuyin (- ) N nil t)
(its-do-zhuyin-table
- (((- B P M F D T N L G K H ZH CH SH Z C S ) A)
+ ((( ZH CH SH R Z C S ) -)
+ ((- B P M F D T N L G K H ZH CH SH Z C S ) A)
((- B P M F L ) O)
((- M D T N L G K H ZH CH SH R Z C S ) e)
((- B P M D T N L G K H ZH CH SH Z C S ) AI)
((- B P M F D T N L G K H ZH CH SH R Z C S ) ENG)
((- ) ER)
((- P M F D T N L G K H ZH CH SH R Z C S ) OU)
- (( ZH CH SH R Z C S ) -)
((- B P M D T N L J Q X ) I)
((- D L J Q X ) I A)
((- ) I O)
((- N L J Q X ) V E)
((- J Q X ) V AN)
((- J Q X ) V EN)
- ((- J Q X ) V ENG)
+ ((- J Q X ) V ENG)))
- ((- H) M nil t)
- ((- H) '("@" "@") nil t)
- ((- ) N nil t)))
+ (mapcar (lambda (s) (its-defoutput (car s) (nth 1 s)))
+ (list B P M F D T N L G K H J Q X))
- (its-defrule (concat (car N) 2) (concat (nth 1 N) "\e(0B\e(B"))
- (its-defrule (concat (car N) 3) (concat (nth 1 N) "\e(0C\e(B"))
- (its-defrule (concat (car N) 4) (concat (nth 1 N) "\e(0D\e(B")))))
+ (its-defrule (concat (car N) 2) (concat (nth 1 N) "\e(0B\e(B"))
+ (its-defrule (concat (car N) 3) (concat (nth 1 N) "\e(0C\e(B"))
+ (its-defrule (concat (car N) 4) (concat (nth 1 N) "\e(0D\e(B")))))
(define-its-state-machine its-zhuyin-cn-map
- "zhuyin-cn" "\e$AW"\e(BG" 'Chinese-GB
+ "zhuyin-cn" "\e$AW"\e(BG" Chinese-GB
"Map for Zhuyin input. (Chinese-GB)"
(defconst its-quanjiao-escape "Z")
(its-defrule "?" "\e$A!"\e(B"))
(define-its-state-machine its-zhuyin-tw-map
- "zhuyin-tw" "\e$(GNC\e(BC" 'Chinese-CNS
+ "zhuyin-tw" "\e$(GNC\e(BC" Chinese-CNS
"Map for Zhuyin input."
(defconst its-quanjiao-escape "Z")
(its-defrule "(" "\e$A#(\e(B") (its-defrule ")" "\e$A#)\e(B")
(its-defrule "~" "\e$A!+\e(B")
(its-defrule "=" "\e$A#=\e(B") (its-defrule "`" "\e$A#`\e(B")
- (its-defrule "\\" "\e$(G"`\e(B") (its-defrule "|" "\e$A#|\e(B")
+ (its-defrule "\\" "\e$A#\\e(B") (its-defrule "|" "\e$A#|\e(B")
(its-defrule "_" "\e$A#_\e(B") (its-defrule "+" "\e$A#+\e(B")
- (its-defrule "{" "\e$(G!B\e(B") (its-defrule "}" "\e$(G!C\e(B")
+ (its-defrule "{" "\e$A#{\e(B") (its-defrule "}" "\e$A#}\e(B")
(its-defrule "\"" "\e$A#"\e(B") (its-defrule "'" "\e$A#'\e(B"))
(progn
(its-defrule "#" "#") (its-defrule "$" "$")
(its-defrule "(" "\e$(G!>\e(B") (its-defrule ")" "\e$(G!?\e(B")
(its-defrule "~" "\e$(G"D\e(B")
(its-defrule "=" "\e$(G"8\e(B") (its-defrule "`" "\e$(G!j\e(B")
- (its-defrule "\\" "\e$(G"b\e(B") (its-defrule "|" "\e$(G"^\e(B")
+ (its-defrule "\\" "\e$(G"`\e(B") (its-defrule "|" "\e$(G"^\e(B")
(its-defrule "_" "\e$(G"%\e(B") (its-defrule "+" "\e$(G"0\e(B")
- (its-defrule "{" "\e$A#{\e(B") (its-defrule "}" "\e$(G!a\e(B")
+ (its-defrule "{" "\e$(G!B\e(B") (its-defrule "}" "\e$(G!C\e(B")
(its-defrule "\"" "\e$(G!i\e(B") (its-defrule "'" "\e$(G!k\e(B"))
(progn
(its-defrule "#" "#") (its-defrule "$" "$")