a
    —Æàgª3  ã                   @   sÌ  d dl mZ d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZG d!d"„ d"eƒZG d#d$„ d$eƒZG d%d&„ d&eƒZG d'd(„ d(eƒZG d)d*„ d*eƒZG d+d,„ d,eƒZG d-d.„ d.eƒZG d/d0„ d0eƒZG d1d2„ d2eƒZG d3d4„ d4eƒZG d5d6„ d6eƒZG d7d8„ d8eƒZd9S ):é    )ÚVoltLibError)Ú
NamedTuplec                   @   sF   e Zd ZU eed< eed< eed< eed< eed< eed< dd„ Zd	S )
ÚPosÚadvÚdxÚdyZadv_adjust_byZdx_adjust_byZdy_adjust_byc                 C   s|   d}dD ]f}t | |ƒ}|d ur|d| ¡ › d|› �7 }t | |› d�i ƒ}| ¡ D ]\}}|d|› d|› �7 }qPq|d7 }|S )Nz POS)r   r   r   ú Z
_adjust_byz ADJUST_BY ú AT z END_POS)ÚgetattrÚupperÚitems)ÚselfÚresÚattrÚvalueZ	adjust_byÚsizeZ
adjustment© r   úN/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/voltLib/ast.pyÚ__str__   s    
zPos.__str__N)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__Údictr   r   r   r   r   r      s   
r   c                   @   s&   e Zd Zddd„Zdd„ Zdd„ ZdS )	ÚElementNc                 C   s
   || _ d S ©N©Úlocation)r   r   r   r   r   Ú__init__   s    zElement.__init__c                 C   s   d S r   r   )r   Úbuilderr   r   r   Úbuild   s    zElement.buildc                 C   s   t ‚d S r   )ÚNotImplementedError©r   r   r   r   r   !   s    zElement.__str__)N©r   r   r   r   r!   r   r   r   r   r   r      s   
r   c                   @   s   e Zd ZdS )Ú	StatementN©r   r   r   r   r   r   r   r%   %   s   r%   c                   @   s   e Zd ZdS )Ú
ExpressionNr&   r   r   r   r   r'   )   s   r'   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚVoltFilec                 C   s   t j| d d� g | _d S )Nr   )r%   r   Ú
statementsr#   r   r   r   r   .   s    zVoltFile.__init__c                 C   s   | j D ]}| |¡ qd S r   )r)   r!   )r   r    Úsr   r   r   r!   2   s    
zVoltFile.buildc                 C   s   dd  dd„ | jD ƒ¡ d S )NÚ
c                 s   s   | ]}t |ƒV  qd S r   ©Ústr©Ú.0r*   r   r   r   Ú	<genexpr>7   ó    z#VoltFile.__str__.<locals>.<genexpr>z END
)Újoinr)   r#   r   r   r   r   6   s    zVoltFile.__str__Nr$   r   r   r   r   r(   -   s   r(   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚGlyphDefinitionNc                 C   s.   t  | |¡ || _|| _|| _|| _|| _d S r   )r%   r   ÚnameÚidÚunicodeÚtypeÚ
components)r   r4   ÚgidZgunicodeÚgtyper8   r   r   r   r   r   ;   s    zGlyphDefinition.__init__c                 C   s¨   d| j › d| j› �}| jd urht| jƒdkrTd dd„ | jD ƒ¡}|d|› d�7 }n|d	| jd
 › �7 }| jd ur‚|d| j› �7 }| jd urœ|d| j› �7 }|d7 }|S )NzDEF_GLYPH "z" ID é   ú,c                 s   s   | ]}d |d›�V  qdS )zU+Z04XNr   )r/   Úur   r   r   r0   G   r1   z*GlyphDefinition.__str__.<locals>.<genexpr>z UNICODEVALUES "ú"z	 UNICODE r   z TYPE z COMPONENTS z
 END_GLYPH)r4   r5   r6   Úlenr2   r7   r8   )r   r   Zunicodesr   r   r   r   C   s    


zGlyphDefinition.__str__)N©r   r   r   r   r   r   r   r   r   r3   :   s   
r3   c                   @   s(   e Zd Zddd„Zd	dd„Zdd„ ZdS )
ÚGroupDefinitionNc                 C   s"   t  | |¡ || _|| _d | _d S r   )r%   r   r4   ÚenumÚglyphs_)r   r4   rB   r   r   r   r   r   T   s    zGroupDefinition.__init__c                 C   sd   |d ur$| j |v r$td| j  | jƒ‚| jd u r^|d u rDt| j hƒ}n| | j ¡ | j |¡| _| jS )NzGroup "%s" contains itself.)r4   r   r   rC   ÚsetÚaddrB   ÚglyphSet)r   Úgroupsr   r   r   rF   Z   s    ÿ
zGroupDefinition.glyphSetc                 C   s(   | j rt| j ƒpd}d| j› d|› d�S )NÚ zDEF_GROUP "ú"
z

END_GROUP)rB   r-   r4   ©r   rB   r   r   r   r   g   s    zGroupDefinition.__str__)N)N)r   r   r   r   rF   r   r   r   r   r   rA   S   s   

rA   c                   @   s*   e Zd ZdZd	dd„Zdd„ Zdd„ ZdS )
Ú	GlyphNamez%A single glyph name, such as cedilla.Nc                 C   s   t  | |¡ || _d S r   )r'   r   Úglyph)r   rL   r   r   r   r   r   o   s    zGlyphName.__init__c                 C   s   | j fS r   ©rL   r#   r   r   r   rF   s   s    zGlyphName.glyphSetc                 C   s   d| j › d�S )Nz GLYPH "r>   rM   r#   r   r   r   r   v   s    zGlyphName.__str__)N©r   r   r   Ú__doc__r   rF   r   r   r   r   r   rK   l   s   
rK   c                   @   s4   e Zd ZdZddd„Zdd„ Zddd„Zd	d
„ ZdS )ÚEnumzAn enumNc                 C   s   t  | |¡ || _d S r   )r'   r   rB   )r   rB   r   r   r   r   r   }   s    zEnum.__init__c                 c   s   |   ¡ D ]
}|V  qd S r   )rF   )r   Úer   r   r   Ú__iter__�   s    zEnum.__iter__c                 C   sF   g }| j D ]2}t|ttfƒr.| | |¡¡ q
| | ¡ ¡ q
t|ƒS r   )rB   Ú
isinstanceÚ	GroupNamerP   ÚextendrF   Útuple)r   rG   ZglyphsÚelementr   r   r   rF   …   s    
zEnum.glyphSetc                 C   s"   d  dd„ | jD ƒ¡}d|› d�S )NrH   c                 s   s   | ]}t |ƒV  qd S r   r,   )r/   rQ   r   r   r   r0   �   r1   zEnum.__str__.<locals>.<genexpr>z ENUMz	 END_ENUM)r2   rB   rJ   r   r   r   r   Ž   s    zEnum.__str__)N)N)r   r   r   rO   r   rR   rF   r   r   r   r   r   rP   z   s
   

	rP   c                   @   s,   e Zd ZdZd	dd„Zd
dd„Zdd„ ZdS )rT   zA glyph groupNc                 C   s   t  | |¡ || _|| _d S r   )r'   r   ÚgroupÚparser_)r   rX   Úparserr   r   r   r   r   –   s    zGroupName.__init__c                 C   s>   | j  | j¡}|d ur(| |¡| _| jS td| j | jƒ‚d S )Nz!Group "%s" is used but undefined.)rY   Zresolve_grouprX   rF   rC   r   r   )r   rG   rX   r   r   r   rF   ›   s    ÿzGroupName.glyphSetc                 C   s   d| j › d�S )Nz GROUP "r>   )rX   r#   r   r   r   r   ¥   s    zGroupName.__str__)N)NrN   r   r   r   r   rT   “   s   


rT   c                   @   s*   e Zd ZdZd	dd„Zdd„ Zdd„ ZdS )
ÚRangezA glyph rangeNc                 C   s"   t  | |¡ || _|| _|| _d S r   )r'   r   ÚstartÚendrZ   )r   r\   r]   rZ   r   r   r   r   r   ¬   s    zRange.__init__c                 C   s   t | j | j| j¡ƒS r   )rV   rZ   Zglyph_ranger\   r]   r#   r   r   r   rF   ²   s    zRange.glyphSetc                 C   s   d| j › d| j› d�S )Nz RANGE "z" TO "r>   )r\   r]   r#   r   r   r   r   µ   s    zRange.__str__)NrN   r   r   r   r   r[   ©   s   
r[   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚScriptDefinitionNc                 C   s"   t  | |¡ || _|| _|| _d S r   )r%   r   r4   ÚtagÚlangs)r   r4   r_   r`   r   r   r   r   r   º   s    zScriptDefinition.__init__c                 C   sT   d}| j d ur |d| j › d�7 }|d| j› d�7 }| jD ]}||› 7 }q8|d7 }|S )NZ
DEF_SCRIPTú NAME "r>   ú TAG "ú"

Z
END_SCRIPT)r4   r_   r`   )r   r   Úlangr   r   r   r   À   s    

zScriptDefinition.__str__)Nr@   r   r   r   r   r^   ¹   s   
r^   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚLangSysDefinitionNc                 C   s"   t  | |¡ || _|| _|| _d S r   )r%   r   r4   r_   Úfeatures)r   r4   r_   rf   r   r   r   r   r   Ì   s    zLangSysDefinition.__init__c                 C   sT   d}| j d ur |d| j › d�7 }|d| j› d�7 }| jD ]}||› 7 }q8|d7 }|S )NZDEF_LANGSYSra   r>   rb   rc   zEND_LANGSYS
)r4   r_   rf   )r   r   Úfeaturer   r   r   r   Ò   s    

zLangSysDefinition.__str__)Nr@   r   r   r   r   re   Ë   s   
re   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚFeatureDefinitionNc                 C   s"   t  | |¡ || _|| _|| _d S r   )r%   r   r4   r_   Úlookups)r   r4   r_   ri   r   r   r   r   r   Þ   s    zFeatureDefinition.__init__c                 C   sD   d| j › d| j› d�}|dd dd„ | jD ƒ¡ d 7 }|d7 }|S )	NzDEF_FEATURE NAME "z" TAG "rI   r   c                 s   s   | ]}d |› d�V  qdS )zLOOKUP "r>   Nr   )r/   Úlr   r   r   r0   æ   r1   z,FeatureDefinition.__str__.<locals>.<genexpr>r+   zEND_FEATURE
)r4   r_   r2   ri   )r   r   r   r   r   r   ä   s    "zFeatureDefinition.__str__)Nr@   r   r   r   r   rh   Ý   s   
rh   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚLookupDefinitionNc                 C   sL   t  | |¡ || _|| _|| _|| _|| _|| _|| _|| _	|	| _
|
| _d S r   )r%   r   r4   Úprocess_baseÚprocess_marksÚmark_glyph_setÚ	directionÚreversalÚcommentsÚcontextÚsubÚpos)r   r4   rl   rm   rn   ro   rp   rq   rr   rs   rt   r   r   r   r   r   ì   s    zLookupDefinition.__init__c                 C   s2  d| j › d�}|d| jrdpd› �7 }| jrx|d7 }| jrN|d| j› d�7 }q€t| jtƒrn|d| j› d�7 }q€|d7 }n|d	7 }| jd urš|d
| j› �7 }| jr¨|d7 }| jd urÐ| j 	dd¡}|d|› d�7 }| j
rö|dd dd„ | j
D ƒ¡ 7 }n|d7 }| j�r|d| j› �7 }| j�r.|d| j› �7 }|S )NzDEF_LOOKUP "r>   r   ZPROCESS_BASEZ	SKIP_BASEz PROCESS_MARKS zMARK_GLYPH_SET "ÚALLz SKIP_MARKSz DIRECTION z	 REVERSALr+   z\nz
COMMENTS "c                 s   s   | ]}t |ƒV  qd S r   r,   ©r/   Úcr   r   r   r0     r1   z+LookupDefinition.__str__.<locals>.<genexpr>z
IN_CONTEXT
END_CONTEXT)r4   rl   rm   rn   rS   r-   ro   rp   rq   Úreplacerr   r2   rs   rt   )r   r   rq   r   r   r   r     s2    


 zLookupDefinition.__str__)Nr@   r   r   r   r   rk   ë   s    ô
rk   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚSubstitutionDefinitionNc                 C   s   t  | |¡ || _d S r   )r%   r   Úmapping)r   rz   r   r   r   r   r   &  s    zSubstitutionDefinition.__init__c                 C   sb   d}| j  ¡ D ]F\}}d dd„ |D ƒ¡}d dd„ |D ƒ¡}|d|› d|› d�7 }q|d	7 }|S )
NzAS_SUBSTITUTION
rH   c                 s   s   | ]}t |ƒV  qd S r   r,   r.   r   r   r   r0   -  r1   z1SubstitutionDefinition.__str__.<locals>.<genexpr>c                 s   s   | ]}t |ƒV  qd S r   r,   )r/   Údr   r   r   r0   .  r1   ZSUBz
WITHz	
END_SUB
ZEND_SUBSTITUTION)rz   r   r2   )r   r   ÚsrcÚdstr   r   r   r   *  s    zSubstitutionDefinition.__str__)Nr@   r   r   r   r   ry   %  s   
ry   c                   @   s   e Zd ZdS )ÚSubstitutionSingleDefinitionNr&   r   r   r   r   r~   4  s   r~   c                   @   s   e Zd ZdS )ÚSubstitutionMultipleDefinitionNr&   r   r   r   r   r   8  s   r   c                   @   s   e Zd ZdS )ÚSubstitutionLigatureDefinitionNr&   r   r   r   r   r€   <  s   r€   c                   @   s   e Zd ZdS )Ú+SubstitutionReverseChainingSingleDefinitionNr&   r   r   r   r   r�   @  s   r�   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚPositionAttachDefinitionNc                 C   s   t  | |¡ || _|| _d S r   )r%   r   ÚcoverageÚcoverage_to)r   rƒ   r„   r   r   r   r   r   E  s    z!PositionAttachDefinition.__init__c                 C   sf   d  dd„ | jD ƒ¡}d|› d�}| jD ]0\}}d  dd„ |D ƒ¡}||› d|› d�7 }q(|d	7 }|S )
NrH   c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   K  r1   z3PositionAttachDefinition.__str__.<locals>.<genexpr>zAS_POSITION
ATTACHz
TOc                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   N  r1   z AT ANCHOR "r>   ú
END_ATTACH
END_POSITION)r2   rƒ   r„   )r   rƒ   r   Úanchorr   r   r   r   J  s    z PositionAttachDefinition.__str__)Nr@   r   r   r   r   r‚   D  s   
r‚   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚPositionAttachCursiveDefinitionNc                 C   s   t  | |¡ || _|| _d S r   )r%   r   Úcoverages_exitÚcoverages_enter)r   rˆ   r‰   r   r   r   r   r   U  s    z(PositionAttachCursiveDefinition.__init__c                 C   sl   d}| j D ]&}d dd„ |D ƒ¡}|d|› �7 }q
| jD ]&}d dd„ |D ƒ¡}|d|› �7 }q8|d7 }|S )	NzAS_POSITION
ATTACH_CURSIVErH   c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   ]  r1   z:PositionAttachCursiveDefinition.__str__.<locals>.<genexpr>z
EXIT c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   `  r1   z
ENTER r…   )rˆ   r2   r‰   ©r   r   rƒ   r   r   r   r   Z  s    

z'PositionAttachCursiveDefinition.__str__)Nr@   r   r   r   r   r‡   T  s   
r‡   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚPositionAdjustPairDefinitionNc                 C   s"   t  | |¡ || _|| _|| _d S r   )r%   r   Úcoverages_1Úcoverages_2Úadjust_pair)r   rŒ   r�   rŽ   r   r   r   r   r   g  s    z%PositionAdjustPairDefinition.__init__c              
   C   s¸   d}| j D ]&}d dd„ |D ƒ¡}|d|› �7 }q
|d7 }| jD ]&}d dd„ |D ƒ¡}|d|› �7 }q@|d7 }| j ¡ D ]0\\}}\}}|d|› d|› d	|› |› d�7 }qz|d
7 }|S )NzAS_POSITION
ADJUST_PAIR
r   c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   p  r1   z7PositionAdjustPairDefinition.__str__.<locals>.<genexpr>z FIRST r+   c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   t  r1   z SECOND ú BYú
END_ADJUST
END_POSITION)rŒ   r2   r�   rŽ   r   )r   r   rƒ   Zid_1Zid_2Zpos_1Zpos_2r   r   r   r   m  s    

"z$PositionAdjustPairDefinition.__str__)Nr@   r   r   r   r   r‹   f  s   
r‹   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚPositionAdjustSingleDefinitionNc                 C   s   t  | |¡ || _d S r   )r%   r   Úadjust_single)r   r’   r   r   r   r   r   ~  s    z'PositionAdjustSingleDefinition.__init__c                 C   sF   d}| j D ].\}}d dd„ |D ƒ¡}||› d|› �7 }q
|d7 }|S )NzAS_POSITION
ADJUST_SINGLErH   c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   …  r1   z9PositionAdjustSingleDefinition.__str__.<locals>.<genexpr>r�   r�   )r’   r2   )r   r   rƒ   rt   r   r   r   r   ‚  s    z&PositionAdjustSingleDefinition.__str__)Nr@   r   r   r   r   r‘   }  s   
r‘   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚContextDefinitionNc                 C   s:   t  | |¡ || _|d ur|ng | _|d ur0|ng | _d S r   )r%   r   Úex_or_inÚleftÚright)r   r”   r•   r–   r   r   r   r   r   Œ  s    zContextDefinition.__init__c                 C   sv   | j d }| jD ](}d dd„ |D ƒ¡}|d|› d�7 }q| jD ](}d dd„ |D ƒ¡}|d|› d�7 }q@|d7 }|S )	Nr+   rH   c                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   •  r1   z,ContextDefinition.__str__.<locals>.<genexpr>z LEFTc                 s   s   | ]}t |ƒV  qd S r   r,   rv   r   r   r   r0   ˜  r1   z RIGHTZEND_CONTEXT)r”   r•   r2   r–   rŠ   r   r   r   r   ’  s    


zContextDefinition.__str__)NNNr@   r   r   r   r   r“   ‹  s   
r“   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚAnchorDefinitionNc                 C   s4   t  | |¡ || _|| _|| _|| _|| _|| _d S r   )r%   r   r4   r9   Ú
glyph_nameÚ	componentÚlockedrt   )r   r4   r9   r˜   r™   rš   rt   r   r   r   r   r   Ÿ  s    zAnchorDefinition.__init__c                 C   s@   | 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š   r4   r9   r˜   r™   rt   )r   rš   r   r   r   r   ¨  s    
ÿþýüûÿzAnchorDefinition.__str__)Nr@   r   r   r   r   r—   ž  s   
	r—   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚSettingDefinitionNc                 C   s   t  | |¡ || _|| _d S r   )r%   r   r4   r   )r   r4   r   r   r   r   r   r   µ  s    zSettingDefinition.__init__c                 C   sZ   | j du r| j› S t| j ttfƒrHd dd„ | j D ƒ¡}| j› d|› �S | j› d| j › �S )NTr   c                 s   s   | ]}t |ƒV  qd S r   r,   )r/   Úvr   r   r   r0   ¾  r1   z,SettingDefinition.__str__.<locals>.<genexpr>)r   r4   rS   rV   Úlistr2   )r   r   r   r   r   r   º  s    
zSettingDefinition.__str__)Nr@   r   r   r   r   r›   ´  s   
r›   N) ZfontTools.voltLib.errorr   Útypingr   r   Úobjectr   r%   r'   r(   r3   rA   rK   rP   rT   r[   r^   re   rh   rk   ry   r~   r   r€   r�   r‚   r‡   r‹   r‘   r“   r—   r›   r   r   r   r   Ú<module>   s8   :