;; DEVA-CDAC.flt -- Font Layout Table for Devanagari (C-DAC font)
;; Copyright (C) 2003, 2004
;; 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.
;;;
DEVA-CDAC.flt
;;;
;;; For the font DVYG0ntt.ttf (developed by C-DAC, encoding is ISFOC)
;;; to draw Devanagari script. The font is available at:
;;;
;;; - infopage: http://www.iiit.net/ltrc/iscii/FAQ.htm#SEC2.1
;;;
- download: http://www.iiit.net/ltrc/iscii/iscii_plugin_linux.tar.gz
;;;
(category
;; A: ANUSVARA or CANDRABINDU
;; C: CONSONANT (except for R)
;; R: LETTER RA
;; V: VOWEL INDEPENDENT
;; N: NUKTA
;; H: HALANT
;; M: MATRA (VOWEL DEPENDENT, except for I)
;; I: VOWEL SIGN I
;; S: STRESS or TONE
;; E: ELSE
(0x0900 ?E)
(0x0901 0x0902 ?A) ; CANDRABINDU and ANUSVARA
(0x0903 ?E) ; SIGN VISARGA
(0x0905 0x0914 ?V) ; A .. AU
(0x0915 0x0939 ?C) ; KA .. HA
(0x0930 ?R) ; RA
(0x093C ?N) ; NUKTA
(0x093D ?E) ; AVAGRAHA
(0x093E 0x094C ?M) ; VOWEL SIGN AA .. AU
(0x093F ?I) ; VOWEL SIGN I
(0x094D ?H) ; SIGN VIRAMA (HARANT)
(0x0950 ?E) ; OM
(0x0951 0x954 ?S) ; UDATTA .. ACUTE
(0x0958 0x095E ?C) ; LETTER QA .. YYA
(0x0960 0x0961 ?V) ; LETTER VOCALIC RR and LL
(0x0962 0x0963 ?M) ; VOWEL SIGN VOCALIC L and LL
(0x0964 0x0970 ?E) ; DANDA .. ABBREVIATION SIGN
)
(generator
(0
(cond
("VA?S?"
< | vowel * | >)
("([RC]H)*[RC](H|[IM]?A?S?)?"
< |
(cond
("RH.*" ;; with preceding RA HARANT
(cond
("(RH)([^I]*)(I)(A?S?)" ; with I
(3 vowel-sign-I)
(2 consonant *)
(1 preceding-r)
(4 post-modifier))
("(RH)([^M]*)(M)(A?S?)" ; with M
(2 consonant *)
(3 matra)
(1 preceding-r)
(4 post-modifier))
("(RH)(.*)(H)$" ; with last HARANT
(2 consonant *)
(1 preceding-r)
(3 harant))
("(RH)([^AS]*)(.*)" ; otherwise
(2 consonant *)
(1 preceding-r)
(3 post-modifier))))
;; without preceding RA HARANT
("([^I]*)(I)(A?S?)" ; with I
(2 vowel-sign-I)
(1 consonant *)
(3 post-modifier))
("([^M]*)(M)(A?S?)" ; with M
(1 consonant *)
(2 matra)
(3 post-modifier))
("(.*)(H)$" ; with last HARANT
(1 consonant *)
(2 harant))
("([^AS]*)(.*)" ; otherwise
(1 consonant *)
(3 post-modifier))
(".*"
consonant *))
| > )
("."
independent))
*)
(vowel
(cond
((0x0905) 0x2B)
((0x0906) 0x2B 0xC9)
((0x0907) 0x3C)
((0x0908 0x0901) 0x3C 0xC7 0xC6)
((0x0908) 0x3C 0xC7)
((0x0909) 0x3D)
((0x090A) 0x3E 0xF0)
((0x090B) 0x40 0xF1)
((0x090D 0x0901) 0x42 0xC4)
((0x090D 0x0902) 0x42 0xC4)
((0x090D) 0x42 0xEC)
((0x090E 0x0901) 0x42 0xE0 0xC6)
((0x090E) 0x42 0xE0)
((0x090F) 0x42)
((0x0910 0x0901) 0x42 0xE4 0xC6)
((0x0910) 0x42 0xE4)
((0x0911 0x0901) 0x2B 0xC9 0xC4)
((0x0911 0x0902) 0x2B 0xC9 0xC4)
((0x0911) 0x2B 0xC9 0xEC)
((0x0912 0x0901) 0x2B 0xC9 0xE0 0xC6)
((0x0912) 0x2B 0xC9 0xE0)
((0x0913 0x0901) 0x2B 0xC9 0xE4 0xC6)
((0x0913) 0x2B 0xC9 0xE4)
((0x0914 0x0901) 0x2B 0xC9 0xE8 0xC6)
((0x0914) 0x2B 0xC9 0xE8)
((0x0960) 0x41 0xF1)))
(vowel-sign-I
((0x093F) 0xCA))
(preceding-r
((0x0930 0x094D) 0xC7))
(post-modifier
(cond
((0x0901) 0xC4)
((0x0902) 0xC6)
((0x0951) 0x27)
((0x0952) bc.tc 0x2D)))
(harant
((0x094D) 0xC2))
(consonant
(cond
((0x0915 0x094D 0x0924) 0x48 0xF2)
((0x0915 0x094D 0x0930) 0x47 0xF2)
((0x0915 0x094D 0x0937 0x094D) 0x49)
((0x0915 0x094D 0x0937) 0x49 0xC9)
((0x0915 0x094D) 0x43)
((0x0915) 0x45 0xF2)
((0x0916 0x094D 0x0930 0x094D) 0x4C)
((0x0916 0x094D 0x0930) 0x4C 0xC9)
((0x0916 0x094D) 0x4A)
((0x0916) 0x4A 0xC9)
((0x0917 0x094D 0x0930 0x094D) 0x4F)
((0x0917 0x094D 0x0930) 0x4F 0xC9)
((0x0917 0x094D) 0x4D)
((0x0917) 0x4D 0xC9)
((0x0918 0x094D 0x0930 0x094D) 0x51)
((0x0918 0x094D 0x0930) 0x51 0xC9)
((0x0918 0x094D) 0x50)
((0x0918) 0x50 0xC9)
((0x0919) 0x52 0xF3)
((0x091A 0x094D 0x0930 0x094D) 0x54)
((0x091A 0x094D 0x0930) 0x54 0xC9)
((0x091A 0x094D) 0x53)
((0x091A) 0x53 0xC9)
((0x091B) 0x55 0xF4)
((0x091C 0x094D 0x091E 0x094D) 0x59)
((0x091C 0x094D 0x091E) 0x59 0xC9)
((0x091C 0x094D 0x0930 0x094D) 0x58)
((0x091C 0x094D 0x0930) 0x58 0xC9)
((0x091C 0x094D) 0x56)
((0x091C) 0x56 0xC9)
((0x091D 0x094D 0x0930 0x094D) 0x5B)
((0x091D 0x094D 0x0930) 0x5B 0xC9)
((0x091D 0x094D) 0x5A)
((0x091D) 0x5A 0xC9)
((0x091E 0x094D) 0x5C)
((0x091E) 0x5C 0xC9)
((0x091F 0x094D 0x091F) 0x5E 0xF5)
((0x091F 0x094D 0x0920) 0x5F 0xF5)
((0x091F) 0x5D 0xF5)
((0x0920 0x094D 0x0920) 0x61 0xF6)
((0x0920) 0x60 0xF6)
((0x0921 0x094D 0x0921) 0x64 0xF7)
((0x0921 0x094D 0x0922) 0x65 0xF7)
((0x0921) 0x62 0xF7)
((0x0922) 0x66 0xF8)
((0x0923 0x094D) 0x68)
((0x0923) 0x68 0xC9)
((0x0924 0x094D 0x0924 0x094D) 0x6B)
((0x0924 0x094D 0x0924) 0x6B 0xC9)
((0x0924 0x094D 0x0930 0x094D) 0x6A)
((0x0924 0x094D 0x0930) 0x6A 0xC9)
((0x0924 0x094D) 0x69)
((0x0924) 0x69 0xC9)
((0x0925 0x094D 0x0930 0x094D) 0x6D)
((0x0925 0x094D 0x0930) 0x6D 0xC9)
((0x0925 0x094D) 0x6C)
((0x0925) 0x6C 0xC9)
((0x0926 0x0943) 0x6F 0xF9)
((0x0926 0x094D 0x0926) 0x71 0xF9)
((0x0926 0x094D 0x0927) 0x72 0xF9)
((0x0926 0x094D 0x092E) 0x73)
((0x0926 0x094D 0x092F) 0x74)
((0x0926 0x094D 0x0930) 0x70 0xF9)
((0x0926 0x094D 0x0935) 0x75 0xF9)
((0x0926) 0x6E 0xF9)
((0x0927 0x094D 0x0930 0x094D) 0x77)
((0x0927 0x094D 0x0930) 0x77 0xC9)
((0x0927 0x094D) 0x76)
((0x0927) 0x76 0xC9)
((0x0928 0x094D 0x0928 0x094D) 0x7A)
((0x0928 0x094D 0x0928) 0x7A 0xC9)
((0x0928 0x094D 0x0930 0x094D) 0x79 0xC9)
((0x0928 0x094D 0x0930) 0x79 0xC9)
((0x0928 0x094D) 0x78)
((0x0928) 0x78 0xC9)
((0x0929) 0x78 0xC3 0xC9)
((0x092A 0x094D 0x0930 0x094D) 0x7C)
((0x092A 0x094D 0x0930) 0x7C 0xC9)
((0x092A 0x094D) 0x7B)
((0x092A) 0x7B 0xC9)
((0x092B 0x094D 0x0930) 0xA3 0xFB)
((0x092B 0x094D) 0x7D)
((0x092B) 0xA1 0xFB)
((0x092C 0x094D 0x0930 0x094D) 0xA5)
((0x092C 0x094D 0x0930) 0xA5 0xC9)
((0x092C 0x094D) 0xA4)
((0x092C) 0xA4 0xC9)
((0x092D 0x094D 0x0930 0x094D) 0xA7)
((0x092D 0x094D 0x0930) 0xA7 0xC9)
((0x092D 0x094D) 0xA6)
((0x092D) 0xA6 0xC9)
((0x092E 0x094D 0x0930 0x094D) 0xA9)
((0x092E 0x094D 0x0930) 0xA9 0xC9)
((0x092E 0x094D) 0xA8)
((0x092E) 0xA8 0xC9)
((0x092F 0x094D 0x0930 0x094D) 0xAB)
((0x092F 0x094D 0x0930) 0xAB 0xC9)
((0x092F 0x094D) 0xAA)
((0x092F) 0xAA 0xC9)
((0x0930 0x0941) 0xAF 0xFB)
((0x0930 0x0942) 0xB0 0xFC)
((0x0930) 0xAE 0xF7)
((0x0931 0x094D) 0xAD)
((0x0931) 0xAE 0xC3 0xF7)
((0x0932 0x094D) 0xB1)
((0x0932) 0xB1 0xC9)
((0x0933 0x094D) 0xB2)
((0x0933) 0xB3)
((0x0934 0x094D) 0xB2 0xC3)
((0x0934) 0xB3 0xC3)
((0x0935 0x094D 0x0930 0x094D) 0xB5)
((0x0935 0x094D 0x0930) 0xB5 0xC9)
((0x0935 0x094D) 0xB4)
((0x0935) 0xB4 0xC9)
((0x0936 0x094D 0x0930 0x094D) 0xB8)
((0x0936 0x094D 0x0930) 0xB8 0xC9)
((0x0936 0x094D 0x0935 0x094D) 0xB7)
((0x0936 0x094D 0x0935) 0xB7 0xC9)
((0x0936 0x094D) 0xB6)
((0x0936) 0xB6 0xC9)
((0x0937 0x094D) 0xB9)
((0x0937) 0xB9 0xC9)
((0x0938 0x094D 0x0930 0x094D) 0xBB)
((0x0938 0x094D 0x0930) 0xBB 0xC9)
((0x0938 0x094D) 0xBA)
((0x0938) 0xBA 0xC9)
((0x0939 0x0943) 0xBE)
((0x0939 0x094D 0x092E) 0xC0)
((0x0939 0x094D 0x092F) 0xC1)
((0x0939 0x094D 0x0930) 0xBF)
((0x0939 0x094D) 0xBC)
((0x0939) 0xBD)
((0x094D 0x092F) 0xAC)
((0x094D 0x0930) 0xC5)
((0x0958 0x094D) 0x44)
((0x0958) 0x46 0xF2 0xF3)
((0x0959 0x094D) 0x4B)
((0x0959) 0x4B 0xC9)
((0x095A 0x094D) 0x4E)
((0x095A) 0x4E 0xC9)
((0x095B 0x094D) 0x57)
((0x095B) 0x57 0xC9)
((0x095C) 0x63 0xF7)
((0x095D) 0x67 0xF8)
((0x095E 0x094D) 0x7E)
((0x095E) 0xA2 0xFB)
((0x095F) 0xAA 0xC3 0xC9)
((0x094D) 0xC2)))
(matra
(cond
((0x093E) 0xC9)
((0x093F 0x0901) 0xCA 0xC6)
((0x093F) 0xCA)
((0x0940 0x0901) 0xD2 0xC6)
((0x0940) 0xD2)
((0x0941) 0xD6)
((0x0942) 0xDA)
((0x0943) 0xDE)
((0x0944) 0xDF)
((0x0945) 0xEC)
((0x0946 0x0901) 0xE0 0xC6)
((0x0946) 0xE0)
((0x0947 0x0901) 0xE4 0xC6)
((0x0947) 0xE4)
((0x0948 0x0901) 0xE8 0xC6)
((0x0948) 0xE8)
((0x0949 0x0901) 0xC9 0xC4)
((0x0949 0x0902) 0xC9 0xC4)
((0x0949) 0xC9 0xEC)
((0x094A 0x0901) 0xC9 0xE0 0xC6)
((0x094A) 0xC9 0xE0)
((0x094B 0x0901) 0xC9 0xE4 0xC6)
((0x094B) 0xC9 0xE4)
((0x094C 0x0901) 0xC9 0xE8 0xC6)
((0x094C) 0xC9 0xE8)))
(independent
(cond
((0x0900) 0x23 0xC7) ; fake!!
((0x0903) 0x26)
((0x093C) 0xC3)
((0x093D) 0x25)
((0x0950) 0x24) ;new
((0x0951) 0x27) ;new
((0x0964) 0x2A)
((0x0965) 0x2A 0x2A)
((0x0966) 0x30)
((0x0967) 0x31)
((0x0968) 0x32)
((0x0969) 0x33)
((0x096A) 0x34)
((0x096B) 0x35)
((0x096C) 0x36)
((0x096D) 0x37)
((0x096E) 0x38)
((0x096F) 0x39)
((0x094D) 0x23 Bc>10Bl 0xC2)
((0x093F) 0xCA Bc>10Bl 0x23)
((0x0940) 0x23 0xD2)
)))
(category
;; C: CONSONANTS
;; I: VOWEL SIGN I
;; R: RIGHT MODIFIER
;; S: SPACING
;; E: ELSE
;;
(0x00 0xFF ?E)
(0x3C 0xC1 ?C)
(0xC9 ?R)
(0xCA 0xD1 ?I)
(0xD2 0xD5 ?R)
(0xF0 0xFE ?S))
(generator
(0
(cond
(" ([^ ]*) "
(1
(cond
("(I[^C]*)(CC[^R]*)(R.*)"
(1 rule-i-wide = *)
(2 rule-else = *))
("(I[^C]*)(CC[^S]*)(S)(.*)"
(1 rule-i-wide = *)
(2 = *)
(4 rule-else = *)
(3 = *))
("([^R]*)(R).*"
(0 rule-else = *))
("([^S]*)(S)(.*)"
(1 rule-else = *)
(3 rule-else = *)
(2 = *))
(".*" = *))))
("[^ ]*"
= *))
*)
(rule-i-wide
(cond
((0xCA 0xC6) 0xCF)
((0xCA 0xC7 0xC6) 0xD1)
((0xCA 0xC7) 0xD0)
((0xCA) 0xCE)))
(rule-else
(cond
((0xC3 0xD6) 0xD7)
((0xC3 0xDA) 0xDB)
((0xC5 0xD6) 0xD8)
((0xC5 0xDA) 0xDC)
((0xC7 0xC4) 0xC8)
((0xC7 0xC6) 0xC8)
((0xCA 0xC6) 0xCB)
((0xCA 0xC7 0xC6) 0xCD)
((0xCA 0xC7) 0xCC)
((0xD2 0xC6) 0xD3)
((0xD2 0xC7 0xC6) 0xD5)
((0xD2 0xC7) 0xD4)
((0xE0 0xC6) 0xE1)
((0xE0 0xC7 0xC6) 0xE3)
((0xE0 0xC7) 0xE2)
((0xE4 0xC6) 0xE5)
((0xE4 0xC7 0xC6) 0xE7)
((0xE4 0xC7) 0xE6)
((0xE8 0xC6) 0xE9)
((0xE8 0xC7 0xC6) 0xEB)
((0xE8 0xC7) 0xEA)
((0xEC 0xC6) 0xED)
((0xEC 0xC7 0xC6) 0xEF)
((0xEC 0xC7) 0xEE))))
;; Local Variables:
;; mode: lisp
;; End: