From 103b2c0d5da45b1703b0a9b9d2773fbcf562b052 Mon Sep 17 00:00:00 2001 From: ntakahas Date: Fri, 4 Sep 2009 12:50:31 +0000 Subject: [PATCH] Merge si-wijesekera-preedit.mim to si-wijesekera.mim. --- MIM/si-wijesekera.mim | 263 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 254 insertions(+), 9 deletions(-) diff --git a/MIM/si-wijesekera.mim b/MIM/si-wijesekera.mim index 34ffa47..8b2c192 100644 --- a/MIM/si-wijesekera.mim +++ b/MIM/si-wijesekera.mim @@ -1,5 +1,4 @@ -;; si-wijesekera.mim -- Sinhala input method with wijesekera method -;; Copyright (C) 2005, 2006, 2008 + ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H15PRO112 @@ -25,11 +24,17 @@ (description "Sinhala input method based on SLS 1134 Rev. 2:2004. -This input method requires surrounding text support. +This input method uses surrounding text if possible, or a preedit +buffer otherwise. ") (title "සි") +(variable + (use-surrounding-text (_"Surrounding text vs. preedit +If 1, try to use surrounding text. Otherwise, use preedit.") + 1 1 0)) + (macro ;; skip following (virama zwj consonant)* sequence (forward @@ -70,6 +75,15 @@ This input method requires surrounding text support. (insert c1))) (map + (starter + ("A") ("B") ("C") ("D") ("E") ("F") ("G") ("H") ("I") ("J") ("K") ("L") ("M") + ("N") ("O") ("P") ("Q") ("R") ("S") ("T") ("U") ("V") ("W") ("X") ("Y") ("Z") + ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") ("j") ("k") ("l") ("m") + ("n") ("o") ("p") ("q") ("r") ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z") + ("`") ("~") ("\[") ("{") ("\]") ("}") ("\\") ("|") (";") (":") ("'") ("\"") + (",") ("<") (".") (">") ((A-o)) ((A-.)) ((A-v)) ((A-c)) ((A-x)) + ((S-\ )) ((A-\ )) ((A-,)) ((A-a)) ((A-\')) ((A-z)) ((BackSpace)) ((Delete))) + (consonant ("l" "ක") ; 0D9A ("L" "ඛ") ; 0D9B @@ -534,11 +548,158 @@ This input method requires surrounding text support. ((= c 0x0DDB) 0x0DD9)))) + (independent + ("w" "අ") ; 0D85 + ("b" "ඉ") ; 0D89 + ("B" "ඊ") ; 0D8A + ("W" "උ") ; 0D8B + ("R" "ඍ") ; 0D8D + ((A-,) "ඏ") ; 0D8F + ("t" "එ") ; 0D91 + ("T" "ඔ") ; 0D94 + ("l" "ක") ; 0D9A + ("L" "ඛ") ; 0D9B + ("." "ග") ; 0D9C + (">" "ඝ") ; 0D9D + ("X" "ඞ") ; 0D9E + ((A-.) "ඟ") ((0x2E A-z) "ඟ") ; 0D9F + ("p" "ච") ; 0DA0 + ("P" "ඡ") ; 0DA1 + ("c" "ජ") ; 0DA2 + ("C" "ඣ") ; 0DA3 + ("\[" "ඤ") ; 0DA4 + ("{" "ඥ") ; 0DA5 + ((A-c) "ඦ") ((0x63 A-z) "ඦ") ; 0DA6 + ("g" "ට") ; 0DA7 + ("G" "ඨ") ; 0DA8 + ("v" "ඩ") ; 0DA9 + ("V" "ඪ") ; 0DAA + ("K" "ණ") ; 0DAB + ((A-v) "ඬ") ((0x76 A-z) "ඬ") ; 0DAC + (";" "ත") ; 0DAD + (":" "ථ") ; 0DAE + ("o" "ද") ; 0DAF + ("O" "ධ") ; 0DB0 + ("k" "න") ; 0DB1 + ((A-o) "ඳ") ((0x6F A-z) "ඳ") ; 0DB3 + ("m" "ප") ; 0DB4 + ("M" "ඵ") ; 0DB5 + ("n" "බ") ; 0DB6 + ("N" "භ") ; 0DB7 + ("u" "ම") ; 0DB8 + ("U" "ඹ") ; 0DB9 + ("h" "ය") ; 0DBA + ("r" "ර") ; 0DBB + ("," "ල") ; 0DBD + ("j" "ව") ; 0DC0 + ("Y" "ශ") ; 0DC1 + ("I" "ෂ") ; 0DC2 + ("i" "ස") ; 0DC3 + ("y" "හ") ; 0DC4 + ("<" "ළ") ; 0DC5 + ("F" "ෆ") ; 0DC6 + ((A-\') "෴") ; 0DF4 + + ("J" "ළු") ; muurdhaja lu (0DC5 0DD4) + + ((S-\ ) " ") ; NBSP (00A0) + ((A-\ ) "‌") ; ZWNJ (200C) + + ("\]" ";") + ("}" ":") + ("'" ".") + ("\"" ",") + ("z" "'") + ("Z" "\"") + ) + + (dependent + ("x" "ං") ; 0D82 + ((A-x) "ඃ") ; 0D83 + ("a" + (cond + ((= @-1 0x0D91) (delete @-) "ඒ") ; 0D92 + ((= @-1 0x0D94) (delete @-) "ඕ") ; 0D95 + ((= @-1 0x0DD9) (delete @-) "ේ") ; 0DDA + ((= @-1 0x0DDC) (delete @-) "ෝ") ; 0DDD + (1 "්"))) ; 0DCA + ("d" + (cond + ((= @-1 0x0D85) (delete @-) "ආ") ; 0D86 + ((= @-1 0x0DD9) (delete @-) "ො") ; 0DDC + (1 "ා"))) ; 0DCF + ("e" + (cond + ((= @-1 0x0D85) (delete @-) "ඇ") ; 0D87 + (1 "ැ"))) ; 0DD0 + ("E" + (cond + ((= @-1 0x0D85) (delete @-) "ඈ") ; 0D88 + ((& (= @-2 0x0DC5) (= @-1 0x0DD4)) + (delete @-) "ූ") ; 0DD6 + (1 "ෑ"))) ; 0DD1 + ("s" "ි") ; 0DD2 + ("S" "ී") ; 0DD3 + ("q" "ු") ; 0DD4 + ("Q" "ූ") ; 0DD6 + + ("D" + (cond + ((= @-1 0x0D8D) (delete @-) "ඎ") ; 0D8E +;; The following line does not work when no consonant proceeds. +;; ((= @-1 0x0DD8) (delete @-) "ෲ") ; 0DF2 + (1 "ෘ"))) ; 0DD8 +;; This one works with or without a preceeding consonant. + ("DD" "ෲ") ; 0DF2 + + ("A" + (cond + ((= @-1 0x0D8B) (delete @-) "ඌ") ; 0D8C + ((= @-1 0x0D8F) (delete @-) "ඐ") ; 0D90 + ((= @-1 0x0D94) (delete @-) "ඖ") ; 0D96 + ((= @-1 0x0DD9) (delete @-) "ෞ") ; 0DDE + (1 "ෟ"))) ; 0DDF + ((A-a) "ෳ") ; 0DF3 + + ("H" ; yansaya (0DCA 200D 0DBA) + (cond + ((| (= @-1 0x0DD9) (= @-1 0x0DDB)) + (move @-) "්‍ය" (move @>)) + (1 + "්‍ය"))) + + ("`" ; rakaransaya (0DCA 200D 0DBB) + (cond + ((| (= @-1 0x0DD2) (= @-1 0x0DD3) (= @-1 0x0DD9) (= @-1 0x0DDB)) + (move @-) "්‍ර" (move @>)) + (1 "්‍ර"))) + + ("~" ; repaya (0DBB 0DCA 200D) + (move @<) + "ර්‍" + (move @>)) + ) + + (kombuva + ("f" "ෙ")) ; 0DD9 + (join - ("\\"))) + ("\\")) + + (backspace + ((BackSpace)))) (state (init + (starter + (pushback 1) + (cond + ((& (= use-surrounding-text 1) (= @-0 -1)) + (shift surrounding-text)) + (1 + (shift preedit))))) + + (surrounding-text (consonant (move @<) (cond @@ -561,9 +722,12 @@ This input method requires surrounding text support. ((| (< @-2 0x0D9A) (> @-2 0x0DC6)) (delete @-1) (move @>) - 0x0DDB))))) - (misc) - (join (shift join))) + 0x0DDB)))) + (commit)) + (misc + (commit)) + (join + (shift join))) (join (consonant @@ -579,10 +743,91 @@ This input method requires surrounding text support. (insert c)))) ((& (>= c 0x0D9A) (<= c 0x0DC6)) 0x0DCA 0x200D)) - (shift init)) + (commit) + (shift surrounding-text)) (nil - (shift init)))) + (commit) + (shift surrounding-text))) + + (preedit + (independent + (shift independent-state)) + (kombuva + (shift kombuva-state)) + (dependent)) + + (independent-state + (dependent) + (join + (cond + ((| (= @-1 0x0DD9) (= @-1 0x0DDB)) + (shift join-state)) + ((| (< @-1 0x0D9A) (> @-1 0x0DC6)) + (undo -1)) + (1 + (shift join-state)))) + (backspace + (undo))) + + (join-state + (t + (mark p)) + (independent + (move p) + (set c @-1) + (cond + ((| (= c 0x0DD9) (= c 0x0DDB)) + (delete @-) + "්‍" ; 0DCA 200D + (move @>) + (insert c)) + (1 + "්‍" ; 0DCA 200D + (move @>))) + (shift independent-state)) + (backspace + (undo))) + + (kombuva-state + (t + (mark p)) + (independent + (cond + ((& (= @0 0x0DD9) (= @1 0x0D91)) + (delete @<) + "ඓ" ; 0D93 + (shift independent-state)) + ((& (= @0 0x0DD9) (< @2 0)) + (move @0) + (delete @+) + (move @>) + "ෙ" ; 0DD9 + (shift independent-state)) + ((& (= @0 0x0DDB) (< @2 0)) + (move @0) + (delete @+) + (move @>) + "ෛ" ; 0DDB + (shift independent-state)) + (1 + (delete p) + (pushback 1) + (shift preedit)))) + (kombuva + (mark p) + (cond + ((& (= @0 0x0DD9) (< @2 0)) + (delete @<) + "ෛ") ; 0DDB + (1 + (delete @-) + (pushback 1) + (shift preedit)))) + (dependent + (mark p)) + (backspace + (undo)))) ;; Local Variables: ;; coding: utf-8 -- 1.7.10.4