1071d4279SBram Moolenaar" Language: ampl (A Mathematical Programming Language) 2071d4279SBram Moolenaar" Maintainer: Krief David <[email protected]> or <[email protected]> 3071d4279SBram Moolenaar" Last Change: 2003 May 11 4071d4279SBram Moolenaar 5071d4279SBram Moolenaar 689bcfda6SBram Moolenaar" quit when a syntax file was already loaded 789bcfda6SBram Moolenaarif exists("b:current_syntax") 8071d4279SBram Moolenaar finish 9071d4279SBram Moolenaarendif 10071d4279SBram Moolenaar 11071d4279SBram Moolenaar 12071d4279SBram Moolenaar 13071d4279SBram Moolenaar 14071d4279SBram Moolenaar"-- 15071d4279SBram Moolenaarsyn match amplEntityKeyword "\(subject to\)\|\(subj to\)\|\(s\.t\.\)" 16071d4279SBram Moolenaarsyn keyword amplEntityKeyword minimize maximize objective 17071d4279SBram Moolenaar 18071d4279SBram Moolenaarsyn keyword amplEntityKeyword coeff coef cover obj default 19071d4279SBram Moolenaarsyn keyword amplEntityKeyword from to to_come net_in net_out 20071d4279SBram Moolenaarsyn keyword amplEntityKeyword dimen dimension 21071d4279SBram Moolenaar 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar 24071d4279SBram Moolenaar"-- 25071d4279SBram Moolenaarsyn keyword amplType integer binary set param var 26071d4279SBram Moolenaarsyn keyword amplType node ordered circular reversed symbolic 27071d4279SBram Moolenaarsyn keyword amplType arc 28071d4279SBram Moolenaar 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar 31071d4279SBram Moolenaar"-- 32071d4279SBram Moolenaarsyn keyword amplStatement check close \display drop include 33071d4279SBram Moolenaarsyn keyword amplStatement print printf quit reset restore 34071d4279SBram Moolenaarsyn keyword amplStatement solve update write shell model 35071d4279SBram Moolenaarsyn keyword amplStatement data option let solution fix 36071d4279SBram Moolenaarsyn keyword amplStatement unfix end function pipe format 37071d4279SBram Moolenaar 38071d4279SBram Moolenaar 39071d4279SBram Moolenaar 40071d4279SBram Moolenaar"-- 41071d4279SBram Moolenaarsyn keyword amplConditional if then else and or 42071d4279SBram Moolenaarsyn keyword amplConditional exists forall in not within 43071d4279SBram Moolenaar 44071d4279SBram Moolenaar 45071d4279SBram Moolenaar 46071d4279SBram Moolenaar"-- 47071d4279SBram Moolenaarsyn keyword amplRepeat while repeat for 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar 51071d4279SBram Moolenaar"-- 52071d4279SBram Moolenaarsyn keyword amplOperators union diff difference symdiff sum 53071d4279SBram Moolenaarsyn keyword amplOperators inter intersect intersection cross setof 54071d4279SBram Moolenaarsyn keyword amplOperators by less mod div product 55071d4279SBram Moolenaar"syn keyword amplOperators min max 56071d4279SBram Moolenaar"conflict between functions max, min and operators max, min 57071d4279SBram Moolenaar 58071d4279SBram Moolenaarsyn match amplBasicOperators "||\|<=\|==\|\^\|<\|=\|!\|-\|\.\.\|:=" 59071d4279SBram Moolenaarsyn match amplBasicOperators "&&\|>=\|!=\|\*\|>\|:\|/\|+\|\*\*" 60071d4279SBram Moolenaar 61071d4279SBram Moolenaar 62071d4279SBram Moolenaar 63071d4279SBram Moolenaar 64071d4279SBram Moolenaar"-- 65071d4279SBram Moolenaarsyn match amplComment "\#.*" 66071d4279SBram Moolenaarsyn region amplComment start=+\/\*+ end=+\*\/+ 67071d4279SBram Moolenaar 68071d4279SBram Moolenaarsyn region amplStrings start=+\'+ skip=+\\'+ end=+\'+ 69071d4279SBram Moolenaarsyn region amplStrings start=+\"+ skip=+\\"+ end=+\"+ 70071d4279SBram Moolenaar 71071d4279SBram Moolenaarsyn match amplNumerics "[+-]\=\<\d\+\(\.\d\+\)\=\([dDeE][-+]\=\d\+\)\=\>" 72071d4279SBram Moolenaarsyn match amplNumerics "[+-]\=Infinity" 73071d4279SBram Moolenaar 74071d4279SBram Moolenaar 75071d4279SBram Moolenaar"-- 76071d4279SBram Moolenaarsyn keyword amplSetFunction card next nextw prev prevw 77071d4279SBram Moolenaarsyn keyword amplSetFunction first last member ord ord0 78071d4279SBram Moolenaar 79071d4279SBram Moolenaarsyn keyword amplBuiltInFunction abs acos acosh alias asin 80071d4279SBram Moolenaarsyn keyword amplBuiltInFunction asinh atan atan2 atanh ceil 81071d4279SBram Moolenaarsyn keyword amplBuiltInFunction cos exp floor log log10 82071d4279SBram Moolenaarsyn keyword amplBuiltInFunction max min precision round sin 83071d4279SBram Moolenaarsyn keyword amplBuiltInFunction sinh sqrt tan tanh trunc 84071d4279SBram Moolenaar 85071d4279SBram Moolenaarsyn keyword amplRandomGenerator Beta Cauchy Exponential Gamma Irand224 86071d4279SBram Moolenaarsyn keyword amplRandomGenerator Normal Poisson Uniform Uniform01 87071d4279SBram Moolenaar 88071d4279SBram Moolenaar 89071d4279SBram Moolenaar 90071d4279SBram Moolenaar"-- to highlight the 'dot-suffixes' 91071d4279SBram Moolenaarsyn match amplDotSuffix "\h\w*\.\(lb\|ub\)"hs=e-2 92071d4279SBram Moolenaarsyn match amplDotSuffix "\h\w*\.\(lb0\|lb1\|lb2\|lrc\|ub0\)"hs=e-3 93071d4279SBram Moolenaarsyn match amplDotSuffix "\h\w*\.\(ub1\|ub2\|urc\|val\|lbs\|ubs\)"hs=e-3 94071d4279SBram Moolenaarsyn match amplDotSuffix "\h\w*\.\(init\|body\|dinit\|dual\)"hs=e-4 95071d4279SBram Moolenaarsyn match amplDotSuffix "\h\w*\.\(init0\|ldual\|slack\|udual\)"hs=e-5 96071d4279SBram Moolenaarsyn match amplDotSuffix "\h\w*\.\(lslack\|uslack\|dinit0\)"hs=e-6 97071d4279SBram Moolenaar 98071d4279SBram Moolenaar 99071d4279SBram Moolenaar 100071d4279SBram Moolenaar"-- 101071d4279SBram Moolenaarsyn match amplPiecewise "<<\|>>" 102071d4279SBram Moolenaar 103071d4279SBram Moolenaar 104071d4279SBram Moolenaar 105071d4279SBram Moolenaar"-- Todo. 106071d4279SBram Moolenaarsyn keyword amplTodo contained TODO FIXME XXX 107071d4279SBram Moolenaar 108071d4279SBram Moolenaar 109071d4279SBram Moolenaar 110071d4279SBram Moolenaar 111071d4279SBram Moolenaar 112071d4279SBram Moolenaar 113071d4279SBram Moolenaar 114071d4279SBram Moolenaar 115071d4279SBram Moolenaar 116071d4279SBram Moolenaar 117071d4279SBram Moolenaar 118071d4279SBram Moolenaar" The default methods for highlighting. Can be overridden later. 119*f37506f6SBram Moolenaarhi def link amplEntityKeyword Keyword 120*f37506f6SBram Moolenaarhi def link amplType Type 121*f37506f6SBram Moolenaarhi def link amplStatement Statement 122*f37506f6SBram Moolenaarhi def link amplOperators Operator 123*f37506f6SBram Moolenaarhi def link amplBasicOperators Operator 124*f37506f6SBram Moolenaarhi def link amplConditional Conditional 125*f37506f6SBram Moolenaarhi def link amplRepeat Repeat 126*f37506f6SBram Moolenaarhi def link amplStrings String 127*f37506f6SBram Moolenaarhi def link amplNumerics Number 128*f37506f6SBram Moolenaarhi def link amplSetFunction Function 129*f37506f6SBram Moolenaarhi def link amplBuiltInFunction Function 130*f37506f6SBram Moolenaarhi def link amplRandomGenerator Function 131*f37506f6SBram Moolenaarhi def link amplComment Comment 132*f37506f6SBram Moolenaarhi def link amplDotSuffix Special 133*f37506f6SBram Moolenaarhi def link amplPiecewise Special 134071d4279SBram Moolenaar 135071d4279SBram Moolenaar 136071d4279SBram Moolenaarlet b:current_syntax = "ampl" 137071d4279SBram Moolenaar 138071d4279SBram Moolenaar" vim: ts=8 139071d4279SBram Moolenaar 140071d4279SBram Moolenaar 141