1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: CUPL 3b6b046b2SBram Moolenaar" Maintainer: John Cook <[email protected]> 4b6b046b2SBram Moolenaar" Last Change: 2011 Dec 27 5071d4279SBram Moolenaar 689bcfda6SBram Moolenaar" quit when a syntax file was already loaded 789bcfda6SBram Moolenaarif exists("b:current_syntax") 8071d4279SBram Moolenaar finish 9071d4279SBram Moolenaarendif 10071d4279SBram Moolenaar 11b6b046b2SBram Moolenaarlet s:cpo_save = &cpo 12b6b046b2SBram Moolenaarset cpo&vim 13b6b046b2SBram Moolenaar 14071d4279SBram Moolenaar" this language is oblivious to case. 15071d4279SBram Moolenaarsyn case ignore 16071d4279SBram Moolenaar 17071d4279SBram Moolenaar" A bunch of keywords 18071d4279SBram Moolenaarsyn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents 19071d4279SBram Moolenaarsyn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents 20071d4279SBram Moolenaar 21071d4279SBram Moolenaarsyn keyword cuplTodo contained TODO XXX FIXME 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar" cuplHeaderContents uses default highlighting except for numbers 24071d4279SBram Moolenaarsyn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained 25071d4279SBram Moolenaar 26*6c391a74SBram Moolenaar" String constants 27071d4279SBram Moolenaarsyn region cuplString start=+'+ end=+'+ 28071d4279SBram Moolenaarsyn region cuplString start=+"+ end=+"+ 29071d4279SBram Moolenaar 30071d4279SBram Moolenaarsyn keyword cuplStatement append condition 31071d4279SBram Moolenaarsyn keyword cuplStatement default else 32071d4279SBram Moolenaarsyn keyword cuplStatement field fld format function fuse 33071d4279SBram Moolenaarsyn keyword cuplStatement group if jump loc 34071d4279SBram Moolenaarsyn keyword cuplStatement macro min node out 35071d4279SBram Moolenaarsyn keyword cuplStatement pin pinnode present table 36071d4279SBram Moolenaarsyn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet 37071d4279SBram Moolenaar 38071d4279SBram Moolenaarsyn keyword cuplFunction log2 log8 log16 log 39071d4279SBram Moolenaar 40071d4279SBram Moolenaar" Valid integer number formats (decimal, binary, octal, hex) 41071d4279SBram Moolenaarsyn match cuplNumber "\<[-+]\=[0-9]\+\>" 42071d4279SBram Moolenaarsyn match cuplNumber "'d'[0-9]\+\>" 43071d4279SBram Moolenaarsyn match cuplNumber "'b'[01x]\+\>" 44071d4279SBram Moolenaarsyn match cuplNumber "'o'[0-7x]\+\>" 45071d4279SBram Moolenaarsyn match cuplNumber "'h'[0-9a-fx]\+\>" 46071d4279SBram Moolenaar 47071d4279SBram Moolenaar" operators 48071d4279SBram Moolenaarsyn match cuplLogicalOperator "[!#&$]" 49071d4279SBram Moolenaarsyn match cuplArithmeticOperator "[-+*/%]" 50071d4279SBram Moolenaarsyn match cuplArithmeticOperator "\*\*" 51071d4279SBram Moolenaarsyn match cuplAssignmentOperator ":\==" 52071d4279SBram Moolenaarsyn match cuplEqualityOperator ":" 53071d4279SBram Moolenaarsyn match cuplTruthTableOperator "=>" 54071d4279SBram Moolenaar 55071d4279SBram Moolenaar" Signal extensions 56071d4279SBram Moolenaarsyn match cuplExtension "\.[as][pr]\>" 57071d4279SBram Moolenaarsyn match cuplExtension "\.oe\>" 58071d4279SBram Moolenaarsyn match cuplExtension "\.oemux\>" 59071d4279SBram Moolenaarsyn match cuplExtension "\.[dlsrjk]\>" 60071d4279SBram Moolenaarsyn match cuplExtension "\.ck\>" 61071d4279SBram Moolenaarsyn match cuplExtension "\.dq\>" 62071d4279SBram Moolenaarsyn match cuplExtension "\.ckmux\>" 63071d4279SBram Moolenaarsyn match cuplExtension "\.tec\>" 64071d4279SBram Moolenaarsyn match cuplExtension "\.cnt\>" 65071d4279SBram Moolenaar 66071d4279SBram Moolenaarsyn match cuplRangeOperator "\.\." contained 67071d4279SBram Moolenaar 68071d4279SBram Moolenaar" match ranges like memadr:[0000..1FFF] 69071d4279SBram Moolenaar" and highlight both the numbers and the .. operator 70071d4279SBram Moolenaarsyn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator 71071d4279SBram Moolenaar 72071d4279SBram Moolenaar" match vectors of type [name3..0] (decimal numbers only) 73071d4279SBram Moolenaar" but assign them no special highlighting except for the .. operator 74071d4279SBram Moolenaarsyn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator 75071d4279SBram Moolenaar 76071d4279SBram Moolenaar" other special characters 77071d4279SBram Moolenaarsyn match cuplSpecialChar "[\[\](){},;]" 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar" directives 80071d4279SBram Moolenaar" (define these after cuplOperator so $xxx overrides $) 81071d4279SBram Moolenaarsyn match cuplDirective "\$msg" 82071d4279SBram Moolenaarsyn match cuplDirective "\$macro" 83071d4279SBram Moolenaarsyn match cuplDirective "\$mend" 84071d4279SBram Moolenaarsyn match cuplDirective "\$repeat" 85071d4279SBram Moolenaarsyn match cuplDirective "\$repend" 86071d4279SBram Moolenaarsyn match cuplDirective "\$define" 87071d4279SBram Moolenaarsyn match cuplDirective "\$include" 88071d4279SBram Moolenaar 89071d4279SBram Moolenaar" multi-line comments 90071d4279SBram Moolenaarsyn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo 91071d4279SBram Moolenaar 92071d4279SBram Moolenaarsyn sync minlines=1 93071d4279SBram Moolenaar 94071d4279SBram Moolenaar" Define the default highlighting. 9589bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 96071d4279SBram Moolenaar 97071d4279SBram Moolenaar" The default highlighting. 98f37506f6SBram Moolenaarhi def link cuplHeader cuplStatement 99f37506f6SBram Moolenaarhi def link cuplLogicalOperator cuplOperator 100f37506f6SBram Moolenaarhi def link cuplRangeOperator cuplOperator 101f37506f6SBram Moolenaarhi def link cuplArithmeticOperator cuplOperator 102f37506f6SBram Moolenaarhi def link cuplAssignmentOperator cuplOperator 103f37506f6SBram Moolenaarhi def link cuplEqualityOperator cuplOperator 104f37506f6SBram Moolenaarhi def link cuplTruthTableOperator cuplOperator 105f37506f6SBram Moolenaarhi def link cuplOperator cuplStatement 106f37506f6SBram Moolenaarhi def link cuplFunction cuplStatement 107f37506f6SBram Moolenaarhi def link cuplStatement Statement 108f37506f6SBram Moolenaarhi def link cuplNumberRange cuplNumber 109f37506f6SBram Moolenaarhi def link cuplNumber cuplString 110f37506f6SBram Moolenaarhi def link cuplString String 111f37506f6SBram Moolenaarhi def link cuplComment Comment 112f37506f6SBram Moolenaarhi def link cuplExtension cuplSpecial 113f37506f6SBram Moolenaarhi def link cuplSpecialChar cuplSpecial 114f37506f6SBram Moolenaarhi def link cuplSpecial Special 115f37506f6SBram Moolenaarhi def link cuplDirective PreProc 116f37506f6SBram Moolenaarhi def link cuplTodo Todo 117071d4279SBram Moolenaar 118071d4279SBram Moolenaar 119071d4279SBram Moolenaarlet b:current_syntax = "cupl" 120b6b046b2SBram Moolenaar 121b6b046b2SBram Moolenaarlet &cpo = s:cpo_save 122b6b046b2SBram Moolenaarunlet s:cpo_save 123b6b046b2SBram Moolenaar 124071d4279SBram Moolenaar" vim:ts=8 125