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