�
|�e� � �p � d Z ddlmZmZmZmZmZ ddlmZm Z m
Z
mZmZm
Z
mZmZmZmZ dgZ G d� de� Zy)z�
pygments.lexers.clean
~~~~~~~~~~~~~~~~~~~~~
Lexer for the Clean language.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�ExtendedRegexLexer�words�default�include�bygroups)
�Comment�Error�Keyword�Literal�Name�Number�Operator�Punctuation�String�
Whitespace�
CleanLexerc
�D � e Zd ZdZdZdZdgZddgZdZdZ d Z
d
ZdZdez Z
de
z Zd
Zdj! e
eeg� Zi d ed� ed� ed� ed� ed� ed� ed� ed� ed� g �ddefg�ddej* fdej, dfdej. dfg�ddej, dfdej, d fd!ej, fd"ej, fd#ej, fg�d eed$d$�%� efg�d ee d$d$�%� ej4 fd&ej4 d'fg�d' ed� eej8 dfg�dd( eee� d)fd*ez d+z eeeej8 ee� d,fg�d)d- eee� fd. eee� d/feej8 fd0 eeee� fdef ed� g�d1 ed� e
ej8 dfeej8 dfg�d,d2ez d3z eeeej8 � d4fd5ez d6z eeeej8 e� d7fd8ez d9z eeeej8 � d:fd;e
z dz ez d9z eeee� f ed� d< eee� fd=edf ed� g�d4d>edfd?ed@fd=edAf ed� g�d@d>efdBefdCedf ed� g�d7dDedfd?ed7fd=edAf ed� ed� g�d:d>edfdEedFfd=edAf ed� g�dFd>efdBefdGedf ed� g�ddHe jB fdIe"jF fdJe"jH fdKe"jJ fdLe"jL fdMe fdNe'jP dOfg�dPe'jP fdNe'jP dfdQe'jP fdRe)dfgdSe*fdTe*fgdUefdV eeej8 e� fge
efeefeejV feej8 fe
ej8 fgdW��Z,yX)Yr z�
Lexer for the general purpose, state-of-the-art, pure and lazy functional
programming language Clean.
.. versionadded: 2.2
�Cleanzhttp://clean.cs.ru.nl/Clean�cleanz*.iclz*.dcl)�case�ccall�class�codezcode inline�derive�export�foreign�generic�if�in�infix�infixl�infixr�instance�let�of� otherwise�special�stdcall�where�with)�implementation�
definition�systemz[a-z`][\w`]*z[A-Z`][\w`]*z[~@#$%\^?!+\-*<>\\/|&=:]+�_z[a-zA-Z_][a-zA-Z0-9_.`]+�|�root�comments�keywords�module�import�
whitespace�literals� operators�
delimiters�namesz\s+z//.*\nz/\*zcomments.inz/\*\*z\*\/�#popz#pushz[^*/]+z\*(?!/)�/z\b)�prefix�suffixz
\bmodule\bzmodule.namez\b(import)\b(\s*)z
import.modulez\b(from)\b(\s*)\b(z)\b(\s*)\b(import)\bzimport.whatz\b(qualified)\b(\s*)z
(\s*)\b(as)\b)r: �import.module.asz
(\s*)(,)(\s*)r> |