-
Notifications
You must be signed in to change notification settings - Fork 14
/
features.fea
111 lines (101 loc) · 3.48 KB
/
features.fea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
languagesystem DFLT dflt;
languagesystem latn dflt;
feature dlig {
lookup dlig1 {
sub s t by st.dlig;
sub n d by nd.dlig;
sub r d by rd.dlig;
sub t h by th.dlig;
sub t h e by the.dlig;
sub a n d by and.dlig;
sub o f by of.dlig;
} dlig1;
} dlig;
## AUTOMATICALLY GENERATED ##
@A = [A Agrave Aacute Acircumflex Atilde Adieresis Aring Amacron Abreve Aogonek];
@C = [C Cacute Ccircumflex Cdotaccent Ccaron Ccedilla];
@D = [D Dcaron];
@E = [E Egrave Eacute Ecircumflex Edieresis Emacron Ebreve Edotaccent Ecaron Eogonek];
@G = [G Gcircumflex Gbreve Gdotaccent uni0122];
@H = [H Hcircumflex];
@I = [I Igrave Iacute Icircumflex Idieresis Itilde Imacron Ibreve Idotaccent Iogonek];
@J = [J Jcircumflex];
@K = [K uni0136];
@L = [L Lacute uni013B Lcaron];
@N = [N Ntilde Nacute uni0145 Ncaron];
@O = [O Ograve Oacute Ocircumflex Otilde Odieresis Omacron Obreve Ohungarumlaut];
@R = [R Racute uni0156 Rcaron];
@S = [S Sacute Scircumflex Scaron Scedilla];
@T = [T Tcaron uni0162];
@U = [U Ugrave Uacute Ucircumflex Udieresis Utilde Umacron Ubreve Uring Uhungarumlaut Uogonek];
@W = [W Wcircumflex];
@Y = [Y Yacute Ycircumflex Ydieresis];
@Z = [Z Zacute Zdotaccent Zcaron];
@a = [a agrave aacute acircumflex atilde adieresis aring amacron abreve aogonek];
@c = [c cacute ccircumflex cdotaccent ccaron ccedilla];
@d = [d dcaron];
@e = [e egrave eacute ecircumflex edieresis emacron ebreve edotaccent ecaron eogonek];
@g = [g gcircumflex gbreve gdotaccent uni0123];
@h = [h hcircumflex];
@i = [i igrave iacute icircumflex idieresis itilde imacron ibreve iogonek dotlessi];
@j = [j jcircumflex dotlessj];
@k = [k uni0137];
@l = [l lacute uni013C lcaron];
@n = [n ntilde nacute uni0146 ncaron];
@o = [o ograve oacute ocircumflex otilde odieresis omacron obreve ohungarumlaut];
@r = [r racute uni0157 rcaron];
@s = [s sacute scircumflex scaron scedilla];
@t = [t tcaron uni0163];
@u = [u ugrave uacute ucircumflex udieresis utilde umacron ubreve uring uhungarumlaut uogonek];
@w = [w wcircumflex];
@y = [y yacute ydieresis ycircumflex];
@z = [z zacute zdotaccent zcaron];
# Lonely letters
@b = [b];
@f = [f];
@m = [m];
@p = [p];
@q = [q];
@v = [v];
@x = [x];
@B = [B];
@F = [F];
@M = [M];
@P = [P];
@Q = [Q];
@V = [V];
@X = [X];
@lower = [@a @b @c @d @e @f @g @h @i @j @k @l @m @n @o @p @q @r @s @t @u @v @w @x @y @z schwa];
@lower_ligas = [f_f f_l f_f_l f_i f_f_i];
@lowerA = [@lower @lower_ligas];
@upper = [@A @B @C @D @E @F @G @H @I @J @K @L @M @N @O @P @Q @R @S @T @U @V @W @X @Y @Z Schwa];
@digit = [zero one two three four five six seven eight nine];
feature liga {
sub f l by f_l;
sub f i by f_i;
sub f f by f_f;
sub f f l by f_f_l;
sub f f i by f_f_i;
} liga;
feature salt {
sub hyphen by uni2E17.alt;
sub uni2E17 by uni2E17.alt;
} salt;
@combiningmarks = [gravecomb acutecomb circumflexcomb tildecomb macroncomb overlinecomb brevecomb periodcomb dieresiscomb ringabovecomb hungarumlautcomb caroncomb doublegravecomb uni0315 cedillacomb ogonekcomb uni0364];
feature ccmp {
sub [i j]' @combiningmarks by [dotlessi dotlessj];
} ccmp;
@roundlc = [@b @d @h @o @p eth thorn];
feature hist {
lookup hist1 {
lookupflag 0;
sub @roundlc r' by uniA75B;
} hist1;
} hist;
feature kern {
lookup kernsub {
lookupflag IgnoreMarks;
sub [@digit @upper] space' @upper by enspace;
sub @upper space' [@digit @upper] by enspace;
} kernsub;
} kern;