a
    $RîhFm  ã                   @   s¼   d Z ddlZddlmZ dZi add„ ZG dd„ deƒZG d	d
„ d
eƒZ	G dd„ deƒZ
dd„ 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dd„ ZdS )z#Guido van Rossum <guido@python.org>é    N)ÚStringIOiÿÿÿc                 C   sD   t s8ddlm} |j ¡ D ]\}}t|ƒtkr|t |< qt  | | ¡S )Né   )Úpython_symbols)Ú_type_reprsZpygramr   Ú__dict__ÚitemsÚtypeÚintÚ
setdefault)Ztype_numr   ÚnameÚval© r   ú6/opt/python-3.9.24/usr/lib/python3.9/lib2to3/pytree.pyÚ	type_repr   s
    r   c                   @   s¶   e Zd ZdZdZdZdZdZdd„ Zdd„ Z	dZ
dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd d!„ Zejd"k r²d#d$„ ZdS )%ÚBaseNr   Fc                 O   s
   t  | ¡S ©N©ÚobjectÚ__new__©ÚclsÚargsÚkwdsr   r   r   r   1   s    zBase.__new__c                 C   s   | j |j urtS |  |¡S r   )Ú	__class__ÚNotImplementedÚ_eq©ÚselfÚotherr   r   r   Ú__eq__6   s    zBase.__eq__c                 C   s   t ‚d S r   ©ÚNotImplementedErrorr   r   r   r   r   B   s    	zBase._eqc                 C   s   t ‚d S r   r    ©r   r   r   r   ÚcloneM   s    z
Base.clonec                 C   s   t ‚d S r   r    r"   r   r   r   Ú
post_orderU   s    zBase.post_orderc                 C   s   t ‚d S r   r    r"   r   r   r   Ú	pre_order]   s    zBase.pre_orderc                 C   s~   t |tƒs|g}g }d}| jjD ].}|| u rD|d ur>| |¡ d}q | |¡ q | j ¡  || j_|D ]}| j|_qfd | _d S ©NFT)Ú
isinstanceÚlistÚparentÚchildrenÚextendÚappendÚchanged)r   ÚnewZ
l_childrenÚfoundÚchÚxr   r   r   Úreplacee   s    



zBase.replacec                 C   s*   | }t |tƒs$|jsd S |jd }q|jS ©Nr   )r'   ÚLeafr*   Úlineno©r   Únoder   r   r   Ú
get_lineno|   s    
zBase.get_linenoc                 C   s   | j r| j  ¡  d| _d S ©NT)r)   r-   Úwas_changedr"   r   r   r   r-   …   s    
zBase.changedc                 C   sJ   | j rFt| j jƒD ]2\}}|| u r| j  ¡  | j j|= d | _ |  S qd S r   )r)   Ú	enumerater*   r-   )r   Úir7   r   r   r   ÚremoveŠ   s    

zBase.removec              	   C   s^   | j d u rd S t| j jƒD ]>\}}|| u rz| j j|d  W   S  tyV   Y  d S 0 qd S )Nr   )r)   r;   r*   Ú
IndexError©r   r<   Úchildr   r   r   Únext_sibling—   s    
zBase.next_siblingc                 C   sR   | j d u rd S t| j jƒD ]2\}}|| u r|dkr8 d S | j j|d    S qd S ©Nr   r   )r)   r;   r*   r?   r   r   r   Úprev_sibling¨   s    
zBase.prev_siblingc                 c   s   | j D ]}| ¡ E d H  qd S r   )r*   Úleaves©r   r@   r   r   r   rD   ¸   s    
zBase.leavesc                 C   s   | j d u rdS d| j  ¡  S rB   )r)   Údepthr"   r   r   r   rF   ¼   s    
z
Base.depthc                 C   s   | j }|d u rdS |jS ©NÚ )rA   Úprefix)r   Znext_sibr   r   r   Ú
get_suffixÁ   s    zBase.get_suffix©é   r   c                 C   s   t | ƒ d¡S )NÚascii)ÚstrÚencoder"   r   r   r   Ú__str__Ì   s    zBase.__str__)Ú__name__Ú
__module__Ú__qualname__r   r)   r*   r:   Zwas_checkedr   r   Ú__hash__r   r#   r$   r%   r2   r8   r-   r=   ÚpropertyrA   rC   rD   rF   rJ   ÚsysÚversion_inforP   r   r   r   r   r      s2   
	



r   c                   @   s†   e Zd Zddd„Zdd„ Zdd„ Zejdkr0eZd	d
„ Z	dd„ Z
dd„ Zdd„ Zedd„ ƒZejdd„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚNodeNc                 C   sN   || _ t|ƒ| _| jD ]
}| |_q|d ur0|| _|rD|d d … | _nd | _d S r   )r   r(   r*   r)   rI   Úfixers_applied)r   r   r*   ÚcontextrI   rY   r0   r   r   r   Ú__init__Ó   s    

zNode.__init__c                 C   s   d| j jt| jƒ| jf S )Nz
%s(%s, %r))r   rQ   r   r   r*   r"   r   r   r   Ú__repr__ì   s    þzNode.__repr__c                 C   s   d  tt| jƒ¡S rG   )ÚjoinÚmaprN   r*   r"   r   r   r   Ú__unicode__ò   s    zNode.__unicode__rK   c                 C   s   | j | jf|j |jfkS r   )r   r*   r   r   r   r   r   ý   s    zNode._eqc                 C   s   t | jdd„ | jD ƒ| jdS )Nc                 S   s   g | ]}|  ¡ ‘qS r   )r#   )Ú.0r0   r   r   r   Ú
<listcomp>  ó    zNode.clone.<locals>.<listcomp>©rY   )rX   r   r*   rY   r"   r   r   r   r#     s    ÿz
Node.clonec                 c   s$   | j D ]}| ¡ E d H  q| V  d S r   )r*   r$   rE   r   r   r   r$     s    
zNode.post_orderc                 c   s$   | V  | j D ]}| ¡ E d H  qd S r   )r*   r%   rE   r   r   r   r%     s    
zNode.pre_orderc                 C   s   | j s
dS | j d jS )NrH   r   ©r*   rI   r"   r   r   r   rI     s    zNode.prefixc                 C   s   | j r|| j d _d S r3   rd   ©r   rI   r   r   r   rI     s    c                 C   s(   | |_ d | j| _ || j|< |  ¡  d S r   )r)   r*   r-   r?   r   r   r   Ú	set_child   s    
zNode.set_childc                 C   s    | |_ | j ||¡ |  ¡  d S r   )r)   r*   Úinsertr-   r?   r   r   r   Úinsert_child*  s    zNode.insert_childc                 C   s   | |_ | j |¡ |  ¡  d S r   )r)   r*   r,   r-   rE   r   r   r   Úappend_child3  s    zNode.append_child)NNN)rQ   rR   rS   r[   r\   r_   rV   rW   rP   r   r#   r$   r%   rU   rI   Úsetterrf   rh   ri   r   r   r   r   rX   Ï   s&      ý




	rX   c                   @   sˆ   e Zd ZdZdZdZddg fdd„Zdd„ Zdd	„ Ze	j
d
krBeZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZejdd„ ƒZdS )r4   rH   r   Nc                 C   sF   |d ur|\| _ \| _| _|| _|| _|d ur4|| _ |d d … | _d S r   )Ú_prefixr5   Úcolumnr   ÚvaluerY   )r   r   rm   rZ   rI   rY   r   r   r   r[   F  s    zLeaf.__init__c                 C   s   d| j j| j| jf S )Nz
%s(%r, %r))r   rQ   r   rm   r"   r   r   r   r\   Y  s    þzLeaf.__repr__c                 C   s   | j t| jƒ S r   )rI   rN   rm   r"   r   r   r   r_   _  s    zLeaf.__unicode__rK   c                 C   s   | j | jf|j |jfkS r   )r   rm   r   r   r   r   r   j  s    zLeaf._eqc                 C   s$   t | j| j| j| j| jff| jdS )Nrc   )r4   r   rm   rI   r5   rl   rY   r"   r   r   r   r#   n  s    
þz
Leaf.clonec                 c   s
   | V  d S r   r   r"   r   r   r   rD   t  s    zLeaf.leavesc                 c   s
   | V  d S r   r   r"   r   r   r   r$   w  s    zLeaf.post_orderc                 c   s
   | V  d S r   r   r"   r   r   r   r%   {  s    zLeaf.pre_orderc                 C   s   | j S r   )rk   r"   r   r   r   rI     s    zLeaf.prefixc                 C   s   |   ¡  || _d S r   )r-   rk   re   r   r   r   rI   †  s    )rQ   rR   rS   rk   r5   rl   r[   r\   r_   rV   rW   rP   r   r#   rD   r$   r%   rU   rI   rj   r   r   r   r   r4   =  s(   ý


r4   c                 C   sN   |\}}}}|s|| j v r<t|ƒdkr.|d S t|||dS t|||dS d S )Nr   r   )rZ   )Znumber2symbolÚlenrX   r4   )ZgrZraw_noder   rm   rZ   r*   r   r   r   Úconvert‹  s    ro   c                   @   sL   e Zd ZdZdZdZdd„ Zdd„ Zdd„ Zddd	„Z	dd
d„Z
dd„ ZdS )ÚBasePatternNc                 O   s
   t  | ¡S r   r   r   r   r   r   r   ³  s    zBasePattern.__new__c                 C   sH   t | jƒ| j| jg}|r,|d d u r,|d= qd| jjd tt|ƒ¡f S )Néÿÿÿÿz%s(%s)z, )	r   r   Úcontentr   r   rQ   r]   r^   Úrepr)r   r   r   r   r   r\   ¸  s    zBasePattern.__repr__c                 C   s   | S r   r   r"   r   r   r   Úoptimize¾  s    zBasePattern.optimizec                 C   sn   | j d ur|j | j krdS | jd urRd }|d ur4i }|  ||¡sDdS |rR| |¡ |d urj| jrj||| j< dS r&   )r   rr   Ú	_submatchÚupdater   )r   r7   ÚresultsÚrr   r   r   ÚmatchÆ  s    


zBasePattern.matchc                 C   s    t |ƒdkrdS |  |d |¡S )Nr   Fr   )rn   ry   )r   Únodesrw   r   r   r   Ú	match_seqß  s    zBasePattern.match_seqc                 c   s&   i }|r"|   |d |¡r"d|fV  d S rB   )ry   )r   rz   rx   r   r   r   Úgenerate_matchesé  s    zBasePattern.generate_matches)N)N)rQ   rR   rS   r   rr   r   r   r\   rt   ry   r{   r|   r   r   r   r   rp   ž  s   


rp   c                   @   s*   e Zd Zddd„Zd	dd„Zd
dd„ZdS )ÚLeafPatternNc                 C   s&   |d ur|d ur|| _ || _|| _d S r   )r   rr   r   )r   r   rr   r   r   r   r   r[   ö  s
    zLeafPattern.__init__c                 C   s   t |tƒsdS t | ||¡S ©NF)r'   r4   rp   ry   ©r   r7   rw   r   r   r   ry   
  s    
zLeafPattern.matchc                 C   s   | j |jkS r   )rr   rm   r   r   r   r   ru     s    zLeafPattern._submatch)NNN)N)N)rQ   rR   rS   r[   ry   ru   r   r   r   r   r}   ô  s   

r}   c                   @   s$   e Zd ZdZddd„Zddd„ZdS )	ÚNodePatternFNc                 C   sP   |d ur|d ur:t |ƒ}t|ƒD ]\}}t|tƒr d| _q || _|| _|| _d S r9   )r(   r;   r'   ÚWildcardPatternÚ	wildcardsr   rr   r   )r   r   rr   r   r<   Úitemr   r   r   r[   $  s    
zNodePattern.__init__c                 C   sŽ   | j rHt| j|jƒD ].\}}|t|jƒkr|d ur<| |¡  dS qdS t| jƒt|jƒkr`dS t| j|jƒD ]\}}| ||¡sn dS qndS ©NTF)r‚   r|   rr   r*   rn   rv   Úzipry   )r   r7   rw   Úcrx   Ú
subpatternr@   r   r   r   ru   A  s    
zNodePattern._submatch)NNN)N)rQ   rR   rS   r‚   r[   ru   r   r   r   r   r€      s   
r€   c                   @   sZ   e Zd Zddedfdd„Zdd„ Zddd„Zdd	d
„Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )r   Nr   c                 C   s<   |d ur t tt |ƒƒ}|D ]}q|| _|| _|| _|| _d S r   )Útupler^   rr   ÚminÚmaxr   )r   rr   r‰   rŠ   r   Úaltr   r   r   r[   k  s    zWildcardPattern.__init__c                 C   sÒ   d }| j d ur<t| j ƒdkr<t| j d ƒdkr<| j d d }| jdkr‚| jdkr‚| j d u rft| jdS |d ur‚| j|jkr‚| ¡ S | jdkrÎt|tƒrÎ|jdkrÎ| j|jkrÎt|j | j|j | j|j |jƒS | S )Nr   r   )r   )	rr   rn   r‰   rŠ   r€   r   rt   r'   r   )r   r‡   r   r   r   rt   Ž  s.    
ÿÿ
ÿ
ÿ

ýzWildcardPattern.optimizec                 C   s   |   |g|¡S r   )r{   r   r   r   r   ry   ¡  s    zWildcardPattern.matchc                 C   sP   |   |¡D ]@\}}|t|ƒkr
|d urD| |¡ | jrDt|ƒ|| j<  dS q
dS r„   )r|   rn   rv   r   r(   )r   rz   rw   r†   rx   r   r   r   r{   ¥  s    
zWildcardPattern.match_seqc              	   c   s<  | j d u rTt| jdtt|ƒ| jƒ ƒD ]*}i }| jrF|d |… || j< ||fV  q&nä| jdkrl|  |¡V  nÌttdƒr„tj	}t
ƒ t_	zžz<|  |d¡D ]*\}}| jr´|d |… || j< ||fV  q”W nJ ty   |  |¡D ]*\}}| jrü|d |… || j< ||fV  qÜY n0 W ttdƒr8|t_	nttdƒr6|t_	0 d S )Nr   Z	bare_nameÚgetrefcountr   )rr   Úranger‰   rn   rŠ   r   Ú_bare_name_matchesÚhasattrrV   Ústderrr   Ú_recursive_matchesÚRuntimeErrorÚ_iterative_matches)r   rz   Úcountrx   Zsave_stderrr   r   r   r|   °  s2    
 

ÿz WildcardPattern.generate_matchesc                 c   sò   t |ƒ}d| jkrdi fV  g }| jD ]0}t||ƒD ] \}}||fV  | ||f¡ q4q&|rîg }|D ]‚\}}	||k rd|| jkrd| jD ]`}t|||d … ƒD ]H\}
}|
dkrši }| |	¡ | |¡ ||
 |fV  | ||
 |f¡ qšq„qd|}qXd S r3   )rn   r‰   rr   r|   r,   rŠ   rv   )r   rz   Znodelenrw   r‹   r†   rx   Znew_resultsÚc0Úr0Úc1Úr1r   r   r   r“   Ý  s*    






z"WildcardPattern._iterative_matchesc                 C   sp   d}i }d}t |ƒ}|sV||k rVd}| jD ](}|d  || |¡r*|d7 }d} qq*q|d |… || j< ||fS )Nr   FTr   )rn   rr   ry   r   )r   rz   r”   rx   ÚdonerŠ   Zleafr   r   r   rŽ   ú  s    
z"WildcardPattern._bare_name_matchesc           	      c   sŠ   || j krdi fV  || jk r†| jD ]`}t||ƒD ]P\}}|  ||d … |d ¡D ].\}}i }| |¡ | |¡ || |fV  qRq2q$d S rB   )r‰   rŠ   rr   r|   r‘   rv   )	r   rz   r”   r‹   r•   r–   r—   r˜   rx   r   r   r   r‘   
  s    



 

z"WildcardPattern._recursive_matches)N)N)rQ   rR   rS   ÚHUGEr[   rt   ry   r{   r|   r“   rŽ   r‘   r   r   r   r   r   ]  s   #

-r   c                   @   s.   e Zd Zd
dd„Zdd„ Zdd„ Zdd	„ ZdS )ÚNegatedPatternNc                 C   s   |d ur|| _ d S r   )rr   )r   rr   r   r   r   r[     s    	zNegatedPattern.__init__c                 C   s   dS r~   r   r6   r   r   r   ry   (  s    zNegatedPattern.matchc                 C   s   t |ƒdkS r3   )rn   )r   rz   r   r   r   r{   ,  s    zNegatedPattern.match_seqc                 c   sJ   | j d u r"t|ƒdkrFdi fV  n$| j  |¡D ]\}} d S di fV  d S r3   )rr   rn   r|   )r   rz   r†   rx   r   r   r   r|   0  s    
zNegatedPattern.generate_matches)N)rQ   rR   rS   r[   ry   r{   r|   r   r   r   r   r›     s   
r›   c           	      c   s   | sdi fV  n|| d | dd …  }}|  |¡D ]Z\}}|sH||fV  q0t |||d … ƒD ].\}}i }| |¡ | |¡ || |fV  qZq0d S rB   )r|   rv   )	Úpatternsrz   ÚpÚrestr•   r–   r—   r˜   rx   r   r   r   r|   <  s    

r|   )Ú
__author__rV   Úior   rš   r   r   r   r   rX   r4   ro   rp   r}   r€   r   r›   r|   r   r   r   r   Ú<module>   s"   
 1nNV,= =#