
    L&i                         d Z ddlZddlmZ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mZ g dZ G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          ZdS )z
    pygments.lexers.ml
    ~~~~~~~~~~~~~~~~~~

    Lexers for ML family languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupsdefaultwords)	TextCommentOperatorKeywordNameStringNumberPunctuationError)SMLLexer
OcamlLexerOpaLexerReasonLexer
FStarLexerc                   
   e Zd ZdZdZdgZg dZddgZh dZh dZ	h d	Z
d
ZdZd Zd Zd Zd Zi ddefdej        dfgddedfdedfdej        dfdej        dfdej        dfgddd                    d  e
D                       z  efd!ej        d"fd#ej        d$fd%ej        fd&ej        fd'ej        fd(ej        fd)ej        fd*ej        fd+ej        fd,ej         fd-ez  ej         fd.ez  ej         fd/ej        d0fd1ej        d2fd3ej        d4fd5ej        d6fd7ej!        fd8ez  ed9fdez  efdez  efgd9d8ez  efdez  edfdez  edfde"fd:e"fgd; e#d          gd e$d          d<ej        d=fd>ej        d?f e$d           e$d          d:e"fgd@ e$d          dAefdej        dfdBej        dCfdDej        dEfdFedCfdGej        dHf e$d           e$d          d:e"fg
d" eej                  d$ eej                  dIdJd                    e          z  edfgd4 e$d           e$dI          dez  ej%        f e#d          gdC e$d          d7ej!        fdKedLfdez  ej&        dfdez  ej&        df e#d          gd= e$d          d7ej!        fdKedLfdMedNedO e'ej(        ee          dfdMedNedO e'ej(        ee          dfdez  ej(        dfdez  ej(        df e#d          gd6 e$d           e$dI          d7ej!        fdKedLfdPez  edQfdez  ej)        fdez  ej)        fd:e"dfgdR e$d          dSej        dTf e$dI           e$d          d:e"dfgd0 e$d           e$dI          d7ej!        fdKedLfdU e'eeej                  dfdPez  edVfdez  ej)        fdez  ej)        fd:e"dfg	dW e$d          dSej        dXfdYej        dTfdZej        fd[ez   e'eeej*                  fd\ez   e'eeej*                  f e$dI           e$d          d:e"fg	 e$d          d]ez   e'ej        eej*                  fd^ez   e'ej        eej*                  fdZej        fdMed_ed`ej*        f e#d          g e$d          dez  ej*        dfdez  ej*        dfd:e"dfgdAefdej        dfd7ej!        feefdaefdbedfeefgdcej        fdej        ddfdeej        dfdfej        fgdgZ+dhS )ir   zB
    For the Standard ML language.

    .. versionadded:: 1.5
    zStandard MLsml)z*.smlz*.sigz*.funztext/x-standardmlzapplication/x-standardml>)   asdofnifinofopandendfunletrecsigvalcaseelseopenthentypewithinfixlocalraisewherewhileeqtypehandleinfixrnonfixorelsestructabstypeandalsofunctorr   sharingdatatypewithtype	exception	signature	structure>   #:=->:>=>\|>
   ..._{}(),;[]z[a-zA-Z][\w']*z[!%&$#+\-/:<=>?@\\~`^|*]+c           	          d| fdt           j        fdt           j        fdt           j        fdt           j        fdt           j        fd| dfgS )	Nz[^"\\]z\\[\\"abtnvfr]z\\\^[\x40-\x5e]
\\[0-9]{3}z\\u[0-9a-fA-F]{4}z\\\s+\\"#pop)r   EscapeInterpol)whatkinds    _/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/ml.pystringyzSMLLexer.stringy<   sR    !.  /FM*!6=1)8V$
 	
    c              #   (  K   |                     d          | j        v rt          }nt          j        }|                    d          ||                     d          fV  |                    d          t          |                     d          fV  d S )N      )groupalphanumid_reservedr   r   	Namespacestartr   selfmatchtokens      rX   long_id_callbackzSMLLexer.long_id_callbackK   s      ;;q>>T555EENEkk!nneU[[^^3333kk!nnk5;;q>>999999rZ   c              #     K   |                     d          | j        v rt          }n+|                     d          | j        v rt          }nt          }|                    d          ||                     d          fV  d S Nr\   )r^   r_   r   symbolicid_reservedr   ra   rb   s      rX   end_id_callbackzSMLLexer.end_id_callbackS   sv      ;;q>>T555EE[[^^t777EEEkk!nneU[[^^333333rZ   c              #      K   |                     d          }|| j        v rt          j        }n|| j        v rt
          }nt          }|                    d          ||fV  d S rh   )r^   r_   r   Reservedri   r   r   ra   )rc   rd   strre   s       rX   id_callbackzSMLLexer.id_callback\   sj      kk!nn$***$EED,,,EEEkk!nneS((((((rZ   
whitespace\s+\(\*comment
delimitersz\(|\[|\{mainz\)|\]|\}rT   z\b(let|if|local)\b(?!\'))rt   rt   z\b(struct|sig|while)\b(?!\')z\b(do|else|end|in|then)\b(?!\')core(%s)|c              #   >   K   | ]}t          j        |          V  d S )N)reescape).0zs     rX   	<genexpr>zSMLLexer.<genexpr>|   s*      EE	!EEEEEErZ   z#"charrS   stringz~?0x[0-9a-fA-F]+z0wx[0-9a-fA-F]+z0w\d+z~?\d+\.\d+[eE]~?\d+z
~?\d+\.\d+z~?\d+[eE]~?\d+z~?\d+z#\s*[1-9][0-9]*z#\s*(%s)z#\s+(%s)z\b(datatype|abstype)\b(?!\')dnamez\b(exception)\b(?!\')enamez4\b(functor|include|open|signature|structure)\b(?!\')snamez\b(type|eqtype)\b(?!\')tnamez	\'[\w\']*z(%s)(\.)dottedz\S+rootz\b(val|and)\b(?!\')vnamez\b(fun)\b(?!\'))rT   main-funfnamer   z\sz\b(fun|and)\b(?!\')r   z\b(val)\b(?!\'))rT   rt   r   rF   z\b(case|handle)\b(?!\'))rT   rt   breakoutz(?=\b(%s)\b(?!\'))\(tyvarseqrK   z)(\s*)(=(?!z))z=(?!%s))rT   typbindr   z\b(and)\b(?!\'))rT   r   z(=)(\s*)(datatype))rT   datbinddatconr   )rT   r   z\b(withtype)\b(?!\')z\b(of)\b(?!\')z(\|)(\s*)(%s)z(\|)(\s+)(%s)z(and\b)(\s+)(%s)z(and\b)(\s*)(%s)z)|(rL   rM   \)z[^(*)]#push\*\)[(*)])r   r   r   rr   N),__name__
__module____qualname____doc__namealiases	filenames	mimetypesr_   ri   nonid_reservedalphanumid_resymbolicid_rerY   rf   rj   rn   r   r	   	Multiliner   r   rl   joinr   CharDoubler   HexIntegerFloatr   Label	Decoratorr   r   r   r`   Functionr   VariableTypeClasstokens rZ   rX   r   r      s         DgG+++I$&@AI	 	 	   JIIN%M0M
 
 
: : :4 4 4) ) )zTNg'3
z 	 +v.+v.('*:<LM,g.>G/1A6J
z( 	sxxEEnEEEEEE FK(6=(+ &*-,v~&#V\2FL)-v~&  ,=($*5=($*5,g.>H%w'7ADw(')97C 4>*=(*:HE}$k2}$k2? 
)zj 	=(*:;}$ov>}$ov>UOUO
kz~ 	GFOO
zJ 	GL!! $W%5w?!1*, GL!!GFOOUO
Kzf 	GL!!DMg'3 $W%5w?!1&( K)')9 GL!!GFOOUO%
gzR 	$$SzT 	''&-((UzX 	"SXX.A%B%BBD&Q
Yzb 	GL!!GJ}$dn5GFOO
czt 	GL!!4>*K,}$dmV<}$dmV< GFOO

uzN 	GL!!4>*K,,&3mm]]]CXdmT;77A A&3mm]]]CXdmT;77A}$dmV<}$dmV< GFOO
Ozp 	GL!!GJ4>*K,-'6IJ}$gl3}$gl3UF#
qzL 	GL!!!13DEGJGFOOUF#
Mzb 	GL!!GJ4>*K,"Xk4)9::FD-'*, }$gl3}$gl3UF#
czD 	GL!!!13DE$g&68IJ 01-Xk4446-Xk4446 GJGFOOUO
Ezj GL!! =0Xg&dj99; =0Xg&dj99; 011*]]MMM:DJGGFOO
 GL!!}$dj&9}$dj&9UF#	
 DMg'34>*D!;K(D!	
 )*g'1g'0w()	
iz z zFFFrZ   r   c                   $   e Zd ZdZdZdZdgZg dZdgZdZ	dZ
d	Zd
ZdZdZdZdej        fdej        fdej        fgdefdej        j        fdej        dfdej        fdedfdd                    e	          z  efdd                    e
ddd                   z  efdededeefdd                    e          z  ej        fdd                    e          z  ej        fdefd ej        fd!ej         fd"ej!        fd#ej"        fd$ej#        fd%ej$        fd&ej$        fd'efd(ej%        d)fd*ej&        fgd+efd,ed-fd.ed/fd0efgd1ej%        f e'd2          d3ej%        fd(ej%        d/fgdefd4e(fd5ej        fd6ej        d/fd7ed/f e)d/          gd8Z*dS )9r   z<
    For the OCaml language.

    .. versionadded:: 0.7
    OCamlzhttps://ocaml.org/ocaml)z*.mlz*.mliz*.mllz*.mlyztext/x-ocaml)0r   assertbeginclass
constraintr   donedowntor'   r    r=   externalfalseforr!   functionr9   r   r   r   inheritinitializerlazyr"   rd   methodmodulemutablenewobjectr   r(   privater.   r#   r$   r6   r)   totruetryr*   valuer%   virtualwhenr0   r+   ))!=r@   &&&r   r   \*\+rM   --\.rC   \.\.\.rA   :::=rD   rN   ;;<<-rB   >>]>\}\?\?\?\[\[<\[>\[\|rP   rH   `\{\{<rF   \|]\}~[!$%&*+\./:<=>?@^|~-])r   asrlandlorlsllxormodor[!?~][=<>@^|&+\*/$%-]unitintfloatboolr   r~   listarray\\[\\"\'ntbr]rR   \\x[0-9a-fA-F]{2}rp   false|true|\(\)|\[\]\b([A-Z][\w\']*)(?=\s*\.)r   \b([A-Z][\w\']*)\(\*(?![)])rr   \b(%s)\brw   rv   NrK   )?[^\W\d][\w']*(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)0[xX][\da-fA-F][\da-fA-F_]*0[oO][0-7][0-7_]*0[bB][01][01_]*\d[\d_]*7'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))''.''rS   r   [~?][a-z][\w\']*:[^(*)]+rq   r   r   rT   r   [^\\"]+escape-sequence\\\nr   [A-Z][\w\']*(?=\s*\.)[A-Z][\w\']*[a-z_][\w\']*r  r   rr   r   r   )+r   r   r   r   r   urlr   r   r   keywordskeyopts	operatorsword_operatorsprefix_syms
infix_syms
primitivesr   rU   r   r   BuiltinPseudor`   r   r	   r   r   r
   Wordr   r   r   r   OctBinr   r   r   r   r   r   r   r   r   rZ   rX   r   r   c  sq         D
CiG333I IHG )INNK$JTJ v}-FM*!6=1
 TN$dl&9:)4>8D $*-Wi0388H---w7sxx"...99(jj+++yyA8L388N333X]C388J///>t$8&,G+VZ8!6:.,&.)G[V[!7O6=(+!4=17
< !gw'gv&w	
 'G%&&fm$6=&)	
 TNK %t~6dj&1tV,GFOO
_7 7FFFrZ   r   c                      e Zd ZdZdZdgZdgZdgZdZdZ	dZ
d	Zi d
dej        fdej        fdej        fgddedfdefgd ed          defgd ed           eedd          efde	z   dz   ej        j        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fd ej        d!fd"ej        fd#ed$fd%ed&fd'ej        d(fd)ej         fd*e
z   d+z   ej         fd,ej!        fd-e
z   d+z   efd.e
z  efd.ez  efd/ed0fd1e	z   ej"        fd2e	z   ej        fd3ej        fe	efgd0 ed          d4ej"        f e#d5          gd6 ed          d7ej"        d8fd9ej"        d:fe	d7z   ej"        d8fe	ej"        d&fd1e	z   ej"        f e#d&          gd; ed           e#d<          gd= ed          d>ej"        d?f e#d&          gd@ ed          d4ej"        dAfdBej"        dCf e#d&          gdD ed          dEej"        d;fd4ej"        dAf e#d&          gdF ed          dGej"        fdHej"        fd7ej"        d$fdIej"        d&fgdJ ed          dKej"        fdHej"        fd#ej"        d$fd%ej"        d&fgddLefded$fdMed&fdHefgd!dNej        fd ej        d&fd#edf ed
          gdOdPej        fdQej        d&fd#edf ed
          gd(dRej        dSfdTej        dUfgdVdWej        d&fgdefdXej        dYfdZej        d&fdTej        dUfgd1ej        d[fd ej        d\fd2e	z   ej        d&fd3ej        d]fd^ej        d&fd#ed]fgd_ed`fdaej        dbfdcej        d(fd#edfddej        fgdeed&fdfefgdgZ$dhS )ir   z@
    Lexer for the Opa language.

    .. versionadded:: 1.5
    Opaopaz*.opaz
text/x-opa)r   r   r   r&   clientcssdatabasedbr   r'   r    r   forallr   r   importrd   r   r   packageparserr#   serverr)   r*   r%   r+   
xml_parserz(([a-zA-Z_]\w*)|(`[^`]*`))z[.=\-<>,@~%/+?*&^!]z[()\[\],;|]r  z\\[\\"\'ntr}]rR   r   commentsz/\*znested-commentz//.*?$zcomments-and-spacesrp   r   z\b)prefixsuffix@z-?.[\d]+([eE][+\-]?\d+)z-?\d+.\d*([eE][+\-]?\d+)z-?\d+[eE][+\-]?\d+z0[xX][\da-fA-F]+z0[oO][0-7]+z
0[bB][01]+z\d+z#[\da-fA-F]{3,6}rS   r   z9'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'r   r   r   rT   z<(?=[a-zA-Z>])zhtml-open-tagz[@?!]?(/\w+)+(\[_\])?z<-(?!rL   z\b([A-Z]\w*)(?=\.)z=(?!z(%s)+rA   r*   r  r@   z#(?=\{)rC   )rT   
type-lhs-1type-with-slashtype-1r   )rT   
type-tuplez~?\{)rT   type-recordr1  )rT   slash-type-1r2  r5  /)rT   r2  r0  )rT   r*   z(?=,))rT   
type-arrowr7  z,(?=[^:]*?->)r3  z[^()/*]+z[/*]r   r4  z[^{}/*]+[^/*]+z\*/z[^\\"{]+single-stringz	[^\\\'{]+z\'z[\w\-:]+)rT   	html-attrr   )rT   html-contenthtml-end-tagz	[\w\-:]*>z	[\w\-:]+=html-attr-valuez/>)rT   r9  )rT   r   )rT   r   z[^"\'{`=<>]+z<!--html-commentz</)rT   r<  r   z[^<{]+z-->z[^\-]+|-)r:  r=  r;  r>  N)%r   r   r   r   r   r   r   r   r  ident_reop_repunc_rer   rU   r	   r   r   r   r   r   r  r  r   r   r   r  r  r   r   r   r
   Singler   r`   r   r   r   r   rZ   rX   r   r     sn         DgG	II
H -H"EGcv}-FM*!6=1
c 	W./ 
c 	GJTN 
c$ 	G)**U8E%888'B H_u$dl&9: (6(&,7"FL1 &*-VZ(FJ'V^$ &.1 6=(+ J[ Hg&Hf% ? &t}5 e^D $-0 #DN3 U]4)x(* 8V$ \7<( (]FM*' tcU
%ct 	G)**GL!G=>>
ucF 	G)**GL"89gl$;<e^W\+ABw|V,\7<(
 GFOO
Gch 	G)**G677
icp 	G)**', 23GFOO	
qcH 	G)**GL"23w|%;<GFOO	
IcT 	G)** w|->?GL"23GFOO
Uct 	G)**','gl#GL'*GL&)
ucB 	G)**','gl#GL'*GL&)
Ccx 	 Wg&Wf%g	
ycJ 	&-(6=&)Hf%G%&&	
KcV 	6=)FM6*Hf%G%&&	
Wcp 	&-)>?6=":;
qc~ 	6=&1
cN TN6=*;<FM6*6=":;	
 6=";<6="45(]FM62(89fmV4H./
 g~.FM#;<6=/2Hf%&
 Wf%'"
c c cFFFrZ   r   c                   r   e Zd ZdZdZdZddgZddgZdgZd	Z	d
Z
dZdZdZdZdZdej        fdej        fdej        fgdefdej        j        fdej        dfdej        fdej        fdej        dfdd                    e	          z  efdd                    e
ddd                   z  ej        fd eded!eefdd                    e          z  ej        fdd                    e          z  ej        fd"efd#e j!        fd$e j"        fd%e j#        fd&e j$        fd'e j%        fd(ej&        fd)ej&        fd*efd+ej'        d,fd-ej(        fgd.ej        fd/ej        d0fd1ej        d2fd3ej        fgd4ej'        f e)d5          d6ej'        fd+ej'        d2fgdefd7e*fd8ej        fd9ej        d2fd:ed2f e+d2          gd;Z,dS )<r   z?
    For the ReasonML language.

    .. versionadded:: 2.6
    ReasonMLzhttps://reasonml.github.io/reasonmlreasonz*.rez*.reiztext/x-reasonml)0r   r   r   r   r   r   r   r   r'   r    r=   r   r   r   r!   esfunr   r9   r   r   r   r   r   r   r"   switchr   pubr   r   nonrecr   r   r(   prir#   r$   r6   r)   r   r   r   r*   r%   r   r   r0   r+   )+r   r@   r   r   r   r   r   r   rM   r   r   rE   r   r   z\.\.\.rA   r   r   rD   rN   r   r   r   rB   r   r   r   r   r   r   r   r   r   rP   rH   r   r   r   rF   z\|\|r   r   r   r   )	r   r   r   r   r   lsrr   r   r   r   r   r   r   rR   r   rp   r   r   r   r   z//.*?\nz	\/\*(?!/)rr   r   rw   rv   Nr   rK   r   r   r  r  r  r  r  r  r  r  rS   r   r	  r8  z\/\*r   z\*\/rT   r   r  r  r  r   r  r  r  r  )-r   r   r   r   r   r  r   r   r   r  r  r  r  r  r  r  r   rU   r   r   r  r  r`   r   r	   rB  r   r   r   r
   r  r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   rZ   rX   r   r     s         D
'C8$G!I"#IHG )IUNK$JTJ v}-FM*!6=1
 TN$dl&9:)4>8D $*-(7,i8388H---w7sxx"...>>(jj+++yyA8L388N333X]C388J///>t$8&,G+VZ8!6:.,&.)G[V[!7O6=(+!4=19
> )*g'1g'0G%&	
 'G%&&fm$6=&)	
 TNK %t~6dj&1tV,GFOO
a8 8FFFrZ   r   c                      e Zd ZdZdZdZdgZddgZdgZdZ	d	Z
d
ZdZdZdZdZdZdej        fdej        fdej        fgdefdej        j        fdej        dfdej        fdedfdefdd                    e	          z  efdd                    e          z  ej        fdd                    e
          z  ej        fdd                    eddd                   z  efd eded!eefdd                    e          z  ej        fd"efd#e j!        fd$e j"        fd%e j#        fd&e j$        fd'e j%        fd(ej&        fd)ej&        fd*efd+ej'        fd,efd-ej(        d.fd/ej)        fgd0efd1ed2fd3ed4fd5efgd6ej(        f e*d7          d8ej(        fd-ej(        d4fgdefd9e+fd:ej        fd;ej        d4fd<ed4f e,d4          gd=Z-dS )>r   z8
    For the F* language.
    .. versionadded:: 2.7
    FStarzhttps://www.fstar-lang.org/fstarz*.fstz*.fstiztext/x-fstar)5abstract
attributesnoequnopteqandbeginbyr   effectr'   r    ensuresr=   existsr   r&  r!   r   r   r   r   inlineinline_for_extractionirreduciblelogicrd   r   r   r   
new_effect	noextractr   r(   opaquer   range_of	reifiablereifyreflectablerequiresset_range_of
sub_effectsynthr)   totalr   r   r*   unfold
unfoldabler%   r   r+   not)r"   r#   )assumeadmitr   calc)/r   r   z/\\z\\/z<:z<@z\(\|z\|\)r@   zu#r   r   r   z\(\)rM   z~>rC   r   z<--z<==>z==>r   r   z\?\.z\.\[z\.\(z\.\(\|z\.\[\|z
\{:patternrA   r   r   rN   r   rB   z%\[z!\{r   z\[@r   z\|>z\]z\|\]r   rF   r   z\$r   r   r   r   r   rR   r   rp   zfalse|true|False|True|\(\)|\[\]r   r   r   r   rr   z\/\/.+$r   rw   rv   Nr   rK   r   r   r  r  r  r  r  r  r  r  z\`([\w\'.]+)\`z\`rS   r   r	  r
  rq   r   r   rT   r   r  r  r  r   r  r  r  r  ).r   r   r   r   r   r  r   r   r   r  decl_keywordsassume_keywordsr  r  r  r  r  r   rU   r   r   r  r  r`   r   r	   r   r   	ExceptionDeclarationr
   r   r   r   r   r  r  r   r   r  r   r   r   r   r   r   r   rZ   rX   r   r   `  s        
 D
'CiG(#I I
H #M;OG )IK$JTJ v}-FM*!6=1
 TN/1DE)4>8D $*-Wi0!388H---w7388O444dnE388M222G4GHsxx"...99(jj+++yyA8L388J///>t$8&,G+VZ8!6:.,&.)G[V[!7O.G6=(+!4=1=
B !gw'gv&w	
 'G%&&fm$6=&)	
 TNK %t~6dj&1tV,GFOO
e: :FFFrZ   r   )r   ry   pygments.lexerr   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   r   r   r   r   rZ   rX   <module>rv     s    
			 H H H H H H H H H H H H H H                      N
M
ML L L L Lz L L L^
Z Z Z Z Z Z Z Zz@ @ @ @ @z @ @ @F
Z Z Z Z Z* Z Z Zz` ` ` ` ` ` ` ` ` `rZ   