xref: /vim-8.2.3635/runtime/syntax/ampl.vim (revision f37506f6)
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