
    ;e                      ~    	 d dl mZ d dlmZ d dlmZmZmZ d Zd Z	d Z
d Zd Zd	 Z G d
 dej                  ZdS )   )
fixer_base)token)symsNodeLeafc                 R   	 | j         D ]}|j        t          j        k    rt	          |          c S |j        t          j        k    r`|j         rY|j         d         }|j        t          j        k    r7|j         r0|j         d         }t          |t                    r|j	        dk    r dS dS )N    __metaclass__TF)
childrentyper   suitehas_metaclasssimple_stmt	expr_stmt
isinstancer   value)parentnode	expr_node	left_sides       2/usr/lib/python3.11/lib2to3/fixes/fix_metaclass.pyr   r      s    
  	  	 9
"" &&&&&Y$***t}*a(I~//I4F/%.q1	i..  !?::445    c                    	 | j         D ]}|j        t          j        k    r d S t	          | j                   D ]\  }}|j        t
          j        k    r nt          d          t          t          j        g           }| j         |dz   d          r]| j         |dz            }|	                    |
                                           |                                 | j         |dz   d          ]| 	                    |           |}d S )NzNo class suite and no ':'!   )r   r   r   r   	enumerater   COLON
ValueErrorr   append_childcloneremove)cls_noder   ir   	move_nodes        r   fixup_parse_treer$   -   s%    !  9
""FF #
 X.// 7 749##E $ 5666 R  E

AaCDD
! %ac*	9??,,--- 
AaCDD
!  %   DDDr   c                 p   	 t          |j                  D ]\  }}|j        t          j        k    r nd S |                                 t          t          j        g           }t          t          j	        |g          }|j        |d          rW|j        |         }|
                    |                                           |                                 |j        |d          W|                     ||           |j        d         j        d         }|j        d         j        d         }	|	j        |_        d S )Nr	   )r   r   r   r   SEMIr    r   r   r   r   r   r   insert_childprefix)
r   r"   	stmt_nodesemi_indr   new_exprnew_stmtr#   	new_leaf1	old_leaf1s
             r   fixup_simple_stmtr/   G   s3    $I$677  $9
""E # 	KKMMMDNB''HD$xj11H

XYY
' &x0	ioo//000 
XYY
'  8$$$!!$-a0I"1%.q1I 'Ir   c                     | j         rA| j         d         j        t          j        k    r#| j         d                                          d S d S d S )N)r   r   r   NEWLINEr    )r   s    r   remove_trailing_newliner3   _   sQ    } #r*/5=@@b  """""# #@@r   c              #     K   | j         D ]}|j        t          j        k    r nt	          d          t          t          |j                             D ]\  }}|j        t          j        k    r|j         r}|j         d         }|j        t          j        k    r[|j         rT|j         d         }t          |t                    r2|j        dk    r't          |||           t          |           |||fV  d S )NzNo class suite!r	   r
   )r   r   r   r   r   listr   r   r   r   r   r   r/   r3   )r!   r   r"   simple_noder   	left_nodes         r   
find_metasr8   d   s     ! , ,9
""E # *+++ y7788 1 1;t///K4H/#,Q/I~//I4F/%.q1	i.. 1!?::%dA{;;;+K888K00001 1r   c                 r   	 | j         d d d         }|r,|                                }|j        t          j        k    rn|,|ru|                                }t          |t                    r%|j        t          j        k    r|j        rd|_        d S |	                    |j         d d d                    |sd S d S )Nr1    )
r   popr   r   INDENTr   r   DEDENTr(   extend)r   kidsr   s      r   fixup_indentr@   {   s     >$$B$D
 xxzz9$$    -xxzzdD!! 	-di5<&?&?{ ! FKKddd+,,,  - - - - -r   c                       e Zd ZdZdZd ZdS )FixMetaclassTz
    classdef<any*>
    c                    t          |          sd S t          |           d }t          |          D ]\  }}}|}|                                 |j        d         j        }t          |j                  dk    r|j        d         j        t          j        k    r|j        d         }nN|j        d         	                                }	t          t          j        |	g          }|                    d|           nt          |j                  dk    r1t          t          j        g           }|                    d|           nt          |j                  dk    rt          t          j        g           }|                    dt          t          j        d                     |                    d|           |                    dt          t          j        d                     nt#          d	          |j        d         j        d         }
d
|
_        |
j        }|j        r5|                    t          t          j        d                     d|
_        nd|
_        |j        d         }d|j        d         _        d|j        d         _        |                    |           t-          |           |j        so|                                 t          |d          }||_        |                    |           |                    t          t          j        d                     d S t          |j                  dk    r|j        d         j        t          j        k    rx|j        d         j        t          j        k    rZt          |d          }|                    d|           |                    dt          t          j        d                     d S d S d S d S )Nr	               r   )(zUnexpected class definition	metaclass, r:   r   pass
r1   )r   r$   r8   r    r   r   lenr   arglistr   r   	set_childr'   r   r   RPARLPARr   r   r(   r   COMMAr@   r2   r<   r=   )selfr   resultslast_metaclassr   r"   stmt	text_typerQ   r   meta_txtorig_meta_prefixr   	pass_leafs                 r   	transformzFixMetaclass.transform   s   T"" 	F (.. 	 	NE1d!NKKMMMMM!$)	 t}"" }Q$44-* q)//11t|fX66q'****1$$ 4<,,Ga))))1$$ 4<,,Gaej#!6!6777a)))aej#!6!67777:;;; "*1-6q9$#? 	!  ek3!7!7888!HOO HO #+A.	')	1$')	1$^,,,U ~ 	>LLNNNY//I/Ii(((d5=$7788888  1$$.$)U\99.$)U\99Y//Ir9---r4t#<#<===== %$9999r   N)__name__
__module____qualname__BM_compatiblePATTERNr^    r   r   rB   rB      s4        MGL> L> L> L> L>r   rB   N)r:   r   pygramr   
fixer_utilr   r   r   r   r$   r/   r3   r8   r@   BaseFixrB   rd   r   r   <module>rh      s   (             ) ) ) ) ) ) ) ) ) )  &  4( ( (0# # #
1 1 1.- - -,S> S> S> S> S>:% S> S> S> S> S>r   