1 ;; ta-lk-renganathan.mim -- Tamil input method with Renganathan layout
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 ta lk-renganathan)
26 (description "Tamil input method with Renganathan layout.
27 For the detail, see the page: <http://www.locallanguages.lk/>
33 (use-surrounding-text (_"Surrounding text vs. preedit
34 If 1, try to use surrounding text. Otherwise, use preedit.")
48 ((& (>= @-1 0x0B95) (<= @-1 0x0BB9) ; a consonant
49 (>= @+1 0x0BC6) (<= @+1 0x0BCC)) ; a left/two-part vowel sign
50 ;; prevent syllable formation
53 ((& (| (< @-2 0x0B95) (> @-2 0x0BB9)) ; not a consonant
54 (>= @-1 0x0BC6) (<= @-1 0x0BCC) ; a left/two-part vowel sign
55 (>= @+1 0x0B95) (<= @+1 0x0BB9) ; a consonant
56 (| (< @+2 0x0BBE) (> @+2 0x0BD7))) ; not a vowel sign
57 ;; exchange @-1 and @+1
66 (| (< @-2 0x0B95) (> @-2 0x0BB9) ; not a constant
67 (< @+1 0x0BC6) (> @+1 0x0BCC))) ; not a left/two-part vowel sign
68 ;; delete unnecessary ZWNJ
72 (| (< @-1 0x0B95) (> @-1 0x0BB9) ; not a constant
73 (< @+2 0x0BC6) (> @+2 0x0BCC))) ; not a left/two-part vowel sign
74 ;; delete unnecessary ZWNJ
84 ((& (>= @-1 0x0BC6) (<= @-1 0x0BC8)) ; a left vowel sign
89 ((| (< @-2 0x0B95) (> @-2 0x0BB9)) ; not a consonant
96 (| (< @+2 0x0BC6) (> @+2 0x0BCC))) ; not a left vowel sign
105 ((| (= @+1 0x0BB3) (= @+1 0x0BD7))
121 ((& (>= @-1 0x0B95) (<= @-1 0x0BB9) ; a consonant
122 (>= @+1 0x0BC6) (<= @+1 0x0BCC)) ; a left vowel sign
125 (check-surrounding-text
127 ((& (= @+1 0x0B95) (= @+2 0x0BCD) (= @+3 0x0BB7)) ; k.ssa follows
130 ((& (>= @+1 0x0B95) (<= @+1 0x0BB9)) ; a consonant follows
134 ((& (>= @-1 0x0B95) (<= @-1 0x0BB9)) ; a consonant precedes
140 ("q") ("w") ("e") ("r") ("t") ("y") ("u") ("i") ("o") ("p") ("[") ("]")
141 ("a") ("s") ("d") ("f") ("g") ("h") ("j") ("k") ("l") (";")
142 ("z") ("x") ("c") ("v") ("b") ("n") ("m") ("`")
143 ("Q") ("W") ("E") ("R") ("T") ("Y") ("U") ("I") ("O") ("P") ("{") ("}")
144 ("A") ("S") ("D") ("F") ("G") ("H") ("J") ("K") ("L")
145 ("Z") ("X") ("C") ("V") ("B") ("N") ("M")
146 ((A-q)) ((A-w)) ((A-e)) ((A-r)) ((A-t)) ((A-y)) ((A-u)) ((A-i))
147 ((A-1)) ((A-2)) ((A-3)) ((A-4)) ((A-5)) ((A-6)) ((A-7)) ((A-8)) ((A-9))
148 ((A-0)) ((A-`)) ((A-=)) ((A--))
149 ((BackSpace)) ((Delete)))
152 ("f;" "க்") ; 0B95 0BCD
153 ("f;W" "க்ஷ") ; 0B95 0BCD 200C 0BB7
154 ("Zh" "ஒளா") ; 0B92 0BB3 0BBE
155 ("Zp" "ஒளி") ; 0B92 0BB3 0BBF
156 ("ZP" "ஒளீ") ; 0B92 0BB3 0BC0
157 ("Z[" "ஒளு") ; 0B92 0BB3 0BC1
158 ("Z{" "ஒளூ") ; 0B92 0BB3 0BC2
159 ("Z;" "ஒள்") ; 0B92 0BB3 0BCD
161 ("xsh" "ஒளா") ; 0B92 0BB3 0BBE
162 ("xsp" "ஒளி") ; 0B92 0BB3 0BBF
163 ("xsP" "ஒளீ") ; 0B92 0BB3 0BC0
164 ("xs[" "ஒளு") ; 0B92 0BB3 0BC1
165 ("xs{" "ஒளூ") ; 0B92 0BB3 0BC2
166 ("xs;" "ஒள்") ; 0B92 0BB3 0BCD
192 ("T" "க்ஷ") ; 0B95 0BCD 0BB7
266 ("Y" "ஶ்ரீ") ; 0BB6 0BCD 0BB0 0BC0
286 ((& (= use-surrounding-text 1) (= @-0 -1))
287 (shift surrounding-text))
302 ((& (>= @-2 0x0B95) (<= @-2 0x0BB9) ; a consonant
327 ((& (= @-2 0x0B95) (= @-1 0x0BCD))
359 ((& (| (< @-3 0x0B95) (> @-3 0x0BB9)) ; not a consonant
368 ((& (| (< @-3 0x0B95) (> @-3 0x0BB9)) ; not a consonant
377 0x0B92 0x0BB3 0x0BBE)
381 0x0BC6 0x0BB3 0x0BBE)
392 ;; additional check-surrounding-text for this vowel sign
393 ((& (>= @+1 0x0B95) (<= @+1 0x0BB9) ; a consonant
400 ;; ordinary check-surrounding-text
402 (check-surrounding-text)
418 (check-surrounding-text)
431 (check-surrounding-text)
440 ((& (>= @-4 0x0B95) (<= @-4 0x0BB9) ; a consonant
443 (| (& (>= @-1 0x0BBE) (<= @-1 0x0BC2)) ; a right/above/below vowel sign
448 ((& (= @-4 0x0BB6) (= @-3 0x0BCD) (= @-2 0x0BB0) (= @-1 0x0BC0)) ; shrii
453 (| (& (>= @-1 0x0BBE) (<= @-1 0x0BC2)) ; a right/above/below vowel sign
458 ((& (= @-3 0x0B95) (= @-2 0x0BCD) (= @-1 0x0BB7)) ; k.ssa
461 ((| (= @-1 0x0BCA) (= @-1 0x0BCC)) ; vowel sign e/ai
465 ((= @-1 0x0BCB) ; vowel sign ee
469 ((& (>= @-1 0x0BC6) (<= @-1 0x0BC8)) ; a left vowel sign
473 ((& (>= @-1 0x0B95) (<= @-1 0x0BB9)) ; a consonant
475 ((& (= @-3 0x0B95) (= @-2 0x0BCD) (= @-1 0x0BB7)) ; k.ssa
481 ((& (>= @+1 0x0B95) (<= @+1 0x0BB9) ; a consonant follows
482 (| (< @+2 0x0BBE) (> @+2 0x0BD7))) ; not a vowel sign
483 ;; visual : E C1 | C2 -> E C2 |
484 ;; logical : C1 E | C2 -> C2 E |
486 ((& (= @+1 0x0B95) (= @+2 0x0BCD) (= @+3 0x0BB7)) ; k.ssa
488 0x0B95 0x0BCD 0x0BB7)
495 ((& (>= @-1 0x0B95) (<= @-1 0x0BB9)) ; a consonant precedes
496 ;; visual : C1 E C2 | X -> C1 E | X
497 ;; logical : C1 C2 E | X -> C1 N E | X
502 ;; visual : X1 E C | X2 -> X1 E | X2
503 ;; logical : X1 C E | X2 -> X1 E | X2
519 ((& (= @+1 0x0BB6) (= @+2 0x0BCD) (= @+3 0x0BB0) (= @+4 0x0C0)) ; shrii
522 ((& (= @+1 0x0B95) (= @+2 0x0BCD) (= @+3 0x0BB7)) ; k.ssa
524 ((& (>= @+4 0x0BC6) (<= @+4 0x0BC8)) ; a left vowel sign
526 0x0B95 0x0BCD 0x0BB7)
527 ((| (= @+4 0x0BCA) (= @+4 0x0BCB)) ; vowel sign e/ee
529 0x0B95 0x0BCD 0x0BB7 0x0BBE)
530 ((| (& (>= @+4 0x0BBE) (<= @+4 0x0BC2)) ; vowel sign aa .. uu
531 (= @+4 0x0BCC) ; vowel sign ai
532 (= @+4 0x0BCD)) ; virama
537 ((& (>= @+1 0x0B95) (<= @+1 0x0BB9)) ; a consonant
540 ((& (>= @+2 0x0BC6) (<= @+2 0x0BC8)) ; a left vowel sign
543 ((| (= @+2 0x0BCA) (= @+2 0x0BCB)) ; vowel sign e/ee
547 ((| (& (>= @+2 0x0BBE) (<= @+2 0x0BC2)) ; vowel sign aa .. uu
548 (= @+2 0x0BCC) ; vowel sign ai
549 (= @+2 0x0BCD)) ; virama
554 ((| (= @+1 0x0BCA) (= @+1 0x0BCB)) ; vowel sign e/ee
558 ((= @+1 0x0BCC) ; vowel sign ai
580 (consonant (shift c-state))
584 (lla "ள" (shift c-state)) ; 0BB3
585 (ssa "ஷ" (shift c-state)) ; 0BB7
586 (aa "ா" (commit)) ; 0BBE
587 (e "ெ" (shift e-state)) ; 0BC6
588 (ee "ே" (shift ee-state)) ; 0BC7
589 (ai "ை" (shift ai-state))) ; 0BC8
592 (sign (shift c-s-state))
593 (aa "ா" (shift c-s-state)) ; 0BBE
621 (consonant (move @<) (delete @+) (move @>) "ெ" (shift e-c-state))
622 (lla (delete @-) "ளெ" (shift e-c-state))
623 (ssa (delete @-) "ஷெ" (shift e-c-state))
624 (backspace (delete @-) (shift preedit))
628 (consonant (move @<) (delete @+) (move @>) "ே" (shift ee-c-state))
629 (lla (delete @-) "ளே" (shift ee-c-state))
630 (ssa (delete @-) "ஷே" (shift ee-c-state))
631 (backspace (delete @-) (shift preedit))
635 (consonant (move @<) (delete @+) (move @>) "ை" (shift c-s-state))
636 (lla (delete @-) "ளை" (shift c-s-state))
637 (ssa (delete @-) "ஷை" (shift c-s-state))
638 (backspace (delete @-) (shift preedit))
642 (aa (delete @-) "ொ" (shift c-s-state))
643 (lla (delete @-) "ௌ" (shift c-s-state))
644 (backspace (delete @<) "ெ" (shift e-state)))
647 (aa (delete @-) "ோ" (shift c-s-state))
648 (backspace (delete @<) "ே" (shift ee-state)))