1 ;; si-wijesekera.mim -- Sinhala input method with wijesekera method
2 ;; Copyright (C) 2005, 2006, 2008
3 ;; National Institute of Advanced Industrial Science and Technology (AIST)
4 ;; Registration Number H15PRO112
6 ;; This file is part of the m17n database; a sub-part of the m17n
9 ;; The m17n library is free software; you can redistribute it and/or
10 ;; modify it under the terms of the GNU Lesser General Public License
11 ;; as published by the Free Software Foundation; either version 2.1 of
12 ;; the License, or (at your option) any later version.
14 ;; The m17n library is distributed in the hope that it will be useful,
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 ;; Lesser General Public License for more details.
19 ;; You should have received a copy of the GNU Lesser General Public
20 ;; License along with the m17n library; if not, write to the Free
21 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 ;; Boston, MA 02110-1301, USA.
24 (input-method si wijesekera)
26 (description "Sinhala input method based on SLS 1134 Rev. 2:2004.
27 <http://www.fonts.lk/doc/sin-kbd-layout4.pdf>
28 This input method requires surrounding text support.
34 ;; skip following (virama zwj consonant)* sequence
38 ((& (= @+1 0x0DCA) (= @+2 0x200D) (>= cc3 0x0D9A) (<= cc3 0x0DC6))
47 ((& (= @-3 0x0DCA) (= @-2 0x200D) (>= cc1 0x0D9A) (<= cc1 0x0DC6))
57 ((| (= @-1 0x200C) (= @-1 0x200D))
59 (delete-preceding-zw))))
63 ((| (= @+1 0x200C) (= @+1 0x200D))
65 (delete-following-zw))))
146 ("|" "්") ; touch (ZWJ 0DCA)
147 ("J" "ළු") ; muurdhaja lu (0DC5 0DD4)
159 ((| (< c 0x0D9A) (> c 0x0DC6))
254 ((& (>= c 0x0D9A) (<= c 0x0DC6))
280 ((& (= c 0x200C) (= @+2 0x0DD9))
284 (| (< @-2 0x0D9A) (> @-2 0x0DC6)))
287 ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
320 ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
321 0x0DCA 0x200D 0x0DBA))
330 ((| (= c 0x0DD9) (= c 0x0DDB) (= c 0x0DD2) (= c 0x0DD3))
335 ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
336 0x0DCA 0x200D 0x0DBB))
345 ((| (= c 0x0DD9) (= c 0x0DDB))
351 ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6))
356 0x0DBB 0x0DCA 0x200D))
363 (delete-preceding-zw)
385 (cond ((& (>= @-1 0x0D9A) (<= @-1 0x0DC6)) 0x200C))
392 ((& (>= c 0x0D9A) (<= c 0x0DC6) (= @-2 0x0DCA) (= @-1 0x200D))
402 ((| (< @-1 0x0D9A) (> @-1 0x0DC6)))
407 ((& (>= @+1 0x0D9A) (<= @+1 0x0DC6))
427 ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
431 ((& (= @-4 0x0DBB) (= @-3 0x0DCA) (= @-2 0x200D))
436 ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D))
448 ((| (< @-1 0x0D9A) (> @-1 0x0DC6))
450 ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
454 ((& (= @-4 0x0DBB) (= @-3 0x0DCA) (= @-2 0x200D))
459 ((& (>= @-4 0x0D9A) (<= @-4 0x0DC6) (= @-3 0x0DCA) (= @-2 0x200D))
478 (| (= @+1 0x0DD9) (= @+1 0x0DDB)))
482 (delete-following-zw)
505 ((& (>= c 0x0D9A) (<= c 0x0DC6))
551 ((| (< @-2 0x0D9A) (> @-2 0x0DC6))
561 ((| (< @-2 0x0D9A) (> @-2 0x0DC6))
573 ((| (= c 0x0DD9) (= c 0x0DDB))
575 ((& (>= @-2 0x0D9A) (<= @-2 0x0DC6))
580 ((& (>= c 0x0D9A) (<= c 0x0DC6))