*** empty log message ***
[m17n/m17n-db.git] / FLT / TAML-CDAC.flt
1 ;; TAML-CDAC.flt -- Font Layout Table for Tamil (C-DAC font)
2 ;; Copyright (C) 2003, 2004, 2007  AIST (H15PRO112)
3 ;; See the end for copying conditions.
4
5 (font layouter taml-cdac nil
6       (font (nil tm-ttvalluvar apple-roman)))
7
8 ;;; <li> TAML-CDAC.flt
9
10 (category
11  ;; C: CONSONANT
12  ;; I: INDEPENDENT VOWEL
13  ;; R: DEPENDENT VOWEL RIGHT
14  ;; L: DEPENDENT VOWEL LEFT
15  ;; B: DEPENDENT VOWEL LEFT AND RIGHT TYPE 1
16  ;; b: DEPENDENT VOWEL LEFT AND RIGHT TYPE 2
17  ;; V: VIRAMA
18  ;; E: ELSE
19  ;;
20  (0x0B83        ?E)
21  (0x0B85 0x0B8A ?I)
22  (0x0B8E 0x0B90 ?I)
23  (0x0B92 0x0B94 ?I)
24  (0x0B95        ?C)
25  (0x0B99 0x0B9A ?C)
26  (0x0B9C        ?C)
27  (0x0B9E 0x0B9F ?C)
28  (0x0BA3 0x0BA4 ?C)
29  (0x0BA8 0x0BAA ?C)
30  (0x0BAE 0x0BB5 ?C)
31  (0x0BB7 0x0BB9 ?C)
32  (0x0BBE 0x0BC2 ?R)
33  (0x0BC6 0x0BC8 ?L)
34  (0x0BCA        ?B)
35  (0x0BCB        ?b)
36  (0x0BCC        ?B)
37  (0x0BCD        ?V)
38  (0x0BD7        ?E))
39
40 ;; CHAR->GLYPH STAGE
41 (generator
42  (0
43   (cond
44    ("((CV)*)(C)(R)"
45     (1 consonant-virama *)
46     (3 consonant)
47     (4 dependent-vowel))
48    ("((CV)*)(C)(L)"
49     < |
50     (4 dependent-vowel)
51     (1 consonant-virama *)
52     (3 consonant)
53     | >)
54    ("((CV)*)(C)(B)"
55     < |
56     0xAA
57     (1 consonant-virama *)
58     (3 consonant)
59     (4 dependent-vowel)
60     | >)
61    ("((CV)*)(C)(b)"
62     < |
63     0xAB
64     (1 consonant-virama *)
65     (3 consonant)
66     (4 dependent-vowel)
67     | >)
68    ("CV"
69     < consonant-virama >)
70    ("[RLBb]"
71     isolated-dependent-vowel)
72    ("." independent consonant))
73   *)
74
75  (consonant-virama
76   (cond
77    ((0x0B95 0x0BCD)     0xE8 0xA2)      ; k
78    ((0x0B99 0x0BCD)     0xE9 0xA2)      ; n^
79    ((0x0B9A 0x0BCD)     0xEA 0xA2)      ; c
80    ((0x0B9E 0x0BCD)     0xEB 0xA2)      ; n~
81    ((0x0B9F 0x0BCD)     0xEC 0xA2)      ; t.
82    ((0x0BA3 0x0BCD)     0xED 0xA2)      ; n.
83    ((0x0BA4 0x0BCD)     0xEE 0xA2)      ; t
84    ((0x0BA8 0x0BCD)     0xEF 0xA2)      ; n
85    ((0x0BAA 0x0BCD)     0xF0 0xA2)      ; p
86    ((0x0BAE 0x0BCD)     0xF1 0xA2)      ; m
87    ((0x0BAF 0x0BCD)     0xF2 0xA2)      ; y
88    ((0x0BB0 0x0BCD)     0xF3 0xA2)      ; r
89    ((0x0BB2 0x0BCD)     0xF4 0xA2)      ; l
90    ((0x0BB5 0x0BCD)     0xF5 0xA2)      ; v
91    ((0x0BB4 0x0BCD)     0xF6 0xA2)      ; l_
92    ((0x0BB3 0x0BCD)     0xF7 0xA2)      ; l.
93    ((0x0BB1 0x0BCD)     0xF8 0xA2)      ; r_
94    ((0x0BA9 0x0BCD)     0xA1)           ; n_
95    ((0x0BB8 0x0BCD)     0x76)           ; s
96    ((0x0BB7 0x0BCD)     0x77)           ; s'
97    ((0x0B9C 0x0BCD)     0x78)           ; j
98    ((0x0BB9 0x0BCD)     0x79)           ; h
99    ))
100
101  (consonant
102   (cond
103    ((0x0B95)    0xE8)                   ; k
104    ((0x0B99)    0xE9)                   ; n^
105    ((0x0B9A)    0xEA)                   ; c
106    ((0x0B9E)    0xEB)                   ; n~
107    ((0x0B9F)    0xEC)                   ; t.
108    ((0x0BA3)    0xED)                   ; n.
109    ((0x0BA4)    0xEE)                   ; t
110    ((0x0BA8)    0xEF)                   ; n
111    ((0x0BAA)    0xF0)                   ; p
112    ((0x0BAE)    0xF1)                   ; m
113    ((0x0BAF)    0xF2)                   ; y
114    ((0x0BB0)    0xF3)                   ; r
115    ((0x0BB2)    0xF4)                   ; l
116    ((0x0BB5)    0xF5)                   ; v
117    ((0x0BB4)    0xF6)                   ; l_
118    ((0x0BB3)    0xF7)                   ; l.
119    ((0x0BB1)    0xF8)                   ; r_
120    ((0x0BA9)    0xF9)                   ; n_
121    ((0x0BB8)    0xFA)                   ; s
122    ((0x0BB7)    0xFB)                   ; s'
123    ((0x0B9C)    0xFC)                   ; j
124    ((0x0BB9)    0xFD)                   ; h
125    ))
126    
127  (dependent-vowel
128   (cond
129    ((0x0BBE)    0xA3)                   ; a~
130    ((0x0BBF)    0xA4)                   ; i
131    ((0x0BC0)    0xA6)                   ; i~
132    ((0x0BC1)    0xA7)                   ; u
133    ((0x0BC2)    0xA8)                   ; u~
134    ((0x0BC6)    0xAA)                   ; e
135    ((0x0BC7)    0xAB)                   ; e~
136    ((0x0BC8)    0xAC)                   ; ai
137    ((0x0BCA)    0xA3)                   ; o (right part)
138    ((0x0BCB)    0xA3)                   ; o~ (right part)
139    ((0x0BCC)    0xF7)                   ; au (right part)
140    ))
141
142  (independent
143   (cond
144    ;; VOWELS
145    ((0x0B85)    0xDC)                   ; a
146    ((0x0B86)    0xDD)                   ; a~
147    ((0x0B87)    0xDE)                   ; i
148    ((0x0B88)    0xDF)                   ; i~
149    ((0x0B89)    0xE0)                   ; u
150    ((0x0B8A)    0xE1)                   ; u~
151    ((0x0B8E)    0xE2)                   ; e
152    ((0x0B8F)    0xE3)                   ; e~
153    ((0x0B90)    0xE4)                   ; ai
154    ((0x0B92)    0xE5)                   ; o
155    ((0x0B93)    0xE6)                   ; o~
156    ((0x0B94)    0xE5 0xF7)              ; au
157    ;; VISARGA
158    ((0x0B83)    0xE7)
159    ))
160
161  (isolated-dependent-vowel
162   (cond
163    ((0x0BBE)    0x81 0xA3)              ; a~
164    ((0x0BBF)    0x81 0xA4)              ; i
165    ((0x0BC0)    0x81 0xA6)              ; i~
166    ((0x0BC1)    0x81 0xA7)              ; u
167    ((0x0BC2)    0x81 0xA8)              ; u~
168    ((0x0BC6)    0xAA 0x81)              ; e
169    ((0x0BC7)    0xAB 0x81)              ; e~
170    ((0x0BC8)    0xAC 0x81)              ; ai
171    ((0x0BCA)    0xAA 0x81 0xA3)         ; o
172    ((0x0BCB)    0xAB 0x81 0xA3)         ; o~
173    ((0x0BCC)    0xAA 0x81 0xF7)         ; au
174    )))
175
176 ;; LIGATURE STAGE
177 (category
178  ;; C: CONSONANT (except for K, R, S)
179  ;; K: CONSONANT K
180  ;; R: CONSONANT R
181  ;; S: CONSONANT S'
182  ;; V: LIGATURE VOWEL (except for I,i)
183  ;; I: DEPENDENT VOWEL I
184  ;; i: DEPENDENT VOWEL I~
185  ;; L: LEFT PART OF VOWEL 
186  ;; v: VIRAMA
187  ;; E: ELSE
188  ;;
189  (0x00 0xFF     ?E)
190  (0xA2          ?v)
191  (0xE9 0xFD     ?C)
192  (0xE8          ?K)
193  (0xF3          ?R)
194  (0xFB          ?S)
195  (0xA4          ?I)                     ; i
196  (0xA6          ?i)                     ; i~
197  (0xA7 0xA8     ?V)                     ; u, u~
198  (0xAA 0xAC     ?L)
199  )
200
201 (generator
202  (0
203   (cond
204    ;; 1  23      4      5    6
205    (" (L)(([CKRS](v)?)*)(KvS)(.)? "
206     (2 = *) (1 =) (5 0xFE) (6 =))
207    ;; 1  23      4      5
208    (" (L)(([CKRS](v)?)*)([CKRS].?) "
209     (2 = *) (1 =) (5 = =))
210    ("KvS[Iiv]?"
211     ligature-ks)
212    ("[CKRS][IiV]"
213     ligature = =)
214    ("SvRi"      0xFF)
215    ("."
216     =))
217   *)
218      
219  (ligature-ks
220   (cond
221    ((0xE8 0xA2 0xFB 0xA4)       0x56)   ; ksi
222    ((0xE8 0xA2 0xFB 0xA6)       0x72)   ; ksi~
223    ((0xE8 0xA2 0xFB 0xA2)       0x7A)   ; ks
224    ((0xE8 0xA2 0xFB)            0xFE)   ; ks
225    ))
226
227  (ligature
228   (cond
229    ((0xE8 0xA2 0x76 0xA2)       0x7A)   ; ks.
230
231    ((0xE8 0xA4)         0x41)           ; ki
232    ((0xE9 0xA4)         0x42)           ; n^i
233    ((0xEA 0xA4)         0x43)           ; ci
234    ((0xEB 0xA4)         0x44)           ; n~i
235    ((0xEC 0xA4)         0xAE)           ; t.i
236    ((0xED 0xA4)         0x45)           ; n.i
237    ((0xEE 0xA4)         0x46)           ; ti
238    ((0xEF 0xA4)         0x47)           ; ni
239    ((0xF0 0xA4)         0x48)           ; pi
240    ((0xF1 0xA4)         0x49)           ; mi
241    ((0xF2 0xA4)         0x4A)           ; yi
242    ((0xF3 0xA4)         0x4B)           ; ri
243    ((0xF4 0xA4)         0x4C)           ; li
244    ((0xF5 0xA4)         0x4D)           ; vi
245    ((0xF6 0xA4)         0x4E)           ; l_i
246    ((0xF7 0xA4)         0x4F)           ; l.i
247    ((0xF8 0xA4)         0x50)           ; r_i
248    ((0xF9 0xA4)         0x51)           ; n_i
249    ((0xFA 0xA4)         0x52)           ; si
250    ((0xFB 0xA4)         0x53)           ; s'i
251    ((0xFC 0xA4)         0x54)           ; ji
252    ((0xFD 0xA4)         0x55)           ; hi
253
254    ((0xE8 0xA6)         0x57)           ; ki~
255    ((0xE9 0xA6)         0x58)           ; n^i~
256    ((0xEA 0xA6)         0x59)           ; ci~
257    ((0xEB 0xA6)         0x5A)           ; n~i~
258    ((0xEC 0xA6)         0xAF)           ; t.i~
259    ((0xED 0xA6)         0x61)           ; n.i~
260    ((0xEE 0xA6)         0x62)           ; ti~
261    ((0xEF 0xA6)         0x63)           ; ni~
262    ((0xF0 0xA6)         0x64)           ; pi~
263    ((0xF1 0xA6)         0x65)           ; mi~
264    ((0xF2 0xA6)         0x66)           ; yi~
265    ((0xF3 0xA6)         0x67)           ; ri~
266    ((0xF4 0xA6)         0x68)           ; li~
267    ((0xF5 0xA6)         0x69)           ; vi~
268    ((0xF6 0xA6)         0x6A)           ; l_i~
269    ((0xF7 0xA6)         0x6B)           ; l.i~
270    ((0xF8 0xA6)         0x6C)           ; r_i~
271    ((0xF9 0xA6)         0x6D)           ; n_i~
272    ((0xFA 0xA6)         0x6E)           ; si~
273    ((0xFB 0xA6)         0x6F)           ; s'i~
274    ((0xFC 0xA6)         0x70)           ; ji~
275    ((0xFD 0xA6)         0x71)           ; hi~
276
277    ((0xE8 0xA7)         0xB0)           ; ku
278    ((0xE9 0xA7)         0xB1)           ; n^u
279    ((0xEA 0xA7)         0xB2)           ; cu
280    ((0xEB 0xA7)         0xB3)           ; n~u
281    ((0xEC 0xA7)         0xB4)           ; t.u
282    ((0xED 0xA7)         0xB5)           ; n.u
283    ((0xEE 0xA7)         0xB6)           ; tu
284    ((0xEF 0xA7)         0xB8)           ; nu
285    ((0xF0 0xA7)         0xB9)           ; pu
286    ((0xF1 0xA7)         0xBA)           ; mu
287    ((0xF2 0xA7)         0xBB)           ; yu
288    ((0xF3 0xA7)         0xBC)           ; ru
289    ((0xF4 0xA7)         0xBD)           ; lu
290    ((0xF5 0xA7)         0xBE)           ; vu
291    ((0xF6 0xA7)         0xBF)           ; l_u
292    ((0xF7 0xA7)         0xC0)           ; l.u
293    ((0xF8 0xA7)         0xC1)           ; r_u
294    ((0xF9 0xA7)         0xC2)           ; n_u
295
296    ((0xE8 0xA8)         0xC3)           ; ku~
297    ((0xE9 0xA8)         0xC4)           ; n^u~
298    ((0xEA 0xA8)         0xC5)           ; cu~
299    ((0xEB 0xA8)         0xC6)           ; n~u~
300    ((0xEC 0xA8)         0xC7)           ; t.u~
301    ((0xED 0xA8)         0xC8)           ; n.u~
302    ((0xEE 0xA8)         0xC9)           ; tu~
303    ((0xEF 0xA8)         0xCB)           ; nu~
304    ((0xF0 0xA8)         0xCC)           ; pu~
305    ((0xF1 0xA8)         0xCD)           ; mu~
306    ((0xF2 0xA8)         0xCE)           ; yu~
307    ((0xF3 0xA8)         0xCF)           ; ru~
308    ((0xF4 0xA8)         0xD6)           ; lu~
309    ((0xF5 0xA8)         0xD7)           ; vu~
310    ((0xF6 0xA8)         0xD8)           ; l_u~
311    ((0xF7 0xA8)         0xD9)           ; l.u~
312    ((0xF8 0xA8)         0xDA)           ; r_u~
313    ((0xF9 0xA8)         0xDB)           ; n_u~
314    ))
315  )
316
317 ;; Copyright (C) 2003, 2004, 2007
318 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
319 ;;   Registration Number H15PRO112
320
321 ;; This file is part of the m17n database; a sub-part of the m17n
322 ;; library.
323
324 ;; The m17n library is free software; you can redistribute it and/or
325 ;; modify it under the terms of the GNU Lesser General Public License
326 ;; as published by the Free Software Foundation; either version 2.1 of
327 ;; the License, or (at your option) any later version.
328
329 ;; The m17n library is distributed in the hope that it will be useful,
330 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
331 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
332 ;; Lesser General Public License for more details.
333
334 ;; You should have received a copy of the GNU Lesser General Public
335 ;; License along with the m17n library; if not, write to the Free
336 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
337 ;; Boston, MA 02110-1301, USA.
338
339 ;; Local Variables:
340 ;; mode: lisp
341 ;; End: