blob: 78668fd85a69579681a8ce84957f9a5da48dd378 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
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.
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