--- /dev/null
+;; si-wijesekera-preedit-alt.mim -- Sinhala input method with wijesekera method
+;; Copyright (C) 2006
+;; National Institute of Advanced Industrial Science and Technology (AIST)
+;; Registration Number H15PRO112
+
+;; This file is part of the m17n database; a sub-part of the m17n
+;; library.
+
+;; The m17n library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public License
+;; as published by the Free Software Foundation; either version 2.1 of
+;; the License, or (at your option) any later version.
+
+;; The m17n library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; Lesser General Public License for more details.
+
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with the m17n library; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+(input-method si wijesekera-preedit-alt)
+
+(description "Sinhala input method based on SLS 1134 Rev. 2:2004.
+ <http://www.fonts.lk/doc/sin-kbd-layout4.pdf>
+This input method uses preedit rather than surrounding text.
+")
+
+(title "සි")
+
+(map
+ (consonant
+ ("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
+
+ ("<q" "ළු") ; muurdhaja lu (0DC5 0DD4)
+ ("<qE" "ළූ") ; 0DC5 0DD6
+ )
+
+ (others
+ ("x" "ං") ; 0D82
+ ((A-x) "ඃ") ; 0D83
+
+ ("w" "අ") ; 0D85
+ ("wd" "ආ") ; 0D86
+ ("we" "ඇ") ; 0D87
+ ("wE" "ඈ") ; 0D88
+ ("b" "ඉ") ; 0D89
+ ("B" "ඊ") ; 0D8A
+ ("W" "උ") ; 0D8B
+ ("WA" "ඌ") ; 0D8C
+ ("R" "ඍ") ; 0D8D
+ ("RD" "ඎ") ; 0D8E
+ ((A-,) "ඏ") ; 0D8F
+ ((A-, 0x41) "ඐ") ; 0D90
+ ("t" "එ") ; 0D91
+ ("ta" "ඒ") ; 0D92
+
+ ("T" "ඔ") ; 0D94
+ ("Ta" "ඕ") ; 0D95
+ ("TA" "ඖ") ; 0D96
+
+ ("a" "්") ; 0DCA
+
+ ("d" "ා") ; 0DCF
+ ("e" "ැ") ; 0DD0
+ ("E" "ෑ") ; 0DD1
+
+ ("q" "ු") ; 0DD4
+
+ ("Q" "ූ") ; 0DD6
+
+ ("D" "ෘ") ; 0DD8
+
+ ("A" "ෟ") ; 0DDF
+
+ ("DD" "ෲ") ; 0DF2
+ ((A-a) "ෳ") ; 0DF3
+ ((A-') "෴") ; 0DF4
+
+ ("J" "ළු") ; muurdhaja lu (0DC5 0DD4)
+ ("JE" "ළූ") ; 0DC5 0DD6
+
+ ((S-\ ) " ") ; NBSP (00A0)
+ ((A-\ ) "") ; ZWNJ (200C)
+
+ ("H" "්ය") ; yansaya (0DCA 200D 0DBA)
+ ("`" "්ර") ; rakaransaya (0DCA 200D 0DBB)
+ ("~" "ර්") ; repaya (0DBB 0DCA 200D)
+
+ ("\]" ";")
+ ("}" ":")
+ ("'" ".")
+ ("\"" ",")
+ ("z" "'")
+ ("Z" "\"")
+ )
+
+ (is-pilla
+ ("s" "ි") ; 0DD2
+ ("S" "ී")) ; 0DD3
+
+ (kombuva
+ ("f" "ෙ")) ; 0DD9
+
+ (yansaka
+ ("H"))
+
+ (rakaransaya
+ ("`"))
+
+ (repaya
+ ("~"))
+
+ (eyanna
+ ("w"))
+
+ (al-lakuna
+ ("a"))
+
+ (aela-pilla
+ ("d"))
+
+ (gayanukitta
+ ("A"))
+
+ (join
+ ("\\")
+ ("|"))
+
+ (backspace
+ ((BackSpace)))
+ )
+
+(state
+ (init
+ (consonant (shift consonant))
+ (others)
+ (is-pilla (shift is-pilla))
+ (kombuva (shift kombuva)))
+
+ (consonant
+ (rakaransaya 0x0DCA 0x200D 0x0DBB)
+ (yansaya 0x0DCA 0x200D 0x0DBA)
+ (repaya (move @-) 0x0DBB 0x0DCA 0x200D (move @+))
+ (is-pilla (shift is-pilla))
+ (join 0x0DCA 0x200D (shift consonant+join)))
+
+ (consonant+join
+ (consonant (shift consonant))
+ (backspace (undo)))
+
+ (is-pilla
+ (rakaransaya (move @-) 0x0DCA 0x200D 0x0DBB (shift init)))
+
+ (kombuva
+ (eyanna (delete @<) 0x0D93 (shift init))
+ (al-lakuna (delete @<) 0x0DDA (shift init))
+ (kombuva (delete @<) 0x0DDB (shift combu_deka))
+ (aela-pilla (delete @<) 0x0DDC (shift kombuva_haa_aela-pilla))
+ (gayanukitta (delete @<) 0x0DDE (shift init))
+ (consonant (move @1) (delete @0) (move @>) 0x0DD9 (shift consonant+kombuva))
+ (backspace (undo)))
+
+ (combu_deka
+ (consonant (move @1) (delete @0) (move @>) 0x0DDB (shift init))
+ (backspace (undo)))
+
+ (kombuva_haa_aela-pilla
+ (al-lakuna (delete @<) 0x0DDD (shift init))
+ (backspace (undo)))
+
+ (consonant+kombuva
+ (al-lakuna (delete @-) 0x0DDA (shift init))
+ (aela-pilla (delete @-) 0x0DDC (shift consonant+kombuva_haa_aela-pilla))
+ (gayanukitta (delete @-) 0x0DDE (shift init))
+ (yansaka (move @-) 0x0DCA 0x200D 0x0DBA (move @>))
+ (rakaransaya (move @-) 0x0DCA 0x200D 0x0DBB (move @>))
+ (join (shift consonant+join+kombuva))
+ (touch (move @-) 0x200D 0x0DCA (move @>))
+ (backspace (undo)))
+
+ (consonant+kombuva_haa_aela-pilla
+ (al-lakuna (delete @-) 0x0DDD (shift init))
+ (backspace (undo)))
+
+ (consonant+join+kombuva
+ (consonant (move @-) (delete @-) 0x0DCA 0x200D (move @+) 0x0DD9
+ (shift consonant+kombuva))
+ (backspace (undo)))
+ )
+
+;; Local Variables:
+;; coding: utf-8
+;; mode: emacs-lisp
+;; End: