U
    yc(                     @   sb  d Z G dd deZe ZejZejZejZejZejZej	Z	ej
Z
ejZejZejZejZejZejZejZee_ee_ee_dd Zdd Zedededed	ed
ede	de	jde	jde	jde	jde	jde	jde
de
jde
jde
jjde
jde
jde
jde
jde
jde
j de
j j!de
j"de
j#de
jd e
jd!e
j$d"e
j%d#e
j%jd$e
j%j&d%e
j%j'd&e
j%j!d'ed(ej(d)ed*ej)d+ej*d,ej+d-ej,d.ej-d/ej.d0ejd1ej/d2ej0d3ejd4ej1d5ej2d6ej3d7ed8ej4d9ej5d:ej6d;ej7d<ej7j8d=ej9d>ed?ej:d@edAej;dBedCej<dDej=dEej>dFej?dGej2dHej@dIedJejAdKejBdLejdMejCdNejDdOejEdPejFdQejGdRejHdSejIdTiOZJdUS )Vz
    pygments.token
    ~~~~~~~~~~~~~~

    Basic token types and the standard tokens.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
c                   @   sH   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dS )
_TokenTypeNc                 C   s.   g }| }|d k	r"| | |j}q|  |S N)appendparentreverse)selfbufnode r	   9/tmp/pip-build-0we0fmvo/pip/pip/_vendor/pygments/token.pysplit   s    
z_TokenType.splitc                 G   s   t  | _d S r   )setsubtypes)r   argsr	   r	   r
   __init__   s    z_TokenType.__init__c                 C   s*   | |kp(t || jko(|d t|  | kS r   )type	__class__len)r   valr	   r	   r
   __contains__   s    z_TokenType.__contains__c                 C   sL   |r|d   st| |S t| |f }t| || | j| | |_|S )N    )isuppertuple__getattribute__r   setattrr   addr   )r   r   newr	   r	   r
   __getattr__"   s    z_TokenType.__getattr__c                 C   s   d| r
dpd d |  S )NToken. )joinr   r	   r	   r
   __repr__+   s    z_TokenType.__repr__c                 C   s   | S r   r	   r!   r	   r	   r
   __copy__.   s    z_TokenType.__copy__c                 C   s   | S r   r	   )r   memor	   r	   r
   __deepcopy__2   s    z_TokenType.__deepcopy__)__name__
__module____qualname__r   r   r   r   r   r"   r#   r%   r	   r	   r	   r
   r      s   		r   c                 C   s   | |kS )z
    Return True if ``ttype`` is a subtype of ``other``.

    exists for backwards compatibility. use ``ttype in other`` now.
    r	   )ttypeotherr	   r	   r
   is_token_subtypeU   s    r+   c                 C   s8   t | tr| S | stS t}| dD ]}t||}q$|S )a}  
    Convert a string into a token type::

        >>> string_to_token('String.Double')
        Token.Literal.String.Double
        >>> string_to_token('Token.Literal.Number')
        Token.Literal.Number
        >>> string_to_token('')
        Token

    Tokens that are already tokens are returned unchanged:

        >>> string_to_token(String)
        Token.Literal.String
    r   )
isinstancer   r   r   getattr)sr   itemr	   r	   r
   string_to_tokentype^   s    
r0   r   wescerrxkZkcZkdknZkpZkrZktnnanbZbpZncnoZndninenfZfmpynlnnZnxntnvZvcZvgviZvmlZldr.   saZsbZscdlsds2seshsiZsxsrs1ssmmbZmfZmhmiZilmooZowpZpmcchcmcpZcpfZc1csggdgeZgrZghZgiZgoZgpZgsZgugtN)K__doc__r   r   r   ZText
WhitespaceZEscapeErrorZOtherKeywordNameLiteralStringNumberZPunctuationZOperatorCommentZGenericr+   r0   ConstantZDeclaration	NamespaceZPseudoZReservedType	AttributeZBuiltinZClassZ	DecoratorEntity	ExceptionZFunctionZMagicZPropertyZLabelZTagVariableZGlobalZInstanceDateZAffixZBacktickZCharZ	DelimiterZDocDoubleZHeredocZInterpolRegexSingleZSymbolZBinZFloatZHexZIntegerZLongOctWordMarkerZHashbangZ	MultilineZPreprocZPreprocFileSpecialZDeletedZEmphZHeadingZInsertedZOutputZPromptZStrongZ
Subheading	TracebackZSTANDARD_TYPESr	   r	   r	   r
   <module>   sh  +	                                                                               