;; vi-telex.mim -- Input method for Vietnames with TELEX key sequence
-;; Copyright (C) 2003, 2004, 2005
+;; Copyright (C) 2003, 2004, 2005, 2006
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H15PRO112
(title "ắ")
(map
- (map1
- ("a" "a") ("e" "e") ("i" "i") ("o" "o") ("u" "u") ("y" "y") ("d" "d")
- ("A" "A") ("E" "E") ("I" "I") ("O" "O") ("U" "U") ("Y" "Y") ("D" "D")
- ("\\" "\\"))
- (map2
- ("af" ?à)
- ("AF" ?À)
- ("Af" ?À)
- ("as" ?á)
- ("AS" ?Á)
- ("As" ?Á)
- ("aa" ?â)
- ("AA" ?Â)
- ("Aa" ?Â)
- ("ax" ?ã)
- ("AX" ?Ã)
- ("Ax" ?Ã)
- ("ef" ?è)
- ("EF" ?È)
- ("Ef" ?È)
- ("es" ?é)
- ("ES" ?É)
- ("Es" ?É)
- ("ee" ?ê)
- ("EE" ?Ê)
- ("Ee" ?Ê)
- ("if" ?ì)
- ("IF" ?Ì)
- ("If" ?Ì)
- ("is" ?í)
- ("IS" ?Í)
- ("Is" ?Í)
- ("of" ?ò)
- ("OF" ?Ò)
- ("Of" ?Ò)
- ("os" ?ó)
- ("OS" ?Ó)
- ("Os" ?Ó)
- ("oo" ?ô)
- ("OO" ?Ô)
- ("Oo" ?Ô)
- ("ox" ?õ)
- ("OX" ?Õ)
- ("Ox" ?Õ)
- ("uf" ?ù)
- ("UF" ?Ù)
- ("Uf" ?Ù)
- ("us" ?ú)
- ("US" ?Ú)
- ("Us" ?Ú)
- ("ys" ?ý)
- ("YS" ?Ý)
- ("Ys" ?Ý)
- ("aw" ?ă)
- ("AW" ?Ă)
- ("Aw" ?Ă)
- ("ix" ?ĩ)
- ("IX" ?Ĩ)
- ("Ix" ?Ĩ)
- ("ux" ?ũ)
- ("UX" ?Ũ)
- ("Ux" ?Ũ)
- ("ow" ?ơ)
- ("OW" ?Ơ)
- ("Ow" ?Ơ)
- ("uw" ?ư)
- ("UW" ?Ư)
- ("Uw" ?Ư)
- ("aj" ?ạ)
- ("AJ" ?Ạ)
- ("Aj" ?Ạ)
- ("ar" ?ả)
- ("AR" ?Ả)
- ("Ar" ?Ả)
- ("ej" ?ẹ)
- ("EJ" ?Ẹ)
- ("Ej" ?Ẹ)
- ("er" ?ẻ)
- ("ER" ?Ẻ)
- ("Er" ?Ẻ)
- ("ex" ?ẽ)
- ("EX" ?Ẽ)
- ("Ex" ?Ẽ)
- ("ir" ?ỉ)
- ("IR" ?Ỉ)
- ("Ir" ?Ỉ)
- ("ij" ?ị)
- ("IJ" ?Ị)
- ("Ij" ?Ị)
- ("oj" ?ọ)
- ("OJ" ?Ọ)
- ("Oj" ?Ọ)
- ("or" ?ỏ)
- ("OR" ?Ỏ)
- ("Or" ?Ỏ)
- ("uj" ?ụ)
- ("UJ" ?Ụ)
- ("Uj" ?Ụ)
- ("ur" ?ủ)
- ("UR" ?Ủ)
- ("Ur" ?Ủ)
- ("yf" ?ỳ)
- ("YF" ?Ỳ)
- ("Yf" ?Ỳ)
- ("yj" ?ỵ)
- ("YJ" ?Ỵ)
- ("Yj" ?Ỵ)
- ("yr" ?ỷ)
- ("YR" ?Ỷ)
- ("Yr" ?Ỷ)
- ("yx" ?ỹ)
- ("YX" ?Ỹ)
- ("Yx" ?Ỹ)
+ (vowel
+ ;; sfrxj
+ ("a" ("aáàảãạ"))
+ ("aa" ("âấầẩẫậ"))
+ ("aw" ("ăắằẳẵặ"))
+ ("e" ("eéèẻẽẹ"))
+ ("ee" ("êếềểễệ"))
+ ("i" ("iíìỉĩị"))
+ ("o" ("oóòỏõọ"))
+ ("oo" ("ôốồổỗộ"))
+ ("ow" ("ơớờởỡợ"))
+ ("u" ("uúùủũụ"))
+ ("uw" ("ưứừửữự"))
+ ("y" ("yýỳỷỹỵ"))
+ ("A" ("AÁÀẢÃẠ"))
+ ("AA" ("ÂẤẦẨẪẬ")) ("Aa" ("ÂẤẦẨẪẬ"))
+ ("AW" ("ĂẮẰẲẴẶ")) ("Aw" ("ĂẮẰẲẴẶ"))
+ ("E" ("EÉÈẺẼẸ"))
+ ("EE" ("ÊẾỀỂỄỆ")) ("Ee" ("ÊẾỀỂỄỆ"))
+ ("I" ("IÍÌỈĨỊ"))
+ ("O" ("OÓÒỎÕỌ"))
+ ("OO" ("ÔỐỒỔỖỘ")) ("Oo" ("ÔỐỒỔỖỘ"))
+ ("OW" ("ƠỚỜỞỠỢ")) ("Ow" ("ƠỚỜỞỠỢ"))
+ ("U" ("UÚÙỦŨỤ"))
+ ("UW" ("ƯỨỪỬỮỰ")) ("Uw" ("ƯỨỪỬỮỰ"))
+ ("Y" ("YÝỲỶỸỴ")))
+
+ (diacritical
+ ("s" (cond (MARKED (move 1) (select 1) (move @>)) (1 ?s)))
+ ("f" (cond (MARKED (move 1) (select 2) (move @>)) (1 ?f)))
+ ("r" (cond (MARKED (move 1) (select 3) (move @>)) (1 ?r)))
+ ("x" (cond (MARKED (move 1) (select 4) (move @>)) (1 ?x)))
+ ("j" (cond (MARKED (move 1) (select 5) (move @>)) (1 ?j))))
+
+ (double
+ ("ss" (cond (MARKED (move 1) (select 0) (move @>))) ?s)
+ ("ff" (cond (MARKED (move 1) (select 0) (move @>))) ?f)
+ ("rr" (cond (MARKED (move 1) (select 0) (move @>))) ?r)
+ ("xx" (cond (MARKED (move 1) (select 0) (move @>))) ?x)
+ ("jj" (cond (MARKED (move 1) (select 0) (move @>))) ?j))
+
+ (consonant
+ ("b" ?b) ("c" ?c) ("d" ?d) ("g" ?g) ("h" ?h) ("k" ?k) ("l" ?l) ("m" ?m)
+ ("n" ?n) ("p" ?p) ("q" ?q) ("t" ?t) ("v" ?v) ("z" ?z))
+
+ (d-bar
("dd" ?đ)
- ("DD" ?Đ)
- ("Dd" ?Đ))
- (map3
- ("aas" ?ấ)
- ("AAS" ?Ấ)
- ("Aas" ?Ấ)
- ("aaf" ?ầ)
- ("AAF" ?Ầ)
- ("Aaf" ?Ầ)
- ("aar" ?ẩ)
- ("AAR" ?Ẩ)
- ("Aar" ?Ẩ)
- ("aax" ?ẫ)
- ("AAX" ?Ẫ)
- ("Aax" ?Ẫ)
- ("aaj" ?ậ)
- ("AAJ" ?Ậ)
- ("Aaj" ?Ậ)
- ("aws" ?ắ)
- ("AWS" ?Ắ)
- ("Aws" ?Ắ)
- ("awf" ?ằ)
- ("AWF" ?Ằ)
- ("Awf" ?Ằ)
- ("awr" ?ẳ)
- ("AWR" ?Ẳ)
- ("Awr" ?Ẳ)
- ("awx" ?ẵ)
- ("AWX" ?Ẵ)
- ("Awx" ?Ẵ)
- ("awj" ?ặ)
- ("AWJ" ?Ặ)
- ("Awj" ?Ặ)
- ("ees" ?ế)
- ("EES" ?Ế)
- ("Ees" ?Ế)
- ("eef" ?ề)
- ("EEF" ?Ề)
- ("Eef" ?Ề)
- ("eer" ?ể)
- ("EER" ?Ể)
- ("Eer" ?Ể)
- ("eex" ?ễ)
- ("EEX" ?Ễ)
- ("Eex" ?Ễ)
- ("eej" ?ệ)
- ("EEJ" ?Ệ)
- ("Eej" ?Ệ)
- ("oos" ?ố)
- ("OOS" ?Ố)
- ("Oos" ?Ố)
- ("oof" ?ồ)
- ("OOF" ?Ồ)
- ("Oof" ?Ồ)
- ("oor" ?ổ)
- ("OOR" ?Ổ)
- ("Oor" ?Ổ)
- ("oox" ?ỗ)
- ("OOX" ?Ỗ)
- ("Oox" ?Ỗ)
- ("ooj" ?ộ)
- ("OOJ" ?Ộ)
- ("Ooj" ?Ộ)
- ("ows" ?ớ)
- ("OWS" ?Ớ)
- ("Ows" ?Ớ)
- ("owf" ?ờ)
- ("OWF" ?Ờ)
- ("Owf" ?Ờ)
- ("owr" ?ở)
- ("OWR" ?Ở)
- ("Owr" ?Ở)
- ("owx" ?ỡ)
- ("OWX" ?Ỡ)
- ("Owx" ?Ỡ)
- ("owj" ?ợ)
- ("OWJ" ?Ợ)
- ("Owj" ?Ợ)
- ("uws" ?ứ)
- ("UWS" ?Ứ)
- ("Uws" ?Ứ)
- ("uwf" ?ừ)
- ("UWF" ?Ừ)
- ("Uwf" ?Ừ)
- ("uwr" ?ử)
- ("UWR" ?Ử)
- ("Uwr" ?Ử)
- ("uwx" ?ữ)
- ("UWX" ?Ữ)
- ("Uwx" ?Ữ)
- ("uwj" ?ự)
- ("UWJ" ?Ự)
- ("Uwj" ?Ự)
+ ("DD" ?Đ) ("Dd" ?Đ))
- ("aff" (insert "af"))
- ("AFF" (insert "AF"))
- ("Aff" (insert "Af"))
- ("ass" (insert "as"))
- ("ASS" (insert "AS"))
- ("Ass" (insert "As"))
- ("aaa" (insert "aa"))
- ("AAA" (insert "AA"))
- ("Aaa" (insert "Aa"))
- ("axx" (insert "ax"))
- ("AXX" (insert "AX"))
- ("Axx" (insert "Ax"))
- ("eff" (insert "ef"))
- ("EFF" (insert "EF"))
- ("Eff" (insert "Ef"))
- ("ess" (insert "es"))
- ("ESS" (insert "ES"))
- ("Ess" (insert "Es"))
- ("eee" (insert "ee"))
- ("EEE" (insert "EE"))
- ("Eee" (insert "Ee"))
- ("iff" (insert "if"))
- ("IFF" (insert "IF"))
- ("Iff" (insert "If"))
- ("iss" (insert "is"))
- ("ISS" (insert "IS"))
- ("Iss" (insert "Is"))
- ("off" (insert "of"))
- ("OFF" (insert "OF"))
- ("Off" (insert "Of"))
- ("oss" (insert "os"))
- ("OSS" (insert "OS"))
- ("Oss" (insert "Os"))
- ("ooo" (insert "oo"))
- ("OOO" (insert "OO"))
- ("Ooo" (insert "Oo"))
- ("oxx" (insert "ox"))
- ("OXX" (insert "OX"))
- ("Oxx" (insert "Ox"))
- ("uff" (insert "uf"))
- ("UFF" (insert "UF"))
- ("Uff" (insert "Uf"))
- ("uss" (insert "us"))
- ("USS" (insert "US"))
- ("Uss" (insert "Us"))
- ("yss" (insert "ys"))
- ("YSS" (insert "YS"))
- ("Yss" (insert "Ys"))
- ("aww" (insert "aw"))
- ("AWW" (insert "AW"))
- ("Aww" (insert "Aw"))
- ("ixx" (insert "ix"))
- ("IXX" (insert "IX"))
- ("Ixx" (insert "Ix"))
- ("uxx" (insert "ux"))
- ("UXX" (insert "UX"))
- ("Uxx" (insert "ux"))
- ("oww" (insert "ow"))
- ("OWW" (insert "OW"))
- ("Oww" (insert "Ow"))
- ("uww" (insert "uw"))
- ("UWW" (insert "UW"))
- ("Uww" (insert "Uw"))
- ("ajj" (insert "aj"))
- ("AJJ" (insert "AJ"))
- ("Ajj" (insert "Aj"))
- ("arr" (insert "ar"))
- ("ARR" (insert "AR"))
- ("Arr" (insert "Ar"))
- ("ejj" (insert "ej"))
- ("EJJ" (insert "EJ"))
- ("Ejj" (insert "Ej"))
- ("err" (insert "er"))
- ("ERR" (insert "ER"))
- ("Err" (insert "Er"))
- ("exx" (insert "ex"))
- ("EXX" (insert "EX"))
- ("Exx" (insert "Ex"))
- ("irr" (insert "ir"))
- ("IRR" (insert "IR"))
- ("Irr" (insert "Ir"))
- ("ijj" (insert "ij"))
- ("IJJ" (insert "IJ"))
- ("Ijj" (insert "Ij"))
- ("ojj" (insert "oj"))
- ("OJJ" (insert "OJ"))
- ("Ojj" (insert "Oj"))
- ("orr" (insert "or"))
- ("ORR" (insert "OR"))
- ("Orr" (insert "Or"))
- ("ujj" (insert "uj"))
- ("UJJ" (insert "UJ"))
- ("Ujj" (insert "Uj"))
- ("urr" (insert "ur"))
- ("URR" (insert "UR"))
- ("Urr" (insert "Ur"))
- ("yff" (insert "yf"))
- ("YFF" (insert "YF"))
- ("Yff" (insert "Yf"))
- ("yjj" (insert "yj"))
- ("YJJ" (insert "YJ"))
- ("Yjj" (insert "Yj"))
- ("yrr" (insert "yr"))
- ("YRR" (insert "YR"))
- ("Yrr" (insert "Yr"))
- ("yxx" (insert "yx"))
- ("YXX" (insert "YX"))
- ("Yxx" (insert "Yx"))
- ("ddd" (insert "dd"))
- ("DDD" (insert "DD"))
- ("Ddd" (insert "Dd")))
(escape
- ("\\w" ?w)
- ("\\W" ?W)
- ("\\a" ?a)
- ("\\A" ?A)
- ("\\e" ?e)
- ("\\E" ?E)
- ("\\o" ?o)
- ("\\O" ?O)
- ("\\s" ?s)
- ("\\S" ?S)
- ("\\f" ?f)
- ("\\F" ?F)
- ("\\r" ?r)
- ("\\R" ?R)
- ("\\x" ?x)
- ("\\X" ?X)
- ("\\j" ?j)
- ("\\J" ?J)
- ("\\d" ?d)
- ("\\D" ?D)
- ("\\\\" ?\\))
+ ("\\"))
+
(backspace
((BackSpace) (undo))))
(state
(init
- (map1 (delete @-) (pushback 1) (shift main)))
+ ;; The variable MARKED indicates whether a vowel is typed or not.
+ (t (set MARKED 0))
+ (vowel (set MARKED 1) (shift after-vowel))
+ (d-bar)
+ (escape (shift escape))
+ (backspace))
+
+ ;; The state shifted to when a vowel is typed. The vowel is the
+ ;; first character of the preedit buffer.
+ (after-vowel
+ (consonant (shift after-vc))
+ (d-bar (shift after-vc))
+ (double (shift after-vc))
+ (vowel (shift init))
+ (diacritical (shift init))
+ (backspace))
- (main
- (map1 (shift edit))
- (map2 (shift edit))
- (map3 (shift init))
- (escape (shift init))
- (backspace (shift init)))
+ ;; The state shifted to when a vowel and consonant are typed. The
+ ;; vowel is the first character of the preedit buffer.
+ (after-vc
+ (diacritical (shift init)))
- (edit
- (backspace)))
+ (escape
+ "a"
+ (nil (shift init) (unhandle))))
;; Local Variables:
;; coding: utf-8