1*e1fe3e4aSElliott Hughes# OpenType Feature File specification, section 4.h, example 1. 2*e1fe3e4aSElliott Hughes# http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html 3*e1fe3e4aSElliott Hughes 4*e1fe3e4aSElliott Hugheslanguagesystem DFLT dflt; 5*e1fe3e4aSElliott Hugheslanguagesystem latn dflt; 6*e1fe3e4aSElliott Hugheslanguagesystem latn DEU; 7*e1fe3e4aSElliott Hugheslanguagesystem latn TRK; 8*e1fe3e4aSElliott Hugheslanguagesystem cyrl dflt; 9*e1fe3e4aSElliott Hughes 10*e1fe3e4aSElliott Hughesfeature smcp { 11*e1fe3e4aSElliott Hughes sub [a - z] by [A.sc - Z.sc]; 12*e1fe3e4aSElliott Hughes 13*e1fe3e4aSElliott Hughes # Since all the rules in this feature are of the same type, they 14*e1fe3e4aSElliott Hughes # will be grouped in a single lookup. Since no script or language 15*e1fe3e4aSElliott Hughes # keyword has been specified yet, the lookup will be registered 16*e1fe3e4aSElliott Hughes # for this feature under all the language systems. 17*e1fe3e4aSElliott Hughes} smcp; 18*e1fe3e4aSElliott Hughes 19*e1fe3e4aSElliott Hughesfeature liga { 20*e1fe3e4aSElliott Hughes sub f f by f_f; 21*e1fe3e4aSElliott Hughes sub f i by f_i; 22*e1fe3e4aSElliott Hughes sub f l by f_l; 23*e1fe3e4aSElliott Hughes 24*e1fe3e4aSElliott Hughes # Since all the rules in this feature are of the same type, they 25*e1fe3e4aSElliott Hughes # will be grouped in a single lookup. Since no script or language 26*e1fe3e4aSElliott Hughes # keyword has been specified yet, the lookup will be registered 27*e1fe3e4aSElliott Hughes # for this feature under all the language systems. 28*e1fe3e4aSElliott Hughes 29*e1fe3e4aSElliott Hughes script latn; 30*e1fe3e4aSElliott Hughes language dflt; 31*e1fe3e4aSElliott Hughes # lookupflag 0; (implicit) 32*e1fe3e4aSElliott Hughes sub c t by c_t; 33*e1fe3e4aSElliott Hughes sub c s by c_s; 34*e1fe3e4aSElliott Hughes 35*e1fe3e4aSElliott Hughes # The rules above will be placed in a lookup that is registered 36*e1fe3e4aSElliott Hughes # for all the specified languages for the script latn, but not any 37*e1fe3e4aSElliott Hughes # other scripts. 38*e1fe3e4aSElliott Hughes 39*e1fe3e4aSElliott Hughes language DEU; 40*e1fe3e4aSElliott Hughes # script latn; (stays the same) 41*e1fe3e4aSElliott Hughes # lookupflag 0; (stays the same) 42*e1fe3e4aSElliott Hughes sub c h by c_h; 43*e1fe3e4aSElliott Hughes sub c k by c_k; 44*e1fe3e4aSElliott Hughes 45*e1fe3e4aSElliott Hughes # The rules above will be placed in a lookup that is registered 46*e1fe3e4aSElliott Hughes # only under the script latn, language DEU. 47*e1fe3e4aSElliott Hughes 48*e1fe3e4aSElliott Hughes language TRK; 49*e1fe3e4aSElliott Hughes 50*e1fe3e4aSElliott Hughes # This will inherit both the top level default rules - the rules 51*e1fe3e4aSElliott Hughes # defined before the first 'script' statement, and the 52*e1fe3e4aSElliott Hughes # script-level default rules for 'latn': all the lookups of this 53*e1fe3e4aSElliott Hughes # feature defined after the 'script latn' statement, and before 54*e1fe3e4aSElliott Hughes # the language DEU statement. If TRK were not named here, it 55*e1fe3e4aSElliott Hughes # would not inherit the default rules for the script latn. 56*e1fe3e4aSElliott Hughes} liga; 57*e1fe3e4aSElliott Hughes 58*e1fe3e4aSElliott Hughes# TODO(sascha): Uncomment once we support 'pos' statements. 59*e1fe3e4aSElliott Hughes# feature kern { 60*e1fe3e4aSElliott Hughes# pos a y -150; 61*e1fe3e4aSElliott Hughes# # [more pos statements] 62*e1fe3e4aSElliott Hughes# # All the rules in this feature will be grouped in a single lookup 63*e1fe3e4aSElliott Hughes# # that is is registered under all the language systems. 64*e1fe3e4aSElliott Hughes# } kern; 65