
    3\h"                     l    	 d dl Z ddlmZ ddlmZ ddlmZ  G d de          Z G d d	e          Z	dS )
    N   )PatternCompiler)pygram)does_tree_importc                       e Zd Z	 dZdZdZdZdZ ej	        d          Z
 e            ZdZdZdZdZdZdZej        Zd Zd Zd Zd	 Zd
 ZddZd ZddZd Zd Zd Z dS )BaseFixNr   postF   c                 L    	 || _         || _        |                                  d S N)optionslogcompile_pattern)selfr   r   s      </opt/python-3.11.14/usr/lib/python3.11/lib2to3/fixer_base.py__init__zBaseFix.__init__/   s/    	     c                     	 | j         9t                      }|                    | j         d          \  | _        | _        d S d S )NT)	with_tree)PATTERNr   r   patternpattern_tree)r   PCs     r   r   zBaseFix.compile_pattern;   sX    	
 <# ""B.0.@.@KO /A /Q /Q+DL$+++ $#r   c                     	 || _         d S r   )filename)r   r   s     r   set_filenamezBaseFix.set_filenameF   s    	 !r   c                 F    	 d|i}| j                             ||          o|S )Nnode)r   matchr   r   resultss      r   r   zBaseFix.matchM   s/    	 4.|!!$00<W<r   c                      	 t                      r   )NotImplementedErrorr    s      r   	transformzBaseFix.transformY   s    	 "###r   xxx_todo_changemec                     	 |}|| j         v r-|t          t          | j                            z   }|| j         v -| j                             |           |S r   )
used_namesstrnextnumbersadd)r   templatenames      r   new_namezBaseFix.new_namei   sa    	 do%%c$t|"4"4555D do%%D!!!r   c                     | j         r)d| _         | j                            d| j        z             | j                            |           d S )NFz### In file %s ###)	first_logr   appendr   )r   messages     r   log_messagezBaseFix.log_messaget   sJ    > 	B"DNHOO04=@AAA     r   c                     	 |                                 }|                                }d|_        d}|                     |||fz             |r|                     |           d S d S )N zLine %d: could not convert: %s)
get_linenocloneprefixr3   )r   r   reasonlineno
for_outputmsgs         r   cannot_convertzBaseFix.cannot_convertz   s|    	 ""ZZ\\

.
33444 	%V$$$$$	% 	%r   c                 d    	 |                                 }|                     d||fz             d S )NzLine %d: %s)r6   r3   )r   r   r9   r:   s       r   warningzBaseFix.warning   s<    	 ""&&)99:::::r   c                     	 |j         | _         |                     |           t          j        d          | _        d| _        d S )Nr   T)r'   r   	itertoolscountr*   r0   r   treer   s      r   
start_treezBaseFix.start_tree   sB    	 /(### q))r   c                     	 d S r    rC   s      r   finish_treezBaseFix.finish_tree   s    	 	r   )r%   r   )!__name__
__module____qualname__r   r   r   r   r   rA   rB   r*   setr'   orderexplicit	run_order_accept_typekeep_line_orderBM_compatibler   python_symbolssymsr   r   r   r   r$   r.   r3   r=   r?   rE   rH   rG   r   r   r   r      s,        GGLGHioa  GJEHIL OM
  D
 
 
	Q 	Q 	Q! ! !
= 
= 
=$ $ $ 	 	 	 	! ! !% % % %; ; ;
 
 
    r   r   c                   *     e Zd Z	 dZ fdZd Z xZS )ConditionalFixNc                 P     t          t          |           j        |  d | _        d S r   )superrV   rE   _should_skip)r   args	__class__s     r   rE   zConditionalFix.start_tree   s+    .nd##.55 r   c                     | j         | j         S | j                            d          }|d         }d                    |d d                   }t	          |||          | _         | j         S )N.)rY   skip_onsplitjoinr   )r   r   pkgr-   s       r   should_skipzConditionalFix.should_skip   sh    ($$l  %%2whhs3B3x  ,S$==  r   )rI   rJ   rK   r_   rE   rc   __classcell__)r[   s   @r   rV   rV      sQ        J G! ! ! ! !! ! ! ! ! ! !r   rV   )
rA   patcompr   r5   r   
fixer_utilr   objectr   rV   rG   r   r   <module>rh      s    9     % $ $ $ $ $       ( ( ( ( ( (X X X X Xf X X Xv! ! ! ! !W ! ! ! ! !r   