summaryrefslogtreecommitdiff
path: root/runtime/syntax/ampl.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/ampl.vim')
-rw-r--r--runtime/syntax/ampl.vim150
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
+
+