xref: /vim-8.2.3635/runtime/syntax/specman.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	SPECMAN E-LANGUAGE
3071d4279SBram Moolenaar" Maintainer:	Or Freund <[email protected] ;[email protected]; [email protected]>
4071d4279SBram Moolenaar" Last Update: Wed Oct 24 2001
5071d4279SBram Moolenaar
6071d4279SBram Moolenaar"---------------------------------------------------------
7071d4279SBram Moolenaar"| If anyone found an error or fix the parenthesis part  |
8071d4279SBram Moolenaar"| I will be happy to hear about it			 |
9071d4279SBram Moolenaar"| Thanks Or.						 |
10071d4279SBram Moolenaar"---------------------------------------------------------
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" Remove any old syntax stuff hanging around
1389bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1489bcfda6SBram Moolenaarif exists("b:current_syntax")
15071d4279SBram Moolenaar  finish
16071d4279SBram Moolenaarendif
17071d4279SBram Moolenaar
18071d4279SBram Moolenaarsyn keyword  specmanTodo	contained TODO todo ToDo FIXME XXX
19071d4279SBram Moolenaar
20071d4279SBram Moolenaarsyn keyword specmanStatement   var instance on compute start event expect check that routine
21071d4279SBram Moolenaarsyn keyword specmanStatement   specman is also first only with like
22071d4279SBram Moolenaarsyn keyword specmanStatement   list of all radix hex dec bin ignore illegal
23071d4279SBram Moolenaarsyn keyword specmanStatement   traceable untraceable
24071d4279SBram Moolenaarsyn keyword specmanStatement   cover using count_only trace_only at_least transition item ranges
25071d4279SBram Moolenaarsyn keyword specmanStatement   cross text call task within
26071d4279SBram Moolenaar
27071d4279SBram Moolenaarsyn keyword specmanMethod      initialize non_terminal testgroup delayed exit finish
28071d4279SBram Moolenaarsyn keyword specmanMethod      out append print outf appendf
29071d4279SBram Moolenaarsyn keyword specmanMethod      post_generate pre_generate setup_test finalize_test extract_test
30071d4279SBram Moolenaarsyn keyword specmanMethod      init run copy as_a set_config dut_error add clear lock quit
31071d4279SBram Moolenaarsyn keyword specmanMethod      lock unlock release swap quit to_string value stop_run
32071d4279SBram Moolenaarsyn keyword specmanMethod      crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all
33071d4279SBram Moolenaarsyn keyword specmanMethod      apply average count delete exists first_index get_indices
34071d4279SBram Moolenaarsyn keyword specmanMethod      has insert is_a_permutation is_empty key key_exists key_index
35071d4279SBram Moolenaarsyn keyword specmanMethod      last last_index max max_index max_value min min_index
36071d4279SBram Moolenaarsyn keyword specmanMethod      min_value or_all pop pop0 push push0 product resize reverse
37071d4279SBram Moolenaarsyn keyword specmanMethod      sort split sum top top0 unique clear is_all_iterations
38071d4279SBram Moolenaarsyn keyword specmanMethod      get_enclosing_unit hdl_path exec deep_compare deep_compare_physical
39071d4279SBram Moolenaarsyn keyword specmanMethod      pack unpack warning error fatal
40071d4279SBram Moolenaarsyn match   specmanMethod      "size()"
41071d4279SBram Moolenaarsyn keyword specmanPacking     packing low high
42071d4279SBram Moolenaarsyn keyword specmanType        locker address
43071d4279SBram Moolenaarsyn keyword specmanType        body code vec chars
44071d4279SBram Moolenaarsyn keyword specmanType        integer real bool int long uint byte bits bit time string
45071d4279SBram Moolenaarsyn keyword specmanType        byte_array external_pointer
46071d4279SBram Moolenaarsyn keyword specmanBoolean     TRUE FALSE
47071d4279SBram Moolenaarsyn keyword specmanPreCondit   #ifdef #ifndef #else
48071d4279SBram Moolenaar
49071d4279SBram Moolenaarsyn keyword specmanConditional choose matches
50071d4279SBram Moolenaarsyn keyword specmanConditional if then else when try
51071d4279SBram Moolenaar
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar
54071d4279SBram Moolenaarsyn keyword specmanLabel  case casex casez default
55071d4279SBram Moolenaar
56071d4279SBram Moolenaarsyn keyword specmanLogical     and or not xor
57071d4279SBram Moolenaar
58071d4279SBram Moolenaarsyn keyword specmanRepeat      until repeat while for from to step each do break continue
59071d4279SBram Moolenaarsyn keyword specmanRepeat      before next sequence always -kind network
60071d4279SBram Moolenaarsyn keyword specmanRepeat      index it me in new return result select
61071d4279SBram Moolenaar
62071d4279SBram Moolenaarsyn keyword specmanTemporal    cycle sample events forever
63071d4279SBram Moolenaarsyn keyword specmanTemporal    wait  change  negedge rise fall delay sync sim true detach eventually emit
64071d4279SBram Moolenaar
65071d4279SBram Moolenaarsyn keyword specmanConstant    MAX_INT MIN_INT NULL UNDEF
66071d4279SBram Moolenaar
67071d4279SBram Moolenaarsyn keyword specmanDefine       define as computed type extend
68071d4279SBram Moolenaarsyn keyword specmanDefine       verilog vhdl variable global sys
69071d4279SBram Moolenaarsyn keyword specmanStructure    struct unit
70071d4279SBram Moolenaarsyn keyword specmanInclude     import
71071d4279SBram Moolenaarsyn keyword specmanConstraint  gen keep keeping soft	before
72071d4279SBram Moolenaar
73071d4279SBram Moolenaarsyn keyword specmanSpecial     untyped symtab ECHO DOECHO
74071d4279SBram Moolenaarsyn keyword specmanFile        files load module ntv source_ref script read write
75071d4279SBram Moolenaarsyn keyword specmanFSM	       initial idle others posedge clock cycles
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar
78071d4279SBram Moolenaarsyn match   specmanOperator    "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]"
79071d4279SBram Moolenaarsyn match   specmanOperator    "+="
80071d4279SBram Moolenaarsyn match   specmanOperator    "-="
81071d4279SBram Moolenaarsyn match   specmanOperator    "*="
82071d4279SBram Moolenaar
83071d4279SBram Moolenaarsyn match   specmanComment     "//.*"  contains=specmanTodo
84071d4279SBram Moolenaarsyn match   specmanComment     "--.*"
85071d4279SBram Moolenaarsyn region  specmanComment     start="^'>"hs=s+2 end="^<'"he=e-2
86071d4279SBram Moolenaar
87071d4279SBram Moolenaarsyn match   specmanHDL	       "'[`.a-zA-Z0-9_@\[\]]\+\>'"
88071d4279SBram Moolenaar
89071d4279SBram Moolenaar
90071d4279SBram Moolenaarsyn match   specmanCompare    "=="
91071d4279SBram Moolenaarsyn match   specmanCompare    "!==="
92071d4279SBram Moolenaarsyn match   specmanCompare    "==="
93071d4279SBram Moolenaarsyn match   specmanCompare    "!="
94071d4279SBram Moolenaarsyn match   specmanCompare    ">="
95071d4279SBram Moolenaarsyn match   specmanCompare    "<="
96071d4279SBram Moolenaarsyn match   specmanNumber "[0-9]:[0-9]"
97071d4279SBram Moolenaarsyn match   specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
98071d4279SBram Moolenaarsyn match   specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>"
99071d4279SBram Moolenaarsyn match   specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
100071d4279SBram Moolenaarsyn match   specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>"
101071d4279SBram Moolenaarsyn match   specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
102071d4279SBram Moolenaarsyn match   specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
103071d4279SBram Moolenaarsyn match   specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>"
104071d4279SBram Moolenaarsyn match   specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"
105071d4279SBram Moolenaar
106071d4279SBram Moolenaarsyn region  specmanString start=+"+  end=+"+
107071d4279SBram Moolenaar
108071d4279SBram Moolenaar
109071d4279SBram Moolenaar
110071d4279SBram Moolenaar"**********************************************************************
111071d4279SBram Moolenaar" I took this section from c.vim but I didnt succeded to make it work
112071d4279SBram Moolenaar" ANY one who dare jumping to this deep watter is more than welocome!
113071d4279SBram Moolenaar"**********************************************************************
114071d4279SBram Moolenaar""catch errors caused by wrong parenthesis and brackets
115071d4279SBram Moolenaar
116071d4279SBram Moolenaar"syn cluster     specmanParenGroup     contains=specmanParenError
117071d4279SBram Moolenaar"" ,specmanNumbera,specmanComment
118071d4279SBram Moolenaar"if exists("specman_no_bracket_error")
119071d4279SBram Moolenaar"syn region    specmanParen	     transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup
120071d4279SBram Moolenaar"syn match     specmanParenError     ")"
121071d4279SBram Moolenaar"syn match     specmanErrInParen     contained "[{}]"
122071d4279SBram Moolenaar"else
123071d4279SBram Moolenaar"syn region    specmanParen	     transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket
124071d4279SBram Moolenaar"syn match     specmanParenError     "[\])]"
125071d4279SBram Moolenaar"syn match     specmanErrInParen     contained "[\]{}]"
126071d4279SBram Moolenaar"syn region    specmanBracket	     transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen
127071d4279SBram Moolenaar"syn match     specmanErrInBracket   contained "[);{}]"
128071d4279SBram Moolenaar"endif
129071d4279SBram Moolenaar"
130071d4279SBram Moolenaar
131071d4279SBram Moolenaar"Modify the following as needed.  The trade-off is performance versus
132071d4279SBram Moolenaar"functionality.
133071d4279SBram Moolenaar
134071d4279SBram Moolenaarsyn sync lines=50
135071d4279SBram Moolenaar
136071d4279SBram Moolenaar" Define the default highlighting.
13789bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
138071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
139*f37506f6SBram Moolenaarhi def link specmanConditional	Conditional
140*f37506f6SBram Moolenaarhi def link specmanConstraint	Conditional
141*f37506f6SBram Moolenaarhi def link specmanRepeat		Repeat
142*f37506f6SBram Moolenaarhi def link specmanString		String
143*f37506f6SBram Moolenaarhi def link specmanComment		Comment
144*f37506f6SBram Moolenaarhi def link specmanConstant		Macro
145*f37506f6SBram Moolenaarhi def link specmanNumber		Number
146*f37506f6SBram Moolenaarhi def link specmanCompare		Operator
147*f37506f6SBram Moolenaarhi def link specmanOperator		Operator
148*f37506f6SBram Moolenaarhi def link specmanLogical		Operator
149*f37506f6SBram Moolenaarhi def link specmanStatement	Statement
150*f37506f6SBram Moolenaarhi def link specmanHDL		SpecialChar
151*f37506f6SBram Moolenaarhi def link specmanMethod		Function
152*f37506f6SBram Moolenaarhi def link specmanInclude		Include
153*f37506f6SBram Moolenaarhi def link specmanStructure	Structure
154*f37506f6SBram Moolenaarhi def link specmanBoolean		Boolean
155*f37506f6SBram Moolenaarhi def link specmanFSM		Label
156*f37506f6SBram Moolenaarhi def link specmanSpecial		Special
157*f37506f6SBram Moolenaarhi def link specmanType		Type
158*f37506f6SBram Moolenaarhi def link specmanTemporal		Type
159*f37506f6SBram Moolenaarhi def link specmanFile		Include
160*f37506f6SBram Moolenaarhi def link specmanPreCondit	Include
161*f37506f6SBram Moolenaarhi def link specmanDefine		Typedef
162*f37506f6SBram Moolenaarhi def link specmanLabel		Label
163*f37506f6SBram Moolenaarhi def link specmanPacking		keyword
164*f37506f6SBram Moolenaarhi def link specmanTodo		Todo
165*f37506f6SBram Moolenaarhi def link specmanParenError	Error
166*f37506f6SBram Moolenaarhi def link specmanErrInParen	Error
167*f37506f6SBram Moolenaarhi def link specmanErrInBracket	Error
168071d4279SBram Moolenaar
169071d4279SBram Moolenaarlet b:current_syntax = "specman"
170