updated for version 7.0001
diff --git a/runtime/syntax/skill.vim b/runtime/syntax/skill.vim
new file mode 100644
index 0000000..8b96044
--- /dev/null
+++ b/runtime/syntax/skill.vim
@@ -0,0 +1,562 @@
+" Vim syntax file
+" Language:		SKILL
+" Maintainer:	Toby Schaffer <jtschaff@eos.ncsu.edu>
+" Last Change:	2003 May 11
+" Comments:		SKILL is a Lisp-like programming language for use in EDA
+"				tools from Cadence Design Systems. It allows you to have
+"				a programming environment within the Cadence environment
+"				that gives you access to the complete tool set and design
+"				database. This file also defines syntax highlighting for
+"				certain Design Framework II interface functions.
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn keyword skillConstants			t nil unbound
+
+" enumerate all the SKILL reserved words/functions
+syn match skillFunction     "(abs\>"hs=s+1
+syn match skillFunction     "\<abs("he=e-1
+syn match skillFunction     "(a\=cos\>"hs=s+1
+syn match skillFunction     "\<a\=cos("he=e-1
+syn match skillFunction     "(add1\>"hs=s+1
+syn match skillFunction     "\<add1("he=e-1
+syn match skillFunction     "(addDefstructClass\>"hs=s+1
+syn match skillFunction     "\<addDefstructClass("he=e-1
+syn match skillFunction     "(alias\>"hs=s+1
+syn match skillFunction     "\<alias("he=e-1
+syn match skillFunction     "(alphalessp\>"hs=s+1
+syn match skillFunction     "\<alphalessp("he=e-1
+syn match skillFunction     "(alphaNumCmp\>"hs=s+1
+syn match skillFunction     "\<alphaNumCmp("he=e-1
+syn match skillFunction     "(append1\=\>"hs=s+1
+syn match skillFunction     "\<append1\=("he=e-1
+syn match skillFunction     "(apply\>"hs=s+1
+syn match skillFunction     "\<apply("he=e-1
+syn match skillFunction     "(arrayp\>"hs=s+1
+syn match skillFunction     "\<arrayp("he=e-1
+syn match skillFunction     "(arrayref\>"hs=s+1
+syn match skillFunction     "\<arrayref("he=e-1
+syn match skillFunction     "(a\=sin\>"hs=s+1
+syn match skillFunction     "\<a\=sin("he=e-1
+syn match skillFunction     "(assoc\>"hs=s+1
+syn match skillFunction     "\<assoc("he=e-1
+syn match skillFunction     "(ass[qv]\>"hs=s+1
+syn match skillFunction     "\<ass[qv]("he=e-1
+syn match skillFunction     "(a\=tan\>"hs=s+1
+syn match skillFunction     "\<a\=tan("he=e-1
+syn match skillFunction     "(ato[fim]\>"hs=s+1
+syn match skillFunction     "\<ato[fim]("he=e-1
+syn match skillFunction     "(bcdp\>"hs=s+1
+syn match skillFunction     "\<bcdp("he=e-1
+syn match skillKeywords     "(begin\>"hs=s+1
+syn match skillKeywords     "\<begin("he=e-1
+syn match skillFunction     "(booleanp\>"hs=s+1
+syn match skillFunction     "\<booleanp("he=e-1
+syn match skillFunction     "(boundp\>"hs=s+1
+syn match skillFunction     "\<boundp("he=e-1
+syn match skillFunction     "(buildString\>"hs=s+1
+syn match skillFunction     "\<buildString("he=e-1
+syn match skillFunction     "(c[ad]{1,3}r\>"hs=s+1
+syn match skillFunction     "\<c[ad]{1,3}r("he=e-1
+syn match skillConditional  "(caseq\=\>"hs=s+1
+syn match skillConditional  "\<caseq\=("he=e-1
+syn match skillFunction     "(ceiling\>"hs=s+1
+syn match skillFunction     "\<ceiling("he=e-1
+syn match skillFunction     "(changeWorkingDir\>"hs=s+1
+syn match skillFunction     "\<changeWorkingDir("he=e-1
+syn match skillFunction     "(charToInt\>"hs=s+1
+syn match skillFunction     "\<charToInt("he=e-1
+syn match skillFunction     "(clearExitProcs\>"hs=s+1
+syn match skillFunction     "\<clearExitProcs("he=e-1
+syn match skillFunction     "(close\>"hs=s+1
+syn match skillFunction     "\<close("he=e-1
+syn match skillFunction     "(compareTime\>"hs=s+1
+syn match skillFunction     "\<compareTime("he=e-1
+syn match skillFunction     "(compress\>"hs=s+1
+syn match skillFunction     "\<compress("he=e-1
+syn match skillFunction     "(concat\>"hs=s+1
+syn match skillFunction     "\<concat("he=e-1
+syn match skillConditional  "(cond\>"hs=s+1
+syn match skillConditional  "\<cond("he=e-1
+syn match skillFunction     "(cons\>"hs=s+1
+syn match skillFunction     "\<cons("he=e-1
+syn match skillFunction     "(copy\>"hs=s+1
+syn match skillFunction     "\<copy("he=e-1
+syn match skillFunction     "(copyDefstructDeep\>"hs=s+1
+syn match skillFunction     "\<copyDefstructDeep("he=e-1
+syn match skillFunction     "(createDir\>"hs=s+1
+syn match skillFunction     "\<createDir("he=e-1
+syn match skillFunction     "(csh\>"hs=s+1
+syn match skillFunction     "\<csh("he=e-1
+syn match skillKeywords     "(declare\>"hs=s+1
+syn match skillKeywords     "\<declare("he=e-1
+syn match skillKeywords     "(declare\(N\|SQN\)\=Lambda\>"hs=s+1
+syn match skillKeywords     "\<declare\(N\|SQN\)\=Lambda("he=e-1
+syn match skillKeywords     "(defmacro\>"hs=s+1
+syn match skillKeywords     "\<defmacro("he=e-1
+syn match skillKeywords     "(defprop\>"hs=s+1
+syn match skillKeywords     "\<defprop("he=e-1
+syn match skillKeywords     "(defstruct\>"hs=s+1
+syn match skillKeywords     "\<defstruct("he=e-1
+syn match skillFunction     "(defstructp\>"hs=s+1
+syn match skillFunction     "\<defstructp("he=e-1
+syn match skillKeywords     "(defun\>"hs=s+1
+syn match skillKeywords     "\<defun("he=e-1
+syn match skillKeywords     "(defUserInitProc\>"hs=s+1
+syn match skillKeywords     "\<defUserInitProc("he=e-1
+syn match skillKeywords     "(defvar\>"hs=s+1
+syn match skillKeywords     "\<defvar("he=e-1
+syn match skillFunction     "(delete\(Dir\|File\)\>"hs=s+1
+syn match skillKeywords     "\<delete\(Dir\|File\)("he=e-1
+syn match skillFunction     "(display\>"hs=s+1
+syn match skillFunction     "\<display("he=e-1
+syn match skillFunction     "(drain\>"hs=s+1
+syn match skillFunction     "\<drain("he=e-1
+syn match skillFunction     "(dtpr\>"hs=s+1
+syn match skillFunction     "\<dtpr("he=e-1
+syn match skillFunction     "(ed\(i\|l\|it\)\=\>"hs=s+1
+syn match skillFunction     "\<ed\(i\|l\|it\)\=("he=e-1
+syn match skillFunction     "(envobj\>"hs=s+1
+syn match skillFunction     "\<envobj("he=e-1
+syn match skillFunction     "(equal\>"hs=s+1
+syn match skillFunction     "\<equal("he=e-1
+syn match skillFunction     "(eqv\=\>"hs=s+1
+syn match skillFunction     "\<eqv\=("he=e-1
+syn match skillFunction     "(err\>"hs=s+1
+syn match skillFunction     "\<err("he=e-1
+syn match skillFunction     "(error\>"hs=s+1
+syn match skillFunction     "\<error("he=e-1
+syn match skillFunction     "(errset\>"hs=s+1
+syn match skillFunction     "\<errset("he=e-1
+syn match skillFunction     "(errsetstring\>"hs=s+1
+syn match skillFunction     "\<errsetstring("he=e-1
+syn match skillFunction     "(eval\>"hs=s+1
+syn match skillFunction     "\<eval("he=e-1
+syn match skillFunction     "(evalstring\>"hs=s+1
+syn match skillFunction     "\<evalstring("he=e-1
+syn match skillFunction     "(evenp\>"hs=s+1
+syn match skillFunction     "\<evenp("he=e-1
+syn match skillFunction     "(exists\>"hs=s+1
+syn match skillFunction     "\<exists("he=e-1
+syn match skillFunction     "(exit\>"hs=s+1
+syn match skillFunction     "\<exit("he=e-1
+syn match skillFunction     "(exp\>"hs=s+1
+syn match skillFunction     "\<exp("he=e-1
+syn match skillFunction     "(expandMacro\>"hs=s+1
+syn match skillFunction     "\<expandMacro("he=e-1
+syn match skillFunction     "(file\(Length\|Seek\|Tell\|TimeModified\)\>"hs=s+1
+syn match skillFunction     "\<file\(Length\|Seek\|Tell\|TimeModified\)("he=e-1
+syn match skillFunction     "(fixp\=\>"hs=s+1
+syn match skillFunction     "\<fixp\=("he=e-1
+syn match skillFunction     "(floatp\=\>"hs=s+1
+syn match skillFunction     "\<floatp\=("he=e-1
+syn match skillFunction     "(floor\>"hs=s+1
+syn match skillFunction     "\<floor("he=e-1
+syn match skillRepeat       "(for\(all\|each\)\=\>"hs=s+1
+syn match skillRepeat       "\<for\(all\|each\)\=("he=e-1
+syn match skillFunction     "([fs]\=printf\>"hs=s+1
+syn match skillFunction     "\<[fs]\=printf("he=e-1
+syn match skillFunction     "(f\=scanf\>"hs=s+1
+syn match skillFunction     "\<f\=scanf("he=e-1
+syn match skillFunction     "(funobj\>"hs=s+1
+syn match skillFunction     "\<funobj("he=e-1
+syn match skillFunction     "(gc\>"hs=s+1
+syn match skillFunction     "\<gc("he=e-1
+syn match skillFunction     "(gensym\>"hs=s+1
+syn match skillFunction     "\<gensym("he=e-1
+syn match skillFunction     "(get\(_pname\|_string\)\=\>"hs=s+1
+syn match skillFunction     "\<get\(_pname\|_string\)\=("he=e-1
+syn match skillFunction     "(getc\(har\)\=\>"hs=s+1
+syn match skillFunction     "\<getc\(har\)\=("he=e-1
+syn match skillFunction     "(getCurrentTime\>"hs=s+1
+syn match skillFunction     "\<getCurrentTime("he=e-1
+syn match skillFunction     "(getd\>"hs=s+1
+syn match skillFunction     "\<getd("he=e-1
+syn match skillFunction     "(getDirFiles\>"hs=s+1
+syn match skillFunction     "\<getDirFiles("he=e-1
+syn match skillFunction     "(getFnWriteProtect\>"hs=s+1
+syn match skillFunction     "\<getFnWriteProtect("he=e-1
+syn match skillFunction     "(getRunType\>"hs=s+1
+syn match skillFunction     "\<getRunType("he=e-1
+syn match skillFunction     "(getInstallPath\>"hs=s+1
+syn match skillFunction     "\<getInstallPath("he=e-1
+syn match skillFunction     "(getqq\=\>"hs=s+1
+syn match skillFunction     "\<getqq\=("he=e-1
+syn match skillFunction     "(gets\>"hs=s+1
+syn match skillFunction     "\<gets("he=e-1
+syn match skillFunction     "(getShellEnvVar\>"hs=s+1
+syn match skillFunction     "\<getShellEnvVar("he=e-1
+syn match skillFunction     "(getSkill\(Path\|Version\)\>"hs=s+1
+syn match skillFunction     "\<getSkill\(Path\|Version\)("he=e-1
+syn match skillFunction     "(getVarWriteProtect\>"hs=s+1
+syn match skillFunction     "\<getVarWriteProtect("he=e-1
+syn match skillFunction     "(getVersion\>"hs=s+1
+syn match skillFunction     "\<getVersion("he=e-1
+syn match skillFunction     "(getWarn\>"hs=s+1
+syn match skillFunction     "\<getWarn("he=e-1
+syn match skillFunction     "(getWorkingDir\>"hs=s+1
+syn match skillFunction     "\<getWorkingDir("he=e-1
+syn match skillRepeat       "(go\>"hs=s+1
+syn match skillRepeat       "\<go("he=e-1
+syn match skillConditional  "(if\>"hs=s+1
+syn match skillConditional  "\<if("he=e-1
+syn keyword skillConditional then else
+syn match skillFunction     "(index\>"hs=s+1
+syn match skillFunction     "\<index("he=e-1
+syn match skillFunction     "(infile\>"hs=s+1
+syn match skillFunction     "\<infile("he=e-1
+syn match skillFunction     "(inportp\>"hs=s+1
+syn match skillFunction     "\<inportp("he=e-1
+syn match skillFunction     "(in\(Scheme\|Skill\)\>"hs=s+1
+syn match skillFunction     "\<in\(Scheme\|Skill\)("he=e-1
+syn match skillFunction     "(instring\>"hs=s+1
+syn match skillFunction     "\<instring("he=e-1
+syn match skillFunction     "(integerp\>"hs=s+1
+syn match skillFunction     "\<integerp("he=e-1
+syn match skillFunction     "(intToChar\>"hs=s+1
+syn match skillFunction     "\<intToChar("he=e-1
+syn match skillFunction     "(is\(Callable\|Dir\|Executable\|File\|FileEncrypted\|FileName\|Link\|Macro\|Writable\)\>"hs=s+1
+syn match skillFunction     "\<is\(Callable\|Dir\|Executable\|File\|FileEncrypted\|FileName\|Link\|Macro\|Writable\)("he=e-1
+syn match skillKeywords     "(n\=lambda\>"hs=s+1
+syn match skillKeywords     "\<n\=lambda("he=e-1
+syn match skillKeywords     "(last\>"hs=s+1
+syn match skillKeywords     "\<last("he=e-1
+syn match skillFunction     "(lconc\>"hs=s+1
+syn match skillFunction     "\<lconc("he=e-1
+syn match skillFunction     "(length\>"hs=s+1
+syn match skillFunction     "\<length("he=e-1
+syn match skillKeywords     "(let\>"hs=s+1
+syn match skillKeywords     "\<let("he=e-1
+syn match skillFunction     "(lineread\(string\)\=\>"hs=s+1
+syn match skillFunction     "\<lineread\(string\)\=("he=e-1
+syn match skillKeywords     "(list\>"hs=s+1
+syn match skillKeywords     "\<list("he=e-1
+syn match skillFunction     "(listp\>"hs=s+1
+syn match skillFunction     "\<listp("he=e-1
+syn match skillFunction     "(listToVector\>"hs=s+1
+syn match skillFunction     "\<listToVector("he=e-1
+syn match skillFunction     "(loadi\=\>"hs=s+1
+syn match skillFunction     "\<loadi\=("he=e-1
+syn match skillFunction     "(loadstring\>"hs=s+1
+syn match skillFunction     "\<loadstring("he=e-1
+syn match skillFunction     "(log\>"hs=s+1
+syn match skillFunction     "\<log("he=e-1
+syn match skillFunction     "(lowerCase\>"hs=s+1
+syn match skillFunction     "\<lowerCase("he=e-1
+syn match skillFunction     "(makeTable\>"hs=s+1
+syn match skillFunction     "\<makeTable("he=e-1
+syn match skillFunction     "(makeTempFileName\>"hs=s+1
+syn match skillFunction     "\<makeTempFileName("he=e-1
+syn match skillFunction     "(makeVector\>"hs=s+1
+syn match skillFunction     "\<makeVector("he=e-1
+syn match skillFunction     "(map\(c\|can\|car\|list\)\>"hs=s+1
+syn match skillFunction     "\<map\(c\|can\|car\|list\)("he=e-1
+syn match skillFunction     "(max\>"hs=s+1
+syn match skillFunction     "\<max("he=e-1
+syn match skillFunction     "(measureTime\>"hs=s+1
+syn match skillFunction     "\<measureTime("he=e-1
+syn match skillFunction     "(member\>"hs=s+1
+syn match skillFunction     "\<member("he=e-1
+syn match skillFunction     "(mem[qv]\>"hs=s+1
+syn match skillFunction     "\<mem[qv]("he=e-1
+syn match skillFunction     "(min\>"hs=s+1
+syn match skillFunction     "\<min("he=e-1
+syn match skillFunction     "(minusp\>"hs=s+1
+syn match skillFunction     "\<minusp("he=e-1
+syn match skillFunction     "(mod\(ulo\)\=\>"hs=s+1
+syn match skillFunction     "\<mod\(ulo\)\=("he=e-1
+syn match skillKeywords     "([mn]\=procedure\>"hs=s+1
+syn match skillKeywords     "\<[mn]\=procedure("he=e-1
+syn match skillFunction     "(ncon[cs]\>"hs=s+1
+syn match skillFunction     "\<ncon[cs]("he=e-1
+syn match skillFunction     "(needNCells\>"hs=s+1
+syn match skillFunction     "\<needNCells("he=e-1
+syn match skillFunction     "(negativep\>"hs=s+1
+syn match skillFunction     "\<negativep("he=e-1
+syn match skillFunction     "(neq\(ual\)\=\>"hs=s+1
+syn match skillFunction     "\<neq\(ual\)\=("he=e-1
+syn match skillFunction     "(newline\>"hs=s+1
+syn match skillFunction     "\<newline("he=e-1
+syn match skillFunction     "(nindex\>"hs=s+1
+syn match skillFunction     "\<nindex("he=e-1
+syn match skillFunction     "(not\>"hs=s+1
+syn match skillFunction     "\<not("he=e-1
+syn match skillFunction     "(nth\(cdr\|elem\)\=\>"hs=s+1
+syn match skillFunction     "\<nth\(cdr\|elem\)\=("he=e-1
+syn match skillFunction     "(null\>"hs=s+1
+syn match skillFunction     "\<null("he=e-1
+syn match skillFunction     "(numberp\>"hs=s+1
+syn match skillFunction     "\<numberp("he=e-1
+syn match skillFunction     "(numOpenFiles\>"hs=s+1
+syn match skillFunction     "\<numOpenFiles("he=e-1
+syn match skillFunction     "(oddp\>"hs=s+1
+syn match skillFunction     "\<oddp("he=e-1
+syn match skillFunction     "(onep\>"hs=s+1
+syn match skillFunction     "\<onep("he=e-1
+syn match skillFunction     "(otherp\>"hs=s+1
+syn match skillFunction     "\<otherp("he=e-1
+syn match skillFunction     "(outfile\>"hs=s+1
+syn match skillFunction     "\<outfile("he=e-1
+syn match skillFunction     "(outportp\>"hs=s+1
+syn match skillFunction     "\<outportp("he=e-1
+syn match skillFunction     "(pairp\>"hs=s+1
+syn match skillFunction     "\<pairp("he=e-1
+syn match skillFunction     "(parseString\>"hs=s+1
+syn match skillFunction     "\<parseString("he=e-1
+syn match skillFunction     "(plist\>"hs=s+1
+syn match skillFunction     "\<plist("he=e-1
+syn match skillFunction     "(plusp\>"hs=s+1
+syn match skillFunction     "\<plusp("he=e-1
+syn match skillFunction     "(portp\>"hs=s+1
+syn match skillFunction     "\<portp("he=e-1
+syn match skillFunction     "(p\=print\>"hs=s+1
+syn match skillFunction     "\<p\=print("he=e-1
+syn match skillFunction     "(prependInstallPath\>"hs=s+1
+syn match skillFunction     "\<prependInstallPath("he=e-1
+syn match skillFunction     "(printl\(ev\|n\)\>"hs=s+1
+syn match skillFunction     "\<printl\(ev\|n\)("he=e-1
+syn match skillFunction     "(procedurep\>"hs=s+1
+syn match skillFunction     "\<procedurep("he=e-1
+syn match skillKeywords     "(prog[12n]\=\>"hs=s+1
+syn match skillKeywords     "\<prog[12n]\=("he=e-1
+syn match skillFunction     "(putd\>"hs=s+1
+syn match skillFunction     "\<putd("he=e-1
+syn match skillFunction     "(putpropq\{,2}\>"hs=s+1
+syn match skillFunction     "\<putpropq\{,2}("he=e-1
+syn match skillFunction     "(random\>"hs=s+1
+syn match skillFunction     "\<random("he=e-1
+syn match skillFunction     "(read\>"hs=s+1
+syn match skillFunction     "\<read("he=e-1
+syn match skillFunction     "(readString\>"hs=s+1
+syn match skillFunction     "\<readString("he=e-1
+syn match skillFunction     "(readTable\>"hs=s+1
+syn match skillFunction     "\<readTable("he=e-1
+syn match skillFunction     "(realp\>"hs=s+1
+syn match skillFunction     "\<realp("he=e-1
+syn match skillFunction     "(regExit\(After\|Before\)\>"hs=s+1
+syn match skillFunction     "\<regExit\(After\|Before\)("he=e-1
+syn match skillFunction     "(remainder\>"hs=s+1
+syn match skillFunction     "\<remainder("he=e-1
+syn match skillFunction     "(remdq\=\>"hs=s+1
+syn match skillFunction     "\<remdq\=("he=e-1
+syn match skillFunction     "(remExitProc\>"hs=s+1
+syn match skillFunction     "\<remExitProc("he=e-1
+syn match skillFunction     "(remove\>"hs=s+1
+syn match skillFunction     "\<remove("he=e-1
+syn match skillFunction     "(remprop\>"hs=s+1
+syn match skillFunction     "\<remprop("he=e-1
+syn match skillFunction     "(remq\>"hs=s+1
+syn match skillFunction     "\<remq("he=e-1
+syn match skillKeywords     "(return\>"hs=s+1
+syn match skillKeywords     "\<return("he=e-1
+syn match skillFunction     "(reverse\>"hs=s+1
+syn match skillFunction     "\<reverse("he=e-1
+syn match skillFunction     "(rexCompile\>"hs=s+1
+syn match skillFunction     "\<rexCompile("he=e-1
+syn match skillFunction     "(rexExecute\>"hs=s+1
+syn match skillFunction     "\<rexExecute("he=e-1
+syn match skillFunction     "(rexMagic\>"hs=s+1
+syn match skillFunction     "\<rexMagic("he=e-1
+syn match skillFunction     "(rexMatchAssocList\>"hs=s+1
+syn match skillFunction     "\<rexMatchAssocList("he=e-1
+syn match skillFunction     "(rexMatchList\>"hs=s+1
+syn match skillFunction     "\<rexMatchList("he=e-1
+syn match skillFunction     "(rexMatchp\>"hs=s+1
+syn match skillFunction     "\<rexMatchp("he=e-1
+syn match skillFunction     "(rexReplace\>"hs=s+1
+syn match skillFunction     "\<rexReplace("he=e-1
+syn match skillFunction     "(rexSubstitute\>"hs=s+1
+syn match skillFunction     "\<rexSubstitute("he=e-1
+syn match skillFunction     "(rindex\>"hs=s+1
+syn match skillFunction     "\<rindex("he=e-1
+syn match skillFunction     "(round\>"hs=s+1
+syn match skillFunction     "\<round("he=e-1
+syn match skillFunction     "(rplac[ad]\>"hs=s+1
+syn match skillFunction     "\<rplac[ad]("he=e-1
+syn match skillFunction     "(schemeTopLevelEnv\>"hs=s+1
+syn match skillFunction     "\<schemeTopLevelEnv("he=e-1
+syn match skillFunction     "(set\>"hs=s+1
+syn match skillFunction     "\<set("he=e-1
+syn match skillFunction     "(setarray\>"hs=s+1
+syn match skillFunction     "\<setarray("he=e-1
+syn match skillFunction     "(setc[ad]r\>"hs=s+1
+syn match skillFunction     "\<setc[ad]r("he=e-1
+syn match skillFunction     "(setFnWriteProtect\>"hs=s+1
+syn match skillFunction     "\<setFnWriteProtect("he=e-1
+syn match skillFunction     "(setof\>"hs=s+1
+syn match skillFunction     "\<setof("he=e-1
+syn match skillFunction     "(setplist\>"hs=s+1
+syn match skillFunction     "\<setplist("he=e-1
+syn match skillFunction     "(setq\>"hs=s+1
+syn match skillFunction     "\<setq("he=e-1
+syn match skillFunction     "(setShellEnvVar\>"hs=s+1
+syn match skillFunction     "\<setShellEnvVar("he=e-1
+syn match skillFunction     "(setSkillPath\>"hs=s+1
+syn match skillFunction     "\<setSkillPath("he=e-1
+syn match skillFunction     "(setVarWriteProtect\>"hs=s+1
+syn match skillFunction     "\<setVarWriteProtect("he=e-1
+syn match skillFunction     "(sh\(ell\)\=\>"hs=s+1
+syn match skillFunction     "\<sh\(ell\)\=("he=e-1
+syn match skillFunction     "(simplifyFilename\>"hs=s+1
+syn match skillFunction     "\<simplifyFilename("he=e-1
+syn match skillFunction     "(sort\(car\)\=\>"hs=s+1
+syn match skillFunction     "\<sort\(car\)\=("he=e-1
+syn match skillFunction     "(sqrt\>"hs=s+1
+syn match skillFunction     "\<sqrt("he=e-1
+syn match skillFunction     "(srandom\>"hs=s+1
+syn match skillFunction     "\<srandom("he=e-1
+syn match skillFunction     "(sstatus\>"hs=s+1
+syn match skillFunction     "\<sstatus("he=e-1
+syn match skillFunction     "(strn\=cat\>"hs=s+1
+syn match skillFunction     "\<strn\=cat("he=e-1
+syn match skillFunction     "(strn\=cmp\>"hs=s+1
+syn match skillFunction     "\<strn\=cmp("he=e-1
+syn match skillFunction     "(stringp\>"hs=s+1
+syn match skillFunction     "\<stringp("he=e-1
+syn match skillFunction     "(stringTo\(Function\|Symbol\|Time\)\>"hs=s+1
+syn match skillFunction     "\<stringTo\(Function\|Symbol\|Time\)("he=e-1
+syn match skillFunction     "(strlen\>"hs=s+1
+syn match skillFunction     "\<strlen("he=e-1
+syn match skillFunction     "(sub1\>"hs=s+1
+syn match skillFunction     "\<sub1("he=e-1
+syn match skillFunction     "(subst\>"hs=s+1
+syn match skillFunction     "\<subst("he=e-1
+syn match skillFunction     "(substring\>"hs=s+1
+syn match skillFunction     "\<substring("he=e-1
+syn match skillFunction     "(sxtd\>"hs=s+1
+syn match skillFunction     "\<sxtd("he=e-1
+syn match skillFunction     "(symbolp\>"hs=s+1
+syn match skillFunction     "\<symbolp("he=e-1
+syn match skillFunction     "(symbolToString\>"hs=s+1
+syn match skillFunction     "\<symbolToString("he=e-1
+syn match skillFunction     "(symeval\>"hs=s+1
+syn match skillFunction     "\<symeval("he=e-1
+syn match skillFunction     "(symstrp\>"hs=s+1
+syn match skillFunction     "\<symstrp("he=e-1
+syn match skillFunction     "(system\>"hs=s+1
+syn match skillFunction     "\<system("he=e-1
+syn match skillFunction     "(tablep\>"hs=s+1
+syn match skillFunction     "\<tablep("he=e-1
+syn match skillFunction     "(tableToList\>"hs=s+1
+syn match skillFunction     "\<tableToList("he=e-1
+syn match skillFunction     "(tailp\>"hs=s+1
+syn match skillFunction     "\<tailp("he=e-1
+syn match skillFunction     "(tconc\>"hs=s+1
+syn match skillFunction     "\<tconc("he=e-1
+syn match skillFunction     "(timeToString\>"hs=s+1
+syn match skillFunction     "\<timeToString("he=e-1
+syn match skillFunction     "(timeToTm\>"hs=s+1
+syn match skillFunction     "\<timeToTm("he=e-1
+syn match skillFunction     "(tmToTime\>"hs=s+1
+syn match skillFunction     "\<tmToTime("he=e-1
+syn match skillFunction     "(truncate\>"hs=s+1
+syn match skillFunction     "\<truncate("he=e-1
+syn match skillFunction     "(typep\=\>"hs=s+1
+syn match skillFunction     "\<typep\=("he=e-1
+syn match skillFunction     "(unalias\>"hs=s+1
+syn match skillFunction     "\<unalias("he=e-1
+syn match skillConditional  "(unless\>"hs=s+1
+syn match skillConditional  "\<unless("he=e-1
+syn match skillFunction     "(upperCase\>"hs=s+1
+syn match skillFunction     "\<upperCase("he=e-1
+syn match skillFunction     "(vector\(ToList\)\=\>"hs=s+1
+syn match skillFunction     "\<vector\(ToList\)\=("he=e-1
+syn match skillFunction     "(warn\>"hs=s+1
+syn match skillFunction     "\<warn("he=e-1
+syn match skillConditional  "(when\>"hs=s+1
+syn match skillConditional  "\<when("he=e-1
+syn match skillRepeat       "(while\>"hs=s+1
+syn match skillRepeat       "\<while("he=e-1
+syn match skillFunction     "(write\>"hs=s+1
+syn match skillFunction     "\<write("he=e-1
+syn match skillFunction     "(writeTable\>"hs=s+1
+syn match skillFunction     "\<writeTable("he=e-1
+syn match skillFunction     "(xcons\>"hs=s+1
+syn match skillFunction     "\<xcons("he=e-1
+syn match skillFunction     "(zerop\>"hs=s+1
+syn match skillFunction     "\<zerop("he=e-1
+syn match skillFunction     "(zxtd\>"hs=s+1
+syn match skillFunction     "\<zxtd("he=e-1
+
+" DFII procedural interface routines
+
+" CDF functions
+syn match skillcdfFunctions			"(cdf\u\a\+\>"hs=s+1
+syn match skillcdfFunctions			"\<cdf\u\a\+("he=e-1
+" graphic editor functions
+syn match skillgeFunctions			"(ge\u\a\+\>"hs=s+1
+syn match skillgeFunctions			"\<ge\u\a\+("he=e-1
+" human interface functions
+syn match skillhiFunctions			"(hi\u\a\+\>"hs=s+1
+syn match skillhiFunctions			"\<hi\u\a\+("he=e-1
+" layout editor functions
+syn match skillleFunctions			"(le\u\a\+\>"hs=s+1
+syn match skillleFunctions			"\<le\u\a\+("he=e-1
+" database|design editor|design flow functions
+syn match skilldbefFunctions		"(d[bef]\u\a\+\>"hs=s+1
+syn match skilldbefFunctions		"\<d[bef]\u\a\+("he=e-1
+" design management & design data services functions
+syn match skillddFunctions			"(dd[s]\=\u\a\+\>"hs=s+1
+syn match skillddFunctions			"\<dd[s]\=\u\a\+("he=e-1
+" parameterized cell functions
+syn match skillpcFunctions			"(pc\u\a\+\>"hs=s+1
+syn match skillpcFunctions			"\<pc\u\a\+("he=e-1
+" tech file functions
+syn match skilltechFunctions		"(\(tech\|tc\)\u\a\+\>"hs=s+1
+syn match skilltechFunctions		"\<\(tech\|tc\)\u\a\+("he=e-1
+
+" strings
+syn region skillString				start=+"+ skip=+\\"+ end=+"+
+
+syn keyword skillTodo contained		TODO FIXME XXX
+syn keyword skillNote contained		NOTE IMPORTANT
+
+" comments are either C-style or begin with a semicolon
+syn region skillComment				start="/\*" end="\*/" contains=skillTodo,skillNote
+syn match skillComment				";.*" contains=skillTodo,skillNote
+syn match skillCommentError			"\*/"
+
+syn sync ccomment skillComment minlines=10
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_skill_syntax_inits")
+  if version < 508
+    let did_skill_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+	HiLink skillcdfFunctions	Function
+	HiLink skillgeFunctions		Function
+	HiLink skillhiFunctions		Function
+	HiLink skillleFunctions		Function
+	HiLink skilldbefFunctions	Function
+	HiLink skillddFunctions		Function
+	HiLink skillpcFunctions		Function
+	HiLink skilltechFunctions	Function
+	HiLink skillConstants		Constant
+	HiLink skillFunction		Function
+	HiLink skillKeywords		Statement
+	HiLink skillConditional		Conditional
+	HiLink skillRepeat			Repeat
+	HiLink skillString			String
+	HiLink skillTodo			Todo
+	HiLink skillNote			Todo
+	HiLink skillComment			Comment
+	HiLink skillCommentError	Error
+
+	delcommand HiLink
+endif
+
+let b:current_syntax = "skill"
+
+" vim: ts=4