1" Vim syntax file 2" Language: CUPL 3" Maintainer: John Cook <john.cook@kla-tencor.com> 4" Last Change: 2001 Apr 25 5 6" For version 5.x: Clear all syntax items 7" For version 6.x: Quit when a syntax file was already loaded 8if version < 600 9 syntax clear 10elseif exists("b:current_syntax") 11 finish 12endif 13 14" this language is oblivious to case. 15syn case ignore 16 17" A bunch of keywords 18syn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents 19syn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents 20 21syn keyword cuplTodo contained TODO XXX FIXME 22 23" cuplHeaderContents uses default highlighting except for numbers 24syn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained 25 26" String contstants 27syn region cuplString start=+'+ end=+'+ 28syn region cuplString start=+"+ end=+"+ 29 30syn keyword cuplStatement append condition 31syn keyword cuplStatement default else 32syn keyword cuplStatement field fld format function fuse 33syn keyword cuplStatement group if jump loc 34syn keyword cuplStatement macro min node out 35syn keyword cuplStatement pin pinnode present table 36syn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet 37 38syn keyword cuplFunction log2 log8 log16 log 39 40" Valid integer number formats (decimal, binary, octal, hex) 41syn match cuplNumber "\<[-+]\=[0-9]\+\>" 42syn match cuplNumber "'d'[0-9]\+\>" 43syn match cuplNumber "'b'[01x]\+\>" 44syn match cuplNumber "'o'[0-7x]\+\>" 45syn match cuplNumber "'h'[0-9a-fx]\+\>" 46 47" operators 48syn match cuplLogicalOperator "[!#&$]" 49syn match cuplArithmeticOperator "[-+*/%]" 50syn match cuplArithmeticOperator "\*\*" 51syn match cuplAssignmentOperator ":\==" 52syn match cuplEqualityOperator ":" 53syn match cuplTruthTableOperator "=>" 54 55" Signal extensions 56syn match cuplExtension "\.[as][pr]\>" 57syn match cuplExtension "\.oe\>" 58syn match cuplExtension "\.oemux\>" 59syn match cuplExtension "\.[dlsrjk]\>" 60syn match cuplExtension "\.ck\>" 61syn match cuplExtension "\.dq\>" 62syn match cuplExtension "\.ckmux\>" 63syn match cuplExtension "\.tec\>" 64syn match cuplExtension "\.cnt\>" 65 66syn match cuplRangeOperator "\.\." contained 67 68" match ranges like memadr:[0000..1FFF] 69" and highlight both the numbers and the .. operator 70syn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator 71 72" match vectors of type [name3..0] (decimal numbers only) 73" but assign them no special highlighting except for the .. operator 74syn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator 75 76" other special characters 77syn match cuplSpecialChar "[\[\](){},;]" 78 79" directives 80" (define these after cuplOperator so $xxx overrides $) 81syn match cuplDirective "\$msg" 82syn match cuplDirective "\$macro" 83syn match cuplDirective "\$mend" 84syn match cuplDirective "\$repeat" 85syn match cuplDirective "\$repend" 86syn match cuplDirective "\$define" 87syn match cuplDirective "\$include" 88 89" multi-line comments 90syn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo 91 92syn sync minlines=1 93 94" Define the default highlighting. 95" For version 5.7 and earlier: only when not done already 96" For version 5.8 and later: only when an item doesn't have highlighting yet 97if version >= 508 || !exists("did_cupl_syn_inits") 98 if version < 508 99 let did_cupl_syn_inits = 1 100 command -nargs=+ HiLink hi link <args> 101 else 102 command -nargs=+ HiLink hi def link <args> 103 endif 104 105 " The default highlighting. 106 HiLink cuplHeader cuplStatement 107 HiLink cuplLogicalOperator cuplOperator 108 HiLink cuplRangeOperator cuplOperator 109 HiLink cuplArithmeticOperator cuplOperator 110 HiLink cuplAssignmentOperator cuplOperator 111 HiLink cuplEqualityOperator cuplOperator 112 HiLink cuplTruthTableOperator cuplOperator 113 HiLink cuplOperator cuplStatement 114 HiLink cuplFunction cuplStatement 115 HiLink cuplStatement Statement 116 HiLink cuplNumberRange cuplNumber 117 HiLink cuplNumber cuplString 118 HiLink cuplString String 119 HiLink cuplComment Comment 120 HiLink cuplExtension cuplSpecial 121 HiLink cuplSpecialChar cuplSpecial 122 HiLink cuplSpecial Special 123 HiLink cuplDirective PreProc 124 HiLink cuplTodo Todo 125 126 delcommand HiLink 127endif 128 129let b:current_syntax = "cupl" 130" vim:ts=8 131