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