second commit
This commit is contained in:
447
env/lib/python3.11/site-packages/pygments/lexers/mosel.py
vendored
Normal file
447
env/lib/python3.11/site-packages/pygments/lexers/mosel.py
vendored
Normal file
@ -0,0 +1,447 @@
|
||||
"""
|
||||
pygments.lexers.mosel
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Lexers for the mosel language.
|
||||
http://www.fico.com/en/products/fico-xpress-optimization
|
||||
|
||||
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
from pygments.lexer import RegexLexer, words
|
||||
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
||||
Number, Punctuation
|
||||
|
||||
__all__ = ['MoselLexer']
|
||||
|
||||
FUNCTIONS = (
|
||||
# core functions
|
||||
'_',
|
||||
'abs',
|
||||
'arctan',
|
||||
'asproc',
|
||||
'assert',
|
||||
'bitflip',
|
||||
'bitneg',
|
||||
'bitset',
|
||||
'bitshift',
|
||||
'bittest',
|
||||
'bitval',
|
||||
'ceil',
|
||||
'cos',
|
||||
'create',
|
||||
'currentdate',
|
||||
'currenttime',
|
||||
'cutelt',
|
||||
'cutfirst',
|
||||
'cuthead',
|
||||
'cutlast',
|
||||
'cuttail',
|
||||
'datablock',
|
||||
'delcell',
|
||||
'exists',
|
||||
'exit',
|
||||
'exp',
|
||||
'exportprob',
|
||||
'fclose',
|
||||
'fflush',
|
||||
'finalize',
|
||||
'findfirst',
|
||||
'findlast',
|
||||
'floor',
|
||||
'fopen',
|
||||
'fselect',
|
||||
'fskipline',
|
||||
'fwrite',
|
||||
'fwrite_',
|
||||
'fwriteln',
|
||||
'fwriteln_',
|
||||
'getact',
|
||||
'getcoeff',
|
||||
'getcoeffs',
|
||||
'getdual',
|
||||
'getelt',
|
||||
'getfid',
|
||||
'getfirst',
|
||||
'getfname',
|
||||
'gethead',
|
||||
'getlast',
|
||||
'getobjval',
|
||||
'getparam',
|
||||
'getrcost',
|
||||
'getreadcnt',
|
||||
'getreverse',
|
||||
'getsize',
|
||||
'getslack',
|
||||
'getsol',
|
||||
'gettail',
|
||||
'gettype',
|
||||
'getvars',
|
||||
'isdynamic',
|
||||
'iseof',
|
||||
'isfinite',
|
||||
'ishidden',
|
||||
'isinf',
|
||||
'isnan',
|
||||
'isodd',
|
||||
'ln',
|
||||
'localsetparam',
|
||||
'log',
|
||||
'makesos1',
|
||||
'makesos2',
|
||||
'maxlist',
|
||||
'memoryuse',
|
||||
'minlist',
|
||||
'newmuid',
|
||||
'publish',
|
||||
'random',
|
||||
'read',
|
||||
'readln',
|
||||
'reset',
|
||||
'restoreparam',
|
||||
'reverse',
|
||||
'round',
|
||||
'setcoeff',
|
||||
'sethidden',
|
||||
'setioerr',
|
||||
'setmatherr',
|
||||
'setname',
|
||||
'setparam',
|
||||
'setrandseed',
|
||||
'setrange',
|
||||
'settype',
|
||||
'sin',
|
||||
'splithead',
|
||||
'splittail',
|
||||
'sqrt',
|
||||
'strfmt',
|
||||
'substr',
|
||||
'timestamp',
|
||||
'unpublish',
|
||||
'versionnum',
|
||||
'versionstr',
|
||||
'write',
|
||||
'write_',
|
||||
'writeln',
|
||||
'writeln_',
|
||||
|
||||
# mosel exam mmxprs | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
|
||||
'addcut',
|
||||
'addcuts',
|
||||
'addmipsol',
|
||||
'basisstability',
|
||||
'calcsolinfo',
|
||||
'clearmipdir',
|
||||
'clearmodcut',
|
||||
'command',
|
||||
'copysoltoinit',
|
||||
'crossoverlpsol',
|
||||
'defdelayedrows',
|
||||
'defsecurevecs',
|
||||
'delcuts',
|
||||
'dropcuts',
|
||||
'estimatemarginals',
|
||||
'fixglobal',
|
||||
'flushmsgq',
|
||||
'getbstat',
|
||||
'getcnlist',
|
||||
'getcplist',
|
||||
'getdualray',
|
||||
'getiis',
|
||||
'getiissense',
|
||||
'getiistype',
|
||||
'getinfcause',
|
||||
'getinfeas',
|
||||
'getlb',
|
||||
'getlct',
|
||||
'getleft',
|
||||
'getloadedlinctrs',
|
||||
'getloadedmpvars',
|
||||
'getname',
|
||||
'getprimalray',
|
||||
'getprobstat',
|
||||
'getrange',
|
||||
'getright',
|
||||
'getsensrng',
|
||||
'getsize',
|
||||
'getsol',
|
||||
'gettype',
|
||||
'getub',
|
||||
'getvars',
|
||||
'gety',
|
||||
'hasfeature',
|
||||
'implies',
|
||||
'indicator',
|
||||
'initglobal',
|
||||
'ishidden',
|
||||
'isiisvalid',
|
||||
'isintegral',
|
||||
'loadbasis',
|
||||
'loadcuts',
|
||||
'loadlpsol',
|
||||
'loadmipsol',
|
||||
'loadprob',
|
||||
'maximise',
|
||||
'maximize',
|
||||
'minimise',
|
||||
'minimize',
|
||||
'postsolve',
|
||||
'readbasis',
|
||||
'readdirs',
|
||||
'readsol',
|
||||
'refinemipsol',
|
||||
'rejectintsol',
|
||||
'repairinfeas',
|
||||
'repairinfeas_deprec',
|
||||
'resetbasis',
|
||||
'resetiis',
|
||||
'resetsol',
|
||||
'savebasis',
|
||||
'savemipsol',
|
||||
'savesol',
|
||||
'savestate',
|
||||
'selectsol',
|
||||
'setarchconsistency',
|
||||
'setbstat',
|
||||
'setcallback',
|
||||
'setcbcutoff',
|
||||
'setgndata',
|
||||
'sethidden',
|
||||
'setlb',
|
||||
'setmipdir',
|
||||
'setmodcut',
|
||||
'setsol',
|
||||
'setub',
|
||||
'setucbdata',
|
||||
'stopoptimise',
|
||||
'stopoptimize',
|
||||
'storecut',
|
||||
'storecuts',
|
||||
'unloadprob',
|
||||
'uselastbarsol',
|
||||
'writebasis',
|
||||
'writedirs',
|
||||
'writeprob',
|
||||
'writesol',
|
||||
'xor',
|
||||
'xprs_addctr',
|
||||
'xprs_addindic',
|
||||
|
||||
# mosel exam mmsystem | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
|
||||
'addmonths',
|
||||
'copytext',
|
||||
'cuttext',
|
||||
'deltext',
|
||||
'endswith',
|
||||
'erase',
|
||||
'expandpath',
|
||||
'fcopy',
|
||||
'fdelete',
|
||||
'findfiles',
|
||||
'findtext',
|
||||
'fmove',
|
||||
'formattext',
|
||||
'getasnumber',
|
||||
'getchar',
|
||||
'getcwd',
|
||||
'getdate',
|
||||
'getday',
|
||||
'getdaynum',
|
||||
'getdays',
|
||||
'getdirsep',
|
||||
'getdsoparam',
|
||||
'getendparse',
|
||||
'getenv',
|
||||
'getfsize',
|
||||
'getfstat',
|
||||
'getftime',
|
||||
'gethour',
|
||||
'getminute',
|
||||
'getmonth',
|
||||
'getmsec',
|
||||
'getoserrmsg',
|
||||
'getoserror',
|
||||
'getpathsep',
|
||||
'getqtype',
|
||||
'getsecond',
|
||||
'getsepchar',
|
||||
'getsize',
|
||||
'getstart',
|
||||
'getsucc',
|
||||
'getsysinfo',
|
||||
'getsysstat',
|
||||
'gettime',
|
||||
'gettmpdir',
|
||||
'gettrim',
|
||||
'getweekday',
|
||||
'getyear',
|
||||
'inserttext',
|
||||
'isvalid',
|
||||
'jointext',
|
||||
'makedir',
|
||||
'makepath',
|
||||
'newtar',
|
||||
'newzip',
|
||||
'nextfield',
|
||||
'openpipe',
|
||||
'parseextn',
|
||||
'parseint',
|
||||
'parsereal',
|
||||
'parsetext',
|
||||
'pastetext',
|
||||
'pathmatch',
|
||||
'pathsplit',
|
||||
'qsort',
|
||||
'quote',
|
||||
'readtextline',
|
||||
'regmatch',
|
||||
'regreplace',
|
||||
'removedir',
|
||||
'removefiles',
|
||||
'setchar',
|
||||
'setdate',
|
||||
'setday',
|
||||
'setdsoparam',
|
||||
'setendparse',
|
||||
'setenv',
|
||||
'sethour',
|
||||
'setminute',
|
||||
'setmonth',
|
||||
'setmsec',
|
||||
'setoserror',
|
||||
'setqtype',
|
||||
'setsecond',
|
||||
'setsepchar',
|
||||
'setstart',
|
||||
'setsucc',
|
||||
'settime',
|
||||
'settrim',
|
||||
'setyear',
|
||||
'sleep',
|
||||
'splittext',
|
||||
'startswith',
|
||||
'system',
|
||||
'tarlist',
|
||||
'textfmt',
|
||||
'tolower',
|
||||
'toupper',
|
||||
'trim',
|
||||
'untar',
|
||||
'unzip',
|
||||
'ziplist',
|
||||
|
||||
# mosel exam mmjobs | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
|
||||
'canceltimer',
|
||||
'clearaliases',
|
||||
'compile',
|
||||
'connect',
|
||||
'detach',
|
||||
'disconnect',
|
||||
'dropnextevent',
|
||||
'findxsrvs',
|
||||
'getaliases',
|
||||
'getannidents',
|
||||
'getannotations',
|
||||
'getbanner',
|
||||
'getclass',
|
||||
'getdsoprop',
|
||||
'getdsopropnum',
|
||||
'getexitcode',
|
||||
'getfromgid',
|
||||
'getfromid',
|
||||
'getfromuid',
|
||||
'getgid',
|
||||
'gethostalias',
|
||||
'getid',
|
||||
'getmodprop',
|
||||
'getmodpropnum',
|
||||
'getnextevent',
|
||||
'getnode',
|
||||
'getrmtid',
|
||||
'getstatus',
|
||||
'getsysinfo',
|
||||
'gettimer',
|
||||
'getuid',
|
||||
'getvalue',
|
||||
'isqueueempty',
|
||||
'load',
|
||||
'nullevent',
|
||||
'peeknextevent',
|
||||
'resetmodpar',
|
||||
'run',
|
||||
'send',
|
||||
'setcontrol',
|
||||
'setdefstream',
|
||||
'setgid',
|
||||
'sethostalias',
|
||||
'setmodpar',
|
||||
'settimer',
|
||||
'setuid',
|
||||
'setworkdir',
|
||||
'stop',
|
||||
'unload',
|
||||
'wait',
|
||||
'waitexpired',
|
||||
'waitfor',
|
||||
'waitforend',
|
||||
)
|
||||
|
||||
|
||||
class MoselLexer(RegexLexer):
|
||||
"""
|
||||
For the Mosel optimization language.
|
||||
"""
|
||||
name = 'Mosel'
|
||||
aliases = ['mosel']
|
||||
filenames = ['*.mos']
|
||||
url = 'https://www.fico.com/fico-xpress-optimization/docs/latest/mosel/mosel_lang/dhtml/moselreflang.html'
|
||||
version_added = '2.6'
|
||||
|
||||
tokens = {
|
||||
'root': [
|
||||
(r'\n', Text),
|
||||
(r'\s+', Text.Whitespace),
|
||||
(r'!.*?\n', Comment.Single),
|
||||
(r'\(!(.|\n)*?!\)', Comment.Multiline),
|
||||
(words((
|
||||
'and', 'as', 'break', 'case', 'count', 'declarations', 'do',
|
||||
'dynamic', 'elif', 'else', 'end-', 'end', 'evaluation', 'false',
|
||||
'forall', 'forward', 'from', 'function', 'hashmap', 'if',
|
||||
'imports', 'include', 'initialisations', 'initializations', 'inter',
|
||||
'max', 'min', 'model', 'namespace', 'next', 'not', 'nsgroup',
|
||||
'nssearch', 'of', 'options', 'or', 'package', 'parameters',
|
||||
'procedure', 'public', 'prod', 'record', 'repeat', 'requirements',
|
||||
'return', 'sum', 'then', 'to', 'true', 'union', 'until', 'uses',
|
||||
'version', 'while', 'with'), prefix=r'\b', suffix=r'\b'),
|
||||
Keyword.Builtin),
|
||||
(words((
|
||||
'range', 'array', 'set', 'list', 'mpvar', 'mpproblem', 'linctr',
|
||||
'nlctr', 'integer', 'string', 'real', 'boolean', 'text', 'time',
|
||||
'date', 'datetime', 'returned', 'Model', 'Mosel', 'counter',
|
||||
'xmldoc', 'is_sos1', 'is_sos2', 'is_integer', 'is_binary',
|
||||
'is_continuous', 'is_free', 'is_semcont', 'is_semint',
|
||||
'is_partint'), prefix=r'\b', suffix=r'\b'),
|
||||
Keyword.Type),
|
||||
(r'(\+|\-|\*|/|=|<=|>=|\||\^|<|>|<>|\.\.|\.|:=|::|:|in|mod|div)',
|
||||
Operator),
|
||||
(r'[()\[\]{},;]+', Punctuation),
|
||||
(words(FUNCTIONS, prefix=r'\b', suffix=r'\b'), Name.Function),
|
||||
(r'(\d+\.(?!\.)\d*|\.(?!.)\d+)([eE][+-]?\d+)?', Number.Float),
|
||||
(r'\d+([eE][+-]?\d+)?', Number.Integer),
|
||||
(r'[+-]?Infinity', Number.Integer),
|
||||
(r'0[xX][0-9a-fA-F]+', Number),
|
||||
(r'"', String.Double, 'double_quote'),
|
||||
(r'\'', String.Single, 'single_quote'),
|
||||
(r'(\w+|(\.(?!\.)))', Text),
|
||||
],
|
||||
'single_quote': [
|
||||
(r'\'', String.Single, '#pop'),
|
||||
(r'[^\']+', String.Single),
|
||||
],
|
||||
'double_quote': [
|
||||
(r'(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)', String.Escape),
|
||||
(r'\"', String.Double, '#pop'),
|
||||
(r'[^"\\]+', String.Double),
|
||||
],
|
||||
}
|
Reference in New Issue
Block a user