
    ]Mh3                     .   d dl mZ d dlmZ  G d de          Z G d de          Z G d de          Z G d	 d
e          Z G d de          Z	 G d de          Z
 G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d d e          Z G d! d"e          Z G d# d$e          Z G d% d&e          Z G d' d(e          Z G d) d*e          Z G d+ d,e          Z G d- d.e          Z G d/ d0e          Z G d1 d2e          Z G d3 d4e          Z G d5 d6e          Z G d7 d8e          Z G d9 d:e          Z d;S )<    )VoltLibError)
NamedTuplec                   R    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   d ZdS )	Posadvdxdyadv_adjust_bydx_adjust_bydy_adjust_byc                     d}dD ]j}t          | |          }|V|d|                                 d| z  }t          | | di           }|                                D ]\  }}|d| d| z  }k|dz  }|S )Nz POS)r   r   r	    
_adjust_byz ADJUST_BY  AT z END_POS)getattrupperitems)selfresattrvalue	adjust_bysize
adjustments          U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/voltLib/ast.py__str__zPos.__str__   s    ' 	@ 	@DD$''E 14::<<11%111#DT*=*=*=rBB	(1(9(9 @ @$D*??????CCz
    N)__name__
__module____qualname__int__annotations__dictr    r   r   r   r      sd         	HHHGGGGGG
 
 
 
 
r   r   c                   "    e Zd ZddZd Zd ZdS )ElementNc                     || _         d S Nlocation)r   r*   s     r   __init__zElement.__init__   s     r   c                     d S r(   r$   )r   builders     r   buildzElement.build   s    r   c                     t           r(   )NotImplementedErrorr   s    r   r   zElement.__str__!   s    !!r   r(   r   r   r    r+   r.   r   r$   r   r   r&   r&      sF        ! ! ! !  " " " " "r   r&   c                       e Zd ZdS )	StatementNr   r   r    r$   r   r   r4   r4   %           Dr   r4   c                       e Zd ZdS )
ExpressionNr5   r$   r   r   r8   r8   )   r6   r   r8   c                        e Zd Zd Zd Zd ZdS )VoltFilec                 L    t                               | d            g | _        d S )Nr)   )r4   r+   
statementsr1   s    r   r+   zVoltFile.__init__.   s&    4$///r   c                 D    | j         D ]}|                    |           d S r(   )r<   r.   )r   r-   ss      r   r.   zVoltFile.build2   s2     	 	AGGG	 	r   c                 V    dd                     d | j        D                       z   dz   S )N
c              3   4   K   | ]}t          |          V  d S r(   str.0r>   s     r   	<genexpr>z#VoltFile.__str__.<locals>.<genexpr>7   s(      @@1A@@@@@@r   z END
)joinr<   r1   s    r   r   zVoltFile.__str__6   s/    dii@@@@@@@@8KKr   Nr2   r$   r   r   r:   r:   -   sF            L L L L Lr   r:   c                       e Zd ZddZd ZdS )GlyphDefinitionNc                     t                               | |           || _        || _        || _        || _        || _        d S r(   )r4   r+   nameidunicodetype
components)r   rK   gidgunicodegtyperO   r*   s          r   r+   zGlyphDefinition.__init__;   s?    4***		$r   c                 D   d| j          d| j         }| j        Yt          | j                  dk    r.d                    d | j        D                       }|d| dz  }n|d| j        d	          z  }| j        |d
| j         z  }| j        |d| j         z  }|dz  }|S )NzDEF_GLYPH "z" ID    ,c              3   "   K   | ]
}d |dV  dS )zU+04XNr$   )rE   us     r   rF   z*GlyphDefinition.__str__.<locals>.<genexpr>G   s*      #G#GQLLLL#G#G#G#G#G#Gr   z UNICODEVALUES ""z	 UNICODE r   z TYPE z COMPONENTS z
 END_GLYPH)rK   rL   rM   lenrG   rN   rO   )r   r   unicodess      r   r   zGlyphDefinition.__str__C   s    5DI55DG55<#4<  1$$88#G#G$,#G#G#GGG5(555544<?4449 'DI'''C?&3$/333C|
r   r(   r   r   r    r+   r   r$   r   r   rI   rI   :   s7        % % % %    r   rI   c                   $    e Zd ZddZddZd ZdS )GroupDefinitionNc                 f    t                               | |           || _        || _        d | _        d S r(   )r4   r+   rK   enumglyphs_)r   rK   r`   r*   s       r   r+   zGroupDefinition.__init__T   s1    4***		r   c                    |&| j         |v rt          d| j         z  | j                  | j        Q|t	          | j         h          }n|                    | j                    | j                            |          | _        | j        S )NzGroup "%s" contains itself.)rK   r   r*   ra   setaddr`   glyphSet)r   groupss     r   re   zGroupDefinition.glyphSetZ   s    $)v"5"5-;T]   <~di[))

49%%%9--f55DL|r   c                 X    | j         rt          | j                   pd}d| j         d| dS )N zDEF_GROUP ""
z

END_GROUP)r`   rC   rK   r   r`   s     r   r   zGroupDefinition.__str__g   s6    y+S^^1r<TY<<4<<<<r   r(   )r   r   r    r+   re   r   r$   r   r   r^   r^   S   sK              = = = = =r   r^   c                   &    e Zd ZdZddZd Zd ZdS )	GlyphNamez%A single glyph name, such as cedilla.Nc                 J    t                               | |           || _        d S r(   )r8   r+   glyph)r   rn   r*   s      r   r+   zGlyphName.__init__o   s#    D(+++


r   c                     | j         fS r(   rn   r1   s    r   re   zGlyphName.glyphSets   s    
}r   c                     d| j          dS )Nz GLYPH "rY   rp   r1   s    r   r   zGlyphName.__str__v       '$*''''r   r(   r   r   r    __doc__r+   re   r   r$   r   r   rl   rl   l   sL        //     ( ( ( ( (r   rl   c                   .    e Zd ZdZddZd ZddZd ZdS )EnumzAn enumNc                 J    t                               | |           || _        d S r(   )r8   r+   r`   )r   r`   r*   s      r   r+   zEnum.__init__}   s#    D(+++			r   c              #   @   K   |                                  D ]}|V  d S r(   )re   )r   es     r   __iter__zEnum.__iter__   s2       	 	AGGGG	 	r   c                    g }| j         D ]n}t          |t          t          f          r)|                    |                    |                     G|                    |                                           ot          |          S r(   )r`   
isinstance	GroupNamerv   extendre   tuple)r   rf   glyphselements       r   re   zEnum.glyphSet   s    y 	2 	2G'It#455 2g..v667777g..001111V}}r   c                 V    d                     d | j        D                       }d| dS )Nrh   c              3   4   K   | ]}t          |          V  d S r(   rB   )rE   ry   s     r   rF   zEnum.__str__.<locals>.<genexpr>   s(      11!s1vv111111r   z ENUMz	 END_ENUM)rG   r`   rj   s     r   r   zEnum.__str__   s5    ww11ty11111&t&&&&r   r(   )r   r   r    rt   r+   rz   re   r   r$   r   r   rv   rv   z   s_        M        ' ' ' ' 'r   rv   c                   (    e Zd ZdZddZddZd ZdS )r}   zA glyph groupNc                 X    t                               | |           || _        || _        d S r(   )r8   r+   groupparser_)r   r   parserr*   s       r   r+   zGroupName.__init__   s*    D(+++
r   c                     | j                             | j                  }|!|                    |          | _        | j        S t          d| j        z  | j                  )Nz!Group "%s" is used but undefined.)r   resolve_groupr   re   ra   r   r*   )r   rf   r   s      r   re   zGroupName.glyphSet   sZ    **4:66 >>&11DL<3tzBDM  r   c                     d| j          dS )Nz GROUP "rY   )r   r1   s    r   r   zGroupName.__str__   rr   r   r(   rs   r$   r   r   r}   r}      sQ           
   ( ( ( ( (r   r}   c                   &    e Zd ZdZddZd Zd ZdS )RangezA glyph rangeNc                 f    t                               | |           || _        || _        || _        d S r(   )r8   r+   startendr   )r   r   r   r   r*   s        r   r+   zRange.__init__   s1    D(+++
r   c                 f    t          | j                            | j        | j                            S r(   )r   r   glyph_ranger   r   r1   s    r   re   zRange.glyphSet   s&    T[,,TZBBCCCr   c                 (    d| j          d| j         dS )Nz RANGE "z" TO "rY   )r   r   r1   s    r   r   zRange.__str__   s    7$*77DH7777r   r(   rs   r$   r   r   r   r      sO           D D D8 8 8 8 8r   r   c                       e Zd ZddZd ZdS )ScriptDefinitionNc                 f    t                               | |           || _        || _        || _        d S r(   )r4   r+   rK   taglangs)r   rK   r   r   r*   s        r   r+   zScriptDefinition.__init__   s1    4***	


r   c                 z    d}| j         |d| j          dz  }|d| j         dz  }| j        D ]}|| z  }	|dz  }|S )N
DEF_SCRIPT NAME "rY    TAG ""


END_SCRIPT)rK   r   r   )r   r   langs      r   r   zScriptDefinition.__str__   sm    9 )TY))))C'''''J 	 	Dd9CC|
r   r(   r\   r$   r   r   r   r      s7               r   r   c                       e Zd ZddZd ZdS )LangSysDefinitionNc                 f    t                               | |           || _        || _        || _        d S r(   )r4   r+   rK   r   features)r   rK   r   r   r*   s        r   r+   zLangSysDefinition.__init__   s1    4***	 r   c                 z    d}| j         |d| j          dz  }|d| j         dz  }| j        D ]}|| z  }	|dz  }|S )NDEF_LANGSYSr   rY   r   r   zEND_LANGSYS
)rK   r   r   )r   r   features      r   r   zLangSysDefinition.__str__   sm    9 )TY))))C'''''} 	  	 Gg<CC
r   r(   r\   r$   r   r   r   r      s7        ! ! ! !    r   r   c                       e Zd ZddZd ZdS )FeatureDefinitionNc                 f    t                               | |           || _        || _        || _        d S r(   )r4   r+   rK   r   lookups)r   rK   r   r   r*   s        r   r+   zFeatureDefinition.__init__   s1    4***	r   c                     d| j          d| j         d}|dd                    d | j        D                       z   dz   z  }|dz  }|S )NzDEF_FEATURE NAME "z" TAG "ri   r   c              3   "   K   | ]
}d | dV  dS )zLOOKUP "rY   Nr$   )rE   ls     r   rF   z,FeatureDefinition.__str__.<locals>.<genexpr>   s*      DD!ooooDDDDDDr   r@   zEND_FEATURE
)rK   r   rG   r   )r   r   s     r   r   zFeatureDefinition.__str__   s^    B49BBTXBBBsSXXDDt|DDDDDDtKK
r   r(   r\   r$   r   r   r   r      s7               r   r   c                       e Zd Z	 ddZd ZdS )LookupDefinitionNc                     t                               | |           || _        || _        || _        || _        || _        || _        || _        || _	        |	| _
        |
| _        d S r(   )r4   r+   rK   process_baseprocess_marksmark_glyph_set	directionreversalcommentscontextsubpos)r   rK   r   r   r   r   r   r   r   r   r   r*   s               r   r+   zLookupDefinition.__init__   sg     	4***	(*,"  r   c                 >   d| j          d}|d| j        rdpd z  }| j        rJ|dz  }| j        r|d| j         dz  }n4t	          | j        t
                    r|d| j         dz  }n|dz  }n|d	z  }| j        |d
| j         z  }| j        r|dz  }| j        $| j        	                    dd          }|d| dz  }| j
        r+|dd                    d | j
        D                       z   z  }n|dz  }| j        r|d| j         z  }| j        r|d| j         z  }|S )NzDEF_LOOKUP "rY   r   PROCESS_BASE	SKIP_BASEz PROCESS_MARKS zMARK_GLYPH_SET "ALLz SKIP_MARKSz DIRECTION z	 REVERSALr@   z\nz
COMMENTS "c              3   4   K   | ]}t          |          V  d S r(   rB   rE   cs     r   rF   z+LookupDefinition.__str__.<locals>.<genexpr>  s(      #A#AqCFF#A#A#A#A#A#Ar   z
IN_CONTEXT
END_CONTEXT)rK   r   r   r   r|   rC   r   r   r   replacer   rG   r   r   )r   r   r   s      r   r   zLookupDefinition.__str__  s   )TY)))H4$7F;HHH 		!$$C" @$*=@@@@D.44 04-0000u= C>%1111C= 	;C=$},,T599H-(----C< 	/4$))#A#ADL#A#A#AAAAACC..C8 	#???"C8 	#???"C
r   r(   r\   r$   r   r   r   r      s<            4    r   r   c                       e Zd ZddZd ZdS )SubstitutionDefinitionNc                 J    t                               | |           || _        d S r(   )r4   r+   mapping)r   r   r*   s      r   r+   zSubstitutionDefinition.__init__&  s#    4***r   c                     d}| j                                         D ]O\  }}d                    d |D                       }d                    d |D                       }|d| d| dz  }P|dz  }|S )	NzAS_SUBSTITUTION
rh   c              3   4   K   | ]}t          |          V  d S r(   rB   rD   s     r   rF   z1SubstitutionDefinition.__str__.<locals>.<genexpr>-  (      ..Q#a&&......r   c              3   4   K   | ]}t          |          V  d S r(   rB   )rE   ds     r   rF   z1SubstitutionDefinition.__str__.<locals>.<genexpr>.  r   r   SUBz
WITHz	
END_SUB
END_SUBSTITUTION)r   r   rG   )r   r   srcdsts       r   r   zSubstitutionDefinition.__str__*  s    !**,, 	5 	5HC''..#.....C''..#.....C444C4444CC!!
r   r(   r\   r$   r   r   r   r   %  s7               r   r   c                       e Zd ZdS )SubstitutionSingleDefinitionNr5   r$   r   r   r   r   4  r6   r   r   c                       e Zd ZdS )SubstitutionMultipleDefinitionNr5   r$   r   r   r   r   8  r6   r   r   c                       e Zd ZdS )SubstitutionLigatureDefinitionNr5   r$   r   r   r   r   <  r6   r   r   c                       e Zd ZdS )SubstitutionAlternateDefinitionNr5   r$   r   r   r   r   @  r6   r   r   c                       e Zd ZdS )+SubstitutionReverseChainingSingleDefinitionNr5   r$   r   r   r   r   D  r6   r   r   c                       e Zd ZddZd ZdS )PositionAttachDefinitionNc                 X    t                               | |           || _        || _        d S r(   )r4   r+   coveragecoverage_to)r   r   r   r*   s       r   r+   z!PositionAttachDefinition.__init__I  s-    4*** &r   c                     d                     d | j        D                       }d| d}| j        D ]/\  }}d                     d |D                       }|| d| dz  }0|dz  }|S )	Nrh   c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z3PositionAttachDefinition.__str__.<locals>.<genexpr>O  s(      99a3q66999999r   zAS_POSITION
ATTACHz
TOc              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z3PositionAttachDefinition.__str__.<locals>.<genexpr>R  (      88!s1vv888888r   z AT ANCHOR "rY   
END_ATTACH
END_POSITION)rG   r   r   )r   r   r   anchors       r   r   z PositionAttachDefinition.__str__N  s    77994=999992H222 $ 0 	6 	6Hfww88x88888Hh55F5555CC++
r   r(   r\   r$   r   r   r   r   H  s7        ' ' ' '
    r   r   c                       e Zd ZddZd ZdS )PositionAttachCursiveDefinitionNc                 X    t                               | |           || _        || _        d S r(   )r4   r+   coverages_exitcoverages_enter)r   r   r   r*   s       r   r+   z(PositionAttachCursiveDefinition.__init__Y  s.    4***,.r   c                     d}| j         D ])}d                    d |D                       }|d| z  }*| j        D ])}d                    d |D                       }|d| z  }*|dz  }|S )NzAS_POSITION
ATTACH_CURSIVErh   c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z:PositionAttachCursiveDefinition.__str__.<locals>.<genexpr>a  r   r   z
EXIT c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z:PositionAttachCursiveDefinition.__str__.<locals>.<genexpr>d  r   r   z
ENTER r   )r   rG   r   r   r   r   s      r   r   z'PositionAttachCursiveDefinition.__str__^  s    ++ 	( 	(Hww88x88888H'X'''CC, 	) 	)Hww88x88888H(h(((CC++
r   r(   r\   r$   r   r   r   r   X  s7        / / / /
	 	 	 	 	r   r   c                       e Zd ZddZd ZdS )PositionAdjustPairDefinitionNc                 f    t                               | |           || _        || _        || _        d S r(   )r4   r+   coverages_1coverages_2adjust_pair)r   r   r   r   r*   s        r   r+   z%PositionAdjustPairDefinition.__init__k  s6    4***&&&r   c           
      X   d}| j         D ])}d                    d |D                       }|d| z  }*|dz  }| j        D ])}d                    d |D                       }|d| z  }*|dz  }| j                                        D ]\  \  }}\  }}|d| d| d| | dz  }|d	z  }|S )
NzAS_POSITION
ADJUST_PAIR
r   c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z7PositionAdjustPairDefinition.__str__.<locals>.<genexpr>t  (      991A999999r   z FIRST r@   c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z7PositionAdjustPairDefinition.__str__.<locals>.<genexpr>x  r   r   z SECOND  BY
END_ADJUST
END_POSITION)r   rG   r   r   r   )r   r   r   id_1id_2pos_1pos_2s          r   r   z$PositionAdjustPairDefinition.__str__q  s   *( 	( 	(Hxx9999999H'X'''CCt( 	) 	)Hxx9999999H(h(((CCt,0,<,B,B,D,D 	8 	8(LT4.5%7t77d77u7e7777CC++
r   r(   r\   r$   r   r   r   r   j  s7        ' ' ' '    r   r   c                       e Zd ZddZd ZdS )PositionAdjustSingleDefinitionNc                 J    t                               | |           || _        d S r(   )r4   r+   adjust_single)r   r   r*   s      r   r+   z'PositionAdjustSingleDefinition.__init__  s&    4****r   c                     d}| j         D ].\  }}d                    d |D                       }|| d| z  }/|dz  }|S )NzAS_POSITION
ADJUST_SINGLErh   c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z9PositionAdjustSingleDefinition.__str__.<locals>.<genexpr>  r   r   r   r   )r   rG   )r   r   r   r   s       r   r   z&PositionAdjustSingleDefinition.__str__  sg    *!/ 	) 	)MHcww88x88888Hh((3(((CC++
r   r(   r\   r$   r   r   r   r     s7        + + + +    r   r   c                       e Zd ZddZd ZdS )ContextDefinitionNc                 v    t                               | |           || _        ||ng | _        ||ng | _        d S r(   )r4   r+   ex_or_inleftright)r   r  r  r  r*   s        r   r+   zContextDefinition.__init__  sC    4***  ,DD"	#/UUR


r   c                     | j         dz   }| j        D ]*}d                    d |D                       }|d| dz  }+| j        D ]*}d                    d |D                       }|d| dz  }+|dz  }|S )Nr@   rh   c              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z,ContextDefinition.__str__.<locals>.<genexpr>  r   r   z LEFTc              3   4   K   | ]}t          |          V  d S r(   rB   r   s     r   rF   z,ContextDefinition.__str__.<locals>.<genexpr>  r   r   z RIGHTEND_CONTEXT)r  r  rG   r  r   s      r   r   zContextDefinition.__str__  s    md"	 	( 	(Hww88x88888H'8''''CC
 	) 	)Hww88x88888H(H((((CC}
r   )NNNr\   r$   r   r   r  r    s7        8 8 8 8	 	 	 	 	r   r  c                       e Zd ZddZd ZdS )AnchorDefinitionNc                     t                               | |           || _        || _        || _        || _        || _        || _        d S r(   )r4   r+   rK   rP   
glyph_name	componentlockedr   )r   rK   rP   r  r  r  r   r*   s           r   r+   zAnchorDefinition.__init__  sF    4***	$"r   c                 r    | j         rdpd}d| j         d| j         d| j         d| j         | d| j         dS )	Nz LOCKEDrh   zDEF_ANCHOR "z" ON z GLYPH z COMPONENT r   z END_ANCHOR)r  rK   rP   r  r  r   )r   r  s     r   r   zAnchorDefinition.__str__  sz    *0b)49 ) )8) )o) ) .) 	) )
 8) ) )	
r   r(   r\   r$   r   r   r  r    s7           	
 	
 	
 	
 	
r   r  c                       e Zd ZddZd ZdS )SettingDefinitionNc                 X    t                               | |           || _        || _        d S r(   )r4   r+   rK   r   )r   rK   r   r*   s       r   r+   zSettingDefinition.__init__  s*    4***	


r   c                     | j         du r| j         S t          | j         t          t          f          r0d                    d | j         D                       }| j         d| S | j         d| j          S )NTr   c              3   4   K   | ]}t          |          V  d S r(   rB   )rE   vs     r   rF   z,SettingDefinition.__str__.<locals>.<genexpr>  s(      88SVV888888r   )r   rK   r|   r   listrG   )r   r   s     r   r   zSettingDefinition.__str__  s    :i>!dj5$-00 	*HH88TZ88888Ei))%))))**dj***r   r(   r\   r$   r   r   r  r    s7           
+ + + + +r   r  N)!fontTools.voltLib.errorr   typingr   r   objectr&   r4   r8   r:   rI   r^   rl   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r$   r   r   <module>r     s   0 0 0 0 0 0          *   *" " " " "f " " "	 	 	 	 	 	 	 		 	 	 	 	 	 	 	
L 
L 
L 
L 
Ly 
L 
L 
L    i   2= = = = =i = = =2( ( ( ( (
 ( ( (' ' ' ' ': ' ' '2( ( ( ( (
 ( ( (,8 8 8 8 8J 8 8 8     y   $    	   $    	   7 7 7 7 7y 7 7 7t    Y   	 	 	 	 	#9 	 	 		 	 	 	 	%; 	 	 		 	 	 	 	%; 	 	 		 	 	 	 	&< 	 	 		 	 	 	 	2H 	 	 	    y        i   $    9   .    Y       	   &
 
 
 
 
y 
 
 
,+ + + + +	 + + + + +r   