1" Vim syntax file 2" Language: SPECMAN E-LANGUAGE 3" Maintainer: Or Freund <[email protected] ;[email protected]; [email protected]> 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 15if version < 600 16 syntax clear 17elseif exists("b:current_syntax") 18 finish 19endif 20 21syn keyword specmanTodo contained TODO todo ToDo FIXME XXX 22 23syn keyword specmanStatement var instance on compute start event expect check that routine 24syn keyword specmanStatement specman is also first only with like 25syn keyword specmanStatement list of all radix hex dec bin ignore illegal 26syn keyword specmanStatement traceable untraceable 27syn keyword specmanStatement cover using count_only trace_only at_least transition item ranges 28syn keyword specmanStatement cross text call task within 29 30syn keyword specmanMethod initialize non_terminal testgroup delayed exit finish 31syn keyword specmanMethod out append print outf appendf 32syn keyword specmanMethod post_generate pre_generate setup_test finalize_test extract_test 33syn keyword specmanMethod init run copy as_a set_config dut_error add clear lock quit 34syn keyword specmanMethod lock unlock release swap quit to_string value stop_run 35syn keyword specmanMethod crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all 36syn keyword specmanMethod apply average count delete exists first_index get_indices 37syn keyword specmanMethod has insert is_a_permutation is_empty key key_exists key_index 38syn keyword specmanMethod last last_index max max_index max_value min min_index 39syn keyword specmanMethod min_value or_all pop pop0 push push0 product resize reverse 40syn keyword specmanMethod sort split sum top top0 unique clear is_all_iterations 41syn keyword specmanMethod get_enclosing_unit hdl_path exec deep_compare deep_compare_physical 42syn keyword specmanMethod pack unpack warning error fatal 43syn match specmanMethod "size()" 44syn keyword specmanPacking packing low high 45syn keyword specmanType locker address 46syn keyword specmanType body code vec chars 47syn keyword specmanType integer real bool int long uint byte bits bit time string 48syn keyword specmanType byte_array external_pointer 49syn keyword specmanBoolean TRUE FALSE 50syn keyword specmanPreCondit #ifdef #ifndef #else 51 52syn keyword specmanConditional choose matches 53syn keyword specmanConditional if then else when try 54 55 56 57syn keyword specmanLabel case casex casez default 58 59syn keyword specmanLogical and or not xor 60 61syn keyword specmanRepeat until repeat while for from to step each do break continue 62syn keyword specmanRepeat before next sequence always -kind network 63syn keyword specmanRepeat index it me in new return result select 64 65syn keyword specmanTemporal cycle sample events forever 66syn keyword specmanTemporal wait change negedge rise fall delay sync sim true detach eventually emit 67 68syn keyword specmanConstant MAX_INT MIN_INT NULL UNDEF 69 70syn keyword specmanDefine define as computed type extend 71syn keyword specmanDefine verilog vhdl variable global sys 72syn keyword specmanStructure struct unit 73syn keyword specmanInclude import 74syn keyword specmanConstraint gen keep keeping soft before 75 76syn keyword specmanSpecial untyped symtab ECHO DOECHO 77syn keyword specmanFile files load module ntv source_ref script read write 78syn keyword specmanFSM initial idle others posedge clock cycles 79 80 81syn match specmanOperator "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]" 82syn match specmanOperator "+=" 83syn match specmanOperator "-=" 84syn match specmanOperator "*=" 85 86syn match specmanComment "//.*" contains=specmanTodo 87syn match specmanComment "--.*" 88syn region specmanComment start="^'>"hs=s+2 end="^<'"he=e-2 89 90syn match specmanHDL "'[`.a-zA-Z0-9_@\[\]]\+\>'" 91 92 93syn match specmanCompare "==" 94syn match specmanCompare "!===" 95syn match specmanCompare "===" 96syn match specmanCompare "!=" 97syn match specmanCompare ">=" 98syn match specmanCompare "<=" 99syn match specmanNumber "[0-9]:[0-9]" 100syn match specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>" 101syn match specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>" 102syn match specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>" 103syn match specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>" 104syn match specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>" 105syn match specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>" 106syn match specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>" 107syn match specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>" 108 109syn 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 137syn 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 142if 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 180endif 181 182let b:current_syntax = "specman" 183