o
    ,º]Ñ  ã                   @   sZ   d Z ddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZmZ dZG dd„ dejƒZd	S )
z?
Fixer for:
it.__next__() -> it.next().
next(it) -> it.next().
é    )Útoken)Úpython_symbols)Ú
fixer_base)ÚNameÚCallÚfind_bindingÚAttrz;Calls to builtin next() possibly shadowed by global bindingc                   @   s   e Zd ZdZdd„ ZdS )ÚFixNextas  
    power< base=any+ trailer< '.' attr='__next__' > any* >
    |
    power< head='next' trailer< '(' arg=any ')' > any* >
    |
    classdef< 'class' base=any+ ':'
              suite< any*
                     funcdef< 'def'
                              attr='__next__'
                              parameters< '(' NAME ')' > any+ >
                     any* > >
    c                 C   sŠ   |sJ ‚|  d¡}|  d¡}|  d¡}|  d¡}|r5| ¡ }| ttt|ƒ|jd�tdƒƒ¡ | ¡  d S |rC| td|jd�¡ d S d S )NÚbaseÚattrÚheadÚarg)ÚprefixÚnext)ÚgetÚcloneÚreplacer   r   Úunicoder   Úremove)ÚselfÚnodeÚresultsr
   r   r   Úarg_r   © r   úY/var/www/html/myproject/venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_next.pyÚ	transform   s   



ÿÿzFixNext.transformN)Ú__name__Ú
__module__Ú__qualname__ÚPATTERNr   r   r   r   r   r	      s    r	   N)Ú__doc__Úlib2to3.pgen2r   Úlib2to3.pygramr   ÚsymsÚlib2to3r   Úlib2to3.fixer_utilr   r   r   r   Úbind_warningÚBaseFixr	   r   r   r   r   Ú<module>   s    