B
    b              
   @   sB  d Z ddlZddlmZmZmZmZmZmZm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZ ddlmZ dddd	d
dddddg
ZedZG dd deZG dd deZG dd deZG dd	 d	eZG dd
 d
eZG dd deZ G dd de Z!G dd de Z"G dd de Z#G dd de Z$G dd deZ%dS )z
    pygments.lexers.haskell
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Haskell and related languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)Lexer
RegexLexerbygroupsdo_insertionsdefaultincludeinherit)
TextCommentOperatorKeywordNameStringNumberPunctuationGeneric
Whitespace)	unistringHaskellLexer
HspecLexer
IdrisLexer	AgdaLexerCryptolLexerLiterateHaskellLexerLiterateIdrisLexerLiterateAgdaLexerLiterateCryptolLexer	KokaLexerz.*?
c            !   @   sL  e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
d
efdejfdejdfdejdfdejdfdejfdde	 ejfdejfdej d ejfdej d efdej d ejfdej d ejfdejfdejfdejfdejfd ejfd!ejfd"efd#ejfd$ejfd%ejfd&ejfd'ejfd(ej fd)ej!fd*ej"fd+ejd,fd-ed.fd/ejfd0ej#fd1e$fg d
efd-ed.fd2e$d3fd4efd5ej d6 ej d7 e%ej&eeeed3fd5ej d8 e%ej&eeee$d9fd5ej d: e%ej&ee$d9fd;ej&d3fgd
efd5ej d: e%ej&ee$d9fd<ej d= ej&d3fgd
efd<ej d> ejfd?ej d@ ejfdejfdejdfdAe$fd"efdBe$dCfd2e$dDfg	dEejfdejdFfdGejd3fdHejfgdIejd3fdJej'dKfd+ejd3fgdLefdJej'dKfd-ed3fgdMej'd3fdNej dO ej'd3fde
ej'd3fdPej'd3fdQej'd3fdRej'd3fdSe%eej'd3fgdTZ(dUS )Vr   zk
    A Haskell lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 0.8
    ZHaskellzhttps://www.haskell.org/ZhaskellZhsz*.hsztext/x-haskell)caseclassdatar   ZderivingdoelseZfamilyifinz
infix[lr]?instanceletnewtypeofthentypewhere_)NULSOHz[SE]TXEOTENQACKBELBSHTLFVTFFCRzS[OI]DLEzDC[1-4]NAKSYNETBCANEMSUBESCz[FGRU]SSPDELz\s+z!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$z\{-commentz
\bimport\bimportz
\bmodule\bmodulez	\berror\bz\b(%s)(?!\')\b|z'[^\\]'z^[_z][\w\']*z'?[_z][\w']*z('')?[z(')[z(')\[[^\]]*\]z(')\([^)]*\)z(')[:!#$%&*+.\\/<=>?@^|~-]+z\\(?![:!#$%&*+.\\/<=>?@^|~-]+)z+(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)z:[:!#$%&*+.\\/<=>?@^|~-]*z[:!#$%&*+.\\/<=>?@^|~-]+z40[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*zR0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*(_*[pP][+-]?\d(_*\d)*)?z\d(_*\d)*_*[eE][+-]?\d(_*\d)*z+\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?z0[bB]_*[01](_*[01])*z0[oO]_*[0-7](_*[0-7])*z 0[xX]_*[\da-fA-F](_*[\da-fA-F])*z	\d(_*\d)*'	character"stringz\[\]z\(\)z[][(),;`{}]z\)z#popzqualified\bz([z][\w.]*)(\s+)(as)(\s+)([z][\w.]*)z][\w.]*)(\s+)(hiding)(\s+)(\()funclistz][\w.]*)(\s+)(\()z[\w.]+[z][\w.]*z]\w*z(_[\w\']+|[z	][\w\']*),z\()rK   rK   z#pop:2z[^-{}]+z#pushz-\}z[-{}]z[^\\']'z\\escapez[^\\"]+z[abfnrtv"\'&\\]z\^[][z@^_]zo[0-7]+zx[\da-fA-F]+z\d+z	(\s+)(\\))rootrD   rE   rK   rC   rH   rJ   rN   N))__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesreservedasciir   r
   Single	Multiliner   Reservedr   	Exceptionjoinr   CharuniZLlFunctionZLuTyper   Wordr   FloatZBinOctHexIntegerBuiltinr   r   	NamespaceEscapetokens rm   rm   6lib/python3.7/site-packages/pygments/lexers/haskell.pyr      s   
















c               @   s\   e Zd ZdZdZdgZg Zg Zddee	e
ejfdee	e
ejfdee	e
ejfegiZdS )	r   zY
    A Haskell lexer with support for Hspec constructs.

    .. versionadded:: 2.4.0
    ZHspecZhspecrO   z(it)(\s*)("[^"]*")z(describe)(\s*)("[^"]*")z(context)(\s*)("[^"]*")N)rP   rQ   rR   rS   rT   rV   rW   rX   r   r	   r   r   ZDocr   rl   rm   rm   rm   rn   r      s   c               @   s4  e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
d
Zdde eeejfdeeejfdeeejfdeeejdfdeeejeejefdde	 ejfdeejedfdejfdefdejfdejfdejfdejfdejfdejfdejdfded fd!efd"efgd#efd$eej ee!d%fd&ej d'fgd#efd(ejfd)ejfd*ejfd+ejdfd,e!fd-efd.e!d/fd0e!d1fg	d2ejfd+ejd3fd4ejd'fd5ejfgd6ejfd7ej"d8fdejd'fgd9efd7ej"d8fded'fgd:ej"d'fd;ej"d'fde
ej"d'fd<ej"d'fd=ej"d'fdej"d'fd>eeej"d'fgd?Z#d@S )Ar   z
    A lexer for the dependently typed programming language Idris.

    Based on the Haskell and Agda Lexer.

    .. versionadded:: 2.0
    ZIdriszhttps://www.idris-lang.org/ZidrisZidrz*.idrztext/x-idris)3r   r   r    r   usingr!   r"   r#   r$   z
infix[lr]?r%   rewriteauto	namespacecodatamutualprivatepublicabstractZtotalpartial	interfaceimplementationexportZcoveringconstructorr&   Zproofr(   r)   Zstaticr+   r,   withpatternZtermsyntaxprefix	postulateZ
parametersrecordZdslZ
impossibleZimplicitZtacticsZintrosZintroZcomputeZrefineexactZtrivial)r-   r.   z[SE]TXr/   r0   r1   r2   r3   r4   r5   r6   r7   r8   zS[OI]r9   zDC[1-4]r:   r;   r<   r=   r>   r?   r@   z[FGRU]SrA   rB   )liblinkflagr   ZhideZfreezeaccessr   ZloggingZdynamicrT   Zerror_handlerslanguagez^(\s*)(%%(%s))rF   z((\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$z(\s*)(\|{3}.*?)$z
(\s*)(\{-)rC   z^(\s*)([^\s(){}]+)(\s*)(:)(\s*)z\b(%s)(?!\')\bz(import|module)(\s+)rE   z('')?[A-Z][\w\']*z[a-z][\w\']*z(<-|::|->|=>|=)z"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[xX][\da-fA-F]+z\d+rG   rH   rI   rJ   z
[^\s(){}]+z\s+?z\s+z([A-Z][\w.]*)(\s+)(\()rK   z[A-Z][\w.]*z#popz[A-Z]\w*z(_[\w\']+|[a-z][\w\']*)z--.*$z\{-rM   z[:!#$%&*+.\\/<=>?@^|~-]+z\()rK   rK   z\)z#pop:2z[^-{}]+z#pushz-\}z[-{}]z[^\\']z\\rN   z[^\\"]+z[abfnrtv"\'&\\]z\^[][A-Z@^_]zo[0-7]+zx[\da-fA-F]+z	(\s+)(\\))rO   rE   rK   rC   rH   rJ   rN   N)$rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   Z
directivesr_   r   r   r   r]   r
   r[   r\   r   rb   r   rd   rc   r	   r   re   rg   rh   r   r`   rj   r   rk   rl   rm   rm   rm   rn   r      sx   














c               @   s>  e Zd ZdZdZdZdgZdgZdgZdZ	de
eejeejefd	ejfd
ejdfdejdfdde	 ejfde
ejedfdejfdefdejfdejfdejfdejfdejfdejdfdedfdefdefgdejfdejd fd!ejd"fd#ejfgd
ejdfd$ed"fd%efgej d ej d ej d ej d& d'Z d(S ))r   z|
    For the Agda dependently typed functional programming language and
    proof assistant.

    .. versionadded:: 2.0
    ZAgdaz.http://wiki.portal.chalmers.se/agda/pmwiki.phpZagdaz*.agdaztext/x-agda))rw   rs   Zcoinductiver|   r    r!   zeta-equalityZfieldforallZhidingr$   Z	inductiveinfixinfixlinfixrr%   Zinterleavedr&   Zmacrort   zno-eta-equalityopenZoverlapr~   r   Z	primitiveru   ZquoteZ	quoteTermr   Zrenamingrp   r   ZtacticZunquoteZunquoteDeclZ
unquoteDefro   variabler+   r}   z^(\s*)([^\s(){}]+)(\s*)(:)(\s*)z!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$z\{-rC   z\{!holez\b(%s)(?!\')\brF   z(import|module)(\s+)rE   z\b(Set|Prop)[\u2080-\u2089]*\bz(\(|\)|\{|\})z((\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[xX][\da-fA-F]+z\d+rG   rH   rI   rJ   z
[^\s(){}]+z\s+?z[^!{}]+z#pushz!\}z#popz[!{}]z[a-zA-Z][\w.\']*z	[\W0-9_]+rN   )rO   r   rE   rC   rH   rJ   rN   N)!rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   r   r   rb   r   rd   r
   r[   r\   Z	Directiver_   r   r]   rc   r   re   rg   rh   r   r`   r	   r   rl   rm   rm   rm   rn   r   &  sL   








c               @   s  e Zd ZdZdZddgZdgZdgZdZdZ	d	e
fd
ejfdejdfdejdfdejdfdejfdde ejfdejfdefdejfdejfdejfdejfdefdejfdejfdejfdejfdejfd ejd!fd"ed#fd$ejfd%ejfd&efgd	e
fd"ed#fd'ed(fd)efd*e ej!e
ee
ed(fd+e ej!e
ee
ed,fd-e ej!e
ed,fd.ej!d(fgd	e
fd-e ej!e
ed,fd/ej!d(fgd	e
fd0ejfd1ejfd2efdefd3ed4fd'ed5fgd6ejfdejd7fd8ejd(fd9ejfgd:ejd(fd;ej"d<fd ejd(fgd=efd;ej"d<fd"ed(fgd>ej"d(fd?ej"d(fde	ej"d(fd@ej"d(fdAej"d(fdej"d(fdBe e
ej"d(fgdCZ#dDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVhZ$dWdX Z%dYS )Zr   zs
    FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 2.0
    ZCryptolZcryptolZcryz*.cryztext/x-cryptol)ZArithZBitZCmpFalseZInfTruer"   r{   ZexternZfinr#   rD   infZlg2maxminrE   r'   Zpragmapropertyr)   r*   r+   width)r-   r.   z[SE]TXr/   r0   r1   r2   r3   r4   r5   r6   r7   r8   zS[OI]r9   zDC[1-4]r:   r;   r<   r=   r>   r?   r@   z[FGRU]SrA   rB   z\s+z//.*$z/\*rC   z
\bimport\brD   z
\bmodule\brE   z	\berror\bz\b(%s)(?!\')\brF   z^[_a-z][\w\']*z'?[_a-z][\w']*z('')?[A-Z][\w\']*z\\(?![:!#$%&*+.\\/<=>?@^|~-]+)z+(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)z:[:!#$%&*+.\\/<=>?@^|~-]*z[:!#$%&*+.\\/<=>?@^|~-]+z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[oO][0-7]+z0[xX][\da-fA-F]+z\d+rG   rH   rI   rJ   z\[\]z\(\)z[][(),;`{}]z\)z#popzqualified\bz(([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)z#([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()rK   z([A-Z][\w.]*)(\s+)(\()z[\w.]+z[A-Z][\w.]*z[A-Z]\w*z(_[\w\']+|[a-z][\w\']*)rM   z\()rK   rK   z#pop:2z[^/*]+z#pushz\*/z[*/]z[^\\']'z\\rN   z[^\\"]+z[abfnrtv"\'&\\]z\^[][A-Z@^_]zo[0-7]+zx[\da-fA-F]+z	(\s+)(\\))rO   rD   rE   rK   rC   rH   rJ   rN   r_   splitreverseZ	transposer   lengthtailz<<z>>z<<<z>>>constZregZparseqASSERTZ	undefinederrorZtracec             c   sV   dg}xJt | ||D ]8\}}}|tkrB|| jkrB|tj|fV  q|||fV  qW d S )NrO   )r   get_tokens_unprocessedr   EXTRA_KEYWORDSri   )selftextstackindextokenvaluerm   rm   rn   r     s    z#CryptolLexer.get_tokens_unprocessedN)&rP   rQ   rR   rS   rT   rV   rW   rX   rY   rZ   r   r
   r[   r\   r   r]   r   r^   r_   rb   rc   r   rd   r   re   rf   rg   rh   r   r`   ri   r   r   rj   rk   rl   r   r   rm   rm   rm   rn   r   p  s   

















c               @   s*   e Zd ZdZedZdd Zdd ZdS )LiterateLexera  
    Base class for lexers of literate file formats based on LaTeX or Bird-style
    (prefixing each code line with ">").

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.
    z(>[ \t]*)(.*\n)c             K   s   || _ tj| f| d S )N)	baselexerr   __init__)r   r   optionsrm   rm   rn   r     s    zLiterateLexer.__init__c          	   c   s  | j d}|d kr0| dd dkr,dp.d}d}g }|dkrxvt|D ]h}| }| j|}|r|t	|dt
j|dfgf ||d7 }qL|t	|dt|fgf qLW ndd	lm} |f | j }	d}
d}xt|D ]}| }|
r | d
rd}
||7 }n||7 }q| dr^d}
||7 }|t	|t|	|f d}q||7 }qW |t	|t|	|f t|| j|E d H  d S )Nlitstyler      z%\latexZbird    )TexLexerz
\end{code}z\begin{code})r   getlstripline_refinditergroupbird_rematchappendlenr
   Specialr	   Zpygments.lexers.markupr   
startswithlistr   r   r   )r   r   ZstylecodeZ
insertionsr   linemr   ZlxlexerZ	codelinesr   rm   rm   rn   r     sF    
 



z$LiterateLexer.get_tokens_unprocessedN)	rP   rQ   rR   rS   recompiler   r   r   rm   rm   rm   rn   r     s   
r   c               @   s2   e Zd ZdZdZdddgZdgZdgZdd	 Zd
S )r   an  
    For Literate Haskell (Bird-style or LaTeX) source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 0.9
    zLiterate Haskellzliterate-haskellZlhaskellZlhsz*.lhsztext/x-literate-haskellc             K   s   t f |}tj| |f| d S )N)r   r   r   )r   r   hslexerrm   rm   rn   r   K  s    
zLiterateHaskellLexer.__init__N)	rP   rQ   rR   rS   rT   rV   rW   rX   r   rm   rm   rm   rn   r   9  s   
c               @   s2   e Zd ZdZdZdddgZdgZdgZdd	 Zd
S )r   al  
    For Literate Idris (Bird-style or LaTeX) source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 2.0
    zLiterate Idriszliterate-idrisZlidrisZlidrz*.lidrztext/x-literate-idrisc             K   s   t f |}tj| |f| d S )N)r   r   r   )r   r   r   rm   rm   rn   r   b  s    
zLiterateIdrisLexer.__init__N)	rP   rQ   rR   rS   rT   rV   rW   rX   r   rm   rm   rm   rn   r   P  s   
c               @   s0   e Zd ZdZdZddgZdgZdgZdd Zd	S )
r   aU  
    For Literate Agda source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 2.0
    zLiterate Agdazliterate-agdaZlagdaz*.lagdaztext/x-literate-agdac             K   s&   t f |}tj| |fddi| d S )Nr   r   )r   r   r   )r   r   Z	agdalexerrm   rm   rn   r   y  s    
zLiterateAgdaLexer.__init__N)	rP   rQ   rR   rS   rT   rV   rW   rX   r   rm   rm   rm   rn   r   g  s   c               @   s2   e Zd ZdZdZdddgZdgZdgZdd	 Zd
S )r   an  
    For Literate Cryptol (Bird-style or LaTeX) source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 2.0
    zLiterate Cryptolzliterate-cryptolZlcryptolZlcryz*.lcryztext/x-literate-cryptolc             K   s   t f |}tj| |f| d S )N)r   r   r   )r   r   Zcrylexerrm   rm   rn   r     s    
zLiterateCryptolLexer.__init__N)	rP   rQ   rR   rS   rT   rV   rW   rX   r   rm   rm   rm   rn   r   ~  s   
c            "   @   s  e Zd ZdZdZdZdgZddgZdgZdd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'd(g"Z	dddddd&gZ
d)d*d+d,gZd-d.d/d0d1d2d3d4d5d6d7d8d9gZd:Zd;e d< Zd=ZejZejZejZed>d?e edfd@eeeedAfdBeeeedCfdDdEe
 dF eeeedfdGeeeeeejfdHeeeejeeeeeej	fdIe dJ eeeeeejfdKe dJ eeeeeeeejfdDdEe e ejfdDdEe	 e efdDdEe e ej fdLe efdMeejefdNeejefdOe dJ eejefdPej!fdQe"j#dRfedS e$fdTe$fdUe%fdVe&j'fdWe&j(fdXe&j)fdYe"j*dZfd[e"j#d\fgd]efedgd^e%d_fedgd`edafedbgdced_fd`edafddefdeeeeefedbged>dDdEe e efdfdEe	 e dg ed_fdhe efdiefdPej!fdMeejefdjeejefdkefe+d_g
dleee,j-fdmefdne,j.dofdpe,j/fgdqe,j.fdne,j.drfdse,j.d_fdte,j.fgdue"j#fdve"j0fd[e"j#d_fgdwe"j#fedxdye"j#d_fgdze"j*fedxd{e"j*d_fgd|e"j0fd}e"j0fd~e"j0fde"j0fgdZ1dS )r   zA
    Lexer for the Koka language.

    .. versionadded:: 1.6
    ZKokaz/https://koka-lang.github.io/koka/doc/index.htmlZkokaz*.kkz*.kkiztext/x-kokar   r   r   r*   ZcotypeZrectypealiasstructZconZfunZfunctionvalvarZexternalr#   r)   r"   elifreturnr   ru   rv   rE   rD   asr   ZinlineZrectryyieldenumry   r%   r   existsZsomer}   forwhilerepeatZforeachzforeach-indexedr   ZcatchfinallycsZjsfilerefassignedz[$%&*+@!/\\^~=.:\-?|<>]+z(?!)z	(?![\w/])
whitespacez::?z(alias)(\s+)([a-z]\w*)?z
alias-typez(struct)(\s+)([a-z]\w*)?zstruct-typez(%s)rF   z(\s+)([a-z]\w*)?z=(module)(\s+)(interface(?=\s))?(\s+)?((?:[a-z]\w*/)*[a-z]\w*)z`(import)(\s+)((?:[a-z]\w*/)*[a-z]\w*)(?:(\s*)(=)(\s*)(qualified)?(\s*)((?:[a-z]\w*/)*[a-z]\w*))?z>^(public|private)?(\s+)?(function|fun|val)(\s+)([a-z]\w*|\((?:z|/)\))zd^(?:(public|private)(?=\s+external))?((?<!^)\s+)?(external)(\s+)(inline(?=\s))?(\s+)?([a-z]\w*|\((?:z::?|:=|\->|[=.]z((?:[a-z]\w*/)*)([A-Z]\w*)z((?:[a-z]\w*/)*)([a-z]\w*)z((?:[a-z]\w*/)*)(\((?:z_\w*z@"	litstringz
|/(?![*/])`z[{}()\[\];,]z![0-9]+\.[0-9]+([eE][\-+]?[0-9]+)?z0[xX][0-9a-fA-F]+z[0-9]+rG   charrI   rJ   =z(?=\((?!,*\)))z#popz[(\[<]ztype-nestedztype-contentz[)\]>]rM   z([a-z]\w*)(\s*)(:)(?!:)z(?=((%s)z))z[EPHVX]z[a-z][0-9]*(?![\w/])z((?:[a-z]\w*/)*)([a-z]\w+)z::|->|[.:|]z(\n\s*)(#.*)$z\s+z/\*rC   z//.*$z[^/*]+z#pushz\*/z[*/]z[^"]+z""z	[^\\"\n]+zescape-sequencez["\n]z
[^\\\'\n]+z[\'\n]z\\[nrt\\"\']z\\x[0-9a-fA-F]{2}z\\u[0-9a-fA-F]{4}z\\U[0-9a-fA-F]{6})rO   z
alias-typezstruct-typer*   ztype-nestedztype-contentr   rC   r   rJ   r   zescape-sequenceN)2rP   rQ   rR   rS   rT   rU   rV   rW   rX   keywordsZtypeStartKeywordsZtypekeywordsZbuiltinZsymbolsZ	sboundaryboundaryr   Z	AttributeZ	tokenTypeZClassZtokenTypeDefr   ZEmphZtokenConstructorr   r   r   r   r_   rj   rb   rc   ZPseudoZVariabler   Doubler   r   r   re   rg   rh   r`   r   r
   ZPreprocr\   r[   rk   rl   rm   rm   rm   rn   r     s   












)&rS   r   Zpygments.lexerr   r   r   r   r   r   r   Zpygments.tokenr	   r
   r   r   r   r   r   r   r   r   Zpygmentsr   ra   __all__r   r   r   r   r   r   r   r   r   r   r   r   r   rm   rm   rm   rn   <module>	   s*   $0

 pJ 
@