" Vim syntax file
" Language:         calendar(1) input file
" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
" Latest Revision:  2005-07-04

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword calendarTodo          contained TODO FIXME XXX NOTE

syn region  calendarComment       start='/\*' end='\*/'
                                  \ contains=calendarTodo,@Spell

syn region  calendarCppString     start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl
                                  \ end=+"+ end='$' contains=calendarSpecial
syn match   calendarSpecial       display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
syn match   calendarSpecial       display contained "\\\(u\x\{4}\|U\x\{8}\)"

syn region  calendarPreCondit     start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>'
                                  \ skip='\\$' end='$'
                                  \ contains=calendarComment,calendarCppString
syn match   calendarPreCondit     display '^\s*#\s*\%(else\|endif\)\>'
syn region  calendarCppOut        start='^\s*#\s*if\s\+0\+' end='.\@=\|$'
                                  \ contains=calendarCppOut2
syn region  calendarCppOut2       contained start='0'
                                  \ end='^\s*#\s*\%(endif\|else\|elif\)\>'
                                  \ contains=calendarSpaceError,calendarCppSkip
syn region  calendarCppSkip       contained
                                  \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>'
                                  \ skip='\\$' end='^\s*#\s*endif\>'
                                  \ contains=calendarSpaceError,calendarCppSkip
syn region  calendarIncluded      display contained start=+"+ skip=+\\\\\|\\"+
                                  \ end=+"+
syn match   calendarIncluded      display contained '<[^>]*>'
syn match   calendarInclude       display '^\s*#\s*include\>\s*["<]'
                                  \ contains=calendarIncluded
syn cluster calendarPreProcGroup  contains=calendarPreCondit,calendarIncluded,
                                  \ calendarInclude,calendarDefine,
                                  \ calendarCppOut,calendarCppOut2,
                                  \ calendarCppSkip,calendarString,
                                  \ calendarSpecial,calendarTodo
syn region  calendarDefine        start='^\s*#\s*\%(define\|undef\)\>'
                                  \ skip='\\$' end='$'
                                  \ contains=ALLBUT,@calendarPreProcGroup
syn region  calendarPreProc       start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>'
                                  \ skip='\\$' end='$' keepend
                                  \ contains=ALLBUT,@calendarPreProcGroup

syn keyword calendarKeyword       CHARSET BODUN LANG
syn case ignore
syn keyword calendarKeyword       Easter Pashka
syn case match

syn case ignore
syn match   calendarNumber        display '\<\d\+\>'
syn keyword calendarMonth         Jan[uary] Feb[ruary] Mar[ch] Apr[il] May
                                  \ Jun[e] Jul[y] Aug[ust] Sep[tember]
                                  \ Oct[ober] Nov[ember] Dec[ember]
syn match   calendarMonth         display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
syn keyword calendarWeekday       Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
syn keyword calendarWeekday       Fri[day] Sat[urday] Sun[day]
syn match   calendarWeekday       display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.'
                                  \ nextgroup=calendarWeekdayMod
syn match   calendarWeekdayMod    display '[+-]\d\+\>'
syn case match

syn match   calendarTime          display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
syn match   calendarTime          display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'

syn match calendarVariable        '\*'

if exists("c_minlines")
  let b:c_minlines = c_minlines
else
  if !exists("c_no_if0")
    let b:c_minlines = 50       " #if 0 constructs can be long
  else
    let b:c_minlines = 15       " mostly for () constructs
  endif
endif
exec "syn sync ccomment calendarComment minlines=" . b:c_minlines

hi def link calendarTodo          Todo
hi def link calendarComment       Comment
hi def link calendarCppString     String
hi def link calendarSpecial       SpecialChar
hi def link calendarPreCondit     PreCondit
hi def link calendarCppOut        Comment
hi def link calendarCppOut2       calendarCppOut
hi def link calendarCppSkip       calendarCppOut
hi def link calendarIncluded      String
hi def link calendarInclude       Include
hi def link calendarDefine        Macro
hi def link calendarPreProc       PreProc
hi def link calendarKeyword       Keyword
hi def link calendarNumber        Number
hi def link calendarMonth         String
hi def link calendarWeekday       String
hi def link calendarWeekdayMod    Special
hi def link calendarTime          Number
hi def link calendarVariable      Identifier

let b:current_syntax = "calendar"

let &cpo = s:cpo_save
unlet s:cpo_save
