File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/haskell.cpython-38.pyc
U
6�\5{ � @ s( d Z ddlZddlmZmZmZmZmZmZ ddl m
Z
mZmZm
Z
mZmZmZmZmZ ddlmZ dddd d
ddd
dg Ze�d�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd � d e�ZG dd� de�ZG dd
� d
e�ZG dd� de�ZG dd� de�Z G dd
� d
e�Z!G dd� de�Z"dS )z�
pygments.lexers.haskell
~~~~~~~~~~~~~~~~~~~~~~~
Lexers for Haskell and related languages.
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�Lexer�
RegexLexer�bygroups�
do_insertions�default�include) �Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic)� unistring�HaskellLexer�
IdrisLexer� AgdaLexer�CryptolLexer�LiterateHaskellLexer�LiterateIdrisLexer�LiterateAgdaLexer�LiterateCryptolLexer� KokaLexerz.*?
c @ sF e Zd ZdZdZddgZdgZdgZej ej
B ZdZdZ
d efd
ejfdejdfd
ejdfdejdfdejfdd�e� ejfdejfdej d ejfdej d efdej d ejfdej d ejfdejfdejfdejfdejfdejfd 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'd1fd2efd3ej d4 ej d5 e(ej)eeee�d1fd3ej d6 e(ej)eeee'�d7fd3ej d8 e(ej)ee'�d7fd9ej)d1fgd efd3ej d8 e(ej)ee'�d7fd:ej d; ej)d1fgd efd:ej d< ejfd=ej d> ejfd
ejfdejdfd?e'fd efd@e'dAfd0e'dBfg dCejfdejdDfdEejd1fdFejfgdGejd1fdHej*dIfd)ejd1fgdJefdHej*dIfd+ed1fgdKej*d1fdLej dM ej*d1fd�e
�ej*d1fdNej*d1fdOej*d1fdPej*d1fdQej*d1fgdR�Z+dSS )Tr zk
A Haskell lexer based on the lexemes defined in the Haskell 98 Report.
.. versionadded:: 0.8
ZHaskellZhaskellZhsz*.hsztext/x-haskell)�case�class�datar Zderiving�do�elseZfamily�if�in�
infix[lr]?�instance�let�newtype�of�then�type�where�_�ZNULZSOHz[SE]TXZEOTZENQZACKZBELZBSZHTZLFZVTZFFZCRzS[OI]ZDLEzDC[1-4]ZNAKZSYNZETBZCANZEMZSUBZESCz[FGRU]SZSPZDEL�\s+�!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$�\{-�comment�
\bimport\b�import�
\bmodule\b�module� \berror\b�\b(%s)(?!\')\b�|z'[^\\]'z^[_z][\w\']*z'?[_z][\w']*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\']*)�,�\(�rE rE �#pop:2�[^-{}]+�#push�-\}�[-{}]�[^\\']'�\\�escape�[^\\"]+�[abfnrtv"\'&\\]z\^[][z@^_]�o[0-7]+�x[\da-fA-F]+�\d+�\s+\\��rootr1 r3 rE r/ r<