1259 lines
25 KiB
Diff
1259 lines
25 KiB
Diff
--- si-wijesekera.mim 2010/07/16 11:18:58 1.10
|
||
+++ si-wijesekera.mim 2011/12/06 04:16:49 1.11
|
||
@@ -1,5 +1,5 @@
|
||
;; 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
|
||
|
||
@@ -83,613 +83,650 @@
|
||
("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)))
|
||
+ (",") ("<") (".") (">")
|
||
+ ((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)))
|
||
|
||
- (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)))
|
||
-
|
||
- ("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
|
||
+ ;; 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))))
|
||
|
||
- ("H" ; yansaya (0DCA 200D 0DBA)
|
||
- (cond
|
||
- ((| (= @-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" "\"")
|
||
+ )
|
||
|
||
- ("`" ; rakaransaya (0DCA 200D 0DBB)
|
||
- (cond
|
||
- ((| (= @-1 0x0DD2) (= @-1 0x0DD3) (= @-1 0x0DD9) (= @-1 0x0DDB))
|
||
- (move @-) "්ර" (move @>))
|
||
- (1 "්ර")))
|
||
+ (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 @>))
|
||
- )
|
||
+ ("~" ; repaya (0DBB 0DCA 200D)
|
||
+ (move @<)
|
||
+ "ර්"
|
||
+ (move @>))
|
||
+ )
|
||
|
||
- (kombuva
|
||
- ("f" "ෙ")) ; 0DD9
|
||
+ (kombuva
|
||
+ ("f" "ෙ")) ; 0DD9
|
||
|
||
- (join
|
||
- ("\\"))
|
||
+ (join
|
||
+ ("\\"))
|
||
|
||
- (backspace
|
||
- ((BackSpace))))
|
||
+ (backspace
|
||
+ ((BackSpace))))
|
||
|
||
(state
|
||
(init
|