509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \”m  ã               @   sÄ   d Z ddl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   sH   t s<ddlm} x*|jjƒ D ]\}}t|ƒtkr|t |< qW t j| | ƒS )Né   )Úpython_symbols)Ú_type_reprsZpygramr   Ú__dict__ÚitemsÚtypeÚintÚ
setdefault)Ztype_numr   ÚnameÚval© r   ú&/usr/lib64/python3.6/lib2to3/pytree.pyÚ	type_repr   s     r   c               @   s¶   e Zd ZdZdZf 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 )&ÚBaseNFc             O   s
   t j| ƒS )N)ÚobjectÚ__new__)ÚclsÚargsÚkwdsr   r   r   r   2   s    zBase.__new__c             C   s   | j |j k	rtS | j|ƒS )N)Ú	__class__ÚNotImplementedÚ_eq)ÚselfÚotherr   r   r   Ú__eq__7   s    zBase.__eq__c             C   s   t ‚d S )N)ÚNotImplementedError)r   r   r   r   r   r   C   s    	zBase._eqc             C   s   t ‚d S )N)r   )r   r   r   r   ÚcloneN   s    z
Base.clonec             C   s   t ‚d S )N)r   )r   r   r   r   Ú
post_orderV   s    zBase.post_orderc             C   s   t ‚d S )N)r   )r   r   r   r   Ú	pre_order^   s    zBase.pre_orderc             C   s†   t |tƒs|g}g }d}x:| jjD ].}|| krF|d k	r@|j|ƒ d}q"|j|ƒ q"W | jjƒ  || j_x|D ]}| j|_qlW d | _d S )NFT)Ú
isinstanceÚlistÚparentÚchildrenÚextendÚappendÚchanged)r   ÚnewZ
l_childrenÚfoundÚchÚxr   r   r   Úreplacef   s    



zBase.replacec             C   s.   | }x"t |tƒs&|jsd S |jd }qW |jS )Nr   )r    ÚLeafr#   Úlineno)r   Únoder   r   r   Ú
get_lineno}   s    zBase.get_linenoc             C   s   | j r| j jƒ  d| _d S )NT)r"   r&   Úwas_changed)r   r   r   r   r&   †   s    
zBase.changedc             C   sJ   | j rFx>t| j jƒD ].\}}|| kr| j jƒ  | j j|= d | _ |S qW d S )N)r"   Ú	enumerater#   r&   )r   Úir.   r   r   r   Úremove‹   s    

zBase.removec             C   sZ   | j d krd S xFt| j jƒD ]6\}}|| kry| j j|d  S  tk
rP   d S X qW d S )Nr   )r"   r1   r#   Ú
IndexError)r   r2   Úchildr   r   r   Únext_sibling˜   s    
zBase.next_siblingc             C   sP   | j d krd S x<t| j jƒD ],\}}|| kr|dkr8d S | j j|d  S qW d S )Nr   r   )r"   r1   r#   )r   r2   r5   r   r   r   Úprev_sibling©   s    
zBase.prev_siblingc             c   s"   x| j D ]}|jƒ E d H  qW d S )N)r#   Úleaves)r   r5   r   r   r   r8   ¹   s    zBase.leavesc             C   s   | j d krdS d| j jƒ  S )Nr   r   )r"   Údepth)r   r   r   r   r9   ½   s    
z
Base.depthc             C   s   | j }|d krdS |jS )NÚ )r6   Úprefix)r   Znext_sibr   r   r   Ú
get_suffixÂ   s    zBase.get_suffixé   r   c             C   s   t | ƒjdƒS )NÚascii)ÚstrÚencode)r   r   r   r   Ú__str__Í   s    zBase.__str__)r=   r   )Ú__name__Ú
__module__Ú__qualname__r   r"   r#   r0   Zwas_checkedr   r   Ú__hash__r   r   r   r   r+   r/   r&   r3   Úpropertyr6   r7   r8   r9   r<   ÚsysÚversion_inforA   r   r   r   r   r       s.   
	

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dd„ Zdd„ ZeeeƒZdd„ Zdd„ Zdd„ ZdS )ÚNodeNc             C   sR   || _ t|ƒ| _x| jD ]
}| |_qW |d k	r4|| _|rH|d d … | _nd | _d S )N)r   r!   r#   r"   r;   Úfixers_applied)r   r   r#   Úcontextr;   rJ   r)   r   r   r   Ú__init__Ô   s    

zNode.__init__c             C   s   d| j jt| jƒ| jf S )Nz
%s(%s, %r))r   rB   r   r   r#   )r   r   r   r   Ú__repr__í   s    zNode.__repr__c             C   s   dj tt| jƒƒS )Nr:   )ÚjoinÚmapr?   r#   )r   r   r   r   Ú__unicode__ó   s    zNode.__unicode__r=   r   c             C   s   | j | jf|j |jfkS )N)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 | ]}|j ƒ ‘qS r   )r   )Ú.0r)   r   r   r   ú
<listcomp>  s    zNode.clone.<locals>.<listcomp>)rJ   )rI   r   r#   rJ   )r   r   r   r   r     s    z
Node.clonec             c   s(   x| j D ]}|jƒ E d H  qW | V  d S )N)r#   r   )r   r5   r   r   r   r     s    zNode.post_orderc             c   s(   | V  x| j D ]}|jƒ E d H  qW d S )N)r#   r   )r   r5   r   r   r   r     s    zNode.pre_orderc             C   s   | j s
dS | j d jS )Nr:   r   )r#   r;   )r   r   r   r   Ú_prefix_getter  s    zNode._prefix_getterc             C   s   | j r|| j d _d S )Nr   )r#   r;   )r   r;   r   r   r   Ú_prefix_setter  s    zNode._prefix_setterc             C   s(   | |_ d | j| _ || j|< | jƒ  d S )N)r"   r#   r&   )r   r2   r5   r   r   r   Ú	set_child!  s    
zNode.set_childc             C   s    | |_ | jj||ƒ | jƒ  d S )N)r"   r#   Úinsertr&   )r   r2   r5   r   r   r   Úinsert_child+  s    zNode.insert_childc             C   s   | |_ | jj|ƒ | jƒ  d S )N)r"   r#   r%   r&   )r   r5   r   r   r   Úappend_child4  s    zNode.append_child)NNN)r=   r   )rB   rC   rD   rL   rM   rP   rG   rH   rA   r   r   r   r   rS   rT   rF   r;   rU   rW   rX   r   r   r   r   rI   Ð   s"     



	rI   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dd„ Zdd„ ZeeeƒZdS )r,   r:   r   Nc             C   sF   |d k	r|\| _ \| _| _|| _|| _|d k	r4|| _ |d d … | _d S )N)Ú_prefixr-   Úcolumnr   ÚvaluerJ   )r   r   r[   rK   r;   rJ   r   r   r   rL   G  s    zLeaf.__init__c             C   s   d| j j| j| jf S )Nz
%s(%r, %r))r   rB   r   r[   )r   r   r   r   rM   Z  s    zLeaf.__repr__c             C   s   | j t| jƒ S )N)r;   r?   r[   )r   r   r   r   rP   `  s    zLeaf.__unicode__r=   c             C   s   | j | jf|j |jfkS )N)r   r[   )r   r   r   r   r   r   k  s    zLeaf._eqc             C   s$   t | j| j| j| j| jff| jd�S )N)rJ   )r,   r   r[   r;   r-   rZ   rJ   )r   r   r   r   r   o  s    
z
Leaf.clonec             c   s
   | V  d S )Nr   )r   r   r   r   r8   u  s    zLeaf.leavesc             c   s
   | V  d S )Nr   )r   r   r   r   r   x  s    zLeaf.post_orderc             c   s
   | V  d S )Nr   )r   r   r   r   r   |  s    zLeaf.pre_orderc             C   s   | j S )N)rY   )r   r   r   r   rS   €  s    zLeaf._prefix_getterc             C   s   | j ƒ  || _d S )N)r&   rY   )r   r;   r   r   r   rT   †  s    zLeaf._prefix_setter)r=   r   )rB   rC   rD   rY   r-   rZ   rL   rM   rP   rG   rH   rA   r   r   r8   r   r   rS   rT   rF   r;   r   r   r   r   r,   >  s$   
r,   c             C   sN   |\}}}}|s|| j kr<t|ƒdkr.|d S t|||d�S t|||d�S d S )Nr   r   )rK   )Znumber2symbolÚlenrI   r,   )ZgrZraw_noder   r[   rK   r#   r   r   r   ÚconvertŒ  s    r]   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 j| ƒS )N)r   r   )r   r   r   r   r   r   r   ´  s    zBasePattern.__new__c             C   sL   t | jƒ| j| jg}x|r.|d d kr.|d= qW d| jjdjtt|ƒƒf S )Nr   z%s(%s)z, éÿÿÿÿr_   )	r   r   Úcontentr   r   rB   rN   rO   Úrepr)r   r   r   r   r   rM   ¹  s    
zBasePattern.__repr__c             C   s   | S )Nr   )r   r   r   r   Úoptimize¿  s    zBasePattern.optimizec             C   sn   | j d k	r|j | j krdS | jd k	rRd }|d k	r4i }| j||ƒsDdS |rR|j|ƒ |d k	rj| jrj||| j< dS )NFT)r   r`   Ú	_submatchÚupdater   )r   r.   ÚresultsÚrr   r   r   ÚmatchÇ  s    


zBasePattern.matchc             C   s    t |ƒdkrdS | j|d |ƒS )Nr   Fr   )r\   rg   )r   Únodesre   r   r   r   Ú	match_seqà  s    zBasePattern.match_seqc             c   s&   i }|r"| j |d |ƒr"d|fV  d S )Nr   r   )rg   )r   rh   rf   r   r   r   Úgenerate_matchesê  s    zBasePattern.generate_matches)N)N)rB   rC   rD   r   r`   r   r   rM   rb   rg   ri   rj   r   r   r   r   r^   Ÿ  s   


r^   c               @   s*   e Zd Zddd„Zd	dd„Zd
dd„ZdS )ÚLeafPatternNc             C   s&   |d k	r|d k	r|| _ || _|| _d S )N)r   r`   r   )r   r   r`   r   r   r   r   rL   ÷  s
    zLeafPattern.__init__c             C   s   t |tƒsdS tj| ||ƒS )NF)r    r,   r^   rg   )r   r.   re   r   r   r   rg     s    
zLeafPattern.matchc             C   s   | j |jkS )N)r`   r[   )r   r.   re   r   r   r   rc     s    zLeafPattern._submatch)NNN)N)N)rB   rC   rD   rL   rg   rc   r   r   r   r   rk   õ  s   

rk   c               @   s$   e Zd ZdZddd„Zddd„ZdS )	ÚNodePatternFNc             C   sT   |d k	r|d k	r>t |ƒ}x$t|ƒD ]\}}t|tƒr"d| _q"W || _|| _|| _d S )NT)r!   r1   r    ÚWildcardPatternÚ	wildcardsr   r`   r   )r   r   r`   r   r2   Úitemr   r   r   rL   %  s    

zNodePattern.__init__c             C   s’   | j rJx>t| j|jƒD ],\}}|t|jƒkr|d k	r>|j|ƒ dS qW dS t| jƒt|jƒkrbdS x*t| j|jƒD ]\}}|j||ƒsrdS qrW dS )NTF)rn   rj   r`   r#   r\   rd   Úziprg   )r   r.   re   Úcrf   Ú
subpatternr5   r   r   r   rc   B  s    
zNodePattern._submatch)NNN)N)rB   rC   rD   rn   rL   rc   r   r   r   r   rl   !  s   
rl   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 )rm   Nr   c             C   s@   |d k	r$t tt |ƒƒ}x|D ]}qW || _|| _|| _|| _d S )N)ÚtuplerO   r`   ÚminÚmaxr   )r   r`   rt   ru   r   Úaltr   r   r   rL   l  s    
zWildcardPattern.__init__c             C   sÒ   d }| j d k	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 krft| jd�S |d k	r‚| j|jkr‚|jƒ 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   )	r`   r\   rt   ru   rl   r   rb   r    rm   )r   rr   r   r   r   rb   �  s     
 


zWildcardPattern.optimizec             C   s   | j |g|ƒS )N)ri   )r   r.   re   r   r   r   rg   ¢  s    zWildcardPattern.matchc             C   sR   xL| j |ƒD ]>\}}|t|ƒkr|d k	rF|j|ƒ | jrFt|ƒ|| j< dS qW dS )NTF)rj   r\   rd   r   r!   )r   rh   re   rq   rf   r   r   r   ri   ¦  s    
zWildcardPattern.match_seqc             c   s:  | j d krXxJt| jdtt|ƒ| jƒ ƒD ]*}i }| jrH|d |… || j< ||fV  q(W nÞ| jdkrp| j|ƒV  nÆttdƒrˆtj	}t
ƒ t_	z˜y@x:| j|dƒD ]*\}}| jrº|d |… || j< ||fV  qšW W nR tk
�r   x:| j|ƒD ],\}}| j�r
|d |… || j< ||fV  qèW Y nX W d ttdƒ�r4|t_	X d S )Nr   Z	bare_nameÚgetrefcountr   )r`   Úrangert   r\   ru   r   Ú_bare_name_matchesÚhasattrrG   Ústderrr   Ú_recursive_matchesÚRuntimeErrorÚ_iterative_matches)r   rh   Úcountrf   Zsave_stderrr   r   r   rj   ±  s.    
"

z WildcardPattern.generate_matchesc             c   s  t |ƒ}d| jkrdi fV  g }x>| jD ]4}x.t||ƒD ] \}}||fV  |j||fƒ q8W q(W x¦|�rg }x’|D ]Š\}}	||k rr|| jkrrxn| jD ]d}x^t|||d … ƒD ]H\}
}|
dkr¬i }|j|	ƒ |j|ƒ ||
 |fV  |j||
 |fƒ q¬W q”W qrW |}qbW d S )Nr   )r\   rt   r`   rj   r%   ru   rd   )r   rh   Znodelenre   rv   rq   rf   Znew_resultsÚc0Úr0Úc1Úr1r   r   r   r~   Þ  s*    




z"WildcardPattern._iterative_matchesc             C   sx   d}i }d}t |ƒ}xH| r\||k r\d}x0| jD ]&}|d j|| |ƒr0|d7 }d}P q0W qW |d |… || j< ||fS )Nr   FTr   )r\   r`   rg   r   )r   rh   r   rf   Údoneru   Zleafr   r   r   ry   û  s    
z"WildcardPattern._bare_name_matchesc       	      c   s–   || j krdi fV  || jk r’xr| jD ]h}xbt||ƒD ]T\}}xJ| j||d … |d ƒD ].\}}i }|j|ƒ |j|ƒ || |fV  qXW q6W q&W d S )Nr   r   )rt   ru   r`   rj   r|   rd   )	r   rh   r   rv   r€   r�   r‚   rƒ   rf   r   r   r   r|     s    


"

z"WildcardPattern._recursive_matches)N)N)rB   rC   rD   ÚHUGErL   rb   rg   ri   rj   r~   ry   r|   r   r   r   r   rm   ^  s   #

-rm   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 k	r|| _ d S )N)r`   )r   r`   r   r   r   rL     s    	zNegatedPattern.__init__c             C   s   dS )NFr   )r   r.   r   r   r   rg   )  s    zNegatedPattern.matchc             C   s   t |ƒdkS )Nr   )r\   )r   rh   r   r   r   ri   -  s    zNegatedPattern.match_seqc             c   sL   | j d kr"t|ƒdkrHdi fV  n&x| j j|ƒD ]
\}}d S W di fV  d S )Nr   )r`   r\   rj   )r   rh   rq   rf   r   r   r   rj   1  s    
zNegatedPattern.generate_matches)N)rB   rC   rD   rL   rg   ri   rj   r   r   r   r   r†     s   
r†   c       	      c   s˜   | sdi fV  n„| d | dd …  }}xl|j |ƒD ]^\}}|sJ||fV  q2xDt |||d … ƒD ].\}}i }|j|ƒ |j|ƒ || |fV  q^W q2W d S )Nr   r   )rj   rd   )	Zpatternsrh   ÚpÚrestr€   r�   r‚   rƒ   rf   r   r   r   rj   =  s    

rj   )Ú
__author__rG   ÚwarningsÚior   r…   r   r   r   r   rI   r,   r]   r^   rk   rl   rm   r†   rj   r   r   r   r   Ú<module>   s$   
 1nNV,= =#