<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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   "