diff options
Diffstat (limited to 'runtime/syntax/ampl.vim')
-rw-r--r-- | runtime/syntax/ampl.vim | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/runtime/syntax/ampl.vim b/runtime/syntax/ampl.vim new file mode 100644 index 000000000..7f4dfa994 --- /dev/null +++ b/runtime/syntax/ampl.vim @@ -0,0 +1,150 @@ +" 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 + + |