131 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	CUPL
 | |
| " Maintainer:	John Cook <john.cook@kla-tencor.com>
 | |
| " Last Change:	2001 Apr 25
 | |
| 
 | |
| " 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
 | |
| 
 | |
| " this language is oblivious to case.
 | |
| syn case ignore
 | |
| 
 | |
| " A bunch of keywords
 | |
| syn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents
 | |
| syn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents
 | |
| 
 | |
| syn keyword cuplTodo contained TODO XXX FIXME
 | |
| 
 | |
| " cuplHeaderContents uses default highlighting except for numbers
 | |
| syn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained
 | |
| 
 | |
| " String contstants
 | |
| syn region cuplString start=+'+ end=+'+
 | |
| syn region cuplString start=+"+ end=+"+
 | |
| 
 | |
| syn keyword cuplStatement append condition
 | |
| syn keyword cuplStatement default else
 | |
| syn keyword cuplStatement field fld format function fuse
 | |
| syn keyword cuplStatement group if jump loc
 | |
| syn keyword cuplStatement macro min node out
 | |
| syn keyword cuplStatement pin pinnode present table
 | |
| syn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet
 | |
| 
 | |
| syn keyword cuplFunction log2 log8 log16 log
 | |
| 
 | |
| " Valid integer number formats (decimal, binary, octal, hex)
 | |
| syn match cuplNumber "\<[-+]\=[0-9]\+\>"
 | |
| syn match cuplNumber "'d'[0-9]\+\>"
 | |
| syn match cuplNumber "'b'[01x]\+\>"
 | |
| syn match cuplNumber "'o'[0-7x]\+\>"
 | |
| syn match cuplNumber "'h'[0-9a-fx]\+\>"
 | |
| 
 | |
| " operators
 | |
| syn match cuplLogicalOperator "[!#&$]"
 | |
| syn match cuplArithmeticOperator "[-+*/%]"
 | |
| syn match cuplArithmeticOperator "\*\*"
 | |
| syn match cuplAssignmentOperator ":\=="
 | |
| syn match cuplEqualityOperator ":"
 | |
| syn match cuplTruthTableOperator "=>"
 | |
| 
 | |
| " Signal extensions
 | |
| syn match cuplExtension "\.[as][pr]\>"
 | |
| syn match cuplExtension "\.oe\>"
 | |
| syn match cuplExtension "\.oemux\>"
 | |
| syn match cuplExtension "\.[dlsrjk]\>"
 | |
| syn match cuplExtension "\.ck\>"
 | |
| syn match cuplExtension "\.dq\>"
 | |
| syn match cuplExtension "\.ckmux\>"
 | |
| syn match cuplExtension "\.tec\>"
 | |
| syn match cuplExtension "\.cnt\>"
 | |
| 
 | |
| syn match cuplRangeOperator "\.\." contained
 | |
| 
 | |
| " match ranges like memadr:[0000..1FFF]
 | |
| " and highlight both the numbers and the .. operator
 | |
| syn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator
 | |
| 
 | |
| " match vectors of type [name3..0] (decimal numbers only)
 | |
| " but assign them no special highlighting except for the .. operator
 | |
| syn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator
 | |
| 
 | |
| " other special characters
 | |
| syn match cuplSpecialChar "[\[\](){},;]"
 | |
| 
 | |
| " directives
 | |
| " (define these after cuplOperator so $xxx overrides $)
 | |
| syn match cuplDirective "\$msg"
 | |
| syn match cuplDirective "\$macro"
 | |
| syn match cuplDirective "\$mend"
 | |
| syn match cuplDirective "\$repeat"
 | |
| syn match cuplDirective "\$repend"
 | |
| syn match cuplDirective "\$define"
 | |
| syn match cuplDirective "\$include"
 | |
| 
 | |
| " multi-line comments
 | |
| syn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo
 | |
| 
 | |
| syn sync minlines=1
 | |
| 
 | |
| " 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_cupl_syn_inits")
 | |
|   if version < 508
 | |
|     let did_cupl_syn_inits = 1
 | |
|     command -nargs=+ HiLink hi link <args>
 | |
|   else
 | |
|     command -nargs=+ HiLink hi def link <args>
 | |
|   endif
 | |
| 
 | |
|   " The default highlighting.
 | |
|   HiLink cuplHeader	cuplStatement
 | |
|   HiLink cuplLogicalOperator	 cuplOperator
 | |
|   HiLink cuplRangeOperator	 cuplOperator
 | |
|   HiLink cuplArithmeticOperator cuplOperator
 | |
|   HiLink cuplAssignmentOperator cuplOperator
 | |
|   HiLink cuplEqualityOperator	 cuplOperator
 | |
|   HiLink cuplTruthTableOperator cuplOperator
 | |
|   HiLink cuplOperator	cuplStatement
 | |
|   HiLink cuplFunction	cuplStatement
 | |
|   HiLink cuplStatement Statement
 | |
|   HiLink cuplNumberRange cuplNumber
 | |
|   HiLink cuplNumber	  cuplString
 | |
|   HiLink cuplString	String
 | |
|   HiLink cuplComment	Comment
 | |
|   HiLink cuplExtension   cuplSpecial
 | |
|   HiLink cuplSpecialChar cuplSpecial
 | |
|   HiLink cuplSpecial	Special
 | |
|   HiLink cuplDirective PreProc
 | |
|   HiLink cuplTodo	Todo
 | |
| 
 | |
|   delcommand HiLink
 | |
| endif
 | |
| 
 | |
| let b:current_syntax = "cupl"
 | |
| " vim:ts=8
 |