"" "
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),
],
}
Messung V0.5 C=96 H=91 G=93
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland