???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3

  \                 @   sl   d Z ddlm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 ejdZG dd	 d	ejZd
S )a  Fixer 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__

   )patcomp)pytree)token)
fixer_base)NameCallCommaStringz"atom< '(' [atom|STRING|NAME] ')' >c               @   s$   e Zd ZdZdZdd Zdd ZdS )FixPrintTzP
              simple_stmt< any* bare='print' any* > | print_stmt
              c       
      C   s  |st |jd}|r4|jttdg |jd d S |jd tdksJt |jdd  }t|dkrvtj	|d rvd S d  } }}|r|d t
 kr|d d }d}|r|d tjtjdkrt|dkst |d j }|d	d  }d
d |D }|rd|d _|d k	s"|d k	s"|d k	rz|d k	rB| j|dtt| |d k	rb| j|dtt| |d k	rz| j|d| ttd|}	|j|	_|	S )NZbareprint)prefix        z>>r      c             S   s   g | ]}|j  qS  )clone).0argr   r   //usr/lib64/python3.6/lib2to3/fixes/fix_print.py
<listcomp>?   s    z&FixPrint.transform.<locals>.<listcomp> sependfiler   )AssertionErrorgetreplacer   r   r   Zchildrenlenparend_exprmatchr   r   Leafr   
RIGHTSHIFTr   	add_kwargr	   repr)
selfZnodeZresultsZ
bare_printargsr   r   r   Zl_argsZn_stmtr   r   r   	transform%   s>    




zFixPrint.transformc             C   sN   d|_ tj| jjt|tjtjd|f}|r@|j	t
  d|_ |j	| d S )Nr   =r   )r   r   ZNodeZsymsZargumentr   r"   r   EQUALappendr   )r&   Zl_nodesZs_kwdZn_exprZ
n_argumentr   r   r   r$   M   s    
zFixPrint.add_kwargN)__name__
__module____qualname__ZBM_compatibleZPATTERNr(   r$   r   r   r   r   r
      s   (r
   N)__doc__r   r   r   Zpgen2r   r   Z
fixer_utilr   r   r   r	   Zcompile_patternr    ZBaseFixr
   r   r   r   r   <module>   s   