1 ;; ORYA-OTF.flt -- Font Layout Table for Oriya OpenType font
2 ;; Copyright (C) 2004, 2007, 2008, 2010 AIST (H15PRO112)
3 ;; See the end for copying conditions.
5 (font layouter orya-otf nil
7 (font (nil nil unicode-bmp :otf=orya)))
11 ;;; For Oriya OpenType fonts to draw the Oriya script.
14 ;; B: consonants that have a below form
15 ;; C: consonants that do not
16 ;; This table is made for Samyak-Oriya.ttf and utkal.ttf.
17 ;; (lohit_or.ttf has more below form consonants.)
18 (0x0B00 0x0B7F ?X) ; generic
19 (0x0B01 ?a) ; SIGN CANDRABINDU
20 (0x0B02 0x0B03 ?A) ; SIGN ANUSVARA .. VISARGA
21 (0x0B05 0x0B14 ?V) ; LETTER A .. VOCALIC AU
22 (0x0B15 0x0B39 ?B) ; LETTER KA .. HA
23 (0x0B18 0x0B1A ?C) ; LETTER GHA .. CA
24 (0x0B1E ?C) ; LETTER NYA
25 (0x0B22 ?C) ; LETTER DDHA
26 (0x0B25 0x0B26 ?C) ; LETTER THA .. DA
27 (0x0B2F ?Y) ; LETTER YA
28 (0x0B30 ?R) ; LETTER RA
29 (0x0B36 0x0B37 ?C) ; LETTER SHA .. SSA
30 (0x0B3C ?n) ; SIGN NUKTA
31 (0x0B3E ?p) ; VOWEL SIGN AA
32 (0x0B3F ?u) ; VOWEL SIGN I
33 (0x0B40 ?p) ; VOWEL SIGN II
34 (0x0B41 0x0B44 ?b) ; VOWEL SIGN U .. VOCALIC RR
35 (0x0B47 ?m) ; VOWEL SIGN E
36 (0x0B4D ?H) ; SIGN VIRAMA
37 (0x0B56 ?u) ; AI LENGTH MARK
38 (0x0B57 ?p) ; AU LENGTH MARK
39 (0x0B5C 0x0B5D ?C) ; LETTER RRA .. RHA
40 (0x0B5F ?Y) ; LETTER YYA
41 (0x0B60 0x0B61 ?V) ; LETTER VOCALIC RR .. LL
42 (0x0B62 0x0B63 ?b) ; VOWEL SIGN VOCALIC L .. LL
43 (0x0B71 ?C) ; LETTER WA
47 (0x25CC ?X) ; DOTTED CIRCLE
58 ;; Decompose two-part vowel signs.
66 ;; Compose consonant and nukta.
76 ;; Syllable identification
80 ;; Syllables with an independent vowel
81 ("(RH)?(Vn?)((J?H[BYR])?m?u?b?p?n?a?A?)"
82 < | (1 = =) (2 :otf=orya=nukt+) (3 = *) | >)
84 ;; Consonant-based syllables
86 ("([CBYR]n?((J?H|HJ?)[CBYR]n?)*)(H[NJ]?|m?u?b?p?n?a?A?)"
89 (".+HJ$" :otf=orya=nukt,akhn+)
90 ("(.+)(H)N?$" (1 :otf=orya=nukt,akhn+) (2 =) 0x200C)
91 (".+" :otf=orya=nukt,akhn+))
94 ;; Two-part vowel signs
97 ((font-facility 0x25CC) < = 0x25CC = >)
101 ((font-facility 0x25CC) < = 0x25CC = >)
105 ((font-facility 0x25CC) < = 0x25CC = >)
108 ;; Combining marks are displayed with a DOTTED CIRCLE.
111 ((font-facility 0x25CC) < = 0x25CC >)
115 ((font-facility 0x25CC) < 0x25CC = >)
118 ;; Isolated blwf and pstf are displayed with a DOTTED CIRCLE in the
121 < | (1 =) (3 =) (2 =) | >)
127 ;; Reorder halant for blwf and pstf
131 ;; Isolated blwf and pstf
134 ((font-facility 0x25CC) < 0x25CC (1 :otf=orya=blwf,pstf+) >)
135 (" J([BYR]H) " [ (1 :otf=orya=blwf,pstf+) ])))
137 ;; Syllables with an overt halant
138 (" (RHJ?)?([^ ]+)(HN) "
139 | (1 = *) (2 reorder) (3 = =) |)
141 ;; Ordinary syllables
142 (" (RHJ?)?([^mubpaA ]+)(m?u?b?p?n?a?A?) "
143 | (1 = *) (2 reorder) (3 = *) |)
149 ("(.|.+([^YJ]|JY|HJ))((J?HY)*)$"
150 (1 reorder-BR *) (3 reorder-Y *)))
164 ;; Language forms and matra reordering
168 ;; Overt halant forms
169 (" (RHJ?)?([^ ]+)(HN) "
171 (1 (cond ("RHJ" :otf=orya=half+)
172 ("RH" :otf=orya=rphf+)))
173 (2 b4post) (2 post) (3 = =) |)
177 (" (RHJ?)?([^mubpaA ]*)(mn?)?(un?)?(bn?)?(pn?)?(a)?(A)? "
179 (1 (cond ("RHJ" :otf=orya=half+)
180 ("RH" :otf=orya=rphf+)))
181 (2 b4post) (5 = *) (4 = *) (7 =) (2 post) (6 = *) (8 =) |)
186 ;; Oriya should not have half forms nor vatu forms, but
187 ;; Samyak-Oriya.ttf and utkal.ttf do have them.
192 (2 ("(.|.+([^YH]|JY|[BR]H))((YH)*)$" (1 lang-forms *))))
193 ("(.|.+([^YH]|JY|[BR]H))((YH)*)"
198 ("(.H)J" (1 :otf=orya=half+))
199 (".H" :otf=orya=blwf,half,vatu+)
203 ("(.|.+([^YH]|JY|[BR]H))((YH)+)$"
204 (3 :otf=orya=pstf+)))
208 ;; Final reordering #1 (Move pre-base matra after the last halant)
213 (" (mn?)([^ ]+HJ?)([^H ]+) "
214 | (2 = *) (1 = *) (3 = *) |)
220 ;; Final reordering #2 (Move reph after the first halant)
224 ;; Syllables with a reph and an overt halant
226 (" (mn?)?(r)([^HP ]+HJ?)([^ ]*) "
227 | (1 = *) (3 = *) (2 =) (4 = *) |)
229 ;; A reph without overt halant
231 (" (mn?)?(r)([^aPpA ]+)(a?P*(HN)?p?n?A?) "
232 | (1 = *) (3 = *) (2 =) (4 = *) |)
238 ;; Nukta for matra and Presentation forms
243 | (1 :otf=orya=nukt,pres,abvs,blws,psts,haln+) |)
264 (1 :otf=orya=+abvm,blwm,dist))
269 ;; Copyright (C) 2004, 2007, 2008, 2010
270 ;; National Institute of Advanced Industrial Science and Technology (AIST)
271 ;; Registration Number H15PRO112
273 ;; This file is part of the m17n database; a sub-part of the m17n
276 ;; The m17n library is free software; you can redistribute it and/or
277 ;; modify it under the terms of the GNU Lesser General Public License
278 ;; as published by the Free Software Foundation; either version 2.1 of
279 ;; the License, or (at your option) any later version.
281 ;; The m17n library is distributed in the hope that it will be useful,
282 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
283 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
284 ;; Lesser General Public License for more details.
286 ;; You should have received a copy of the GNU Lesser General Public
287 ;; License along with the m17n library; if not, write to the Free
288 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
289 ;; Boston, MA 02110-1301, USA.