
    h3                     n   S SK Jr  S SKJr   " S S\5      r " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r	 " S S\5      r
 " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S \5      r " S! S"\5      r " S# S$\5      r " S% S&\5      r " S' S(\5      r " S) S*\5      r " S+ S,\5      r " S- S.\5      r " S/ S0\5      r " S1 S2\5      r " S3 S4\5      r " S5 S6\5      r " S7 S8\5      rg9):    )VoltLibError)
NamedTuplec                   X    \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   S rS	rg
)Pos   advdxdyadv_adjust_bydx_adjust_bydy_adjust_byc                     SnS H_  n[        X5      nUc  M  USUR                  5        SU 3-  n[        X S30 5      nUR                  5        H  u  pVUSU SU 3-  nM     Ma     US-  nU$ )Nz POS)r   r	   r
    
_adjust_byz ADJUST_BY  AT z END_POS)getattrupperitems)selfresattrvalue	adjust_bysize
adjustments          G/var/www/html/env/lib/python3.13/site-packages/fontTools/voltLib/ast.py__str__Pos.__str__   s    'DD'E 4::<.%11#DF**=rB	(1(9$D[D??C ): ( 	z
     N)	__name__
__module____qualname____firstlineno__int__annotations__dictr   __static_attributes__r    r   r   r   r      s(    	HGG
r   r   c                   *    \ rS rSrSS jrS rS rSrg)Element   Nc                     Xl         g Nlocation)r   r/   s     r   __init__Element.__init__   s     r   c                     g r-   r    )r   builders     r   buildElement.build   s    r   c                     [         er-   )NotImplementedErrorr   s    r   r   Element.__str__!   s    !!r   r.   r-   r!   r"   r#   r$   r0   r4   r   r(   r    r   r   r*   r*      s    !"r   r*   c                       \ rS rSrSrg)	Statement%   r    Nr!   r"   r#   r$   r(   r    r   r   r<   r<   %       r   r<   c                       \ rS rSrSrg)
Expression)   r    Nr>   r    r   r   rA   rA   )   r?   r   rA   c                   &    \ rS rSrS rS rS rSrg)VoltFile-   c                 :    [         R                  U S S9  / U l        g )Nr.   )r<   r0   
statementsr8   s    r   r0   VoltFile.__init__.   s    4$/r   c                 L    U R                    H  nUR                  U5        M     g r-   )rG   r4   )r   r3   ss      r   r4   VoltFile.build2   s    AGGG !r   c                 R    SSR                  S U R                   5       5      -   S-   $ )N
c              3   8   #    U  H  n[        U5      v   M     g 7fr-   str.0rJ   s     r   	<genexpr>#VoltFile.__str__.<locals>.<genexpr>7   s     @1A   z END
)joinrG   r8   s    r   r   VoltFile.__str__6   s%    dii@@@@8KKr   )rG   Nr:   r    r   r   rD   rD   -   s    Lr   rD   c                   $    \ rS rSrSS jrS rSrg)GlyphDefinition:   Nc                 j    [         R                  X5        Xl        X l        X0l        X@l        XPl        g r-   )r<   r0   nameidunicodetype
components)r   r\   gidgunicodegtyper`   r/   s          r   r0   GlyphDefinition.__init__;   s)    4*		$r   c                    SU R                    SU R                   3nU R                  bZ  [        U R                  5      S:  a,  SR	                  S U R                   5       5      nUSU S3-  nOUSU R                  S	    3-  nU R
                  b  US
U R
                   3-  nU R                  b  USU R                   3-  nUS-  nU$ )NzDEF_GLYPH "z" ID    ,c              3   .   #    U  H  nS US 3v   M     g7f)zU+04XNr    )rR   us     r   rS   *GlyphDefinition.__str__.<locals>.<genexpr>G   s     #G,Qb3L,   z UNICODEVALUES ""z	 UNICODE r   z TYPE z COMPONENTS z
 END_GLYPH)r\   r]   r^   lenrV   r_   r`   )r   r   unicodess      r   r   GlyphDefinition.__str__C   s    DII;eDGG95<<#4<< 1$88#G$,,#GG)(1554<<?"34499 VDII;''C??&\$//!233C|
r   )r`   r]   r\   r_   r^   r-   r!   r"   r#   r$   r0   r   r(   r    r   r   rY   rY   :   s    %r   rY   c                   .    \ rS rSrSS jrSS jrS rSrg)GroupDefinitionS   Nc                 T    [         R                  X5        Xl        X l        S U l        g r-   )r<   r0   r\   enumglyphs_)r   r\   rv   r/   s       r   r0   GroupDefinition.__init__T   s!    4*		r   c                 J   Ub3  U R                   U;   a#  [        SU R                   -  U R                  5      eU R                  cU  Uc  [	        U R                   15      nOUR                  U R                   5        U R                  R                  U5      U l        U R                  $ )NzGroup "%s" contains itself.)r\   r   r/   rw   setaddrv   glyphSet)r   groupss     r   r|   GroupDefinition.glyphSetZ   s    $))v"5-;T]]  <<~dii[)

499%99--f5DL||r   c                     U R                   =(       a    [        U R                   5      =(       d    SnSU R                   SU S3$ )N zDEF_GROUP ""
z

END_GROUP)rv   rP   r\   r   rv   s     r   r   GroupDefinition.__str__g   s6    yy+S^1rTYYKs4&<<r   )rv   rw   r\   r-   )r!   r"   r#   r$   r0   r|   r   r(   r    r   r   rs   rs   S   s    =r   rs   c                   .    \ rS rSrSrSS jrS rS rSrg)		GlyphNamel   z%A single glyph name, such as cedilla.Nc                 :    [         R                  X5        Xl        g r-   )rA   r0   glyph)r   r   r/   s      r   r0   GlyphName.__init__o   s    D+
r   c                     U R                   4$ r-   r   r8   s    r   r|   GlyphName.glyphSets   s    

}r   c                 "    SU R                    S3$ )Nz GLYPH "rm   r   r8   s    r   r   GlyphName.__str__v       $**Q''r   r   r-   	r!   r"   r#   r$   __doc__r0   r|   r   r(   r    r   r   r   r   l   s    /(r   r   c                   8    \ rS rSrSrS	S jrS rS	S jrS rSr	g)
Enumz   zAn enumNc                 :    [         R                  X5        Xl        g r-   )rA   r0   rv   )r   rv   r/   s      r   r0   Enum.__init__}   s    D+	r   c              #   B   #    U R                  5        H  nUv   M	     g 7fr-   )r|   )r   es     r   __iter__Enum.__iter__   s     AG !s   c                     / nU R                    H_  n[        U[        [        45      (       a"  UR	                  UR                  U5      5        M@  UR	                  UR                  5       5        Ma     [        U5      $ r-   )rv   
isinstance	GroupNamer   extendr|   tuple)r   r}   glyphselements       r   r|   Enum.glyphSet   s_    yyG'It#455g..v67g..01	 !
 V}r   c                 R    SR                  S U R                   5       5      nSU S3$ )Nr   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   )rR   r   s     r   rS   Enum.__str__.<locals>.<genexpr>   s     1y!s1vvyrU   z ENUMz	 END_ENUM)rV   rv   r   s     r   r   Enum.__str__   s)    ww1tyy11tfI&&r   )rv   r-   )
r!   r"   r#   r$   r   r0   r   r|   r   r(   r    r   r   r   r   z   s    'r   r   c                   2    \ rS rSrSrSS jrSS jrS rSrg)	r      zA glyph groupNc                 F    [         R                  X5        Xl        X l        g r-   )rA   r0   groupparser_)r   r   parserr/   s       r   r0   GroupName.__init__   s    D+
r   c                     U R                   R                  U R                  5      nUb"  UR                  U5      U l        U R                  $ [        SU R                  -  U R                  5      e)Nz!Group "%s" is used but undefined.)r   resolve_groupr   r|   rw   r   r/   )r   r}   r   s      r   r|   GroupName.glyphSet   sY    **4::6 >>&1DL<<3tzzBDMM r   c                 "    SU R                    S3$ )Nz GROUP "rm   )r   r8   s    r   r   GroupName.__str__   r   r   )rw   r   r   r-   r   r    r   r   r   r      s    
(r   r   c                   .    \ rS rSrSrSS jrS rS rSrg)	Range   zA glyph rangeNc                 R    [         R                  X5        Xl        X l        X0l        g r-   )rA   r0   startendr   )r   r   r   r   r/   s        r   r0   Range.__init__   s    D+
r   c                 t    [        U R                  R                  U R                  U R                  5      5      $ r-   )r   r   glyph_ranger   r   r8   s    r   r|   Range.glyphSet   s&    T[[,,TZZBCCr   c                 <    SU R                    SU R                   S3$ )Nz RANGE "z" TO "rm   )r   r   r8   s    r   r   Range.__str__   s    $**VDHH:Q77r   )r   r   r   r-   r   r    r   r   r   r      s    D8r   r   c                   $    \ rS rSrSS jrS rSrg)ScriptDefinition   Nc                 R    [         R                  X5        Xl        X l        X0l        g r-   )r<   r0   r\   taglangs)r   r\   r   r   r/   s        r   r0   ScriptDefinition.__init__   s    4*	
r   c                     SnU R                   b  USU R                    S3-  nUSU R                   S3-  nU R                   H  nX -  nM
     US-  nU$ )N
DEF_SCRIPT NAME "rm    TAG ""


END_SCRIPT)r\   r   r   )r   r   langs      r   r   ScriptDefinition.__str__   sf    99 WTYYKq))Cz''JJDVC |
r   )r   r\   r   r-   rq   r    r   r   r   r      s    r   r   c                   $    \ rS rSrSS jrS rSrg)LangSysDefinition   Nc                 R    [         R                  X5        Xl        X l        X0l        g r-   )r<   r0   r\   r   features)r   r\   r   r   r/   s        r   r0   LangSysDefinition.__init__   s    4*	 r   c                     SnU R                   b  USU R                    S3-  nUSU R                   S3-  nU R                   H  nX -  nM
     US-  nU$ )NDEF_LANGSYSr   rm   r   r   zEND_LANGSYS
)r\   r   r   )r   r   features      r   r   LangSysDefinition.__str__   sf    99 WTYYKq))Cz''}}GYC %
r   )r   r\   r   r-   rq   r    r   r   r   r      s    !r   r   c                   $    \ rS rSrSS jrS rSrg)FeatureDefinition   Nc                 R    [         R                  X5        Xl        X l        X0l        g r-   )r<   r0   r\   r   lookups)r   r\   r   r   r/   s        r   r0   FeatureDefinition.__init__   s    4*	r   c                     SU R                    SU R                   S3nUSSR                  S U R                   5       5      -   S-   -  nUS-  nU$ )NzDEF_FEATURE NAME "z" TAG "r   r   c              3   .   #    U  H  nS U S3v   M     g7f)zLOOKUP "rm   Nr    )rR   ls     r   rS   ,FeatureDefinition.__str__.<locals>.<genexpr>   s     D|!1o|rl   rM   zEND_FEATURE
)r\   r   rV   r   )r   r   s     r   r   FeatureDefinition.__str__   sT    "499+WTXXJcBsSXXDt||DDDtKK
r   )r   r\   r   r-   rq   r    r   r   r   r      s    r   r   c                   &    \ rS rSr SS jrS rSrg)LookupDefinition   Nc                     [         R                  X5        Xl        X l        X0l        X@l        XPl        X`l        Xpl        Xl	        Xl
        Xl        g r-   )r<   r0   r\   process_baseprocess_marksmark_glyph_set	directionreversalcommentscontextsubpos)r   r\   r   r   r   r   r   r   r   r   r   r/   s               r   r0   LookupDefinition.__init__   sG     	4*	(*,"  r   c                 8   SU R                    S3nUSU R                  =(       a    S=(       d    S 3-  nU R                  (       ac  US-  nU R                  (       a  USU R                   S3-  nO>[	        U R                  [
        5      (       a  USU R                   S3-  nOUS-  nOUS	-  nU R                  b  US
U R                   3-  nU R                  (       a  US-  nU R                  b%  U R                  R                  SS5      nUSU S3-  nU R                  (       a)  USSR                  S U R                   5       5      -   -  nOUS-  nU R                  (       a  USU R                   3-  nU R                  (       a  USU R                   3-  nU$ )NzDEF_LOOKUP "rm   r   PROCESS_BASE	SKIP_BASEz PROCESS_MARKS zMARK_GLYPH_SET "ALLz SKIP_MARKSz DIRECTION z	 REVERSALrM   z\nz
COMMENTS "c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   rR   cs     r   rS   +LookupDefinition.__str__.<locals>.<genexpr>  s     #ALqCFFLrU   z
IN_CONTEXT
END_CONTEXT)r\   r   r   r   r   rP   r   r   r   replacer   rV   r   r   )r   r   r   s      r   r   LookupDefinition.__str__  s   TYYKq)4$$7F;GHH$$C"")$*=*=)>a@@D..444--.a00u= C>>%[ 011C==;C==$}},,T59H\(1--C<<4$))#ADLL#AAAAC..C88Rz?"C88Rz?"C
r   )
r   r   r   r   r\   r   r   r   r   r   r-   rq   r    r   r   r   r      s     4r   r   c                   $    \ rS rSrSS jrS rSrg)SubstitutionDefinitioni%  Nc                 :    [         R                  X5        Xl        g r-   )r<   r0   mapping)r   r   r/   s      r   r0   SubstitutionDefinition.__init__&  s    4*r   c                     SnU R                   R                  5        HA  u  p#SR                  S U 5       5      nSR                  S U 5       5      nUSU SU S3-  nMC     US-  nU$ )	NzAS_SUBSTITUTION
r   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   rQ   s     r   rS   1SubstitutionDefinition.__str__.<locals>.<genexpr>-       .#Q#a&&#rU   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   )rR   ds     r   rS   r  .  r  rU   SUBz
WITHz	
END_SUB
END_SUBSTITUTION)r   r   rV   )r   r   srcdsts       r   r   SubstitutionDefinition.__str__*  ss    !**,HC''.#..C''.#..CSVC544C - 	!!
r   )r   r-   rq   r    r   r   r   r   %  s    r   r   c                       \ rS rSrSrg)SubstitutionSingleDefinitioni4  r    Nr>   r    r   r   r  r  4  r?   r   r  c                       \ rS rSrSrg)SubstitutionMultipleDefinitioni8  r    Nr>   r    r   r   r  r  8  r?   r   r  c                       \ rS rSrSrg)SubstitutionLigatureDefinitioni<  r    Nr>   r    r   r   r  r  <  r?   r   r  c                       \ rS rSrSrg)+SubstitutionReverseChainingSingleDefinitioni@  r    Nr>   r    r   r   r  r  @  r?   r   r  c                   $    \ rS rSrSS jrS rSrg)PositionAttachDefinitioniD  Nc                 F    [         R                  X5        Xl        X l        g r-   )r<   r0   coveragecoverage_to)r   r  r  r/   s       r   r0   !PositionAttachDefinition.__init__E  s    4* &r   c                     SR                  S U R                   5       5      nSU S3nU R                   H'  u  pSR                  S U 5       5      nX! SU S3-  nM)     US-  nU$ )	Nr   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   3PositionAttachDefinition.__str__.<locals>.<genexpr>K  s     9=a3q66=rU   zAS_POSITION
ATTACHz
TOc              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   r  N       8x!s1vvxrU   z AT ANCHOR "rm   
END_ATTACH
END_POSITION)rV   r  r  )r   r  r   anchors       r   r    PositionAttachDefinition.__str__J  sv    7794==99#H:T2 $ 0 0Hww8x88HZ|F8155C !1 	++
r   )r  r  r-   rq   r    r   r   r  r  D  s    '
r   r  c                   $    \ rS rSrSS jrS rSrg)PositionAttachCursiveDefinitioniT  Nc                 F    [         R                  X5        Xl        X l        g r-   )r<   r0   coverages_exitcoverages_enter)r   r$  r%  r/   s       r   r0   (PositionAttachCursiveDefinition.__init__U  s    4*,.r   c                     SnU R                    H#  nSR                  S U 5       5      nUSU 3-  nM%     U R                   H#  nSR                  S U 5       5      nUSU 3-  nM%     US-  nU$ )NzAS_POSITION
ATTACH_CURSIVEr   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   :PositionAttachCursiveDefinition.__str__.<locals>.<genexpr>]  r  rU   z
EXIT c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   r)  `  r  rU   z
ENTER r  )r$  rV   r%  r   r   r  s      r   r   'PositionAttachCursiveDefinition.__str__Z  s    +++Hww8x88HWXJ''C , ,,Hww8x88HXhZ((C - 	++
r   )r%  r$  r-   rq   r    r   r   r"  r"  T  s    /
	r   r"  c                   $    \ rS rSrSS jrS rSrg)PositionAdjustPairDefinitionif  Nc                 R    [         R                  X5        Xl        X l        X0l        g r-   )r<   r0   coverages_1coverages_2adjust_pair)r   r0  r1  r2  r/   s        r   r0   %PositionAdjustPairDefinition.__init__g  s"    4*&&&r   c           
      f   SnU R                    H#  nSR                  S U 5       5      nUSU 3-  nM%     US-  nU R                   H#  nSR                  S U 5       5      nUSU 3-  nM%     US-  nU R                  R	                  5        H  u  u  p4u  pVUSU SU SU U S3-  nM     US	-  nU$ )
NzAS_POSITION
ADJUST_PAIR
r   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   7PositionAdjustPairDefinition.__str__.<locals>.<genexpr>p       91ArU   z FIRST rM   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   r6  t  r7  rU   z SECOND  BY
END_ADJUST
END_POSITION)r0  rV   r1  r2  r   )r   r   r  id_1id_2pos_1pos_2s          r   r   $PositionAdjustPairDefinition.__str__m  s    *((Hxx999HWXJ''C ) 	t((Hxx999HXhZ((C ) 	t,0,<,<,B,B,D(LT.5QtfAdV3ugeWB77C -E++
r   )r2  r0  r1  r-   rq   r    r   r   r.  r.  f  s    'r   r.  c                   $    \ rS rSrSS jrS rSrg)PositionAdjustSingleDefinitioni}  Nc                 :    [         R                  X5        Xl        g r-   )r<   r0   adjust_single)r   rC  r/   s      r   r0   'PositionAdjustSingleDefinition.__init__~  s    4**r   c                     SnU R                    H&  u  p#SR                  S U 5       5      nX SU 3-  nM(     US-  nU$ )NzAS_POSITION
ADJUST_SINGLEr   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   9PositionAdjustSingleDefinition.__str__.<locals>.<genexpr>  r  rU   r9  r:  )rC  rV   )r   r   r  r   s       r   r   &PositionAdjustSingleDefinition.__str__  sR    *!//MHww8x88HZs3%((C 0 	++
r   )rC  r-   rq   r    r   r   rA  rA  }  s    +r   rA  c                   $    \ rS rSrSS jrS rSrg)ContextDefinitioni  Nc                 t    [         R                  X5        Xl        Ub  UO/ U l        Ub  X0l        g / U l        g r-   )r<   r0   ex_or_inleftright)r   rL  rM  rN  r/   s        r   r0   ContextDefinition.__init__  s3    4*  ,D"	#/U
R
r   c                     U R                   S-   nU R                   H$  nSR                  S U 5       5      nUSU S3-  nM&     U R                   H$  nSR                  S U 5       5      nUSU S3-  nM&     US-  nU$ )NrM   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   ,ContextDefinition.__str__.<locals>.<genexpr>  r  rU   z LEFTc              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   r   s     r   rS   rR    r  rU   z RIGHTEND_CONTEXT)rL  rM  rV   rN  r+  s      r   r   ContextDefinition.__str__  s    mmd"		Hww8x88HU8*B''C " 

Hww8x88HVH:R((C # 	}
r   )rL  rM  rN  )NNNrq   r    r   r   rJ  rJ    s    8	r   rJ  c                   $    \ rS rSrSS jrS rSrg)AnchorDefinitioni  Nc                 v    [         R                  X5        Xl        X l        X0l        X@l        XPl        X`l        g r-   )r<   r0   r\   ra   
glyph_name	componentlockedr   )r   r\   ra   rY  rZ  r[  r   r/   s           r   r0   AnchorDefinition.__init__  s.    4*	$"r   c                     U R                   =(       a    S=(       d    SnSU R                   SU R                   SU R                   SU R                   U SU R
                   S3$ )	Nz LOCKEDr   zDEF_ANCHOR "z" ON z GLYPH z COMPONENT r   z END_ANCHOR)r[  r\   ra   rY  rZ  r   )r   r[  s     r   r   AnchorDefinition.__str__  sb    *0b499+ &88*doo&$..)h488*K)	
r   )rZ  ra   rY  r[  r\   r   r-   rq   r    r   r   rW  rW    s    	
r   rW  c                   $    \ rS rSrSS jrS rSrg)SettingDefinitioni  Nc                 F    [         R                  X5        Xl        X l        g r-   )r<   r0   r\   r   )r   r\   r   r/   s       r   r0   SettingDefinition.__init__  s    4*	
r   c                     U R                   SL a  U R                   $ [        U R                   [        [        45      (       a3  SR                  S U R                    5       5      nU R                   SU 3$ U R                   SU R                    3$ )NTr   c              3   8   #    U  H  n[        U5      v   M     g 7fr-   rO   )rR   vs     r   rS   ,SettingDefinition.__str__.<locals>.<genexpr>  s     8ZSVVZrU   )r   r\   r   r   listrV   )r   r   s     r   r   SettingDefinition.__str__  su    ::ii[!djj5$-00HH8TZZ88Eii[%))))Adjj\**r   )r\   r   r-   rq   r    r   r   r`  r`    s    
+r   r`  N) fontTools.voltLib.errorr   typingr   r   objectr*   r<   rA   rD   rY   rs   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r"  r.  rA  rJ  rW  r`  r    r   r   <module>rl     sV   0 * *"f "	 		 	
Ly 
Li 2=i =2(
 (': '2(
 (,8J 8 y $	 $	 7y 7tY 	#9 		%; 		%; 		2H 	y  i $9 .Y 	 &
y 
,+	 +r   