B
    `aù[O  ã               @   sz   d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	m
Z
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-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚLexer)ÚTokenÚErrorÚText)Úget_choice_optÚ	text_typeÚBytesIOÚ	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   ú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   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ddddgdƒ| _tj| f|Ž d S )NÚcompressÚ ZnoneÚgzÚbz2)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 }x"|  |¡D ]\}}}||fV  qzW d S )	NÚasciir   r   r   Úrbé	   r   ó   
)Ú
isinstancer   Úencoder   ÚgzipZGzipFiler   Úreadr   Z
decompressÚstripr   )r   r   r&   Zgzipfiler   ÚiÚtÚvr   r   r   Ú
get_tokensA   s    





zRawTokenLexer.get_tokensc       	   	   c   sä   d}xÚt  |¡D ]Ì}y| ¡  dd¡\}}W n( tk
rT   | ¡  dd¡}t}Y npX t |¡}|s²t	}| d¡dd … }x.|D ]&}|r”|d  
¡ sœtdƒ‚t||ƒ}q€W |t|< |dd	…  d
¡}|||fV  |t|ƒ7 }qW 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   ÚlengthÚmatchZttypestrÚvalZttypeZttypesZttype_r   r   r   r   S   s&    


z$RawTokenLexer.get_tokens_unprocessedN)r   r   r   r   r   r   r   r   r   r,   r   r   r   r   r   r
   +   s   )r   ÚreZpygments.lexerr   Zpygments.tokenr   r   r   Zpygments.utilr   r   r   Ú__all__r	   r9   Úcompiler3   r
   r   r   r   r   Ú<module>
   s   
