p@s d dl mZ d dlmZmZ d dlmZmZ eZeZ ej ZeZdZ dZdZ G d de Zd d Zd Zd Zd S ) )pytree)grammartoken)pattern_symbolspython_symbolsc 0 e Zd Z ddZd Zd Zd Zd ZdS )MinNodeNc h || _ || _ g | _ d| _ d | _ g | _ g | _ d S )NF)typenamechildrenleafparentalternativesgroup)selfr r s 8/opt/alt/python311/lib64/python3.11/lib2to3/btm_utils.py__init__zMinNode.__init__ s8 c Z t | j dz t | j z S )N )strr r )r s r __repr__zMinNode.__repr__ s" 49~~#c$)nn44r c | }g }|r^|j t k rr|j | t |j t |j k r$t |j g}g |_ |j }{|j }d }n|j t k rq|j | t |j t |j k r#t |j }g |_ |j }|j }d }n[|j t j k r"|j r| |j n| |j |j }|^|S N)r TYPE_ALTERNATIVESr appendlenr tupler TYPE_GROUPr get_characteristic_subpatterntoken_labelsNAMEr )r nodesubps r leaf_to_rootzMinNode.leaf_to_root! s_ 7 ! y---!((...t())S-?-???!$"3445D(*D%;D;DDyJ&& !!$'''tz??c$-&8&8888DDD!#DJ;D;DDyL---$)-DI&&&&DI&&&;DC ! D r c j | D ]}| }|r|c S d S r )leavesr) )r lr( s r get_linear_subpatternzMinNode.get_linear_subpatternK sO A>>##D r c # n K | j D ]}| E d {V | j s| V d S d S r )r r+ )r childs r r+ zMinNode.leaves` s^ 7] &