B ( @ sx d dl mZ d dlmZmZ d dlmZmZ eZeZ ej ZeZdZ dZdZG dd deZdd dZdd Zdd Zd S ) )pytree)grammartoken)pattern_symbolspython_symbolsc @ s6 e Zd ZdddZdd Zdd Zdd Zd d ZdS ) MinNodeNc C s. || _ || _g | _d| _d | _g | _g | _d S )NF)typenamechildrenleafparentalternativesgroup)selfr r r 6/opt/alt/python37/lib64/python3.7/lib2to3/btm_utils.py__init__ s zMinNode.__init__c C s t | jd t | j S )N )strr r )r r r r __repr__ s zMinNode.__repr__c C s | }g }x|r|j tkr`|j| t|jt|jkrTt|jg}g |_|j}q n|j}d }P |j tkr|j | t|j t|jkrt |j }g |_ |j}q n|j}d }P |j tjkr|j r||j n||j |j}q W |S )N)r TYPE_ALTERNATIVESr appendlenr tupler TYPE_GROUPr get_characteristic_subpatterntoken_labelsNAMEr )r nodesubpr r r leaf_to_root! s8 zMinNode.leaf_to_rootc C s&