xref: /aosp_15_r20/external/fonttools/Tests/voltLib/data/Nutso.fea (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
1# Glyph classes
2@dnom = [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom];
3@numerals = [zero one two three four five six seven eight nine];
4@numr = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr];
5@slash = [slash fraction];
6
7# Mark classes
8markClass eight.numr <anchor 0 0> @INIT.1.10;
9markClass eight.numr <anchor 0 0> @INIT.2.10;
10markClass eight.numr <anchor 0 0> @INIT.3.10;
11markClass eight.numr <anchor 0 0> @INIT.4.10;
12markClass eight.numr <anchor 0 0> @INIT.5.10;
13markClass eight.numr <anchor 0 0> @INIT.6.10;
14markClass eight.numr <anchor 0 0> @INIT.7.10;
15markClass eight.numr <anchor 0 0> @INIT.8.10;
16markClass eight.numr <anchor 0 0> @INIT.9.10;
17markClass eight.numr <anchor 0 0> @NUMRNUMR;
18markClass five.numr <anchor 0 0> @INIT.1.10;
19markClass five.numr <anchor 0 0> @INIT.2.10;
20markClass five.numr <anchor 0 0> @INIT.3.10;
21markClass five.numr <anchor 0 0> @INIT.4.10;
22markClass five.numr <anchor 0 0> @INIT.5.10;
23markClass five.numr <anchor 0 0> @INIT.6.10;
24markClass five.numr <anchor 0 0> @INIT.7.10;
25markClass five.numr <anchor 0 0> @INIT.8.10;
26markClass five.numr <anchor 0 0> @INIT.9.10;
27markClass five.numr <anchor 0 0> @NUMRNUMR;
28markClass four.numr <anchor 0 0> @INIT.1.10;
29markClass four.numr <anchor 0 0> @INIT.2.10;
30markClass four.numr <anchor 0 0> @INIT.3.10;
31markClass four.numr <anchor 0 0> @INIT.4.10;
32markClass four.numr <anchor 0 0> @INIT.5.10;
33markClass four.numr <anchor 0 0> @INIT.6.10;
34markClass four.numr <anchor 0 0> @INIT.7.10;
35markClass four.numr <anchor 0 0> @INIT.8.10;
36markClass four.numr <anchor 0 0> @INIT.9.10;
37markClass four.numr <anchor 0 0> @NUMRNUMR;
38markClass nine.numr <anchor 0 0> @INIT.1.10;
39markClass nine.numr <anchor 0 0> @INIT.2.10;
40markClass nine.numr <anchor 0 0> @INIT.3.10;
41markClass nine.numr <anchor 0 0> @INIT.4.10;
42markClass nine.numr <anchor 0 0> @INIT.5.10;
43markClass nine.numr <anchor 0 0> @INIT.6.10;
44markClass nine.numr <anchor 0 0> @INIT.7.10;
45markClass nine.numr <anchor 0 0> @INIT.8.10;
46markClass nine.numr <anchor 0 0> @INIT.9.10;
47markClass nine.numr <anchor 0 0> @NUMRNUMR;
48markClass one.numr <anchor 0 0> @INIT.1.10;
49markClass one.numr <anchor 0 0> @INIT.2.10;
50markClass one.numr <anchor 0 0> @INIT.3.10;
51markClass one.numr <anchor 0 0> @INIT.4.10;
52markClass one.numr <anchor 0 0> @INIT.5.10;
53markClass one.numr <anchor 0 0> @INIT.6.10;
54markClass one.numr <anchor 0 0> @INIT.7.10;
55markClass one.numr <anchor 0 0> @INIT.8.10;
56markClass one.numr <anchor 0 0> @INIT.9.10;
57markClass one.numr <anchor 0 0> @NUMRNUMR;
58markClass seven.numr <anchor 0 0> @INIT.1.10;
59markClass seven.numr <anchor 0 0> @INIT.2.10;
60markClass seven.numr <anchor 0 0> @INIT.3.10;
61markClass seven.numr <anchor 0 0> @INIT.4.10;
62markClass seven.numr <anchor 0 0> @INIT.5.10;
63markClass seven.numr <anchor 0 0> @INIT.6.10;
64markClass seven.numr <anchor 0 0> @INIT.7.10;
65markClass seven.numr <anchor 0 0> @INIT.8.10;
66markClass seven.numr <anchor 0 0> @INIT.9.10;
67markClass seven.numr <anchor 0 0> @NUMRNUMR;
68markClass six.numr <anchor 0 0> @INIT.1.10;
69markClass six.numr <anchor 0 0> @INIT.2.10;
70markClass six.numr <anchor 0 0> @INIT.3.10;
71markClass six.numr <anchor 0 0> @INIT.4.10;
72markClass six.numr <anchor 0 0> @INIT.5.10;
73markClass six.numr <anchor 0 0> @INIT.6.10;
74markClass six.numr <anchor 0 0> @INIT.7.10;
75markClass six.numr <anchor 0 0> @INIT.8.10;
76markClass six.numr <anchor 0 0> @INIT.9.10;
77markClass six.numr <anchor 0 0> @NUMRNUMR;
78markClass three.numr <anchor 0 0> @INIT.1.10;
79markClass three.numr <anchor 0 0> @INIT.2.10;
80markClass three.numr <anchor 0 0> @INIT.3.10;
81markClass three.numr <anchor 0 0> @INIT.4.10;
82markClass three.numr <anchor 0 0> @INIT.5.10;
83markClass three.numr <anchor 0 0> @INIT.6.10;
84markClass three.numr <anchor 0 0> @INIT.7.10;
85markClass three.numr <anchor 0 0> @INIT.8.10;
86markClass three.numr <anchor 0 0> @INIT.9.10;
87markClass three.numr <anchor 0 0> @NUMRNUMR;
88markClass two.numr <anchor 0 0> @INIT.1.10;
89markClass two.numr <anchor 0 0> @INIT.2.10;
90markClass two.numr <anchor 0 0> @INIT.3.10;
91markClass two.numr <anchor 0 0> @INIT.4.10;
92markClass two.numr <anchor 0 0> @INIT.5.10;
93markClass two.numr <anchor 0 0> @INIT.6.10;
94markClass two.numr <anchor 0 0> @INIT.7.10;
95markClass two.numr <anchor 0 0> @INIT.8.10;
96markClass two.numr <anchor 0 0> @INIT.9.10;
97markClass two.numr <anchor 0 0> @NUMRNUMR;
98markClass zero.numr <anchor 0 0> @INIT.1.10;
99markClass zero.numr <anchor 0 0> @INIT.2.10;
100markClass zero.numr <anchor 0 0> @INIT.3.10;
101markClass zero.numr <anchor 0 0> @INIT.4.10;
102markClass zero.numr <anchor 0 0> @INIT.5.10;
103markClass zero.numr <anchor 0 0> @INIT.6.10;
104markClass zero.numr <anchor 0 0> @INIT.7.10;
105markClass zero.numr <anchor 0 0> @INIT.8.10;
106markClass zero.numr <anchor 0 0> @INIT.9.10;
107markClass zero.numr <anchor 0 0> @NUMRNUMR;
108
109# Lookups
110lookup frac.numr {
111    sub @numerals by @numr;
112} frac.numr;
113
114lookup frac.dnom {
115    sub [@slash @dnom] @numr' by @dnom;
116} frac.dnom;
117
118lookup frac.noslash {
119    sub @numr slash by @numr;
120    sub @numr fraction by @numr;
121} frac.noslash;
122
123lookup frac.fracinit {
124    ignore sub @numr @numr';
125    sub @numr' by fracinit @numr;
126} frac.fracinit;
127
128lookup kern.numeral_to_fraction {
129    enum pos @numerals fracinit 140;
130    pos @dnom @numerals 140;
131} kern.numeral_to_fraction;
132
133lookup fracmark.init_1.10_target {
134    pos base fracinit
135        <anchor 3150 0> mark @INIT.1.10;
136} fracmark.init_1.10_target;
137
138lookup fracmark.init_2.10_target {
139    pos base fracinit
140        <anchor 2800 0> mark @INIT.2.10;
141} fracmark.init_2.10_target;
142
143lookup fracmark.init_3.10_target {
144    pos base fracinit
145        <anchor 2450 0> mark @INIT.3.10;
146} fracmark.init_3.10_target;
147
148lookup fracmark.init_4.10_target {
149    pos base fracinit
150        <anchor 2100 0> mark @INIT.4.10;
151} fracmark.init_4.10_target;
152
153lookup fracmark.init_5.10_target {
154    pos base fracinit
155        <anchor 1750 0> mark @INIT.5.10;
156} fracmark.init_5.10_target;
157
158lookup fracmark.init_6.10_target {
159    pos base fracinit
160        <anchor 1400 0> mark @INIT.6.10;
161} fracmark.init_6.10_target;
162
163lookup fracmark.init_7.10_target {
164    pos base fracinit
165        <anchor 1050 0> mark @INIT.7.10;
166} fracmark.init_7.10_target;
167
168lookup fracmark.init_8.10_target {
169    pos base fracinit
170        <anchor 700 0> mark @INIT.8.10;
171} fracmark.init_8.10_target;
172
173lookup fracmark.init_9.10_target {
174    pos base fracinit
175        <anchor 350 0> mark @INIT.9.10;
176} fracmark.init_9.10_target;
177
178lookup fracmark.init {
179    # fracmark.init\1.10
180    pos [@numr]' lookup fracmark.init_1.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
181    subtable;
182    # fracmark.init\2.10
183    pos [@numr]' lookup fracmark.init_2.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
184    pos [@numr]' lookup fracmark.init_2.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
185    subtable;
186    # fracmark.init\3.10
187    pos [@numr]' lookup fracmark.init_3.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
188    pos [@numr]' lookup fracmark.init_3.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
189    pos [@numr]' lookup fracmark.init_3.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
190    subtable;
191    # fracmark.init\4.10
192    pos [@numr]' lookup fracmark.init_4.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
193    pos [@numr]' lookup fracmark.init_4.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
194    pos [@numr]' lookup fracmark.init_4.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
195    pos [@numr]' lookup fracmark.init_4.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
196    subtable;
197    # fracmark.init\5.10
198    pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
199    pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
200    pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
201    pos [@numr]' lookup fracmark.init_5.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
202    pos [@numr]' lookup fracmark.init_5.10_target @dnom @dnom @dnom @dnom @dnom @dnom;
203    subtable;
204    # fracmark.init\6.10
205    pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
206    pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
207    pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
208    pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
209    pos [@numr]' lookup fracmark.init_6.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom;
210    pos [@numr]' lookup fracmark.init_6.10_target @dnom @dnom @dnom @dnom @dnom;
211    subtable;
212    # fracmark.init\7.10
213    pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
214    pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
215    pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
216    pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
217    pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom;
218    pos [@numr]' lookup fracmark.init_7.10_target @numr @dnom @dnom @dnom @dnom @dnom;
219    pos [@numr]' lookup fracmark.init_7.10_target @dnom @dnom @dnom @dnom;
220    subtable;
221    # fracmark.init\8.10
222    pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
223    pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
224    pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
225    pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
226    pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom;
227    pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom;
228    pos [@numr]' lookup fracmark.init_8.10_target @numr @dnom @dnom @dnom @dnom;
229    pos [@numr]' lookup fracmark.init_8.10_target @dnom @dnom @dnom;
230    subtable;
231    # fracmark.init\9.10
232    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
233    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
234    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
235    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom;
236    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom;
237    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom;
238    pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @dnom @dnom @dnom @dnom;
239    pos [@numr]' lookup fracmark.init_9.10_target @numr @dnom @dnom @dnom;
240    pos [@numr]' lookup fracmark.init_9.10_target @dnom @dnom;
241} fracmark.init;
242
243lookup fracmkmk.numrspacing {
244    pos mark zero.numr
245        <anchor 700 0> mark @NUMRNUMR;
246    pos mark one.numr
247        <anchor 700 0> mark @NUMRNUMR;
248    pos mark two.numr
249        <anchor 700 0> mark @NUMRNUMR;
250    pos mark three.numr
251        <anchor 700 0> mark @NUMRNUMR;
252    pos mark four.numr
253        <anchor 700 0> mark @NUMRNUMR;
254    pos mark five.numr
255        <anchor 700 0> mark @NUMRNUMR;
256    pos mark six.numr
257        <anchor 700 0> mark @NUMRNUMR;
258    pos mark seven.numr
259        <anchor 700 0> mark @NUMRNUMR;
260    pos mark eight.numr
261        <anchor 700 0> mark @NUMRNUMR;
262    pos mark nine.numr
263        <anchor 700 0> mark @NUMRNUMR;
264} fracmkmk.numrspacing;
265
266# Features
267feature afrc {
268    script DFLT;
269    language dflt;
270    lookup frac.numr;
271    lookup frac.dnom;
272    lookup frac.noslash;
273    lookup frac.fracinit;
274    script latn;
275    language dflt;
276    lookup frac.numr;
277    lookup frac.dnom;
278    lookup frac.noslash;
279    lookup frac.fracinit;
280} afrc;
281
282feature frac {
283    script DFLT;
284    language dflt;
285    lookup frac.numr;
286    lookup frac.dnom;
287    lookup frac.noslash;
288    lookup frac.fracinit;
289    script latn;
290    language dflt;
291    lookup frac.numr;
292    lookup frac.dnom;
293    lookup frac.noslash;
294    lookup frac.fracinit;
295} frac;
296
297feature kern {
298    script DFLT;
299    language dflt;
300    lookup kern.numeral_to_fraction;
301    script latn;
302    language dflt;
303    lookup kern.numeral_to_fraction;
304} kern;
305
306feature mark {
307    script DFLT;
308    language dflt;
309    lookup fracmark.init;
310    script latn;
311    language dflt;
312    lookup fracmark.init;
313} mark;
314
315feature mkmk {
316    script DFLT;
317    language dflt;
318    lookup fracmkmk.numrspacing;
319    script latn;
320    language dflt;
321    lookup fracmkmk.numrspacing;
322} mkmk;
323
324@GDEF_base = [glyph0 \NULL CR space zero one two three four five six seven eight nine slash fraction fracinit zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom];
325@GDEF_mark = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr];
326table GDEF {
327    GlyphClassDef @GDEF_base, , @GDEF_mark, ;
328} GDEF;
329