Spade
Mini Shell
| Directory:~$ /proc/self/root/lib64/python3.6/lib2to3/fixes/__pycache__/ |
| [Home] [System Details] [Kill Me] |
3
\ �@srddlmZddlmZddlmZmZmZdd�Zdd�Z dd �Z
d
d�Zdd
�Zdd�Z
Gdd�dej�ZdS)�)�
fixer_base)�token)�syms�Node�LeafcCsxxr|jD]h}|jtjkr
t|�S|jtjkr|jr|jd}|jtjkr|jr|jd}t|t�r|j dkrdSqWdS)N��
__metaclass__TF)
�children�typer�suite�
has_metaclass�simple_stmt� expr_stmt�
isinstancer�value)�parent�node� expr_nodeZ left_side�r�3/usr/lib64/python3.6/lib2to3/fixes/fix_metaclass.pyrs
rcCs�x|jD]}|jtjkrdSqWx,t|j�D]\}}|jtjkr,Pq,Wtd��ttjg�}x:|j|dd�r�|j|d}|j |j
��|j�q\W|j |�|}dS)NzNo class suite and no
':'!�)r r
rr� enumerater�COLON�
ValueErrorr�append_child�clone�remove)�cls_noder�ir� move_noderrr�fixup_parse_tree-s
r c
Cs�x(t|j�D]\}}|jtjkrPqWdS|j�ttjg�}ttj |g�}x2|j|d�r~|j|}|j
|j��|j�qNW|j||�|jdjd}|jdjd} | j
|_
dS)Nr)rr r
r�SEMIrrrrr
rr�insert_child�prefix)
rrZ stmt_nodeZsemi_indrZnew_exprZnew_stmtrZ new_leaf1Z old_leaf1rrr�fixup_simple_stmtGs
r$cCs*|jr&|jdjtjkr&|jdj�dS)Nr���r%)r r
r�NEWLINEr)rrrr�remove_trailing_newline_sr'ccs�x$|jD]}|jtjkrPqWtd��x�tt|j��D]t\}}|jtjkr6|jr6|jd}|jtjkr6|jr6|jd}t |t
�r6|jdkr6t|||�t
|�|||fVq6WdS)NzNo class
suite!rr)r r
rrr�listrr
rrrrr$r')rrrZsimple_noderZ left_noderrr�
find_metasds
r)cCs�|jddd�}x|r.|j�}|jtjkrPqWxL|r||j�}t|t�rd|jtjkrd|jr`d|_dS|j |jddd��q2WdS)Nr�r%r%)
r �popr
r�INDENTrr�DEDENTr#�extend)rZkidsrrrr�fixup_indent{sr/c@seZdZdZdZdd�ZdS)�FixMetaclassTz
classdef<any*>
cCs<t|�sdSt|�d}x"t|�D]\}}}|}|j�q"W|jdj}t|j�dkr�|jdjtjkrt|jd}n(|jdj �} t
tj| g�}|jd|�n�t|j�dkr�t
tjg�}|jd|�nZt|j�dk�rt
tjg�}|jdt
tjd��|jd|�|jdt
tjd��ntd ��|jdjd}
d
|
_|
j}|j�r^|jt
tjd��d|
_nd
|
_|jd}d
|jd_d
|jd_|j|�t|�|j�s�|j�t
|d�}
||
_|j|
�|jt
tjd��nbt|j�dk�r8|jdjtjk�r8|jdjtjk�r8t
|d�}
|jd|
�|jdt
tjd��dS)Nr����r�)�(zUnexpected
class definition� metaclass�,� r*r�pass�
���r%r%r%)rr r)rr r
�lenr�arglistrrZ set_childr"rr�RPAR�LPARrrr#r�COMMAr/r&r,r-)�selfrZresultsZlast_metaclassrrZstmtZ text_typer>rZmeta_txtZorig_meta_prefixrZ pass_leafrrr� transform�s^
zFixMetaclass.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNrCrrrrr0�sr0N)r*rZpygramrZ
fixer_utilrrrrr
r$r'r)r/ZBaseFixr0rrrr�<module>s