diff options
author | Haibo Huang <hhb@google.com> | 2020-12-04 18:55:08 -0800 |
---|---|---|
committer | Haibo Huang <hhb@google.com> | 2020-12-04 18:55:08 -0800 |
commit | 7de6799fd482434c6d752d22bceb2d139931b42b (patch) | |
tree | 5da5b59f45cfc3365a5d6e254a84285fdc5c7b58 /Tests/feaLib | |
parent | 5ad7e67a4fae992c0775829298e3846987a98c16 (diff) | |
download | fonttools-7de6799fd482434c6d752d22bceb2d139931b42b.tar.gz |
Upgrade fonttools to 4.18.0
Test: make
Change-Id: I680f435ae3589363be8363d2ba6d2e48e951d71a
Diffstat (limited to 'Tests/feaLib')
-rw-r--r-- | Tests/feaLib/builder_test.py | 3 | ||||
-rw-r--r-- | Tests/feaLib/data/ChainPosSubtable.ttx | 36 | ||||
-rw-r--r-- | Tests/feaLib/data/GPOS_8.ttx | 68 | ||||
-rw-r--r-- | Tests/feaLib/data/GSUB_5_formats.fea | 20 | ||||
-rw-r--r-- | Tests/feaLib/data/GSUB_5_formats.ttx | 197 | ||||
-rw-r--r-- | Tests/feaLib/data/GSUB_6.ttx | 52 | ||||
-rw-r--r-- | Tests/feaLib/data/GSUB_6_formats.fea | 20 | ||||
-rw-r--r-- | Tests/feaLib/data/GSUB_6_formats.ttx | 256 | ||||
-rw-r--r-- | Tests/feaLib/data/ZeroValue_ChainSinglePos_horizontal.ttx | 69 | ||||
-rw-r--r-- | Tests/feaLib/data/ZeroValue_ChainSinglePos_vertical.ttx | 69 | ||||
-rw-r--r-- | Tests/feaLib/data/bug512.ttx | 83 | ||||
-rw-r--r-- | Tests/feaLib/data/spec5f_ii_3.ttx | 212 |
12 files changed, 784 insertions, 301 deletions
diff --git a/Tests/feaLib/builder_test.py b/Tests/feaLib/builder_test.py index 8e987522..151cd896 100644 --- a/Tests/feaLib/builder_test.py +++ b/Tests/feaLib/builder_test.py @@ -72,7 +72,8 @@ class BuilderTest(unittest.TestCase): PairPosSubtable ChainSubstSubtable SubstSubtable ChainPosSubtable LigatureSubtable AlternateSubtable MultipleSubstSubtable SingleSubstSubtable aalt_chain_contextual_subst AlternateChained - MultipleLookupsPerGlyph MultipleLookupsPerGlyph2 + MultipleLookupsPerGlyph MultipleLookupsPerGlyph2 GSUB_6_formats + GSUB_5_formats """.split() def __init__(self, methodName): diff --git a/Tests/feaLib/data/ChainPosSubtable.ttx b/Tests/feaLib/data/ChainPosSubtable.ttx index a780ccb7..695dd862 100644 --- a/Tests/feaLib/data/ChainPosSubtable.ttx +++ b/Tests/feaLib/data/ChainPosSubtable.ttx @@ -67,24 +67,26 @@ <LookupListIndex value="1"/> </PosLookupRecord> </ChainContextPos> - <ChainContextPos index="1" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="X"/> - </BacktrackCoverage> - <!-- InputGlyphCount=1 --> - <InputCoverage index="0"> + <ChainContextPos index="1" Format="1"> + <Coverage> <Glyph value="A"/> - </InputCoverage> - <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0"> - <Glyph value="Y"/> - </LookAheadCoverage> - <!-- PosCount=1 --> - <PosLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="2"/> - </PosLookupRecord> + </Coverage> + <!-- ChainPosRuleSetCount=1 --> + <ChainPosRuleSet index="0"> + <!-- ChainPosRuleCount=1 --> + <ChainPosRule index="0"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="X"/> + <!-- InputGlyphCount=1 --> + <!-- LookAheadGlyphCount=1 --> + <LookAhead index="0" value="Y"/> + <!-- PosCount=1 --> + <PosLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="2"/> + </PosLookupRecord> + </ChainPosRule> + </ChainPosRuleSet> </ChainContextPos> <ChainContextPos index="2" Format="3"> <!-- BacktrackGlyphCount=1 --> diff --git a/Tests/feaLib/data/GPOS_8.ttx b/Tests/feaLib/data/GPOS_8.ttx index 86f97560..4d790715 100644 --- a/Tests/feaLib/data/GPOS_8.ttx +++ b/Tests/feaLib/data/GPOS_8.ttx @@ -34,42 +34,40 @@ <LookupType value="8"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <ChainContextPos index="0" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="A"/> - </BacktrackCoverage> - <!-- InputGlyphCount=4 --> - <InputCoverage index="0"> - <Glyph value="one"/> - </InputCoverage> - <InputCoverage index="1"> - <Glyph value="two"/> - </InputCoverage> - <InputCoverage index="2"> + <ChainContextPos index="0" Format="1"> + <Coverage> <Glyph value="one"/> - </InputCoverage> - <InputCoverage index="3"> - <Glyph value="two"/> - </InputCoverage> - <!-- LookAheadGlyphCount=0 --> - <!-- PosCount=4 --> - <PosLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </PosLookupRecord> - <PosLookupRecord index="1"> - <SequenceIndex value="1"/> - <LookupListIndex value="1"/> - </PosLookupRecord> - <PosLookupRecord index="2"> - <SequenceIndex value="2"/> - <LookupListIndex value="2"/> - </PosLookupRecord> - <PosLookupRecord index="3"> - <SequenceIndex value="3"/> - <LookupListIndex value="2"/> - </PosLookupRecord> + </Coverage> + <!-- ChainPosRuleSetCount=1 --> + <ChainPosRuleSet index="0"> + <!-- ChainPosRuleCount=1 --> + <ChainPosRule index="0"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="A"/> + <!-- InputGlyphCount=4 --> + <Input index="0" value="two"/> + <Input index="1" value="one"/> + <Input index="2" value="two"/> + <!-- LookAheadGlyphCount=0 --> + <!-- PosCount=4 --> + <PosLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </PosLookupRecord> + <PosLookupRecord index="1"> + <SequenceIndex value="1"/> + <LookupListIndex value="1"/> + </PosLookupRecord> + <PosLookupRecord index="2"> + <SequenceIndex value="2"/> + <LookupListIndex value="2"/> + </PosLookupRecord> + <PosLookupRecord index="3"> + <SequenceIndex value="3"/> + <LookupListIndex value="2"/> + </PosLookupRecord> + </ChainPosRule> + </ChainPosRuleSet> </ChainContextPos> </Lookup> <Lookup index="1"> diff --git a/Tests/feaLib/data/GSUB_5_formats.fea b/Tests/feaLib/data/GSUB_5_formats.fea new file mode 100644 index 00000000..3acb7edf --- /dev/null +++ b/Tests/feaLib/data/GSUB_5_formats.fea @@ -0,0 +1,20 @@ +lookup GSUB5f1 { + ignore sub three four; + ignore sub four five; +} GSUB5f1; + +lookup GSUB5f2 { + ignore sub [a - z] [A - H] [I - Z]; + ignore sub [a - z] [A - H] [I - Z]; + ignore sub [a - z] [I - Z] [A - H]; +} GSUB5f2; + +lookup GSUB5f3 { + ignore sub e; +} GSUB5f3; + +feature test { + lookup GSUB5f1; + lookup GSUB5f2; + lookup GSUB5f3; +} test; diff --git a/Tests/feaLib/data/GSUB_5_formats.ttx b/Tests/feaLib/data/GSUB_5_formats.ttx new file mode 100644 index 00000000..80196aaa --- /dev/null +++ b/Tests/feaLib/data/GSUB_5_formats.ttx @@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont> + + <GSUB> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=1 --> + <FeatureIndex index="0" value="0"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=1 --> + <FeatureRecord index="0"> + <FeatureTag value="test"/> + <Feature> + <!-- LookupCount=3 --> + <LookupListIndex index="0" value="0"/> + <LookupListIndex index="1" value="1"/> + <LookupListIndex index="2" value="2"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=3 --> + <Lookup index="0"> + <LookupType value="5"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <ContextSubst index="0" Format="1"> + <Coverage> + <Glyph value="three"/> + <Glyph value="four"/> + </Coverage> + <!-- SubRuleSetCount=2 --> + <SubRuleSet index="0"> + <!-- SubRuleCount=1 --> + <SubRule index="0"> + <!-- GlyphCount=2 --> + <!-- SubstCount=0 --> + <Input index="0" value="four"/> + </SubRule> + </SubRuleSet> + <SubRuleSet index="1"> + <!-- SubRuleCount=1 --> + <SubRule index="0"> + <!-- GlyphCount=2 --> + <!-- SubstCount=0 --> + <Input index="0" value="five"/> + </SubRule> + </SubRuleSet> + </ContextSubst> + </Lookup> + <Lookup index="1"> + <LookupType value="5"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <ContextSubst index="0" Format="2"> + <Coverage> + <Glyph value="a"/> + <Glyph value="b"/> + <Glyph value="c"/> + <Glyph value="d"/> + <Glyph value="e"/> + <Glyph value="f"/> + <Glyph value="g"/> + <Glyph value="h"/> + <Glyph value="i"/> + <Glyph value="j"/> + <Glyph value="k"/> + <Glyph value="l"/> + <Glyph value="m"/> + <Glyph value="n"/> + <Glyph value="o"/> + <Glyph value="p"/> + <Glyph value="q"/> + <Glyph value="r"/> + <Glyph value="s"/> + <Glyph value="t"/> + <Glyph value="u"/> + <Glyph value="v"/> + <Glyph value="w"/> + <Glyph value="x"/> + <Glyph value="y"/> + <Glyph value="z"/> + </Coverage> + <ClassDef> + <ClassDef glyph="A" class="3"/> + <ClassDef glyph="B" class="3"/> + <ClassDef glyph="C" class="3"/> + <ClassDef glyph="D" class="3"/> + <ClassDef glyph="E" class="3"/> + <ClassDef glyph="F" class="3"/> + <ClassDef glyph="G" class="3"/> + <ClassDef glyph="H" class="3"/> + <ClassDef glyph="I" class="2"/> + <ClassDef glyph="J" class="2"/> + <ClassDef glyph="K" class="2"/> + <ClassDef glyph="L" class="2"/> + <ClassDef glyph="M" class="2"/> + <ClassDef glyph="N" class="2"/> + <ClassDef glyph="O" class="2"/> + <ClassDef glyph="P" class="2"/> + <ClassDef glyph="Q" class="2"/> + <ClassDef glyph="R" class="2"/> + <ClassDef glyph="S" class="2"/> + <ClassDef glyph="T" class="2"/> + <ClassDef glyph="U" class="2"/> + <ClassDef glyph="V" class="2"/> + <ClassDef glyph="W" class="2"/> + <ClassDef glyph="X" class="2"/> + <ClassDef glyph="Y" class="2"/> + <ClassDef glyph="Z" class="2"/> + <ClassDef glyph="a" class="1"/> + <ClassDef glyph="b" class="1"/> + <ClassDef glyph="c" class="1"/> + <ClassDef glyph="d" class="1"/> + <ClassDef glyph="e" class="1"/> + <ClassDef glyph="f" class="1"/> + <ClassDef glyph="g" class="1"/> + <ClassDef glyph="h" class="1"/> + <ClassDef glyph="i" class="1"/> + <ClassDef glyph="j" class="1"/> + <ClassDef glyph="k" class="1"/> + <ClassDef glyph="l" class="1"/> + <ClassDef glyph="m" class="1"/> + <ClassDef glyph="n" class="1"/> + <ClassDef glyph="o" class="1"/> + <ClassDef glyph="p" class="1"/> + <ClassDef glyph="q" class="1"/> + <ClassDef glyph="r" class="1"/> + <ClassDef glyph="s" class="1"/> + <ClassDef glyph="t" class="1"/> + <ClassDef glyph="u" class="1"/> + <ClassDef glyph="v" class="1"/> + <ClassDef glyph="w" class="1"/> + <ClassDef glyph="x" class="1"/> + <ClassDef glyph="y" class="1"/> + <ClassDef glyph="z" class="1"/> + </ClassDef> + <!-- SubClassSetCount=4 --> + <SubClassSet index="0"> + <!-- SubClassRuleCount=0 --> + </SubClassSet> + <SubClassSet index="1"> + <!-- SubClassRuleCount=3 --> + <SubClassRule index="0"> + <!-- GlyphCount=3 --> + <!-- SubstCount=0 --> + <Class index="0" value="3"/> + <Class index="1" value="2"/> + </SubClassRule> + <SubClassRule index="1"> + <!-- GlyphCount=3 --> + <!-- SubstCount=0 --> + <Class index="0" value="3"/> + <Class index="1" value="2"/> + </SubClassRule> + <SubClassRule index="2"> + <!-- GlyphCount=3 --> + <!-- SubstCount=0 --> + <Class index="0" value="2"/> + <Class index="1" value="3"/> + </SubClassRule> + </SubClassSet> + <SubClassSet index="2"> + <!-- SubClassRuleCount=0 --> + </SubClassSet> + <SubClassSet index="3"> + <!-- SubClassRuleCount=0 --> + </SubClassSet> + </ContextSubst> + </Lookup> + <Lookup index="2"> + <LookupType value="5"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <ContextSubst index="0" Format="3"> + <!-- GlyphCount=1 --> + <!-- SubstCount=0 --> + <Coverage index="0"> + <Glyph value="e"/> + </Coverage> + </ContextSubst> + </Lookup> + </LookupList> + </GSUB> + +</ttFont> diff --git a/Tests/feaLib/data/GSUB_6.ttx b/Tests/feaLib/data/GSUB_6.ttx index f32e47d9..18405d25 100644 --- a/Tests/feaLib/data/GSUB_6.ttx +++ b/Tests/feaLib/data/GSUB_6.ttx @@ -229,36 +229,30 @@ <LookupType value="6"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <ChainContextSubst index="0" Format="3"> - <!-- BacktrackGlyphCount=3 --> - <BacktrackCoverage index="0"> - <Glyph value="E"/> - </BacktrackCoverage> - <BacktrackCoverage index="1"> - <Glyph value="D"/> - </BacktrackCoverage> - <BacktrackCoverage index="2"> - <Glyph value="A"/> - </BacktrackCoverage> - <!-- InputGlyphCount=1 --> - <InputCoverage index="0"> + <ChainContextSubst index="0" Format="1"> + <Coverage> <Glyph value="c_t"/> - </InputCoverage> - <!-- LookAheadGlyphCount=3 --> - <LookAheadCoverage index="0"> - <Glyph value="V"/> - </LookAheadCoverage> - <LookAheadCoverage index="1"> - <Glyph value="W"/> - </LookAheadCoverage> - <LookAheadCoverage index="2"> - <Glyph value="X"/> - </LookAheadCoverage> - <!-- SubstCount=1 --> - <SubstLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="2"/> - </SubstLookupRecord> + </Coverage> + <!-- ChainSubRuleSetCount=1 --> + <ChainSubRuleSet index="0"> + <!-- ChainSubRuleCount=1 --> + <ChainSubRule index="0"> + <!-- BacktrackGlyphCount=3 --> + <Backtrack index="0" value="E"/> + <Backtrack index="1" value="D"/> + <Backtrack index="2" value="A"/> + <!-- InputGlyphCount=1 --> + <!-- LookAheadGlyphCount=3 --> + <LookAhead index="0" value="V"/> + <LookAhead index="1" value="W"/> + <LookAhead index="2" value="X"/> + <!-- SubstCount=1 --> + <SubstLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="2"/> + </SubstLookupRecord> + </ChainSubRule> + </ChainSubRuleSet> </ChainContextSubst> </Lookup> </LookupList> diff --git a/Tests/feaLib/data/GSUB_6_formats.fea b/Tests/feaLib/data/GSUB_6_formats.fea new file mode 100644 index 00000000..44135d24 --- /dev/null +++ b/Tests/feaLib/data/GSUB_6_formats.fea @@ -0,0 +1,20 @@ +lookup GSUB6f1 { + ignore sub one two three' four' five six seven; + ignore sub two one three' four' six five seven; +} GSUB6f1; + +lookup GSUB6f2 { + ignore sub [A - H] [I - Z] [a - z]' [A - H]' [I - Z]'; + ignore sub [I - Z] [A - H] [a - z]' [A - H]' [I - Z]'; + ignore sub [A - H] [I - Z] [a - z]' [I - Z]' [A - H]'; +} GSUB6f2; + +lookup GSUB6f3 { + ignore sub [space comma semicolon] e'; +} GSUB6f3; + +feature test { + lookup GSUB6f1; + lookup GSUB6f2; + lookup GSUB6f3; +} test; diff --git a/Tests/feaLib/data/GSUB_6_formats.ttx b/Tests/feaLib/data/GSUB_6_formats.ttx new file mode 100644 index 00000000..ad2a1c5e --- /dev/null +++ b/Tests/feaLib/data/GSUB_6_formats.ttx @@ -0,0 +1,256 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont> + + <GSUB> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=1 --> + <FeatureIndex index="0" value="0"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=1 --> + <FeatureRecord index="0"> + <FeatureTag value="test"/> + <Feature> + <!-- LookupCount=3 --> + <LookupListIndex index="0" value="0"/> + <LookupListIndex index="1" value="1"/> + <LookupListIndex index="2" value="2"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=3 --> + <Lookup index="0"> + <LookupType value="6"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <ChainContextSubst index="0" Format="1"> + <Coverage> + <Glyph value="three"/> + </Coverage> + <!-- ChainSubRuleSetCount=1 --> + <ChainSubRuleSet index="0"> + <!-- ChainSubRuleCount=2 --> + <ChainSubRule index="0"> + <!-- BacktrackGlyphCount=2 --> + <Backtrack index="0" value="two"/> + <Backtrack index="1" value="one"/> + <!-- InputGlyphCount=2 --> + <Input index="0" value="four"/> + <!-- LookAheadGlyphCount=3 --> + <LookAhead index="0" value="five"/> + <LookAhead index="1" value="six"/> + <LookAhead index="2" value="seven"/> + <!-- SubstCount=0 --> + </ChainSubRule> + <ChainSubRule index="1"> + <!-- BacktrackGlyphCount=2 --> + <Backtrack index="0" value="one"/> + <Backtrack index="1" value="two"/> + <!-- InputGlyphCount=2 --> + <Input index="0" value="four"/> + <!-- LookAheadGlyphCount=3 --> + <LookAhead index="0" value="six"/> + <LookAhead index="1" value="five"/> + <LookAhead index="2" value="seven"/> + <!-- SubstCount=0 --> + </ChainSubRule> + </ChainSubRuleSet> + </ChainContextSubst> + </Lookup> + <Lookup index="1"> + <LookupType value="6"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <ChainContextSubst index="0" Format="2"> + <Coverage> + <Glyph value="a"/> + <Glyph value="b"/> + <Glyph value="c"/> + <Glyph value="d"/> + <Glyph value="e"/> + <Glyph value="f"/> + <Glyph value="g"/> + <Glyph value="h"/> + <Glyph value="i"/> + <Glyph value="j"/> + <Glyph value="k"/> + <Glyph value="l"/> + <Glyph value="m"/> + <Glyph value="n"/> + <Glyph value="o"/> + <Glyph value="p"/> + <Glyph value="q"/> + <Glyph value="r"/> + <Glyph value="s"/> + <Glyph value="t"/> + <Glyph value="u"/> + <Glyph value="v"/> + <Glyph value="w"/> + <Glyph value="x"/> + <Glyph value="y"/> + <Glyph value="z"/> + </Coverage> + <BacktrackClassDef> + <ClassDef glyph="A" class="2"/> + <ClassDef glyph="B" class="2"/> + <ClassDef glyph="C" class="2"/> + <ClassDef glyph="D" class="2"/> + <ClassDef glyph="E" class="2"/> + <ClassDef glyph="F" class="2"/> + <ClassDef glyph="G" class="2"/> + <ClassDef glyph="H" class="2"/> + <ClassDef glyph="I" class="1"/> + <ClassDef glyph="J" class="1"/> + <ClassDef glyph="K" class="1"/> + <ClassDef glyph="L" class="1"/> + <ClassDef glyph="M" class="1"/> + <ClassDef glyph="N" class="1"/> + <ClassDef glyph="O" class="1"/> + <ClassDef glyph="P" class="1"/> + <ClassDef glyph="Q" class="1"/> + <ClassDef glyph="R" class="1"/> + <ClassDef glyph="S" class="1"/> + <ClassDef glyph="T" class="1"/> + <ClassDef glyph="U" class="1"/> + <ClassDef glyph="V" class="1"/> + <ClassDef glyph="W" class="1"/> + <ClassDef glyph="X" class="1"/> + <ClassDef glyph="Y" class="1"/> + <ClassDef glyph="Z" class="1"/> + </BacktrackClassDef> + <InputClassDef> + <ClassDef glyph="A" class="3"/> + <ClassDef glyph="B" class="3"/> + <ClassDef glyph="C" class="3"/> + <ClassDef glyph="D" class="3"/> + <ClassDef glyph="E" class="3"/> + <ClassDef glyph="F" class="3"/> + <ClassDef glyph="G" class="3"/> + <ClassDef glyph="H" class="3"/> + <ClassDef glyph="I" class="2"/> + <ClassDef glyph="J" class="2"/> + <ClassDef glyph="K" class="2"/> + <ClassDef glyph="L" class="2"/> + <ClassDef glyph="M" class="2"/> + <ClassDef glyph="N" class="2"/> + <ClassDef glyph="O" class="2"/> + <ClassDef glyph="P" class="2"/> + <ClassDef glyph="Q" class="2"/> + <ClassDef glyph="R" class="2"/> + <ClassDef glyph="S" class="2"/> + <ClassDef glyph="T" class="2"/> + <ClassDef glyph="U" class="2"/> + <ClassDef glyph="V" class="2"/> + <ClassDef glyph="W" class="2"/> + <ClassDef glyph="X" class="2"/> + <ClassDef glyph="Y" class="2"/> + <ClassDef glyph="Z" class="2"/> + <ClassDef glyph="a" class="1"/> + <ClassDef glyph="b" class="1"/> + <ClassDef glyph="c" class="1"/> + <ClassDef glyph="d" class="1"/> + <ClassDef glyph="e" class="1"/> + <ClassDef glyph="f" class="1"/> + <ClassDef glyph="g" class="1"/> + <ClassDef glyph="h" class="1"/> + <ClassDef glyph="i" class="1"/> + <ClassDef glyph="j" class="1"/> + <ClassDef glyph="k" class="1"/> + <ClassDef glyph="l" class="1"/> + <ClassDef glyph="m" class="1"/> + <ClassDef glyph="n" class="1"/> + <ClassDef glyph="o" class="1"/> + <ClassDef glyph="p" class="1"/> + <ClassDef glyph="q" class="1"/> + <ClassDef glyph="r" class="1"/> + <ClassDef glyph="s" class="1"/> + <ClassDef glyph="t" class="1"/> + <ClassDef glyph="u" class="1"/> + <ClassDef glyph="v" class="1"/> + <ClassDef glyph="w" class="1"/> + <ClassDef glyph="x" class="1"/> + <ClassDef glyph="y" class="1"/> + <ClassDef glyph="z" class="1"/> + </InputClassDef> + <LookAheadClassDef> + </LookAheadClassDef> + <!-- ChainSubClassSetCount=4 --> + <ChainSubClassSet index="0"> + <!-- ChainSubClassRuleCount=0 --> + </ChainSubClassSet> + <ChainSubClassSet index="1"> + <!-- ChainSubClassRuleCount=3 --> + <ChainSubClassRule index="0"> + <!-- BacktrackGlyphCount=2 --> + <Backtrack index="0" value="1"/> + <Backtrack index="1" value="2"/> + <!-- InputGlyphCount=3 --> + <Input index="0" value="3"/> + <Input index="1" value="2"/> + <!-- LookAheadGlyphCount=0 --> + <!-- SubstCount=0 --> + </ChainSubClassRule> + <ChainSubClassRule index="1"> + <!-- BacktrackGlyphCount=2 --> + <Backtrack index="0" value="2"/> + <Backtrack index="1" value="1"/> + <!-- InputGlyphCount=3 --> + <Input index="0" value="3"/> + <Input index="1" value="2"/> + <!-- LookAheadGlyphCount=0 --> + <!-- SubstCount=0 --> + </ChainSubClassRule> + <ChainSubClassRule index="2"> + <!-- BacktrackGlyphCount=2 --> + <Backtrack index="0" value="1"/> + <Backtrack index="1" value="2"/> + <!-- InputGlyphCount=3 --> + <Input index="0" value="2"/> + <Input index="1" value="3"/> + <!-- LookAheadGlyphCount=0 --> + <!-- SubstCount=0 --> + </ChainSubClassRule> + </ChainSubClassSet> + <ChainSubClassSet index="2"> + <!-- ChainSubClassRuleCount=0 --> + </ChainSubClassSet> + <ChainSubClassSet index="3"> + <!-- ChainSubClassRuleCount=0 --> + </ChainSubClassSet> + </ChainContextSubst> + </Lookup> + <Lookup index="2"> + <LookupType value="6"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <ChainContextSubst index="0" Format="3"> + <!-- BacktrackGlyphCount=1 --> + <BacktrackCoverage index="0"> + <Glyph value="space"/> + <Glyph value="semicolon"/> + <Glyph value="comma"/> + </BacktrackCoverage> + <!-- InputGlyphCount=1 --> + <InputCoverage index="0"> + <Glyph value="e"/> + </InputCoverage> + <!-- LookAheadGlyphCount=0 --> + <!-- SubstCount=0 --> + </ChainContextSubst> + </Lookup> + </LookupList> + </GSUB> + +</ttFont> diff --git a/Tests/feaLib/data/ZeroValue_ChainSinglePos_horizontal.ttx b/Tests/feaLib/data/ZeroValue_ChainSinglePos_horizontal.ttx index ce76370e..98f7aa9e 100644 --- a/Tests/feaLib/data/ZeroValue_ChainSinglePos_horizontal.ttx +++ b/Tests/feaLib/data/ZeroValue_ChainSinglePos_horizontal.ttx @@ -32,44 +32,39 @@ <Lookup index="0"> <LookupType value="8"/> <LookupFlag value="0"/> - <!-- SubTableCount=2 --> - <ChainContextPos index="0" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="A"/> - </BacktrackCoverage> - <!-- InputGlyphCount=1 --> - <InputCoverage index="0"> - <Glyph value="G"/> - </InputCoverage> - <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0"> - <Glyph value="A"/> - </LookAheadCoverage> - <!-- PosCount=1 --> - <PosLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </PosLookupRecord> - </ChainContextPos> - <ChainContextPos index="1" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="B"/> - </BacktrackCoverage> - <!-- InputGlyphCount=1 --> - <InputCoverage index="0"> + <!-- SubTableCount=1 --> + <ChainContextPos index="0" Format="1"> + <Coverage> <Glyph value="G"/> - </InputCoverage> - <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0"> - <Glyph value="B"/> - </LookAheadCoverage> - <!-- PosCount=1 --> - <PosLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </PosLookupRecord> + </Coverage> + <!-- ChainPosRuleSetCount=1 --> + <ChainPosRuleSet index="0"> + <!-- ChainPosRuleCount=2 --> + <ChainPosRule index="0"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="A"/> + <!-- InputGlyphCount=1 --> + <!-- LookAheadGlyphCount=1 --> + <LookAhead index="0" value="A"/> + <!-- PosCount=1 --> + <PosLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </PosLookupRecord> + </ChainPosRule> + <ChainPosRule index="1"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="B"/> + <!-- InputGlyphCount=1 --> + <!-- LookAheadGlyphCount=1 --> + <LookAhead index="0" value="B"/> + <!-- PosCount=1 --> + <PosLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </PosLookupRecord> + </ChainPosRule> + </ChainPosRuleSet> </ChainContextPos> </Lookup> <Lookup index="1"> diff --git a/Tests/feaLib/data/ZeroValue_ChainSinglePos_vertical.ttx b/Tests/feaLib/data/ZeroValue_ChainSinglePos_vertical.ttx index e1cb5d61..973cb4f6 100644 --- a/Tests/feaLib/data/ZeroValue_ChainSinglePos_vertical.ttx +++ b/Tests/feaLib/data/ZeroValue_ChainSinglePos_vertical.ttx @@ -32,44 +32,39 @@ <Lookup index="0"> <LookupType value="8"/> <LookupFlag value="0"/> - <!-- SubTableCount=2 --> - <ChainContextPos index="0" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="A"/> - </BacktrackCoverage> - <!-- InputGlyphCount=1 --> - <InputCoverage index="0"> - <Glyph value="G"/> - </InputCoverage> - <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0"> - <Glyph value="A"/> - </LookAheadCoverage> - <!-- PosCount=1 --> - <PosLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </PosLookupRecord> - </ChainContextPos> - <ChainContextPos index="1" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="B"/> - </BacktrackCoverage> - <!-- InputGlyphCount=1 --> - <InputCoverage index="0"> + <!-- SubTableCount=1 --> + <ChainContextPos index="0" Format="1"> + <Coverage> <Glyph value="G"/> - </InputCoverage> - <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0"> - <Glyph value="B"/> - </LookAheadCoverage> - <!-- PosCount=1 --> - <PosLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </PosLookupRecord> + </Coverage> + <!-- ChainPosRuleSetCount=1 --> + <ChainPosRuleSet index="0"> + <!-- ChainPosRuleCount=2 --> + <ChainPosRule index="0"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="A"/> + <!-- InputGlyphCount=1 --> + <!-- LookAheadGlyphCount=1 --> + <LookAhead index="0" value="A"/> + <!-- PosCount=1 --> + <PosLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </PosLookupRecord> + </ChainPosRule> + <ChainPosRule index="1"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="B"/> + <!-- InputGlyphCount=1 --> + <!-- LookAheadGlyphCount=1 --> + <LookAhead index="0" value="B"/> + <!-- PosCount=1 --> + <PosLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </PosLookupRecord> + </ChainPosRule> + </ChainPosRuleSet> </ChainContextPos> </Lookup> <Lookup index="1"> diff --git a/Tests/feaLib/data/bug512.ttx b/Tests/feaLib/data/bug512.ttx index 50b76b46..693ebeb7 100644 --- a/Tests/feaLib/data/bug512.ttx +++ b/Tests/feaLib/data/bug512.ttx @@ -32,50 +32,51 @@ <Lookup index="0"> <LookupType value="5"/> <LookupFlag value="0"/> - <!-- SubTableCount=4 --> - <ContextSubst index="0" Format="3"> - <!-- GlyphCount=1 --> - <!-- SubstCount=1 --> - <Coverage index="0"> - <Glyph value="G"/> - </Coverage> - <SubstLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </SubstLookupRecord> - </ContextSubst> - <ContextSubst index="1" Format="3"> - <!-- GlyphCount=1 --> - <!-- SubstCount=1 --> - <Coverage index="0"> - <Glyph value="H"/> - </Coverage> - <SubstLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </SubstLookupRecord> - </ContextSubst> - <ContextSubst index="2" Format="3"> - <!-- GlyphCount=1 --> - <!-- SubstCount=1 --> - <Coverage index="0"> + <!-- SubTableCount=1 --> + <ContextSubst index="0" Format="1"> + <Coverage> <Glyph value="G"/> - </Coverage> - <SubstLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="2"/> - </SubstLookupRecord> - </ContextSubst> - <ContextSubst index="3" Format="3"> - <!-- GlyphCount=1 --> - <!-- SubstCount=1 --> - <Coverage index="0"> <Glyph value="H"/> </Coverage> - <SubstLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="2"/> - </SubstLookupRecord> + <!-- SubRuleSetCount=2 --> + <SubRuleSet index="0"> + <!-- SubRuleCount=2 --> + <SubRule index="0"> + <!-- GlyphCount=1 --> + <!-- SubstCount=1 --> + <SubstLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </SubstLookupRecord> + </SubRule> + <SubRule index="1"> + <!-- GlyphCount=1 --> + <!-- SubstCount=1 --> + <SubstLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="2"/> + </SubstLookupRecord> + </SubRule> + </SubRuleSet> + <SubRuleSet index="1"> + <!-- SubRuleCount=2 --> + <SubRule index="0"> + <!-- GlyphCount=1 --> + <!-- SubstCount=1 --> + <SubstLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </SubstLookupRecord> + </SubRule> + <SubRule index="1"> + <!-- GlyphCount=1 --> + <!-- SubstCount=1 --> + <SubstLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="2"/> + </SubstLookupRecord> + </SubRule> + </SubRuleSet> </ContextSubst> </Lookup> <Lookup index="1"> diff --git a/Tests/feaLib/data/spec5f_ii_3.ttx b/Tests/feaLib/data/spec5f_ii_3.ttx index a550f0b6..a94efcea 100644 --- a/Tests/feaLib/data/spec5f_ii_3.ttx +++ b/Tests/feaLib/data/spec5f_ii_3.ttx @@ -32,111 +32,115 @@ <Lookup index="0"> <LookupType value="6"/> <LookupFlag value="0"/> - <!-- SubTableCount=3 --> - <ChainContextSubst index="0" Format="3"> - <!-- BacktrackGlyphCount=1 --> - <BacktrackCoverage index="0"> - <Glyph value="a"/> - <Glyph value="b"/> - <Glyph value="c"/> - <Glyph value="d"/> - <Glyph value="e"/> - <Glyph value="f"/> - <Glyph value="g"/> - <Glyph value="h"/> - <Glyph value="i"/> - <Glyph value="j"/> - <Glyph value="k"/> - <Glyph value="l"/> - <Glyph value="m"/> - <Glyph value="n"/> - <Glyph value="o"/> - <Glyph value="p"/> - <Glyph value="q"/> - <Glyph value="r"/> - <Glyph value="s"/> - <Glyph value="t"/> - <Glyph value="u"/> - <Glyph value="v"/> - <Glyph value="w"/> - <Glyph value="x"/> - <Glyph value="y"/> - <Glyph value="z"/> - </BacktrackCoverage> - <!-- InputGlyphCount=3 --> - <InputCoverage index="0"> - <Glyph value="a"/> - </InputCoverage> - <InputCoverage index="1"> - <Glyph value="n"/> - </InputCoverage> - <InputCoverage index="2"> - <Glyph value="d"/> - </InputCoverage> - <!-- LookAheadGlyphCount=0 --> - <!-- SubstCount=0 --> - </ChainContextSubst> - <ChainContextSubst index="1" Format="3"> - <!-- BacktrackGlyphCount=0 --> - <!-- InputGlyphCount=3 --> - <InputCoverage index="0"> - <Glyph value="a"/> - </InputCoverage> - <InputCoverage index="1"> - <Glyph value="n"/> - </InputCoverage> - <InputCoverage index="2"> - <Glyph value="d"/> - </InputCoverage> - <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0"> - <Glyph value="a"/> - <Glyph value="b"/> - <Glyph value="c"/> - <Glyph value="d"/> - <Glyph value="e"/> - <Glyph value="f"/> - <Glyph value="g"/> - <Glyph value="h"/> - <Glyph value="i"/> - <Glyph value="j"/> - <Glyph value="k"/> - <Glyph value="l"/> - <Glyph value="m"/> - <Glyph value="n"/> - <Glyph value="o"/> - <Glyph value="p"/> - <Glyph value="q"/> - <Glyph value="r"/> - <Glyph value="s"/> - <Glyph value="t"/> - <Glyph value="u"/> - <Glyph value="v"/> - <Glyph value="w"/> - <Glyph value="x"/> - <Glyph value="y"/> - <Glyph value="z"/> - </LookAheadCoverage> - <!-- SubstCount=0 --> - </ChainContextSubst> - <ChainContextSubst index="2" Format="3"> - <!-- BacktrackGlyphCount=0 --> - <!-- InputGlyphCount=3 --> - <InputCoverage index="0"> + <!-- SubTableCount=1 --> + <ChainContextSubst index="0" Format="2"> + <Coverage> <Glyph value="a"/> - </InputCoverage> - <InputCoverage index="1"> - <Glyph value="n"/> - </InputCoverage> - <InputCoverage index="2"> - <Glyph value="d"/> - </InputCoverage> - <!-- LookAheadGlyphCount=0 --> - <!-- SubstCount=1 --> - <SubstLookupRecord index="0"> - <SequenceIndex value="0"/> - <LookupListIndex value="1"/> - </SubstLookupRecord> + </Coverage> + <BacktrackClassDef> + <ClassDef glyph="a" class="1"/> + <ClassDef glyph="b" class="1"/> + <ClassDef glyph="c" class="1"/> + <ClassDef glyph="d" class="1"/> + <ClassDef glyph="e" class="1"/> + <ClassDef glyph="f" class="1"/> + <ClassDef glyph="g" class="1"/> + <ClassDef glyph="h" class="1"/> + <ClassDef glyph="i" class="1"/> + <ClassDef glyph="j" class="1"/> + <ClassDef glyph="k" class="1"/> + <ClassDef glyph="l" class="1"/> + <ClassDef glyph="m" class="1"/> + <ClassDef glyph="n" class="1"/> + <ClassDef glyph="o" class="1"/> + <ClassDef glyph="p" class="1"/> + <ClassDef glyph="q" class="1"/> + <ClassDef glyph="r" class="1"/> + <ClassDef glyph="s" class="1"/> + <ClassDef glyph="t" class="1"/> + <ClassDef glyph="u" class="1"/> + <ClassDef glyph="v" class="1"/> + <ClassDef glyph="w" class="1"/> + <ClassDef glyph="x" class="1"/> + <ClassDef glyph="y" class="1"/> + <ClassDef glyph="z" class="1"/> + </BacktrackClassDef> + <InputClassDef> + <ClassDef glyph="a" class="3"/> + <ClassDef glyph="d" class="2"/> + <ClassDef glyph="n" class="1"/> + </InputClassDef> + <LookAheadClassDef> + <ClassDef glyph="a" class="1"/> + <ClassDef glyph="b" class="1"/> + <ClassDef glyph="c" class="1"/> + <ClassDef glyph="d" class="1"/> + <ClassDef glyph="e" class="1"/> + <ClassDef glyph="f" class="1"/> + <ClassDef glyph="g" class="1"/> + <ClassDef glyph="h" class="1"/> + <ClassDef glyph="i" class="1"/> + <ClassDef glyph="j" class="1"/> + <ClassDef glyph="k" class="1"/> + <ClassDef glyph="l" class="1"/> + <ClassDef glyph="m" class="1"/> + <ClassDef glyph="n" class="1"/> + <ClassDef glyph="o" class="1"/> + <ClassDef glyph="p" class="1"/> + <ClassDef glyph="q" class="1"/> + <ClassDef glyph="r" class="1"/> + <ClassDef glyph="s" class="1"/> + <ClassDef glyph="t" class="1"/> + <ClassDef glyph="u" class="1"/> + <ClassDef glyph="v" class="1"/> + <ClassDef glyph="w" class="1"/> + <ClassDef glyph="x" class="1"/> + <ClassDef glyph="y" class="1"/> + <ClassDef glyph="z" class="1"/> + </LookAheadClassDef> + <!-- ChainSubClassSetCount=4 --> + <ChainSubClassSet index="0"> + <!-- ChainSubClassRuleCount=0 --> + </ChainSubClassSet> + <ChainSubClassSet index="1"> + <!-- ChainSubClassRuleCount=0 --> + </ChainSubClassSet> + <ChainSubClassSet index="2"> + <!-- ChainSubClassRuleCount=0 --> + </ChainSubClassSet> + <ChainSubClassSet index="3"> + <!-- ChainSubClassRuleCount=3 --> + <ChainSubClassRule index="0"> + <!-- BacktrackGlyphCount=1 --> + <Backtrack index="0" value="1"/> + <!-- InputGlyphCount=3 --> + <Input index="0" value="1"/> + <Input index="1" value="2"/> + <!-- LookAheadGlyphCount=0 --> + <!-- SubstCount=0 --> + </ChainSubClassRule> + <ChainSubClassRule index="1"> + <!-- BacktrackGlyphCount=0 --> + <!-- InputGlyphCount=3 --> + <Input index="0" value="1"/> + <Input index="1" value="2"/> + <!-- LookAheadGlyphCount=1 --> + <LookAhead index="0" value="1"/> + <!-- SubstCount=0 --> + </ChainSubClassRule> + <ChainSubClassRule index="2"> + <!-- BacktrackGlyphCount=0 --> + <!-- InputGlyphCount=3 --> + <Input index="0" value="1"/> + <Input index="1" value="2"/> + <!-- LookAheadGlyphCount=0 --> + <!-- SubstCount=1 --> + <SubstLookupRecord index="0"> + <SequenceIndex value="0"/> + <LookupListIndex value="1"/> + </SubstLookupRecord> + </ChainSubClassRule> + </ChainSubClassSet> </ChainContextSubst> </Lookup> <Lookup index="1"> |