
    i                     x    d Z ddlmZ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ddlmZ  G d de          ZdS )z
    pygments.lexers.elpi
    ~~~~~~~~~~~~~~~~~~~~

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

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerbygroupsincludeusing)TextCommentOperatorKeywordNameStringNumberPunctuation	ElpiLexer)	RocqLexerc                     
   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Zde dZde
 de de de d	Zde de
 de de d	Zde
 de de de d	Zde e de
 e de e de dZdZde de dZde de de dZi d ed          gd ed          d eej        ej        ej                  dfd eej        ej        e          dfde d eej        ej        e j!                  d fd!e d eej        ej        e j!                  d"fd#e d$ eej        ej        e j!                  d%fd&e d' eej        ej        e j!                  d%fd(e d eej        ej        e j!                  d%fd) eej        ej        e j!                  d%fd* eej        ej        ej                  dfd+e d eej        ej        e          fd,e d- eej        ej        e          fd. eej        ej        e j"        e          fd/e d0 eej        ej        e j!                  d1fd2e e j"        fd3e d4e j"        fd5e j"        fde d6ej        feefd7ej        fd8ej        dfd9ej        d:fd;ej        d<fd=ed>fd?ed@fdAedBfdCe#j$        fdDe#j%        fdEe&fgddFe'fdGe'fdHej        fgddIe#j$        fdJedKfgd%dL eej(        ej                  dfdMej(        fdNej        feej(        fdOej(        fdPedKf ed          gd1dQedRf ed          gdRdSej        fdTej        fdUedVf ed          gd dWej        fdPedKfdXej        f edY          dJej        dKfdAej(        dZf ed           edZ          gd"eej(        fdPedKfdXej        fdMej        f edY          dJej        dKfdAej(        dZf ed           edZ          g	dYd[ eej        ej        ej                  d fd\ eej        ej        ej                  d"fgdZdMej(        feej(        f edY          dAej(        d]fdJej(        dKf ed          gd:d^ej        fd9ej        dKfgd<d_ej        fd;ej        dKfgdd`ej        fd8ej        dKfgd>daedKfdHej        fdb ee#e          dcfdde d ee#e j"                  fde e)e*          fgdc ed          daedKfgd@d?ed]fdfedKf ed          gdBdAed]f ed          dJedKfgiZ+dgS )hr   z2
    Lexer for the Elpi programming language.
    Elpizhttp://github.com/LPCIC/elpielpiz*.elpiztext/x-elpiz2.11z[a-z]z[A-Z]z[0-9]z([+*^?/<>`'@#~=&!])(z|-|\$|_)|)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)\)rootz_elpi-commentz#(:before|:after|:if|:name)(\s*)(\")zelpi-stringz(:index)(\s*)(\()zelpi-indexing-exprz\b(external pred|pred)(\s+)(zelpi-pred-itemz\b(func)(\s+)(zelpi-func-itemz\b(external type|type)(\s+)((z
(,\s*)?)+)z	elpi-typez\b(kind)(\s+)((z|,)+)z\b(typeabbrev)(\s+)(z\b(typeabbrev)(\s+)(\([^)]+\))z\b(accumulate)(\s+)(\")z$\b(accumulate|namespace|local)(\s+)(z\b(shorten)(\s+)(z\.)z-\b(pi|sigma)(\s+)([a-zA-Z][A-Za-z0-9_ ]*)(\\)z\b(constraint)(\s+)((z	(\s+)?)+)zelpi-chr-rule-startz
(?=[A-Z_])z(?=[a-z_])(z|_)\\_z|!|=>|;)z\[|\]|\||=>"`z
elpi-btickz\'z	elpi-tickz\{\{z
elpi-quotez\{[^\{]z
elpi-spillz\(zelpi-in-parensz\d[\d_]*z(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)z[\+\*\-/\^\.]z	%[^\n]*\nz5/(?:\\\n)?[*](?:[^*]|[*](?!(?:\\\n)?/))*[*](?:\\\n)?/z\s+z[0-9 _]+z\)z#popz(ctype\s+)(\")z->propz\(|\)z\.z\{zelpi-chr-rulez\brule\bz\\z\}z#pop:2z[io]:,z_elpi-inner-pred-funz_elpi-type-itemz(\()(\s*)(pred)z(\()(\s*)(func)z#pushz[^` ]+z[^\' ]+z[^\"]+z\}\}z(lp:)(\{\{)zelpi-quote-exitz(lp:)((?=[A-Z_])z((?!lp:|\}\}).)+z\}[^\}]N),__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedlcase_reucase_redigit_re	schar2_reschar_re	idchar_reidcharstarns_resymbchar_reconstant_re	symbol_re	escape_reconst_sym_rer   r   r
   Moder   
Whitespacer   Doubler   Declarationr   FunctionVariabler   IntegerFloatr	   r   Typer   r   tokens     Q/root/projects/qq-shell/venv/lib/python3.11/site-packages/pygments/lexers/elpi.pyr   r      s         D
(ChG
IIMHHH&I'I'''HAXAAAA8AAhAAAIP9PP8PPhPPPPPOExEE(EEXEEEEEKrxrrrhrrr)rU`rrenrrrK sI3{33Y333I>>>i>>)>>>L]GFOO
]
 	GO$$3XglDOV]CC "88GL$/;#W#W!#<\<<<Xg)4?DMJJ /|...Xg)4?DMJJ GlFFFXg)4?DMJJ 4333Xg)4?DMJJ 5\444Xg)4?DMJJ /Xg)4?DMJJ (Xg)4?FMJJ D[CCCXg)4?DAAC2+222Xg)4?DAAC=Xg)4?DM4PPR=l===Xg)4?DMJJ"$ );(($-8.K...>4=!%)%%%w':;$W016=-06=,/FM;/k<0|,K!12&.)8&,Gx(k6
]x 	7#EwOT_%
y]B 	&.)K(
C]J 	v} E E}UGL!gl#','w|$D&!GO$$
K]\ 	K1GO$$ 
]]d 	,-7&';)76??	
e]p 	w|$D&!7< G*++GL&)GL"34GO$$G%&&	
q]D 	','D&!7< GL!G*++GL&)GL"34GO$$G%&&

E]Z 	',twGZ![![]mn',twGZ![![]mn!
[]b 	GL!','G*++GL'*GL&)GO$$
c]t	 &6=&)
y]@ 	'FM6*
A]H 	&6=&)
I]P 	k6*T_%XXfk::<MN////&$-1P1PQ %%	"2"23
Q]^ 	GFOOk6*
_]f 	w'v&GFOO
g]p 	K)GFOOK(
q] ]FFFr>   N)r    pygments.lexerr   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   __all__pygments.lexers.theoremr   r   r=   r>   r?   <module>rD      s     @ ? ? ? ? ? ? ? ? ? ? ?                    - - - - - - -v v v v v
 v v v v vr>   