
    |e6                     `    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e      Zy)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                   
   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j                  e      Zdj                  e	e
ee      Zdj                  ee	e
e      Zdj                  e	e
ee      Zdj                  e
ee	eeee      ZdZdj                  ee      Zdj                  eee      Zi d ed      gd ed      d eej2                  ej6                  ej:                        dfd eej2                  ej6                        dfdj                  e       eej<                  ej6                  ej@                        dfdj                  e       eej<                  ej6                  ej@                        dfdj                  e       eej<                  ej6                  ej@                        dfdj                  e       eej<                  ej6                  ej@                        dfd eej<                  ej6                  ej:                        dfd j                  e       eej<                  ej6                  e      fd!j                  e       eej<                  ej6                  e      fd" eej<                  ej6                  ejB                  e      fd#j                  e       eej<                  ej6                  ej@                        d$fd%j                  e      ejB                  fd&j                  e      ejB                  fd'ejB                  fd(j                  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"d0fd1ed2fd3ed4fd5e#jH                  fd6e#jJ                  fd7e&fgdd8e'fd9e'd:fd;ej6                  fgd:d<e'd=fd>e'fgdd?e#jH                  fd@ed=fgddA eejP                  ej:                        dfdBejP                  feejP                  fdCejP                  fdDed=f ed      gd$dEedFf ed      gdFdGej<                  fdHej<                  fdIedJf ed      gddKej2                  dLfdDed=f ed      gdLdA eejP                  ej:                        dfdBejP                  feejP                  fdCejP                  fdMed=fdDedJf ed      gd,dNej:                  fd+ej:                  d=fgd.dOej:                  fd-ej:                  d=fgddPej:                  fd*ej:                  d=fgd0d/e"dQfdRe"d=fdSj                  e       eeejB                        fdTefdUefgd2d1edQfdVed=f ed      gd4d3e&dQfd@e&d=f ed      gZ)yW)Xr   zN
    Lexer for the Elpi programming language.

    .. versionadded:: 2.11
    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
({}|{}|{})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(external type|type)(\s+)(({}(,\s*)?)+)z	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+)?)+)zelpi-chr-rule-startz(?=[A-Z_]){}z(?=[a-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]*\nz/\*zelpi-multiline-commentz\s+z\*/z#pop.z[0-9 _]+z\)z(ctype\s+)(\")z->z\(|\)z\.z\{zelpi-chr-rulez\brule\bz\\z\}z#pop:2z[io]:z
elpi-ctype,z[^` ]+z[^\' ]+z[^\"]+z#pushz\}\}z(lp:)((?=[A-Z_]){})z[^l\}]+zl|\}z\}[^\}]N)*__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypeslcase_reucase_redigit_re	schar2_reformatschar_re	idchar_reidcharstarns_resymbchar_reconstant_re	symbol_re	escape_reconst_sym_rer   r   r	   Moder   
Whitespacer   DoubleDeclarationr
   FunctionVariabler   r   IntegerFloatr   r   Typetokens     6/usr/lib/python3/dist-packages/pygments/lexers/elpi.pyr   r      s    D
(ChG
IIHHH&I$$Y/H ''(8LI-44Y(T]^O$++Hh(SK,33HiSbdmoz  }F  GK sI%%k)<I ''IiHLAFO
A
 	O$3gllDOOV]]C  ',,!H!#/66|Dg))4??DMMJ :@@Ng))4??DMMJ '--l;g))4??DMMJ (..|<g))4??DMMJ (g))4??FMMJ 8>>{Kg))4??DAC&--k:g))4??DAC=g))4??DMM4PR077Eg))4??DMMJ"$ ##K0$--@%%k2DMMB4==!""9-w/B/BC$W0016==-06==,/FMM;/k<0|,D*+&..)8&,,Gx(_0
Al 	7#W67T__%
mAv 	!Wf%7O#
wA~ 	&..)D&!
AF 	v}} E}UGLL!',,'w||$D&!O$
GAV 	D/*O$ 
WA^ 	,,-7&&'4"6?	
_Aj 	w||\2D&!O$
kAt 	v}} E}UGLL!',,'w||$4 D(#O$
uAF 	&6==&)
GAN 	'FMM6*
OAV 	&6==&)
WA^ 	k7+k6*#**;7'4==9YZdO
_Al 	w'v&FO
mAv 	Hg&Hf%FO
wAFr9   N)r   pygments.lexerr   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   __all__r   r8   r9   r:   <module>r>      s8    9 8   -[
 [r9   