1" Vim syntax file 2" Language: SKILL for Diva 3" Maintainer: Toby Schaffer <[email protected]> 4" Last Change: 2001 May 09 5" Comments: SKILL is a Lisp-like programming language for use in EDA 6" tools from Cadence Design Systems. It allows you to have 7" a programming environment within the Cadence environment 8" that gives you access to the complete tool set and design 9" database. These items are for Diva verification rules decks. 10 11" Don't remove any old syntax stuff hanging around! We need stuff 12" from skill.vim. 13if !exists("did_skill_syntax_inits") 14 if version < 600 15 so <sfile>:p:h/skill.vim 16 else 17 runtime! syntax/skill.vim 18 endif 19endif 20 21syn keyword divaDRCKeywords area enc notch ovlp sep width 22syn keyword divaDRCKeywords app diffNet length lengtha lengthb 23syn keyword divaDRCKeywords notParallel only_perp opposite parallel 24syn keyword divaDRCKeywords sameNet shielded with_perp 25syn keyword divaDRCKeywords edge edgea edgeb fig figa figb 26syn keyword divaDRCKeywords normalGrow squareGrow message raw 27syn keyword divaMeasKeywords perimeter length bends_all bends_full 28syn keyword divaMeasKeywords bends_part corners_all corners_full 29syn keyword divaMeasKeywords corners_part angles_all angles_full 30syn keyword divaMeasKeywords angles_part fig_count butting coincident 31syn keyword divaMeasKeywords over not_over outside inside enclosing 32syn keyword divaMeasKeywords figure one_net two_net three_net grounded 33syn keyword divaMeasKeywords polarized limit keep ignore 34syn match divaCtrlFunctions "(ivIf\>"hs=s+1 35syn match divaCtrlFunctions "\<ivIf("he=e-1 36syn match divaCtrlFunctions "(switch\>"hs=s+1 37syn match divaCtrlFunctions "\<switch("he=e-1 38syn match divaCtrlFunctions "(and\>"hs=s+1 39syn match divaCtrlFunctions "\<and("he=e-1 40syn match divaCtrlFunctions "(or\>"hs=s+1 41syn match divaCtrlFunctions "\<or("he=e-1 42syn match divaCtrlFunctions "(null\>"hs=s+1 43syn match divaCtrlFunctions "\<null("he=e-1 44syn match divaExtFunctions "(save\(Interconnect\|Property\|Parameter\|Recognition\)\>"hs=s+1 45syn match divaExtFunctions "\<save\(Interconnect\|Property\|Parameter\|Recognition\)("he=e-1 46syn match divaExtFunctions "(\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic\>"hs=s+1 47syn match divaExtFunctions "\<\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic("he=e-1 48syn match divaExtFunctions "(\(calculate\|measure\)Parameter\>"hs=s+1 49syn match divaExtFunctions "\<\(calculate\|measure\)Parameter("he=e-1 50syn match divaExtFunctions "(measure\(Resistance\|Fringe\)\>"hs=s+1 51syn match divaExtFunctions "\<measure\(Resistance\|Fringe\)("he=e-1 52syn match divaExtFunctions "(extract\(Device\|MOS\)\>"hs=s+1 53syn match divaExtFunctions "\<extract\(Device\|MOS\)("he=e-1 54syn match divaDRCFunctions "(checkAllLayers\>"hs=s+1 55syn match divaDRCFunctions "\<checkAllLayers("he=e-1 56syn match divaDRCFunctions "(checkLayer\>"hs=s+1 57syn match divaDRCFunctions "\<checkLayer("he=e-1 58syn match divaDRCFunctions "(drc\>"hs=s+1 59syn match divaDRCFunctions "\<drc("he=e-1 60syn match divaDRCFunctions "(drcAntenna\>"hs=s+1 61syn match divaDRCFunctions "\<drcAntenna("he=e-1 62syn match divaFunctions "(\(drcExtract\|lvs\)Rules\>"hs=s+1 63syn match divaFunctions "\<\(drcExtract\|lvs\)Rules("he=e-1 64syn match divaLayerFunctions "(saveDerived\>"hs=s+1 65syn match divaLayerFunctions "\<saveDerived("he=e-1 66syn match divaLayerFunctions "(copyGraphics\>"hs=s+1 67syn match divaLayerFunctions "\<copyGraphics("he=e-1 68syn match divaChkFunctions "(dubiousData\>"hs=s+1 69syn match divaChkFunctions "\<dubiousData("he=e-1 70syn match divaChkFunctions "(offGrid\>"hs=s+1 71syn match divaChkFunctions "\<offGrid("he=e-1 72syn match divaLVSFunctions "(compareDeviceProperty\>"hs=s+1 73syn match divaLVSFunctions "\<compareDeviceProperty("he=e-1 74syn match divaLVSFunctions "(ignoreTerminal\>"hs=s+1 75syn match divaLVSFunctions "\<ignoreTerminal("he=e-1 76syn match divaLVSFunctions "(parameterMatchType\>"hs=s+1 77syn match divaLVSFunctions "\<parameterMatchType("he=e-1 78syn match divaLVSFunctions "(\(permute\|prune\|remove\)Device\>"hs=s+1 79syn match divaLVSFunctions "\<\(permute\|prune\|remove\)Device("he=e-1 80syn match divaGeomFunctions "(geom\u\a\+\(45\|90\)\=\>"hs=s+1 81syn match divaGeomFunctions "\<geom\u\a\+\(45\|90\)\=("he=e-1 82 83" Define the default highlighting. 84" For version 5.7 and earlier: only when not done already 85" For version 5.8 and later: only when an item doesn't have highlighting yet 86if version >= 508 || !exists("did_diva_syntax_inits") 87 if version < 508 88 let did_diva_syntax_inits = 1 89 command -nargs=+ HiLink hi link <args> 90 else 91 command -nargs=+ HiLink hi def link <args> 92 endif 93 94 HiLink divaDRCKeywords Statement 95 HiLink divaMeasKeywords Statement 96 HiLink divaCtrlFunctions Conditional 97 HiLink divaExtFunctions Function 98 HiLink divaDRCFunctions Function 99 HiLink divaFunctions Function 100 HiLink divaLayerFunctions Function 101 HiLink divaChkFunctions Function 102 HiLink divaLVSFunctions Function 103 HiLink divaGeomFunctions Function 104 105 delcommand HiLink 106endif 107 108let b:current_syntax = "diva" 109 110" vim:ts=4 111