Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 148 lines (92 sloc) 4.293 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
" 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
Something went wrong with that request. Please try again.