File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/ml.cpython-38.pyc
U
�a`�l � @ s� d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZ dddgZG dd� de�ZG d d� de�ZG d
d� de�ZdS )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 @ s0 e Zd ZdZdZdgZdddgZddgZed �Z ed
�Z
ed�ZdZd
Z
dd� Zdd� Zdd� Zdd� Zdefdejdfgdedfdedfdejdfdejdfd ejdfgd!d"�d#d$� eD �� efd%ejd&fd'ejd(fd)ejfd*ejfd+ejfd,ejfd-ejfd.ejfd/ejfd0e j!fd1e e j!fd2e
e j!fd3ejd4fd5ejd6fd7ejd8fd9ejd:fd;e j"fd<e ed=fd!e efd!e
efgd<e efd!e edfd!e
edfde#fd>e#fge$d�ge%d?�d@ejdAfdBejdCfe%dD�e%dE�d>e#fge%d?�dFefdejdfdGejdHfdIejdJfdKedHfdLejdMfe%dD�e%dE�d>e#fg
eej�eej�dNd"�e � edfge%d?�e%dO�d!e e j&fe$d�ge%d?�d;e j"fdPedQfd!e e j'dfd!e
e j'dfe$d�ge%d?�d;e j"fdPedQfdRee
f e(e j)ee�dfdRe
e
f e(e j)ee�dfd!e e j)dfd!e
e j)dfe$d�ge%d?�e%dO�d;e j"fdPedQfdSe
edTfd!e ej*fd!e
ej*fd>e#dfge%d?�dUejdVfe%dO�e%dE�d>e#dfge%d?�e%dO�d;e j"fdPedQfdWe(eeej�dfdSe
edXfd!e ej*fd!e
ej*fd>e#dfg e%d?�dUejdYfdZejdVfd[ejfd\e e(eee j+�fd]e
e(eee j+�fe%dO�e%dE�d>e#fg e%d?�d^e e(ejee j+�fd_e
e(ejee j+�fd[ejfd`ee
f e j+fe$d�ge%d?�d!e e j+dfd!e
e j+dfd>e#dfgdFefdejdfd;e j"fee fdaefdbedfe
e fgdcejfdejddfdeejdfdfejfgdg�Z,dhS )ir zB
For the Standard ML language.
.. versionadded:: 1.5
zStandard MLZsmlz*.smlz*.sigz*.funztext/x-standardmlzapplication/x-standardml))Zabstype�andZandalso�as�caseZdatatype�do�else�end� exception�fn�funZhandle�if�inZinfixZinfixr�letZlocalZnonfix�of�op�openZorelse�raise�rec�then�type�val�withZwithtype�whileZeqtype�functorr Zsharing�sigZ signature�structZ structure�where)�:�\|�=z=>�->�#�:>)
�(�)�[�]�{�}�,�;z...�_z[a-zA-Z][\w']*z[!%&$#+\-/:<=>?@\\~`^|*]+c C s: d| fdt jfdt jfdt jfdt jfdt jfd| dfgS ) Nz[^"\\]z\\[\\"abtnvfr]z\\\^[\x40-\x5e]�
\\[0-9]{3}z\\u[0-9a-fA-F]{4}z\\\s+\\�"�#pop)r �EscapeZInterpol)Zwhatkind� r@ �4/usr/lib/python3/dist-packages/pygments/lexers/ml.py�stringy= s �zSMLLexer.stringyc c sP |� d�| jkrt}ntj}|�d�||� d�fV |�d�t|� d�fV d S )N� � )�group�alphanumid_reservedr r � Namespace�startr ��self�match�tokenr@ r@ rA �long_id_callbackL s
zSMLLexer.long_id_callbackc c sL |� d�| jkrt}n|� d�| jkr,t}nt}|�d�||� d�fV d S �NrC )rE rF r �symbolicid_reservedr rH rI r@ r@ rA �end_id_callbackT s zSMLLexer.end_id_callbackc c sF |� d�}|| jkrtj}n|| jkr,t}nt}|�d�||fV d S rN )rE rF r
�ReservedrO r r rH )rJ rK �strrL r@ r@ rA �id_callback] s
zSMLLexer.id_callback�\s+�\(\*�commentz\(|\[|\{�mainz\)|\]|\}r>