blob: 85036dc049ef5605e8e1b246971ada7c0121572a [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: rpcgen
Bram Moolenaare2719092015-01-10 15:09:25 +01003" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
Bram Moolenaar9da7ff72015-01-14 12:52:36 +01004" Last Change: Jan 13, 2015
5" Version: 10
Bram Moolenaare2719092015-01-10 15:09:25 +01006" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
Bram Moolenaar9da7ff72015-01-14 12:52:36 +01008if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 finish
10endif
11
12" Read the C syntax to start with
13if version < 600
14 source <sfile>:p:h/c.vim
15else
16 runtime! syntax/c.vim
17endif
18
19syn keyword rpcProgram program skipnl skipwhite nextgroup=rpcProgName
20syn match rpcProgName contained "\<\i\I*\>" skipnl skipwhite nextgroup=rpcProgZone
21syn region rpcProgZone contained matchgroup=Delimiter start="{" matchgroup=Delimiter end="}\s*=\s*\(\d\+\|0x[23]\x\{7}\)\s*;"me=e-1 contains=rpcVersion,cComment,rpcProgNmbrErr
22syn keyword rpcVersion contained version skipnl skipwhite nextgroup=rpcVersName
23syn match rpcVersName contained "\<\i\I*\>" skipnl skipwhite nextgroup=rpcVersZone
24syn region rpcVersZone contained matchgroup=Delimiter start="{" matchgroup=Delimiter end="}\s*=\s*\d\+\s*;"me=e-1 contains=cType,cStructure,cStorageClass,rpcDecl,rpcProcNmbr,cComment
25syn keyword rpcDecl contained string
26syn match rpcProcNmbr contained "=\s*\d\+;"me=e-1
27syn match rpcProgNmbrErr contained "=\s*0x[^23]\x*"ms=s+1
28syn match rpcPassThru "^\s*%.*$"
29
30" Define the default highlighting.
31" For version 5.7 and earlier: only when not done already
32" For version 5.8 and later: only when an item doesn't have highlighting yet
33if version >= 508 || !exists("did_rpcgen_syntax_inits")
34 if version < 508
35 let did_rpcgen_syntax_inits = 1
36 command -nargs=+ HiLink hi link <args>
37 else
38 command -nargs=+ HiLink hi def link <args>
39 endif
40
41 HiLink rpcProgName rpcName
42 HiLink rpcProgram rpcStatement
43 HiLink rpcVersName rpcName
44 HiLink rpcVersion rpcStatement
45
46 HiLink rpcDecl cType
47 HiLink rpcPassThru cComment
48
49 HiLink rpcName Special
50 HiLink rpcProcNmbr Delimiter
51 HiLink rpcProgNmbrErr Error
52 HiLink rpcStatement Statement
53
54 delcommand HiLink
55endif
56
57let b:current_syntax = "rpcgen"
58
59" vim: ts=8