" Interactive Data Language syntax file (IDL, too [:-)]
" Maintainer: Aleksandar Jelenak
" Last change: 2011 Apr 11
" Created by: Hermann Rochholz
" Remove any old syntax stuff hanging around
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syntax case ignore
syn match idlangStatement "^\s*pro\s"
syn match idlangStatement "^\s*function\s"
syn keyword idlangStatement return continue mod do break
syn keyword idlangStatement compile_opt forward_function goto
syn keyword idlangStatement begin common end of
syn keyword idlangStatement inherits on_ioerror begin
syn keyword idlangConditional if else then for while case switch
syn keyword idlangConditional endcase endelse endfor endswitch
syn keyword idlangConditional endif endrep endwhile repeat until
syn match idlangOperator "\ and\ "
syn match idlangOperator "\ eq\ "
syn match idlangOperator "\ ge\ "
syn match idlangOperator "\ gt\ "
syn match idlangOperator "\ le\ "
syn match idlangOperator "\ lt\ "
syn match idlangOperator "\ ne\ "
syn match idlangOperator /\(\ \|(\)not\ /hs=e-3
syn match idlangOperator "\ or\ "
syn match idlangOperator "\ xor\ "
syn keyword idlangStop stop pause
syn match idlangStrucvar "\h\w*\(\.\h\w*\)\+"
syn match idlangStrucvar "[),\]]\(\.\h\w*\)\+"hs=s+1
syn match idlangSystem "\!\a\w*\(\.\w*\)\="
syn match idlangKeyword "\([(,]\s*\(\$\_s*\)\=\)\@<=/\h\w*"
syn match idlangKeyword "\([(,]\s*\(\$\_s*\)\=\)\@<=\h\w*\s*="
syn keyword idlangTodo contained TODO
syn region idlangString start=+"+ end=+"+
syn region idlangString start=+'+ end=+'+
syn match idlangPreCondit "^\s*@\w*\(\.\a\{3}\)\="
syn match idlangRealNumber "\<\d\+\(\.\=\d*e[+-]\=\d\+\|\.\d*d\|\.\d*\|d\)"
syn match idlangRealNumber "\.\d\+\(d\|e[+-]\=\d\+\)\="
syn match idlangNumber "\<\.\@!\d\+\.\@!\(b\|u\|us\|s\|l\|ul\|ll\|ull\)\=\>"
syn match idlangComment "[\;].*$" contains=idlangTodo
syn match idlangContinueLine "\$\s*\($\|;\)"he=s+1 contains=idlangComment
syn match idlangContinueLine "&\s*\(\h\|;\)"he=s+1 contains=ALL
syn match idlangDblCommaError "\,\s*\,"
" List of standard routines as of IDL version 5.4.
syn match idlangRoutine "EOS_\a*"
syn match idlangRoutine "HDF_\a*"
syn match idlangRoutine "CDF_\a*"
syn match idlangRoutine "NCDF_\a*"
syn match idlangRoutine "QUERY_\a*"
syn match idlangRoutine "\= 508 || !exists("did_idlang_syn_inits")
if version < 508
let did_idlang_syn_inits = 1
command -nargs=+ HiLink hi link
else
command -nargs=+ HiLink hi def link
endif
HiLink idlangConditional Conditional
HiLink idlangRoutine Type
HiLink idlangStatement Statement
HiLink idlangContinueLine Todo
HiLink idlangRealNumber Float
HiLink idlangNumber Number
HiLink idlangString String
HiLink idlangOperator Operator
HiLink idlangComment Comment
HiLink idlangTodo Todo
HiLink idlangPreCondit Identifier
HiLink idlangDblCommaError Error
HiLink idlangStop Error
HiLink idlangStrucvar PreProc
HiLink idlangSystem Identifier
HiLink idlangKeyword Special
delcommand HiLink
endif
let b:current_syntax = "idlang"
" vim: ts=18