3
V'ícQ ã @ sf d Z ddlmZmZmZmZmZ ddlmZm Z m
Z
mZmZm
Z
mZmZmZ dgZG dd deZdS )zÊ
pygments.lexers.ampl
~~~~~~~~~~~~~~~~~~~~
Lexers for the AMPL language.
:copyright: Copyright 2006-2022 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 K @ s e Zd ZdZdZdZdgZdgZddefde fd e
jfd
e
jfe
d©dFdGejfdHejfdIejfdJejfdKefdLeejeejfdMeeje ejfdNeeje ee eje ee ej fdOeeje eee ejfe
dªdFdFdejfdefe
d«dFdGejfd¤ejfd¥ejfd¦ejfd§efgiZd¨S )¬r z:
For AMPL source code.
.. versionadded:: 2.2
ZAmplzhttp://ampl.com/Zamplz*.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)ÚprefixrM z>(\+|\-|\*|/|\*\*|=|<=|>=|==|\||\^|<|>|\!|\.\.|:=|\&|\!=|<<|>>)ÚorÚexistsÚforallÚandÚ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);r r r r r r r r r r r r r r r r! r"