o
    xil                     @   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dS )z
    pygments.lexers.ml
    ~~~~~~~~~~~~~~~~~~

    Lexers for ML family languages.

    :copyright: Copyright 2006-2017 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OpaLexerc                   @   sp  e Zd ZdZdZdgZg dZddgZedZ	edZ
e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d.ejfd/ejfd0ejfd1e j!fd2e e j!fd3e e j!fd4ejd5fd6ed7fd8ejd9fd:ejd;fd<e j"fd=e ed>fd"e efd"e efgd>d=e efd"e edfd"e edfde#fd?e#fgd@e$dgde%ddAejdBfdCejdDfe%de%d!d?e#fgdEe%ddFefdejdfdGejdHfdIejdJfdKedHfdLejdMfe%de%d!d?e#fg
d'eejd)eejdNdOd#e	 edfgd9e%de%dNd"e e j&fe$dgdHe%dd<e j"fdPedQfd"e e j'dfd"e e j'dfe$dgdBe%dd<e j"fdPedQfdReef e(e j)eedfdReef e(e j)eedfd"e e j)dfd"e e j)dfe$dgd;e%de%dNd<e j"fdPedQfdSe edTfd"e ej*fd"e ej*fd?e#dfgdUe%ddVejdWfe%dNe%d!d?e#dfgd5e%de%dNd<e j"fdPedQfdXe(eeejdfdSe edYfd"e ej*fd"e ej*fd?e#dfg	dZe%ddVejd[fd\ejdWfd]ejfd^e e(eee j+fd_e e(eee j+fe%dNe%d!d?e#fg	e%dd`e e(ejee j+fdae e(ejee j+fd]ejfe%dNe%d!d?e#fge%dd"e e j+dfd"e e j+dfd?e#dfgdFefdejdfd<e j"fee fdbefdcedfee fgddejfdejdefdfejdfdgejfgdhZ,diS )jr   zB
    For the Standard ML language.

    .. versionadded:: 1.5
    zStandard MLsml)z*.smlz*.sigz*.funztext/x-standardmlzapplication/x-standardml))abstypeandandalsoascasedatatypedoelseend	exceptionfnfunhandleifininfixinfixrletlocalnonfixofopopenorelseraiserecthentypevalwithwithtypewhileeqtypefunctorr   sharingsig	signaturestruct	structurewhere):\|=z=>->#:>)
()[]{},;z..._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 rQ   S/home/ubuntu/.local/lib/python3.10/site-packages/wandb/vendor/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tokenrQ   rQ   rR   long_id_callbackL   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 NrT   )rV   rW   r   symbolicid_reservedr   rY   rZ   rQ   rQ   rR   end_id_callbackT   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 r_   )rV   rW   r
   Reservedr`   r   r   rY   )r[   r\   strr]   rQ   rQ   rR   id_callback]   s   


zSMLLexer.id_callback
whitespace\s+\(\*comment
delimitersz\(|\[|\{mainz\)|\]|\}rM   z\b(let|if|local)\b(?!\'))rj   rj   z\b(struct|sig|while)\b(?!\')z\b(do|else|end|in|then)\b(?!\')core(%s)|c                 c   s    | ]}t |V  qd S )N)reescape).0zrQ   rQ   rR   	<genexpr>}   s    zSMLLexer.<genexpr>z#"charrL   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(?!\'))rM   main-funfnamer|   z\sz\b(fun|and)\b(?!\')r}   z\b(val)\b(?!\'))rM   rj   r{   r=   z\b(case|handle)\b(?!\'))rM   rj   breakoutz(?=\b(%s)\b(?!\'))\(tyvarseqz(%s)(\s*)(=(?!%s))z=(?!%s))rM   typbindr   z\b(and)\b(?!\'))rM   rx   z(=)(\s*)(datatype))rM   datbinddatconr   )rM   ru   z\b(withtype)\b(?!\')z\b(of)\b(?!\')z(\|)(\s*)(%s)z(\|)(\s+)(%s)z(exception|and)\b(\s+)(%s)z(exception|and)\b(\s*)(%s)rH   \)z[^(*)]#push\*\)[(*)])rv   r   r   rh   N)-__name__
__module____qualname____doc__namealiases	filenames	mimetypessetrW   r`   nonid_reservedalphanumid_resymbolicid_rerS   r^   ra   rd   r   r   	Multiliner   r
   rb   joinr   CharDoubler   HexIntegerFloatr   Label	Decoratorr   r   r   rX   Functionr   VariableTypeClasstokensrQ   rQ   rQ   rR   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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 efdde	ddd  efdeee
f 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d-fd.efgd/ej$fe&d0d1ej$fd&ej$d-fgdefd2e'fd3ejfd4ejd-fd5ed-fe(d-gd6Z)dS )7r   z<
    For the OCaml language.

    .. versionadded:: 0.7
    OCamlocaml)z*.mlz*.mliz*.mllz*.mlyztext/x-ocaml)0r   assertbeginclass
constraintr   donedowntor   r   r   externalfalseforr   functionr5   r!   r"   r   inheritinitializerlazyr%   r\   methodmodulemutablenewobjectr(   r*   privater,   r-   r7   r9   r.   totruetryr/   valuer0   virtualwhenr3   r1   ))z!=r@   &z&&r   r   z\*z\+rH   -z-\.r?   \.z\.\.r<   z::z:=rA   rI   z;;<z<-r>   >z>]z>\}z\?z\?\?z\[z\[<z\[>z\[\|rE   rJ   `\{z\{<r=   z\|]\}~z[!$%&*+\./:<=>?@^|~-])r   asrlandlorlsllxormodorz[!?~]z[=<>@^|&+\*/$%-])unitintfloatboolrt   rs   listarrayz\\[\\"\'ntbr]rK   \\x[0-9a-fA-F]{2}rf   zfalse|true|\(\)|\[\]z\b([A-Z][\w\']*)(?=\s*\.)ry   z\b([A-Z][\w\']*)z\(\*(?![)])rh   z\b(%s)\brm   rl   Nz
(%s|%s)?%sz[^\W\d][\w']*z(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)z0[xX][\da-fA-F][\da-fA-F_]*z0[oO][0-7][0-7_]*z0[bB][01][01_]*z\d[\d_]*z7'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'z'.''rL   rt   z[~?][a-z][\w\']*:z[^(*)]+rg   r   r   rM   r   z[^\\"]+escape-sequencez\\\nr   z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*z[a-z_][\w\']*)r   rz   rh   rt   ry   )*r   r   r   r   r   r   r   r   keywordskeyopts	operatorsword_operatorsprefix_syms
infix_syms
primitivesr   rN   r   r   BuiltinPseudorX   r   r   r   r
   r	   Wordr   r   r   r   OctBinr   r   r   r   r   r   r   r   rQ   rQ   rQ   rR   r   e  sv    	





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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d.e
 efd.e efd/ed0fd1e	 ej"fd2e	 ejfd3ejfe	efgd0edd4ej"fe#d5gd6edd7ej"d8fd9ej"d:fe	d7 ej"d8fe	ej"d&fd1e	 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dDeddEej"d;fd4ej"dAfe#d&gdFeddGej"fdHej"fd7ej"d$fdIej"d&fgdJe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	 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   zU
    Lexer for the Opa language (http://opalang.org).

    .. versionadded:: 1.5
    Opaopaz*.opaz
text/x-opa)r   r   r   r   clientcssdatabasedbr   r   r   r   forallr   r!   importr\   r   r   packageparserr-   serverr.   r/   r0   r1   
xml_parserz(([a-zA-Z_]\w*)|(`[^`]*`))z[.=\-<>,@~%/+?*&^!]z[()\[\],;|]r   z\\[\\"\'ntr}]rK   r   commentsz/\*znested-commentz//.*?$zcomments-and-spacesrf   rz   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}rL   rt   z9'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'r   r   r   rM   z<(?=[a-zA-Z>])zhtml-open-tagz[@?!]?(/\w+)+(\[_\])?z<-(?!rC   z\b([A-Z]\w*)(?=\.)z=(?!z(%s)+r<   r/   r   r@   z#(?=\{)r?   )rM   
type-lhs-1type-with-slashtype-1r   )rM   
type-tuplez~?\{)rM   type-recordr   )rM   slash-type-1r   r   /)rM   r   r   )rM   r/   z(?=,))rM   
type-arrowr   z,(?=[^:]*?->)r   z[^()/*]+z[/*]r   r   z[^{}/*]+z[^/*]+z\*/z[^\\"{]+single-stringz	[^\\\'{]+z\'z[\w\-:]+)rM   	html-attrr   )rM   html-contenthtml-end-tagz	[\w\-:]*>z	[\w\-:]+=html-attr-valuez/>)rM   r   )rM   rt   )rM   rz   z[^"\'{`=<>]+z<!--html-commentz</)rM   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   rN   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r	   Singler   rX   r   r   r   rQ   rQ   rQ   rR   r     s   	



z 


    
  %

  +

  ;

  B

  ]  f
  l
  y

   
    	








	  r   )r   rn   pygments.lexerr   r   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   __all__r   r   r   rQ   rQ   rQ   rR   <module>   s   
,  R\