
    Mh>                         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-2025 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dZd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                                 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 d0e"j#        fd1e d0e"j#        fd2ej        d3fd4ej        d5fd6ej        d7fd8ej        d9fd:e"j$        fd;e d<ed=fd;e d0efd;e d0efgd=d;e d<efd;e d0edfd;e d0edfde%fd>e%fgd? e&d          gd e'd          d@ej        dAfdBej        dCf e'd           e'd          d>e%fgdD e'd          dEefdej        dfdFej        dGfdHej        dIfdJedGfdKej        dLf e'd           e'd          d>e%fg
d$ eej                  d& eej                  dMdN                    d!                    e
                    edfgd7 e'd           e'dM          d;e d0e"j(        f e&d          gdG e'd          d:e"j$        fdOedPfd;e d0e"j)        dfd;e d0e"j)        df e&d          gdA e'd          d:e"j$        fdOedPfd;e dQe dR e*e"j+        ee          dfd;e dQe dR e*e"j+        ee          dfd;e d0e"j+        dfd;e d0e"j+        df e&d          gd9 e'd           e'dM          d:e"j$        fdOedPfdSe d0edTfd;e d0ej,        fd;e d0ej,        fd>e%dfgdU e'd          dVej        dWf e'dM           e'd          d>e%dfgd3 e'd           e'dM          d:e"j$        fdOedPfdX e*eeej                  dfdSe d0edYfd;e d0ej,        fd;e d0ej,        fd>e%dfg	dZ e'd          dVej        d[fd\ej        dWfd]ej        fd^e d0 e*eee"j-                  fd_e d0 e*eee"j-                  f e'dM           e'd          d>e%fg	 e'd          d`e d0 e*ej        ee"j-                  fdae d0 e*ej        ee"j-                  fd]ej        fd;e dbe d0e"j-        f e&d          g e'd          d;e d0e"j-        dfd;e d0e"j-        dfd>e%dfgdEefdej        dfd:e"j$        fee"fdcefddedfee"fgdeej        fdej        dffdgej        dfdhej        fgdiZ.djS )kr   z'
    For the Standard ML language.
    zStandard MLsml)z*.smlz*.sigz*.funztext/x-standardmlzapplication/x-standardmlz)https://en.wikipedia.org/wiki/Standard_ML1.5>)   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    R/var/www/html/test/jupyter/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      rY   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9r[   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   rb   rc   s      rY   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3r[   c              #      K   |                     d          }|| j        v rt          j        }n|| j        v rt
          }nt          }|                    d          ||fV  d S ri   )r_   r`   r   Reservedrj   r   r   rb   )rd   re   strrf   s       rY   id_callbackzSMLLexer.id_callback\   sj      kk!nn$***$EED,,,EEEkk!nneS((((((r[   
whitespace\s+\(\*comment
delimitersz\(|\[|\{mainz\)|\]|\}rU   z\b(let|if|local)\b(?!\'))ru   ru   z\b(struct|sig|while)\b(?!\')z\b(do|else|end|in|then)\b(?!\')core({})|c              #   >   K   | ]}t          j        |          V  d S )N)reescape).0zs     rY   	<genexpr>zSMLLexer.<genexpr>|   s*      $J$JaRYq\\$J$J$J$J$J$Jr[   z#"charrT   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*(rM   z#\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\']*rL   z)(\.)dottedz\S+rootz\b(val|and)\b(?!\')vnamez\b(fun)\b(?!\'))rU   main-funfnamer   z\sz\b(fun|and)\b(?!\')r   z\b(val)\b(?!\'))rU   ru   r   rG   z\b(case|handle)\b(?!\'))rU   ru   breakoutz(?=\b({})\b(?!\'))\(tyvarseqz)(\s*)(=(?!z))=(?!)rU   typbindr   z\b(and)\b(?!\'))rU   r   z(=)(\s*)(datatype))rU   datbinddatconr   )rU   r   z\b(withtype)\b(?!\')z\b(of)\b(?!\')z
(\|)(\s*)(z
(\|)(\s+)(z(and\b)(\s+)(z(and\b)(\s*)(z)|(rN   \)z[^(*)]#push\*\)[(*)])r   r   r   rs   N)/__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedr`   rj   nonid_reservedalphanumid_resymbolicid_rerZ   rg   rk   ro   r   r	   	Multiliner   r   rm   formatjoinr   CharDoubler   HexIntegerFloatr   Label	Decoratorr   r   r   ra   Functionr   VariableTypeClasstokens r[   rY   r   r      s	         DgG+++I$&@AI
5CM	 	 	   JIIN%M0M
 
 
: : :4 4 4) ) )zTNg'3
z 	 +v.+v.('*:<LM,g.>G/1A6J
z( 	^^CHH$J$J>$J$J$JJJKK FK(6=(+ &*-,v~&#V\2FL)-v~&  ,&m&&&
3&m&&&
3,g.>H%w'7ADw(')97C 4>*&-&&&(8(C"-"""K0"-"""K0? 
)zj 	&-&&&(89"-"""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 	"))#((3F*G*GHH$PVW
Yzb 	GL!!GJ"-"""DN3GFOO
czt 	GL!!4>*K,"-"""DM6:"-"""DM6: GFOO

uzN 	GL!!4>*K,=-==M===XdmT;77A=-==M===XdmT;77A"-"""DM6:"-"""DM6: GFOO
Ozp 	GL!!GJ4>*K,%]%%%{4GH"-"""GL1"-"""GL1UF#
qzL 	GL!!!13DEGJGFOOUF#
Mzb 	GL!!GJ4>*K,"Xk4)9::FD%]%%%{*, #-"""GL1"-"""GL1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!!.m...Xg&dj99;.m...Xg&dj99; 014-44M444djAGFOO
 GL!!"-"""DJ7"-"""DJ7UF#	
 DMg'34>*D!;K(D!	
 )*g'1g'0w()	
iz z zFFFr[   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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
                    efd                    d                    eddd                             efde de de efd                    d                    e                    ej        fd                    d                    e                    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d0fd1efgd2ej'        f e)d3          d4ej'        fd)ej'        d0fgdefd5e*fd6ej        fd7ej        d0fd8ed0f e+d0          gd9Z,dS ):r   z!
    For the OCaml language.
    OCamlzhttps://ocaml.org/ocaml)z*.mlz*.mliz*.mllz*.mlyztext/x-ocamlz0.7)0r    r   assertbeginclass
constraintr   donedowntor(   r!   r>   externalfalseforr"   functionr:   r   r   r   inheritinitializerlazyr#   re   methodmodulemutablenewobjectr   r)   privater/   r$   r%   r7   r*   totruetryr+   r&   virtualwhenr1   r,   ))!=rA   &&&r   r   \*\+rN   --\.rD   \.\.\.rB   :::=rE   rO   ;;<<-rC   >>]>\}\?\?\?\[\[<\[>\[\|rQ   rI   `\{\{<rG   \|]\}~[!$%&*+\./:<=>?@^|~-])asrlandlorlsllxormodor[!?~][=<>@^|&+\*/$%-]unitintfloatboolr   r   listarray\\[\\"\'ntbr]rS   \\x[0-9a-fA-F]{2}rq   false|true|\(\)|\[\]\b([A-Z][\w\']*)(?=\s*\.)r   \b([A-Z][\w\']*)\(\*(?![)])rs   \b({})\brx   rw   NrL   )?[^\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}))''.''rT   r   [~?][a-z][\w\']*:[^(*)]+rr   r   r   rU   r   [^\\"]+escape-sequence\\\nr   [A-Z][\w\']*(?=\s*\.)[A-Z][\w\']*[a-z_][\w\']*r  r   rs   r   r   )-r   r   r   r   r   r   r   r   r   r   keywordskeyopts	operatorsword_operatorsprefix_syms
infix_syms
primitivesr   rV   r   r   BuiltinPseudora   r   r	   r   r   r   r
   Wordr   r   r   r   OctBinr   r   r   r   r   r   r   r   r   r[   rY   r   r   c  s         D
CiG333I IMHG )IGNK$JTJ v}-FM*!6=1
 TN$dl&9:)4>8D $*-Wi0 2 233W=^^CHHWTTrT]3344h?9*99{99i998D 8 8998=I 4 455w|D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FFFr[   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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d0e d1e fd0e d1e fd2e d3fd4ez   ej$        fd5ez   ej!        fd6ej!        feefgd3 ed          d7ej$        f e%d8          gd9 ed          d:ej$        d;fd<ej$        d=fed:z   ej$        d;feej$        d(fd4ez   ej$        f e%d(          gd> ed           e%d?          gd@ ed          dAej$        dBf e%d(          gdC ed          d7ej$        dDfdEej$        dFf e%d(          gdG ed          dHej$        d>fd7ej$        dDf e%d(          gdI ed          dJej$        fdKej$        fd:ej$        d&fdLej$        d(fgdM ed          dNej$        fdKej$        fd%ej$        d&fd'ej$        d(fgddOefded&fdPed(fdKefgd#dQej        fd"ej        d(fd%e df ed          gdRdSej        fdTej        d(fd%e df ed          gd*dUej!        dVfdWej!        dXfgdYdZej!        d(fgdefd[ej!        d\fd]ej!        d(fdWej!        dXfgd4ej!        d^fd"ej!        d_fd5ez   ej!        d(fd6ej!        d`fdaej!        d(fd%e d`fgdbedcfddej!        defdfej!        d*fd%e dfdgej!        fgdhed(fdiefgdjZ&dkS )lr   z%
    Lexer for the Opa language.
    Opaopaz*.opaz
text/x-opazhttp://opalang.orgr   )r    r   r   r'   clientcssdatabasedbr   r(   r!   r   forallr   r   importre   r   r   packageparserr$   serverr*   r+   r&   r,   
xml_parserz(([a-zA-Z_]\w*)|(`[^`]*`))z[.=\-<>,@~%/+?*&^!]z[()\[\],;|]r  z\\[\\"\'ntr}]rS   r   commentsz/\*znested-commentz//.*?$zcomments-and-spacesrq   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}rT   r   z9'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'r   r   r   rU   z<(?=[a-zA-Z>])zhtml-open-tagz[@?!]?(/\w+)+(\[_\])?z<-(?!rM   z\b([A-Z]\w*)(?=\.)r   rL   z)+rB   r+   r  rA   z#(?=\{)rD   )rU   
type-lhs-1type-with-slashtype-1r   )rU   
type-tuplez~?\{)rU   type-recordr4  )rU   slash-type-1r5  r8  /)rU   r5  r3  )rU   r+   z(?=,))rU   
type-arrowr:  z,(?=[^:]*?->)r6  z[^()/*]+z[/*]r   r7  z[^{}/*]+[^/*]+z\*/z[^\\"{]+single-stringz	[^\\\'{]+z\'z[\w\-:]+)rU   	html-attrr   )rU   html-contenthtml-end-tagz	[\w\-:]*>z	[\w\-:]+=html-attr-valuez/>)rU   r<  )rU   r   )rU   r   z[^"\'{`=<>]+z<!--html-commentz</)rU   r?  r   z[^<{]+z-->z[^\-]+|-)r=  r@  r>  rA  N)'r   r   r   r   r   r   r   r   r   r   r  ident_reop_repunc_rer   rV   r	   r   r   r   r   r   r  r  r   r   r   r   r!  r   r   r   r
   Singler   ra   r   r   r   r   r[   rY   r   r     s         DgG	II
CM
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&'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FFFr[   r   c                      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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
                    efd                    d                    eddd                              ej         fd!e de d"e efd                    d                    e                    ej         fd                    d                    e                    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d0ej        d1fd2ej        d3fd4ej        fgd5ej)        f e+d6          d7ej)        fd,ej)        d3fgdefd8e,fd9ej        fd:ej        d3fd;ed3f e-d3          gd<Z.dS )=r   z$
    For the ReasonML language.
    ReasonMLzhttps://reasonml.github.io/reasonmlreasonz*.rez*.reiztext/x-reasonmlz2.6)0r   r   r   r   r   r   r   r   r(   r!   r>   r   r   r   r"   esfunr   r:   r   r   r   r   r   r   r#   switchr   pubr   r   nonrecr   r   r)   prir$   r%   r7   r*   r   r   r   r+   r&   r   r   r1   r,   )+r   rA   r   r   r   r   r   r   rN   r   r   rF   r   r   z\.\.\.rB   r   r   rE   rO   r   r   r   rC   r   r   r   r   r   r   r   r   r   rQ   rI   r   r   r   rG   z\|\|r   r   r   r   )	r    r   r   r   r   lsrr   r   r   r   r   r   r   rS   r   rq   r   r   r   r   z//.*?\nz	\/\*(?!/)rs   r  rx   rw   Nr  rL   r  r  r  r  r  r  r	  r
  r  r  rT   r   r  r;  z\/\*r   z\*\/rU   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  r   rV   r   r   r  r  ra   r   r	   rE  r   r   r   r   r
   r  r   r   r   r   r   r!  r   r   r   r   r   r   r   r   r   r[   rY   r   r     s         D
'C8$G!I"#IMHG )IUNK$JTJ v}-FM*!6=1
 TN$dl&9:)4>8D $*-(7,i8 2 233W=^^CHHWTTrT]3344hmD9*99{99i998D 8 8998=I 4 455w|D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FFFr[   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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
                    efd                    d                    e                    ej        fd                    d                    e                    ej        fd                    d                    eddd                              e fd!e de d"e e fd                    d                    e                    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d0ej+        fgd1efd2ed3fd4ed5fd6efgd7ej*        f e,d8          d9ej*        fd.ej*        d5fgdefd:e-fd;ej        fd<ej        d5fd=ed5f e.d5          gd>Z/dS )?r   z
    For the F* language.
    FStarzhttps://www.fstar-lang.org/fstarz*.fstz*.fstiztext/x-fstarz2.7)5abstract
attributesnoequnopteqandbeginbyr   effectr(   r!   ensuresr>   existsr   r)  r"   r   r   r   r   inlineinline_for_extractionirreduciblelogicre   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\|\)rA   zu#r   r   r   z\(\)rN   z~>rD   r   z<--z<==>z==>r   r   z\?\.z\.\[z\.\(z\.\(\|z\.\[\|z
\{:patternrB   r   r   rO   r   rC   z%\[z!\{r   z\[@r   z\|>z\]z\|\]r   rG   r   z\$r   r   r   r   r   rS   r   rq   zfalse|true|False|True|\(\)|\[\]r   r   r   r   rs   z\/\/.+$r  rx   rw   Nr  rL   r  r  r  r  r  r  r	  r
  r  r  z\`([\w\'.]+)\`z\`rT   r   r  r  rr   r   r   rU   r   r  r  r  r   r  r  r  r  )0r   r   r   r   r   r   r   r   r   r   r  decl_keywordsassume_keywordsr  r  r  r  r  r   rV   r   r   r  r  ra   r   r	   r   r   r   	ExceptionDeclarationr
   r   r   r   r   r   r!  r   r   r  r   r   r   r   r   r   r   r[   rY   r   r   ^  s         D
'CiG(#I IM
H #M;OG )IK$JTJ v}-FM*!6=1
 TN/1DE)4>8D $*-Wi0! 2 233W= 9 9::DNK 7 788':MN^^CHHWTTrT]3344h?9*99{99i998D 4 455w|D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: :FFFr[   r   )r   rz   pygments.lexerr   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   r   r   r   r   r[   rY   <module>ry     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^
Y Y Y Y Y Y Y Yx@ @ @ @ @z @ @ @F
Y Y Y Y Y* Y Y Yx` ` ` ` ` ` ` ` ` `r[   