657 lines
14 KiB
Plaintext
657 lines
14 KiB
Plaintext
;; ta-lk-renganathan.mim -- Tamil input method with Renganathan layout
|
||
;; Copyright (C) 2008
|
||
;; 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., 51 Franklin Street, Fifth Floor,
|
||
;; Boston, MA 02110-1301, USA.
|
||
|
||
(input-method ta lk-renganathan (version "1.6.0"))
|
||
|
||
(description "Tamil input method with Renganathan layout.
|
||
For the detail, see the page: <http://www.locallanguages.lk/>
|
||
")
|
||
|
||
(title "க")
|
||
|
||
(variable
|
||
(use-surrounding-text (_"Surrounding text vs. preedit
|
||
If 1, try to use surrounding text. Otherwise, use preedit.")
|
||
0 1 0))
|
||
|
||
(macro
|
||
(pre-proc
|
||
(cond
|
||
((= @-1 0x200C)
|
||
(delete @-1)))
|
||
(cond
|
||
((= @+0 0x200C)
|
||
(delete @+1))))
|
||
|
||
(post-proc
|
||
(cond
|
||
((& (>= @-1 0x0B95) (<= @-1 0x0BB9) ; a consonant
|
||
(>= @+0 0x0BC6) (<= @+0 0x0BCC)) ; a left/two-part vowel sign
|
||
;; prevent syllable formation
|
||
0x200C)
|
||
|
||
((& (| (< @-2 0x0B95) (> @-2 0x0BB9)) ; not a consonant
|
||
(>= @-1 0x0BC6) (<= @-1 0x0BCC) ; a left/two-part vowel sign
|
||
(>= @+0 0x0B95) (<= @+0 0x0BB9) ; a consonant
|
||
(| (< @+1 0x0BBE) (> @+1 0x0BD7))) ; not a vowel sign
|
||
;; exchange @-1 and @+0
|
||
(set vs @-1)
|
||
(set c @+0)
|
||
(delete @-1)
|
||
(delete @+1)
|
||
(insert c)
|
||
(insert vs))
|
||
|
||
((& (= @-1 0x200C)
|
||
(| (< @-2 0x0B95) (> @-2 0x0BB9) ; not a constant
|
||
(< @+0 0x0BC6) (> @+0 0x0BCC))) ; not a left/two-part vowel sign
|
||
;; delete unnecessary ZWNJ
|
||
(delete @-1))
|
||
|
||
((& (= @+0 0x200C)
|
||
(| (< @-1 0x0B95) (> @-1 0x0BB9) ; not a constant
|
||
(< @+1 0x0BC6) (> @+1 0x0BCC))) ; not a left/two-part vowel sign
|
||
;; delete unnecessary ZWNJ
|
||
(delete @+1))))
|
||
|
||
(consonant-proc
|
||
(move @<)
|
||
(cond
|
||
((= @-1 0x200C)
|
||
(delete @-1)))
|
||
(set vs 0)
|
||
(cond
|
||
((& (>= @-1 0x0BC6) (<= @-1 0x0BC8)) ; a left vowel sign
|
||
(cond
|
||
((= @-2 0x200C)
|
||
(set vs @-1)
|
||
(delete @-2))
|
||
((| (< @-2 0x0B95) (> @-2 0x0BB9)) ; not a consonant
|
||
(set vs @-1)
|
||
(delete @-1)))))
|
||
|
||
(move @>)
|
||
(cond
|
||
((& (= @+0 0x200C)
|
||
(| (< @+1 0x0BC6) (> @+1 0x0BCC))) ; not a left vowel sign
|
||
(delete @+1)))
|
||
|
||
(cond
|
||
((= vs 0x0BC6)
|
||
(cond
|
||
((= @+0 0x0BBE)
|
||
(delete @+1)
|
||
0x0BCA)
|
||
((| (= @+0 0x0BB3) (= @+0 0x0BD7))
|
||
(delete @+1)
|
||
0x0BCC)
|
||
(1
|
||
0x0BC6)))
|
||
((= vs 0x0BC7)
|
||
(cond
|
||
((= @+0 0x0BBE)
|
||
(delete @+1)
|
||
0x0BCB)
|
||
(1
|
||
0x0BC7)))
|
||
((= vs 0x0BC8)
|
||
0x0BC8))
|
||
|
||
(cond
|
||
((& (>= @-1 0x0B95) (<= @-1 0x0BB9) ; a consonant
|
||
(>= @+0 0x0BC6) (<= @+0 0x0BCC)) ; a left vowel sign
|
||
0x200C)))
|
||
|
||
(check-surrounding-text
|
||
(cond
|
||
((& (= @+0 0x0B95) (= @+1 0x0BCD) (= @+2 0x0BB7)) ; k.ssa follows
|
||
0x0B95 0x0BCD 0x0BB7
|
||
(delete @+3))
|
||
((& (>= @+0 0x0B95) (<= @+0 0x0BB9)) ; a consonant follows
|
||
(set c @+0)
|
||
(insert c)
|
||
(delete @+1))
|
||
((& (>= @-1 0x0B95) (<= @-1 0x0BB9)) ; a consonant precedes
|
||
0x200C)))
|
||
)
|
||
|
||
(map
|
||
(starter
|
||
("q") ("w") ("e") ("r") ("t") ("y") ("u") ("i") ("o") ("p") ("[") ("]")
|
||
("a") ("s") ("d") ("f") ("g") ("h") ("j") ("k") ("l") (";")
|
||
("z") ("x") ("c") ("v") ("b") ("n") ("m") ("`")
|
||
("Q") ("W") ("E") ("R") ("T") ("Y") ("U") ("I") ("O") ("P") ("{") ("}")
|
||
("A") ("S") ("D") ("F") ("G") ("H") ("J") ("K") ("L")
|
||
("Z") ("X") ("C") ("V") ("B") ("N") ("M")
|
||
((A-q)) ((A-w)) ((A-e)) ((A-r)) ((A-t)) ((A-y)) ((A-u)) ((A-i))
|
||
((A-1)) ((A-2)) ((A-3)) ((A-4)) ((A-5)) ((A-6)) ((A-7)) ((A-8)) ((A-9))
|
||
((A-0)) ((A-`)) ((A-=)) ((A--))
|
||
((BackSpace)) ((Delete)))
|
||
|
||
(composite
|
||
("f;" "க்") ; 0B95 0BCD
|
||
("f;W" "க்ஷ") ; 0B95 0BCD 200C 0BB7
|
||
("Zh" "ஒளா") ; 0B92 0BB3 0BBE
|
||
("Zp" "ஒளி") ; 0B92 0BB3 0BBF
|
||
("ZP" "ஒளீ") ; 0B92 0BB3 0BC0
|
||
("Z[" "ஒளு") ; 0B92 0BB3 0BC1
|
||
("Z{" "ஒளூ") ; 0B92 0BB3 0BC2
|
||
("Z;" "ஒள்") ; 0B92 0BB3 0BCD
|
||
("xs" "ஔ") ; 0B94
|
||
("xsh" "ஒளா") ; 0B92 0BB3 0BBE
|
||
("xsp" "ஒளி") ; 0B92 0BB3 0BBF
|
||
("xsP" "ஒளீ") ; 0B92 0BB3 0BC0
|
||
("xs[" "ஒளு") ; 0B92 0BB3 0BC1
|
||
("xs{" "ஒளூ") ; 0B92 0BB3 0BC2
|
||
("xs;" "ஒள்") ; 0B92 0BB3 0BCD
|
||
)
|
||
|
||
(consonant
|
||
("f" "க") ; 0B95
|
||
("q" "ங") ; 0B99
|
||
("r" "ச") ; 0B9A
|
||
("E" "ஜ") ; 0B9C
|
||
("]" "ஞ") ; 0B9E
|
||
("l" "ட") ; 0B9F
|
||
("z" "ண") ; 0BA3
|
||
("j" "த") ; 0BA4
|
||
("e" "ந") ; 0BA8
|
||
("d" "ன") ; 0BA9
|
||
("g" "ப") ; 0BAA
|
||
("k" "ம") ; 0BAE
|
||
("a" "ய") ; 0BAF
|
||
("u" "ர") ; 0BB0
|
||
("w" "ற") ; 0BB1
|
||
("y" "ல") ; 0BB2
|
||
("o" "ழ") ; 0BB4
|
||
("t" "வ") ; 0BB5
|
||
("U" "ஶ") ; 0BB6
|
||
("Q" "ஸ") ; 0BB8
|
||
("R" "ஹ") ; 0BB9
|
||
|
||
("T" "க்ஷ") ; 0B95 0BCD 0BB7
|
||
)
|
||
|
||
(sign
|
||
("p" "ி") ; 0BBF
|
||
("P" "ீ") ; 0BC0
|
||
("[" "ு") ; 0BC1
|
||
("{" "ூ") ; 0BC2
|
||
(";" "்") ; 0BCD
|
||
)
|
||
|
||
(lla
|
||
("s"))
|
||
|
||
(ssa
|
||
("W"))
|
||
|
||
(aa
|
||
("h"))
|
||
|
||
(e
|
||
("n"))
|
||
|
||
(ee
|
||
("N"))
|
||
|
||
(ai
|
||
("i"))
|
||
|
||
(backspace
|
||
((BackSpace)))
|
||
|
||
(delete
|
||
((Delete)))
|
||
|
||
(misc
|
||
("`" "ஃ") ; 0B83
|
||
("m" "அ") ; 0B85
|
||
("M" "ஆ") ; 0B86
|
||
("b" "இ") ; 0B87
|
||
("B" "ஈ") ; 0B88
|
||
("c" "உ") ; 0B89
|
||
("C" "ஊ") ; 0B8A
|
||
("v" "எ") ; 0B8E
|
||
("V" "ஏ") ; 0B8F
|
||
("I" "ஐ") ; 0B90
|
||
("x" "ஒ") ; 0B92
|
||
("X" "ஓ") ; 0B93
|
||
("Z" "ஔ") ; 0B94
|
||
|
||
("O" "ௐ") ; 0BD0
|
||
|
||
((A-0) "௦") ; 0BE6
|
||
((A-1) "௧") ; 0BE7
|
||
((A-2) "௨") ; 0BE8
|
||
((A-3) "௩") ; 0BE9
|
||
((A-4) "௪") ; 0BEA
|
||
((A-5) "௫") ; 0BEB
|
||
((A-6) "௬") ; 0BEC
|
||
((A-7) "௭") ; 0BED
|
||
((A-8) "௮") ; 0BEE
|
||
((A-9) "௯") ; 0BEF
|
||
((A-q) "௰") ; 0BF0
|
||
((A-w) "௱") ; 0BF1
|
||
((A-e) "௲") ; 0BF2
|
||
((A-y) "௳") ; 0BF3
|
||
((A-u) "௴") ; 0BF4
|
||
((A-i) "௵") ; 0BF5
|
||
((A-r) "௶") ; 0BF6
|
||
((A-t) "௷") ; 0BF7
|
||
((A-`) "௸") ; 0BF8
|
||
((A-=) "௹") ; 0BF9
|
||
((A--) "௺") ; 0BFA
|
||
|
||
("Y" "ஶ்ரீ") ; 0BB6 0BCD 0BB0 0BC0
|
||
|
||
("}" ";") ; 003B
|
||
|
||
("A" "")
|
||
("S" "")
|
||
("D" "")
|
||
("F" "")
|
||
("G" "")
|
||
("H" "")
|
||
("J" "")
|
||
("K" "")
|
||
("L" "")
|
||
))
|
||
|
||
(state
|
||
(init
|
||
(starter
|
||
(pushback 1)
|
||
(cond
|
||
((& (= use-surrounding-text 1) (= @-0 -1))
|
||
(shift surrounding-text))
|
||
(1
|
||
(shift preedit)))))
|
||
|
||
(surrounding-text
|
||
(consonant
|
||
(consonant-proc)
|
||
(commit))
|
||
|
||
(lla
|
||
(cond
|
||
((= @-1 0x200C)
|
||
(delete @-1)))
|
||
|
||
(cond
|
||
((& (>= @-2 0x0B95) (<= @-2 0x0BB9) ; a consonant
|
||
(= @-1 0x0BC6))
|
||
(delete @-1)
|
||
0x0BCC
|
||
(cond
|
||
((= @+0 0x200C)
|
||
(delete @+1))))
|
||
((= @-1 0x0B92)
|
||
(delete @-1)
|
||
0x0B94
|
||
(cond
|
||
((= @+0 0x200C)
|
||
(delete @+1))))
|
||
(1
|
||
0x0BB3
|
||
(consonant-proc)))
|
||
|
||
(commit))
|
||
|
||
(ssa
|
||
(cond
|
||
((= @-1 0x200C)
|
||
(delete @-1)))
|
||
|
||
(cond
|
||
((& (= @-2 0x0B95) (= @-1 0x0BCD))
|
||
0x200C))
|
||
0x0BB7
|
||
(consonant-proc)
|
||
|
||
(commit))
|
||
|
||
(sign
|
||
(cond
|
||
((= @+0 0x200C)
|
||
(delete @+1)))
|
||
(move @<)
|
||
(cond
|
||
((= @-1 0x200C)
|
||
(delete @-1)))
|
||
|
||
(cond
|
||
((= @-1 0x0B94)
|
||
(delete @-1)
|
||
0x0B92 0x0BB3)
|
||
((= @-1 0x0BCC)
|
||
(delete @-1)
|
||
0x0BC6 0x0BB3))
|
||
|
||
(commit))
|
||
|
||
(aa
|
||
(pre-proc)
|
||
|
||
(cond
|
||
((= @-1 0x0BC6)
|
||
(cond
|
||
((& (| (< @-3 0x0B95) (> @-3 0x0BB9)) ; not a consonant
|
||
(= @-2 0x200C))
|
||
(delete @-2))
|
||
(1
|
||
(delete @-1)))
|
||
0x0BCA)
|
||
|
||
((= @-1 0x0BC7)
|
||
(cond
|
||
((& (| (< @-3 0x0B95) (> @-3 0x0BB9)) ; not a consonant
|
||
(= @-2 0x200C))
|
||
(delete @-2))
|
||
(1
|
||
(delete @-1)))
|
||
0x0BCB)
|
||
|
||
((= @-1 0x0B94)
|
||
(delete @-1)
|
||
0x0B92 0x0BB3 0x0BBE)
|
||
|
||
((= @-1 0x0BCC)
|
||
(delete @-1)
|
||
0x0BC6 0x0BB3 0x0BBE)
|
||
|
||
(1
|
||
0x0BBE))
|
||
|
||
(commit))
|
||
|
||
(e
|
||
(pre-proc)
|
||
|
||
(cond
|
||
;; additional check-surrounding-text for this vowel sign
|
||
((& (>= @+0 0x0B95) (<= @+0 0x0BB9) ; a consonant
|
||
(= @+1 0x0BB3))
|
||
(set c @+0)
|
||
(delete @+2)
|
||
(insert c)
|
||
0x0BCC)
|
||
|
||
;; ordinary check-surrounding-text
|
||
(1
|
||
(check-surrounding-text)
|
||
(cond
|
||
((= @+0 0x0BBE)
|
||
(delete @+1)
|
||
0x0BCA)
|
||
((= @+0 0x0BD7)
|
||
(delete @+1)
|
||
0x0BCC)
|
||
(1
|
||
0x0BC6))))
|
||
|
||
(commit))
|
||
|
||
(ee
|
||
(pre-proc)
|
||
|
||
(check-surrounding-text)
|
||
(cond
|
||
((= @+0 0x0BBE)
|
||
(delete @+1)
|
||
0x0BCB)
|
||
(1
|
||
0x0BC7))
|
||
|
||
(commit))
|
||
|
||
(ai
|
||
(pre-proc)
|
||
|
||
(check-surrounding-text)
|
||
0x0BC8
|
||
|
||
(commit))
|
||
|
||
(backspace
|
||
(pre-proc)
|
||
|
||
(cond
|
||
((& (>= @-4 0x0B95) (<= @-4 0x0BB9) ; a consonant
|
||
(= @-3 0x0BC6)
|
||
(= @-2 0x0BB3)
|
||
(| (& (>= @-1 0x0BBE) (<= @-1 0x0BC2)) ; a right/above/below vowel sign
|
||
(= @-1 0x0BCD)))
|
||
(delete @-3)
|
||
0x0BCC)
|
||
|
||
((& (= @-4 0x0BB6) (= @-3 0x0BCD) (= @-2 0x0BB0) (= @-1 0x0BC0)) ; shrii
|
||
(delete @-4))
|
||
|
||
((& (= @-3 0x0B92)
|
||
(= @-2 0x0BB3)
|
||
(| (& (>= @-1 0x0BBE) (<= @-1 0x0BC2)) ; a right/above/below vowel sign
|
||
(= @-1 0x0BCD)))
|
||
(delete @-3)
|
||
0x0B94)
|
||
|
||
((& (= @-3 0x0B95) (= @-2 0x0BCD) (= @-1 0x0BB7)) ; k.ssa
|
||
(delete @-3))
|
||
|
||
((| (= @-1 0x0BCA) (= @-1 0x0BCC)) ; vowel sign e/ai
|
||
(delete @-1)
|
||
0x0BC6)
|
||
|
||
((= @-1 0x0BCB) ; vowel sign ee
|
||
(delete @-1)
|
||
0x0BC7)
|
||
|
||
((& (>= @-1 0x0BC6) (<= @-1 0x0BC8)) ; a left vowel sign
|
||
(set vs @-1)
|
||
(delete @-1)
|
||
(cond
|
||
((& (>= @-1 0x0B95) (<= @-1 0x0BB9)) ; a consonant
|
||
(cond
|
||
((& (= @-3 0x0B95) (= @-2 0x0BCD) (= @-1 0x0BB7)) ; k.ssa
|
||
(delete @-3))
|
||
(1
|
||
(delete @-1)))
|
||
|
||
(cond
|
||
((& (>= @+0 0x0B95) (<= @+0 0x0BB9) ; a consonant follows
|
||
(| (< @+1 0x0BBE) (> @+1 0x0BD7))) ; not a vowel sign
|
||
;; visual : E C1 | C2 -> E C2 |
|
||
;; logical : C1 E | C2 -> C2 E |
|
||
(cond
|
||
((& (= @+0 0x0B95) (= @+1 0x0BCD) (= @+2 0x0BB7)) ; k.ssa
|
||
(delete @+3)
|
||
0x0B95 0x0BCD 0x0BB7)
|
||
(1
|
||
(set c @+0)
|
||
(delete @+1)
|
||
(insert c)))
|
||
(insert vs))
|
||
|
||
((& (>= @-1 0x0B95) (<= @-1 0x0BB9)) ; a consonant precedes
|
||
;; visual : C1 E C2 | X -> C1 E | X
|
||
;; logical : C1 C2 E | X -> C1 N E | X
|
||
0x200C
|
||
(insert vs))
|
||
|
||
(1
|
||
;; visual : X1 E C | X2 -> X1 E | X2
|
||
;; logical : X1 C E | X2 -> X1 E | X2
|
||
(insert vs))))
|
||
|
||
((= @-1 0x200C)
|
||
(delete @-1))))
|
||
|
||
(1
|
||
(delete @-1)))
|
||
|
||
(post-proc)
|
||
(commit))
|
||
|
||
(delete
|
||
(pre-proc)
|
||
|
||
(cond
|
||
((& (= @+0 0x0BB6) (= @+1 0x0BCD) (= @+2 0x0BB0) (= @+3 0x0C0)) ; shrii
|
||
(delete @+4))
|
||
|
||
((& (= @+0 0x0B95) (= @+1 0x0BCD) (= @+2 0x0BB7)) ; k.ssa
|
||
(cond
|
||
((& (>= @+3 0x0BC6) (<= @+3 0x0BC8)) ; a left vowel sign
|
||
(delete @+4)
|
||
0x0B95 0x0BCD 0x0BB7)
|
||
((| (= @+3 0x0BCA) (= @+3 0x0BCB)) ; vowel sign e/ee
|
||
(delete @+4)
|
||
0x0B95 0x0BCD 0x0BB7 0x0BBE)
|
||
((| (& (>= @+3 0x0BBE) (<= @+3 0x0BC2)) ; vowel sign aa .. uu
|
||
(= @+3 0x0BCC) ; vowel sign ai
|
||
(= @+3 0x0BCD)) ; virama
|
||
(delete @+4))
|
||
(1
|
||
(delete @+3))))
|
||
|
||
((& (>= @+0 0x0B95) (<= @+0 0x0BB9)) ; a consonant
|
||
(set c @+0)
|
||
(cond
|
||
((& (>= @+1 0x0BC6) (<= @+1 0x0BC8)) ; a left vowel sign
|
||
(delete @+2)
|
||
(insert c))
|
||
((| (= @+1 0x0BCA) (= @+1 0x0BCB)) ; vowel sign e/ee
|
||
(delete @+2)
|
||
(insert c)
|
||
0x0BBE)
|
||
((| (& (>= @+1 0x0BBE) (<= @+1 0x0BC2)) ; vowel sign aa .. uu
|
||
(= @+1 0x0BCC) ; vowel sign ai
|
||
(= @+1 0x0BCD)) ; virama
|
||
(delete @+2))
|
||
(1
|
||
(delete @+1))))
|
||
|
||
((| (= @+0 0x0BCA) (= @+0 0x0BCB)) ; vowel sign e/ee
|
||
(delete @+1)
|
||
0x0BBE)
|
||
|
||
((= @+0 0x0BCC) ; vowel sign ai
|
||
(delete @+1)
|
||
0x0BB3)
|
||
|
||
(1
|
||
(delete @+1)))
|
||
|
||
(post-proc)
|
||
(commit))
|
||
|
||
(misc
|
||
(move @<)
|
||
(cond
|
||
((= @-1 0x200C)
|
||
(delete @-1)))
|
||
(move @>)
|
||
(cond
|
||
((= @+0 0x200C)
|
||
(delete @+1)))
|
||
(commit)))
|
||
|
||
(preedit
|
||
(consonant (shift c-state))
|
||
(composite (commit))
|
||
(sign (commit))
|
||
(misc (commit))
|
||
(lla "ள" (shift c-state)) ; 0BB3
|
||
(ssa "ஷ" (shift c-state)) ; 0BB7
|
||
(aa "ா" (commit)) ; 0BBE
|
||
(e "ெ" (shift e-state)) ; 0BC6
|
||
(ee "ே" (shift ee-state)) ; 0BC7
|
||
(ai "ை" (shift ai-state)) ; 0BC8
|
||
(nil
|
||
(unhandle)))
|
||
|
||
(c-state
|
||
(sign (shift c-s-state))
|
||
(aa "ா" (shift c-s-state)) ; 0BBE
|
||
(backspace (undo)))
|
||
|
||
(c-s-state
|
||
(sign
|
||
(cond
|
||
((= @-2 0x0BCC)
|
||
(move @-)
|
||
(delete @-)
|
||
0x0BC6 0x0BB3
|
||
(move @+))
|
||
(1
|
||
(commit)
|
||
(shift preedit))))
|
||
(aa
|
||
"ா"
|
||
(cond
|
||
((= @-2 0x0BCC)
|
||
(move @-)
|
||
(delete @-)
|
||
0x0BC6 0x0BB3
|
||
(move @+))
|
||
(1
|
||
(commit)
|
||
(shift preedit))))
|
||
(backspace (undo)))
|
||
|
||
(e-state
|
||
(consonant (move @<) (delete @+) (move @>) "ெ" (shift e-c-state))
|
||
(lla (delete @-) "ளெ" (shift e-c-state))
|
||
(ssa (delete @-) "ஷெ" (shift e-c-state))
|
||
(backspace (delete @-) (shift preedit))
|
||
(nil (undo -1)))
|
||
|
||
(ee-state
|
||
(consonant (move @<) (delete @+) (move @>) "ே" (shift ee-c-state))
|
||
(lla (delete @-) "ளே" (shift ee-c-state))
|
||
(ssa (delete @-) "ஷே" (shift ee-c-state))
|
||
(backspace (delete @-) (shift preedit))
|
||
(nil (undo -1)))
|
||
|
||
(ai-state
|
||
(consonant (move @<) (delete @+) (move @>) "ை" (shift c-s-state))
|
||
(lla (delete @-) "ளை" (shift c-s-state))
|
||
(ssa (delete @-) "ஷை" (shift c-s-state))
|
||
(backspace (delete @-) (shift preedit))
|
||
(nil (undo -1)))
|
||
|
||
(e-c-state
|
||
(aa (delete @-) "ொ" (shift c-s-state))
|
||
(lla (delete @-) "ௌ" (shift c-s-state))
|
||
(backspace (delete @<) "ெ" (shift e-state)))
|
||
|
||
(ee-c-state
|
||
(aa (delete @-) "ோ" (shift c-s-state))
|
||
(backspace (delete @<) "ே" (shift ee-state)))
|
||
)
|
||
|
||
;; Local Variables:
|
||
;; coding: utf-8
|
||
;; mode: emacs-lisp
|
||
;; End:
|