File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/ampl.cpython-310.pyc
o
���a4 � @ sf d Z ddlmZmZmZmZmZ ddlmZm Z m
Z
mZmZm
Z
mZmZmZ dgZG dd� de�ZdS )z�
pygments.lexers.ampl
~~~~~~~~~~~~~~~~~~~~
Lexers for the AMPL language.
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�bygroups�using�this�words) �Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�
Whitespace� AmplLexerc @ s e Zd ZdZdZdgZdgZddefdefde j
fd e jfed
dd�e
jfd
e
jfdejfdej
fdefdeejee
j�fdee
jeej�fdee
jeeeejeeeej� fdee
jeee�eej�fedddd�ejfdefeddd�e
jfdejfdejfdejfdefgiZdS )r zP
For `AMPL <http://ampl.com/>`_ source code.
.. versionadded:: 2.2
�Ampl�amplz*.run�rootz\nz\s+z#.*?\nz/[*](.|\n)*?[*]/);�call�cd�close�commands�data�delete�display�drop�end�environ�exit�expand�include�load�model� objective�option�problem�purge�quit� redeclare�reload�remove�reset�restore�shell�show� solexpand�solution�solve�update�unload�xref�coeff�coef�cover�obj�interval�default�from�to�to_come�net_in�net_out�dimen� dimension�check�complements�write�function�pipe�format�if�then�else�in�while�repeat�forz\b)�suffixzF(integer|binary|symbolic|ordered|circular|reversed|INOUT|IN|OUT|LOCAL)z\".*?\"z\'.*?\'z[()\[\]{},;:]+zu\b(\w+)(\.)(astatus|init0|init|lb0|lb1|lb2|lb|lrc|lslack|rc|relax|slack|sstatus|status|ub0|ub1|ub2|ub|urc|uslack|val)zr(set|param|var|arc|minimize|maximize|subject to|s\.t\.|subj to|node|table|suffix|read table|write table)(\s+)(\w+)z0(param)(\s*)(:)(\s*)(\w+)(\s*)(:)(\s*)((\w|\s)+)z+(let|fix|unfix)(\s*)((?:\{.*\})?)(\s*)(\w+))<�abs�acos�acosh�alias�asin�asinh�atan�atan2�atanh�ceil�ctime�cos�exp�floor�log�log10�max�min� precision�round�sin�sinh�sqrt�tan�tanh�time�trunc�Beta�Cauchy�Exponential�Gamma�Irand224�Normal�Normal01�Poisson�Uniform� Uniform01�num�num0�ichar�char�length�substr�sprintf�match�sub�gsub�print�printf�next�nextw�prev�prevw�first�last�ord�ord0�card�arity�
indexarity)�prefixrO z>(\+|\-|\*|/|\*\*|=|<=|>=|==|\||\^|<|>|\!|\.\.|:=|\&|\!=|<<|>>))�or�exists�forall�andrK �not�within�union�diff�
difference�symdiff�inter� intersect�intersection�cross�setof�by�less�sum�prod�product�div�modz*(\d+\.(?!\.)\d*|\.(?!.)\d+)([eE][+-]?\d+)?z\d+([eE][+-]?\d+)?z
[+-]?Infinityz(\w+|(\.(?!\.)))N)�__name__�
__module__�__qualname__�__doc__�name�aliases� filenamesr r r �Single� Multiliner r
�Reserved�Typer �Doubler r r �Variable�Declarationr r �Builtinr r
�Float�Integer�tokens� r� r� �6/usr/lib/python3/dist-packages/pygments/lexers/ampl.pyr sl
�
������� � �
�����N)r� �pygments.lexerr r r r r �pygments.tokenr r r r
r r r
r r �__all__r r� r� r� r� �<module> s
,