;; si-wijesekera.mim -- Sinhala input method with wijesekera method
-;; Copyright (C) 2005, 2006, 2008, 2009
+;; Copyright (C) 2005, 2006, 2008, 2009, 2011
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H15PRO112
("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
- ("." "ග") ; 0D9C
- (">" "ඝ") ; 0D9D
- ("X" "ඞ") ; 0D9E
- ((A-.) "ඟ") ; 0D9F
- ("p" "ච") ; 0DA0
- ("P" "ඡ") ; 0DA1
- ("c" "ජ") ; 0DA2
- ("C" "ඣ") ; 0DA3
- ("\[" "ඤ") ; 0DA4
- ("{" "ඥ") ; 0DA5
- ((A-c) "ඦ") ; 0DA6
- ("g" "ට") ; 0DA7
- ("G" "ඨ") ; 0DA8
- ("v" "ඩ") ; 0DA9
- ("V" "ඪ") ; 0DAA
- ("K" "ණ") ; 0DAB
- ((A-v) "ඬ") ; 0DAC
- (";" "ත") ; 0DAD
- (":" "ථ") ; 0DAE
- ("o" "ද") ; 0DAF
- ("O" "ධ") ; 0DB0
- ("k" "න") ; 0DB1
- ((A-o) "ඳ") ; 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
- )
-
- (misc
- ("x" "ං") ; 0D82
- ((A-x) "ඃ") ; 0D83
-
- ("w" "අ") ; 0D85
- ("b" "ඉ") ; 0D89
- ("B" "ඊ") ; 0D8A
- ("W" "උ") ; 0D8B
- ("R" "ඍ") ; 0D8D
- ((A-,) "ඏ") ; 0D8F
-
- ("T" "ඔ") ; 0D94
-
- ("s" "ි") ; 0DD2
- ("S" "ී") ; 0DD3
- ("q" "ු") ; 0DD4
-
- ("Q" "ූ") ; 0DD6
-
- ((A-a) "ෳ") ; 0DF3
- ((A-\') "෴") ; 0DF4
-
- ("\]" ";")
- ("}" ":")
- ("'" ".")
- ("\"" ",")
- ("z" "'")
- ("Z" "\"")
-
- ("|" "්") ; touch (ZWJ 0DCA)
- ("J" "ළු") ; muurdhaja lu (0DC5 0DD4)
- ((S-\ ) " ") ; NBSP
- ((A-\ ) "") ; ZWNJ
-
- ("t"
- (set c @-2)
- (cond
- ((= @-1 0x0DD9)
- (cond
- ((= c 0x200C)
- (delete @-2)
- 0x0D93)
- ((| (< c 0x0D9A) (> c 0x0DC6))
- (delete @-1)
- 0x0D93)
- (1
- 0x0D91)))
- (1
- 0x0D91)))
-
- ("a"
- (set c @-1)
- (cond
- ((= c 0x0D91)
- (delete @-1)
- 0x0D92)
- ((= c 0x0D94)
- (delete @-1)
- 0x0D95)
- ((= c 0x0DD9)
- (delete @-1)
- 0x0DDA)
- ((= c 0x0DDC)
- (delete @-1)
- 0x0DDD)
- (1
- 0x0DCA)))
-
- ("d"
- (set c @-1)
- (cond
- ((= c 0x0D85)
- (delete @-1)
- 0x0D86)
- ((= c 0x0DD9)
- (delete @-1)
- 0x0DDC)
- (1
- 0x0DCF)))
+ (",") ("<") (".") (">")
+ ((A-a)) ((A-c)) ((A-o)) ((A-v)) ((A-x)) ((A-z)) ((A-\ )) ((A-.)) ((A-,)) ((A-\'))
+ ((G-a)) ((G-c)) ((G-o)) ((G-v)) ((G-x)) ((G-z)) ((G-\ )) ((G-.)) ((G-,)) ((G-\'))
+ ((S-\ )) ((BackSpace)) ((Delete)))
- ("e"
- (cond
- ((= @-1 0x0D85)
- (delete @-1)
- 0x0D87)
- (1
- 0x0DD0)))
-
- ("E"
- (set c @-1)
- (cond
- ((= c 0x0D85)
- (delete @-1)
- 0x0D88)
- ((= c 0x0DD4)
- (cond
- ((= @-2 0x0DC5)
- (delete @-1)
- 0x0DD6)
- (1
- 0x0DD1)))
- (1
- 0x0DD1)))
-
- ("D"
- (set c @-1)
- (cond
- ((= c 0x0D8D)
- (delete @-1)
- 0x0D8E)
- ((= c 0x0DD8)
- (delete @-1)
- 0x0DF2)
- (1
- 0x0DD8)))
-
- ("A"
- (set c @-1)
- (cond
- ((= c 0x0D8B)
- (delete @-1)
- 0x0D8C)
- ((= c 0x0D8F)
- (delete @-1)
- 0x0D90)
- ((= c 0x0D94)
- (delete @-1)
- 0x0D96)
- ((= c 0x0DD9)
- (delete @-1)
- 0x0DDE)
- (1
- 0x0DDF)))
+ (consonant
+ ("l" "ක") ; 0D9A
+ ("L" "ඛ") ; 0D9B
+ ("." "ග") ; 0D9C
+ (">" "ඝ") ; 0D9D
+ ("X" "ඞ") ; 0D9E
+ ((A-.) "ඟ") ; 0D9F
+ ((G-.) "ඟ") ; 0D9F
+ ("p" "ච") ; 0DA0
+ ("P" "ඡ") ; 0DA1
+ ("c" "ජ") ; 0DA2
+ ("C" "ඣ") ; 0DA3
+ ("\[" "ඤ") ; 0DA4
+ ("{" "ඥ") ; 0DA5
+ ((A-c) "ඦ") ; 0DA6
+ ((G-c) "ඦ") ; 0DA6
+ ("g" "ට") ; 0DA7
+ ("G" "ඨ") ; 0DA8
+ ("v" "ඩ") ; 0DA9
+ ("V" "ඪ") ; 0DAA
+ ("K" "ණ") ; 0DAB
+ ((A-v) "ඬ") ; 0DAC
+ ((G-v) "ඬ") ; 0DAC
+ (";" "ත") ; 0DAD
+ (":" "ථ") ; 0DAE
+ ("o" "ද") ; 0DAF
+ ("O" "ධ") ; 0DB0
+ ("k" "න") ; 0DB1
+ ((A-o) "ඳ") ; 0DB3
+ ((G-o) "ඳ") ; 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
+ )
- ("f"
- (set c @+0)
- (cond
- ((& (>= c 0x0D9A) (<= c 0x0DC6))
- (delete @+1)
- (insert c)
- (forward)
- (set c @+0)
- (cond
- ((= c 0x0DCA)
- (delete @+1)
- 0x0DDA)
- ((= c 0x0DD9)
- (delete @+1)
- 0x0DDB)
- ((= c 0x0DCF)
- (delete @+1)
- 0x0DDC)
- ((= c 0x0DDF)
- (delete @+1)
- 0x0DDE)
- (1
- 0x0DD9)))
- ((= c 0x0D91)
- (delete @+1)
- 0x0D93)
- ((= c 0x0DD9)
- (delete @+1)
- 0x0DDB)
- ((& (= c 0x200C) (= @+1 0x0DD9))
- (delete @+2)
- 0x200C 0x0DDB)
- ((& (= @-1 0x0DD9)
- (| (< @-2 0x0D9A) (> @-2 0x0DC6)))
- (delete @-1)
- 0x0DDB)
- ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
- 0x200C 0x0DD9)
- (1
- 0x0DD9)))
+ (misc
+ ("x" "ං") ; 0D82
+ ((A-x) "ඃ") ; 0D83
+ ((G-x) "ඃ") ; 0D83
+
+ ("w" "අ") ; 0D85
+ ("b" "ඉ") ; 0D89
+ ("B" "ඊ") ; 0D8A
+ ("W" "උ") ; 0D8B
+ ("R" "ඍ") ; 0D8D
+ ((A-,) "ඏ") ; 0D8F
+ ((G-,) "ඏ") ; 0D8F
+
+ ("T" "ඔ") ; 0D94
+
+ ("s" "ි") ; 0DD2
+ ("S" "ී") ; 0DD3
+ ("q" "ු") ; 0DD4
+
+ ("Q" "ූ") ; 0DD6
+
+ ((A-a) "ෳ") ; 0DF3
+ ((G-a) "ෳ") ; 0DF3
+ ((A-\') "෴") ; 0DF4
+ ((G-\') "෴") ; 0DF4
+
+ ("\]" ";")
+ ("}" ":")
+ ("'" ".")
+ ("\"" ",")
+ ("z" "'")
+ ("Z" "\"")
+
+ ("|" "්") ; touch (ZWJ 0DCA)
+ ("J" "ළු") ; muurdhaja lu (0DC5 0DD4)
+ ((S-\ ) " ") ; NBSP
+ ((A-\ ) "") ; ZWNJ
+ ((G-\ ) "") ; ZWNJ
+
+ ("t"
+ (set c @-2)
+ (cond
+ ((= @-1 0x0DD9)
+ (cond
+ ((= c 0x200C)
+ (delete @-2)
+ 0x0D93)
+ ((| (< c 0x0D9A) (> c 0x0DC6))
+ (delete @-1)
+ 0x0D93)
+ (1
+ 0x0D91)))
+ (1
+ 0x0D91)))
+
+ ("a"
+ (set c @-1)
+ (cond
+ ((= c 0x0D91)
+ (delete @-1)
+ 0x0D92)
+ ((= c 0x0D94)
+ (delete @-1)
+ 0x0D95)
+ ((= c 0x0DD9)
+ (delete @-1)
+ 0x0DDA)
+ ((= c 0x0DDC)
+ (delete @-1)
+ 0x0DDD)
+ (1
+ 0x0DCA)))
+
+ ("d"
+ (set c @-1)
+ (cond
+ ((= c 0x0D85)
+ (delete @-1)
+ 0x0D86)
+ ((= c 0x0DD9)
+ (delete @-1)
+ 0x0DDC)
+ (1
+ 0x0DCF)))
+
+ ("e"
+ (cond
+ ((= @-1 0x0D85)
+ (delete @-1)
+ 0x0D87)
+ (1
+ 0x0DD0)))
+
+ ("E"
+ (set c @-1)
+ (cond
+ ((= c 0x0D85)
+ (delete @-1)
+ 0x0D88)
+ ((= c 0x0DD4)
+ (cond
+ ((= @-2 0x0DC5)
+ (delete @-1)
+ 0x0DD6)
+ (1
+ 0x0DD1)))
+ (1
+ 0x0DD1)))
+
+ ("D"
+ (set c @-1)
+ (cond
+ ((= c 0x0D8D)
+ (delete @-1)
+ 0x0D8E)
+ ((= c 0x0DD8)
+ (delete @-1)
+ 0x0DF2)
+ (1
+ 0x0DD8)))
+
+ ("A"
+ (set c @-1)
+ (cond
+ ((= c 0x0D8B)
+ (delete @-1)
+ 0x0D8C)
+ ((= c 0x0D8F)
+ (delete @-1)
+ 0x0D90)
+ ((= c 0x0D94)
+ (delete @-1)
+ 0x0D96)
+ ((= c 0x0DD9)
+ (delete @-1)
+ 0x0DDE)
+ (1
+ 0x0DDF)))
+
+ ("f"
+ (set c @+0)
+ (cond
+ ((& (>= c 0x0D9A) (<= c 0x0DC6))
+ (delete @+1)
+ (insert c)
+ (forward)
+ (set c @+0)
+ (cond
+ ((= c 0x0DCA)
+ (delete @+1)
+ 0x0DDA)
+ ((= c 0x0DD9)
+ (delete @+1)
+ 0x0DDB)
+ ((= c 0x0DCF)
+ (delete @+1)
+ 0x0DDC)
+ ((= c 0x0DDF)
+ (delete @+1)
+ 0x0DDE)
+ (1
+ 0x0DD9)))
+ ((= c 0x0D91)
+ (delete @+1)
+ 0x0D93)
+ ((= c 0x0DD9)
+ (delete @+1)
+ 0x0DDB)
+ ((& (= c 0x200C) (= @+1 0x0DD9))
+ (delete @+2)
+ 0x200C 0x0DDB)
+ ((& (= @-1 0x0DD9)
+ (| (< @-2 0x0D9A) (> @-2 0x0DC6)))
+ (delete @-1)
+ 0x0DDB)
+ ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
+ 0x200C 0x0DD9)
+ (1
+ 0x0DD9)))
- ;; sanyaka letters
- ((A-z)
- (set c @-1)
- (cond
- ((= c 0x0DAF)
- (delete @-1)
- 0x0DB3)
- ((= c 0x0D9C)
- (delete @-1)
- 0x0D9F)
- ((= c 0x0DA9)
- (delete @-1)
- 0x0DAC)
- ((= c 0x0DA2)
- (delete @-1)
- 0x0DA6)))
-
- ;; yansaya
- ("H"
- (set c @-1)
- (cond
- ((= c 0x0DD9)
- (delete @-1))
- ((= c 0x0DDB)
- (delete @-1))
- (1
- (set c 0)))
- (cond
- ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
- 0x0DCA 0x200D 0x0DBA))
- (cond
- ((> c 0)
- (insert c))))
-
- ;; rakaransaya
- ("`"
- (set c @-1)
- (cond
- ((| (= c 0x0DD9) (= c 0x0DDB) (= c 0x0DD2) (= c 0x0DD3))
- (delete @-1))
- (1
- (set c 0)))
- (cond
- ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
- 0x0DCA 0x200D 0x0DBB))
- (cond
- ((> c 0)
- (insert c))))
-
- ;; repaya
- ("~"
- (set c @-1)
- (cond
- ((| (= c 0x0DD9) (= c 0x0DDB))
- (delete @-1))
- (1
- (set c 0)))
- (backward)
- (cond
- ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
- (set c1 @-1)
- (delete @-1)
- (insert c1)
- (move @<)
- 0x0DBB 0x0DCA 0x200D))
- (cond
- ((> c 0)
- (move @>)
- (insert c))))
-
- ((BackSpace)
- (delete-preceding-zw)
- (set c @-1)
- (cond
- ((< c 0)
- (unhandle)))
- (delete @-1)
- (cond
- ((= c 0x0D86)
- 0x0D85)
- ((= c 0x0D87)
- 0x0D85)
- ((= c 0x0D88)
- 0x0D85)
- ((= c 0x0D8C)
- 0x0D8B)
- ((= c 0x0D8E)
- 0x0D8D)
- ((= c 0x0D90)
- 0x0D8F)
- ((= c 0x0D92)
- 0x0D8F)
- ((= c 0x0D93)
- (cond ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x200C))
- 0x0DD9)
- ((= c 0x0D95)
- 0x0D94)
- ((= c 0x0D96)
- 0x0D94)
-
- ((& (>= c 0x0D9A) (<= c 0x0DC6) (= @-2 0x0DCA) (= @-1 0x200D))
- (cond
- ((= @-3 0x0DBB)
- (delete @-3)
- (insert c))
- (1
- (delete @-2))))
-
- ((= c 0x0DD9)
- (cond
- ((| (< @-1 0x0D9A) (> @-1 0x0DC6)))
- ((= @+0 0x0D91)
- (delete @-1)
- (delete @+1)
- 0x0D93)
- ((& (>= @+0 0x0D9A) (<= @+0 0x0DC6))
- (set c1 @+0)
- (cond
- ((= @+1 0x0DD9)
- (merge-kombuva)
- 0x0DDB)
- ((= @+1 0x0DCA)
- (merge-kombuva)
- 0x0DDA)
- ((= @+1 0x0DCF)
- (merge-kombuva)
- 0x0DDC)
- ((= @+1 0x0DDF)
- (merge-kombuva)
- 0x0DDE)
- (1
- (delete @-1)
- (delete @+1)
- (insert c1)
- 0x0DD9)))
- ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
- (delete @-1)
- 0x200C
- 0x0DD9)
- ((& (= @-4 0x0DBB) (= @-3 0x0DCA) (= @-2 0x200D))
- (set c1 @-1)
- (delete @-4)
- (insert c1)
- 0x0DD9)
- ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D))
- (delete @-3)
- 0x0DD9)
- (1
- (delete @-1)
- 0x0DD9)))
-
- ((= c 0x0DDA)
- 0x0DD9)
-
- ((= c 0x0DDB)
- (cond
- ((| (< @-1 0x0D9A) (> @-1 0x0DC6))
- 0x0DD9)
- ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
- (delete @-1)
- 0x200C
- 0x0DDB)
- ((& (= @-4 0x0DBB) (= @-3 0x0DCA) (= @-2 0x200D))
- (set c1 @-1)
- (delete @-4)
- (insert c1)
- 0x0DDB)
- ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D))
- (delete @-3)
- 0x0DDB)
- (1
- (delete @-1)
- 0x0DDB)))
-
- ((= c 0x0DDC)
- 0x0DD9)
- ((= c 0x0DDD)
- 0x0DDC)
- ((= c 0x0DDE)
- 0x0DD9)
- ((= c 0x0DF2)
- 0x0DD8))
-
- (cond
- ((& (>= @-1 0x0D9A)
- (<= @-1 0x0DC6)
- (| (= @+0 0x0DD9) (= @+0 0x0DDB)))
- 0x200C)))
-
- ((Delete)
- (delete-following-zw)
- (set c @+0)
- (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
- ((= @+0 0x0DD9)
- (delete @+1)
- (move @<)
- (insert c))
- ((= @+0 0x0DDB)
- (delete @+1)
- 0x0DD9
- (move @<)
- (insert c))
- ((= @+0 0x0DDA)
- (delete @+1)
- 0x0DCA
- (move @<)
- (insert c))
- ((= @+0 0x0DDC)
- (delete @+1)
- 0x0DCF
- (move @<)
- (insert c))
- ((= @+0 0x0DDE)
- (delete @+1)
- 0x0DDF
- (move @<)
- (insert c))
- (1
- (delete @<))))
- ((= 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
- "්ය")))
+ ;; sanyaka letters
+ ((A-z)
+ (set c @-1)
+ (cond
+ ((= c 0x0DAF)
+ (delete @-1)
+ 0x0DB3)
+ ((= c 0x0D9C)
+ (delete @-1)
+ 0x0D9F)
+ ((= c 0x0DA9)
+ (delete @-1)
+ 0x0DAC)
+ ((= c 0x0DA2)
+ (delete @-1)
+ 0x0DA6)))
+
+ ;; sanyaka letters
+ ((G-z)
+ (set c @-1)
+ (cond
+ ((= c 0x0DAF)
+ (delete @-1)
+ 0x0DB3)
+ ((= c 0x0D9C)
+ (delete @-1)
+ 0x0D9F)
+ ((= c 0x0DA9)
+ (delete @-1)
+ 0x0DAC)
+ ((= c 0x0DA2)
+ (delete @-1)
+ 0x0DA6)))
+
+ ;; yansaya
+ ("H"
+ (set c @-1)
+ (cond
+ ((= c 0x0DD9)
+ (delete @-1))
+ ((= c 0x0DDB)
+ (delete @-1))
+ (1
+ (set c 0)))
+ (cond
+ ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
+ 0x0DCA 0x200D 0x0DBA))
+ (cond
+ ((> c 0)
+ (insert c))))
+
+ ;; rakaransaya
+ ("`"
+ (set c @-1)
+ (cond
+ ((| (= c 0x0DD9) (= c 0x0DDB) (= c 0x0DD2) (= c 0x0DD3))
+ (delete @-1))
+ (1
+ (set c 0)))
+ (cond
+ ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
+ 0x0DCA 0x200D 0x0DBB))
+ (cond
+ ((> c 0)
+ (insert c))))
+
+ ;; repaya
+ ("~"
+ (set c @-1)
+ (cond
+ ((| (= c 0x0DD9) (= c 0x0DDB))
+ (delete @-1))
+ (1
+ (set c 0)))
+ (backward)
+ (cond
+ ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
+ (set c1 @-1)
+ (delete @-1)
+ (insert c1)
+ (move @<)
+ 0x0DBB 0x0DCA 0x200D))
+ (cond
+ ((> c 0)
+ (move @>)
+ (insert c))))
+
+ ((BackSpace)
+ (delete-preceding-zw)
+ (set c @-1)
+ (cond
+ ((< c 0)
+ (unhandle)))
+ (delete @-1)
+ (cond
+ ((= c 0x0D86)
+ 0x0D85)
+ ((= c 0x0D87)
+ 0x0D85)
+ ((= c 0x0D88)
+ 0x0D85)
+ ((= c 0x0D8C)
+ 0x0D8B)
+ ((= c 0x0D8E)
+ 0x0D8D)
+ ((= c 0x0D90)
+ 0x0D8F)
+ ((= c 0x0D92)
+ 0x0D8F)
+ ((= c 0x0D93)
+ (cond ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x200C))
+ 0x0DD9)
+ ((= c 0x0D95)
+ 0x0D94)
+ ((= c 0x0D96)
+ 0x0D94)
+
+ ((& (>= c 0x0D9A) (<= c 0x0DC6) (= @-2 0x0DCA) (= @-1 0x200D))
+ (cond
+ ((= @-3 0x0DBB)
+ (delete @-3)
+ (insert c))
+ (1
+ (delete @-2))))
+
+ ((= c 0x0DD9)
+ (cond
+ ((| (< @-1 0x0D9A) (> @-1 0x0DC6)))
+ ((= @+0 0x0D91)
+ (delete @-1)
+ (delete @+1)
+ 0x0D93)
+ ((& (>= @+0 0x0D9A) (<= @+0 0x0DC6))
+ (set c1 @+0)
+ (cond
+ ((= @+1 0x0DD9)
+ (merge-kombuva)
+ 0x0DDB)
+ ((= @+1 0x0DCA)
+ (merge-kombuva)
+ 0x0DDA)
+ ((= @+1 0x0DCF)
+ (merge-kombuva)
+ 0x0DDC)
+ ((= @+1 0x0DDF)
+ (merge-kombuva)
+ 0x0DDE)
+ (1
+ (delete @-1)
+ (delete @+1)
+ (insert c1)
+ 0x0DD9)))
+ ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
+ (delete @-1)
+ 0x200C
+ 0x0DD9)
+ ((& (= @-4 0x0DBB) (= @-3 0x0DCA) (= @-2 0x200D))
+ (set c1 @-1)
+ (delete @-4)
+ (insert c1)
+ 0x0DD9)
+ ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D))
+ (delete @-3)
+ 0x0DD9)
+ (1
+ (delete @-1)
+ 0x0DD9)))
+
+ ((= c 0x0DDA)
+ 0x0DD9)
+
+ ((= c 0x0DDB)
+ (cond
+ ((| (< @-1 0x0D9A) (> @-1 0x0DC6))
+ 0x0DD9)
+ ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
+ (delete @-1)
+ 0x200C
+ 0x0DDB)
+ ((& (= @-4 0x0DBB) (= @-3 0x0DCA) (= @-2 0x200D))
+ (set c1 @-1)
+ (delete @-4)
+ (insert c1)
+ 0x0DDB)
+ ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D))
+ (delete @-3)
+ 0x0DDB)
+ (1
+ (delete @-1)
+ 0x0DDB)))
+
+ ((= c 0x0DDC)
+ 0x0DD9)
+ ((= c 0x0DDD)
+ 0x0DDC)
+ ((= c 0x0DDE)
+ 0x0DD9)
+ ((= c 0x0DF2)
+ 0x0DD8))
+
+ (cond
+ ((& (>= @-1 0x0D9A)
+ (<= @-1 0x0DC6)
+ (| (= @+0 0x0DD9) (= @+0 0x0DDB)))
+ 0x200C)))
+
+ ((Delete)
+ (delete-following-zw)
+ (set c @+0)
+ (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
+ ((= @+0 0x0DD9)
+ (delete @+1)
+ (move @<)
+ (insert c))
+ ((= @+0 0x0DDB)
+ (delete @+1)
+ 0x0DD9
+ (move @<)
+ (insert c))
+ ((= @+0 0x0DDA)
+ (delete @+1)
+ 0x0DCA
+ (move @<)
+ (insert c))
+ ((= @+0 0x0DDC)
+ (delete @+1)
+ 0x0DCF
+ (move @<)
+ (insert c))
+ ((= @+0 0x0DDE)
+ (delete @+1)
+ 0x0DDF
+ (move @<)
+ (insert c))
+ (1
+ (delete @<))))
+ ((= c 0x0DDB)
+ 0x0DD9))))
- ("`" ; rakaransaya (0DCA 200D 0DBB)
- (cond
- ((| (= @-1 0x0DD2) (= @-1 0x0DD3) (= @-1 0x0DD9) (= @-1 0x0DDB))
- (move @-) "්ර" (move @>))
- (1 "්ර")))
+ (independent
+ ("w" "අ") ; 0D85
+ ("b" "ඉ") ; 0D89
+ ("B" "ඊ") ; 0D8A
+ ("W" "උ") ; 0D8B
+ ("R" "ඍ") ; 0D8D
+ ((A-,) "ඏ") ; 0D8F
+ ((G-,) "ඏ") ; 0D8F
+ ("t" "එ") ; 0D91
+ ("T" "ඔ") ; 0D94
+ ("l" "ක") ; 0D9A
+ ("L" "ඛ") ; 0D9B
+ ("." "ග") ; 0D9C
+ (">" "ඝ") ; 0D9D
+ ("X" "ඞ") ; 0D9E
+ ((A-.) "ඟ") ((0x2E A-z) "ඟ") ; 0D9F
+ ((G-.) "ඟ") ((0x2E G-z) "ඟ") ; 0D9F
+ ("p" "ච") ; 0DA0
+ ("P" "ඡ") ; 0DA1
+ ("c" "ජ") ; 0DA2
+ ("C" "ඣ") ; 0DA3
+ ("\[" "ඤ") ; 0DA4
+ ("{" "ඥ") ; 0DA5
+ ((A-c) "ඦ") ((0x63 A-z) "ඦ") ; 0DA6
+ ((G-c) "ඦ") ((0x63 G-z) "ඦ") ; 0DA6
+ ("g" "ට") ; 0DA7
+ ("G" "ඨ") ; 0DA8
+ ("v" "ඩ") ; 0DA9
+ ("V" "ඪ") ; 0DAA
+ ("K" "ණ") ; 0DAB
+ ((A-v) "ඬ") ((0x76 A-z) "ඬ") ; 0DAC
+ ((G-v) "ඬ") ((0x76 G-z) "ඬ") ; 0DAC
+ (";" "ත") ; 0DAD
+ (":" "ථ") ; 0DAE
+ ("o" "ද") ; 0DAF
+ ("O" "ධ") ; 0DB0
+ ("k" "න") ; 0DB1
+ ((A-o) "ඳ") ((0x6F A-z) "ඳ") ; 0DB3
+ ((G-o) "ඳ") ((0x6F G-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
+ ((G-\') "෴") ; 0DF4
+
+ ("J" "ළු") ; muurdhaja lu (0DC5 0DD4)
+
+ ((S-\ ) " ") ; NBSP (00A0)
+ ((A-\ ) "") ; ZWNJ (200C)
+ ((G-\ ) "") ; ZWNJ (200C)
+
+ ("\]" ";")
+ ("}" ":")
+ ("'" ".")
+ ("\"" ",")
+ ("z" "'")
+ ("Z" "\"")
+ )
- ("~" ; repaya (0DBB 0DCA 200D)
- (move @<)
- "ර්"
- (move @>))
- )
+ (dependent
+ ("x" "ං") ; 0D82
+ ((A-x) "ඃ") ; 0D83
+ ((G-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
+ ((G-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
+ (kombuva
+ ("f" "ෙ")) ; 0DD9
- (join
- ("\\"))
+ (join
+ ("\\"))
- (backspace
- ((BackSpace))))
+ (backspace
+ ((BackSpace))))
(state
(init