£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

]                  @   s   d  d l  m Z d  d l m Z d  d l m Z m Z m Z m Z d d   Z	 d d   Z
 d d	   Z d
 d   Z d d   Z d d   Z Gd d   d e j  Z d S)   )
fixer_base)token)NamesymsNodeLeafc             C   s   x |  j  D] } | j t j k r, t |  S| j t j k r
 | j  r
 | j  d } | j t j k r
 | j  r
 | j  d } t | t  r
 | j	 d k r
 d Sq
 Wd S)N    __metaclass__TF)
childrentyper   suitehas_metaclasssimple_stmt	expr_stmt
isinstancer   value)parentnode	expr_nodeZ	left_side r   2/opt/alt/python35/lib64/python3.5/fix_metaclass.pyr      s    
r   c             C   s   x' |  j  D] } | j t j k r
 d  Sq
 Wx< t |  j   D] \ } } | j t j k r: Pq: Wt d   t t j g   } xI |  j  | d d   r |  j  | d } | j	 | j
    | j   q~ W|  j	 |  | } d  S)NzNo class suite and no ':'!   )r
   r   r   r   	enumerater   COLON
ValueErrorr   append_childcloneremove)cls_noder   ir   	move_noder   r   r   fixup_parse_tree-   s    r!   c       
      C   s   x4 t  | j  D] \ } } | j t j k r Pq Wd  S| j   t t j g   } t t j	 | g  } xA | j | d   r | j | } | j
 | j    | j   qk W|  j | |  | 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   Z	stmt_nodeZsemi_indr   Znew_exprZnew_stmtr    Z	new_leaf1Z	old_leaf1r   r   r   fixup_simple_stmtG   s    
r%   c             C   s7   |  j  r3 |  j  d j t j k r3 |  j  d j   d  S)Nr   r&   )r
   r   r   NEWLINEr   )r   r   r   r   remove_trailing_newline_   s    "r(   c             c   s   x0 |  j  D] } | j t j k r
 Pq
 Wt d   x t t | j    D] \ } } | j t j k rI | j  rI | j  d } | j t j k rI | j  rI | j  d } t	 | t
  rI | j d k rI t | | |  t |  | | | f VqI Wd  S)NzNo class suite!r   r	   )r
   r   r   r   r   listr   r   r   r   r   r   r%   r(   )r   r   r   Zsimple_noder   Z	left_noder   r   r   
find_metasd   s    "
r*   c             C   s   |  j  d  d  d  } x) | rA | j   } | j t j k r Pq Wxj | r | j   } t | t  r | j t j k r | j r d | _ d  S| j	 | j  d  d  d   qE Wd  S)Nr    r&   r&   )
r
   popr   r   INDENTr   r   DEDENTr$   extend)r   Zkidsr   r   r   r   fixup_indent{   s    		!		r0   c               @   s(   e  Z d  Z d Z d Z d d   Z d S)FixMetaclassTz
    classdef<any*>
    c             C   s  t  |  s d  St |  d  } x- t |  D] \ } } } | } | j   q- W| j d j } t | j  d k r | j d j t j k r | j d } q| j d j	   }	 t
 t j |	 g  } | j d |  n t | j  d k rt
 t j g   } | j d |  n~ t | j  d k rt
 t j g   } | j d t t j d   | j d |  | j d t t j d   n t d	   | j d j d }
 d
 |
 _ |
 j } | j r| j t t j d   d |
 _ n	 d |
 _ | j d } d | j d _ d | j d _ | j |  t |  | j s| j   t | d  } | | _ | j |  | j t t j d   n t | j  d k r| j d j t j k r| j d j t j k rt | d  } | j d |  | j d t t j d   d  S)Nr               r   )(zUnexpected class definition	metaclass, r+   r   pass
r&   r&   r&   )r   r!   r*   r   r
   r   lenr   arglistr   r   Z	set_childr#   r   r   RPARLPARr   r   r$   r   COMMAr0   r'   r-   r.   )selfr   resultsZlast_metaclassr   r   ZstmtZ	text_typer?   r   Zmeta_txtZorig_meta_prefixr   Z	pass_leafr   r   r   	transform   s^    
				
	
	zFixMetaclass.transformN)__name__
__module____qualname__ZBM_compatibleZPATTERNrE   r   r   r   r   r1      s   r1   N)r+   r   Zpygramr   Z
fixer_utilr   r   r   r   r   r!   r%   r(   r*   r0   ZBaseFixr1   r   r   r   r   <module>   s   "