o
    Ñ­jAŠ  ã                   @   s°   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„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZG dd„ deƒZdS )zË
    pygments.lexers.ml
    ~~~~~~~~~~~~~~~~~~

    Lexers for ML family languages.

    :copyright: Copyright 2006-present 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                   @   sø  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d„ Zdd„ Zdd„ Zd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&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d0ej!fd1ej!fd2ej fd3e"j#fd4e› d5�e"j#fd6e› d5�e"j#fd7ejd8fd9ejd:fd;ejd<fd=ejd>fd?e"j$fd@e› dA�edBfd@e› d5�efd@e› d5�efg“dBd@e› dA�efd@e› d5�edfd@e› d5�edfde%fdCe%fg“dDe&dƒg“de'dƒdEejdFfdGejdHfe'dƒe'd#ƒdCe%fg“dIe'dƒdJefdejdfdKejdLfdMejdNfdOedLfdPejdQfe'dƒe'd#ƒdCe%fg
“d)eejƒ“d+eejƒ“dRdS d% e
¡¡edfg“d<e'dƒe'dRƒd@e› d5�e"j(fe&dƒg“dLe'dƒd?e"j$fdTedUfd@e› d5�e"j)dfd@e› d5�e"j)dfe&dƒg“dFe'dƒd?e"j$fdTedUfd@e› dVe› dW�e*e"j+eeƒdfd@e› dVe› dW�e*e"j+eeƒdfd@e› d5�e"j+dfd@e› d5�e"j+dfe&dƒg“d>e'dƒe'dRƒd?e"j$fdTedUfdXe› d5�edYfd@e› d5�ej,fd@e› d5�ej,fdCe%dfg“dZe'dƒd[ejd\fe'dRƒe'd#ƒdCe%dfg“d8e'dƒe'dRƒd?e"j$fdTedUfd]e*eeejƒdfdXe› d5�ed^fd@e› d5�ej,fd@e› d5�ej,fdCe%dfg	“d_e'dƒd[ejd`fdaejd\fdbejfdce› d5�e*eee"j-ƒfdde› d5�e*eee"j-ƒfe'dRƒe'd#ƒdCe%fg	“e'dƒdee› d5�e*ejee"j-ƒfdfe› d5�e*ejee"j-ƒfdbejfd@e› dge› d5�e"j-fe&dƒge'dƒd@e› d5�e"j-dfd@e› d5�e"j-dfdCe%dfgdJefdejdfd?e"j$fee"fdhefdiedfee"fgdjejfdejdkfdlejdfdmejfgdnœ¥Z.doS )pr   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              	   C   s:   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)Úwhatkind© rV   úO/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/ml.pyÚstringy<   s   özSMLLexer.stringyc                 c   sR   � |  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ÚtokenrV   rV   rW   Úlong_id_callbackK   s   €zSMLLexer.long_id_callbackc                 c   sN   � |  d¡| jv rt}n|  d¡| jv rt}nt}| d¡||  d¡fV  d S ©NrY   )r[   r\   r   Úsymbolicid_reservedr   r^   r_   rV   rV   rW   Úend_id_callbackS   s   €zSMLLexer.end_id_callbackc                 c   sH   � |  d¡}|| jv rtj}n
|| jv rt}nt}| d¡||fV  d S rd   )r[   r\   r
   ÚReservedre   r   r   r^   )r`   ra   Ústrrb   rV   rV   rW   Úid_callback\   s   €


zSMLLexer.id_callbackÚ
whitespaceú\s+ú\(\*ÚcommentÚ
delimitersz\(|\[|\{Úmainz\)|\]|\}rR   z\b(let|if|local)\b(?!\'))ro   ro   z\b(struct|sig|while)\b(?!\')z\b(do|else|end|in|then)\b(?!\')Úcoreú({})ú|c                 c   s   � | ]}t  |¡V  qd S )N)ÚreÚescape)Ú.0ÚzrV   rV   rW   Ú	<genexpr>|   s   € zSMLLexer.<genexpr>z#"ÚcharrQ   Ú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(?!\'))rR   úmain-funÚfnamer�   z\sz\b(fun|and)\b(?!\')r‚   z\b(val)\b(?!\'))rR   ro   r€   rE   z\b(case|handle)\b(?!\'))rR   ro   Úbreakoutz(?=\b({})\b(?!\'))ú\(Útyvarseqz)(\s*)(=(?!z))ú=(?!)rR   Útypbindr‡   z\b(and)\b(?!\'))rR   r}   z(=)(\s*)(datatype))rR   ÚdatbindÚdatconrˆ   )rR   rz   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…   rm   N)/Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr\   re   Únonid_reservedÚalphanumid_reÚsymbolicid_rerX   rc   rf   ri   r   r   Ú	Multiliner   r
   rg   ÚformatÚjoinr   ÚCharÚDoubler   ÚHexÚIntegerÚFloatr   ÚLabelÚ	Decoratorr   r   r   r]   ÚFunctionr   ÚVariableÚTypeÚClassÚtokensrV   rV   rV   rW   r      sÎ   	

þþ


öùÿ



ÿ
áì5ûË?ÿÁE
ÿö»S

ÿÿî­
i—
j–lÿ”qû�z÷† ÿÿó �ø ö �ç '
ù �Ù 2ÿÿó �Î C


ÿ
ÿò �½ V
ÿ
ÿöü	
ø

ü �‹r   c                   @   sÊ  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    Úfunctionr8   r   r   r   ÚinheritÚinitializerÚlazyr!   ra   ÚmethodÚmoduleÚmutableÚnewÚobjectr   r'   Úprivater-   r"   r#   r5   r(   ÚtoÚtrueÚtryr)   r$   ÚvirtualÚwhenr/   r*   ))ú!=r?   ú&ú&&r„   rŠ   ú\*ú\+rL   ú-ú-\.rB   ú\.ú\.\.r@   ú::ú:=rC   rM   ú;;ú<ú<-rA   ú>ú>]ú>\}ú\?ú\?\?ú\[ú\[<ú\[>ú\[\|rO   rG   ú`ú\{ú\{<rE   ú\|]ú\}ú~ú[!$%&*+\./:<=>?@^|~-])ÚasrÚlandÚlorÚlslÚlxorÚmodÚorú[!?~]ú[=<>@^|&+\*/$%-]©ÚunitÚintÚfloatÚboolry   rx   ÚlistÚarrayú\\[\\"\'ntbr]rP   ú\\x[0-9a-fA-F]{2}rk   úfalse|true|\(\)|\[\]ú\b([A-Z][\w\']*)(?=\s*\.)r~   ú\b([A-Z][\w\']*)ú\(\*(?![)])rm   ú\b({})\brr   rq   NéÿÿÿÿrJ   ú)?ú[^\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}))'ú'.'ú'rQ   ry   ú[~?][a-z][\w\']*:ú[^(*)]+rl   r‹   rŒ   rR   r�   ú[^\\"]+úescape-sequenceú\\\nrË   ú[A-Z][\w\']*(?=\s*\.)ú[A-Z][\w\']*ú[a-z_][\w\']*©r  r   rm   ry   r~   )-rŽ   r�   r�   r‘   r’   r–   r“   r”   r•   r—   ÚkeywordsÚkeyoptsÚ	operatorsÚword_operatorsÚprefix_symsÚ
infix_symsÚ
primitivesr   rS   r   r   ÚBuiltinÚPseudor]   r¨   r   rœ   r�   r
   r	   ÚWordr§   r   r¢   r    ÚOctÚBinr¡   rž   rŸ   r¦   r   r   r   r©   rV   rV   rV   rW   r   c  sz    	ý

ÿ
åü
ü
ú
Ñr   c                   @   s  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d�efde d 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 d- ej"fd.ej#fd/e d- efd0e› d1�e fd0e› d1�e fd2e d3fd4e ej$fd5e ej!fd6ej!feefg“d3edƒd7ej$fe%d8ƒg“d9edƒd:ej$d;fd<ej$d=fed: ej$d;feej$d(fd4e ej$fe%d(ƒg“d>edƒe%d?ƒg“d@edƒdAej$dBfe%d(ƒg“dCedƒd7ej$dDfdEej$dFfe%d(ƒg“dGedƒdHej$d>fd7ej$dDfe%d(ƒg“dIedƒdJej$fdKej$fd:ej$d&fdLej$d(fg“dMe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 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   Úimportra   rº   rè   ÚpackageÚparserr"   Úserverr(   r)   r$   r*   Ú
xml_parserz(([a-zA-Z_]\w*)|(`[^`]*`))z[.=\-<>,@~%/+?*&^!]z[()\[\],;|]r  z\\[\\"\'ntr}]rP   ró   Úcommentsz/\*znested-commentz//.*?$zcomments-and-spacesrk   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}rQ   ry   z9'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'rÜ   r‹   rß   rR   z<(?=[a-zA-Z>])zhtml-open-tagz[@?!]?(/\w+)+(\[_\])?z<-(?!rK   z\b([A-Z]\w*)(?=\.)r†   rJ   z)+r@   r)   r  r?   z#(?=\{)rB   )rR   ú
type-lhs-1útype-with-slashútype-1r„   )rR   ú
type-tuplez~?\{)rR   útype-recordr*  )rR   úslash-type-1r+  r.  ú/)rR   r+  r)  )rR   r)   z(?=,))rR   ú
type-arrowr0  z,(?=[^:]*?->)r,  z[^()/*]+z[/*]rŠ   r-  z[^{}/*]+ú[^/*]+z\*/z[^\\"{]+úsingle-stringz	[^\\\'{]+z\'z[\w\-:]+)rR   ú	html-attrrÒ   )rR   úhtml-contentúhtml-end-tagz	[\w\-:]*>z	[\w\-:]+=úhtml-attr-valuez/>)rR   r2  )rR   ry   )rR   r   z[^"\'{`=<>]+z<!--úhtml-commentz</)rR   r5  rÐ   z[^<{]+z-->z[^\-]+|-)r3  r6  r4  r7  N)'rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r  Úident_reÚop_reÚpunc_rer   rS   r   r   r   r   r
   r   r  r  r   r¢   r    r  r  r¡   rŸ   rž   r	   ÚSingler¦   r]   r§   r   r©   rV   rV   rV   rW   r   ¿  s�   ýþ	þ÷þó
ÿ
¯îzý† 


õ �ü þ �ë 
ü �ç %

ü �Û +

ù �Õ ;

û �Å B

û �¾ ]ü �£ f
ü �š l
ü �” y

þ �‡  
þ � �ÿ  	


ü



ú

û	þ � �ßr   c                   @   sà  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µ   r8   r   r   r   r¶   r·   r¸   r!   Úswitchrº   Úpubr»   r¼   Únonrecr½   r   r'   Úprir"   r#   r5   r(   r¿   rÀ   rÁ   r)   r$   rÂ   rÃ   r/   r*   )+rÄ   r?   rÅ   rÆ   r„   rŠ   rÇ   rÈ   rL   rÉ   rÊ   rD   rË   rÌ   z\.\.\.r@   rÍ   rÎ   rC   rM   rÏ   rÐ   rÑ   rA   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rO   rG   rÛ   rÜ   rÝ   rE   z\|\|rÞ   rß   rà   rá   )	r   râ   rã   rä   rå   Úlsrræ   rç   rè   ré   rê   rë   rò   rP   ró   rk   rô   rõ   r~   rö   z//.*?\nz	\/\*(?!/)rm   rø   rr   rq   Nrù   rJ   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  rQ   ry   r  r1  z\/\*r‹   z\*\/rR   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   rS   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   r©   rV   rV   rV   rW   r     s|    ý


ÿ
ä

ü
ü
ú
Ðr   c                   @   sö  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Úlogicra   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\(\)rL   z~>rB   rÑ   z<--z<==>z==>rË   rÕ   z\?\.z\.\[z\.\(z\.\(\|z\.\[\|z
\{:patternr@   rÍ   rÎ   rM   rÏ   rA   z%\[z!\{r×   z\[@rÚ   z\|>z\]z\|\]rÜ   rE   rß   z\$rá   ré   rê   rë   rò   rP   ró   rk   zfalse|true|False|True|\(\)|\[\]rõ   r~   rö   r÷   rm   z\/\/.+$rø   rr   rq   Nrù   rJ   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  z\`([\w\'.]+)\`z\`rQ   ry   r  r  rl   r‹   rŒ   rR   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   rS   r   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©   rV   rV   rV   rW   r   ^  s„    ý

ÿ
â!ü
ü
ú
Îr   )r‘   rs   Úpygments.lexerr   r   r   r   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   Ú__all__r   r   r   r   r   rV   rV   rV   rW   Ú<module>   s    
,  Q\  E\