skill.st - enscript - GNU Enscript
 (HTM) git clone git://thinkerwim.org/enscript.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       skill.st (7149B)
       ---
            1 /**
            2  * Name: skill
            3  * Description: Cadence Design Systems lispy language.
            4  * Author: Jean-Marc Calvez <jean-marc.calvez@st.com>
            5  */
            6 
            7 state skill extends HighlightEntry
            8 {
            9   /* Line Comments (lispish). */
           10   /;/ {
           11     comment_face (true);
           12     language_print ($0);
           13     call (eat_one_line);
           14     comment_face (false);
           15   }
           16 
           17   /* Block Comments (C-style) */
           18   /\/\*/ {
           19     comment_face (true);
           20     language_print ($0);
           21     call (c_comment);
           22     comment_face (false);
           23   }
           24 
           25   /* String constants. */
           26   /\"/ {
           27     string_face (true);
           28     language_print ($0);
           29     call (c_string);
           30     string_face (false);
           31   }
           32 
           33   /* Definitions. */
           34   /(\([ \t]*)(procedure|defmacro|mprocedure|nprocedure|defun)([ \t]+\(?)([!\$%&\*\/:<=>\?~_^a-zA-Z][!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*)/ {
           35     /* Starting garbage. */
           36     language_print ($1);
           37 
           38     /* Keyword. */
           39     keyword_face (true);
           40     language_print ($2);
           41     keyword_face (false);
           42 
           43     /* Middle garbage. */
           44     language_print ($3);
           45 
           46     /* Function name. */
           47     function_name_face (true);
           48     language_print ($4);
           49     function_name_face (false);
           50   }
           51 
           52   /* Keywords. Taken from Skill Language in the Quick Ref.  + operators
           53      (build-re '(@rest @optional @key abs acos add1 alias alphalessp
           54      alphaNumCmp and append append1 apply arglist arrayp arrayref asin assoc
           55      assq atan atom band bcdp bitfield bitfield bnand bnor bnot bor boundp
           56      break breakpt buildString bxnor bxor caaar caadr caar cadr callInitProc
           57      car case caseq cdar cddr cdr changeWorkingDir clear clearExitProcs close
           58      compareTime compress concat cond cons cont continue copy
           59      copyDefstructDeep cos count createDir csh debugQuit debugStatus declare
           60      declareLambda declareNLambda defCapDepends defCapPrefixes defInitProc
           61      defmacro defprop defstruct defstructp defun defUserInitProc defvar
           62      deleteDir deleteFile difference drain dtpr dump ed edi edit edl encrypt
           63      eq equal err error errset errsetstring eval evalstring evenp exists exit
           64      exp expandMacro expt fileLength fileSeek fileTell fix fixp float floatp
           65      for forall foreach fprintf fscanf gc gcsummary gensym get get_pname
           66      get_string getAllLoadedFiles getc getchar getCurrentTime getd getDirFiles
           67      getFnWriteProtect getFunctions getInstallPath getq getqq gets
           68      getShellEnvVar getSkillPath getVarWriteProtect getVersion getWarn
           69      getWorkingDir go geqp getq getqq greaterp if ilToolBox index infile
           70      installDebugger instring isCallable isDir isExecutable isFile
           71      isFileEncrypted isFileName isLink isReadable isWritable lambda last lconc
           72      leftshift length leqp lessp let lineread linereadstring list
           73      listFunctions listp listVariables load loadContext loadi loadstring log
           74      lowerCase makeTable makeTempFileName map mapc mapcan mapcar maplist max
           75      measureTime member memq min minus minusp mod mprocedure nconc ncons
           76      needCells neq nequal newline next nil nindex nlambda nprocedure nth
           77      nthcdr nthelem null numberp numOpenFiles oddp onep or otherp outfile
           78      parseString plist plus plusp portp postdecrement postincrement pp pprint
           79      predecrement preincrement prependInstallPath print printf printFunctions
           80      printlev println printstruct printVariables procedure profile
           81      profileReset profileSummary prog prog1 prog2 progn putd putprop putpropq
           82      putpropqq quote quotient random range readTable regExitAfter
           83      regExitBefore remd remdq remExitProc remove remprop remq return reverse
           84      rexCompile rexExecute rexMagic rexMatchAssocList rexMatchList rexMatchp
           85      rexReplace rexSubstitute rightshift rindex round rplaca rplacd
           86      saveContext set setarray setContext setFnWriteProtect setof setplist setq
           87      setqbitfield steqbitfield1 setShellEnvVar setSkillPath setVarWriteProtect
           88      sh shell simplifyFilename sin skDisableMessage skIgnoreMessage
           89      skillDebugger sklint skUnignoreMessage sort sortcar sprintf sqrt srandom
           90      sstatus stacktrace status step stepout strcat strcmp stringp
           91      stringToFunction strlen strncat strncmp sub1 subst substring sxtd symbolp
           92      symeval symstrp tablep tableToList tailp tan tconc terpri times tracef
           93      tracep tracev type typep unalias unbreakpt uncount uninstallDebugger
           94      unless unprofile untrace untracep untracev upperCase warn when where
           95      whereis while writeTable xcons zerop zxtd))
           96    */
           97   /\b(@(key|optional|rest)\
           98 |a(bs|cos|dd1|l(ias|pha(NumCmp|lessp))|nd|pp(end(|1)|ly)\
           99 |r(glist|ray(p|ref))|s(in|s(oc|q))|t(an|om))\
          100 |b(and|cdp|itfield()|n(and|o(r|t))|o(r|undp)|reak(|pt)|uildString\
          101 |x(nor|or))\
          102 |c(a(a(ar|dr|r)|dr|llInitProc|r|se(|q))|d(ar|dr|r)|hangeWorkingDir\
          103 |l(ear(|ExitProcs)|ose)\
          104 |o(mp(areTime|ress)|n(cat|d|s|t(|inue))|py(|DefstructDeep)|s|unt)\
          105 |reateDir|sh)\
          106 |d(e(bug(Quit|Status)|clare(|Lambda|NLambda)\
          107 |f(Cap(Depends|Prefixes)|InitProc|UserInitProc|macro|prop|struct(|p)|un\
          108 |var)\
          109 |lete(Dir|File))\
          110 |ifference|rain|tpr|ump)\
          111 |e(d(|i(|t)|l)|ncrypt|q(|ual)|rr(|or|set(|string))|v(al(|string)|enp)\
          112 |x(i(sts|t)|p(|andMacro|t)))\
          113 |f(i(le(Length|Seek|Tell)|x(|p))|loat(|p)|or(|all|each)|printf|scanf)\
          114 |g(c(|summary)\
          115 |e(nsym|qp\
          116 |t(|AllLoadedFiles|CurrentTime|DirFiles|F(nWriteProtect|unctions)\
          117 |InstallPath|S(hellEnvVar|killPath)|V(arWriteProtect|ersion)\
          118 |W(arn|orkingDir)|_(pname|string)|c(|har)|d|q(|q())|s))\
          119 |o|reaterp)\
          120 |i(f|lToolBox|n(dex|file|st(allDebugger|ring))\
          121 |s(Callable|Dir|Executable|File(|Encrypted|Name)|Link|Readable|Writable))\
          122 |l(a(mbda|st)|conc|e(ftshift|ngth|qp|ssp|t)\
          123 |i(neread(|string)|st(|Functions|Variables|p))\
          124 |o(ad(|Context|i|string)|g|werCase))\
          125 |m(a(keT(able|empFileName)|p(|c(|a(n|r))|list)|x)|e(asureTime|m(ber|q))\
          126 |in(|us(|p))|od|procedure)\
          127 |n(con(c|s)|e(edCells|q(|ual)|wline|xt)|i(l|ndex)|lambda|procedure\
          128 |th(|cdr|elem)|u(ll|m(OpenFiles|berp)))\
          129 |o(ddp|nep|r|therp|utfile)\
          130 |p(arseString|l(ist|us(|p))|o(rtp|st(decrement|increment))|p(|rint)\
          131 |r(e(decrement|increment|pendInstallPath)\
          132 |int(|Functions|Variables|f|l(ev|n)|struct)\
          133 |o(cedure|file(|Reset|Summary)|g(|1|2|n)))\
          134 |ut(d|prop(|q(|q))))\
          135 |quot(e|ient)\
          136 |r(an(dom|ge)\
          137 |e(adTable|gExit(After|Before)|m(ExitProc|d(|q)|ove|prop|q)|turn|verse\
          138 |x(Compile|Execute|Ma(gic|tch(AssocList|List|p))|Replace|Substitute))\
          139 |i(ghtshift|ndex)|ound|plac(a|d))\
          140 |s(aveContext\
          141 |et(|Context|FnWriteProtect|S(hellEnvVar|killPath)|VarWriteProtect|array\
          142 |of|plist|q(|bitfield))\
          143 |h(|ell)|i(mplifyFilename|n)\
          144 |k(DisableMessage|IgnoreMessage|UnignoreMessage|illDebugger|lint)\
          145 |ort(|car)|printf|qrt|random|status\
          146 |t(a(cktrace|tus)|e(p(|out)|qbitfield1)\
          147 |r(c(at|mp)|ing(ToFunction|p)|len|nc(at|mp)))\
          148 |ub(1|st(|ring))|xtd|ym(bolp|eval|strp))\
          149 |t(a(ble(ToList|p)|ilp|n)|conc|erpri|imes|race(f|p|v)|ype(|p))\
          150 |u(n(alias|breakpt|count|installDebugger|less|profile|trace(|p|v))\
          151 |pperCase)\
          152 |w(arn|h(e(n|re(|is))|ile)|riteTable)|xcons|z(erop|xtd))\b/ {
          153     keyword_face (true);
          154     language_print ($0);
          155     keyword_face (false);
          156   }
          157 
          158   /* Skill functions. Use prefix to match, they are too many to
          159      enumerate. Used bold-italic... */
          160   /(cdf|dag|db|de|df|dl|dm|enter|fm|ge|hi|mif|tc|tfc|sch)[A-Z][^ \t]*/ {
          161     bold_italic (true);
          162     language_print ($0);
          163     bold_italic (false);
          164   }
          165 }
          166 
          167 
          168 /*
          169 Local variables:
          170 mode: c
          171 End:
          172 */