B
    bv                 @   s   d Z ddlZddlZddlmZ ddlmZmZmZm	Z	 ddl
mZ dddgZG d	d deZG d
d deZi ZedZG dd deZdS )z
    pygments.lexers.special
    ~~~~~~~~~~~~~~~~~~~~~~~

    Special lexers.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)Lexer)TokenErrorTextGeneric)get_choice_opt	TextLexerOutputLexerRawTokenLexerc               @   s:   e Zd ZdZdZdgZdgZdgZdZdd Z	d	d
 Z
dS )r   z3
    "Null" lexer, doesn't highlight anything.
    z	Text onlytextz*.txtz
text/plaing{Gz?c             c   s   dt |fV  d S )Nr   )r   )selfr    r   6lib/python3.7/site-packages/pygments/lexers/special.pyget_tokens_unprocessed    s    z TextLexer.get_tokens_unprocessedc             C   s   t jS )N)r   priority)r   r   r   r   analyse_text#   s    zTextLexer.analyse_textN)__name__
__module____qualname____doc__namealiases	filenames	mimetypesr   r   r   r   r   r   r   r      s   c               @   s"   e Zd ZdZdZdgZdd ZdS )r	   zj
    Simple lexer that highlights everything as ``Token.Generic.Output``.

    .. versionadded:: 2.10
    zText outputoutputc             c   s   dt j|fV  d S )Nr   )r   ZOutput)r   r   r   r   r   r   0   s    z"OutputLexer.get_tokens_unprocessedN)r   r   r   r   r   r   r   r   r   r   r   r	   '   s   z.*?
c               @   s:   e Zd ZdZdZg Zg ZdgZdd Zdd Z	dd	 Z
d
S )r
   a  
    Recreate a token stream formatted with the `RawTokenFormatter`.

    Additional options accepted:

    `compress`
        If set to ``"gz"`` or ``"bz2"``, decompress the token stream with
        the given compression algorithm before lexing (default: ``""``).
    zRaw token datazapplication/x-pygments-tokensc             K   s*   t |dddddgd| _tj| f| d S )Ncompress Znonegzbz2)r   r   r   __init__)r   optionsr   r   r   r   H   s    zRawTokenLexer.__init__c             c   s   | j r~t|tr|d}y>| j dkr:dd l}||}n| j dkrVdd l}||}W n$ tk
r|   t|	dfV  Y nX t|t
r|	d}|dd }x"| |D ]\}}}||fV  qW d S )Nlatin1r   r   r   
)r   
isinstancestrencodegzipZ
decompressr   OSErrorr   decodebytesstripr   )r   r   r&   r   itvr   r   r   
get_tokensM   s"    





zRawTokenLexer.get_tokensc       	   
   c   s   d}xt |D ]}y|  dd\}}t|}|st}|ddd  }x.|D ]&}|rl|d  stt	dt
||}qXW |t|< t|}t|tst	dW n$ tt	fk
r   | }t}Y nX |||fV  |t|7 }qW d S )Nr   	   .zmalformed token namezexpected str)line_refinditergrouprstripsplit_ttype_cachegetr   isupper
ValueErrorgetattrastZliteral_evalr#   r$   SyntaxErrorr   len)	r   r   lengthmatchZttypestrvalZttypeZttypesZttype_r   r   r   r   b   s*    




z$RawTokenLexer.get_tokens_unprocessedN)r   r   r   r   r   r   r   r   r   r.   r   r   r   r   r   r
   9   s   	)r   r<   reZpygments.lexerr   Zpygments.tokenr   r   r   r   Zpygments.utilr   __all__r   r	   r7   compiler2   r
   r   r   r   r   <module>	   s   

