forked from aniani/vim
		
	
		
			
	
	
		
			183 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			183 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	SPECMAN E-LANGUAGE | ||
|  | " Maintainer:	Or Freund <or@mobilian.com ;omf@gmx.co.uk; OrMeir@yahoo.com> | ||
|  | " Last Update: Wed Oct 24 2001 | ||
|  | 
 | ||
|  | "--------------------------------------------------------- | ||
|  | "| If anyone found an error or fix the parenthesis part  | | ||
|  | "| I will be happy to hear about it			 | | ||
|  | "| Thanks Or.						 | | ||
|  | "--------------------------------------------------------- | ||
|  | 
 | ||
|  | " Remove any old syntax stuff hanging around | ||
|  | " For version 5.x: Clear all syntax items | ||
|  | " For version 6.x: Quit when a syntax file was already loaded | ||
|  | if version < 600 | ||
|  |   syntax clear | ||
|  | elseif exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | syn keyword  specmanTodo	contained TODO todo ToDo FIXME XXX | ||
|  | 
 | ||
|  | syn keyword specmanStatement   var instance on compute start event expect check that routine | ||
|  | syn keyword specmanStatement   specman is also first only with like | ||
|  | syn keyword specmanStatement   list of all radix hex dec bin ignore illegal | ||
|  | syn keyword specmanStatement   traceable untraceable | ||
|  | syn keyword specmanStatement   cover using count_only trace_only at_least transition item ranges | ||
|  | syn keyword specmanStatement   cross text call task within | ||
|  | 
 | ||
|  | syn keyword specmanMethod      initialize non_terminal testgroup delayed exit finish | ||
|  | syn keyword specmanMethod      out append print outf appendf | ||
|  | syn keyword specmanMethod      post_generate pre_generate setup_test finalize_test extract_test | ||
|  | syn keyword specmanMethod      init run copy as_a set_config dut_error add clear lock quit | ||
|  | syn keyword specmanMethod      lock unlock release swap quit to_string value stop_run | ||
|  | syn keyword specmanMethod      crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all | ||
|  | syn keyword specmanMethod      apply average count delete exists first_index get_indices | ||
|  | syn keyword specmanMethod      has insert is_a_permutation is_empty key key_exists key_index | ||
|  | syn keyword specmanMethod      last last_index max max_index max_value min min_index | ||
|  | syn keyword specmanMethod      min_value or_all pop pop0 push push0 product resize reverse | ||
|  | syn keyword specmanMethod      sort split sum top top0 unique clear is_all_iterations | ||
|  | syn keyword specmanMethod      get_enclosing_unit hdl_path exec deep_compare deep_compare_physical | ||
|  | syn keyword specmanMethod      pack unpack warning error fatal | ||
|  | syn match   specmanMethod      "size()" | ||
|  | syn keyword specmanPacking     packing low high | ||
|  | syn keyword specmanType        locker address | ||
|  | syn keyword specmanType        body code vec chars | ||
|  | syn keyword specmanType        integer real bool int long uint byte bits bit time string | ||
|  | syn keyword specmanType        byte_array external_pointer | ||
|  | syn keyword specmanBoolean     TRUE FALSE | ||
|  | syn keyword specmanPreCondit   #ifdef #ifndef #else | ||
|  | 
 | ||
|  | syn keyword specmanConditional choose matches | ||
|  | syn keyword specmanConditional if then else when try | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | syn keyword specmanLabel  case casex casez default | ||
|  | 
 | ||
|  | syn keyword specmanLogical     and or not xor | ||
|  | 
 | ||
|  | syn keyword specmanRepeat      until repeat while for from to step each do break continue | ||
|  | syn keyword specmanRepeat      before next sequence always -kind network | ||
|  | syn keyword specmanRepeat      index it me in new return result select | ||
|  | 
 | ||
|  | syn keyword specmanTemporal    cycle sample events forever | ||
|  | syn keyword specmanTemporal    wait  change  negedge rise fall delay sync sim true detach eventually emit | ||
|  | 
 | ||
|  | syn keyword specmanConstant    MAX_INT MIN_INT NULL UNDEF | ||
|  | 
 | ||
|  | syn keyword specmanDefine       define as computed type extend | ||
|  | syn keyword specmanDefine       verilog vhdl variable global sys | ||
|  | syn keyword specmanStructure    struct unit | ||
|  | syn keyword specmanInclude     import | ||
|  | syn keyword specmanConstraint  gen keep keeping soft	before | ||
|  | 
 | ||
|  | syn keyword specmanSpecial     untyped symtab ECHO DOECHO | ||
|  | syn keyword specmanFile        files load module ntv source_ref script read write | ||
|  | syn keyword specmanFSM	       initial idle others posedge clock cycles | ||
|  | 
 | ||
|  | 
 | ||
|  | syn match   specmanOperator    "[&|~><!)(*%@+/=?:;}{,.\^\-\[\]]" | ||
|  | syn match   specmanOperator    "+=" | ||
|  | syn match   specmanOperator    "-=" | ||
|  | syn match   specmanOperator    "*=" | ||
|  | 
 | ||
|  | syn match   specmanComment     "//.*"  contains=specmanTodo | ||
|  | syn match   specmanComment     "--.*" | ||
|  | syn region  specmanComment     start="^'>"hs=s+2 end="^<'"he=e-2 | ||
|  | 
 | ||
|  | syn match   specmanHDL	       "'[`.a-zA-Z0-9_@\[\]]\+\>'" | ||
|  | 
 | ||
|  | 
 | ||
|  | syn match   specmanCompare    "==" | ||
|  | syn match   specmanCompare    "!===" | ||
|  | syn match   specmanCompare    "===" | ||
|  | syn match   specmanCompare    "!=" | ||
|  | syn match   specmanCompare    ">=" | ||
|  | syn match   specmanCompare    "<=" | ||
|  | syn match   specmanNumber "[0-9]:[0-9]" | ||
|  | syn match   specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>" | ||
|  | syn match   specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>" | ||
|  | 
 | ||
|  | syn region  specmanString start=+"+  end=+"+ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | "********************************************************************** | ||
|  | " I took this section from c.vim but I didnt succeded to make it work | ||
|  | " ANY one who dare jumping to this deep watter is more than welocome! | ||
|  | "********************************************************************** | ||
|  | ""catch errors caused by wrong parenthesis and brackets | ||
|  | 
 | ||
|  | "syn cluster     specmanParenGroup     contains=specmanParenError | ||
|  | "" ,specmanNumbera,specmanComment | ||
|  | "if exists("specman_no_bracket_error") | ||
|  | "syn region    specmanParen	     transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup | ||
|  | "syn match     specmanParenError     ")" | ||
|  | "syn match     specmanErrInParen     contained "[{}]" | ||
|  | "else | ||
|  | "syn region    specmanParen	     transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket | ||
|  | "syn match     specmanParenError     "[\])]" | ||
|  | "syn match     specmanErrInParen     contained "[\]{}]" | ||
|  | "syn region    specmanBracket	     transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen | ||
|  | "syn match     specmanErrInBracket   contained "[);{}]" | ||
|  | "endif | ||
|  | " | ||
|  | 
 | ||
|  | "Modify the following as needed.  The trade-off is performance versus | ||
|  | "functionality. | ||
|  | 
 | ||
|  | syn sync lines=50 | ||
|  | 
 | ||
|  | " Define the default highlighting. | ||
|  | " For version 5.7 and earlier: only when not done already | ||
|  | " For version 5.8 and later: only when an item doesn't have highlighting yet | ||
|  | if version >= 508 || !exists("did_specman_syn_inits") | ||
|  |   if version < 508 | ||
|  |     let did_specman_syn_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  |   " The default methods for highlighting.  Can be overridden later | ||
|  | 	HiLink	specmanConditional	Conditional | ||
|  | 	HiLink	specmanConstraint	Conditional | ||
|  | 	HiLink	specmanRepeat		Repeat | ||
|  | 	HiLink	specmanString		String | ||
|  | 	HiLink	specmanComment		Comment | ||
|  | 	HiLink	specmanConstant		Macro | ||
|  | 	HiLink	specmanNumber		Number | ||
|  | 	HiLink	specmanCompare		Operator | ||
|  | 	HiLink	specmanOperator		Operator | ||
|  | 	HiLink	specmanLogical		Operator | ||
|  | 	HiLink	specmanStatement	Statement | ||
|  | 	HiLink	specmanHDL		SpecialChar | ||
|  | 	HiLink	specmanMethod		Function | ||
|  | 	HiLink	specmanInclude		Include | ||
|  | 	HiLink	specmanStructure	Structure | ||
|  | 	HiLink	specmanBoolean		Boolean | ||
|  | 	HiLink	specmanFSM		Label | ||
|  | 	HiLink	specmanSpecial		Special | ||
|  | 	HiLink	specmanType		Type | ||
|  | 	HiLink	specmanTemporal		Type | ||
|  | 	HiLink	specmanFile		Include | ||
|  | 	HiLink	specmanPreCondit	Include | ||
|  | 	HiLink	specmanDefine		Typedef | ||
|  | 	HiLink	specmanLabel		Label | ||
|  | 	HiLink	specmanPacking		keyword | ||
|  | 	HiLink	specmanTodo		Todo | ||
|  | 	HiLink	specmanParenError	Error | ||
|  | 	HiLink	specmanErrInParen	Error | ||
|  | 	HiLink	specmanErrInBracket	Error | ||
|  | 	delcommand	HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "specman" |