1 ;; SINH-OTF.flt -- Font Layout Table for Sinhala OpenType fonts
2 ;; Copyright (C) 2004, 2005, 2007 AIST (H15PRO112)
3 ;; See the end for copying conditions.
5 (font layouter sinh-otf nil
6 (font (nil nil unicode-bmp :otf=sinh=akhn)))
10 ;;; For Sinhala OpenType fonts to draw Sinhala.
11 ;;; A Font is available from <http://sinhala.linux.lk/>.
14 ;; V : independent vowels
16 ;; H : AL-LAKUNA (virama)
19 ;; b : below-consonant vowel signs
20 ;; u : above-consonant vowel signs
21 ;; p : post-consonant vowel signs
24 ;; s : KOMBUVA HAA AELA-PILLA
25 ;; t : two-part vowel sign
26 ;; a : AVUSVARAYA & VISARGAYA
28 ;; J : ZERO WIDTH JOINER
49 ;; Step 0 : Syllable identification
54 ;; A syllable containing a completely decomposed two-part vowel sign.
55 ("(C(HJ[CR])*)(m(H|qH?|r)a?)"
56 < | (1 otf:sinh=akhn,vatu,pres) (3 = *) | >)
58 ;; A syllable containing KOMBUVA HAA AELA-PILLA.
59 ("(C(HJ[CR])*)(s)(H)?(a)?"
60 < | (1 otf:sinh=akhn,vatu,pres) (3 two-part) (4 =) (5 =) | >)
62 ;; A syllable with a two-part vowel sign.
63 ("(C(HJ[CR])*)(t)(a)?"
64 < | (1 otf:sinh=akhn,vatu,pres) (3 two-part) (4 =) | >)
66 ;; A syllable with a vowel sign and/or a various sign.
67 ("(C(HJ[CR])*)([mMbupqr]a?|a)"
68 < | (1 otf:sinh=akhn,vatu,pres) (3 = *) | >)
72 < | otf:sinh=akhn,vatu,pres | >)
74 ;; Independent vowels.
81 ;; Split two-part dependent vowel signs for canonicalisation.
84 ((0x0DDA) 0x0DD9 0x0DCA)
85 ((0x0DDC) 0x0DD9 0x0DCF)
86 ((0x0DDD) 0x0DD9 0x0DCF 0x0DCA)
87 ((0x0DDE) 0x0DD9 0x0DDF)))
90 ;; Step 1 : Move pre-consonant signs.
95 (" ([^ mMbupqr]+)(m|M)?(b)?(u)?(p)?(q)?(r)?(H)?(a)? "
96 | (2 =) (1 = *) (3 =) (4 =) (5 =) (6 =) (7 =) (8 =) (9 =) |)
100 ;; Step 2 : OTF substitutions.
110 ;; Copyright (C) 2004, 2005, 2007
111 ;; National Institute of Advanced Industrial Science and Technology (AIST)
112 ;; Registration Number H15PRO112
114 ;; This file is part of the m17n database; a sub-part of the m17n
117 ;; The m17n library is free software; you can redistribute it and/or
118 ;; modify it under the terms of the GNU Lesser General Public License
119 ;; as published by the Free Software Foundation; either version 2.1 of
120 ;; the License, or (at your option) any later version.
122 ;; The m17n library is distributed in the hope that it will be useful,
123 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
124 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
125 ;; Lesser General Public License for more details.
127 ;; You should have received a copy of the GNU Lesser General Public
128 ;; License along with the m17n library; if not, write to the Free
129 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
130 ;; Boston, MA 02110-1301, USA.