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: patcomp.pyc
� ӫ[c @ s d Z d Z d d l Z d d l Z d d l m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z e j j e j j e � d � Z d e f d � � YZ d � Z d e f d � � YZ i e j d 6e j d 6e j d 6d d 6Z d � Z d � Z d � Z d S( s� Pattern compiler. The grammar is taken from PatternGrammar.txt. The compiler compiles a pattern to a pytree.*Pattern instance. s# Guido van Rossum
i����Ni ( t drivert literalst tokent tokenizet parset grammar( t pytree( t pygrams PatternGrammar.txtt PatternSyntaxErrorc B s e Z RS( ( t __name__t __module__( ( ( s% /usr/lib/python2.7/lib2to3/patcomp.pyR s c c sw t t j t j t j f � } t j t j | � j � } x7 | D]/ } | \ } } } } } | | k r@ | Vq@ q@ Wd S( s6 Tokenizes a string suppressing significant whitespace.N( t setR t NEWLINEt INDENTt DEDENTR t generate_tokenst StringIOt readline( t inputt skipt tokenst quintuplet typet valuet startt endt line_text( ( s% /usr/lib/python2.7/lib2to3/patcomp.pyt tokenize_wrapper! s t PatternCompilerc B sA e Z e d � Z e e d � Z d � Z d d � Z d � Z RS( c C s^ t j | � | _ t j | j � | _ t j | _ t j | _ t j | j d t �| _ d S( s^ Initializer. Takes an optional alternative filename for the pattern grammar. t convertN( R t load_grammarR R t Symbolst symst python_grammart pygrammart python_symbolst pysymst Drivert pattern_convert( t selft grammar_file( ( s% /usr/lib/python2.7/lib2to3/patcomp.pyt __init__- s c C s} t | � } y | j j | d | �} Wn( t j k rR } t t | � � � n X| rl | j | � | f S| j | � Sd S( s= Compiles a pattern string to a nested pytree.*Pattern object.t debugN( R R t parse_tokensR t ParseErrorR t strt compile_node( R' R R* t with_treeR t roott e( ( s% /usr/lib/python2.7/lib2to3/patcomp.pyt compile_pattern8 s c C s� | j | j j k r% | j d } n | j | j j k r� g | j d d d � D] } | j | � ^ qQ } t | � d k r� | d St j g | D] } | g ^ q� d d d d �} | j � S| j | j j k r=g | j D] } | j | � ^ q� } t | � d k r| d St j | g d d d d �} | j � S| j | j j k r�| j | j d � } t j | � } | j � S| j | j j k s�t � d } | j } t | � d k r�| d j t j k r�| d j } | d } n d } t | � d k r5| d j | j j k r5| d } | d } n | j | | � } | d k r�| j | j j k snt � | j } | d } | j t j k r�d } t j } n� | j t j k r�d } t j } n� | j t j k rQ| d j t j k s�t � t | � d k st � | j | d � } } t | � d k r]| j | d � } q]n t s]t � | d k su| d k r�| j � } t j | g g d | d | �} q�n | d k r�| | _ n | j � S( sX Compiles a node, recursively. This is one big switch on the node type. i Ni i t mint maxi i����i ( i i ( R R t Matchert childrent AlternativesR. t lenR t WildcardPatternt optimizet Alternativet NegatedUnitt compile_basict NegatedPatternt Unitt AssertionErrort NoneR t EQUALR t Repeatert STARt HUGEt PLUSt LBRACEt RBRACEt get_intt Falset name( R' t nodet cht altst at pt unitst patternRK t nodest repeatR6 t childR3 R4 ( ( s% /usr/lib/python2.7/lib2to3/patcomp.pyR. D sh 21 % ( + 'c C s� t | � d k s t � | d } | j t j k rb t t j | j � � } t j t | � | � S| j t j k rp| j } | j � r� | t k r� t d | � � n | d r� t d � � n t j t | � S| d k r� d } nF | j d � s-t | j | d � } | d k r-t d | � � q-n | d rW| j | d j d � g } n d } t j | | � Sns | j d k r�| j | d � S| j d k r�| d k s�t � | j | d � } t j | g g d d d d �St s�t | � � d S( Ni i s Invalid token: %rs Can't have details for tokent anyt _s Invalid symbol: %rt (t [R3 R4 ( R8 R@ R R t STRINGt unicodeR t evalStringR R t LeafPatternt _type_of_literalt NAMEt isuppert TOKEN_MAPR RA t startswitht getattrR$ R. R6 t NodePatternR9 RJ ( R' RS RT RL R R t contentt subpattern( ( s% /usr/lib/python2.7/lib2to3/patcomp.pyR= � s<