Spade
Mini Shell
| Directory:~$ /proc/self/root/lib64/python3.6/lib2to3/fixes/__pycache__/ |
| [Home] [System Details] [Kill Me] |
3
\�
�@sFdZddlmZddlmZmZmZddlmZGdd�dej�Z dS)z/Fixer
that changes xrange(...) into range(...).�)�
fixer_base)�Name�Call�consuming_calls)�patcompcsheZdZdZdZ�fdd�Zdd�Zdd�Zd d
�Zdd�Z d
Z
eje
�Z
dZeje�Zdd�Z�ZS)� FixXrangeTz�
power<
(name='range'|name='xrange')
trailer< '(' args=any ')' >
rest=any* >
cstt|�j||�t�|_dS)N)�superr�
start_tree�set�transformed_xranges)�self�tree�filename)� __class__��"/usr/lib64/python3.6/fix_xrange.pyr szFixXrange.start_treecCs
d|_dS)N)r)rr
rrrr�finish_treeszFixXrange.finish_treecCsD|d}|jdkr|j||�S|jdkr4|j||�Stt|���dS)N�nameZxrange�range)�value�transform_xrange�transform_range�
ValueError�repr)r�node�resultsrrrr� transforms
zFixXrange.transformcCs0|d}|jtd|jd��|jjt|��dS)Nrr)�prefix)�replacerrr�add�id)rrrrrrrr$szFixXrange.transform_xrangecCslt|�|jkrh|j|�rhttd�|dj�g�}ttd�|g|jd�}x|dD]}|j|�qRW|SdS)Nr�args�list)r�rest)r
r�in_special_contextrrZclonerZappend_child)rrrZ
range_callZ list_call�nrrrr*s
zFixXrange.transform_rangez3power< func=NAME trailer<
'(' node=any ')' > any* >z�for_stmt<
'for' any 'in' node=any ':' any* >
| comp_for< 'for' any 'in' node=any any*
>
| comparison< any 'in' node=any any*>
cCsf|jdkrdSi}|jjdk rJ|jj|jj|�rJ|d|krJ|djtkS|jj|j|�od|d|kS)NFr�func)�parent�p1�matchrr�p2)rrrrrrr$?s
zFixXrange.in_special_context)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNr rrrrZP1rZcompile_patternr(ZP2r*r$�
__classcell__rr)rrrs
rN)
�__doc__�rZ
fixer_utilrrrrZBaseFixrrrrr�<module>s