o
bc
@ sF d Z ddlmZ ddlmZmZmZ ddlmZ G dd dejZ dS )z/Fixer that changes xrange(...) into range(...). )
fixer_base)NameCallconsuming_calls)patcompc sh e Zd ZdZdZ fddZdd Zdd Zd d
Zdd Z d
Z
ee
Z
dZeeZdd Z ZS ) FixXrangeTz
power<
(name='range'|name='xrange') trailer< '(' args=any ')' >
rest=any* >
c s t t| || t | _d S N)superr
start_treesettransformed_xrangesselftreefilename __class__ //usr/lib/python3.10/lib2to3/fixes/fix_xrange.pyr
s zFixXrange.start_treec C s
d | _ d S r )r r
r r r finish_tree s
zFixXrange.finish_treec C s@ |d }|j dkr| ||S |j dkr| ||S tt|)Nnamexrangerange)valuetransform_xrangetransform_range
ValueErrorreprr noderesultsr r r r transform s
zFixXrange.transformc C s0 |d }| td|jd | jt| d S )Nr r prefix)replacer r# r addidr r r r r $ s zFixXrange.transform_xrangec C sj t || jvr1| |s3ttd|d g}ttd|g|jd}|d D ]}|| q'|S d S d S )Nr argslistr" rest)r&