" Vim syntax file
" Language:	Ada (95)
" Maintainer:	Simon Bradley <sib93@aber.ac.uk>
" Last change:	1997 May 5

" Remove any old syntax stuff hanging around.
syntax clear

" Ada is entirely case-insensitive.
syntax case ignore

" The Ada 95 reserved words. There are 69 reserved words in total.
syntax keyword adaConditional	abort case else elsif if select when

syntax keyword adaKeyword	all do end exception in is new null out pragma
syntax keyword adaKeyword	separate then until

syntax keyword adaLabel		others

syntax keyword adaOperator	abs and mod not or rem xor

syntax keyword adaPreCondit	begin body declare entry function generic
syntax keyword adaPreCondit	package procedure protected renames task use
syntax keyword adaPreCondit	with

syntax keyword adaRepeat	exit for loop reverse while

syntax keyword adaStatement	accept delay goto raise requeue return
syntax keyword adaStatement	terminate

syntax keyword adaStructure	record

syntax keyword adaType		abstract access aliased array at constant delta
syntax keyword adaType		digits limited of private range tagged subtype
syntax keyword adaType		type

" Todo.
syntax keyword adaTodo contained TODO

" Strings and characters.
syntax region  adaString	start=+"+  skip=+\\"+  end=+"+
syntax match   adaCharacter	"'[^\\]'"

" Numbers.
syntax match   adaNumber	"[+-]\=\<[0-9_]*\.\=[0-9_]*\>"

" Labels for the goto statement.
syntax region  adaLabel		start="<<"  end=">>"

" Comments.
syntax region  adaComment	oneline start="--"  end="$"  contains adaTodo

if !exists("did_ada_syntax_inits")
  let did_ada_syntax_inits = 1
  " The default methods for highlighting. Can be overridden later.
  highlight link adaCharacter	Character
  highlight link adaComment	Comment
  highlight link adaConditional	Conditional
  highlight link adaKeyword	Keyword
  highlight link adaLabel	Label
  highlight link adaNumber	Number
  highlight link adaOperator	Operator
  highlight link adaPreCondit	PreCondit
  highlight link adaRepeat	Repeat
  highlight link adaSpecial	Special
  highlight link adaStatement	Statement
  highlight link adaString	String
  highlight link adaStructure	Structure
  highlight link adaTodo	Todo
  highlight link adaType	Type
endif
