<!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>
3
Õì2a   ã               @   sr   d dl mZ d dlmZ d dlmZmZmZ dd„ Zdd„ Z	dd	„ Z
d
d„ Zdd„ Zdd„ ZG dd„ dejƒZdS )é   )Ú
fixer_base)Útoken)ÚsymsÚNodeÚLeafc             C   sx   xr| j D ]h}|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S qW d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/python36/lib64/python3.6/fix_metaclass.pyr      s    



r   c             C   s¨   x| j D ]}|jtjkrd S qW x,t| j ƒD ]\}}|jtjkr,P q,W tdƒ‚ttjg ƒ}x:| 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¸   x(t |jƒD ]\}}|jtjkrP qW d S |jƒ  ttjg ƒ}ttj	|gƒ}x2|j|d … r~|j| }|j
|jƒ ƒ |jƒ  qNW | 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   s*   | j r&| j d jtjkr&| j d jƒ  d S )Nr   éÿÿÿÿr%   )r	   r
   r   ÚNEWLINEr   )r   r   r   r   Úremove_trailing_newline_   s    r'   c             c   s²   x$| j D ]}|jtjkrP qW tdƒ‚x†tt|j ƒƒD ]t\}}|jtjkr6|j r6|j d }|jtjkr6|j r6|j d }t	|t
ƒr6|jdkr6t|||ƒ t|ƒ |||fV  q6W d 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|r.|jƒ }|jtjkrP qW xL|r||jƒ }t|tƒrd|jtjkrd|jr`d|_d S |j	|j d d d… ƒ q2W d S )Nr   Ú r%   r%   )
r	   Úpopr
   r   ÚINDENTr   r   ÚDEDENTr#   Úextend)r   Zkidsr   r   r   r   Úfixup_indent{   s    r/   c               @   s   e Zd ZdZdZdd„ ZdS )ÚFixMetaclassTz
    classdef<any*>
    c             C   s<  t |ƒsd S t|ƒ d }x"t|ƒD ]\}}}|}|jƒ  q"W |jd j}t|jƒdkrž|jd jtjkrt|jd }n(|jd j	ƒ }	t
tj|	gƒ}|jd|ƒ n‚t|jƒdkrÆt
tjg ƒ}|jd|ƒ nZt|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ƒƒ nbt|jƒdkr8|jd jtjkr8|jd jtjkr8t|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   ÚCOMMAr/   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PATTERNrD   r   r   r   r   r0   ‘   s   r0   N)r*   r   Zpygramr   Z
fixer_utilr   r   r   r   r    r$   r'   r)   r/   ZBaseFixr0   r   r   r   r   Ú<module>   s   