File: //proc/self/root/opt/alt/python27/lib/python2.7/site-packages/libfuturize/fixes/fix_next_call.pyc
�
�A�[c @ s� 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 d Z d e j
f d � � YZ d � Z d
� Z d � Z d S(
s
Based on fix_next.py by Collin Winter.
Replaces it.next() -> next(it), per PEP 3114.
Unlike fix_next.py, this fixer doesn't replace the name of a next method with __next__,
which would break Python 2 compatibility without further help from fixers in
stage 2.
i����( t token( t python_symbols( t
fixer_base( t Namet Callt find_bindings; Calls to builtin next() possibly shadowed by global bindingt FixNextCallc B s, e Z e Z d Z d Z d � Z d � Z RS( s�
power< base=any+ trailer< '.' attr='next' > trailer< '(' ')' > >
|
power< head=any+ trailer< '.' attr='next' > not trailer< '(' ')' > >
|
global=global_stmt< 'global' any* 'next' any* >
t prec C sW t t | � j | | � t d | � } | rJ | j | t � t | _ n t | _ d S( Nt next( t superR t
start_treeR t warningt bind_warningt Truet
shadowed_nextt False( t selft treet filenamet n( ( sP /opt/alt/python27/lib/python2.7/site-packages/libfuturize/fixes/fix_next_call.pyR
s c C s> | s t � | j d � } | j d � } | j d � } | r� | j rK q:g | D] } | j � ^ qR } d | d _ | j t t d d | j �| � � n� | r� n� | rt | � r:| d } d j g | D] } t
| � ^ q� � j � d k r| j | t
� n d Sn( d
| k r:| j | t
� t | _ n d S( Nt baset attrt namet i R t prefixt headt __builtin__t global( t AssertionErrort getR t cloneR t replaceR R t is_assign_targett joint strt stripR R R
( R t nodet resultsR R R R R ( ( sP /opt/alt/python27/lib/python2.7/site-packages/libfuturize/fixes/fix_next_call.pyt transform* s*
(
4( t __name__t
__module__R
t
BM_compatiblet PATTERNt orderR
R&