···11+" Vim syntax file
22+" Language: ktap
33+" Maintainer: Jovi Zhangwei <jovi.zhangwei@gmail.com>
44+" First Author: Jovi Zhangwei <jovi.zhangwei@gmail.com>
55+" Last Change: 2013 Dec 19
66+77+" For version 5.x: Clear all syntax items
88+" For version 6.x: Quit when a syntax file was already loaded
99+if version < 600
1010+ syn clear
1111+elseif exists("b:current_syntax")
1212+ finish
1313+endif
1414+1515+setlocal iskeyword=@,48-57,_,$
1616+1717+syn keyword ktapStatement break continue return
1818+syn keyword ktapRepeat while for in
1919+syn keyword ktapConditional if else elseif
2020+syn keyword ktapDeclaration trace trace_end
2121+syn keyword ktapIdentifier var
2222+syn keyword ktapFunction function
2323+syn match ktapBraces "[{}\[\]]"
2424+syn match ktapParens "[()]"
2525+syn keyword ktapReserved argstr probename arg0 arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9
2626+syn keyword ktapReserved cpu pid tid uid execname
2727+2828+2929+syn region ktapTraceDec start="\<trace\>"lc=5 end="{"me=s-1 contains=ktapString,ktapNumber
3030+syn region ktapTraceDec start="\<trace_end\>"lc=9 end="{"me=s-1 contains=ktapString,ktapNumber
3131+syn match ktapTrace contained "\<\w\+\>" containedin=ktapTraceDec
3232+3333+syn region ktapFuncDec start="\<function\>"lc=8 end=":\|("me=s-1 contains=ktapString,ktapNumber
3434+syn match ktapFuncCall contained "\<\w\+\ze\(\s\|\n\)*("
3535+syn match ktapFunc contained "\<\w\+\>" containedin=ktapFuncDec,ktapFuncCall
3636+3737+syn match ktapStat contained "@\<\w\+\ze\(\s\|\n\)*("
3838+3939+" decimal number
4040+syn match ktapNumber "\<\d\+\>"
4141+" octal number
4242+syn match ktapNumber "\<0\o\+\>" contains=ktapOctalZero
4343+" Flag the first zero of an octal number as something special
4444+syn match ktapOctalZero contained "\<0"
4545+" flag an octal number with wrong digits
4646+syn match ktapOctalError "\<0\o*[89]\d*"
4747+" hex number
4848+syn match ktapNumber "\<0x\x\+\>"
4949+" numeric arguments
5050+syn match ktapNumber "\<\$\d\+\>"
5151+syn match ktapNumber "\<\$#"
5252+5353+syn region ktapString oneline start=+"+ skip=+\\"+ end=+"+
5454+" string arguments
5555+syn match ktapString "@\d\+\>"
5656+syn match ktapString "@#"
5757+syn region ktapString2 matchgroup=ktapString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
5858+5959+" syn keyword ktapTodo contained TODO FIXME XXX
6060+6161+syn match ktapComment "#.*"
6262+6363+" treat ^#! as special
6464+syn match ktapSharpBang "^#!.*"
6565+6666+6767+syn keyword ktapFunc printf print print_hist stack
6868+syn keyword ktapFunc gettimeofday_us
6969+syn keyword ktapFunc pairs
7070+7171+syn match ktapFunc /\<ffi\.cdef\>/
7272+syn match ktapFunc /\<ffi\.new\>/
7373+syn match ktapFunc /\<ffi\.free\>/
7474+syn match ktapFunc /\<ffi\.C\>/
7575+7676+7777+7878+" Define the default highlighting.
7979+" For version 5.7 and earlier: only when not done already
8080+" For version 5.8 and later: only when an item doesn't have highlighting yet
8181+if version >= 508 || !exists("did_lua_syntax_inits")
8282+ if version < 508
8383+ let did_lua_syntax_inits = 1
8484+ command -nargs=+ HiLink hi link <args>
8585+ else
8686+ command -nargs=+ HiLink hi def link <args>
8787+ endif
8888+8989+ HiLink ktapNumber Number
9090+ HiLink ktapOctalZero PreProc " c.vim does it this way...
9191+ HiLink ktapOctalError Error
9292+ HiLink ktapString String
9393+ HiLink ktapString2 String
9494+ HiLink ktapTodo Todo
9595+ HiLink ktapComment Comment
9696+ HiLink ktapSharpBang PreProc
9797+ HiLink ktapStatement Statement
9898+ HiLink ktapConditional Conditional
9999+ HiLink ktapRepeat Repeat
100100+ HiLink ktapTrace Function
101101+ HiLink ktapFunc Function
102102+ HiLink ktapStat Function
103103+ HiLink ktapFunction Function
104104+ HiLink ktapBraces Function
105105+ HiLink ktapDeclaration Typedef
106106+ HiLink ktapIdentifier Identifier
107107+ HiLink ktapReserved Keyword
108108+109109+ delcommand HiLink
110110+endif
111111+112112+let b:current_syntax = "ktap"