U e5d8m�@s�dZddlZddlmZdZiadd�ZGdd�de�ZGd d �d e�Z Gd d �d e�Z d d�Z Gdd�de�Z Gdd�de �Z Gdd�de �ZGdd�de �ZGdd�de �Zdd�ZdS)z#Guido van Rossum �N)�StringIOi���cCsDts8ddlm}|j��D]\}}t|�tkr|t|<qt�||�S)N�)�python_symbols)� _type_reprsZpygramr�__dict__�items�type�int� setdefault)Ztype_numr�name�val�r �&/usr/lib64/python3.8/lib2to3/pytree.py� type_reprs   rc@s�eZdZdZdZdZdZdZdd�Zdd�Z dZ dd �Z d d �Z d d �Z dd�Zdd�Zdd�Zdd�Zdd�Zedd��Zedd��Zdd�Zdd�Zd d!�Zejd"kr�d#d$�ZdS)%�BaseNr FcOs t�|�S�N��object�__new__��cls�args�kwdsr r rr1sz Base.__new__cCs|j|jk rtS|�|�Sr)� __class__�NotImplemented�_eq��self�otherr r r�__eq__6s z Base.__eq__cCst�dSr��NotImplementedErrorrr r rrBs zBase._eqcCst�dSrr �rr r r�cloneMsz Base.clonecCst�dSrr r"r r r� post_orderUszBase.post_ordercCst�dSrr r"r r r� pre_order]szBase.pre_ordercCs~t|t�s|g}g}d}|jjD].}||krD|dk r>|�|�d}q |�|�q |j��||j_|D] }|j|_qfd|_dS�NFT)� isinstance�list�parent�children�extend�append�changed)r�newZ l_children�found�ch�xr r r�replacees      z Base.replacecCs*|}t|t�s$|jsdS|jd}q|jS�Nr)r'�Leafr*�lineno�r�noder r r� get_lineno|s   zBase.get_linenocCs|jr|j��d|_dS�NT)r)r-� was_changedr"r r rr-�s z Base.changedcCsJ|jrFt|jj�D]2\}}||kr|j��|jj|=d|_|SqdSr)r)� enumerater*r-)r�ir7r r r�remove�s  z Base.removec Cs`|jdkrdSt|jj�D]@\}}||krz|jj|dWStk rXYdSXqdS)Nr)r)r;r*� IndexError�rr<�childr r r� next_sibling�s zBase.next_siblingcCsR|jdkrdSt|jj�D]2\}}||kr|dkr8dS|jj|dSqdS�Nrr)r)r;r*r?r r r� prev_sibling�s zBase.prev_siblingccs|jD]}|��EdHqdSr)r*�leaves�rr@r r rrD�s z Base.leavescCs|jdkrdSd|j��SrB)r)�depthr"r r rrF�s z Base.depthcCs|j}|dkrdS|jS�N�)rA�prefix)rZnext_sibr r r� get_suffix�szBase.get_suffix��rcCst|��d�S)N�ascii)�str�encoder"r r r�__str__�sz Base.__str__)�__name__� __module__� __qualname__rr)r*r:Z was_checkedrr�__hash__rr#r$r%r2r8r-r=�propertyrArCrDrFrJ�sys� version_inforPr r r rrs2        rc@s�eZdZddd�Zdd�Zdd�Zejdkr0eZd d �Z d d �Z d d�Z dd�Z e dd��Zejdd��Zdd�Zdd�Zdd�ZdS)�NodeNcCsN||_t|�|_|jD] }||_q|dk r0||_|rD|dd�|_nd|_dSr)rr(r*r)rI�fixers_applied)rrr*�contextrIrYr0r r r�__init__�s   z Node.__init__cCsd|jjt|j�|jfS)Nz %s(%s, %r))rrQrrr*r"r r r�__repr__�s�z Node.__repr__cCsd�tt|j��SrG)�join�maprNr*r"r r r� __unicode__�szNode.__unicode__rKcCs|j|jf|j|jfkSr)rr*rr r rr�szNode._eqcCst|jdd�|jD�|jd�S)NcSsg|] }|���qSr )r#)�.0r0r r r� szNode.clone..�rY)rXrr*rYr"r r rr#s�z Node.cloneccs$|jD]}|��EdHq|VdSr)r*r$rEr r rr$s zNode.post_orderccs$|V|jD]}|��EdHq dSr)r*r%rEr r rr% s zNode.pre_ordercCs|js dS|jdjS)NrHr�r*rIr"r r rrIsz Node.prefixcCs|jr||jd_dSr3rc�rrIr r rrIscCs(||_d|j|_||j|<|��dSr)r)r*r-r?r r r� set_child s  zNode.set_childcCs ||_|j�||�|��dSr)r)r*�insertr-r?r r r� insert_child*szNode.insert_childcCs||_|j�|�|��dSr)r)r*r,r-rEr r r� append_child3s zNode.append_child)NNN)rQrRrSr[r\r_rVrWrPrr#r$r%rUrI�setterrergrhr r r rrX�s&�      rXc@s�eZdZdZdZdZddgfdd�Zdd�Zdd �Ze j d krBeZ d d �Z d d�Z dd�Zdd�Zdd�Zedd��Zejdd��ZdS)r4rHrNcCsF|dk r|\|_\|_|_||_||_|dk r4||_|dd�|_dSr)�_prefixr5�columnr�valuerY)rrrlrZrIrYr r rr[Fs z Leaf.__init__cCsd|jj|j|jfS)Nz %s(%r, %r))rrQrrlr"r r rr\Ys�z Leaf.__repr__cCs|jt|j�Sr)rIrNrlr"r r rr__szLeaf.__unicode__rKcCs|j|jf|j|jfkSr)rrlrr r rrjszLeaf._eqcCs$t|j|j|j|j|jff|jd�S)Nrb)r4rrlrIr5rkrYr"r r rr#ns �z Leaf.cloneccs |VdSrr r"r r rrDtsz Leaf.leavesccs |VdSrr r"r r rr$wszLeaf.post_orderccs |VdSrr r"r r rr%{szLeaf.pre_ordercCs|jSr)rjr"r r rrIsz Leaf.prefixcCs|��||_dSr)r-rjrdr r rrI�s)rQrRrSrjr5rkr[r\r_rVrWrPrr#rDr$r%rUrIrir r r rr4=s(�   r4cCsN|\}}}}|s||jkr s"  1nNV,==#