�`^c@s_dZddlmZddlmZmZmZddlmZdejfd��YZ dS(s/Fixer that changes xrange(...) into range(...).i(t
fixer_base(tNametCalltconsuming_calls(tpatcompt FixXrangecBsteZeZdZd�Zd�Zd�Zd�Zd�Z dZ
eje
�Z
dZeje�Zd�ZRS( s�
power<
(name='range'|name='xrange') trailer< '(' args=any ')' >
rest=any* >
cCs)tt|�j||�t�|_dS(N(tsuperRt
start_treetsetttransformed_xranges(tselfttreetfilename((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyRscCs
d|_dS(N(tNoneR (R
RR((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pytfinish_treescCs^|d}|jdkr)|j||�S|jdkrH|j||�Stt|���dS(Ntnameuxrangeurange(tvaluettransform_xrangettransform_ranget
ValueErrortrepr(R
tnodetresultsR((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyt transforms
cCs@|d}|jtdd|j��|jjt|��dS(NRurangetprefix(treplaceRRR taddtid(R
RRR((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyR$s
cCs�t|�|jkr�|j|�r�ttd�|dj�g�}ttd�|gd|j�}x|dD]}|j|�qsW|SdS(NurangetargsulistRtrest(RR tin_special_contextRRtcloneRtappend_child(R
RRt
range_callt list_calltn((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyR*s"s3power< func=NAME trailer< '(' node=any ')' > any* >s�for_stmt< 'for' any 'in' node=any ':' any* >
| comp_for< 'for' any 'in' node=any any* >
| comparison< any 'in' node=any any*>
cCs�|jdkrtSi}|jjdk rg|jj|jj|�rg|d|krg|djtkS|jj|j|�o�|d|kS(NRtfunc(tparentR
tFalsetp1tmatchRRtp2(R
RR((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyR?s(t__name__t
__module__tTruet
BM_compatibletPATTERNRRRRRtP1Rtcompile_patternR'tP2R)R(((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyRs N(
t__doc__tRt
fixer_utilRRRRtBaseFixR(((s./sys/lib/python2.7/lib2to3/fixes/fix_xrange.pyt<module>s
|