Edit File: btm_utils.cpython-36.opt-2.pyc
3 � \�&������������������@���sx���d�dl�mZ�d�dlmZmZ�d�dlmZmZ�eZeZ ej ZeZdZ dZdZG�dd��de�Zdd d �Zdd��Zd d��ZdS�)����)�pytree)�grammar�token)�pattern_symbols�python_symbols��������c���������������@���s6���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��ZdS�) �MinNodeNc�������������C���s.���||�_�||�_g�|�_d|�_d�|�_g�|�_g�|�_d�S�)NF)�type�name�children�leaf�parent�alternatives�group)�selfr ���r�����r����)/usr/lib64/python3.6/lib2to3/btm_utils.py�__init__���s����zMinNode.__init__c�������������C���s���t�|�j�d�t�|�j��S�)N� )�strr ���r���)r���r���r���r����__repr__���s����zMinNode.__repr__c�������������C���s����|�}g�}x�|r�|j�tkr`|jj|��t|j�t|j�krTt|j�g}g�|_|j}q n|j}d�}P�|j�tkr�|j j|��t|j �t|j�kr�t |j �}g�|_ |j}q n|j}d�}P�|j�tjkr�|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�subpr���r���r����leaf_to_root!���s8���� zMinNode.leaf_to_rootc�������������C���s&���x |�j���D�]}|j��}|r |S�q W�d�S�)N)�leavesr"���)r����lr!���r���r���r����get_linear_subpatternK���s����zMinNode.get_linear_subpatternc�������������c���s.���x|�j�D�]}|j��E�d�H��qW�|�j�s*|�V��d�S�)N)r���r#���)r����childr���r���r���r#���`���s����zMinNode.leaves)NN)�__name__� __module__�__qualname__r���r���r"���r%���r#���r���r���r���r���r ������s ��� *r ���Nc������� ������C���s���d�}|�j�tjkr|�jd�}�|�j�tjkr�t|�j�dkrFt|�jd�|�}nJttd�}x>|�jD�]4}|�jj |�d�rnqXt||�}|d�k rX|jj |��qXW��n|�j�tjk�rt|�j�dkr�ttd�}x(|�jD�]}t||�}|r�|jj |��q�W�|js�d�}nt|�jd�|�}�n�|�j�tj k�r�t|�jd�tj��rH|�jd�jdk�rHt|�jd�|�S�t|�jd�tj��rn|�jd�jdk�s�t|�j�dk�r�t|�jd�d��r�|�jd�jdk�r�d�S�d}d�}d�}d }d�} d } xn|�jD�]d}|j�tjk�r�d }|}n*|j�tjk�r�d}|} n|j�tjk�r|}t|d��r�|jd k�r�d} �q�W�| �rb|�jd�}t|d��rl|jdk�rl|�jd�}n |�jd�}|j�tjk�r�|jdk�r�ttd�}n4tt|j��r�ttt|j�d�}nttt|j�d�}n\|j�tjk�r|jjd �}|tk�r�tt|�d�}nttj|d�}n|j�tjk�r$t||�}|�rZ| jd�jdk�rBd�}n| jd�jdk�rVnt�|�r�|d�k �r�x8|jdd��D�]&}t||�}|d�k �rz|jj |���qzW�|�r�||_|S�)N�����r���)r ���r����(�[�valueTF�=r����any�')r ���r����*�+���)r ����symsZMatcherr���ZAlternativesr����reduce_treer ���r����indexr���ZAlternativer���ZUnit� isinstancer���ZLeafr-����hasattrZDetailsZRepeaterr���r����TYPE_ANY�getattr�pysyms�STRING�strip�tokens�NotImplementedErrorr���) r ���r���Znew_noder&���Zreducedr ���Zdetails_nodeZalternatives_nodeZhas_repeaterZ repeater_nodeZhas_variable_nameZ name_leafr���r���r���r���r5���g���s����� r5���c����������������s����t�|�t�s|�S�t|��dkr"|�d�S�g�}g�}dddddg�g�}d��xl|�D�]d}tt|d d ����rFtt|��fdd ���r~|j|��qFtt|�fdd ���r�|j|��qF|j|��qFW�|r�|}�n|r�|}�n|r�|}�t|�td �S�)Nr���r*����in�for�if�not�Nonez[]().,:c�������������S���s���t�|��tkS�)N)r ���r���)�xr���r���r����<lambda>����s����z/get_characteristic_subpattern.<locals>.<lambda>c����������������s���t�|�t�o|���kS�)N)r7���r���)rE���)�common_charsr���r���rF������s����c����������������s���t�|�t�o|���kS�)N)r7���r���)rE���)�common_namesr���r���rF�����s����)�key)r7����listr���r/����rec_testr����max)ZsubpatternsZsubpatterns_with_namesZsubpatterns_with_common_namesZsubpatterns_with_common_chars� subpatternr���)rG���rH���r���r�������s2���� r���c�������������c���s<���x6|�D�].}t�|ttf�r*t||�E�d�H��q||�V��qW�d�S�)N)r7���rJ���r���rK���)ZsequenceZ test_funcrE���r���r���r���rK�����s���� rK���r3���������)N)��r���Zpgen2r���r���Zpygramr���r���r4���r;���Zopmapr>���r���r9���r���r����objectr ���r5���r���rK���r���r���r���r����<module>���s���W �%