3
Õì2a ã @ sr d dl mZ d dlmZ d dlmZmZmZ dd„ Zdd„ Z dd „ Z
d
d„ Zdd
„ Zdd„ Z
G dd„ dejƒZdS )é )Ú
fixer_base)Útoken)ÚsymsÚNodeÚLeafc C sx xr| j D ]h}|jtjkr t|ƒS |jtjkr|j r|j d }|jtjkr|j r|j d }t|tƒr|j dkrdS qW dS )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 ]}|jtjkrd S qW x,t| j ƒD ]\}}|jtjkr,P q,W tdƒ‚ttjg ƒ}x:| j |d d … r”| j |d }|j |j
ƒ ƒ |jƒ q\W | j |ƒ |}d S )NzNo 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 ]\}}|jtjkrP qW d S |jƒ ttjg ƒ}ttj |gƒ}x2|j|d … r~|j| }|j
|jƒ ƒ |jƒ qNW | j||ƒ |jd jd }|jd jd } | j
|_
d S )Nr )r r r
r ÚSEMIr r r r r
r r Úinsert_childÚprefix)
r r Z stmt_nodeZsemi_indr Znew_exprZnew_stmtr Z new_leaf1Z old_leaf1r r r Úfixup_simple_stmtG s
r$ c C s* | j r&| j d jtjkr&| 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 ]}|jtjkrP qW tdƒ‚x†tt|j ƒƒD ]t\}}|jtjkr6|j r6|j d }|jtjkr6|j r6|j d }t |t
ƒr6|jdkr6t|||ƒ t
|ƒ |||fV q6W d S )NzNo class suite!r r )r r
r r r Úlistr r
r r r r r$ r' )r r r Zsimple_noder Z left_noder r r Ú
find_metasd s
r) c C s‚ | j d d d… }x|r.|jƒ }|jtjkrP qW xL|r||jƒ }t|tƒrd|jtjkrd|jr`d|_d S |j |j d d d… ƒ q2W d S )Nr Ú r% r% )
r Úpopr
r ÚINDENTr r ÚDEDENTr# Úextend)r Zkidsr r r r Úfixup_indent{ s r/ c @ s e Zd ZdZdZdd„ ZdS )ÚFixMetaclassTz
classdef