mhosken 7a0c5e1ca2 Add fea generation support (#776)
* First round of adding fea output

No format tests but all test files give reasonable output so far.

* Get existing tests working

* Initial tests that work for fea2fea

* Get more tests working

Bug fixes and re-layout some tests to compare with fea2fea output.
Ranges and name parameters are not optimised yet.

* Handle vertical default values in fea2fea

* Hide fea2fea differences in lookupflags

* No reduce() in py3 so use a for loop
2016-12-20 11:10:29 +01:00

85 lines
1.5 KiB
Plaintext

languagesystem DFLT dflt;
@TOP_MARKS = [acute grave macron];
markClass [cedilla ogonek] <anchor 350 -20> @BOTTOM_MARKS;
@FRENCH_MARKS = [acute grave cedilla dieresis circumflex];
lookup A {
lookupflag RightToLeft;
pos one 1;
} A;
lookup B {
lookupflag IgnoreBaseGlyphs;
pos two 2;
} B;
lookup C {
lookupflag IgnoreLigatures;
pos four 4;
} C;
lookup D {
#test-fea2fea: lookupflag RightToLeft IgnoreBaseGlyphs IgnoreLigatures;
lookupflag 7;
pos seven 7;
} D;
lookup E {
lookupflag IgnoreMarks;
pos eight 8;
} E;
lookup F {
lookupflag MarkAttachmentType @TOP_MARKS;
pos F 1;
} F;
lookup G {
lookupflag MarkAttachmentType @BOTTOM_MARKS;
pos G 1;
} G;
lookup H {
lookupflag IgnoreLigatures MarkAttachmentType @TOP_MARKS;
pos H 1;
} H;
lookup I {
lookupflag UseMarkFilteringSet @TOP_MARKS;
pos I 1;
} I;
lookup J {
# @FRENCH_MARKS overlaps with @TOP_MARKS.
# Other than with MarkAttachmentType, the same glyph may appear
# in multiple glyphsets for UseMarkFilteringSet. Make sure that
# our implementation can handle this.
lookupflag UseMarkFilteringSet @FRENCH_MARKS;
pos J 1;
} J;
lookup K {
lookupflag IgnoreLigatures UseMarkFilteringSet @TOP_MARKS;
pos K 1;
} K;
lookup L {
pos L 1;
} L;
feature test {
lookup A;
lookup B;
lookup C;
lookup D;
lookup E;
lookup F;
lookup G;
lookup H;
lookup I;
lookup J;
lookup K;
lookup L;
} test;