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 *))
152 (1 reorder-BR) (2 = *)))
166 ;; Language forms and matra reordering
170 ;; Overt halant forms
171 (" (RHJ?)?([^ ]+)(HN) "
173 (1 (cond ("RHJ" :otf=orya=half+)
174 ("RH" :otf=orya=rphf+)))
175 (2 b4post) (2 post) (3 = =) |)
179 (" (RHJ?)?([^mubpaA ]*)(mn?)?(un?)?(bn?)?(pn?)?(a)?(A)? "
181 (1 (cond ("RHJ" :otf=orya=half+)
182 ("RH" :otf=orya=rphf+)))
183 (2 b4post) (5 = *) (4 = *) (7 =) (2 post) (6 = *) (8 =) |)
188 ;; Oriya should not have half forms nor vatu forms, but
189 ;; Samyak-Oriya.ttf and utkal.ttf do have them.
194 (2 ("(.|.+([^YH]|JY|[BR]H))((YH)*)$" (1 lang-forms *))))
195 ("(.|.+([^YH]|JY|[BR]H))((YH)*)"
200 ("(.H)J" (1 :otf=orya=half+))
201 (".H" :otf=orya=blwf,half,vatu+)
205 ("(.|.+([^YH]|JY|[BR]H))((YH)+)$"
206 (3 :otf=orya=pstf+)))
210 ;; Final reordering #1 (Move pre-base matra after the last halant)
215 (" (mn?)([^ ]+HJ?)([^H ]+) "
216 | (2 = *) (1 = *) (3 = *) |)
222 ;; Final reordering #2 (Move reph after the first halant)
226 ;; Syllables with a reph and an overt halant
228 (" (mn?)?(r)([^HP ]+HJ?)([^ ]*) "
229 | (1 = *) (3 = *) (2 =) (4 = *) |)
231 ;; A reph without overt halant
233 (" (mn?)?(r)([^aPpA ]+)(a?P*(HN)?p?n?A?) "
234 | (1 = *) (3 = *) (2 =) (4 = *) |)
240 ;; Nukta for matra and Presentation forms
245 | (1 :otf=orya=nukt,pres,abvs,blws,psts,haln+) |)
266 (1 :otf=orya=+abvm,blwm,dist))
271 ;; Copyright (C) 2004, 2007, 2008, 2010
272 ;; National Institute of Advanced Industrial Science and Technology (AIST)
273 ;; Registration Number H15PRO112
275 ;; This file is part of the m17n database; a sub-part of the m17n
278 ;; The m17n library is free software; you can redistribute it and/or
279 ;; modify it under the terms of the GNU Lesser General Public License
280 ;; as published by the Free Software Foundation; either version 2.1 of
281 ;; the License, or (at your option) any later version.
283 ;; The m17n library is distributed in the hope that it will be useful,
284 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
285 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
286 ;; Lesser General Public License for more details.
288 ;; You should have received a copy of the GNU Lesser General Public
289 ;; License along with the m17n library; if not, write to the Free
290 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
291 ;; Boston, MA 02110-1301, USA.