a
    êÑT_M  ã                   @   s~   d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	 ddl
mZ ddg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-2020 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚBytesIO)ÚLexer)ÚTokenÚErrorÚText)Úget_choice_optÚ	TextLexerÚ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{®Gáz„?c                 c   s   dt |fV  d S )Nr   )r   )Úselfr
   © r   ú9/usr/lib/python3/dist-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   s   .*?
c                   @   s<   e Zd ZdZdZdgZg ZdgZdd„ Zdd„ Z	d	d
„ Z
dS )r	   aq  
    Recreate a token stream formatted with the `RawTokenFormatter`.  This
    lexer raises exceptions during parsing if the token stream in the
    file is malformed.

    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 dataÚrawzapplication/x-pygments-tokensc                 K   s*   t |dg d¢dƒ| _tj| fi |¤Ž d S )NÚcompress)Ú ZnoneÚgzÚbz2r   )r   r   r   Ú__init__)r   Zoptionsr   r   r   r   >   s    ÿzRawTokenLexer.__init__c                 c   s’   t |tƒr| d¡}| jdkrDdd l}| dddt|ƒ¡}| ¡ }n| jdkr`dd l}| 	|¡}| 
d¡d }|  |¡D ]\}}}||fV  qxd S )	NÚasciir   r   r   Úrbé	   r   ó   
)Ú
isinstanceÚstrÚencoder   ÚgzipZGzipFiler   Úreadr   Ú
decompressÚstripr   )r   r
   r&   Zgzipfiler   ÚiÚtÚvr   r   r   Ú
get_tokensC   s    





zRawTokenLexer.get_tokensc           	   	   c   sÚ   d}t  |¡D ]Æ}z| ¡  dd¡\}}W n& tyP   | ¡  dd¡}t}Y nl0 t |¡}|sªt	}| d¡dd … }|D ]&}|rŽ|d  
¡ s–tdƒ‚t||ƒ}qz|t|< |dd	…  d
¡}|||fV  |t|ƒ7 }qd S )Nr   ó   	é   r   ÚreplaceÚ.zmalformed token nameé   éþÿÿÿzunicode-escape)Úline_reÚfinditerÚgroupÚsplitÚ
ValueErrorÚdecoder   Ú_ttype_cacheÚgetr   ÚisupperÚgetattrÚlen)	r   r
   ZlengthÚmatchZttypestrÚvalZttypeZttypesZttype_r   r   r   r   U   s&    

z$RawTokenLexer.get_tokens_unprocessedN)r   r   r   r   r   r   r   r   r   r-   r   r   r   r   r   r	   -   s   )r   ÚreÚior   Zpygments.lexerr   Zpygments.tokenr   r   r   Zpygments.utilr   Ú__all__r   r:   Úcompiler4   r	   r   r   r   r   Ú<module>   s   

