)Ej5.ddlmZddlmZGddeZGddeZGddeZGd d eZGd d eZ Gd deZ GddeZ GddeZ GddeZ GddeZGddeZGddeZGddeZGddeZGdd eZGd!d"eZGd#d$eZGd%d&eZGd'd(eZGd)d*eZGd+d,eZGd-d.eZGd/d0eZGd1d2eZGd3d4eZGd5d6eZGd7d8eZGd9d:eZ d;S)<) VoltLibError) NamedTuplecReZdZUeed<eed<eed<eed<eed<eed<dZdS) Posadvdxdy adv_adjust_by dx_adjust_by dy_adjust_bycd}dD]j}t||}|V|d|d|z }t||di}|D]\}}|d|d|z }k|dz }|S)Nz POS)rrr  _adjust_byz ADJUST_BY  AT z END_POS)getattrupperitems)selfresattrvalue adjust_bysize adjustments GC:\PYTHON\MyICR_Suite\python\Lib\site-packages\fontTools/voltLib/ast.py__str__z Pos.__str__ s' @ @DD$''E 14::<<11%111#DT*=*=*=rBB (1(9(9@@$D*??????CC z N)__name__ __module__ __qualname__int__annotations__dictrrrrrsd HHH GGG GGG     rrc"eZdZddZdZdZdS)ElementNc||_dSNlocation)rr*s r__init__zElement.__init__s   rcdSr(r$)rbuilders rbuildz Element.builds rctr()NotImplementedErrorrs rrzElement.__str__!s!!rr(rrr r+r.rr$rrr&r&sF!!!!   """""rr&ceZdZdS) StatementNrrr r$rrr4r4%Drr4ceZdZdS) ExpressionNr5r$rrr8r8)r6rr8c eZdZdZdZdZdS)VoltFilecLt|dg|_dS)Nr))r4r+ statementsr1s rr+zVoltFile.__init__.s&4$///rcD|jD]}||dSr()r<r.)rr-ss rr.zVoltFile.build2s2  A GGG      rcVddd|jDzdzS)N c34K|]}t|VdSr(str.0r>s r z#VoltFile.__str__..7s(@@1A@@@@@@rz END )joinr<r1s rrzVoltFile.__str__6s/dii@@@@@@@@8KKrNr2r$rrr:r:-sFLLLLLrr:ceZdZddZdZdS)GlyphDefinitionNct||||_||_||_||_||_dSr()r4r+nameidunicodetype components)rrKgidgunicodegtyperOr*s rr+zGlyphDefinition.__init__;s?4***   $rcDd|jd|j}|jYt|jdkr.dd|jD}|d|dz }n|d|jd z }|j |d |jz }|j |d |jz }|d z }|S) Nz DEF_GLYPH "z" ID ,c3"K|] }d|dV dS)zU+04XNr$)rEus rrFz*GlyphDefinition.__str__..Gs*#G#GQLLLL#G#G#G#G#G#Grz UNICODEVALUES ""z UNICODE rz TYPE z COMPONENTS z END_GLYPH)rKrLrMlenrGrNrO)rrunicodess rrzGlyphDefinition.__str__Cs5DI55DG55 < #4<  1$$88#G#G$,#G#G#GGG5(555544<?444 9 'DI'' 'C ? & 3$/33 3C | rr(rrr r+rr$rrrIrI:s7%%%%     rrIc$eZdZddZddZdZdS)GroupDefinitionNcft||||_||_d|_dSr()r4r+rKenumglyphs_)rrKr`r*s rr+zGroupDefinition.__init__Ts14***   rc|&|j|vrtd|jz|j|jQ|t |jh}n||j|j||_|jS)NzGroup "%s" contains itself.)rKrr*rasetaddr`glyphSet)rgroupss rrezGroupDefinition.glyphSetZs  $)v"5"5-;T]  < ~di[)) 49%%%9--f55DL|rcX|jrt|jpd}d|jd|dS)Nz DEF_GROUP "" z END_GROUP)r`rCrKrr`s rrzGroupDefinition.__str__gs6y+S^^1r.s(11!s1vv111111rz ENUMz END_ENUM)rGr`rjs rrz Enum.__str__s5ww11ty11111&t&&&&rr()rrr rtr+rzrerr$rrrvrvzs_M'''''rrvc(eZdZdZddZddZdZdS)r}z A glyph groupNcXt||||_||_dSr()r8r+groupparser_)rrparserr*s rr+zGroupName.__init__s*D(+++  rc|j|j}|!|||_|jSt d|jz|j)Nz!Group "%s" is used but undefined.)r resolve_grouprrerarr*)rrfrs rrezGroupName.glyphSetsZ **4:66   >>&11DL< 3tzBDM rcd|jdS)Nz GROUP "rY)rr1s rrzGroupName.__str__rrrr(rsr$rrr}r}sQ (((((rr}c&eZdZdZddZdZdZdS)Rangez A glyph rangeNcft||||_||_||_dSr()r8r+startendr)rrrrr*s rr+zRange.__init__s1D(+++  rcft|j|j|jSr()rr glyph_rangerrr1s rrezRange.glyphSets&T[,,TZBBCCCrc(d|jd|jdS)Nz RANGE "z" TO "rY)rrr1s rrz Range.__str__s7$*77DH7777rr(rsr$rrrrsO DDD88888rrceZdZddZdZdS)ScriptDefinitionNcft||||_||_||_dSr()r4r+rKtaglangs)rrKrrr*s rr+zScriptDefinition.__init__s14***  rczd}|j|d|jdz }|d|jdz }|jD]}||z } |dz }|S)N DEF_SCRIPT NAME "rY TAG "" END_SCRIPT)rKrr)rrlangs rrzScriptDefinition.__str__sm 9 )TY))) )C '''''J  D d9 CC | rr(r\r$rrrrs7 rrceZdZddZdZdS)LangSysDefinitionNcft||||_||_||_dSr()r4r+rKrfeatures)rrKrrr*s rr+zLangSysDefinition.__init__s14***   rczd}|j|d|jdz }|d|jdz }|jD]}||z } |dz }|S)N DEF_LANGSYSrrYrrz END_LANGSYS )rKrr)rrfeatures rrzLangSysDefinition.__str__sm 9 )TY))) )C '''''}  G g< CC  rr(r\r$rrrrs7!!!! rrceZdZddZdZdS)FeatureDefinitionNcft||||_||_||_dSr()r4r+rKrlookups)rrKrrr*s rr+zFeatureDefinition.__init__s14***  rcd|jd|jd}|ddd|jDzdzz }|dz }|S)NzDEF_FEATURE NAME "z" TAG "rirc3"K|] }d|dV dS)zLOOKUP "rYNr$)rEls rrFz,FeatureDefinition.__str__..s*DD!ooooDDDDDDrr@z END_FEATURE )rKrrGr)rrs rrzFeatureDefinition.__str__s^B49BBTXBBB sSXXDDt|DDDDDDtKK  rr(r\r$rrrrs7 rrceZdZ ddZdZdS)LookupDefinitionNc t|| ||_||_||_||_||_||_||_||_ | |_ | |_ dSr() r4r+rK process_base process_marksmark_glyph_set directionreversalcommentscontextsubpos) rrKrrrrrrrrrr*s rr+zLookupDefinition.__init__sg 4*** (*,"     rc>d|jd}|d|jrdpdz }|jrJ|dz }|jr|d|jdz }n4t |jt r|d|jdz }n |dz }n|d z }|j |d |jz }|jr|d z }|j$|j d d }|d|dz }|j r+|d d d|j Dzz }n|dz }|j r |d |j z }|j r |d |j z }|S)Nz DEF_LOOKUP "rYr PROCESS_BASE SKIP_BASEz PROCESS_MARKS zMARK_GLYPH_SET "ALLz SKIP_MARKSz DIRECTION z REVERSALr@z\nz COMMENTS "c34K|]}t|VdSr(rBrEcs rrFz+LookupDefinition.__str__..s(#A#AqCFF#A#A#A#A#A#Arz IN_CONTEXT END_CONTEXT)rKrrrr|rCrrrreplacerrGrr)rrrs rrzLookupDefinition.__str__s)TY))) H4$7F;HHH   ! $ $C" @$*=@@@@D.44 04-0000u  = C > % 111 1C =  ; C = $},,T599H -(--- -C < / 4$))#A#ADL#A#A#AAAA ACC . .C 8 # ??? "C 8 # ??? "C rr(r\r$rrrrs<4rrceZdZddZdZdS)SubstitutionDefinitionNcJt||||_dSr()r4r+mapping)rrr*s rr+zSubstitutionDefinition.__init__&s#4*** rcd}|jD]O\}}dd|D}dd|D}|d|d|dz }P|dz }|S) NzAS_SUBSTITUTION rhc34K|]}t|VdSr(rBrDs rrFz1SubstitutionDefinition.__str__..-(..Q#a&&......rc34K|]}t|VdSr(rB)rEds rrFz1SubstitutionDefinition.__str__...rrSUBz WITHz END_SUB END_SUBSTITUTION)rrrG)rrsrcdsts rrzSubstitutionDefinition.__str__*s! **,, 5 5HC''..#.....C''..#.....C 444C444 4CC !! rr(r\r$rrrr%s7rrceZdZdS)SubstitutionSingleDefinitionNr5r$rrrr4r6rrceZdZdS)SubstitutionMultipleDefinitionNr5r$rrrr8r6rrceZdZdS)SubstitutionLigatureDefinitionNr5r$rrrr<r6rrceZdZdS)SubstitutionAlternateDefinitionNr5r$rrrr@r6rrceZdZdS)+SubstitutionReverseChainingSingleDefinitionNr5r$rrrrDr6rrceZdZddZdZdS)PositionAttachDefinitionNcXt||||_||_dSr()r4r+coverage coverage_to)rrrr*s rr+z!PositionAttachDefinition.__init__Is-4***  &rcdd|jD}d|d}|jD]/\}}dd|D}||d|dz }0|dz }|S) Nrhc34K|]}t|VdSr(rBrs rrFz3PositionAttachDefinition.__str__..Os(99a3q66999999rzAS_POSITION ATTACHz TOc34K|]}t|VdSr(rBrs rrFz3PositionAttachDefinition.__str__..R(88!s1vv888888rz AT ANCHOR "rY END_ATTACH END_POSITION)rGrr)rrranchors rrz PositionAttachDefinition.__str__Ns77994=999992H222 $ 0 6 6 Hfww88x88888H h55F555 5CC ++ rr(r\r$rrrrHs7'''' rrceZdZddZdZdS)PositionAttachCursiveDefinitionNcXt||||_||_dSr()r4r+coverages_exitcoverages_enter)rrrr*s rr+z(PositionAttachCursiveDefinition.__init__Ys.4***,.rcd}|jD])}dd|D}|d|z }*|jD])}dd|D}|d|z }*|dz }|S)NzAS_POSITION ATTACH_CURSIVErhc34K|]}t|VdSr(rBrs rrFz:PositionAttachCursiveDefinition.__str__..arrz EXIT c34K|]}t|VdSr(rBrs rrFz:PositionAttachCursiveDefinition.__str__..drrz ENTER r)rrGrrrrs rrz'PositionAttachCursiveDefinition.__str__^s++ ( (Hww88x88888H 'X'' 'CC, ) )Hww88x88888H (h(( (CC ++ rr(r\r$rrrrXs7////     rrceZdZddZdZdS)PositionAdjustPairDefinitionNcft||||_||_||_dSr()r4r+ coverages_1 coverages_2 adjust_pair)rrrrr*s rr+z%PositionAdjustPairDefinition.__init__ks64***&&&rc Xd}|jD])}dd|D}|d|z }*|dz }|jD])}dd|D}|d|z }*|dz }|jD]\\}}\}}|d|d|d||dz }|d z }|S) NzAS_POSITION ADJUST_PAIR rc34K|]}t|VdSr(rBrs rrFz7PositionAdjustPairDefinition.__str__..t(991A999999rz FIRST r@c34K|]}t|VdSr(rBrs rrFz7PositionAdjustPairDefinition.__str__..xrrz SECOND  BY END_ADJUST END_POSITION)rrGrrr)rrrid_1id_2pos_1pos_2s rrz$PositionAdjustPairDefinition.__str__qs*( ( (Hxx9999999H 'X'' 'CC t ( ) )Hxx9999999H (h(( (CC t ,0,<,B,B,D,D 8 8 (LT4.5% 7t77d77u7e777 7CC ++ rr(r\r$rrrrjs7''''     rrceZdZddZdZdS)PositionAdjustSingleDefinitionNcJt||||_dSr()r4r+ adjust_single)rrr*s rr+z'PositionAdjustSingleDefinition.__init__s&4****rcd}|jD].\}}dd|D}||d|z }/|dz }|S)NzAS_POSITION ADJUST_SINGLErhc34K|]}t|VdSr(rBrs rrFz9PositionAdjustSingleDefinition.__str__..rrrr)rrG)rrrrs rrz&PositionAdjustSingleDefinition.__str__sg*!/ ) )MHcww88x88888H h((3(( (CC ++ rr(r\r$rrrrs7++++rrceZdZddZdZdS)ContextDefinitionNcvt||||_||ng|_||ng|_dSr()r4r+ex_or_inleftright)rrrrr*s rr+zContextDefinition.__init__sC4***   ,DD" #/UUR rc|jdz}|jD]*}dd|D}|d|dz }+|jD]*}dd|D}|d|dz }+|dz }|S)Nr@rhc34K|]}t|VdSr(rBrs rrFz,ContextDefinition.__str__..rrz LEFTc34K|]}t|VdSr(rBrs rrFz,ContextDefinition.__str__..rrz RIGHT END_CONTEXT)rrrGrrs rrzContextDefinition.__str__smd"  ( (Hww88x88888H '8''' 'CC  ) )Hww88x88888H (H((( (CC } r)NNNr\r$rrrrs78888     rrceZdZddZdZdS)AnchorDefinitionNct||||_||_||_||_||_||_dSr()r4r+rKrP glyph_name componentlockedr)rrKrPrrrrr*s rr+zAnchorDefinition.__init__sF4*** $" rc r|jrdpd}d|jd|jd|jd|j|d|jd S) Nz LOCKEDrhz DEF_ANCHOR "z" ON z GLYPH z COMPONENT rz END_ANCHOR)rrKrPrrr)rrs rrzAnchorDefinition.__str__sz*0b )49 ) )8 ) )o ) ). )  ) ) 8  ) ) ) rr(r\r$rrrrs7      rrceZdZddZdZdS)SettingDefinitionNcXt||||_||_dSr()r4r+rKr)rrKrr*s rr+zSettingDefinition.__init__s*4***  rc|jdur|jSt|jttfr0dd|jD}|jd|S|jd|jS)NTrc34K|]}t|VdSr(rB)rEvs rrFz,SettingDefinition.__str__..s(88SVV888888r)rrKr|rlistrG)rrs rrzSettingDefinition.__str__s :  i> ! dj5$- 0 0 *HH88TZ88888Ei))%)) ))**dj***rr(r\r$rrrrs7 +++++rrN)!fontTools.voltLib.errorrtypingrrobjectr&r4r8r:rIr^rlrvr}rrrrrrrrrrrrrrrrrrr$rrrs000000**"""""f"""                 L L L L Ly L L Li2=====i===2 ( ( ( ( ( ( ( (''''':'''2((((( (((, 8 8 8 8 8J 8 8 8 y$ $        77777y777t     Y        #9        %;        %;        &<        2H        y    i$9.     Y    &     y   , + + + + + + + + + +r