1" Vim syntax file
2" Language:		SKILL
3" Maintainer:	Toby Schaffer <jtschaff@eos.ncsu.edu>
4" Last Change:	2003 May 11
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. This file also defines syntax highlighting for
10"				certain Design Framework II interface functions.
11
12" For version 5.x: Clear all syntax items
13" For version 6.x: Quit when a syntax file was already loaded
14if version < 600
15  syntax clear
16elseif exists("b:current_syntax")
17  finish
18endif
19
20syn keyword skillConstants			t nil unbound
21
22" enumerate all the SKILL reserved words/functions
23syn match skillFunction     "(abs\>"hs=s+1
24syn match skillFunction     "\<abs("he=e-1
25syn match skillFunction     "(a\=cos\>"hs=s+1
26syn match skillFunction     "\<a\=cos("he=e-1
27syn match skillFunction     "(add1\>"hs=s+1
28syn match skillFunction     "\<add1("he=e-1
29syn match skillFunction     "(addDefstructClass\>"hs=s+1
30syn match skillFunction     "\<addDefstructClass("he=e-1
31syn match skillFunction     "(alias\>"hs=s+1
32syn match skillFunction     "\<alias("he=e-1
33syn match skillFunction     "(alphalessp\>"hs=s+1
34syn match skillFunction     "\<alphalessp("he=e-1
35syn match skillFunction     "(alphaNumCmp\>"hs=s+1
36syn match skillFunction     "\<alphaNumCmp("he=e-1
37syn match skillFunction     "(append1\=\>"hs=s+1
38syn match skillFunction     "\<append1\=("he=e-1
39syn match skillFunction     "(apply\>"hs=s+1
40syn match skillFunction     "\<apply("he=e-1
41syn match skillFunction     "(arrayp\>"hs=s+1
42syn match skillFunction     "\<arrayp("he=e-1
43syn match skillFunction     "(arrayref\>"hs=s+1
44syn match skillFunction     "\<arrayref("he=e-1
45syn match skillFunction     "(a\=sin\>"hs=s+1
46syn match skillFunction     "\<a\=sin("he=e-1
47syn match skillFunction     "(assoc\>"hs=s+1
48syn match skillFunction     "\<assoc("he=e-1
49syn match skillFunction     "(ass[qv]\>"hs=s+1
50syn match skillFunction     "\<ass[qv]("he=e-1
51syn match skillFunction     "(a\=tan\>"hs=s+1
52syn match skillFunction     "\<a\=tan("he=e-1
53syn match skillFunction     "(ato[fim]\>"hs=s+1
54syn match skillFunction     "\<ato[fim]("he=e-1
55syn match skillFunction     "(bcdp\>"hs=s+1
56syn match skillFunction     "\<bcdp("he=e-1
57syn match skillKeywords     "(begin\>"hs=s+1
58syn match skillKeywords     "\<begin("he=e-1
59syn match skillFunction     "(booleanp\>"hs=s+1
60syn match skillFunction     "\<booleanp("he=e-1
61syn match skillFunction     "(boundp\>"hs=s+1
62syn match skillFunction     "\<boundp("he=e-1
63syn match skillFunction     "(buildString\>"hs=s+1
64syn match skillFunction     "\<buildString("he=e-1
65syn match skillFunction     "(c[ad]{1,3}r\>"hs=s+1
66syn match skillFunction     "\<c[ad]{1,3}r("he=e-1
67syn match skillConditional  "(caseq\=\>"hs=s+1
68syn match skillConditional  "\<caseq\=("he=e-1
69syn match skillFunction     "(ceiling\>"hs=s+1
70syn match skillFunction     "\<ceiling("he=e-1
71syn match skillFunction     "(changeWorkingDir\>"hs=s+1
72syn match skillFunction     "\<changeWorkingDir("he=e-1
73syn match skillFunction     "(charToInt\>"hs=s+1
74syn match skillFunction     "\<charToInt("he=e-1
75syn match skillFunction     "(clearExitProcs\>"hs=s+1
76syn match skillFunction     "\<clearExitProcs("he=e-1
77syn match skillFunction     "(close\>"hs=s+1
78syn match skillFunction     "\<close("he=e-1
79syn match skillFunction     "(compareTime\>"hs=s+1
80syn match skillFunction     "\<compareTime("he=e-1
81syn match skillFunction     "(compress\>"hs=s+1
82syn match skillFunction     "\<compress("he=e-1
83syn match skillFunction     "(concat\>"hs=s+1
84syn match skillFunction     "\<concat("he=e-1
85syn match skillConditional  "(cond\>"hs=s+1
86syn match skillConditional  "\<cond("he=e-1
87syn match skillFunction     "(cons\>"hs=s+1
88syn match skillFunction     "\<cons("he=e-1
89syn match skillFunction     "(copy\>"hs=s+1
90syn match skillFunction     "\<copy("he=e-1
91syn match skillFunction     "(copyDefstructDeep\>"hs=s+1
92syn match skillFunction     "\<copyDefstructDeep("he=e-1
93syn match skillFunction     "(createDir\>"hs=s+1
94syn match skillFunction     "\<createDir("he=e-1
95syn match skillFunction     "(csh\>"hs=s+1
96syn match skillFunction     "\<csh("he=e-1
97syn match skillKeywords     "(declare\>"hs=s+1
98syn match skillKeywords     "\<declare("he=e-1
99syn match skillKeywords     "(declare\(N\|SQN\)\=Lambda\>"hs=s+1
100syn match skillKeywords     "\<declare\(N\|SQN\)\=Lambda("he=e-1
101syn match skillKeywords     "(defmacro\>"hs=s+1
102syn match skillKeywords     "\<defmacro("he=e-1
103syn match skillKeywords     "(defprop\>"hs=s+1
104syn match skillKeywords     "\<defprop("he=e-1
105syn match skillKeywords     "(defstruct\>"hs=s+1
106syn match skillKeywords     "\<defstruct("he=e-1
107syn match skillFunction     "(defstructp\>"hs=s+1
108syn match skillFunction     "\<defstructp("he=e-1
109syn match skillKeywords     "(defun\>"hs=s+1
110syn match skillKeywords     "\<defun("he=e-1
111syn match skillKeywords     "(defUserInitProc\>"hs=s+1
112syn match skillKeywords     "\<defUserInitProc("he=e-1
113syn match skillKeywords     "(defvar\>"hs=s+1
114syn match skillKeywords     "\<defvar("he=e-1
115syn match skillFunction     "(delete\(Dir\|File\)\>"hs=s+1
116syn match skillKeywords     "\<delete\(Dir\|File\)("he=e-1
117syn match skillFunction     "(display\>"hs=s+1
118syn match skillFunction     "\<display("he=e-1
119syn match skillFunction     "(drain\>"hs=s+1
120syn match skillFunction     "\<drain("he=e-1
121syn match skillFunction     "(dtpr\>"hs=s+1
122syn match skillFunction     "\<dtpr("he=e-1
123syn match skillFunction     "(ed\(i\|l\|it\)\=\>"hs=s+1
124syn match skillFunction     "\<ed\(i\|l\|it\)\=("he=e-1
125syn match skillFunction     "(envobj\>"hs=s+1
126syn match skillFunction     "\<envobj("he=e-1
127syn match skillFunction     "(equal\>"hs=s+1
128syn match skillFunction     "\<equal("he=e-1
129syn match skillFunction     "(eqv\=\>"hs=s+1
130syn match skillFunction     "\<eqv\=("he=e-1
131syn match skillFunction     "(err\>"hs=s+1
132syn match skillFunction     "\<err("he=e-1
133syn match skillFunction     "(error\>"hs=s+1
134syn match skillFunction     "\<error("he=e-1
135syn match skillFunction     "(errset\>"hs=s+1
136syn match skillFunction     "\<errset("he=e-1
137syn match skillFunction     "(errsetstring\>"hs=s+1
138syn match skillFunction     "\<errsetstring("he=e-1
139syn match skillFunction     "(eval\>"hs=s+1
140syn match skillFunction     "\<eval("he=e-1
141syn match skillFunction     "(evalstring\>"hs=s+1
142syn match skillFunction     "\<evalstring("he=e-1
143syn match skillFunction     "(evenp\>"hs=s+1
144syn match skillFunction     "\<evenp("he=e-1
145syn match skillFunction     "(exists\>"hs=s+1
146syn match skillFunction     "\<exists("he=e-1
147syn match skillFunction     "(exit\>"hs=s+1
148syn match skillFunction     "\<exit("he=e-1
149syn match skillFunction     "(exp\>"hs=s+1
150syn match skillFunction     "\<exp("he=e-1
151syn match skillFunction     "(expandMacro\>"hs=s+1
152syn match skillFunction     "\<expandMacro("he=e-1
153syn match skillFunction     "(file\(Length\|Seek\|Tell\|TimeModified\)\>"hs=s+1
154syn match skillFunction     "\<file\(Length\|Seek\|Tell\|TimeModified\)("he=e-1
155syn match skillFunction     "(fixp\=\>"hs=s+1
156syn match skillFunction     "\<fixp\=("he=e-1
157syn match skillFunction     "(floatp\=\>"hs=s+1
158syn match skillFunction     "\<floatp\=("he=e-1
159syn match skillFunction     "(floor\>"hs=s+1
160syn match skillFunction     "\<floor("he=e-1
161syn match skillRepeat       "(for\(all\|each\)\=\>"hs=s+1
162syn match skillRepeat       "\<for\(all\|each\)\=("he=e-1
163syn match skillFunction     "([fs]\=printf\>"hs=s+1
164syn match skillFunction     "\<[fs]\=printf("he=e-1
165syn match skillFunction     "(f\=scanf\>"hs=s+1
166syn match skillFunction     "\<f\=scanf("he=e-1
167syn match skillFunction     "(funobj\>"hs=s+1
168syn match skillFunction     "\<funobj("he=e-1
169syn match skillFunction     "(gc\>"hs=s+1
170syn match skillFunction     "\<gc("he=e-1
171syn match skillFunction     "(gensym\>"hs=s+1
172syn match skillFunction     "\<gensym("he=e-1
173syn match skillFunction     "(get\(_pname\|_string\)\=\>"hs=s+1
174syn match skillFunction     "\<get\(_pname\|_string\)\=("he=e-1
175syn match skillFunction     "(getc\(har\)\=\>"hs=s+1
176syn match skillFunction     "\<getc\(har\)\=("he=e-1
177syn match skillFunction     "(getCurrentTime\>"hs=s+1
178syn match skillFunction     "\<getCurrentTime("he=e-1
179syn match skillFunction     "(getd\>"hs=s+1
180syn match skillFunction     "\<getd("he=e-1
181syn match skillFunction     "(getDirFiles\>"hs=s+1
182syn match skillFunction     "\<getDirFiles("he=e-1
183syn match skillFunction     "(getFnWriteProtect\>"hs=s+1
184syn match skillFunction     "\<getFnWriteProtect("he=e-1
185syn match skillFunction     "(getRunType\>"hs=s+1
186syn match skillFunction     "\<getRunType("he=e-1
187syn match skillFunction     "(getInstallPath\>"hs=s+1
188syn match skillFunction     "\<getInstallPath("he=e-1
189syn match skillFunction     "(getqq\=\>"hs=s+1
190syn match skillFunction     "\<getqq\=("he=e-1
191syn match skillFunction     "(gets\>"hs=s+1
192syn match skillFunction     "\<gets("he=e-1
193syn match skillFunction     "(getShellEnvVar\>"hs=s+1
194syn match skillFunction     "\<getShellEnvVar("he=e-1
195syn match skillFunction     "(getSkill\(Path\|Version\)\>"hs=s+1
196syn match skillFunction     "\<getSkill\(Path\|Version\)("he=e-1
197syn match skillFunction     "(getVarWriteProtect\>"hs=s+1
198syn match skillFunction     "\<getVarWriteProtect("he=e-1
199syn match skillFunction     "(getVersion\>"hs=s+1
200syn match skillFunction     "\<getVersion("he=e-1
201syn match skillFunction     "(getWarn\>"hs=s+1
202syn match skillFunction     "\<getWarn("he=e-1
203syn match skillFunction     "(getWorkingDir\>"hs=s+1
204syn match skillFunction     "\<getWorkingDir("he=e-1
205syn match skillRepeat       "(go\>"hs=s+1
206syn match skillRepeat       "\<go("he=e-1
207syn match skillConditional  "(if\>"hs=s+1
208syn match skillConditional  "\<if("he=e-1
209syn keyword skillConditional then else
210syn match skillFunction     "(index\>"hs=s+1
211syn match skillFunction     "\<index("he=e-1
212syn match skillFunction     "(infile\>"hs=s+1
213syn match skillFunction     "\<infile("he=e-1
214syn match skillFunction     "(inportp\>"hs=s+1
215syn match skillFunction     "\<inportp("he=e-1
216syn match skillFunction     "(in\(Scheme\|Skill\)\>"hs=s+1
217syn match skillFunction     "\<in\(Scheme\|Skill\)("he=e-1
218syn match skillFunction     "(instring\>"hs=s+1
219syn match skillFunction     "\<instring("he=e-1
220syn match skillFunction     "(integerp\>"hs=s+1
221syn match skillFunction     "\<integerp("he=e-1
222syn match skillFunction     "(intToChar\>"hs=s+1
223syn match skillFunction     "\<intToChar("he=e-1
224syn match skillFunction     "(is\(Callable\|Dir\|Executable\|File\|FileEncrypted\|FileName\|Link\|Macro\|Writable\)\>"hs=s+1
225syn match skillFunction     "\<is\(Callable\|Dir\|Executable\|File\|FileEncrypted\|FileName\|Link\|Macro\|Writable\)("he=e-1
226syn match skillKeywords     "(n\=lambda\>"hs=s+1
227syn match skillKeywords     "\<n\=lambda("he=e-1
228syn match skillKeywords     "(last\>"hs=s+1
229syn match skillKeywords     "\<last("he=e-1
230syn match skillFunction     "(lconc\>"hs=s+1
231syn match skillFunction     "\<lconc("he=e-1
232syn match skillFunction     "(length\>"hs=s+1
233syn match skillFunction     "\<length("he=e-1
234syn match skillKeywords     "(let\>"hs=s+1
235syn match skillKeywords     "\<let("he=e-1
236syn match skillFunction     "(lineread\(string\)\=\>"hs=s+1
237syn match skillFunction     "\<lineread\(string\)\=("he=e-1
238syn match skillKeywords     "(list\>"hs=s+1
239syn match skillKeywords     "\<list("he=e-1
240syn match skillFunction     "(listp\>"hs=s+1
241syn match skillFunction     "\<listp("he=e-1
242syn match skillFunction     "(listToVector\>"hs=s+1
243syn match skillFunction     "\<listToVector("he=e-1
244syn match skillFunction     "(loadi\=\>"hs=s+1
245syn match skillFunction     "\<loadi\=("he=e-1
246syn match skillFunction     "(loadstring\>"hs=s+1
247syn match skillFunction     "\<loadstring("he=e-1
248syn match skillFunction     "(log\>"hs=s+1
249syn match skillFunction     "\<log("he=e-1
250syn match skillFunction     "(lowerCase\>"hs=s+1
251syn match skillFunction     "\<lowerCase("he=e-1
252syn match skillFunction     "(makeTable\>"hs=s+1
253syn match skillFunction     "\<makeTable("he=e-1
254syn match skillFunction     "(makeTempFileName\>"hs=s+1
255syn match skillFunction     "\<makeTempFileName("he=e-1
256syn match skillFunction     "(makeVector\>"hs=s+1
257syn match skillFunction     "\<makeVector("he=e-1
258syn match skillFunction     "(map\(c\|can\|car\|list\)\>"hs=s+1
259syn match skillFunction     "\<map\(c\|can\|car\|list\)("he=e-1
260syn match skillFunction     "(max\>"hs=s+1
261syn match skillFunction     "\<max("he=e-1
262syn match skillFunction     "(measureTime\>"hs=s+1
263syn match skillFunction     "\<measureTime("he=e-1
264syn match skillFunction     "(member\>"hs=s+1
265syn match skillFunction     "\<member("he=e-1
266syn match skillFunction     "(mem[qv]\>"hs=s+1
267syn match skillFunction     "\<mem[qv]("he=e-1
268syn match skillFunction     "(min\>"hs=s+1
269syn match skillFunction     "\<min("he=e-1
270syn match skillFunction     "(minusp\>"hs=s+1
271syn match skillFunction     "\<minusp("he=e-1
272syn match skillFunction     "(mod\(ulo\)\=\>"hs=s+1
273syn match skillFunction     "\<mod\(ulo\)\=("he=e-1
274syn match skillKeywords     "([mn]\=procedure\>"hs=s+1
275syn match skillKeywords     "\<[mn]\=procedure("he=e-1
276syn match skillFunction     "(ncon[cs]\>"hs=s+1
277syn match skillFunction     "\<ncon[cs]("he=e-1
278syn match skillFunction     "(needNCells\>"hs=s+1
279syn match skillFunction     "\<needNCells("he=e-1
280syn match skillFunction     "(negativep\>"hs=s+1
281syn match skillFunction     "\<negativep("he=e-1
282syn match skillFunction     "(neq\(ual\)\=\>"hs=s+1
283syn match skillFunction     "\<neq\(ual\)\=("he=e-1
284syn match skillFunction     "(newline\>"hs=s+1
285syn match skillFunction     "\<newline("he=e-1
286syn match skillFunction     "(nindex\>"hs=s+1
287syn match skillFunction     "\<nindex("he=e-1
288syn match skillFunction     "(not\>"hs=s+1
289syn match skillFunction     "\<not("he=e-1
290syn match skillFunction     "(nth\(cdr\|elem\)\=\>"hs=s+1
291syn match skillFunction     "\<nth\(cdr\|elem\)\=("he=e-1
292syn match skillFunction     "(null\>"hs=s+1
293syn match skillFunction     "\<null("he=e-1
294syn match skillFunction     "(numberp\>"hs=s+1
295syn match skillFunction     "\<numberp("he=e-1
296syn match skillFunction     "(numOpenFiles\>"hs=s+1
297syn match skillFunction     "\<numOpenFiles("he=e-1
298syn match skillFunction     "(oddp\>"hs=s+1
299syn match skillFunction     "\<oddp("he=e-1
300syn match skillFunction     "(onep\>"hs=s+1
301syn match skillFunction     "\<onep("he=e-1
302syn match skillFunction     "(otherp\>"hs=s+1
303syn match skillFunction     "\<otherp("he=e-1
304syn match skillFunction     "(outfile\>"hs=s+1
305syn match skillFunction     "\<outfile("he=e-1
306syn match skillFunction     "(outportp\>"hs=s+1
307syn match skillFunction     "\<outportp("he=e-1
308syn match skillFunction     "(pairp\>"hs=s+1
309syn match skillFunction     "\<pairp("he=e-1
310syn match skillFunction     "(parseString\>"hs=s+1
311syn match skillFunction     "\<parseString("he=e-1
312syn match skillFunction     "(plist\>"hs=s+1
313syn match skillFunction     "\<plist("he=e-1
314syn match skillFunction     "(plusp\>"hs=s+1
315syn match skillFunction     "\<plusp("he=e-1
316syn match skillFunction     "(portp\>"hs=s+1
317syn match skillFunction     "\<portp("he=e-1
318syn match skillFunction     "(p\=print\>"hs=s+1
319syn match skillFunction     "\<p\=print("he=e-1
320syn match skillFunction     "(prependInstallPath\>"hs=s+1
321syn match skillFunction     "\<prependInstallPath("he=e-1
322syn match skillFunction     "(printl\(ev\|n\)\>"hs=s+1
323syn match skillFunction     "\<printl\(ev\|n\)("he=e-1
324syn match skillFunction     "(procedurep\>"hs=s+1
325syn match skillFunction     "\<procedurep("he=e-1
326syn match skillKeywords     "(prog[12n]\=\>"hs=s+1
327syn match skillKeywords     "\<prog[12n]\=("he=e-1
328syn match skillFunction     "(putd\>"hs=s+1
329syn match skillFunction     "\<putd("he=e-1
330syn match skillFunction     "(putpropq\{,2}\>"hs=s+1
331syn match skillFunction     "\<putpropq\{,2}("he=e-1
332syn match skillFunction     "(random\>"hs=s+1
333syn match skillFunction     "\<random("he=e-1
334syn match skillFunction     "(read\>"hs=s+1
335syn match skillFunction     "\<read("he=e-1
336syn match skillFunction     "(readString\>"hs=s+1
337syn match skillFunction     "\<readString("he=e-1
338syn match skillFunction     "(readTable\>"hs=s+1
339syn match skillFunction     "\<readTable("he=e-1
340syn match skillFunction     "(realp\>"hs=s+1
341syn match skillFunction     "\<realp("he=e-1
342syn match skillFunction     "(regExit\(After\|Before\)\>"hs=s+1
343syn match skillFunction     "\<regExit\(After\|Before\)("he=e-1
344syn match skillFunction     "(remainder\>"hs=s+1
345syn match skillFunction     "\<remainder("he=e-1
346syn match skillFunction     "(remdq\=\>"hs=s+1
347syn match skillFunction     "\<remdq\=("he=e-1
348syn match skillFunction     "(remExitProc\>"hs=s+1
349syn match skillFunction     "\<remExitProc("he=e-1
350syn match skillFunction     "(remove\>"hs=s+1
351syn match skillFunction     "\<remove("he=e-1
352syn match skillFunction     "(remprop\>"hs=s+1
353syn match skillFunction     "\<remprop("he=e-1
354syn match skillFunction     "(remq\>"hs=s+1
355syn match skillFunction     "\<remq("he=e-1
356syn match skillKeywords     "(return\>"hs=s+1
357syn match skillKeywords     "\<return("he=e-1
358syn match skillFunction     "(reverse\>"hs=s+1
359syn match skillFunction     "\<reverse("he=e-1
360syn match skillFunction     "(rexCompile\>"hs=s+1
361syn match skillFunction     "\<rexCompile("he=e-1
362syn match skillFunction     "(rexExecute\>"hs=s+1
363syn match skillFunction     "\<rexExecute("he=e-1
364syn match skillFunction     "(rexMagic\>"hs=s+1
365syn match skillFunction     "\<rexMagic("he=e-1
366syn match skillFunction     "(rexMatchAssocList\>"hs=s+1
367syn match skillFunction     "\<rexMatchAssocList("he=e-1
368syn match skillFunction     "(rexMatchList\>"hs=s+1
369syn match skillFunction     "\<rexMatchList("he=e-1
370syn match skillFunction     "(rexMatchp\>"hs=s+1
371syn match skillFunction     "\<rexMatchp("he=e-1
372syn match skillFunction     "(rexReplace\>"hs=s+1
373syn match skillFunction     "\<rexReplace("he=e-1
374syn match skillFunction     "(rexSubstitute\>"hs=s+1
375syn match skillFunction     "\<rexSubstitute("he=e-1
376syn match skillFunction     "(rindex\>"hs=s+1
377syn match skillFunction     "\<rindex("he=e-1
378syn match skillFunction     "(round\>"hs=s+1
379syn match skillFunction     "\<round("he=e-1
380syn match skillFunction     "(rplac[ad]\>"hs=s+1
381syn match skillFunction     "\<rplac[ad]("he=e-1
382syn match skillFunction     "(schemeTopLevelEnv\>"hs=s+1
383syn match skillFunction     "\<schemeTopLevelEnv("he=e-1
384syn match skillFunction     "(set\>"hs=s+1
385syn match skillFunction     "\<set("he=e-1
386syn match skillFunction     "(setarray\>"hs=s+1
387syn match skillFunction     "\<setarray("he=e-1
388syn match skillFunction     "(setc[ad]r\>"hs=s+1
389syn match skillFunction     "\<setc[ad]r("he=e-1
390syn match skillFunction     "(setFnWriteProtect\>"hs=s+1
391syn match skillFunction     "\<setFnWriteProtect("he=e-1
392syn match skillFunction     "(setof\>"hs=s+1
393syn match skillFunction     "\<setof("he=e-1
394syn match skillFunction     "(setplist\>"hs=s+1
395syn match skillFunction     "\<setplist("he=e-1
396syn match skillFunction     "(setq\>"hs=s+1
397syn match skillFunction     "\<setq("he=e-1
398syn match skillFunction     "(setShellEnvVar\>"hs=s+1
399syn match skillFunction     "\<setShellEnvVar("he=e-1
400syn match skillFunction     "(setSkillPath\>"hs=s+1
401syn match skillFunction     "\<setSkillPath("he=e-1
402syn match skillFunction     "(setVarWriteProtect\>"hs=s+1
403syn match skillFunction     "\<setVarWriteProtect("he=e-1
404syn match skillFunction     "(sh\(ell\)\=\>"hs=s+1
405syn match skillFunction     "\<sh\(ell\)\=("he=e-1
406syn match skillFunction     "(simplifyFilename\>"hs=s+1
407syn match skillFunction     "\<simplifyFilename("he=e-1
408syn match skillFunction     "(sort\(car\)\=\>"hs=s+1
409syn match skillFunction     "\<sort\(car\)\=("he=e-1
410syn match skillFunction     "(sqrt\>"hs=s+1
411syn match skillFunction     "\<sqrt("he=e-1
412syn match skillFunction     "(srandom\>"hs=s+1
413syn match skillFunction     "\<srandom("he=e-1
414syn match skillFunction     "(sstatus\>"hs=s+1
415syn match skillFunction     "\<sstatus("he=e-1
416syn match skillFunction     "(strn\=cat\>"hs=s+1
417syn match skillFunction     "\<strn\=cat("he=e-1
418syn match skillFunction     "(strn\=cmp\>"hs=s+1
419syn match skillFunction     "\<strn\=cmp("he=e-1
420syn match skillFunction     "(stringp\>"hs=s+1
421syn match skillFunction     "\<stringp("he=e-1
422syn match skillFunction     "(stringTo\(Function\|Symbol\|Time\)\>"hs=s+1
423syn match skillFunction     "\<stringTo\(Function\|Symbol\|Time\)("he=e-1
424syn match skillFunction     "(strlen\>"hs=s+1
425syn match skillFunction     "\<strlen("he=e-1
426syn match skillFunction     "(sub1\>"hs=s+1
427syn match skillFunction     "\<sub1("he=e-1
428syn match skillFunction     "(subst\>"hs=s+1
429syn match skillFunction     "\<subst("he=e-1
430syn match skillFunction     "(substring\>"hs=s+1
431syn match skillFunction     "\<substring("he=e-1
432syn match skillFunction     "(sxtd\>"hs=s+1
433syn match skillFunction     "\<sxtd("he=e-1
434syn match skillFunction     "(symbolp\>"hs=s+1
435syn match skillFunction     "\<symbolp("he=e-1
436syn match skillFunction     "(symbolToString\>"hs=s+1
437syn match skillFunction     "\<symbolToString("he=e-1
438syn match skillFunction     "(symeval\>"hs=s+1
439syn match skillFunction     "\<symeval("he=e-1
440syn match skillFunction     "(symstrp\>"hs=s+1
441syn match skillFunction     "\<symstrp("he=e-1
442syn match skillFunction     "(system\>"hs=s+1
443syn match skillFunction     "\<system("he=e-1
444syn match skillFunction     "(tablep\>"hs=s+1
445syn match skillFunction     "\<tablep("he=e-1
446syn match skillFunction     "(tableToList\>"hs=s+1
447syn match skillFunction     "\<tableToList("he=e-1
448syn match skillFunction     "(tailp\>"hs=s+1
449syn match skillFunction     "\<tailp("he=e-1
450syn match skillFunction     "(tconc\>"hs=s+1
451syn match skillFunction     "\<tconc("he=e-1
452syn match skillFunction     "(timeToString\>"hs=s+1
453syn match skillFunction     "\<timeToString("he=e-1
454syn match skillFunction     "(timeToTm\>"hs=s+1
455syn match skillFunction     "\<timeToTm("he=e-1
456syn match skillFunction     "(tmToTime\>"hs=s+1
457syn match skillFunction     "\<tmToTime("he=e-1
458syn match skillFunction     "(truncate\>"hs=s+1
459syn match skillFunction     "\<truncate("he=e-1
460syn match skillFunction     "(typep\=\>"hs=s+1
461syn match skillFunction     "\<typep\=("he=e-1
462syn match skillFunction     "(unalias\>"hs=s+1
463syn match skillFunction     "\<unalias("he=e-1
464syn match skillConditional  "(unless\>"hs=s+1
465syn match skillConditional  "\<unless("he=e-1
466syn match skillFunction     "(upperCase\>"hs=s+1
467syn match skillFunction     "\<upperCase("he=e-1
468syn match skillFunction     "(vector\(ToList\)\=\>"hs=s+1
469syn match skillFunction     "\<vector\(ToList\)\=("he=e-1
470syn match skillFunction     "(warn\>"hs=s+1
471syn match skillFunction     "\<warn("he=e-1
472syn match skillConditional  "(when\>"hs=s+1
473syn match skillConditional  "\<when("he=e-1
474syn match skillRepeat       "(while\>"hs=s+1
475syn match skillRepeat       "\<while("he=e-1
476syn match skillFunction     "(write\>"hs=s+1
477syn match skillFunction     "\<write("he=e-1
478syn match skillFunction     "(writeTable\>"hs=s+1
479syn match skillFunction     "\<writeTable("he=e-1
480syn match skillFunction     "(xcons\>"hs=s+1
481syn match skillFunction     "\<xcons("he=e-1
482syn match skillFunction     "(zerop\>"hs=s+1
483syn match skillFunction     "\<zerop("he=e-1
484syn match skillFunction     "(zxtd\>"hs=s+1
485syn match skillFunction     "\<zxtd("he=e-1
486
487" DFII procedural interface routines
488
489" CDF functions
490syn match skillcdfFunctions			"(cdf\u\a\+\>"hs=s+1
491syn match skillcdfFunctions			"\<cdf\u\a\+("he=e-1
492" graphic editor functions
493syn match skillgeFunctions			"(ge\u\a\+\>"hs=s+1
494syn match skillgeFunctions			"\<ge\u\a\+("he=e-1
495" human interface functions
496syn match skillhiFunctions			"(hi\u\a\+\>"hs=s+1
497syn match skillhiFunctions			"\<hi\u\a\+("he=e-1
498" layout editor functions
499syn match skillleFunctions			"(le\u\a\+\>"hs=s+1
500syn match skillleFunctions			"\<le\u\a\+("he=e-1
501" database|design editor|design flow functions
502syn match skilldbefFunctions		"(d[bef]\u\a\+\>"hs=s+1
503syn match skilldbefFunctions		"\<d[bef]\u\a\+("he=e-1
504" design management & design data services functions
505syn match skillddFunctions			"(dd[s]\=\u\a\+\>"hs=s+1
506syn match skillddFunctions			"\<dd[s]\=\u\a\+("he=e-1
507" parameterized cell functions
508syn match skillpcFunctions			"(pc\u\a\+\>"hs=s+1
509syn match skillpcFunctions			"\<pc\u\a\+("he=e-1
510" tech file functions
511syn match skilltechFunctions		"(\(tech\|tc\)\u\a\+\>"hs=s+1
512syn match skilltechFunctions		"\<\(tech\|tc\)\u\a\+("he=e-1
513
514" strings
515syn region skillString				start=+"+ skip=+\\"+ end=+"+
516
517syn keyword skillTodo contained		TODO FIXME XXX
518syn keyword skillNote contained		NOTE IMPORTANT
519
520" comments are either C-style or begin with a semicolon
521syn region skillComment				start="/\*" end="\*/" contains=skillTodo,skillNote
522syn match skillComment				";.*" contains=skillTodo,skillNote
523syn match skillCommentError			"\*/"
524
525syn sync ccomment skillComment minlines=10
526
527" Define the default highlighting.
528" For version 5.7 and earlier: only when not done already
529" For version 5.8 and later: only when an item doesn't have highlighting yet
530if version >= 508 || !exists("did_skill_syntax_inits")
531  if version < 508
532    let did_skill_syntax_inits = 1
533    command -nargs=+ HiLink hi link <args>
534  else
535    command -nargs=+ HiLink hi def link <args>
536  endif
537
538	HiLink skillcdfFunctions	Function
539	HiLink skillgeFunctions		Function
540	HiLink skillhiFunctions		Function
541	HiLink skillleFunctions		Function
542	HiLink skilldbefFunctions	Function
543	HiLink skillddFunctions		Function
544	HiLink skillpcFunctions		Function
545	HiLink skilltechFunctions	Function
546	HiLink skillConstants		Constant
547	HiLink skillFunction		Function
548	HiLink skillKeywords		Statement
549	HiLink skillConditional		Conditional
550	HiLink skillRepeat			Repeat
551	HiLink skillString			String
552	HiLink skillTodo			Todo
553	HiLink skillNote			Todo
554	HiLink skillComment			Comment
555	HiLink skillCommentError	Error
556
557	delcommand HiLink
558endif
559
560let b:current_syntax = "skill"
561
562" vim: ts=4
563