1" Vim syntax file
2" Language:     Cynlib(C++)
3" Maintainer:   Phil Derrick <phild@forteds.com>
4" Last change:  2001 Sep 02
5" URL http://www.derrickp.freeserve.co.uk/vim/syntax/cynlib.vim
6"
7" Language Information
8"
9"		Cynlib is a library of C++ classes to allow hardware
10"		modelling in C++. Combined with a simulation kernel,
11"		the compiled and linked executable forms a hardware
12"		simulation of the described design.
13"
14"		Further information can be found from www.forteds.com
15
16
17" Remove any old syntax stuff hanging around
18" For version 5.x: Clear all syntax items
19" For version 6.x: Quit when a syntax file was already loaded
20if version < 600
21  syntax clear
22elseif exists("b:current_syntax")
23  finish
24endif
25
26
27
28" Read the C++ syntax to start with - this includes the C syntax
29if version < 600
30  source <sfile>:p:h/cpp.vim
31else
32  runtime! syntax/cpp.vim
33endif
34unlet b:current_syntax
35
36" Cynlib extensions
37
38syn keyword	cynlibMacro	   Default CYNSCON
39syn keyword	cynlibMacro	   Case CaseX EndCaseX
40syn keyword	cynlibType	   CynData CynSignedData CynTime
41syn keyword	cynlibType	   In Out InST OutST
42syn keyword	cynlibType	   Struct
43syn keyword	cynlibType	   Int Uint Const
44syn keyword	cynlibType	   Long Ulong
45syn keyword	cynlibType	   OneHot
46syn keyword	cynlibType	   CynClock Cynclock0
47syn keyword     cynlibFunction     time configure my_name
48syn keyword     cynlibFunction     CynModule epilog execute_on
49syn keyword     cynlibFunction     my_name
50syn keyword     cynlibFunction     CynBind bind
51syn keyword     cynlibFunction     CynWait CynEvent
52syn keyword     cynlibFunction     CynSetName
53syn keyword     cynlibFunction     CynTick CynRun
54syn keyword     cynlibFunction     CynFinish
55syn keyword     cynlibFunction     Cynprintf CynSimTime
56syn keyword     cynlibFunction     CynVcdFile
57syn keyword     cynlibFunction     CynVcdAdd CynVcdRemove
58syn keyword     cynlibFunction     CynVcdOn CynVcdOff
59syn keyword     cynlibFunction     CynVcdScale
60syn keyword     cynlibFunction     CynBgnName CynEndName
61syn keyword     cynlibFunction     CynClock configure time
62syn keyword     cynlibFunction     CynRedAnd CynRedNand
63syn keyword     cynlibFunction     CynRedOr CynRedNor
64syn keyword     cynlibFunction     CynRedXor CynRedXnor
65syn keyword     cynlibFunction     CynVerify
66
67
68syn match       cynlibOperator     "<<="
69syn keyword	cynlibType	   In Out InST OutST Int Uint Const Cynclock
70
71" Define the default highlighting.
72" For version 5.7 and earlier: only when not done already
73" For version 5.8 and later: only when an item doesn't have highlighting yet
74if version >= 508 || !exists("did_cynlib_syntax_inits")
75  if version < 508
76    let did_cynlib_syntax_inits = 1
77    command -nargs=+ HiLink hi link <args>
78  else
79    command -nargs=+ HiLink hi def link <args>
80  endif
81
82  HiLink cynlibOperator   Operator
83  HiLink cynlibMacro      Statement
84  HiLink cynlibFunction   Statement
85  HiLink cynlibppMacro      Statement
86  HiLink cynlibType       Type
87
88  delcommand HiLink
89endif
90
91let b:current_syntax = "cynlib"
92