2 " Language: SKILL for Diva
3 " Maintainer: Toby Schaffer <jtschaff@eos.ncsu.edu>
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.
11 " Don't remove any old syntax stuff hanging around! We need stuff
13 if !exists("did_skill_syntax_inits")
15 so <sfile>:p:h/skill.vim
17 runtime! syntax/skill.vim
21 syn keyword divaDRCKeywords area enc notch ovlp sep width
22 syn keyword divaDRCKeywords app diffNet length lengtha lengthb
23 syn keyword divaDRCKeywords notParallel only_perp opposite parallel
24 syn keyword divaDRCKeywords sameNet shielded with_perp
25 syn keyword divaDRCKeywords edge edgea edgeb fig figa figb
26 syn keyword divaDRCKeywords normalGrow squareGrow message raw
27 syn keyword divaMeasKeywords perimeter length bends_all bends_full
28 syn keyword divaMeasKeywords bends_part corners_all corners_full
29 syn keyword divaMeasKeywords corners_part angles_all angles_full
30 syn keyword divaMeasKeywords angles_part fig_count butting coincident
31 syn keyword divaMeasKeywords over not_over outside inside enclosing
32 syn keyword divaMeasKeywords figure one_net two_net three_net grounded
33 syn keyword divaMeasKeywords polarized limit keep ignore
34 syn match divaCtrlFunctions "(ivIf\>"hs=s+1
35 syn match divaCtrlFunctions "\<ivIf("he=e-1
36 syn match divaCtrlFunctions "(switch\>"hs=s+1
37 syn match divaCtrlFunctions "\<switch("he=e-1
38 syn match divaCtrlFunctions "(and\>"hs=s+1
39 syn match divaCtrlFunctions "\<and("he=e-1
40 syn match divaCtrlFunctions "(or\>"hs=s+1
41 syn match divaCtrlFunctions "\<or("he=e-1
42 syn match divaCtrlFunctions "(null\>"hs=s+1
43 syn match divaCtrlFunctions "\<null("he=e-1
44 syn match divaExtFunctions "(save\(Interconnect\|Property\|Parameter\|Recognition\)\>"hs=s+1
45 syn match divaExtFunctions "\<save\(Interconnect\|Property\|Parameter\|Recognition\)("he=e-1
46 syn match divaExtFunctions "(\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic\>"hs=s+1
47 syn match divaExtFunctions "\<\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic("he=e-1
48 syn match divaExtFunctions "(\(calculate\|measure\)Parameter\>"hs=s+1
49 syn match divaExtFunctions "\<\(calculate\|measure\)Parameter("he=e-1
50 syn match divaExtFunctions "(measure\(Resistance\|Fringe\)\>"hs=s+1
51 syn match divaExtFunctions "\<measure\(Resistance\|Fringe\)("he=e-1
52 syn match divaExtFunctions "(extract\(Device\|MOS\)\>"hs=s+1
53 syn match divaExtFunctions "\<extract\(Device\|MOS\)("he=e-1
54 syn match divaDRCFunctions "(checkAllLayers\>"hs=s+1
55 syn match divaDRCFunctions "\<checkAllLayers("he=e-1
56 syn match divaDRCFunctions "(checkLayer\>"hs=s+1
57 syn match divaDRCFunctions "\<checkLayer("he=e-1
58 syn match divaDRCFunctions "(drc\>"hs=s+1
59 syn match divaDRCFunctions "\<drc("he=e-1
60 syn match divaDRCFunctions "(drcAntenna\>"hs=s+1
61 syn match divaDRCFunctions "\<drcAntenna("he=e-1
62 syn match divaFunctions "(\(drcExtract\|lvs\)Rules\>"hs=s+1
63 syn match divaFunctions "\<\(drcExtract\|lvs\)Rules("he=e-1
64 syn match divaLayerFunctions "(saveDerived\>"hs=s+1
65 syn match divaLayerFunctions "\<saveDerived("he=e-1
66 syn match divaLayerFunctions "(copyGraphics\>"hs=s+1
67 syn match divaLayerFunctions "\<copyGraphics("he=e-1
68 syn match divaChkFunctions "(dubiousData\>"hs=s+1
69 syn match divaChkFunctions "\<dubiousData("he=e-1
70 syn match divaChkFunctions "(offGrid\>"hs=s+1
71 syn match divaChkFunctions "\<offGrid("he=e-1
72 syn match divaLVSFunctions "(compareDeviceProperty\>"hs=s+1
73 syn match divaLVSFunctions "\<compareDeviceProperty("he=e-1
74 syn match divaLVSFunctions "(ignoreTerminal\>"hs=s+1
75 syn match divaLVSFunctions "\<ignoreTerminal("he=e-1
76 syn match divaLVSFunctions "(parameterMatchType\>"hs=s+1
77 syn match divaLVSFunctions "\<parameterMatchType("he=e-1
78 syn match divaLVSFunctions "(\(permute\|prune\|remove\)Device\>"hs=s+1
79 syn match divaLVSFunctions "\<\(permute\|prune\|remove\)Device("he=e-1
80 syn match divaGeomFunctions "(geom\u\a\+\(45\|90\)\=\>"hs=s+1
81 syn match divaGeomFunctions "\<geom\u\a\+\(45\|90\)\=("he=e-1
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
86 if version >= 508 || !exists("did_diva_syntax_inits")
88 let did_diva_syntax_inits = 1
89 command -nargs=+ HiLink hi link <args>
91 command -nargs=+ HiLink hi def link <args>
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
108 let b:current_syntax = "diva"