Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/haskell.cpython-37.pyc

B

u��\G}�
@s>dZddlZddlmZmZmZmZmZmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZddlmZdddd	d
ddd
ddg
Ze�d�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGdd
�d
e�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd
�d
e�Z"Gdd�de�Z#Gdd�de�Z$dS)z�
    pygments.lexers.haskell
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Haskell and related languages.

    :copyright: Copyright 2006-2019 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)�	unistring�HaskellLexer�
HspecLexer�
IdrisLexer�	AgdaLexer�CryptolLexer�LiterateHaskellLexer�LiterateIdrisLexer�LiterateAgdaLexer�LiterateCryptolLexer�	KokaLexerz.*?
c @sFeZdZdZdZddgZdgZdgZej	ej
BZdZdZ
d	efd
ejfdejdfd
ejdfdejdfdejfdd�e�ejfdejfdejdejfdejdefdejdejfdejdejfdejfdejfdejfdejfdejfd efd!e j!fd"e j!fd#e j!fd$e j!fd%e j"fd&e j#fd'e j$fd(e j%fd)ejd*fd+ed,fd-ejfd.ej&fd/e'fgd	efd+ed,fd0e'd1fd2efd3ejd4ejd5e(ej)eeee�d1fd3ejd6e(ej)eeee'�d7fd3ejd8e(ej)ee'�d7fd9ej)d1fgd	efd3ejd8e(ej)ee'�d7fd:ejd;ej)d1fgd	efd:ejd<ejfd=ejd>ejfd
ejfdejdfd?e'fd efd@e'dAfd0e'dBfg	dCejfdejdDfdEejd1fdFejfgdGejd1fdHej*dIfd)ejd1fgdJefdHej*dIfd+ed1fgdKej*d1fdLejdMej*d1fd�e
�ej*d1fdNej*d1fdOej*d1fdPej*d1fdQej*d1fgdR�Z+dSS)Trzk
    A Haskell lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 0.8
    ZHaskellZhaskellZhsz*.hsztext/x-haskell)�case�class�datarZderiving�do�else�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�CRzS[OI]�DLEzDC[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[:!#$%&*+.\\/<=>?@^|~-]+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)*)?z0[bB]_*[01](_*[01])*z0[oO]_*[0-7](_*[0-7])*z 0[xX]_*[\da-fA-F](_*[\da-fA-F])*z	\d(_*\d)*�'�	character�"�stringz\[\]z\(\)z[][(),;`{}]z\)z#popzqualified\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\()rKrKz#pop:2z[^-{}]+z#pushz-\}z[-{}]z[^\\']'z\\�escapez[^\\"]+z[abfnrtv"\'&\\]z\^[][z@^_]zo[0-7]+zx[\da-fA-F]+z\d+z\s+\\)�rootrDrErKrCrHrJrNN),�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenames�	mimetypes�re�	MULTILINE�UNICODE�flags�reserved�asciir	r
�Single�	Multiliner�Reservedr
�	Exception�joinr�Char�uniZLl�FunctionZLu�Typer�Wordr�Float�Bin�Oct�Hex�Integer�Builtinrr�	Namespace�Escape�tokens�rqrq�H/opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/haskell.pyrs�
















c@sVeZdZdZdZdgZgZgZddee	e
j�fdee	e
j�fdee	e
j�fegiZ
dS)	rzY
    A Haskell lexer with support for Hspec constructs.

    .. versionadded:: 2.4.0
    ZHspecZhspecrOz(it\s*)("[^"]*")z(describe\s*)("[^"]*")z(context\s*)("[^"]*")N)rPrQrRrSrTrUrVrWrr	rZDocrrprqrqrqrrr�sc@s*eZdZdZdZddgZdgZdgZdZdZ	d	Z
d
d�e
�ee
ej�fdee
ej�fd
ee
ej�fdee
ej�dfdee
eje
eje
�fdd�e�ejfdeeje
�dfdejfde
fdejfdejfdejfdejfdejfdejfdejdfdedfd e
fd!e
fgd"e
fd#eeje
e�d$fd%ejd&fgd"e
fd'ejfd(ejfd)ejfd*ejdfd+efd,efd-ed.fd/ed0fg	d1ejfd*ejd2fd3ejd&fd4ejfgd5ejfd6ej d7fdejd&fgd8efd6ej d7fded&fgd9ej d&fd:ej d&fd�e	�ej d&fd;ej d&fd<ej d&fdej d&fd=ej d&fgd>�Z!d?S)@rz�
    A lexer for the dependently typed programming language Idris.

    Based on the Haskell and Agda Lexer.

    .. versionadded:: 2.0
    ZIdrisZidrisZidrz*.idrztext/x-idris).rrrr�usingr r!r#r$z
infix[lr]?r%�rewrite�auto�	namespace�codata�mutual�private�public�abstract�total�partialr&Zproofr(r)�staticr+r,�with�patternZterm�syntax�prefix�	postulate�
parameters�recordZdslZ
impossibleZimplicitZtacticsZintrosZintroZcomputeZrefine�exactZtrivial)r-r.z[SE]TXr/r0r1r2r3r4r5r6r7r8zS[OI]r9zDC[1-4]r:r;r<r=r>r?r@z[FGRU]SrArB)
�lib�link�flagrZhideZfreeze�accessrZloggingZdynamicrTZerror_handlers�languagez^(\s*)(%%%s)rFz((\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$z(\s*)(\|{3}.*?)$z
(\s*)(\{-)rCz^(\s*)([^\s(){}]+)(\s*)(:)(\s*)z\b(%s)(?!\')\bz(import|module)(\s+)rEz('')?[A-Z][\w\']*z[a-z][\w\']*z(<-|::|->|=>|=)z"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[xX][\da-fA-F]+z\d+rGrHrIrJz
[^\s(){}]+z\s+?z\s+z([A-Z][\w.]*)(\s+)(\()rKz[A-Z][\w.]*z#popz[A-Z]\w*z(_[\w\']+|[a-z][\w\']*)z--.*$z\{-rMz[:!#$%&*+.\\/<=>?@^|~-]+z\()rKrKz\)z#pop:2z[^-{}]+z#pushz-\}z[-{}]z[^\\']z\\rNz[^\\"]+z[abfnrtv"\'&\\]z\^[][A-Z@^_]zo[0-7]+zx[\da-fA-F]+z\s+\\)rOrErKrCrHrJrNN)"rPrQrRrSrTrUrVrWr\r]Z
directivesrbrr	rr`r
r^r_r
rerrgrfrrhrkrlrrcrnrrorprqrqrqrrr�sv	













c"@s~eZdZdZdZdgZdgZdgZdddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'g"Zd(e	e
eje
e
je
�fd)ejfd*ejd+fd,ejd-fd.d/�e�ejfd0e	eje
�d1fd2ejfd3e
fd4e
jfd5ejfd6ejfd7ejfd8ejfd9ejd:fd;ed<fd=e
fd>e
fgd?ejfd,ejd@fdAejdBfdCejfgd*ejd+fdDedBfdEe
fgejd+ejd:ejd<ejdFdG�ZdHS)Irz�
    For the `Agda <http://wiki.portal.chalmers.se/agda/pmwiki.php>`_
    dependently typed functional programming language and proof assistant.

    .. versionadded:: 2.0
    ZAgdaZagdaz*.agdaztext/x-agdar{rwZcoinductive�constructorr�field�forallZhidingr$Z	inductive�infix�infixl�infixrr%r&rx�openr�r�Z	primitivery�quoteZ	quoteGoalZ	quoteTermr�Zrenamingrtr�Ztactic�unquoteZunquoteDeclrsr+rz^(\s*)([^\s(){}]+)(\s*)(:)(\s*)z!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$z\{-rCz\{!�holez\b(%s)(?!\')\brFz(import|module)(\s+)rEz\b(Set|Prop)\bz
(\(|\)|\{|\})u(\.{1,3}|\||Λ|∀|→|:|=|->)z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[xX][\da-fA-F]+z\d+rGrHrIrJz
[^\s(){}]+z\s+?z[^!{}]+z#pushz!\}z#popz[!{}]z[a-zA-Z][\w.]*z	[\W0-9_]+rN)rOr�rErCrHrJrNN)rPrQrRrSrTrUrVrWr\rr	r
rerrgr
r^r_Z	Directiverbrr`rfrrhrkrlrrcrrprqrqrqrrr%sR








c@s~eZdZdZdZddgZdgZdgZdZdZ	d	e
fd
ejfdej
dfd
ejdfdejdfdejfdd�e�ejfdejfdefdejfdejfdejfdejfdefdejfdejfdejfdejfdejfd ejd!fd"ed#fd$ejfd%ejfd&efgd	e
fd"ed#fd'ed(fd)efd*e ej!e
ee
e�d(fd+e ej!e
ee
e�d,fd-e ej!e
e�d,fd.ej!d(fgd	e
fd-e ej!e
e�d,fd/ej!d(fgd	e
fd0ejfd1ejfd2efdefd3ed4fd'ed5fgd6ej
fdej
d7fd8ej
d(fd9ej
fgd:ejd(fd;ej"d<fd ejd(fgd=efd;ej"d<fd"ed(fgd>ej"d(fd?ej"d(fd�e	�ej"d(fd@ej"d(fdAej"d(fdej"d(fdBej"d(fgdC�Z#e$dD�Z%dEdF�Z&dGS)Hrzs
    FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 2.0
    ZCryptolZcryptolZcryz*.cryztext/x-cryptol)ZArithZBitZCmp�FalseZInf�Truer!Zexport�externZfinr#rD�infZlg2�max�minrEr'Zpragma�propertyr)r*r+�width)r-r.z[SE]TXr/r0r1r2r3r4r5r6r7r8zS[OI]r9zDC[1-4]r:r;r<r=r>r?r@z[FGRU]SrArBz\s+z//.*$z/\*rCz
\bimport\brDz
\bmodule\brEz	\berror\bz\b(%s)(?!\')\brFz^[_a-z][\w\']*z'?[_a-z][\w']*z('')?[A-Z][\w\']*z\\(?![:!#$%&*+.\\/<=>?@^|~-]+)z+(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)z:[:!#$%&*+.\\/<=>?@^|~-]*z[:!#$%&*+.\\/<=>?@^|~-]+z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[oO][0-7]+z0[xX][\da-fA-F]+z\d+rGrHrIrJz\[\]z\(\)z[][(),;`{}]z\)z#popzqualified\bz(([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)z#([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()rKz([A-Z][\w.]*)(\s+)(\()z[\w.]+z[A-Z][\w.]*z[A-Z]\w*z(_[\w\']+|[a-z][\w\']*)rMz\()rKrKz#pop:2z[^/*]+z#pushz\*/z[*/]z[^\\']'z\\rNz[^\\"]+z[abfnrtv"\'&\\]z\^[][A-Z@^_]zo[0-7]+zx[\da-fA-F]+z\s+\\)rOrDrErKrCrHrJrN)rb�split�reverseZ	transposer��length�tailz<<z>>z<<<z>>>�constZreg�par�seq�ASSERTZ	undefined�error�traceccsVdg}xJt�|||�D]8\}}}|tkrB||jkrB|tj|fVq|||fVqWdS)NrO)r�get_tokens_unprocessedr
�EXTRA_KEYWORDSrm)�self�text�stack�index�token�valuerqrqrrr��sz#CryptolLexer.get_tokens_unprocessedN)'rPrQrRrSrTrUrVrWr\r]r	r
r^r_rr`r
rarbrerfrrgrrhrjrkrlrrcrmrrrnrorp�setr�r�rqrqrqrrrjs�
















c@s*eZdZdZe�d�Zdd�Zdd�ZdS)�
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)cKs||_tj|f|�dS)N)�	baselexerr�__init__)r�r��optionsrqrqrrr�szLiterateLexer.__init__c
	cs�|j�d�}|dkr0|��dd�dkr,dp.d}d}g}|dkr�xvt�|�D]h}|��}|j�|�}|r�|�t	|�dt
j|�d�fgf�||�d�7}qL|�t	|�dt|fgf�qLWn�dd	l
m}|f|j�}	d}
d}x�t�|�D]�}|��}|
�r |���d
��rd}
||7}n||7}q�|���d��r^d}
||7}|�t	|�t|	�|��f�d}q�||7}q�W|�t	|�t|	�|��f�x"t||j�|��D]}|V�q�WdS)N�litstyler�z%\�latexZbird��)�TexLexerz
\end{code}z\begin{code})r��get�lstrip�line_re�finditer�group�bird_re�match�append�lenr
�Specialr	Zpygments.lexers.markupr��
startswith�listr�rr�)
r�r�Zstyle�codeZ
insertionsr��line�mr�ZlxlexerZ	codelinesr��itemrqrqrrr�sH
 



z$LiterateLexer.get_tokens_unprocessedN)	rPrQrRrSrX�compiler�r�r�rqrqrqrrr��s
r�c@s2eZdZdZdZdddgZdgZdgZdd	�Zd
S)ran
    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
    zLiterate Haskell�lhszliterate-haskellZlhaskellz*.lhsztext/x-literate-haskellcKstf|�}tj||f|�dS)N)rr�r�)r�r��hslexerrqrqrrr�Fs
zLiterateHaskellLexer.__init__N)	rPrQrRrSrTrUrVrWr�rqrqrqrrr4s
c@s2eZdZdZdZdddgZdgZdgZdd	�Zd
S)ral
    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
    zLiterate IdrisZlidrzliterate-idrisZlidrisz*.lidrztext/x-literate-idriscKstf|�}tj||f|�dS)N)rr�r�)r�r�r�rqrqrrr�]s
zLiterateIdrisLexer.__init__N)	rPrQrRrSrTrUrVrWr�rqrqrqrrrKs
c@s0eZdZdZdZddgZdgZdgZdd�Zd	S)
raU
    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 AgdaZlagdaz
literate-agdaz*.lagdaztext/x-literate-agdacKs&tf|�}tj||fddi|��dS)Nr�r�)rr�r�)r�r�Z	agdalexerrqrqrrr�ts
zLiterateAgdaLexer.__init__N)	rPrQrRrSrTrUrVrWr�rqrqrqrrrbsc@s2eZdZdZdZdddgZdgZdgZdd	�Zd
S)ran
    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
    zLiterate CryptolZlcryzliterate-cryptolZlcryptolz*.lcryztext/x-literate-cryptolcKstf|�}tj||f|�dS)N)rr�r�)r�r�Zcrylexerrqrqrrr��s
zLiterateCryptolLexer.__init__N)	rPrQrRrSrTrUrVrWr�rqrqrqrrrys
c"@s�eZdZdZdZdgZddgZdgZddd	d
ddd
dddddddddddddddddddd d!d"d#d$d%d&d'g"Zd
ddd
dd%gZ	d(d)d*d+gZ
d,d-d.d/d0d1d2d3d4d5d6d7d8g
Zd9Zd:ed;Z
d<ZejZejZejZed=�d>e
ed
fd?eeee�d@fdAeeee�dBfdCdD�e	�dEeeee�d
fdFeeeeej�fdGeeeejeeeeej�fdHedIeeeej�fdJedIeeeeej�fdCdD�e
�eejfdCdD�e�eefdCdD�e�eejfdKe
efdLeeje�fdMeeje�fdNedIeeje�fdOej fdPe!j"dQfedRe#fdSe#fdTe$fdUe%j&fdVe%j'fdWe%j(fdXe!j)dYfdZe!j"d[fgd\efed
�gd]e$d^fed
�gd_ed`feda�gdbed^fd_ed`fdcefddeeee�feda�ged=�dCdD�e
�eefdedD�e�edfed^fdgeefdhefdOej fdLeeje�fdieeje�fdjefe*d^�g
dke+j,fdlefdme+j-dnfdoe+j.fgdpe+j-fdme+j-dqfdre+j-d^fdse+j-fgdte!j"fdue!j/fdZe!j"d^fgdve!j"fedw�dxe!j"d^fgdye!j)fedw�dze!j)d^fgd{e!j/fd|e!j/fd}e!j/fd~e!j/fgd�Z0d�S)�rzc
    Lexer for the `Koka <http://koka.codeplex.com>`_
    language.

    .. versionadded:: 1.6
    ZKokaZkokaz*.kkz*.kkiztext/x-kokar�r�r�r*ZcotypeZrectype�alias�structZconZfun�function�val�varZexternalr#r)r!�elif�returnr�ryrzrErD�asr�inlineZrec�try�yield�enumZ	interfacer%r��existsZsomer�for�while�repeatZforeachzforeach-indexedr�Zcatch�finally�csZjs�file�ref�assignedz[$%&*+@!/\\^~=.:\-?|<>]+z(?!�)z	(?![\w/])�
whitespacez::?z(alias)(\s+)([a-z]\w*)?z
alias-typez(struct)(\s+)([a-z]\w*)?zstruct-typez(%s)rFz(\s+)([a-z]\w*)?z4(module)(\s+)(interface\s+)?((?:[a-z]\w*/)*[a-z]\w*)zb(import)(\s+)((?:[a-z]\w*/)*[a-z]\w*)(?:(\s*)(=)(\s*)((?:qualified\s*)?)((?:[a-z]\w*/)*[a-z]\w*))?zE(^(?:(?:public|private)\s*)?(?:function|fun|val))(\s+)([a-z]\w*|\((?:z|/)\))zE(^(?:(?:public|private)\s*)?external)(\s+)(inline\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]+)?z0[xX][0-9a-fA-F]+z[0-9]+rG�charrIrJ�=z(?=\((?!,*\)))z#popz[(\[<]ztype-nestedztype-contentz[)\]>]rMz([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/\*rCz//.*$z[^/*]+z#pushz\*/z[*/]z[^"]+z""z	[^\\"\n]+zescape-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})rOz
alias-typezstruct-typer*ztype-nestedztype-contentr�rCr�rJr�zescape-sequenceN)1rPrQrRrSrTrUrVrW�keywordsZtypeStartKeywordsZtypekeywords�builtin�symbolsZ	sboundary�boundaryr
�	AttributeZ	tokenTypeZClassZtokenTypeDefrZEmphZtokenConstructorrrrr	rbrnrerfZPseudo�Variabler�Doublerrrrhrkrlrcrr
ZPreprocr_r^rorprqrqrqrrr�s�













)%rSrXZpygments.lexerrrrrrrrZpygments.tokenr	r
rrr
rrrr�pygmentsrrd�__all__r�r�rrrrrr�rrrrrrqrqrqrr�<module>
s*$,

nE
A