
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a"  ã                   @   sP   d dl Z ddlmZ ddlmZ ddlmZ G dd„ deƒZG dd	„ d	eƒZ	dS )
é    Né   )ÚPatternCompiler)Úpygram)Údoes_tree_importc                   @   sª   e Zd ZdZdZdZdZdZe 	d¡Z
eƒ ZdZdZdZdZdZdZejZdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zddd„Zdd„ Zddd„Zdd„ Zdd„ Zdd„ Z dS )ÚBaseFixNr   ZpostFé   c                 C   s   || _ || _|  ¡  d S ©N)ÚoptionsÚlogÚcompile_pattern)Úselfr	   r
   © r   ú7/opt/alt/python38/lib64/python3.8/lib2to3/fixer_base.pyÚ__init__/   s    zBaseFix.__init__c                 C   s,   | j d k	r(tƒ }|j| j dd�\| _| _d S )NT)Z	with_tree)ÚPATTERNr   r   ÚpatternÚpattern_tree)r   ZPCr   r   r   r   ;   s
    
ÿzBaseFix.compile_patternc                 C   s
   || _ d S r   )Úfilename)r   r   r   r   r   Úset_filenameF   s    zBaseFix.set_filenamec                 C   s   d|i}| j  ||¡o|S )NÚnode)r   Úmatch©r   r   Zresultsr   r   r   r   M   s    	zBaseFix.matchc                 C   s
   t ƒ ‚d S r   )ÚNotImplementedErrorr   r   r   r   Ú	transformY   s    zBaseFix.transformÚxxx_todo_changemec                 C   s2   |}|| j kr"|tt| jƒƒ }q| j  |¡ |S r   )Ú
used_namesÚstrÚnextÚnumbersÚadd)r   ÚtemplateÚnamer   r   r   Únew_namei   s
    
zBaseFix.new_namec                 C   s.   | j rd| _ | j d| j ¡ | j |¡ d S )NFz### In file %s ###)Ú	first_logr
   Úappendr   )r   Úmessager   r   r   Úlog_messaget   s    zBaseFix.log_messagec                 C   s>   |  ¡ }| ¡ }d|_d}|  |||f ¡ |r:|  |¡ d S )NÚ zLine %d: could not convert: %s)Ú
get_linenoZcloneÚprefixr&   )r   r   ÚreasonÚlinenoZ
for_outputÚmsgr   r   r   Úcannot_convertz   s    zBaseFix.cannot_convertc                 C   s   |  ¡ }|  d||f ¡ d S )NzLine %d: %s)r(   r&   )r   r   r*   r+   r   r   r   Úwarning‰   s    zBaseFix.warningc                 C   s(   |j | _ |  |¡ t d¡| _d| _d S )Nr   T)r   r   Ú	itertoolsÚcountr   r#   ©r   Ztreer   r   r   r   Ú
start_tree“   s    
zBaseFix.start_treec                 C   s   d S r   r   r1   r   r   r   Úfinish_treeŸ   s    zBaseFix.finish_tree)r   )N)!Ú__name__Ú
__module__Ú__qualname__r   r   r   r	   r   r/   r0   r   Úsetr   ÚorderZexplicitZ	run_orderZ_accept_typeZkeep_line_orderZBM_compatibler   Zpython_symbolsZsymsr   r   r   r   r   r"   r&   r-   r.   r2   r3   r   r   r   r   r      s2   




r   c                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚConditionalFixNc                    s   t t| ƒj|Ž  d | _d S r   )Úsuperr9   r2   Ú_should_skip)r   Úargs©Ú	__class__r   r   r2   ¯   s    zConditionalFix.start_treec                 C   sJ   | j d k	r| j S | j d¡}|d }d |d d… ¡}t|||ƒ| _ | j S )NÚ.éÿÿÿÿ)r;   Úskip_onÚsplitÚjoinr   )r   r   Zpkgr!   r   r   r   Úshould_skip³   s    
zConditionalFix.should_skip)r4   r5   r6   rA   r2   rD   Ú__classcell__r   r   r=   r   r9   ©   s   r9   )
r/   Zpatcompr   r'   r   Z
fixer_utilr   Úobjectr   r9   r   r   r   r   Ú<module>   s    