" Language: ampl (A Mathematical Programming Language)" Maintainer: Krief David <david.krief@etu.enseeiht.fr> or <david_krief@hotmail.com>" Last Change: 2003 May 11if version < 600 syntax clearelseif exists("b:current_syntax") finishendif"--syn match amplEntityKeyword "\(subject to\)\|\(subj to\)\|\(s\.t\.\)"syn keyword amplEntityKeyword minimize maximize objectivesyn keyword amplEntityKeyword coeff coef cover obj defaultsyn keyword amplEntityKeyword from to to_come net_in net_outsyn keyword amplEntityKeyword dimen dimension"--syn keyword amplType integer binary set param varsyn keyword amplType node ordered circular reversed symbolicsyn keyword amplType arc"--syn keyword amplStatement check close \display drop includesyn keyword amplStatement print printf quit reset restoresyn keyword amplStatement solve update write shell modelsyn keyword amplStatement data option let solution fixsyn keyword amplStatement unfix end function pipe format"--syn keyword amplConditional if then else and orsyn keyword amplConditional exists forall in not within"--syn keyword amplRepeat while repeat for"--syn keyword amplOperators union diff difference symdiff sumsyn keyword amplOperators inter intersect intersection cross setofsyn keyword amplOperators by less mod div product"syn keyword amplOperators min max"conflict between functions max, min and operators max, minsyn match amplBasicOperators "||\|<=\|==\|\^\|<\|=\|!\|-\|\.\.\|:="syn match amplBasicOperators "&&\|>=\|!=\|\*\|>\|:\|/\|+\|\*\*""--syn match amplComment "\#.*"syn region amplComment start=+\/\*+ end=+\*\/+syn region amplStrings start=+\'+ skip=+\\'+ end=+\'+syn region amplStrings start=+\"+ skip=+\\"+ end=+\"+syn match amplNumerics "[+-]\=\<\d\+\(\.\d\+\)\=\([dDeE][-+]\=\d\+\)\=\>"syn match amplNumerics "[+-]\=Infinity""--syn keyword amplSetFunction card next nextw prev prevwsyn keyword amplSetFunction first last member ord ord0syn keyword amplBuiltInFunction abs acos acosh alias asinsyn keyword amplBuiltInFunction asinh atan atan2 atanh ceilsyn keyword amplBuiltInFunction cos exp floor log log10syn keyword amplBuiltInFunction max min precision round sinsyn keyword amplBuiltInFunction sinh sqrt tan tanh truncsyn keyword amplRandomGenerator Beta Cauchy Exponential Gamma Irand224syn keyword amplRandomGenerator Normal Poisson Uniform Uniform01"-- to highlight the 'dot-suffixes'syn match amplDotSuffix "\h\w*\.\(lb\|ub\)"hs=e-2syn match amplDotSuffix "\h\w*\.\(lb0\|lb1\|lb2\|lrc\|ub0\)"hs=e-3syn match amplDotSuffix "\h\w*\.\(ub1\|ub2\|urc\|val\|lbs\|ubs\)"hs=e-3syn match amplDotSuffix "\h\w*\.\(init\|body\|dinit\|dual\)"hs=e-4syn match amplDotSuffix "\h\w*\.\(init0\|ldual\|slack\|udual\)"hs=e-5syn match amplDotSuffix "\h\w*\.\(lslack\|uslack\|dinit0\)"hs=e-6"--syn match amplPiecewise "<<\|>>""-- Todo.syn keyword amplTodo contained TODO FIXME XXXif version >= 508 || !exists("did_ampl_syntax_inits") if version < 508 let did_ampl_syntax_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif " The default methods for highlighting. Can be overridden later. HiLink amplEntityKeyword Keyword HiLink amplType Type HiLink amplStatement Statement HiLink amplOperators Operator HiLink amplBasicOperators Operator HiLink amplConditional Conditional HiLink amplRepeat Repeat HiLink amplStrings String HiLink amplNumerics Number HiLink amplSetFunction Function HiLink amplBuiltInFunction Function HiLink amplRandomGenerator Function HiLink amplComment Comment HiLink amplDotSuffix Special HiLink amplPiecewise Special delcommand HiLinkendiflet b:current_syntax = "ampl"" vim: ts=8
" Language: ampl (A Mathematical Programming Language)
" Maintainer: Krief David <david.krief@etu.enseeiht.fr> or <david_krief@hotmail.com>
" Last Change: 2003 May 11
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
"--
syn match amplEntityKeyword "\(subject to\)\|\(subj to\)\|\(s\.t\.\)"
syn keyword amplEntityKeyword minimize maximize objective
syn keyword amplEntityKeyword coeff coef cover obj default
syn keyword amplEntityKeyword from to to_come net_in net_out
syn keyword amplEntityKeyword dimen dimension
"--
syn keyword amplType integer binary set param var
syn keyword amplType node ordered circular reversed symbolic
syn keyword amplType arc
"--
syn keyword amplStatement check close \display drop include
syn keyword amplStatement print printf quit reset restore
syn keyword amplStatement solve update write shell model
syn keyword amplStatement data option let solution fix
syn keyword amplStatement unfix end function pipe format
"--
syn keyword amplConditional if then else and or
syn keyword amplConditional exists forall in not within
"--
syn keyword amplRepeat while repeat for
"--
syn keyword amplOperators union diff difference symdiff sum
syn keyword amplOperators inter intersect intersection cross setof
syn keyword amplOperators by less mod div product
"syn keyword amplOperators min max
"conflict between functions max, min and operators max, min
syn match amplBasicOperators "||\|<=\|==\|\^\|<\|=\|!\|-\|\.\.\|:="
syn match amplBasicOperators "&&\|>=\|!=\|\*\|>\|:\|/\|+\|\*\*"
"--
syn match amplComment "\#.*"
syn region amplComment start=+\/\*+ end=+\*\/+
syn region amplStrings start=+\'+ skip=+\\'+ end=+\'+
syn region amplStrings start=+\"+ skip=+\\"+ end=+\"+
syn match amplNumerics "[+-]\=\<\d\+\(\.\d\+\)\=\([dDeE][-+]\=\d\+\)\=\>"
syn match amplNumerics "[+-]\=Infinity"
"--
syn keyword amplSetFunction card next nextw prev prevw
syn keyword amplSetFunction first last member ord ord0
syn keyword amplBuiltInFunction abs acos acosh alias asin
syn keyword amplBuiltInFunction asinh atan atan2 atanh ceil
syn keyword amplBuiltInFunction cos exp floor log log10
syn keyword amplBuiltInFunction max min precision round sin
syn keyword amplBuiltInFunction sinh sqrt tan tanh trunc
syn keyword amplRandomGenerator Beta Cauchy Exponential Gamma Irand224
syn keyword amplRandomGenerator Normal Poisson Uniform Uniform01
"-- to highlight the 'dot-suffixes'
syn match amplDotSuffix "\h\w*\.\(lb\|ub\)"hs=e-2
syn match amplDotSuffix "\h\w*\.\(lb0\|lb1\|lb2\|lrc\|ub0\)"hs=e-3
syn match amplDotSuffix "\h\w*\.\(ub1\|ub2\|urc\|val\|lbs\|ubs\)"hs=e-3
syn match amplDotSuffix "\h\w*\.\(init\|body\|dinit\|dual\)"hs=e-4
syn match amplDotSuffix "\h\w*\.\(init0\|ldual\|slack\|udual\)"hs=e-5
syn match amplDotSuffix "\h\w*\.\(lslack\|uslack\|dinit0\)"hs=e-6
"--
syn match amplPiecewise "<<\|>>"
"-- Todo.
syn keyword amplTodo contained TODO FIXME XXX
if version >= 508 || !exists("did_ampl_syntax_inits")
if version < 508
let did_ampl_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" The default methods for highlighting. Can be overridden later.
HiLink amplEntityKeyword Keyword
HiLink amplType Type
HiLink amplStatement Statement
HiLink amplOperators Operator
HiLink amplBasicOperators Operator
HiLink amplConditional Conditional
HiLink amplRepeat Repeat
HiLink amplStrings String
HiLink amplNumerics Number
HiLink amplSetFunction Function
HiLink amplBuiltInFunction Function
HiLink amplRandomGenerator Function
HiLink amplComment Comment
HiLink amplDotSuffix Special
HiLink amplPiecewise Special
delcommand HiLink
endif
let b:current_syntax = "ampl"
" vim: ts=8