....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 66.235.200.170  /  Your IP : 3.15.221.46
Web Server : Apache
System : Linux gator4410.hostgator.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User : bmgxafte ( 1214)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/m17n/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/m17n/ta-lk-renganathan.mim
;; 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:

Youez - 2016 - github.com/yon3zu
LinuXploit