Your IP : 18.217.89.130


Current Path : /usr/lib64/python3.6/lib2to3/__pycache__/
Upload File :
Current File : //usr/lib64/python3.6/lib2to3/__pycache__/btm_utils.cpython-36.opt-2.pyc

3


 \�&�@sxddlmZddlmZmZddlmZmZeZeZ	ej
ZeZdZ
dZdZGdd�de�Zdd	d
�Zdd�Zd
d�ZdS)�)�pytree)�grammar�token)�pattern_symbols�python_symbols��c@s6eZdZddd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�MinNodeNcCs.||_||_g|_d|_d|_g|_g|_dS)NF)�type�name�children�leaf�parent�alternatives�group)�selfr
r�r�)/usr/lib64/python3.6/lib2to3/btm_utils.py�__init__szMinNode.__init__cCst|j�dt|j�S)N� )�strr
r)rrrr�__repr__szMinNode.__repr__cCs�|}g}x�|r�|jtkr`|jj|�t|j�t|j�krTt|j�g}g|_|j}q
n|j}d}P|jtkr�|j	j|�t|j	�t|j�kr�t
|j	�}g|_	|j}q
n|j}d}P|jtjkr�|j
r�|j|j
�n|j|j�|j}q
W|S)N)r
�TYPE_ALTERNATIVESr�append�lenr�tupler�
TYPE_GROUPr�get_characteristic_subpattern�token_labels�NAMEr)r�node�subprrr�leaf_to_root!s8



zMinNode.leaf_to_rootcCs&x |j�D]}|j�}|r
|Sq
WdS)N)�leavesr")r�lr!rrr�get_linear_subpatternKszMinNode.get_linear_subpatternccs.x|jD]}|j�EdHqW|js*|VdS)N)rr#)r�childrrrr#`szMinNode.leaves)NN)�__name__�
__module__�__qualname__rrr"r%r#rrrrr	s

	*r	Nc
Cs�d}|jtjkr|jd}|jtjkr�t|j�dkrFt|jd|�}nJttd�}x>|jD]4}|jj	|�drnqXt||�}|dk	rX|jj
|�qXW�n|jtjk�rt|j�dkr�ttd�}x(|jD]}t||�}|r�|jj
|�q�W|js�d}nt|jd|�}�n�|jtj
k�r�t|jdtj��rH|jdjdk�rHt|jd|�St|jdtj��rn|jdjdk�s�t|j�dk�r�t|jdd��r�|jdjdk�r�dSd}d}d}d	}d}	d	}
xn|jD]d}|jtjk�r�d	}|}n*|jtjk�r�d}|}	n|jtjk�r|}t|d��r�|jd
k�r�d}
�q�W|
�rb|jd}t|d��rl|jdk�rl|jd}n
|jd}|jtjk�r�|jdk�r�ttd�}n4tt|j��r�ttt|j�d�}nttt|j�d�}n\|jtjk�r|jjd
�}|tk�r�tt|d�}nttj|d�}n|jtjk�r$t||�}|�rZ|	jdjdk�rBd}n|	jdjdk�rVnt�|�r�|dk	�r�x8|jdd�D]&}t||�}|dk	�rz|jj
|��qzW|�r�||_|S)N�r)r
r�(�[�valueTF�=r�any�')r
r�*�+���)r
�symsZMatcherrZAlternativesr�reduce_treer	r�indexrZAlternativerZUnit�
isinstancerZLeafr-�hasattrZDetailsZRepeaterrr�TYPE_ANY�getattr�pysyms�STRING�strip�tokens�NotImplementedErrorr)
r rZnew_noder&Zreducedr
Zdetails_nodeZalternatives_nodeZhas_repeaterZ
repeater_nodeZhas_variable_nameZ	name_leafrrrrr5gs�











r5cs�t|t�s|St|�dkr"|dSg}g}dddddg�g}d�xl|D]d}tt|d	d
���rFtt|�fdd
���r~|j|�qFtt|�fdd
���r�|j|�qF|j|�qFW|r�|}n|r�|}n|r�|}t|td
�S)Nrr*�in�for�if�not�Nonez[]().,:cSst|�tkS)N)r
r)�xrrr�<lambda>�sz/get_characteristic_subpattern.<locals>.<lambda>cst|t�o|�kS)N)r7r)rE)�common_charsrrrFscst|t�o|�kS)N)r7r)rE)�common_namesrrrFs)�key)r7�listrr/�rec_testr�max)ZsubpatternsZsubpatterns_with_namesZsubpatterns_with_common_namesZsubpatterns_with_common_chars�
subpatternr)rGrHrr�s2

rccs<x6|D].}t|ttf�r*t||�EdHq||�VqWdS)N)r7rJrrK)ZsequenceZ	test_funcrErrrrKs
rKr3������)N)�rZpgen2rrZpygramrrr4r;Zopmapr>rr9rr�objectr	r5rrKrrrr�<module>sW
%

?>