Server: appserver-7f0f8755-nginx-15961cad18524ec5a9db05f2a6a7e440
Current directory: /usr/lib/python2.7/lib2to3
Software: nginx/1.27.5
Shell Command
Create a new file
Upload file
File: btm_utils.pyc
� ӫ[c @ s� d Z d d l m Z d d l m Z m Z d d l m Z m Z e Z e Z e j Z e Z d Z d Z d Z d e f d � � YZ d d � Z d � Z d � Z d S( s0 Utility functions used by the btm_matcher modulei ( t pytree( t grammart token( t pattern_symbolst python_symbolsi����i����i����t MinNodec B sA e Z d Z d d d � Z d � Z d � Z d � Z d � Z RS( s� This class serves as an intermediate representation of the pattern tree during the conversion to sets of leaf-to-root subpatternsc C sC | | _ | | _ g | _ t | _ d | _ g | _ g | _ d S( N( t typet namet childrent Falset leaft Nonet parentt alternativest group( t selfR R ( ( s' /usr/lib/python2.7/lib2to3/btm_utils.pyt __init__ s c C s t | j � d t | j � S( Nt ( t strR R ( R ( ( s' /usr/lib/python2.7/lib2to3/btm_utils.pyt __repr__ s c C sU | } g } xB| rP| j t k r� | j j | � t | j � t | j � k r| t | j � g } g | _ | j } q q� | j } d } Pn | j t k r| j j | � t | j � t | j � k r� t | j � } g | _ | j } q q| j } d } Pn | j t j k r4| j r4| j | j � n | j | j � | j } q W| S( s� Internal method. Returns a characteristic path of the pattern tree. This method must be run for all leaves until the linear subpatterns are merged into a singleN( R t TYPE_ALTERNATIVESR t appendt lenR t tupleR R t TYPE_GROUPR t get_characteristic_subpatternt token_labelst NAMER ( R t nodet subp( ( s' /usr/lib/python2.7/lib2to3/btm_utils.pyt leaf_to_root! s8 c C s1 x* | j � D] } | j � } | r | Sq Wd S( s� Drives the leaf_to_root method. The reason that leaf_to_root must be run multiple times is because we need to reject 'group' matches; for example the alternative form (a | b c) creates a group [b c] that needs to be matched. Since matching multiple linear patterns overcomes the automaton's capabilities, leaf_to_root merges each group into a single choice based on 'characteristic'ity, i.e. (a|b c) -> (a|b) if b more characteristic than c Returns: The most 'characteristic'(as defined by get_characteristic_subpattern) path for the compiled pattern tree. N( t leavesR ( R t lR ( ( s' /usr/lib/python2.7/lib2to3/btm_utils.pyt get_linear_subpatternK s c c sE x- | j D]" } x | j � D] } | Vq Wq W| j sA | Vn d S( s- Generator that returns the leaves of the treeN( R R ( R t childt x( ( s' /usr/lib/python2.7/lib2to3/btm_utils.pyR ` s N( t __name__t __module__t __doc__R R R R R! R ( ( ( s' /usr/lib/python2.7/lib2to3/btm_utils.pyR s * c C s d } | j t j k r( | j d } n | j t j k r� t | j � d k rh t | j d | � } q�t d t � } x�| j D]P } | j j | � d r� q� n t | | � } | d k r� | j j | � q� q� Wn$| j t j k rxt | j � d k r_t d t � } x9 | j D]. } t | | � } | r| j j | � qqW| j sud } quq�t | j d | � } n�| j t j k r�t | j d t j � r�| j d j d k r�t | j d | � St | j d t j � r�| j d j d k s=t | j � d k rAt | j d d � rA| j d j d k rAd St } d } d } t } d } t } x� | j D]� } | j t j k r�t } | } n<