관리-도구
편집 파일: btm_utils.cpython-39.opt-2.pyc
a �����DOg�&����������������������@���sx���d�dl�mZ�d�dlmZmZ�d�dlmZmZ�eZeZ ej ZeZdZ dZdZG�dd��de�Zdd d�Zdd ��Zdd��Zd S�)����)�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.9/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�}|r�|j�tkr^|j�|��t|j�t|j�krRt|j�g}g�|_|j}qn|j}d�}q�|j�tkr�|j �|��t|j �t|j�kr�t |j �}g�|_ |j}qn|j}d�}q�|j�tjkr�|j r�|�|j ��n|�|j���|j}q|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&���|�����D�]}|���}|r|��S�qd�S�r���)�leavesr$���)r����lr#���r���r���r����get_linear_subpatternK���s����zMinNode.get_linear_subpatternc�����������������c���s*���|�j�D�]}|���E�d�H��q|�j�s&|�V��d�S�r���)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�|�}nFttd�}|�jD�]4}|�j� |�d�rlqVt||�}|d�urV|j� |��qV�n|�j�tjkr�t|�j�dkr�ttd�}|�jD�]}t||�}|r�|j� |��q�|js�d�}nt|�jd�|�}�n�|�j�tj k�r�t|�jd�tj��r>|�jd�jdk�r>t|�jd�|�S�t|�jd�tj��rd|�jd�jdk�s�t|�j�dk�r�t|�jd�d��r�|�jd�jdk�r�d�S�d}d�}d�}d }d�} d } |�jD�]d}|j�tjk�r�d }|}n*|j�tjk�r�d}|} n|j�tjk�r�|}t|d��r�|jd k�r�d} �q�| �rT|�jd�}t|d��r^|jdk�r^|�jd�}n |�jd�}|j�tjk�r�|jdk�r�ttd�}n4tt|j��r�ttt|j�d�}nttt|j�d�}n\|j�tjk�r�|j�d �}|tv��r�tt|�d�}nttj|d�}n|j�tjk�rt||�}|�rL| jd�jdk�r4d�}n| jd�jdk�rHnt�|�r�|d�u�r�|jdd��D�]&}t||�}|d�u�rj|j� |���qj|�r�||_|S�)N���������)r���r����(�[�valueTF�=�����any�')r���r����*�+r���)r����symsZMatcherr ���ZAlternativesr����reduce_treer ���r����indexr���ZAlternativer���ZUnit� isinstancer���ZLeafr0����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���r8���g���s����� ����� r8���c��������������������s����t�|�t�s|�S�t|��dkr"|�d�S�g�}g�}g�d��g�}d��|�D�]d}tt|dd����r>tt|��fdd���rv|�|��q>tt|�fdd���r�|�|��q>|�|��q>|r�|}�n|r�|}�n|r�|}�t|�td �S�) Nr���r,���)�in�for�if�not�Nonez[]().,:c�����������������S���s���t�|��tu�S�r���)r���r�����xr���r���r����<lambda>���������z/get_characteristic_subpattern.<locals>.<lambda>c��������������������s���t�|�t�o|���v�S�r����r:���r���rH���)�common_charsr���r���rJ������rK���c��������������������s���t�|�t�o|���v�S�r���rL���rH���)�common_namesr���r���rJ�����rK���)�key)r:����listr���r3����rec_testr����max)ZsubpatternsZsubpatterns_with_namesZsubpatterns_with_common_namesZsubpatterns_with_common_chars� subpatternr���)rM���rN���r���r�������s6���� � �r���c�����������������c���s8���|�D�].}t�|ttf�r(t||�E�d�H��q||�V��qd�S�r���)r:���rP���r���rQ���)ZsequenceZ test_funcrI���r���r���r���rQ�����s����rQ���)N)��r���Zpgen2r���r���Zpygramr���r���r7���r>���ZopmaprA���r ���r<���r���r����objectr ���r8���r���rQ���r���r���r���r����<module>���s���W �%