diff runtime/syntax/ampl.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 43efa4f5a8ea
line wrap: on
line diff
new file mode 100644
--- /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
+
+