X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=si-wijesekera.mim;h=e3ebd20047e9b3112dbae9bf66365bbd5fc30981;hb=233b64fbea6277e20184f6c10c209445751f7c83;hp=703bdfa5f2f598bde2d3e3289d65847deed07414;hpb=88f3a4d37742d79bc3b3d866e9772e98bb984029;p=m17n%2Fm17n-db.git diff --git a/si-wijesekera.mim b/si-wijesekera.mim index 703bdfa..e3ebd20 100644 --- a/si-wijesekera.mim +++ b/si-wijesekera.mim @@ -1,4 +1,5 @@ -;; Copyright (C) 2005 +;; si-wijesekera.mim -- Sinhala input method with wijesekera method +;; Copyright (C) 2005, 2006 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H15PRO112 @@ -23,10 +24,11 @@ (input-method si wijesekera) (description "Sinhala input method based on SLS 1134 Rev. 2:2004. - + +This input method requires surrounding text support. ") -(title "Wijesekera") +(title "සි") (map (consonant @@ -210,7 +212,7 @@ ("f" (set c @+1) (cond - ((& (> c 0x0D99) (< c 0x0DC7)) + ((& (>= c 0x0D9A) (<= c 0x0DC6)) (delete @+1) (insert c) (forward) @@ -243,7 +245,7 @@ (| (< @-2 0x0D9A) (> @-2 0x0DC6))) (delete @-1) 0x0DDB) - ((& (> @-1 0x0D99) (< @-1 0xDC7)) + ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x200C 0x0DD9) (1 0x0DD9))) @@ -276,7 +278,7 @@ (1 (set c 0))) (cond - ((& (> @-1 0x0D99) (< @-1 0x0DC6)) + ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x0DCA 0x200D 0x0DBA)) (cond ((> c 0) @@ -291,7 +293,7 @@ (1 (set c 0))) (cond - ((& (> @-1 0x0D99) (< @-1 0x0DC7)) + ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x0DCA 0x200D 0x0DBB)) (cond ((> c 0) @@ -307,7 +309,7 @@ ;; (set c 0))) ;; (backward) ;; (cond -;; ((& (> @-1 0x0D99) (< @-1 0x0DC7)) +;; ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) ;; (set c1 @-1) ;; (delete @-1) ;; (insert c1) @@ -323,7 +325,7 @@ (set c @-1) (cond ((< c 0) - (unhandle)) + (unhandle))) (delete @-1) (cond ((= c 0x0D86) @@ -341,21 +343,48 @@ ((= c 0x0D92) 0x0D8F) ((= c 0x0D93) - (cond ((& (> @-1 0x0D99) (< @-1 0x0DC7)) 0x200C)) + (cond ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x200C)) 0x0DD9) ((= c 0x0D95) 0x0D94) ((= c 0x0D96) 0x0D94) + ((& (>= c 0x0D9A) (<= c 0x0DC6) (= @-2 0x0DCA) (= @-1 0x200D)) + (delete @-2)) + ((= c 0x0DD9) (cond ((| (< @-1 0x0D9A) (> @-1 0x0DC6))) - ((& (> @-2 0x0D99) (< @-2 0x0DC7)) + ((= @+1 0x0D91) + (delete @-1) + (delete @+1) + 0x0D93) + ((& (>= @+1 0x0D9A) (<= @+1 0x0DC6)) + (set c1 @+1) + (cond + ((= @+2 0x0DD9) + (merge-kombuva) + 0x0DDB) + ((= @+2 0x0DCA) + (merge-kombuva) + 0x0DDA) + ((= @+2 0x0DCF) + (merge-kombuva) + 0x0DDC) + ((= @+2 0x0DDF) + (merge-kombuva) + 0x0DDE) + (1 + (delete @-1) + (delete @+1) + (insert c1) + 0x0DD9))) + ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6)) (delete @-1) 0x200C 0x0DD9) - ((& (> @-4 0x0D99) (< @-1 0x0DC7) (= @-3 0x0DCA) (= @-2 0x200D)) + ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D)) (delete @-3) 0x0DD9) (1 @@ -369,11 +398,11 @@ (cond ((| (< @-1 0x0D9A) (> @-1 0x0DC6)) 0x0DD9) - ((& (> @-2 0x0D99) (< @-2 0x0DC7)) + ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6)) (delete @-1) 0x200C 0x0DDB) - ((& (> @-4 0x0D99) (< @-1 0x0DC7) (= @-3 0x0DCA) (= @-2 0x200D)) + ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D)) (delete @-3) 0x0DDB) (1 @@ -387,16 +416,70 @@ ((= c 0x0DDE) 0x0DD9) ((= c 0x0DF2) - 0x0DD8) - ((& (> c 0x0D99) (< c 0x0DC7) (= @-2 0x0DCA) (= @-1 0x200D)) - (delete @-2))) + 0x0DD8)) (cond - ((& (> @-1 0x0D99) - (< @-1 0x0DC7) + ((& (>= @-1 0x0D9A) + (<= @-1 0x0DC6) (| (= @+1 0x0DD9) (= @+1 0x0DDB))) 0x200C))) + ((Delete) + (delete-following-zw) + (set c @+1) + (cond + ((< c 0) + (unhandle))) + (delete @+1) + (cond + ((= c 0x0D86) + 0x0DCF) + ((= c 0x0D87) + 0x0DD0) + ((= c 0x0D88) + 0x0DD1) + ((= c 0x0D8C) + 0x0DDF) + ((= c 0x0D8E) + 0x0DD8) + ((= c 0x0D90) + 0x0DDF) + ((= c 0x0D92) + 0x0DCA) + ((= c 0x0D93) + 0x0D91) + ((& (>= c 0x0D9A) (<= c 0x0DC6)) + (forward) + (cond + ((= @+1 0x0DD9) + (delete @+1) + (move @<) + (insert c)) + ((= @+1 0x0DDB) + (delete @+1) + 0x0DD9 + (move @<) + (insert c)) + ((= @+1 0x0DDA) + (delete @+1) + 0x0DCA + (move @<) + (insert c)) + ((= @+1 0x0DDC) + (delete @+1) + 0x0DCF + (move @<) + (insert c)) + ((= @+1 0x0DDE) + (delete @+1) + 0x0DDF + (move @<) + (insert c)) + (1 + (delete @<)))) + ((= c 0x0DDB) + 0x0DD9))) + ("\\" (shift join)))) (macro @@ -404,12 +487,13 @@ (forward (set x 0)) (backward (set x 0)) (delete-preceding-zw (set x 0)) + (delete-following-zw (set x 0)) ;; skip following (virama zwj consonant)* sequence (forward (set cc3 @+3) (cond - ((& (= @+1 0x0DCA) (= @+2 0x200D) (> cc3 0x0D99) (< cc3 0x0DC7)) + ((& (= @+1 0x0DCA) (= @+2 0x200D) (>= cc3 0x0D9A) (<= cc3 0x0DC6)) (delete @+3) 0x0DCA 0x200D (insert cc3) @@ -418,7 +502,7 @@ (backward (set cc1 @-1) (cond - ((& (= @-3 0x0DCA) (= @-2 0x200D) (> cc1 0x0D99) (< cc1 0x0DC7)) + ((& (= @-3 0x0DCA) (= @-2 0x200D) (>= cc1 0x0D9A) (<= cc1 0x0DC6)) (delete @-3) 0x0DCA 0x200D @@ -430,7 +514,18 @@ (cond ((| (= @-1 0x200C) (= @-1 0x200D)) (delete @-1) - (delete-preceding-zw))))) + (delete-preceding-zw)))) + + (delete-following-zw + (cond + ((| (= @+1 0x200C) (= @+1 0x200D)) + (delete @+1) + (delete-following-zw)))) + + (merge-kombuva + (delete @-1) + (delete @+2) + (insert c1))) (state (init @@ -460,13 +555,13 @@ (cond ((| (= c 0x0DD9) (= c 0x0DDB)) (cond - ((& (> @-2 0x0D99) (< @-2 0x0DC7)) + ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6)) (delete @-1) (move @<) 0x0DCA 0x200D (move @>) (insert c)))) - ((& (> c 0x0D99) (< c 0x0DC7)) + ((& (>= c 0x0D9A) (<= c 0x0DC6)) (move @<) 0x0DCA 0x200D)) (shift init))