HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pygments/lexers/__pycache__/haskell.cpython-311.pyc
�

�E�c�����dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZddlmZgd�ZGd�de��ZGd	�d
e��ZGd�de��ZGd
�de��ZGd�de��ZGd�de��ZGd�de��Z Gd�de��Z!Gd�de��Z"Gd�de��Z#Gd�de��Z$dS)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�line_re)
�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic�
Whitespace)�	unistring)
�HaskellLexer�
HspecLexer�
IdrisLexer�	AgdaLexer�CryptolLexer�LiterateHaskellLexer�LiterateIdrisLexer�LiterateAgdaLexer�LiterateCryptolLexer�	KokaLexerc�R�eZdZdZdZdZddgZdgZdgZdZ	d	Z
gd
ef�dej
f�dejd
f�dejdf�dejdf�dejf�dd�e	��zejf�dejf�dejzdzejf�dejzdzef�dejzdzejf�dejzdzejf�dejf�dejf�dejf�dejf�d ejf�d!ejf�d"ef�d#ejf�d$ejf�d%ejf�d&ejf�d'ejf�d(ej f�d)ej!f�d*ej"f�d+ejd,f�d-ed.f�d/ejf�d0ej#f�d1e$f�d
efd-ed.fd2e$d3fd4efd5ejzd6zejzd7ze%ej&eeee��d3fd5ejzd8ze%ej&eeee$��d9fd5ejzd:ze%ej&ee$��d9fd;ej&d3fgd
efd5ejzd:ze%ej&ee$��d9fd<ejzd=zej&d3fgd
efd<ejzd>zejfd?ejzd@zejfdej
fdejd
fdAe$fd"efdBe$dCfd2e$dDfg	dEejfdejdFfdGejd3fdHejfgdIejd3fdJej'dKfd+ejd3fgdLefdJej'dKfd-ed3fgdMej'd3fdNejzdOzej'd3fd�e
��ej'd3fdPej'd3fdQej'd3fdRej'd3fdSe%eej'��d3fgdT�Z(dUS)Vrzk
    A Haskell lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 0.8
    �Haskellzhttps://www.haskell.org/�haskell�hsz*.hsztext/x-haskell)�case�class�datar�deriving�do�else�family�if�in�
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�DEL�\s+�!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$�\{-�comment�
\bimport\b�import�
\bmodule\b�module�	\berror\b�\b(%s)(?!\')\b�|z'[^\\]'z^[_z][\w\']*z'?[_z][\w']*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�"�string�\[\]�\(\)�[][(),;`{}]�\)�#pop�qualified\bz([z][\w.]*)(\s+)(as)(\s+)([z][\w.]*)z][\w.]*)(\s+)(hiding)(\s+)(\()�funclistz][\w.]*)(\s+)(\()�[\w.]+�[z][\w.]*z]\w*z(_[\w\']+|[z	][\w\']*)�,�\(�rfrf�#pop:2�[^-{}]+�#push�-\}�[-{}]�[^\\']'�\\�escape�[^\\"]+�[abfnrtv"\'&\\]z\^[][z@^_]�o[0-7]+�x[\da-fA-F]+�\d+�	(\s+)(\\)��rootrRrTrfrPr]r_rsN))�__name__�
__module__�__qualname__�__doc__�name�url�aliases�	filenames�	mimetypes�reserved�asciirr�Single�	Multiliner�Reservedr�	Exception�joinr�Char�uni�Ll�Function�Lu�Typer
�Wordr�Float�Bin�Oct�Hex�Integer�Builtinrr�	Namespace�Escape�tokens���9/usr/lib/python3/dist-packages/pygments/lexers/haskell.pyrrsq��������
�D�
$�C��$��G���I�!�"�I�F�H�
9�E�*
�
�Z� �*
�2�7�>�B�	*
�
�W�&�	�2�*
��G�,�h�7�*
��G�,�h�7�*
��4�>�*�*
�����(�!3�!3�
3�W�5E�F�*
����%�*
��c�f�_�{�
*�D�M�:�*
��s�v�
�
�
*�D�1�*
����
�+�
-�w�|�<�*
� �s�v�
��
+�W�\�:�!*
�"�w�|�,�#*
�$�g�l�+�%*
�&,�W�\�:�'*
�*/��
�>�+*
�,<�X�]�K�-*
�.*�7�<�8�/*
�0)�(�3�1*
�4E�f�l�S�5*
�6(�)/��
7�7*
�:.�v�|�<�;*
�<<�V�\�J�=*
�>%�f�j�1�?*
�@'��
�3�A*
�B1�&�*�=�C*
�D�6�>�*�E*
�H�6�;��,�I*
�J�6�8�$�K*
�N�g�l�#�O*
�P�d�l�#�Q*
�R�[�)�S*
�Z�Z� �
�6�8�$�
�K��(�
�W�%�
�S�V�^�9�
9�C�F�
B�[�
P�
�X�d�n�j�'�:�t�
L�
L�f�
V��S�V�^�?�
?�
�X�d�n�j�'�:�{�
S�
S�U_�
a��S�V�^�2�
2�
�X�d�n�j�+�
>�
>�
�
L�����/�#
�(�Z� �
�S�V�^�2�
2�
�X�d�n�j�+�
>�
>�
�
L�
�C�F�]�Z�
'����@�	
��Z� �
�C�F�]�W�
$�g�l�3�
�c�f�
$�|�
3�T�]�C�
1�7�>�B�
�W�&�	�2�
�;��
(�(�3�
�K�!9�:�
�K��*�
� ��*�+�
�W�&��0�
�W�&��/�
�w�(�)�
����f�-�
�F�M�8�,�
�&�+�v�&�	
��� �
�F�M�8�,�
�&�&�!�
� ����7�
���
��
(�&�-��@�
�X�X�e�_�_�f�m�V�4�
����/�
�f�m�V�4�
�V�]�F�+�
�8�8�J��
�>�>��G�
�Kn�n�F�F�Fr�rc	��eZdZdZdZdgZdgZgZddee	e
ej��fdee	e
ej��fdee	e
ej��fe
giZd	S)
rzY
    A Haskell lexer with support for Hspec constructs.

    .. versionadded:: 2.4.0
    �Hspec�hspecz*Spec.hsr{z(it)(\s*)("[^"]*")z(describe)(\s*)("[^"]*")z(context)(\s*)("[^"]*")N)r|r}r~rr�r�r�r�rrrr�Docr	r�r�r�r�rr�s����������D��i�G���I��I�	�
"�H�H�T�:�v�z�$J�$J�K�
(�(�(�4��V�Z�*P�*P�Q�
'���$�
�F�J�)O�)O�P��	
��F�F�Fr�rc�2�eZdZdZdZdZddgZdgZdgZdZ	d	Z
d
Zdd�e��ze
eej��fd
e
eej��fde
eej��fde
eej��dfde
eejeeje��fdd�e	��zejfde
eje��dfdejfdefdejfdejfdejfdejfdejfdejfdejdfded fd!efd"efgd#efd$e
ej ee!��d%fd&ej d'fgd#efd(ejfd)ejfd*ejfd+ejdfd,e!fd-efd.e!d/fd0e!d1fg	d2ejfd+ejd3fd4ejd'fd5ejfgd6ejfd7ej"d8fdejd'fgd9efd7ej"d8fded'fgd:ej"d'fd;ej"d'fd�e
��ej"d'fd<ej"d'fd=ej"d'fdej"d'fd>e
eej"��d'fgd?�Z#d@S)Arz�
    A lexer for the dependently typed programming language Idris.

    Based on the Haskell and Agda Lexer.

    .. versionadded:: 2.0
    �Idriszhttps://www.idris-lang.org/�idris�idrz*.idrztext/x-idris)3r$r%r&r�usingr(r)r+r,r-r.�rewrite�auto�	namespace�codata�mutual�private�public�abstract�total�partial�	interface�implementation�export�covering�constructorr/�proofr1r2�staticr4r5�with�pattern�term�syntax�prefix�	postulate�
parameters�record�dsl�
impossible�implicit�tactics�intros�intro�compute�refine�exact�trivialr6)
�lib�link�flagr�hide�freeze�accessr�logging�dynamicr��error_handlers�languagez^(\s*)(%%(%s))rWz((\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$z(\s*)(\|{3}.*?)$z
(\s*)(\{-)rP�^(\s*)([^\s(){}]+)(\s*)(:)(\s*)rV�(import|module)(\s+)rT�('')?[A-Z][\w\']*z[a-z][\w\']*z(<-|::|->|=>|=)z"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)�\d+[eE][+-]?\d+�\d+\.\d+([eE][+-]?\d+)?�0[xX][\da-fA-F]+rxr\r]r^r_�
[^\s(){}]+�\s+?rM�([A-Z][\w.]*)(\s+)(\()rf�[A-Z][\w.]*rd�[A-Z]\w*�(_[\w\']+|[a-z][\w\']*)z--.*$rOrir[rjrkrcrlrmrnrorpz[^\\']rrrsrtru�\^[][A-Z@^_]rvrwry)r{rTrfrPr]r_rsN)$r|r}r~rr�r�r�r�r�r�r��
directivesr�rrrr�rr�r�rr�r
r�r�rrr�r�r�rr�r�rr�r�r�r�r�rr�s5���������D�
'�C����G��	�I�� �I�W�H�
9�E�
Y�J�����*�!5�!5�
5�
�X�j�'�"2�
3�
3�
5�
8�(�(�:�w�~�:^�:^�_�
 �(�(�:�w�~�"F�"F�G�
�H�H�Z��1B�C�C�Y�O�
/�
�X�j�$�-��X�]�J�
W�
W�
Y�����(�!3�!3�
3�W�5E�F�
$�h�h�w�/?��&L�&L�h�W�
!�7�<�0�
�d�#�
���/�
2�H�M�B�
���.�
'���6�
 �&�*�-�
�V�^�$�
�6�;��,�
�6�8�$�
�D�!�
�j�!�7
�<�Z� �
&�
�X�d�n�j�+�
>�
>�
�
L�
�T�^�V�4�	
��Z� �
�'�,�'�
'���7�
�w�~�&�
�W�&�	�2�
�;��
(�(�3�
�K�!9�:�
�K��*�
� ��*�+�
�W�&��0�
�W�&��/�
�w�(�)�
����$�
�F�M�8�,�
�&�+�v�&�	
��� �
�F�M�8�,�
�&�&�!�
� ����7�
�f�m�V�4�
�X�X�e�_�_�f�m�V�4�
����/�
�f�m�V�4�
�V�]�F�+�
�8�8�J��
�>�>��G�
�IM�M�F�F�Fr�rc�V�eZdZdZdZdZdgZdgZdgZdZ	de
eej
eeje��fd	ejfd
ejdfdejd
fdd�e	��zejfde
eje��dfdejfdefdejfdejfdejfdejfdejfdejdfdedfdefdefgdejfdejd fd!ejd"fd#ejfgd
ejdfd$ed"fd%efgej dej dej dej d&d'�Z d(S))rz|
    For the Agda dependently typed functional programming language and
    proof assistant.

    .. versionadded:: 2.0
    �Agdaz.http://wiki.portal.chalmers.se/agda/pmwiki.php�agdaz*.agdaztext/x-agda))r�r��coinductiver�r&r(zeta-equality�field�forall�hidingr,�	inductive�infix�infixl�infixrr.�interleavedr/�macror�zno-eta-equality�open�overlapr�r��	primitiver��quote�	quoteTermr��renamingr�r��tactic�unquote�unquoteDecl�
unquoteDefr��variabler4r�r�rNrOrPz\{!�holerVrWr�rTz\b(Set|Prop)[\u2080-\u2089]*\bz
(\(|\)|\{|\})z((\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)r�r�r�rxr\r]r^r_r�r�z[^!{}]+rnz!\}rdz[!{}]z[a-zA-Z][\w.\']*z	[\W0-9_]+rs)r{r�rTrPr]r_rsN)!r|r}r~rr�r�r�r�r�r�rrrr�r
r�rr�r��	Directiver�rr�r�rr�r�r�rr�rrr�r�r�r�rr#s����������D�
:�C��h�G��
�I���I��H�0�
�X�j�$�-���m�Z�1�1�
2�2�7�>�B�
�W�&�	�2�
�W�&��/�����(�!3�!3�
3�W�5E�F�
$�h�h�w�/?��&L�&L�
�
�
.���=�
�x�(�
8�(�-�H�
���.�
'���6�
 �&�*�-�
�V�^�$�
�6�;��,�
�6�8�$�
�D�!�
�j�!�9
�@��*�+�
�W�&��0�
�W�&��/�
�w�(�)�
��W�&�	�2�
 �$��/�
�4� �
�
 �&�y�1�!�(��5��%�h�/��%�h�/�]/�/�F�F�Fr�rc�\�eZdZdZdZddgZdgZdgZdZdZ	d	e
fd
ejfdej
dfd
ejdfdejdfdejfdd�e��zejfdejfdefdejfdejfdejfdejfdefdejfdejfdejfdejfdejfd 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(fdBe e
ej"��d(fgdC�Z#hdD�Z$dE�Z%dFS)Grzs
    FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 2.0
    �Cryptol�cryptol�cryz*.cryztext/x-cryptol)�Arith�Bit�Cmp�False�Inf�Truer)r��extern�finr+rR�inf�lg2�max�minrTr0�pragma�propertyr2r3r4�widthr6rM�//.*$�/\*rPrQrRrSrTrUrVrWz^[_a-z][\w\']*z'?[_a-z][\w']*r�rXrYrZr[r�r�z0[oO][0-7]+r�rxr\r]r^r_r`rarbrcrdrez(([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)z#([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()rfr�rgr�r�r�rirjrkrl�[^/*]+rn�\*/�[*/]rqrrrsrtrur�rvrwryrz>�<<�>>�<<<�>>>�par�reg�seqr��tail�const�error�split�tracer�ASSERT�length�reverse�	transpose�	undefinedc#�K�dg}tj|||��D]1\}}}|tur||jvr|tj|fV��*|||fV��2dS)Nr{)r�get_tokens_unprocessedr�EXTRA_KEYWORDSr�)�self�text�stack�index�token�values      r�r'z#CryptolLexer.get_tokens_unprocessed�s���������1�$��e�D�D�	*�	*��E�5�%���}�}��$�*=�!=�!=��T�\�5�0�0�0�0�0��U�E�)�)�)�)�)�	*�	*r�N)&r|r}r~rr�r�r�r�r�r�rrr�r�rr�rr�r�r�r�r
r�rr�r�r�r�rr�r�rrr�r�r�r(r'r�r�r�rrms���������
�D��%� �G��	�I�!�"�I�2�H�
9�E��Z� �
�w�~�&�
�W�&�	�2��G�,�h�7�
�G�,�h�7�
�4�>�*�
����(�!3�!3�
3�W�5E�F�
��
�.�
��%�
!�7�<�0�
.��
�>�
;�X�]�K�
)�7�<�8�
(�(�3�
���.�
'���6�
�V�Z�(�
 �&�*�-�
�V�^�$�
�6�;��,�
�6�8�$�
�g�l�#�
�d�l�#�
�[�)�A!
�H�Z� �
�6�8�$�
�K��(�
�W�%�
8�
�X�d�n�j�'�:�t�
L�
L�f�
V�4�
�X�d�n�j�'�:�{�
S�
S�U_�
a�'�
�X�d�n�j�+�
>�
>�
�
L�����/�#
�(�Z� �
&�
�X�d�n�j�+�
>�
>�
�
L�
�T�^�V�4�	
��Z� �
�'�,�'�
'���7��;��
(�(�3�
�K�!9�:�
�K��*�
���)�*�
�W�&��0�
�W�&��/�
�g�'�(�
����f�-�
�F�M�8�,�
�&�+�v�&�	
��� �
�F�M�8�,�
�&�&�!�
� ����7�
�f�m�V�4�
�X�X�e�_�_�f�m�V�4�
����/�
�f�m�V�4�
�V�]�F�+�
�8�8�J��
�>�>��G�
�wd�d�F�L���N�
*�*�*�*�*r�rc�>�eZdZdZejd��Zd�Zd�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)c�8�||_tj|fi|��dS)N)�	baselexerr�__init__)r)r2�optionss   r�r3zLiterateLexer.__init__s'��"���
��t�'�'�w�'�'�'�'�'r�c	#�K�|j�d��}|�"|���dd�dvrdpd}d}g}|dkr�tj|��D]�}|���}|j�|��}|r^|�t|��dtj|�d��fgf��||�d��z
}��|�t|��dt|fgf�����n7dd	l
m}|di|j��}	d}
d}tj|��D]�}|���}|
r5|����d
��rd}
||z
}�G||z
}�M|����d��rNd}
||z
}|�t|��t!|	�|����f��d}��||z
}��|�t|��t!|	�|����f��t%||j�|����Ed{V��dS)
N�litstyler�z%\�latex�bird��)�TexLexerz
\end{code}z\begin{code}r�)r4�get�lstripr
�finditer�group�bird_re�match�append�lenr�Specialr�pygments.lexers.markupr<�
startswith�listr'rr2)r)r*�style�code�
insertionsrB�line�mr<�lxlexer�	codelinesr8s            r�r'z$LiterateLexer.get_tokens_unprocessed	s������� � ��,�,���=��[�[�]�]�1�Q�3�'�5�0�=�g�G��E����
��F�?�?� �)�$�/�/�
F�
F���{�{�}�}���L�&�&�t�,�,���F��%�%�s�4�y�y�)*�G�O�Q�W�W�Q�Z�Z�(H�'I�'K�L�L�L��A�G�G�A�J�J�&�D�D��%�%�s�4�y�y�A�t�T�?�2C�&D�E�E�E�E�
F�
8�7�7�7�7�7��h�.�.���.�.�G��I��E� �)�$�/�/�
"�
"���{�{�}�}���
"��{�{�}�}�/�/�
�>�>�%�$%�	���
���������[�[�]�]�-�-�o�>�>�"� !�I��T�M�E��%�%�s�4�y�y�'+�G�,J�,J�5�,Q�,Q�'R�'R�'T�U�U�U��E�E��T�M�E�E����s�4�y�y�#�G�$B�$B�5�$I�$I�J�J�L�
M�
M�
M� ��T�^�-R�-R�SW�-X�-X�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Yr�N)	r|r}r~r�re�compilerAr3r'r�r�r�r0r0�sU������
�
��b�j�+�,�,�G�(�(�(�*Z�*Z�*Z�*Z�*Zr�r0c�0�eZdZdZdZgd�ZdgZdgZd�ZdS)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)zliterate-haskell�lhaskell�lhsz*.lhsztext/x-literate-haskellc�D�tdi|��}tj||fi|��dS�Nr�)rr0r3�r)r4�hslexers   r�r3zLiterateHaskellLexer.__init__Hs6���)�)��)�)����t�W�8�8��8�8�8�8�8r�N�	r|r}r~rr�r�r�r�r3r�r�r�rr6sN���������D�5�5�5�G��	�I�*�+�I�9�9�9�9�9r�rc�0�eZdZdZdZgd�ZdgZdgZd�ZdS)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 Idris)zliterate-idris�lidris�lidrz*.lidrztext/x-literate-idrisc�D�tdi|��}tj||fi|��dSrV)rr0r3rWs   r�r3zLiterateIdrisLexer.__init___s6���'�'�w�'�'����t�W�8�8��8�8�8�8�8r�NrYr�r�r�rrMsN���������D�2�2�2�G��
�I�(�)�I�9�9�9�9�9r�rc�0�eZdZdZdZddgZdgZdgZd�ZdS)	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 Agdaz
literate-agda�lagdaz*.lagdaztext/x-literate-agdac�H�tdi|��}tj||fddi|��dS)Nr6r8r�)rr0r3)r)r4�	agdalexers   r�r3zLiterateAgdaLexer.__init__vs;���(�(��(�(�	���t�Y�L�L��L�G�L�L�L�L�Lr�NrYr�r�r�rrdsR���������D���(�G���I�'�(�I�M�M�M�M�Mr�rc�0�eZdZdZdZgd�ZdgZdgZd�ZdS)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 Cryptol)zliterate-cryptol�lcryptol�lcryz*.lcryztext/x-literate-cryptolc�D�tdi|��}tj||fi|��dSrV)rr0r3)r)r4�crylexers   r�r3zLiterateCryptolLexer.__init__�s6���*�*�'�*�*����t�X�9�9��9�9�9�9�9r�NrYr�r�r�rr{sN���������D�6�6�6�G��
�I�*�+�I�:�:�:�:�:r�rc��eZdZdZdZdZdgZddgZdgZgd�Z	gd	�Z
gd
�Zgd�ZdZ
d
e
zdzZdZejZejZejZed��dezedfdeeee��dfdeeee��dfdd�e
��zdzeeee��dfdeeeeeej��fdeeeejeeeeeej�	�	fde
zdzeeeeeej��fde
zdzeeeeeeeej��fdd�e��zezejfdd�e	��zezefdd�e��zezej fdezefd eeje��fd!eeje��fd"e
zdzeeje��fd#ej!fd$e"j#d%fe
d&ze$fd'e$fd(e%fd)e&j'fd*e&j(fd+e&j)fd,e"j*d-fd.e"j#d/fgd0efed��gd1e%d2fed��gd3ed4fed5��gd6ed2fd3ed4fd7efd8eeee��fed5��ged��dd�e��zezefd9d�e	��zezd:zed2fd;ezefd<efd#ej!fd eeje��fd=eeje��fd>efe+d2��g
d?eee,j-��fd@efdAe,j.dBfdCe,j/fgdDe,j.fdAe,j.dEfdFe,j.d2fdGe,j.fgdHe"j#fdIe"j0fd.e"j#d2fgdJe"j#fedK��dLe"j#d2fgdMe"j*fedK��dNe"j*d2fgdOe"j0fdPe"j0fdQe"j0fdRe"j0fgdS�Z1dTS)UrzA
    Lexer for the Koka language.

    .. versionadded:: 1.6
    �Kokaz/https://koka-lang.github.io/koka/doc/index.html�kokaz*.kkz*.kkiztext/x-koka)"r�r�r�r3�cotype�rectype�alias�struct�con�fun�function�val�var�externalr+r2r)�elif�returnrBr�r�r�rTrR�asr�inline�rec�try�yield�enumr�r.)r3rjrkrlrmr{)r��exists�somer�)
�for�while�repeat�foreachzforeach-indexedr�catch�finally�cs�js�file�ref�assignedz[$%&*+@!/\\^~=.:\-?|<>]+z(?!�)z	(?![\w/])�
whitespacez::?r3z(alias)(\s+)([a-z]\w*)?�
alias-typez(struct)(\s+)([a-z]\w*)?�struct-typez(%s)rWz(\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]+)?z0[xX][0-9a-fA-F]+z[0-9]+r\�charr^r_�=z(?=\((?!,*\)))rdz[(\[<]�type-nested�type-contentz[)\]>]riz([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*)(#.*)$rMrrPrrrnrrz[^"]+z""z	[^\\"\n]+�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})r{r�r�r3r�r�r�rPr�r_r�r�N)2r|r}r~rr�r�r�r�r��keywords�typeStartKeywords�typekeywords�builtin�symbols�	sboundary�boundaryr�	Attribute�	tokenType�Class�tokenTypeDefr�Emph�tokenConstructorrrrrr�r�r�r��Pseudo�Variabler�Doubler
rrr�r�r�r�rr�Preprocr�r�r�r�r�r�r�rr�s����������D�
;�C��h�G���!�I���I�
�
�
�H� ����
���L�
���G�*�G����#�%�I��H���I��:�L��|��

�G�L�!�!��i�
��F�3�
'���'�:�|�)T�)T�
�
�
(�(�(�7�J��*U�*U�
�
�����!2�3�3�3�
 �!�"*�(�7�J��"M�"M�
�
�N�
�X�g�z�7�J���
O�
O�
Q�+��X�g�z�4�>�:�w�PZ��z�4�>�;�;�
<�%�'.�/�1:�;�
�X�g�z�7�J��
�
N�
N�
P� �")�*�,5�6�
�X�g�z�7�J���UY�Ub�
c�
c�
e�
�s�x�x��-�-�
-��
8�'�,�G�
�s�x�x��)�)�
)�H�
4�g�>�
�s�x�x��(�(�
(�8�
3�W�^�D�
�)�
+�W�5�+�
�X�d�n�&6�
7�
7�
9�
*�H�H�T�^�T�,J�,J�K�
&��
0�9�
<�
�X�d�n�d�
+�
+�
-�
�d�m�$��F�M�;�/��|�
#�X�.�
�8��
�k�*�2�6�<�@�
!�6�:�.�
���'�
�6�;��'�
�6�=�(�+�u;
�~�7�O��G�F�O�O�
���V�4��G�F�O�O�
��	�=�1��G�N�#�#�
��	�6�*�
�	�=�1�
�9��
'�
�X�d�J�	�
2�
2�
4��G�N�#�#�

�
�G�L�!�!��s�x�x��-�-�
-��
8�'�B�
�3�8�8�H�-�-�
-��
8�4�
?�
�f�
��(�
"�I�.�%�i�0�
�i�(�)�
*�
�X�d�n�i�
0�
0�
2�
*�
�X�d�n�i�
0�
0�
2��Y�'�
�G�F�O�O�/
�8�x�x�
�G�O�D�D�E�
�Z� �
�W�&�	�2�
�w�~�&�	
���)�*�
�W�&��0�
�W�&��/�
�g�'�(�	
��v�}�%�
�F�M�"�
�6�=�&�)�
��6�=�)��G�%�&�&�
�v�}�f�-�
��F�K�(��G�%�&�&�
���V�,�
��f�m�,�
!�6�=�1�
!�6�=�1�
!�6�=�1�
�cX�X�F�F�Fr�r)%rrP�pygments.lexerrrrrrrr	r
�pygments.tokenrrr
rrrrrrr�pygmentsrr��__all__rrrrrr0rrrrrr�r�r��<module>r�s0����
�	�	�	�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�%�%�%�%�%�%�0�0�0��
B�B�B�B�B�:�B�B�B�J���������,m�m�m�m�m��m�m�m�`G�G�G�G�G�
�G�G�G�TF*�F*�F*�F*�F*�:�F*�F*�F*�R=Z�=Z�=Z�=Z�=Z�E�=Z�=Z�=Z�@9�9�9�9�9�=�9�9�9�.9�9�9�9�9��9�9�9�.M�M�M�M�M�
�M�M�M�.:�:�:�:�:�=�:�:�:�.U�U�U�U�U�
�U�U�U�U�Ur�