�`^c@s�dZddlmZddlmZddlmZddlmZddlmZm Z m
Z
mZmZej
d�Zdejfd ��YZd
S(sFixer for print.
Change:
'print' into 'print()'
'print ...' into 'print(...)'
'print ... ,' into 'print(..., end=" ")'
'print >>x, ...' into 'print(..., file=x)'
No changes are applied if print_function is imported from __future__
i(tpatcomp(tpytree(ttoken(t
fixer_base(tNametCalltCommatStringtis_tuples"atom< '(' [atom|STRING|NAME] ')' >tFixPrintcBs&eZeZdZd�Zd�ZRS(sP
simple_stmt< any* bare='print' any* > | print_stmt
cCs2|st�|jd�}|rJ|jttd�gd|j��dS|jdtd�ksit�|jd}t|�dkr�tj |d�r�dSd}}}|r�|dt�kr�|d }d}n|r3|dtj
tjd�kr3t|�d kst�|dj�}|d
}ng|D]}|j�^q:} | rhd| d_n|dk s�|dk s�|dk r
|dk r�|j| dtt|���n|dk r�j| d
tt|���n|dk r
|j| d|�q
nttd�| �}
|j|
_|
S(Ntbareuprinttprefixiii�t u>>iiuusepuendufile(tAssertionErrortgettreplaceRRRtchildrentlentparend_exprtmatchtNoneRRtLeafRt
RIGHTSHIFTtclonet add_kwargRtrepr(tselftnodetresultst
bare_printtargstseptendtfiletargtl_argstn_stmt((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyt transform%s>
%
%
$""cCsrd|_tj|jjt|�tjtjd�|f�}|ra|j t
��d|_n|j |�dS(Nuu=u (RRtNodetsymstargumentRRRtEQUALtappendR(Rtl_nodests_kwdtn_exprt
n_argument((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyRMs (t__name__t
__module__tTruet
BM_compatibletPATTERNR%R(((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyR s (N(t__doc__tRRtpgen2RRt
fixer_utilRRRRRtcompile_patternRtBaseFixR (((s-/sys/lib/python2.7/lib2to3/fixes/fix_print.pyt<module>s(
|