U
    luf6  ã                   @   sZ   d Z ddlmZmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZ dgZG dd„ deƒZdS )z÷
    pygments.lexers.elpi
    ~~~~~~~~~~~~~~~~~~~~

    Lexer for the `Elpi <http://github.com/LPCIC/elpi>`_ programming language.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚbygroupsÚinclude)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ	ElpiLexerc                   @   sø  e Zd ZdZdZdZdgZdgZdgZdZ	dZ
d	Zd
Zd e¡Zd e	e
ee¡Zd ee	e
e¡Zd e	e
ee¡Zd e
ee	eeee¡ZdZd ee¡Zd eee¡Zedƒgedƒdeejejejƒdfdeejejƒdfd e¡eejejej ƒdfd e¡eejejej ƒdfd e¡eejejej ƒdfd e¡eejejej ƒdfdeejejejƒdfd e¡eejejeƒfd  e¡eejejeƒfd!eejejej!eƒfd" e¡eejejej ƒd#fd$ e¡ej!fd% e¡ej!fd&ej!fd' e¡ejfeefd(ejfd)ejdfd*ejd+fd,ejd-fd.e"d/fd0ed1fd2ed3fd4e#j$fd5e#j%fd6e&fgd7e'fd8e'd9fd:ejfgd;e'd<fd=e'fgd>e#j$fd?ed<fgd@eej(ejƒdfdAej(feej(fdBej(fdCed<fedƒgdDedEfedƒgdFejfdGejfdHedIfedƒgdJejdKfdCed<fedƒgd@eej(ejƒdfdAej(feej(fdBej(fdLed<fdCedIfedƒgdMejfd*ejd<fgdNejfd,ejd<fgdOejfd)ejd<fgd.e"dPfdQe"d<fdR e¡eeej!ƒfdSefdTefgd0edPfdUed<fedƒgd2e&dPfd?e&d<fedƒgdVœZ)dWS )Xr   zN
    Lexer for the Elpi programming language.

    .. versionadded:: 2.11
    ZElpizhttp://github.com/LPCIC/elpiÚelpiz*.elpiztext/x-elpiz[a-z]z[A-Z]z[0-9]z([+*^?/<>`'@#~=&!])z({}|-|\$|_)z({}|{}|{}|{})z({}*(\.({}|{}){}*)*)z({}|{}|{}|{}|:)z({}{}*|{}{}|{}{}*|_{}+)zß(,|<=>|->|:-|;|\?-|->|&|=>|\bas\b|\buvar\b|<|=<|=|==|>=|>|\bi<|\bi=<|\bi>=|\bi>|\bis\b|\br<|\br=<|\br>=|\br>|\bs<|\bs=<|\bs>=|\bs>|@|::|\[\]|`->|`:|`:=|\^|-|\+|\bi-|\bi\+|r-|r\+|/|\*|\bdiv\b|\bi\*|\bmod\b|\br\*|~|\bi~|\br~)z\(({}|{})\)z
({}|{}|{})ú_elpi-commentz#(:before|:after|:if|:name)(\s*)(\")úelpi-stringz(:index)(\s*\()úelpi-indexing-exprz\b(external pred|pred)(\s+)({})úelpi-pred-itemz)\b(external type|type)(\s+)(({}(,\s*)?)+)ú	elpi-typez\b(kind)(\s+)(({}|,)+)z\b(typeabbrev)(\s+)({})z\b(accumulate)(\s+)(\")z'\b(accumulate|namespace|local)(\s+)({})z\b(shorten)(\s+)({}\.)z-\b(pi|sigma)(\s+)([a-zA-Z][A-Za-z0-9_ ]*)(\\)z \b(constraint)(\s+)(({}(\s+)?)+)úelpi-chr-rule-startz(?=[A-Z_]){}z(?=[a-z_]){}\\Ú_z({}|!|=>|;)z\[|\]|\||=>ú"ú`ú
elpi-btickz\'ú	elpi-tickz\{\{ú
elpi-quotez\{[^\{]ú
elpi-spillz\(úelpi-in-parensz\d[\d_]*z(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)z[\+\*\-/\^\.]z	%[^\n]*\nz/\*úelpi-multiline-commentz\s+z\*/z#popÚ.z[0-9 _]+z\)z(ctype\s+)(\")z->z\(|\)z\.z\{úelpi-chr-rulez\brule\bz\\z\}z#pop:2z[io]:ú
elpi-ctypeú,z[^` ]+z[^\' ]+z[^\"]+z#pushz\}\}z(lp:)((?=[A-Z_]){})z[^l\}]+zl|\}z\}[^\}])Úrootr   r   r   r   r   r   r   r   r    r   r   r   r   r   r   N)*Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesZlcase_reZucase_reZdigit_reZ	schar2_reÚformatZschar_reZ	idchar_reZidcharstarns_reZsymbchar_reZconstant_reZ	symbol_reZ	escape_reZconst_sym_rer   r   r   ZModer   Ú
Whitespacer
   ÚDoubleZDeclarationr	   ZFunctionÚVariabler   r   ZIntegerZFloatr   r   ÚTypeÚtokens© r2   r2   ú8/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/elpi.pyr      s  
ÿþÿþþþþþÿÿÿþ


Ñ2ýþþú	þü
ýù

þ
þ
þûýý…N)r&   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   Ú__all__r   r2   r2   r2   r3   Ú<module>   s   
(