a
�DOg�
� @ sF d Z ddlmZ ddlmZmZmZ ddlmZ G dd� dej�Z dS )z/Fixer that changes xrange(...) into range(...).� )�
fixer_base)�Name�Call�consuming_calls)�patcompc sh e Zd ZdZdZ� fdd�Zdd� Zdd� Zd d
� Zdd� Z d
Z
e�e
�Z
dZe�e�Zdd� Z� ZS )� FixXrangeTz�
power<
(name='range'|name='xrange') trailer< '(' args=any ')' >
rest=any* >
c s t t| ��||� t� | _d S �N)�superr �
start_tree�set�transformed_xranges��selfZtree�filename�� __class__� �0/usr/lib64/python3.9/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 sD |d }|j dkr| �||�S |j dkr4| �||�S tt|���d S )N�name�xrange�range)�value�transform_xrange�transform_range�
ValueError�repr�r �node�resultsr r r r � transform s
zFixXrange.transformc C s0 |d }|� td|jd�� | j�t|�� d S )Nr r ��prefix)�replacer r"