ó v®¸Qc@sdZddlmZddlmZddlmZddlm Z m Z m Z dZ dej fd„ƒYZd „Zd „Zd „Zd S( s.Fixer for it.next() -> next(it), per PEP 3114.i(ttoken(tpython_symbols(t fixer_base(tNametCallt find_bindings;Calls to builtin next() possibly shadowed by global bindingtFixNextcBs,eZeZdZdZd„Zd„ZRS(s¾ power< base=any+ trailer< '.' attr='next' > trailer< '(' ')' > > | power< head=any+ trailer< '.' attr='next' > not trailer< '(' ')' > > | classdef< 'class' any+ ':' suite< any* funcdef< 'def' name='next' parameters< '(' NAME ')' > any+ > any* > > | global=global_stmt< 'global' any* 'next' any* > tprecCsWtt|ƒj||ƒtd|ƒ}|rJ|j|tƒt|_n t|_dS(Nunext( tsuperRt start_treeRtwarningt bind_warningtTruet shadowed_nexttFalse(tselfttreetfilenametn((s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyR $s  cCsƒ|jdƒ}|jdƒ}|jdƒ}|r¯|jr[|jtdd|jƒƒqg|D]}|jƒ^qb}d|d_|jttdd|jƒ|ƒƒnÐ|rÚtdd|jƒ}|j|ƒn¥|rWt|ƒrA|d }d jg|D]}t |ƒ^qƒj ƒd kr=|j |t ƒndS|jtdƒƒn(d |kr|j |t ƒt |_ndS( Ntbasetattrtnameu__next__tprefixuiunexttheadtu __builtin__tglobal(tgetR treplaceRRtcloneRtis_assign_targettjointstrtstripR R R (RtnodetresultsRRRRR((s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyt transform.s,  (  4 (t__name__t __module__R t BM_compatibletPATTERNtorderR R#(((s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyRs  cCs]t|ƒ}|dkrtSx:|jD]/}|jtjkrBtSt||ƒr&tSq&WtS(N( t find_assigntNoneRtchildrenttypeRtEQUALt is_subtreeR (R!tassigntchild((s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyRQs  cCsH|jtjkr|S|jtjks7|jdkr;dSt|jƒS(N(R,tsymst expr_stmtt simple_stmttparentR*R)(R!((s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyR)]s !cs-|ˆkrtSt‡fd†|jDƒƒS(Nc3s|]}t|ˆƒVqdS(N(R.(t.0tc(R!(s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pys gs(R tanyR+(trootR!((R!s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyR.ds N(t__doc__tpgen2RtpygramRR1RRt fixer_utilRRRR tBaseFixRRR)R.(((s,/sys/lib/python2.7/lib2to3/fixes/fix_next.pyts@