
    ,h>                         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y)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j0                  dfdej0                  dfdej0                  dfgdd j3                  d!j5                  d" eD                    efd#ej8                  d$fd%ej:                  d&fd'ej>                  fd(ej>                  fd)ej@                  fd*ejB                  fd+ejB                  fd,ejB                  fd-ej@                  fd.e"jF                  fd/e d0e"jF                  fd1e d0e"jF                  fd2ej0                  d3fd4ej0                  d5fd6ej0                  d7fd8ej0                  d9fd:e"jH                  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j0                  dAfdBej0                  dCf e'd       e'd      d>e%fgdD e'd      dEefdej*                  dfdFej0                  dGfdHej0                  dIfdJedGfdKej0                  dLf e'd       e'd      d>e%fg
d$ eej8                        d& eej:                        dMdNj3                  d!j5                  e
            edfgd7 e'd       e'dM      d;e d0e"jP                  f e&d      gdG e'd      d:e"jH                  fdOedPfd;e d0e"jR                  dfd;e d0e"jR                  df e&d      gdA e'd      d:e"jH                  fdOedPfd;e dQe dR e*e"jV                  ee      dfd;e dQe dR e*e"jV                  ee      dfd;e d0e"jV                  dfd;e d0e"jV                  df e&d      gd9 e'd       e'dM      d:e"jH                  fdOedPfdSe d0edTfd;e d0ejX                  fd;e d0ejX                  fd>e%dfgdU e'd      dVej0                  dWf e'dM       e'd      d>e%dfgd3 e'd       e'dM      d:e"jH                  fdOedPfdX e*eeej0                        dfdSe d0edYfd;e d0ejX                  fd;e d0ejX                  fd>e%dfg	dZ e'd      dVej0                  d[fd\ej0                  dWfd]ej0                  fd^e d0 e*eee"jZ                        fd_e d0 e*eee"jZ                        f e'dM       e'd      d>e%fg	 e'd      d`e d0 e*ej0                  ee"jZ                        fdae d0 e*ej0                  ee"jZ                        fd]ej0                  fd;e dbe d0e"jZ                  f e&d      g e'd      d;e d0e"jZ                  dfd;e d0e"jZ                  dfd>e%dfgdEefdej*                  dfd:e"jH                  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.yj)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    T/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pygments/lexers/ml.pystringyzSMLLexer.stringy<   s\    !.  /FMM*!6==1)8V$
 	
    c              #     K   |j                  d      | j                  v rt        }nt        j                  }|j                  d      ||j                  d      f |j                  d      t        |j                  d      f y w)N      )groupalphanumid_reservedr   r   	Namespacestartr   selfmatchtokens      rY   long_id_callbackzSMLLexer.long_id_callbackK   sd     ;;q>T555ENNEkk!neU[[^33kk!nk5;;q>99s   BBc              #      K   |j                  d      | j                  v rt        }n*|j                  d      | j                  v rt        }nt        }|j                  d      ||j                  d      f y wNr]   )r_   r`   r   symbolicid_reservedr   rb   rc   s      rY   end_id_callbackzSMLLexer.end_id_callbackS   s^     ;;q>T555E[[^t777EEkk!neU[[^33s   A5A7c              #      K   |j                  d      }|| j                  v rt        j                  }n|| j                  v rt
        }nt        }|j                  d      ||f y wri   )r_   r`   r   Reservedrj   r   r   rb   )rd   re   strrf   s       rY   id_callbackzSMLLexer.id_callback\   sY     kk!n$***$$ED,,,EEkk!neS((s   A#A%
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              #   F   K   | ]  }t        j                  |        y w)N)reescape).0zs     rY   	<genexpr>zSMLLexer.<genexpr>|   s     $JaRYYq\$Js   !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*(rK   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\']*rJ   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)|(rL   \)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N%M0M
:4)zTNg''3
z 	 +v.+v.('*:*:<LM,g.>.>G/1A1A6J
z( 	^^CHH$J>$JJK FKK(6==(+ &**-,v~~&#V\\2FLL)-v~~&  ,m_A&

3m_A&

3,g.>.>H%w'7'7ADw(')9)97C 4>>*-&(8(C-"K0-"K0? 
)zj 	-&(89-"OV<-"OV<UOUO
kz~ 	FO
zJ 	L! $W%5%5w?!1!1*, L!FOUO
Kzf 	L!DMg''3 $W%5%5w?!1!1&( K)')9)9 L!FOUO%
gzR 	$SzT 	'&--(UzX 	"))#((3F*GH$PVW
Yzb 	L!J-"DNN3FO
czt 	L!4>>*K,-"DMM6:-"DMM6: FO

uzN 	L!4>>*K,-M?"=dmmT;7A-M?"=dmmT;7A-"DMM6:-"DMM6: FO
Ozp 	L!J4>>*K,]O1%{4GH-"GLL1-"GLL1UF#
qzL 	L!!1!13DEJFOUF#
Mzb 	L!J4>>*K,"k4)9)9:FD]O1%{*, -"GLL1-"GLL1UF#
czD 	L!!1!13DE$g&6&68IJ 0 01=/+k446=/+k446 JFOUO
Ezj L!m_A.g&&djj9;m_A.g&&djj9; 0 01-M?!4djjAFO
 L!-"DJJ7-"DJJ7UF#	
 DMg''34>>*D!;K(D!	
 ))*g''1g''0w(()	
izFr[   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j0                  fdedfdj5                  dj7                  e
            efdj5                  dj7                  eddd               efde de de efdj5                  dj7                  e            ej<                  fdj5                  dj7                  e            ej>                  fd efd!e jB                  fd"e jD                  fd#e jF                  fd$e jH                  fd%e jJ                  fd&ejL                  fd'ejL                  fd(efd)ejN                  d*fd+ejP                  fgd,efd-ed.fd/ed0fd1efgd2ejN                  f e)d3      d4ejN                  fd)ejN                  d0fgdefd5e*fd6ej.                  fd7ej0                  d0fd8ed0f e+d0      gd9Z,y):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   \*\+rL   --\.rD   \.\.\.rB   :::=rE   rM   ;;<<-rC   >>]>\}\?\?\?\[\[<\[>\[\|rO   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   NrJ   )?[^\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3I IMHG )IGNK$JTJ v}}-FMM*!6==1
 TN$dll&9&9:)4>>8D $**-Wi0 23W=^^CHHWTrT]34h?*Q{m2i[98D 898==I 45w||Dt$8&,,G+VZZ8!6::.,&..)G[[V[[!7O6==(+!4==17
< !gw'gv&w	
 '%&fmm$6==&)	
 TNK %t~~6djj&1tV,FO
_7Fr[   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j2                  fdej2                  fdej2                  fdej4                  fdej6                  fdej8                  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jB                  d*fd+ejD                  fd,ez   d-z   ejD                  fd.ejF                  fd/ez   d-z   efd0e d1e fd0e d1e fd2e d3fd4ez   ejH                  fd5ez   ejB                  fd6ejB                  feefgd3 ed      d7ejH                  f e%d8      gd9 ed      d:ejH                  d;fd<ejH                  d=fed:z   ejH                  d;feejH                  d(fd4ez   ejH                  f e%d(      gd> ed       e%d?      gd@ ed      dAejH                  dBf e%d(      gdC ed      d7ejH                  dDfdEejH                  dFf e%d(      gdG ed      dHejH                  d>fd7ejH                  dDf e%d(      gdI ed      dJejH                  fdKejH                  fd:ejH                  d&fdLejH                  d(fgdM ed      dNejH                  fdKejH                  fd%ejH                  d&fd'ejH                  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jB                  dVfdWejB                  dXfgdYdZejB                  d(fgdefd[ejB                  d\fd]ejB                  d(fdWejB                  dXfgd4ejB                  d^fd"ejB                  d_fd5ez   ejB                  d(fd6ejB                  d`fdaejB                  d(fd%e d`fgdbedcfddejB                  defdfejB                  d*fd%e dfdgejB                  fgdhed(fdiefgdjZ&yk)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<-(?!rK   z\b([A-Z]\w*)(?=\.)r   rJ   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}}-FMM*!6==1
c 	W./ 
c 	JTN 
c$ 	)*8E%8'B H_u$dll&9&9: (6(&,,7"FLL1 &**-VZZ(FJJ'V^^$ &..1 6==(+ J[[ Hg&Hf% ? &t}}5 e^D $--0 #DNN3 U]4)%^X&'"x( 8V$ \7<<( (]FMM*' tcU
%ct 	)*GLL!=>
ucF 	)*GLL"89gll$;<e^W\\+ABw||V,\7<<(
 FO
Gch 	)*67
icp 	)*',, 23FO	
qcH 	)*GLL"23w||%;<FO	
IcT 	)* w||->?GLL"23FO
Uct 	)*',,'gll#GLL'*GLL&)
ucB 	)*',,'gll#GLL'*GLL&)
Ccx 	 Wg&Wf%g	
ycJ 	&--(6==&)Hf%%&	
KcV 	6==)FMM6*Hf%%&	
Wcp 	&--)>?6==":;
qc~ 	6==&1
cN TN6==*;<FMM6*6==":;	
 6==";<6=="45(]FMM62(89fmmV4H./
 g~.FMM#;<6==/2Hf%&
 Wf%'"
cFr[   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j0                  fdej4                  fdej6                  dfdj9                  dj;                  e
            efdj9                  dj;                  eddd                ej@                  fd!e de d"e efdj9                  dj;                  e            ej@                  fdj9                  dj;                  e            ejB                  fd#efd$e"jF                  fd%e"jH                  fd&e"jJ                  fd'e"jL                  fd(e"jN                  fd)ejP                  fd*ejP                  fd+efd,ejR                  d-fd.ejT                  fgd/ej6                  fd0ej6                  d1fd2ej6                  d3fd4ej6                  fgd5ejR                  f e+d6      d7ejR                  fd,ejR                  d3fgdefd8e,fd9ej.                  fd:ej0                  d3fd;ed3f e-d3      gd<Z.y)=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   rL   r   r   rF   r   r   z\.\.\.rB   r   r   rE   rM   r   r   r   rC   r   r   r   r   r   r   r   r   r   rO   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  rJ   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}}-FMM*!6==1
 TN$dll&9&9:)4>>8D $**-(7,,i8 23W=^^CHHWTrT]34hmmD*Q{m2i[98D 898==I 45w||Dt$8&,,G+VZZ8!6::.,&..)G[[V[[!7O6==(+!4==19
> ))*g''1g''0G%%&	
 '%&fmm$6==&)	
 TNK %t~~6djj&1tV,FO
a8Fr[   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j0                  dfdej2                  fdedfdefdj7                  dj9                  e
            efdj7                  dj9                  e            ej<                  fdj7                  dj9                  e            ej>                  fdj7                  dj9                  eddd                e fd!e de d"e e fdj7                  dj9                  e            ejB                  fd#efd$e"jF                  fd%e"jH                  fd&e"jJ                  fd'e"jL                  fd(e"jN                  fd)ejP                  fd*ejP                  fd+efd,e jR                  fd-efd.ejT                  d/fd0ejV                  fgd1efd2ed3fd4ed5fd6efgd7ejT                  f e,d8      d9ejT                  fd.ejT                  d5fgdefd:e-fd;ej0                  fd<ej2                  d5fd=ed5f e.d5      gd>Z/y)?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\(\)rL   z~>rD   r   z<--z<==>z==>r   r   z\?\.z\.\[z\.\(z\.\(\|z\.\[\|z
\{:patternrB   r   r   rM   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  rJ   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}}-FMM*!6==1
 TN/1D1DE)4>>8D $**-Wi0! 23W= 9:DNNK 78':M:MN^^CHHWTrT]34h?*Q{m2i[98D 45w||Dt$8&,,G+VZZ8!6::.,&..)G[[V[[!7O.G6==(+!4==1=
B !gw'gv&w	
 '%&fmm$6==&)	
 TNK %t~~6djj&1tV,FO
e:Fr[   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     sv    
 H H   NLz L^
Y Yx@z @F
Y* Yx` `r[   