7
|
1 " Vim syntax file
|
|
2 " Language: SPECMAN E-LANGUAGE
|
|
3 " Maintainer: Or Freund <or@mobilian.com ;omf@gmx.co.uk; OrMeir@yahoo.com>
|
|
4 " Last Update: Wed Oct 24 2001
|
|
5
|
|
6 "---------------------------------------------------------
|
|
7 "| If anyone found an error or fix the parenthesis part |
|
|
8 "| I will be happy to hear about it |
|
|
9 "| Thanks Or. |
|
|
10 "---------------------------------------------------------
|
|
11
|
|
12 " Remove any old syntax stuff hanging around
|
|
13 " For version 5.x: Clear all syntax items
|
|
14 " For version 6.x: Quit when a syntax file was already loaded
|
|
15 if version < 600
|
|
16 syntax clear
|
|
17 elseif exists("b:current_syntax")
|
|
18 finish
|
|
19 endif
|
|
20
|
|
21 syn keyword specmanTodo contained TODO todo ToDo FIXME XXX
|
|
22
|
|
23 syn keyword specmanStatement var instance on compute start event expect check that routine
|
|
24 syn keyword specmanStatement specman is also first only with like
|
|
25 syn keyword specmanStatement list of all radix hex dec bin ignore illegal
|
|
26 syn keyword specmanStatement traceable untraceable
|
|
27 syn keyword specmanStatement cover using count_only trace_only at_least transition item ranges
|
|
28 syn keyword specmanStatement cross text call task within
|
|
29
|
|
30 syn keyword specmanMethod initialize non_terminal testgroup delayed exit finish
|
|
31 syn keyword specmanMethod out append print outf appendf
|
|
32 syn keyword specmanMethod post_generate pre_generate setup_test finalize_test extract_test
|
|
33 syn keyword specmanMethod init run copy as_a set_config dut_error add clear lock quit
|
|
34 syn keyword specmanMethod lock unlock release swap quit to_string value stop_run
|
|
35 syn keyword specmanMethod crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all
|
|
36 syn keyword specmanMethod apply average count delete exists first_index get_indices
|
|
37 syn keyword specmanMethod has insert is_a_permutation is_empty key key_exists key_index
|
|
38 syn keyword specmanMethod last last_index max max_index max_value min min_index
|
|
39 syn keyword specmanMethod min_value or_all pop pop0 push push0 product resize reverse
|
|
40 syn keyword specmanMethod sort split sum top top0 unique clear is_all_iterations
|
|
41 syn keyword specmanMethod get_enclosing_unit hdl_path exec deep_compare deep_compare_physical
|
|
42 syn keyword specmanMethod pack unpack warning error fatal
|
|
43 syn match specmanMethod "size()"
|
|
44 syn keyword specmanPacking packing low high
|
|
45 syn keyword specmanType locker address
|
|
46 syn keyword specmanType body code vec chars
|
|
47 syn keyword specmanType integer real bool int long uint byte bits bit time string
|
|
48 syn keyword specmanType byte_array external_pointer
|
|
49 syn keyword specmanBoolean TRUE FALSE
|
|
50 syn keyword specmanPreCondit #ifdef #ifndef #else
|
|
51
|
|
52 syn keyword specmanConditional choose matches
|
|
53 syn keyword specmanConditional if then else when try
|
|
54
|
|
55
|
|
56
|
|
57 syn keyword specmanLabel case casex casez default
|
|
58
|
|
59 syn keyword specmanLogical and or not xor
|
|
60
|
|
61 syn keyword specmanRepeat until repeat while for from to step each do break continue
|
|
62 syn keyword specmanRepeat before next sequence always -kind network
|
|
63 syn keyword specmanRepeat index it me in new return result select
|
|
64
|
|
65 syn keyword specmanTemporal cycle sample events forever
|
|
66 syn keyword specmanTemporal wait change negedge rise fall delay sync sim true detach eventually emit
|
|
67
|
|
68 syn keyword specmanConstant MAX_INT MIN_INT NULL UNDEF
|
|
69
|
|
70 syn keyword specmanDefine define as computed type extend
|
|
71 syn keyword specmanDefine verilog vhdl variable global sys
|
|
72 syn keyword specmanStructure struct unit
|
|
73 syn keyword specmanInclude import
|
|
74 syn keyword specmanConstraint gen keep keeping soft before
|
|
75
|
|
76 syn keyword specmanSpecial untyped symtab ECHO DOECHO
|
|
77 syn keyword specmanFile files load module ntv source_ref script read write
|
|
78 syn keyword specmanFSM initial idle others posedge clock cycles
|
|
79
|
|
80
|
|
81 syn match specmanOperator "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]"
|
|
82 syn match specmanOperator "+="
|
|
83 syn match specmanOperator "-="
|
|
84 syn match specmanOperator "*="
|
|
85
|
|
86 syn match specmanComment "//.*" contains=specmanTodo
|
|
87 syn match specmanComment "--.*"
|
|
88 syn region specmanComment start="^'>"hs=s+2 end="^<'"he=e-2
|
|
89
|
|
90 syn match specmanHDL "'[`.a-zA-Z0-9_@\[\]]\+\>'"
|
|
91
|
|
92
|
|
93 syn match specmanCompare "=="
|
|
94 syn match specmanCompare "!==="
|
|
95 syn match specmanCompare "==="
|
|
96 syn match specmanCompare "!="
|
|
97 syn match specmanCompare ">="
|
|
98 syn match specmanCompare "<="
|
|
99 syn match specmanNumber "[0-9]:[0-9]"
|
|
100 syn match specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
|
|
101 syn match specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>"
|
|
102 syn match specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
|
|
103 syn match specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>"
|
|
104 syn match specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
|
|
105 syn match specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
|
|
106 syn match specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>"
|
|
107 syn match specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"
|
|
108
|
|
109 syn region specmanString start=+"+ end=+"+
|
|
110
|
|
111
|
|
112
|
|
113 "**********************************************************************
|
|
114 " I took this section from c.vim but I didnt succeded to make it work
|
|
115 " ANY one who dare jumping to this deep watter is more than welocome!
|
|
116 "**********************************************************************
|
|
117 ""catch errors caused by wrong parenthesis and brackets
|
|
118
|
|
119 "syn cluster specmanParenGroup contains=specmanParenError
|
|
120 "" ,specmanNumbera,specmanComment
|
|
121 "if exists("specman_no_bracket_error")
|
|
122 "syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup
|
|
123 "syn match specmanParenError ")"
|
|
124 "syn match specmanErrInParen contained "[{}]"
|
|
125 "else
|
|
126 "syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket
|
|
127 "syn match specmanParenError "[\])]"
|
|
128 "syn match specmanErrInParen contained "[\]{}]"
|
|
129 "syn region specmanBracket transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen
|
|
130 "syn match specmanErrInBracket contained "[);{}]"
|
|
131 "endif
|
|
132 "
|
|
133
|
|
134 "Modify the following as needed. The trade-off is performance versus
|
|
135 "functionality.
|
|
136
|
|
137 syn sync lines=50
|
|
138
|
|
139 " Define the default highlighting.
|
|
140 " For version 5.7 and earlier: only when not done already
|
|
141 " For version 5.8 and later: only when an item doesn't have highlighting yet
|
|
142 if version >= 508 || !exists("did_specman_syn_inits")
|
|
143 if version < 508
|
|
144 let did_specman_syn_inits = 1
|
|
145 command -nargs=+ HiLink hi link <args>
|
|
146 else
|
|
147 command -nargs=+ HiLink hi def link <args>
|
|
148 endif
|
|
149 " The default methods for highlighting. Can be overridden later
|
|
150 HiLink specmanConditional Conditional
|
|
151 HiLink specmanConstraint Conditional
|
|
152 HiLink specmanRepeat Repeat
|
|
153 HiLink specmanString String
|
|
154 HiLink specmanComment Comment
|
|
155 HiLink specmanConstant Macro
|
|
156 HiLink specmanNumber Number
|
|
157 HiLink specmanCompare Operator
|
|
158 HiLink specmanOperator Operator
|
|
159 HiLink specmanLogical Operator
|
|
160 HiLink specmanStatement Statement
|
|
161 HiLink specmanHDL SpecialChar
|
|
162 HiLink specmanMethod Function
|
|
163 HiLink specmanInclude Include
|
|
164 HiLink specmanStructure Structure
|
|
165 HiLink specmanBoolean Boolean
|
|
166 HiLink specmanFSM Label
|
|
167 HiLink specmanSpecial Special
|
|
168 HiLink specmanType Type
|
|
169 HiLink specmanTemporal Type
|
|
170 HiLink specmanFile Include
|
|
171 HiLink specmanPreCondit Include
|
|
172 HiLink specmanDefine Typedef
|
|
173 HiLink specmanLabel Label
|
|
174 HiLink specmanPacking keyword
|
|
175 HiLink specmanTodo Todo
|
|
176 HiLink specmanParenError Error
|
|
177 HiLink specmanErrInParen Error
|
|
178 HiLink specmanErrInBracket Error
|
|
179 delcommand HiLink
|
|
180 endif
|
|
181
|
|
182 let b:current_syntax = "specman"
|