" Vim syntax file
" Language:	awk, nawk, gawk, mawk
" Maintainer:	Antonio Colombo <antonio.colombo@jrc.it>
" Last Change:	2002 Jun 23

" AWK  ref.  is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
" The AWK Programming Language, Addison-Wesley, 1988

" GAWK ref. is: Arnold D. Robbins
" Effective AWK Programming, Third Edition, O'Reilly, 2001

" MAWK is a "new awk" meaning it implements AWK ref.
" mawk conforms to the Posix 1003.2 (draft 11.3)
" definition of the AWK language which contains a few features
" not described in the AWK book, and mawk provides a small number of extensions.

" TODO:
" Dig into the commented out syntax expressions below.

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syn clear
elseif exists("b:current_syntax")
  finish
endif

" A bunch of useful Awk keywords
" AWK  ref. p. 188
syn keyword awkStatement	break continue delete exit
syn keyword awkStatement	function getline next
syn keyword awkStatement	print printf return
" GAWK ref. p. 117
syn keyword awkStatement	nextfile
" AWK  ref. p. 42, GAWK ref. p. 142-166
syn keyword awkFunction	atan2 close cos exp fflush int log rand sin sqrt srand
syn keyword awkFunction	gsub index length match split sprintf sub
syn keyword awkFunction	substr system
" GAWK ref. p. 142-166
syn keyword awkFunction	asort gensub mktime strftime strtonum systime
syn keyword awkFunction	tolower toupper
syn keyword awkFunction	and or xor compl lshift rshift
syn keyword awkFunction	dcgettext bindtextdomain

syn keyword awkConditional	if else
syn keyword awkRepeat	while for

syn keyword awkTodo		contained TODO

syn keyword awkPatterns	BEGIN END
" AWK  ref. p. 36
syn keyword awkVariables	ARGC ARGV FILENAME FNR FS NF NR
syn keyword awkVariables	OFMT OFS ORS RLENGTH RS RSTART SUBSEP
" GAWK ref. p. 120-126
syn keyword awkVariables	ARGIND BINMODE CONVFMT ENVIRON ERRNO
syn keyword awkVariables	FIELDWIDTHS IGNORECASE LINT PROCINFO
syn keyword awkVariables	RT RLENGTH TEXTDOMAIN

syn keyword awkRepeat	do

" Octal format character.
syn match   awkSpecialCharacter display contained "\\[0-7]\{1,3\}"
syn keyword awkStatement	func nextfile
" Hex   format character.
syn match   awkSpecialCharacter display contained "\\x[0-9A-Fa-f]\+"

syn match   awkFieldVars	"\$\d\+"

"catch errors caused by wrong parenthesis
syn region	awkParen	transparent start="(" end=")" contains=ALLBUT,awkParenError,awkSpecialCharacter,awkArrayElement,awkArrayArray,awkTodo,awkRegExp,awkBrktRegExp,awkBrackets,awkCharClass
syn match	awkParenError	display ")"
syn match	awkInParen	display contained "[{}]"

" 64 lines for complex &&'s, and ||'s in a big "if"
syn sync ccomment awkParen maxlines=64

" Search strings & Regular Expressions therein.
syn region  awkSearch	oneline start="^[ \t]*/"ms=e start="\(,\|!\=\~\)[ \t]*/"ms=e skip="\\\\\|\\/" end="/" contains=awkBrackets,awkRegExp,awkSpecialCharacter
syn region  awkBrackets	contained start="\[\^\]\="ms=s+2 start="\[[^\^]"ms=s+1 end="\]"me=e-1 contains=awkBrktRegExp,awkCharClass
syn region  awkSearch	oneline start="[ \t]*/"hs=e skip="\\\\\|\\/" end="/" contains=awkBrackets,awkRegExp,awkSpecialCharacter

syn match   awkCharClass	contained "\[:[^:\]]*:\]"
syn match   awkBrktRegExp	contained "\\.\|.\-[^]]"
syn match   awkRegExp	contained "/\^"ms=s+1
syn match   awkRegExp	contained "\$/"me=e-1
syn match   awkRegExp	contained "[?.*{}|+]"

" String and Character constants
" Highlight special characters (those which have a backslash) differently
syn region  awkString	start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=awkSpecialCharacter,awkSpecialPrintf
syn match   awkSpecialCharacter contained "\\."

" Some of these combinations may seem weird, but they work.
syn match   awkSpecialPrintf	contained "%[-+ #]*\d*\.\=\d*[cdefgiosuxEGX%]"

" Numbers, allowing signs (both -, and +)
" Integer number.
syn match  awkNumber		display "[+-]\=\<\d\+\>"
" Floating point number.
syn match  awkFloat		display "[+-]\=\<\d\+\.\d+\>"
" Floating point number, starting with a dot.
syn match  awkFloat		display "[+-]\=\<.\d+\>"
syn case ignore
"floating point number, with dot, optional exponent
syn match  awkFloat	display "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>"
"floating point number, starting with a dot, optional exponent
syn match  awkFloat	display "\.\d\+\(e[-+]\=\d\+\)\=\>"
"floating point number, without dot, with exponent
syn match  awkFloat	display "\<\d\+e[-+]\=\d\+\>"
syn case match

"syn match  awkIdentifier	"\<[a-zA-Z_][a-zA-Z0-9_]*\>"

" Arithmetic operators: +, and - take care of ++, and --
"syn match   awkOperator	"+\|-\|\*\|/\|%\|="
"syn match   awkOperator	"+=\|-=\|\*=\|/=\|%="
"syn match   awkOperator	"^\|^="

" Comparison expressions.
"syn match   awkExpression	"==\|>=\|=>\|<=\|=<\|\!="
"syn match   awkExpression	"\~\|\!\~"
"syn match   awkExpression	"?\|:"
"syn keyword awkExpression	in

" Boolean Logic (OR, AND, NOT)
"syn match  awkBoolLogic	"||\|&&\|\!"

" This is overridden by less-than & greater-than.
" Put this above those to override them.
" Put this in a 'match "\<printf\=\>.*;\="' to make it not override
" less/greater than (most of the time), but it won't work yet because
" keywords allways have precedence over match & region.
" File I/O: (print foo, bar > "filename") & for nawk (getline < "filename")
"syn match  awkFileIO		contained ">"
"syn match  awkFileIO		contained "<"

" Expression separators: ';' and ','
syn match  awkSemicolon	";"
syn match  awkComma		","

syn match  awkComment	"#.*" contains=awkTodo

syn match  awkLineSkip	"\\$"

" Highlight array element's (recursive arrays allowed).
" Keeps nested array names' separate from normal array elements.
" Keeps numbers separate from normal array elements (variables).
syn match  awkArrayArray	contained "[^][, \t]\+\["me=e-1
syn match  awkArrayElement      contained "[^][, \t]\+"
syn region awkArray		transparent start="\[" end="\]" contains=awkArray,awkArrayElement,awkArrayArray,awkNumber,awkFloat

" 10 should be enough.
" (for the few instances where it would be more than "oneline")
syn sync ccomment awkArray maxlines=10

" define the default highlighting
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlightling yet
if version >= 508 || !exists("did_awk_syn_inits")
  if version < 508
    let did_awk_syn_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

  HiLink awkConditional		Conditional
  HiLink awkFunction		Function
  HiLink awkRepeat		Repeat
  HiLink awkStatement		Statement

  HiLink awkString		String
  HiLink awkSpecialPrintf	Special
  HiLink awkSpecialCharacter	Special

  HiLink awkSearch		String
  HiLink awkBrackets		awkRegExp
  HiLink awkBrktRegExp		awkNestRegExp
  HiLink awkCharClass		awkNestRegExp
  HiLink awkNestRegExp		Keyword
  HiLink awkRegExp		Special

  HiLink awkNumber		Number
  HiLink awkFloat		Float

  HiLink awkFileIO		Special
  "HiLink awkOperator		Special
  "HiLink awkExpression		Special
  HiLink awkBoolLogic		Special

  HiLink awkPatterns		Special
  HiLink awkVariables		Special
  HiLink awkFieldVars		Special

  HiLink awkLineSkip		Special
  HiLink awkSemicolon		Special
  HiLink awkComma		Special
  "HiLink awkIdentifier		Identifier

  HiLink awkComment		Comment
  HiLink awkTodo		Todo

  " Change this if you want nested array names to be highlighted.
  HiLink awkArrayArray		awkArray
  HiLink awkArrayElement	Special

  HiLink awkParenError		awkError
  HiLink awkInParen		awkError
  HiLink awkError		Error

  delcommand HiLink
endif

let b:current_syntax = "awk"

" vim: ts=8
