view runtime/syntax/skill.vim @ 30423:221cca379bd5 v9.0.0547

patch 9.0.0547: looping over empty out_loop[] entries Commit: https://github.com/vim/vim/commit/6d313bec535d9ccc24f6f82025280a61caad7416 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 22 16:36:25 2022 +0100 patch 9.0.0547: looping over empty out_loop[] entries Problem: Looping over empty out_loop[] entries. Solution: Store the array size.
author Bram Moolenaar <Bram@vim.org>
date Thu, 22 Sep 2022 17:45:03 +0200
parents 46763b01cd9a
children
line wrap: on
line source

" 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.

" quit when a syntax file was already loaded
if 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.
" Only when an item doesn't have highlighting yet

hi def link skillcdfFunctions	Function
hi def link skillgeFunctions		Function
hi def link skillhiFunctions		Function
hi def link skillleFunctions		Function
hi def link skilldbefFunctions	Function
hi def link skillddFunctions		Function
hi def link skillpcFunctions		Function
hi def link skilltechFunctions	Function
hi def link skillConstants		Constant
hi def link skillFunction		Function
hi def link skillKeywords		Statement
hi def link skillConditional		Conditional
hi def link skillRepeat			Repeat
hi def link skillString			String
hi def link skillTodo			Todo
hi def link skillNote			Todo
hi def link skillComment			Comment
hi def link skillCommentError	Error


let b:current_syntax = "skill"

" vim: ts=4