mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			151 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			151 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " 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 | ||
|  | 
 | ||
|  | 
 |