HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/pygments/lexers/__pycache__/haskell.cpython-312.pyc
�

|�e����n�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$y)z�
    pygments.lexers.haskell
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Haskell and related languages.

    :copyright: Copyright 2006-2023 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��eZdZdZdZdZddgZdgZdgZdZ	d	Z
gd
ef�dejf�dejd
f�dej df�dej df�dej$f�ddj'e	�zej f�dej*f�dej.zdzej0f�dej.zdzef�dej2zdzej4f�dej2zdzej4f�dej4f�dej4f�dej4f�dej0f�d ej8f�d!ej4f�d"ef�d#ej<f�d$ej<f�d%ej<f�d&ej<f�d'ej>f�d(ej@f�d)ejBf�d*ejDf�d+ej*d,f�d-ed.f�d/ej4f�d0ejFf�d1e$f�d
efd-ed.fd2e$d3fd4efd5ej2zd6zej2zd7ze%ejLeeee�d3fd5ej2zd8ze%ejLeeee$�d9fd5ej2zd:ze%ejLee$�d9fd;ejLd3fgd
efd5ej2zd:ze%ejLee$�d9fd<ej2zd=zejLd3fgd
efd<ej2zd>zej4fd?ej.zd@zej0fdejfdejd
fdAe$fd"efdBe$dCfd2e$dDfg	dEejfdejdFfdGejd3fdHejfgdIej*d3fdJejNdKfd+ej*d3fgdLefdJejNdKfd-ed3fgdMejNd3fdNej2zdOzejNd3fdj'e
�ejNd3fdPejNd3fdQejNd3fdRejNd3fdSe%eejN�d3fgdT�Z(yU)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.pyrrs����
�D�
$�C��$��G���I�!�"�I�F�H�
9�E�*
�
�Z� �*
�2�7�>�>�B�	*
�
�W�&�&�	�2�*
��G�,�,�h�7�*
��G�,�,�h�7�*
��4�>�>�*�*
�����(�!3�
3�W�5E�5E�F�*
�����%�*
��c�f�f�_�{�
*�D�M�M�:�*
��s�v�v�
�
�
*�D�1�*
�����
�+�
-�w�|�|�<�*
� �s�v�v�
��
+�W�\�\�:�!*
�"�w�|�|�,�#*
�$�g�l�l�+�%*
�&,�W�\�\�:�'*
�*/��
�
�>�+*
�,<�X�]�]�K�-*
�.*�7�<�<�8�/*
�0)�(�3�1*
�4E�f�l�l�S�5*
�6(�)/���
7�7*
�:.�v�|�|�<�;*
�<<�V�\�\�J�=*
�>%�f�j�j�1�?*
�@'��
�
�3�A*
�B1�&�*�*�=�C*
�D�6�>�>�*�E*
�H�6�;�;��,�I*
�J�6�8�$�K*
�N�g�l�l�#�O*
�P�d�l�l�#�Q*
�R�[�)�S*
�Z�Z� �
�6�8�$�
�K��(�
�W�%�
�S�V�V�^�9�
9�C�F�F�
B�[�
P�
�d�n�n�j�'�:�t�
L�f�
V��S�V�V�^�?�
?�
�d�n�n�j�'�:�{�
S�U_�
a��S�V�V�^�2�
2�
�d�n�n�j�+�
>�
�
L������/�#
�(�Z� �
�S�V�V�^�2�
2�
�d�n�n�j�+�
>�
�
L�
�C�F�F�]�Z�
'�����@�	
��Z� �
�C�F�F�]�W�
$�g�l�l�3�
�c�f�f�
$�|�
3�T�]�]�C�
1�7�>�>�B�
�W�&�&�	�2�
�;��
(�(�3�
�K�!9�:�
�K��*�
� ��*�*�+�
�W�&�&��0�
�W�&�&��/�
�w�(�(�)�
�����f�-�
�F�M�M�8�,�
�&�+�+�v�&�	
��� �
�F�M�M�8�,�
�&�&�!�
� �����7�
����
��
(�&�-�-��@�
�X�X�e�_�f�m�m�V�4�
�����/�
�f�m�m�V�4�
�V�]�]�F�+�
�8�J��
�
�>��G�
�Kn�Fr�rc	��eZdZdZdZdgZdgZgZddee	e
ej�fdee	e
ej�fdee	e
ej�fe
giZy	)
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�st����D��i�G���I��I�	�
"�H�T�:�v�z�z�$J�K�
(�(�4��V�Z�Z�*P�Q�
'��$�
�F�J�J�)O�P��	
��Fr�rc�Z�eZdZdZdZdZddgZdgZdgZdZ	d	Z
d
Zddje�ze
eej �fd
e
eej$�fde
eej$�fde
eej&�dfde
eej*eej.e�fddje	�zej fde
ej e�dfdej0fdefdej.fdej.fdej6fdej6fdej8fdej:fdej>dfded fd!efd"efgd#efd$e
ej@ee!�d%fd&ej@d'fgd#efd(ej0fd)ej*fd*ej$fd+ej&dfd,e!fd-efd.e!d/fd0e!d1fg	d2ej&fd+ej&d3fd4ej&d'fd5ej&fgd6ej>fd7ejDd8fdej>d'fgd9efd7ejDd8fded'fgd:ejDd'fd;ejDd'fdje
�ejDd'fd<ejDd'fd=ejDd'fdejDd'fd>e
eejD�d'fgd?�Z#y@)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�sA����D�
'�C����G��	�I�� �I�W�H�
9�E�
Y�J�����*�!5�
5�
�j�'�"2�"2�
3�
5�
8�(�:�w�~�~�:^�_�
 �(�:�w�~�~�"F�G�
�H�Z��1B�1B�C�Y�O�
/�
�j�$�-�-��X�]�]�J�
W�
Y�����(�!3�
3�W�5E�5E�F�
$�h�w�/?�/?��&L�h�W�
!�7�<�<�0�
�d�#�
����/�
2�H�M�M�B�
����.�
'����6�
 �&�*�*�-�
�V�^�^�$�
�6�;�;��,�
�6�8�$�
�D�!�
�j�!�7
�<�Z� �
&�
�d�n�n�j�+�
>�
�
L�
�T�^�^�V�4�	
��Z� �
�'�,�,�'�
'����7�
�w�~�~�&�
�W�&�&�	�2�
�;��
(�(�3�
�K�!9�:�
�K��*�
� ��*�*�+�
�W�&�&��0�
�W�&�&��/�
�w�(�(�)�
�����$�
�F�M�M�8�,�
�&�+�+�v�&�	
��� �
�F�M�M�8�,�
�&�&�!�
� �����7�
�f�m�m�V�4�
�X�X�e�_�f�m�m�V�4�
�����/�
�f�m�m�V�4�
�V�]�]�F�+�
�8�J��
�
�>��G�
�IM�Fr�rc��eZdZdZdZdZdgZdgZdgZdZ	de
eejeeje�fd	ej"fd
ej$dfdej&d
fddj)e	�zej,fde
ej,e�dfdej.fdefdejfdej2fdej2fdej4fdej6fdej:dfdedfdefdefgdej&fdej&d fd!ej&d"fd#ej&fgd
ej$dfd$ed"fd%efgej@dej@dej@dej@d&d'�Z y())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�
�j�$�-�-���m�m�Z�1�
2�2�7�>�>�B�
�W�&�&�	�2�
�W�&�&��/�����(�!3�
3�W�5E�5E�F�
$�h�w�/?�/?��&L�
�
�
.����=�
�x�(�
8�(�-�-�H�
����.�
'����6�
 �&�*�*�-�
�V�^�^�$�
�6�;�;��,�
�6�8�$�
�D�!�
�j�!�9
�@��*�*�+�
�W�&�&��0�
�W�&�&��/�
�w�(�(�)�
��W�&�&�	�2�
 �$��/�
�4� �
�
 �&�&�y�1�!�(�(��5��%�%�h�/��%�%�h�/�]/�Fr�rc���eZdZdZdZddgZdgZdgZdZdZ	d	e
fd
ejfdejdfd
ejdfdejdfdej"fddj%e�zejfdej&fdefdej(fdej&fdej,fdej(fdefdej0fdej0fdej2fdej4fdej6fd ej:d!fd"ed#fd$ej(fd%ej<fd&efgd	e
fd"ed#fd'ed(fd)efd*e ejBe
ee
e�d(fd+e ejBe
ee
e�d,fd-e ejBe
e�d,fd.ejBd(fgd	e
fd-e ejBe
e�d,fd/ejBd(fgd	e
fd0ej(fd1ej&fd2efdefd3ed4fd'ed5fgd6ejfdejd7fd8ejd(fd9ejfgd:ej:d(fd;ejDd<fd ej:d(fgd=efd;ejDd<fd"ed(fgd>ejDd(fd?ejDd(fdj%e	�ejDd(fd@ejDd(fdAejDd(fdejDd(fdBe e
ejD�d(fgdC�Z#hdD�Z$dE�Z%yF)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]9\}}}|tur$||jvr|tj|f���3|||f���;y�w)Nr{)r�get_tokens_unprocessedr�EXTRA_KEYWORDSr�)�self�text�stack�index�token�values      r�r'z#CryptolLexer.get_tokens_unprocessed�sd��������1�1�$��e�D�	*��E�5�%���}��$�*=�*=�!=��T�\�\�5�0�0��U�E�)�)�	*�s�AAN)&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�W�5E�5E�F�
��
�
�.�
��%�
!�7�<�<�0�
.��
�
�>�
;�X�]�]�K�
)�7�<�<�8�
(�(�3�
����.�
'����6�
�V�Z�Z�(�
 �&�*�*�-�
�V�^�^�$�
�6�;�;��,�
�6�8�$�
�g�l�l�#�
�d�l�l�#�
�[�)�A!
�H�Z� �
�6�8�$�
�K��(�
�W�%�
8�
�d�n�n�j�'�:�t�
L�f�
V�4�
�d�n�n�j�'�:�{�
S�U_�
a�'�
�d�n�n�j�+�
>�
�
L������/�#
�(�Z� �
&�
�d�n�n�j�+�
>�
�
L�
�T�^�^�V�4�	
��Z� �
�'�,�,�'�
'����7��;��
(�(�3�
�K�!9�:�
�K��*�
���)�)�*�
�W�&�&��0�
�W�&�&��/�
�g�'�'�(�
�����f�-�
�F�M�M�8�,�
�&�+�+�v�&�	
��� �
�F�M�M�8�,�
�&�&�!�
� �����7�
�f�m�m�V�4�
�X�X�e�_�f�m�m�V�4�
�����/�
�f�m�m�V�4�
�V�]�]�F�+�
�8�J��
�
�>��G�
�wd�F�L�N�
*r�rc�@�eZdZdZej
d�Zd�Zd�Zy)�
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�>�||_tj|fi|��y)N)�	baselexerr�__init__)r)r2�optionss   r�r3zLiterateLexer.__init__s��"���
���t�'�w�'r�c	#�K�|jjd�}|�|j�dddvxrdxsd}d}g}|dk(r�tj|�D]�}|j�}|jj|�}|rR|jt|�dtj|jd�fgf�||jd�z
}��|jt|�dt|fgf����ndd	l
m}|di|j��}	d}
d}tj|�D]�}|j�}|
r-|j�jd
�rd}
||z
}�<||z
}�B|j�jd�r>d}
||z
}|jt|�t!|	j#|��f�d}��||z
}��|jt|�t!|	j#|��f�t%||j&j#|��Ed{���y7��w)
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�'�5�0�=�g�G��E����
��F�?� �)�)�$�/�
F���{�{�}���L�L�&�&�t�,����%�%�s�4�y�)*�G�O�O�Q�W�W�Q�Z�(H�'I�'K�L��A�G�G�A�J�&�D��%�%�s�4�y�A�t�T�?�2C�&D�E�
F�
8��.����.�G��I��E� �)�)�$�/�
"���{�{�}����{�{�}�/�/�
�>�$%�	���
�������[�[�]�-�-�o�>� !�I��T�M�E��%�%�s�4�y�'+�G�,J�,J�5�,Q�'R�'T�U��E��T�M�E�
"� 
���s�4�y�#�G�$B�$B�5�$I�J�L�
M� ��T�^�^�-R�-R�SW�-X�Y�Y�Y�s�H6I�8H>�9IN)	r|r}r~r�re�compilerAr3r'r�r�r�r0r0�s%��
��b�j�j�+�,�G�(�*Zr�r0c�.�eZdZdZdZgd�ZdgZdgZd�Zy)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�H�tdi|��}tj||fi|��y�Nr�)rr0r3�r)r4�hslexers   r�r3zLiterateHaskellLexer.__init__Hs$���)��)�����t�W�8��8r�N�	r|r}r~rr�r�r�r�r3r�r�r�rr6s'����D�5�G��	�I�*�+�I�9r�rc�.�eZdZdZdZgd�ZdgZdgZd�Zy)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�H�tdi|��}tj||fi|��yrV)rr0r3rWs   r�r3zLiterateIdrisLexer.__init___s$���'�w�'�����t�W�8��8r�NrYr�r�r�rrMs'����D�2�G��
�I�(�)�I�9r�rc�.�eZdZdZdZddgZdgZdgZd�Zy)	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�L�tdi|��}tj||fddi|��y)Nr6r8r�)rr0r3)r)r4�	agdalexers   r�r3zLiterateAgdaLexer.__init__vs)���(��(�	����t�Y�L��L�G�Lr�NrYr�r�r�rrds-����D���(�G���I�'�(�I�Mr�rc�.�eZdZdZdZgd�ZdgZdgZd�Zy)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�H�tdi|��}tj||fi|��yrV)rr0r3)r)r4�crylexers   r�r3zLiterateCryptolLexer.__init__�s$���*�'�*�����t�X�9��9r�NrYr�r�r�rr{s'����D�6�G��
�I�*�+�I�:r�rc���eZdZdZdZdZdgZddgZdgZgd�Z	gd	�Z
gd
�Zgd�ZdZ
d
e
zdzZdZej"Zej&Zej,Zed�dezedfdeeee�dfdeeee�dfddj9e
�zdzeeee�dfdeeeeeej:�fdeeeej:eeeeeej:�	fde
zdzeeeeeej<�fde
zdzeeeeeeeej<�fddj9e�zezej>fddj9e	�zezefddj9e�zezej@fdezefd eej:e�fd!eej:e�fd"e
zdzeej:e�fd#ejBfd$e"jFd%fe
d&ze$fd'e$fd(e%fd)e&jNfd*e&jPfd+e&jRfd,e"jTd-fd.e"jFd/fgd0efed�gd1e%d2fed�gd3ed4fed5�gd6ed2fd3ed4fd7efd8eeee�fed5�ged�ddj9e�zezefd9dj9e	�zezd:zed2fd;ezefd<efd#ejBfd eej:e�fd=eej:e�fd>efe+d2�g
d?eee,jZ�fd@efdAe,j\dBfdCe,j^fgdDe,j\fdAe,j\dEfdFe,j\d2fdGe,j\fgdHe"jFfdIe"j`fd.e"jFd2fgdJe"jFfedK�dLe"jFd2fgdMe"jTfedK�dNe"jTd2fgdOe"j`fdPe"j`fdQe"j`fdRe"j`fgdS�Z1yT)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�sd����D�
;�C��h�G���!�I���I�
�H� ��
�L�
�G�*�G����#�%�I��H����I��:�:�L��|�|��

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

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